Liu Song’s Projects


~/Projects/music-app

git clone https://code.lsong.org/music-app

Commit

Commit
d6e29d01986f8d3b19445df23f10a93ee0fab9d9
Author
Lsong <[email protected]>
Date
2021-10-09 17:05:01 +0800 +0800
Diffstat
 public/build/bundle.js | 2 +-
 public/build/bundle.js.map | 2 +-
 src/App.svelte | 4 ++--

deploy


diff --git a/public/build/bundle.js b/public/build/bundle.js
index db8845062d7bf411c3e815ec489217d8bfe925b7..22aadf5f73a2e8a5c98b28d237a939267c6f6b1a 100644
--- a/public/build/bundle.js
+++ b/public/build/bundle.js
@@ -1 +1 @@
-var app=function(){"use strict";function t(){}const e=t=>t;function n(t,e){for(const n in e)t[n]=e[n];return t}function s(t){return t()}function i(){return Object.create(null)}function l(t){t.forEach(s)}function o(t){return"function"==typeof t}function r(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}let c;function a(t,e){return c||(c=document.createElement("a")),c.href=e,t===c.href}function u(e,...n){if(null==e)return t;const s=e.subscribe(...n);return s.unsubscribe?()=>s.unsubscribe():s}function d(t){let e;return u(t,(t=>e=t))(),e}function f(t,e,n){t.$$.on_destroy.push(u(e,n))}function p(t,e,n,s){if(t){const i=m(t,e,n,s);return t[0](i)}}function m(t,e,s,i){return t[1]&&i?n(s.ctx.slice(),t[1](i(e))):s.ctx}function h(t,e,n,s){if(t[2]&&s){const i=t[2](s(n));if(void 0===e.dirty)return i;if("object"==typeof i){const t=[],n=Math.max(e.dirty.length,i.length);for(let s=0;s<n;s+=1)t[s]=e.dirty[s]|i[s];return t}return e.dirty|i}return e.dirty}function g(t,e,n,s,i,l){if(i){const o=m(e,n,s,l);t.p(o,i)}}function v(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let t=0;t<n;t++)e[t]=-1;return e}return-1}function $(t){const e={};for(const n in t)"$"!==n[0]&&(e[n]=t[n]);return e}function w(t,e){const n={};e=new Set(e);for(const s in t)e.has(s)||"$"===s[0]||(n[s]=t[s]);return n}const y="undefined"!=typeof window;let x=y?()=>window.performance.now():()=>Date.now(),b=y?t=>requestAnimationFrame(t):t;const z=new Set;function k(t){z.forEach((e=>{e.c(t)||(z.delete(e),e.f())})),0!==z.size&&b(k)}function S(t,e){t.appendChild(e)}function C(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function M(t){const e=O("style");return function(t,e){S(t.head||t,e)}(C(t),e),e}function _(t,e,n){t.insertBefore(e,n||null)}function L(t){t.parentNode.removeChild(t)}function T(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function O(t){return document.createElement(t)}function I(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function B(t){return document.createTextNode(t)}function H(){return B(" ")}function N(){return B("")}function D(t,e,n,s){return t.addEventListener(e,n,s),()=>t.removeEventListener(e,n,s)}function E(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function R(t,e){for(const n in e)E(t,n,e[n])}function P(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function A(t,e){t.value=null==e?"":e}function j(t,e,n,s){t.style.setProperty(e,n,s?"important":"")}function U(t,e,n){t.classList[n?"add":"remove"](e)}function V(t,e,n=!1){const s=document.createEvent("CustomEvent");return s.initCustomEvent(t,n,!1,e),s}class F{constructor(){this.e=this.n=null}c(t){this.h(t)}m(t,e,n=null){this.e||(this.e=O(e.nodeName),this.t=e,this.c(t)),this.i(n)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let e=0;e<this.n.length;e+=1)_(this.t,this.n[e],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(L)}}const J=new Set;let q,X=0;function G(t,e){const n=(t.style.animation||"").split(", "),s=n.filter(e?t=>t.indexOf(e)<0:t=>-1===t.indexOf("__svelte")),i=n.length-s.length;i&&(t.style.animation=s.join(", "),X-=i,X||b((()=>{X||(J.forEach((t=>{const e=t.__svelte_stylesheet;let n=e.cssRules.length;for(;n--;)e.deleteRule(n);t.__svelte_rules={}})),J.clear())})))}function W(t){q=t}function K(){if(!q)throw new Error("Function called outside component initialization");return q}function Y(t){K().$$.on_mount.push(t)}function Z(t){K().$$.after_update.push(t)}function Q(t){K().$$.on_destroy.push(t)}function tt(){const t=K();return(e,n)=>{const s=t.$$.callbacks[e];if(s){const i=V(e,n);s.slice().forEach((e=>{e.call(t,i)}))}}}function et(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach((t=>t.call(this,e)))}const nt=[],st=[],it=[],lt=[],ot=Promise.resolve();let rt=!1;function ct(){rt||(rt=!0,ot.then(pt))}function at(t){it.push(t)}function ut(t){lt.push(t)}let dt=!1;const ft=new Set;function pt(){if(!dt){dt=!0;do{for(let t=0;t<nt.length;t+=1){const e=nt[t];W(e),mt(e.$$)}for(W(null),nt.length=0;st.length;)st.pop()();for(let t=0;t<it.length;t+=1){const e=it[t];ft.has(e)||(ft.add(e),e())}it.length=0}while(nt.length);for(;lt.length;)lt.pop()();rt=!1,dt=!1,ft.clear()}}function mt(t){if(null!==t.fragment){t.update(),l(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(at)}}let ht;function gt(t,e,n){t.dispatchEvent(V(`${e?"intro":"outro"}${n}`))}const vt=new Set;let $t;function wt(){$t={r:0,c:[],p:$t}}function yt(){$t.r||l($t.c),$t=$t.p}function xt(t,e){t&&t.i&&(vt.delete(t),t.i(e))}function bt(t,e,n,s){if(t&&t.o){if(vt.has(t))return;vt.add(t),$t.c.push((()=>{vt.delete(t),s&&(n&&t.d(1),s())})),t.o(e)}}const zt={duration:0};function kt(n,s,i){let l,r,c=s(n,i),a=!1,u=0;function d(){l&&G(n,l)}function f(){const{delay:s=0,duration:i=300,easing:o=e,tick:f=t,css:p}=c||zt;p&&(l=function(t,e,n,s,i,l,o,r=0){const c=16.666/s;let a="{\n";for(let t=0;t<=1;t+=c){const s=e+(n-e)*l(t);a+=100*t+`%{${o(s,1-s)}}\n`}const u=a+`100% {${o(n,1-n)}}\n}`,d=`__svelte_${function(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}(u)}_${r}`,f=C(t);J.add(f);const p=f.__svelte_stylesheet||(f.__svelte_stylesheet=M(t).sheet),m=f.__svelte_rules||(f.__svelte_rules={});m[d]||(m[d]=!0,p.insertRule(`@keyframes ${d} ${u}`,p.cssRules.length));const h=t.style.animation||"";return t.style.animation=`${h?`${h}, `:""}${d} ${s}ms linear ${i}ms 1 both`,X+=1,d}(n,0,1,i,s,o,p,u++)),f(0,1);const m=x()+s,h=m+i;r&&r.abort(),a=!0,at((()=>gt(n,!0,"start"))),r=function(t){let e;return 0===z.size&&b(k),{promise:new Promise((n=>{z.add(e={c:t,f:n})})),abort(){z.delete(e)}}}((t=>{if(a){if(t>=h)return f(1,0),gt(n,!0,"end"),d(),a=!1;if(t>=m){const e=o((t-m)/i);f(e,1-e)}}return a}))}let p=!1;return{start(){p||(p=!0,G(n),o(c)?(c=c(),(ht||(ht=Promise.resolve(),ht.then((()=>{ht=null}))),ht).then(f)):f())},invalidate(){p=!1},end(){a&&(d(),a=!1)}}}const St="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function Ct(t,e){const n={},s={},i={$$scope:1};let l=t.length;for(;l--;){const o=t[l],r=e[l];if(r){for(const t in o)t in r||(s[t]=1);for(const t in r)i[t]||(n[t]=r[t],i[t]=1);t[l]=r}else for(const t in o)i[t]=1}for(const t in s)t in n||(n[t]=void 0);return n}function Mt(t,e,n){const s=t.$$.props[e];void 0!==s&&(t.$$.bound[s]=n,n(t.$$.ctx[s]))}function _t(t){t&&t.c()}function Lt(t,e,n,i){const{fragment:r,on_mount:c,on_destroy:a,after_update:u}=t.$$;r&&r.m(e,n),i||at((()=>{const e=c.map(s).filter(o);a?a.push(...e):l(e),t.$$.on_mount=[]})),u.forEach(at)}function Tt(t,e){const n=t.$$;null!==n.fragment&&(l(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Ot(e,n,s,o,r,c,a,u=[-1]){const d=q;W(e);const f=e.$$={fragment:null,ctx:null,props:c,update:t,not_equal:r,bound:i(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(d?d.$$.context:[])),callbacks:i(),dirty:u,skip_bound:!1,root:n.target||d.$$.root};a&&a(f.root);let p=!1;if(f.ctx=s?s(e,n.props||{},((t,n,...s)=>{const i=s.length?s[0]:n;return f.ctx&&r(f.ctx[t],f.ctx[t]=i)&&(!f.skip_bound&&f.bound[t]&&f.bound[t](i),p&&function(t,e){-1===t.$$.dirty[0]&&(nt.push(t),ct(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}(e,t)),n})):[],f.update(),p=!0,l(f.before_update),f.fragment=!!o&&o(f.ctx),n.target){if(n.hydrate){const t=function(t){return Array.from(t.childNodes)}(n.target);f.fragment&&f.fragment.l(t),t.forEach(L)}else f.fragment&&f.fragment.c();n.intro&&xt(e.$$.fragment),Lt(e,n.target,n.anchor,n.customElement),pt()}W(d)}class It{$destroy(){Tt(this,1),this.$destroy=t}$on(t,e){const n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}function Bt(t,e){if(t instanceof RegExp)return{keys:!1,pattern:t};var n,s,i,l,o=[],r="",c=t.split("/");for(c[0]||c.shift();i=c.shift();)"*"===(n=i[0])?(o.push("wild"),r+="/(.*)"):":"===n?(s=i.indexOf("?",1),l=i.indexOf(".",1),o.push(i.substring(1,~s?s:~l?l:i.length)),r+=~s&&!~l?"(?:/([^/]+?))?":"/([^/]+?)",~l&&(r+=(~s?"?":"")+"\\"+i.substring(l))):r+="/"+i;return{keys:o,pattern:new RegExp("^"+r+(e?"(?=$|/)":"/?$"),"i")}}const Ht=[];function Nt(e,n=t){let s;const i=new Set;function l(t){if(r(e,t)&&(e=t,s)){const t=!Ht.length;for(const t of i)t[1](),Ht.push(t,e);if(t){for(let t=0;t<Ht.length;t+=2)Ht[t][0](Ht[t+1]);Ht.length=0}}}return{set:l,update:function(t){l(t(e))},subscribe:function(o,r=t){const c=[o,r];return i.add(c),1===i.size&&(s=n(l)||t),o(e),()=>{i.delete(c),0===i.size&&(s(),s=null)}}}}function Dt(e,n,s){const i=!Array.isArray(e),r=i?[e]:e,c=n.length<2;return a=e=>{let s=!1;const a=[];let d=0,f=t;const p=()=>{if(d)return;f();const s=n(i?a[0]:a,e);c?e(s):f=o(s)?s:t},m=r.map(((t,e)=>u(t,(t=>{a[e]=t,d&=~(1<<e),s&&p()}),(()=>{d|=1<<e}))));return s=!0,p(),function(){l(m),f()}},{subscribe:Nt(s,a).subscribe};var a}var Et,Rt,Pt,At;function jt(){return new Promise((t=>requestAnimationFrame((()=>t()))))}function Ut(t){return new Promise((e=>setTimeout((()=>e()),t)))}function Vt(t,e){t.dispatchEvent(new CustomEvent(e,{bubbles:!0,cancelable:!0}))}function Ft(t){const e=document.createElement("style");return e.innerHTML=t,e}function Jt(t,e){return async n=>{const s=(new Date).getTime(),i=`unload-${s}`,l=`load-${s}`,o=`router-${s}`,{mountPointToUnload:r,mountPointToLoad:c,scroll:a,routerMountPoint:u}=n;null==r||r.classList.add(i),c.classList.add(l),u.classList.add(o);const d=new Array(e.length);for(let t=0;t<e.length;t++){const s=e[t](l,i,o,n);d[t]=s,document.head.appendChild(s),await jt(),await jt(),await jt()}if(await Ut(t),window.scrollTo(a.x,a.y),"smooth"===window.getComputedStyle(document.documentElement).scrollBehavior){const t=5;for(let e=0;e<50&&!(Math.sqrt(Math.pow(window.scrollX-a.x,2)+Math.pow(window.scrollY-a.y,2))<t);e++)await Ut(10)}for(const t of d)document.head.removeChild(t);null==r||r.classList.remove(i),c.classList.remove(l),u.classList.remove(o)}}function qt(t){return Jt(t,[(t,e,n,{navigationType:s})=>Ft(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${t} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${s===Pt.GoBackward?"":"-"}150px);\n\t\t\t\t}\n\t\t\t\t.${e} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${n} {\n\t\t\t\t\tperspective: 1200px;\n\t\t\t\t\tperspective-origin: top center;\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),(t,e,n,{mountPointToLoad:s,mountPointToUnload:i})=>Ft(`\n\t\t\t\t.${n} {\n\t\t\t\t\tmin-height: ${Math.max(s.offsetHeight,(null==i?void 0:i.offsetHeight)||0)}px;\n\t\t\t\t\tmin-width: ${Math.max(s.offsetWidth,(null==i?void 0:i.offsetWidth)||0)}px;\n\t\t\t\t}\n\t\t\t`),(e,n,s,{navigationType:i})=>Ft(`\n\t\t\t\t.${e} {\n\t\t\t\t\ttransition: transform ${t}ms, opacity ${Math.floor(t/2)}ms linear ${Math.floor(t/2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${n} {\n\t\t\t\t\ttransition: transform ${t}ms, opacity ${Math.floor(t/2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${i===Pt.GoBackward?"-":""}150px);\n\t\t\t\t}\n\t\t\t`)])}!function(t){t[t.NoOp=0]="NoOp",t[t.New=1]="New",t[t.Resume=2]="Resume"}(Et||(Et={})),function(t){t[t.NoOp=0]="NoOp",t[t.Destroy=1]="Destroy",t[t.Pause=2]="Pause"}(Rt||(Rt={})),function(t){t[t.GoForwardNewState=0]="GoForwardNewState",t[t.GoForwardResumeState=1]="GoForwardResumeState",t[t.GoBackward=2]="GoBackward",t[t.Replace=3]="Replace"}(Pt||(Pt={})),function(t){t[t.Navigate=0]="Navigate",t[t.Mount=1]="Mount",t[t.Destroy=2]="Destroy",t[t.UpdateConfig=3]="UpdateConfig"}(At||(At={}));const Xt={defaultResumable:!0,useHash:!0,restoreScroll:!0,routes:{},mountPoint:null,transitionFn:({scroll:t})=>(window.scrollTo(t.x,t.y),Promise.resolve()),dispatch:null},Gt=Nt([]);function Wt(){if(Xt.useHash){const t=window.location.href.indexOf("#/");return t>-1?window.location.href.substring(t+1):"/"}return(window.location.pathname||"/")+window.location.search}Dt(Gt,(t=>t));let Kt=!1;const Yt=Nt(Wt(),(t=>{let e=null;const n=async()=>{if(Kt)return;const n=Wt();e!==n&&(e=n,t(n))};return window.addEventListener("popstate",n),function(){window.removeEventListener("popstate",n)}})),Zt=Dt(Yt,(t=>t));function Qt(t){const e=t.indexOf("?");return-1!==e?t.substring(0,e):t}Dt(Zt,Qt);const te=Dt(Zt,(function(t){const e=t.indexOf("?");return-1!==e?t.substring(e):""}));let ee;async function ne(t){const e=window.history.state;t();let n=100;for(;e===window.history.state&&n;)await Ut(2),n--;e===window.history.state&&console.warn("unable to detect history change")}const se=[];function ie(t){se.push(t),async function(){if(le)return;le=!0;for(;se.length>0;){const t=se.shift();switch(t.type){case At.Navigate:await pe(t.payload);break;case At.Mount:await ce(t.payload);break;case At.Destroy:await ae();break;case At.UpdateConfig:await re(t.payload)}}le=!1}()}let le=!1;let oe=t;function re(t){const e=Xt.useHash;if(Object.keys(t).forEach((e=>{void 0!==t[e]&&(Xt[e]=t[e])})),e!==Xt.useHash){const t=Wt();d(Yt)!==t&&Yt.set(t)}"scrollRestoration"in window.history&&(window.history.scrollRestoration=Xt.restoreScroll?"manual":"auto")}function ce(t){re(t),oe=Zt.subscribe((async t=>{let e=window.history.state;ie({type:At.Navigate,payload:{location:t,state:e}})}))}async function ae(){oe();const e=d(Gt);for(const t of e){if(t===fe){if(t.entryConfig.onBeforeUnload&&t.entryConfig.onBeforeUnload.length>0)for(const e of t.entryConfig.onBeforeUnload)await e(!0);if(t.entryConfig.resumable&&t.entryConfig.onPause&&t.entryConfig.onPause.length>0)for(const e of t.entryConfig.onPause)await e(!0);if(t.entryConfig.onAfterUnload&&t.entryConfig.onAfterUnload.length>0)for(const e of t.entryConfig.onAfterUnload)await e(!0)}t.componentInstance.$destroy()}fe=null,Gt.set([]),oe=t,Xt.mountPoint=null,Xt.dispatch=null}let ue=null;async function de(t,e){const n=Object.keys(Xt.routes).find((t=>{const{pattern:n}=Bt(t);return n.test(e)}));if(null==n)return{message:"no route found"};const s=function(t,e){const{pattern:n,keys:s}=Bt(e),i=n.exec(t)||[],l=s.reduce(((t,e,n)=>(t[s[n]]=void 0===i[n+1]?null:decodeURIComponent(i[n+1]),t)),{});return 0===Object.keys(l).length?void 0:l}(e,n),i="object"==typeof Xt.routes[n]?Xt.routes[n]:{},l=i.guards||i.guard&&[i.guard]||[];for(const t of l)try{if(!await t(s))return{message:"access forbidden by guard",params:s}}catch(t){return{message:"guard error",params:s,err:t}}const o=t.find((t=>t.routeMatch===n));let r;if(o)ue=o.entryConfig,r=o,o.pathname!==e&&(o.componentInstance.$set({params:s}),o.pathname=e);else{const t=document.createElement("div");let l;if(ue={resumable:Xt.defaultResumable},"object"!=typeof Xt.routes[n])l=Xt.routes[n];else if(i.component)l=i.component;else{if(!i.componentProvider)return{message:"unable to get a component constructor",err:new Error("unable to get a component constructor")};try{const t=await i.componentProvider();l=t.default||t,i.component=l}catch(t){return{message:"unable to get component from provider",err:t}}}r={component:l,componentInstance:new l({target:t,props:{params:s}}),mountPoint:t,pathname:e,routeMatch:n,entryConfig:ue}}return await(ct(),ot),ue=null,r}let fe=null;async function pe(t){var e,n,s,i;const l=d(Gt),o=!t.state;o&&(t.state={timestamp:(new Date).getTime()},await ne((()=>window.history.replaceState(t.state,"",(Xt.useHash?"#":"")+t.location))));const r=await de(l,Qt(t.location));if("message"in r){if("access forbidden by guard"===r.message)null===(e=Xt.dispatch)||void 0===e||e.call(Xt,"forbidden",{...r,location:t.location});else null===(n=Xt.dispatch)||void 0===n||n.call(Xt,"error",{...r,location:t.location});return}const c=r,a=fe,u=l.findIndex((t=>t.routeMatch===c.routeMatch));let f=Et.NoOp,p=Rt.NoOp,m=Pt.GoForwardNewState;a?(a.routeMatch!==c.routeMatch&&(f=-1!==u?Et.Resume:Et.New,p=a.entryConfig.resumable?Rt.Pause:Rt.Destroy),m=o?Pt.GoForwardNewState:t.state.timestamp>ee?Pt.GoForwardResumeState:t.state.timestamp<ee?Pt.GoBackward:Pt.Replace):f=Et.New,null===(s=Xt.dispatch)||void 0===s||s.call(Xt,"navigation-start",{location:t.location,navigationType:m,pageToLoad:c,pageToUnload:a,pageToLoadAction:f,pageToUnloadAction:p}),await Promise.all([async function(){if(a&&p!==Rt.NoOp&&a.entryConfig.onBeforeUnload&&a.entryConfig.onBeforeUnload.length>0)for(const t of a.entryConfig.onBeforeUnload)await t()}(),async function(){if(c&&f!==Et.NoOp&&c.entryConfig.onBeforeLoad&&c.entryConfig.onBeforeLoad.length>0)for(const t of c.entryConfig.onBeforeLoad)await t()}()]);const h=a?a.mountPoint:null,g=c.mountPoint;if(h!==g){async function e(){Xt.mountPoint&&(g.parentElement||Xt.mountPoint.appendChild(g),await Xt.transitionFn({navigationType:m,routerMountPoint:Xt.mountPoint,mountPointToLoad:g,mountPointToUnload:h,scroll:t.state.scroll||{x:0,y:0}}),h&&Xt.mountPoint.removeChild(h))}await Promise.all([e(),async function(){if(a&&p===Rt.Pause&&a.entryConfig.onPause&&a.entryConfig.onPause.length>0)for(const t of a.entryConfig.onPause)await t()}(),async function(){if(c&&f===Et.Resume){const{returnValue:e}=t.state||{};if(await ne((()=>{window.history.replaceState({timestamp:t.state.timestamp},"",(Xt.useHash?"#":"")+t.location)})),c.entryConfig.onResume&&c.entryConfig.onResume.length>0)for(const t of c.entryConfig.onResume)await t(e)}}()])}await Promise.all([async function(){if(c&&f!==Et.NoOp&&c.entryConfig.onAfterLoad&&c.entryConfig.onAfterLoad.length>0)for(const t of c.entryConfig.onAfterLoad)await t()}(),async function(){if(a&&p!==Rt.NoOp&&a.entryConfig.onAfterUnload&&a.entryConfig.onAfterUnload.length>0)for(const t of a.entryConfig.onAfterUnload)await t()}()]),f===Et.New&&l.push(c),a&&p===Rt.Destroy&&(a.componentInstance.$destroy(),l.splice(l.indexOf(a),1)),Gt.set(l),fe=c,ee=t.state.timestamp,null===(i=Xt.dispatch)||void 0===i||i.call(Xt,"navigation-end",{location:t.location,navigationType:m,pageToLoad:c,pageToUnload:a,pageToLoadAction:f,pageToUnloadAction:p})}async function me(t){t!==Wt()&&(Xt.restoreScroll&&await ne((()=>{window.history.replaceState({timestamp:window.history.state?window.history.state.timestamp:(new Date).getTime(),scroll:{x:window.scrollY,y:window.scrollY}},"",(Xt.useHash?"#":"")+Wt())})),await ne((()=>{window.history.pushState(void 0,"",(Xt.useHash?"#":"")+t)})),Vt(window,"popstate"))}async function he(t){Kt=!0,await ne((()=>window.history.back())),await ne((()=>{window.history.replaceState({...window.history.state||{},returnValue:t},"",(Xt.useHash?"#":"")+Wt())})),Kt=!1,Vt(window,"popstate")}function ge(t){if(!ue)throw new Error('lifecycle functions can only be called while initializing or before preparing a component to resume (i.e. with a reactive statement on "params")');ue.onResume||(ue.onResume=[]),ue.onResume.push(t)}function ve(e){let n;return{c(){n=O("div"),E(n,"class","stack-router-mount-point")},m(t,s){_(t,n,s),e[6](n)},p:t,i:t,o:t,d(t){t&&L(n),e[6](null)}}}function $e(t,e,n){let s,{defaultResumable:i=!0}=e,{useHash:l=!0}=e,{restoreScroll:o=!0}=e,{transitionFn:r=qt(300)}=e,{routes:c}=e,a=tt();return Y((()=>{var t;t={mountPoint:s,routes:c,defaultResumable:i,useHash:l,restoreScroll:o,transitionFn:r,dispatch:a},ie({type:At.Mount,payload:t})})),Q((()=>{ie({type:At.Destroy})})),t.$$set=t=>{"defaultResumable"in t&&n(1,i=t.defaultResumable),"useHash"in t&&n(2,l=t.useHash),"restoreScroll"in t&&n(3,o=t.restoreScroll),"transitionFn"in t&&n(4,r=t.transitionFn),"routes"in t&&n(5,c=t.routes)},t.$$.update=()=>{var e;62&t.$$.dirty&&(e={routes:c,defaultResumable:i,useHash:l,restoreScroll:o,transitionFn:r},ie({type:At.UpdateConfig,payload:e}))},[s,i,l,o,r,c,function(t){st[t?"unshift":"push"]((()=>{s=t,n(0,s)}))}]}class we extends It{constructor(t){super(),Ot(this,t,$e,ve,r,{defaultResumable:1,useHash:2,restoreScroll:3,transitionFn:4,routes:5})}}var ye="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xe(t,e){return t(e={exports:{}},e.exports),e.exports}function be(t){return t&&t.default||t}function ze(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zM6.023 15.416C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function ke(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}xe((function(t){!function(e){function n(){return navigator.standalone||window.matchMedia("(display-mode: standalone)").matches}t.exports&&"undefined"!=typeof window?t.exports=n():e.isStandalone=n()}(ye)}));class Se extends It{constructor(t){super(),Ot(this,t,ke,ze,r,{size:0,color:1,class:2})}}function Ce(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Me(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class _e extends It{constructor(t){super(),Ot(this,t,Me,Ce,r,{size:0,color:1,class:2})}}function Le(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M13.172 12l-4.95-4.95 1.414-1.414L16 12l-6.364 6.364-1.414-1.414z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Te(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Oe extends It{constructor(t){super(),Ot(this,t,Te,Le,r,{size:0,color:1,class:2})}}function Ie(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Be(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class He extends It{constructor(t){super(),Ot(this,t,Be,Ie,r,{size:0,color:1,class:2})}}function Ne(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm5.563-4.3l3.359-3.359a2.25 2.25 0 0 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 0 0-3.182 3.182l3.359 3.359z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function De(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ee extends It{constructor(t){super(),Ot(this,t,De,Ne,r,{size:0,color:1,class:2})}}function Re(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"fill-rule","nonzero"),E(l,"d","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zm8.018-3.685L8.659 11.34a2.25 2.25 0 0 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Pe(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ae extends It{constructor(t){super(),Ot(this,t,Pe,Re,r,{size:0,color:1,class:2})}}function je(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zM10.962 8.1l-.447-.688C8.728 8.187 7.5 9.755 7.5 11.505c0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01v-.092c.006-.422.092-1.633 1.454-2.466l.185-.107-.447-.688zm4.553-.688c-1.787.775-3.015 2.343-3.015 4.093 0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01 0-.313-.029-1.762 1.639-2.665z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ue(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ve extends It{constructor(t){super(),Ot(this,t,Ue,je,r,{size:0,color:1,class:2})}}function Fe(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-9.485 2.412l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093zm5 0l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Je(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class qe extends It{constructor(t){super(),Ot(this,t,Je,Fe,r,{size:0,color:1,class:2})}}function Xe(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ge(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class We extends It{constructor(t){super(),Ot(this,t,Ge,Xe,r,{size:0,color:1,class:2})}}function Ke(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.5-14.5L10 10l-2.5 6.5L14 14l2.5-6.5zM12 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ye(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ze extends It{constructor(t){super(),Ot(this,t,Ye,Ke,r,{size:0,color:1,class:2})}}function Qe(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function tn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class en extends It{constructor(t){super(),Ot(this,t,tn,Qe,r,{size:0,color:1,class:2})}}function nn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm2.172 10.23L12 18.654l2.617-2.623-9.645-9.645c-1.294 1.497-1.3 3.735.008 5.237zm15.263-6.866c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636-1.414-1.414 1.59-1.592c1.374-1.576 1.299-3.958-.193-5.453-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-.35-.314-.741-.555-1.155-.723l-2.25-2.25c1.668-.206 3.407.289 4.74 1.484 2.349-2.109 5.979-2.039 8.242.228z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function sn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ln extends It{constructor(t){super(),Ot(this,t,sn,nn,r,{size:0,color:1,class:2})}}function on(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236C5.515 3 8.093 2.56 10.261 3.44L6.343 7.358l1.414 1.415L12 4.53l-.013-.014.014.013c2.349-2.109 5.979-2.039 8.242.228z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function rn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class cn extends It{constructor(t){super(),Ot(this,t,rn,on,r,{size:0,color:1,class:2})}}function an(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zM5.172 6.172c-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454-1.487-1.49-3.881-1.562-5.453-.186l-4.202 4.203-1.415-1.414 2.825-2.827-.082-.069c-1.575-1.265-3.877-1.157-5.328.295z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function un(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class dn extends It{constructor(t){super(),Ot(this,t,un,an,r,{size:0,color:1,class:2})}}function fn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function pn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class mn extends It{constructor(t){super(),Ot(this,t,pn,fn,r,{size:0,color:1,class:2})}}function hn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.978-1.187-7.084-3.937-9.132-8.5h4.698l.934-1.556 3 5L13.566 13H17v-2h-4.566l-.934 1.556-3-5L6.434 11H2.21C2.074 10.363 2 9.696 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function gn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class vn extends It{constructor(t){super(),Ot(this,t,gn,hn,r,{size:0,color:1,class:2})}}function $n(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.977-1.186-7.083-3.937-9.131-8.499L1 13v-2h1.21C2.074 10.364 2 9.698 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm0 2c-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 .685.09 1.352.267 2h2.167L8.5 7.556l3 5L12.434 11H17v2h-3.434L11.5 16.444l-3-5L7.566 13H5.108c.79 1.374 1.985 2.668 3.537 3.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function wn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class yn extends It{constructor(t){super(),Ot(this,t,wn,$n,r,{size:0,color:1,class:2})}}function xn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function bn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class zn extends It{constructor(t){super(),Ot(this,t,bn,xn,r,{size:0,color:1,class:2})}}function kn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Sn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Cn extends It{constructor(t){super(),Ot(this,t,Sn,kn,r,{size:0,color:1,class:2})}}function Mn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M6 5h2v14H6V5zm10 0h2v14h-2V5z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function _n(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ln extends It{constructor(t){super(),Ot(this,t,_n,Mn,r,{size:0,color:1,class:2})}}function Tn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM10.622 8.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function On(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class In extends It{constructor(t){super(),Ot(this,t,On,Tn,r,{size:0,color:1,class:2})}}function Bn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M19.376 12.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Hn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Nn extends It{constructor(t){super(),Ot(this,t,Hn,Bn,r,{size:0,color:1,class:2})}}function Dn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function En(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Rn extends It{constructor(t){super(),Ot(this,t,En,Dn,r,{size:0,color:1,class:2})}}function Pn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83zM18 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function An(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class jn extends It{constructor(t){super(),Ot(this,t,An,Pn,r,{size:0,color:1,class:2})}}function Un(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"fill-rule","nonzero"),E(l,"d","M9 8.482v7.036L15.03 12 9 8.482zM7.752 5.44l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Vn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Fn extends It{constructor(t){super(),Ot(this,t,Vn,Un,r,{size:0,color:1,class:2})}}function Jn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-3a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function qn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Xn extends It{constructor(t){super(),Ot(this,t,qn,Jn,r,{size:0,color:1,class:2})}}function Gn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 10h3V6H4v4h11V8h2v2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm1 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Wn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Kn extends It{constructor(t){super(),Ot(this,t,Wn,Gn,r,{size:0,color:1,class:2})}}function Yn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 10V8h-2v2H5V6h14v4h-2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm4 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Zn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Qn extends It{constructor(t){super(),Ot(this,t,Zn,Yn,r,{size:0,color:1,class:2})}}function ts(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function es(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ns extends It{constructor(t){super(),Ot(this,t,es,ts,r,{size:0,color:1,class:2})}}function ss(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-17.932a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10V2.068zM11 8h2v8h-2v-6H9V9l2-1z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function is(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ls extends It{constructor(t){super(),Ot(this,t,is,ss,r,{size:0,color:1,class:2})}}function os(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function rs(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class cs extends It{constructor(t){super(),Ot(this,t,rs,os,r,{size:0,color:1,class:2})}}function as(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function us(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ds extends It{constructor(t){super(),Ot(this,t,us,as,r,{size:0,color:1,class:2})}}function fs(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function ps(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ms extends It{constructor(t){super(),Ot(this,t,ps,fs,r,{size:0,color:1,class:2})}}function hs(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function gs(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class vs extends It{constructor(t){super(),Ot(this,t,gs,hs,r,{size:0,color:1,class:2})}}function $s(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M7.788 17.444A.5.5 0 0 1 7 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function ws(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ys extends It{constructor(t){super(),Ot(this,t,ws,$s,r,{size:0,color:1,class:2})}}function xs(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M20 4v12h3l-4 5-4-5h3V4h2zm-8 14v2H3v-2h9zm2-7v2H3v-2h11zm0-7v2H3V4h11z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function bs(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class zs extends It{constructor(t){super(),Ot(this,t,bs,xs,r,{size:0,color:1,class:2})}}function ks(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ss(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Cs extends It{constructor(t){super(),Ot(this,t,Ss,ks,r,{size:0,color:1,class:2})}}function Ms(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M2 9h3v12H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm5.293-1.293l6.4-6.4a.5.5 0 0 1 .654-.047l.853.64a1.5 1.5 0 0 1 .553 1.57L14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H8a1 1 0 0 1-1-1V8.414a1 1 0 0 1 .293-.707z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function _s(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ls extends It{constructor(t){super(),Ot(this,t,_s,Ms,r,{size:0,color:1,class:2})}}function Ts(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h3.482a1 1 0 0 0 .817-.423L11.752.85a.5.5 0 0 1 .632-.159l1.814.907a2.5 2.5 0 0 1 1.305 2.853L14.6 8zM7 10.588V19h11.16L21 12.104V10h-6.4a2 2 0 0 1-1.938-2.493l.903-3.548a.5.5 0 0 0-.261-.571l-.661-.33-4.71 6.672c-.25.354-.57.644-.933.858zM5 11H3v8h2v-8z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Os(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Is extends It{constructor(t){super(),Ot(this,t,Os,Ts,r,{size:0,color:1,class:2})}}xe((function(t,e){var n;n=function(){function t(){for(var t=0,e={};t<arguments.length;t++){var n=arguments[t];for(var s in n)e[s]=n[s]}return e}function e(t){return t.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(s){function i(){}function l(e,n,l){if("undefined"!=typeof document){"number"==typeof(l=t({path:"/"},i.defaults,l)).expires&&(l.expires=new Date(1*new Date+864e5*l.expires)),l.expires=l.expires?l.expires.toUTCString():"";try{var o=JSON.stringify(n);/^[\{\[]/.test(o)&&(n=o)}catch(t){}n=s.write?s.write(n,e):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var r="";for(var c in l)l[c]&&(r+="; "+c,!0!==l[c]&&(r+="="+l[c].split(";")[0]));return document.cookie=e+"="+n+r}}function o(t,n){if("undefined"!=typeof document){for(var i={},l=document.cookie?document.cookie.split("; "):[],o=0;o<l.length;o++){var r=l[o].split("="),c=r.slice(1).join("=");n||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var a=e(r[0]);if(c=(s.read||s)(c,a)||e(c),n)try{c=JSON.parse(c)}catch(t){}if(i[a]=c,t===a)break}catch(t){}}return t?i[t]:i}}return i.set=l,i.get=function(t){return o(t,!1)},i.getJSON=function(t){return o(t,!0)},i.remove=function(e,n){l(e,"",t(n,{expires:-1}))},i.defaults={},i.withConverter=n,i}((function(){}))},t.exports=n()}));var Bs={"大笑":"86","可爱":"85","憨笑":"359","色":"95","亲亲":"363","惊恐":"96","流泪":"356","亲":"362","呆":"352","哀伤":"342","呲牙":"343","吐舌":"348","撇嘴":"353","怒":"361","奸笑":"341","汗":"97","痛苦":"346","惶恐":"354","生病":"350","口罩":"351","大哭":"357","晕":"355","发怒":"115","开心":"360","鬼脸":"94","皱眉":"87","流感":"358","爱心":"33","心碎":"34","钟情":"303","星星":"309","生气":"314","便便":"89","强":"13","弱":"372","拜":"14","牵手":"379","跳舞":"380","禁止":"374","这边":"262","爱意":"106","示爱":"376","嘴唇":"367","狗":"81","猫":"78","猪":"100","兔子":"459","小鸡":"450","公鸡":"461","幽灵":"116","圣诞":"411","外星":"101","钻石":"52","礼物":"107","男孩":"0","女孩":"1","蛋糕":"337",18:"186","圈":"312","叉":"313","多多大笑":"dx2","多多耍酷":"dx3","多多比耶":"dx4","多多大哭":"dx5","多多瞌睡":"dx6","多多难过":"dx7","多多笑哭":"dx8","多多可怜":"dx8","多多无语":"dx10","多多捂脸":"dx11","多多亲吻":"dx12","多多调皮":"dx13","西西心动":"dx14","西西发怒":"dx15","西西惊讶":"dx16","西西奸笑":"dx17","西西晕了":"dx18","西西机智":"dx19","西西惊吓":"dx20","西西流汗":"dx21","西西呕吐":"dx22","西西再见":"dx23","西西疑问":"dx24"};const Hs=()=>localStorage.getItem("fullWidth");function Ns(t,e="yyyy年MM月dd日"){const n=new Date(t),s=n.getFullYear(),i=n.getMonth()+1<10?"0"+(n.getMonth()+1):n.getMonth()+1,l=n.getDate()<10?"0"+n.getDate():n.getDate(),o=n.getHours()<10?"0"+n.getHours():n.getHours(),r=n.getMinutes()<10?"0"+n.getMinutes():n.getMinutes(),c=n.getSeconds()<10?"0"+n.getSeconds():n.getSeconds();switch(e){case"yyyy年MM月dd日":return`${s}年${i}月${l}日`;case"yyyyMMdd":return`${s}${i}${l}`;case"yyyy-MM-dd":return`${s}-${i}-${l}`;case"yyyy/MM/dd":return`${s}/${i}/${l}`;case"yyyy-MM-dd hh:mm:ss":return`${s}-${i}-${l} ${o}:${r}:${c}`;default:console.log("format参数不对")}}function Ds(t=[],e=!0){let n=[];if(e){for(let e=0;e<t.length;e++)n.push(t[e].name);return n.join("/")}for(let e=0;e<t.length;e++)n.push(t[e]);return n.join("/")}function Es(t,e=1){let n=parseInt(t).toString();if(n.length<5)return n;if(n.length>8){let s=n.substring(n.length-8,n.length-8+e);return parseFloat(parseInt(t/1e8)+"."+s)+"亿"}if(n.length>4){let s=n.substring(n.length-4,n.length-4+e);return parseFloat(parseInt(t/1e4)+"."+s)+"万"}}function Rs(t,e){window.requestAnimationFrame||(window.requestAnimationFrame=function(t,e){return setTimeout(t,17)});var n=t.scrollTop,s=function(){var i=e-n;n+=i/10,Math.abs(i)<1?t.scrollTo(0,e):(t.scrollTo(0,n),requestAnimationFrame(s))};s()}function Ps(t,e,n){if(e=isNaN(e)?1e3:e,"1"===localStorage.getItem("isShowToast"));else{localStorage.setItem("isShowToast","1");let s=document.createElement("div");s.innerHTML=t,s.style.cssText="max-width:80%;padding:10px;color: rgb(255, 255, 255);text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 14px;",document.body.appendChild(s),setTimeout((function(){s.style.transition="ttransform 0.5s ease-in, opacity 0.5s ease-in",s.style.opacity="0",setTimeout((function(){localStorage.setItem("isShowToast","0"),document.body.removeChild(s),"function"==typeof n&&n()}),500)}),e)}}function As(t,e="我知道了"){let n=document.createElement("div");n.onclick=function(){document.body.removeChild(n)};let s=`<div>${t}</div><div style='height:36px;width:60%;line-height:36px;color:#fff;margin:20px auto 0px;background:var(--primary-text-color);border-radius: 4px;'>${e}</div>`;n.innerHTML=s,n.style.cssText="width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)",document.body.appendChild(n)}function js(t,e=150){let n=[];if(t.length<=e)return n.push(t),n;{let s=0;for(;s<t.length;)n.push(t.slice(s,s+=e));return n}}function Us(t){const e=/\[[^\[\]]{1,4}\]/g;if(t.match(e)){let n=t.match(e);if(n.length>0){for(let t=0;t<n.length;t++)if(n[t].indexOf("][")>-1){let e=n[t].split("][");for(let t=0;t<e.length;t++)"["!==e[t].substr(0,1)&&(e[t]=`[${e[t]}`),"]"!==e[t].substr(e[t].length-1,1)&&(e[t]=`${e[t]}]`);n=e}for(let t=0;t<n.length;t++)n[t]=n[t].substr(1),n[t]=n[t].substring(0,n[t].length-1);const e=n;if(e.length>1){let n=t;for(let s=0;s<e.length;s++)n=Bs.hasOwnProperty(e[s])?n.replace(new RegExp(`\\[${e[s]}\\]`,"g"),`<img style="vertical-align:middle;height:18px;width:18px;" src="${Vs(Bs[e[s]])}"></img>`):t;return`<span>${n}</span>`}if(Bs.hasOwnProperty(e[0])){return`<span>${t.replace(new RegExp(`\\[${e[0]}\\]`,"g"),`<img style="vertical-align:middle;height:18px;width:18px;" src="${Vs(Bs[e[0]])}"></img>`)}</span>`}return`<span>${t}</span>`}return`<span>${t}</span>`}return`<span>${t}</span>`}function Vs(t){return"dx"===t.substring(0,2)?`/images/dd_and_xx/${t}.png`:`https://s1.music.126.net/style/web2/emt/emoji_${t}.png`}function Fs(t){let e=new Object,n="";if(-1!=t.indexOf("?")){n=t.substr(1).split("&");for(let t=0;t<n.length;t++)e[n[t].split("=")[0]]=decodeURIComponent(n[t].split("=")[1])}return e}function Js(t,e=!1){if(e)for(let e=0;e<t.childNodes.length;e++)t.childNodes[e].addEventListener("touchstart",qs),t.childNodes[e].addEventListener("touchend",Xs);else t.addEventListener("touchstart",qs),t.addEventListener("touchend",Xs)}function qs(t){const e=this,{x:n,y:s,centerX:i,centerY:l,size:o}=function(t,e){const{top:n,left:s}=t.getBoundingClientRect(),{clientWidth:i,clientHeight:l}=t,o=Math.sqrt(i**2+l**2)/2,r=2*o;return{x:e.changedTouches[0].clientX-s-o,y:e.changedTouches[0].clientY-n-o,centerX:(i-2*o)/2,centerY:(l-2*o)/2,size:r}}(e,t),r=document.createElement("div");r.classList.add("my-ripple"),r.style.opacity="0",r.style.transform=`translate(${n}px, ${s}px) scale3d(.3, .3, .3)`,r.style.width=`${o}px`,r.style.height=`${o}px`,r.dataset.createdAt=String(performance.now());const{position:c}=window.getComputedStyle(e);e.style.overflow="hidden","static"===c&&(this.style.position="relative"),e.appendChild(r),window.setTimeout((()=>{r.style.transform=`translate(${i}px, ${l}px) scale3d(1, 1, 1)`,r.style.opacity=".2"}))}function Xs(){const t=this.querySelectorAll(".my-ripple");if(!t.length)return;const e=t[t.length-1],n=300-performance.now()+Number(e.dataset.createdAt);setTimeout((()=>{e.style.opacity="0",setTimeout((()=>e.parentNode?.removeChild(e)),300)}),n)}function Gs(t){var e,n,s,i="00:00";return t>0&&((e=Math.floor(t/3600))<10&&(e="0"+e),(n=Math.floor((t-3600*e)/60))<10&&(n="0"+n),(s=Math.floor((t-3600*e-60*n)%60))<10&&(s="0"+s),i="00"==e||"00"==n?n+":"+s:s),i}function Ws(t){let e,n,s,i;const l=t[4].default,o=p(l,t,t[3],null);return{c(){e=O("button"),o&&o.c(),E(e,"class","botton svelte-1svp9rd"),U(e,"default","default"===t[0]),U(e,"primary","primary"===t[0])},m(l,r){_(l,e,r),o&&o.m(e,null),t[5](e),n=!0,s||(i=D(e,"click",t[2]),s=!0)},p(t,[s]){o&&o.p&&(!n||8&s)&&g(o,l,t,t[3],n?h(l,t[3],s,null):v(t[3]),null),1&s&&U(e,"default","default"===t[0]),1&s&&U(e,"primary","primary"===t[0])},i(t){n||(xt(o,t),n=!0)},o(t){bt(o,t),n=!1},d(n){n&&L(e),o&&o.d(n),t[5](null),s=!1,i()}}}function Ks(t,e,n){let{$$slots:s={},$$scope:i}=e,{type:l="default"}=e;const o=tt();let r;return Y((()=>{r&&Js(r)})),t.$$set=t=>{"type"in t&&n(0,l=t.type),"$$scope"in t&&n(3,i=t.$$scope)},[l,r,function(){o("BtnClick")},i,s,function(t){st[t?"unshift":"push"]((()=>{r=t,n(1,r)}))}]}class Ys extends It{constructor(t){super(),Ot(this,t,Ks,Ws,r,{type:0})}}function Zs(t,e,n){const s=t.slice();return s[17]=e[n],s}function Qs(t){let e,n,s=t[6],i=[];for(let e=0;e<s.length;e+=1)i[e]=ti(Zs(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){for(let t=0;t<i.length;t+=1)i[t].c();e=N()},m(t,s){for(let e=0;e<i.length;e+=1)i[e].m(t,s);_(t,e,s),n=!0},p(t,n){if(2240&n){let o;for(s=t[6],o=0;o<s.length;o+=1){const l=Zs(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=ti(l),i[o].c(),xt(i[o],1),i[o].m(e.parentNode,e))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){T(i,t),t&&L(e)}}}function ti(t){let e,n,s,i,l,o,r;var c=t[17].icon;function a(){return t[14](t[17])}return c&&(s=new c({props:{size:"22",style:"vertical-align: middle"}})),{c(){e=O("div"),n=O("span"),s&&_t(s.$$.fragment),i=H(),E(n,"class","svelte-zr2dre"),U(n,"rotate-icon","RefreshLine"===t[17].id&&t[7]),E(e,"class","right-item svelte-zr2dre")},m(t,c){_(t,e,c),S(e,n),s&&Lt(s,n,null),S(e,i),l=!0,o||(r=D(e,"click",a),o=!0)},p(e,i){if(c!==(c=(t=e)[17].icon)){if(s){wt();const t=s;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}c?(s=new c({props:{size:"22",style:"vertical-align: middle"}}),_t(s.$$.fragment),xt(s.$$.fragment,1),Lt(s,n,null)):s=null}192&i&&U(n,"rotate-icon","RefreshLine"===t[17].id&&t[7])},i(t){l||(s&&xt(s.$$.fragment,t),l=!0)},o(t){s&&bt(s.$$.fragment,t),l=!1},d(t){t&&L(e),s&&Tt(s),o=!1,r()}}}function ei(t){let e,n,s,i,l,o,r,c,a,u,d;s=new _e({props:{size:"22",style:"vertical-align: middle"}});let f=t[6].length>0&&Qs(t);return{c(){e=O("div"),n=O("div"),_t(s.$$.fragment),i=H(),l=O("div"),o=B(t[0]),r=H(),c=O("div"),f&&f.c(),E(n,"class","left svelte-zr2dre"),j(n,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),U(n,"transparent",t[2]),E(l,"class","center svelte-zr2dre"),j(l,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),U(l,"dark",t[5]),E(c,"class","right svelte-zr2dre"),E(e,"class","nav secondary svelte-zr2dre"),j(e,"background-color","rgba(255, 255, 255, "+(t[2]?t[4]:1)+")"),U(e,"transparent",t[2]),U(e,"fixed",!!t[2]||t[3])},m(p,m){_(p,e,m),S(e,n),Lt(s,n,null),t[12](n),S(e,i),S(e,l),S(l,o),S(e,r),S(e,c),f&&f.m(c,null),t[15](c),a=!0,u||(d=D(n,"click",t[13]),u=!0)},p(t,[s]){(!a||20&s)&&j(n,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),4&s&&U(n,"transparent",t[2]),(!a||1&s)&&P(o,t[0]),(!a||20&s)&&j(l,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),32&s&&U(l,"dark",t[5]),t[6].length>0?f?(f.p(t,s),64&s&&xt(f,1)):(f=Qs(t),f.c(),xt(f,1),f.m(c,null)):f&&(wt(),bt(f,1,1,(()=>{f=null})),yt()),(!a||20&s)&&j(e,"background-color","rgba(255, 255, 255, "+(t[2]?t[4]:1)+")"),4&s&&U(e,"transparent",t[2]),12&s&&U(e,"fixed",!!t[2]||t[3])},i(t){a||(xt(s.$$.fragment,t),xt(f),a=!0)},o(t){bt(s.$$.fragment,t),bt(f),a=!1},d(n){n&&L(e),Tt(s),t[12](null),f&&f.d(),t[15](null),u=!1,d()}}}function ni(t,e,n){let s,i,{title:l="Title"}=e,{leftEvent:o=!1}=e,{transparent:r=!1}=e,{fixed:c=!0}=e,{alphaNumber:a=1}=e,{dark:u=!1}=e,{rightIcons:d=[]}=e,{isRefresh:f=!1}=e;Y((()=>(s&&Js(s),i&&Js(i),()=>{n(9,i=null)}))),Z((()=>{i&&Js(i,!0)}));const p=tt();function m(){p("setLeftClick")}function h(t){p("setRightIconClick",{id:t})}return t.$$set=t=>{"title"in t&&n(0,l=t.title),"leftEvent"in t&&n(1,o=t.leftEvent),"transparent"in t&&n(2,r=t.transparent),"fixed"in t&&n(3,c=t.fixed),"alphaNumber"in t&&n(4,a=t.alphaNumber),"dark"in t&&n(5,u=t.dark),"rightIcons"in t&&n(6,d=t.rightIcons),"isRefresh"in t&&n(7,f=t.isRefresh)},[l,o,r,c,a,u,d,f,s,i,m,h,function(t){st[t?"unshift":"push"]((()=>{s=t,n(8,s)}))},()=>{o?m():he()},t=>h(t.id),function(t){st[t?"unshift":"push"]((()=>{i=t,n(9,i)}))}]}class si extends It{constructor(t){super(),Ot(this,t,ni,ei,r,{title:0,leftEvent:1,transparent:2,fixed:3,alphaNumber:4,dark:5,rightIcons:6,isRefresh:7})}}function ii(e){let n;return{c(){n=O("div"),E(n,"class","diveder svelte-zquzag")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}class li extends It{constructor(t){super(),Ot(this,t,null,ii,r,{})}}function oi(t){let e,n,s,i;return{c(){e=O("span"),n=B(t[5]),E(e,"class","right-btn svelte-17e6v9z")},m(l,o){_(l,e,o),S(e,n),s||(i=D(e,"click",t[9]),s=!0)},p(t,e){32&e&&P(n,t[5])},d(t){t&&L(e),s=!1,i()}}}function ri(e){let n,s,i,o,r,c,a,u,d,f=e[4]&&oi(e);return{c(){n=O("div"),s=O("div"),i=B(e[1]),o=H(),r=O("input"),a=H(),f&&f.c(),E(s,"class","label svelte-17e6v9z"),E(r,"maxlength",e[2]),E(r,"placeholder",c=e[3]?e[3]:e[7]),j(r,"width",e[4]?"75%":"100%"),E(r,"class","svelte-17e6v9z"),E(n,"class","box svelte-17e6v9z")},m(t,l){_(t,n,l),S(n,s),S(s,i),S(n,o),S(n,r),A(r,e[0]),e[12](r),S(n,a),f&&f.m(n,null),u||(d=[D(r,"input",e[11]),D(r,"input",e[8])],u=!0)},p(t,[e]){2&e&&P(i,t[1]),4&e&&E(r,"maxlength",t[2]),136&e&&c!==(c=t[3]?t[3]:t[7])&&E(r,"placeholder",c),16&e&&j(r,"width",t[4]?"75%":"100%"),1&e&&r.value!==t[0]&&A(r,t[0]),t[4]?f?f.p(t,e):(f=oi(t),f.c(),f.m(n,null)):f&&(f.d(1),f=null)},i:t,o:t,d(t){t&&L(n),e[12](null),f&&f.d(),u=!1,l(d)}}}function ci(t,e,n){let s,i,{label:l="label"}=e,{type:o="text"}=e,{maxlength:r=15}=e,{placeholder:c=null}=e,{value:a=""}=e,{rightBtn:u=!1}=e,{btnText:d="获取验证码"}=e;const f=tt();return Y((()=>{setTimeout((function(){i.scrollIntoView(!0),i.scrollIntoViewIfNeeded()}),300),n(6,i.type=o,i)})),t.$$set=t=>{"label"in t&&n(1,l=t.label),"type"in t&&n(10,o=t.type),"maxlength"in t&&n(2,r=t.maxlength),"placeholder"in t&&n(3,c=t.placeholder),"value"in t&&n(0,a=t.value),"rightBtn"in t&&n(4,u=t.rightBtn),"btnText"in t&&n(5,d=t.btnText)},t.$$.update=()=>{2&t.$$.dirty&&n(7,s="请输入"+l)},[a,l,r,c,u,d,i,s,function(){f("setInput",{value:a})},function(){f("setBtn")},o,function(){a=this.value,n(0,a)},function(t){st[t?"unshift":"push"]((()=>{i=t,n(6,i)}))}]}class ai extends It{constructor(t){super(),Ot(this,t,ci,ri,r,{label:1,type:10,maxlength:2,placeholder:3,value:0,rightBtn:4,btnText:5})}}function ui(e){let n,s,i,o,r,c,a;return{c(){n=O("div"),s=O("div"),i=O("div"),o=H(),r=O("div"),E(i,"class","ball svelte-ckiir6"),j(i,"left","calc("+e[1]/e[0]*100+"% - 7px)"),E(r,"class","fill svelte-ckiir6"),j(r,"transform","scaleX("+e[1]/e[0]+")"),E(s,"class","rail svelte-ckiir6"),E(n,"class","slider svelte-ckiir6")},m(t,l){_(t,n,l),S(n,s),S(s,i),S(s,o),S(s,r),e[11](n),c||(a=[D(n,"click",e[3]),D(n,"touchstart",e[4]),D(n,"touchmove",e[6]),D(n,"touchend",e[5])],c=!0)},p(t,[e]){3&e&&j(i,"left","calc("+t[1]/t[0]*100+"% - 7px)"),3&e&&j(r,"transform","scaleX("+t[1]/t[0]+")")},i:t,o:t,d(t){t&&L(n),e[11](null),c=!1,l(a)}}}function di(t,e,n){let s,{min:i=0}=e,{max:l=100}=e,{step:o=1}=e,{current:r=0}=e,{timeCurrent:c=0}=e,a=0,u=0,d=20;const f=tt();function p(){f("setCurrent",{current:r})}function m(){f("setTimeCurrent",{timeCurrent:c})}return Y((()=>{u=s.clientWidth/(l/o)})),Z((()=>{n(1,a=r)})),t.$$set=t=>{"min"in t&&n(9,i=t.min),"max"in t&&n(0,l=t.max),"step"in t&&n(10,o=t.step),"current"in t&&n(7,r=t.current),"timeCurrent"in t&&n(8,c=t.timeCurrent)},[l,a,s,function(t){const e=t.clientX-s.getBoundingClientRect().left,i=Math.round(e/u)*o;n(7,r=n(1,a=i)),p()},function(t){d=t.changedTouches[0].clientX},function(t){d=t.changedTouches[0].clientX,n(7,r=n(8,c=n(1,a=d<=20?i:d>=355?l:(d-20)/335*100))),p(),m()},function(t){d=t.changedTouches[0].clientX,n(8,c=n(1,a=d<=20?i:d>=355?l:(d-20)/335*100)),m()},r,c,i,o,function(t){st[t?"unshift":"push"]((()=>{s=t,n(2,s)}))}]}class fi extends It{constructor(t){super(),Ot(this,t,di,ui,r,{min:9,max:0,step:10,current:7,timeCurrent:8})}}const pi=Nt(!1),mi=Nt(!!JSON.parse(localStorage.getItem("isLogin"))),hi=Nt(!0),gi=Nt(!1),vi=Nt("1"),$i=Nt("0"!==localStorage.getItem("restoreScroll")),wi=Nt(localStorage.getItem("musicQuality")?localStorage.getItem("musicQuality"):"0"),yi=Nt("0"!==localStorage.getItem("isShowTranslate")),xi=Nt(0),bi=Nt(""),zi=Nt("0"===localStorage.getItem("isShowComment")?"0":"1"),ki="/images/defaultCover.png";function Si(t,e,n){const s=t.slice();return s[6]=e[n],s[7]=e,s[8]=n,s}function Ci(t){let e,n,s,i,l,o,r,c,a,u,d=t[6].text+"",f=t[8];var p=t[6].icon;function m(){return t[4](t[8])}p&&(s=new p({props:{size:"24px"}}));const h=()=>t[5](e,f),g=()=>t[5](null,f);return{c(){e=O("div"),n=O("div"),s&&_t(s.$$.fragment),i=H(),l=O("div"),o=B(d),r=H(),E(l,"class","nav-text svelte-1v0ei6g"),E(e,"class","nav-item svelte-1v0ei6g"),U(e,"active",t[2]===t[8])},m(t,d){_(t,e,d),S(e,n),s&&Lt(s,n,null),S(e,i),S(e,l),S(l,o),S(e,r),h(),c=!0,a||(u=D(e,"click",m),a=!0)},p(i,l){if(p!==(p=(t=i)[6].icon)){if(s){wt();const t=s;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}p?(s=new p({props:{size:"24px"}}),_t(s.$$.fragment),xt(s.$$.fragment,1),Lt(s,n,null)):s=null}f!==t[8]&&(g(),f=t[8],h()),4&l&&U(e,"active",t[2]===t[8])},i(t){c||(s&&xt(s.$$.fragment,t),c=!0)},o(t){s&&bt(s.$$.fragment,t),c=!1},d(t){t&&L(e),s&&Tt(s),g(),a=!1,u()}}}function Mi(t){let e,n,s=t[3],i=[];for(let e=0;e<s.length;e+=1)i[e]=Ci(Si(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","secondary nav svelte-1v0ei6g"),j(e,"bottom",t[1]?"0px":"calc(-55px - env(safe-area-inset-bottom))")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,[o]){if(13&o){let n;for(s=t[3],n=0;n<s.length;n+=1){const l=Si(t,s,n);i[n]?(i[n].p(l,o),xt(i[n],1)):(i[n]=Ci(l),i[n].c(),xt(i[n],1),i[n].m(e,null))}for(wt(),n=s.length;n<i.length;n+=1)l(n);yt()}(!n||2&o)&&j(e,"bottom",t[1]?"0px":"calc(-55px - env(safe-area-inset-bottom))")},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function _i(t,e,n){let s,i;f(t,hi,(t=>n(1,s=t))),f(t,vi,(t=>n(2,i=t)));const l=[{icon:Ls,text:"推荐",path:"/love"},{icon:Ze,text:"发现",path:"/discover"},{icon:Se,text:"我的",path:"/mine"}];let o=[];Y((()=>{if(o.length>0)for(let t=0;t<o.length;t++)Js(o[t])}));return[o,s,i,l,t=>{vi.set(t)},function(t,e){st[t?"unshift":"push"]((()=>{o[e]=t,n(0,o)}))}]}class Li extends It{constructor(t){super(),Ot(this,t,_i,Mi,r,{})}}function Ti(e){let n,s,i,l;return{c(){n=O("div"),s=O("div"),E(s,"class","ball svelte-5vgcov"),j(s,"left",e[0]?"25px":"1px"),E(n,"class","box svelte-5vgcov"),j(n,"background-color",e[0]?"var(--primary-text-color)":"rgb(177, 177, 177)")},m(t,o){_(t,n,o),S(n,s),i||(l=D(n,"click",e[1]),i=!0)},p(t,[e]){1&e&&j(s,"left",t[0]?"25px":"1px"),1&e&&j(n,"background-color",t[0]?"var(--primary-text-color)":"rgb(177, 177, 177)")},i:t,o:t,d(t){t&&L(n),i=!1,l()}}}function Oi(t,e,n){let{check:s=!1}=e;const i=tt();return t.$$set=t=>{"check"in t&&n(0,s=t.check)},[s,function(){i("switchClick",{check:!s})}]}class Ii extends It{constructor(t){super(),Ot(this,t,Oi,Ti,r,{check:0})}}function Bi(t){let e,n;return{c(){e=O("div"),n=B(t[2]),E(e,"class","title-des svelte-lgfbu")},m(t,s){_(t,e,s),S(e,n)},p(t,e){4&e&&P(n,t[2])},d(t){t&&L(e)}}}function Hi(e){let n;return{c(){n=B(e[4])},m(t,e){_(t,n,e)},p(t,e){16&e&&P(n,t[4])},i:t,o:t,d(t){t&&L(n)}}}function Ni(t){let e,n,s;return n=new Ii({props:{check:t[0]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","switch svelte-lgfbu"),j(e,"margin-top",""===t[2]?"2px":"8.5px")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,i){const l={};1&i&&(l.check=t[0]),n.$set(l),(!s||4&i)&&j(e,"margin-top",""===t[2]?"2px":"8.5px")},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Di(t){let e,n,s,i;return s=new Oe({props:{size:"20",style:"vertical-align: middle;"}}),{c(){e=O("div"),n=O("span"),_t(s.$$.fragment),j(n,"position","relative"),j(n,"top","-1px"),E(e,"class","arrow svelte-lgfbu"),j(e,"line-height",""===t[2]?"26px":"39px")},m(t,l){_(t,e,l),S(e,n),Lt(s,n,null),i=!0},p(t,n){(!i||4&n)&&j(e,"line-height",""===t[2]?"26px":"39px")},i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(s)}}}function Ei(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h=""!=t[2]&&Bi(t);const g=[Ni,Hi],v=[];function $(t,e){return"Switch"===t[4]?0:1}a=$(t),u=v[a]=g[a](t);let w=t[3]&&Di(t);return{c(){e=O("div"),n=O("div"),s=O("div"),i=B(t[1]),l=H(),h&&h.c(),o=H(),r=O("div"),c=O("div"),u.c(),d=H(),w&&w.c(),E(s,"class","title-main svelte-lgfbu"),E(n,"class","title svelte-lgfbu"),E(c,"class","desc-title svelte-lgfbu"),E(r,"class","desc svelte-lgfbu"),E(e,"class","cell svelte-lgfbu")},m(u,g){_(u,e,g),S(e,n),S(n,s),S(s,i),S(n,l),h&&h.m(n,null),S(e,o),S(e,r),S(r,c),v[a].m(c,null),S(e,d),w&&w.m(e,null),t[7](e),f=!0,p||(m=D(e,"click",t[6]),p=!0)},p(t,[s]){(!f||2&s)&&P(i,t[1]),""!=t[2]?h?h.p(t,s):(h=Bi(t),h.c(),h.m(n,null)):h&&(h.d(1),h=null);let l=a;a=$(t),a===l?v[a].p(t,s):(wt(),bt(v[l],1,1,(()=>{v[l]=null})),yt(),u=v[a],u?u.p(t,s):(u=v[a]=g[a](t),u.c()),xt(u,1),u.m(c,null)),t[3]?w?(w.p(t,s),8&s&&xt(w,1)):(w=Di(t),w.c(),xt(w,1),w.m(e,null)):w&&(wt(),bt(w,1,1,(()=>{w=null})),yt())},i(t){f||(xt(u),xt(w),f=!0)},o(t){bt(u),bt(w),f=!1},d(n){n&&L(e),h&&h.d(),v[a].d(),w&&w.d(),t[7](null),p=!1,m()}}}function Ri(t,e,n){let s,{title:i="标题"}=e,{titleDesc:l=""}=e,{arrow:o=!1}=e,{desc:r=""}=e,{cellCheck:c=!1}=e;const a=tt();return Y((()=>{s&&Js(s)})),t.$$set=t=>{"title"in t&&n(1,i=t.title),"titleDesc"in t&&n(2,l=t.titleDesc),"arrow"in t&&n(3,o=t.arrow),"desc"in t&&n(4,r=t.desc),"cellCheck"in t&&n(0,c=t.cellCheck)},[c,i,l,o,r,s,function(){"Switch"===r?(n(0,c=!c),a("cellClick",{cellCheck:c})):a("cellClick")},function(t){st[t?"unshift":"push"]((()=>{s=t,n(5,s)}))}]}class Pi extends It{constructor(t){super(),Ot(this,t,Ri,Ei,r,{title:1,titleDesc:2,arrow:3,desc:4,cellCheck:0})}}function Ai(t,e,n){const s=t.slice();return s[5]=e[n],s[7]=n,s}function ji(t){let e,n;return e=new We({props:{size:"20",color:"rgb(214, 214, 214)",style:"vertical-align: middle;"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ui(t){let e,n;return e=new Xn({props:{size:"20",color:"var(--primary-text-color)",style:"vertical-align: middle;"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Vi(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h=t[5].text+"",g=t[5].desc+"";const v=[Ui,ji],$=[];function w(t,e){return t[0]===t[7]?0:1}function y(){return t[3](t[7])}return s=w(t),i=$[s]=v[s](t),{c(){e=O("div"),n=O("div"),i.c(),l=H(),o=O("div"),r=B(h),c=H(),a=O("div"),u=B(g),d=H(),E(n,"class","left svelte-9r3wbp"),E(a,"class","desc svelte-9r3wbp"),E(o,"class","text svelte-9r3wbp"),E(e,"class","item svelte-9r3wbp")},m(t,i){_(t,e,i),S(e,n),$[s].m(n,null),S(e,l),S(e,o),S(o,r),S(o,c),S(o,a),S(a,u),S(e,d),f=!0,p||(m=D(e,"click",y),p=!0)},p(e,l){let o=s;s=w(t=e),s!==o&&(wt(),bt($[o],1,1,(()=>{$[o]=null})),yt(),i=$[s],i||(i=$[s]=v[s](t),i.c()),xt(i,1),i.m(n,null)),(!f||2&l)&&h!==(h=t[5].text+"")&&P(r,h),(!f||2&l)&&g!==(g=t[5].desc+"")&&P(u,g)},i(t){f||(xt(i),f=!0)},o(t){bt(i),f=!1},d(t){t&&L(e),$[s].d(),p=!1,m()}}}function Fi(t){let e,n,s=t[1],i=[];for(let e=0;e<s.length;e+=1)i[e]=Vi(Ai(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","box svelte-9r3wbp")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,[n]){if(7&n){let o;for(s=t[1],o=0;o<s.length;o+=1){const l=Ai(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=Vi(l),i[o].c(),xt(i[o],1),i[o].m(e,null))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function Ji(t,e,n){let{radioData:s=[]}=e,{active:i=0}=e;const l=tt();function o(t){n(0,i=t),l("RadioClick",{active:i})}return t.$$set=t=>{"radioData"in t&&n(1,s=t.radioData),"active"in t&&n(0,i=t.active)},[i,s,o,t=>o(t)]}class qi extends It{constructor(t){super(),Ot(this,t,Ji,Fi,r,{radioData:1,active:0})}}function Xi(t,e,n){const s=t.slice();return s[1]=e[n],s}function Gi(t){let e,n,s=t[1]+"";return{c(){e=O("div"),n=B(s),E(e,"class","tip svelte-1515ufj")},m(t,s){_(t,e,s),S(e,n)},p(t,e){1&e&&s!==(s=t[1]+"")&&P(n,s)},d(t){t&&L(e)}}}function Wi(e){let n,s=e[0],i=[];for(let t=0;t<s.length;t+=1)i[t]=Gi(Xi(e,s,t));return{c(){n=O("div");for(let t=0;t<i.length;t+=1)i[t].c()},m(t,e){_(t,n,e);for(let t=0;t<i.length;t+=1)i[t].m(n,null)},p(t,[e]){if(1&e){let l;for(s=t[0],l=0;l<s.length;l+=1){const o=Xi(t,s,l);i[l]?i[l].p(o,e):(i[l]=Gi(o),i[l].c(),i[l].m(n,null))}for(;l<i.length;l+=1)i[l].d(1);i.length=s.length}},i:t,o:t,d(t){t&&L(n),T(i,t)}}}function Ki(t,e,n){let{tipTextList:s=""}=e;return t.$$set=t=>{"tipTextList"in t&&n(0,s=t.tipTextList)},[s]}class Yi extends It{constructor(t){super(),Ot(this,t,Ki,Wi,r,{tipTextList:0})}}function Zi(t,e,n){const s=t.slice();return s[13]=e[n],s[15]=n,s}const Qi=t=>({item:1&t}),tl=t=>({item:t[13],index:t[15]});function el(t,e,n){const s=t.slice();return s[13]=e[n],s[15]=n,s}const nl=t=>({item:1&t}),sl=t=>({item:t[13],index:t[15]});function il(t){let e,n,s,i;const l=[ol,ll],o=[];function r(t,e){return t[3]>1?0:1}return e=r(t),n=o[e]=l[e](t),{c(){n.c(),s=N()},m(t,n){o[e].m(t,n),_(t,s,n),i=!0},p(t,i){let c=e;e=r(t),e===c?o[e].p(t,i):(wt(),bt(o[c],1,1,(()=>{o[c]=null})),yt(),n=o[e],n?n.p(t,i):(n=o[e]=l[e](t),n.c()),xt(n,1),n.m(s.parentNode,s))},i(t){i||(xt(n),i=!0)},o(t){bt(n),i=!1},d(t){o[e].d(t),t&&L(s)}}}function ll(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=rl(Zi(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){for(let t=0;t<i.length;t+=1)i[t].c();e=N()},m(t,s){for(let e=0;e<i.length;e+=1)i[e].m(t,s);_(t,e,s),n=!0},p(t,n){if(257&n){let o;for(s=t[0],o=0;o<s.length;o+=1){const l=Zi(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=rl(l),i[o].c(),xt(i[o],1),i[o].m(e.parentNode,e))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){T(i,t),t&&L(e)}}}function ol(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=cl(el(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","grid-box svelte-16siq8o"),j(e,"grid-template-columns","repeat("+t[3]+", "+300/t[3]+"px)")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,o){if(257&o){let n;for(s=t[0],n=0;n<s.length;n+=1){const l=el(t,s,n);i[n]?(i[n].p(l,o),xt(i[n],1)):(i[n]=cl(l),i[n].c(),xt(i[n],1),i[n].m(e,null))}for(wt(),n=s.length;n<i.length;n+=1)l(n);yt()}(!n||8&o)&&j(e,"grid-template-columns","repeat("+t[3]+", "+300/t[3]+"px)")},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function rl(t){let e;const n=t[9].default,s=p(n,t,t[8],tl);return{c(){s&&s.c()},m(t,n){s&&s.m(t,n),e=!0},p(t,i){s&&s.p&&(!e||257&i)&&g(s,n,t,t[8],e?h(n,t[8],i,Qi):v(t[8]),tl)},i(t){e||(xt(s,t),e=!0)},o(t){bt(s,t),e=!1},d(t){s&&s.d(t)}}}function cl(t){let e;const n=t[9].default,s=p(n,t,t[8],sl);return{c(){s&&s.c()},m(t,n){s&&s.m(t,n),e=!0},p(t,i){s&&s.p&&(!e||257&i)&&g(s,n,t,t[8],e?h(n,t[8],i,nl):v(t[8]),sl)},i(t){e||(xt(s,t),e=!0)},o(t){bt(s,t),e=!1},d(t){s&&s.d(t)}}}function al(t){let e;return{c(){e=O("div"),e.textContent="😤 别滑了,到底啦!",E(e,"class","no-more no-more-text svelte-16siq8o")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function ul(t){let e;return{c(){e=O("div"),e.innerHTML='<div><embed width="40" height="40" src="/images/Ripple.svg" type="image/svg+xml"/></div> \n      <span class="no-more-text svelte-16siq8o">😤 别急啊,在加载了...</span>',E(e,"class","no-more svelte-16siq8o")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function dl(t){let e,n,s,i,l,o,r=t[0].length>0&&il(t);function c(t,e){return t[2]?ul:al}let a=c(t),u=a(t);return{c(){e=O("div"),n=O("div"),r&&r.c(),s=H(),u.c(),E(e,"class","pagination-box svelte-16siq8o"),j(e,"height",t[1]+"px")},m(c,a){_(c,e,a),S(e,n),r&&r.m(n,null),t[10](n),S(e,s),u.m(e,null),t[11](e),i=!0,l||(o=D(e,"scroll",function(t,e=50){let n=null;return function(){n||(n=setTimeout((()=>{t.apply(this,arguments),n=null}),e))}}(function(t,e){let n=null;return function(){n&&clearTimeout(n),n=setTimeout((()=>{t.apply(this,arguments),n=null}),e)}}(t[6],500))),l=!0)},p(t,[s]){t[0].length>0?r?(r.p(t,s),1&s&&xt(r,1)):(r=il(t),r.c(),xt(r,1),r.m(n,null)):r&&(wt(),bt(r,1,1,(()=>{r=null})),yt()),a!==(a=c(t))&&(u.d(1),u=a(t),u&&(u.c(),u.m(e,null))),(!i||2&s)&&j(e,"height",t[1]+"px")},i(t){i||(xt(r),i=!0)},o(t){bt(r),i=!1},d(n){n&&L(e),r&&r.d(),t[10](null),u.d(),t[11](null),l=!1,o()}}}function fl(t,e,n){let s,i,{$$slots:l={},$$scope:o}=e,{bottomHeight:r=0}=e,{items:c=[]}=e,{paginationHeight:a=0}=e,{hasMore:u=!0}=e,{grid:d=1}=e;const f=tt();return t.$$set=t=>{"bottomHeight"in t&&n(7,r=t.bottomHeight),"items"in t&&n(0,c=t.items),"paginationHeight"in t&&n(1,a=t.paginationHeight),"hasMore"in t&&n(2,u=t.hasMore),"grid"in t&&n(3,d=t.grid),"$$scope"in t&&n(8,o=t.$$scope)},[c,a,u,d,s,i,function(){if(!c||0==c.length)return;const t=i.scrollTop,e=document.documentElement.clientHeight||document.body.clientHeight,n=s.scrollHeight;t+e+r>=n&&f("load")},r,o,l,function(t){st[t?"unshift":"push"]((()=>{s=t,n(4,s)}))},function(t){st[t?"unshift":"push"]((()=>{i=t,n(5,i)}))}]}class pl extends It{constructor(t){super(),Ot(this,t,fl,dl,r,{bottomHeight:7,items:0,paginationHeight:1,hasMore:2,grid:3})}}function ml(t){let e,n,s,i,l,o;return l=new Oe({props:{size:"24",style:"vertical-align: middle;"}}),{c(){e=O("div"),n=B(t[2]),s=H(),i=O("span"),_t(l.$$.fragment),E(i,"class","title-icon svelte-1r560jd"),E(e,"class","title-right svelte-1r560jd")},m(t,r){_(t,e,r),S(e,n),S(e,s),S(e,i),Lt(l,i,null),o=!0},p(t,e){(!o||4&e)&&P(n,t[2])},i(t){o||(xt(l.$$.fragment,t),o=!0)},o(t){bt(l.$$.fragment,t),o=!1},d(t){t&&L(e),Tt(l)}}}function hl(t){let e,n,s,i,l,o,r,c=t[1]&&ml(t);return{c(){e=O("div"),n=O("div"),s=B(t[0]),i=H(),c&&c.c(),E(e,"class","title svelte-1r560jd")},m(a,u){_(a,e,u),S(e,n),S(n,s),S(e,i),c&&c.m(e,null),t[5](e),l=!0,o||(r=D(e,"click",t[4]),o=!0)},p(t,[n]){(!l||1&n)&&P(s,t[0]),t[1]?c?(c.p(t,n),2&n&&xt(c,1)):(c=ml(t),c.c(),xt(c,1),c.m(e,null)):c&&(wt(),bt(c,1,1,(()=>{c=null})),yt())},i(t){l||(xt(c),l=!0)},o(t){bt(c),l=!1},d(n){n&&L(e),c&&c.d(),t[5](null),o=!1,r()}}}function gl(t,e,n){let s,{title:i="Title"}=e,{isShowRight:l=!1}=e,{iconText:o="更多"}=e;const r=tt();return Y((()=>{s&&Js(s)})),t.$$set=t=>{"title"in t&&n(0,i=t.title),"isShowRight"in t&&n(1,l=t.isShowRight),"iconText"in t&&n(2,o=t.iconText)},[i,l,o,s,function(){r("TitleClick")},function(t){st[t?"unshift":"push"]((()=>{s=t,n(3,s)}))}]}class vl extends It{constructor(t){super(),Ot(this,t,gl,hl,r,{title:0,isShowRight:1,iconText:2})}}function $l(t,e,n){const s=t.slice();return s[7]=e[n],s[9]=n,s}function wl(t){let e,n,s,i,l=t[7].name+"";function o(){return t[5](t[9],t[7])}return{c(){e=O("div"),n=B(l),E(e,"class","li svelte-wlt91d")},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(e,s){t=e,2&s&&l!==(l=t[7].name+"")&&P(n,l)},d(t){t&&L(e),s=!1,i()}}}function yl(t){let e,n,s,i,l,o,r,c,a,u,d,f;r=new li({});let p=t[1],m=[];for(let e=0;e<p.length;e+=1)m[e]=wl($l(t,p,e));return{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),l=B(t[2]),o=H(),_t(r.$$.fragment),c=H(),a=O("div");for(let t=0;t<m.length;t+=1)m[t].c();E(i,"class","btn-item btn-center svelte-wlt91d"),E(s,"class","btn svelte-wlt91d"),E(a,"class","roller svelte-wlt91d"),E(n,"class","pick svelte-wlt91d"),j(n,"bottom",t[0]?"0px":"-350px"),E(e,"class","pick-mask svelte-wlt91d"),j(e,"display",t[0]?"block":"none")},m(p,h){_(p,e,h),S(e,n),S(n,s),S(s,i),S(i,l),S(n,o),Lt(r,n,null),S(n,c),S(n,a);for(let t=0;t<m.length;t+=1)m[t].m(a,null);u=!0,d||(f=D(e,"click",t[4]),d=!0)},p(t,[s]){if((!u||4&s)&&P(l,t[2]),10&s){let e;for(p=t[1],e=0;e<p.length;e+=1){const n=$l(t,p,e);m[e]?m[e].p(n,s):(m[e]=wl(n),m[e].c(),m[e].m(a,null))}for(;e<m.length;e+=1)m[e].d(1);m.length=p.length}(!u||1&s)&&j(n,"bottom",t[0]?"0px":"-350px"),(!u||1&s)&&j(e,"display",t[0]?"block":"none")},i(t){u||(xt(r.$$.fragment,t),u=!0)},o(t){bt(r.$$.fragment,t),u=!1},d(t){t&&L(e),Tt(r),T(m,t),d=!1,f()}}}function xl(t,e,n){let{list:s=[]}=e,{title:i="请选择"}=e,{isShow:l=!1}=e;const o=tt();function r(t,e){o("PickerClick",{index:t,item:e})}return t.$$set=t=>{"list"in t&&n(1,s=t.list),"title"in t&&n(2,i=t.title),"isShow"in t&&n(0,l=t.isShow)},[l,s,i,r,function(){n(0,l=!1),o("ChangeShow",{isShow:l})},(t,e)=>r(t,e)]}class bl extends It{constructor(t){super(),Ot(this,t,xl,yl,r,{list:1,title:2,isShow:0})}}const zl=Nt(!1),kl=Nt(!1),Sl=Nt(!0),Cl=Nt(JSON.parse(localStorage.getItem("currentSong"))?JSON.parse(localStorage.getItem("currentSong")):{name:"简易云音乐",al:{picUrl:ki},url:"https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3",ar:[{name:"简易云音乐"}]}),Ml=Nt(0),_l=Nt([JSON.parse(localStorage.getItem("currentSong"))?JSON.parse(localStorage.getItem("currentSong")):{name:"简易云音乐",al:{picUrl:ki},url:"https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3",ar:[{name:"简易云音乐"}]}]),Ll=Nt("100%"),Tl=Nt("1"===localStorage.getItem("isFMPlay")),Ol=Nt(JSON.parse(localStorage.getItem("FMPlay"))?JSON.parse(localStorage.getItem("FMPlay")):{}),Il=Nt({}),Bl=Nt(""),Hl=Nt(JSON.parse(localStorage.getItem("currentLyric"))?JSON.parse(localStorage.getItem("currentLyric")):{songId:"",lyric:"",tlyric:""}),Nl=Nt("cover"),Dl=Nt("repeat"),El=Nt(128e3);function Rl(t,e,n){const s=t.slice();return s[6]=e[n],s[20]=n,s}function Pl(t){let e,n,s=t[6].text_t+"";return{c(){e=O("div"),n=B(s),E(e,"class","t-text svelte-145k8f8")},m(t,s){_(t,e,s),S(e,n)},p(t,e){16&e&&s!==(s=t[6].text_t+"")&&P(n,s)},d(t){t&&L(e)}}}function Al(t){let e,n,s,i,l,o=t[6].text+"",r=""!==t[5].trim(),c=r&&Pl(t);return{c(){e=O("div"),n=O("div"),s=B(o),i=H(),c&&c.c(),l=H(),E(e,"class","ly svelte-145k8f8"),j(e,"filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),j(e,"-webkit-filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),U(e,"active",t[20]===t[3])},m(t,o){_(t,e,o),S(e,n),S(n,s),S(e,i),c&&c.m(e,null),S(e,l)},p(t,n){16&n&&o!==(o=t[6].text+"")&&P(s,o),32&n&&(r=""!==t[5].trim()),r?c?c.p(t,n):(c=Pl(t),c.c(),c.m(e,l)):c&&(c.d(1),c=null),12&n&&j(e,"filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),12&n&&j(e,"-webkit-filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),8&n&&U(e,"active",t[20]===t[3])},d(t){t&&L(e),c&&c.d()}}}function jl(e){let n,s,i,o,r=e[4],c=[];for(let t=0;t<r.length;t+=1)c[t]=Al(Rl(e,r,t));return{c(){n=O("div"),s=O("div");for(let t=0;t<c.length;t+=1)c[t].c();E(s,"class","box svelte-145k8f8"),j(s,"max-height",e[0]),E(n,"class","xbox")},m(t,l){_(t,n,l),S(n,s);for(let t=0;t<c.length;t+=1)c[t].m(s,null);e[11](s),i||(o=[D(s,"touchstart",e[7]),D(s,"touchend",e[8]),D(s,"touchmove",Xl)],i=!0)},p(t,[e]){if(60&e){let n;for(r=t[4],n=0;n<r.length;n+=1){const i=Rl(t,r,n);c[n]?c[n].p(i,e):(c[n]=Al(i),c[n].c(),c[n].m(s,null))}for(;n<c.length;n+=1)c[n].d(1);c.length=r.length}1&e&&j(s,"max-height",t[0])},i:t,o:t,d(t){t&&L(n),T(c,t),e[11](null),i=!1,l(o)}}}function Ul(t){if(Array.isArray(t)){for(var e=0,n=0;n<t.length;n++)e+=t[n];return e}}function Vl(t){"by"===t.slice(1,3)&&(t=t.slice(t.indexOf("\n")+1));let e=[],n=t.split("\n"),s=n.length;for(let t=0;t<s;t++){let s=n[t].split("]"),i=s.pop();s.forEach((t=>{let n={},s=t.substr(1,t.length-1).split(":"),l=60*Math.ceil(s[0])+Math.ceil(s[1]);n.time=l>0?l-1:l,n.text=i.trim(),e.push(n)}))}if(1===e.length&&(e=[{time:0,text:e[0].text},{time:0,text:e[0].text}]),e===[])return[];for(let t=0;t<e.length;t++)""===e[t].text&&(e[t].text="• • •");e.length>0&&e[0].time>5&&e.splice(0,0,{time:0,text:"• • •"});for(let t=e.length-1;t>0;t--)e[t].time-e[t-1].time<2&&"• • •"===e[t-1].text&&e.splice(t-1,1);for(let t=e.length-1;t>0;t--)e[t-1].time===e[t].time&&(e[t-1].text=e[t-1].text+" "+e[t].text,e.splice(t,1));e.length>1&&e[0].time===e[1].time&&(e[0].text=e[0].text+" "+e[1].text,e.splice(1,1));for(let t=0;t<e.length;t++)"• • •"===e[t].text.substring(e[t].text.length-5)&&"• • •"!=e[t].text&&(e[t].text=e[t].text.substr(0,e[t].text.length-5));return e.sort(Jl),0===e.length?[{time:0,text:"暂无歌词或歌词无效",start:0,end:20}]:e}function Fl(t){for(let e=0;e<t.length-1;e++)t[e].start=t[e].time,t[e].end=t[e+1].time;return t[t.length-1].start=t[t.length-1].time,t}function Jl(t,e){return t.time-e.time}function ql(t,e){let n=document.createElement("div"),s={};return s.width=n.offsetWidth,s.height=n.offsetHeight,n.style.visibility="hidden",n.style.fontSize=t,n.style.padding="20px",n.style.wordWrap="break-word",n.style.fontWeight="bold",n.style.textAlign="justify",document.body.appendChild(n),void 0!==n.textContent?n.textContent=e:n.innerText=e,s.width=parseFloat(window.getComputedStyle(n).width)-s.width,s.height=parseFloat(window.getComputedStyle(n).height)-s.height,n.style.display="none",s}function Xl(t){}function Gl(t,e,n){let s,i,l,o,r,c,a,u,d,p,m;f(t,Bl,(t=>n(16,d=t))),f(t,Hl,(t=>n(9,p=t))),f(t,yi,(t=>n(10,m=t)));let h,{maxHeight:g=""}=e,v=null;function $(){v=setInterval((()=>{if(h)for(let t=0;t<r.length-1;t++)Math.ceil(d)>=r[r.length-1].start&&(n(3,c=r.length-1),n(1,h.scrollTop=h.scrollHeight-h.clientHeight,h)),Math.ceil(d)>=r[t].start&&Math.ceil(d)<r[t].end&&(n(3,c=t),h.scrollIntoView({block:"start",behavior:"smooth"}),0===c?"scrollBehavior"in h.style?n(1,h.scrollTop=0,h):Rs(h,0):"scrollBehavior"in h.style?n(1,h.scrollTop=Ul(a.slice(0,c-1)),h):Rs(h,Ul(a.slice(0,c-1))))}),1e3)}return Y((()=>{n(4,l=Vl(s)),"by"===i.slice(1,3)&&n(5,i=i.slice(i.indexOf("\n")+1)),"["!==i.slice(0,1)&&n(5,i="");let t=i.split("\n"),e=!1;for(let n=0;n<t.length;n++)e="]"==t[n].substring(t[n].length-1);if(e&&n(5,i=""),""!==i.trim()&&(o=Vl(i)),""!==i.trim()){0!==l[0].time&&l.unshift({time:0,text:"• • •"}),0!==o[0].time&&o.unshift({time:0,text:"• • •"});for(let t=0;t<l.length;t++)for(let e=0;e<o.length;e++)l[t].time===o[e].time&&n(4,l[t].text_t=o[e].text,l),void 0===l[t].text_t&&n(4,l[t].text_t="• • •",l);r=l.length>0?Fl(l):[];for(let t=0;t<l.length;t++)a.push(40+ql("28px",l[t].text).height+ql("16px",l[t].text_t).height)}else{r=l.length>0?Fl(l):[];for(let t=0;t<r.length;t++)a.push(ql("28px",r[t].text).height+40)}$()})),t.$$set=t=>{"maxHeight"in t&&n(0,g=t.maxHeight)},t.$$.update=()=>{512&t.$$.dirty&&n(6,s=p.lyric),1536&t.$$.dirty&&n(5,i=m?p.tlyric:"")},n(4,l=[]),o=[],r=[],n(3,c=0),a=[],n(2,u=!0),[g,h,u,c,l,i,s,function(t){n(2,u=!1),v&&clearInterval(v),v=null},function(t){n(2,u=!0),v&&clearInterval(v),v=null,$()},p,m,function(t){st[t?"unshift":"push"]((()=>{h=t,n(1,h)}))}]}class Wl extends It{constructor(t){super(),Ot(this,t,Gl,jl,r,{maxHeight:0})}}function Kl(t,{delay:n=0,duration:s=400,easing:i=e}={}){const l=+getComputedStyle(t).opacity;return{delay:n,duration:s,easing:i,css:t=>"opacity: "+t*l}}function Yl(t){let e,n,s,i,l;const o=[Ql,Zl],r=[];function c(t,e){return"string"==typeof t[0]?0:((null==n||1&e)&&(n=!!["function","object"].includes(typeof t[0])),n?1:-1)}return~(s=c(t,-1))&&(i=r[s]=o[s](t)),{c(){e=O("div"),i&&i.c(),E(e,"class",eo)},m(t,n){_(t,e,n),~s&&r[s].m(e,null),l=!0},p(t,n){let l=s;s=c(t,n),s===l?~s&&r[s].p(t,n):(i&&(wt(),bt(r[l],1,1,(()=>{r[l]=null})),yt()),~s?(i=r[s],i?i.p(t,n):(i=r[s]=o[s](t),i.c()),xt(i,1),i.m(e,null)):i=null)},i(t){l||(xt(i),l=!0)},o(t){bt(i),l=!1},d(t){t&&L(e),~s&&r[s].d()}}}function Zl(t){let e,s,i;const l=[t[1]];var o=t[0];function r(t){let e={};for(let t=0;t<l.length;t+=1)e=n(e,l[t]);return{props:e}}return o&&(e=new o(r())),{c(){e&&_t(e.$$.fragment),s=N()},m(t,n){e&&Lt(e,t,n),_(t,s,n),i=!0},p(t,n){const i=2&n?Ct(l,[(c=t[1],"object"==typeof c&&null!==c?c:{})]):{};var c;if(o!==(o=t[0])){if(e){wt();const t=e;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}o?(e=new o(r()),_t(e.$$.fragment),xt(e.$$.fragment,1),Lt(e,s.parentNode,s)):e=null}else o&&e.$set(i)},i(t){i||(e&&xt(e.$$.fragment,t),i=!0)},o(t){e&&bt(e.$$.fragment,t),i=!1},d(t){t&&L(s),e&&Tt(e,t)}}}function Ql(e){let n,s;return{c(){n=O("div"),s=B(e[0])},m(t,e){_(t,n,e),S(n,s)},p(t,e){1&e&&P(s,t[0])},i:t,o:t,d(t){t&&L(n)}}}function to(t){let e,n,s=t[0]&&Yl(t);return{c(){s&&s.c(),e=N()},m(t,i){s&&s.m(t,i),_(t,e,i),n=!0},p(t,[n]){t[0]?s?(s.p(t,n),1&n&&xt(s,1)):(s=Yl(t),s.c(),xt(s,1),s.m(e.parentNode,e)):s&&(wt(),bt(s,1,1,(()=>{s=null})),yt())},i(t){n||(xt(s),n=!0)},o(t){bt(s),n=!1},d(t){s&&s.d(t),t&&L(e)}}}const eo="svelte-lazy-placeholder";function no(t,e,n){let{placeholder:s=null}=e,{placeholderProps:i=null}=e;return t.$$set=t=>{"placeholder"in t&&n(0,s=t.placeholder),"placeholderProps"in t&&n(1,i=t.placeholderProps)},[s,i]}class so extends It{constructor(t){super(),Ot(this,t,no,to,r,{placeholder:0,placeholderProps:1})}}function io(t){let e,n;return e=new so({props:{placeholder:t[1],placeholderProps:t[2]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};2&n&&(s.placeholder=t[1]),4&n&&(s.placeholderProps=t[2]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function lo(t){let e,n,s,i,l;const o=t[15].default,r=p(o,t,t[14],null),c=r||function(t){let e;return{c(){e=B("Lazy load content")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}();let a="hide"===t[3]&&t[1]&&oo(t);return{c(){e=O("div"),c&&c.c(),s=H(),a&&a.c(),i=N(),E(e,"class",co),E(e,"style",t[5])},m(t,n){_(t,e,n),c&&c.m(e,null),_(t,s,n),a&&a.m(t,n),_(t,i,n),l=!0},p(n,s){t=n,r&&r.p&&(!l||16384&s)&&g(r,o,t,t[14],l?h(o,t[14],s,null):v(t[14]),null),(!l||32&s)&&E(e,"style",t[5]),"hide"===t[3]&&t[1]?a?(a.p(t,s),10&s&&xt(a,1)):(a=oo(t),a.c(),xt(a,1),a.m(i.parentNode,i)):a&&(wt(),bt(a,1,1,(()=>{a=null})),yt())},i(s){l||(xt(c,s),n||at((()=>{n=kt(e,Kl,t[0]||{}),n.start()})),xt(a),l=!0)},o(t){bt(c,t),bt(a),l=!1},d(t){t&&L(e),c&&c.d(t),t&&L(s),a&&a.d(t),t&&L(i)}}}function oo(t){let e,n;return e=new so({props:{placeholder:t[1],placeholderProps:t[2]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};2&n&&(s.placeholder=t[1]),4&n&&(s.placeholderProps=t[2]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ro(e){let n,s,i,l,r,c;const a=[lo,io],u=[];function d(t,e){return t[4]?0:t[1]?1:-1}return~(s=d(e))&&(i=u[s]=a[s](e)),{c(){n=O("div"),i&&i.c(),E(n,"class",e[6]),j(n,"height",e[7])},m(i,a){var d;_(i,n,a),~s&&u[s].m(n,null),l=!0,r||(d=e[8].call(null,n),c=d&&o(d.destroy)?d.destroy:t,r=!0)},p(t,[e]){let l=s;s=d(t),s===l?~s&&u[s].p(t,e):(i&&(wt(),bt(u[l],1,1,(()=>{u[l]=null})),yt()),~s?(i=u[s],i?i.p(t,e):(i=u[s]=a[s](t),i.c()),xt(i,1),i.m(n,null)):i=null)},i(t){l||(xt(i),l=!0)},o(t){bt(i),l=!1},d(t){t&&L(n),~s&&u[s].d(),r=!1,c()}}}const co="svelte-lazy-content";function ao(t,e,n){let s,{$$slots:i={},$$scope:l}=e,{height:o=0}=e,{offset:r=150}=e,{fadeOption:c={delay:0,duration:400}}=e,{resetHeightDelay:a=0}=e,{onload:u=null}=e,{placeholder:d=null}=e,{placeholderProps:f=null}=e,{class:p=""}=e;const m="svelte-lazy"+(p?" "+p:""),h=$();let g=!1,v="";function $(){return"number"==typeof o?o+"px":o}return t.$$set=t=>{"height"in t&&n(9,o=t.height),"offset"in t&&n(10,r=t.offset),"fadeOption"in t&&n(0,c=t.fadeOption),"resetHeightDelay"in t&&n(11,a=t.resetHeightDelay),"onload"in t&&n(12,u=t.onload),"placeholder"in t&&n(1,d=t.placeholder),"placeholderProps"in t&&n(2,f=t.placeholderProps),"class"in t&&n(13,p=t.class),"$$scope"in t&&n(14,l=t.$$scope)},t.$$.update=()=>{8&t.$$.dirty&&n(5,s="hide"===v?"display: none":"")},[c,d,f,v,g,s,m,h,function(t){!function(t){o&&(t.style.height=$())}(t);const e=function(t,e,n){let s,i,l,o=null,r=0;n||(n={});const c=function(){r=!1===n.leading?0:new Date,o=null,l=t.apply(s,i),o||(s=i=null)};return function(a){const u=new Date;r||!1!==n.leading||(r=u);const d=e-(u-r);return s=this,i=arguments,d<=0||d>e?(o&&(clearTimeout(o),o=null),r=u,l=t.apply(s,i),o||(s=i=null)):o||!1===n.trailing||(o=setTimeout(c,d)),l}}((e=>{const i=t.getBoundingClientRect().top,l=function(t){return t&&t.target&&t.target.getBoundingClientRect?t.target.getBoundingClientRect().bottom:window.innerHeight}(e)+r;i<=l&&(n(4,g=!0),function(t){setTimeout((()=>{const e=function(t){const e=t.querySelector("img");if(e){if(!e.complete)return n(3,v="hide"),t.addEventListener("load",(()=>{n(3,v=""),t.style.height="auto"}),{capture:!0,once:!0}),t.addEventListener("error",(()=>{n(3,v="")}),{capture:!0,once:!0}),!0;if(0===e.naturalHeight)return!0}}(t);e||(t.style.height="auto")}),a)}(t),u&&u(t),s())}),200);function s(){document.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e)}return e(),document.addEventListener("scroll",e,!0),window.addEventListener("resize",e),{destroy:()=>{s()}}},o,r,a,u,p,l,i]}class uo extends It{constructor(t){super(),Ot(this,t,ao,ro,r,{height:9,offset:10,fadeOption:0,resetHeightDelay:11,onload:12,placeholder:1,placeholderProps:2,class:13})}}const fo=Nt(JSON.parse(localStorage.getItem("isLogin"))?JSON.parse(localStorage.getItem("userInfo")):{}),po=Nt(JSON.parse(localStorage.getItem("useLoveSongIds"))?JSON.parse(localStorage.getItem("useLoveSongIds")):[]),mo=Nt(JSON.parse(localStorage.getItem("userLikeListId"))?JSON.parse(localStorage.getItem("userLikeListId")):"");function ho(t){let e,n;return e=new mn({props:{size:"16",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function go(t){let e,n;return{c(){e=O("img"),E(e,"class","img-song svelte-d1ubox"),a(e.src,n=t[2]?t[2]:t[0].al.picUrl.replace(/^http:/,"https:")+"?param=100y100")||E(e,"src",n),E(e,"alt","")},m(t,n){_(t,e,n)},p(t,s){5&s&&!a(e.src,n=t[2]?t[2]:t[0].al.picUrl.replace(/^http:/,"https:")+"?param=100y100")&&E(e,"src",n)},d(t){t&&L(e)}}}function vo(t){let e;return{c(){e=O("div"),e.innerHTML='<div class="pull_down pull_down1 svelte-d1ubox"></div> \n        <div class="pull_down pull_down2 svelte-d1ubox"></div> \n        <div class="pull_down pull_down3 svelte-d1ubox"></div> \n        <div class="pull_down pull_down4 svelte-d1ubox"></div>',E(e,"class","song-play svelte-d1ubox")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function $o(t){let e;return{c(){e=O("div"),e.innerHTML='<div class="no_pull_down svelte-d1ubox"></div> \n        <div class="no_pull_down svelte-d1ubox"></div> \n        <div class="no_pull_down svelte-d1ubox"></div> \n        <div class="no_pull_down svelte-d1ubox"></div>',E(e,"class","song-no-play svelte-d1ubox")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function wo(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k=t[5]&&t[6].includes(t[0].id),C=t[0].name+"",M=t[0].alia&&t[0].alia.length>0?`(${t[0].alia[0]})`:"",T=Ds(t[0].ar)+"",I=""===t[0].al.name?"":`- ${t[0].al.name}`,N=k&&ho();l=new uo({props:{height:46,$$slots:{default:[go]},$$scope:{ctx:t}}});let R=t[0].id===t[4].id&&t[7]&&vo(),A=t[0].id===t[4].id&&!t[7]&&$o();return{c(){e=O("div"),n=O("div"),N&&N.c(),s=H(),i=O("div"),_t(l.$$.fragment),o=H(),R&&R.c(),r=H(),A&&A.c(),c=H(),a=O("div"),u=O("div"),d=B(C),f=H(),p=O("span"),m=B(M),h=H(),g=O("div"),v=B(T),$=H(),w=O("span"),y=B(I),E(n,"class","love-span svelte-d1ubox"),E(i,"class","song-cover svelte-d1ubox"),E(p,"class","alia"),E(u,"class","song-name svelte-d1ubox"),E(g,"class","song-songer svelte-d1ubox"),E(a,"class","song-info svelte-d1ubox"),j(a,"max-width",Hs()-72+"px"),E(e,"class","song svelte-d1ubox")},m(k,C){_(k,e,C),S(e,n),N&&N.m(n,null),S(e,s),S(e,i),Lt(l,i,null),S(i,o),R&&R.m(i,null),S(i,r),A&&A.m(i,null),S(e,c),S(e,a),S(a,u),S(u,d),S(u,f),S(u,p),S(p,m),S(a,h),S(a,g),S(g,v),S(g,$),S(g,w),S(w,y),t[10](e),x=!0,b||(z=D(e,"click",t[9]),b=!0)},p(t,[e]){97&e&&(k=t[5]&&t[6].includes(t[0].id)),k?N?97&e&&xt(N,1):(N=ho(),N.c(),xt(N,1),N.m(n,null)):N&&(wt(),bt(N,1,1,(()=>{N=null})),yt());const s={};4101&e&&(s.$$scope={dirty:e,ctx:t}),l.$set(s),t[0].id===t[4].id&&t[7]?R||(R=vo(),R.c(),R.m(i,r)):R&&(R.d(1),R=null),t[0].id!==t[4].id||t[7]?A&&(A.d(1),A=null):A||(A=$o(),A.c(),A.m(i,null)),(!x||1&e)&&C!==(C=t[0].name+"")&&P(d,C),(!x||1&e)&&M!==(M=t[0].alia&&t[0].alia.length>0?`(${t[0].alia[0]})`:"")&&P(m,M),(!x||1&e)&&T!==(T=Ds(t[0].ar)+"")&&P(v,T),(!x||1&e)&&I!==(I=""===t[0].al.name?"":`- ${t[0].al.name}`)&&P(y,I)},i(t){x||(xt(N),xt(l.$$.fragment,t),x=!0)},o(t){bt(N),bt(l.$$.fragment,t),x=!1},d(n){n&&L(e),N&&N.d(),Tt(l),R&&R.d(),A&&A.d(),t[10](null),b=!1,z()}}}function yo(t,e,n){let s,i,l,o;f(t,Cl,(t=>n(4,s=t))),f(t,mi,(t=>n(5,i=t))),f(t,po,(t=>n(6,l=t))),f(t,zl,(t=>n(7,o=t)));const r=tt();function c(t){r("songClick",{index:t})}let a,{song:u={}}=e,{index:d=0}=e,{customCoverUrl:p=null}=e;Y((()=>{a&&Js(a)}));return t.$$set=t=>{"song"in t&&n(0,u=t.song),"index"in t&&n(1,d=t.index),"customCoverUrl"in t&&n(2,p=t.customCoverUrl)},[u,d,p,a,s,i,l,o,c,()=>{u.id===s.id?(window.audioDOM.play(),zl.set(!0)):c(d)},function(t){st[t?"unshift":"push"]((()=>{a=t,n(3,a)}))}]}class xo extends It{constructor(t){super(),Ot(this,t,yo,wo,r,{song:0,index:1,customCoverUrl:2})}}var bo=function(t,e){return function(){for(var n=new Array(arguments.length),s=0;s<n.length;s++)n[s]=arguments[s];return t.apply(e,n)}},zo=Object.prototype.toString;function ko(t){return"[object Array]"===zo.call(t)}function So(t){return void 0===t}function Co(t){return null!==t&&"object"==typeof t}function Mo(t){if("[object Object]"!==zo.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function _o(t){return"[object Function]"===zo.call(t)}function Lo(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),ko(t))for(var n=0,s=t.length;n<s;n++)e.call(null,t[n],n,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.call(null,t[i],i,t)}var To={isArray:ko,isArrayBuffer:function(t){return"[object ArrayBuffer]"===zo.call(t)},isBuffer:function(t){return null!==t&&!So(t)&&null!==t.constructor&&!So(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:Co,isPlainObject:Mo,isUndefined:So,isDate:function(t){return"[object Date]"===zo.call(t)},isFile:function(t){return"[object File]"===zo.call(t)},isBlob:function(t){return"[object Blob]"===zo.call(t)},isFunction:_o,isStream:function(t){return Co(t)&&_o(t.pipe)},isURLSearchParams:function(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:Lo,merge:function t(){var e={};function n(n,s){Mo(e[s])&&Mo(n)?e[s]=t(e[s],n):Mo(n)?e[s]=t({},n):ko(n)?e[s]=n.slice():e[s]=n}for(var s=0,i=arguments.length;s<i;s++)Lo(arguments[s],n);return e},extend:function(t,e,n){return Lo(e,(function(e,s){t[s]=n&&"function"==typeof e?bo(e,n):e})),t},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t}};function Oo(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var Io=function(t,e,n){if(!e)return t;var s;if(n)s=n(e);else if(To.isURLSearchParams(e))s=e.toString();else{var i=[];To.forEach(e,(function(t,e){null!=t&&(To.isArray(t)?e+="[]":t=[t],To.forEach(t,(function(t){To.isDate(t)?t=t.toISOString():To.isObject(t)&&(t=JSON.stringify(t)),i.push(Oo(e)+"="+Oo(t))})))})),s=i.join("&")}if(s){var l=t.indexOf("#");-1!==l&&(t=t.slice(0,l)),t+=(-1===t.indexOf("?")?"?":"&")+s}return t};function Bo(){this.handlers=[]}Bo.prototype.use=function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},Bo.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},Bo.prototype.forEach=function(t){To.forEach(this.handlers,(function(e){null!==e&&t(e)}))};var Ho=Bo,No=function(t,e){To.forEach(t,(function(n,s){s!==e&&s.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[s])}))},Do=function(t,e,n,s,i){return t.config=e,n&&(t.code=n),t.request=s,t.response=i,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t},Eo=function(t,e,n,s,i){var l=new Error(t);return Do(l,e,n,s,i)},Ro=To.isStandardBrowserEnv()?{write:function(t,e,n,s,i,l){var o=[];o.push(t+"="+encodeURIComponent(e)),To.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),To.isString(s)&&o.push("path="+s),To.isString(i)&&o.push("domain="+i),!0===l&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}},Po=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],Ao=To.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function s(t){var s=t;return e&&(n.setAttribute("href",s),s=n.href),n.setAttribute("href",s),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=s(window.location.href),function(e){var n=To.isString(e)?s(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0},jo=function(t){return new Promise((function(e,n){var s=t.data,i=t.headers,l=t.responseType;To.isFormData(s)&&delete i["Content-Type"];var o=new XMLHttpRequest;if(t.auth){var r=t.auth.username||"",c=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";i.Authorization="Basic "+btoa(r+":"+c)}var a=function(t,e){return t&&!/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}(t.baseURL,t.url);function u(){if(o){var s,i,r,c,a,u="getAllResponseHeaders"in o?(s=o.getAllResponseHeaders(),a={},s?(To.forEach(s.split("\n"),(function(t){if(c=t.indexOf(":"),i=To.trim(t.substr(0,c)).toLowerCase(),r=To.trim(t.substr(c+1)),i){if(a[i]&&Po.indexOf(i)>=0)return;a[i]="set-cookie"===i?(a[i]?a[i]:[]).concat([r]):a[i]?a[i]+", "+r:r}})),a):a):null,d={data:l&&"text"!==l&&"json"!==l?o.response:o.responseText,status:o.status,statusText:o.statusText,headers:u,config:t,request:o};!function(t,e,n){var s=n.config.validateStatus;n.status&&s&&!s(n.status)?e(Eo("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}(e,n,d),o=null}}if(o.open(t.method.toUpperCase(),Io(a,t.params,t.paramsSerializer),!0),o.timeout=t.timeout,"onloadend"in o?o.onloadend=u:o.onreadystatechange=function(){o&&4===o.readyState&&(0!==o.status||o.responseURL&&0===o.responseURL.indexOf("file:"))&&setTimeout(u)},o.onabort=function(){o&&(n(Eo("Request aborted",t,"ECONNABORTED",o)),o=null)},o.onerror=function(){n(Eo("Network Error",t,null,o)),o=null},o.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(Eo(e,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},To.isStandardBrowserEnv()){var d=(t.withCredentials||Ao(a))&&t.xsrfCookieName?Ro.read(t.xsrfCookieName):void 0;d&&(i[t.xsrfHeaderName]=d)}"setRequestHeader"in o&&To.forEach(i,(function(t,e){void 0===s&&"content-type"===e.toLowerCase()?delete i[e]:o.setRequestHeader(e,t)})),To.isUndefined(t.withCredentials)||(o.withCredentials=!!t.withCredentials),l&&"json"!==l&&(o.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&o.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&o.upload&&o.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then((function(t){o&&(o.abort(),n(t),o=null)})),s||(s=null),o.send(s)}))},Uo={"Content-Type":"application/x-www-form-urlencoded"};function Vo(t,e){!To.isUndefined(t)&&To.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var Fo,Jo={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(Fo=jo),Fo),transformRequest:[function(t,e){return No(e,"Accept"),No(e,"Content-Type"),To.isFormData(t)||To.isArrayBuffer(t)||To.isBuffer(t)||To.isStream(t)||To.isFile(t)||To.isBlob(t)?t:To.isArrayBufferView(t)?t.buffer:To.isURLSearchParams(t)?(Vo(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):To.isObject(t)||e&&"application/json"===e["Content-Type"]?(Vo(e,"application/json"),function(t,e,n){if(To.isString(t))try{return(e||JSON.parse)(t),To.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(n||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional,n=e&&e.silentJSONParsing,s=e&&e.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||s&&To.isString(t)&&t.length)try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Do(t,this,"E_JSON_PARSE");throw t}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};Jo.headers={common:{Accept:"application/json, text/plain, */*"}},To.forEach(["delete","get","head"],(function(t){Jo.headers[t]={}})),To.forEach(["post","put","patch"],(function(t){Jo.headers[t]=To.merge(Uo)}));var qo=Jo,Xo=function(t,e,n){var s=this||qo;return To.forEach(n,(function(n){t=n.call(s,t,e)})),t},Go=function(t){return!(!t||!t.__CANCEL__)};function Wo(t){t.cancelToken&&t.cancelToken.throwIfRequested()}var Ko=function(t){return Wo(t),t.headers=t.headers||{},t.data=Xo.call(t,t.data,t.headers,t.transformRequest),t.headers=To.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),To.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||qo.adapter)(t).then((function(e){return Wo(t),e.data=Xo.call(t,e.data,e.headers,t.transformResponse),e}),(function(e){return Go(e)||(Wo(t),e&&e.response&&(e.response.data=Xo.call(t,e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))},Yo=function(t,e){e=e||{};var n={},s=["url","method","data"],i=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],o=["validateStatus"];function r(t,e){return To.isPlainObject(t)&&To.isPlainObject(e)?To.merge(t,e):To.isPlainObject(e)?To.merge({},e):To.isArray(e)?e.slice():e}function c(s){To.isUndefined(e[s])?To.isUndefined(t[s])||(n[s]=r(void 0,t[s])):n[s]=r(t[s],e[s])}To.forEach(s,(function(t){To.isUndefined(e[t])||(n[t]=r(void 0,e[t]))})),To.forEach(i,c),To.forEach(l,(function(s){To.isUndefined(e[s])?To.isUndefined(t[s])||(n[s]=r(void 0,t[s])):n[s]=r(void 0,e[s])})),To.forEach(o,(function(s){s in e?n[s]=r(t[s],e[s]):s in t&&(n[s]=r(void 0,t[s]))}));var a=s.concat(i).concat(l).concat(o),u=Object.keys(t).concat(Object.keys(e)).filter((function(t){return-1===a.indexOf(t)}));return To.forEach(u,c),n},Zo="axios",Qo="0.21.4",tr="Promise based HTTP client for the browser and node.js",er="index.js",nr={test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},sr={type:"git",url:"https://github.com/axios/axios.git"},ir=["xhr","http","ajax","promise","node"],lr="Matt Zabriskie",or={url:"https://github.com/axios/axios/issues"},rr="https://axios-http.com",cr={coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},ar={"./lib/adapters/http.js":"./lib/adapters/xhr.js"},ur="dist/axios.min.js",dr="dist/axios.min.js",fr="./index.d.ts",pr={"follow-redirects":"^1.14.0"},mr=[{path:"./dist/axios.min.js",threshold:"5kB"}],hr={name:Zo,version:Qo,description:tr,main:er,scripts:nr,repository:sr,keywords:ir,author:lr,license:"MIT",bugs:or,homepage:rr,devDependencies:cr,browser:ar,jsdelivr:ur,unpkg:dr,typings:fr,dependencies:pr,bundlesize:mr},gr=be(Object.freeze({__proto__:null,name:Zo,version:Qo,description:tr,main:er,scripts:nr,repository:sr,keywords:ir,author:lr,license:"MIT",bugs:or,homepage:rr,devDependencies:cr,browser:ar,jsdelivr:ur,unpkg:dr,typings:fr,dependencies:pr,bundlesize:mr,default:hr})),vr={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){vr[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));var $r={},wr=gr.version.split(".");function yr(t,e){for(var n=e?e.split("."):wr,s=t.split("."),i=0;i<3;i++){if(n[i]>s[i])return!0;if(n[i]<s[i])return!1}return!1}vr.transitional=function(t,e,n){var s=e&&yr(e);function i(t,e){return"[Axios v"+gr.version+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,l,o){if(!1===t)throw new Error(i(l," has been removed in "+e));return s&&!$r[l]&&($r[l]=!0,console.warn(i(l," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,l,o)}};var xr={isOlderVersion:yr,assertOptions:function(t,e,n){if("object"!=typeof t)throw new TypeError("options must be an object");for(var s=Object.keys(t),i=s.length;i-- >0;){var l=s[i],o=e[l];if(o){var r=t[l],c=void 0===r||o(r,l,t);if(!0!==c)throw new TypeError("option "+l+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+l)}},validators:vr},br=xr.validators;function zr(t){this.defaults=t,this.interceptors={request:new Ho,response:new Ho}}zr.prototype.request=function(t){"string"==typeof t?(t=arguments[1]||{}).url=arguments[0]:t=t||{},(t=Yo(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var e=t.transitional;void 0!==e&&xr.assertOptions(e,{silentJSONParsing:br.transitional(br.boolean,"1.0.0"),forcedJSONParsing:br.transitional(br.boolean,"1.0.0"),clarifyTimeoutError:br.transitional(br.boolean,"1.0.0")},!1);var n=[],s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,n.unshift(e.fulfilled,e.rejected))}));var i,l=[];if(this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)})),!s){var o=[Ko,void 0];for(Array.prototype.unshift.apply(o,n),o=o.concat(l),i=Promise.resolve(t);o.length;)i=i.then(o.shift(),o.shift());return i}for(var r=t;n.length;){var c=n.shift(),a=n.shift();try{r=c(r)}catch(t){a(t);break}}try{i=Ko(r)}catch(t){return Promise.reject(t)}for(;l.length;)i=i.then(l.shift(),l.shift());return i},zr.prototype.getUri=function(t){return t=Yo(this.defaults,t),Io(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")},To.forEach(["delete","get","head","options"],(function(t){zr.prototype[t]=function(e,n){return this.request(Yo(n||{},{method:t,url:e,data:(n||{}).data}))}})),To.forEach(["post","put","patch"],(function(t){zr.prototype[t]=function(e,n,s){return this.request(Yo(s||{},{method:t,url:e,data:n}))}}));var kr=zr;function Sr(t){this.message=t}Sr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Sr.prototype.__CANCEL__=!0;var Cr=Sr;function Mr(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var n=this;t((function(t){n.reason||(n.reason=new Cr(t),e(n.reason))}))}Mr.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},Mr.source=function(){var t;return{token:new Mr((function(e){t=e})),cancel:t}};var _r=Mr;function Lr(t){var e=new kr(t),n=bo(kr.prototype.request,e);return To.extend(n,kr.prototype,e),To.extend(n,e),n}var Tr=Lr(qo);Tr.Axios=kr,Tr.create=function(t){return Lr(Yo(Tr.defaults,t))},Tr.Cancel=Cr,Tr.CancelToken=_r,Tr.isCancel=Go,Tr.all=function(t){return Promise.all(t)},Tr.spread=function(t){return function(e){return t.apply(null,e)}},Tr.isAxiosError=function(t){return"object"==typeof t&&!0===t.isAxiosError};var Or=Tr,Ir=Tr;Or.default=Ir;const Br=Or.create({baseURL:"https://netease-cloud-music-api-eight-lime.vercel.app/",withCredentials:!0,timeout:15e3});function Hr(t){let e=128e3;switch(localStorage.getItem("musicQuality")){default:e=128e3;break;case"1":e=192e3;break;case"2":e=32e4;break;case"3":e=999e3}return Br({url:"/song/url",method:"get",params:{id:t,br:e},isHideLoading:!0})}function Nr(t){return"string"==typeof t&&(t=t.replace(/,,/,",")),Br({url:"/song/detail",method:"get",params:{ids:t,timestamp:(new Date).getTime()}})}function Dr(){return Br({url:"/personal_fm",method:"get",params:{timestamp:(new Date).getTime()}})}function Er(t,e,n){const s=t.slice();return s[7]=e[n],s[9]=n,s}function Rr(t){let e,n;return e=new xo({props:{song:t[7],index:t[9]}}),e.$on("songClick",t[1]),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};1&n&&(s.song=t[7]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Pr(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=Rr(Er(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c()},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,[n]){if(3&n){let o;for(s=t[0],o=0;o<s.length;o+=1){const l=Er(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=Rr(l),i[o].c(),xt(i[o],1),i[o].m(e,null))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function Ar(t,e,n){let s,i;f(t,Ml,(t=>n(3,s=t))),f(t,_l,(t=>n(4,i=t)));let{songList:l=[]}=e,{isPlayList:o=!1}=e;async function r(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),s!==i.length-1&&Hr(i[s+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}return t.$$set=t=>{"songList"in t&&n(0,l=t.songList),"isPlayList"in t&&n(2,o=t.isPlayList)},[l,function(t){!function(t){if(o){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(l);let e=[];for(let t=0;t<l.length;t++)e.push(l[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),r(i[s])}else{Tl.set(!1),localStorage.setItem("isFMPlay","0");let e=i,n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);if(n.includes(l[t].id))Ml.set(n.indexOf(l[t].id)),r(i[s]);else{e.splice(s+1,0,l[t]),_l.set(e);let n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);localStorage.setItem("localPlayList",JSON.stringify(n)),Ml.set(s+1),r(i[s])}}}(t.detail.index)},o]}Br.interceptors.request.use((t=>(t.params||(t.params={}),t.isHideLoading||d(pi)||pi.set(!0),t))),Br.interceptors.response.use((t=>{pi.set(!1);const e=t.data;if(console.debug("response",t.config.url,e),e.code&&![200,800,801,802,803].includes(e.code)){const n=`${e.message||e.msg||"未知错误"} (${t.config.url}: ${e.code})`;As("string"==typeof e?e:n)}return e}),(t=>{if(pi.set(!1),"/daily_signin"!=t.response.config.url)return As(t.response.data.code+":"+(t.response.data.message?t.response.data.message:t.response.data.msg?t.response.data.msg:"未知错误")),t.response.data}));class jr extends It{constructor(t){super(),Ot(this,t,Ar,Pr,r,{songList:0,isPlayList:2})}}function Ur(t){let e,n,s;return n=new jr({props:{songList:t[26]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","song-list-box svelte-13zz8w0")},m(i,l){_(i,e,l),Lt(n,e,null),t[51](e),s=!0},p(t,e){const s={};67108864&e[0]&&(s.songList=t[26]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(s){s&&L(e),Tt(n),t[51](null)}}}function Vr(e){let n,s,i,l,o;return s=new Wl({props:{maxHeight:"54vh"}}),{c(){n=O("div"),_t(s.$$.fragment),E(n,"class","lyric-cover")},m(t,r){_(t,n,r),Lt(s,n,null),i=!0,l||(o=D(n,"click",e[44]),l=!0)},p:t,i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(n),Tt(s),l=!1,o()}}}function Fr(e){let n,s,i,o,r,c;return{c(){n=O("div"),s=O("div"),i=O("img"),j(i,"width",e[30]?"280px":"240px"),j(i,"height",e[30]?"280px":"240px"),a(i.src,o=e[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")||E(i,"src",o),E(i,"alt",""),E(i,"class","cover-img svelte-13zz8w0"),E(n,"class","cover svelte-13zz8w0")},m(t,l){_(t,n,l),S(n,s),S(s,i),e[50](n),r||(c=[D(n,"click",e[36]),D(n,"touchstart",e[46]),D(n,"touchend",e[47]),D(n,"touchmove",e[48])],r=!0)},p(t,e){1073741824&e[0]&&j(i,"width",t[30]?"280px":"240px"),1073741824&e[0]&&j(i,"height",t[30]?"280px":"240px"),8&e[0]&&!a(i.src,o=t[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")&&E(i,"src",o)},i:t,o:t,d(t){t&&L(n),e[50](null),r=!1,l(c)}}}function Jr(t){let e,n;return e=new qe({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function qr(t){let e,n;return e=new Ve({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Xr(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="24" height="24" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","30px")},m(t,e){_(t,n,e)},i:t,o:t,d(t){t&&L(n)}}}function Gr(t){let e,n,s,i,l,o;const r=[Kr,Wr],c=[];function a(t,e){return"list"===t[27]?0:1}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item list svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[55](e),i=!0,l||(o=D(e,"click",t[42]),l=!0)},p(t,i){let l=n;n=a(t),n!==l&&(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s||(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[55](null),l=!1,o()}}}function Wr(t){let e,n;return e=new jn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Kr(t){let e,n;return e=new Rn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Yr(t){let e,n,s,i,l,o;const r=[Qr,Zr],c=[];function a(t,e){return t[18]?0:1}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item list svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[56](e),i=!0,l||(o=D(e,"click",t[40]),l=!0)},p(t,i){let l=n;n=a(t),n!==l&&(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s||(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[56](null),l=!1,o()}}}function Zr(t){let e,n;return e=new ln({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Qr(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="24" height="24" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","30px")},m(t,e){_(t,n,e)},i:t,o:t,d(t){t&&L(n)}}}function tc(t){let e,n,s,i,l,o;const r=[nc,ec],c=[];function a(t,e){return t[19]?0:1}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item love svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[57](e),i=!0,l||(o=D(e,"click",t[39]),l=!0)},p(t,i){let l=n;n=a(t),n===l?c[n].p(t,i):(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s?s.p(t,i):(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[57](null),l=!1,o()}}}function ec(t){let e,n,s,i;const l=[ic,sc],o=[];function r(t,e){return t[20]?0:1}return n=r(t),s=o[n]=l[n](t),{c(){e=O("span"),s.c(),j(e,"color",t[20]?"var(--primary-text-color)":"#fff")},m(t,s){_(t,e,s),o[n].m(e,null),i=!0},p(t,c){let a=n;n=r(t),n!==a&&(wt(),bt(o[a],1,1,(()=>{o[a]=null})),yt(),s=o[n],s||(s=o[n]=l[n](t),s.c()),xt(s,1),s.m(e,null)),(!i||1048576&c[0])&&j(e,"color",t[20]?"var(--primary-text-color)":"#fff")},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(t){t&&L(e),o[n].d()}}}function nc(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="24" height="24" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","30px")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}function sc(t){let e,n;return e=new dn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ic(t){let e,n;return e=new cn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function lc(t){let e,n,s,i,l,o;const r=[ac,cc,rc,oc],c=[];function a(t,e){return"repeat"===t[25]?0:"repeatOnce"===t[25]?1:"heart"===t[25]?2:3}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item mode svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[59](e),i=!0,l||(o=D(e,"click",t[58]),l=!0)},p(t,i){let l=n;n=a(t),n===l?c[n].p(t,i):(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s?s.p(t,i):(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[59](null),l=!1,o()}}}function oc(e){let n,s;return n=new ds({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(n.$$.fragment)},m(t,e){Lt(n,t,e),s=!0},p:t,i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){Tt(n,t)}}}function rc(t){let e,n,s;return n=new yn({props:{size:"20",style:"vertical-align: middle"}}),{c(){e=O("span"),_t(n.$$.fragment),E(e,"class","svelte-13zz8w0"),U(e,"heart-beat",t[30])},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,n){1073741824&n[0]&&U(e,"heart-beat",t[30])},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function cc(e){let n,s;return n=new ls({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(n.$$.fragment)},m(t,e){Lt(n,t,e),s=!0},p:t,i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){Tt(n,t)}}}function ac(e){let n,s;return n=new zs({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(n.$$.fragment)},m(t,e){Lt(n,t,e),s=!0},p:t,i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){Tt(n,t)}}}function uc(e){let n,s,i,l,o;return s=new Cn({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("div"),_t(s.$$.fragment),E(n,"class","tool-item comment svelte-13zz8w0")},m(t,r){_(t,n,r),Lt(s,n,null),e[60](n),i=!0,l||(o=D(n,"click",e[45]),l=!0)},p:t,i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(n),Tt(s),e[60](null),l=!1,o()}}}function dc(t){let e,n;return e=new ms({props:{size:"40px",style:"vertical-align: middle;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function fc(t){let e,n;return e=new Qn({props:{size:"24px",style:"vertical-align: middle;;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function pc(t){let e,n;return e=new Nn({props:{size:"80px",style:"vertical-align: middle;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function mc(t){let e,n;return e=new Ln({props:{size:"80px",style:"vertical-align: middle;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function hc(t){let e;return{c(){e=O("div"),E(e,"class","play-mask svelte-13zz8w0"),j(e,"background-color","rgba(0, 0, 0, "+(.9-parseFloat(t[29])/window.screen.height)+")")},m(t,n){_(t,e,n)},p(t,n){536870912&n[0]&&j(e,"background-color","rgba(0, 0, 0, "+(.9-parseFloat(t[29])/window.screen.height)+")")},d(t){t&&L(e)}}}function gc(t){let e,n,s,i,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,F,J,q,X,G,W,K,Y,Z,Q,tt,et,nt,st,it,lt,ot,rt,ct,at,ut,dt,ft,pt,mt,ht,gt,vt,$t,zt,kt,St,Ct,Mt=t[3].name+"",Ot=t[3].alia&&t[3].alia.length>0?`(${t[3].alia[0]})`:"",It=Ds(t[3].ar)+"",Bt=""===t[3].al.name?"":`- ${t[3].al.name}`,Ht=("FLAC"===t[31]||"试听"===t[31]?t[31]:t[31].toString().substring(0,t[31].toString().length-3)+"K")+"",Nt=t[33]&&0<parseFloat(t[29])<window.screen.height-40;const Dt=[Fr,Vr,Ur],Et=[];function Rt(t,e){return"cover"===t[27]?0:"lyric"===t[27]?1:t[28]||"list"!==t[27]?-1:2}~(r=Rt(t))&&(c=Et[r]=Dt[r](t)),T=new fi({props:{current:t[1]}}),T.$on("setCurrent",t[34]),T.$on("setTimeCurrent",t[35]);const Pt=[Xr,qr,Jr],At=[];function jt(t,e){return t[17]?0:"lyric"===t[27]?1:2}Z=jt(t),Q=At[Z]=Pt[Z](t);let Ut=!t[28]&&Gr(t),Vt=t[28]&&t[4]&&Yr(t),Ft=t[4]&&tc(t),Jt=!t[28]&&lc(t),qt="0"!=t[32]&&uc(t);const Xt=[fc,dc],Gt=[];function Wt(t,e){return t[28]?0:1}ct=Wt(t),at=Gt[ct]=Xt[ct](t);const Kt=[mc,pc],Yt=[];function Zt(t,e){return t[30]?0:1}ft=Zt(t),pt=Yt[ft]=Kt[ft](t),gt=new vs({props:{size:"40px",style:"vertical-align: middle;height:80px"}});let Qt=Nt&&hc(t);return zt=new bl({props:{isShow:t[22],title:"请选择歌手",list:t[21]}}),zt.$on("ChangeShow",t[67]),zt.$on("PickerClick",t[68]),{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),i.innerHTML='<div class="down-line svelte-13zz8w0"></div>',o=H(),c&&c.c(),a=H(),u=O("div"),d=O("div"),f=O("div"),p=O("div"),m=B(Mt),h=H(),g=O("span"),v=B(Ot),$=H(),w=O("div"),y=B(It),x=H(),b=O("span"),z=B(Bt),k=H(),C=O("div"),M=O("div"),_t(T.$$.fragment),I=H(),N=O("div"),R=O("div"),A=B(t[0]),U=H(),V=O("div"),F=O("span"),J=B(Ht),q=H(),X=O("div"),G=B(t[2]),W=H(),K=O("div"),Y=O("div"),Q.c(),tt=H(),Ut&&Ut.c(),et=H(),Vt&&Vt.c(),nt=H(),Ft&&Ft.c(),st=H(),Jt&&Jt.c(),it=H(),qt&&qt.c(),lt=H(),ot=O("div"),rt=O("div"),at.c(),ut=H(),dt=O("div"),pt.c(),mt=H(),ht=O("div"),_t(gt.$$.fragment),vt=H(),Qt&&Qt.c(),$t=H(),_t(zt.$$.fragment),E(i,"class","down svelte-13zz8w0"),E(s,"class","top-box svelte-13zz8w0"),E(g,"class","alia svelte-13zz8w0"),E(p,"class","name svelte-13zz8w0"),E(w,"class","songer svelte-13zz8w0"),E(f,"class","song svelte-13zz8w0"),E(M,"class","line svelte-13zz8w0"),E(R,"class","time-item start svelte-13zz8w0"),E(F,"class","quality-span svelte-13zz8w0"),E(V,"class","time-item quality svelte-13zz8w0"),E(X,"class","time-item end svelte-13zz8w0"),E(N,"class","time svelte-13zz8w0"),E(C,"class","progress"),E(d,"class","info svelte-13zz8w0"),E(Y,"class","tool-item lyric svelte-13zz8w0"),E(K,"class","tool svelte-13zz8w0"),E(rt,"class","con-item pre svelte-13zz8w0"),E(dt,"class","con-item pause svelte-13zz8w0"),E(ht,"class","con-item next svelte-13zz8w0"),E(ot,"class","control svelte-13zz8w0"),E(u,"class","control-box svelte-13zz8w0"),E(n,"class","play svelte-13zz8w0"),E(e,"class","play-bg svelte-13zz8w0"),j(e,"background","url("+t[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800)"),j(e,"top",t[29])},m(l,c){_(l,e,c),S(e,n),S(n,s),S(s,i),S(s,o),~r&&Et[r].m(s,null),S(n,a),S(n,u),S(u,d),S(d,f),S(f,p),S(p,m),S(p,h),S(p,g),S(g,v),S(f,$),S(f,w),S(w,y),S(w,x),S(w,b),S(b,z),S(d,k),S(d,C),S(C,M),Lt(T,M,null),S(C,I),S(C,N),S(N,R),S(R,A),S(N,U),S(N,V),S(V,F),S(F,J),S(N,q),S(N,X),S(X,G),S(u,W),S(u,K),S(K,Y),At[Z].m(Y,null),t[54](Y),S(K,tt),Ut&&Ut.m(K,null),S(K,et),Vt&&Vt.m(K,null),S(K,nt),Ft&&Ft.m(K,null),S(K,st),Jt&&Jt.m(K,null),S(K,it),qt&&qt.m(K,null),S(u,lt),S(u,ot),S(ot,rt),Gt[ct].m(rt,null),t[62](rt),S(ot,ut),S(ot,dt),Yt[ft].m(dt,null),t[63](dt),S(ot,mt),S(ot,ht),Lt(gt,ht,null),t[65](ht),t[66](e),_(l,vt,c),Qt&&Qt.m(l,c),_(l,$t,c),Lt(zt,l,c),kt=!0,St||(Ct=[D(i,"click",t[36]),D(i,"touchstart",t[46]),D(i,"touchend",t[47]),D(i,"touchmove",t[48]),D(w,"click",t[52]),D(V,"click",t[53]),D(Y,"click",t[41]),D(rt,"click",t[61]),D(dt,"click",t[64]),D(ht,"click",t[37])],St=!0)},p(t,n){let i=r;r=Rt(t),r===i?~r&&Et[r].p(t,n):(c&&(wt(),bt(Et[i],1,1,(()=>{Et[i]=null})),yt()),~r?(c=Et[r],c?c.p(t,n):(c=Et[r]=Dt[r](t),c.c()),xt(c,1),c.m(s,null)):c=null),(!kt||8&n[0])&&Mt!==(Mt=t[3].name+"")&&P(m,Mt),(!kt||8&n[0])&&Ot!==(Ot=t[3].alia&&t[3].alia.length>0?`(${t[3].alia[0]})`:"")&&P(v,Ot),(!kt||8&n[0])&&It!==(It=Ds(t[3].ar)+"")&&P(y,It),(!kt||8&n[0])&&Bt!==(Bt=""===t[3].al.name?"":`- ${t[3].al.name}`)&&P(z,Bt);const l={};2&n[0]&&(l.current=t[1]),T.$set(l),(!kt||1&n[0])&&P(A,t[0]),(!kt||1&n[1])&&Ht!==(Ht=("FLAC"===t[31]||"试听"===t[31]?t[31]:t[31].toString().substring(0,t[31].toString().length-3)+"K")+"")&&P(J,Ht),(!kt||4&n[0])&&P(G,t[2]);let o=Z;Z=jt(t),Z!==o&&(wt(),bt(At[o],1,1,(()=>{At[o]=null})),yt(),Q=At[Z],Q||(Q=At[Z]=Pt[Z](t),Q.c()),xt(Q,1),Q.m(Y,null)),t[28]?Ut&&(wt(),bt(Ut,1,1,(()=>{Ut=null})),yt()):Ut?(Ut.p(t,n),268435456&n[0]&&xt(Ut,1)):(Ut=Gr(t),Ut.c(),xt(Ut,1),Ut.m(K,et)),t[28]&&t[4]?Vt?(Vt.p(t,n),268435472&n[0]&&xt(Vt,1)):(Vt=Yr(t),Vt.c(),xt(Vt,1),Vt.m(K,nt)):Vt&&(wt(),bt(Vt,1,1,(()=>{Vt=null})),yt()),t[4]?Ft?(Ft.p(t,n),16&n[0]&&xt(Ft,1)):(Ft=tc(t),Ft.c(),xt(Ft,1),Ft.m(K,st)):Ft&&(wt(),bt(Ft,1,1,(()=>{Ft=null})),yt()),t[28]?Jt&&(wt(),bt(Jt,1,1,(()=>{Jt=null})),yt()):Jt?(Jt.p(t,n),268435456&n[0]&&xt(Jt,1)):(Jt=lc(t),Jt.c(),xt(Jt,1),Jt.m(K,it)),"0"!=t[32]?qt?(qt.p(t,n),2&n[1]&&xt(qt,1)):(qt=uc(t),qt.c(),xt(qt,1),qt.m(K,null)):qt&&(wt(),bt(qt,1,1,(()=>{qt=null})),yt());let a=ct;ct=Wt(t),ct!==a&&(wt(),bt(Gt[a],1,1,(()=>{Gt[a]=null})),yt(),at=Gt[ct],at||(at=Gt[ct]=Xt[ct](t),at.c()),xt(at,1),at.m(rt,null));let u=ft;ft=Zt(t),ft!==u&&(wt(),bt(Yt[u],1,1,(()=>{Yt[u]=null})),yt(),pt=Yt[ft],pt||(pt=Yt[ft]=Kt[ft](t),pt.c()),xt(pt,1),pt.m(dt,null)),(!kt||8&n[0])&&j(e,"background","url("+t[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800)"),(!kt||536870912&n[0])&&j(e,"top",t[29]),536870912&n[0]|4&n[1]&&(Nt=t[33]&&0<parseFloat(t[29])<window.screen.height-40),Nt?Qt?Qt.p(t,n):(Qt=hc(t),Qt.c(),Qt.m($t.parentNode,$t)):Qt&&(Qt.d(1),Qt=null);const d={};4194304&n[0]&&(d.isShow=t[22]),2097152&n[0]&&(d.list=t[21]),zt.$set(d)},i(t){kt||(xt(c),xt(T.$$.fragment,t),xt(Q),xt(Ut),xt(Vt),xt(Ft),xt(Jt),xt(qt),xt(at),xt(pt),xt(gt.$$.fragment,t),xt(zt.$$.fragment,t),kt=!0)},o(t){bt(c),bt(T.$$.fragment,t),bt(Q),bt(Ut),bt(Vt),bt(Ft),bt(Jt),bt(qt),bt(at),bt(pt),bt(gt.$$.fragment,t),bt(zt.$$.fragment,t),kt=!1},d(n){n&&L(e),~r&&Et[r].d(),Tt(T),At[Z].d(),t[54](null),Ut&&Ut.d(),Vt&&Vt.d(),Ft&&Ft.d(),Jt&&Jt.d(),qt&&qt.d(),Gt[ct].d(),t[62](null),Yt[ft].d(),t[63](null),Tt(gt),t[65](null),t[66](null),n&&L(vt),Qt&&Qt.d(n),n&&L($t),Tt(zt,n),St=!1,l(Ct)}}}function vc(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$,w,y,x,b,z,k,S,C,M;f(t,hi,(t=>n(23,a=t))),f(t,Zt,(t=>n(24,u=t))),f(t,Dl,(t=>n(25,d=t))),f(t,Ml,(t=>n(74,p=t))),f(t,_l,(t=>n(26,m=t))),f(t,Nl,(t=>n(27,h=t))),f(t,Cl,(t=>n(3,g=t))),f(t,Hl,(t=>n(75,v=t))),f(t,mi,(t=>n(4,$=t))),f(t,Ol,(t=>n(76,w=t))),f(t,Tl,(t=>n(28,y=t))),f(t,Il,(t=>n(77,x=t))),f(t,po,(t=>n(49,b=t))),f(t,Ll,(t=>n(29,z=t))),f(t,zl,(t=>n(30,k=t))),f(t,El,(t=>n(31,S=t))),f(t,zi,(t=>n(32,C=t))),f(t,kl,(t=>n(33,M=t)));let _,L,T,O,I,B,H,N,D,E,R,P,A,j,{currentTime:U="0:00"}=e,{currentTimeLong:V=0}=e,{endTime:F=0}=e,J=0,q=0,X=0;function G(){if(y)K(x,"next"),Nl.set("cover");else if(p===m.length-1)Ps("已经是最后一首了");else if("lyric"===h&&Nl.set("cover"),"shuffle"===d){let t=Math.floor(Math.random()*(m.length-1));K(m[t],"shuffle",t)}else Ml.set(p+1),K(m[p],"next")}function W(){0===p?Ps("已经是第一首了"):("lyric"===h&&Nl.set("cover"),K(m[p-1],"pre"))}async function K(t,e,n){const s=await Hr(t.id);200===s.code&&(s.data[0].url?(t.url=s.data[0].url.replace(/^http:/,"https:"),1===s.data[0].fee&&null!=s.data[0].freeTrialInfo?El.set("试听"):"flac"===s.data[0].type?El.set("FLAC"):El.set(s.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),y?(!async function(){const t=await Dr();200===t.code&&(t.data[0].al=t.data[0].album,t.data[0].ar=t.data[0].artists,t.data[0].alia=t.data[0].alias,Il.set(t.data[0]),Hr(t.data[0].id))}(),Ol.set(t),Cl.set(t),_l.set([w]),Ml.set(0),localStorage.setItem("currentSong",JSON.stringify(t))):"next"===e?p!==m.length-1&&Hr(m[p+1].id):"shuffle"===e?p!==m.length-1&&Ml.set(n):Ml.set(p-1)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}function Z(t){"heart"===d?Ps("心动模式无需切换"):"repeat"===d?Dl.set("shuffle"):"shuffle"===d?Dl.set("repeatOnce"):Dl.set("repeat")}Y((()=>{Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover"),_&&Js(_),L&&Js(L),T&&Js(T),O&&Js(O),I&&Js(I),B&&Js(B),H&&Js(H),N&&Js(N),D&&Js(D),E&&Js(E)}));return t.$$set=t=>{"currentTime"in t&&n(0,U=t.currentTime),"currentTimeLong"in t&&n(1,V=t.currentTimeLong),"endTime"in t&&n(2,F=t.endTime)},t.$$.update=()=>{24&t.$$.dirty[0]|262144&t.$$.dirty[1]&&n(20,s=!!$&&b.includes(g.id)),8&t.$$.dirty[0]&&n(21,c=g.ar)},n(19,i=!1),n(18,l=!1),n(17,o=!1),n(22,r=!1),[U,V,F,g,$,_,L,T,O,I,B,H,N,D,E,R,j,o,l,i,s,c,r,a,u,d,m,h,y,z,k,S,C,M,function(t){window.audioDOM.currentTime=t.detail.current/100*window.audioDOM.duration,n(0,U=Gs(window.audioDOM.currentTime)),n(1,V=window.audioDOM.currentTime/window.audioDOM.duration*100),n(2,F="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime)),window.audioDOM.play(),zl.set(!0)},function(t){window.audioDOM.currentTime=t.detail.timeCurrent/100*window.audioDOM.duration,n(0,U=Gs(window.audioDOM.currentTime)),n(1,V=window.audioDOM.currentTime/window.audioDOM.duration*100),n(2,F="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime))},function(){Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")},G,W,async function(){if($){n(19,i=!0);if(200===(await(t={id:g.id,like:!s},t.timestamp=(new Date).getTime(),Br({url:"/like",method:"get",params:t}))).code){const t=JSON.parse(localStorage.getItem("useLoveSongIds"));if(s){let e=t.indexOf(g.id);t.splice(e,1)}else t.unshift(g.id);n(19,i=!1),po.set(JSON.stringify(t)),localStorage.setItem("useLoveSongIds",JSON.stringify(t))}else n(19,i=!1)}else Ps("当前未登录");var t},async function(){var t;n(18,l=!0),200===(await(t=g.id,Br({url:"/fm_trash",method:"post",params:{timestamp:(new Date).getTime(),id:t}}))).code&&(n(18,l=!1),G())},function(){"lyric"!==h?async function(){if(v.songId===g.id)Nl.set("lyric");else{n(17,o=!0);const e=await(t=g.id,Br({url:"/lyric",method:"get",params:{id:t}}));200===e.code?(n(17,o=!1),e.nolyric||e.needDesc||""===e.lrc.lyric?(Ps("🙈🙈么有歌词哦!!🙈🙈"),Hl.set({songId:null,lyric:null,tlyric:null}),localStorage.setItem("currentLyric",JSON.stringify({songId:null,lyric:null,tlyric:null}))):(Hl.set({songId:g.id,lyric:e.lrc.lyric,tlyric:e.tlyric.lyric}),localStorage.setItem("currentLyric",JSON.stringify({songId:g.id,lyric:e.lrc.lyric,tlyric:e.tlyric.lyric})),Nl.set("lyric"))):n(17,o=!1)}var t}():Nl.set("cover")},function(){if("list"!==h)if(p>200){!0===confirm("当前播放歌曲在播放列表中位置超过 200,显示播放列表将自动滚动至当前歌曲,极短时间内渲染大量页面会严重消耗设备性能😈😈。可以考虑到歌单详情页(已做了懒加载)查看列表哦😅。🤔确定显示播放列表吗🤔?")&&(m.length>200?Ps("列表太长,等我加载...🥱🥱",1e3,(()=>{Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100)})):(Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100)))}else m.length>200?Ps("列表太长,等我加载...🥱🥱",1e3,(()=>{Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100)})):(Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100));else Nl.set("cover")},Z,function(){Nl.set("cover")},function(){Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),"/comments"!==u&&(a&&hi.set(!1),me("/comments"))},function(t){q=(new Date).getTime(),P=t.changedTouches[0].clientY,J=0,Ll.set(J+"px")},function(t){X=(new Date).getTime(),A=t.changedTouches[0].clientY,J>=window.screen.height/2?(Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")):A-P<=100?Ll.set("0px"):A-P>100&&(A-P)/(X-q)>=.8?(Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")):A-P>100&&(A-P)/(X-q)<=.3?Ll.set("0px"):.3<(A-P)/(X-q)<.8&&A-P>250?(Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")):Ll.set("0px")},function(t){t.preventDefault(),t.stopPropagation(),parseFloat(R.style.top)>=0&&(J=t.changedTouches[0].clientY-P,Ll.set(J+"px"))},b,function(t){st[t?"unshift":"push"]((()=>{E=t,n(14,E)}))},function(t){st[t?"unshift":"push"]((()=>{j=t,n(16,j)}))},()=>{1===c.length?0!=c[0].id&&(Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),hi.set(!1),xi.set(c[0].id),me(`/artist?id=${c[0].id}`)):n(22,r=!0)},()=>{Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),"/brSelect"!==u&&(a&&hi.set(!1),me("/brSelect"))},function(t){st[t?"unshift":"push"]((()=>{_=t,n(5,_)}))},function(t){st[t?"unshift":"push"]((()=>{L=t,n(6,L)}))},function(t){st[t?"unshift":"push"]((()=>{O=t,n(8,O)}))},function(t){st[t?"unshift":"push"]((()=>{T=t,n(7,T)}))},t=>Z(),function(t){st[t?"unshift":"push"]((()=>{I=t,n(9,I)}))},function(t){st[t?"unshift":"push"]((()=>{B=t,n(10,B)}))},()=>{y||W()},function(t){st[t?"unshift":"push"]((()=>{H=t,n(11,H)}))},function(t){st[t?"unshift":"push"]((()=>{N=t,n(12,N)}))},()=>{k?(window.audioDOM.pause(),zl.set(!1),localStorage.setItem("pauseTimes",(new Date).getTime())):(((new Date).getTime()-Number(localStorage.getItem("pauseTimes")))/1e3/60>30&&(window.audioDOM.src=`https://music.163.com/song/media/outer/url?id=${g.id}.mp3`),window.audioDOM.play(),zl.set(!0))},function(t){st[t?"unshift":"push"]((()=>{D=t,n(13,D)}))},function(t){st[t?"unshift":"push"]((()=>{R=t,n(15,R)}))},t=>{n(22,r=t.detail.isShow)},t=>{const{item:e}=t.detail;0!=e.id&&(Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),hi.set(!1),xi.set(e.id),me(`/artist?id=${e.id}`))}]}class $c extends It{constructor(t){super(),Ot(this,t,vc,gc,r,{currentTime:0,currentTimeLong:1,endTime:2},null,[-1,-1,-1])}}function wc(t){let e,n;return{c(){e=O("img"),a(e.src,n=t[4].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")||E(e,"src",n),E(e,"alt",""),E(e,"class","svelte-1ekrfnw")},m(t,n){_(t,e,n)},p(t,s){16&s&&!a(e.src,n=t[4].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")&&E(e,"src",n)},d(t){t&&L(e)}}}function yc(t){let e,n;return e=new Nn({props:{size:"40",style:"vertical-align: middle;height:57px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function xc(t){let e,n;return e=new Ln({props:{size:"40",style:"vertical-align: middle;height:57px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function bc(t){let e,n,s,i,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R=t[4].name+"",A=t[4].alia&&t[4].alia.length>0?`(${t[4].alia[0]})`:"",U=Ds(t[4].ar)+"",V=""===t[4].al.name?"":`- ${t[4].al.name}`;o=new uo({props:{height:50,$$slots:{default:[wc]},$$scope:{ctx:t}}});const F=[xc,yc],J=[];function q(t,e){return t[5]?0:1}return b=q(t),z=J[b]=F[b](t),M=new ys({props:{size:"40",style:"vertical-align: middle;height:57px"}}),{c(){e=O("div"),n=O("div"),s=H(),i=O("div"),_t(o.$$.fragment),r=H(),c=O("div"),a=O("div"),u=B(R),d=H(),f=O("span"),p=B(A),m=H(),h=O("div"),g=B(U),v=H(),$=O("span"),w=B(V),y=H(),x=O("div"),z.c(),k=H(),C=O("div"),_t(M.$$.fragment),E(n,"class","progress svelte-1ekrfnw"),j(n,"width",t[0]/100*window.screen.width+"px"),E(i,"class","cover svelte-1ekrfnw"),j(i,"left",t[3]+"px"),E(f,"class","alia svelte-1ekrfnw"),E(a,"class","name svelte-1ekrfnw"),E(h,"class","songer svelte-1ekrfnw"),E(c,"class","info svelte-1ekrfnw"),j(c,"left",t[3]+"px"),E(x,"class","pause svelte-1ekrfnw"),E(C,"class","next svelte-1ekrfnw"),E(e,"class","play secondary svelte-1ekrfnw"),j(e,"bottom",(t[6]?56:0)+"px")},m(l,z){_(l,e,z),S(e,n),S(e,s),S(e,i),Lt(o,i,null),S(e,r),S(e,c),S(c,a),S(a,u),S(a,d),S(a,f),S(f,p),S(c,m),S(c,h),S(h,g),S(h,v),S(h,$),S($,w),S(e,y),S(e,x),J[b].m(x,null),t[13](x),S(e,k),S(e,C),Lt(M,C,null),t[14](C),T=!0,I||(N=[D(n,"click",t[7]),D(i,"click",t[7]),D(c,"click",t[7]),D(x,"click",t[8]),D(C,"click",t[9]),D(e,"touchstart",t[10]),D(e,"touchend",t[11]),D(e,"touchmove",t[12])],I=!0)},p(t,[s]){(!T||1&s)&&j(n,"width",t[0]/100*window.screen.width+"px");const l={};268435472&s&&(l.$$scope={dirty:s,ctx:t}),o.$set(l),(!T||8&s)&&j(i,"left",t[3]+"px"),(!T||16&s)&&R!==(R=t[4].name+"")&&P(u,R),(!T||16&s)&&A!==(A=t[4].alia&&t[4].alia.length>0?`(${t[4].alia[0]})`:"")&&P(p,A),(!T||16&s)&&U!==(U=Ds(t[4].ar)+"")&&P(g,U),(!T||16&s)&&V!==(V=""===t[4].al.name?"":`- ${t[4].al.name}`)&&P(w,V),(!T||8&s)&&j(c,"left",t[3]+"px");let r=b;b=q(t),b!==r&&(wt(),bt(J[r],1,1,(()=>{J[r]=null})),yt(),z=J[b],z||(z=J[b]=F[b](t),z.c()),xt(z,1),z.m(x,null)),(!T||64&s)&&j(e,"bottom",(t[6]?56:0)+"px")},i(t){T||(xt(o.$$.fragment,t),xt(z),xt(M.$$.fragment,t),T=!0)},o(t){bt(o.$$.fragment,t),bt(z),bt(M.$$.fragment,t),T=!1},d(n){n&&L(e),Tt(o),J[b].d(),t[13](null),Tt(M),t[14](null),I=!1,l(N)}}}function zc(t,e,n){let s,i,l,o,r,c,a,u,d,p;f(t,Ml,(t=>n(19,i=t))),f(t,_l,(t=>n(20,l=t))),f(t,Ol,(t=>n(21,o=t))),f(t,Tl,(t=>n(22,r=t))),f(t,Dl,(t=>n(23,c=t))),f(t,Il,(t=>n(24,a=t))),f(t,Cl,(t=>n(4,u=t))),f(t,zl,(t=>n(5,d=t))),f(t,hi,(t=>n(6,p=t)));let m,h,g,v,{currentTimeLong:$=window.audioDOM.currentTime/window.audioDOM.duration}=e,w=0,y=0;function x(){if(r)b(a,"fm");else if(i===l.length-1)Ps("已经是最后一首了");else if("shuffle"===c){let t=Math.floor(Math.random()*(l.length-1));b(l[t],"shuffle",t)}else Ml.set(i+1),b(l[i],"next")}async function b(t,e,n){const s=await Hr(t.id);200===s.code&&(s.data[0].url?(t.url=s.data[0].url.replace(/^http:/,"https:"),1===s.data[0].fee&&null!=s.data[0].freeTrialInfo?El.set("试听"):"flac"===s.data[0].type?El.set("FLAC"):El.set(s.data[0].br),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),r?(!async function(){const t=await Dr();200===t.code&&(t.data[0].al=t.data[0].album,t.data[0].ar=t.data[0].artists,t.data[0].alia=t.data[0].alias,Il.set(t.data[0]))}(),Ol.set(t),Cl.set(t),_l.set([o]),Ml.set(0),localStorage.setItem("currentSong",JSON.stringify(t))):"shuffle"===e?(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(n)):(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),i!==l.length-1&&Hr(l[i+1].id))):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}return Y((()=>{m&&Js(m),h&&Js(h)})),t.$$set=t=>{"currentTimeLong"in t&&n(0,$=t.currentTimeLong)},n(3,s=0),[$,m,h,s,u,d,p,function(){kl.set(!0),Ll.set("0px")},function(){d?(window.audioDOM.pause(),zl.set(!1),localStorage.setItem("pauseTimes",(new Date).getTime())):(((new Date).getTime()-Number(localStorage.getItem("pauseTimes")))/1e3/60>30&&(window.audioDOM.src=`https://music.163.com/song/media/outer/url?id=${u.id}.mp3`),window.audioDOM.play(),zl.set(!0))},x,function(t){w=(new Date).getTime(),g=t.changedTouches[0].clientX},function(t){n(3,s=0),y=(new Date).getTime(),v=t.changedTouches[0].clientX,(g-v>100||g-v<=100&&(g-v)/(y-w)>=.5)&&x()},function(t){t.preventDefault(),t.stopPropagation(),t.changedTouches[0].clientX-g<0&&n(3,s=t.changedTouches[0].clientX-g)},function(t){st[t?"unshift":"push"]((()=>{m=t,n(1,m)}))},function(t){st[t?"unshift":"push"]((()=>{h=t,n(2,h)}))}]}class kc extends It{constructor(t){super(),Ot(this,t,zc,bc,r,{currentTimeLong:0})}}function Sc(e){let n;return{c(){n=O("div"),n.innerHTML='<div class="sk-chase svelte-xii8w4"><div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div></div>',E(n,"class","bg svelte-xii8w4")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}class Cc extends It{constructor(t){super(),Ot(this,t,null,Sc,r,{})}}function Mc(t){return t.timestamp=(new Date).getTime(),Br({url:"/user/playlist",method:"get",params:t})}function _c(t){return Br({url:"/artist/sublist",method:"get",params:{limit:t.limit,timestamp:(new Date).getTime()}})}function Lc(t){let e,n,s,i;const l=[Oc,Tc],o=[];function r(t,e){return"icon"===t[3].type?0:1}return n=r(t),s=o[n]=l[n](t),{c(){e=O("div"),s.c(),E(e,"class","right svelte-f8uv3r")},m(s,l){_(s,e,l),o[n].m(e,null),t[8](e),i=!0},p(t,i){let c=n;n=r(t),n===c?o[n].p(t,i):(wt(),bt(o[c],1,1,(()=>{o[c]=null})),yt(),s=o[n],s?s.p(t,i):(s=o[n]=l[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),o[n].d(),t[8](null)}}}function Tc(e){let n,s,i,l,o=e[3].text+"";return{c(){n=O("span"),s=B(o),E(n,"class","right-text svelte-f8uv3r")},m(t,o){_(t,n,o),S(n,s),i||(l=D(n,"click",e[7]),i=!0)},p(t,e){8&e&&o!==(o=t[3].text+"")&&P(s,o)},i:t,o:t,d(t){t&&L(n),i=!1,l()}}}function Oc(t){let e,n,s,i,l;var o=t[3].path;return o&&(n=new o({props:{size:"24"}})),{c(){e=O("span"),n&&_t(n.$$.fragment),E(e,"class","svelte-f8uv3r"),U(e,"rotate-icon",t[2])},m(o,r){_(o,e,r),n&&Lt(n,e,null),s=!0,i||(l=D(e,"click",t[6]),i=!0)},p(t,s){if(o!==(o=t[3].path)){if(n){wt();const t=n;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}o?(n=new o({props:{size:"24"}}),_t(n.$$.fragment),xt(n.$$.fragment,1),Lt(n,e,null)):n=null}4&s&&U(e,"rotate-icon",t[2])},i(t){s||(n&&xt(n.$$.fragment,t),s=!0)},o(t){n&&bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),n&&Tt(n),i=!1,l()}}}function Ic(t){let e,n,s,i,l,o,r,c,a,u=t[3]&&Lc(t);return{c(){e=O("div"),n=O("div"),s=O("h1"),i=B(t[0]),l=O("span"),o=B("   "),r=B(t[1]),c=H(),u&&u.c(),E(l,"class","desc svelte-f8uv3r"),E(s,"class","svelte-f8uv3r"),E(n,"class","title"),E(e,"class","top-title svelte-f8uv3r")},m(t,d){_(t,e,d),S(e,n),S(n,s),S(s,i),S(s,l),S(l,o),S(l,r),S(e,c),u&&u.m(e,null),a=!0},p(t,[n]){(!a||1&n)&&P(i,t[0]),(!a||2&n)&&P(r,t[1]),t[3]?u?(u.p(t,n),8&n&&xt(u,1)):(u=Lc(t),u.c(),xt(u,1),u.m(e,null)):u&&(wt(),bt(u,1,1,(()=>{u=null})),yt())},i(t){a||(xt(u),a=!0)},o(t){bt(u),a=!1},d(t){t&&L(e),u&&u.d()}}}function Bc(t,e,n){let{title:s="首页"}=e,{desc:i="暂无描述"}=e,{isRefresh:l=!1}=e,{topTitleRightList:o={}}=e;const r=tt();function c(t){r("IconClick",{index:t})}let a;Y((()=>(a&&Js(a),()=>{n(4,a=null)}))),Z((()=>{a&&Js(a)}));return t.$$set=t=>{"title"in t&&n(0,s=t.title),"desc"in t&&n(1,i=t.desc),"isRefresh"in t&&n(2,l=t.isRefresh),"topTitleRightList"in t&&n(3,o=t.topTitleRightList)},[s,i,l,o,a,c,()=>c(0),()=>c(0),function(t){st[t?"unshift":"push"]((()=>{a=t,n(4,a)}))}]}class Hc extends It{constructor(t){super(),Ot(this,t,Bc,Ic,r,{title:0,desc:1,isRefresh:2,topTitleRightList:3})}}const Nc=Nt({}),Dc=Nt([]);function Ec(t){let e,n;return{c(){e=O("img"),a(e.src,n=t[0].replace(/^http:/,"https:")+`?param=${2*t[4]}y${2*t[4]}`)||E(e,"src",n),E(e,"alt",""),E(e,"class","svelte-tuixc8")},m(t,n){_(t,e,n)},p(t,s){17&s&&!a(e.src,n=t[0].replace(/^http:/,"https:")+`?param=${2*t[4]}y${2*t[4]}`)&&E(e,"src",n)},d(t){t&&L(e)}}}function Rc(t){let e,n;return{c(){e=O("div"),n=B(t[3]),E(e,"class","copywriter svelte-tuixc8")},m(t,s){_(t,e,s),S(e,n)},p(t,e){8&e&&P(n,t[3])},d(t){t&&L(e)}}}function Pc(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v=Es(t[1])+"";s=new uo({props:{height:t[4],$$slots:{default:[Ec]},$$scope:{ctx:t}}}),r=new Fn({});let $=t[3]&&null!==t[3]&&""!==t[3]&&Rc(t);return{c(){e=O("div"),n=O("div"),_t(s.$$.fragment),i=H(),l=O("div"),o=O("span"),_t(r.$$.fragment),c=H(),a=B(v),u=H(),d=O("div"),f=B(t[2]),p=H(),$&&$.c(),E(n,"class","cover-img svelte-tuixc8"),j(n,"width",t[4]+"px"),j(n,"height",t[4]+"px"),j(o,"position","relative"),j(o,"top","1px"),E(l,"class","play-num svelte-tuixc8"),E(d,"class","name svelte-tuixc8"),j(d,"width",t[4]+"px"),E(e,"class","cover svelte-tuixc8"),j(e,"width",t[4]+"px")},m(v,w){_(v,e,w),S(e,n),Lt(s,n,null),S(e,i),S(e,l),S(l,o),Lt(r,o,null),S(l,c),S(l,a),S(e,u),S(e,d),S(d,f),S(e,p),$&&$.m(e,null),t[9](e),m=!0,h||(g=D(e,"click",t[6]),h=!0)},p(t,[i]){const l={};16&i&&(l.height=t[4]),2065&i&&(l.$$scope={dirty:i,ctx:t}),s.$set(l),(!m||16&i)&&j(n,"width",t[4]+"px"),(!m||16&i)&&j(n,"height",t[4]+"px"),(!m||2&i)&&v!==(v=Es(t[1])+"")&&P(a,v),(!m||4&i)&&P(f,t[2]),(!m||16&i)&&j(d,"width",t[4]+"px"),t[3]&&null!==t[3]&&""!==t[3]?$?$.p(t,i):($=Rc(t),$.c(),$.m(e,null)):$&&($.d(1),$=null),(!m||16&i)&&j(e,"width",t[4]+"px")},i(t){m||(xt(s.$$.fragment,t),xt(r.$$.fragment,t),m=!0)},o(t){bt(s.$$.fragment,t),bt(r.$$.fragment,t),m=!1},d(n){n&&L(e),Tt(s),Tt(r),$&&$.d(),t[9](null),h=!1,g()}}}function Ac(t,e,n){let s,{coverImgUrl:i=""}=e,{playCount:l=0}=e,{name:o=""}=e,{copywriter:r=""}=e,{id:c=0}=e,{width:a=150}=e,{trackCount:u=0}=e;return Y((()=>{s&&Js(s)})),t.$$set=t=>{"coverImgUrl"in t&&n(0,i=t.coverImgUrl),"playCount"in t&&n(1,l=t.playCount),"name"in t&&n(2,o=t.name),"copywriter"in t&&n(3,r=t.copywriter),"id"in t&&n(7,c=t.id),"width"in t&&n(4,a=t.width),"trackCount"in t&&n(8,u=t.trackCount)},[i,l,o,r,a,s,function(){hi.set(!1),me(`/playlist?id=${c}`)},c,u,function(t){st[t?"unshift":"push"]((()=>{s=t,n(5,s)}))}]}class jc extends It{constructor(t){super(),Ot(this,t,Ac,Pc,r,{coverImgUrl:0,playCount:1,name:2,copywriter:3,id:7,width:4,trackCount:8})}}function Uc(t,e,n){const s=t.slice();return s[12]=e[n],s}function Vc(t){let e,n,s,i,l,o;return l=new Oe({props:{size:"24",style:"vertical-align: middle;"}}),{c(){e=O("div"),n=B(t[5]),s=H(),i=O("span"),_t(l.$$.fragment),E(i,"class","title-icon svelte-f5vwj4"),E(e,"class","title-right svelte-f5vwj4")},m(t,r){_(t,e,r),S(e,n),S(e,s),S(e,i),Lt(l,i,null),o=!0},p(t,e){(!o||32&e)&&P(n,t[5])},i(t){o||(xt(l.$$.fragment,t),o=!0)},o(t){bt(l.$$.fragment,t),o=!1},d(t){t&&L(e),Tt(l)}}}function Fc(t){let e,n,s;return n=new Yi({props:{tipTextList:t[4]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","tip svelte-f5vwj4")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};16&e&&(s.tipTextList=t[4]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Jc(t){let e,n,s,i;return n=new jc({props:{name:t[12].name,coverImgUrl:t[12].coverImgUrl,id:t[12].id,width:220,playCount:t[12].playCount,copywriter:t[12].copywriter?t[12].copywriter:"",trackCount:t[12].trackCount}}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),E(e,"class","item svelte-f5vwj4")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),i=!0},p(t,e){const s={};2&e&&(s.name=t[12].name),2&e&&(s.coverImgUrl=t[12].coverImgUrl),2&e&&(s.id=t[12].id),2&e&&(s.playCount=t[12].playCount),2&e&&(s.copywriter=t[12].copywriter?t[12].copywriter:""),2&e&&(s.trackCount=t[12].trackCount),n.$set(s)},i(t){i||(xt(n.$$.fragment,t),i=!0)},o(t){bt(n.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(n)}}}function qc(t){let e,n,s,i,l,o,r,c,a,u,d,f,m=t[2]&&Vc(t),$=t[3]&&Fc(t);const w=t[9].default,y=p(w,t,t[8],null);let x=t[1],b=[];for(let e=0;e<x.length;e+=1)b[e]=Jc(Uc(t,x,e));const z=t=>bt(b[t],1,1,(()=>{b[t]=null}));return{c(){e=O("div"),n=O("div"),s=O("div"),i=B(t[0]),l=H(),m&&m.c(),o=H(),$&&$.c(),r=H(),y&&y.c(),c=H(),a=O("div");for(let t=0;t<b.length;t+=1)b[t].c();E(s,"class","title-left svelte-f5vwj4"),E(n,"class","title svelte-f5vwj4"),E(a,"class","list svelte-f5vwj4"),E(e,"class","grid svelte-f5vwj4")},m(p,h){_(p,e,h),S(e,n),S(n,s),S(s,i),S(n,l),m&&m.m(n,null),t[10](n),S(e,o),$&&$.m(e,null),S(e,r),y&&y.m(e,null),S(e,c),S(e,a);for(let t=0;t<b.length;t+=1)b[t].m(a,null);u=!0,d||(f=D(n,"click",t[7]),d=!0)},p(t,[s]){if((!u||1&s)&&P(i,t[0]),t[2]?m?(m.p(t,s),4&s&&xt(m,1)):(m=Vc(t),m.c(),xt(m,1),m.m(n,null)):m&&(wt(),bt(m,1,1,(()=>{m=null})),yt()),t[3]?$?($.p(t,s),8&s&&xt($,1)):($=Fc(t),$.c(),xt($,1),$.m(e,r)):$&&(wt(),bt($,1,1,(()=>{$=null})),yt()),y&&y.p&&(!u||256&s)&&g(y,w,t,t[8],u?h(w,t[8],s,null):v(t[8]),null),2&s){let e;for(x=t[1],e=0;e<x.length;e+=1){const n=Uc(t,x,e);b[e]?(b[e].p(n,s),xt(b[e],1)):(b[e]=Jc(n),b[e].c(),xt(b[e],1),b[e].m(a,null))}for(wt(),e=x.length;e<b.length;e+=1)z(e);yt()}},i(t){if(!u){xt(m),xt($),xt(y,t);for(let t=0;t<x.length;t+=1)xt(b[t]);u=!0}},o(t){bt(m),bt($),bt(y,t),b=b.filter(Boolean);for(let t=0;t<b.length;t+=1)bt(b[t]);u=!1},d(n){n&&L(e),m&&m.d(),t[10](null),$&&$.d(),y&&y.d(n),T(b,n),d=!1,f()}}}function Xc(t,e,n){let{$$slots:s={},$$scope:i}=e,{title:l=""}=e,{playList:o=[]}=e,{isShowMore:r=!0}=e,{isShowTip:c=!1}=e,{tipTextList:a=""}=e,{iconText:u="更多"}=e;const d=tt();let f;return Y((()=>{f&&Js(f)})),t.$$set=t=>{"title"in t&&n(0,l=t.title),"playList"in t&&n(1,o=t.playList),"isShowMore"in t&&n(2,r=t.isShowMore),"isShowTip"in t&&n(3,c=t.isShowTip),"tipTextList"in t&&n(4,a=t.tipTextList),"iconText"in t&&n(5,u=t.iconText),"$$scope"in t&&n(8,i=t.$$scope)},[l,o,r,c,a,u,f,function(){d("titleClick")},i,s,function(t){st[t?"unshift":"push"]((()=>{f=t,n(6,f)}))}]}class Gc extends It{constructor(t){super(),Ot(this,t,Xc,qc,r,{title:0,playList:1,isShowMore:2,isShowTip:3,tipTextList:4,iconText:5})}}function Wc(t){let e,n,s;return n=new Cs({props:{size:"14",style:"vertical-align: middle"}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","star svelte-1vbvxim")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Kc(t){let e,n;return{c(){e=O("img"),a(e.src,n=t[0].img1v1Url.replace(/^http:/,"https:")+"?param="+t[1]+"y"+t[1])||E(e,"src",n),E(e,"alt",""),E(e,"class","svelte-1vbvxim")},m(t,n){_(t,e,n)},p(t,s){3&s&&!a(e.src,n=t[0].img1v1Url.replace(/^http:/,"https:")+"?param="+t[1]+"y"+t[1])&&E(e,"src",n)},d(t){t&&L(e)}}}function Yc(t){let e,n,s,i,l,o,r,c,a,u,d=t[3].includes(t[0].id),f=t[0].name+"",p=d&&Wc();return i=new uo({props:{height:100,$$slots:{default:[Kc]},$$scope:{ctx:t}}}),{c(){e=O("div"),p&&p.c(),n=H(),s=O("div"),_t(i.$$.fragment),l=H(),o=O("div"),r=B(f),E(s,"class","cover svelte-1vbvxim"),E(o,"class","name svelte-1vbvxim"),E(e,"class","singer svelte-1vbvxim")},m(d,f){_(d,e,f),p&&p.m(e,null),S(e,n),S(e,s),Lt(i,s,null),S(e,l),S(e,o),S(o,r),t[5](e),c=!0,a||(u=D(e,"click",t[4]),a=!0)},p(t,[s]){1&s&&(d=t[3].includes(t[0].id)),d?p?1&s&&xt(p,1):(p=Wc(),p.c(),xt(p,1),p.m(e,n)):p&&(wt(),bt(p,1,1,(()=>{p=null})),yt());const l={};67&s&&(l.$$scope={dirty:s,ctx:t}),i.$set(l),(!c||1&s)&&f!==(f=t[0].name+"")&&P(r,f)},i(t){c||(xt(p),xt(i.$$.fragment,t),c=!0)},o(t){bt(p),bt(i.$$.fragment,t),c=!1},d(n){n&&L(e),p&&p.d(),Tt(i),t[5](null),a=!1,u()}}}function Zc(t,e,n){let s,{songer:i={}}=e,{coverSize:l=200}=e,o=JSON.parse(localStorage.getItem("useLoveSongerIds"))||[];return Y((()=>{})),t.$$set=t=>{"songer"in t&&n(0,i=t.songer),"coverSize"in t&&n(1,l=t.coverSize)},[i,l,s,o,function(){hi.set(!1),xi.set(i.id),me(`/artist?id=${i.id}`)},function(t){st[t?"unshift":"push"]((()=>{s=t,n(2,s)}))}]}class Qc extends It{constructor(t){super(),Ot(this,t,Zc,Yc,r,{songer:0,coverSize:1})}}function ta(t,e=!1){let n={id:t};return e&&(n.timestamp=(new Date).getTime()),Br({url:"/playlist/detail",method:"get",params:n})}function ea(t){return Br({url:"/top/playlist/highquality",method:"get",params:t})}function na(t){return Br({url:"/top/playlist",method:"get",params:t})}function sa(t){return Br({url:"/artist/detail",method:"get",params:{id:t}})}function ia(t,e){return Br({url:"/top/artists",method:"get",params:{limit:t,offset:e}})}function la(t,e,n){const s=t.slice();return s[35]=e[n],s}function oa(t){let e,n,s,i,l,o,r,c,a,u,d;return n=new Hc({props:{title:"推荐",desc:"专属推荐",topTitleRightList:{type:"text",text:""}}}),u=new Ys({props:{type:"primary",$$slots:{default:[ca]},$$scope:{ctx:t}}}),u.$on("BtnClick",t[22]),{c(){e=O("div"),_t(n.$$.fragment),s=H(),i=O("div"),l=O("div"),l.innerHTML='<img class="login-img svelte-1c2b4vv" src="images/login.png" alt=""/>',o=H(),r=O("div"),r.textContent="推荐功能需要登录",c=H(),a=O("div"),_t(u.$$.fragment),E(r,"class","tip svelte-1c2b4vv"),E(a,"class","login-btn"),E(i,"class","noLogin svelte-1c2b4vv")},m(t,f){_(t,e,f),Lt(n,e,null),S(e,s),S(e,i),S(i,l),S(i,o),S(i,r),S(i,c),S(i,a),Lt(u,a,null),d=!0},p(t,e){const n={};128&e[1]&&(n.$$scope={dirty:e,ctx:t}),u.$set(n)},i(t){d||(xt(n.$$.fragment,t),xt(u.$$.fragment,t),d=!0)},o(t){bt(n.$$.fragment,t),bt(u.$$.fragment,t),d=!1},d(t){t&&L(e),Tt(n),Tt(u)}}}function ra(t){let e,n,s,i,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,F,J,q,X,G,W,K,Y,Z,Q,tt,et,nt,st,it,lt,ot,rt,ct,at,ut,dt,ft,pt=(0!==t[14].length?t[14][0].name:"")+"",mt=(0!==t[14].length?Ds(t[14][0].ar):"")+"",ht=`${(new Date).getMonth()+1}月${(new Date).getDate()}日`,gt=(t[11].name?t[11].name:"")+"",vt=t[11].alia&&t[11].alia.length>0?`(${t[11].alia[0]})`:"",$t=(t[11].artists?Ds(t[11].artists):"")+"";n=new Hc({props:{title:"推荐",desc:"专属推荐",topTitleRightList:t[16],isRefresh:t[9]}}),n.$on("IconClick",t[19]),b=new He({props:{size:"14"}});let zt=t[10]&&t[15]&&t[12].id===t[11].id&&aa(),kt=t[11].al&&ua(t);nt=new Kn({props:{size:"14"}}),ot=new Gc({props:{title:"每日歌单推荐",isShowMore:!1,playList:t[0]}});let St=t[4].length>0&&da(t),Ct=t[2].length>0&&fa(t),Mt=t[8].length>0&&t[7].name&&pa(t);return{c(){e=O("div"),_t(n.$$.fragment),s=H(),i=O("div"),o=O("div"),r=O("div"),c=H(),u=O("div"),d=O("div"),d.textContent="今日推荐",f=H(),p=O("div"),m=O("div"),h=B(pt),g=H(),v=O("div"),$=B(mt),w=H(),y=O("div"),x=O("span"),_t(b.$$.fragment),z=H(),k=B(ht),C=H(),M=O("div"),T=O("div"),I=O("div"),N=O("img"),A=H(),U=O("div"),zt&&zt.c(),V=H(),F=O("div"),J=B(gt),q=H(),X=O("span"),G=B(vt),W=H(),K=O("div"),Y=B($t),Z=H(),kt&&kt.c(),Q=H(),tt=O("div"),et=O("span"),_t(nt.$$.fragment),st=B("\n                私人 FM"),it=H(),lt=O("div"),_t(ot.$$.fragment),rt=H(),St&&St.c(),ct=H(),Ct&&Ct.c(),at=H(),Mt&&Mt.c(),E(r,"class","today-img-box svelte-1c2b4vv"),j(r,"width",Hs()-40+"px"),j(r,"background-image","url("+(0!==t[14].length?t[14][0].al.picUrl.replace(/^http:/,"https:")+"?param=800y800":ki)+")"),E(d,"class","day svelte-1c2b4vv"),E(m,"class","name svelte-1c2b4vv"),E(v,"class","songer"),j(x,"position","relative"),j(x,"top","2px "),E(y,"class","calendar svelte-1c2b4vv"),E(p,"class","name-list svelte-1c2b4vv"),E(u,"class","day-box svelte-1c2b4vv"),E(o,"class","today svelte-1c2b4vv"),E(N,"class","fm-cover-img svelte-1c2b4vv"),a(N.src,R=t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=240y240":"")||E(N,"src",R),E(N,"alt",""),E(I,"class","fm-cover svelte-1c2b4vv"),E(X,"class","alia svelte-1c2b4vv"),E(F,"class","fm-name svelte-1c2b4vv"),E(K,"class","fm-songer svelte-1c2b4vv"),j(et,"position","relative"),j(et,"top","2px "),E(tt,"class","fm-icon svelte-1c2b4vv"),E(U,"class","fm-info svelte-1c2b4vv"),E(T,"class","fm svelte-1c2b4vv"),E(M,"class","fm-box svelte-1c2b4vv"),j(M,"background","url("+(t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=80y80":"")+")"),E(lt,"class","list-grid svelte-1c2b4vv"),E(i,"class","login svelte-1c2b4vv"),E(e,"class","login-box svelte-1c2b4vv")},m(l,a){_(l,e,a),Lt(n,e,null),S(e,s),S(e,i),S(i,o),S(o,r),S(o,c),S(o,u),S(u,d),S(u,f),S(u,p),S(p,m),S(m,h),S(p,g),S(p,v),S(v,$),S(p,w),S(p,y),S(y,x),Lt(b,x,null),S(x,z),S(y,k),t[20](o),S(i,C),S(i,M),S(M,T),S(T,I),S(I,N),S(T,A),S(T,U),zt&&zt.m(U,null),S(U,V),S(U,F),S(F,J),S(F,q),S(F,X),S(X,G),S(U,W),S(U,K),S(K,Y),S(K,Z),kt&&kt.m(K,null),S(U,Q),S(U,tt),S(tt,et),Lt(nt,et,null),S(tt,st),t[21](M),S(i,it),S(i,lt),Lt(ot,lt,null),S(i,rt),St&&St.m(i,null),S(i,ct),Ct&&Ct.m(i,null),S(i,at),Mt&&Mt.m(i,null),ut=!0,dt||(ft=[D(o,"click",t[17]),D(M,"click",t[18])],dt=!0)},p(t,e){const s={};512&e[0]&&(s.isRefresh=t[9]),n.$set(s),(!ut||16384&e[0])&&j(r,"background-image","url("+(0!==t[14].length?t[14][0].al.picUrl.replace(/^http:/,"https:")+"?param=800y800":ki)+")"),(!ut||16384&e[0])&&pt!==(pt=(0!==t[14].length?t[14][0].name:"")+"")&&P(h,pt),(!ut||16384&e[0])&&mt!==(mt=(0!==t[14].length?Ds(t[14][0].ar):"")+"")&&P($,mt),(!ut||2048&e[0]&&!a(N.src,R=t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=240y240":""))&&E(N,"src",R),t[10]&&t[15]&&t[12].id===t[11].id?zt||(zt=aa(),zt.c(),zt.m(U,V)):zt&&(zt.d(1),zt=null),(!ut||2048&e[0])&&gt!==(gt=(t[11].name?t[11].name:"")+"")&&P(J,gt),(!ut||2048&e[0])&&vt!==(vt=t[11].alia&&t[11].alia.length>0?`(${t[11].alia[0]})`:"")&&P(G,vt),(!ut||2048&e[0])&&$t!==($t=(t[11].artists?Ds(t[11].artists):"")+"")&&P(Y,$t),t[11].al?kt?kt.p(t,e):(kt=ua(t),kt.c(),kt.m(K,null)):kt&&(kt.d(1),kt=null),(!ut||2048&e[0])&&j(M,"background","url("+(t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=80y80":"")+")");const l={};1&e[0]&&(l.playList=t[0]),ot.$set(l),t[4].length>0?St?(St.p(t,e),16&e[0]&&xt(St,1)):(St=da(t),St.c(),xt(St,1),St.m(i,ct)):St&&(wt(),bt(St,1,1,(()=>{St=null})),yt()),t[2].length>0?Ct?(Ct.p(t,e),4&e[0]&&xt(Ct,1)):(Ct=fa(t),Ct.c(),xt(Ct,1),Ct.m(i,at)):Ct&&(wt(),bt(Ct,1,1,(()=>{Ct=null})),yt()),t[8].length>0&&t[7].name?Mt?(Mt.p(t,e),384&e[0]&&xt(Mt,1)):(Mt=pa(t),Mt.c(),xt(Mt,1),Mt.m(i,null)):Mt&&(wt(),bt(Mt,1,1,(()=>{Mt=null})),yt())},i(t){ut||(xt(n.$$.fragment,t),xt(b.$$.fragment,t),xt(nt.$$.fragment,t),xt(ot.$$.fragment,t),xt(St),xt(Ct),xt(Mt),ut=!0)},o(t){bt(n.$$.fragment,t),bt(b.$$.fragment,t),bt(nt.$$.fragment,t),bt(ot.$$.fragment,t),bt(St),bt(Ct),bt(Mt),ut=!1},d(s){s&&L(e),Tt(n),Tt(b),t[20](null),zt&&zt.d(),kt&&kt.d(),Tt(nt),t[21](null),Tt(ot),St&&St.d(),Ct&&Ct.d(),Mt&&Mt.d(),dt=!1,l(ft)}}}function ca(t){let e;return{c(){e=B("立即登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function aa(t){let e;return{c(){e=O("div"),e.innerHTML='<div class="pull_down pull_down1 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down2 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down3 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down4 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down5 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down6 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down7 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down8 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down9 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down10 svelte-1c2b4vv"></div>',E(e,"class","fm-play-motion svelte-1c2b4vv")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function ua(t){let e,n,s=""===t[11].al.name?"":`- ${t[11].al.name}`;return{c(){e=O("span"),n=B(s)},m(t,s){_(t,e,s),S(e,n)},p(t,e){2048&e[0]&&s!==(s=""===t[11].al.name?"":`- ${t[11].al.name}`)&&P(n,s)},d(t){t&&L(e)}}}function da(t){let e,n,s,i,l,o,r,c,a,u=t[3].name+"";return c=new jr({props:{songList:t[4]}}),{c(){e=O("div"),e.textContent="相似歌曲推荐",n=H(),s=O("div"),i=B("根据单曲《"),l=B(u),o=B("》推荐"),r=H(),_t(c.$$.fragment),E(e,"class","simiTitle svelte-1c2b4vv"),E(s,"class","desc svelte-1c2b4vv")},m(t,u){_(t,e,u),_(t,n,u),_(t,s,u),S(s,i),S(s,l),S(s,o),_(t,r,u),Lt(c,t,u),a=!0},p(t,e){(!a||8&e[0])&&u!==(u=t[3].name+"")&&P(l,u);const n={};16&e[0]&&(n.songList=t[4]),c.$set(n)},i(t){a||(xt(c.$$.fragment,t),a=!0)},o(t){bt(c.$$.fragment,t),a=!1},d(t){t&&L(e),t&&L(n),t&&L(s),t&&L(r),Tt(c,t)}}}function fa(t){let e,n,s;return n=new Gc({props:{title:"相似歌单推荐",isShowMore:!1,isShowTip:!0,tipTextList:[`根据单曲《${t[1].name}》推荐`],playList:t[2]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-1c2b4vv")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};2&e[0]&&(s.tipTextList=[`根据单曲《${t[1].name}》推荐`]),4&e[0]&&(s.playList=t[2]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function pa(t){let e,n,s,i,l,o,r,c,a,u=t[7].name+"",d=t[8],f=[];for(let e=0;e<d.length;e+=1)f[e]=ma(la(t,d,e));const p=t=>bt(f[t],1,1,(()=>{f[t]=null}));return{c(){e=O("div"),e.textContent="相似歌手推荐",n=H(),s=O("div"),i=B("根据【"),l=B(u),o=B("】推荐"),r=H(),c=O("div");for(let t=0;t<f.length;t+=1)f[t].c();E(e,"class","simiTitle svelte-1c2b4vv"),E(s,"class","desc svelte-1c2b4vv"),E(c,"class","songer-box svelte-1c2b4vv")},m(t,u){_(t,e,u),_(t,n,u),_(t,s,u),S(s,i),S(s,l),S(s,o),_(t,r,u),_(t,c,u);for(let t=0;t<f.length;t+=1)f[t].m(c,null);a=!0},p(t,e){if((!a||128&e[0])&&u!==(u=t[7].name+"")&&P(l,u),256&e[0]){let n;for(d=t[8],n=0;n<d.length;n+=1){const s=la(t,d,n);f[n]?(f[n].p(s,e),xt(f[n],1)):(f[n]=ma(s),f[n].c(),xt(f[n],1),f[n].m(c,null))}for(wt(),n=d.length;n<f.length;n+=1)p(n);yt()}},i(t){if(!a){for(let t=0;t<d.length;t+=1)xt(f[t]);a=!0}},o(t){f=f.filter(Boolean);for(let t=0;t<f.length;t+=1)bt(f[t]);a=!1},d(t){t&&L(e),t&&L(n),t&&L(s),t&&L(r),t&&L(c),T(f,t)}}}function ma(t){let e,n;return e=new Qc({props:{songer:t[35],coverSize:330}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};256&n[0]&&(s.songer=t[35]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ha(t){let e,n,s,i;const l=[ra,oa],o=[];function r(t,e){return t[13]?0:1}return n=r(t),s=o[n]=l[n](t),{c(){e=O("div"),s.c(),E(e,"class","love svelte-1c2b4vv")},m(t,s){_(t,e,s),o[n].m(e,null),i=!0},p(t,i){let c=n;n=r(t),n===c?o[n].p(t,i):(wt(),bt(o[c],1,1,(()=>{o[c]=null})),yt(),s=o[n],s?s.p(t,i):(s=o[n]=l[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(t){t&&L(e),o[n].d()}}}function ga(t,e,n){let s,i,l,o,r,c,a,u,d,p;f(t,Tl,(t=>n(10,o=t))),f(t,mo,(t=>n(23,r=t))),f(t,Ol,(t=>n(11,c=t))),f(t,Cl,(t=>n(12,a=t))),f(t,mi,(t=>n(13,u=t))),f(t,Dc,(t=>n(14,d=t))),f(t,zl,(t=>n(15,p=t)));let m,h,g=[],v={},$=[],w={},y=[],x={type:"icon",path:ns};function b(){if(u){!async function(){const t=await Br({url:"/recommend/resource",method:"get",params:e});var e;if(200===t.code){let e=t.recommend;"猜你喜欢"===e[0].copywriter&&e[0].name.indexOf("私人雷达")>-1?k(!0,e):n(0,g=e)}}(),async function(){const t=await Br({url:"/recommend/songs",method:"get",params:{timestamp:(new Date).getTime()}}).then((t=>t));200===t.code&&Dc.set(t.data.dailySongs)}(),async function(t){const e=await Dr();200===e.code&&(e.data[0].al=e.data[0].album,e.data[0].ar=e.data[0].artists,e.data[0].alia=e.data[0].alias,e.data[1].al=e.data[1].album,e.data[1].ar=e.data[1].artists,e.data[1].alia=e.data[1].alias,t?(Ol.set(e.data[0]),Il.set(e.data[1]),localStorage.setItem("FMPlay",JSON.stringify(c))):Ol.set(e.data[0]))}(!0);let t=JSON.parse(localStorage.getItem("useLoveSongIds"))||[],e=Math.floor(Math.random()*t.length);!async function(t){const e=await Nr(t);200===e.code&&n(1,v=e.songs[0])}(t[e]),async function(t){const e=await function(t){return Br({url:"/simi/playlist",method:"get",params:{id:t}})}(t);200===e.code&&n(2,$=e.playlists)}(t[e]),k();const s=JSON.parse(localStorage.getItem("useLoveSongerIds"))||[];let o=Math.floor(Math.random()*s.length);o&&(async function(t){const e=await sa(t);200===e.code&&n(7,i=e.data.artist)}(s[o]),async function(t,e){const s=await function(t){return Br({url:"/simi/artist",method:"get",params:{id:t}})}(t);if(200===s.code){let t=[];for(let e=0;e<s.artists.length;e++)t.push(s.artists[e].id);let i=function(t,e){let n=new Set(t),s=new Set(e),i=new Set([...n].filter((t=>s.has(t))));return Array.from(i)}(t,e);for(let t=0;t<i.length;t++)for(let e=0;e<s.artists.length;e++)i[t]===s.artists[e].id&&s.artists.splice(e,1);n(8,l=s.artists.length>6?s.artists.slice(0,6):s.artists)}}(s[o],s))}}async function z(t){const e=await function(t){return Br({url:"/simi/song",method:"get",params:{id:t}})}(t);if(200===e.code){s&&n(9,s=!1);for(let t=0;t<e.songs.length;t++)e.songs[t].al=e.songs[t].album,e.songs[t].ar=e.songs[t].artists;n(4,y=e.songs)}}async function k(t=!1,e){const s=await ta(t?e[0].id:r);if(200===s.code){if(t){"猜你喜欢"===e[0].copywriter&&e[0].name.indexOf("私人雷达")>-1&&(e[0].copywriter=e[0].name,e[0].picUrl=s.playlist.tracks[0].al.picUrl,e[0].name=`从《${s.playlist.tracks[0].name}》开始听吧`);for(let t=0;t<e.length;t++)e[t].coverImgUrl=e[t].picUrl,e[t].playCount=e[t].playcount;n(0,g=e)}let i=Math.round(20*Math.random());n(3,w=s.playlist.tracks[i]),w&&z(w.id)}}Y((()=>{m&&Js(m),h&&Js(h),b()}));return n(9,s=!1),n(7,i={}),n(8,l=[]),[g,v,$,w,y,m,h,i,l,s,o,c,a,u,d,p,x,function(){hi.set(!1),me("/todayListDetail")},function(){c.id===a.id?(window.audioDOM.play(),zl.set(!0),kl.set(!0),Ll.set("0px")):(Tl.set(!0),localStorage.setItem("isFMPlay","1"),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),o&&(_l.set([t]),Ml.set(0),Cl.set(t),t.al=t.album,t.ar=t.artists,t.alia=t.alias,Ol.set(t),localStorage.setItem("currentSong",JSON.stringify(t)))):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(c))},function(t){0===t.detail.index&&b()},function(t){st[t?"unshift":"push"]((()=>{h=t,n(6,h)}))},function(t){st[t?"unshift":"push"]((()=>{m=t,n(5,m)}))},()=>{hi.set(!1),me("/login")}]}class va extends It{constructor(t){super(),Ot(this,t,ga,ha,r,{},null,[-1,-1])}}function $a(t,e,n){const s=t.slice();return s[33]=e[n],s[35]=n,s}function wa(t,e,n){const s=t.slice();return s[36]=e[n],s}function ya(t,e,n){const s=t.slice();return s[33]=e[n],s[35]=n,s}function xa(t,e,n){const s=t.slice();return s[40]=e[n],s}function ba(t){let e,n,s;return n=new Gc({props:{title:t[5].length>0?`${t[5][t[7]].name} - 精选歌单`:"默认-精选歌单",playList:t[0],$$slots:{default:[Sa]},$$scope:{ctx:t}}}),n.$on("titleClick",t[21]),{c(){e=O("div"),_t(n.$$.fragment),j(e,"margin-top","10px")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};160&e[0]&&(s.title=t[5].length>0?`${t[5][t[7]].name} - 精选歌单`:"默认-精选歌单"),1&e[0]&&(s.playList=t[0]),2016&e[0]|4096&e[1]&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function za(t){let e,n,s,i,l,o=t[10][t[40].category]+"";function r(){return t[19](t[40])}return{c(){e=O("div"),n=B(o),s=H(),E(e,"class","tab1 svelte-r85uwf"),U(e,"tab1-active",t[8]===t[40].category)},m(t,o){_(t,e,o),S(e,n),S(e,s),i||(l=D(e,"click",r),i=!0)},p(s,i){t=s,1536&i[0]&&o!==(o=t[10][t[40].category]+"")&&P(n,o),768&i[0]&&U(e,"tab1-active",t[8]===t[40].category)},d(t){t&&L(e),i=!1,l()}}}function ka(t){let e,n,s,i,l=t[33].name+"";function o(){return t[20](t[35],t[33])}return{c(){e=O("span"),n=B(l),E(e,"class","tab2 svelte-r85uwf"),U(e,"tab1-active",t[7]===t[35])},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(s,i){t=s,32&i[0]&&l!==(l=t[33].name+"")&&P(n,l),128&i[0]&&U(e,"tab1-active",t[7]===t[35])},d(t){t&&L(e),s=!1,i()}}}function Sa(t){let e,n,s,i,l,o,r=t[9],c=[];for(let e=0;e<r.length;e+=1)c[e]=za(xa(t,r,e));let a=t[5],u=[];for(let e=0;e<a.length;e+=1)u[e]=ka(ya(t,a,e));return{c(){e=O("div"),n=O("div");for(let t=0;t<c.length;t+=1)c[t].c();s=H(),i=O("div");for(let t=0;t<u.length;t+=1)u[t].c();l=H(),o=O("div"),E(n,"class","tab-1-box svelte-r85uwf"),E(o,"class","mask svelte-r85uwf"),E(i,"class","tab-2-box svelte-r85uwf")},m(t,r){_(t,e,r),S(e,n);for(let t=0;t<c.length;t+=1)c[t].m(n,null);S(e,s),S(e,i);for(let t=0;t<u.length;t+=1)u[t].m(i,null);S(i,l),S(i,o)},p(t,e){if(34784&e[0]){let s;for(r=t[9],s=0;s<r.length;s+=1){const i=xa(t,r,s);c[s]?c[s].p(i,e):(c[s]=za(i),c[s].c(),c[s].m(n,null))}for(;s<c.length;s+=1)c[s].d(1);c.length=r.length}if(32992&e[0]){let n;for(a=t[5],n=0;n<a.length;n+=1){const s=ya(t,a,n);u[n]?u[n].p(s,e):(u[n]=ka(s),u[n].c(),u[n].m(i,l))}for(;n<u.length;n+=1)u[n].d(1);u.length=a.length}},d(t){t&&L(e),T(c,t),T(u,t)}}}function Ca(t){let e,n,s;return n=new Gc({props:{title:"官方歌单",playList:t[2]}}),n.$on("titleClick",t[22]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-r85uwf")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};4&e[0]&&(s.playList=t[2]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Ma(t){let e,n,s;return n=new Gc({props:{title:"排行榜",isShowMore:!1,playList:t[3]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-r85uwf")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};8&e[0]&&(s.playList=t[3]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function _a(t){let e,n,s,i;e=new vl({props:{title:"热门歌手",isShowRight:!0}}),e.$on("TitleClick",t[17]);let l=t[4],o=[];for(let e=0;e<l.length;e+=1)o[e]=La(wa(t,l,e));const r=t=>bt(o[t],1,1,(()=>{o[t]=null}));return{c(){_t(e.$$.fragment),n=H(),s=O("div");for(let t=0;t<o.length;t+=1)o[t].c();E(s,"class","songer-box svelte-r85uwf")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l);for(let t=0;t<o.length;t+=1)o[t].m(s,null);i=!0},p(t,e){if(16&e[0]){let n;for(l=t[4],n=0;n<l.length;n+=1){const i=wa(t,l,n);o[n]?(o[n].p(i,e),xt(o[n],1)):(o[n]=La(i),o[n].c(),xt(o[n],1),o[n].m(s,null))}for(wt(),n=l.length;n<o.length;n+=1)r(n);yt()}},i(t){if(!i){xt(e.$$.fragment,t);for(let t=0;t<l.length;t+=1)xt(o[t]);i=!0}},o(t){bt(e.$$.fragment,t),o=o.filter(Boolean);for(let t=0;t<o.length;t+=1)bt(o[t]);i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(o,t)}}}function La(t){let e,n;return e=new Qc({props:{songer:t[36],coverSize:330}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};16&n[0]&&(s.songer=t[36]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ta(t){let e,n,s;return n=new Gc({props:{title:t[12].length>0?`${t[12][t[13]]} - 精品歌单`:"默认-精品歌单",playList:t[1],isShowMore:!(t[1].length<6),$$slots:{default:[Ia]},$$scope:{ctx:t}}}),n.$on("titleClick",t[24]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-r85uwf")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};12288&e[0]&&(s.title=t[12].length>0?`${t[12][t[13]]} - 精品歌单`:"默认-精品歌单"),2&e[0]&&(s.playList=t[1]),2&e[0]&&(s.isShowMore=!(t[1].length<6)),14336&e[0]|4096&e[1]&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Oa(t){let e,n,s,i,l=t[33]+"";function o(){return t[23](t[35],t[33])}return{c(){e=O("span"),n=B(l),E(e,"class","tab2 svelte-r85uwf"),U(e,"tab1-active",t[13]===t[35])},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(s,i){t=s,4096&i[0]&&l!==(l=t[33]+"")&&P(n,l),8192&i[0]&&U(e,"tab1-active",t[13]===t[35])},d(t){t&&L(e),s=!1,i()}}}function Ia(t){let e,n,s,i=t[12],l=[];for(let e=0;e<i.length;e+=1)l[e]=Oa($a(t,i,e));return{c(){e=O("div");for(let t=0;t<l.length;t+=1)l[t].c();n=H(),s=O("div"),E(s,"class","mask svelte-r85uwf"),E(e,"class","tab-2-box svelte-r85uwf")},m(t,i){_(t,e,i);for(let t=0;t<l.length;t+=1)l[t].m(e,null);S(e,n),S(e,s)},p(t,s){if(79872&s[0]){let o;for(i=t[12],o=0;o<i.length;o+=1){const r=$a(t,i,o);l[o]?l[o].p(r,s):(l[o]=Oa(r),l[o].c(),l[o].m(e,n))}for(;o<l.length;o+=1)l[o].d(1);l.length=i.length}},d(t){t&&L(e),T(l,t)}}}function Ba(t){let e,n,s,i,l,o,r,c;e=new Hc({props:{title:"发现",desc:"歌单广场",topTitleRightList:t[14]}}),e.$on("IconClick",t[18]);let a=t[0].length>0&&ba(t),u=t[2].length>0&&Ca(t),d=t[3].length>0&&Ma(t),f=t[4].length>0&&_a(t),p=t[1].length>0&&Ta(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),a&&a.c(),i=H(),u&&u.c(),l=H(),d&&d.c(),o=H(),f&&f.c(),r=H(),p&&p.c(),E(s,"class","page svelte-r85uwf")},m(t,m){Lt(e,t,m),_(t,n,m),_(t,s,m),a&&a.m(s,null),S(s,i),u&&u.m(s,null),S(s,l),d&&d.m(s,null),S(s,o),f&&f.m(s,null),S(s,r),p&&p.m(s,null),c=!0},p(t,e){t[0].length>0?a?(a.p(t,e),1&e[0]&&xt(a,1)):(a=ba(t),a.c(),xt(a,1),a.m(s,i)):a&&(wt(),bt(a,1,1,(()=>{a=null})),yt()),t[2].length>0?u?(u.p(t,e),4&e[0]&&xt(u,1)):(u=Ca(t),u.c(),xt(u,1),u.m(s,l)):u&&(wt(),bt(u,1,1,(()=>{u=null})),yt()),t[3].length>0?d?(d.p(t,e),8&e[0]&&xt(d,1)):(d=Ma(t),d.c(),xt(d,1),d.m(s,o)):d&&(wt(),bt(d,1,1,(()=>{d=null})),yt()),t[4].length>0?f?(f.p(t,e),16&e[0]&&xt(f,1)):(f=_a(t),f.c(),xt(f,1),f.m(s,r)):f&&(wt(),bt(f,1,1,(()=>{f=null})),yt()),t[1].length>0?p?(p.p(t,e),2&e[0]&&xt(p,1)):(p=Ta(t),p.c(),xt(p,1),p.m(s,null)):p&&(wt(),bt(p,1,1,(()=>{p=null})),yt())},i(t){c||(xt(e.$$.fragment,t),xt(a),xt(u),xt(d),xt(f),xt(p),c=!0)},o(t){bt(e.$$.fragment,t),bt(a),bt(u),bt(d),bt(f),bt(p),c=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),a&&a.d(),u&&u.d(),d&&d.d(),f&&f.d(),p&&p.d()}}}function Ha(t,e,n){let s,i,l,o,r,c,a,u,d,f,p,m=[],h=[],g=[],v=[],$={type:"icon",path:cs};async function w(t){const e=await na({limit:6,cat:"默认"===t?"全部":t});200===e.code&&n(0,m=e.playlists)}async function y(t){const e=await ea({limit:6,cat:"默认"===t?"全部":t});200===e.code&&n(1,h=e.playlists)}Y((()=>{(async function(){const t=await Br({url:"/playlist/hot",method:"get"});200===t.code&&(c=t.tags,c.unshift({name:"默认",category:0}),async function(){const t=await Br({url:"/playlist/catlist",method:"get"});200===t.code&&(n(10,r=t.categories),n(10,r[5]="热门",r),n(9,s=function(t){let e=[],n={};return t.forEach((t=>{n[t.category]?e.forEach((e=>{e.category==t.category&&e.allData.push(t)})):(e.push({category:t.category,allData:[t]}),n[t.category]=t)})),e}(t.sub)),s.unshift({category:5,allData:c}),n(8,i=s[0].category),n(5,l=s.filter((t=>t.category===i))[0].allData),n(7,o=0),n(6,u=l[0].name),w(l[0].name))}())})(),async function(){const t=await Br({url:"/playlist/highquality/tags",method:"get",params:e});var e;if(200===t.code){for(let e=0;e<t.tags.length;e++)f.push(t.tags[e].name);n(11,d=f[0]),y(d)}}(),async function(){const t=await na({limit:6,cat:"官方"});200===t.code&&n(2,g=t.playlists)}(),async function(){const t=await Br({url:"/toplist",method:"get"});200===t.code&&n(3,v=t.list)}(),async function(){const t=await ia(9);200===t.code&&n(4,a=t.artists)}()}));return n(9,s=[]),n(8,i=0),n(5,l=[]),n(7,o=0),n(10,r={}),c=[],n(4,a=[]),n(6,u=""),n(11,d=""),n(12,f=["默认"]),n(13,p=0),[m,h,g,v,a,l,u,o,i,s,r,d,f,p,$,w,y,function(){hi.set(!1),me("/moreSonger")},function(t){0===t.detail.index&&(hi.set(!1),me("/search"))},t=>{n(8,i=t.category),n(5,l=s.filter((t=>t.category===i))[0].allData),n(7,o=0),n(6,u=l[0].name),w(l[0].name)},(t,e)=>{n(7,o=t),n(6,u=e.name),w(e.name)},()=>{hi.set(!1),me("/moreList?cat="+u+"&type=top")},()=>{hi.set(!1),me("/moreList?cat=官方")},(t,e)=>{n(13,p=t),n(11,d=e),y(e)},()=>{hi.set(!1),me("/moreList?cat="+d+"&type=high")}]}class Na extends It{constructor(t){super(),Ot(this,t,Ha,Ba,r,{},null,[-1,-1])}}function Da(t,e,n){const s=t.slice();return s[43]=e[n],s}function Ea(t,e,n){const s=t.slice();return s[46]=e[n],s[48]=n,s}function Ra(t){let e,n,s,i,l,o,r,c;return r=new Ys({props:{type:"primary",$$slots:{default:[Aa]},$$scope:{ctx:t}}}),r.$on("BtnClick",t[24]),{c(){e=O("div"),n=O("div"),n.innerHTML='<img class="login-img svelte-xt612s" src="images/login.png" alt=""/>',s=H(),i=O("div"),i.textContent="账号信息需要登录",l=H(),o=O("div"),_t(r.$$.fragment),E(i,"class","tip svelte-xt612s"),E(o,"class","login-btn"),E(e,"class","noLogin svelte-xt612s")},m(t,a){_(t,e,a),S(e,n),S(e,s),S(e,i),S(e,l),S(e,o),Lt(r,o,null),c=!0},p(t,e){const n={};262144&e[1]&&(n.$$scope={dirty:e,ctx:t}),r.$set(n)},i(t){c||(xt(r.$$.fragment,t),c=!0)},o(t){bt(r.$$.fragment,t),c=!1},d(t){t&&L(e),Tt(r)}}}function Pa(t){let e,n,s,i,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,V,F,J,q,X,G,W,K,Y,Z,Q,tt,et=t[8].profile.nickname+"",nt=(t[8].profile.signature||"")+"";function st(t,e){return 0!==t[8].account.vipType?Ua:ja}let it=st(t),lt=it(t);function ot(t,e){return t[2]?Fa:Va}y=new Oe({props:{size:"26",style:"vertical-align: middle"}});let rt=ot(t),ct=rt(t);F=new Nn({props:{size:"24",style:"vertical-align: middle"}}),G=new vn({props:{size:"24",style:"vertical-align: middle"}});let at=t[4].length>0&&qa(t),ut=t[5].length>0&&Xa(t),dt=t[7].length>0&&Ga(t);return{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),o=O("img"),c=H(),u=O("div"),d=O("div"),f=B(et),p=H(),m=O("div"),h=B(nt),g=H(),v=O("div"),lt.c(),$=H(),w=O("div"),_t(y.$$.fragment),x=H(),b=O("div"),z=O("div"),k=O("div"),C=O("div"),M=B("我喜欢的音乐"),T=O("span"),T.textContent=`${t[13].length}首`,I=H(),N=O("div"),ct.c(),R=H(),A=O("div"),V=O("div"),_t(F.$$.fragment),J=H(),q=O("div"),X=O("span"),_t(G.$$.fragment),W=H(),at&&at.c(),K=H(),ut&&ut.c(),Y=H(),dt&&dt.c(),a(o.src,r=t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180")||E(o,"src",r),E(o,"alt",""),E(o,"class","svelte-xt612s"),E(i,"class","avatar svelte-xt612s"),E(d,"class","nicename svelte-xt612s"),E(m,"class","signature svelte-xt612s"),E(v,"class","tag"),E(u,"class","info svelte-xt612s"),E(s,"class","left svelte-xt612s"),E(w,"class","more svelte-xt612s"),E(n,"class","info-box svelte-xt612s"),E(T,"class","love-title-number svelte-xt612s"),E(C,"class","love-title-text svelte-xt612s"),E(k,"class","love-title svelte-xt612s"),E(N,"class","random svelte-xt612s"),E(V,"class","quick-btn-item svelte-xt612s"),E(X,"class","svelte-xt612s"),U(X,"heart-beat","heart"===t[10]&&t[11]),E(q,"class","quick-btn-item svelte-xt612s"),E(A,"class","quick-btn svelte-xt612s"),E(z,"class","love-song svelte-xt612s"),E(b,"class","love-song-box svelte-xt612s"),j(b,"background-image","url("+t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180)"),E(e,"class","login")},m(l,r){_(l,e,r),S(e,n),S(n,s),S(s,i),S(i,o),S(s,c),S(s,u),S(u,d),S(d,f),S(u,p),S(u,m),S(m,h),S(u,g),S(u,v),lt.m(v,null),S(n,$),S(n,w),Lt(y,w,null),t[22](n),S(e,x),S(e,b),S(b,z),S(z,k),S(k,C),S(C,M),S(C,T),S(z,I),S(z,N),ct.m(N,null),S(z,R),S(z,A),S(A,V),Lt(F,V,null),S(A,J),S(A,q),S(q,X),Lt(G,X,null),t[23](z),S(e,W),at&&at.m(e,null),S(e,K),ut&&ut.m(e,null),S(e,Y),dt&&dt.m(e,null),Z=!0,Q||(tt=[D(n,"click",t[19]),D(V,"click",t[20]),D(q,"click",t[21]),D(z,"click",t[16])],Q=!0)},p(t,n){(!Z||256&n[0]&&!a(o.src,r=t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180"))&&E(o,"src",r),(!Z||256&n[0])&&et!==(et=t[8].profile.nickname+"")&&P(f,et),(!Z||256&n[0])&&nt!==(nt=(t[8].profile.signature||"")+"")&&P(h,nt),it===(it=st(t))&&lt?lt.p(t,n):(lt.d(1),lt=it(t),lt&&(lt.c(),lt.m(v,null))),rt===(rt=ot(t))&&ct?ct.p(t,n):(ct.d(1),ct=rt(t),ct&&(ct.c(),ct.m(N,null))),3072&n[0]&&U(X,"heart-beat","heart"===t[10]&&t[11]),(!Z||256&n[0])&&j(b,"background-image","url("+t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180)"),t[4].length>0?at?(at.p(t,n),16&n[0]&&xt(at,1)):(at=qa(t),at.c(),xt(at,1),at.m(e,K)):at&&(wt(),bt(at,1,1,(()=>{at=null})),yt()),t[5].length>0?ut?(ut.p(t,n),32&n[0]&&xt(ut,1)):(ut=Xa(t),ut.c(),xt(ut,1),ut.m(e,Y)):ut&&(wt(),bt(ut,1,1,(()=>{ut=null})),yt()),t[7].length>0?dt?(dt.p(t,n),128&n[0]&&xt(dt,1)):(dt=Ga(t),dt.c(),xt(dt,1),dt.m(e,null)):dt&&(wt(),bt(dt,1,1,(()=>{dt=null})),yt())},i(t){Z||(xt(y.$$.fragment,t),xt(F.$$.fragment,t),xt(G.$$.fragment,t),xt(at),xt(ut),xt(dt),Z=!0)},o(t){bt(y.$$.fragment,t),bt(F.$$.fragment,t),bt(G.$$.fragment,t),bt(at),bt(ut),bt(dt),Z=!1},d(n){n&&L(e),lt.d(),Tt(y),t[22](null),ct.d(),Tt(F),Tt(G),t[23](null),at&&at.d(),ut&&ut.d(),dt&&dt.d(),Q=!1,l(tt)}}}function Aa(t){let e;return{c(){e=B("立即登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function ja(t){let e,n,s=t[8].profile.signature+"";return{c(){e=O("span"),n=B(s),E(e,"v-else",""),E(e,"class","text")},m(t,s){_(t,e,s),S(e,n)},p(t,e){256&e[0]&&s!==(s=t[8].profile.signature+"")&&P(n,s)},d(t){t&&L(e)}}}function Ua(e){let n;return{c(){n=O("span"),n.innerHTML='<img class="cvip svelte-xt612s" src="/images/vip/vip.png" alt=""/> \n                  <span class="vip-text svelte-xt612s">黑胶VIP</span>',E(n,"class","vip")},m(t,e){_(t,n,e)},p:t,d(t){t&&L(n)}}}function Va(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="100" height="100" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","100px"),j(n,"position","relative"),j(n,"left","50%"),j(n,"margin-left","-50px"),j(n,"top","40px")},m(t,e){_(t,n,e)},p:t,d(t){t&&L(n)}}}function Fa(t){let e,n=t[3],s=[];for(let e=0;e<n.length;e+=1)s[e]=Ja(Ea(t,n,e));return{c(){for(let t=0;t<s.length;t+=1)s[t].c();e=N()},m(t,n){for(let e=0;e<s.length;e+=1)s[e].m(t,n);_(t,e,n)},p(t,i){if(8&i[0]){let l;for(n=t[3],l=0;l<n.length;l+=1){const o=Ea(t,n,l);s[l]?s[l].p(o,i):(s[l]=Ja(o),s[l].c(),s[l].m(e.parentNode,e))}for(;l<s.length;l+=1)s[l].d(1);s.length=n.length}},d(t){T(s,t),t&&L(e)}}}function Ja(t){let e,n,s,i,l,o,r=t[46].name+"";return{c(){e=O("div"),n=O("img"),i=H(),l=B(r),o=H(),E(n,"class","random-img svelte-xt612s"),j(n,"width",t[46].size+"px"),j(n,"height",t[46].size+"px"),j(n,"top",t[46].size/8+"px"),a(n.src,s=t[46].img.replace(/^http:/,"https:")+"?param=100y100")||E(n,"src",s),E(n,"alt",""),E(e,"class","random-item svelte-xt612s"),j(e,"height",t[46].size+"px"),j(e,"line-height",t[46].size+"px"),j(e,"top",26*t[48]+"px"),j(e,"left",t[46].left+"px"),j(e,"font-size",t[46].size+"px")},m(t,s){_(t,e,s),S(e,n),S(e,i),S(e,l),S(e,o)},p(t,i){8&i[0]&&j(n,"width",t[46].size+"px"),8&i[0]&&j(n,"height",t[46].size+"px"),8&i[0]&&j(n,"top",t[46].size/8+"px"),8&i[0]&&!a(n.src,s=t[46].img.replace(/^http:/,"https:")+"?param=100y100")&&E(n,"src",s),8&i[0]&&r!==(r=t[46].name+"")&&P(l,r),8&i[0]&&j(e,"height",t[46].size+"px"),8&i[0]&&j(e,"line-height",t[46].size+"px"),8&i[0]&&j(e,"left",t[46].left+"px"),8&i[0]&&j(e,"font-size",t[46].size+"px")},d(t){t&&L(e)}}}function qa(t){let e,n,s;return n=new Gc({props:{title:"收藏的歌单",playList:t[4],iconText:"全部"}}),n.$on("titleClick",t[18]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-xt612s")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};16&e[0]&&(s.playList=t[4]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Xa(t){let e,n,s;return n=new Gc({props:{title:"创建的歌单",playList:t[5],iconText:"全部"}}),n.$on("titleClick",t[17]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-xt612s")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};32&e[0]&&(s.playList=t[5]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Ga(t){let e,n,s,i;e=new vl({props:{title:"收藏的歌手",iconText:"全部",isShowRight:!0}}),e.$on("TitleClick",t[14]);let l=t[7],o=[];for(let e=0;e<l.length;e+=1)o[e]=Wa(Da(t,l,e));const r=t=>bt(o[t],1,1,(()=>{o[t]=null}));return{c(){_t(e.$$.fragment),n=H(),s=O("div");for(let t=0;t<o.length;t+=1)o[t].c();E(s,"class","songer-box svelte-xt612s")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l);for(let t=0;t<o.length;t+=1)o[t].m(s,null);i=!0},p(t,e){if(128&e[0]){let n;for(l=t[7],n=0;n<l.length;n+=1){const i=Da(t,l,n);o[n]?(o[n].p(i,e),xt(o[n],1)):(o[n]=Wa(i),o[n].c(),xt(o[n],1),o[n].m(s,null))}for(wt(),n=l.length;n<o.length;n+=1)r(n);yt()}},i(t){if(!i){xt(e.$$.fragment,t);for(let t=0;t<l.length;t+=1)xt(o[t]);i=!0}},o(t){bt(e.$$.fragment,t),o=o.filter(Boolean);for(let t=0;t<o.length;t+=1)bt(o[t]);i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(o,t)}}}function Wa(t){let e,n;return e=new Qc({props:{songer:t[43],coverSize:330}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};128&n[0]&&(s.songer=t[43]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ka(t){let e,n,s,i,l,o;e=new Hc({props:{title:"我的",desc:"曲库与设置",isRefresh:t[6],topTitleRightList:t[9]?t[12]:null}}),e.$on("IconClick",t[15]);const r=[Pa,Ra],c=[];function a(t,e){return t[9]?0:1}return i=a(t),l=c[i]=r[i](t),{c(){_t(e.$$.fragment),n=H(),s=O("div"),l.c(),E(s,"class","mine svelte-xt612s")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l),c[i].m(s,null),o=!0},p(t,n){const o={};64&n[0]&&(o.isRefresh=t[6]),512&n[0]&&(o.topTitleRightList=t[9]?t[12]:null),e.$set(o);let u=i;i=a(t),i===u?c[i].p(t,n):(wt(),bt(c[u],1,1,(()=>{c[u]=null})),yt(),l=c[i],l?l.p(t,n):(l=c[i]=r[i](t),l.c()),xt(l,1),l.m(s,null))},i(t){o||(xt(e.$$.fragment,t),xt(l),o=!0)},o(t){bt(e.$$.fragment,t),bt(l),o=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),c[i].d()}}}function Ya(t,e,n){let s=[];for(let i=0;i<n;i++)s.push(Math.floor(Math.random()*(e-t+1)+t));return s}function Za(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$,w,y,x,b,z,k;f(t,Ml,(t=>n(30,h=t))),f(t,_l,(t=>n(31,g=t))),f(t,mo,(t=>n(32,v=t))),f(t,fo,(t=>n(8,$=t))),f(t,mi,(t=>n(9,w=t))),f(t,po,(t=>n(33,y=t))),f(t,Dl,(t=>n(10,x=t))),f(t,zl,(t=>n(11,b=t)));let S={type:"icon",path:ns},C="string"==typeof y?JSON.parse(y):y;function M(){if(w){o=Ya(10,30,10),r=Ya(0,200,10),c=Ya(-50,300,10),a=Ya(0,JSON.parse(localStorage.getItem("useLoveSongIds")).length,10);let t=[];for(let e=0;e<a.length;e++)t.push(JSON.parse(localStorage.getItem("useLoveSongIds"))[a[e]]);!async function(t){n(2,d=!1),","===t.slice(0,1)&&(t=t.substr(1));t=t.replace(",,",",");const e=await Nr(t);if(200===e.code){s=e.songs,n(3,u=[]);for(let t=0;t<s.length;t++)u.push({name:s[t].name,size:o[t],top:r[t],left:c[t],img:s[t].al.picUrl,id:s[t].id});n(2,d=!0)}}(t.join(",")),async function(t){const e=await Mc({uid:$.account.id});if(200===e.code){n(6,p=!1);let t=[],s=[];e.playlist[0].creator.userId===$.account.id&&"喜欢的音乐"===e.playlist[0].name.substr(-5)&&(mo.set(e.playlist[0].id),localStorage.setItem("userLikeListId",e.playlist[0].id),e.playlist.splice(0,1));for(let n=0;n<e.playlist.length;n++)e.playlist[n].creator.userId===$.account.id?t.push(e.playlist[n]):s.push(e.playlist[n]);n(5,l=t.length>=10?t.slice(0,10):t),n(4,i=s.length>=10?s.slice(0,10):s)}else Ps("获取收藏歌单失败")}(),async function(){const t=await _c({limit:6});200===t.code&&n(7,m=t.data)}()}}function _(t){Tl.set(!1),localStorage.setItem("isFMPlay","0"),Ml.set(0),async function(t,e){const n=await Hr(t.id);200===n.code&&(n.data[0].url?(t.url=n.data[0].url.replace(/^http:/,"https:"),1===n.data[0].fee&&null!=n.data[0].freeTrialInfo?El.set("试听"):"flac"===n.data[0].type?El.set("FLAC"):El.set(n.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),e?Dl.set("heart"):Dl.set("repeat"),h!==g.length-1&&Hr(g[h+1].id)):As(e?`😂 心动模式随机的第一首「${t.name}」无法播放!可能是版权原因......吧!请重新开启心动模式。`:`😂 真不巧,您喜欢歌单的第一首--「${t.name}」就无法播放!可能是版权原因......吧!请进入音乐列表选择后面的歌曲播放。`))}(g[h],t)}Y((()=>{z&&Js(z),k&&Js(k),M()}));return s=[],n(4,i=[]),n(5,l=[]),o=[],r=[],c=[],a=[],n(3,u=[]),n(2,d=!1),n(6,p=!1),n(7,m=[]),[z,k,d,u,i,l,p,m,$,w,x,b,S,C,function(){hi.set(!1),me("/allCollectSongers")},function(t){0===t.detail.index&&M()},function(){hi.set(!1),me("/loveListDetail")},function(){hi.set(!1),me("/myAllPlayList?create")},function(){hi.set(!1),me("/myAllPlayList?collect")},function(){hi.set(!1),me("/setting")},function(t){t.preventDefault(),t.stopPropagation(),async function(){const t=await ta(v);if(200===t.code){let e=[];for(let n=0;n<t.playlist.trackIds.length;n++)e.push(t.playlist.trackIds[n].id);e.length>400&&Ps("歌曲较多,拼命加载中,请稍等!",2e3),async function(t){const e=await Nr(t);200===e.code&&(_l.set(e.songs),_(!1))}(e.join(",")),Hr(e[0])}}()},async function(t){t.preventDefault(),t.stopPropagation();const e=C[Math.floor(Math.random()*C.length)],n=await(s={id:e,pid:v},Br({url:"/playmode/intelligence/list",method:"get",params:s}));var s;if(200===n.code){Hr(e);let t=[];for(let e=0;e<n.data.length;e++)t.push(n.data[e].songInfo);!async function(t,e){const n=await Nr(t);if(200===n.code){let t=[n.songs[0],...e];_l.set(t);let s=[];for(let e=0;e<t.length;e++)s.push(t[e].id);localStorage.setItem("localPlayList",JSON.stringify(s)),_(!0)}}(e,t)}},function(t){st[t?"unshift":"push"]((()=>{k=t,n(1,k)}))},function(t){st[t?"unshift":"push"]((()=>{z=t,n(0,z)}))},()=>{hi.set(!1),me("/login")}]}class Qa extends It{constructor(t){super(),Ot(this,t,Za,Ka,r,{},null,[-1,-1])}}function tu(t){let e,n,s,i,l,o,r,c,a;return n=new va({}),l=new Na({}),c=new Qa({}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),i=O("div"),_t(l.$$.fragment),o=H(),r=O("div"),_t(c.$$.fragment),j(e,"display",0===t[0]?"block":"none"),j(i,"display",1===t[0]?"block":"none"),j(r,"display",2===t[0]?"block":"none")},m(t,u){_(t,e,u),Lt(n,e,null),_(t,s,u),_(t,i,u),Lt(l,i,null),_(t,o,u),_(t,r,u),Lt(c,r,null),a=!0},p(t,[n]){(!a||1&n)&&j(e,"display",0===t[0]?"block":"none"),(!a||1&n)&&j(i,"display",1===t[0]?"block":"none"),(!a||1&n)&&j(r,"display",2===t[0]?"block":"none")},i(t){a||(xt(n.$$.fragment,t),xt(l.$$.fragment,t),xt(c.$$.fragment,t),a=!0)},o(t){bt(n.$$.fragment,t),bt(l.$$.fragment,t),bt(c.$$.fragment,t),a=!1},d(t){t&&L(e),Tt(n),t&&L(s),t&&L(i),Tt(l),t&&L(o),t&&L(r),Tt(c)}}}function eu(t,e,n){let s,i;return f(t,mi,(t=>n(1,s=t))),f(t,vi,(t=>n(0,i=t))),Y((()=>{s?vi.set(0):vi.set(1);let t=new Date;s&&localStorage.getItem("dailySigninFun_date")!=""+t.getFullYear()+(t.getMonth()+1)+t.getDate()&&async function(){await function(t=0){return Br({url:"/daily_signin",method:"post",params:{type:t,timestamp:(new Date).getTime()}})}();let t=new Date;localStorage.setItem("dailySigninFun_date",""+t.getFullYear()+(t.getMonth()+1)+t.getDate())}()})),[i]}const{window:nu}=St;function su(t){let e,n;return{c(){e=O("img"),E(e,"class","img-cover svelte-21fmj8"),a(e.src,n=t[5].replace(/^http:/,"https:")+"?param=450y450")||E(e,"src",n),E(e,"alt","")},m(t,n){_(t,e,n)},p(t,s){32&s&&!a(e.src,n=t[5].replace(/^http:/,"https:")+"?param=450y450")&&E(e,"src",n)},d(t){t&&L(e)}}}function iu(e){let n,s,i,l;return s=new In({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n        播放歌单"),E(n,"class","icon svelte-21fmj8")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function lu(t){let e,n,s;return n=new Ys({props:{type:t[1]?"default":"primary",$$slots:{default:[cu]},$$scope:{ctx:t}}}),n.$on("BtnClick",t[14]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","random svelte-21fmj8")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};2&e&&(s.type=t[1]?"default":"primary"),268435458&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function ou(t){let e,n;return e=new Ee({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ru(t){let e,n;return e=new Ae({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function cu(t){let e,n,s,i,l,o,r=t[1]?"取消收藏":"收藏歌单";const c=[ru,ou],a=[];function u(t,e){return t[1]?0:1}return n=u(t),s=a[n]=c[n](t),{c(){e=O("span"),s.c(),i=H(),l=B(r),E(e,"class","icon svelte-21fmj8")},m(t,s){_(t,e,s),a[n].m(e,null),_(t,i,s),_(t,l,s),o=!0},p(t,i){let d=n;n=u(t),n!==d&&(wt(),bt(a[d],1,1,(()=>{a[d]=null})),yt(),s=a[n],s||(s=a[n]=c[n](t),s.c()),xt(s,1),s.m(e,null)),(!o||2&i)&&r!==(r=t[1]?"取消收藏":"收藏歌单")&&P(l,r)},i(t){o||(xt(s),o=!0)},o(t){bt(s),o=!1},d(t){t&&L(e),a[n].d(),t&&L(i),t&&L(l)}}}function au(t){let e,n,s,i,l,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,F,J,q,X,G,W,K,Y=t[7].nickname+"",Z=Ns(t[4])+"",Q=(t[2]?t[2].length:0)+"";e=new si({props:{title:t[8],transparent:!0,dark:!0,alphaNumber:t[3]}}),r=new uo({props:{height:140,$$slots:{default:[su]},$$scope:{ctx:t}}}),V=new Ys({props:{type:"primary",$$slots:{default:[iu]},$$scope:{ctx:t}}}),V.$on("BtnClick",t[16]);let tt=t[10]&&t[7].userId!=t[11].account.id&&lu(t);return X=new jr({props:{songList:t[2]}}),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),l=O("div"),o=O("div"),_t(r.$$.fragment),c=H(),u=O("div"),d=O("div"),f=B(t[9]),p=H(),m=O("div"),h=O("img"),v=H(),$=O("span"),w=B(Y),y=H(),x=O("div"),b=B("更新于"),z=B(Z),k=B(" • "),C=B(Q),M=B("首"),T=H(),I=O("div"),N=B(t[6]),R=H(),A=O("div"),U=O("div"),_t(V.$$.fragment),F=H(),tt&&tt.c(),J=H(),q=O("div"),_t(X.$$.fragment),E(o,"class","cover svelte-21fmj8"),E(d,"class","name svelte-21fmj8"),E(h,"class","creatorImg svelte-21fmj8"),a(h.src,g=t[7].avatarUrl.replace(/^http:/,"https:")+"?param=60y60")||E(h,"src",g),E(h,"alt",""),E($,"class","creatertext svelte-21fmj8"),E(m,"class","creater svelte-21fmj8"),E(x,"class","update svelte-21fmj8"),E(u,"class","info svelte-21fmj8"),E(l,"class","cover-bg svelte-21fmj8"),E(i,"class","cover-box svelte-21fmj8"),j(i,"background","url("+t[5].replace(/^http:/,"https:")+"?param=450y450)"),E(I,"class","desc svelte-21fmj8"),E(U,"class","play svelte-21fmj8"),j(U,"margin-right",(t[10]&&t[7].userId!=t[11].account.id?20:0)+"px"),E(A,"class","btn svelte-21fmj8"),E(s,"class","play-list svelte-21fmj8")},m(a,g){Lt(e,a,g),_(a,n,g),_(a,s,g),S(s,i),S(i,l),S(l,o),Lt(r,o,null),S(l,c),S(l,u),S(u,d),S(d,f),S(u,p),S(u,m),S(m,h),S(m,v),S(m,$),S($,w),S(u,y),S(u,x),S(x,b),S(x,z),S(x,k),S(x,C),S(x,M),t[15](i),S(s,T),S(s,I),S(I,N),S(s,R),S(s,A),S(A,U),Lt(V,U,null),S(A,F),tt&&tt.m(A,null),S(s,J),S(s,q),Lt(X,q,null),G=!0,W||(K=D(nu,"scroll",t[12]),W=!0)},p(t,[n]){const s={};256&n&&(s.title=t[8]),8&n&&(s.alphaNumber=t[3]),e.$set(s);const l={};268435488&n&&(l.$$scope={dirty:n,ctx:t}),r.$set(l),(!G||512&n)&&P(f,t[9]),(!G||128&n&&!a(h.src,g=t[7].avatarUrl.replace(/^http:/,"https:")+"?param=60y60"))&&E(h,"src",g),(!G||128&n)&&Y!==(Y=t[7].nickname+"")&&P(w,Y),(!G||16&n)&&Z!==(Z=Ns(t[4])+"")&&P(z,Z),(!G||4&n)&&Q!==(Q=(t[2]?t[2].length:0)+"")&&P(C,Q),(!G||32&n)&&j(i,"background","url("+t[5].replace(/^http:/,"https:")+"?param=450y450)"),(!G||64&n)&&P(N,t[6]);const o={};268435456&n&&(o.$$scope={dirty:n,ctx:t}),V.$set(o),(!G||3200&n)&&j(U,"margin-right",(t[10]&&t[7].userId!=t[11].account.id?20:0)+"px"),t[10]&&t[7].userId!=t[11].account.id?tt?(tt.p(t,n),3200&n&&xt(tt,1)):(tt=lu(t),tt.c(),xt(tt,1),tt.m(A,null)):tt&&(wt(),bt(tt,1,1,(()=>{tt=null})),yt());const c={};4&n&&(c.songList=t[2]),X.$set(c)},i(t){G||(xt(e.$$.fragment,t),xt(r.$$.fragment,t),xt(V.$$.fragment,t),xt(tt),xt(X.$$.fragment,t),G=!0)},o(t){bt(e.$$.fragment,t),bt(r.$$.fragment,t),bt(V.$$.fragment,t),bt(tt),bt(X.$$.fragment,t),G=!1},d(i){Tt(e,i),i&&L(n),i&&L(s),Tt(r),t[15](null),Tt(V),tt&&tt.d(),Tt(X),W=!1,K()}}}function uu(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$,w;f(t,Ml,(t=>n(18,m=t))),f(t,_l,(t=>n(19,h=t))),f(t,te,(t=>n(20,g=t))),f(t,gi,(t=>n(21,v=t))),f(t,mi,(t=>n(10,$=t))),f(t,fo,(t=>n(11,w=t)));const{id:y}=Fs(g);let x;async function b(){console.debug("getPlaylistDetail",s);const t=await ta(s);if(200===t.code){pi.set(!0);const{trackIds:e}=t.playlist;n(9,u=n(8,l=t.playlist.name)),n(7,p=t.playlist.creator),n(6,o=t.playlist.description),n(5,a=t.playlist.coverImgUrl),n(4,d=t.playlist.updateTime);let s=js(e.map((t=>t.id)));for(let t=0;t<s.length;t++)await z(s[t])}}async function z(t){Array.isArray(t)&&(t=t.join(","));const e=await Nr(t);200===e.code&&n(2,c=c.concat(e.songs))}Y((()=>{b()})),ge((()=>{if(!v){n(2,c=[]);const{id:t}=Fs(g);s=t,b()}}));const k=t=>{var e;Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),e=t.url,window.audioDOM.src=e,window.audioDOM.play()};function S(t){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(c);const e=c.map((t=>t.id));localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),k(t),zl.set(!0)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(h[m])}return s=y,n(1,i=!1),n(8,l="歌单详情"),n(6,o=""),n(3,r=0),n(2,c=[]),n(5,a=ki),n(9,u="歌单名称"),n(4,d=(new Date).getTime()),n(7,p={nickname:"创建者",avatarUrl:ki,id:0}),[x,i,c,r,d,a,o,p,l,u,$,w,function(){const t=x.getBoundingClientRect().top;n(3,r=t>-50&&t<=0?Math.abs(t)/50:1),t>0&&n(3,r=0)},S,async function(){const t=await function(t,e){return Br({url:"/playlist/subscribe",method:"post",params:{id:t,t:e?1:2,timestamp:(new Date).getTime()}})}(s,!i);200===t.code&&n(1,i=!i)},function(t){st[t?"unshift":"push"]((()=>{x=t,n(0,x)}))},()=>S(0)]}var du=be(Object.freeze({__proto__:null,default:{}})),fu=xe((function(t,e){var n;t.exports=(n=n||function(t,e){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==ye&&ye.crypto&&(n=ye.crypto),!n)try{n=du}catch(t){}var s=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),l={},o=l.lib={},r=o.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=o.WordArray=r.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:4*t.length},toString:function(t){return(t||u).stringify(this)},concat:function(t){var e=this.words,n=t.words,s=this.sigBytes,i=t.sigBytes;if(this.clamp(),s%4)for(var l=0;l<i;l++){var o=n[l>>>2]>>>24-l%4*8&255;e[s+l>>>2]|=o<<24-(s+l)%4*8}else for(var r=0;r<i;r+=4)e[s+r>>>2]=n[r>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=r.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n<t;n+=4)e.push(s());return new c.init(e,t)}}),a=l.enc={},u=a.Hex={stringify:function(t){for(var e=t.words,n=t.sigBytes,s=[],i=0;i<n;i++){var l=e[i>>>2]>>>24-i%4*8&255;s.push((l>>>4).toString(16)),s.push((15&l).toString(16))}return s.join("")},parse:function(t){for(var e=t.length,n=[],s=0;s<e;s+=2)n[s>>>3]|=parseInt(t.substr(s,2),16)<<24-s%8*4;return new c.init(n,e/2)}},d=a.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,s=[],i=0;i<n;i++){var l=e[i>>>2]>>>24-i%4*8&255;s.push(String.fromCharCode(l))}return s.join("")},parse:function(t){for(var e=t.length,n=[],s=0;s<e;s++)n[s>>>2]|=(255&t.charCodeAt(s))<<24-s%4*8;return new c.init(n,e)}},f=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(d.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return d.parse(unescape(encodeURIComponent(t)))}},p=o.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,s=this._data,i=s.words,l=s.sigBytes,o=this.blockSize,r=l/(4*o),a=(r=e?t.ceil(r):t.max((0|r)-this._minBufferSize,0))*o,u=t.min(4*a,l);if(a){for(var d=0;d<a;d+=o)this._doProcessBlock(i,d);n=i.splice(0,a),s.sigBytes-=u}return new c.init(n,u)},clone:function(){var t=r.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});o.Hasher=p.extend({cfg:r.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,n){return new t.init(n).finalize(e)}},_createHmacHelper:function(t){return function(e,n){return new m.HMAC.init(t,n).finalize(e)}}});var m=l.algo={};return l}(Math),n)})),pu=xe((function(t,e){var n;t.exports=(n=fu,function(t){var e=n,s=e.lib,i=s.WordArray,l=s.Hasher,o=e.algo,r=[];!function(){for(var e=0;e<64;e++)r[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=l.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var s=e+n,i=t[s];t[s]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var l=this._hash.words,o=t[e+0],c=t[e+1],p=t[e+2],m=t[e+3],h=t[e+4],g=t[e+5],v=t[e+6],$=t[e+7],w=t[e+8],y=t[e+9],x=t[e+10],b=t[e+11],z=t[e+12],k=t[e+13],S=t[e+14],C=t[e+15],M=l[0],_=l[1],L=l[2],T=l[3];M=a(M,_,L,T,o,7,r[0]),T=a(T,M,_,L,c,12,r[1]),L=a(L,T,M,_,p,17,r[2]),_=a(_,L,T,M,m,22,r[3]),M=a(M,_,L,T,h,7,r[4]),T=a(T,M,_,L,g,12,r[5]),L=a(L,T,M,_,v,17,r[6]),_=a(_,L,T,M,$,22,r[7]),M=a(M,_,L,T,w,7,r[8]),T=a(T,M,_,L,y,12,r[9]),L=a(L,T,M,_,x,17,r[10]),_=a(_,L,T,M,b,22,r[11]),M=a(M,_,L,T,z,7,r[12]),T=a(T,M,_,L,k,12,r[13]),L=a(L,T,M,_,S,17,r[14]),M=u(M,_=a(_,L,T,M,C,22,r[15]),L,T,c,5,r[16]),T=u(T,M,_,L,v,9,r[17]),L=u(L,T,M,_,b,14,r[18]),_=u(_,L,T,M,o,20,r[19]),M=u(M,_,L,T,g,5,r[20]),T=u(T,M,_,L,x,9,r[21]),L=u(L,T,M,_,C,14,r[22]),_=u(_,L,T,M,h,20,r[23]),M=u(M,_,L,T,y,5,r[24]),T=u(T,M,_,L,S,9,r[25]),L=u(L,T,M,_,m,14,r[26]),_=u(_,L,T,M,w,20,r[27]),M=u(M,_,L,T,k,5,r[28]),T=u(T,M,_,L,p,9,r[29]),L=u(L,T,M,_,$,14,r[30]),M=d(M,_=u(_,L,T,M,z,20,r[31]),L,T,g,4,r[32]),T=d(T,M,_,L,w,11,r[33]),L=d(L,T,M,_,b,16,r[34]),_=d(_,L,T,M,S,23,r[35]),M=d(M,_,L,T,c,4,r[36]),T=d(T,M,_,L,h,11,r[37]),L=d(L,T,M,_,$,16,r[38]),_=d(_,L,T,M,x,23,r[39]),M=d(M,_,L,T,k,4,r[40]),T=d(T,M,_,L,o,11,r[41]),L=d(L,T,M,_,m,16,r[42]),_=d(_,L,T,M,v,23,r[43]),M=d(M,_,L,T,y,4,r[44]),T=d(T,M,_,L,z,11,r[45]),L=d(L,T,M,_,C,16,r[46]),M=f(M,_=d(_,L,T,M,p,23,r[47]),L,T,o,6,r[48]),T=f(T,M,_,L,$,10,r[49]),L=f(L,T,M,_,S,15,r[50]),_=f(_,L,T,M,g,21,r[51]),M=f(M,_,L,T,z,6,r[52]),T=f(T,M,_,L,m,10,r[53]),L=f(L,T,M,_,x,15,r[54]),_=f(_,L,T,M,c,21,r[55]),M=f(M,_,L,T,w,6,r[56]),T=f(T,M,_,L,C,10,r[57]),L=f(L,T,M,_,v,15,r[58]),_=f(_,L,T,M,k,21,r[59]),M=f(M,_,L,T,h,6,r[60]),T=f(T,M,_,L,b,10,r[61]),L=f(L,T,M,_,p,15,r[62]),_=f(_,L,T,M,y,21,r[63]),l[0]=l[0]+M|0,l[1]=l[1]+_|0,l[2]=l[2]+L|0,l[3]=l[3]+T|0},_doFinalize:function(){var e=this._data,n=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;n[i>>>5]|=128<<24-i%32;var l=t.floor(s/4294967296),o=s;n[15+(i+64>>>9<<4)]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8),n[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e.sigBytes=4*(n.length+1),this._process();for(var r=this._hash,c=r.words,a=0;a<4;a++){var u=c[a];c[a]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return r},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,n,s,i,l,o){var r=t+(e&n|~e&s)+i+o;return(r<<l|r>>>32-l)+e}function u(t,e,n,s,i,l,o){var r=t+(e&s|n&~s)+i+o;return(r<<l|r>>>32-l)+e}function d(t,e,n,s,i,l,o){var r=t+(e^n^s)+i+o;return(r<<l|r>>>32-l)+e}function f(t,e,n,s,i,l,o){var r=t+(n^(e|~s))+i+o;return(r<<l|r>>>32-l)+e}e.MD5=l._createHelper(c),e.HmacMD5=l._createHmacHelper(c)}(Math),n.MD5)})),mu=xe((function(t,e){t.exports=function(){var t=function(){},e=Object.prototype.hasOwnProperty,n=Array.prototype.slice;function s(e,n){var s;return"function"==typeof Object.create?s=Object.create(e):(t.prototype=e,s=new t,t.prototype=null),n&&l(!0,s,n),s}function i(t,e,n,i){var o=this;return"string"!=typeof t&&(i=n,n=e,e=t,t=null),"function"!=typeof e&&(i=n,n=e,e=function(){return o.apply(this,arguments)}),l(!1,e,o,i),e.prototype=s(o.prototype,n),e.prototype.constructor=e,e.class_=t||o.class_,e.super_=o,e}function l(t,s,i){for(var l,o,r=0,c=(i=n.call(arguments,2)).length;r<c;r++)for(l in o=i[r])t&&!e.call(o,l)||(s[l]=o[l])}var o=i;function r(){}r.class_="Nevis",r.super_=Object,r.extend=o;var c=r,a=c.extend((function(t,e,n){this.qrious=t,this.element=e,this.element.qrious=t,this.enabled=Boolean(n)}),{draw:function(t){},getElement:function(){return this.enabled||(this.enabled=!0,this.render()),this.element},getModuleSize:function(t){var e=this.qrious,n=e.padding||0,s=Math.floor((e.size-2*n)/t.width);return Math.max(1,s)},render:function(t){this.enabled&&(this.resize(),this.reset(),this.draw(t))},reset:function(){},resize:function(){}}),u=a,d=u.extend({draw:function(t){var e,n,s=this.qrious,i=this.getModuleSize(t),l=parseInt((this.element.width-t.width*i)/2),o=this.element.getContext("2d");for(o.fillStyle=s.foreground,o.globalAlpha=s.foregroundAlpha,e=0;e<t.width;e++)for(n=0;n<t.width;n++)t.buffer[n*t.width+e]&&o.fillRect(i*e+l,i*n+l,i,i)},reset:function(){var t=this.qrious,e=this.element.getContext("2d"),n=t.size;e.lineWidth=1,e.clearRect(0,0,n,n),e.fillStyle=t.background,e.globalAlpha=t.backgroundAlpha,e.fillRect(0,0,n,n)},resize:function(){var t=this.element;t.width=t.height=this.qrious.size}}),f=d,p=c.extend(null,{BLOCK:[0,11,15,19,23,27,31,16,18,20,22,24,26,28,20,22,24,24,26,28,28,22,24,24,26,26,28,28,24,24,26,26,26,28,28,24,26,26,26,28,28]}),m=c.extend(null,{BLOCKS:[1,0,19,7,1,0,16,10,1,0,13,13,1,0,9,17,1,0,34,10,1,0,28,16,1,0,22,22,1,0,16,28,1,0,55,15,1,0,44,26,2,0,17,18,2,0,13,22,1,0,80,20,2,0,32,18,2,0,24,26,4,0,9,16,1,0,108,26,2,0,43,24,2,2,15,18,2,2,11,22,2,0,68,18,4,0,27,16,4,0,19,24,4,0,15,28,2,0,78,20,4,0,31,18,2,4,14,18,4,1,13,26,2,0,97,24,2,2,38,22,4,2,18,22,4,2,14,26,2,0,116,30,3,2,36,22,4,4,16,20,4,4,12,24,2,2,68,18,4,1,43,26,6,2,19,24,6,2,15,28,4,0,81,20,1,4,50,30,4,4,22,28,3,8,12,24,2,2,92,24,6,2,36,22,4,6,20,26,7,4,14,28,4,0,107,26,8,1,37,22,8,4,20,24,12,4,11,22,3,1,115,30,4,5,40,24,11,5,16,20,11,5,12,24,5,1,87,22,5,5,41,24,5,7,24,30,11,7,12,24,5,1,98,24,7,3,45,28,15,2,19,24,3,13,15,30,1,5,107,28,10,1,46,28,1,15,22,28,2,17,14,28,5,1,120,30,9,4,43,26,17,1,22,28,2,19,14,28,3,4,113,28,3,11,44,26,17,4,21,26,9,16,13,26,3,5,107,28,3,13,41,26,15,5,24,30,15,10,15,28,4,4,116,28,17,0,42,26,17,6,22,28,19,6,16,30,2,7,111,28,17,0,46,28,7,16,24,30,34,0,13,24,4,5,121,30,4,14,47,28,11,14,24,30,16,14,15,30,6,4,117,30,6,14,45,28,11,16,24,30,30,2,16,30,8,4,106,26,8,13,47,28,7,22,24,30,22,13,15,30,10,2,114,28,19,4,46,28,28,6,22,28,33,4,16,30,8,4,122,30,22,3,45,28,8,26,23,30,12,28,15,30,3,10,117,30,3,23,45,28,4,31,24,30,11,31,15,30,7,7,116,30,21,7,45,28,1,37,23,30,19,26,15,30,5,10,115,30,19,10,47,28,15,25,24,30,23,25,15,30,13,3,115,30,2,29,46,28,42,1,24,30,23,28,15,30,17,0,115,30,10,23,46,28,10,35,24,30,19,35,15,30,17,1,115,30,14,21,46,28,29,19,24,30,11,46,15,30,13,6,115,30,14,23,46,28,44,7,24,30,59,1,16,30,12,7,121,30,12,26,47,28,39,14,24,30,22,41,15,30,6,14,121,30,6,34,47,28,46,10,24,30,2,64,15,30,17,4,122,30,29,14,46,28,49,10,24,30,24,46,15,30,4,18,122,30,13,32,46,28,48,14,24,30,42,32,15,30,20,4,117,30,40,7,47,28,43,22,24,30,10,67,15,30,19,6,118,30,18,31,47,28,34,34,24,30,20,61,15,30],FINAL_FORMAT:[30660,29427,32170,30877,26159,25368,27713,26998,21522,20773,24188,23371,17913,16590,20375,19104,13663,12392,16177,14854,9396,8579,11994,11245,5769,5054,7399,6608,1890,597,3340,2107],LEVELS:{L:1,M:2,Q:3,H:4}}),h=c.extend(null,{EXPONENT:[1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,0],LOG:[255,0,1,25,2,50,26,198,3,223,51,238,27,104,199,75,4,100,224,14,52,141,239,129,28,193,105,248,200,8,76,113,5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154,9,120,77,228,114,166,6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87,7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175]}),g=c.extend(null,{BLOCK:[3220,1468,2713,1235,3062,1890,2119,1549,2344,2936,1117,2583,1330,2470,1667,2249,2028,3780,481,4011,142,3098,831,3445,592,2517,1776,2234,1951,2827,1070,2660,1345,3177]}),v=c.extend((function(t){var e,n,s,i,l,o=t.value.length;for(this._badness=[],this._level=m.LEVELS[t.level],this._polynomial=[],this._value=t.value,this._version=0,this._stringBuffer=[];this._version<40&&(this._version++,s=4*(this._level-1)+16*(this._version-1),i=m.BLOCKS[s++],l=m.BLOCKS[s++],e=m.BLOCKS[s++],n=m.BLOCKS[s],!(o<=(s=e*(i+l)+l-3+(this._version<=9)))););this._dataBlock=e,this._eccBlock=n,this._neccBlock1=i,this._neccBlock2=l;var r=this.width=17+4*this._version;this.buffer=v._createArray(r*r),this._ecc=v._createArray(e+(e+n)*(i+l)+l),this._mask=v._createArray((r*(r+1)+1)/2),this._insertFinders(),this._insertAlignments(),this.buffer[8+r*(r-8)]=1,this._insertTimingGap(),this._reverseMask(),this._insertTimingRowAndColumn(),this._insertVersion(),this._syncMask(),this._convertBitStream(o),this._calculatePolynomial(),this._appendEccToData(),this._interleaveBlocks(),this._pack(),this._finish()}),{_addAlignment:function(t,e){var n,s=this.buffer,i=this.width;for(s[t+i*e]=1,n=-2;n<2;n++)s[t+n+i*(e-2)]=1,s[t-2+i*(e+n+1)]=1,s[t+2+i*(e+n)]=1,s[t+n+1+i*(e+2)]=1;for(n=0;n<2;n++)this._setMask(t-1,e+n),this._setMask(t+1,e-n),this._setMask(t-n,e-1),this._setMask(t+n,e+1)},_appendData:function(t,e,n,s){var i,l,o,r=this._polynomial,c=this._stringBuffer;for(l=0;l<s;l++)c[n+l]=0;for(l=0;l<e;l++){if(255!==(i=h.LOG[c[t+l]^c[n]]))for(o=1;o<s;o++)c[n+o-1]=c[n+o]^h.EXPONENT[v._modN(i+r[s-o])];else for(o=n;o<n+s;o++)c[o]=c[o+1];c[n+s-1]=255===i?0:h.EXPONENT[v._modN(i+r[0])]}},_appendEccToData:function(){var t,e=0,n=this._dataBlock,s=this._calculateMaxLength(),i=this._eccBlock;for(t=0;t<this._neccBlock1;t++)this._appendData(e,n,s,i),e+=n,s+=i;for(t=0;t<this._neccBlock2;t++)this._appendData(e,n+1,s,i),e+=n+1,s+=i},_applyMask:function(t){var e,n,s,i,l=this.buffer,o=this.width;switch(t){case 0:for(i=0;i<o;i++)for(s=0;s<o;s++)s+i&1||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 1:for(i=0;i<o;i++)for(s=0;s<o;s++)1&i||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 2:for(i=0;i<o;i++)for(e=0,s=0;s<o;s++,e++)3===e&&(e=0),e||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 3:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=n,s=0;s<o;s++,e++)3===e&&(e=0),e||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 4:for(i=0;i<o;i++)for(e=0,n=i>>1&1,s=0;s<o;s++,e++)3===e&&(e=0,n=!n),n||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 5:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=0,s=0;s<o;s++,e++)3===e&&(e=0),(s&i&1)+!(!e|!n)||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 6:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=0,s=0;s<o;s++,e++)3===e&&(e=0),(s&i&1)+(e&&e===n)&1||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 7:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=0,s=0;s<o;s++,e++)3===e&&(e=0),(e&&e===n)+(s+i&1)&1||this._isMasked(s,i)||(l[s+i*o]^=1)}},_calculateMaxLength:function(){return this._dataBlock*(this._neccBlock1+this._neccBlock2)+this._neccBlock2},_calculatePolynomial:function(){var t,e,n=this._eccBlock,s=this._polynomial;for(s[0]=1,t=0;t<n;t++){for(s[t+1]=1,e=t;e>0;e--)s[e]=s[e]?s[e-1]^h.EXPONENT[v._modN(h.LOG[s[e]]+t)]:s[e-1];s[0]=h.EXPONENT[v._modN(h.LOG[s[0]]+t)]}for(t=0;t<=n;t++)s[t]=h.LOG[s[t]]},_checkBadness:function(){var t,e,n,s,i,l=0,o=this._badness,r=this.buffer,c=this.width;for(i=0;i<c-1;i++)for(s=0;s<c-1;s++)(r[s+c*i]&&r[s+1+c*i]&&r[s+c*(i+1)]&&r[s+1+c*(i+1)]||!(r[s+c*i]||r[s+1+c*i]||r[s+c*(i+1)]||r[s+1+c*(i+1)]))&&(l+=v.N2);var a=0;for(i=0;i<c;i++){for(n=0,o[0]=0,t=0,s=0;s<c;s++)t===(e=r[s+c*i])?o[n]++:o[++n]=1,a+=(t=e)?1:-1;l+=this._getBadness(n)}a<0&&(a=-a);var u=0,d=a;for(d+=d<<2,d<<=1;d>c*c;)d-=c*c,u++;for(l+=u*v.N4,s=0;s<c;s++){for(n=0,o[0]=0,t=0,i=0;i<c;i++)t===(e=r[s+c*i])?o[n]++:o[++n]=1,t=e;l+=this._getBadness(n)}return l},_convertBitStream:function(t){var e,n,s=this._ecc,i=this._version;for(n=0;n<t;n++)s[n]=this._value.charCodeAt(n);var l=this._stringBuffer=s.slice(),o=this._calculateMaxLength();t>=o-2&&(t=o-2,i>9&&t--);var r=t;if(i>9){for(l[r+2]=0,l[r+3]=0;r--;)e=l[r],l[r+3]|=255&e<<4,l[r+2]=e>>4;l[2]|=255&t<<4,l[1]=t>>4,l[0]=64|t>>12}else{for(l[r+1]=0,l[r+2]=0;r--;)e=l[r],l[r+2]|=255&e<<4,l[r+1]=e>>4;l[1]|=255&t<<4,l[0]=64|t>>4}for(r=t+3-(i<10);r<o;)l[r++]=236,l[r++]=17},_getBadness:function(t){var e,n=0,s=this._badness;for(e=0;e<=t;e++)s[e]>=5&&(n+=v.N1+s[e]-5);for(e=3;e<t-1;e+=2)s[e-2]===s[e+2]&&s[e+2]===s[e-1]&&s[e-1]===s[e+1]&&3*s[e-1]===s[e]&&(0===s[e-3]||e+3>t||3*s[e-3]>=4*s[e]||3*s[e+3]>=4*s[e])&&(n+=v.N3);return n},_finish:function(){var t,e;this._stringBuffer=this.buffer.slice();var n=0,s=3e4;for(e=0;e<8&&(this._applyMask(e),(t=this._checkBadness())<s&&(s=t,n=e),7!==n);e++)this.buffer=this._stringBuffer.slice();n!==e&&this._applyMask(n),s=m.FINAL_FORMAT[n+(this._level-1<<3)];var i=this.buffer,l=this.width;for(e=0;e<8;e++,s>>=1)1&s&&(i[l-1-e+8*l]=1,e<6?i[8+l*e]=1:i[8+l*(e+1)]=1);for(e=0;e<7;e++,s>>=1)1&s&&(i[8+l*(l-7+e)]=1,e?i[6-e+8*l]=1:i[7+8*l]=1)},_interleaveBlocks:function(){var t,e,n=this._dataBlock,s=this._ecc,i=this._eccBlock,l=0,o=this._calculateMaxLength(),r=this._neccBlock1,c=this._neccBlock2,a=this._stringBuffer;for(t=0;t<n;t++){for(e=0;e<r;e++)s[l++]=a[t+e*n];for(e=0;e<c;e++)s[l++]=a[r*n+t+e*(n+1)]}for(e=0;e<c;e++)s[l++]=a[r*n+t+e*(n+1)];for(t=0;t<i;t++)for(e=0;e<r+c;e++)s[l++]=a[o+t+e*i];this._stringBuffer=s},_insertAlignments:function(){var t,e,n,s=this._version,i=this.width;if(s>1)for(t=p.BLOCK[s],n=i-7;;){for(e=i-7;e>t-3&&(this._addAlignment(e,n),!(e<t));)e-=t;if(n<=t+9)break;n-=t,this._addAlignment(6,n),this._addAlignment(n,6)}},_insertFinders:function(){var t,e,n,s,i=this.buffer,l=this.width;for(t=0;t<3;t++){for(e=0,s=0,1===t&&(e=l-7),2===t&&(s=l-7),i[s+3+l*(e+3)]=1,n=0;n<6;n++)i[s+n+l*e]=1,i[s+l*(e+n+1)]=1,i[s+6+l*(e+n)]=1,i[s+n+1+l*(e+6)]=1;for(n=1;n<5;n++)this._setMask(s+n,e+1),this._setMask(s+1,e+n+1),this._setMask(s+5,e+n),this._setMask(s+n+1,e+5);for(n=2;n<4;n++)i[s+n+l*(e+2)]=1,i[s+2+l*(e+n+1)]=1,i[s+4+l*(e+n)]=1,i[s+n+1+l*(e+4)]=1}},_insertTimingGap:function(){var t,e,n=this.width;for(e=0;e<7;e++)this._setMask(7,e),this._setMask(n-8,e),this._setMask(7,e+n-7);for(t=0;t<8;t++)this._setMask(t,7),this._setMask(t+n-8,7),this._setMask(t,n-8)},_insertTimingRowAndColumn:function(){var t,e=this.buffer,n=this.width;for(t=0;t<n-14;t++)1&t?(this._setMask(8+t,6),this._setMask(6,8+t)):(e[8+t+6*n]=1,e[6+n*(8+t)]=1)},_insertVersion:function(){var t,e,n,s,i=this.buffer,l=this._version,o=this.width;if(l>6)for(t=g.BLOCK[l-7],e=17,n=0;n<6;n++)for(s=0;s<3;s++,e--)1&(e>11?l>>e-12:t>>e)?(i[5-n+o*(2-s+o-11)]=1,i[2-s+o-11+o*(5-n)]=1):(this._setMask(5-n,2-s+o-11),this._setMask(2-s+o-11,5-n))},_isMasked:function(t,e){var n=v._getMaskBit(t,e);return 1===this._mask[n]},_pack:function(){var t,e,n,s=1,i=1,l=this.width,o=l-1,r=l-1,c=(this._dataBlock+this._eccBlock)*(this._neccBlock1+this._neccBlock2)+this._neccBlock2;for(e=0;e<c;e++)for(t=this._stringBuffer[e],n=0;n<8;n++,t<<=1){128&t&&(this.buffer[o+l*r]=1);do{i?o--:(o++,s?0!==r?r--:(s=!s,6==(o-=2)&&(o--,r=9)):r!==l-1?r++:(s=!s,6==(o-=2)&&(o--,r-=8))),i=!i}while(this._isMasked(o,r))}},_reverseMask:function(){var t,e,n=this.width;for(t=0;t<9;t++)this._setMask(t,8);for(t=0;t<8;t++)this._setMask(t+n-8,8),this._setMask(8,t);for(e=0;e<7;e++)this._setMask(8,e+n-7)},_setMask:function(t,e){var n=v._getMaskBit(t,e);this._mask[n]=1},_syncMask:function(){var t,e,n=this.width;for(e=0;e<n;e++)for(t=0;t<=e;t++)this.buffer[t+n*e]&&this._setMask(t,e)}},{_createArray:function(t){var e,n=[];for(e=0;e<t;e++)n[e]=0;return n},_getMaskBit:function(t,e){var n;return t>e&&(n=t,t=e,e=n),n=e,n+=e*e,n>>=1,n+=t},_modN:function(t){for(;t>=255;)t=((t-=255)>>8)+(255&t);return t},N1:3,N2:3,N3:40,N4:10}),$=v,w=u.extend({draw:function(){this.element.src=this.qrious.toDataURL()},reset:function(){this.element.src=""},resize:function(){var t=this.element;t.width=t.height=this.qrious.size}}),y=w,x=c.extend((function(t,e,n,s){this.name=t,this.modifiable=Boolean(e),this.defaultValue=n,this._valueTransformer=s}),{transform:function(t){var e=this._valueTransformer;return"function"==typeof e?e(t,this):t}}),b=x,z=c.extend(null,{abs:function(t){return null!=t?Math.abs(t):null},hasOwn:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},noop:function(){},toUpperCase:function(t){return null!=t?t.toUpperCase():null}}),k=z,S=c.extend((function(t){this.options={},t.forEach((function(t){this.options[t.name]=t}),this)}),{exists:function(t){return null!=this.options[t]},get:function(t,e){return S._get(this.options[t],e)},getAll:function(t){var e,n=this.options,s={};for(e in n)k.hasOwn(n,e)&&(s[e]=S._get(n[e],t));return s},init:function(t,e,n){var s,i;for(s in"function"!=typeof n&&(n=k.noop),this.options)k.hasOwn(this.options,s)&&(i=this.options[s],S._set(i,i.defaultValue,e),S._createAccessor(i,e,n));this._setAll(t,e,!0)},set:function(t,e,n){return this._set(t,e,n)},setAll:function(t,e){return this._setAll(t,e)},_set:function(t,e,n,s){var i=this.options[t];if(!i)throw new Error("Invalid option: "+t);if(!i.modifiable&&!s)throw new Error("Option cannot be modified: "+t);return S._set(i,e,n)},_setAll:function(t,e,n){if(!t)return!1;var s,i=!1;for(s in t)k.hasOwn(t,s)&&this._set(s,t[s],e,n)&&(i=!0);return i}},{_createAccessor:function(t,e,n){var s={get:function(){return S._get(t,e)}};t.modifiable&&(s.set=function(s){S._set(t,s,e)&&n(s,t)}),Object.defineProperty(e,t.name,s)},_get:function(t,e){return e["_"+t.name]},_set:function(t,e,n){var s="_"+t.name,i=n[s],l=t.transform(null!=e?e:t.defaultValue);return n[s]=l,l!==i}}),C=S,M=c.extend((function(){this._services={}}),{getService:function(t){var e=this._services[t];if(!e)throw new Error("Service is not being managed with name: "+t);return e},setService:function(t,e){if(this._services[t])throw new Error("Service is already managed with name: "+t);e&&(this._services[t]=e)}}),_=M,L=new C([new b("background",!0,"white"),new b("backgroundAlpha",!0,1,k.abs),new b("element"),new b("foreground",!0,"black"),new b("foregroundAlpha",!0,1,k.abs),new b("level",!0,"L",k.toUpperCase),new b("mime",!0,"image/png"),new b("padding",!0,null,k.abs),new b("size",!0,100,k.abs),new b("value",!0,"")]),T=new _,O=c.extend((function(t){L.init(t,this,this.update.bind(this));var e=L.get("element",this),n=T.getService("element"),s=e&&n.isCanvas(e)?e:n.createCanvas(),i=e&&n.isImage(e)?e:n.createImage();this._canvasRenderer=new f(this,s,!0),this._imageRenderer=new y(this,i,i===e),this.update()}),{get:function(){return L.getAll(this)},set:function(t){L.setAll(t,this)&&this.update()},toDataURL:function(t){return this.canvas.toDataURL(t||this.mime)},update:function(){var t=new $({level:this.level,value:this.value});this._canvasRenderer.render(t),this._imageRenderer.render(t)}},{use:function(t){T.setService(t.getName(),t)}});Object.defineProperties(O.prototype,{canvas:{get:function(){return this._canvasRenderer.getElement()}},image:{get:function(){return this._imageRenderer.getElement()}}});var I=O,B=c.extend({getName:function(){}}).extend({createCanvas:function(){},createImage:function(){},getName:function(){return"element"},isCanvas:function(t){},isImage:function(t){}}).extend({createCanvas:function(){return document.createElement("canvas")},createImage:function(){return document.createElement("img")},isCanvas:function(t){return t instanceof HTMLCanvasElement},isImage:function(t){return t instanceof HTMLImageElement}}),H=B;return I.use(new H),I}()}));function hu(e){let n,s;return{c(){n=O("img"),a(n.src,s=e[2])||E(n,"src",s),E(n,"alt",e[0]),E(n,"class",e[1])},m(t,e){_(t,n,e)},p(t,[e]){4&e&&!a(n.src,s=t[2])&&E(n,"src",s),1&e&&E(n,"alt",t[0]),2&e&&E(n,"class",t[1])},i:t,o:t,d(t){t&&L(n)}}}function gu(t,e,n){const s=new mu;let{errorCorrection:i="L"}=e,{background:l="#fff"}=e,{color:o="#000"}=e,{size:r="200"}=e,{value:c=""}=e,{padding:a=0}=e,{className:u="qrcode"}=e,d="";function f(){s.set({background:l,foreground:o,level:i,padding:a,size:r,value:c}),n(2,d=s.toDataURL("image/jpeg"))}return Y((()=>{f()})),t.$$set=t=>{"errorCorrection"in t&&n(3,i=t.errorCorrection),"background"in t&&n(4,l=t.background),"color"in t&&n(5,o=t.color),"size"in t&&n(6,r=t.size),"value"in t&&n(0,c=t.value),"padding"in t&&n(7,a=t.padding),"className"in t&&n(1,u=t.className)},t.$$.update=()=>{1&t.$$.dirty&&c&&f()},[c,u,d,i,l,o,r,a]}class vu extends It{constructor(t){super(),Ot(this,t,gu,hu,r,{errorCorrection:3,background:4,color:5,size:6,value:0,padding:7,className:1})}}function $u(t){let e,n,s,i,l,o,r,c,a;return o=new vu({props:{value:t[7]}}),{c(){e=O("div"),n=O("div"),s=B(t[6]),i=H(),l=O("div"),_t(o.$$.fragment),r=H(),c=O("div"),c.textContent="直接使用网易云音乐 APP 扫码登录,或截图保存之后使用网易云音乐 APP\n        扫码登录。",E(n,"class","qr-tip svelte-m2ulmf"),E(l,"class","qrcode svelte-m2ulmf"),E(c,"class","tip svelte-m2ulmf"),E(e,"class","qr svelte-m2ulmf")},m(t,u){_(t,e,u),S(e,n),S(n,s),S(e,i),S(e,l),Lt(o,l,null),S(e,r),S(e,c),a=!0},p(t,e){(!a||64&e[0])&&P(s,t[6]);const n={};128&e[0]&&(n.value=t[7]),o.$set(n)},i(t){a||(xt(o.$$.fragment,t),a=!0)},o(t){bt(o.$$.fragment,t),a=!1},d(t){t&&L(e),Tt(o)}}}function wu(t){let e,n,s,i,l,o,r,c,a,u,d,f;n=new ai({props:{label:"手机号",type:"tel",maxlength:"11"}}),n.$on("setInput",t[15]);let p="pwd"===t[8]&&yu(t),m="code"===t[8]&&xu(t),h="pwd"===t[8]&&bu(t),g="code"===t[8]&&zu(t);u=new Ys({props:{type:"primary",$$slots:{default:[ku]},$$scope:{ctx:t}}}),u.$on("BtnClick",t[10]);let v="pwd"===t[8]&&Su();return{c(){e=O("div"),_t(n.$$.fragment),s=H(),p&&p.c(),i=H(),m&&m.c(),l=H(),o=O("div"),h&&h.c(),r=H(),g&&g.c(),c=H(),a=O("div"),_t(u.$$.fragment),d=H(),v&&v.c(),E(o,"class","phone-switch svelte-m2ulmf"),E(a,"class","btn svelte-m2ulmf"),E(e,"class","phone")},m(t,$){_(t,e,$),Lt(n,e,null),S(e,s),p&&p.m(e,null),S(e,i),m&&m.m(e,null),S(e,l),S(e,o),h&&h.m(o,null),S(o,r),g&&g.m(o,null),S(e,c),S(e,a),Lt(u,a,null),S(e,d),v&&v.m(e,null),f=!0},p(t,n){"pwd"===t[8]?p?(p.p(t,n),256&n[0]&&xt(p,1)):(p=yu(t),p.c(),xt(p,1),p.m(e,i)):p&&(wt(),bt(p,1,1,(()=>{p=null})),yt()),"code"===t[8]?m?(m.p(t,n),256&n[0]&&xt(m,1)):(m=xu(t),m.c(),xt(m,1),m.m(e,l)):m&&(wt(),bt(m,1,1,(()=>{m=null})),yt()),"pwd"===t[8]?h?h.p(t,n):(h=bu(t),h.c(),h.m(o,r)):h&&(h.d(1),h=null),"code"===t[8]?g?g.p(t,n):(g=zu(t),g.c(),g.m(o,null)):g&&(g.d(1),g=null);const s={};8&n[1]&&(s.$$scope={dirty:n,ctx:t}),u.$set(s),"pwd"===t[8]?v?v.p(t,n):(v=Su(),v.c(),v.m(e,null)):v&&(v.d(1),v=null)},i(t){f||(xt(n.$$.fragment,t),xt(p),xt(m),xt(u.$$.fragment,t),f=!0)},o(t){bt(n.$$.fragment,t),bt(p),bt(m),bt(u.$$.fragment,t),f=!1},d(t){t&&L(e),Tt(n),p&&p.d(),m&&m.d(),h&&h.d(),g&&g.d(),Tt(u),v&&v.d()}}}function yu(t){let e,n,s;function i(e){t[19](e)}let l={label:"密码",type:"password",maxlength:"40"};return void 0!==t[3]&&(l.phone_password=t[3]),e=new ai({props:l}),st.push((()=>Mt(e,"phone_password",i))),e.$on("setInput",t[12]),{c(){_t(e.$$.fragment)},m(t,n){Lt(e,t,n),s=!0},p(t,s){const i={};!n&&8&s[0]&&(n=!0,i.phone_password=t[3],ut((()=>n=!1))),e.$set(i)},i(t){s||(xt(e.$$.fragment,t),s=!0)},o(t){bt(e.$$.fragment,t),s=!1},d(t){Tt(e,t)}}}function xu(t){let e,n,s;function i(e){t[20](e)}let l={label:"验证码",type:"tel",maxlength:"4",rightBtn:!0,btnText:t[5]};return void 0!==t[2]&&(l.phone_code=t[2]),e=new ai({props:l}),st.push((()=>Mt(e,"phone_code",i))),e.$on("setInput",t[13]),e.$on("setBtn",t[18]),{c(){_t(e.$$.fragment)},m(t,n){Lt(e,t,n),s=!0},p(t,s){const i={};32&s[0]&&(i.btnText=t[5]),!n&&4&s[0]&&(n=!0,i.phone_code=t[2],ut((()=>n=!1))),e.$set(i)},i(t){s||(xt(e.$$.fragment,t),s=!0)},o(t){bt(e.$$.fragment,t),s=!1},d(t){Tt(e,t)}}}function bu(e){let n,s,i;return{c(){n=O("span"),n.textContent="短信验证"},m(t,l){_(t,n,l),s||(i=D(n,"click",e[21]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function zu(e){let n,s,i;return{c(){n=O("span"),n.textContent="密码验证"},m(t,l){_(t,n,l),s||(i=D(n,"click",e[22]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function ku(t){let e;return{c(){e=B("登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function Su(e){let n;return{c(){n=O("div"),n.textContent=`${Iu}`,E(n,"class","tip svelte-m2ulmf")},m(t,e){_(t,n,e)},p:t,d(t){t&&L(n)}}}function Cu(t){let e,n,s,i,l,o,r,c,a,u,d;function f(e){t[23](e)}n=new ai({props:{label:"邮箱",maxlength:30,type:"text"}}),n.$on("setInput",t[16]);let p={label:"密码",type:"password",maxlength:"40"};return void 0!==t[4]&&(p.email_password=t[4]),i=new ai({props:p}),st.push((()=>Mt(i,"email_password",f))),i.$on("setInput",t[14]),c=new Ys({props:{type:"primary",$$slots:{default:[Mu]},$$scope:{ctx:t}}}),c.$on("BtnClick",t[11]),{c(){e=O("div"),_t(n.$$.fragment),s=H(),_t(i.$$.fragment),o=H(),r=O("div"),_t(c.$$.fragment),a=H(),u=O("div"),u.textContent=`${Iu}`,E(r,"class","btn svelte-m2ulmf"),E(u,"class","tip svelte-m2ulmf"),E(e,"class","email")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),Lt(i,e,null),S(e,o),S(e,r),Lt(c,r,null),S(e,a),S(e,u),d=!0},p(t,e){const n={};!l&&16&e[0]&&(l=!0,n.email_password=t[4],ut((()=>l=!1))),i.$set(n);const s={};8&e[1]&&(s.$$scope={dirty:e,ctx:t}),c.$set(s)},i(t){d||(xt(n.$$.fragment,t),xt(i.$$.fragment,t),xt(c.$$.fragment,t),d=!0)},o(t){bt(n.$$.fragment,t),bt(i.$$.fragment,t),bt(c.$$.fragment,t),d=!1},d(t){t&&L(e),Tt(n),Tt(i),Tt(c)}}}function Mu(t){let e;return{c(){e=B("登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function _u(e){let n,s,i;return{c(){n=O("span"),n.textContent="手机号登录",E(n,"class","svelte-m2ulmf")},m(t,l){_(t,n,l),s||(i=D(n,"click",e[24]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function Lu(e){let n,s,i;return{c(){n=O("span"),n.textContent="二维码登录",E(n,"class","svelte-m2ulmf")},m(t,l){_(t,n,l),s||(i=D(n,"click",e[17]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function Tu(e){let n,s,i;return{c(){n=O("span"),n.textContent="邮箱登录",E(n,"class","svelte-m2ulmf")},m(t,l){_(t,n,l),s||(i=D(n,"click",e[25]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function Ou(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y;e=new si({props:{title:t[9]}}),u=new zn({});let x="qr"===t[0]&&$u(t),b="phone"===t[0]&&wu(t),z="email"===t[0]&&Cu(t),k="phone"!==t[0]&&_u(t),C="qr"!==t[0]&&Lu(t),M="email"!==t[0]&&Tu(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),i.textContent="请使用网易云音乐账号登录",l=H(),o=O("div"),r=O("div"),r.innerHTML='<img src="/images/nm_logo.png" alt="" class="svelte-m2ulmf"/>',c=H(),a=O("div"),_t(u.$$.fragment),d=H(),f=O("div"),f.innerHTML='<img src="/images/sm_logo.png" alt="" class="svelte-m2ulmf"/>',p=H(),x&&x.c(),m=H(),b&&b.c(),h=H(),z&&z.c(),g=H(),v=O("div"),k&&k.c(),$=H(),C&&C.c(),w=H(),M&&M.c(),E(i,"class","desc svelte-m2ulmf"),E(r,"class","netease svelte-m2ulmf"),E(a,"class","arr svelte-m2ulmf"),E(f,"class","simple svelte-m2ulmf"),E(o,"class","lead svelte-m2ulmf"),E(v,"class","type-switch svelte-m2ulmf"),E(s,"class","login-page svelte-m2ulmf")},m(t,L){Lt(e,t,L),_(t,n,L),_(t,s,L),S(s,i),S(s,l),S(s,o),S(o,r),S(o,c),S(o,a),Lt(u,a,null),S(o,d),S(o,f),S(s,p),x&&x.m(s,null),S(s,m),b&&b.m(s,null),S(s,h),z&&z.m(s,null),S(s,g),S(s,v),k&&k.m(v,null),S(v,$),C&&C.m(v,null),S(v,w),M&&M.m(v,null),y=!0},p(t,n){const i={};512&n[0]&&(i.title=t[9]),e.$set(i),"qr"===t[0]?x?(x.p(t,n),1&n[0]&&xt(x,1)):(x=$u(t),x.c(),xt(x,1),x.m(s,m)):x&&(wt(),bt(x,1,1,(()=>{x=null})),yt()),"phone"===t[0]?b?(b.p(t,n),1&n[0]&&xt(b,1)):(b=wu(t),b.c(),xt(b,1),b.m(s,h)):b&&(wt(),bt(b,1,1,(()=>{b=null})),yt()),"email"===t[0]?z?(z.p(t,n),1&n[0]&&xt(z,1)):(z=Cu(t),z.c(),xt(z,1),z.m(s,g)):z&&(wt(),bt(z,1,1,(()=>{z=null})),yt()),"phone"!==t[0]?k?k.p(t,n):(k=_u(t),k.c(),k.m(v,$)):k&&(k.d(1),k=null),"qr"!==t[0]?C?C.p(t,n):(C=Lu(t),C.c(),C.m(v,w)):C&&(C.d(1),C=null),"email"!==t[0]?M?M.p(t,n):(M=Tu(t),M.c(),M.m(v,null)):M&&(M.d(1),M=null)},i(t){y||(xt(e.$$.fragment,t),xt(u.$$.fragment,t),xt(x),xt(b),xt(z),y=!0)},o(t){bt(e.$$.fragment,t),bt(u.$$.fragment,t),bt(x),bt(b),bt(z),y=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(u),x&&x.d(),b&&b.d(),z&&z.d(),k&&k.d(),C&&C.d(),M&&M.d()}}}let Iu="您的密码会进行 MD5 加密后再传输到网易云 API。本应用不会传输您的账号数据到任何非网易云音乐官方服务器。";function Bu(t){return/^1[3-9]\d{9}$/.test(t)}function Hu(t,e,n){let s,i,l,o,r,c;f(t,te,(t=>n(28,c=t)));let{type:a="phone"}=Fs(c),u=null,d="",p="",m="",h="",g="";function v(t){t.cookie.split(";;").map((t=>{document.cookie=t})),mi.set(!0),fo.set(t),localStorage.setItem("isLogin",!0),localStorage.setItem("userInfo",JSON.stringify(t)),setTimeout((()=>he()),100)}Y((()=>{hi.set(!1),Sl.set(!1)})),Q((()=>{Sl.set(!0)}));return t.$$.update=()=>{1&t.$$.dirty[0]&&n(9,i="qr"===a?"二维码登录":"phone"===a?"手机号登录":"邮箱登录")},n(8,s="code"),n(7,l=""),n(6,o="请扫码"),n(5,r="获取验证码"),[a,u,p,m,g,r,o,l,s,i,async function(){if(!Bu(d))return Ps("请输入正确的手机号");if("code"===s&&4!=p.length)return Ps("请输入四位验证码");let t={};t="code"===s?{phone:d,captcha:p,password:"fakePassword"}:{phone:d,md5_password:m,password:"fakePassword"};const e=await function(t){return Br({url:"/login/cellphone",method:"post",params:t})}(t);200===e.code?v(e):As("登录不成功, 请重新登录。")},async function(){const t=await(e={email:h,md5_password:g,password:"fakePassword"},Br({url:"/login",method:"post",params:e}));var e;200===t.code?v(t):As("登录不成功, 请重新登录。")},function(t){n(3,m=pu(t.detail.value).toString())},function(t){n(2,p=t.detail.value.toString())},function(t){n(4,g=pu(t.detail.value).toString())},function(t){d=t.detail.value},function(t){h=t.detail.value},async function(){n(0,a="qr");const t=await Br({url:"/login/qr/key",method:"get",params:{timestamp:(new Date).getTime()}});200===t.code&&async function(t){const e=await(s={key:t},Br({url:"/login/qr/create",method:"get",params:{...s,timestamp:(new Date).getTime()}}));var s;200===e.code&&(n(7,l=e.data.qrurl),n(1,u=setInterval((()=>{!async function(t){const e=await function(t){return Br({url:"/login/qr/check",method:"get",params:{key:t,timestamp:(new Date).getTime()},isHideLoading:!0})}(t);800===e.code||801===e.code||802===e.code?n(6,o=e.message):803===e.code?(clearInterval(u),setTimeout((()=>{!async function(t){const e=await function(t){return Br({url:"/user/account",method:"get",params:{cookie:t,timestamp:(new Date).getTime()}})}(t);if(200===e.code){let n=e;n.cookie=t,v(n)}}(e.cookie)}),300)):clearInterval(u)}(t)}),1e3)))}(t.data.unikey)},async function(){if("获取验证码"===r)if(Bu(d)){const t=await function(t){return Br({url:"/captcha/sent",method:"get",params:{phone:t,timestamp:(new Date).getTime()}})}(d);200===t.code&&(Ps("验证码已发送至"+d.substring(d.length-4)+",请注意查收!",2e3),function(){let t=59,e=setInterval((()=>{t--,0===t?(clearInterval(e),n(5,r="获取验证码")):n(5,r=t+"s 后重发")}),1e3)}())}else Ps("请输入正确的手机号")},function(t){m=t,n(3,m)},function(t){p=t,n(2,p)},()=>{n(8,s="code")},()=>{n(8,s="pwd")},function(t){g=t,n(4,g)},()=>{clearInterval(u),n(0,a="phone")},()=>{n(0,a="email"),clearInterval(u)}]}function Nu(e){let n,s,i,l;return s=new In({props:{size:"22",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n        播放全部"),E(n,"class","icon svelte-1cxuvfh")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function Du(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$=t[0].length+"";return e=new si({props:{title:"今日推荐歌曲"}}),p=new Ys({props:{type:"primary",$$slots:{default:[Nu]},$$scope:{ctx:t}}}),p.$on("BtnClick",t[2]),g=new jr({props:{songList:t[0]}}),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),i.textContent="今日推荐歌曲",l=H(),o=O("div"),r=B("根据你的音乐口味生成 "),c=B($),a=B(" 首 · 每天6:00更新"),u=H(),d=O("div"),f=O("div"),_t(p.$$.fragment),m=H(),h=O("div"),_t(g.$$.fragment),E(i,"class","today-title svelte-1cxuvfh"),E(o,"class","today-desc svelte-1cxuvfh"),E(f,"class","play svelte-1cxuvfh"),E(d,"class","btn svelte-1cxuvfh"),E(s,"class","play-list svelte-1cxuvfh")},m(t,$){Lt(e,t,$),_(t,n,$),_(t,s,$),S(s,i),S(s,l),S(s,o),S(o,r),S(o,c),S(o,a),S(s,u),S(s,d),S(d,f),Lt(p,f,null),S(s,m),S(s,h),Lt(g,h,null),v=!0},p(t,[e]){(!v||1&e)&&$!==($=t[0].length+"")&&P(c,$);const n={};512&e&&(n.$$scope={dirty:e,ctx:t}),p.$set(n);const s={};1&e&&(s.songList=t[0]),g.$set(s)},i(t){v||(xt(e.$$.fragment,t),xt(p.$$.fragment,t),xt(g.$$.fragment,t),v=!0)},o(t){bt(e.$$.fragment,t),bt(p.$$.fragment,t),bt(g.$$.fragment,t),v=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(p),Tt(g)}}}function Eu(t,e,n){let s,i,l,o,r;async function c(t){const e=await Nr(t);200===e.code&&(Nc.set(e.songs),n(0,s=e.songs))}function a(t){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(s);let e=[];for(let t=0;t<s.length;t++)e.push(s[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),i!==l.length-1&&Hr(l[i+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(l[i])}f(t,Ml,(t=>n(3,i=t))),f(t,_l,(t=>n(4,l=t))),f(t,Dc,(t=>n(5,o=t))),f(t,gi,(t=>n(6,r=t))),ge((()=>{if(!r){let t=[];for(let e=0;e<o.length;e++)t.push(o[e].id);c(t.join(",")),Hr(t[0])}})),Y((()=>{let t=[];for(let e=0;e<o.length;e++)t.push(o[e].id);c(t.join(",")),Hr(t[0])}));return n(0,s=[]),[s,a,()=>a(0)]}function Ru(t){let e,n,s,i,l,o,r,c;return{c(){e=O("div"),n=O("form"),s=O("input"),i=H(),l=O("button"),o=B("搜索"),E(s,"placeholder","请输入关键字"),E(s,"type","search"),s.value=t[4],E(s,"class","svelte-1i0xqe3"),E(n,"action","JavaScript:void 0"),E(n,"class","svelte-1i0xqe3"),j(l,"background-color",""===t[4]?"rgb(224, 224, 224)":"var(--primary-text-color)"),j(l,"color",""===t[4]?"#666":"#fff"),E(l,"class","svelte-1i0xqe3"),E(e,"class","input-box svelte-1i0xqe3")},m(a,u){_(a,e,u),S(e,n),S(n,s),t[12](s),S(e,i),S(e,l),S(l,o),r||(c=D(l,"click",t[13]),r=!0)},p(t,e){16&e&&(s.value=t[4]),16&e&&j(l,"background-color",""===t[4]?"rgb(224, 224, 224)":"var(--primary-text-color)"),16&e&&j(l,"color",""===t[4]?"#666":"#fff")},d(n){n&&L(e),t[12](null),r=!1,c()}}}function Pu(t){let e,n,s,i,l,o,r=t[5].length+"";return{c(){e=B(",其中 "),n=O("span"),s=B(r),i=B(" 首包含『"),l=B(t[4]),o=B("』")},m(t,r){_(t,e,r),_(t,n,r),S(n,s),_(t,i,r),_(t,l,r),_(t,o,r)},p(t,e){32&e&&r!==(r=t[5].length+"")&&P(s,r),16&e&&P(l,t[4])},d(t){t&&L(e),t&&L(n),t&&L(i),t&&L(l),t&&L(o)}}}function Au(t){let e,n,s,i,l,o,r;return s=new Ys({props:{type:"primary",$$slots:{default:[Uu]},$$scope:{ctx:t}}}),s.$on("BtnClick",t[14]),o=new Ys({props:{type:"primary",$$slots:{default:[Vu]},$$scope:{ctx:t}}}),o.$on("BtnClick",t[10]),{c(){e=O("div"),n=O("div"),_t(s.$$.fragment),i=H(),l=O("div"),_t(o.$$.fragment),E(n,"class","play svelte-1i0xqe3"),E(l,"class","play svelte-1i0xqe3"),E(e,"class","btn svelte-1i0xqe3")},m(t,c){_(t,e,c),S(e,n),Lt(s,n,null),S(e,i),S(e,l),Lt(o,l,null),r=!0},p(t,e){const n={};8388608&e&&(n.$$scope={dirty:e,ctx:t}),s.$set(n);const i={};8388608&e&&(i.$$scope={dirty:e,ctx:t}),o.$set(i)},i(t){r||(xt(s.$$.fragment,t),xt(o.$$.fragment,t),r=!0)},o(t){bt(s.$$.fragment,t),bt(o.$$.fragment,t),r=!1},d(t){t&&L(e),Tt(s),Tt(o)}}}function ju(e){let n;return{c(){n=O("div")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}function Uu(e){let n,s,i,l;return s=new In({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n          顺序播放"),E(n,"class","icon svelte-1i0xqe3")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function Vu(e){let n,s,i,l;return s=new ds({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n          随机播放"),E(n,"class","icon svelte-1i0xqe3")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function Fu(t){let e,n;return e=new jr({props:{songList:t[2]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};4&n&&(s.songList=t[2]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ju(t){let e,n;return e=new jr({props:{songList:t[5]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};32&n&&(s.songList=t[5]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function qu(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w=t[2].length+"";e=new si({props:{title:t[6].profile.nickname+"喜欢的歌曲",isRefresh:t[3],rightIcons:t[7]}}),e.$on("setRightIconClick",t[11]);let y=t[1]&&Ru(t),x=t[1]&&""!=t[4]&&Pu(t);const b=[ju,Au],z=[];function k(t,e){return t[1]&&""!=t[4]?0:1}f=k(t),p=z[f]=b[f](t);const C=[Ju,Fu],M=[];function T(t,e){return t[1]&&""!=t[4]?0:1}return g=T(t),v=M[g]=C[g](t),{c(){_t(e.$$.fragment),n=H(),s=O("div"),y&&y.c(),i=H(),l=O("div"),l.textContent="我喜欢的音乐",o=H(),r=O("div"),c=B("共 "),a=B(w),u=B(" 首\n    "),x&&x.c(),d=H(),p.c(),m=H(),h=O("div"),v.c(),E(l,"class","today-title svelte-1i0xqe3"),E(r,"class","today-desc svelte-1i0xqe3"),E(s,"class","play-list svelte-1i0xqe3")},m(t,p){Lt(e,t,p),_(t,n,p),_(t,s,p),y&&y.m(s,null),S(s,i),S(s,l),S(s,o),S(s,r),S(r,c),S(r,a),S(r,u),x&&x.m(r,null),S(s,d),z[f].m(s,null),S(s,m),S(s,h),M[g].m(h,null),$=!0},p(t,[n]){const l={};64&n&&(l.title=t[6].profile.nickname+"喜欢的歌曲"),8&n&&(l.isRefresh=t[3]),e.$set(l),t[1]?y?y.p(t,n):(y=Ru(t),y.c(),y.m(s,i)):y&&(y.d(1),y=null),(!$||4&n)&&w!==(w=t[2].length+"")&&P(a,w),t[1]&&""!=t[4]?x?x.p(t,n):(x=Pu(t),x.c(),x.m(r,null)):x&&(x.d(1),x=null);let o=f;f=k(t),f===o?z[f].p(t,n):(wt(),bt(z[o],1,1,(()=>{z[o]=null})),yt(),p=z[f],p?p.p(t,n):(p=z[f]=b[f](t),p.c()),xt(p,1),p.m(s,m));let c=g;g=T(t),g===c?M[g].p(t,n):(wt(),bt(M[c],1,1,(()=>{M[c]=null})),yt(),v=M[g],v?v.p(t,n):(v=M[g]=C[g](t),v.c()),xt(v,1),v.m(h,null))},i(t){$||(xt(e.$$.fragment,t),xt(p),xt(v),$=!0)},o(t){bt(e.$$.fragment,t),bt(p),bt(v),$=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),y&&y.d(),x&&x.d(),z[f].d(),M[g].d()}}}function Xu(t,e,n){let s,i,l,o,r,c,a,u,d,p,m;f(t,Ml,(t=>n(15,c=t))),f(t,_l,(t=>n(16,a=t))),f(t,mo,(t=>n(17,u=t))),f(t,gi,(t=>n(18,d=t))),f(t,fo,(t=>n(6,p=t)));let h=[{id:"SearchLine",icon:cs}];function g(t){setTimeout((()=>{t.target.isNeedPrevent||t.target.oldValue===t.target.value||(t.target.oldValue=t.target.value,n(4,s=t.target.value),v())}),100)}function v(){""!=s.trim()&&n(5,o=l.filter((t=>t.name.indexOf(s)>-1||Ds(t.ar).indexOf(s)>-1||Ds(t.alia,!1).indexOf(s)>-1)))}async function $(){const t=await ta(u);if(200===t.code){pi.set(!0);let e=[];for(let n=0;n<t.playlist.trackIds.length;n++)e.push(t.playlist.trackIds[n].id);let n=js(e);for(let t=0;t<n.length;t++)await w(n[t].join(","),t===n.length-1)}}async function w(t,e){const s=await Nr(t);200===s.code&&(n(2,l=l.concat(s.songs)),e&&n(3,r=!1))}function y(t){Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(l);let e=[];for(let t=0;t<l.length;t++)e.push(l[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),Dl.set("repeat"),x(a[c])}async function x(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),c!==a.length-1&&Hr(a[c+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}ge((()=>{d||(n(2,l=[]),n(1,i=!1),n(5,o=[]),n(4,s=""),hi.set(!1),$())})),Y((()=>{hi.set(!1),$()})),Q((()=>{hi.set(!0)}));return n(4,s=""),n(1,i=!1),n(2,l=[]),n(5,o=[]),n(3,r=!1),[m,i,l,r,s,o,p,h,v,y,function(){Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(l);let t=[];for(let e=0;e<l.length;e++)t.push(l[e].id);localStorage.setItem("localPlayList",JSON.stringify(t));let e=Math.floor(Math.random()*(a.length-1));Dl.set("shuffle"),Ml.set(e),x(a[c])},function(t){"SearchLine"===t.detail.id&&i?n(1,i=!1):"SearchLine"!==t.detail.id||i||(n(1,i=!0),setTimeout((()=>{m.focus(),m.addEventListener("compositionstart",(function(t){t.target.isNeedPrevent=!0})),m.addEventListener("compositionend",(function(t){t.target.isNeedPrevent=!1})),m.addEventListener("input",g),m.addEventListener("keydown",(function(t){"Enter"===t.key&&(m.blur(),v())}))}),100))},function(t){st[t?"unshift":"push"]((()=>{m=t,n(0,m)}))},()=>{m.blur(),v()},()=>y(0)]}function Gu(t,e,n){const s=t.slice();return s[5]=e[n],s}function Wu(t){let e,n,s;return e=new jc({props:{name:t[5].name,coverImgUrl:t[5].coverImgUrl,id:t[5].id,playCount:t[5].playCount,trackCount:t[5].trackCount}}),{c(){_t(e.$$.fragment),n=H()},m(t,i){Lt(e,t,i),_(t,n,i),s=!0},p(t,n){const s={};1&n&&(s.name=t[5].name),1&n&&(s.coverImgUrl=t[5].coverImgUrl),1&n&&(s.id=t[5].id),1&n&&(s.playCount=t[5].playCount),1&n&&(s.trackCount=t[5].trackCount),e.$set(s)},i(t){s||(xt(e.$$.fragment,t),s=!0)},o(t){bt(e.$$.fragment,t),s=!1},d(t){Tt(e,t),t&&L(n)}}}function Ku(t){let e,n;return e=new uo({props:{height:180,$$slots:{default:[Wu]},$$scope:{ctx:t}}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};257&n&&(s.$$scope={dirty:n,ctx:t}),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Yu(t){let e,n,s,i;e=new si({props:{title:"?create"===t[1]?"创建的歌单":"收藏的歌单"}});let l=t[0],o=[];for(let e=0;e<l.length;e+=1)o[e]=Ku(Gu(t,l,e));const r=t=>bt(o[t],1,1,(()=>{o[t]=null}));return{c(){_t(e.$$.fragment),n=H(),s=O("div");for(let t=0;t<o.length;t+=1)o[t].c();E(s,"class","play-list-page svelte-l15zgd")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l);for(let t=0;t<o.length;t+=1)o[t].m(s,null);i=!0},p(t,[n]){const i={};if(2&n&&(i.title="?create"===t[1]?"创建的歌单":"收藏的歌单"),e.$set(i),1&n){let e;for(l=t[0],e=0;e<l.length;e+=1){const i=Gu(t,l,e);o[e]?(o[e].p(i,n),xt(o[e],1)):(o[e]=Ku(i),o[e].c(),xt(o[e],1),o[e].m(s,null))}for(wt(),e=l.length;e<o.length;e+=1)r(e);yt()}},i(t){if(!i){xt(e.$$.fragment,t);for(let t=0;t<l.length;t+=1)xt(o[t]);i=!0}},o(t){bt(e.$$.fragment,t),o=o.filter(Boolean);for(let t=0;t<o.length;t+=1)bt(o[t]);i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(o,t)}}}function Zu(t,e,n){let s,i,l,o;async function r(t){const e=await Mc({uid:l.account.id});if(200===e.code){let t=[],o=[];e.playlist[0].creator.userId===l.account.id&&"喜欢的音乐"===e.playlist[0].name.substr(-5)&&e.playlist.splice(0,1);for(let n=0;n<e.playlist.length;n++)e.playlist[n].creator.userId===l.account.id?t.push(e.playlist[n]):o.push(e.playlist[n]);n(0,s="?create"===i?t:o)}else As("获取收藏歌单失败")}return f(t,te,(t=>n(1,i=t))),f(t,fo,(t=>n(2,l=t))),f(t,gi,(t=>n(3,o=t))),ge((()=>{o||r()})),Y((()=>{r()})),n(0,s=[]),[s,i]}function Qu(t){let e;return{c(){e=B("退出登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function td(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y;return e=new si({props:{title:"设置"}}),i=new Pi({props:{title:"播放音质",desc:t[4][Number(t[0])],arrow:!0}}),i.$on("cellClick",t[7]),o=new Pi({props:{title:"热评",desc:"Switch",cellCheck:"0"!==t[1]}}),o.$on("cellClick",t[6]),c=new Pi({props:{title:"显示歌词翻译",desc:"Switch",cellCheck:t[2]}}),c.$on("cellClick",t[8]),u=new Pi({props:{title:"自动滚动",titleDesc:"导航返回上一页后自动滚动到之前的位置",desc:"Switch",cellCheck:t[3]}}),u.$on("cellClick",t[5]),f=new Pi({props:{title:"关于",arrow:!0}}),f.$on("cellClick",t[10]),m=new Pi({props:{title:"版本记录",arrow:!0}}),m.$on("cellClick",t[11]),v=new Ys({props:{$$slots:{default:[Qu]},$$scope:{ctx:t}}}),v.$on("BtnClick",t[9]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),l=H(),_t(o.$$.fragment),r=H(),_t(c.$$.fragment),a=H(),_t(u.$$.fragment),d=H(),_t(f.$$.fragment),p=H(),_t(m.$$.fragment),h=H(),g=O("div"),_t(v.$$.fragment),$=H(),w=O("div"),w.textContent="V 1.0.1",E(g,"class","bottom svelte-76h2cb"),E(w,"class","version svelte-76h2cb"),E(s,"class","setting-page svelte-76h2cb")},m(t,x){Lt(e,t,x),_(t,n,x),_(t,s,x),Lt(i,s,null),S(s,l),Lt(o,s,null),S(s,r),Lt(c,s,null),S(s,a),Lt(u,s,null),S(s,d),Lt(f,s,null),S(s,p),Lt(m,s,null),S(s,h),S(s,g),Lt(v,g,null),S(s,$),S(s,w),y=!0},p(t,[e]){const n={};1&e&&(n.desc=t[4][Number(t[0])]),i.$set(n);const s={};2&e&&(s.cellCheck="0"!==t[1]),o.$set(s);const l={};4&e&&(l.cellCheck=t[2]),c.$set(l);const r={};8&e&&(r.cellCheck=t[3]),u.$set(r);const a={};4096&e&&(a.$$scope={dirty:e,ctx:t}),v.$set(a)},i(t){y||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),xt(o.$$.fragment,t),xt(c.$$.fragment,t),xt(u.$$.fragment,t),xt(f.$$.fragment,t),xt(m.$$.fragment,t),xt(v.$$.fragment,t),y=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),bt(o.$$.fragment,t),bt(c.$$.fragment,t),bt(u.$$.fragment,t),bt(f.$$.fragment,t),bt(m.$$.fragment,t),bt(v.$$.fragment,t),y=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i),Tt(o),Tt(c),Tt(u),Tt(f),Tt(m),Tt(v)}}}function ed(t,e,n){let s,i,l,o;f(t,wi,(t=>n(0,s=t))),f(t,zi,(t=>n(1,i=t))),f(t,yi,(t=>n(2,l=t))),f(t,$i,(t=>n(3,o=t)));return[s,i,l,o,["普通","较高","极高","无损"],function(t){$i.set(t.detail.cellCheck),localStorage.setItem("restoreScroll",t.detail.cellCheck?"1":"0")},function(t){zi.set(t.detail.cellCheck?"1":"0"),localStorage.setItem("isShowComment",t.detail.cellCheck?"1":"0")},function(){me("/brSelect")},function(t){yi.set(t.detail.cellCheck),localStorage.setItem("isShowTranslate",t.detail.cellCheck?"1":"0")},function(){!function(t,e,n="确定",s="取消",i){let l=document.createElement("div"),o=`<div>${t}</div><div style='height:36px;line-height:36px;color:#fff;margin:20px auto 0px;display:flex'><div style='flex:1;background:#e2e2e2;color:#666;line-height:36px;border-radius: 4px;margin:0 5px;' id='ConfirmNo'>${s}</div> <div style='margin:0 5px;flex:1;border-radius: 4px;line-height:36px;background:var(--primary-text-color);' id='ConfirmYes'>${n}</div></div>`;l.innerHTML=o,l.style.cssText="width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)",document.body.appendChild(l),document.getElementById("ConfirmNo").onclick=function(){document.body.removeChild(l),i()},document.getElementById("ConfirmYes").onclick=function(){document.body.removeChild(l),e()}}("确定退出当前账号?",(async()=>{200===(await Br({url:"/logout",method:"post"})).code&&(localStorage.clear(),mi.set(!1),function(){let t=document.cookie.match(/[^ =;]+(?=\=)/g);if(t)for(let e=t.length;e--;)document.cookie=t[e]+"=0;expires="+new Date(0).toUTCString()}(),he())}))},function(){me("/about")},function(){me("/version")}]}function nd(t,e,n){const s=t.slice();return s[23]=e[n],s}function sd(t,e,n){const s=t.slice();return s[26]=e[n],s}function id(t,e,n){const s=t.slice();return s[23]=e[n],s}function ld(t,e,n){const s=t.slice();return s[26]=e[n],s}function od(t,e,n){const s=t.slice();return s[33]=e[n],s}function rd(t,e,n){const s=t.slice();return s[36]=e[n],s}function cd(t){let e,n,s,i,l=t[36]+"";function o(){return t[17](t[36])}return{c(){e=O("span"),n=B(l),E(e,"class","key-item svelte-1mbdxts")},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(e,s){t=e,128&s[0]&&l!==(l=t[36]+"")&&P(n,l)},d(t){t&&L(e),s=!1,i()}}}function ad(e){let n,s,i,l,o;return s=new en({props:{size:"12",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),E(n,"class","key-item svelte-1mbdxts")},m(t,r){_(t,n,r),Lt(s,n,null),i=!0,l||(o=D(n,"click",e[13]),l=!0)},p:t,i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(n),Tt(s),l=!1,o()}}}function ud(t){let e,n,s,i,l,o=t[33].text+"";function r(){return t[18](t[33])}return{c(){e=O("div"),n=B(o),s=H(),E(e,"class","type-item svelte-1mbdxts"),U(e,"active",t[9]===t[33].index)},m(t,o){_(t,e,o),S(e,n),S(e,s),i||(l=D(e,"click",r),i=!0)},p(n,s){t=n,1536&s[0]&&U(e,"active",t[9]===t[33].index)},d(t){t&&L(e),i=!1,l()}}}function dd(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,I;r=new jr({props:{songList:t[5]}});let B=t[2],N=[];for(let e=0;e<B.length;e+=1)N[e]=fd(ld(t,B,e));const D=t=>bt(N[t],1,1,(()=>{N[t]=null}));let R=t[3],P=[];for(let e=0;e<R.length;e+=1)P[e]=pd(id(t,R,e));const A=t=>bt(P[t],1,1,(()=>{P[t]=null}));y=new jr({props:{songList:t[5]}});let U=t[2],V=[];for(let e=0;e<U.length;e+=1)V[e]=md(sd(t,U,e));const F=t=>bt(V[t],1,1,(()=>{V[t]=null}));let J=t[3],q=[];for(let e=0;e<J.length;e+=1)q[e]=hd(nd(t,J,e));const X=t=>bt(q[t],1,1,(()=>{q[t]=null}));return{c(){e=O("div"),n=O("div"),s=O("div"),s.textContent="单曲",i=H(),l=O("div"),o=O("div"),_t(r.$$.fragment),c=H(),a=O("div"),a.textContent="歌手",u=H(),d=O("div");for(let t=0;t<N.length;t+=1)N[t].c();f=H(),p=O("div"),p.textContent="歌单",m=H(),h=O("div");for(let t=0;t<P.length;t+=1)P[t].c();g=H(),v=O("div"),$=O("div"),w=O("div"),_t(y.$$.fragment),x=H(),b=O("div"),z=O("div");for(let t=0;t<V.length;t+=1)V[t].c();k=H(),C=O("div"),M=O("div");for(let t=0;t<q.length;t+=1)q[t].c();E(s,"class","songer-title svelte-1mbdxts"),E(o,"class","song-box"),E(l,"class","reault-song"),E(a,"class","songer-title svelte-1mbdxts"),E(d,"class","reault-songer svelte-1mbdxts"),E(p,"class","songer-title svelte-1mbdxts"),E(h,"class","reault-play-list svelte-1mbdxts"),E(n,"class","result all-box"),j(n,"display",0===t[9]?"block":"none"),E(w,"class","song-box"),E($,"class","reault-song"),E(v,"class","result song-box"),j(v,"display",1===t[9]?"block":"none"),E(z,"class","reault-songer svelte-1mbdxts"),E(b,"class","result reault-songer-box"),j(b,"display",2===t[9]?"block":"none"),E(M,"class","reault-play-list svelte-1mbdxts"),j(C,"display",3===t[9]?"block":"none"),E(e,"class","result-box")},m(t,L){_(t,e,L),S(e,n),S(n,s),S(n,i),S(n,l),S(l,o),Lt(r,o,null),S(n,c),S(n,a),S(n,u),S(n,d);for(let t=0;t<N.length;t+=1)N[t].m(d,null);S(n,f),S(n,p),S(n,m),S(n,h);for(let t=0;t<P.length;t+=1)P[t].m(h,null);S(e,g),S(e,v),S(v,$),S($,w),Lt(y,w,null),S(e,x),S(e,b),S(b,z);for(let t=0;t<V.length;t+=1)V[t].m(z,null);S(e,k),S(e,C),S(C,M);for(let t=0;t<q.length;t+=1)q[t].m(M,null);I=!0},p(t,e){const s={};if(32&e[0]&&(s.songList=t[5]),r.$set(s),4&e[0]){let n;for(B=t[2],n=0;n<B.length;n+=1){const s=ld(t,B,n);N[n]?(N[n].p(s,e),xt(N[n],1)):(N[n]=fd(s),N[n].c(),xt(N[n],1),N[n].m(d,null))}for(wt(),n=B.length;n<N.length;n+=1)D(n);yt()}if(8&e[0]){let n;for(R=t[3],n=0;n<R.length;n+=1){const s=id(t,R,n);P[n]?(P[n].p(s,e),xt(P[n],1)):(P[n]=pd(s),P[n].c(),xt(P[n],1),P[n].m(h,null))}for(wt(),n=R.length;n<P.length;n+=1)A(n);yt()}(!I||512&e[0])&&j(n,"display",0===t[9]?"block":"none");const i={};if(32&e[0]&&(i.songList=t[5]),y.$set(i),(!I||512&e[0])&&j(v,"display",1===t[9]?"block":"none"),4&e[0]){let n;for(U=t[2],n=0;n<U.length;n+=1){const s=sd(t,U,n);V[n]?(V[n].p(s,e),xt(V[n],1)):(V[n]=md(s),V[n].c(),xt(V[n],1),V[n].m(z,null))}for(wt(),n=U.length;n<V.length;n+=1)F(n);yt()}if((!I||512&e[0])&&j(b,"display",2===t[9]?"block":"none"),8&e[0]){let n;for(J=t[3],n=0;n<J.length;n+=1){const s=nd(t,J,n);q[n]?(q[n].p(s,e),xt(q[n],1)):(q[n]=hd(s),q[n].c(),xt(q[n],1),q[n].m(M,null))}for(wt(),n=J.length;n<q.length;n+=1)X(n);yt()}(!I||512&e[0])&&j(C,"display",3===t[9]?"block":"none")},i(t){if(!I){xt(r.$$.fragment,t);for(let t=0;t<B.length;t+=1)xt(N[t]);for(let t=0;t<R.length;t+=1)xt(P[t]);xt(y.$$.fragment,t);for(let t=0;t<U.length;t+=1)xt(V[t]);for(let t=0;t<J.length;t+=1)xt(q[t]);I=!0}},o(t){bt(r.$$.fragment,t),N=N.filter(Boolean);for(let t=0;t<N.length;t+=1)bt(N[t]);P=P.filter(Boolean);for(let t=0;t<P.length;t+=1)bt(P[t]);bt(y.$$.fragment,t),V=V.filter(Boolean);for(let t=0;t<V.length;t+=1)bt(V[t]);q=q.filter(Boolean);for(let t=0;t<q.length;t+=1)bt(q[t]);I=!1},d(t){t&&L(e),Tt(r),T(N,t),T(P,t),Tt(y),T(V,t),T(q,t)}}}function fd(t){let e,n,s,i;return n=new Qc({props:{songer:t[26],coverSize:330}}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),E(e,"class","songer-box svelte-1mbdxts")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),i=!0},p(t,e){const s={};4&e[0]&&(s.songer=t[26]),n.$set(s)},i(t){i||(xt(n.$$.fragment,t),i=!0)},o(t){bt(n.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(n)}}}function pd(t){let e,n,s,i;return n=new jc({props:{name:t[23].name,coverImgUrl:t[23].coverImgUrl,id:t[23].id,playCount:t[23].playCount,trackCount:t[23].trackCount}}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),E(e,"class","list-box")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),i=!0},p(t,e){const s={};8&e[0]&&(s.name=t[23].name),8&e[0]&&(s.coverImgUrl=t[23].coverImgUrl),8&e[0]&&(s.id=t[23].id),8&e[0]&&(s.playCount=t[23].playCount),8&e[0]&&(s.trackCount=t[23].trackCount),n.$set(s)},i(t){i||(xt(n.$$.fragment,t),i=!0)},o(t){bt(n.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(n)}}}function md(t){let e,n;return e=new Qc({props:{songer:t[26],coverSize:250}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};4&n[0]&&(s.songer=t[26]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function hd(t){let e,n;return e=new jc({props:{name:t[23].name,coverImgUrl:t[23].coverImgUrl,id:t[23].id,playCount:t[23].playCount,trackCount:t[23].trackCount}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};8&n[0]&&(s.name=t[23].name),8&n[0]&&(s.coverImgUrl=t[23].coverImgUrl),8&n[0]&&(s.id=t[23].id),8&n[0]&&(s.playCount=t[23].playCount),8&n[0]&&(s.trackCount=t[23].trackCount),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function gd(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x=t[7].filter(vd).length>0;e=new si({props:{title:"搜索"}});let b=t[7].filter($d),z=[];for(let e=0;e<b.length;e+=1)z[e]=cd(rd(t,b,e));let k=x&&ad(t),C=t[10],M=[];for(let e=0;e<C.length;e+=1)M[e]=ud(od(t,C,e));let I=t[6]&&dd(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),l=O("form"),o=O("input"),r=H(),c=O("button"),a=B("搜索"),u=H(),d=O("div");for(let t=0;t<z.length;t+=1)z[t].c();f=H(),k&&k.c(),p=H(),m=O("div");for(let t=0;t<M.length;t+=1)M[t].c();h=H(),g=O("div"),v=H(),I&&I.c(),E(o,"placeholder","请输入关键字"),E(o,"type","search"),o.value=t[1],E(o,"class","svelte-1mbdxts"),E(l,"action","JavaScript:void 0"),E(l,"class","svelte-1mbdxts"),j(c,"background-color",""===t[1]?"rgb(224, 224, 224)":"var(--primary-text-color)"),j(c,"color",""===t[1]?"#666":"#fff"),E(c,"class","svelte-1mbdxts"),E(i,"class","input-box svelte-1mbdxts"),E(d,"class","searchkeyword svelte-1mbdxts"),E(m,"class","type svelte-1mbdxts"),E(g,"class","active-line svelte-1mbdxts"),j(g,"left",20+(Hs()-40)/4*t[9]+"px"),E(s,"class","search-page svelte-1mbdxts")},m(x,b){Lt(e,x,b),_(x,n,b),_(x,s,b),S(s,i),S(i,l),S(l,o),t[15](o),S(i,r),S(i,c),S(c,a),S(s,u),S(s,d);for(let t=0;t<z.length;t+=1)z[t].m(d,null);S(d,f),k&&k.m(d,null),S(s,p),S(s,m);for(let t=0;t<M.length;t+=1)M[t].m(m,null);t[19](m),S(s,h),S(s,g),S(s,v),I&&I.m(s,null),$=!0,w||(y=D(c,"click",t[16]),w=!0)},p(t,e){if((!$||2&e[0])&&(o.value=t[1]),(!$||2&e[0])&&j(c,"background-color",""===t[1]?"rgb(224, 224, 224)":"var(--primary-text-color)"),(!$||2&e[0])&&j(c,"color",""===t[1]?"#666":"#fff"),4224&e[0]){let n;for(b=t[7].filter($d),n=0;n<b.length;n+=1){const s=rd(t,b,n);z[n]?z[n].p(s,e):(z[n]=cd(s),z[n].c(),z[n].m(d,f))}for(;n<z.length;n+=1)z[n].d(1);z.length=b.length}if(128&e[0]&&(x=t[7].filter(vd).length>0),x?k?(k.p(t,e),128&e[0]&&xt(k,1)):(k=ad(t),k.c(),xt(k,1),k.m(d,null)):k&&(wt(),bt(k,1,1,(()=>{k=null})),yt()),3840&e[0]){let n;for(C=t[10],n=0;n<C.length;n+=1){const s=od(t,C,n);M[n]?M[n].p(s,e):(M[n]=ud(s),M[n].c(),M[n].m(m,null))}for(;n<M.length;n+=1)M[n].d(1);M.length=C.length}(!$||512&e[0])&&j(g,"left",20+(Hs()-40)/4*t[9]+"px"),t[6]?I?(I.p(t,e),64&e[0]&&xt(I,1)):(I=dd(t),I.c(),xt(I,1),I.m(s,null)):I&&(wt(),bt(I,1,1,(()=>{I=null})),yt())},i(t){$||(xt(e.$$.fragment,t),xt(k),xt(I),$=!0)},o(t){bt(e.$$.fragment,t),bt(k),bt(I),$=!1},d(i){Tt(e,i),i&&L(n),i&&L(s),t[15](null),T(z,i),k&&k.d(),T(M,i),t[19](null),I&&I.d(),w=!1,y()}}}const vd=function(t){return t&&t.trim()},$d=function(t){return t&&t.trim()};function wd(t,e,n){let s,i,l,o,r,c,a,u,d="",f=[],p=[],m=[{index:0,type:0,text:"综合"},{index:1,type:1,text:"单曲"},{index:2,type:100,text:"歌手"},{index:3,type:1e3,text:"歌单"}];function h(t){setTimeout((()=>{t.target.isNeedPrevent||t.target.oldValue===t.target.value||(t.target.oldValue=t.target.value,n(1,d=t.target.value))}),10)}function g(){if(""!=d.trim()){a.blur();let t=localStorage.getItem("searchkeywords")?localStorage.getItem("searchkeywords"):"";t=-1!=t.indexOf(d)?`${d}|&&|`+t.replace(`${d}|&&|`,""):`${d}|&&|`+t,n(14,o=t.split("|&&|")),localStorage.setItem("searchkeywords",t),0===l?($(m[1].type,!1),$(m[2].type,!1),$(m[3].type,!1)):$(l,!0)}}function v(t){n(1,d=t),g()}async function $(t,e){const i=await(l={keywords:d,type:t,limit:e?30:6},Br({url:"/search",method:"get",params:l}).then((t=>t)));var l;if(200===i.code)switch(n(6,c=!0),t){case 1:let t=[];for(let e=0;e<i.result.songs.length;e++)t.push(i.result.songs[e].id);!async function(t){const e=await Nr(t);200===e.code&&n(5,s=e.songs)}(t.join(","));break;case 100:n(2,f=i.result.artists);break;case 1e3:n(3,p=i.result.playlists);break;default:console.log("未知类型")}}Y((()=>{u&&Js(u,!0),a.addEventListener("compositionstart",(function(t){t.target.isNeedPrevent=!0})),a.addEventListener("compositionend",(function(t){t.target.isNeedPrevent=!1})),a.addEventListener("input",h),a.addEventListener("keydown",(function(t){"Enter"===t.key&&g()}))}));return t.$$.update=()=>{16384&t.$$.dirty[0]&&n(7,r=o.length>10?o.slice(0,10).filter((function(t){return t&&t.trim()})):o.filter((function(t){return t&&t.trim()})))},n(5,s=[]),n(9,i=0),n(8,l=m[0].type),n(14,o=localStorage.getItem("searchkeywords")?[...new Set(localStorage.getItem("searchkeywords").split("|&&|"))].filter((function(t){return t&&t.trim()})):[]),n(6,c=!1),[a,d,f,p,u,s,c,r,l,i,m,g,v,function(){n(7,r=[]),localStorage.removeItem("searchkeywords")},o,function(t){st[t?"unshift":"push"]((()=>{a=t,n(0,a)}))},()=>g(),t=>v(t),t=>{n(9,i=t.index),n(8,l=t.type),g()},function(t){st[t?"unshift":"push"]((()=>{u=t,n(4,u)}))}]}function yd(t){let e,n;return{c(){e=O("img"),E(e,"class","img-cover svelte-dyfxu7"),a(e.src,n=t[7].replace(/^http:/,"https:")+"?param=400y400")||E(e,"src",n),E(e,"alt","")},m(t,n){_(t,e,n)},p(t,s){128&s&&!a(e.src,n=t[7].replace(/^http:/,"https:")+"?param=400y400")&&E(e,"src",n)},d(t){t&&L(e)}}}function xd(e){let n,s,i,l;return s=new In({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n        播放全部"),E(n,"class","icon svelte-dyfxu7")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function bd(t){let e,n,s;return n=new Ys({props:{type:t[0]?"default":"primary",$$slots:{default:[Sd]},$$scope:{ctx:t}}}),n.$on("BtnClick",t[12]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","random svelte-dyfxu7")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};1&e&&(s.type=t[0]?"default":"primary"),33554433&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function zd(t){let e,n;return e=new Ee({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function kd(t){let e,n;return e=new Ae({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Sd(t){let e,n,s,i,l,o,r=t[0]?"取消收藏":"收藏歌手";const c=[kd,zd],a=[];function u(t,e){return t[0]?0:1}return n=u(t),s=a[n]=c[n](t),{c(){e=O("span"),s.c(),i=H(),l=B(r),E(e,"class","icon svelte-dyfxu7")},m(t,s){_(t,e,s),a[n].m(e,null),_(t,i,s),_(t,l,s),o=!0},p(t,i){let d=n;n=u(t),n!==d&&(wt(),bt(a[d],1,1,(()=>{a[d]=null})),yt(),s=a[n],s||(s=a[n]=c[n](t),s.c()),xt(s,1),s.m(e,null)),(!o||1&i)&&r!==(r=t[0]?"取消收藏":"收藏歌手")&&P(l,r)},i(t){o||(xt(s),o=!0)},o(t){bt(s),o=!1},d(t){t&&L(e),a[n].d(),t&&L(i),t&&L(l)}}}function Cd(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,j,U,V,F;e=new si({props:{title:t[8],dark:!0}}),r=new uo({props:{height:140,$$slots:{default:[yd]},$$scope:{ctx:t}}}),M=new Ys({props:{type:"primary",$$slots:{default:[xd]},$$scope:{ctx:t}}}),M.$on("BtnClick",t[13]);let J=t[9]&&bd(t);return R=new vl({props:{title:`热门 ${t[1].length} 首`,isShowRight:50===t[1].length}}),R.$on("TitleClick",t[14]),j=new jr({props:{songList:t[1]}}),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),l=O("div"),o=O("div"),_t(r.$$.fragment),c=H(),a=O("div"),u=O("div"),d=B(t[8]),f=H(),p=O("div"),m=B(t[5]),h=B(" 首歌 • "),g=B(t[4]),v=B(" 张专辑 • "),$=B(t[6]),w=B(" 个 MV"),y=H(),x=O("div"),b=B(t[2]),z=H(),k=O("div"),C=O("div"),_t(M.$$.fragment),T=H(),J&&J.c(),I=H(),N=O("div"),_t(R.$$.fragment),A=H(),_t(j.$$.fragment),E(o,"class","cover svelte-dyfxu7"),E(u,"class","name svelte-dyfxu7"),E(p,"class","song-count svelte-dyfxu7"),E(x,"class","desc svelte-dyfxu7"),E(a,"class","info svelte-dyfxu7"),E(l,"class","cover-bg svelte-dyfxu7"),E(i,"class","cover-box svelte-dyfxu7"),E(C,"class","play svelte-dyfxu7"),E(k,"class","btn svelte-dyfxu7"),E(s,"class","page svelte-dyfxu7")},m(L,O){Lt(e,L,O),_(L,n,O),_(L,s,O),S(s,i),S(i,l),S(l,o),Lt(r,o,null),S(l,c),S(l,a),S(a,u),S(u,d),S(a,f),S(a,p),S(p,m),S(p,h),S(p,g),S(p,v),S(p,$),S(p,w),S(a,y),S(a,x),S(x,b),S(s,z),S(s,k),S(k,C),Lt(M,C,null),S(k,T),J&&J.m(k,null),S(s,I),S(s,N),Lt(R,N,null),S(N,A),Lt(j,N,null),U=!0,V||(F=D(x,"click",t[10]),V=!0)},p(t,[n]){const s={};256&n&&(s.title=t[8]),e.$set(s);const i={};33554560&n&&(i.$$scope={dirty:n,ctx:t}),r.$set(i),(!U||256&n)&&P(d,t[8]),(!U||32&n)&&P(m,t[5]),(!U||16&n)&&P(g,t[4]),(!U||64&n)&&P($,t[6]),(!U||4&n)&&P(b,t[2]);const l={};33554432&n&&(l.$$scope={dirty:n,ctx:t}),M.$set(l),t[9]?J?(J.p(t,n),512&n&&xt(J,1)):(J=bd(t),J.c(),xt(J,1),J.m(k,null)):J&&(wt(),bt(J,1,1,(()=>{J=null})),yt());const o={};2&n&&(o.title=`热门 ${t[1].length} 首`),2&n&&(o.isShowRight=50===t[1].length),R.$set(o);const c={};2&n&&(c.songList=t[1]),j.$set(c)},i(t){U||(xt(e.$$.fragment,t),xt(r.$$.fragment,t),xt(M.$$.fragment,t),xt(J),xt(R.$$.fragment,t),xt(j.$$.fragment,t),U=!0)},o(t){bt(e.$$.fragment,t),bt(r.$$.fragment,t),bt(M.$$.fragment,t),bt(J),bt(R.$$.fragment,t),bt(j.$$.fragment,t),U=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(r),Tt(M),J&&J.d(),Tt(R),Tt(j),V=!1,F()}}}function Md(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$;f(t,xi,(t=>n(15,p=t))),f(t,Ml,(t=>n(16,m=t))),f(t,_l,(t=>n(17,h=t))),f(t,mi,(t=>n(9,g=t))),f(t,gi,(t=>n(18,v=t))),f(t,te,(t=>n(19,$=t)));const{id:w}=Fs($);function y(){if(async function(){const t=await sa(d);200===t.code&&(n(8,i=t.data.artist.name),n(7,s=t.data.user?t.data.user.avatarUrl:t.data.artist.cover),n(2,l=t.data.artist.briefDesc),n(6,o=t.data.artist.mvSize),n(5,r=t.data.artist.musicSize),n(4,c=t.data.artist.albumSize))}(),async function(){const t=await function(t){return Br({url:"/artist/top/song",method:"get",params:{id:t}})}(d);200===t.code&&n(1,a=t.songs)}(),g){const t=JSON.parse(localStorage.getItem("useLoveSongerIds"));n(0,u=t.includes(p))}else n(0,u=!1)}function x(t){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(a);let e=[];for(let t=0;t<a.length;t++)e.push(a[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),m!==h.length-1&&Hr(h[m+1].id)):Toast(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(h[m])}ge((()=>{const{id:t}=Fs($);n(3,d=t),v||y()})),Y((()=>{y()}));return n(7,s=ki),n(8,i="--"),n(2,l="暂无描述"),n(6,o=0),n(5,r=0),n(4,c=0),n(1,a=[]),n(0,u=!1),n(3,d=w),[u,a,l,d,c,r,o,s,i,g,function(){""!=l&&me("/songerDesc?"+p)},x,async function(){var t;if(200===(await(t={id:p,t:u?0:1},Br({url:"/artist/sub",method:"get",params:t}))).code){const t=JSON.parse(localStorage.getItem("useLoveSongerIds"));if(u){let e=t.indexOf(Number(p));t.splice(e,1)}else t.unshift(Number(p));localStorage.setItem("useLoveSongerIds",JSON.stringify(t)),n(0,u=!u)}},()=>x(0),()=>{bi.set(s.replace(/^http:/,"https:")),me("/moreSong?name="+i+"&id="+d)}]}function _d(e){let n,s,i,l,o,r,c;return n=new si({props:{title:"播放音质"}}),l=new qi({props:{radioData:e[0],active:e[2]}}),l.$on("RadioClick",e[3]),r=new Yi({props:{tipTextList:e[1]}}),{c(){_t(n.$$.fragment),s=H(),i=O("div"),_t(l.$$.fragment),o=H(),_t(r.$$.fragment),E(i,"class","br-page svelte-uc65sw")},m(t,e){Lt(n,t,e),_(t,s,e),_(t,i,e),Lt(l,i,null),S(i,o),Lt(r,i,null),c=!0},p:t,i(t){c||(xt(n.$$.fragment,t),xt(l.$$.fragment,t),xt(r.$$.fragment,t),c=!0)},o(t){bt(n.$$.fragment,t),bt(l.$$.fragment,t),bt(r.$$.fragment,t),c=!1},d(t){Tt(n,t),t&&L(s),t&&L(i),Tt(l),Tt(r)}}}function Ld(t,e,n){let s;f(t,wi,(t=>n(4,s=t)));return[[{text:"普通",desc:"128K"},{text:"较高",desc:"192K"},{text:"极高",desc:"320K"},{text:"无损",desc:"FLAC"}],["提示:","1、音质越高相对应所需流量也越高。FLAC 格式对网络要求较高,一首歌曲文件几十 M 甚至超过 100M。","2、一般来说,达到较高音质(192K)非专业设备就已经听不出差距了,如果用的是普通蓝牙耳机,那就更没必要开启高音质了。","3、若当前账号无法播放高音质,或音乐资源无当前音质,将自动匹配下一级别音质。","4、所选音质将在下一次切换歌曲生效。"],Number(s),function(t){wi.set(t.detail.active.toString()),localStorage.setItem("musicQuality",t.detail.active.toString())}]}function Td(t){let e;return{c(){e=O("span"),e.innerHTML='<img class="authStatus svelte-hhobj8" src="/images/auth.png" alt=""/>',E(e,"class","vip")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function Od(t){let e,n,s;return{c(){e=O("span"),n=O("img"),E(n,"class","cvip svelte-hhobj8"),a(n.src,s=`/images/vip/${t[12].user.vipRights.redVipLevel}.png`)||E(n,"src",s),E(n,"alt",""),E(e,"class","vip")},m(t,s){_(t,e,s),S(e,n)},p(t,e){4096&e&&!a(n.src,s=`/images/vip/${t[12].user.vipRights.redVipLevel}.png`)&&E(n,"src",s)},d(t){t&&L(e)}}}function Id(t){let e,n;return e=new Is({props:{size:"12",style:"vertical-align: middle;margin-left:4px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Bd(t){let e,n;return e=new Ls({props:{size:"12",style:"vertical-align: middle;margin-left:4px;"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Hd(t){let e,n,s,i,l,o=t[12].beReplied[0].user.nickname+"",r=t[12].beReplied[0].content+"";return{c(){e=O("div"),n=B("@ "),s=B(o),i=B(":"),l=B(r),E(e,"class","beReplied svelte-hhobj8")},m(t,o){_(t,e,o),S(e,n),S(e,s),S(e,i),S(e,l)},p(t,e){4096&e&&o!==(o=t[12].beReplied[0].user.nickname+"")&&P(s,o),4096&e&&r!==(r=t[12].beReplied[0].content+"")&&P(l,r)},d(t){t&&L(e)}}}function Nd(t){let e,n,s,i,l,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,J=t[12].user.nickname+"",q=Ns(t[12].time,"yyyy-MM-dd hh:mm:ss")+"",X=Es(t[12].likedCount)+"",G=t[12].content+"",W=1===t[12].user.authStatus&&Td(),K=0!==t[12].user.vipType&&Od(t);const Y=[Bd,Id],Z=[];function Q(t,e){return t[12].liked?0:1}function tt(){return t[7](t[12])}x=Q(t),b=Z[x]=Y[x](t);let et=t[12].beReplied&&t[12].beReplied.length>0&&Hd(t);return R=new li({}),{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),l=O("div"),o=O("img"),c=H(),u=O("div"),d=O("div"),f=B(J),p=H(),W&&W.c(),m=H(),K&&K.c(),h=H(),g=O("div"),v=B(q),$=H(),w=O("div"),y=O("span"),b.c(),z=H(),k=B(X),C=H(),M=O("div"),T=new F,I=H(),et&&et.c(),N=H(),_t(R.$$.fragment),a(o.src,r=t[12].user.avatarUrl.replace(/^http:/,"https:")+"?param=50y50")||E(o,"src",r),E(o,"alt",""),E(o,"class","svelte-hhobj8"),E(l,"class","cover svelte-hhobj8"),E(d,"class","name"),E(g,"class","time svelte-hhobj8"),E(u,"class","info svelte-hhobj8"),E(i,"class","user svelte-hhobj8"),E(y,"class","liked-span svelte-hhobj8"),E(w,"class","like svelte-hhobj8"),j(w,"color",t[12].liked?"var(--primary-text-color)":"#666"),E(s,"class","top svelte-hhobj8"),T.a=I,E(M,"class","content svelte-hhobj8"),E(n,"class","comment svelte-hhobj8")},m(t,r){_(t,e,r),S(e,n),S(n,s),S(s,i),S(i,l),S(l,o),S(i,c),S(i,u),S(u,d),S(d,f),S(d,p),W&&W.m(d,null),S(d,m),K&&K.m(d,null),S(u,h),S(u,g),S(g,v),S(s,$),S(s,w),S(w,y),Z[x].m(y,null),S(y,z),S(w,k),S(n,C),S(n,M),T.m(G,M),S(M,I),et&&et.m(M,null),S(e,N),Lt(R,e,null),A=!0,U||(V=D(w,"click",tt),U=!0)},p(e,n){t=e,(!A||4096&n&&!a(o.src,r=t[12].user.avatarUrl.replace(/^http:/,"https:")+"?param=50y50"))&&E(o,"src",r),(!A||4096&n)&&J!==(J=t[12].user.nickname+"")&&P(f,J),1===t[12].user.authStatus?W||(W=Td(),W.c(),W.m(d,m)):W&&(W.d(1),W=null),0!==t[12].user.vipType?K?K.p(t,n):(K=Od(t),K.c(),K.m(d,null)):K&&(K.d(1),K=null),(!A||4096&n)&&q!==(q=Ns(t[12].time,"yyyy-MM-dd hh:mm:ss")+"")&&P(v,q);let s=x;x=Q(t),x!==s&&(wt(),bt(Z[s],1,1,(()=>{Z[s]=null})),yt(),b=Z[x],b||(b=Z[x]=Y[x](t),b.c()),xt(b,1),b.m(y,z)),(!A||4096&n)&&X!==(X=Es(t[12].likedCount)+"")&&P(k,X),(!A||4096&n)&&j(w,"color",t[12].liked?"var(--primary-text-color)":"#666"),(!A||4096&n)&&G!==(G=t[12].content+"")&&T.p(G),t[12].beReplied&&t[12].beReplied.length>0?et?et.p(t,n):(et=Hd(t),et.c(),et.m(M,null)):et&&(et.d(1),et=null)},i(t){A||(xt(b),xt(R.$$.fragment,t),A=!0)},o(t){bt(b),bt(R.$$.fragment,t),A=!1},d(t){t&&L(e),W&&W.d(),K&&K.d(),Z[x].d(),et&&et.d(),Tt(R),U=!1,V()}}}function Dd(t){let e,n,s,i,l;return e=new si({props:{title:`热门评论(${t[2]||0})`}}),i=new pl({props:{bottomHeight:70,paginationHeight:t[4],items:t[0],hasMore:t[1],$$slots:{default:[Nd,({item:t,index:e})=>({12:t,13:e}),({item:t,index:e})=>(t?4096:0)|(e?8192:0)]},$$scope:{ctx:t}}}),i.$on("load",t[8]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),E(s,"class","comment-page svelte-hhobj8")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),Lt(i,s,null),l=!0},p(t,[n]){const s={};4&n&&(s.title=`热门评论(${t[2]||0})`),e.$set(s);const l={};16&n&&(l.paginationHeight=t[4]),1&n&&(l.items=t[0]),2&n&&(l.hasMore=t[1]),20480&n&&(l.$$scope={dirty:n,ctx:t}),i.$set(l)},i(t){l||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),l=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),l=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i)}}}function Ed(t,e,n){let s,i,l,o,r,c,a,u;async function d(t){l=a.id;const e=await function(t,e=0,n=0,s=20){return Br({url:"/comment/hot",method:"get",params:{id:t,type:n,limit:s,offset:e,timestamp:(new Date).getTime()}})}(a.id,t);if(200===e.code){n(2,s=e.total),n(0,i=i.concat(e.hotComments)),n(1,o=e.hasMore),n(0,i=i.filter((t=>"云村评论编辑部"!==t.user.nickname)));for(let t=0;t<i.length;t++)n(0,i[t].content=Us(i[t].content),i)}}async function p(t,e){if(u){if(200===(await function(t,e,n=0,s){return Br({url:"/comment/like",method:"get",params:{id:t,cid:e,type:n,t:s,timestamp:(new Date).getTime()}})}(a.id,t,0,e?0:1)).code)for(let s=0;s<i.length;s++)i[s].commentId===t&&n(0,i[s].liked=!e,i)}else Ps("请登录")}f(t,Cl,(t=>n(10,a=t))),f(t,mi,(t=>n(11,u=t))),Y((()=>{n(4,c=document.documentElement.clientHeight||document.body.clientHeight-120),d(0)})),Z((()=>{l!==a.id&&(n(0,i=[]),n(3,r=0),n(1,o=!0),d(r))}));return n(2,s=0),n(0,i=[]),l=0,n(1,o=!0),n(3,r=0),n(4,c=0),[i,o,s,r,c,d,p,t=>p(t.commentId,t.liked),()=>{o&&(n(3,r=i.length),d(r))}]}function Rd(t,e,n){const s=t.slice();return s[3]=e[n],s}function Pd(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=Ad(Rd(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","songer-box svelte-svzm6k")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,n){if(1&n){let o;for(s=t[0],o=0;o<s.length;o+=1){const l=Rd(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=Ad(l),i[o].c(),xt(i[o],1),i[o].m(e,null))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function Ad(t){let e,n;return e=new Qc({props:{songer:t[3],coverSize:200}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};1&n&&(s.songer=t[3]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function jd(t){let e,n,s,i;e=new si({props:{title:"收藏的歌手"}});let l=t[0].length>0&&Pd(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),l&&l.c(),E(s,"class","page svelte-svzm6k")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),l&&l.m(s,null),i=!0},p(t,[e]){t[0].length>0?l?(l.p(t,e),1&e&&xt(l,1)):(l=Pd(t),l.c(),xt(l,1),l.m(s,null)):l&&(wt(),bt(l,1,1,(()=>{l=null})),yt())},i(t){i||(xt(e.$$.fragment,t),xt(l),i=!0)},o(t){bt(e.$$.fragment,t),bt(l),i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),l&&l.d()}}}function Ud(t,e,n){let s,i;async function l(){const t=await _c({limit:2e3});200===t.code&&n(0,s=t.data)}return f(t,gi,(t=>n(1,i=t))),ge((()=>{i||l()})),Y((()=>{l()})),n(0,s=[]),[s]}function Vd(t,e,n){const s=t.slice();return s[6]=e[n],s}function Fd(t){let e,n,s,i,l=t[6].ti+"",o=t[6].txt+"";return{c(){e=O("div"),n=B(l),s=H(),i=O("div"),E(e,"class","title svelte-18yar7i"),E(i,"class","text svelte-18yar7i")},m(t,l){_(t,e,l),S(e,n),_(t,s,l),_(t,i,l),i.innerHTML=o},p(t,e){1&e&&l!==(l=t[6].ti+"")&&P(n,l),1&e&&o!==(o=t[6].txt+"")&&(i.innerHTML=o)},d(t){t&&L(e),t&&L(s),t&&L(i)}}}function Jd(t){let e,n,s,i,l,o,r,c,a;e=new si({props:{title:"歌手详情",dark:!0}});let u=t[0],d=[];for(let e=0;e<u.length;e+=1)d[e]=Fd(Vd(t,u,e));return{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),i.textContent="简介",l=H(),o=O("div"),r=B(t[1]),c=H();for(let t=0;t<d.length;t+=1)d[t].c();E(i,"class","title svelte-18yar7i"),E(o,"class","text svelte-18yar7i"),E(s,"class","page svelte-18yar7i")},m(t,u){Lt(e,t,u),_(t,n,u),_(t,s,u),S(s,i),S(s,l),S(s,o),S(o,r),S(s,c);for(let t=0;t<d.length;t+=1)d[t].m(s,null);a=!0},p(t,[e]){if((!a||2&e)&&P(r,t[1]),1&e){let n;for(u=t[0],n=0;n<u.length;n+=1){const i=Vd(t,u,n);d[n]?d[n].p(i,e):(d[n]=Fd(i),d[n].c(),d[n].m(s,null))}for(;n<d.length;n+=1)d[n].d(1);d.length=u.length}},i(t){a||(xt(e.$$.fragment,t),a=!0)},o(t){bt(e.$$.fragment,t),a=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(d,t)}}}function qd(t,e,n){let s,i,l,o;async function r(){const t=await(e=l.substr(1),Br({url:"/artist/desc",method:"get",params:{id:e}}));var e;200===t.code&&(n(1,s=t.briefDesc),n(0,i=t.introduction))}return f(t,te,(t=>n(3,l=t))),f(t,gi,(t=>n(4,o=t))),ge((()=>{o||r()})),Y((()=>{r()})),n(1,s=""),n(0,i=[]),[i,s]}function Xd(t){let e,n;return e=new Qc({props:{songer:t[7],coverSize:200}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};128&n&&(s.songer=t[7]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Gd(t){let e,n,s,i,l;return e=new si({props:{title:`热门歌手 ${t[1].length} 位`}}),i=new pl({props:{bottomHeight:70,paginationHeight:t[2],items:t[1],hasMore:t[0],grid:3,$$slots:{default:[Xd,({item:t,index:e})=>({7:t,8:e}),({item:t,index:e})=>(t?128:0)|(e?256:0)]},$$scope:{ctx:t}}}),i.$on("load",t[5]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),E(s,"class","comment-page svelte-1fc8ytt")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),Lt(i,s,null),l=!0},p(t,[n]){const s={};2&n&&(s.title=`热门歌手 ${t[1].length} 位`),e.$set(s);const l={};4&n&&(l.paginationHeight=t[2]),2&n&&(l.items=t[1]),1&n&&(l.hasMore=t[0]),640&n&&(l.$$scope={dirty:n,ctx:t}),i.$set(l)},i(t){l||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),l=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),l=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i)}}}function Wd(t,e,n){let s,i,l,o,r;async function c(t){const e=await ia(20,t);200===e.code&&(n(1,s=s.concat(e.artists)),n(0,i=e.more))}f(t,gi,(t=>n(6,r=t))),ge((()=>{r||(n(1,s=[]),n(0,i=!0),n(3,l=0),n(2,o=document.documentElement.clientHeight||document.body.clientHeight-120),c())})),Y((()=>{n(2,o=document.documentElement.clientHeight||document.body.clientHeight-120),c(0)}));return n(1,s=[]),n(0,i=!0),n(3,l=0),n(2,o=0),[i,s,o,l,c,()=>{i&&(n(3,l=s.length),c(l))}]}function Kd(t){let e,n;return e=new jc({props:{name:t[12].name,coverImgUrl:t[12].coverImgUrl,id:t[12].id,width:150,playCount:t[12].playCount,trackCount:t[12].trackCount}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};4096&n&&(s.name=t[12].name),4096&n&&(s.coverImgUrl=t[12].coverImgUrl),4096&n&&(s.id=t[12].id),4096&n&&(s.playCount=t[12].playCount),4096&n&&(s.trackCount=t[12].trackCount),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Yd(t){let e,n,s,i,l;return e=new si({props:{title:"官方"===t[4].cat?"官方歌单":`${t[4].cat} - ${"top"===t[4].type?"精选":"精品"}歌单`}}),i=new pl({props:{bottomHeight:70,paginationHeight:t[5],items:t[1],hasMore:t[0],grid:2,$$slots:{default:[Kd,({item:t,index:e})=>({12:t,13:e}),({item:t,index:e})=>(t?4096:0)|(e?8192:0)]},$$scope:{ctx:t}}}),i.$on("load",t[8]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),E(s,"class","comment-page svelte-1fc8ytt")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),Lt(i,s,null),l=!0},p(t,[n]){const s={};16&n&&(s.title="官方"===t[4].cat?"官方歌单":`${t[4].cat} - ${"top"===t[4].type?"精选":"精品"}歌单`),e.$set(s);const l={};32&n&&(l.paginationHeight=t[5]),2&n&&(l.items=t[1]),1&n&&(l.hasMore=t[0]),20480&n&&(l.$$scope={dirty:n,ctx:t}),i.$set(l)},i(t){l||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),l=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),l=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i)}}}function Zd(t,e,n){let s,i,l,o,r,c,a,u;function d(){n(5,o=document.documentElement.clientHeight||document.body.clientHeight-120),n(4,r=Fs(a)),"high"===r.type?m(r.cat):p(r.cat)}async function p(t){const e=await na({limit:20,cat:"默认"===t?"全部":t,offset:l});200===e.code&&(n(1,s=s.concat(e.playlists)),n(0,i=e.more))}async function m(t){const e=await ea({limit:20,cat:"默认"===t?"全部":t,before:c});200===e.code&&(n(1,s=s.concat(e.playlists)),n(0,i=e.more))}f(t,te,(t=>n(9,a=t))),f(t,gi,(t=>n(10,u=t))),ge((()=>{u||(n(1,s=[]),n(0,i=!0),n(3,l=0),n(5,o=0),n(2,c=0),n(4,r={}),d())})),Y((()=>{d()}));return n(1,s=[]),n(0,i=!0),n(3,l=0),n(5,o=0),n(4,r={}),n(2,c=0),[i,s,c,l,r,o,p,m,()=>{i&&("high"===r.type?(n(2,c=s.slice(-1)[0].updateTime),m(r.cat)):(n(3,l=s.length),p(r.cat)))}]}function Qd(t,e,n){const s=t.slice();return s[21]=e[n],s}function tf(t){let e,n,s,i,l,o=t[21].text+"";function r(){return t[11](t[21])}return{c(){e=O("div"),n=B(o),s=H(),E(e,"class","type-item svelte-18svwxv"),U(e,"active",t[5]===t[21].index)},m(t,o){_(t,e,o),S(e,n),S(e,s),i||(l=D(e,"click",r),i=!0)},p(n,s){t=n,288&s&&U(e,"active",t[5]===t[21].index)},d(t){t&&L(e),i=!1,l()}}}function ef(t){let e,n;return e=new xo({props:{song:t[19],index:t[20],customCoverUrl:t[7]+"?param=100y100"}}),e.$on("songClick",t[10]),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};524288&n&&(s.song=t[19]),1048576&n&&(s.index=t[20]),128&n&&(s.customCoverUrl=t[7]+"?param=100y100"),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function nf(t){let e,n,s,i,l,o,r,c,a,u;e=new si({props:{title:`${t[2].name}的全部歌曲`}});let d=t[8],f=[];for(let e=0;e<d.length;e+=1)f[e]=tf(Qd(t,d,e));return a=new pl({props:{bottomHeight:70,paginationHeight:t[4],items:t[0],hasMore:t[1],$$slots:{default:[ef,({item:t,index:e})=>({19:t,20:e}),({item:t,index:e})=>(t?524288:0)|(e?1048576:0)]},$$scope:{ctx:t}}}),a.$on("load",t[12]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div");for(let t=0;t<f.length;t+=1)f[t].c();l=H(),o=O("div"),r=H(),c=O("div"),_t(a.$$.fragment),E(i,"class","type svelte-18svwxv"),E(o,"class","active-line svelte-18svwxv"),j(o,"left",20+(Hs()-40)/2*t[5]+"px"),j(c,"margin-top","40px"),E(s,"class","comment-page svelte-18svwxv")},m(t,d){Lt(e,t,d),_(t,n,d),_(t,s,d),S(s,i);for(let t=0;t<f.length;t+=1)f[t].m(i,null);S(s,l),S(s,o),S(s,r),S(s,c),Lt(a,c,null),u=!0},p(t,[n]){const s={};if(4&n&&(s.title=`${t[2].name}的全部歌曲`),e.$set(s),875&n){let e;for(d=t[8],e=0;e<d.length;e+=1){const s=Qd(t,d,e);f[e]?f[e].p(s,n):(f[e]=tf(s),f[e].c(),f[e].m(i,null))}for(;e<f.length;e+=1)f[e].d(1);f.length=d.length}(!u||32&n)&&j(o,"left",20+(Hs()-40)/2*t[5]+"px");const l={};16&n&&(l.paginationHeight=t[4]),1&n&&(l.items=t[0]),2&n&&(l.hasMore=t[1]),18350208&n&&(l.$$scope={dirty:n,ctx:t}),a.$set(l)},i(t){u||(xt(e.$$.fragment,t),xt(a.$$.fragment,t),u=!0)},o(t){bt(e.$$.fragment,t),bt(a.$$.fragment,t),u=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(f,t),Tt(a)}}}function sf(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h;f(t,Ml,(t=>n(13,u=t))),f(t,_l,(t=>n(14,d=t))),f(t,bi,(t=>n(7,p=t))),f(t,te,(t=>n(15,m=t))),f(t,gi,(t=>n(16,h=t)));let g=[{index:0,type:"hot",text:"最热"},{index:1,type:"time",text:"最近"}];async function v(t,e){const l=await function(t,e,n,s){return Br({url:"/artist/songs",method:"get",params:{id:t,order:e,limit:n,offset:s}})}(r.id,e,20,t);200===l.code&&(n(0,s=s.concat(l.songs)),n(1,i=l.more))}async function $(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),t.al.picUrl=p,Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),u!==d.length-1&&Hr(d[u+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}ge((()=>{h||(n(0,s=[]),n(1,i=!0),n(6,l=0),n(5,c=0),n(3,a="hot"),n(2,r=Fs(m)),n(4,o=document.documentElement.clientHeight||document.body.clientHeight-120),v(0,a))})),Y((()=>{n(2,r=Fs(m)),n(4,o=document.documentElement.clientHeight||document.body.clientHeight-120),v(0,a)}));return n(0,s=[]),n(1,i=!0),n(6,l=0),n(4,o=0),n(2,r={}),n(5,c=0),n(3,a=g[0].type),[s,i,r,a,o,c,l,p,g,v,function(t){!function(t){Tl.set(!1),localStorage.setItem("isFMPlay","0");let e=d,n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);if(n.includes(s[t].id))Ml.set(n.indexOf(s[t].id)),$(d[u]);else{e.splice(u+1,0,s[t]),_l.set(e);let n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);localStorage.setItem("localPlayList",JSON.stringify(n)),Ml.set(u+1),$(d[u])}}(t.detail.index)},t=>{n(5,c=t.index),n(3,a=t.type),n(0,s=[]),n(1,i=!0),n(6,l=0),v(l,a)},()=>{i&&(n(6,l=s.length),v(l,a))}]}function lf(e){let n,s,i,l,o;return n=new si({props:{title:"关于"}}),{c(){_t(n.$$.fragment),s=H(),i=O("div"),l=O("div"),E(l,"id","markdown"),E(i,"class","about svelte-1l25dxc")},m(t,e){Lt(n,t,e),_(t,s,e),_(t,i,e),S(i,l),l.innerHTML='<h2 id="screencast">Screencast</h2>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen1.jpg?v=1.0.0" alt="screen1" width="100%" style="max-width:500px">\n<p>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen2.jpg?v=1.0.0" alt="screen2" width="100%" style="max-width:500px">\n<p>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen3.jpg?v=1.0.0" alt="screen3" width="100%" style="max-width:500px">\n<p>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen4.jpg?v=1.0.0" alt="Loscreen4go" width="100%" style="max-width:500px">\n<p>',o=!0},p:t,i(t){o||(xt(n.$$.fragment,t),o=!0)},o(t){bt(n.$$.fragment,t),o=!1},d(t){Tt(n,t),t&&L(s),t&&L(i)}}}function of(e){let n,s,i,l,o;return n=new si({props:{title:"版本记录"}}),{c(){_t(n.$$.fragment),s=H(),i=O("div"),l=O("div"),E(l,"id","markdown"),E(i,"class","about svelte-1l25dxc")},m(t,e){Lt(n,t,e),_(t,s,e),_(t,i,e),S(i,l),l.innerHTML='<h3 id="101">1.0.1</h3>\n<ol>\n<li><p>修复登录邮箱长度过短限制。</p>\n</li>\n<li><p>热评可开关。</p>\n</li>\n<li><p>对不符合要求的浏览器、PWA 环境等提示可选择【不再提醒】。</p>\n</li>\n</ol>\n<h3 id="100">1.0.0</h3>\n<ol>\n<li>第一版。</li>\n</ol>\n',o=!0},p:t,i(t){o||(xt(n.$$.fragment,t),o=!0)},o(t){bt(n.$$.fragment,t),o=!1},d(t){Tt(n,t),t&&L(s),t&&L(i)}}}const rf={"/playlist":class extends It{constructor(t){super(),Ot(this,t,uu,au,r,{})}},"/todayListDetail":class extends It{constructor(t){super(),Ot(this,t,Eu,Du,r,{})}},"/loveListDetail":class extends It{constructor(t){super(),Ot(this,t,Xu,qu,r,{})}},"/myAllPlayList":class extends It{constructor(t){super(),Ot(this,t,Zu,Yu,r,{})}},"/login":class extends It{constructor(t){super(),Ot(this,t,Hu,Ou,r,{},null,[-1,-1])}},"/setting":class extends It{constructor(t){super(),Ot(this,t,ed,td,r,{})}},"/search":class extends It{constructor(t){super(),Ot(this,t,wd,gd,r,{},null,[-1,-1])}},"/artist":class extends It{constructor(t){super(),Ot(this,t,Md,Cd,r,{})}},"/brSelect":class extends It{constructor(t){super(),Ot(this,t,Ld,_d,r,{})}},"/comments":class extends It{constructor(t){super(),Ot(this,t,Ed,Dd,r,{})}},"/allCollectSongers":class extends It{constructor(t){super(),Ot(this,t,Ud,jd,r,{})}},"/songerDesc":class extends It{constructor(t){super(),Ot(this,t,qd,Jd,r,{})}},"/moreSonger":class extends It{constructor(t){super(),Ot(this,t,Wd,Gd,r,{})}},"/moreList":class extends It{constructor(t){super(),Ot(this,t,Zd,Yd,r,{})}},"/moreSong":class extends It{constructor(t){super(),Ot(this,t,sf,nf,r,{})}},"/about":class extends It{constructor(t){super(),Ot(this,t,null,lf,r,{})}},"/version":class extends It{constructor(t){super(),Ot(this,t,null,of,r,{})}},"*":class extends It{constructor(t){super(),Ot(this,t,eu,tu,r,{})}}};function cf(t){let e,n;return e=new kc({props:{currentTimeLong:t[4]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};16&n&&(s.currentTimeLong=t[4]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function af(t){let e,n;return e=new Cc({}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function uf(t){let e,n,s,i,l,o,r,c,u,d,f,p;var m;i=new we({props:{routes:rf,restoreScroll:t[5],transitionFn:(m=300,Jt(m,[(t,e,n,{navigationType:s})=>Ft(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${t} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${s===Pt.GoBackward?"-":""}50%);\n\t\t\t\t}\n\t\t\t\t.${e} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${n} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),(t,e,n,{mountPointToLoad:s,mountPointToUnload:i})=>Ft(`\n\t\t\t\t.${n} {\n\t\t\t\t\tmin-height: ${Math.max(s.offsetHeight,(null==i?void 0:i.offsetHeight)||0)}px;\n\t\t\t\t\tmin-width: ${Math.max(s.offsetWidth,(null==i?void 0:i.offsetWidth)||0)}px;\n\t\t\t\t}\n\t\t\t`),(t,e,n,{navigationType:s})=>Ft(`\n\t\t\t\t.${t} {\n\t\t\t\t\ttransition: transform ${m}ms, opacity ${Math.floor(m/2)}ms linear ${Math.floor(m/2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${e} {\n\t\t\t\t\ttransition: transform ${m}ms, opacity ${Math.floor(m/2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${s===Pt.GoBackward?"":"-"}50%);\n\t\t\t\t}\n\t\t\t`)]))}}),i.$on("navigation-start",t[9]);let h=t[6]&&t[1]&&cf(t);r=new $c({props:{endTime:t[2],currentTime:t[3],currentTimeLong:t[4]}}),u=new Li({});let g=t[7]&&af();return{c(){e=O("audio"),s=H(),_t(i.$$.fragment),l=H(),h&&h.c(),o=H(),_t(r.$$.fragment),c=H(),_t(u.$$.fragment),d=H(),g&&g.c(),f=N(),a(e.src,n="")||E(e,"src","")},m(n,a){_(n,e,a),t[8](e),_(n,s,a),Lt(i,n,a),_(n,l,a),h&&h.m(n,a),_(n,o,a),Lt(r,n,a),_(n,c,a),Lt(u,n,a),_(n,d,a),g&&g.m(n,a),_(n,f,a),p=!0},p(t,[e]){const n={};32&e&&(n.restoreScroll=t[5]),i.$set(n),t[6]&&t[1]?h?(h.p(t,e),66&e&&xt(h,1)):(h=cf(t),h.c(),xt(h,1),h.m(o.parentNode,o)):h&&(wt(),bt(h,1,1,(()=>{h=null})),yt());const s={};4&e&&(s.endTime=t[2]),8&e&&(s.currentTime=t[3]),16&e&&(s.currentTimeLong=t[4]),r.$set(s),t[7]?g?128&e&&xt(g,1):(g=af(),g.c(),xt(g,1),g.m(f.parentNode,f)):g&&(wt(),bt(g,1,1,(()=>{g=null})),yt())},i(t){p||(xt(i.$$.fragment,t),xt(h),xt(r.$$.fragment,t),xt(u.$$.fragment,t),xt(g),p=!0)},o(t){bt(i.$$.fragment,t),bt(h),bt(r.$$.fragment,t),bt(u.$$.fragment,t),bt(g),p=!1},d(n){n&&L(e),t[8](null),n&&L(s),Tt(i,n),n&&L(l),h&&h.d(n),n&&L(o),Tt(r,n),n&&L(c),Tt(u,n),n&&L(d),g&&g.d(n),n&&L(f)}}}function df(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$;f(t,Ml,(t=>n(10,s=t))),f(t,_l,(t=>n(11,i=t))),f(t,Ol,(t=>n(12,l=t))),f(t,Tl,(t=>n(13,o=t))),f(t,Cl,(t=>n(14,r=t))),f(t,Nl,(t=>n(15,c=t))),f(t,Dl,(t=>n(16,a=t))),f(t,Il,(t=>n(17,u=t))),f(t,fo,(t=>n(18,d=t))),f(t,mi,(t=>n(19,p=t))),f(t,kl,(t=>n(20,m=t))),f(t,$i,(t=>n(5,h=t))),f(t,Sl,(t=>n(6,g=t))),f(t,pi,(t=>n(7,v=t)));let w=!1,y=0,x="0:00",b=0;async function z(t,e,n){const r=await Hr(t.id);200===r.code&&(r.data[0].url?(t.url=r.data[0].url.replace(/^http:/,"https:"),1===r.data[0].fee&&null!=r.data[0].freeTrialInfo?El.set("试听"):"flac"===r.data[0].type?El.set("FLAC"):El.set(r.data[0].br),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),o?(!async function(){const t=await Dr();200===t.code&&(t.data[0].al=t.data[0].album,t.data[0].ar=t.data[0].artists,t.data[0].alia=t.data[0].alias,Il.set(t.data[0]))}(),Ol.set(t),Cl.set(t),_l.set([l]),Ml.set(0),localStorage.setItem("currentSong",JSON.stringify(t))):"shuffle"===e?(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(n)):"once"===e?(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(n),s!==i.length-1&&Hr(i[s+1].id)):(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(s+1),s!==i.length-1&&Hr(i[s+1].id))):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}window.addEventListener("hashchange",(function(t){t.newURL.indexOf("#")<0||""===t.newURL.split("#")[1]||"/"===t.newURL.split("#")[1]?hi.set(!0):hi.set(!1),t.oldURL.indexOf("#")>0&&"/login"===t.oldURL.split("#")[1]&&location.reload()})),window.addEventListener("popstate",(function(t){m&&(kl.set(!1),Nl.set("cover"),Ll.set(window.screen.height+"px"))})),Y((()=>{if(p&&(async function(t){const e=await Mc({uid:t.account.id,limit:1e4,offset:0});if(200===e.code){let n=[];for(let t=0;t<e.playlist.length;t++)n.push(e.playlist[t].id);localStorage.setItem("usePlayListIds",JSON.stringify(n)),async function(t){const e=await(n=t.account.id,Br({url:"/likelist",method:"get",params:{uid:n,timestamp:(new Date).getTime()}}));var n;if(200===e.code){let t=[];for(let n=0;n<e.ids.length;n++)t.push(e.ids[n]);po.set(JSON.stringify(t)),localStorage.setItem("useLoveSongIds",JSON.stringify(t))}else alert("获取喜爱歌曲失败")}(t)}else As("获取收藏歌单失败")}(d),async function(){const t=await _c({limit:2e3});if(200===t.code){let e=[];for(let n=0;n<t.data.length;n++)e.push(t.data[n].id);localStorage.setItem("useLoveSongerIds",JSON.stringify(e))}else alert("获取喜爱歌手失败")}()),localStorage.getItem("localPlayList")){let t=JSON.parse(localStorage.getItem("localPlayList"));t.length>300&&(t=t.slice(0,300)),async function(t){const e=await Nr(t);if(200===e.code){let n=e.songs;t.split(",").includes(r.id.toString())?Ml.set(t.split(",").indexOf(r.id.toString())):(n.unshift(r),Ml.set(0)),_l.set(n);let s=[];for(let t=0;t<n.length;t++)s.push(n[t].id);localStorage.setItem("localPlayList",JSON.stringify(s))}}(t.join(","))}location.href.indexOf("#")<0||""===location.href.split("#")[1]||"/"===location.href.split("#")[1]?hi.set(!0):hi.set(!1),window.audioDOM=$,window.audioDOM.addEventListener("canplaythrough",(function(){n(1,w=!0),n(2,y="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime))})),window.audioDOM.addEventListener("timeupdate",(function(){Bl.set(window.audioDOM.currentTime),n(3,x=Gs(window.audioDOM.currentTime)),n(4,b=window.audioDOM.currentTime/window.audioDOM.duration*100),n(2,y="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime))})),window.audioDOM.addEventListener("ended",(function(){if(o)Nl.set("cover"),z(u,"fm");else if("repeatOnce"!=a&&s===i.length-1)Ps("已经是最后一首了",2e3);else if("shuffle"===a){let t=Math.floor(Math.random()*(i.length-1));"lyric"===c&&Nl.set("cover"),z(i[t],"shuffle",t)}else"repeatOnce"===a?("lyric"===c&&Nl.set("cover"),z(i[s],"once",s)):("lyric"===c&&Nl.set("cover"),z(i[s+1]))}),!1),((new Date).getTime()-Number(localStorage.getItem("pauseTimes")))/1e3/60>30?window.audioDOM.src=`https://music.163.com/song/media/outer/url?id=${r.id}.mp3`:window.audioDOM.src=r.url,window.audioDOM.load()}));return[$,w,y,x,b,h,g,v,function(t){st[t?"unshift":"push"]((()=>{$=t,n(0,$)}))},t=>{0===t.detail.navigationType?gi.set(!1):2===t.detail.navigationType?gi.set(!0):gi.set(!1)}]}const ff=document.documentElement,pf=ff.clientWidth;ff.style.fontSize=100*pf/750+"px",localStorage.setItem("fullWidth",pf);return new class extends It{constructor(t){super(),Ot(this,t,df,uf,r,{})}}({target:document.body,props:{name:"world"}})}();
+var app=function(){"use strict";function t(){}const e=t=>t;function n(t,e){for(const n in e)t[n]=e[n];return t}function s(t){return t()}function i(){return Object.create(null)}function l(t){t.forEach(s)}function o(t){return"function"==typeof t}function r(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}let c;function a(t,e){return c||(c=document.createElement("a")),c.href=e,t===c.href}function u(e,...n){if(null==e)return t;const s=e.subscribe(...n);return s.unsubscribe?()=>s.unsubscribe():s}function d(t){let e;return u(t,(t=>e=t))(),e}function f(t,e,n){t.$$.on_destroy.push(u(e,n))}function p(t,e,n,s){if(t){const i=m(t,e,n,s);return t[0](i)}}function m(t,e,s,i){return t[1]&&i?n(s.ctx.slice(),t[1](i(e))):s.ctx}function h(t,e,n,s){if(t[2]&&s){const i=t[2](s(n));if(void 0===e.dirty)return i;if("object"==typeof i){const t=[],n=Math.max(e.dirty.length,i.length);for(let s=0;s<n;s+=1)t[s]=e.dirty[s]|i[s];return t}return e.dirty|i}return e.dirty}function g(t,e,n,s,i,l){if(i){const o=m(e,n,s,l);t.p(o,i)}}function v(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let t=0;t<n;t++)e[t]=-1;return e}return-1}function $(t){const e={};for(const n in t)"$"!==n[0]&&(e[n]=t[n]);return e}function w(t,e){const n={};e=new Set(e);for(const s in t)e.has(s)||"$"===s[0]||(n[s]=t[s]);return n}const y="undefined"!=typeof window;let x=y?()=>window.performance.now():()=>Date.now(),b=y?t=>requestAnimationFrame(t):t;const z=new Set;function k(t){z.forEach((e=>{e.c(t)||(z.delete(e),e.f())})),0!==z.size&&b(k)}function S(t,e){t.appendChild(e)}function C(t){if(!t)return document;const e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function M(t){const e=O("style");return function(t,e){S(t.head||t,e)}(C(t),e),e}function _(t,e,n){t.insertBefore(e,n||null)}function L(t){t.parentNode.removeChild(t)}function T(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function O(t){return document.createElement(t)}function I(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function B(t){return document.createTextNode(t)}function H(){return B(" ")}function N(){return B("")}function D(t,e,n,s){return t.addEventListener(e,n,s),()=>t.removeEventListener(e,n,s)}function E(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function R(t,e){for(const n in e)E(t,n,e[n])}function P(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function A(t,e){t.value=null==e?"":e}function j(t,e,n,s){t.style.setProperty(e,n,s?"important":"")}function U(t,e,n){t.classList[n?"add":"remove"](e)}function V(t,e,n=!1){const s=document.createEvent("CustomEvent");return s.initCustomEvent(t,n,!1,e),s}class F{constructor(){this.e=this.n=null}c(t){this.h(t)}m(t,e,n=null){this.e||(this.e=O(e.nodeName),this.t=e,this.c(t)),this.i(n)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let e=0;e<this.n.length;e+=1)_(this.t,this.n[e],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(L)}}const J=new Set;let q,X=0;function G(t,e){const n=(t.style.animation||"").split(", "),s=n.filter(e?t=>t.indexOf(e)<0:t=>-1===t.indexOf("__svelte")),i=n.length-s.length;i&&(t.style.animation=s.join(", "),X-=i,X||b((()=>{X||(J.forEach((t=>{const e=t.__svelte_stylesheet;let n=e.cssRules.length;for(;n--;)e.deleteRule(n);t.__svelte_rules={}})),J.clear())})))}function W(t){q=t}function K(){if(!q)throw new Error("Function called outside component initialization");return q}function Y(t){K().$$.on_mount.push(t)}function Z(t){K().$$.after_update.push(t)}function Q(t){K().$$.on_destroy.push(t)}function tt(){const t=K();return(e,n)=>{const s=t.$$.callbacks[e];if(s){const i=V(e,n);s.slice().forEach((e=>{e.call(t,i)}))}}}function et(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach((t=>t.call(this,e)))}const nt=[],st=[],it=[],lt=[],ot=Promise.resolve();let rt=!1;function ct(){rt||(rt=!0,ot.then(pt))}function at(t){it.push(t)}function ut(t){lt.push(t)}let dt=!1;const ft=new Set;function pt(){if(!dt){dt=!0;do{for(let t=0;t<nt.length;t+=1){const e=nt[t];W(e),mt(e.$$)}for(W(null),nt.length=0;st.length;)st.pop()();for(let t=0;t<it.length;t+=1){const e=it[t];ft.has(e)||(ft.add(e),e())}it.length=0}while(nt.length);for(;lt.length;)lt.pop()();rt=!1,dt=!1,ft.clear()}}function mt(t){if(null!==t.fragment){t.update(),l(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(at)}}let ht;function gt(t,e,n){t.dispatchEvent(V(`${e?"intro":"outro"}${n}`))}const vt=new Set;let $t;function wt(){$t={r:0,c:[],p:$t}}function yt(){$t.r||l($t.c),$t=$t.p}function xt(t,e){t&&t.i&&(vt.delete(t),t.i(e))}function bt(t,e,n,s){if(t&&t.o){if(vt.has(t))return;vt.add(t),$t.c.push((()=>{vt.delete(t),s&&(n&&t.d(1),s())})),t.o(e)}}const zt={duration:0};function kt(n,s,i){let l,r,c=s(n,i),a=!1,u=0;function d(){l&&G(n,l)}function f(){const{delay:s=0,duration:i=300,easing:o=e,tick:f=t,css:p}=c||zt;p&&(l=function(t,e,n,s,i,l,o,r=0){const c=16.666/s;let a="{\n";for(let t=0;t<=1;t+=c){const s=e+(n-e)*l(t);a+=100*t+`%{${o(s,1-s)}}\n`}const u=a+`100% {${o(n,1-n)}}\n}`,d=`__svelte_${function(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}(u)}_${r}`,f=C(t);J.add(f);const p=f.__svelte_stylesheet||(f.__svelte_stylesheet=M(t).sheet),m=f.__svelte_rules||(f.__svelte_rules={});m[d]||(m[d]=!0,p.insertRule(`@keyframes ${d} ${u}`,p.cssRules.length));const h=t.style.animation||"";return t.style.animation=`${h?`${h}, `:""}${d} ${s}ms linear ${i}ms 1 both`,X+=1,d}(n,0,1,i,s,o,p,u++)),f(0,1);const m=x()+s,h=m+i;r&&r.abort(),a=!0,at((()=>gt(n,!0,"start"))),r=function(t){let e;return 0===z.size&&b(k),{promise:new Promise((n=>{z.add(e={c:t,f:n})})),abort(){z.delete(e)}}}((t=>{if(a){if(t>=h)return f(1,0),gt(n,!0,"end"),d(),a=!1;if(t>=m){const e=o((t-m)/i);f(e,1-e)}}return a}))}let p=!1;return{start(){p||(p=!0,G(n),o(c)?(c=c(),(ht||(ht=Promise.resolve(),ht.then((()=>{ht=null}))),ht).then(f)):f())},invalidate(){p=!1},end(){a&&(d(),a=!1)}}}const St="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function Ct(t,e){const n={},s={},i={$$scope:1};let l=t.length;for(;l--;){const o=t[l],r=e[l];if(r){for(const t in o)t in r||(s[t]=1);for(const t in r)i[t]||(n[t]=r[t],i[t]=1);t[l]=r}else for(const t in o)i[t]=1}for(const t in s)t in n||(n[t]=void 0);return n}function Mt(t,e,n){const s=t.$$.props[e];void 0!==s&&(t.$$.bound[s]=n,n(t.$$.ctx[s]))}function _t(t){t&&t.c()}function Lt(t,e,n,i){const{fragment:r,on_mount:c,on_destroy:a,after_update:u}=t.$$;r&&r.m(e,n),i||at((()=>{const e=c.map(s).filter(o);a?a.push(...e):l(e),t.$$.on_mount=[]})),u.forEach(at)}function Tt(t,e){const n=t.$$;null!==n.fragment&&(l(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Ot(e,n,s,o,r,c,a,u=[-1]){const d=q;W(e);const f=e.$$={fragment:null,ctx:null,props:c,update:t,not_equal:r,bound:i(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(d?d.$$.context:[])),callbacks:i(),dirty:u,skip_bound:!1,root:n.target||d.$$.root};a&&a(f.root);let p=!1;if(f.ctx=s?s(e,n.props||{},((t,n,...s)=>{const i=s.length?s[0]:n;return f.ctx&&r(f.ctx[t],f.ctx[t]=i)&&(!f.skip_bound&&f.bound[t]&&f.bound[t](i),p&&function(t,e){-1===t.$$.dirty[0]&&(nt.push(t),ct(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}(e,t)),n})):[],f.update(),p=!0,l(f.before_update),f.fragment=!!o&&o(f.ctx),n.target){if(n.hydrate){const t=function(t){return Array.from(t.childNodes)}(n.target);f.fragment&&f.fragment.l(t),t.forEach(L)}else f.fragment&&f.fragment.c();n.intro&&xt(e.$$.fragment),Lt(e,n.target,n.anchor,n.customElement),pt()}W(d)}class It{$destroy(){Tt(this,1),this.$destroy=t}$on(t,e){const n=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}function Bt(t,e){if(t instanceof RegExp)return{keys:!1,pattern:t};var n,s,i,l,o=[],r="",c=t.split("/");for(c[0]||c.shift();i=c.shift();)"*"===(n=i[0])?(o.push("wild"),r+="/(.*)"):":"===n?(s=i.indexOf("?",1),l=i.indexOf(".",1),o.push(i.substring(1,~s?s:~l?l:i.length)),r+=~s&&!~l?"(?:/([^/]+?))?":"/([^/]+?)",~l&&(r+=(~s?"?":"")+"\\"+i.substring(l))):r+="/"+i;return{keys:o,pattern:new RegExp("^"+r+(e?"(?=$|/)":"/?$"),"i")}}const Ht=[];function Nt(e,n=t){let s;const i=new Set;function l(t){if(r(e,t)&&(e=t,s)){const t=!Ht.length;for(const t of i)t[1](),Ht.push(t,e);if(t){for(let t=0;t<Ht.length;t+=2)Ht[t][0](Ht[t+1]);Ht.length=0}}}return{set:l,update:function(t){l(t(e))},subscribe:function(o,r=t){const c=[o,r];return i.add(c),1===i.size&&(s=n(l)||t),o(e),()=>{i.delete(c),0===i.size&&(s(),s=null)}}}}function Dt(e,n,s){const i=!Array.isArray(e),r=i?[e]:e,c=n.length<2;return a=e=>{let s=!1;const a=[];let d=0,f=t;const p=()=>{if(d)return;f();const s=n(i?a[0]:a,e);c?e(s):f=o(s)?s:t},m=r.map(((t,e)=>u(t,(t=>{a[e]=t,d&=~(1<<e),s&&p()}),(()=>{d|=1<<e}))));return s=!0,p(),function(){l(m),f()}},{subscribe:Nt(s,a).subscribe};var a}var Et,Rt,Pt,At;function jt(){return new Promise((t=>requestAnimationFrame((()=>t()))))}function Ut(t){return new Promise((e=>setTimeout((()=>e()),t)))}function Vt(t,e){t.dispatchEvent(new CustomEvent(e,{bubbles:!0,cancelable:!0}))}function Ft(t){const e=document.createElement("style");return e.innerHTML=t,e}function Jt(t,e){return async n=>{const s=(new Date).getTime(),i=`unload-${s}`,l=`load-${s}`,o=`router-${s}`,{mountPointToUnload:r,mountPointToLoad:c,scroll:a,routerMountPoint:u}=n;null==r||r.classList.add(i),c.classList.add(l),u.classList.add(o);const d=new Array(e.length);for(let t=0;t<e.length;t++){const s=e[t](l,i,o,n);d[t]=s,document.head.appendChild(s),await jt(),await jt(),await jt()}if(await Ut(t),window.scrollTo(a.x,a.y),"smooth"===window.getComputedStyle(document.documentElement).scrollBehavior){const t=5;for(let e=0;e<50&&!(Math.sqrt(Math.pow(window.scrollX-a.x,2)+Math.pow(window.scrollY-a.y,2))<t);e++)await Ut(10)}for(const t of d)document.head.removeChild(t);null==r||r.classList.remove(i),c.classList.remove(l),u.classList.remove(o)}}function qt(t){return Jt(t,[(t,e,n,{navigationType:s})=>Ft(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${t} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${s===Pt.GoBackward?"":"-"}150px);\n\t\t\t\t}\n\t\t\t\t.${e} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${n} {\n\t\t\t\t\tperspective: 1200px;\n\t\t\t\t\tperspective-origin: top center;\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),(t,e,n,{mountPointToLoad:s,mountPointToUnload:i})=>Ft(`\n\t\t\t\t.${n} {\n\t\t\t\t\tmin-height: ${Math.max(s.offsetHeight,(null==i?void 0:i.offsetHeight)||0)}px;\n\t\t\t\t\tmin-width: ${Math.max(s.offsetWidth,(null==i?void 0:i.offsetWidth)||0)}px;\n\t\t\t\t}\n\t\t\t`),(e,n,s,{navigationType:i})=>Ft(`\n\t\t\t\t.${e} {\n\t\t\t\t\ttransition: transform ${t}ms, opacity ${Math.floor(t/2)}ms linear ${Math.floor(t/2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${n} {\n\t\t\t\t\ttransition: transform ${t}ms, opacity ${Math.floor(t/2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${i===Pt.GoBackward?"-":""}150px);\n\t\t\t\t}\n\t\t\t`)])}!function(t){t[t.NoOp=0]="NoOp",t[t.New=1]="New",t[t.Resume=2]="Resume"}(Et||(Et={})),function(t){t[t.NoOp=0]="NoOp",t[t.Destroy=1]="Destroy",t[t.Pause=2]="Pause"}(Rt||(Rt={})),function(t){t[t.GoForwardNewState=0]="GoForwardNewState",t[t.GoForwardResumeState=1]="GoForwardResumeState",t[t.GoBackward=2]="GoBackward",t[t.Replace=3]="Replace"}(Pt||(Pt={})),function(t){t[t.Navigate=0]="Navigate",t[t.Mount=1]="Mount",t[t.Destroy=2]="Destroy",t[t.UpdateConfig=3]="UpdateConfig"}(At||(At={}));const Xt={defaultResumable:!0,useHash:!0,restoreScroll:!0,routes:{},mountPoint:null,transitionFn:({scroll:t})=>(window.scrollTo(t.x,t.y),Promise.resolve()),dispatch:null},Gt=Nt([]);function Wt(){if(Xt.useHash){const t=window.location.href.indexOf("#/");return t>-1?window.location.href.substring(t+1):"/"}return(window.location.pathname||"/")+window.location.search}Dt(Gt,(t=>t));let Kt=!1;const Yt=Nt(Wt(),(t=>{let e=null;const n=async()=>{if(Kt)return;const n=Wt();e!==n&&(e=n,t(n))};return window.addEventListener("popstate",n),function(){window.removeEventListener("popstate",n)}})),Zt=Dt(Yt,(t=>t));function Qt(t){const e=t.indexOf("?");return-1!==e?t.substring(0,e):t}Dt(Zt,Qt);const te=Dt(Zt,(function(t){const e=t.indexOf("?");return-1!==e?t.substring(e):""}));let ee;async function ne(t){const e=window.history.state;t();let n=100;for(;e===window.history.state&&n;)await Ut(2),n--;e===window.history.state&&console.warn("unable to detect history change")}const se=[];function ie(t){se.push(t),async function(){if(le)return;le=!0;for(;se.length>0;){const t=se.shift();switch(t.type){case At.Navigate:await pe(t.payload);break;case At.Mount:await ce(t.payload);break;case At.Destroy:await ae();break;case At.UpdateConfig:await re(t.payload)}}le=!1}()}let le=!1;let oe=t;function re(t){const e=Xt.useHash;if(Object.keys(t).forEach((e=>{void 0!==t[e]&&(Xt[e]=t[e])})),e!==Xt.useHash){const t=Wt();d(Yt)!==t&&Yt.set(t)}"scrollRestoration"in window.history&&(window.history.scrollRestoration=Xt.restoreScroll?"manual":"auto")}function ce(t){re(t),oe=Zt.subscribe((async t=>{let e=window.history.state;ie({type:At.Navigate,payload:{location:t,state:e}})}))}async function ae(){oe();const e=d(Gt);for(const t of e){if(t===fe){if(t.entryConfig.onBeforeUnload&&t.entryConfig.onBeforeUnload.length>0)for(const e of t.entryConfig.onBeforeUnload)await e(!0);if(t.entryConfig.resumable&&t.entryConfig.onPause&&t.entryConfig.onPause.length>0)for(const e of t.entryConfig.onPause)await e(!0);if(t.entryConfig.onAfterUnload&&t.entryConfig.onAfterUnload.length>0)for(const e of t.entryConfig.onAfterUnload)await e(!0)}t.componentInstance.$destroy()}fe=null,Gt.set([]),oe=t,Xt.mountPoint=null,Xt.dispatch=null}let ue=null;async function de(t,e){const n=Object.keys(Xt.routes).find((t=>{const{pattern:n}=Bt(t);return n.test(e)}));if(null==n)return{message:"no route found"};const s=function(t,e){const{pattern:n,keys:s}=Bt(e),i=n.exec(t)||[],l=s.reduce(((t,e,n)=>(t[s[n]]=void 0===i[n+1]?null:decodeURIComponent(i[n+1]),t)),{});return 0===Object.keys(l).length?void 0:l}(e,n),i="object"==typeof Xt.routes[n]?Xt.routes[n]:{},l=i.guards||i.guard&&[i.guard]||[];for(const t of l)try{if(!await t(s))return{message:"access forbidden by guard",params:s}}catch(t){return{message:"guard error",params:s,err:t}}const o=t.find((t=>t.routeMatch===n));let r;if(o)ue=o.entryConfig,r=o,o.pathname!==e&&(o.componentInstance.$set({params:s}),o.pathname=e);else{const t=document.createElement("div");let l;if(ue={resumable:Xt.defaultResumable},"object"!=typeof Xt.routes[n])l=Xt.routes[n];else if(i.component)l=i.component;else{if(!i.componentProvider)return{message:"unable to get a component constructor",err:new Error("unable to get a component constructor")};try{const t=await i.componentProvider();l=t.default||t,i.component=l}catch(t){return{message:"unable to get component from provider",err:t}}}r={component:l,componentInstance:new l({target:t,props:{params:s}}),mountPoint:t,pathname:e,routeMatch:n,entryConfig:ue}}return await(ct(),ot),ue=null,r}let fe=null;async function pe(t){var e,n,s,i;const l=d(Gt),o=!t.state;o&&(t.state={timestamp:(new Date).getTime()},await ne((()=>window.history.replaceState(t.state,"",(Xt.useHash?"#":"")+t.location))));const r=await de(l,Qt(t.location));if("message"in r){if("access forbidden by guard"===r.message)null===(e=Xt.dispatch)||void 0===e||e.call(Xt,"forbidden",{...r,location:t.location});else null===(n=Xt.dispatch)||void 0===n||n.call(Xt,"error",{...r,location:t.location});return}const c=r,a=fe,u=l.findIndex((t=>t.routeMatch===c.routeMatch));let f=Et.NoOp,p=Rt.NoOp,m=Pt.GoForwardNewState;a?(a.routeMatch!==c.routeMatch&&(f=-1!==u?Et.Resume:Et.New,p=a.entryConfig.resumable?Rt.Pause:Rt.Destroy),m=o?Pt.GoForwardNewState:t.state.timestamp>ee?Pt.GoForwardResumeState:t.state.timestamp<ee?Pt.GoBackward:Pt.Replace):f=Et.New,null===(s=Xt.dispatch)||void 0===s||s.call(Xt,"navigation-start",{location:t.location,navigationType:m,pageToLoad:c,pageToUnload:a,pageToLoadAction:f,pageToUnloadAction:p}),await Promise.all([async function(){if(a&&p!==Rt.NoOp&&a.entryConfig.onBeforeUnload&&a.entryConfig.onBeforeUnload.length>0)for(const t of a.entryConfig.onBeforeUnload)await t()}(),async function(){if(c&&f!==Et.NoOp&&c.entryConfig.onBeforeLoad&&c.entryConfig.onBeforeLoad.length>0)for(const t of c.entryConfig.onBeforeLoad)await t()}()]);const h=a?a.mountPoint:null,g=c.mountPoint;if(h!==g){async function e(){Xt.mountPoint&&(g.parentElement||Xt.mountPoint.appendChild(g),await Xt.transitionFn({navigationType:m,routerMountPoint:Xt.mountPoint,mountPointToLoad:g,mountPointToUnload:h,scroll:t.state.scroll||{x:0,y:0}}),h&&Xt.mountPoint.removeChild(h))}await Promise.all([e(),async function(){if(a&&p===Rt.Pause&&a.entryConfig.onPause&&a.entryConfig.onPause.length>0)for(const t of a.entryConfig.onPause)await t()}(),async function(){if(c&&f===Et.Resume){const{returnValue:e}=t.state||{};if(await ne((()=>{window.history.replaceState({timestamp:t.state.timestamp},"",(Xt.useHash?"#":"")+t.location)})),c.entryConfig.onResume&&c.entryConfig.onResume.length>0)for(const t of c.entryConfig.onResume)await t(e)}}()])}await Promise.all([async function(){if(c&&f!==Et.NoOp&&c.entryConfig.onAfterLoad&&c.entryConfig.onAfterLoad.length>0)for(const t of c.entryConfig.onAfterLoad)await t()}(),async function(){if(a&&p!==Rt.NoOp&&a.entryConfig.onAfterUnload&&a.entryConfig.onAfterUnload.length>0)for(const t of a.entryConfig.onAfterUnload)await t()}()]),f===Et.New&&l.push(c),a&&p===Rt.Destroy&&(a.componentInstance.$destroy(),l.splice(l.indexOf(a),1)),Gt.set(l),fe=c,ee=t.state.timestamp,null===(i=Xt.dispatch)||void 0===i||i.call(Xt,"navigation-end",{location:t.location,navigationType:m,pageToLoad:c,pageToUnload:a,pageToLoadAction:f,pageToUnloadAction:p})}async function me(t){t!==Wt()&&(Xt.restoreScroll&&await ne((()=>{window.history.replaceState({timestamp:window.history.state?window.history.state.timestamp:(new Date).getTime(),scroll:{x:window.scrollY,y:window.scrollY}},"",(Xt.useHash?"#":"")+Wt())})),await ne((()=>{window.history.pushState(void 0,"",(Xt.useHash?"#":"")+t)})),Vt(window,"popstate"))}async function he(t){Kt=!0,await ne((()=>window.history.back())),await ne((()=>{window.history.replaceState({...window.history.state||{},returnValue:t},"",(Xt.useHash?"#":"")+Wt())})),Kt=!1,Vt(window,"popstate")}function ge(t){if(!ue)throw new Error('lifecycle functions can only be called while initializing or before preparing a component to resume (i.e. with a reactive statement on "params")');ue.onResume||(ue.onResume=[]),ue.onResume.push(t)}function ve(e){let n;return{c(){n=O("div"),E(n,"class","stack-router-mount-point")},m(t,s){_(t,n,s),e[6](n)},p:t,i:t,o:t,d(t){t&&L(n),e[6](null)}}}function $e(t,e,n){let s,{defaultResumable:i=!0}=e,{useHash:l=!0}=e,{restoreScroll:o=!0}=e,{transitionFn:r=qt(300)}=e,{routes:c}=e,a=tt();return Y((()=>{var t;t={mountPoint:s,routes:c,defaultResumable:i,useHash:l,restoreScroll:o,transitionFn:r,dispatch:a},ie({type:At.Mount,payload:t})})),Q((()=>{ie({type:At.Destroy})})),t.$$set=t=>{"defaultResumable"in t&&n(1,i=t.defaultResumable),"useHash"in t&&n(2,l=t.useHash),"restoreScroll"in t&&n(3,o=t.restoreScroll),"transitionFn"in t&&n(4,r=t.transitionFn),"routes"in t&&n(5,c=t.routes)},t.$$.update=()=>{var e;62&t.$$.dirty&&(e={routes:c,defaultResumable:i,useHash:l,restoreScroll:o,transitionFn:r},ie({type:At.UpdateConfig,payload:e}))},[s,i,l,o,r,c,function(t){st[t?"unshift":"push"]((()=>{s=t,n(0,s)}))}]}class we extends It{constructor(t){super(),Ot(this,t,$e,ve,r,{defaultResumable:1,useHash:2,restoreScroll:3,transitionFn:4,routes:5})}}var ye="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xe(t,e){return t(e={exports:{}},e.exports),e.exports}function be(t){return t&&t.default||t}function ze(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zM6.023 15.416C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function ke(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}xe((function(t){!function(e){function n(){return navigator.standalone||window.matchMedia("(display-mode: standalone)").matches}t.exports&&"undefined"!=typeof window?t.exports=n():e.isStandalone=n()}(ye)}));class Se extends It{constructor(t){super(),Ot(this,t,ke,ze,r,{size:0,color:1,class:2})}}function Ce(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Me(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class _e extends It{constructor(t){super(),Ot(this,t,Me,Ce,r,{size:0,color:1,class:2})}}function Le(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M13.172 12l-4.95-4.95 1.414-1.414L16 12l-6.364 6.364-1.414-1.414z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Te(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Oe extends It{constructor(t){super(),Ot(this,t,Te,Le,r,{size:0,color:1,class:2})}}function Ie(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Be(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class He extends It{constructor(t){super(),Ot(this,t,Be,Ie,r,{size:0,color:1,class:2})}}function Ne(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm5.563-4.3l3.359-3.359a2.25 2.25 0 0 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 0 0-3.182 3.182l3.359 3.359z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function De(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ee extends It{constructor(t){super(),Ot(this,t,De,Ne,r,{size:0,color:1,class:2})}}function Re(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"fill-rule","nonzero"),E(l,"d","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zm8.018-3.685L8.659 11.34a2.25 2.25 0 0 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Pe(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ae extends It{constructor(t){super(),Ot(this,t,Pe,Re,r,{size:0,color:1,class:2})}}function je(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zM10.962 8.1l-.447-.688C8.728 8.187 7.5 9.755 7.5 11.505c0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01v-.092c.006-.422.092-1.633 1.454-2.466l.185-.107-.447-.688zm4.553-.688c-1.787.775-3.015 2.343-3.015 4.093 0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01 0-.313-.029-1.762 1.639-2.665z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ue(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ve extends It{constructor(t){super(),Ot(this,t,Ue,je,r,{size:0,color:1,class:2})}}function Fe(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-9.485 2.412l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093zm5 0l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Je(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class qe extends It{constructor(t){super(),Ot(this,t,Je,Fe,r,{size:0,color:1,class:2})}}function Xe(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ge(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class We extends It{constructor(t){super(),Ot(this,t,Ge,Xe,r,{size:0,color:1,class:2})}}function Ke(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.5-14.5L10 10l-2.5 6.5L14 14l2.5-6.5zM12 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ye(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ze extends It{constructor(t){super(),Ot(this,t,Ye,Ke,r,{size:0,color:1,class:2})}}function Qe(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function tn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class en extends It{constructor(t){super(),Ot(this,t,tn,Qe,r,{size:0,color:1,class:2})}}function nn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm2.172 10.23L12 18.654l2.617-2.623-9.645-9.645c-1.294 1.497-1.3 3.735.008 5.237zm15.263-6.866c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636-1.414-1.414 1.59-1.592c1.374-1.576 1.299-3.958-.193-5.453-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-.35-.314-.741-.555-1.155-.723l-2.25-2.25c1.668-.206 3.407.289 4.74 1.484 2.349-2.109 5.979-2.039 8.242.228z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function sn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ln extends It{constructor(t){super(),Ot(this,t,sn,nn,r,{size:0,color:1,class:2})}}function on(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236C5.515 3 8.093 2.56 10.261 3.44L6.343 7.358l1.414 1.415L12 4.53l-.013-.014.014.013c2.349-2.109 5.979-2.039 8.242.228z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function rn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class cn extends It{constructor(t){super(),Ot(this,t,rn,on,r,{size:0,color:1,class:2})}}function an(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zM5.172 6.172c-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454-1.487-1.49-3.881-1.562-5.453-.186l-4.202 4.203-1.415-1.414 2.825-2.827-.082-.069c-1.575-1.265-3.877-1.157-5.328.295z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function un(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class dn extends It{constructor(t){super(),Ot(this,t,un,an,r,{size:0,color:1,class:2})}}function fn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function pn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class mn extends It{constructor(t){super(),Ot(this,t,pn,fn,r,{size:0,color:1,class:2})}}function hn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.978-1.187-7.084-3.937-9.132-8.5h4.698l.934-1.556 3 5L13.566 13H17v-2h-4.566l-.934 1.556-3-5L6.434 11H2.21C2.074 10.363 2 9.696 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function gn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class vn extends It{constructor(t){super(),Ot(this,t,gn,hn,r,{size:0,color:1,class:2})}}function $n(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.977-1.186-7.083-3.937-9.131-8.499L1 13v-2h1.21C2.074 10.364 2 9.698 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm0 2c-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 .685.09 1.352.267 2h2.167L8.5 7.556l3 5L12.434 11H17v2h-3.434L11.5 16.444l-3-5L7.566 13H5.108c.79 1.374 1.985 2.668 3.537 3.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function wn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class yn extends It{constructor(t){super(),Ot(this,t,wn,$n,r,{size:0,color:1,class:2})}}function xn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function bn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class zn extends It{constructor(t){super(),Ot(this,t,bn,xn,r,{size:0,color:1,class:2})}}function kn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Sn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Cn extends It{constructor(t){super(),Ot(this,t,Sn,kn,r,{size:0,color:1,class:2})}}function Mn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M6 5h2v14H6V5zm10 0h2v14h-2V5z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function _n(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ln extends It{constructor(t){super(),Ot(this,t,_n,Mn,r,{size:0,color:1,class:2})}}function Tn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM10.622 8.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function On(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class In extends It{constructor(t){super(),Ot(this,t,On,Tn,r,{size:0,color:1,class:2})}}function Bn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M19.376 12.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Hn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Nn extends It{constructor(t){super(),Ot(this,t,Hn,Bn,r,{size:0,color:1,class:2})}}function Dn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function En(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Rn extends It{constructor(t){super(),Ot(this,t,En,Dn,r,{size:0,color:1,class:2})}}function Pn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83zM18 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function An(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class jn extends It{constructor(t){super(),Ot(this,t,An,Pn,r,{size:0,color:1,class:2})}}function Un(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"fill-rule","nonzero"),E(l,"d","M9 8.482v7.036L15.03 12 9 8.482zM7.752 5.44l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Vn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Fn extends It{constructor(t){super(),Ot(this,t,Vn,Un,r,{size:0,color:1,class:2})}}function Jn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-3a5 5 0 1 1 0-10 5 5 0 0 1 0 10z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function qn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Xn extends It{constructor(t){super(),Ot(this,t,qn,Jn,r,{size:0,color:1,class:2})}}function Gn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 10h3V6H4v4h11V8h2v2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm1 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Wn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Kn extends It{constructor(t){super(),Ot(this,t,Wn,Gn,r,{size:0,color:1,class:2})}}function Yn(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M17 10V8h-2v2H5V6h14v4h-2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm4 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Zn(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Qn extends It{constructor(t){super(),Ot(this,t,Zn,Yn,r,{size:0,color:1,class:2})}}function ts(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function es(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ns extends It{constructor(t){super(),Ot(this,t,es,ts,r,{size:0,color:1,class:2})}}function ss(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-17.932a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10V2.068zM11 8h2v8h-2v-6H9V9l2-1z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function is(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ls extends It{constructor(t){super(),Ot(this,t,is,ss,r,{size:0,color:1,class:2})}}function os(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function rs(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class cs extends It{constructor(t){super(),Ot(this,t,rs,os,r,{size:0,color:1,class:2})}}function as(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function us(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ds extends It{constructor(t){super(),Ot(this,t,us,as,r,{size:0,color:1,class:2})}}function fs(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function ps(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ms extends It{constructor(t){super(),Ot(this,t,ps,fs,r,{size:0,color:1,class:2})}}function hs(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function gs(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class vs extends It{constructor(t){super(),Ot(this,t,gs,hs,r,{size:0,color:1,class:2})}}function $s(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M7.788 17.444A.5.5 0 0 1 7 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function ws(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class ys extends It{constructor(t){super(),Ot(this,t,ws,$s,r,{size:0,color:1,class:2})}}function xs(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0H24V24H0z"),E(l,"d","M20 4v12h3l-4 5-4-5h3V4h2zm-8 14v2H3v-2h9zm2-7v2H3v-2h11zm0-7v2H3V4h11z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function bs(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class zs extends It{constructor(t){super(),Ot(this,t,bs,xs,r,{size:0,color:1,class:2})}}function ks(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Ss(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Cs extends It{constructor(t){super(),Ot(this,t,Ss,ks,r,{size:0,color:1,class:2})}}function Ms(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M2 9h3v12H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm5.293-1.293l6.4-6.4a.5.5 0 0 1 .654-.047l.853.64a1.5 1.5 0 0 1 .553 1.57L14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H8a1 1 0 0 1-1-1V8.414a1 1 0 0 1 .293-.707z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function _s(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Ls extends It{constructor(t){super(),Ot(this,t,_s,Ms,r,{size:0,color:1,class:2})}}function Ts(e){let s,i,l,o,r,c,a=[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},{width:e[0]},{height:e[0]},{fill:e[1]},{class:o="remixicon "+e[2]},e[3]],u={};for(let t=0;t<a.length;t+=1)u=n(u,a[t]);return{c(){s=I("svg"),i=I("path"),l=I("path"),E(i,"fill","none"),E(i,"d","M0 0h24v24H0z"),E(l,"d","M14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h3.482a1 1 0 0 0 .817-.423L11.752.85a.5.5 0 0 1 .632-.159l1.814.907a2.5 2.5 0 0 1 1.305 2.853L14.6 8zM7 10.588V19h11.16L21 12.104V10h-6.4a2 2 0 0 1-1.938-2.493l.903-3.548a.5.5 0 0 0-.261-.571l-.661-.33-4.71 6.672c-.25.354-.57.644-.933.858zM5 11H3v8h2v-8z"),R(s,u)},m(t,n){_(t,s,n),S(s,i),S(s,l),r||(c=D(s,"click",e[4]),r=!0)},p(t,[e]){R(s,u=Ct(a,[{xmlns:"http://www.w3.org/2000/svg"},{viewBox:"0 0 24 24"},1&e&&{width:t[0]},1&e&&{height:t[0]},2&e&&{fill:t[1]},4&e&&o!==(o="remixicon "+t[2])&&{class:o},8&e&&t[3]]))},i:t,o:t,d(t){t&&L(s),r=!1,c()}}}function Os(t,e,s){const i=["size","color","class"];let l=w(e,i),{size:o="1em"}=e,{color:r="currentColor"}=e,{class:c=""}=e;return t.$$set=t=>{e=n(n({},e),$(t)),s(3,l=w(e,i)),"size"in t&&s(0,o=t.size),"color"in t&&s(1,r=t.color),"class"in t&&s(2,c=t.class)},[o,r,c,l,function(e){et.call(this,t,e)}]}class Is extends It{constructor(t){super(),Ot(this,t,Os,Ts,r,{size:0,color:1,class:2})}}xe((function(t,e){var n;n=function(){function t(){for(var t=0,e={};t<arguments.length;t++){var n=arguments[t];for(var s in n)e[s]=n[s]}return e}function e(t){return t.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(s){function i(){}function l(e,n,l){if("undefined"!=typeof document){"number"==typeof(l=t({path:"/"},i.defaults,l)).expires&&(l.expires=new Date(1*new Date+864e5*l.expires)),l.expires=l.expires?l.expires.toUTCString():"";try{var o=JSON.stringify(n);/^[\{\[]/.test(o)&&(n=o)}catch(t){}n=s.write?s.write(n,e):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var r="";for(var c in l)l[c]&&(r+="; "+c,!0!==l[c]&&(r+="="+l[c].split(";")[0]));return document.cookie=e+"="+n+r}}function o(t,n){if("undefined"!=typeof document){for(var i={},l=document.cookie?document.cookie.split("; "):[],o=0;o<l.length;o++){var r=l[o].split("="),c=r.slice(1).join("=");n||'"'!==c.charAt(0)||(c=c.slice(1,-1));try{var a=e(r[0]);if(c=(s.read||s)(c,a)||e(c),n)try{c=JSON.parse(c)}catch(t){}if(i[a]=c,t===a)break}catch(t){}}return t?i[t]:i}}return i.set=l,i.get=function(t){return o(t,!1)},i.getJSON=function(t){return o(t,!0)},i.remove=function(e,n){l(e,"",t(n,{expires:-1}))},i.defaults={},i.withConverter=n,i}((function(){}))},t.exports=n()}));var Bs={"大笑":"86","可爱":"85","憨笑":"359","色":"95","亲亲":"363","惊恐":"96","流泪":"356","亲":"362","呆":"352","哀伤":"342","呲牙":"343","吐舌":"348","撇嘴":"353","怒":"361","奸笑":"341","汗":"97","痛苦":"346","惶恐":"354","生病":"350","口罩":"351","大哭":"357","晕":"355","发怒":"115","开心":"360","鬼脸":"94","皱眉":"87","流感":"358","爱心":"33","心碎":"34","钟情":"303","星星":"309","生气":"314","便便":"89","强":"13","弱":"372","拜":"14","牵手":"379","跳舞":"380","禁止":"374","这边":"262","爱意":"106","示爱":"376","嘴唇":"367","狗":"81","猫":"78","猪":"100","兔子":"459","小鸡":"450","公鸡":"461","幽灵":"116","圣诞":"411","外星":"101","钻石":"52","礼物":"107","男孩":"0","女孩":"1","蛋糕":"337",18:"186","圈":"312","叉":"313","多多大笑":"dx2","多多耍酷":"dx3","多多比耶":"dx4","多多大哭":"dx5","多多瞌睡":"dx6","多多难过":"dx7","多多笑哭":"dx8","多多可怜":"dx8","多多无语":"dx10","多多捂脸":"dx11","多多亲吻":"dx12","多多调皮":"dx13","西西心动":"dx14","西西发怒":"dx15","西西惊讶":"dx16","西西奸笑":"dx17","西西晕了":"dx18","西西机智":"dx19","西西惊吓":"dx20","西西流汗":"dx21","西西呕吐":"dx22","西西再见":"dx23","西西疑问":"dx24"};const Hs=()=>localStorage.getItem("fullWidth");function Ns(t,e="yyyy年MM月dd日"){const n=new Date(t),s=n.getFullYear(),i=n.getMonth()+1<10?"0"+(n.getMonth()+1):n.getMonth()+1,l=n.getDate()<10?"0"+n.getDate():n.getDate(),o=n.getHours()<10?"0"+n.getHours():n.getHours(),r=n.getMinutes()<10?"0"+n.getMinutes():n.getMinutes(),c=n.getSeconds()<10?"0"+n.getSeconds():n.getSeconds();switch(e){case"yyyy年MM月dd日":return`${s}年${i}月${l}日`;case"yyyyMMdd":return`${s}${i}${l}`;case"yyyy-MM-dd":return`${s}-${i}-${l}`;case"yyyy/MM/dd":return`${s}/${i}/${l}`;case"yyyy-MM-dd hh:mm:ss":return`${s}-${i}-${l} ${o}:${r}:${c}`;default:console.log("format参数不对")}}function Ds(t=[],e=!0){let n=[];if(e){for(let e=0;e<t.length;e++)n.push(t[e].name);return n.join("/")}for(let e=0;e<t.length;e++)n.push(t[e]);return n.join("/")}function Es(t,e=1){let n=parseInt(t).toString();if(n.length<5)return n;if(n.length>8){let s=n.substring(n.length-8,n.length-8+e);return parseFloat(parseInt(t/1e8)+"."+s)+"亿"}if(n.length>4){let s=n.substring(n.length-4,n.length-4+e);return parseFloat(parseInt(t/1e4)+"."+s)+"万"}}function Rs(t,e){window.requestAnimationFrame||(window.requestAnimationFrame=function(t,e){return setTimeout(t,17)});var n=t.scrollTop,s=function(){var i=e-n;n+=i/10,Math.abs(i)<1?t.scrollTo(0,e):(t.scrollTo(0,n),requestAnimationFrame(s))};s()}function Ps(t,e,n){if(e=isNaN(e)?1e3:e,"1"===localStorage.getItem("isShowToast"));else{localStorage.setItem("isShowToast","1");let s=document.createElement("div");s.innerHTML=t,s.style.cssText="max-width:80%;padding:10px;color: rgb(255, 255, 255);text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 14px;",document.body.appendChild(s),setTimeout((function(){s.style.transition="ttransform 0.5s ease-in, opacity 0.5s ease-in",s.style.opacity="0",setTimeout((function(){localStorage.setItem("isShowToast","0"),document.body.removeChild(s),"function"==typeof n&&n()}),500)}),e)}}function As(t,e="我知道了"){let n=document.createElement("div");n.onclick=function(){document.body.removeChild(n)};let s=`<div>${t}</div><div style='height:36px;width:60%;line-height:36px;color:#fff;margin:20px auto 0px;background:var(--primary-text-color);border-radius: 4px;'>${e}</div>`;n.innerHTML=s,n.style.cssText="width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)",document.body.appendChild(n)}function js(t,e=150){let n=[];if(t.length<=e)return n.push(t),n;{let s=0;for(;s<t.length;)n.push(t.slice(s,s+=e));return n}}function Us(t){const e=/\[[^\[\]]{1,4}\]/g;if(t.match(e)){let n=t.match(e);if(n.length>0){for(let t=0;t<n.length;t++)if(n[t].indexOf("][")>-1){let e=n[t].split("][");for(let t=0;t<e.length;t++)"["!==e[t].substr(0,1)&&(e[t]=`[${e[t]}`),"]"!==e[t].substr(e[t].length-1,1)&&(e[t]=`${e[t]}]`);n=e}for(let t=0;t<n.length;t++)n[t]=n[t].substr(1),n[t]=n[t].substring(0,n[t].length-1);const e=n;if(e.length>1){let n=t;for(let s=0;s<e.length;s++)n=Bs.hasOwnProperty(e[s])?n.replace(new RegExp(`\\[${e[s]}\\]`,"g"),`<img style="vertical-align:middle;height:18px;width:18px;" src="${Vs(Bs[e[s]])}"></img>`):t;return`<span>${n}</span>`}if(Bs.hasOwnProperty(e[0])){return`<span>${t.replace(new RegExp(`\\[${e[0]}\\]`,"g"),`<img style="vertical-align:middle;height:18px;width:18px;" src="${Vs(Bs[e[0]])}"></img>`)}</span>`}return`<span>${t}</span>`}return`<span>${t}</span>`}return`<span>${t}</span>`}function Vs(t){return"dx"===t.substring(0,2)?`/images/dd_and_xx/${t}.png`:`https://s1.music.126.net/style/web2/emt/emoji_${t}.png`}function Fs(t){let e=new Object,n="";if(-1!=t.indexOf("?")){n=t.substr(1).split("&");for(let t=0;t<n.length;t++)e[n[t].split("=")[0]]=decodeURIComponent(n[t].split("=")[1])}return e}function Js(t,e=!1){if(e)for(let e=0;e<t.childNodes.length;e++)t.childNodes[e].addEventListener("touchstart",qs),t.childNodes[e].addEventListener("touchend",Xs);else t.addEventListener("touchstart",qs),t.addEventListener("touchend",Xs)}function qs(t){const e=this,{x:n,y:s,centerX:i,centerY:l,size:o}=function(t,e){const{top:n,left:s}=t.getBoundingClientRect(),{clientWidth:i,clientHeight:l}=t,o=Math.sqrt(i**2+l**2)/2,r=2*o;return{x:e.changedTouches[0].clientX-s-o,y:e.changedTouches[0].clientY-n-o,centerX:(i-2*o)/2,centerY:(l-2*o)/2,size:r}}(e,t),r=document.createElement("div");r.classList.add("my-ripple"),r.style.opacity="0",r.style.transform=`translate(${n}px, ${s}px) scale3d(.3, .3, .3)`,r.style.width=`${o}px`,r.style.height=`${o}px`,r.dataset.createdAt=String(performance.now());const{position:c}=window.getComputedStyle(e);e.style.overflow="hidden","static"===c&&(this.style.position="relative"),e.appendChild(r),window.setTimeout((()=>{r.style.transform=`translate(${i}px, ${l}px) scale3d(1, 1, 1)`,r.style.opacity=".2"}))}function Xs(){const t=this.querySelectorAll(".my-ripple");if(!t.length)return;const e=t[t.length-1],n=300-performance.now()+Number(e.dataset.createdAt);setTimeout((()=>{e.style.opacity="0",setTimeout((()=>e.parentNode?.removeChild(e)),300)}),n)}function Gs(t){var e,n,s,i="00:00";return t>0&&((e=Math.floor(t/3600))<10&&(e="0"+e),(n=Math.floor((t-3600*e)/60))<10&&(n="0"+n),(s=Math.floor((t-3600*e-60*n)%60))<10&&(s="0"+s),i="00"==e||"00"==n?n+":"+s:s),i}function Ws(t){let e,n,s,i;const l=t[4].default,o=p(l,t,t[3],null);return{c(){e=O("button"),o&&o.c(),E(e,"class","botton svelte-1svp9rd"),U(e,"default","default"===t[0]),U(e,"primary","primary"===t[0])},m(l,r){_(l,e,r),o&&o.m(e,null),t[5](e),n=!0,s||(i=D(e,"click",t[2]),s=!0)},p(t,[s]){o&&o.p&&(!n||8&s)&&g(o,l,t,t[3],n?h(l,t[3],s,null):v(t[3]),null),1&s&&U(e,"default","default"===t[0]),1&s&&U(e,"primary","primary"===t[0])},i(t){n||(xt(o,t),n=!0)},o(t){bt(o,t),n=!1},d(n){n&&L(e),o&&o.d(n),t[5](null),s=!1,i()}}}function Ks(t,e,n){let{$$slots:s={},$$scope:i}=e,{type:l="default"}=e;const o=tt();let r;return Y((()=>{r&&Js(r)})),t.$$set=t=>{"type"in t&&n(0,l=t.type),"$$scope"in t&&n(3,i=t.$$scope)},[l,r,function(){o("BtnClick")},i,s,function(t){st[t?"unshift":"push"]((()=>{r=t,n(1,r)}))}]}class Ys extends It{constructor(t){super(),Ot(this,t,Ks,Ws,r,{type:0})}}function Zs(t,e,n){const s=t.slice();return s[17]=e[n],s}function Qs(t){let e,n,s=t[6],i=[];for(let e=0;e<s.length;e+=1)i[e]=ti(Zs(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){for(let t=0;t<i.length;t+=1)i[t].c();e=N()},m(t,s){for(let e=0;e<i.length;e+=1)i[e].m(t,s);_(t,e,s),n=!0},p(t,n){if(2240&n){let o;for(s=t[6],o=0;o<s.length;o+=1){const l=Zs(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=ti(l),i[o].c(),xt(i[o],1),i[o].m(e.parentNode,e))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){T(i,t),t&&L(e)}}}function ti(t){let e,n,s,i,l,o,r;var c=t[17].icon;function a(){return t[14](t[17])}return c&&(s=new c({props:{size:"22",style:"vertical-align: middle"}})),{c(){e=O("div"),n=O("span"),s&&_t(s.$$.fragment),i=H(),E(n,"class","svelte-zr2dre"),U(n,"rotate-icon","RefreshLine"===t[17].id&&t[7]),E(e,"class","right-item svelte-zr2dre")},m(t,c){_(t,e,c),S(e,n),s&&Lt(s,n,null),S(e,i),l=!0,o||(r=D(e,"click",a),o=!0)},p(e,i){if(c!==(c=(t=e)[17].icon)){if(s){wt();const t=s;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}c?(s=new c({props:{size:"22",style:"vertical-align: middle"}}),_t(s.$$.fragment),xt(s.$$.fragment,1),Lt(s,n,null)):s=null}192&i&&U(n,"rotate-icon","RefreshLine"===t[17].id&&t[7])},i(t){l||(s&&xt(s.$$.fragment,t),l=!0)},o(t){s&&bt(s.$$.fragment,t),l=!1},d(t){t&&L(e),s&&Tt(s),o=!1,r()}}}function ei(t){let e,n,s,i,l,o,r,c,a,u,d;s=new _e({props:{size:"22",style:"vertical-align: middle"}});let f=t[6].length>0&&Qs(t);return{c(){e=O("div"),n=O("div"),_t(s.$$.fragment),i=H(),l=O("div"),o=B(t[0]),r=H(),c=O("div"),f&&f.c(),E(n,"class","left svelte-zr2dre"),j(n,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),U(n,"transparent",t[2]),E(l,"class","center svelte-zr2dre"),j(l,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),U(l,"dark",t[5]),E(c,"class","right svelte-zr2dre"),E(e,"class","nav secondary svelte-zr2dre"),j(e,"background-color","rgba(255, 255, 255, "+(t[2]?t[4]:1)+")"),U(e,"transparent",t[2]),U(e,"fixed",!!t[2]||t[3])},m(p,m){_(p,e,m),S(e,n),Lt(s,n,null),t[12](n),S(e,i),S(e,l),S(l,o),S(e,r),S(e,c),f&&f.m(c,null),t[15](c),a=!0,u||(d=D(n,"click",t[13]),u=!0)},p(t,[s]){(!a||20&s)&&j(n,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),4&s&&U(n,"transparent",t[2]),(!a||1&s)&&P(o,t[0]),(!a||20&s)&&j(l,"color","rgba("+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", "+(t[2]?255*(1-t[4]):0)+", 1)"),32&s&&U(l,"dark",t[5]),t[6].length>0?f?(f.p(t,s),64&s&&xt(f,1)):(f=Qs(t),f.c(),xt(f,1),f.m(c,null)):f&&(wt(),bt(f,1,1,(()=>{f=null})),yt()),(!a||20&s)&&j(e,"background-color","rgba(255, 255, 255, "+(t[2]?t[4]:1)+")"),4&s&&U(e,"transparent",t[2]),12&s&&U(e,"fixed",!!t[2]||t[3])},i(t){a||(xt(s.$$.fragment,t),xt(f),a=!0)},o(t){bt(s.$$.fragment,t),bt(f),a=!1},d(n){n&&L(e),Tt(s),t[12](null),f&&f.d(),t[15](null),u=!1,d()}}}function ni(t,e,n){let s,i,{title:l="Title"}=e,{leftEvent:o=!1}=e,{transparent:r=!1}=e,{fixed:c=!0}=e,{alphaNumber:a=1}=e,{dark:u=!1}=e,{rightIcons:d=[]}=e,{isRefresh:f=!1}=e;Y((()=>(s&&Js(s),i&&Js(i),()=>{n(9,i=null)}))),Z((()=>{i&&Js(i,!0)}));const p=tt();function m(){p("setLeftClick")}function h(t){p("setRightIconClick",{id:t})}return t.$$set=t=>{"title"in t&&n(0,l=t.title),"leftEvent"in t&&n(1,o=t.leftEvent),"transparent"in t&&n(2,r=t.transparent),"fixed"in t&&n(3,c=t.fixed),"alphaNumber"in t&&n(4,a=t.alphaNumber),"dark"in t&&n(5,u=t.dark),"rightIcons"in t&&n(6,d=t.rightIcons),"isRefresh"in t&&n(7,f=t.isRefresh)},[l,o,r,c,a,u,d,f,s,i,m,h,function(t){st[t?"unshift":"push"]((()=>{s=t,n(8,s)}))},()=>{o?m():he()},t=>h(t.id),function(t){st[t?"unshift":"push"]((()=>{i=t,n(9,i)}))}]}class si extends It{constructor(t){super(),Ot(this,t,ni,ei,r,{title:0,leftEvent:1,transparent:2,fixed:3,alphaNumber:4,dark:5,rightIcons:6,isRefresh:7})}}function ii(e){let n;return{c(){n=O("div"),E(n,"class","diveder svelte-zquzag")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}class li extends It{constructor(t){super(),Ot(this,t,null,ii,r,{})}}function oi(t){let e,n,s,i;return{c(){e=O("span"),n=B(t[5]),E(e,"class","right-btn svelte-17e6v9z")},m(l,o){_(l,e,o),S(e,n),s||(i=D(e,"click",t[9]),s=!0)},p(t,e){32&e&&P(n,t[5])},d(t){t&&L(e),s=!1,i()}}}function ri(e){let n,s,i,o,r,c,a,u,d,f=e[4]&&oi(e);return{c(){n=O("div"),s=O("div"),i=B(e[1]),o=H(),r=O("input"),a=H(),f&&f.c(),E(s,"class","label svelte-17e6v9z"),E(r,"maxlength",e[2]),E(r,"placeholder",c=e[3]?e[3]:e[7]),j(r,"width",e[4]?"75%":"100%"),E(r,"class","svelte-17e6v9z"),E(n,"class","box svelte-17e6v9z")},m(t,l){_(t,n,l),S(n,s),S(s,i),S(n,o),S(n,r),A(r,e[0]),e[12](r),S(n,a),f&&f.m(n,null),u||(d=[D(r,"input",e[11]),D(r,"input",e[8])],u=!0)},p(t,[e]){2&e&&P(i,t[1]),4&e&&E(r,"maxlength",t[2]),136&e&&c!==(c=t[3]?t[3]:t[7])&&E(r,"placeholder",c),16&e&&j(r,"width",t[4]?"75%":"100%"),1&e&&r.value!==t[0]&&A(r,t[0]),t[4]?f?f.p(t,e):(f=oi(t),f.c(),f.m(n,null)):f&&(f.d(1),f=null)},i:t,o:t,d(t){t&&L(n),e[12](null),f&&f.d(),u=!1,l(d)}}}function ci(t,e,n){let s,i,{label:l="label"}=e,{type:o="text"}=e,{maxlength:r=15}=e,{placeholder:c=null}=e,{value:a=""}=e,{rightBtn:u=!1}=e,{btnText:d="获取验证码"}=e;const f=tt();return Y((()=>{setTimeout((function(){i.scrollIntoView(!0),i.scrollIntoViewIfNeeded()}),300),n(6,i.type=o,i)})),t.$$set=t=>{"label"in t&&n(1,l=t.label),"type"in t&&n(10,o=t.type),"maxlength"in t&&n(2,r=t.maxlength),"placeholder"in t&&n(3,c=t.placeholder),"value"in t&&n(0,a=t.value),"rightBtn"in t&&n(4,u=t.rightBtn),"btnText"in t&&n(5,d=t.btnText)},t.$$.update=()=>{2&t.$$.dirty&&n(7,s="请输入"+l)},[a,l,r,c,u,d,i,s,function(){f("setInput",{value:a})},function(){f("setBtn")},o,function(){a=this.value,n(0,a)},function(t){st[t?"unshift":"push"]((()=>{i=t,n(6,i)}))}]}class ai extends It{constructor(t){super(),Ot(this,t,ci,ri,r,{label:1,type:10,maxlength:2,placeholder:3,value:0,rightBtn:4,btnText:5})}}function ui(e){let n,s,i,o,r,c,a;return{c(){n=O("div"),s=O("div"),i=O("div"),o=H(),r=O("div"),E(i,"class","ball svelte-ckiir6"),j(i,"left","calc("+e[1]/e[0]*100+"% - 7px)"),E(r,"class","fill svelte-ckiir6"),j(r,"transform","scaleX("+e[1]/e[0]+")"),E(s,"class","rail svelte-ckiir6"),E(n,"class","slider svelte-ckiir6")},m(t,l){_(t,n,l),S(n,s),S(s,i),S(s,o),S(s,r),e[11](n),c||(a=[D(n,"click",e[3]),D(n,"touchstart",e[4]),D(n,"touchmove",e[6]),D(n,"touchend",e[5])],c=!0)},p(t,[e]){3&e&&j(i,"left","calc("+t[1]/t[0]*100+"% - 7px)"),3&e&&j(r,"transform","scaleX("+t[1]/t[0]+")")},i:t,o:t,d(t){t&&L(n),e[11](null),c=!1,l(a)}}}function di(t,e,n){let s,{min:i=0}=e,{max:l=100}=e,{step:o=1}=e,{current:r=0}=e,{timeCurrent:c=0}=e,a=0,u=0,d=20;const f=tt();function p(){f("setCurrent",{current:r})}function m(){f("setTimeCurrent",{timeCurrent:c})}return Y((()=>{u=s.clientWidth/(l/o)})),Z((()=>{n(1,a=r)})),t.$$set=t=>{"min"in t&&n(9,i=t.min),"max"in t&&n(0,l=t.max),"step"in t&&n(10,o=t.step),"current"in t&&n(7,r=t.current),"timeCurrent"in t&&n(8,c=t.timeCurrent)},[l,a,s,function(t){const e=t.clientX-s.getBoundingClientRect().left,i=Math.round(e/u)*o;n(7,r=n(1,a=i)),p()},function(t){d=t.changedTouches[0].clientX},function(t){d=t.changedTouches[0].clientX,n(7,r=n(8,c=n(1,a=d<=20?i:d>=355?l:(d-20)/335*100))),p(),m()},function(t){d=t.changedTouches[0].clientX,n(8,c=n(1,a=d<=20?i:d>=355?l:(d-20)/335*100)),m()},r,c,i,o,function(t){st[t?"unshift":"push"]((()=>{s=t,n(2,s)}))}]}class fi extends It{constructor(t){super(),Ot(this,t,di,ui,r,{min:9,max:0,step:10,current:7,timeCurrent:8})}}const pi=Nt(!1),mi=Nt(!!JSON.parse(localStorage.getItem("isLogin"))),hi=Nt(!0),gi=Nt(!1),vi=Nt("1"),$i=Nt("0"!==localStorage.getItem("restoreScroll")),wi=Nt(localStorage.getItem("musicQuality")?localStorage.getItem("musicQuality"):"0"),yi=Nt("0"!==localStorage.getItem("isShowTranslate")),xi=Nt(0),bi=Nt(""),zi=Nt("0"===localStorage.getItem("isShowComment")?"0":"1"),ki="/images/defaultCover.png";function Si(t,e,n){const s=t.slice();return s[6]=e[n],s[7]=e,s[8]=n,s}function Ci(t){let e,n,s,i,l,o,r,c,a,u,d=t[6].text+"",f=t[8];var p=t[6].icon;function m(){return t[4](t[8])}p&&(s=new p({props:{size:"24px"}}));const h=()=>t[5](e,f),g=()=>t[5](null,f);return{c(){e=O("div"),n=O("div"),s&&_t(s.$$.fragment),i=H(),l=O("div"),o=B(d),r=H(),E(l,"class","nav-text svelte-1v0ei6g"),E(e,"class","nav-item svelte-1v0ei6g"),U(e,"active",t[2]===t[8])},m(t,d){_(t,e,d),S(e,n),s&&Lt(s,n,null),S(e,i),S(e,l),S(l,o),S(e,r),h(),c=!0,a||(u=D(e,"click",m),a=!0)},p(i,l){if(p!==(p=(t=i)[6].icon)){if(s){wt();const t=s;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}p?(s=new p({props:{size:"24px"}}),_t(s.$$.fragment),xt(s.$$.fragment,1),Lt(s,n,null)):s=null}f!==t[8]&&(g(),f=t[8],h()),4&l&&U(e,"active",t[2]===t[8])},i(t){c||(s&&xt(s.$$.fragment,t),c=!0)},o(t){s&&bt(s.$$.fragment,t),c=!1},d(t){t&&L(e),s&&Tt(s),g(),a=!1,u()}}}function Mi(t){let e,n,s=t[3],i=[];for(let e=0;e<s.length;e+=1)i[e]=Ci(Si(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","secondary nav svelte-1v0ei6g"),j(e,"bottom",t[1]?"0px":"calc(-55px - env(safe-area-inset-bottom))")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,[o]){if(13&o){let n;for(s=t[3],n=0;n<s.length;n+=1){const l=Si(t,s,n);i[n]?(i[n].p(l,o),xt(i[n],1)):(i[n]=Ci(l),i[n].c(),xt(i[n],1),i[n].m(e,null))}for(wt(),n=s.length;n<i.length;n+=1)l(n);yt()}(!n||2&o)&&j(e,"bottom",t[1]?"0px":"calc(-55px - env(safe-area-inset-bottom))")},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function _i(t,e,n){let s,i;f(t,hi,(t=>n(1,s=t))),f(t,vi,(t=>n(2,i=t)));const l=[{icon:Ls,text:"推荐",path:"/love"},{icon:Ze,text:"发现",path:"/discover"},{icon:Se,text:"我的",path:"/mine"}];let o=[];Y((()=>{if(o.length>0)for(let t=0;t<o.length;t++)Js(o[t])}));return[o,s,i,l,t=>{vi.set(t)},function(t,e){st[t?"unshift":"push"]((()=>{o[e]=t,n(0,o)}))}]}class Li extends It{constructor(t){super(),Ot(this,t,_i,Mi,r,{})}}function Ti(e){let n,s,i,l;return{c(){n=O("div"),s=O("div"),E(s,"class","ball svelte-5vgcov"),j(s,"left",e[0]?"25px":"1px"),E(n,"class","box svelte-5vgcov"),j(n,"background-color",e[0]?"var(--primary-text-color)":"rgb(177, 177, 177)")},m(t,o){_(t,n,o),S(n,s),i||(l=D(n,"click",e[1]),i=!0)},p(t,[e]){1&e&&j(s,"left",t[0]?"25px":"1px"),1&e&&j(n,"background-color",t[0]?"var(--primary-text-color)":"rgb(177, 177, 177)")},i:t,o:t,d(t){t&&L(n),i=!1,l()}}}function Oi(t,e,n){let{check:s=!1}=e;const i=tt();return t.$$set=t=>{"check"in t&&n(0,s=t.check)},[s,function(){i("switchClick",{check:!s})}]}class Ii extends It{constructor(t){super(),Ot(this,t,Oi,Ti,r,{check:0})}}function Bi(t){let e,n;return{c(){e=O("div"),n=B(t[2]),E(e,"class","title-des svelte-lgfbu")},m(t,s){_(t,e,s),S(e,n)},p(t,e){4&e&&P(n,t[2])},d(t){t&&L(e)}}}function Hi(e){let n;return{c(){n=B(e[4])},m(t,e){_(t,n,e)},p(t,e){16&e&&P(n,t[4])},i:t,o:t,d(t){t&&L(n)}}}function Ni(t){let e,n,s;return n=new Ii({props:{check:t[0]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","switch svelte-lgfbu"),j(e,"margin-top",""===t[2]?"2px":"8.5px")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,i){const l={};1&i&&(l.check=t[0]),n.$set(l),(!s||4&i)&&j(e,"margin-top",""===t[2]?"2px":"8.5px")},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Di(t){let e,n,s,i;return s=new Oe({props:{size:"20",style:"vertical-align: middle;"}}),{c(){e=O("div"),n=O("span"),_t(s.$$.fragment),j(n,"position","relative"),j(n,"top","-1px"),E(e,"class","arrow svelte-lgfbu"),j(e,"line-height",""===t[2]?"26px":"39px")},m(t,l){_(t,e,l),S(e,n),Lt(s,n,null),i=!0},p(t,n){(!i||4&n)&&j(e,"line-height",""===t[2]?"26px":"39px")},i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(s)}}}function Ei(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h=""!=t[2]&&Bi(t);const g=[Ni,Hi],v=[];function $(t,e){return"Switch"===t[4]?0:1}a=$(t),u=v[a]=g[a](t);let w=t[3]&&Di(t);return{c(){e=O("div"),n=O("div"),s=O("div"),i=B(t[1]),l=H(),h&&h.c(),o=H(),r=O("div"),c=O("div"),u.c(),d=H(),w&&w.c(),E(s,"class","title-main svelte-lgfbu"),E(n,"class","title svelte-lgfbu"),E(c,"class","desc-title svelte-lgfbu"),E(r,"class","desc svelte-lgfbu"),E(e,"class","cell svelte-lgfbu")},m(u,g){_(u,e,g),S(e,n),S(n,s),S(s,i),S(n,l),h&&h.m(n,null),S(e,o),S(e,r),S(r,c),v[a].m(c,null),S(e,d),w&&w.m(e,null),t[7](e),f=!0,p||(m=D(e,"click",t[6]),p=!0)},p(t,[s]){(!f||2&s)&&P(i,t[1]),""!=t[2]?h?h.p(t,s):(h=Bi(t),h.c(),h.m(n,null)):h&&(h.d(1),h=null);let l=a;a=$(t),a===l?v[a].p(t,s):(wt(),bt(v[l],1,1,(()=>{v[l]=null})),yt(),u=v[a],u?u.p(t,s):(u=v[a]=g[a](t),u.c()),xt(u,1),u.m(c,null)),t[3]?w?(w.p(t,s),8&s&&xt(w,1)):(w=Di(t),w.c(),xt(w,1),w.m(e,null)):w&&(wt(),bt(w,1,1,(()=>{w=null})),yt())},i(t){f||(xt(u),xt(w),f=!0)},o(t){bt(u),bt(w),f=!1},d(n){n&&L(e),h&&h.d(),v[a].d(),w&&w.d(),t[7](null),p=!1,m()}}}function Ri(t,e,n){let s,{title:i="标题"}=e,{titleDesc:l=""}=e,{arrow:o=!1}=e,{desc:r=""}=e,{cellCheck:c=!1}=e;const a=tt();return Y((()=>{s&&Js(s)})),t.$$set=t=>{"title"in t&&n(1,i=t.title),"titleDesc"in t&&n(2,l=t.titleDesc),"arrow"in t&&n(3,o=t.arrow),"desc"in t&&n(4,r=t.desc),"cellCheck"in t&&n(0,c=t.cellCheck)},[c,i,l,o,r,s,function(){"Switch"===r?(n(0,c=!c),a("cellClick",{cellCheck:c})):a("cellClick")},function(t){st[t?"unshift":"push"]((()=>{s=t,n(5,s)}))}]}class Pi extends It{constructor(t){super(),Ot(this,t,Ri,Ei,r,{title:1,titleDesc:2,arrow:3,desc:4,cellCheck:0})}}function Ai(t,e,n){const s=t.slice();return s[5]=e[n],s[7]=n,s}function ji(t){let e,n;return e=new We({props:{size:"20",color:"rgb(214, 214, 214)",style:"vertical-align: middle;"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ui(t){let e,n;return e=new Xn({props:{size:"20",color:"var(--primary-text-color)",style:"vertical-align: middle;"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Vi(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h=t[5].text+"",g=t[5].desc+"";const v=[Ui,ji],$=[];function w(t,e){return t[0]===t[7]?0:1}function y(){return t[3](t[7])}return s=w(t),i=$[s]=v[s](t),{c(){e=O("div"),n=O("div"),i.c(),l=H(),o=O("div"),r=B(h),c=H(),a=O("div"),u=B(g),d=H(),E(n,"class","left svelte-9r3wbp"),E(a,"class","desc svelte-9r3wbp"),E(o,"class","text svelte-9r3wbp"),E(e,"class","item svelte-9r3wbp")},m(t,i){_(t,e,i),S(e,n),$[s].m(n,null),S(e,l),S(e,o),S(o,r),S(o,c),S(o,a),S(a,u),S(e,d),f=!0,p||(m=D(e,"click",y),p=!0)},p(e,l){let o=s;s=w(t=e),s!==o&&(wt(),bt($[o],1,1,(()=>{$[o]=null})),yt(),i=$[s],i||(i=$[s]=v[s](t),i.c()),xt(i,1),i.m(n,null)),(!f||2&l)&&h!==(h=t[5].text+"")&&P(r,h),(!f||2&l)&&g!==(g=t[5].desc+"")&&P(u,g)},i(t){f||(xt(i),f=!0)},o(t){bt(i),f=!1},d(t){t&&L(e),$[s].d(),p=!1,m()}}}function Fi(t){let e,n,s=t[1],i=[];for(let e=0;e<s.length;e+=1)i[e]=Vi(Ai(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","box svelte-9r3wbp")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,[n]){if(7&n){let o;for(s=t[1],o=0;o<s.length;o+=1){const l=Ai(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=Vi(l),i[o].c(),xt(i[o],1),i[o].m(e,null))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function Ji(t,e,n){let{radioData:s=[]}=e,{active:i=0}=e;const l=tt();function o(t){n(0,i=t),l("RadioClick",{active:i})}return t.$$set=t=>{"radioData"in t&&n(1,s=t.radioData),"active"in t&&n(0,i=t.active)},[i,s,o,t=>o(t)]}class qi extends It{constructor(t){super(),Ot(this,t,Ji,Fi,r,{radioData:1,active:0})}}function Xi(t,e,n){const s=t.slice();return s[1]=e[n],s}function Gi(t){let e,n,s=t[1]+"";return{c(){e=O("div"),n=B(s),E(e,"class","tip svelte-1515ufj")},m(t,s){_(t,e,s),S(e,n)},p(t,e){1&e&&s!==(s=t[1]+"")&&P(n,s)},d(t){t&&L(e)}}}function Wi(e){let n,s=e[0],i=[];for(let t=0;t<s.length;t+=1)i[t]=Gi(Xi(e,s,t));return{c(){n=O("div");for(let t=0;t<i.length;t+=1)i[t].c()},m(t,e){_(t,n,e);for(let t=0;t<i.length;t+=1)i[t].m(n,null)},p(t,[e]){if(1&e){let l;for(s=t[0],l=0;l<s.length;l+=1){const o=Xi(t,s,l);i[l]?i[l].p(o,e):(i[l]=Gi(o),i[l].c(),i[l].m(n,null))}for(;l<i.length;l+=1)i[l].d(1);i.length=s.length}},i:t,o:t,d(t){t&&L(n),T(i,t)}}}function Ki(t,e,n){let{tipTextList:s=""}=e;return t.$$set=t=>{"tipTextList"in t&&n(0,s=t.tipTextList)},[s]}class Yi extends It{constructor(t){super(),Ot(this,t,Ki,Wi,r,{tipTextList:0})}}function Zi(t,e,n){const s=t.slice();return s[13]=e[n],s[15]=n,s}const Qi=t=>({item:1&t}),tl=t=>({item:t[13],index:t[15]});function el(t,e,n){const s=t.slice();return s[13]=e[n],s[15]=n,s}const nl=t=>({item:1&t}),sl=t=>({item:t[13],index:t[15]});function il(t){let e,n,s,i;const l=[ol,ll],o=[];function r(t,e){return t[3]>1?0:1}return e=r(t),n=o[e]=l[e](t),{c(){n.c(),s=N()},m(t,n){o[e].m(t,n),_(t,s,n),i=!0},p(t,i){let c=e;e=r(t),e===c?o[e].p(t,i):(wt(),bt(o[c],1,1,(()=>{o[c]=null})),yt(),n=o[e],n?n.p(t,i):(n=o[e]=l[e](t),n.c()),xt(n,1),n.m(s.parentNode,s))},i(t){i||(xt(n),i=!0)},o(t){bt(n),i=!1},d(t){o[e].d(t),t&&L(s)}}}function ll(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=rl(Zi(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){for(let t=0;t<i.length;t+=1)i[t].c();e=N()},m(t,s){for(let e=0;e<i.length;e+=1)i[e].m(t,s);_(t,e,s),n=!0},p(t,n){if(257&n){let o;for(s=t[0],o=0;o<s.length;o+=1){const l=Zi(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=rl(l),i[o].c(),xt(i[o],1),i[o].m(e.parentNode,e))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){T(i,t),t&&L(e)}}}function ol(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=cl(el(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","grid-box svelte-16siq8o"),j(e,"grid-template-columns","repeat("+t[3]+", "+300/t[3]+"px)")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,o){if(257&o){let n;for(s=t[0],n=0;n<s.length;n+=1){const l=el(t,s,n);i[n]?(i[n].p(l,o),xt(i[n],1)):(i[n]=cl(l),i[n].c(),xt(i[n],1),i[n].m(e,null))}for(wt(),n=s.length;n<i.length;n+=1)l(n);yt()}(!n||8&o)&&j(e,"grid-template-columns","repeat("+t[3]+", "+300/t[3]+"px)")},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function rl(t){let e;const n=t[9].default,s=p(n,t,t[8],tl);return{c(){s&&s.c()},m(t,n){s&&s.m(t,n),e=!0},p(t,i){s&&s.p&&(!e||257&i)&&g(s,n,t,t[8],e?h(n,t[8],i,Qi):v(t[8]),tl)},i(t){e||(xt(s,t),e=!0)},o(t){bt(s,t),e=!1},d(t){s&&s.d(t)}}}function cl(t){let e;const n=t[9].default,s=p(n,t,t[8],sl);return{c(){s&&s.c()},m(t,n){s&&s.m(t,n),e=!0},p(t,i){s&&s.p&&(!e||257&i)&&g(s,n,t,t[8],e?h(n,t[8],i,nl):v(t[8]),sl)},i(t){e||(xt(s,t),e=!0)},o(t){bt(s,t),e=!1},d(t){s&&s.d(t)}}}function al(t){let e;return{c(){e=O("div"),e.textContent="😤 别滑了,到底啦!",E(e,"class","no-more no-more-text svelte-16siq8o")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function ul(t){let e;return{c(){e=O("div"),e.innerHTML='<div><embed width="40" height="40" src="/images/Ripple.svg" type="image/svg+xml"/></div> \n      <span class="no-more-text svelte-16siq8o">😤 别急啊,在加载了...</span>',E(e,"class","no-more svelte-16siq8o")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function dl(t){let e,n,s,i,l,o,r=t[0].length>0&&il(t);function c(t,e){return t[2]?ul:al}let a=c(t),u=a(t);return{c(){e=O("div"),n=O("div"),r&&r.c(),s=H(),u.c(),E(e,"class","pagination-box svelte-16siq8o"),j(e,"height",t[1]+"px")},m(c,a){_(c,e,a),S(e,n),r&&r.m(n,null),t[10](n),S(e,s),u.m(e,null),t[11](e),i=!0,l||(o=D(e,"scroll",function(t,e=50){let n=null;return function(){n||(n=setTimeout((()=>{t.apply(this,arguments),n=null}),e))}}(function(t,e){let n=null;return function(){n&&clearTimeout(n),n=setTimeout((()=>{t.apply(this,arguments),n=null}),e)}}(t[6],500))),l=!0)},p(t,[s]){t[0].length>0?r?(r.p(t,s),1&s&&xt(r,1)):(r=il(t),r.c(),xt(r,1),r.m(n,null)):r&&(wt(),bt(r,1,1,(()=>{r=null})),yt()),a!==(a=c(t))&&(u.d(1),u=a(t),u&&(u.c(),u.m(e,null))),(!i||2&s)&&j(e,"height",t[1]+"px")},i(t){i||(xt(r),i=!0)},o(t){bt(r),i=!1},d(n){n&&L(e),r&&r.d(),t[10](null),u.d(),t[11](null),l=!1,o()}}}function fl(t,e,n){let s,i,{$$slots:l={},$$scope:o}=e,{bottomHeight:r=0}=e,{items:c=[]}=e,{paginationHeight:a=0}=e,{hasMore:u=!0}=e,{grid:d=1}=e;const f=tt();return t.$$set=t=>{"bottomHeight"in t&&n(7,r=t.bottomHeight),"items"in t&&n(0,c=t.items),"paginationHeight"in t&&n(1,a=t.paginationHeight),"hasMore"in t&&n(2,u=t.hasMore),"grid"in t&&n(3,d=t.grid),"$$scope"in t&&n(8,o=t.$$scope)},[c,a,u,d,s,i,function(){if(!c||0==c.length)return;const t=i.scrollTop,e=document.documentElement.clientHeight||document.body.clientHeight,n=s.scrollHeight;t+e+r>=n&&f("load")},r,o,l,function(t){st[t?"unshift":"push"]((()=>{s=t,n(4,s)}))},function(t){st[t?"unshift":"push"]((()=>{i=t,n(5,i)}))}]}class pl extends It{constructor(t){super(),Ot(this,t,fl,dl,r,{bottomHeight:7,items:0,paginationHeight:1,hasMore:2,grid:3})}}function ml(t){let e,n,s,i,l,o;return l=new Oe({props:{size:"24",style:"vertical-align: middle;"}}),{c(){e=O("div"),n=B(t[2]),s=H(),i=O("span"),_t(l.$$.fragment),E(i,"class","title-icon svelte-1r560jd"),E(e,"class","title-right svelte-1r560jd")},m(t,r){_(t,e,r),S(e,n),S(e,s),S(e,i),Lt(l,i,null),o=!0},p(t,e){(!o||4&e)&&P(n,t[2])},i(t){o||(xt(l.$$.fragment,t),o=!0)},o(t){bt(l.$$.fragment,t),o=!1},d(t){t&&L(e),Tt(l)}}}function hl(t){let e,n,s,i,l,o,r,c=t[1]&&ml(t);return{c(){e=O("div"),n=O("div"),s=B(t[0]),i=H(),c&&c.c(),E(e,"class","title svelte-1r560jd")},m(a,u){_(a,e,u),S(e,n),S(n,s),S(e,i),c&&c.m(e,null),t[5](e),l=!0,o||(r=D(e,"click",t[4]),o=!0)},p(t,[n]){(!l||1&n)&&P(s,t[0]),t[1]?c?(c.p(t,n),2&n&&xt(c,1)):(c=ml(t),c.c(),xt(c,1),c.m(e,null)):c&&(wt(),bt(c,1,1,(()=>{c=null})),yt())},i(t){l||(xt(c),l=!0)},o(t){bt(c),l=!1},d(n){n&&L(e),c&&c.d(),t[5](null),o=!1,r()}}}function gl(t,e,n){let s,{title:i="Title"}=e,{isShowRight:l=!1}=e,{iconText:o="更多"}=e;const r=tt();return Y((()=>{s&&Js(s)})),t.$$set=t=>{"title"in t&&n(0,i=t.title),"isShowRight"in t&&n(1,l=t.isShowRight),"iconText"in t&&n(2,o=t.iconText)},[i,l,o,s,function(){r("TitleClick")},function(t){st[t?"unshift":"push"]((()=>{s=t,n(3,s)}))}]}class vl extends It{constructor(t){super(),Ot(this,t,gl,hl,r,{title:0,isShowRight:1,iconText:2})}}function $l(t,e,n){const s=t.slice();return s[7]=e[n],s[9]=n,s}function wl(t){let e,n,s,i,l=t[7].name+"";function o(){return t[5](t[9],t[7])}return{c(){e=O("div"),n=B(l),E(e,"class","li svelte-wlt91d")},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(e,s){t=e,2&s&&l!==(l=t[7].name+"")&&P(n,l)},d(t){t&&L(e),s=!1,i()}}}function yl(t){let e,n,s,i,l,o,r,c,a,u,d,f;r=new li({});let p=t[1],m=[];for(let e=0;e<p.length;e+=1)m[e]=wl($l(t,p,e));return{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),l=B(t[2]),o=H(),_t(r.$$.fragment),c=H(),a=O("div");for(let t=0;t<m.length;t+=1)m[t].c();E(i,"class","btn-item btn-center svelte-wlt91d"),E(s,"class","btn svelte-wlt91d"),E(a,"class","roller svelte-wlt91d"),E(n,"class","pick svelte-wlt91d"),j(n,"bottom",t[0]?"0px":"-350px"),E(e,"class","pick-mask svelte-wlt91d"),j(e,"display",t[0]?"block":"none")},m(p,h){_(p,e,h),S(e,n),S(n,s),S(s,i),S(i,l),S(n,o),Lt(r,n,null),S(n,c),S(n,a);for(let t=0;t<m.length;t+=1)m[t].m(a,null);u=!0,d||(f=D(e,"click",t[4]),d=!0)},p(t,[s]){if((!u||4&s)&&P(l,t[2]),10&s){let e;for(p=t[1],e=0;e<p.length;e+=1){const n=$l(t,p,e);m[e]?m[e].p(n,s):(m[e]=wl(n),m[e].c(),m[e].m(a,null))}for(;e<m.length;e+=1)m[e].d(1);m.length=p.length}(!u||1&s)&&j(n,"bottom",t[0]?"0px":"-350px"),(!u||1&s)&&j(e,"display",t[0]?"block":"none")},i(t){u||(xt(r.$$.fragment,t),u=!0)},o(t){bt(r.$$.fragment,t),u=!1},d(t){t&&L(e),Tt(r),T(m,t),d=!1,f()}}}function xl(t,e,n){let{list:s=[]}=e,{title:i="请选择"}=e,{isShow:l=!1}=e;const o=tt();function r(t,e){o("PickerClick",{index:t,item:e})}return t.$$set=t=>{"list"in t&&n(1,s=t.list),"title"in t&&n(2,i=t.title),"isShow"in t&&n(0,l=t.isShow)},[l,s,i,r,function(){n(0,l=!1),o("ChangeShow",{isShow:l})},(t,e)=>r(t,e)]}class bl extends It{constructor(t){super(),Ot(this,t,xl,yl,r,{list:1,title:2,isShow:0})}}const zl=Nt(!1),kl=Nt(!1),Sl=Nt(!0),Cl=Nt(JSON.parse(localStorage.getItem("currentSong"))?JSON.parse(localStorage.getItem("currentSong")):{name:"简易云音乐",al:{picUrl:ki},url:"https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3",ar:[{name:"简易云音乐"}]}),Ml=Nt(0),_l=Nt([JSON.parse(localStorage.getItem("currentSong"))?JSON.parse(localStorage.getItem("currentSong")):{name:"简易云音乐",al:{picUrl:ki},url:"https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3",ar:[{name:"简易云音乐"}]}]),Ll=Nt("100%"),Tl=Nt("1"===localStorage.getItem("isFMPlay")),Ol=Nt(JSON.parse(localStorage.getItem("FMPlay"))?JSON.parse(localStorage.getItem("FMPlay")):{}),Il=Nt({}),Bl=Nt(""),Hl=Nt(JSON.parse(localStorage.getItem("currentLyric"))?JSON.parse(localStorage.getItem("currentLyric")):{songId:"",lyric:"",tlyric:""}),Nl=Nt("cover"),Dl=Nt("repeat"),El=Nt(128e3);function Rl(t,e,n){const s=t.slice();return s[6]=e[n],s[20]=n,s}function Pl(t){let e,n,s=t[6].text_t+"";return{c(){e=O("div"),n=B(s),E(e,"class","t-text svelte-145k8f8")},m(t,s){_(t,e,s),S(e,n)},p(t,e){16&e&&s!==(s=t[6].text_t+"")&&P(n,s)},d(t){t&&L(e)}}}function Al(t){let e,n,s,i,l,o=t[6].text+"",r=""!==t[5].trim(),c=r&&Pl(t);return{c(){e=O("div"),n=O("div"),s=B(o),i=H(),c&&c.c(),l=H(),E(e,"class","ly svelte-145k8f8"),j(e,"filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),j(e,"-webkit-filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),U(e,"active",t[20]===t[3])},m(t,o){_(t,e,o),S(e,n),S(n,s),S(e,i),c&&c.m(e,null),S(e,l)},p(t,n){16&n&&o!==(o=t[6].text+"")&&P(s,o),32&n&&(r=""!==t[5].trim()),r?c?c.p(t,n):(c=Pl(t),c.c(),c.m(e,l)):c&&(c.d(1),c=null),12&n&&j(e,"filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),12&n&&j(e,"-webkit-filter",t[2]&&t[20]!==t[3]?`blur(${Math.abs(t[20]-t[3])<7?1*Math.abs(t[20]-t[3]):0}px)`:"none"),8&n&&U(e,"active",t[20]===t[3])},d(t){t&&L(e),c&&c.d()}}}function jl(e){let n,s,i,o,r=e[4],c=[];for(let t=0;t<r.length;t+=1)c[t]=Al(Rl(e,r,t));return{c(){n=O("div"),s=O("div");for(let t=0;t<c.length;t+=1)c[t].c();E(s,"class","box svelte-145k8f8"),j(s,"max-height",e[0]),E(n,"class","xbox")},m(t,l){_(t,n,l),S(n,s);for(let t=0;t<c.length;t+=1)c[t].m(s,null);e[11](s),i||(o=[D(s,"touchstart",e[7]),D(s,"touchend",e[8]),D(s,"touchmove",Xl)],i=!0)},p(t,[e]){if(60&e){let n;for(r=t[4],n=0;n<r.length;n+=1){const i=Rl(t,r,n);c[n]?c[n].p(i,e):(c[n]=Al(i),c[n].c(),c[n].m(s,null))}for(;n<c.length;n+=1)c[n].d(1);c.length=r.length}1&e&&j(s,"max-height",t[0])},i:t,o:t,d(t){t&&L(n),T(c,t),e[11](null),i=!1,l(o)}}}function Ul(t){if(Array.isArray(t)){for(var e=0,n=0;n<t.length;n++)e+=t[n];return e}}function Vl(t){"by"===t.slice(1,3)&&(t=t.slice(t.indexOf("\n")+1));let e=[],n=t.split("\n"),s=n.length;for(let t=0;t<s;t++){let s=n[t].split("]"),i=s.pop();s.forEach((t=>{let n={},s=t.substr(1,t.length-1).split(":"),l=60*Math.ceil(s[0])+Math.ceil(s[1]);n.time=l>0?l-1:l,n.text=i.trim(),e.push(n)}))}if(1===e.length&&(e=[{time:0,text:e[0].text},{time:0,text:e[0].text}]),e===[])return[];for(let t=0;t<e.length;t++)""===e[t].text&&(e[t].text="• • •");e.length>0&&e[0].time>5&&e.splice(0,0,{time:0,text:"• • •"});for(let t=e.length-1;t>0;t--)e[t].time-e[t-1].time<2&&"• • •"===e[t-1].text&&e.splice(t-1,1);for(let t=e.length-1;t>0;t--)e[t-1].time===e[t].time&&(e[t-1].text=e[t-1].text+" "+e[t].text,e.splice(t,1));e.length>1&&e[0].time===e[1].time&&(e[0].text=e[0].text+" "+e[1].text,e.splice(1,1));for(let t=0;t<e.length;t++)"• • •"===e[t].text.substring(e[t].text.length-5)&&"• • •"!=e[t].text&&(e[t].text=e[t].text.substr(0,e[t].text.length-5));return e.sort(Jl),0===e.length?[{time:0,text:"暂无歌词或歌词无效",start:0,end:20}]:e}function Fl(t){for(let e=0;e<t.length-1;e++)t[e].start=t[e].time,t[e].end=t[e+1].time;return t[t.length-1].start=t[t.length-1].time,t}function Jl(t,e){return t.time-e.time}function ql(t,e){let n=document.createElement("div"),s={};return s.width=n.offsetWidth,s.height=n.offsetHeight,n.style.visibility="hidden",n.style.fontSize=t,n.style.padding="20px",n.style.wordWrap="break-word",n.style.fontWeight="bold",n.style.textAlign="justify",document.body.appendChild(n),void 0!==n.textContent?n.textContent=e:n.innerText=e,s.width=parseFloat(window.getComputedStyle(n).width)-s.width,s.height=parseFloat(window.getComputedStyle(n).height)-s.height,n.style.display="none",s}function Xl(t){}function Gl(t,e,n){let s,i,l,o,r,c,a,u,d,p,m;f(t,Bl,(t=>n(16,d=t))),f(t,Hl,(t=>n(9,p=t))),f(t,yi,(t=>n(10,m=t)));let h,{maxHeight:g=""}=e,v=null;function $(){v=setInterval((()=>{if(h)for(let t=0;t<r.length-1;t++)Math.ceil(d)>=r[r.length-1].start&&(n(3,c=r.length-1),n(1,h.scrollTop=h.scrollHeight-h.clientHeight,h)),Math.ceil(d)>=r[t].start&&Math.ceil(d)<r[t].end&&(n(3,c=t),h.scrollIntoView({block:"start",behavior:"smooth"}),0===c?"scrollBehavior"in h.style?n(1,h.scrollTop=0,h):Rs(h,0):"scrollBehavior"in h.style?n(1,h.scrollTop=Ul(a.slice(0,c-1)),h):Rs(h,Ul(a.slice(0,c-1))))}),1e3)}return Y((()=>{n(4,l=Vl(s)),"by"===i.slice(1,3)&&n(5,i=i.slice(i.indexOf("\n")+1)),"["!==i.slice(0,1)&&n(5,i="");let t=i.split("\n"),e=!1;for(let n=0;n<t.length;n++)e="]"==t[n].substring(t[n].length-1);if(e&&n(5,i=""),""!==i.trim()&&(o=Vl(i)),""!==i.trim()){0!==l[0].time&&l.unshift({time:0,text:"• • •"}),0!==o[0].time&&o.unshift({time:0,text:"• • •"});for(let t=0;t<l.length;t++)for(let e=0;e<o.length;e++)l[t].time===o[e].time&&n(4,l[t].text_t=o[e].text,l),void 0===l[t].text_t&&n(4,l[t].text_t="• • •",l);r=l.length>0?Fl(l):[];for(let t=0;t<l.length;t++)a.push(40+ql("28px",l[t].text).height+ql("16px",l[t].text_t).height)}else{r=l.length>0?Fl(l):[];for(let t=0;t<r.length;t++)a.push(ql("28px",r[t].text).height+40)}$()})),t.$$set=t=>{"maxHeight"in t&&n(0,g=t.maxHeight)},t.$$.update=()=>{512&t.$$.dirty&&n(6,s=p.lyric),1536&t.$$.dirty&&n(5,i=m?p.tlyric:"")},n(4,l=[]),o=[],r=[],n(3,c=0),a=[],n(2,u=!0),[g,h,u,c,l,i,s,function(t){n(2,u=!1),v&&clearInterval(v),v=null},function(t){n(2,u=!0),v&&clearInterval(v),v=null,$()},p,m,function(t){st[t?"unshift":"push"]((()=>{h=t,n(1,h)}))}]}class Wl extends It{constructor(t){super(),Ot(this,t,Gl,jl,r,{maxHeight:0})}}function Kl(t,{delay:n=0,duration:s=400,easing:i=e}={}){const l=+getComputedStyle(t).opacity;return{delay:n,duration:s,easing:i,css:t=>"opacity: "+t*l}}function Yl(t){let e,n,s,i,l;const o=[Ql,Zl],r=[];function c(t,e){return"string"==typeof t[0]?0:((null==n||1&e)&&(n=!!["function","object"].includes(typeof t[0])),n?1:-1)}return~(s=c(t,-1))&&(i=r[s]=o[s](t)),{c(){e=O("div"),i&&i.c(),E(e,"class",eo)},m(t,n){_(t,e,n),~s&&r[s].m(e,null),l=!0},p(t,n){let l=s;s=c(t,n),s===l?~s&&r[s].p(t,n):(i&&(wt(),bt(r[l],1,1,(()=>{r[l]=null})),yt()),~s?(i=r[s],i?i.p(t,n):(i=r[s]=o[s](t),i.c()),xt(i,1),i.m(e,null)):i=null)},i(t){l||(xt(i),l=!0)},o(t){bt(i),l=!1},d(t){t&&L(e),~s&&r[s].d()}}}function Zl(t){let e,s,i;const l=[t[1]];var o=t[0];function r(t){let e={};for(let t=0;t<l.length;t+=1)e=n(e,l[t]);return{props:e}}return o&&(e=new o(r())),{c(){e&&_t(e.$$.fragment),s=N()},m(t,n){e&&Lt(e,t,n),_(t,s,n),i=!0},p(t,n){const i=2&n?Ct(l,[(c=t[1],"object"==typeof c&&null!==c?c:{})]):{};var c;if(o!==(o=t[0])){if(e){wt();const t=e;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}o?(e=new o(r()),_t(e.$$.fragment),xt(e.$$.fragment,1),Lt(e,s.parentNode,s)):e=null}else o&&e.$set(i)},i(t){i||(e&&xt(e.$$.fragment,t),i=!0)},o(t){e&&bt(e.$$.fragment,t),i=!1},d(t){t&&L(s),e&&Tt(e,t)}}}function Ql(e){let n,s;return{c(){n=O("div"),s=B(e[0])},m(t,e){_(t,n,e),S(n,s)},p(t,e){1&e&&P(s,t[0])},i:t,o:t,d(t){t&&L(n)}}}function to(t){let e,n,s=t[0]&&Yl(t);return{c(){s&&s.c(),e=N()},m(t,i){s&&s.m(t,i),_(t,e,i),n=!0},p(t,[n]){t[0]?s?(s.p(t,n),1&n&&xt(s,1)):(s=Yl(t),s.c(),xt(s,1),s.m(e.parentNode,e)):s&&(wt(),bt(s,1,1,(()=>{s=null})),yt())},i(t){n||(xt(s),n=!0)},o(t){bt(s),n=!1},d(t){s&&s.d(t),t&&L(e)}}}const eo="svelte-lazy-placeholder";function no(t,e,n){let{placeholder:s=null}=e,{placeholderProps:i=null}=e;return t.$$set=t=>{"placeholder"in t&&n(0,s=t.placeholder),"placeholderProps"in t&&n(1,i=t.placeholderProps)},[s,i]}class so extends It{constructor(t){super(),Ot(this,t,no,to,r,{placeholder:0,placeholderProps:1})}}function io(t){let e,n;return e=new so({props:{placeholder:t[1],placeholderProps:t[2]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};2&n&&(s.placeholder=t[1]),4&n&&(s.placeholderProps=t[2]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function lo(t){let e,n,s,i,l;const o=t[15].default,r=p(o,t,t[14],null),c=r||function(t){let e;return{c(){e=B("Lazy load content")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}();let a="hide"===t[3]&&t[1]&&oo(t);return{c(){e=O("div"),c&&c.c(),s=H(),a&&a.c(),i=N(),E(e,"class",co),E(e,"style",t[5])},m(t,n){_(t,e,n),c&&c.m(e,null),_(t,s,n),a&&a.m(t,n),_(t,i,n),l=!0},p(n,s){t=n,r&&r.p&&(!l||16384&s)&&g(r,o,t,t[14],l?h(o,t[14],s,null):v(t[14]),null),(!l||32&s)&&E(e,"style",t[5]),"hide"===t[3]&&t[1]?a?(a.p(t,s),10&s&&xt(a,1)):(a=oo(t),a.c(),xt(a,1),a.m(i.parentNode,i)):a&&(wt(),bt(a,1,1,(()=>{a=null})),yt())},i(s){l||(xt(c,s),n||at((()=>{n=kt(e,Kl,t[0]||{}),n.start()})),xt(a),l=!0)},o(t){bt(c,t),bt(a),l=!1},d(t){t&&L(e),c&&c.d(t),t&&L(s),a&&a.d(t),t&&L(i)}}}function oo(t){let e,n;return e=new so({props:{placeholder:t[1],placeholderProps:t[2]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};2&n&&(s.placeholder=t[1]),4&n&&(s.placeholderProps=t[2]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ro(e){let n,s,i,l,r,c;const a=[lo,io],u=[];function d(t,e){return t[4]?0:t[1]?1:-1}return~(s=d(e))&&(i=u[s]=a[s](e)),{c(){n=O("div"),i&&i.c(),E(n,"class",e[6]),j(n,"height",e[7])},m(i,a){var d;_(i,n,a),~s&&u[s].m(n,null),l=!0,r||(d=e[8].call(null,n),c=d&&o(d.destroy)?d.destroy:t,r=!0)},p(t,[e]){let l=s;s=d(t),s===l?~s&&u[s].p(t,e):(i&&(wt(),bt(u[l],1,1,(()=>{u[l]=null})),yt()),~s?(i=u[s],i?i.p(t,e):(i=u[s]=a[s](t),i.c()),xt(i,1),i.m(n,null)):i=null)},i(t){l||(xt(i),l=!0)},o(t){bt(i),l=!1},d(t){t&&L(n),~s&&u[s].d(),r=!1,c()}}}const co="svelte-lazy-content";function ao(t,e,n){let s,{$$slots:i={},$$scope:l}=e,{height:o=0}=e,{offset:r=150}=e,{fadeOption:c={delay:0,duration:400}}=e,{resetHeightDelay:a=0}=e,{onload:u=null}=e,{placeholder:d=null}=e,{placeholderProps:f=null}=e,{class:p=""}=e;const m="svelte-lazy"+(p?" "+p:""),h=$();let g=!1,v="";function $(){return"number"==typeof o?o+"px":o}return t.$$set=t=>{"height"in t&&n(9,o=t.height),"offset"in t&&n(10,r=t.offset),"fadeOption"in t&&n(0,c=t.fadeOption),"resetHeightDelay"in t&&n(11,a=t.resetHeightDelay),"onload"in t&&n(12,u=t.onload),"placeholder"in t&&n(1,d=t.placeholder),"placeholderProps"in t&&n(2,f=t.placeholderProps),"class"in t&&n(13,p=t.class),"$$scope"in t&&n(14,l=t.$$scope)},t.$$.update=()=>{8&t.$$.dirty&&n(5,s="hide"===v?"display: none":"")},[c,d,f,v,g,s,m,h,function(t){!function(t){o&&(t.style.height=$())}(t);const e=function(t,e,n){let s,i,l,o=null,r=0;n||(n={});const c=function(){r=!1===n.leading?0:new Date,o=null,l=t.apply(s,i),o||(s=i=null)};return function(a){const u=new Date;r||!1!==n.leading||(r=u);const d=e-(u-r);return s=this,i=arguments,d<=0||d>e?(o&&(clearTimeout(o),o=null),r=u,l=t.apply(s,i),o||(s=i=null)):o||!1===n.trailing||(o=setTimeout(c,d)),l}}((e=>{const i=t.getBoundingClientRect().top,l=function(t){return t&&t.target&&t.target.getBoundingClientRect?t.target.getBoundingClientRect().bottom:window.innerHeight}(e)+r;i<=l&&(n(4,g=!0),function(t){setTimeout((()=>{const e=function(t){const e=t.querySelector("img");if(e){if(!e.complete)return n(3,v="hide"),t.addEventListener("load",(()=>{n(3,v=""),t.style.height="auto"}),{capture:!0,once:!0}),t.addEventListener("error",(()=>{n(3,v="")}),{capture:!0,once:!0}),!0;if(0===e.naturalHeight)return!0}}(t);e||(t.style.height="auto")}),a)}(t),u&&u(t),s())}),200);function s(){document.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e)}return e(),document.addEventListener("scroll",e,!0),window.addEventListener("resize",e),{destroy:()=>{s()}}},o,r,a,u,p,l,i]}class uo extends It{constructor(t){super(),Ot(this,t,ao,ro,r,{height:9,offset:10,fadeOption:0,resetHeightDelay:11,onload:12,placeholder:1,placeholderProps:2,class:13})}}const fo=Nt(JSON.parse(localStorage.getItem("isLogin"))?JSON.parse(localStorage.getItem("userInfo")):{}),po=Nt(JSON.parse(localStorage.getItem("useLoveSongIds"))?JSON.parse(localStorage.getItem("useLoveSongIds")):[]),mo=Nt(JSON.parse(localStorage.getItem("userLikeListId"))?JSON.parse(localStorage.getItem("userLikeListId")):"");function ho(t){let e,n;return e=new mn({props:{size:"16",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function go(t){let e,n;return{c(){e=O("img"),E(e,"class","img-song svelte-d1ubox"),a(e.src,n=t[2]?t[2]:t[0].al.picUrl.replace(/^http:/,"https:")+"?param=100y100")||E(e,"src",n),E(e,"alt","")},m(t,n){_(t,e,n)},p(t,s){5&s&&!a(e.src,n=t[2]?t[2]:t[0].al.picUrl.replace(/^http:/,"https:")+"?param=100y100")&&E(e,"src",n)},d(t){t&&L(e)}}}function vo(t){let e;return{c(){e=O("div"),e.innerHTML='<div class="pull_down pull_down1 svelte-d1ubox"></div> \n        <div class="pull_down pull_down2 svelte-d1ubox"></div> \n        <div class="pull_down pull_down3 svelte-d1ubox"></div> \n        <div class="pull_down pull_down4 svelte-d1ubox"></div>',E(e,"class","song-play svelte-d1ubox")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function $o(t){let e;return{c(){e=O("div"),e.innerHTML='<div class="no_pull_down svelte-d1ubox"></div> \n        <div class="no_pull_down svelte-d1ubox"></div> \n        <div class="no_pull_down svelte-d1ubox"></div> \n        <div class="no_pull_down svelte-d1ubox"></div>',E(e,"class","song-no-play svelte-d1ubox")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function wo(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k=t[5]&&t[6].includes(t[0].id),C=t[0].name+"",M=t[0].alia&&t[0].alia.length>0?`(${t[0].alia[0]})`:"",T=Ds(t[0].ar)+"",I=""===t[0].al.name?"":`- ${t[0].al.name}`,N=k&&ho();l=new uo({props:{height:46,$$slots:{default:[go]},$$scope:{ctx:t}}});let R=t[0].id===t[4].id&&t[7]&&vo(),A=t[0].id===t[4].id&&!t[7]&&$o();return{c(){e=O("div"),n=O("div"),N&&N.c(),s=H(),i=O("div"),_t(l.$$.fragment),o=H(),R&&R.c(),r=H(),A&&A.c(),c=H(),a=O("div"),u=O("div"),d=B(C),f=H(),p=O("span"),m=B(M),h=H(),g=O("div"),v=B(T),$=H(),w=O("span"),y=B(I),E(n,"class","love-span svelte-d1ubox"),E(i,"class","song-cover svelte-d1ubox"),E(p,"class","alia"),E(u,"class","song-name svelte-d1ubox"),E(g,"class","song-songer svelte-d1ubox"),E(a,"class","song-info svelte-d1ubox"),j(a,"max-width",Hs()-72+"px"),E(e,"class","song svelte-d1ubox")},m(k,C){_(k,e,C),S(e,n),N&&N.m(n,null),S(e,s),S(e,i),Lt(l,i,null),S(i,o),R&&R.m(i,null),S(i,r),A&&A.m(i,null),S(e,c),S(e,a),S(a,u),S(u,d),S(u,f),S(u,p),S(p,m),S(a,h),S(a,g),S(g,v),S(g,$),S(g,w),S(w,y),t[10](e),x=!0,b||(z=D(e,"click",t[9]),b=!0)},p(t,[e]){97&e&&(k=t[5]&&t[6].includes(t[0].id)),k?N?97&e&&xt(N,1):(N=ho(),N.c(),xt(N,1),N.m(n,null)):N&&(wt(),bt(N,1,1,(()=>{N=null})),yt());const s={};4101&e&&(s.$$scope={dirty:e,ctx:t}),l.$set(s),t[0].id===t[4].id&&t[7]?R||(R=vo(),R.c(),R.m(i,r)):R&&(R.d(1),R=null),t[0].id!==t[4].id||t[7]?A&&(A.d(1),A=null):A||(A=$o(),A.c(),A.m(i,null)),(!x||1&e)&&C!==(C=t[0].name+"")&&P(d,C),(!x||1&e)&&M!==(M=t[0].alia&&t[0].alia.length>0?`(${t[0].alia[0]})`:"")&&P(m,M),(!x||1&e)&&T!==(T=Ds(t[0].ar)+"")&&P(v,T),(!x||1&e)&&I!==(I=""===t[0].al.name?"":`- ${t[0].al.name}`)&&P(y,I)},i(t){x||(xt(N),xt(l.$$.fragment,t),x=!0)},o(t){bt(N),bt(l.$$.fragment,t),x=!1},d(n){n&&L(e),N&&N.d(),Tt(l),R&&R.d(),A&&A.d(),t[10](null),b=!1,z()}}}function yo(t,e,n){let s,i,l,o;f(t,Cl,(t=>n(4,s=t))),f(t,mi,(t=>n(5,i=t))),f(t,po,(t=>n(6,l=t))),f(t,zl,(t=>n(7,o=t)));const r=tt();function c(t){r("songClick",{index:t})}let a,{song:u={}}=e,{index:d=0}=e,{customCoverUrl:p=null}=e;Y((()=>{a&&Js(a)}));return t.$$set=t=>{"song"in t&&n(0,u=t.song),"index"in t&&n(1,d=t.index),"customCoverUrl"in t&&n(2,p=t.customCoverUrl)},[u,d,p,a,s,i,l,o,c,()=>{u.id===s.id?(window.audioDOM.play(),zl.set(!0)):c(d)},function(t){st[t?"unshift":"push"]((()=>{a=t,n(3,a)}))}]}class xo extends It{constructor(t){super(),Ot(this,t,yo,wo,r,{song:0,index:1,customCoverUrl:2})}}var bo=function(t,e){return function(){for(var n=new Array(arguments.length),s=0;s<n.length;s++)n[s]=arguments[s];return t.apply(e,n)}},zo=Object.prototype.toString;function ko(t){return"[object Array]"===zo.call(t)}function So(t){return void 0===t}function Co(t){return null!==t&&"object"==typeof t}function Mo(t){if("[object Object]"!==zo.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function _o(t){return"[object Function]"===zo.call(t)}function Lo(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),ko(t))for(var n=0,s=t.length;n<s;n++)e.call(null,t[n],n,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.call(null,t[i],i,t)}var To={isArray:ko,isArrayBuffer:function(t){return"[object ArrayBuffer]"===zo.call(t)},isBuffer:function(t){return null!==t&&!So(t)&&null!==t.constructor&&!So(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:Co,isPlainObject:Mo,isUndefined:So,isDate:function(t){return"[object Date]"===zo.call(t)},isFile:function(t){return"[object File]"===zo.call(t)},isBlob:function(t){return"[object Blob]"===zo.call(t)},isFunction:_o,isStream:function(t){return Co(t)&&_o(t.pipe)},isURLSearchParams:function(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:Lo,merge:function t(){var e={};function n(n,s){Mo(e[s])&&Mo(n)?e[s]=t(e[s],n):Mo(n)?e[s]=t({},n):ko(n)?e[s]=n.slice():e[s]=n}for(var s=0,i=arguments.length;s<i;s++)Lo(arguments[s],n);return e},extend:function(t,e,n){return Lo(e,(function(e,s){t[s]=n&&"function"==typeof e?bo(e,n):e})),t},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t}};function Oo(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var Io=function(t,e,n){if(!e)return t;var s;if(n)s=n(e);else if(To.isURLSearchParams(e))s=e.toString();else{var i=[];To.forEach(e,(function(t,e){null!=t&&(To.isArray(t)?e+="[]":t=[t],To.forEach(t,(function(t){To.isDate(t)?t=t.toISOString():To.isObject(t)&&(t=JSON.stringify(t)),i.push(Oo(e)+"="+Oo(t))})))})),s=i.join("&")}if(s){var l=t.indexOf("#");-1!==l&&(t=t.slice(0,l)),t+=(-1===t.indexOf("?")?"?":"&")+s}return t};function Bo(){this.handlers=[]}Bo.prototype.use=function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},Bo.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},Bo.prototype.forEach=function(t){To.forEach(this.handlers,(function(e){null!==e&&t(e)}))};var Ho=Bo,No=function(t,e){To.forEach(t,(function(n,s){s!==e&&s.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[s])}))},Do=function(t,e,n,s,i){return t.config=e,n&&(t.code=n),t.request=s,t.response=i,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t},Eo=function(t,e,n,s,i){var l=new Error(t);return Do(l,e,n,s,i)},Ro=To.isStandardBrowserEnv()?{write:function(t,e,n,s,i,l){var o=[];o.push(t+"="+encodeURIComponent(e)),To.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),To.isString(s)&&o.push("path="+s),To.isString(i)&&o.push("domain="+i),!0===l&&o.push("secure"),document.cookie=o.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}},Po=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],Ao=To.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function s(t){var s=t;return e&&(n.setAttribute("href",s),s=n.href),n.setAttribute("href",s),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=s(window.location.href),function(e){var n=To.isString(e)?s(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0},jo=function(t){return new Promise((function(e,n){var s=t.data,i=t.headers,l=t.responseType;To.isFormData(s)&&delete i["Content-Type"];var o=new XMLHttpRequest;if(t.auth){var r=t.auth.username||"",c=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";i.Authorization="Basic "+btoa(r+":"+c)}var a=function(t,e){return t&&!/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}(t.baseURL,t.url);function u(){if(o){var s,i,r,c,a,u="getAllResponseHeaders"in o?(s=o.getAllResponseHeaders(),a={},s?(To.forEach(s.split("\n"),(function(t){if(c=t.indexOf(":"),i=To.trim(t.substr(0,c)).toLowerCase(),r=To.trim(t.substr(c+1)),i){if(a[i]&&Po.indexOf(i)>=0)return;a[i]="set-cookie"===i?(a[i]?a[i]:[]).concat([r]):a[i]?a[i]+", "+r:r}})),a):a):null,d={data:l&&"text"!==l&&"json"!==l?o.response:o.responseText,status:o.status,statusText:o.statusText,headers:u,config:t,request:o};!function(t,e,n){var s=n.config.validateStatus;n.status&&s&&!s(n.status)?e(Eo("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}(e,n,d),o=null}}if(o.open(t.method.toUpperCase(),Io(a,t.params,t.paramsSerializer),!0),o.timeout=t.timeout,"onloadend"in o?o.onloadend=u:o.onreadystatechange=function(){o&&4===o.readyState&&(0!==o.status||o.responseURL&&0===o.responseURL.indexOf("file:"))&&setTimeout(u)},o.onabort=function(){o&&(n(Eo("Request aborted",t,"ECONNABORTED",o)),o=null)},o.onerror=function(){n(Eo("Network Error",t,null,o)),o=null},o.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(Eo(e,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",o)),o=null},To.isStandardBrowserEnv()){var d=(t.withCredentials||Ao(a))&&t.xsrfCookieName?Ro.read(t.xsrfCookieName):void 0;d&&(i[t.xsrfHeaderName]=d)}"setRequestHeader"in o&&To.forEach(i,(function(t,e){void 0===s&&"content-type"===e.toLowerCase()?delete i[e]:o.setRequestHeader(e,t)})),To.isUndefined(t.withCredentials)||(o.withCredentials=!!t.withCredentials),l&&"json"!==l&&(o.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&o.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&o.upload&&o.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then((function(t){o&&(o.abort(),n(t),o=null)})),s||(s=null),o.send(s)}))},Uo={"Content-Type":"application/x-www-form-urlencoded"};function Vo(t,e){!To.isUndefined(t)&&To.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var Fo,Jo={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(Fo=jo),Fo),transformRequest:[function(t,e){return No(e,"Accept"),No(e,"Content-Type"),To.isFormData(t)||To.isArrayBuffer(t)||To.isBuffer(t)||To.isStream(t)||To.isFile(t)||To.isBlob(t)?t:To.isArrayBufferView(t)?t.buffer:To.isURLSearchParams(t)?(Vo(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):To.isObject(t)||e&&"application/json"===e["Content-Type"]?(Vo(e,"application/json"),function(t,e,n){if(To.isString(t))try{return(e||JSON.parse)(t),To.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(n||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional,n=e&&e.silentJSONParsing,s=e&&e.forcedJSONParsing,i=!n&&"json"===this.responseType;if(i||s&&To.isString(t)&&t.length)try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Do(t,this,"E_JSON_PARSE");throw t}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};Jo.headers={common:{Accept:"application/json, text/plain, */*"}},To.forEach(["delete","get","head"],(function(t){Jo.headers[t]={}})),To.forEach(["post","put","patch"],(function(t){Jo.headers[t]=To.merge(Uo)}));var qo=Jo,Xo=function(t,e,n){var s=this||qo;return To.forEach(n,(function(n){t=n.call(s,t,e)})),t},Go=function(t){return!(!t||!t.__CANCEL__)};function Wo(t){t.cancelToken&&t.cancelToken.throwIfRequested()}var Ko=function(t){return Wo(t),t.headers=t.headers||{},t.data=Xo.call(t,t.data,t.headers,t.transformRequest),t.headers=To.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),To.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||qo.adapter)(t).then((function(e){return Wo(t),e.data=Xo.call(t,e.data,e.headers,t.transformResponse),e}),(function(e){return Go(e)||(Wo(t),e&&e.response&&(e.response.data=Xo.call(t,e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))},Yo=function(t,e){e=e||{};var n={},s=["url","method","data"],i=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],o=["validateStatus"];function r(t,e){return To.isPlainObject(t)&&To.isPlainObject(e)?To.merge(t,e):To.isPlainObject(e)?To.merge({},e):To.isArray(e)?e.slice():e}function c(s){To.isUndefined(e[s])?To.isUndefined(t[s])||(n[s]=r(void 0,t[s])):n[s]=r(t[s],e[s])}To.forEach(s,(function(t){To.isUndefined(e[t])||(n[t]=r(void 0,e[t]))})),To.forEach(i,c),To.forEach(l,(function(s){To.isUndefined(e[s])?To.isUndefined(t[s])||(n[s]=r(void 0,t[s])):n[s]=r(void 0,e[s])})),To.forEach(o,(function(s){s in e?n[s]=r(t[s],e[s]):s in t&&(n[s]=r(void 0,t[s]))}));var a=s.concat(i).concat(l).concat(o),u=Object.keys(t).concat(Object.keys(e)).filter((function(t){return-1===a.indexOf(t)}));return To.forEach(u,c),n},Zo="axios",Qo="0.21.4",tr="Promise based HTTP client for the browser and node.js",er="index.js",nr={test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},sr={type:"git",url:"https://github.com/axios/axios.git"},ir=["xhr","http","ajax","promise","node"],lr="Matt Zabriskie",or={url:"https://github.com/axios/axios/issues"},rr="https://axios-http.com",cr={coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},ar={"./lib/adapters/http.js":"./lib/adapters/xhr.js"},ur="dist/axios.min.js",dr="dist/axios.min.js",fr="./index.d.ts",pr={"follow-redirects":"^1.14.0"},mr=[{path:"./dist/axios.min.js",threshold:"5kB"}],hr={name:Zo,version:Qo,description:tr,main:er,scripts:nr,repository:sr,keywords:ir,author:lr,license:"MIT",bugs:or,homepage:rr,devDependencies:cr,browser:ar,jsdelivr:ur,unpkg:dr,typings:fr,dependencies:pr,bundlesize:mr},gr=be(Object.freeze({__proto__:null,name:Zo,version:Qo,description:tr,main:er,scripts:nr,repository:sr,keywords:ir,author:lr,license:"MIT",bugs:or,homepage:rr,devDependencies:cr,browser:ar,jsdelivr:ur,unpkg:dr,typings:fr,dependencies:pr,bundlesize:mr,default:hr})),vr={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){vr[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));var $r={},wr=gr.version.split(".");function yr(t,e){for(var n=e?e.split("."):wr,s=t.split("."),i=0;i<3;i++){if(n[i]>s[i])return!0;if(n[i]<s[i])return!1}return!1}vr.transitional=function(t,e,n){var s=e&&yr(e);function i(t,e){return"[Axios v"+gr.version+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,l,o){if(!1===t)throw new Error(i(l," has been removed in "+e));return s&&!$r[l]&&($r[l]=!0,console.warn(i(l," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,l,o)}};var xr={isOlderVersion:yr,assertOptions:function(t,e,n){if("object"!=typeof t)throw new TypeError("options must be an object");for(var s=Object.keys(t),i=s.length;i-- >0;){var l=s[i],o=e[l];if(o){var r=t[l],c=void 0===r||o(r,l,t);if(!0!==c)throw new TypeError("option "+l+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+l)}},validators:vr},br=xr.validators;function zr(t){this.defaults=t,this.interceptors={request:new Ho,response:new Ho}}zr.prototype.request=function(t){"string"==typeof t?(t=arguments[1]||{}).url=arguments[0]:t=t||{},(t=Yo(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var e=t.transitional;void 0!==e&&xr.assertOptions(e,{silentJSONParsing:br.transitional(br.boolean,"1.0.0"),forcedJSONParsing:br.transitional(br.boolean,"1.0.0"),clarifyTimeoutError:br.transitional(br.boolean,"1.0.0")},!1);var n=[],s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,n.unshift(e.fulfilled,e.rejected))}));var i,l=[];if(this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)})),!s){var o=[Ko,void 0];for(Array.prototype.unshift.apply(o,n),o=o.concat(l),i=Promise.resolve(t);o.length;)i=i.then(o.shift(),o.shift());return i}for(var r=t;n.length;){var c=n.shift(),a=n.shift();try{r=c(r)}catch(t){a(t);break}}try{i=Ko(r)}catch(t){return Promise.reject(t)}for(;l.length;)i=i.then(l.shift(),l.shift());return i},zr.prototype.getUri=function(t){return t=Yo(this.defaults,t),Io(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")},To.forEach(["delete","get","head","options"],(function(t){zr.prototype[t]=function(e,n){return this.request(Yo(n||{},{method:t,url:e,data:(n||{}).data}))}})),To.forEach(["post","put","patch"],(function(t){zr.prototype[t]=function(e,n,s){return this.request(Yo(s||{},{method:t,url:e,data:n}))}}));var kr=zr;function Sr(t){this.message=t}Sr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Sr.prototype.__CANCEL__=!0;var Cr=Sr;function Mr(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var n=this;t((function(t){n.reason||(n.reason=new Cr(t),e(n.reason))}))}Mr.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},Mr.source=function(){var t;return{token:new Mr((function(e){t=e})),cancel:t}};var _r=Mr;function Lr(t){var e=new kr(t),n=bo(kr.prototype.request,e);return To.extend(n,kr.prototype,e),To.extend(n,e),n}var Tr=Lr(qo);Tr.Axios=kr,Tr.create=function(t){return Lr(Yo(Tr.defaults,t))},Tr.Cancel=Cr,Tr.CancelToken=_r,Tr.isCancel=Go,Tr.all=function(t){return Promise.all(t)},Tr.spread=function(t){return function(e){return t.apply(null,e)}},Tr.isAxiosError=function(t){return"object"==typeof t&&!0===t.isAxiosError};var Or=Tr,Ir=Tr;Or.default=Ir;const Br=Or.create({baseURL:"https://netease-cloud-music-api-eight-lime.vercel.app/",withCredentials:!0,timeout:15e3});function Hr(t){let e=128e3;switch(localStorage.getItem("musicQuality")){default:e=128e3;break;case"1":e=192e3;break;case"2":e=32e4;break;case"3":e=999e3}return Br({url:"/song/url",method:"get",params:{id:t,br:e},isHideLoading:!0})}function Nr(t){return"string"==typeof t&&(t=t.replace(/,,/,",")),Br({url:"/song/detail",method:"get",params:{ids:t,timestamp:(new Date).getTime()}})}function Dr(){return Br({url:"/personal_fm",method:"get",params:{timestamp:(new Date).getTime()}})}function Er(t,e,n){const s=t.slice();return s[7]=e[n],s[9]=n,s}function Rr(t){let e,n;return e=new xo({props:{song:t[7],index:t[9]}}),e.$on("songClick",t[1]),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};1&n&&(s.song=t[7]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Pr(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=Rr(Er(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c()},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,[n]){if(3&n){let o;for(s=t[0],o=0;o<s.length;o+=1){const l=Er(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=Rr(l),i[o].c(),xt(i[o],1),i[o].m(e,null))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function Ar(t,e,n){let s,i;f(t,Ml,(t=>n(3,s=t))),f(t,_l,(t=>n(4,i=t)));let{songList:l=[]}=e,{isPlayList:o=!1}=e;async function r(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),s!==i.length-1&&Hr(i[s+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}return t.$$set=t=>{"songList"in t&&n(0,l=t.songList),"isPlayList"in t&&n(2,o=t.isPlayList)},[l,function(t){!function(t){if(o){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(l);let e=[];for(let t=0;t<l.length;t++)e.push(l[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),r(i[s])}else{Tl.set(!1),localStorage.setItem("isFMPlay","0");let e=i,n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);if(n.includes(l[t].id))Ml.set(n.indexOf(l[t].id)),r(i[s]);else{e.splice(s+1,0,l[t]),_l.set(e);let n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);localStorage.setItem("localPlayList",JSON.stringify(n)),Ml.set(s+1),r(i[s])}}}(t.detail.index)},o]}Br.interceptors.request.use((t=>(t.params||(t.params={}),t.isHideLoading||d(pi)||pi.set(!0),t))),Br.interceptors.response.use((t=>{pi.set(!1);const e=t.data;if(console.debug("response",t.config.url,e),e.code&&![200,800,801,802,803].includes(e.code)){const n=`${e.message||e.msg||"未知错误"} (${t.config.url}: ${e.code})`;As("string"==typeof e?e:n)}return e}),(t=>{if(pi.set(!1),"/daily_signin"!=t.response.config.url)return As(t.response.data.code+":"+(t.response.data.message?t.response.data.message:t.response.data.msg?t.response.data.msg:"未知错误")),t.response.data}));class jr extends It{constructor(t){super(),Ot(this,t,Ar,Pr,r,{songList:0,isPlayList:2})}}function Ur(t){let e,n,s;return n=new jr({props:{songList:t[26]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","song-list-box svelte-13zz8w0")},m(i,l){_(i,e,l),Lt(n,e,null),t[51](e),s=!0},p(t,e){const s={};67108864&e[0]&&(s.songList=t[26]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(s){s&&L(e),Tt(n),t[51](null)}}}function Vr(e){let n,s,i,l,o;return s=new Wl({props:{maxHeight:"54vh"}}),{c(){n=O("div"),_t(s.$$.fragment),E(n,"class","lyric-cover")},m(t,r){_(t,n,r),Lt(s,n,null),i=!0,l||(o=D(n,"click",e[44]),l=!0)},p:t,i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(n),Tt(s),l=!1,o()}}}function Fr(e){let n,s,i,o,r,c;return{c(){n=O("div"),s=O("div"),i=O("img"),j(i,"width",e[30]?"280px":"240px"),j(i,"height",e[30]?"280px":"240px"),a(i.src,o=e[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")||E(i,"src",o),E(i,"alt",""),E(i,"class","cover-img svelte-13zz8w0"),E(n,"class","cover svelte-13zz8w0")},m(t,l){_(t,n,l),S(n,s),S(s,i),e[50](n),r||(c=[D(n,"click",e[36]),D(n,"touchstart",e[46]),D(n,"touchend",e[47]),D(n,"touchmove",e[48])],r=!0)},p(t,e){1073741824&e[0]&&j(i,"width",t[30]?"280px":"240px"),1073741824&e[0]&&j(i,"height",t[30]?"280px":"240px"),8&e[0]&&!a(i.src,o=t[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")&&E(i,"src",o)},i:t,o:t,d(t){t&&L(n),e[50](null),r=!1,l(c)}}}function Jr(t){let e,n;return e=new qe({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function qr(t){let e,n;return e=new Ve({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Xr(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="24" height="24" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","30px")},m(t,e){_(t,n,e)},i:t,o:t,d(t){t&&L(n)}}}function Gr(t){let e,n,s,i,l,o;const r=[Kr,Wr],c=[];function a(t,e){return"list"===t[27]?0:1}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item list svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[55](e),i=!0,l||(o=D(e,"click",t[42]),l=!0)},p(t,i){let l=n;n=a(t),n!==l&&(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s||(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[55](null),l=!1,o()}}}function Wr(t){let e,n;return e=new jn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Kr(t){let e,n;return e=new Rn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Yr(t){let e,n,s,i,l,o;const r=[Qr,Zr],c=[];function a(t,e){return t[18]?0:1}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item list svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[56](e),i=!0,l||(o=D(e,"click",t[40]),l=!0)},p(t,i){let l=n;n=a(t),n!==l&&(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s||(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[56](null),l=!1,o()}}}function Zr(t){let e,n;return e=new ln({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Qr(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="24" height="24" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","30px")},m(t,e){_(t,n,e)},i:t,o:t,d(t){t&&L(n)}}}function tc(t){let e,n,s,i,l,o;const r=[nc,ec],c=[];function a(t,e){return t[19]?0:1}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item love svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[57](e),i=!0,l||(o=D(e,"click",t[39]),l=!0)},p(t,i){let l=n;n=a(t),n===l?c[n].p(t,i):(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s?s.p(t,i):(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[57](null),l=!1,o()}}}function ec(t){let e,n,s,i;const l=[ic,sc],o=[];function r(t,e){return t[20]?0:1}return n=r(t),s=o[n]=l[n](t),{c(){e=O("span"),s.c(),j(e,"color",t[20]?"var(--primary-text-color)":"#fff")},m(t,s){_(t,e,s),o[n].m(e,null),i=!0},p(t,c){let a=n;n=r(t),n!==a&&(wt(),bt(o[a],1,1,(()=>{o[a]=null})),yt(),s=o[n],s||(s=o[n]=l[n](t),s.c()),xt(s,1),s.m(e,null)),(!i||1048576&c[0])&&j(e,"color",t[20]?"var(--primary-text-color)":"#fff")},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(t){t&&L(e),o[n].d()}}}function nc(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="24" height="24" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","30px")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}function sc(t){let e,n;return e=new dn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ic(t){let e,n;return e=new cn({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function lc(t){let e,n,s,i,l,o;const r=[ac,cc,rc,oc],c=[];function a(t,e){return"repeat"===t[25]?0:"repeatOnce"===t[25]?1:"heart"===t[25]?2:3}return n=a(t),s=c[n]=r[n](t),{c(){e=O("div"),s.c(),E(e,"class","tool-item mode svelte-13zz8w0")},m(s,r){_(s,e,r),c[n].m(e,null),t[59](e),i=!0,l||(o=D(e,"click",t[58]),l=!0)},p(t,i){let l=n;n=a(t),n===l?c[n].p(t,i):(wt(),bt(c[l],1,1,(()=>{c[l]=null})),yt(),s=c[n],s?s.p(t,i):(s=c[n]=r[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),c[n].d(),t[59](null),l=!1,o()}}}function oc(e){let n,s;return n=new ds({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(n.$$.fragment)},m(t,e){Lt(n,t,e),s=!0},p:t,i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){Tt(n,t)}}}function rc(t){let e,n,s;return n=new yn({props:{size:"20",style:"vertical-align: middle"}}),{c(){e=O("span"),_t(n.$$.fragment),E(e,"class","svelte-13zz8w0"),U(e,"heart-beat",t[30])},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,n){1073741824&n[0]&&U(e,"heart-beat",t[30])},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function cc(e){let n,s;return n=new ls({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(n.$$.fragment)},m(t,e){Lt(n,t,e),s=!0},p:t,i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){Tt(n,t)}}}function ac(e){let n,s;return n=new zs({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(n.$$.fragment)},m(t,e){Lt(n,t,e),s=!0},p:t,i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){Tt(n,t)}}}function uc(e){let n,s,i,l,o;return s=new Cn({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("div"),_t(s.$$.fragment),E(n,"class","tool-item comment svelte-13zz8w0")},m(t,r){_(t,n,r),Lt(s,n,null),e[60](n),i=!0,l||(o=D(n,"click",e[45]),l=!0)},p:t,i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(n),Tt(s),e[60](null),l=!1,o()}}}function dc(t){let e,n;return e=new ms({props:{size:"40px",style:"vertical-align: middle;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function fc(t){let e,n;return e=new Qn({props:{size:"24px",style:"vertical-align: middle;;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function pc(t){let e,n;return e=new Nn({props:{size:"80px",style:"vertical-align: middle;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function mc(t){let e,n;return e=new Ln({props:{size:"80px",style:"vertical-align: middle;height:80px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function hc(t){let e;return{c(){e=O("div"),E(e,"class","play-mask svelte-13zz8w0"),j(e,"background-color","rgba(0, 0, 0, "+(.9-parseFloat(t[29])/window.screen.height)+")")},m(t,n){_(t,e,n)},p(t,n){536870912&n[0]&&j(e,"background-color","rgba(0, 0, 0, "+(.9-parseFloat(t[29])/window.screen.height)+")")},d(t){t&&L(e)}}}function gc(t){let e,n,s,i,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,F,J,q,X,G,W,K,Y,Z,Q,tt,et,nt,st,it,lt,ot,rt,ct,at,ut,dt,ft,pt,mt,ht,gt,vt,$t,zt,kt,St,Ct,Mt=t[3].name+"",Ot=t[3].alia&&t[3].alia.length>0?`(${t[3].alia[0]})`:"",It=Ds(t[3].ar)+"",Bt=""===t[3].al.name?"":`- ${t[3].al.name}`,Ht=("FLAC"===t[31]||"试听"===t[31]?t[31]:t[31].toString().substring(0,t[31].toString().length-3)+"K")+"",Nt=t[33]&&0<parseFloat(t[29])<window.screen.height-40;const Dt=[Fr,Vr,Ur],Et=[];function Rt(t,e){return"cover"===t[27]?0:"lyric"===t[27]?1:t[28]||"list"!==t[27]?-1:2}~(r=Rt(t))&&(c=Et[r]=Dt[r](t)),T=new fi({props:{current:t[1]}}),T.$on("setCurrent",t[34]),T.$on("setTimeCurrent",t[35]);const Pt=[Xr,qr,Jr],At=[];function jt(t,e){return t[17]?0:"lyric"===t[27]?1:2}Z=jt(t),Q=At[Z]=Pt[Z](t);let Ut=!t[28]&&Gr(t),Vt=t[28]&&t[4]&&Yr(t),Ft=t[4]&&tc(t),Jt=!t[28]&&lc(t),qt="0"!=t[32]&&uc(t);const Xt=[fc,dc],Gt=[];function Wt(t,e){return t[28]?0:1}ct=Wt(t),at=Gt[ct]=Xt[ct](t);const Kt=[mc,pc],Yt=[];function Zt(t,e){return t[30]?0:1}ft=Zt(t),pt=Yt[ft]=Kt[ft](t),gt=new vs({props:{size:"40px",style:"vertical-align: middle;height:80px"}});let Qt=Nt&&hc(t);return zt=new bl({props:{isShow:t[22],title:"请选择歌手",list:t[21]}}),zt.$on("ChangeShow",t[67]),zt.$on("PickerClick",t[68]),{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),i.innerHTML='<div class="down-line svelte-13zz8w0"></div>',o=H(),c&&c.c(),a=H(),u=O("div"),d=O("div"),f=O("div"),p=O("div"),m=B(Mt),h=H(),g=O("span"),v=B(Ot),$=H(),w=O("div"),y=B(It),x=H(),b=O("span"),z=B(Bt),k=H(),C=O("div"),M=O("div"),_t(T.$$.fragment),I=H(),N=O("div"),R=O("div"),A=B(t[0]),U=H(),V=O("div"),F=O("span"),J=B(Ht),q=H(),X=O("div"),G=B(t[2]),W=H(),K=O("div"),Y=O("div"),Q.c(),tt=H(),Ut&&Ut.c(),et=H(),Vt&&Vt.c(),nt=H(),Ft&&Ft.c(),st=H(),Jt&&Jt.c(),it=H(),qt&&qt.c(),lt=H(),ot=O("div"),rt=O("div"),at.c(),ut=H(),dt=O("div"),pt.c(),mt=H(),ht=O("div"),_t(gt.$$.fragment),vt=H(),Qt&&Qt.c(),$t=H(),_t(zt.$$.fragment),E(i,"class","down svelte-13zz8w0"),E(s,"class","top-box svelte-13zz8w0"),E(g,"class","alia svelte-13zz8w0"),E(p,"class","name svelte-13zz8w0"),E(w,"class","songer svelte-13zz8w0"),E(f,"class","song svelte-13zz8w0"),E(M,"class","line svelte-13zz8w0"),E(R,"class","time-item start svelte-13zz8w0"),E(F,"class","quality-span svelte-13zz8w0"),E(V,"class","time-item quality svelte-13zz8w0"),E(X,"class","time-item end svelte-13zz8w0"),E(N,"class","time svelte-13zz8w0"),E(C,"class","progress"),E(d,"class","info svelte-13zz8w0"),E(Y,"class","tool-item lyric svelte-13zz8w0"),E(K,"class","tool svelte-13zz8w0"),E(rt,"class","con-item pre svelte-13zz8w0"),E(dt,"class","con-item pause svelte-13zz8w0"),E(ht,"class","con-item next svelte-13zz8w0"),E(ot,"class","control svelte-13zz8w0"),E(u,"class","control-box svelte-13zz8w0"),E(n,"class","play svelte-13zz8w0"),E(e,"class","play-bg svelte-13zz8w0"),j(e,"background","url("+t[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800)"),j(e,"top",t[29])},m(l,c){_(l,e,c),S(e,n),S(n,s),S(s,i),S(s,o),~r&&Et[r].m(s,null),S(n,a),S(n,u),S(u,d),S(d,f),S(f,p),S(p,m),S(p,h),S(p,g),S(g,v),S(f,$),S(f,w),S(w,y),S(w,x),S(w,b),S(b,z),S(d,k),S(d,C),S(C,M),Lt(T,M,null),S(C,I),S(C,N),S(N,R),S(R,A),S(N,U),S(N,V),S(V,F),S(F,J),S(N,q),S(N,X),S(X,G),S(u,W),S(u,K),S(K,Y),At[Z].m(Y,null),t[54](Y),S(K,tt),Ut&&Ut.m(K,null),S(K,et),Vt&&Vt.m(K,null),S(K,nt),Ft&&Ft.m(K,null),S(K,st),Jt&&Jt.m(K,null),S(K,it),qt&&qt.m(K,null),S(u,lt),S(u,ot),S(ot,rt),Gt[ct].m(rt,null),t[62](rt),S(ot,ut),S(ot,dt),Yt[ft].m(dt,null),t[63](dt),S(ot,mt),S(ot,ht),Lt(gt,ht,null),t[65](ht),t[66](e),_(l,vt,c),Qt&&Qt.m(l,c),_(l,$t,c),Lt(zt,l,c),kt=!0,St||(Ct=[D(i,"click",t[36]),D(i,"touchstart",t[46]),D(i,"touchend",t[47]),D(i,"touchmove",t[48]),D(w,"click",t[52]),D(V,"click",t[53]),D(Y,"click",t[41]),D(rt,"click",t[61]),D(dt,"click",t[64]),D(ht,"click",t[37])],St=!0)},p(t,n){let i=r;r=Rt(t),r===i?~r&&Et[r].p(t,n):(c&&(wt(),bt(Et[i],1,1,(()=>{Et[i]=null})),yt()),~r?(c=Et[r],c?c.p(t,n):(c=Et[r]=Dt[r](t),c.c()),xt(c,1),c.m(s,null)):c=null),(!kt||8&n[0])&&Mt!==(Mt=t[3].name+"")&&P(m,Mt),(!kt||8&n[0])&&Ot!==(Ot=t[3].alia&&t[3].alia.length>0?`(${t[3].alia[0]})`:"")&&P(v,Ot),(!kt||8&n[0])&&It!==(It=Ds(t[3].ar)+"")&&P(y,It),(!kt||8&n[0])&&Bt!==(Bt=""===t[3].al.name?"":`- ${t[3].al.name}`)&&P(z,Bt);const l={};2&n[0]&&(l.current=t[1]),T.$set(l),(!kt||1&n[0])&&P(A,t[0]),(!kt||1&n[1])&&Ht!==(Ht=("FLAC"===t[31]||"试听"===t[31]?t[31]:t[31].toString().substring(0,t[31].toString().length-3)+"K")+"")&&P(J,Ht),(!kt||4&n[0])&&P(G,t[2]);let o=Z;Z=jt(t),Z!==o&&(wt(),bt(At[o],1,1,(()=>{At[o]=null})),yt(),Q=At[Z],Q||(Q=At[Z]=Pt[Z](t),Q.c()),xt(Q,1),Q.m(Y,null)),t[28]?Ut&&(wt(),bt(Ut,1,1,(()=>{Ut=null})),yt()):Ut?(Ut.p(t,n),268435456&n[0]&&xt(Ut,1)):(Ut=Gr(t),Ut.c(),xt(Ut,1),Ut.m(K,et)),t[28]&&t[4]?Vt?(Vt.p(t,n),268435472&n[0]&&xt(Vt,1)):(Vt=Yr(t),Vt.c(),xt(Vt,1),Vt.m(K,nt)):Vt&&(wt(),bt(Vt,1,1,(()=>{Vt=null})),yt()),t[4]?Ft?(Ft.p(t,n),16&n[0]&&xt(Ft,1)):(Ft=tc(t),Ft.c(),xt(Ft,1),Ft.m(K,st)):Ft&&(wt(),bt(Ft,1,1,(()=>{Ft=null})),yt()),t[28]?Jt&&(wt(),bt(Jt,1,1,(()=>{Jt=null})),yt()):Jt?(Jt.p(t,n),268435456&n[0]&&xt(Jt,1)):(Jt=lc(t),Jt.c(),xt(Jt,1),Jt.m(K,it)),"0"!=t[32]?qt?(qt.p(t,n),2&n[1]&&xt(qt,1)):(qt=uc(t),qt.c(),xt(qt,1),qt.m(K,null)):qt&&(wt(),bt(qt,1,1,(()=>{qt=null})),yt());let a=ct;ct=Wt(t),ct!==a&&(wt(),bt(Gt[a],1,1,(()=>{Gt[a]=null})),yt(),at=Gt[ct],at||(at=Gt[ct]=Xt[ct](t),at.c()),xt(at,1),at.m(rt,null));let u=ft;ft=Zt(t),ft!==u&&(wt(),bt(Yt[u],1,1,(()=>{Yt[u]=null})),yt(),pt=Yt[ft],pt||(pt=Yt[ft]=Kt[ft](t),pt.c()),xt(pt,1),pt.m(dt,null)),(!kt||8&n[0])&&j(e,"background","url("+t[3].al.picUrl.replace(/^http:/,"https:")+"?param=800y800)"),(!kt||536870912&n[0])&&j(e,"top",t[29]),536870912&n[0]|4&n[1]&&(Nt=t[33]&&0<parseFloat(t[29])<window.screen.height-40),Nt?Qt?Qt.p(t,n):(Qt=hc(t),Qt.c(),Qt.m($t.parentNode,$t)):Qt&&(Qt.d(1),Qt=null);const d={};4194304&n[0]&&(d.isShow=t[22]),2097152&n[0]&&(d.list=t[21]),zt.$set(d)},i(t){kt||(xt(c),xt(T.$$.fragment,t),xt(Q),xt(Ut),xt(Vt),xt(Ft),xt(Jt),xt(qt),xt(at),xt(pt),xt(gt.$$.fragment,t),xt(zt.$$.fragment,t),kt=!0)},o(t){bt(c),bt(T.$$.fragment,t),bt(Q),bt(Ut),bt(Vt),bt(Ft),bt(Jt),bt(qt),bt(at),bt(pt),bt(gt.$$.fragment,t),bt(zt.$$.fragment,t),kt=!1},d(n){n&&L(e),~r&&Et[r].d(),Tt(T),At[Z].d(),t[54](null),Ut&&Ut.d(),Vt&&Vt.d(),Ft&&Ft.d(),Jt&&Jt.d(),qt&&qt.d(),Gt[ct].d(),t[62](null),Yt[ft].d(),t[63](null),Tt(gt),t[65](null),t[66](null),n&&L(vt),Qt&&Qt.d(n),n&&L($t),Tt(zt,n),St=!1,l(Ct)}}}function vc(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$,w,y,x,b,z,k,S,C,M;f(t,hi,(t=>n(23,a=t))),f(t,Zt,(t=>n(24,u=t))),f(t,Dl,(t=>n(25,d=t))),f(t,Ml,(t=>n(74,p=t))),f(t,_l,(t=>n(26,m=t))),f(t,Nl,(t=>n(27,h=t))),f(t,Cl,(t=>n(3,g=t))),f(t,Hl,(t=>n(75,v=t))),f(t,mi,(t=>n(4,$=t))),f(t,Ol,(t=>n(76,w=t))),f(t,Tl,(t=>n(28,y=t))),f(t,Il,(t=>n(77,x=t))),f(t,po,(t=>n(49,b=t))),f(t,Ll,(t=>n(29,z=t))),f(t,zl,(t=>n(30,k=t))),f(t,El,(t=>n(31,S=t))),f(t,zi,(t=>n(32,C=t))),f(t,kl,(t=>n(33,M=t)));let _,L,T,O,I,B,H,N,D,E,R,P,A,j,{currentTime:U="0:00"}=e,{currentTimeLong:V=0}=e,{endTime:F=0}=e,J=0,q=0,X=0;function G(){if(y)K(x,"next"),Nl.set("cover");else if(p===m.length-1)Ps("已经是最后一首了");else if("lyric"===h&&Nl.set("cover"),"shuffle"===d){let t=Math.floor(Math.random()*(m.length-1));K(m[t],"shuffle",t)}else Ml.set(p+1),K(m[p],"next")}function W(){0===p?Ps("已经是第一首了"):("lyric"===h&&Nl.set("cover"),K(m[p-1],"pre"))}async function K(t,e,n){const s=await Hr(t.id);200===s.code&&(s.data[0].url?(t.url=s.data[0].url.replace(/^http:/,"https:"),1===s.data[0].fee&&null!=s.data[0].freeTrialInfo?El.set("试听"):"flac"===s.data[0].type?El.set("FLAC"):El.set(s.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),y?(!async function(){const t=await Dr();200===t.code&&(t.data[0].al=t.data[0].album,t.data[0].ar=t.data[0].artists,t.data[0].alia=t.data[0].alias,Il.set(t.data[0]),Hr(t.data[0].id))}(),Ol.set(t),Cl.set(t),_l.set([w]),Ml.set(0),localStorage.setItem("currentSong",JSON.stringify(t))):"next"===e?p!==m.length-1&&Hr(m[p+1].id):"shuffle"===e?p!==m.length-1&&Ml.set(n):Ml.set(p-1)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}function Z(t){"heart"===d?Ps("心动模式无需切换"):"repeat"===d?Dl.set("shuffle"):"shuffle"===d?Dl.set("repeatOnce"):Dl.set("repeat")}Y((()=>{Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover"),_&&Js(_),L&&Js(L),T&&Js(T),O&&Js(O),I&&Js(I),B&&Js(B),H&&Js(H),N&&Js(N),D&&Js(D),E&&Js(E)}));return t.$$set=t=>{"currentTime"in t&&n(0,U=t.currentTime),"currentTimeLong"in t&&n(1,V=t.currentTimeLong),"endTime"in t&&n(2,F=t.endTime)},t.$$.update=()=>{24&t.$$.dirty[0]|262144&t.$$.dirty[1]&&n(20,s=!!$&&b.includes(g.id)),8&t.$$.dirty[0]&&n(21,c=g.ar)},n(19,i=!1),n(18,l=!1),n(17,o=!1),n(22,r=!1),[U,V,F,g,$,_,L,T,O,I,B,H,N,D,E,R,j,o,l,i,s,c,r,a,u,d,m,h,y,z,k,S,C,M,function(t){window.audioDOM.currentTime=t.detail.current/100*window.audioDOM.duration,n(0,U=Gs(window.audioDOM.currentTime)),n(1,V=window.audioDOM.currentTime/window.audioDOM.duration*100),n(2,F="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime)),window.audioDOM.play(),zl.set(!0)},function(t){window.audioDOM.currentTime=t.detail.timeCurrent/100*window.audioDOM.duration,n(0,U=Gs(window.audioDOM.currentTime)),n(1,V=window.audioDOM.currentTime/window.audioDOM.duration*100),n(2,F="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime))},function(){Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")},G,W,async function(){if($){n(19,i=!0);if(200===(await(t={id:g.id,like:!s},t.timestamp=(new Date).getTime(),Br({url:"/like",method:"get",params:t}))).code){const t=JSON.parse(localStorage.getItem("useLoveSongIds"));if(s){let e=t.indexOf(g.id);t.splice(e,1)}else t.unshift(g.id);n(19,i=!1),po.set(JSON.stringify(t)),localStorage.setItem("useLoveSongIds",JSON.stringify(t))}else n(19,i=!1)}else Ps("当前未登录");var t},async function(){var t;n(18,l=!0),200===(await(t=g.id,Br({url:"/fm_trash",method:"post",params:{timestamp:(new Date).getTime(),id:t}}))).code&&(n(18,l=!1),G())},function(){"lyric"!==h?async function(){if(v.songId===g.id)Nl.set("lyric");else{n(17,o=!0);const e=await(t=g.id,Br({url:"/lyric",method:"get",params:{id:t}}));200===e.code?(n(17,o=!1),e.nolyric||e.needDesc||""===e.lrc.lyric?(Ps("🙈🙈么有歌词哦!!🙈🙈"),Hl.set({songId:null,lyric:null,tlyric:null}),localStorage.setItem("currentLyric",JSON.stringify({songId:null,lyric:null,tlyric:null}))):(Hl.set({songId:g.id,lyric:e.lrc.lyric,tlyric:e.tlyric.lyric}),localStorage.setItem("currentLyric",JSON.stringify({songId:g.id,lyric:e.lrc.lyric,tlyric:e.tlyric.lyric})),Nl.set("lyric"))):n(17,o=!1)}var t}():Nl.set("cover")},function(){if("list"!==h)if(p>200){!0===confirm("当前播放歌曲在播放列表中位置超过 200,显示播放列表将自动滚动至当前歌曲,极短时间内渲染大量页面会严重消耗设备性能😈😈。可以考虑到歌单详情页(已做了懒加载)查看列表哦😅。🤔确定显示播放列表吗🤔?")&&(m.length>200?Ps("列表太长,等我加载...🥱🥱",1e3,(()=>{Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100)})):(Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100)))}else m.length>200?Ps("列表太长,等我加载...🥱🥱",1e3,(()=>{Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100)})):(Nl.set("list"),setTimeout((()=>{n(16,j.scrollTop=60*p,j)}),100));else Nl.set("cover")},Z,function(){Nl.set("cover")},function(){Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),"/comments"!==u&&(a&&hi.set(!1),me("/comments"))},function(t){q=(new Date).getTime(),P=t.changedTouches[0].clientY,J=0,Ll.set(J+"px")},function(t){X=(new Date).getTime(),A=t.changedTouches[0].clientY,J>=window.screen.height/2?(Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")):A-P<=100?Ll.set("0px"):A-P>100&&(A-P)/(X-q)>=.8?(Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")):A-P>100&&(A-P)/(X-q)<=.3?Ll.set("0px"):.3<(A-P)/(X-q)<.8&&A-P>250?(Ll.set(window.screen.height+"px"),kl.set(!1),Nl.set("cover")):Ll.set("0px")},function(t){t.preventDefault(),t.stopPropagation(),parseFloat(R.style.top)>=0&&(J=t.changedTouches[0].clientY-P,Ll.set(J+"px"))},b,function(t){st[t?"unshift":"push"]((()=>{E=t,n(14,E)}))},function(t){st[t?"unshift":"push"]((()=>{j=t,n(16,j)}))},()=>{1===c.length?0!=c[0].id&&(Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),hi.set(!1),xi.set(c[0].id),me(`/artist?id=${c[0].id}`)):n(22,r=!0)},()=>{Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),"/brSelect"!==u&&(a&&hi.set(!1),me("/brSelect"))},function(t){st[t?"unshift":"push"]((()=>{_=t,n(5,_)}))},function(t){st[t?"unshift":"push"]((()=>{L=t,n(6,L)}))},function(t){st[t?"unshift":"push"]((()=>{O=t,n(8,O)}))},function(t){st[t?"unshift":"push"]((()=>{T=t,n(7,T)}))},t=>Z(),function(t){st[t?"unshift":"push"]((()=>{I=t,n(9,I)}))},function(t){st[t?"unshift":"push"]((()=>{B=t,n(10,B)}))},()=>{y||W()},function(t){st[t?"unshift":"push"]((()=>{H=t,n(11,H)}))},function(t){st[t?"unshift":"push"]((()=>{N=t,n(12,N)}))},()=>{k?(window.audioDOM.pause(),zl.set(!1),localStorage.setItem("pauseTimes",(new Date).getTime())):(((new Date).getTime()-Number(localStorage.getItem("pauseTimes")))/1e3/60>30&&(window.audioDOM.src=`https://music.163.com/song/media/outer/url?id=${g.id}.mp3`),window.audioDOM.play(),zl.set(!0))},function(t){st[t?"unshift":"push"]((()=>{D=t,n(13,D)}))},function(t){st[t?"unshift":"push"]((()=>{R=t,n(15,R)}))},t=>{n(22,r=t.detail.isShow)},t=>{const{item:e}=t.detail;0!=e.id&&(Nl.set("cover"),Ll.set(window.screen.height+"px"),kl.set(!1),hi.set(!1),xi.set(e.id),me(`/artist?id=${e.id}`))}]}class $c extends It{constructor(t){super(),Ot(this,t,vc,gc,r,{currentTime:0,currentTimeLong:1,endTime:2},null,[-1,-1,-1])}}function wc(t){let e,n;return{c(){e=O("img"),a(e.src,n=t[4].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")||E(e,"src",n),E(e,"alt",""),E(e,"class","svelte-1ekrfnw")},m(t,n){_(t,e,n)},p(t,s){16&s&&!a(e.src,n=t[4].al.picUrl.replace(/^http:/,"https:")+"?param=800y800")&&E(e,"src",n)},d(t){t&&L(e)}}}function yc(t){let e,n;return e=new Nn({props:{size:"40",style:"vertical-align: middle;height:57px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function xc(t){let e,n;return e=new Ln({props:{size:"40",style:"vertical-align: middle;height:57px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function bc(t){let e,n,s,i,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R=t[4].name+"",A=t[4].alia&&t[4].alia.length>0?`(${t[4].alia[0]})`:"",U=Ds(t[4].ar)+"",V=""===t[4].al.name?"":`- ${t[4].al.name}`;o=new uo({props:{height:50,$$slots:{default:[wc]},$$scope:{ctx:t}}});const F=[xc,yc],J=[];function q(t,e){return t[5]?0:1}return b=q(t),z=J[b]=F[b](t),M=new ys({props:{size:"40",style:"vertical-align: middle;height:57px"}}),{c(){e=O("div"),n=O("div"),s=H(),i=O("div"),_t(o.$$.fragment),r=H(),c=O("div"),a=O("div"),u=B(R),d=H(),f=O("span"),p=B(A),m=H(),h=O("div"),g=B(U),v=H(),$=O("span"),w=B(V),y=H(),x=O("div"),z.c(),k=H(),C=O("div"),_t(M.$$.fragment),E(n,"class","progress svelte-1ekrfnw"),j(n,"width",t[0]/100*window.screen.width+"px"),E(i,"class","cover svelte-1ekrfnw"),j(i,"left",t[3]+"px"),E(f,"class","alia svelte-1ekrfnw"),E(a,"class","name svelte-1ekrfnw"),E(h,"class","songer svelte-1ekrfnw"),E(c,"class","info svelte-1ekrfnw"),j(c,"left",t[3]+"px"),E(x,"class","pause svelte-1ekrfnw"),E(C,"class","next svelte-1ekrfnw"),E(e,"class","play secondary svelte-1ekrfnw"),j(e,"bottom",(t[6]?56:0)+"px")},m(l,z){_(l,e,z),S(e,n),S(e,s),S(e,i),Lt(o,i,null),S(e,r),S(e,c),S(c,a),S(a,u),S(a,d),S(a,f),S(f,p),S(c,m),S(c,h),S(h,g),S(h,v),S(h,$),S($,w),S(e,y),S(e,x),J[b].m(x,null),t[13](x),S(e,k),S(e,C),Lt(M,C,null),t[14](C),T=!0,I||(N=[D(n,"click",t[7]),D(i,"click",t[7]),D(c,"click",t[7]),D(x,"click",t[8]),D(C,"click",t[9]),D(e,"touchstart",t[10]),D(e,"touchend",t[11]),D(e,"touchmove",t[12])],I=!0)},p(t,[s]){(!T||1&s)&&j(n,"width",t[0]/100*window.screen.width+"px");const l={};268435472&s&&(l.$$scope={dirty:s,ctx:t}),o.$set(l),(!T||8&s)&&j(i,"left",t[3]+"px"),(!T||16&s)&&R!==(R=t[4].name+"")&&P(u,R),(!T||16&s)&&A!==(A=t[4].alia&&t[4].alia.length>0?`(${t[4].alia[0]})`:"")&&P(p,A),(!T||16&s)&&U!==(U=Ds(t[4].ar)+"")&&P(g,U),(!T||16&s)&&V!==(V=""===t[4].al.name?"":`- ${t[4].al.name}`)&&P(w,V),(!T||8&s)&&j(c,"left",t[3]+"px");let r=b;b=q(t),b!==r&&(wt(),bt(J[r],1,1,(()=>{J[r]=null})),yt(),z=J[b],z||(z=J[b]=F[b](t),z.c()),xt(z,1),z.m(x,null)),(!T||64&s)&&j(e,"bottom",(t[6]?56:0)+"px")},i(t){T||(xt(o.$$.fragment,t),xt(z),xt(M.$$.fragment,t),T=!0)},o(t){bt(o.$$.fragment,t),bt(z),bt(M.$$.fragment,t),T=!1},d(n){n&&L(e),Tt(o),J[b].d(),t[13](null),Tt(M),t[14](null),I=!1,l(N)}}}function zc(t,e,n){let s,i,l,o,r,c,a,u,d,p;f(t,Ml,(t=>n(19,i=t))),f(t,_l,(t=>n(20,l=t))),f(t,Ol,(t=>n(21,o=t))),f(t,Tl,(t=>n(22,r=t))),f(t,Dl,(t=>n(23,c=t))),f(t,Il,(t=>n(24,a=t))),f(t,Cl,(t=>n(4,u=t))),f(t,zl,(t=>n(5,d=t))),f(t,hi,(t=>n(6,p=t)));let m,h,g,v,{currentTimeLong:$=window.audioDOM.currentTime/window.audioDOM.duration}=e,w=0,y=0;function x(){if(r)b(a,"fm");else if(i===l.length-1)Ps("已经是最后一首了");else if("shuffle"===c){let t=Math.floor(Math.random()*(l.length-1));b(l[t],"shuffle",t)}else Ml.set(i+1),b(l[i],"next")}async function b(t,e,n){const s=await Hr(t.id);200===s.code&&(s.data[0].url?(t.url=s.data[0].url.replace(/^http:/,"https:"),1===s.data[0].fee&&null!=s.data[0].freeTrialInfo?El.set("试听"):"flac"===s.data[0].type?El.set("FLAC"):El.set(s.data[0].br),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),r?(!async function(){const t=await Dr();200===t.code&&(t.data[0].al=t.data[0].album,t.data[0].ar=t.data[0].artists,t.data[0].alia=t.data[0].alias,Il.set(t.data[0]))}(),Ol.set(t),Cl.set(t),_l.set([o]),Ml.set(0),localStorage.setItem("currentSong",JSON.stringify(t))):"shuffle"===e?(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(n)):(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),i!==l.length-1&&Hr(l[i+1].id))):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}return Y((()=>{m&&Js(m),h&&Js(h)})),t.$$set=t=>{"currentTimeLong"in t&&n(0,$=t.currentTimeLong)},n(3,s=0),[$,m,h,s,u,d,p,function(){kl.set(!0),Ll.set("0px")},function(){d?(window.audioDOM.pause(),zl.set(!1),localStorage.setItem("pauseTimes",(new Date).getTime())):(((new Date).getTime()-Number(localStorage.getItem("pauseTimes")))/1e3/60>30&&(window.audioDOM.src=`https://music.163.com/song/media/outer/url?id=${u.id}.mp3`),window.audioDOM.play(),zl.set(!0))},x,function(t){w=(new Date).getTime(),g=t.changedTouches[0].clientX},function(t){n(3,s=0),y=(new Date).getTime(),v=t.changedTouches[0].clientX,(g-v>100||g-v<=100&&(g-v)/(y-w)>=.5)&&x()},function(t){t.preventDefault(),t.stopPropagation(),t.changedTouches[0].clientX-g<0&&n(3,s=t.changedTouches[0].clientX-g)},function(t){st[t?"unshift":"push"]((()=>{m=t,n(1,m)}))},function(t){st[t?"unshift":"push"]((()=>{h=t,n(2,h)}))}]}class kc extends It{constructor(t){super(),Ot(this,t,zc,bc,r,{currentTimeLong:0})}}function Sc(e){let n;return{c(){n=O("div"),n.innerHTML='<div class="sk-chase svelte-xii8w4"><div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div> \n    <div class="sk-chase-dot svelte-xii8w4"></div></div>',E(n,"class","bg svelte-xii8w4")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}class Cc extends It{constructor(t){super(),Ot(this,t,null,Sc,r,{})}}function Mc(t){return t.timestamp=(new Date).getTime(),Br({url:"/user/playlist",method:"get",params:t})}function _c(t){return Br({url:"/artist/sublist",method:"get",params:{limit:t.limit,timestamp:(new Date).getTime()}})}function Lc(t){let e,n,s,i;const l=[Oc,Tc],o=[];function r(t,e){return"icon"===t[3].type?0:1}return n=r(t),s=o[n]=l[n](t),{c(){e=O("div"),s.c(),E(e,"class","right svelte-f8uv3r")},m(s,l){_(s,e,l),o[n].m(e,null),t[8](e),i=!0},p(t,i){let c=n;n=r(t),n===c?o[n].p(t,i):(wt(),bt(o[c],1,1,(()=>{o[c]=null})),yt(),s=o[n],s?s.p(t,i):(s=o[n]=l[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(s){s&&L(e),o[n].d(),t[8](null)}}}function Tc(e){let n,s,i,l,o=e[3].text+"";return{c(){n=O("span"),s=B(o),E(n,"class","right-text svelte-f8uv3r")},m(t,o){_(t,n,o),S(n,s),i||(l=D(n,"click",e[7]),i=!0)},p(t,e){8&e&&o!==(o=t[3].text+"")&&P(s,o)},i:t,o:t,d(t){t&&L(n),i=!1,l()}}}function Oc(t){let e,n,s,i,l;var o=t[3].path;return o&&(n=new o({props:{size:"24"}})),{c(){e=O("span"),n&&_t(n.$$.fragment),E(e,"class","svelte-f8uv3r"),U(e,"rotate-icon",t[2])},m(o,r){_(o,e,r),n&&Lt(n,e,null),s=!0,i||(l=D(e,"click",t[6]),i=!0)},p(t,s){if(o!==(o=t[3].path)){if(n){wt();const t=n;bt(t.$$.fragment,1,0,(()=>{Tt(t,1)})),yt()}o?(n=new o({props:{size:"24"}}),_t(n.$$.fragment),xt(n.$$.fragment,1),Lt(n,e,null)):n=null}4&s&&U(e,"rotate-icon",t[2])},i(t){s||(n&&xt(n.$$.fragment,t),s=!0)},o(t){n&&bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),n&&Tt(n),i=!1,l()}}}function Ic(t){let e,n,s,i,l,o,r,c,a,u=t[3]&&Lc(t);return{c(){e=O("div"),n=O("div"),s=O("h1"),i=B(t[0]),l=O("span"),o=B("   "),r=B(t[1]),c=H(),u&&u.c(),E(l,"class","desc svelte-f8uv3r"),E(s,"class","svelte-f8uv3r"),E(n,"class","title"),E(e,"class","top-title svelte-f8uv3r")},m(t,d){_(t,e,d),S(e,n),S(n,s),S(s,i),S(s,l),S(l,o),S(l,r),S(e,c),u&&u.m(e,null),a=!0},p(t,[n]){(!a||1&n)&&P(i,t[0]),(!a||2&n)&&P(r,t[1]),t[3]?u?(u.p(t,n),8&n&&xt(u,1)):(u=Lc(t),u.c(),xt(u,1),u.m(e,null)):u&&(wt(),bt(u,1,1,(()=>{u=null})),yt())},i(t){a||(xt(u),a=!0)},o(t){bt(u),a=!1},d(t){t&&L(e),u&&u.d()}}}function Bc(t,e,n){let{title:s="首页"}=e,{desc:i="暂无描述"}=e,{isRefresh:l=!1}=e,{topTitleRightList:o={}}=e;const r=tt();function c(t){r("IconClick",{index:t})}let a;Y((()=>(a&&Js(a),()=>{n(4,a=null)}))),Z((()=>{a&&Js(a)}));return t.$$set=t=>{"title"in t&&n(0,s=t.title),"desc"in t&&n(1,i=t.desc),"isRefresh"in t&&n(2,l=t.isRefresh),"topTitleRightList"in t&&n(3,o=t.topTitleRightList)},[s,i,l,o,a,c,()=>c(0),()=>c(0),function(t){st[t?"unshift":"push"]((()=>{a=t,n(4,a)}))}]}class Hc extends It{constructor(t){super(),Ot(this,t,Bc,Ic,r,{title:0,desc:1,isRefresh:2,topTitleRightList:3})}}const Nc=Nt({}),Dc=Nt([]);function Ec(t){let e,n;return{c(){e=O("img"),a(e.src,n=t[0].replace(/^http:/,"https:")+`?param=${2*t[4]}y${2*t[4]}`)||E(e,"src",n),E(e,"alt",""),E(e,"class","svelte-tuixc8")},m(t,n){_(t,e,n)},p(t,s){17&s&&!a(e.src,n=t[0].replace(/^http:/,"https:")+`?param=${2*t[4]}y${2*t[4]}`)&&E(e,"src",n)},d(t){t&&L(e)}}}function Rc(t){let e,n;return{c(){e=O("div"),n=B(t[3]),E(e,"class","copywriter svelte-tuixc8")},m(t,s){_(t,e,s),S(e,n)},p(t,e){8&e&&P(n,t[3])},d(t){t&&L(e)}}}function Pc(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v=Es(t[1])+"";s=new uo({props:{height:t[4],$$slots:{default:[Ec]},$$scope:{ctx:t}}}),r=new Fn({});let $=t[3]&&null!==t[3]&&""!==t[3]&&Rc(t);return{c(){e=O("div"),n=O("div"),_t(s.$$.fragment),i=H(),l=O("div"),o=O("span"),_t(r.$$.fragment),c=H(),a=B(v),u=H(),d=O("div"),f=B(t[2]),p=H(),$&&$.c(),E(n,"class","cover-img svelte-tuixc8"),j(n,"width",t[4]+"px"),j(n,"height",t[4]+"px"),j(o,"position","relative"),j(o,"top","1px"),E(l,"class","play-num svelte-tuixc8"),E(d,"class","name svelte-tuixc8"),j(d,"width",t[4]+"px"),E(e,"class","cover svelte-tuixc8"),j(e,"width",t[4]+"px")},m(v,w){_(v,e,w),S(e,n),Lt(s,n,null),S(e,i),S(e,l),S(l,o),Lt(r,o,null),S(l,c),S(l,a),S(e,u),S(e,d),S(d,f),S(e,p),$&&$.m(e,null),t[9](e),m=!0,h||(g=D(e,"click",t[6]),h=!0)},p(t,[i]){const l={};16&i&&(l.height=t[4]),2065&i&&(l.$$scope={dirty:i,ctx:t}),s.$set(l),(!m||16&i)&&j(n,"width",t[4]+"px"),(!m||16&i)&&j(n,"height",t[4]+"px"),(!m||2&i)&&v!==(v=Es(t[1])+"")&&P(a,v),(!m||4&i)&&P(f,t[2]),(!m||16&i)&&j(d,"width",t[4]+"px"),t[3]&&null!==t[3]&&""!==t[3]?$?$.p(t,i):($=Rc(t),$.c(),$.m(e,null)):$&&($.d(1),$=null),(!m||16&i)&&j(e,"width",t[4]+"px")},i(t){m||(xt(s.$$.fragment,t),xt(r.$$.fragment,t),m=!0)},o(t){bt(s.$$.fragment,t),bt(r.$$.fragment,t),m=!1},d(n){n&&L(e),Tt(s),Tt(r),$&&$.d(),t[9](null),h=!1,g()}}}function Ac(t,e,n){let s,{coverImgUrl:i=""}=e,{playCount:l=0}=e,{name:o=""}=e,{copywriter:r=""}=e,{id:c=0}=e,{width:a=150}=e,{trackCount:u=0}=e;return Y((()=>{s&&Js(s)})),t.$$set=t=>{"coverImgUrl"in t&&n(0,i=t.coverImgUrl),"playCount"in t&&n(1,l=t.playCount),"name"in t&&n(2,o=t.name),"copywriter"in t&&n(3,r=t.copywriter),"id"in t&&n(7,c=t.id),"width"in t&&n(4,a=t.width),"trackCount"in t&&n(8,u=t.trackCount)},[i,l,o,r,a,s,function(){hi.set(!1),me(`/playlist?id=${c}`)},c,u,function(t){st[t?"unshift":"push"]((()=>{s=t,n(5,s)}))}]}class jc extends It{constructor(t){super(),Ot(this,t,Ac,Pc,r,{coverImgUrl:0,playCount:1,name:2,copywriter:3,id:7,width:4,trackCount:8})}}function Uc(t,e,n){const s=t.slice();return s[12]=e[n],s}function Vc(t){let e,n,s,i,l,o;return l=new Oe({props:{size:"24",style:"vertical-align: middle;"}}),{c(){e=O("div"),n=B(t[5]),s=H(),i=O("span"),_t(l.$$.fragment),E(i,"class","title-icon svelte-f5vwj4"),E(e,"class","title-right svelte-f5vwj4")},m(t,r){_(t,e,r),S(e,n),S(e,s),S(e,i),Lt(l,i,null),o=!0},p(t,e){(!o||32&e)&&P(n,t[5])},i(t){o||(xt(l.$$.fragment,t),o=!0)},o(t){bt(l.$$.fragment,t),o=!1},d(t){t&&L(e),Tt(l)}}}function Fc(t){let e,n,s;return n=new Yi({props:{tipTextList:t[4]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","tip svelte-f5vwj4")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};16&e&&(s.tipTextList=t[4]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Jc(t){let e,n,s,i;return n=new jc({props:{name:t[12].name,coverImgUrl:t[12].coverImgUrl,id:t[12].id,width:220,playCount:t[12].playCount,copywriter:t[12].copywriter?t[12].copywriter:"",trackCount:t[12].trackCount}}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),E(e,"class","item svelte-f5vwj4")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),i=!0},p(t,e){const s={};2&e&&(s.name=t[12].name),2&e&&(s.coverImgUrl=t[12].coverImgUrl),2&e&&(s.id=t[12].id),2&e&&(s.playCount=t[12].playCount),2&e&&(s.copywriter=t[12].copywriter?t[12].copywriter:""),2&e&&(s.trackCount=t[12].trackCount),n.$set(s)},i(t){i||(xt(n.$$.fragment,t),i=!0)},o(t){bt(n.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(n)}}}function qc(t){let e,n,s,i,l,o,r,c,a,u,d,f,m=t[2]&&Vc(t),$=t[3]&&Fc(t);const w=t[9].default,y=p(w,t,t[8],null);let x=t[1],b=[];for(let e=0;e<x.length;e+=1)b[e]=Jc(Uc(t,x,e));const z=t=>bt(b[t],1,1,(()=>{b[t]=null}));return{c(){e=O("div"),n=O("div"),s=O("div"),i=B(t[0]),l=H(),m&&m.c(),o=H(),$&&$.c(),r=H(),y&&y.c(),c=H(),a=O("div");for(let t=0;t<b.length;t+=1)b[t].c();E(s,"class","title-left svelte-f5vwj4"),E(n,"class","title svelte-f5vwj4"),E(a,"class","list svelte-f5vwj4"),E(e,"class","grid svelte-f5vwj4")},m(p,h){_(p,e,h),S(e,n),S(n,s),S(s,i),S(n,l),m&&m.m(n,null),t[10](n),S(e,o),$&&$.m(e,null),S(e,r),y&&y.m(e,null),S(e,c),S(e,a);for(let t=0;t<b.length;t+=1)b[t].m(a,null);u=!0,d||(f=D(n,"click",t[7]),d=!0)},p(t,[s]){if((!u||1&s)&&P(i,t[0]),t[2]?m?(m.p(t,s),4&s&&xt(m,1)):(m=Vc(t),m.c(),xt(m,1),m.m(n,null)):m&&(wt(),bt(m,1,1,(()=>{m=null})),yt()),t[3]?$?($.p(t,s),8&s&&xt($,1)):($=Fc(t),$.c(),xt($,1),$.m(e,r)):$&&(wt(),bt($,1,1,(()=>{$=null})),yt()),y&&y.p&&(!u||256&s)&&g(y,w,t,t[8],u?h(w,t[8],s,null):v(t[8]),null),2&s){let e;for(x=t[1],e=0;e<x.length;e+=1){const n=Uc(t,x,e);b[e]?(b[e].p(n,s),xt(b[e],1)):(b[e]=Jc(n),b[e].c(),xt(b[e],1),b[e].m(a,null))}for(wt(),e=x.length;e<b.length;e+=1)z(e);yt()}},i(t){if(!u){xt(m),xt($),xt(y,t);for(let t=0;t<x.length;t+=1)xt(b[t]);u=!0}},o(t){bt(m),bt($),bt(y,t),b=b.filter(Boolean);for(let t=0;t<b.length;t+=1)bt(b[t]);u=!1},d(n){n&&L(e),m&&m.d(),t[10](null),$&&$.d(),y&&y.d(n),T(b,n),d=!1,f()}}}function Xc(t,e,n){let{$$slots:s={},$$scope:i}=e,{title:l=""}=e,{playList:o=[]}=e,{isShowMore:r=!0}=e,{isShowTip:c=!1}=e,{tipTextList:a=""}=e,{iconText:u="更多"}=e;const d=tt();let f;return Y((()=>{f&&Js(f)})),t.$$set=t=>{"title"in t&&n(0,l=t.title),"playList"in t&&n(1,o=t.playList),"isShowMore"in t&&n(2,r=t.isShowMore),"isShowTip"in t&&n(3,c=t.isShowTip),"tipTextList"in t&&n(4,a=t.tipTextList),"iconText"in t&&n(5,u=t.iconText),"$$scope"in t&&n(8,i=t.$$scope)},[l,o,r,c,a,u,f,function(){d("titleClick")},i,s,function(t){st[t?"unshift":"push"]((()=>{f=t,n(6,f)}))}]}class Gc extends It{constructor(t){super(),Ot(this,t,Xc,qc,r,{title:0,playList:1,isShowMore:2,isShowTip:3,tipTextList:4,iconText:5})}}function Wc(t){let e,n,s;return n=new Cs({props:{size:"14",style:"vertical-align: middle"}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","star svelte-1vbvxim")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Kc(t){let e,n;return{c(){e=O("img"),a(e.src,n=t[0].img1v1Url.replace(/^http:/,"https:")+"?param="+t[1]+"y"+t[1])||E(e,"src",n),E(e,"alt",""),E(e,"class","svelte-1vbvxim")},m(t,n){_(t,e,n)},p(t,s){3&s&&!a(e.src,n=t[0].img1v1Url.replace(/^http:/,"https:")+"?param="+t[1]+"y"+t[1])&&E(e,"src",n)},d(t){t&&L(e)}}}function Yc(t){let e,n,s,i,l,o,r,c,a,u,d=t[3].includes(t[0].id),f=t[0].name+"",p=d&&Wc();return i=new uo({props:{height:100,$$slots:{default:[Kc]},$$scope:{ctx:t}}}),{c(){e=O("div"),p&&p.c(),n=H(),s=O("div"),_t(i.$$.fragment),l=H(),o=O("div"),r=B(f),E(s,"class","cover svelte-1vbvxim"),E(o,"class","name svelte-1vbvxim"),E(e,"class","singer svelte-1vbvxim")},m(d,f){_(d,e,f),p&&p.m(e,null),S(e,n),S(e,s),Lt(i,s,null),S(e,l),S(e,o),S(o,r),t[5](e),c=!0,a||(u=D(e,"click",t[4]),a=!0)},p(t,[s]){1&s&&(d=t[3].includes(t[0].id)),d?p?1&s&&xt(p,1):(p=Wc(),p.c(),xt(p,1),p.m(e,n)):p&&(wt(),bt(p,1,1,(()=>{p=null})),yt());const l={};67&s&&(l.$$scope={dirty:s,ctx:t}),i.$set(l),(!c||1&s)&&f!==(f=t[0].name+"")&&P(r,f)},i(t){c||(xt(p),xt(i.$$.fragment,t),c=!0)},o(t){bt(p),bt(i.$$.fragment,t),c=!1},d(n){n&&L(e),p&&p.d(),Tt(i),t[5](null),a=!1,u()}}}function Zc(t,e,n){let s,{songer:i={}}=e,{coverSize:l=200}=e,o=JSON.parse(localStorage.getItem("useLoveSongerIds"))||[];return Y((()=>{})),t.$$set=t=>{"songer"in t&&n(0,i=t.songer),"coverSize"in t&&n(1,l=t.coverSize)},[i,l,s,o,function(){hi.set(!1),xi.set(i.id),me(`/artist?id=${i.id}`)},function(t){st[t?"unshift":"push"]((()=>{s=t,n(2,s)}))}]}class Qc extends It{constructor(t){super(),Ot(this,t,Zc,Yc,r,{songer:0,coverSize:1})}}function ta(t,e=!1){let n={id:t};return e&&(n.timestamp=(new Date).getTime()),Br({url:"/playlist/detail",method:"get",params:n})}function ea(t){return Br({url:"/top/playlist/highquality",method:"get",params:t})}function na(t){return Br({url:"/top/playlist",method:"get",params:t})}function sa(t){return Br({url:"/artist/detail",method:"get",params:{id:t}})}function ia(t,e){return Br({url:"/top/artists",method:"get",params:{limit:t,offset:e}})}function la(t,e,n){const s=t.slice();return s[35]=e[n],s}function oa(t){let e,n,s,i,l,o,r,c,a,u,d;return n=new Hc({props:{title:"推荐",desc:"专属推荐",topTitleRightList:{type:"text",text:""}}}),u=new Ys({props:{type:"primary",$$slots:{default:[ca]},$$scope:{ctx:t}}}),u.$on("BtnClick",t[22]),{c(){e=O("div"),_t(n.$$.fragment),s=H(),i=O("div"),l=O("div"),l.innerHTML='<img class="login-img svelte-1c2b4vv" src="images/login.png" alt=""/>',o=H(),r=O("div"),r.textContent="推荐功能需要登录",c=H(),a=O("div"),_t(u.$$.fragment),E(r,"class","tip svelte-1c2b4vv"),E(a,"class","login-btn"),E(i,"class","noLogin svelte-1c2b4vv")},m(t,f){_(t,e,f),Lt(n,e,null),S(e,s),S(e,i),S(i,l),S(i,o),S(i,r),S(i,c),S(i,a),Lt(u,a,null),d=!0},p(t,e){const n={};128&e[1]&&(n.$$scope={dirty:e,ctx:t}),u.$set(n)},i(t){d||(xt(n.$$.fragment,t),xt(u.$$.fragment,t),d=!0)},o(t){bt(n.$$.fragment,t),bt(u.$$.fragment,t),d=!1},d(t){t&&L(e),Tt(n),Tt(u)}}}function ra(t){let e,n,s,i,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,F,J,q,X,G,W,K,Y,Z,Q,tt,et,nt,st,it,lt,ot,rt,ct,at,ut,dt,ft,pt=(0!==t[14].length?t[14][0].name:"")+"",mt=(0!==t[14].length?Ds(t[14][0].ar):"")+"",ht=`${(new Date).getMonth()+1}月${(new Date).getDate()}日`,gt=(t[11].name?t[11].name:"")+"",vt=t[11].alia&&t[11].alia.length>0?`(${t[11].alia[0]})`:"",$t=(t[11].artists?Ds(t[11].artists):"")+"";n=new Hc({props:{title:"推荐",desc:"专属推荐",topTitleRightList:t[16],isRefresh:t[9]}}),n.$on("IconClick",t[19]),b=new He({props:{size:"14"}});let zt=t[10]&&t[15]&&t[12].id===t[11].id&&aa(),kt=t[11].al&&ua(t);nt=new Kn({props:{size:"14"}}),ot=new Gc({props:{title:"每日歌单推荐",isShowMore:!1,playList:t[0]}});let St=t[4].length>0&&da(t),Ct=t[2].length>0&&fa(t),Mt=t[8].length>0&&t[7].name&&pa(t);return{c(){e=O("div"),_t(n.$$.fragment),s=H(),i=O("div"),o=O("div"),r=O("div"),c=H(),u=O("div"),d=O("div"),d.textContent="今日推荐",f=H(),p=O("div"),m=O("div"),h=B(pt),g=H(),v=O("div"),$=B(mt),w=H(),y=O("div"),x=O("span"),_t(b.$$.fragment),z=H(),k=B(ht),C=H(),M=O("div"),T=O("div"),I=O("div"),N=O("img"),A=H(),U=O("div"),zt&&zt.c(),V=H(),F=O("div"),J=B(gt),q=H(),X=O("span"),G=B(vt),W=H(),K=O("div"),Y=B($t),Z=H(),kt&&kt.c(),Q=H(),tt=O("div"),et=O("span"),_t(nt.$$.fragment),st=B("\n                私人 FM"),it=H(),lt=O("div"),_t(ot.$$.fragment),rt=H(),St&&St.c(),ct=H(),Ct&&Ct.c(),at=H(),Mt&&Mt.c(),E(r,"class","today-img-box svelte-1c2b4vv"),j(r,"width",Hs()-40+"px"),j(r,"background-image","url("+(0!==t[14].length?t[14][0].al.picUrl.replace(/^http:/,"https:")+"?param=800y800":ki)+")"),E(d,"class","day svelte-1c2b4vv"),E(m,"class","name svelte-1c2b4vv"),E(v,"class","songer"),j(x,"position","relative"),j(x,"top","2px "),E(y,"class","calendar svelte-1c2b4vv"),E(p,"class","name-list svelte-1c2b4vv"),E(u,"class","day-box svelte-1c2b4vv"),E(o,"class","today svelte-1c2b4vv"),E(N,"class","fm-cover-img svelte-1c2b4vv"),a(N.src,R=t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=240y240":"")||E(N,"src",R),E(N,"alt",""),E(I,"class","fm-cover svelte-1c2b4vv"),E(X,"class","alia svelte-1c2b4vv"),E(F,"class","fm-name svelte-1c2b4vv"),E(K,"class","fm-songer svelte-1c2b4vv"),j(et,"position","relative"),j(et,"top","2px "),E(tt,"class","fm-icon svelte-1c2b4vv"),E(U,"class","fm-info svelte-1c2b4vv"),E(T,"class","fm svelte-1c2b4vv"),E(M,"class","fm-box svelte-1c2b4vv"),j(M,"background","url("+(t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=80y80":"")+")"),E(lt,"class","list-grid svelte-1c2b4vv"),E(i,"class","login svelte-1c2b4vv"),E(e,"class","login-box svelte-1c2b4vv")},m(l,a){_(l,e,a),Lt(n,e,null),S(e,s),S(e,i),S(i,o),S(o,r),S(o,c),S(o,u),S(u,d),S(u,f),S(u,p),S(p,m),S(m,h),S(p,g),S(p,v),S(v,$),S(p,w),S(p,y),S(y,x),Lt(b,x,null),S(x,z),S(y,k),t[20](o),S(i,C),S(i,M),S(M,T),S(T,I),S(I,N),S(T,A),S(T,U),zt&&zt.m(U,null),S(U,V),S(U,F),S(F,J),S(F,q),S(F,X),S(X,G),S(U,W),S(U,K),S(K,Y),S(K,Z),kt&&kt.m(K,null),S(U,Q),S(U,tt),S(tt,et),Lt(nt,et,null),S(tt,st),t[21](M),S(i,it),S(i,lt),Lt(ot,lt,null),S(i,rt),St&&St.m(i,null),S(i,ct),Ct&&Ct.m(i,null),S(i,at),Mt&&Mt.m(i,null),ut=!0,dt||(ft=[D(o,"click",t[17]),D(M,"click",t[18])],dt=!0)},p(t,e){const s={};512&e[0]&&(s.isRefresh=t[9]),n.$set(s),(!ut||16384&e[0])&&j(r,"background-image","url("+(0!==t[14].length?t[14][0].al.picUrl.replace(/^http:/,"https:")+"?param=800y800":ki)+")"),(!ut||16384&e[0])&&pt!==(pt=(0!==t[14].length?t[14][0].name:"")+"")&&P(h,pt),(!ut||16384&e[0])&&mt!==(mt=(0!==t[14].length?Ds(t[14][0].ar):"")+"")&&P($,mt),(!ut||2048&e[0]&&!a(N.src,R=t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=240y240":""))&&E(N,"src",R),t[10]&&t[15]&&t[12].id===t[11].id?zt||(zt=aa(),zt.c(),zt.m(U,V)):zt&&(zt.d(1),zt=null),(!ut||2048&e[0])&&gt!==(gt=(t[11].name?t[11].name:"")+"")&&P(J,gt),(!ut||2048&e[0])&&vt!==(vt=t[11].alia&&t[11].alia.length>0?`(${t[11].alia[0]})`:"")&&P(G,vt),(!ut||2048&e[0])&&$t!==($t=(t[11].artists?Ds(t[11].artists):"")+"")&&P(Y,$t),t[11].al?kt?kt.p(t,e):(kt=ua(t),kt.c(),kt.m(K,null)):kt&&(kt.d(1),kt=null),(!ut||2048&e[0])&&j(M,"background","url("+(t[11].album?t[11].album.blurPicUrl.replace(/^http:/,"https:")+"?param=80y80":"")+")");const l={};1&e[0]&&(l.playList=t[0]),ot.$set(l),t[4].length>0?St?(St.p(t,e),16&e[0]&&xt(St,1)):(St=da(t),St.c(),xt(St,1),St.m(i,ct)):St&&(wt(),bt(St,1,1,(()=>{St=null})),yt()),t[2].length>0?Ct?(Ct.p(t,e),4&e[0]&&xt(Ct,1)):(Ct=fa(t),Ct.c(),xt(Ct,1),Ct.m(i,at)):Ct&&(wt(),bt(Ct,1,1,(()=>{Ct=null})),yt()),t[8].length>0&&t[7].name?Mt?(Mt.p(t,e),384&e[0]&&xt(Mt,1)):(Mt=pa(t),Mt.c(),xt(Mt,1),Mt.m(i,null)):Mt&&(wt(),bt(Mt,1,1,(()=>{Mt=null})),yt())},i(t){ut||(xt(n.$$.fragment,t),xt(b.$$.fragment,t),xt(nt.$$.fragment,t),xt(ot.$$.fragment,t),xt(St),xt(Ct),xt(Mt),ut=!0)},o(t){bt(n.$$.fragment,t),bt(b.$$.fragment,t),bt(nt.$$.fragment,t),bt(ot.$$.fragment,t),bt(St),bt(Ct),bt(Mt),ut=!1},d(s){s&&L(e),Tt(n),Tt(b),t[20](null),zt&&zt.d(),kt&&kt.d(),Tt(nt),t[21](null),Tt(ot),St&&St.d(),Ct&&Ct.d(),Mt&&Mt.d(),dt=!1,l(ft)}}}function ca(t){let e;return{c(){e=B("立即登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function aa(t){let e;return{c(){e=O("div"),e.innerHTML='<div class="pull_down pull_down1 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down2 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down3 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down4 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down5 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down6 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down7 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down8 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down9 svelte-1c2b4vv"></div> \n                  <div class="pull_down pull_down10 svelte-1c2b4vv"></div>',E(e,"class","fm-play-motion svelte-1c2b4vv")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function ua(t){let e,n,s=""===t[11].al.name?"":`- ${t[11].al.name}`;return{c(){e=O("span"),n=B(s)},m(t,s){_(t,e,s),S(e,n)},p(t,e){2048&e[0]&&s!==(s=""===t[11].al.name?"":`- ${t[11].al.name}`)&&P(n,s)},d(t){t&&L(e)}}}function da(t){let e,n,s,i,l,o,r,c,a,u=t[3].name+"";return c=new jr({props:{songList:t[4]}}),{c(){e=O("div"),e.textContent="相似歌曲推荐",n=H(),s=O("div"),i=B("根据单曲《"),l=B(u),o=B("》推荐"),r=H(),_t(c.$$.fragment),E(e,"class","simiTitle svelte-1c2b4vv"),E(s,"class","desc svelte-1c2b4vv")},m(t,u){_(t,e,u),_(t,n,u),_(t,s,u),S(s,i),S(s,l),S(s,o),_(t,r,u),Lt(c,t,u),a=!0},p(t,e){(!a||8&e[0])&&u!==(u=t[3].name+"")&&P(l,u);const n={};16&e[0]&&(n.songList=t[4]),c.$set(n)},i(t){a||(xt(c.$$.fragment,t),a=!0)},o(t){bt(c.$$.fragment,t),a=!1},d(t){t&&L(e),t&&L(n),t&&L(s),t&&L(r),Tt(c,t)}}}function fa(t){let e,n,s;return n=new Gc({props:{title:"相似歌单推荐",isShowMore:!1,isShowTip:!0,tipTextList:[`根据单曲《${t[1].name}》推荐`],playList:t[2]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-1c2b4vv")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};2&e[0]&&(s.tipTextList=[`根据单曲《${t[1].name}》推荐`]),4&e[0]&&(s.playList=t[2]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function pa(t){let e,n,s,i,l,o,r,c,a,u=t[7].name+"",d=t[8],f=[];for(let e=0;e<d.length;e+=1)f[e]=ma(la(t,d,e));const p=t=>bt(f[t],1,1,(()=>{f[t]=null}));return{c(){e=O("div"),e.textContent="相似歌手推荐",n=H(),s=O("div"),i=B("根据【"),l=B(u),o=B("】推荐"),r=H(),c=O("div");for(let t=0;t<f.length;t+=1)f[t].c();E(e,"class","simiTitle svelte-1c2b4vv"),E(s,"class","desc svelte-1c2b4vv"),E(c,"class","songer-box svelte-1c2b4vv")},m(t,u){_(t,e,u),_(t,n,u),_(t,s,u),S(s,i),S(s,l),S(s,o),_(t,r,u),_(t,c,u);for(let t=0;t<f.length;t+=1)f[t].m(c,null);a=!0},p(t,e){if((!a||128&e[0])&&u!==(u=t[7].name+"")&&P(l,u),256&e[0]){let n;for(d=t[8],n=0;n<d.length;n+=1){const s=la(t,d,n);f[n]?(f[n].p(s,e),xt(f[n],1)):(f[n]=ma(s),f[n].c(),xt(f[n],1),f[n].m(c,null))}for(wt(),n=d.length;n<f.length;n+=1)p(n);yt()}},i(t){if(!a){for(let t=0;t<d.length;t+=1)xt(f[t]);a=!0}},o(t){f=f.filter(Boolean);for(let t=0;t<f.length;t+=1)bt(f[t]);a=!1},d(t){t&&L(e),t&&L(n),t&&L(s),t&&L(r),t&&L(c),T(f,t)}}}function ma(t){let e,n;return e=new Qc({props:{songer:t[35],coverSize:330}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};256&n[0]&&(s.songer=t[35]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ha(t){let e,n,s,i;const l=[ra,oa],o=[];function r(t,e){return t[13]?0:1}return n=r(t),s=o[n]=l[n](t),{c(){e=O("div"),s.c(),E(e,"class","love svelte-1c2b4vv")},m(t,s){_(t,e,s),o[n].m(e,null),i=!0},p(t,i){let c=n;n=r(t),n===c?o[n].p(t,i):(wt(),bt(o[c],1,1,(()=>{o[c]=null})),yt(),s=o[n],s?s.p(t,i):(s=o[n]=l[n](t),s.c()),xt(s,1),s.m(e,null))},i(t){i||(xt(s),i=!0)},o(t){bt(s),i=!1},d(t){t&&L(e),o[n].d()}}}function ga(t,e,n){let s,i,l,o,r,c,a,u,d,p;f(t,Tl,(t=>n(10,o=t))),f(t,mo,(t=>n(23,r=t))),f(t,Ol,(t=>n(11,c=t))),f(t,Cl,(t=>n(12,a=t))),f(t,mi,(t=>n(13,u=t))),f(t,Dc,(t=>n(14,d=t))),f(t,zl,(t=>n(15,p=t)));let m,h,g=[],v={},$=[],w={},y=[],x={type:"icon",path:ns};function b(){if(u){!async function(){const t=await Br({url:"/recommend/resource",method:"get",params:e});var e;if(200===t.code){let e=t.recommend;"猜你喜欢"===e[0].copywriter&&e[0].name.indexOf("私人雷达")>-1?k(!0,e):n(0,g=e)}}(),async function(){const t=await Br({url:"/recommend/songs",method:"get",params:{timestamp:(new Date).getTime()}}).then((t=>t));200===t.code&&Dc.set(t.data.dailySongs)}(),async function(t){const e=await Dr();200===e.code&&(e.data[0].al=e.data[0].album,e.data[0].ar=e.data[0].artists,e.data[0].alia=e.data[0].alias,e.data[1].al=e.data[1].album,e.data[1].ar=e.data[1].artists,e.data[1].alia=e.data[1].alias,t?(Ol.set(e.data[0]),Il.set(e.data[1]),localStorage.setItem("FMPlay",JSON.stringify(c))):Ol.set(e.data[0]))}(!0);let t=JSON.parse(localStorage.getItem("useLoveSongIds"))||[],e=Math.floor(Math.random()*t.length);!async function(t){const e=await Nr(t);200===e.code&&n(1,v=e.songs[0])}(t[e]),async function(t){const e=await function(t){return Br({url:"/simi/playlist",method:"get",params:{id:t}})}(t);200===e.code&&n(2,$=e.playlists)}(t[e]),k();const s=JSON.parse(localStorage.getItem("useLoveSongerIds"))||[];let o=Math.floor(Math.random()*s.length);o&&(async function(t){const e=await sa(t);200===e.code&&n(7,i=e.data.artist)}(s[o]),async function(t,e){const s=await function(t){return Br({url:"/simi/artist",method:"get",params:{id:t}})}(t);if(200===s.code){let t=[];for(let e=0;e<s.artists.length;e++)t.push(s.artists[e].id);let i=function(t,e){let n=new Set(t),s=new Set(e),i=new Set([...n].filter((t=>s.has(t))));return Array.from(i)}(t,e);for(let t=0;t<i.length;t++)for(let e=0;e<s.artists.length;e++)i[t]===s.artists[e].id&&s.artists.splice(e,1);n(8,l=s.artists.length>6?s.artists.slice(0,6):s.artists)}}(s[o],s))}}async function z(t){const e=await function(t){return Br({url:"/simi/song",method:"get",params:{id:t}})}(t);if(200===e.code){s&&n(9,s=!1);for(let t=0;t<e.songs.length;t++)e.songs[t].al=e.songs[t].album,e.songs[t].ar=e.songs[t].artists;n(4,y=e.songs)}}async function k(t=!1,e){const s=await ta(t?e[0].id:r);if(200===s.code){if(t){"猜你喜欢"===e[0].copywriter&&e[0].name.indexOf("私人雷达")>-1&&(e[0].copywriter=e[0].name,e[0].picUrl=s.playlist.tracks[0].al.picUrl,e[0].name=`从《${s.playlist.tracks[0].name}》开始听吧`);for(let t=0;t<e.length;t++)e[t].coverImgUrl=e[t].picUrl,e[t].playCount=e[t].playcount;n(0,g=e)}let i=Math.round(20*Math.random());n(3,w=s.playlist.tracks[i]),w&&z(w.id)}}Y((()=>{m&&Js(m),h&&Js(h),b()}));return n(9,s=!1),n(7,i={}),n(8,l=[]),[g,v,$,w,y,m,h,i,l,s,o,c,a,u,d,p,x,function(){hi.set(!1),me("/todayListDetail")},function(){c.id===a.id?(window.audioDOM.play(),zl.set(!0),kl.set(!0),Ll.set("0px")):(Tl.set(!0),localStorage.setItem("isFMPlay","1"),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),o&&(_l.set([t]),Ml.set(0),Cl.set(t),t.al=t.album,t.ar=t.artists,t.alia=t.alias,Ol.set(t),localStorage.setItem("currentSong",JSON.stringify(t)))):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(c))},function(t){0===t.detail.index&&b()},function(t){st[t?"unshift":"push"]((()=>{h=t,n(6,h)}))},function(t){st[t?"unshift":"push"]((()=>{m=t,n(5,m)}))},()=>{hi.set(!1),me("/login")}]}class va extends It{constructor(t){super(),Ot(this,t,ga,ha,r,{},null,[-1,-1])}}function $a(t,e,n){const s=t.slice();return s[33]=e[n],s[35]=n,s}function wa(t,e,n){const s=t.slice();return s[36]=e[n],s}function ya(t,e,n){const s=t.slice();return s[33]=e[n],s[35]=n,s}function xa(t,e,n){const s=t.slice();return s[40]=e[n],s}function ba(t){let e,n,s;return n=new Gc({props:{title:t[5].length>0?`${t[5][t[7]].name} - 精选歌单`:"默认-精选歌单",playList:t[0],$$slots:{default:[Sa]},$$scope:{ctx:t}}}),n.$on("titleClick",t[21]),{c(){e=O("div"),_t(n.$$.fragment),j(e,"margin-top","10px")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};160&e[0]&&(s.title=t[5].length>0?`${t[5][t[7]].name} - 精选歌单`:"默认-精选歌单"),1&e[0]&&(s.playList=t[0]),2016&e[0]|4096&e[1]&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function za(t){let e,n,s,i,l,o=t[10][t[40].category]+"";function r(){return t[19](t[40])}return{c(){e=O("div"),n=B(o),s=H(),E(e,"class","tab1 svelte-r85uwf"),U(e,"tab1-active",t[8]===t[40].category)},m(t,o){_(t,e,o),S(e,n),S(e,s),i||(l=D(e,"click",r),i=!0)},p(s,i){t=s,1536&i[0]&&o!==(o=t[10][t[40].category]+"")&&P(n,o),768&i[0]&&U(e,"tab1-active",t[8]===t[40].category)},d(t){t&&L(e),i=!1,l()}}}function ka(t){let e,n,s,i,l=t[33].name+"";function o(){return t[20](t[35],t[33])}return{c(){e=O("span"),n=B(l),E(e,"class","tab2 svelte-r85uwf"),U(e,"tab1-active",t[7]===t[35])},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(s,i){t=s,32&i[0]&&l!==(l=t[33].name+"")&&P(n,l),128&i[0]&&U(e,"tab1-active",t[7]===t[35])},d(t){t&&L(e),s=!1,i()}}}function Sa(t){let e,n,s,i,l,o,r=t[9],c=[];for(let e=0;e<r.length;e+=1)c[e]=za(xa(t,r,e));let a=t[5],u=[];for(let e=0;e<a.length;e+=1)u[e]=ka(ya(t,a,e));return{c(){e=O("div"),n=O("div");for(let t=0;t<c.length;t+=1)c[t].c();s=H(),i=O("div");for(let t=0;t<u.length;t+=1)u[t].c();l=H(),o=O("div"),E(n,"class","tab-1-box svelte-r85uwf"),E(o,"class","mask svelte-r85uwf"),E(i,"class","tab-2-box svelte-r85uwf")},m(t,r){_(t,e,r),S(e,n);for(let t=0;t<c.length;t+=1)c[t].m(n,null);S(e,s),S(e,i);for(let t=0;t<u.length;t+=1)u[t].m(i,null);S(i,l),S(i,o)},p(t,e){if(34784&e[0]){let s;for(r=t[9],s=0;s<r.length;s+=1){const i=xa(t,r,s);c[s]?c[s].p(i,e):(c[s]=za(i),c[s].c(),c[s].m(n,null))}for(;s<c.length;s+=1)c[s].d(1);c.length=r.length}if(32992&e[0]){let n;for(a=t[5],n=0;n<a.length;n+=1){const s=ya(t,a,n);u[n]?u[n].p(s,e):(u[n]=ka(s),u[n].c(),u[n].m(i,l))}for(;n<u.length;n+=1)u[n].d(1);u.length=a.length}},d(t){t&&L(e),T(c,t),T(u,t)}}}function Ca(t){let e,n,s;return n=new Gc({props:{title:"官方歌单",playList:t[2]}}),n.$on("titleClick",t[22]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-r85uwf")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};4&e[0]&&(s.playList=t[2]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Ma(t){let e,n,s;return n=new Gc({props:{title:"排行榜",isShowMore:!1,playList:t[3]}}),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-r85uwf")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};8&e[0]&&(s.playList=t[3]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function _a(t){let e,n,s,i;e=new vl({props:{title:"热门歌手",isShowRight:!0}}),e.$on("TitleClick",t[17]);let l=t[4],o=[];for(let e=0;e<l.length;e+=1)o[e]=La(wa(t,l,e));const r=t=>bt(o[t],1,1,(()=>{o[t]=null}));return{c(){_t(e.$$.fragment),n=H(),s=O("div");for(let t=0;t<o.length;t+=1)o[t].c();E(s,"class","songer-box svelte-r85uwf")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l);for(let t=0;t<o.length;t+=1)o[t].m(s,null);i=!0},p(t,e){if(16&e[0]){let n;for(l=t[4],n=0;n<l.length;n+=1){const i=wa(t,l,n);o[n]?(o[n].p(i,e),xt(o[n],1)):(o[n]=La(i),o[n].c(),xt(o[n],1),o[n].m(s,null))}for(wt(),n=l.length;n<o.length;n+=1)r(n);yt()}},i(t){if(!i){xt(e.$$.fragment,t);for(let t=0;t<l.length;t+=1)xt(o[t]);i=!0}},o(t){bt(e.$$.fragment,t),o=o.filter(Boolean);for(let t=0;t<o.length;t+=1)bt(o[t]);i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(o,t)}}}function La(t){let e,n;return e=new Qc({props:{songer:t[36],coverSize:330}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};16&n[0]&&(s.songer=t[36]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ta(t){let e,n,s;return n=new Gc({props:{title:t[12].length>0?`${t[12][t[13]]} - 精品歌单`:"默认-精品歌单",playList:t[1],isShowMore:!(t[1].length<6),$$slots:{default:[Ia]},$$scope:{ctx:t}}}),n.$on("titleClick",t[24]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-r85uwf")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};12288&e[0]&&(s.title=t[12].length>0?`${t[12][t[13]]} - 精品歌单`:"默认-精品歌单"),2&e[0]&&(s.playList=t[1]),2&e[0]&&(s.isShowMore=!(t[1].length<6)),14336&e[0]|4096&e[1]&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Oa(t){let e,n,s,i,l=t[33]+"";function o(){return t[23](t[35],t[33])}return{c(){e=O("span"),n=B(l),E(e,"class","tab2 svelte-r85uwf"),U(e,"tab1-active",t[13]===t[35])},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(s,i){t=s,4096&i[0]&&l!==(l=t[33]+"")&&P(n,l),8192&i[0]&&U(e,"tab1-active",t[13]===t[35])},d(t){t&&L(e),s=!1,i()}}}function Ia(t){let e,n,s,i=t[12],l=[];for(let e=0;e<i.length;e+=1)l[e]=Oa($a(t,i,e));return{c(){e=O("div");for(let t=0;t<l.length;t+=1)l[t].c();n=H(),s=O("div"),E(s,"class","mask svelte-r85uwf"),E(e,"class","tab-2-box svelte-r85uwf")},m(t,i){_(t,e,i);for(let t=0;t<l.length;t+=1)l[t].m(e,null);S(e,n),S(e,s)},p(t,s){if(79872&s[0]){let o;for(i=t[12],o=0;o<i.length;o+=1){const r=$a(t,i,o);l[o]?l[o].p(r,s):(l[o]=Oa(r),l[o].c(),l[o].m(e,n))}for(;o<l.length;o+=1)l[o].d(1);l.length=i.length}},d(t){t&&L(e),T(l,t)}}}function Ba(t){let e,n,s,i,l,o,r,c;e=new Hc({props:{title:"发现",desc:"歌单广场",topTitleRightList:t[14]}}),e.$on("IconClick",t[18]);let a=t[0].length>0&&ba(t),u=t[2].length>0&&Ca(t),d=t[3].length>0&&Ma(t),f=t[4].length>0&&_a(t),p=t[1].length>0&&Ta(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),a&&a.c(),i=H(),u&&u.c(),l=H(),d&&d.c(),o=H(),f&&f.c(),r=H(),p&&p.c(),E(s,"class","page svelte-r85uwf")},m(t,m){Lt(e,t,m),_(t,n,m),_(t,s,m),a&&a.m(s,null),S(s,i),u&&u.m(s,null),S(s,l),d&&d.m(s,null),S(s,o),f&&f.m(s,null),S(s,r),p&&p.m(s,null),c=!0},p(t,e){t[0].length>0?a?(a.p(t,e),1&e[0]&&xt(a,1)):(a=ba(t),a.c(),xt(a,1),a.m(s,i)):a&&(wt(),bt(a,1,1,(()=>{a=null})),yt()),t[2].length>0?u?(u.p(t,e),4&e[0]&&xt(u,1)):(u=Ca(t),u.c(),xt(u,1),u.m(s,l)):u&&(wt(),bt(u,1,1,(()=>{u=null})),yt()),t[3].length>0?d?(d.p(t,e),8&e[0]&&xt(d,1)):(d=Ma(t),d.c(),xt(d,1),d.m(s,o)):d&&(wt(),bt(d,1,1,(()=>{d=null})),yt()),t[4].length>0?f?(f.p(t,e),16&e[0]&&xt(f,1)):(f=_a(t),f.c(),xt(f,1),f.m(s,r)):f&&(wt(),bt(f,1,1,(()=>{f=null})),yt()),t[1].length>0?p?(p.p(t,e),2&e[0]&&xt(p,1)):(p=Ta(t),p.c(),xt(p,1),p.m(s,null)):p&&(wt(),bt(p,1,1,(()=>{p=null})),yt())},i(t){c||(xt(e.$$.fragment,t),xt(a),xt(u),xt(d),xt(f),xt(p),c=!0)},o(t){bt(e.$$.fragment,t),bt(a),bt(u),bt(d),bt(f),bt(p),c=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),a&&a.d(),u&&u.d(),d&&d.d(),f&&f.d(),p&&p.d()}}}function Ha(t,e,n){let s,i,l,o,r,c,a,u,d,f,p,m=[],h=[],g=[],v=[],$={type:"icon",path:cs};async function w(t){const e=await na({limit:6,cat:"默认"===t?"全部":t});200===e.code&&n(0,m=e.playlists)}async function y(t){const e=await ea({limit:6,cat:"默认"===t?"全部":t});200===e.code&&n(1,h=e.playlists)}Y((()=>{(async function(){const t=await Br({url:"/playlist/hot",method:"get"});200===t.code&&(c=t.tags,c.unshift({name:"默认",category:0}),async function(){const t=await Br({url:"/playlist/catlist",method:"get"});200===t.code&&(n(10,r=t.categories),n(10,r[5]="热门",r),n(9,s=function(t){let e=[],n={};return t.forEach((t=>{n[t.category]?e.forEach((e=>{e.category==t.category&&e.allData.push(t)})):(e.push({category:t.category,allData:[t]}),n[t.category]=t)})),e}(t.sub)),s.unshift({category:5,allData:c}),n(8,i=s[0].category),n(5,l=s.filter((t=>t.category===i))[0].allData),n(7,o=0),n(6,u=l[0].name),w(l[0].name))}())})(),async function(){const t=await Br({url:"/playlist/highquality/tags",method:"get",params:e});var e;if(200===t.code){for(let e=0;e<t.tags.length;e++)f.push(t.tags[e].name);n(11,d=f[0]),y(d)}}(),async function(){const t=await na({limit:6,cat:"官方"});200===t.code&&n(2,g=t.playlists)}(),async function(){const t=await Br({url:"/toplist",method:"get"});200===t.code&&n(3,v=t.list)}(),async function(){const t=await ia(9);200===t.code&&n(4,a=t.artists)}()}));return n(9,s=[]),n(8,i=0),n(5,l=[]),n(7,o=0),n(10,r={}),c=[],n(4,a=[]),n(6,u=""),n(11,d=""),n(12,f=["默认"]),n(13,p=0),[m,h,g,v,a,l,u,o,i,s,r,d,f,p,$,w,y,function(){hi.set(!1),me("/moreSonger")},function(t){0===t.detail.index&&(hi.set(!1),me("/search"))},t=>{n(8,i=t.category),n(5,l=s.filter((t=>t.category===i))[0].allData),n(7,o=0),n(6,u=l[0].name),w(l[0].name)},(t,e)=>{n(7,o=t),n(6,u=e.name),w(e.name)},()=>{hi.set(!1),me("/moreList?cat="+u+"&type=top")},()=>{hi.set(!1),me("/moreList?cat=官方")},(t,e)=>{n(13,p=t),n(11,d=e),y(e)},()=>{hi.set(!1),me("/moreList?cat="+d+"&type=high")}]}class Na extends It{constructor(t){super(),Ot(this,t,Ha,Ba,r,{},null,[-1,-1])}}function Da(t,e,n){const s=t.slice();return s[43]=e[n],s}function Ea(t,e,n){const s=t.slice();return s[46]=e[n],s[48]=n,s}function Ra(t){let e,n,s,i,l,o,r,c;return r=new Ys({props:{type:"primary",$$slots:{default:[Aa]},$$scope:{ctx:t}}}),r.$on("BtnClick",t[24]),{c(){e=O("div"),n=O("div"),n.innerHTML='<img class="login-img svelte-xt612s" src="images/login.png" alt=""/>',s=H(),i=O("div"),i.textContent="账号信息需要登录",l=H(),o=O("div"),_t(r.$$.fragment),E(i,"class","tip svelte-xt612s"),E(o,"class","login-btn"),E(e,"class","noLogin svelte-xt612s")},m(t,a){_(t,e,a),S(e,n),S(e,s),S(e,i),S(e,l),S(e,o),Lt(r,o,null),c=!0},p(t,e){const n={};262144&e[1]&&(n.$$scope={dirty:e,ctx:t}),r.$set(n)},i(t){c||(xt(r.$$.fragment,t),c=!0)},o(t){bt(r.$$.fragment,t),c=!1},d(t){t&&L(e),Tt(r)}}}function Pa(t){let e,n,s,i,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,V,F,J,q,X,G,W,K,Y,Z,Q,tt,et=t[8].profile.nickname+"",nt=(t[8].profile.signature||"")+"";function st(t,e){return 0!==t[8].account.vipType?Ua:ja}let it=st(t),lt=it(t);function ot(t,e){return t[2]?Fa:Va}y=new Oe({props:{size:"26",style:"vertical-align: middle"}});let rt=ot(t),ct=rt(t);F=new Nn({props:{size:"24",style:"vertical-align: middle"}}),G=new vn({props:{size:"24",style:"vertical-align: middle"}});let at=t[4].length>0&&qa(t),ut=t[5].length>0&&Xa(t),dt=t[7].length>0&&Ga(t);return{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),o=O("img"),c=H(),u=O("div"),d=O("div"),f=B(et),p=H(),m=O("div"),h=B(nt),g=H(),v=O("div"),lt.c(),$=H(),w=O("div"),_t(y.$$.fragment),x=H(),b=O("div"),z=O("div"),k=O("div"),C=O("div"),M=B("我喜欢的音乐"),T=O("span"),T.textContent=`${t[13].length}首`,I=H(),N=O("div"),ct.c(),R=H(),A=O("div"),V=O("div"),_t(F.$$.fragment),J=H(),q=O("div"),X=O("span"),_t(G.$$.fragment),W=H(),at&&at.c(),K=H(),ut&&ut.c(),Y=H(),dt&&dt.c(),a(o.src,r=t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180")||E(o,"src",r),E(o,"alt",""),E(o,"class","svelte-xt612s"),E(i,"class","avatar svelte-xt612s"),E(d,"class","nicename svelte-xt612s"),E(m,"class","signature svelte-xt612s"),E(v,"class","tag"),E(u,"class","info svelte-xt612s"),E(s,"class","left svelte-xt612s"),E(w,"class","more svelte-xt612s"),E(n,"class","info-box svelte-xt612s"),E(T,"class","love-title-number svelte-xt612s"),E(C,"class","love-title-text svelte-xt612s"),E(k,"class","love-title svelte-xt612s"),E(N,"class","random svelte-xt612s"),E(V,"class","quick-btn-item svelte-xt612s"),E(X,"class","svelte-xt612s"),U(X,"heart-beat","heart"===t[10]&&t[11]),E(q,"class","quick-btn-item svelte-xt612s"),E(A,"class","quick-btn svelte-xt612s"),E(z,"class","love-song svelte-xt612s"),E(b,"class","love-song-box svelte-xt612s"),j(b,"background-image","url("+t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180)"),E(e,"class","login")},m(l,r){_(l,e,r),S(e,n),S(n,s),S(s,i),S(i,o),S(s,c),S(s,u),S(u,d),S(d,f),S(u,p),S(u,m),S(m,h),S(u,g),S(u,v),lt.m(v,null),S(n,$),S(n,w),Lt(y,w,null),t[22](n),S(e,x),S(e,b),S(b,z),S(z,k),S(k,C),S(C,M),S(C,T),S(z,I),S(z,N),ct.m(N,null),S(z,R),S(z,A),S(A,V),Lt(F,V,null),S(A,J),S(A,q),S(q,X),Lt(G,X,null),t[23](z),S(e,W),at&&at.m(e,null),S(e,K),ut&&ut.m(e,null),S(e,Y),dt&&dt.m(e,null),Z=!0,Q||(tt=[D(n,"click",t[19]),D(V,"click",t[20]),D(q,"click",t[21]),D(z,"click",t[16])],Q=!0)},p(t,n){(!Z||256&n[0]&&!a(o.src,r=t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180"))&&E(o,"src",r),(!Z||256&n[0])&&et!==(et=t[8].profile.nickname+"")&&P(f,et),(!Z||256&n[0])&&nt!==(nt=(t[8].profile.signature||"")+"")&&P(h,nt),it===(it=st(t))&&lt?lt.p(t,n):(lt.d(1),lt=it(t),lt&&(lt.c(),lt.m(v,null))),rt===(rt=ot(t))&&ct?ct.p(t,n):(ct.d(1),ct=rt(t),ct&&(ct.c(),ct.m(N,null))),3072&n[0]&&U(X,"heart-beat","heart"===t[10]&&t[11]),(!Z||256&n[0])&&j(b,"background-image","url("+t[8].profile.avatarUrl.replace(/^http:/,"https:")+"?param=180y180)"),t[4].length>0?at?(at.p(t,n),16&n[0]&&xt(at,1)):(at=qa(t),at.c(),xt(at,1),at.m(e,K)):at&&(wt(),bt(at,1,1,(()=>{at=null})),yt()),t[5].length>0?ut?(ut.p(t,n),32&n[0]&&xt(ut,1)):(ut=Xa(t),ut.c(),xt(ut,1),ut.m(e,Y)):ut&&(wt(),bt(ut,1,1,(()=>{ut=null})),yt()),t[7].length>0?dt?(dt.p(t,n),128&n[0]&&xt(dt,1)):(dt=Ga(t),dt.c(),xt(dt,1),dt.m(e,null)):dt&&(wt(),bt(dt,1,1,(()=>{dt=null})),yt())},i(t){Z||(xt(y.$$.fragment,t),xt(F.$$.fragment,t),xt(G.$$.fragment,t),xt(at),xt(ut),xt(dt),Z=!0)},o(t){bt(y.$$.fragment,t),bt(F.$$.fragment,t),bt(G.$$.fragment,t),bt(at),bt(ut),bt(dt),Z=!1},d(n){n&&L(e),lt.d(),Tt(y),t[22](null),ct.d(),Tt(F),Tt(G),t[23](null),at&&at.d(),ut&&ut.d(),dt&&dt.d(),Q=!1,l(tt)}}}function Aa(t){let e;return{c(){e=B("立即登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function ja(t){let e,n,s=t[8].profile.signature+"";return{c(){e=O("span"),n=B(s),E(e,"v-else",""),E(e,"class","text")},m(t,s){_(t,e,s),S(e,n)},p(t,e){256&e[0]&&s!==(s=t[8].profile.signature+"")&&P(n,s)},d(t){t&&L(e)}}}function Ua(e){let n;return{c(){n=O("span"),n.innerHTML='<img class="cvip svelte-xt612s" src="/images/vip/vip.png" alt=""/> \n                  <span class="vip-text svelte-xt612s">黑胶VIP</span>',E(n,"class","vip")},m(t,e){_(t,n,e)},p:t,d(t){t&&L(n)}}}function Va(e){let n;return{c(){n=O("span"),n.innerHTML='<embed width="100" height="100" src="/images/Ripple.svg" type="image/svg+xml"/>',j(n,"line-height","100px"),j(n,"position","relative"),j(n,"left","50%"),j(n,"margin-left","-50px"),j(n,"top","40px")},m(t,e){_(t,n,e)},p:t,d(t){t&&L(n)}}}function Fa(t){let e,n=t[3],s=[];for(let e=0;e<n.length;e+=1)s[e]=Ja(Ea(t,n,e));return{c(){for(let t=0;t<s.length;t+=1)s[t].c();e=N()},m(t,n){for(let e=0;e<s.length;e+=1)s[e].m(t,n);_(t,e,n)},p(t,i){if(8&i[0]){let l;for(n=t[3],l=0;l<n.length;l+=1){const o=Ea(t,n,l);s[l]?s[l].p(o,i):(s[l]=Ja(o),s[l].c(),s[l].m(e.parentNode,e))}for(;l<s.length;l+=1)s[l].d(1);s.length=n.length}},d(t){T(s,t),t&&L(e)}}}function Ja(t){let e,n,s,i,l,o,r=t[46].name+"";return{c(){e=O("div"),n=O("img"),i=H(),l=B(r),o=H(),E(n,"class","random-img svelte-xt612s"),j(n,"width",t[46].size+"px"),j(n,"height",t[46].size+"px"),j(n,"top",t[46].size/8+"px"),a(n.src,s=t[46].img.replace(/^http:/,"https:")+"?param=100y100")||E(n,"src",s),E(n,"alt",""),E(e,"class","random-item svelte-xt612s"),j(e,"height",t[46].size+"px"),j(e,"line-height",t[46].size+"px"),j(e,"top",26*t[48]+"px"),j(e,"left",t[46].left+"px"),j(e,"font-size",t[46].size+"px")},m(t,s){_(t,e,s),S(e,n),S(e,i),S(e,l),S(e,o)},p(t,i){8&i[0]&&j(n,"width",t[46].size+"px"),8&i[0]&&j(n,"height",t[46].size+"px"),8&i[0]&&j(n,"top",t[46].size/8+"px"),8&i[0]&&!a(n.src,s=t[46].img.replace(/^http:/,"https:")+"?param=100y100")&&E(n,"src",s),8&i[0]&&r!==(r=t[46].name+"")&&P(l,r),8&i[0]&&j(e,"height",t[46].size+"px"),8&i[0]&&j(e,"line-height",t[46].size+"px"),8&i[0]&&j(e,"left",t[46].left+"px"),8&i[0]&&j(e,"font-size",t[46].size+"px")},d(t){t&&L(e)}}}function qa(t){let e,n,s;return n=new Gc({props:{title:"收藏的歌单",playList:t[4],iconText:"全部"}}),n.$on("titleClick",t[18]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-xt612s")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};16&e[0]&&(s.playList=t[4]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Xa(t){let e,n,s;return n=new Gc({props:{title:"创建的歌单",playList:t[5],iconText:"全部"}}),n.$on("titleClick",t[17]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","list-grid svelte-xt612s")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};32&e[0]&&(s.playList=t[5]),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function Ga(t){let e,n,s,i;e=new vl({props:{title:"收藏的歌手",iconText:"全部",isShowRight:!0}}),e.$on("TitleClick",t[14]);let l=t[7],o=[];for(let e=0;e<l.length;e+=1)o[e]=Wa(Da(t,l,e));const r=t=>bt(o[t],1,1,(()=>{o[t]=null}));return{c(){_t(e.$$.fragment),n=H(),s=O("div");for(let t=0;t<o.length;t+=1)o[t].c();E(s,"class","songer-box svelte-xt612s")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l);for(let t=0;t<o.length;t+=1)o[t].m(s,null);i=!0},p(t,e){if(128&e[0]){let n;for(l=t[7],n=0;n<l.length;n+=1){const i=Da(t,l,n);o[n]?(o[n].p(i,e),xt(o[n],1)):(o[n]=Wa(i),o[n].c(),xt(o[n],1),o[n].m(s,null))}for(wt(),n=l.length;n<o.length;n+=1)r(n);yt()}},i(t){if(!i){xt(e.$$.fragment,t);for(let t=0;t<l.length;t+=1)xt(o[t]);i=!0}},o(t){bt(e.$$.fragment,t),o=o.filter(Boolean);for(let t=0;t<o.length;t+=1)bt(o[t]);i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(o,t)}}}function Wa(t){let e,n;return e=new Qc({props:{songer:t[43],coverSize:330}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};128&n[0]&&(s.songer=t[43]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ka(t){let e,n,s,i,l,o;e=new Hc({props:{title:"我的",desc:"曲库与设置",isRefresh:t[6],topTitleRightList:t[9]?t[12]:null}}),e.$on("IconClick",t[15]);const r=[Pa,Ra],c=[];function a(t,e){return t[9]?0:1}return i=a(t),l=c[i]=r[i](t),{c(){_t(e.$$.fragment),n=H(),s=O("div"),l.c(),E(s,"class","mine svelte-xt612s")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l),c[i].m(s,null),o=!0},p(t,n){const o={};64&n[0]&&(o.isRefresh=t[6]),512&n[0]&&(o.topTitleRightList=t[9]?t[12]:null),e.$set(o);let u=i;i=a(t),i===u?c[i].p(t,n):(wt(),bt(c[u],1,1,(()=>{c[u]=null})),yt(),l=c[i],l?l.p(t,n):(l=c[i]=r[i](t),l.c()),xt(l,1),l.m(s,null))},i(t){o||(xt(e.$$.fragment,t),xt(l),o=!0)},o(t){bt(e.$$.fragment,t),bt(l),o=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),c[i].d()}}}function Ya(t,e,n){let s=[];for(let i=0;i<n;i++)s.push(Math.floor(Math.random()*(e-t+1)+t));return s}function Za(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$,w,y,x,b,z,k;f(t,Ml,(t=>n(30,h=t))),f(t,_l,(t=>n(31,g=t))),f(t,mo,(t=>n(32,v=t))),f(t,fo,(t=>n(8,$=t))),f(t,mi,(t=>n(9,w=t))),f(t,po,(t=>n(33,y=t))),f(t,Dl,(t=>n(10,x=t))),f(t,zl,(t=>n(11,b=t)));let S={type:"icon",path:ns},C="string"==typeof y?JSON.parse(y):y;function M(){if(w){o=Ya(10,30,10),r=Ya(0,200,10),c=Ya(-50,300,10),a=Ya(0,JSON.parse(localStorage.getItem("useLoveSongIds")).length,10);let t=[];for(let e=0;e<a.length;e++)t.push(JSON.parse(localStorage.getItem("useLoveSongIds"))[a[e]]);!async function(t){n(2,d=!1),","===t.slice(0,1)&&(t=t.substr(1));t=t.replace(",,",",");const e=await Nr(t);if(200===e.code){s=e.songs,n(3,u=[]);for(let t=0;t<s.length;t++)u.push({name:s[t].name,size:o[t],top:r[t],left:c[t],img:s[t].al.picUrl,id:s[t].id});n(2,d=!0)}}(t.join(",")),async function(t){const e=await Mc({uid:$.account.id});if(200===e.code){n(6,p=!1);let t=[],s=[];e.playlist[0].creator.userId===$.account.id&&"喜欢的音乐"===e.playlist[0].name.substr(-5)&&(mo.set(e.playlist[0].id),localStorage.setItem("userLikeListId",e.playlist[0].id),e.playlist.splice(0,1));for(let n=0;n<e.playlist.length;n++)e.playlist[n].creator.userId===$.account.id?t.push(e.playlist[n]):s.push(e.playlist[n]);n(5,l=t.length>=10?t.slice(0,10):t),n(4,i=s.length>=10?s.slice(0,10):s)}else Ps("获取收藏歌单失败")}(),async function(){const t=await _c({limit:6});200===t.code&&n(7,m=t.data)}()}}function _(t){Tl.set(!1),localStorage.setItem("isFMPlay","0"),Ml.set(0),async function(t,e){const n=await Hr(t.id);200===n.code&&(n.data[0].url?(t.url=n.data[0].url.replace(/^http:/,"https:"),1===n.data[0].fee&&null!=n.data[0].freeTrialInfo?El.set("试听"):"flac"===n.data[0].type?El.set("FLAC"):El.set(n.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),e?Dl.set("heart"):Dl.set("repeat"),h!==g.length-1&&Hr(g[h+1].id)):As(e?`😂 心动模式随机的第一首「${t.name}」无法播放!可能是版权原因......吧!请重新开启心动模式。`:`😂 真不巧,您喜欢歌单的第一首--「${t.name}」就无法播放!可能是版权原因......吧!请进入音乐列表选择后面的歌曲播放。`))}(g[h],t)}Y((()=>{z&&Js(z),k&&Js(k),M()}));return s=[],n(4,i=[]),n(5,l=[]),o=[],r=[],c=[],a=[],n(3,u=[]),n(2,d=!1),n(6,p=!1),n(7,m=[]),[z,k,d,u,i,l,p,m,$,w,x,b,S,C,function(){hi.set(!1),me("/allCollectSongers")},function(t){0===t.detail.index&&M()},function(){hi.set(!1),me("/loveListDetail")},function(){hi.set(!1),me("/myAllPlayList?create")},function(){hi.set(!1),me("/myAllPlayList?collect")},function(){hi.set(!1),me("/setting")},function(t){t.preventDefault(),t.stopPropagation(),async function(){const t=await ta(v);if(200===t.code){let e=[];for(let n=0;n<t.playlist.trackIds.length;n++)e.push(t.playlist.trackIds[n].id);e.length>400&&Ps("歌曲较多,拼命加载中,请稍等!",2e3),async function(t){const e=await Nr(t);200===e.code&&(_l.set(e.songs),_(!1))}(e.join(",")),Hr(e[0])}}()},async function(t){t.preventDefault(),t.stopPropagation();const e=C[Math.floor(Math.random()*C.length)],n=await(s={id:e,pid:v},Br({url:"/playmode/intelligence/list",method:"get",params:s}));var s;if(200===n.code){Hr(e);let t=[];for(let e=0;e<n.data.length;e++)t.push(n.data[e].songInfo);!async function(t,e){const n=await Nr(t);if(200===n.code){let t=[n.songs[0],...e];_l.set(t);let s=[];for(let e=0;e<t.length;e++)s.push(t[e].id);localStorage.setItem("localPlayList",JSON.stringify(s)),_(!0)}}(e,t)}},function(t){st[t?"unshift":"push"]((()=>{k=t,n(1,k)}))},function(t){st[t?"unshift":"push"]((()=>{z=t,n(0,z)}))},()=>{hi.set(!1),me("/login")}]}class Qa extends It{constructor(t){super(),Ot(this,t,Za,Ka,r,{},null,[-1,-1])}}function tu(t){let e,n,s,i,l,o,r,c,a;return n=new va({}),l=new Na({}),c=new Qa({}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),i=O("div"),_t(l.$$.fragment),o=H(),r=O("div"),_t(c.$$.fragment),j(e,"display",0===t[0]?"block":"none"),j(i,"display",1===t[0]?"block":"none"),j(r,"display",2===t[0]?"block":"none")},m(t,u){_(t,e,u),Lt(n,e,null),_(t,s,u),_(t,i,u),Lt(l,i,null),_(t,o,u),_(t,r,u),Lt(c,r,null),a=!0},p(t,[n]){(!a||1&n)&&j(e,"display",0===t[0]?"block":"none"),(!a||1&n)&&j(i,"display",1===t[0]?"block":"none"),(!a||1&n)&&j(r,"display",2===t[0]?"block":"none")},i(t){a||(xt(n.$$.fragment,t),xt(l.$$.fragment,t),xt(c.$$.fragment,t),a=!0)},o(t){bt(n.$$.fragment,t),bt(l.$$.fragment,t),bt(c.$$.fragment,t),a=!1},d(t){t&&L(e),Tt(n),t&&L(s),t&&L(i),Tt(l),t&&L(o),t&&L(r),Tt(c)}}}function eu(t,e,n){let s,i;return f(t,mi,(t=>n(1,s=t))),f(t,vi,(t=>n(0,i=t))),Y((()=>{s?vi.set(0):vi.set(1);let t=new Date;s&&localStorage.getItem("dailySigninFun_date")!=""+t.getFullYear()+(t.getMonth()+1)+t.getDate()&&async function(){await function(t=0){return Br({url:"/daily_signin",method:"post",params:{type:t,timestamp:(new Date).getTime()}})}();let t=new Date;localStorage.setItem("dailySigninFun_date",""+t.getFullYear()+(t.getMonth()+1)+t.getDate())}()})),[i]}const{window:nu}=St;function su(t){let e,n;return{c(){e=O("img"),E(e,"class","img-cover svelte-21fmj8"),a(e.src,n=t[5].replace(/^http:/,"https:")+"?param=450y450")||E(e,"src",n),E(e,"alt","")},m(t,n){_(t,e,n)},p(t,s){32&s&&!a(e.src,n=t[5].replace(/^http:/,"https:")+"?param=450y450")&&E(e,"src",n)},d(t){t&&L(e)}}}function iu(e){let n,s,i,l;return s=new In({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n        播放歌单"),E(n,"class","icon svelte-21fmj8")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function lu(t){let e,n,s;return n=new Ys({props:{type:t[1]?"default":"primary",$$slots:{default:[cu]},$$scope:{ctx:t}}}),n.$on("BtnClick",t[14]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","random svelte-21fmj8")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};2&e&&(s.type=t[1]?"default":"primary"),268435458&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function ou(t){let e,n;return e=new Ee({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function ru(t){let e,n;return e=new Ae({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function cu(t){let e,n,s,i,l,o,r=t[1]?"取消收藏":"收藏歌单";const c=[ru,ou],a=[];function u(t,e){return t[1]?0:1}return n=u(t),s=a[n]=c[n](t),{c(){e=O("span"),s.c(),i=H(),l=B(r),E(e,"class","icon svelte-21fmj8")},m(t,s){_(t,e,s),a[n].m(e,null),_(t,i,s),_(t,l,s),o=!0},p(t,i){let d=n;n=u(t),n!==d&&(wt(),bt(a[d],1,1,(()=>{a[d]=null})),yt(),s=a[n],s||(s=a[n]=c[n](t),s.c()),xt(s,1),s.m(e,null)),(!o||2&i)&&r!==(r=t[1]?"取消收藏":"收藏歌单")&&P(l,r)},i(t){o||(xt(s),o=!0)},o(t){bt(s),o=!1},d(t){t&&L(e),a[n].d(),t&&L(i),t&&L(l)}}}function au(t){let e,n,s,i,l,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,F,J,q,X,G,W,K,Y=t[7].nickname+"",Z=Ns(t[4])+"",Q=(t[2]?t[2].length:0)+"";e=new si({props:{title:t[8],transparent:!0,dark:!0,alphaNumber:t[3]}}),r=new uo({props:{height:140,$$slots:{default:[su]},$$scope:{ctx:t}}}),V=new Ys({props:{type:"primary",$$slots:{default:[iu]},$$scope:{ctx:t}}}),V.$on("BtnClick",t[16]);let tt=t[10]&&t[7].userId!=t[11].account.id&&lu(t);return X=new jr({props:{songList:t[2]}}),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),l=O("div"),o=O("div"),_t(r.$$.fragment),c=H(),u=O("div"),d=O("div"),f=B(t[9]),p=H(),m=O("div"),h=O("img"),v=H(),$=O("span"),w=B(Y),y=H(),x=O("div"),b=B("更新于"),z=B(Z),k=B(" • "),C=B(Q),M=B("首"),T=H(),I=O("div"),N=B(t[6]),R=H(),A=O("div"),U=O("div"),_t(V.$$.fragment),F=H(),tt&&tt.c(),J=H(),q=O("div"),_t(X.$$.fragment),E(o,"class","cover svelte-21fmj8"),E(d,"class","name svelte-21fmj8"),E(h,"class","creatorImg svelte-21fmj8"),a(h.src,g=t[7].avatarUrl.replace(/^http:/,"https:")+"?param=60y60")||E(h,"src",g),E(h,"alt",""),E($,"class","creatertext svelte-21fmj8"),E(m,"class","creater svelte-21fmj8"),E(x,"class","update svelte-21fmj8"),E(u,"class","info svelte-21fmj8"),E(l,"class","cover-bg svelte-21fmj8"),E(i,"class","cover-box svelte-21fmj8"),j(i,"background","url("+t[5].replace(/^http:/,"https:")+"?param=450y450)"),E(I,"class","desc svelte-21fmj8"),E(U,"class","play svelte-21fmj8"),j(U,"margin-right",(t[10]&&t[7].userId!=t[11].account.id?20:0)+"px"),E(A,"class","btn svelte-21fmj8"),E(s,"class","play-list svelte-21fmj8")},m(a,g){Lt(e,a,g),_(a,n,g),_(a,s,g),S(s,i),S(i,l),S(l,o),Lt(r,o,null),S(l,c),S(l,u),S(u,d),S(d,f),S(u,p),S(u,m),S(m,h),S(m,v),S(m,$),S($,w),S(u,y),S(u,x),S(x,b),S(x,z),S(x,k),S(x,C),S(x,M),t[15](i),S(s,T),S(s,I),S(I,N),S(s,R),S(s,A),S(A,U),Lt(V,U,null),S(A,F),tt&&tt.m(A,null),S(s,J),S(s,q),Lt(X,q,null),G=!0,W||(K=D(nu,"scroll",t[12]),W=!0)},p(t,[n]){const s={};256&n&&(s.title=t[8]),8&n&&(s.alphaNumber=t[3]),e.$set(s);const l={};268435488&n&&(l.$$scope={dirty:n,ctx:t}),r.$set(l),(!G||512&n)&&P(f,t[9]),(!G||128&n&&!a(h.src,g=t[7].avatarUrl.replace(/^http:/,"https:")+"?param=60y60"))&&E(h,"src",g),(!G||128&n)&&Y!==(Y=t[7].nickname+"")&&P(w,Y),(!G||16&n)&&Z!==(Z=Ns(t[4])+"")&&P(z,Z),(!G||4&n)&&Q!==(Q=(t[2]?t[2].length:0)+"")&&P(C,Q),(!G||32&n)&&j(i,"background","url("+t[5].replace(/^http:/,"https:")+"?param=450y450)"),(!G||64&n)&&P(N,t[6]);const o={};268435456&n&&(o.$$scope={dirty:n,ctx:t}),V.$set(o),(!G||3200&n)&&j(U,"margin-right",(t[10]&&t[7].userId!=t[11].account.id?20:0)+"px"),t[10]&&t[7].userId!=t[11].account.id?tt?(tt.p(t,n),3200&n&&xt(tt,1)):(tt=lu(t),tt.c(),xt(tt,1),tt.m(A,null)):tt&&(wt(),bt(tt,1,1,(()=>{tt=null})),yt());const c={};4&n&&(c.songList=t[2]),X.$set(c)},i(t){G||(xt(e.$$.fragment,t),xt(r.$$.fragment,t),xt(V.$$.fragment,t),xt(tt),xt(X.$$.fragment,t),G=!0)},o(t){bt(e.$$.fragment,t),bt(r.$$.fragment,t),bt(V.$$.fragment,t),bt(tt),bt(X.$$.fragment,t),G=!1},d(i){Tt(e,i),i&&L(n),i&&L(s),Tt(r),t[15](null),Tt(V),tt&&tt.d(),Tt(X),W=!1,K()}}}function uu(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$,w;f(t,Ml,(t=>n(18,m=t))),f(t,_l,(t=>n(19,h=t))),f(t,te,(t=>n(20,g=t))),f(t,gi,(t=>n(21,v=t))),f(t,mi,(t=>n(10,$=t))),f(t,fo,(t=>n(11,w=t)));const{id:y}=Fs(g);let x;async function b(){console.debug("getPlaylistDetail",s);const t=await ta(s);if(200===t.code){pi.set(!0);const{trackIds:e}=t.playlist;n(9,u=n(8,l=t.playlist.name)),n(7,p=t.playlist.creator),n(6,o=t.playlist.description),n(5,a=t.playlist.coverImgUrl),n(4,d=t.playlist.updateTime);let s=js(e.map((t=>t.id)));for(let t=0;t<s.length;t++)await z(s[t])}}async function z(t){Array.isArray(t)&&(t=t.join(","));const e=await Nr(t);200===e.code&&n(2,c=c.concat(e.songs))}Y((()=>{b()})),ge((()=>{if(!v){n(2,c=[]);const{id:t}=Fs(g);s=t,b()}}));const k=t=>{var e;Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),e=t.url,window.audioDOM.src=e,window.audioDOM.play()};function S(t){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(c);const e=c.map((t=>t.id));localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),k(t),zl.set(!0)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(h[m])}return s=y,n(1,i=!1),n(8,l="歌单详情"),n(6,o=""),n(3,r=0),n(2,c=[]),n(5,a=ki),n(9,u="歌单名称"),n(4,d=(new Date).getTime()),n(7,p={nickname:"创建者",avatarUrl:ki,id:0}),[x,i,c,r,d,a,o,p,l,u,$,w,function(){const t=x.getBoundingClientRect().top;n(3,r=t>-50&&t<=0?Math.abs(t)/50:1),t>0&&n(3,r=0)},S,async function(){const t=await function(t,e){return Br({url:"/playlist/subscribe",method:"post",params:{id:t,t:e?1:2,timestamp:(new Date).getTime()}})}(s,!i);200===t.code&&n(1,i=!i)},function(t){st[t?"unshift":"push"]((()=>{x=t,n(0,x)}))},()=>S(0)]}var du=be(Object.freeze({__proto__:null,default:{}})),fu=xe((function(t,e){var n;t.exports=(n=n||function(t,e){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==ye&&ye.crypto&&(n=ye.crypto),!n)try{n=du}catch(t){}var s=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),l={},o=l.lib={},r=o.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},c=o.WordArray=r.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:4*t.length},toString:function(t){return(t||u).stringify(this)},concat:function(t){var e=this.words,n=t.words,s=this.sigBytes,i=t.sigBytes;if(this.clamp(),s%4)for(var l=0;l<i;l++){var o=n[l>>>2]>>>24-l%4*8&255;e[s+l>>>2]|=o<<24-(s+l)%4*8}else for(var r=0;r<i;r+=4)e[s+r>>>2]=n[r>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=r.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n<t;n+=4)e.push(s());return new c.init(e,t)}}),a=l.enc={},u=a.Hex={stringify:function(t){for(var e=t.words,n=t.sigBytes,s=[],i=0;i<n;i++){var l=e[i>>>2]>>>24-i%4*8&255;s.push((l>>>4).toString(16)),s.push((15&l).toString(16))}return s.join("")},parse:function(t){for(var e=t.length,n=[],s=0;s<e;s+=2)n[s>>>3]|=parseInt(t.substr(s,2),16)<<24-s%8*4;return new c.init(n,e/2)}},d=a.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,s=[],i=0;i<n;i++){var l=e[i>>>2]>>>24-i%4*8&255;s.push(String.fromCharCode(l))}return s.join("")},parse:function(t){for(var e=t.length,n=[],s=0;s<e;s++)n[s>>>2]|=(255&t.charCodeAt(s))<<24-s%4*8;return new c.init(n,e)}},f=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(d.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return d.parse(unescape(encodeURIComponent(t)))}},p=o.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,s=this._data,i=s.words,l=s.sigBytes,o=this.blockSize,r=l/(4*o),a=(r=e?t.ceil(r):t.max((0|r)-this._minBufferSize,0))*o,u=t.min(4*a,l);if(a){for(var d=0;d<a;d+=o)this._doProcessBlock(i,d);n=i.splice(0,a),s.sigBytes-=u}return new c.init(n,u)},clone:function(){var t=r.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});o.Hasher=p.extend({cfg:r.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,n){return new t.init(n).finalize(e)}},_createHmacHelper:function(t){return function(e,n){return new m.HMAC.init(t,n).finalize(e)}}});var m=l.algo={};return l}(Math),n)})),pu=xe((function(t,e){var n;t.exports=(n=fu,function(t){var e=n,s=e.lib,i=s.WordArray,l=s.Hasher,o=e.algo,r=[];!function(){for(var e=0;e<64;e++)r[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=o.MD5=l.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var s=e+n,i=t[s];t[s]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var l=this._hash.words,o=t[e+0],c=t[e+1],p=t[e+2],m=t[e+3],h=t[e+4],g=t[e+5],v=t[e+6],$=t[e+7],w=t[e+8],y=t[e+9],x=t[e+10],b=t[e+11],z=t[e+12],k=t[e+13],S=t[e+14],C=t[e+15],M=l[0],_=l[1],L=l[2],T=l[3];M=a(M,_,L,T,o,7,r[0]),T=a(T,M,_,L,c,12,r[1]),L=a(L,T,M,_,p,17,r[2]),_=a(_,L,T,M,m,22,r[3]),M=a(M,_,L,T,h,7,r[4]),T=a(T,M,_,L,g,12,r[5]),L=a(L,T,M,_,v,17,r[6]),_=a(_,L,T,M,$,22,r[7]),M=a(M,_,L,T,w,7,r[8]),T=a(T,M,_,L,y,12,r[9]),L=a(L,T,M,_,x,17,r[10]),_=a(_,L,T,M,b,22,r[11]),M=a(M,_,L,T,z,7,r[12]),T=a(T,M,_,L,k,12,r[13]),L=a(L,T,M,_,S,17,r[14]),M=u(M,_=a(_,L,T,M,C,22,r[15]),L,T,c,5,r[16]),T=u(T,M,_,L,v,9,r[17]),L=u(L,T,M,_,b,14,r[18]),_=u(_,L,T,M,o,20,r[19]),M=u(M,_,L,T,g,5,r[20]),T=u(T,M,_,L,x,9,r[21]),L=u(L,T,M,_,C,14,r[22]),_=u(_,L,T,M,h,20,r[23]),M=u(M,_,L,T,y,5,r[24]),T=u(T,M,_,L,S,9,r[25]),L=u(L,T,M,_,m,14,r[26]),_=u(_,L,T,M,w,20,r[27]),M=u(M,_,L,T,k,5,r[28]),T=u(T,M,_,L,p,9,r[29]),L=u(L,T,M,_,$,14,r[30]),M=d(M,_=u(_,L,T,M,z,20,r[31]),L,T,g,4,r[32]),T=d(T,M,_,L,w,11,r[33]),L=d(L,T,M,_,b,16,r[34]),_=d(_,L,T,M,S,23,r[35]),M=d(M,_,L,T,c,4,r[36]),T=d(T,M,_,L,h,11,r[37]),L=d(L,T,M,_,$,16,r[38]),_=d(_,L,T,M,x,23,r[39]),M=d(M,_,L,T,k,4,r[40]),T=d(T,M,_,L,o,11,r[41]),L=d(L,T,M,_,m,16,r[42]),_=d(_,L,T,M,v,23,r[43]),M=d(M,_,L,T,y,4,r[44]),T=d(T,M,_,L,z,11,r[45]),L=d(L,T,M,_,C,16,r[46]),M=f(M,_=d(_,L,T,M,p,23,r[47]),L,T,o,6,r[48]),T=f(T,M,_,L,$,10,r[49]),L=f(L,T,M,_,S,15,r[50]),_=f(_,L,T,M,g,21,r[51]),M=f(M,_,L,T,z,6,r[52]),T=f(T,M,_,L,m,10,r[53]),L=f(L,T,M,_,x,15,r[54]),_=f(_,L,T,M,c,21,r[55]),M=f(M,_,L,T,w,6,r[56]),T=f(T,M,_,L,C,10,r[57]),L=f(L,T,M,_,v,15,r[58]),_=f(_,L,T,M,k,21,r[59]),M=f(M,_,L,T,h,6,r[60]),T=f(T,M,_,L,b,10,r[61]),L=f(L,T,M,_,p,15,r[62]),_=f(_,L,T,M,y,21,r[63]),l[0]=l[0]+M|0,l[1]=l[1]+_|0,l[2]=l[2]+L|0,l[3]=l[3]+T|0},_doFinalize:function(){var e=this._data,n=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;n[i>>>5]|=128<<24-i%32;var l=t.floor(s/4294967296),o=s;n[15+(i+64>>>9<<4)]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8),n[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e.sigBytes=4*(n.length+1),this._process();for(var r=this._hash,c=r.words,a=0;a<4;a++){var u=c[a];c[a]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return r},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});function a(t,e,n,s,i,l,o){var r=t+(e&n|~e&s)+i+o;return(r<<l|r>>>32-l)+e}function u(t,e,n,s,i,l,o){var r=t+(e&s|n&~s)+i+o;return(r<<l|r>>>32-l)+e}function d(t,e,n,s,i,l,o){var r=t+(e^n^s)+i+o;return(r<<l|r>>>32-l)+e}function f(t,e,n,s,i,l,o){var r=t+(n^(e|~s))+i+o;return(r<<l|r>>>32-l)+e}e.MD5=l._createHelper(c),e.HmacMD5=l._createHmacHelper(c)}(Math),n.MD5)})),mu=xe((function(t,e){t.exports=function(){var t=function(){},e=Object.prototype.hasOwnProperty,n=Array.prototype.slice;function s(e,n){var s;return"function"==typeof Object.create?s=Object.create(e):(t.prototype=e,s=new t,t.prototype=null),n&&l(!0,s,n),s}function i(t,e,n,i){var o=this;return"string"!=typeof t&&(i=n,n=e,e=t,t=null),"function"!=typeof e&&(i=n,n=e,e=function(){return o.apply(this,arguments)}),l(!1,e,o,i),e.prototype=s(o.prototype,n),e.prototype.constructor=e,e.class_=t||o.class_,e.super_=o,e}function l(t,s,i){for(var l,o,r=0,c=(i=n.call(arguments,2)).length;r<c;r++)for(l in o=i[r])t&&!e.call(o,l)||(s[l]=o[l])}var o=i;function r(){}r.class_="Nevis",r.super_=Object,r.extend=o;var c=r,a=c.extend((function(t,e,n){this.qrious=t,this.element=e,this.element.qrious=t,this.enabled=Boolean(n)}),{draw:function(t){},getElement:function(){return this.enabled||(this.enabled=!0,this.render()),this.element},getModuleSize:function(t){var e=this.qrious,n=e.padding||0,s=Math.floor((e.size-2*n)/t.width);return Math.max(1,s)},render:function(t){this.enabled&&(this.resize(),this.reset(),this.draw(t))},reset:function(){},resize:function(){}}),u=a,d=u.extend({draw:function(t){var e,n,s=this.qrious,i=this.getModuleSize(t),l=parseInt((this.element.width-t.width*i)/2),o=this.element.getContext("2d");for(o.fillStyle=s.foreground,o.globalAlpha=s.foregroundAlpha,e=0;e<t.width;e++)for(n=0;n<t.width;n++)t.buffer[n*t.width+e]&&o.fillRect(i*e+l,i*n+l,i,i)},reset:function(){var t=this.qrious,e=this.element.getContext("2d"),n=t.size;e.lineWidth=1,e.clearRect(0,0,n,n),e.fillStyle=t.background,e.globalAlpha=t.backgroundAlpha,e.fillRect(0,0,n,n)},resize:function(){var t=this.element;t.width=t.height=this.qrious.size}}),f=d,p=c.extend(null,{BLOCK:[0,11,15,19,23,27,31,16,18,20,22,24,26,28,20,22,24,24,26,28,28,22,24,24,26,26,28,28,24,24,26,26,26,28,28,24,26,26,26,28,28]}),m=c.extend(null,{BLOCKS:[1,0,19,7,1,0,16,10,1,0,13,13,1,0,9,17,1,0,34,10,1,0,28,16,1,0,22,22,1,0,16,28,1,0,55,15,1,0,44,26,2,0,17,18,2,0,13,22,1,0,80,20,2,0,32,18,2,0,24,26,4,0,9,16,1,0,108,26,2,0,43,24,2,2,15,18,2,2,11,22,2,0,68,18,4,0,27,16,4,0,19,24,4,0,15,28,2,0,78,20,4,0,31,18,2,4,14,18,4,1,13,26,2,0,97,24,2,2,38,22,4,2,18,22,4,2,14,26,2,0,116,30,3,2,36,22,4,4,16,20,4,4,12,24,2,2,68,18,4,1,43,26,6,2,19,24,6,2,15,28,4,0,81,20,1,4,50,30,4,4,22,28,3,8,12,24,2,2,92,24,6,2,36,22,4,6,20,26,7,4,14,28,4,0,107,26,8,1,37,22,8,4,20,24,12,4,11,22,3,1,115,30,4,5,40,24,11,5,16,20,11,5,12,24,5,1,87,22,5,5,41,24,5,7,24,30,11,7,12,24,5,1,98,24,7,3,45,28,15,2,19,24,3,13,15,30,1,5,107,28,10,1,46,28,1,15,22,28,2,17,14,28,5,1,120,30,9,4,43,26,17,1,22,28,2,19,14,28,3,4,113,28,3,11,44,26,17,4,21,26,9,16,13,26,3,5,107,28,3,13,41,26,15,5,24,30,15,10,15,28,4,4,116,28,17,0,42,26,17,6,22,28,19,6,16,30,2,7,111,28,17,0,46,28,7,16,24,30,34,0,13,24,4,5,121,30,4,14,47,28,11,14,24,30,16,14,15,30,6,4,117,30,6,14,45,28,11,16,24,30,30,2,16,30,8,4,106,26,8,13,47,28,7,22,24,30,22,13,15,30,10,2,114,28,19,4,46,28,28,6,22,28,33,4,16,30,8,4,122,30,22,3,45,28,8,26,23,30,12,28,15,30,3,10,117,30,3,23,45,28,4,31,24,30,11,31,15,30,7,7,116,30,21,7,45,28,1,37,23,30,19,26,15,30,5,10,115,30,19,10,47,28,15,25,24,30,23,25,15,30,13,3,115,30,2,29,46,28,42,1,24,30,23,28,15,30,17,0,115,30,10,23,46,28,10,35,24,30,19,35,15,30,17,1,115,30,14,21,46,28,29,19,24,30,11,46,15,30,13,6,115,30,14,23,46,28,44,7,24,30,59,1,16,30,12,7,121,30,12,26,47,28,39,14,24,30,22,41,15,30,6,14,121,30,6,34,47,28,46,10,24,30,2,64,15,30,17,4,122,30,29,14,46,28,49,10,24,30,24,46,15,30,4,18,122,30,13,32,46,28,48,14,24,30,42,32,15,30,20,4,117,30,40,7,47,28,43,22,24,30,10,67,15,30,19,6,118,30,18,31,47,28,34,34,24,30,20,61,15,30],FINAL_FORMAT:[30660,29427,32170,30877,26159,25368,27713,26998,21522,20773,24188,23371,17913,16590,20375,19104,13663,12392,16177,14854,9396,8579,11994,11245,5769,5054,7399,6608,1890,597,3340,2107],LEVELS:{L:1,M:2,Q:3,H:4}}),h=c.extend(null,{EXPONENT:[1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,0],LOG:[255,0,1,25,2,50,26,198,3,223,51,238,27,104,199,75,4,100,224,14,52,141,239,129,28,193,105,248,200,8,76,113,5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154,9,120,77,228,114,166,6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87,7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175]}),g=c.extend(null,{BLOCK:[3220,1468,2713,1235,3062,1890,2119,1549,2344,2936,1117,2583,1330,2470,1667,2249,2028,3780,481,4011,142,3098,831,3445,592,2517,1776,2234,1951,2827,1070,2660,1345,3177]}),v=c.extend((function(t){var e,n,s,i,l,o=t.value.length;for(this._badness=[],this._level=m.LEVELS[t.level],this._polynomial=[],this._value=t.value,this._version=0,this._stringBuffer=[];this._version<40&&(this._version++,s=4*(this._level-1)+16*(this._version-1),i=m.BLOCKS[s++],l=m.BLOCKS[s++],e=m.BLOCKS[s++],n=m.BLOCKS[s],!(o<=(s=e*(i+l)+l-3+(this._version<=9)))););this._dataBlock=e,this._eccBlock=n,this._neccBlock1=i,this._neccBlock2=l;var r=this.width=17+4*this._version;this.buffer=v._createArray(r*r),this._ecc=v._createArray(e+(e+n)*(i+l)+l),this._mask=v._createArray((r*(r+1)+1)/2),this._insertFinders(),this._insertAlignments(),this.buffer[8+r*(r-8)]=1,this._insertTimingGap(),this._reverseMask(),this._insertTimingRowAndColumn(),this._insertVersion(),this._syncMask(),this._convertBitStream(o),this._calculatePolynomial(),this._appendEccToData(),this._interleaveBlocks(),this._pack(),this._finish()}),{_addAlignment:function(t,e){var n,s=this.buffer,i=this.width;for(s[t+i*e]=1,n=-2;n<2;n++)s[t+n+i*(e-2)]=1,s[t-2+i*(e+n+1)]=1,s[t+2+i*(e+n)]=1,s[t+n+1+i*(e+2)]=1;for(n=0;n<2;n++)this._setMask(t-1,e+n),this._setMask(t+1,e-n),this._setMask(t-n,e-1),this._setMask(t+n,e+1)},_appendData:function(t,e,n,s){var i,l,o,r=this._polynomial,c=this._stringBuffer;for(l=0;l<s;l++)c[n+l]=0;for(l=0;l<e;l++){if(255!==(i=h.LOG[c[t+l]^c[n]]))for(o=1;o<s;o++)c[n+o-1]=c[n+o]^h.EXPONENT[v._modN(i+r[s-o])];else for(o=n;o<n+s;o++)c[o]=c[o+1];c[n+s-1]=255===i?0:h.EXPONENT[v._modN(i+r[0])]}},_appendEccToData:function(){var t,e=0,n=this._dataBlock,s=this._calculateMaxLength(),i=this._eccBlock;for(t=0;t<this._neccBlock1;t++)this._appendData(e,n,s,i),e+=n,s+=i;for(t=0;t<this._neccBlock2;t++)this._appendData(e,n+1,s,i),e+=n+1,s+=i},_applyMask:function(t){var e,n,s,i,l=this.buffer,o=this.width;switch(t){case 0:for(i=0;i<o;i++)for(s=0;s<o;s++)s+i&1||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 1:for(i=0;i<o;i++)for(s=0;s<o;s++)1&i||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 2:for(i=0;i<o;i++)for(e=0,s=0;s<o;s++,e++)3===e&&(e=0),e||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 3:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=n,s=0;s<o;s++,e++)3===e&&(e=0),e||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 4:for(i=0;i<o;i++)for(e=0,n=i>>1&1,s=0;s<o;s++,e++)3===e&&(e=0,n=!n),n||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 5:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=0,s=0;s<o;s++,e++)3===e&&(e=0),(s&i&1)+!(!e|!n)||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 6:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=0,s=0;s<o;s++,e++)3===e&&(e=0),(s&i&1)+(e&&e===n)&1||this._isMasked(s,i)||(l[s+i*o]^=1);break;case 7:for(n=0,i=0;i<o;i++,n++)for(3===n&&(n=0),e=0,s=0;s<o;s++,e++)3===e&&(e=0),(e&&e===n)+(s+i&1)&1||this._isMasked(s,i)||(l[s+i*o]^=1)}},_calculateMaxLength:function(){return this._dataBlock*(this._neccBlock1+this._neccBlock2)+this._neccBlock2},_calculatePolynomial:function(){var t,e,n=this._eccBlock,s=this._polynomial;for(s[0]=1,t=0;t<n;t++){for(s[t+1]=1,e=t;e>0;e--)s[e]=s[e]?s[e-1]^h.EXPONENT[v._modN(h.LOG[s[e]]+t)]:s[e-1];s[0]=h.EXPONENT[v._modN(h.LOG[s[0]]+t)]}for(t=0;t<=n;t++)s[t]=h.LOG[s[t]]},_checkBadness:function(){var t,e,n,s,i,l=0,o=this._badness,r=this.buffer,c=this.width;for(i=0;i<c-1;i++)for(s=0;s<c-1;s++)(r[s+c*i]&&r[s+1+c*i]&&r[s+c*(i+1)]&&r[s+1+c*(i+1)]||!(r[s+c*i]||r[s+1+c*i]||r[s+c*(i+1)]||r[s+1+c*(i+1)]))&&(l+=v.N2);var a=0;for(i=0;i<c;i++){for(n=0,o[0]=0,t=0,s=0;s<c;s++)t===(e=r[s+c*i])?o[n]++:o[++n]=1,a+=(t=e)?1:-1;l+=this._getBadness(n)}a<0&&(a=-a);var u=0,d=a;for(d+=d<<2,d<<=1;d>c*c;)d-=c*c,u++;for(l+=u*v.N4,s=0;s<c;s++){for(n=0,o[0]=0,t=0,i=0;i<c;i++)t===(e=r[s+c*i])?o[n]++:o[++n]=1,t=e;l+=this._getBadness(n)}return l},_convertBitStream:function(t){var e,n,s=this._ecc,i=this._version;for(n=0;n<t;n++)s[n]=this._value.charCodeAt(n);var l=this._stringBuffer=s.slice(),o=this._calculateMaxLength();t>=o-2&&(t=o-2,i>9&&t--);var r=t;if(i>9){for(l[r+2]=0,l[r+3]=0;r--;)e=l[r],l[r+3]|=255&e<<4,l[r+2]=e>>4;l[2]|=255&t<<4,l[1]=t>>4,l[0]=64|t>>12}else{for(l[r+1]=0,l[r+2]=0;r--;)e=l[r],l[r+2]|=255&e<<4,l[r+1]=e>>4;l[1]|=255&t<<4,l[0]=64|t>>4}for(r=t+3-(i<10);r<o;)l[r++]=236,l[r++]=17},_getBadness:function(t){var e,n=0,s=this._badness;for(e=0;e<=t;e++)s[e]>=5&&(n+=v.N1+s[e]-5);for(e=3;e<t-1;e+=2)s[e-2]===s[e+2]&&s[e+2]===s[e-1]&&s[e-1]===s[e+1]&&3*s[e-1]===s[e]&&(0===s[e-3]||e+3>t||3*s[e-3]>=4*s[e]||3*s[e+3]>=4*s[e])&&(n+=v.N3);return n},_finish:function(){var t,e;this._stringBuffer=this.buffer.slice();var n=0,s=3e4;for(e=0;e<8&&(this._applyMask(e),(t=this._checkBadness())<s&&(s=t,n=e),7!==n);e++)this.buffer=this._stringBuffer.slice();n!==e&&this._applyMask(n),s=m.FINAL_FORMAT[n+(this._level-1<<3)];var i=this.buffer,l=this.width;for(e=0;e<8;e++,s>>=1)1&s&&(i[l-1-e+8*l]=1,e<6?i[8+l*e]=1:i[8+l*(e+1)]=1);for(e=0;e<7;e++,s>>=1)1&s&&(i[8+l*(l-7+e)]=1,e?i[6-e+8*l]=1:i[7+8*l]=1)},_interleaveBlocks:function(){var t,e,n=this._dataBlock,s=this._ecc,i=this._eccBlock,l=0,o=this._calculateMaxLength(),r=this._neccBlock1,c=this._neccBlock2,a=this._stringBuffer;for(t=0;t<n;t++){for(e=0;e<r;e++)s[l++]=a[t+e*n];for(e=0;e<c;e++)s[l++]=a[r*n+t+e*(n+1)]}for(e=0;e<c;e++)s[l++]=a[r*n+t+e*(n+1)];for(t=0;t<i;t++)for(e=0;e<r+c;e++)s[l++]=a[o+t+e*i];this._stringBuffer=s},_insertAlignments:function(){var t,e,n,s=this._version,i=this.width;if(s>1)for(t=p.BLOCK[s],n=i-7;;){for(e=i-7;e>t-3&&(this._addAlignment(e,n),!(e<t));)e-=t;if(n<=t+9)break;n-=t,this._addAlignment(6,n),this._addAlignment(n,6)}},_insertFinders:function(){var t,e,n,s,i=this.buffer,l=this.width;for(t=0;t<3;t++){for(e=0,s=0,1===t&&(e=l-7),2===t&&(s=l-7),i[s+3+l*(e+3)]=1,n=0;n<6;n++)i[s+n+l*e]=1,i[s+l*(e+n+1)]=1,i[s+6+l*(e+n)]=1,i[s+n+1+l*(e+6)]=1;for(n=1;n<5;n++)this._setMask(s+n,e+1),this._setMask(s+1,e+n+1),this._setMask(s+5,e+n),this._setMask(s+n+1,e+5);for(n=2;n<4;n++)i[s+n+l*(e+2)]=1,i[s+2+l*(e+n+1)]=1,i[s+4+l*(e+n)]=1,i[s+n+1+l*(e+4)]=1}},_insertTimingGap:function(){var t,e,n=this.width;for(e=0;e<7;e++)this._setMask(7,e),this._setMask(n-8,e),this._setMask(7,e+n-7);for(t=0;t<8;t++)this._setMask(t,7),this._setMask(t+n-8,7),this._setMask(t,n-8)},_insertTimingRowAndColumn:function(){var t,e=this.buffer,n=this.width;for(t=0;t<n-14;t++)1&t?(this._setMask(8+t,6),this._setMask(6,8+t)):(e[8+t+6*n]=1,e[6+n*(8+t)]=1)},_insertVersion:function(){var t,e,n,s,i=this.buffer,l=this._version,o=this.width;if(l>6)for(t=g.BLOCK[l-7],e=17,n=0;n<6;n++)for(s=0;s<3;s++,e--)1&(e>11?l>>e-12:t>>e)?(i[5-n+o*(2-s+o-11)]=1,i[2-s+o-11+o*(5-n)]=1):(this._setMask(5-n,2-s+o-11),this._setMask(2-s+o-11,5-n))},_isMasked:function(t,e){var n=v._getMaskBit(t,e);return 1===this._mask[n]},_pack:function(){var t,e,n,s=1,i=1,l=this.width,o=l-1,r=l-1,c=(this._dataBlock+this._eccBlock)*(this._neccBlock1+this._neccBlock2)+this._neccBlock2;for(e=0;e<c;e++)for(t=this._stringBuffer[e],n=0;n<8;n++,t<<=1){128&t&&(this.buffer[o+l*r]=1);do{i?o--:(o++,s?0!==r?r--:(s=!s,6==(o-=2)&&(o--,r=9)):r!==l-1?r++:(s=!s,6==(o-=2)&&(o--,r-=8))),i=!i}while(this._isMasked(o,r))}},_reverseMask:function(){var t,e,n=this.width;for(t=0;t<9;t++)this._setMask(t,8);for(t=0;t<8;t++)this._setMask(t+n-8,8),this._setMask(8,t);for(e=0;e<7;e++)this._setMask(8,e+n-7)},_setMask:function(t,e){var n=v._getMaskBit(t,e);this._mask[n]=1},_syncMask:function(){var t,e,n=this.width;for(e=0;e<n;e++)for(t=0;t<=e;t++)this.buffer[t+n*e]&&this._setMask(t,e)}},{_createArray:function(t){var e,n=[];for(e=0;e<t;e++)n[e]=0;return n},_getMaskBit:function(t,e){var n;return t>e&&(n=t,t=e,e=n),n=e,n+=e*e,n>>=1,n+=t},_modN:function(t){for(;t>=255;)t=((t-=255)>>8)+(255&t);return t},N1:3,N2:3,N3:40,N4:10}),$=v,w=u.extend({draw:function(){this.element.src=this.qrious.toDataURL()},reset:function(){this.element.src=""},resize:function(){var t=this.element;t.width=t.height=this.qrious.size}}),y=w,x=c.extend((function(t,e,n,s){this.name=t,this.modifiable=Boolean(e),this.defaultValue=n,this._valueTransformer=s}),{transform:function(t){var e=this._valueTransformer;return"function"==typeof e?e(t,this):t}}),b=x,z=c.extend(null,{abs:function(t){return null!=t?Math.abs(t):null},hasOwn:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},noop:function(){},toUpperCase:function(t){return null!=t?t.toUpperCase():null}}),k=z,S=c.extend((function(t){this.options={},t.forEach((function(t){this.options[t.name]=t}),this)}),{exists:function(t){return null!=this.options[t]},get:function(t,e){return S._get(this.options[t],e)},getAll:function(t){var e,n=this.options,s={};for(e in n)k.hasOwn(n,e)&&(s[e]=S._get(n[e],t));return s},init:function(t,e,n){var s,i;for(s in"function"!=typeof n&&(n=k.noop),this.options)k.hasOwn(this.options,s)&&(i=this.options[s],S._set(i,i.defaultValue,e),S._createAccessor(i,e,n));this._setAll(t,e,!0)},set:function(t,e,n){return this._set(t,e,n)},setAll:function(t,e){return this._setAll(t,e)},_set:function(t,e,n,s){var i=this.options[t];if(!i)throw new Error("Invalid option: "+t);if(!i.modifiable&&!s)throw new Error("Option cannot be modified: "+t);return S._set(i,e,n)},_setAll:function(t,e,n){if(!t)return!1;var s,i=!1;for(s in t)k.hasOwn(t,s)&&this._set(s,t[s],e,n)&&(i=!0);return i}},{_createAccessor:function(t,e,n){var s={get:function(){return S._get(t,e)}};t.modifiable&&(s.set=function(s){S._set(t,s,e)&&n(s,t)}),Object.defineProperty(e,t.name,s)},_get:function(t,e){return e["_"+t.name]},_set:function(t,e,n){var s="_"+t.name,i=n[s],l=t.transform(null!=e?e:t.defaultValue);return n[s]=l,l!==i}}),C=S,M=c.extend((function(){this._services={}}),{getService:function(t){var e=this._services[t];if(!e)throw new Error("Service is not being managed with name: "+t);return e},setService:function(t,e){if(this._services[t])throw new Error("Service is already managed with name: "+t);e&&(this._services[t]=e)}}),_=M,L=new C([new b("background",!0,"white"),new b("backgroundAlpha",!0,1,k.abs),new b("element"),new b("foreground",!0,"black"),new b("foregroundAlpha",!0,1,k.abs),new b("level",!0,"L",k.toUpperCase),new b("mime",!0,"image/png"),new b("padding",!0,null,k.abs),new b("size",!0,100,k.abs),new b("value",!0,"")]),T=new _,O=c.extend((function(t){L.init(t,this,this.update.bind(this));var e=L.get("element",this),n=T.getService("element"),s=e&&n.isCanvas(e)?e:n.createCanvas(),i=e&&n.isImage(e)?e:n.createImage();this._canvasRenderer=new f(this,s,!0),this._imageRenderer=new y(this,i,i===e),this.update()}),{get:function(){return L.getAll(this)},set:function(t){L.setAll(t,this)&&this.update()},toDataURL:function(t){return this.canvas.toDataURL(t||this.mime)},update:function(){var t=new $({level:this.level,value:this.value});this._canvasRenderer.render(t),this._imageRenderer.render(t)}},{use:function(t){T.setService(t.getName(),t)}});Object.defineProperties(O.prototype,{canvas:{get:function(){return this._canvasRenderer.getElement()}},image:{get:function(){return this._imageRenderer.getElement()}}});var I=O,B=c.extend({getName:function(){}}).extend({createCanvas:function(){},createImage:function(){},getName:function(){return"element"},isCanvas:function(t){},isImage:function(t){}}).extend({createCanvas:function(){return document.createElement("canvas")},createImage:function(){return document.createElement("img")},isCanvas:function(t){return t instanceof HTMLCanvasElement},isImage:function(t){return t instanceof HTMLImageElement}}),H=B;return I.use(new H),I}()}));function hu(e){let n,s;return{c(){n=O("img"),a(n.src,s=e[2])||E(n,"src",s),E(n,"alt",e[0]),E(n,"class",e[1])},m(t,e){_(t,n,e)},p(t,[e]){4&e&&!a(n.src,s=t[2])&&E(n,"src",s),1&e&&E(n,"alt",t[0]),2&e&&E(n,"class",t[1])},i:t,o:t,d(t){t&&L(n)}}}function gu(t,e,n){const s=new mu;let{errorCorrection:i="L"}=e,{background:l="#fff"}=e,{color:o="#000"}=e,{size:r="200"}=e,{value:c=""}=e,{padding:a=0}=e,{className:u="qrcode"}=e,d="";function f(){s.set({background:l,foreground:o,level:i,padding:a,size:r,value:c}),n(2,d=s.toDataURL("image/jpeg"))}return Y((()=>{f()})),t.$$set=t=>{"errorCorrection"in t&&n(3,i=t.errorCorrection),"background"in t&&n(4,l=t.background),"color"in t&&n(5,o=t.color),"size"in t&&n(6,r=t.size),"value"in t&&n(0,c=t.value),"padding"in t&&n(7,a=t.padding),"className"in t&&n(1,u=t.className)},t.$$.update=()=>{1&t.$$.dirty&&c&&f()},[c,u,d,i,l,o,r,a]}class vu extends It{constructor(t){super(),Ot(this,t,gu,hu,r,{errorCorrection:3,background:4,color:5,size:6,value:0,padding:7,className:1})}}function $u(t){let e,n,s,i,l,o,r,c,a;return o=new vu({props:{value:t[7]}}),{c(){e=O("div"),n=O("div"),s=B(t[6]),i=H(),l=O("div"),_t(o.$$.fragment),r=H(),c=O("div"),c.textContent="直接使用网易云音乐 APP 扫码登录,或截图保存之后使用网易云音乐 APP\n        扫码登录。",E(n,"class","qr-tip svelte-m2ulmf"),E(l,"class","qrcode svelte-m2ulmf"),E(c,"class","tip svelte-m2ulmf"),E(e,"class","qr svelte-m2ulmf")},m(t,u){_(t,e,u),S(e,n),S(n,s),S(e,i),S(e,l),Lt(o,l,null),S(e,r),S(e,c),a=!0},p(t,e){(!a||64&e[0])&&P(s,t[6]);const n={};128&e[0]&&(n.value=t[7]),o.$set(n)},i(t){a||(xt(o.$$.fragment,t),a=!0)},o(t){bt(o.$$.fragment,t),a=!1},d(t){t&&L(e),Tt(o)}}}function wu(t){let e,n,s,i,l,o,r,c,a,u,d,f;n=new ai({props:{label:"手机号",type:"tel",maxlength:"11"}}),n.$on("setInput",t[15]);let p="pwd"===t[8]&&yu(t),m="code"===t[8]&&xu(t),h="pwd"===t[8]&&bu(t),g="code"===t[8]&&zu(t);u=new Ys({props:{type:"primary",$$slots:{default:[ku]},$$scope:{ctx:t}}}),u.$on("BtnClick",t[10]);let v="pwd"===t[8]&&Su();return{c(){e=O("div"),_t(n.$$.fragment),s=H(),p&&p.c(),i=H(),m&&m.c(),l=H(),o=O("div"),h&&h.c(),r=H(),g&&g.c(),c=H(),a=O("div"),_t(u.$$.fragment),d=H(),v&&v.c(),E(o,"class","phone-switch svelte-m2ulmf"),E(a,"class","btn svelte-m2ulmf"),E(e,"class","phone")},m(t,$){_(t,e,$),Lt(n,e,null),S(e,s),p&&p.m(e,null),S(e,i),m&&m.m(e,null),S(e,l),S(e,o),h&&h.m(o,null),S(o,r),g&&g.m(o,null),S(e,c),S(e,a),Lt(u,a,null),S(e,d),v&&v.m(e,null),f=!0},p(t,n){"pwd"===t[8]?p?(p.p(t,n),256&n[0]&&xt(p,1)):(p=yu(t),p.c(),xt(p,1),p.m(e,i)):p&&(wt(),bt(p,1,1,(()=>{p=null})),yt()),"code"===t[8]?m?(m.p(t,n),256&n[0]&&xt(m,1)):(m=xu(t),m.c(),xt(m,1),m.m(e,l)):m&&(wt(),bt(m,1,1,(()=>{m=null})),yt()),"pwd"===t[8]?h?h.p(t,n):(h=bu(t),h.c(),h.m(o,r)):h&&(h.d(1),h=null),"code"===t[8]?g?g.p(t,n):(g=zu(t),g.c(),g.m(o,null)):g&&(g.d(1),g=null);const s={};8&n[1]&&(s.$$scope={dirty:n,ctx:t}),u.$set(s),"pwd"===t[8]?v?v.p(t,n):(v=Su(),v.c(),v.m(e,null)):v&&(v.d(1),v=null)},i(t){f||(xt(n.$$.fragment,t),xt(p),xt(m),xt(u.$$.fragment,t),f=!0)},o(t){bt(n.$$.fragment,t),bt(p),bt(m),bt(u.$$.fragment,t),f=!1},d(t){t&&L(e),Tt(n),p&&p.d(),m&&m.d(),h&&h.d(),g&&g.d(),Tt(u),v&&v.d()}}}function yu(t){let e,n,s;function i(e){t[19](e)}let l={label:"密码",type:"password",maxlength:"40"};return void 0!==t[3]&&(l.phone_password=t[3]),e=new ai({props:l}),st.push((()=>Mt(e,"phone_password",i))),e.$on("setInput",t[12]),{c(){_t(e.$$.fragment)},m(t,n){Lt(e,t,n),s=!0},p(t,s){const i={};!n&&8&s[0]&&(n=!0,i.phone_password=t[3],ut((()=>n=!1))),e.$set(i)},i(t){s||(xt(e.$$.fragment,t),s=!0)},o(t){bt(e.$$.fragment,t),s=!1},d(t){Tt(e,t)}}}function xu(t){let e,n,s;function i(e){t[20](e)}let l={label:"验证码",type:"tel",maxlength:"4",rightBtn:!0,btnText:t[5]};return void 0!==t[2]&&(l.phone_code=t[2]),e=new ai({props:l}),st.push((()=>Mt(e,"phone_code",i))),e.$on("setInput",t[13]),e.$on("setBtn",t[18]),{c(){_t(e.$$.fragment)},m(t,n){Lt(e,t,n),s=!0},p(t,s){const i={};32&s[0]&&(i.btnText=t[5]),!n&&4&s[0]&&(n=!0,i.phone_code=t[2],ut((()=>n=!1))),e.$set(i)},i(t){s||(xt(e.$$.fragment,t),s=!0)},o(t){bt(e.$$.fragment,t),s=!1},d(t){Tt(e,t)}}}function bu(e){let n,s,i;return{c(){n=O("span"),n.textContent="短信验证"},m(t,l){_(t,n,l),s||(i=D(n,"click",e[21]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function zu(e){let n,s,i;return{c(){n=O("span"),n.textContent="密码验证"},m(t,l){_(t,n,l),s||(i=D(n,"click",e[22]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function ku(t){let e;return{c(){e=B("登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function Su(e){let n;return{c(){n=O("div"),n.textContent=`${Iu}`,E(n,"class","tip svelte-m2ulmf")},m(t,e){_(t,n,e)},p:t,d(t){t&&L(n)}}}function Cu(t){let e,n,s,i,l,o,r,c,a,u,d;function f(e){t[23](e)}n=new ai({props:{label:"邮箱",maxlength:30,type:"text"}}),n.$on("setInput",t[16]);let p={label:"密码",type:"password",maxlength:"40"};return void 0!==t[4]&&(p.email_password=t[4]),i=new ai({props:p}),st.push((()=>Mt(i,"email_password",f))),i.$on("setInput",t[14]),c=new Ys({props:{type:"primary",$$slots:{default:[Mu]},$$scope:{ctx:t}}}),c.$on("BtnClick",t[11]),{c(){e=O("div"),_t(n.$$.fragment),s=H(),_t(i.$$.fragment),o=H(),r=O("div"),_t(c.$$.fragment),a=H(),u=O("div"),u.textContent=`${Iu}`,E(r,"class","btn svelte-m2ulmf"),E(u,"class","tip svelte-m2ulmf"),E(e,"class","email")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),Lt(i,e,null),S(e,o),S(e,r),Lt(c,r,null),S(e,a),S(e,u),d=!0},p(t,e){const n={};!l&&16&e[0]&&(l=!0,n.email_password=t[4],ut((()=>l=!1))),i.$set(n);const s={};8&e[1]&&(s.$$scope={dirty:e,ctx:t}),c.$set(s)},i(t){d||(xt(n.$$.fragment,t),xt(i.$$.fragment,t),xt(c.$$.fragment,t),d=!0)},o(t){bt(n.$$.fragment,t),bt(i.$$.fragment,t),bt(c.$$.fragment,t),d=!1},d(t){t&&L(e),Tt(n),Tt(i),Tt(c)}}}function Mu(t){let e;return{c(){e=B("登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function _u(e){let n,s,i;return{c(){n=O("span"),n.textContent="手机号登录",E(n,"class","svelte-m2ulmf")},m(t,l){_(t,n,l),s||(i=D(n,"click",e[24]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function Lu(e){let n,s,i;return{c(){n=O("span"),n.textContent="二维码登录",E(n,"class","svelte-m2ulmf")},m(t,l){_(t,n,l),s||(i=D(n,"click",e[17]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function Tu(e){let n,s,i;return{c(){n=O("span"),n.textContent="邮箱登录",E(n,"class","svelte-m2ulmf")},m(t,l){_(t,n,l),s||(i=D(n,"click",e[25]),s=!0)},p:t,d(t){t&&L(n),s=!1,i()}}}function Ou(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y;e=new si({props:{title:t[9]}}),u=new zn({});let x="qr"===t[0]&&$u(t),b="phone"===t[0]&&wu(t),z="email"===t[0]&&Cu(t),k="phone"!==t[0]&&_u(t),C="qr"!==t[0]&&Lu(t),M="email"!==t[0]&&Tu(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),i.textContent="请使用网易云音乐账号登录",l=H(),o=O("div"),r=O("div"),r.innerHTML='<img src="/images/nm_logo.png" alt="" class="svelte-m2ulmf"/>',c=H(),a=O("div"),_t(u.$$.fragment),d=H(),f=O("div"),f.innerHTML='<img src="/images/sm_logo.png" alt="" class="svelte-m2ulmf"/>',p=H(),x&&x.c(),m=H(),b&&b.c(),h=H(),z&&z.c(),g=H(),v=O("div"),k&&k.c(),$=H(),C&&C.c(),w=H(),M&&M.c(),E(i,"class","desc svelte-m2ulmf"),E(r,"class","netease svelte-m2ulmf"),E(a,"class","arr svelte-m2ulmf"),E(f,"class","simple svelte-m2ulmf"),E(o,"class","lead svelte-m2ulmf"),E(v,"class","type-switch svelte-m2ulmf"),E(s,"class","login-page svelte-m2ulmf")},m(t,L){Lt(e,t,L),_(t,n,L),_(t,s,L),S(s,i),S(s,l),S(s,o),S(o,r),S(o,c),S(o,a),Lt(u,a,null),S(o,d),S(o,f),S(s,p),x&&x.m(s,null),S(s,m),b&&b.m(s,null),S(s,h),z&&z.m(s,null),S(s,g),S(s,v),k&&k.m(v,null),S(v,$),C&&C.m(v,null),S(v,w),M&&M.m(v,null),y=!0},p(t,n){const i={};512&n[0]&&(i.title=t[9]),e.$set(i),"qr"===t[0]?x?(x.p(t,n),1&n[0]&&xt(x,1)):(x=$u(t),x.c(),xt(x,1),x.m(s,m)):x&&(wt(),bt(x,1,1,(()=>{x=null})),yt()),"phone"===t[0]?b?(b.p(t,n),1&n[0]&&xt(b,1)):(b=wu(t),b.c(),xt(b,1),b.m(s,h)):b&&(wt(),bt(b,1,1,(()=>{b=null})),yt()),"email"===t[0]?z?(z.p(t,n),1&n[0]&&xt(z,1)):(z=Cu(t),z.c(),xt(z,1),z.m(s,g)):z&&(wt(),bt(z,1,1,(()=>{z=null})),yt()),"phone"!==t[0]?k?k.p(t,n):(k=_u(t),k.c(),k.m(v,$)):k&&(k.d(1),k=null),"qr"!==t[0]?C?C.p(t,n):(C=Lu(t),C.c(),C.m(v,w)):C&&(C.d(1),C=null),"email"!==t[0]?M?M.p(t,n):(M=Tu(t),M.c(),M.m(v,null)):M&&(M.d(1),M=null)},i(t){y||(xt(e.$$.fragment,t),xt(u.$$.fragment,t),xt(x),xt(b),xt(z),y=!0)},o(t){bt(e.$$.fragment,t),bt(u.$$.fragment,t),bt(x),bt(b),bt(z),y=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(u),x&&x.d(),b&&b.d(),z&&z.d(),k&&k.d(),C&&C.d(),M&&M.d()}}}let Iu="您的密码会进行 MD5 加密后再传输到网易云 API。本应用不会传输您的账号数据到任何非网易云音乐官方服务器。";function Bu(t){return/^1[3-9]\d{9}$/.test(t)}function Hu(t,e,n){let s,i,l,o,r,c;f(t,te,(t=>n(28,c=t)));let{type:a="phone"}=Fs(c),u=null,d="",p="",m="",h="",g="";function v(t){t.cookie.split(";;").map((t=>{document.cookie=t})),mi.set(!0),fo.set(t),localStorage.setItem("isLogin",!0),localStorage.setItem("userInfo",JSON.stringify(t)),setTimeout((()=>he()),100)}Y((()=>{hi.set(!1),Sl.set(!1)})),Q((()=>{Sl.set(!0)}));return t.$$.update=()=>{1&t.$$.dirty[0]&&n(9,i="qr"===a?"二维码登录":"phone"===a?"手机号登录":"邮箱登录")},n(8,s="code"),n(7,l=""),n(6,o="请扫码"),n(5,r="获取验证码"),[a,u,p,m,g,r,o,l,s,i,async function(){if(!Bu(d))return Ps("请输入正确的手机号");if("code"===s&&4!=p.length)return Ps("请输入四位验证码");let t={};t="code"===s?{phone:d,captcha:p,password:"fakePassword"}:{phone:d,md5_password:m,password:"fakePassword"};const e=await function(t){return Br({url:"/login/cellphone",method:"post",params:t})}(t);200===e.code?v(e):As("登录不成功, 请重新登录。")},async function(){const t=await(e={email:h,md5_password:g,password:"fakePassword"},Br({url:"/login",method:"post",params:e}));var e;200===t.code?v(t):As("登录不成功, 请重新登录。")},function(t){n(3,m=pu(t.detail.value).toString())},function(t){n(2,p=t.detail.value.toString())},function(t){n(4,g=pu(t.detail.value).toString())},function(t){d=t.detail.value},function(t){h=t.detail.value},async function(){n(0,a="qr");const t=await Br({url:"/login/qr/key",method:"get",params:{timestamp:(new Date).getTime()}});200===t.code&&async function(t){const e=await(s={key:t},Br({url:"/login/qr/create",method:"get",params:{...s,timestamp:(new Date).getTime()}}));var s;200===e.code&&(n(7,l=e.data.qrurl),n(1,u=setInterval((()=>{!async function(t){const e=await function(t){return Br({url:"/login/qr/check",method:"get",params:{key:t,timestamp:(new Date).getTime()},isHideLoading:!0})}(t);800===e.code||801===e.code||802===e.code?n(6,o=e.message):803===e.code?(clearInterval(u),setTimeout((()=>{!async function(t){const e=await function(t){return Br({url:"/user/account",method:"get",params:{cookie:t,timestamp:(new Date).getTime()}})}(t);if(200===e.code){let n=e;n.cookie=t,v(n)}}(e.cookie)}),300)):clearInterval(u)}(t)}),1e3)))}(t.data.unikey)},async function(){if("获取验证码"===r)if(Bu(d)){const t=await function(t){return Br({url:"/captcha/sent",method:"get",params:{phone:t,timestamp:(new Date).getTime()}})}(d);200===t.code&&(Ps("验证码已发送至"+d.substring(d.length-4)+",请注意查收!",2e3),function(){let t=59,e=setInterval((()=>{t--,0===t?(clearInterval(e),n(5,r="获取验证码")):n(5,r=t+"s 后重发")}),1e3)}())}else Ps("请输入正确的手机号")},function(t){m=t,n(3,m)},function(t){p=t,n(2,p)},()=>{n(8,s="code")},()=>{n(8,s="pwd")},function(t){g=t,n(4,g)},()=>{clearInterval(u),n(0,a="phone")},()=>{n(0,a="email"),clearInterval(u)}]}function Nu(e){let n,s,i,l;return s=new In({props:{size:"22",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n        播放全部"),E(n,"class","icon svelte-1cxuvfh")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function Du(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$=t[0].length+"";return e=new si({props:{title:"今日推荐歌曲"}}),p=new Ys({props:{type:"primary",$$slots:{default:[Nu]},$$scope:{ctx:t}}}),p.$on("BtnClick",t[2]),g=new jr({props:{songList:t[0]}}),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),i.textContent="今日推荐歌曲",l=H(),o=O("div"),r=B("根据你的音乐口味生成 "),c=B($),a=B(" 首 · 每天6:00更新"),u=H(),d=O("div"),f=O("div"),_t(p.$$.fragment),m=H(),h=O("div"),_t(g.$$.fragment),E(i,"class","today-title svelte-1cxuvfh"),E(o,"class","today-desc svelte-1cxuvfh"),E(f,"class","play svelte-1cxuvfh"),E(d,"class","btn svelte-1cxuvfh"),E(s,"class","play-list svelte-1cxuvfh")},m(t,$){Lt(e,t,$),_(t,n,$),_(t,s,$),S(s,i),S(s,l),S(s,o),S(o,r),S(o,c),S(o,a),S(s,u),S(s,d),S(d,f),Lt(p,f,null),S(s,m),S(s,h),Lt(g,h,null),v=!0},p(t,[e]){(!v||1&e)&&$!==($=t[0].length+"")&&P(c,$);const n={};512&e&&(n.$$scope={dirty:e,ctx:t}),p.$set(n);const s={};1&e&&(s.songList=t[0]),g.$set(s)},i(t){v||(xt(e.$$.fragment,t),xt(p.$$.fragment,t),xt(g.$$.fragment,t),v=!0)},o(t){bt(e.$$.fragment,t),bt(p.$$.fragment,t),bt(g.$$.fragment,t),v=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(p),Tt(g)}}}function Eu(t,e,n){let s,i,l,o,r;async function c(t){const e=await Nr(t);200===e.code&&(Nc.set(e.songs),n(0,s=e.songs))}function a(t){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(s);let e=[];for(let t=0;t<s.length;t++)e.push(s[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),i!==l.length-1&&Hr(l[i+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(l[i])}f(t,Ml,(t=>n(3,i=t))),f(t,_l,(t=>n(4,l=t))),f(t,Dc,(t=>n(5,o=t))),f(t,gi,(t=>n(6,r=t))),ge((()=>{if(!r){let t=[];for(let e=0;e<o.length;e++)t.push(o[e].id);c(t.join(",")),Hr(t[0])}})),Y((()=>{let t=[];for(let e=0;e<o.length;e++)t.push(o[e].id);c(t.join(",")),Hr(t[0])}));return n(0,s=[]),[s,a,()=>a(0)]}function Ru(t){let e,n,s,i,l,o,r,c;return{c(){e=O("div"),n=O("form"),s=O("input"),i=H(),l=O("button"),o=B("搜索"),E(s,"placeholder","请输入关键字"),E(s,"type","search"),s.value=t[4],E(s,"class","svelte-1i0xqe3"),E(n,"action","JavaScript:void 0"),E(n,"class","svelte-1i0xqe3"),j(l,"background-color",""===t[4]?"rgb(224, 224, 224)":"var(--primary-text-color)"),j(l,"color",""===t[4]?"#666":"#fff"),E(l,"class","svelte-1i0xqe3"),E(e,"class","input-box svelte-1i0xqe3")},m(a,u){_(a,e,u),S(e,n),S(n,s),t[12](s),S(e,i),S(e,l),S(l,o),r||(c=D(l,"click",t[13]),r=!0)},p(t,e){16&e&&(s.value=t[4]),16&e&&j(l,"background-color",""===t[4]?"rgb(224, 224, 224)":"var(--primary-text-color)"),16&e&&j(l,"color",""===t[4]?"#666":"#fff")},d(n){n&&L(e),t[12](null),r=!1,c()}}}function Pu(t){let e,n,s,i,l,o,r=t[5].length+"";return{c(){e=B(",其中 "),n=O("span"),s=B(r),i=B(" 首包含『"),l=B(t[4]),o=B("』")},m(t,r){_(t,e,r),_(t,n,r),S(n,s),_(t,i,r),_(t,l,r),_(t,o,r)},p(t,e){32&e&&r!==(r=t[5].length+"")&&P(s,r),16&e&&P(l,t[4])},d(t){t&&L(e),t&&L(n),t&&L(i),t&&L(l),t&&L(o)}}}function Au(t){let e,n,s,i,l,o,r;return s=new Ys({props:{type:"primary",$$slots:{default:[Uu]},$$scope:{ctx:t}}}),s.$on("BtnClick",t[14]),o=new Ys({props:{type:"primary",$$slots:{default:[Vu]},$$scope:{ctx:t}}}),o.$on("BtnClick",t[10]),{c(){e=O("div"),n=O("div"),_t(s.$$.fragment),i=H(),l=O("div"),_t(o.$$.fragment),E(n,"class","play svelte-1i0xqe3"),E(l,"class","play svelte-1i0xqe3"),E(e,"class","btn svelte-1i0xqe3")},m(t,c){_(t,e,c),S(e,n),Lt(s,n,null),S(e,i),S(e,l),Lt(o,l,null),r=!0},p(t,e){const n={};8388608&e&&(n.$$scope={dirty:e,ctx:t}),s.$set(n);const i={};8388608&e&&(i.$$scope={dirty:e,ctx:t}),o.$set(i)},i(t){r||(xt(s.$$.fragment,t),xt(o.$$.fragment,t),r=!0)},o(t){bt(s.$$.fragment,t),bt(o.$$.fragment,t),r=!1},d(t){t&&L(e),Tt(s),Tt(o)}}}function ju(e){let n;return{c(){n=O("div")},m(t,e){_(t,n,e)},p:t,i:t,o:t,d(t){t&&L(n)}}}function Uu(e){let n,s,i,l;return s=new In({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n          顺序播放"),E(n,"class","icon svelte-1i0xqe3")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function Vu(e){let n,s,i,l;return s=new ds({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n          随机播放"),E(n,"class","icon svelte-1i0xqe3")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function Fu(t){let e,n;return e=new jr({props:{songList:t[2]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};4&n&&(s.songList=t[2]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Ju(t){let e,n;return e=new jr({props:{songList:t[5]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};32&n&&(s.songList=t[5]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function qu(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w=t[2].length+"";e=new si({props:{title:t[6].profile.nickname+"喜欢的歌曲",isRefresh:t[3],rightIcons:t[7]}}),e.$on("setRightIconClick",t[11]);let y=t[1]&&Ru(t),x=t[1]&&""!=t[4]&&Pu(t);const b=[ju,Au],z=[];function k(t,e){return t[1]&&""!=t[4]?0:1}f=k(t),p=z[f]=b[f](t);const C=[Ju,Fu],M=[];function T(t,e){return t[1]&&""!=t[4]?0:1}return g=T(t),v=M[g]=C[g](t),{c(){_t(e.$$.fragment),n=H(),s=O("div"),y&&y.c(),i=H(),l=O("div"),l.textContent="我喜欢的音乐",o=H(),r=O("div"),c=B("共 "),a=B(w),u=B(" 首\n    "),x&&x.c(),d=H(),p.c(),m=H(),h=O("div"),v.c(),E(l,"class","today-title svelte-1i0xqe3"),E(r,"class","today-desc svelte-1i0xqe3"),E(s,"class","play-list svelte-1i0xqe3")},m(t,p){Lt(e,t,p),_(t,n,p),_(t,s,p),y&&y.m(s,null),S(s,i),S(s,l),S(s,o),S(s,r),S(r,c),S(r,a),S(r,u),x&&x.m(r,null),S(s,d),z[f].m(s,null),S(s,m),S(s,h),M[g].m(h,null),$=!0},p(t,[n]){const l={};64&n&&(l.title=t[6].profile.nickname+"喜欢的歌曲"),8&n&&(l.isRefresh=t[3]),e.$set(l),t[1]?y?y.p(t,n):(y=Ru(t),y.c(),y.m(s,i)):y&&(y.d(1),y=null),(!$||4&n)&&w!==(w=t[2].length+"")&&P(a,w),t[1]&&""!=t[4]?x?x.p(t,n):(x=Pu(t),x.c(),x.m(r,null)):x&&(x.d(1),x=null);let o=f;f=k(t),f===o?z[f].p(t,n):(wt(),bt(z[o],1,1,(()=>{z[o]=null})),yt(),p=z[f],p?p.p(t,n):(p=z[f]=b[f](t),p.c()),xt(p,1),p.m(s,m));let c=g;g=T(t),g===c?M[g].p(t,n):(wt(),bt(M[c],1,1,(()=>{M[c]=null})),yt(),v=M[g],v?v.p(t,n):(v=M[g]=C[g](t),v.c()),xt(v,1),v.m(h,null))},i(t){$||(xt(e.$$.fragment,t),xt(p),xt(v),$=!0)},o(t){bt(e.$$.fragment,t),bt(p),bt(v),$=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),y&&y.d(),x&&x.d(),z[f].d(),M[g].d()}}}function Xu(t,e,n){let s,i,l,o,r,c,a,u,d,p,m;f(t,Ml,(t=>n(15,c=t))),f(t,_l,(t=>n(16,a=t))),f(t,mo,(t=>n(17,u=t))),f(t,gi,(t=>n(18,d=t))),f(t,fo,(t=>n(6,p=t)));let h=[{id:"SearchLine",icon:cs}];function g(t){setTimeout((()=>{t.target.isNeedPrevent||t.target.oldValue===t.target.value||(t.target.oldValue=t.target.value,n(4,s=t.target.value),v())}),100)}function v(){""!=s.trim()&&n(5,o=l.filter((t=>t.name.indexOf(s)>-1||Ds(t.ar).indexOf(s)>-1||Ds(t.alia,!1).indexOf(s)>-1)))}async function $(){const t=await ta(u);if(200===t.code){pi.set(!0);let e=[];for(let n=0;n<t.playlist.trackIds.length;n++)e.push(t.playlist.trackIds[n].id);let n=js(e);for(let t=0;t<n.length;t++)await w(n[t].join(","),t===n.length-1)}}async function w(t,e){const s=await Nr(t);200===s.code&&(n(2,l=l.concat(s.songs)),e&&n(3,r=!1))}function y(t){Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(l);let e=[];for(let t=0;t<l.length;t++)e.push(l[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),Dl.set("repeat"),x(a[c])}async function x(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),c!==a.length-1&&Hr(a[c+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}ge((()=>{d||(n(2,l=[]),n(1,i=!1),n(5,o=[]),n(4,s=""),hi.set(!1),$())})),Y((()=>{hi.set(!1),$()})),Q((()=>{hi.set(!0)}));return n(4,s=""),n(1,i=!1),n(2,l=[]),n(5,o=[]),n(3,r=!1),[m,i,l,r,s,o,p,h,v,y,function(){Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(l);let t=[];for(let e=0;e<l.length;e++)t.push(l[e].id);localStorage.setItem("localPlayList",JSON.stringify(t));let e=Math.floor(Math.random()*(a.length-1));Dl.set("shuffle"),Ml.set(e),x(a[c])},function(t){"SearchLine"===t.detail.id&&i?n(1,i=!1):"SearchLine"!==t.detail.id||i||(n(1,i=!0),setTimeout((()=>{m.focus(),m.addEventListener("compositionstart",(function(t){t.target.isNeedPrevent=!0})),m.addEventListener("compositionend",(function(t){t.target.isNeedPrevent=!1})),m.addEventListener("input",g),m.addEventListener("keydown",(function(t){"Enter"===t.key&&(m.blur(),v())}))}),100))},function(t){st[t?"unshift":"push"]((()=>{m=t,n(0,m)}))},()=>{m.blur(),v()},()=>y(0)]}function Gu(t,e,n){const s=t.slice();return s[5]=e[n],s}function Wu(t){let e,n,s;return e=new jc({props:{name:t[5].name,coverImgUrl:t[5].coverImgUrl,id:t[5].id,playCount:t[5].playCount,trackCount:t[5].trackCount}}),{c(){_t(e.$$.fragment),n=H()},m(t,i){Lt(e,t,i),_(t,n,i),s=!0},p(t,n){const s={};1&n&&(s.name=t[5].name),1&n&&(s.coverImgUrl=t[5].coverImgUrl),1&n&&(s.id=t[5].id),1&n&&(s.playCount=t[5].playCount),1&n&&(s.trackCount=t[5].trackCount),e.$set(s)},i(t){s||(xt(e.$$.fragment,t),s=!0)},o(t){bt(e.$$.fragment,t),s=!1},d(t){Tt(e,t),t&&L(n)}}}function Ku(t){let e,n;return e=new uo({props:{height:180,$$slots:{default:[Wu]},$$scope:{ctx:t}}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};257&n&&(s.$$scope={dirty:n,ctx:t}),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Yu(t){let e,n,s,i;e=new si({props:{title:"?create"===t[1]?"创建的歌单":"收藏的歌单"}});let l=t[0],o=[];for(let e=0;e<l.length;e+=1)o[e]=Ku(Gu(t,l,e));const r=t=>bt(o[t],1,1,(()=>{o[t]=null}));return{c(){_t(e.$$.fragment),n=H(),s=O("div");for(let t=0;t<o.length;t+=1)o[t].c();E(s,"class","play-list-page svelte-l15zgd")},m(t,l){Lt(e,t,l),_(t,n,l),_(t,s,l);for(let t=0;t<o.length;t+=1)o[t].m(s,null);i=!0},p(t,[n]){const i={};if(2&n&&(i.title="?create"===t[1]?"创建的歌单":"收藏的歌单"),e.$set(i),1&n){let e;for(l=t[0],e=0;e<l.length;e+=1){const i=Gu(t,l,e);o[e]?(o[e].p(i,n),xt(o[e],1)):(o[e]=Ku(i),o[e].c(),xt(o[e],1),o[e].m(s,null))}for(wt(),e=l.length;e<o.length;e+=1)r(e);yt()}},i(t){if(!i){xt(e.$$.fragment,t);for(let t=0;t<l.length;t+=1)xt(o[t]);i=!0}},o(t){bt(e.$$.fragment,t),o=o.filter(Boolean);for(let t=0;t<o.length;t+=1)bt(o[t]);i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(o,t)}}}function Zu(t,e,n){let s,i,l,o;async function r(t){const e=await Mc({uid:l.account.id});if(200===e.code){let t=[],o=[];e.playlist[0].creator.userId===l.account.id&&"喜欢的音乐"===e.playlist[0].name.substr(-5)&&e.playlist.splice(0,1);for(let n=0;n<e.playlist.length;n++)e.playlist[n].creator.userId===l.account.id?t.push(e.playlist[n]):o.push(e.playlist[n]);n(0,s="?create"===i?t:o)}else As("获取收藏歌单失败")}return f(t,te,(t=>n(1,i=t))),f(t,fo,(t=>n(2,l=t))),f(t,gi,(t=>n(3,o=t))),ge((()=>{o||r()})),Y((()=>{r()})),n(0,s=[]),[s,i]}function Qu(t){let e;return{c(){e=B("退出登录")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function td(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y;return e=new si({props:{title:"设置"}}),i=new Pi({props:{title:"播放音质",desc:t[4][Number(t[0])],arrow:!0}}),i.$on("cellClick",t[7]),o=new Pi({props:{title:"热评",desc:"Switch",cellCheck:"0"!==t[1]}}),o.$on("cellClick",t[6]),c=new Pi({props:{title:"显示歌词翻译",desc:"Switch",cellCheck:t[2]}}),c.$on("cellClick",t[8]),u=new Pi({props:{title:"自动滚动",titleDesc:"导航返回上一页后自动滚动到之前的位置",desc:"Switch",cellCheck:t[3]}}),u.$on("cellClick",t[5]),f=new Pi({props:{title:"关于",arrow:!0}}),f.$on("cellClick",t[10]),m=new Pi({props:{title:"版本记录",arrow:!0}}),m.$on("cellClick",t[11]),v=new Ys({props:{$$slots:{default:[Qu]},$$scope:{ctx:t}}}),v.$on("BtnClick",t[9]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),l=H(),_t(o.$$.fragment),r=H(),_t(c.$$.fragment),a=H(),_t(u.$$.fragment),d=H(),_t(f.$$.fragment),p=H(),_t(m.$$.fragment),h=H(),g=O("div"),_t(v.$$.fragment),$=H(),w=O("div"),w.textContent="V 1.0.1",E(g,"class","bottom svelte-76h2cb"),E(w,"class","version svelte-76h2cb"),E(s,"class","setting-page svelte-76h2cb")},m(t,x){Lt(e,t,x),_(t,n,x),_(t,s,x),Lt(i,s,null),S(s,l),Lt(o,s,null),S(s,r),Lt(c,s,null),S(s,a),Lt(u,s,null),S(s,d),Lt(f,s,null),S(s,p),Lt(m,s,null),S(s,h),S(s,g),Lt(v,g,null),S(s,$),S(s,w),y=!0},p(t,[e]){const n={};1&e&&(n.desc=t[4][Number(t[0])]),i.$set(n);const s={};2&e&&(s.cellCheck="0"!==t[1]),o.$set(s);const l={};4&e&&(l.cellCheck=t[2]),c.$set(l);const r={};8&e&&(r.cellCheck=t[3]),u.$set(r);const a={};4096&e&&(a.$$scope={dirty:e,ctx:t}),v.$set(a)},i(t){y||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),xt(o.$$.fragment,t),xt(c.$$.fragment,t),xt(u.$$.fragment,t),xt(f.$$.fragment,t),xt(m.$$.fragment,t),xt(v.$$.fragment,t),y=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),bt(o.$$.fragment,t),bt(c.$$.fragment,t),bt(u.$$.fragment,t),bt(f.$$.fragment,t),bt(m.$$.fragment,t),bt(v.$$.fragment,t),y=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i),Tt(o),Tt(c),Tt(u),Tt(f),Tt(m),Tt(v)}}}function ed(t,e,n){let s,i,l,o;f(t,wi,(t=>n(0,s=t))),f(t,zi,(t=>n(1,i=t))),f(t,yi,(t=>n(2,l=t))),f(t,$i,(t=>n(3,o=t)));return[s,i,l,o,["普通","较高","极高","无损"],function(t){$i.set(t.detail.cellCheck),localStorage.setItem("restoreScroll",t.detail.cellCheck?"1":"0")},function(t){zi.set(t.detail.cellCheck?"1":"0"),localStorage.setItem("isShowComment",t.detail.cellCheck?"1":"0")},function(){me("/brSelect")},function(t){yi.set(t.detail.cellCheck),localStorage.setItem("isShowTranslate",t.detail.cellCheck?"1":"0")},function(){!function(t,e,n="确定",s="取消",i){let l=document.createElement("div"),o=`<div>${t}</div><div style='height:36px;line-height:36px;color:#fff;margin:20px auto 0px;display:flex'><div style='flex:1;background:#e2e2e2;color:#666;line-height:36px;border-radius: 4px;margin:0 5px;' id='ConfirmNo'>${s}</div> <div style='margin:0 5px;flex:1;border-radius: 4px;line-height:36px;background:var(--primary-text-color);' id='ConfirmYes'>${n}</div></div>`;l.innerHTML=o,l.style.cssText="width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)",document.body.appendChild(l),document.getElementById("ConfirmNo").onclick=function(){document.body.removeChild(l),i()},document.getElementById("ConfirmYes").onclick=function(){document.body.removeChild(l),e()}}("确定退出当前账号?",(async()=>{200===(await Br({url:"/logout",method:"post"})).code&&(localStorage.clear(),mi.set(!1),function(){let t=document.cookie.match(/[^ =;]+(?=\=)/g);if(t)for(let e=t.length;e--;)document.cookie=t[e]+"=0;expires="+new Date(0).toUTCString()}(),he())}))},function(){me("/about")},function(){me("/version")}]}function nd(t,e,n){const s=t.slice();return s[23]=e[n],s}function sd(t,e,n){const s=t.slice();return s[26]=e[n],s}function id(t,e,n){const s=t.slice();return s[23]=e[n],s}function ld(t,e,n){const s=t.slice();return s[26]=e[n],s}function od(t,e,n){const s=t.slice();return s[33]=e[n],s}function rd(t,e,n){const s=t.slice();return s[36]=e[n],s}function cd(t){let e,n,s,i,l=t[36]+"";function o(){return t[17](t[36])}return{c(){e=O("span"),n=B(l),E(e,"class","key-item svelte-1mbdxts")},m(t,l){_(t,e,l),S(e,n),s||(i=D(e,"click",o),s=!0)},p(e,s){t=e,128&s[0]&&l!==(l=t[36]+"")&&P(n,l)},d(t){t&&L(e),s=!1,i()}}}function ad(e){let n,s,i,l,o;return s=new en({props:{size:"12",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),E(n,"class","key-item svelte-1mbdxts")},m(t,r){_(t,n,r),Lt(s,n,null),i=!0,l||(o=D(n,"click",e[13]),l=!0)},p:t,i(t){i||(xt(s.$$.fragment,t),i=!0)},o(t){bt(s.$$.fragment,t),i=!1},d(t){t&&L(n),Tt(s),l=!1,o()}}}function ud(t){let e,n,s,i,l,o=t[33].text+"";function r(){return t[18](t[33])}return{c(){e=O("div"),n=B(o),s=H(),E(e,"class","type-item svelte-1mbdxts"),U(e,"active",t[9]===t[33].index)},m(t,o){_(t,e,o),S(e,n),S(e,s),i||(l=D(e,"click",r),i=!0)},p(n,s){t=n,1536&s[0]&&U(e,"active",t[9]===t[33].index)},d(t){t&&L(e),i=!1,l()}}}function dd(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,I;r=new jr({props:{songList:t[5]}});let B=t[2],N=[];for(let e=0;e<B.length;e+=1)N[e]=fd(ld(t,B,e));const D=t=>bt(N[t],1,1,(()=>{N[t]=null}));let R=t[3],P=[];for(let e=0;e<R.length;e+=1)P[e]=pd(id(t,R,e));const A=t=>bt(P[t],1,1,(()=>{P[t]=null}));y=new jr({props:{songList:t[5]}});let U=t[2],V=[];for(let e=0;e<U.length;e+=1)V[e]=md(sd(t,U,e));const F=t=>bt(V[t],1,1,(()=>{V[t]=null}));let J=t[3],q=[];for(let e=0;e<J.length;e+=1)q[e]=hd(nd(t,J,e));const X=t=>bt(q[t],1,1,(()=>{q[t]=null}));return{c(){e=O("div"),n=O("div"),s=O("div"),s.textContent="单曲",i=H(),l=O("div"),o=O("div"),_t(r.$$.fragment),c=H(),a=O("div"),a.textContent="歌手",u=H(),d=O("div");for(let t=0;t<N.length;t+=1)N[t].c();f=H(),p=O("div"),p.textContent="歌单",m=H(),h=O("div");for(let t=0;t<P.length;t+=1)P[t].c();g=H(),v=O("div"),$=O("div"),w=O("div"),_t(y.$$.fragment),x=H(),b=O("div"),z=O("div");for(let t=0;t<V.length;t+=1)V[t].c();k=H(),C=O("div"),M=O("div");for(let t=0;t<q.length;t+=1)q[t].c();E(s,"class","songer-title svelte-1mbdxts"),E(o,"class","song-box"),E(l,"class","reault-song"),E(a,"class","songer-title svelte-1mbdxts"),E(d,"class","reault-songer svelte-1mbdxts"),E(p,"class","songer-title svelte-1mbdxts"),E(h,"class","reault-play-list svelte-1mbdxts"),E(n,"class","result all-box"),j(n,"display",0===t[9]?"block":"none"),E(w,"class","song-box"),E($,"class","reault-song"),E(v,"class","result song-box"),j(v,"display",1===t[9]?"block":"none"),E(z,"class","reault-songer svelte-1mbdxts"),E(b,"class","result reault-songer-box"),j(b,"display",2===t[9]?"block":"none"),E(M,"class","reault-play-list svelte-1mbdxts"),j(C,"display",3===t[9]?"block":"none"),E(e,"class","result-box")},m(t,L){_(t,e,L),S(e,n),S(n,s),S(n,i),S(n,l),S(l,o),Lt(r,o,null),S(n,c),S(n,a),S(n,u),S(n,d);for(let t=0;t<N.length;t+=1)N[t].m(d,null);S(n,f),S(n,p),S(n,m),S(n,h);for(let t=0;t<P.length;t+=1)P[t].m(h,null);S(e,g),S(e,v),S(v,$),S($,w),Lt(y,w,null),S(e,x),S(e,b),S(b,z);for(let t=0;t<V.length;t+=1)V[t].m(z,null);S(e,k),S(e,C),S(C,M);for(let t=0;t<q.length;t+=1)q[t].m(M,null);I=!0},p(t,e){const s={};if(32&e[0]&&(s.songList=t[5]),r.$set(s),4&e[0]){let n;for(B=t[2],n=0;n<B.length;n+=1){const s=ld(t,B,n);N[n]?(N[n].p(s,e),xt(N[n],1)):(N[n]=fd(s),N[n].c(),xt(N[n],1),N[n].m(d,null))}for(wt(),n=B.length;n<N.length;n+=1)D(n);yt()}if(8&e[0]){let n;for(R=t[3],n=0;n<R.length;n+=1){const s=id(t,R,n);P[n]?(P[n].p(s,e),xt(P[n],1)):(P[n]=pd(s),P[n].c(),xt(P[n],1),P[n].m(h,null))}for(wt(),n=R.length;n<P.length;n+=1)A(n);yt()}(!I||512&e[0])&&j(n,"display",0===t[9]?"block":"none");const i={};if(32&e[0]&&(i.songList=t[5]),y.$set(i),(!I||512&e[0])&&j(v,"display",1===t[9]?"block":"none"),4&e[0]){let n;for(U=t[2],n=0;n<U.length;n+=1){const s=sd(t,U,n);V[n]?(V[n].p(s,e),xt(V[n],1)):(V[n]=md(s),V[n].c(),xt(V[n],1),V[n].m(z,null))}for(wt(),n=U.length;n<V.length;n+=1)F(n);yt()}if((!I||512&e[0])&&j(b,"display",2===t[9]?"block":"none"),8&e[0]){let n;for(J=t[3],n=0;n<J.length;n+=1){const s=nd(t,J,n);q[n]?(q[n].p(s,e),xt(q[n],1)):(q[n]=hd(s),q[n].c(),xt(q[n],1),q[n].m(M,null))}for(wt(),n=J.length;n<q.length;n+=1)X(n);yt()}(!I||512&e[0])&&j(C,"display",3===t[9]?"block":"none")},i(t){if(!I){xt(r.$$.fragment,t);for(let t=0;t<B.length;t+=1)xt(N[t]);for(let t=0;t<R.length;t+=1)xt(P[t]);xt(y.$$.fragment,t);for(let t=0;t<U.length;t+=1)xt(V[t]);for(let t=0;t<J.length;t+=1)xt(q[t]);I=!0}},o(t){bt(r.$$.fragment,t),N=N.filter(Boolean);for(let t=0;t<N.length;t+=1)bt(N[t]);P=P.filter(Boolean);for(let t=0;t<P.length;t+=1)bt(P[t]);bt(y.$$.fragment,t),V=V.filter(Boolean);for(let t=0;t<V.length;t+=1)bt(V[t]);q=q.filter(Boolean);for(let t=0;t<q.length;t+=1)bt(q[t]);I=!1},d(t){t&&L(e),Tt(r),T(N,t),T(P,t),Tt(y),T(V,t),T(q,t)}}}function fd(t){let e,n,s,i;return n=new Qc({props:{songer:t[26],coverSize:330}}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),E(e,"class","songer-box svelte-1mbdxts")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),i=!0},p(t,e){const s={};4&e[0]&&(s.songer=t[26]),n.$set(s)},i(t){i||(xt(n.$$.fragment,t),i=!0)},o(t){bt(n.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(n)}}}function pd(t){let e,n,s,i;return n=new jc({props:{name:t[23].name,coverImgUrl:t[23].coverImgUrl,id:t[23].id,playCount:t[23].playCount,trackCount:t[23].trackCount}}),{c(){e=O("div"),_t(n.$$.fragment),s=H(),E(e,"class","list-box")},m(t,l){_(t,e,l),Lt(n,e,null),S(e,s),i=!0},p(t,e){const s={};8&e[0]&&(s.name=t[23].name),8&e[0]&&(s.coverImgUrl=t[23].coverImgUrl),8&e[0]&&(s.id=t[23].id),8&e[0]&&(s.playCount=t[23].playCount),8&e[0]&&(s.trackCount=t[23].trackCount),n.$set(s)},i(t){i||(xt(n.$$.fragment,t),i=!0)},o(t){bt(n.$$.fragment,t),i=!1},d(t){t&&L(e),Tt(n)}}}function md(t){let e,n;return e=new Qc({props:{songer:t[26],coverSize:250}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};4&n[0]&&(s.songer=t[26]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function hd(t){let e,n;return e=new jc({props:{name:t[23].name,coverImgUrl:t[23].coverImgUrl,id:t[23].id,playCount:t[23].playCount,trackCount:t[23].trackCount}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};8&n[0]&&(s.name=t[23].name),8&n[0]&&(s.coverImgUrl=t[23].coverImgUrl),8&n[0]&&(s.id=t[23].id),8&n[0]&&(s.playCount=t[23].playCount),8&n[0]&&(s.trackCount=t[23].trackCount),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function gd(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x=t[7].filter(vd).length>0;e=new si({props:{title:"搜索"}});let b=t[7].filter($d),z=[];for(let e=0;e<b.length;e+=1)z[e]=cd(rd(t,b,e));let k=x&&ad(t),C=t[10],M=[];for(let e=0;e<C.length;e+=1)M[e]=ud(od(t,C,e));let I=t[6]&&dd(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),l=O("form"),o=O("input"),r=H(),c=O("button"),a=B("搜索"),u=H(),d=O("div");for(let t=0;t<z.length;t+=1)z[t].c();f=H(),k&&k.c(),p=H(),m=O("div");for(let t=0;t<M.length;t+=1)M[t].c();h=H(),g=O("div"),v=H(),I&&I.c(),E(o,"placeholder","请输入关键字"),E(o,"type","search"),o.value=t[1],E(o,"class","svelte-1mbdxts"),E(l,"action","JavaScript:void 0"),E(l,"class","svelte-1mbdxts"),j(c,"background-color",""===t[1]?"rgb(224, 224, 224)":"var(--primary-text-color)"),j(c,"color",""===t[1]?"#666":"#fff"),E(c,"class","svelte-1mbdxts"),E(i,"class","input-box svelte-1mbdxts"),E(d,"class","searchkeyword svelte-1mbdxts"),E(m,"class","type svelte-1mbdxts"),E(g,"class","active-line svelte-1mbdxts"),j(g,"left",20+(Hs()-40)/4*t[9]+"px"),E(s,"class","search-page svelte-1mbdxts")},m(x,b){Lt(e,x,b),_(x,n,b),_(x,s,b),S(s,i),S(i,l),S(l,o),t[15](o),S(i,r),S(i,c),S(c,a),S(s,u),S(s,d);for(let t=0;t<z.length;t+=1)z[t].m(d,null);S(d,f),k&&k.m(d,null),S(s,p),S(s,m);for(let t=0;t<M.length;t+=1)M[t].m(m,null);t[19](m),S(s,h),S(s,g),S(s,v),I&&I.m(s,null),$=!0,w||(y=D(c,"click",t[16]),w=!0)},p(t,e){if((!$||2&e[0])&&(o.value=t[1]),(!$||2&e[0])&&j(c,"background-color",""===t[1]?"rgb(224, 224, 224)":"var(--primary-text-color)"),(!$||2&e[0])&&j(c,"color",""===t[1]?"#666":"#fff"),4224&e[0]){let n;for(b=t[7].filter($d),n=0;n<b.length;n+=1){const s=rd(t,b,n);z[n]?z[n].p(s,e):(z[n]=cd(s),z[n].c(),z[n].m(d,f))}for(;n<z.length;n+=1)z[n].d(1);z.length=b.length}if(128&e[0]&&(x=t[7].filter(vd).length>0),x?k?(k.p(t,e),128&e[0]&&xt(k,1)):(k=ad(t),k.c(),xt(k,1),k.m(d,null)):k&&(wt(),bt(k,1,1,(()=>{k=null})),yt()),3840&e[0]){let n;for(C=t[10],n=0;n<C.length;n+=1){const s=od(t,C,n);M[n]?M[n].p(s,e):(M[n]=ud(s),M[n].c(),M[n].m(m,null))}for(;n<M.length;n+=1)M[n].d(1);M.length=C.length}(!$||512&e[0])&&j(g,"left",20+(Hs()-40)/4*t[9]+"px"),t[6]?I?(I.p(t,e),64&e[0]&&xt(I,1)):(I=dd(t),I.c(),xt(I,1),I.m(s,null)):I&&(wt(),bt(I,1,1,(()=>{I=null})),yt())},i(t){$||(xt(e.$$.fragment,t),xt(k),xt(I),$=!0)},o(t){bt(e.$$.fragment,t),bt(k),bt(I),$=!1},d(i){Tt(e,i),i&&L(n),i&&L(s),t[15](null),T(z,i),k&&k.d(),T(M,i),t[19](null),I&&I.d(),w=!1,y()}}}const vd=function(t){return t&&t.trim()},$d=function(t){return t&&t.trim()};function wd(t,e,n){let s,i,l,o,r,c,a,u,d="",f=[],p=[],m=[{index:0,type:0,text:"综合"},{index:1,type:1,text:"单曲"},{index:2,type:100,text:"歌手"},{index:3,type:1e3,text:"歌单"}];function h(t){setTimeout((()=>{t.target.isNeedPrevent||t.target.oldValue===t.target.value||(t.target.oldValue=t.target.value,n(1,d=t.target.value))}),10)}function g(){if(""!=d.trim()){a.blur();let t=localStorage.getItem("searchkeywords")?localStorage.getItem("searchkeywords"):"";t=-1!=t.indexOf(d)?`${d}|&&|`+t.replace(`${d}|&&|`,""):`${d}|&&|`+t,n(14,o=t.split("|&&|")),localStorage.setItem("searchkeywords",t),0===l?($(m[1].type,!1),$(m[2].type,!1),$(m[3].type,!1)):$(l,!0)}}function v(t){n(1,d=t),g()}async function $(t,e){const i=await(l={keywords:d,type:t,limit:e?30:6},Br({url:"/search",method:"get",params:l}).then((t=>t)));var l;if(200===i.code)switch(n(6,c=!0),t){case 1:let t=[];for(let e=0;e<i.result.songs.length;e++)t.push(i.result.songs[e].id);!async function(t){const e=await Nr(t);200===e.code&&n(5,s=e.songs)}(t.join(","));break;case 100:n(2,f=i.result.artists);break;case 1e3:n(3,p=i.result.playlists);break;default:console.log("未知类型")}}Y((()=>{u&&Js(u,!0),a.addEventListener("compositionstart",(function(t){t.target.isNeedPrevent=!0})),a.addEventListener("compositionend",(function(t){t.target.isNeedPrevent=!1})),a.addEventListener("input",h),a.addEventListener("keydown",(function(t){"Enter"===t.key&&g()}))}));return t.$$.update=()=>{16384&t.$$.dirty[0]&&n(7,r=o.length>10?o.slice(0,10).filter((function(t){return t&&t.trim()})):o.filter((function(t){return t&&t.trim()})))},n(5,s=[]),n(9,i=0),n(8,l=m[0].type),n(14,o=localStorage.getItem("searchkeywords")?[...new Set(localStorage.getItem("searchkeywords").split("|&&|"))].filter((function(t){return t&&t.trim()})):[]),n(6,c=!1),[a,d,f,p,u,s,c,r,l,i,m,g,v,function(){n(7,r=[]),localStorage.removeItem("searchkeywords")},o,function(t){st[t?"unshift":"push"]((()=>{a=t,n(0,a)}))},()=>g(),t=>v(t),t=>{n(9,i=t.index),n(8,l=t.type),g()},function(t){st[t?"unshift":"push"]((()=>{u=t,n(4,u)}))}]}function yd(t){let e,n;return{c(){e=O("img"),E(e,"class","img-cover svelte-dyfxu7"),a(e.src,n=t[7].replace(/^http:/,"https:")+"?param=400y400")||E(e,"src",n),E(e,"alt","")},m(t,n){_(t,e,n)},p(t,s){128&s&&!a(e.src,n=t[7].replace(/^http:/,"https:")+"?param=400y400")&&E(e,"src",n)},d(t){t&&L(e)}}}function xd(e){let n,s,i,l;return s=new In({props:{size:"20",style:"vertical-align: middle"}}),{c(){n=O("span"),_t(s.$$.fragment),i=B("\n        播放全部"),E(n,"class","icon svelte-dyfxu7")},m(t,e){_(t,n,e),Lt(s,n,null),_(t,i,e),l=!0},p:t,i(t){l||(xt(s.$$.fragment,t),l=!0)},o(t){bt(s.$$.fragment,t),l=!1},d(t){t&&L(n),Tt(s),t&&L(i)}}}function bd(t){let e,n,s;return n=new Ys({props:{type:t[0]?"default":"primary",$$slots:{default:[Sd]},$$scope:{ctx:t}}}),n.$on("BtnClick",t[12]),{c(){e=O("div"),_t(n.$$.fragment),E(e,"class","random svelte-dyfxu7")},m(t,i){_(t,e,i),Lt(n,e,null),s=!0},p(t,e){const s={};1&e&&(s.type=t[0]?"default":"primary"),33554433&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(xt(n.$$.fragment,t),s=!0)},o(t){bt(n.$$.fragment,t),s=!1},d(t){t&&L(e),Tt(n)}}}function zd(t){let e,n;return e=new Ee({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function kd(t){let e,n;return e=new Ae({props:{size:"20",style:"vertical-align: middle"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Sd(t){let e,n,s,i,l,o,r=t[0]?"取消收藏":"收藏歌手";const c=[kd,zd],a=[];function u(t,e){return t[0]?0:1}return n=u(t),s=a[n]=c[n](t),{c(){e=O("span"),s.c(),i=H(),l=B(r),E(e,"class","icon svelte-dyfxu7")},m(t,s){_(t,e,s),a[n].m(e,null),_(t,i,s),_(t,l,s),o=!0},p(t,i){let d=n;n=u(t),n!==d&&(wt(),bt(a[d],1,1,(()=>{a[d]=null})),yt(),s=a[n],s||(s=a[n]=c[n](t),s.c()),xt(s,1),s.m(e,null)),(!o||1&i)&&r!==(r=t[0]?"取消收藏":"收藏歌手")&&P(l,r)},i(t){o||(xt(s),o=!0)},o(t){bt(s),o=!1},d(t){t&&L(e),a[n].d(),t&&L(i),t&&L(l)}}}function Cd(t){let e,n,s,i,l,o,r,c,a,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,j,U,V,F;e=new si({props:{title:t[8],dark:!0}}),r=new uo({props:{height:140,$$slots:{default:[yd]},$$scope:{ctx:t}}}),M=new Ys({props:{type:"primary",$$slots:{default:[xd]},$$scope:{ctx:t}}}),M.$on("BtnClick",t[13]);let J=t[9]&&bd(t);return R=new vl({props:{title:`热门 ${t[1].length} 首`,isShowRight:50===t[1].length}}),R.$on("TitleClick",t[14]),j=new jr({props:{songList:t[1]}}),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),l=O("div"),o=O("div"),_t(r.$$.fragment),c=H(),a=O("div"),u=O("div"),d=B(t[8]),f=H(),p=O("div"),m=B(t[5]),h=B(" 首歌 • "),g=B(t[4]),v=B(" 张专辑 • "),$=B(t[6]),w=B(" 个 MV"),y=H(),x=O("div"),b=B(t[2]),z=H(),k=O("div"),C=O("div"),_t(M.$$.fragment),T=H(),J&&J.c(),I=H(),N=O("div"),_t(R.$$.fragment),A=H(),_t(j.$$.fragment),E(o,"class","cover svelte-dyfxu7"),E(u,"class","name svelte-dyfxu7"),E(p,"class","song-count svelte-dyfxu7"),E(x,"class","desc svelte-dyfxu7"),E(a,"class","info svelte-dyfxu7"),E(l,"class","cover-bg svelte-dyfxu7"),E(i,"class","cover-box svelte-dyfxu7"),E(C,"class","play svelte-dyfxu7"),E(k,"class","btn svelte-dyfxu7"),E(s,"class","page svelte-dyfxu7")},m(L,O){Lt(e,L,O),_(L,n,O),_(L,s,O),S(s,i),S(i,l),S(l,o),Lt(r,o,null),S(l,c),S(l,a),S(a,u),S(u,d),S(a,f),S(a,p),S(p,m),S(p,h),S(p,g),S(p,v),S(p,$),S(p,w),S(a,y),S(a,x),S(x,b),S(s,z),S(s,k),S(k,C),Lt(M,C,null),S(k,T),J&&J.m(k,null),S(s,I),S(s,N),Lt(R,N,null),S(N,A),Lt(j,N,null),U=!0,V||(F=D(x,"click",t[10]),V=!0)},p(t,[n]){const s={};256&n&&(s.title=t[8]),e.$set(s);const i={};33554560&n&&(i.$$scope={dirty:n,ctx:t}),r.$set(i),(!U||256&n)&&P(d,t[8]),(!U||32&n)&&P(m,t[5]),(!U||16&n)&&P(g,t[4]),(!U||64&n)&&P($,t[6]),(!U||4&n)&&P(b,t[2]);const l={};33554432&n&&(l.$$scope={dirty:n,ctx:t}),M.$set(l),t[9]?J?(J.p(t,n),512&n&&xt(J,1)):(J=bd(t),J.c(),xt(J,1),J.m(k,null)):J&&(wt(),bt(J,1,1,(()=>{J=null})),yt());const o={};2&n&&(o.title=`热门 ${t[1].length} 首`),2&n&&(o.isShowRight=50===t[1].length),R.$set(o);const c={};2&n&&(c.songList=t[1]),j.$set(c)},i(t){U||(xt(e.$$.fragment,t),xt(r.$$.fragment,t),xt(M.$$.fragment,t),xt(J),xt(R.$$.fragment,t),xt(j.$$.fragment,t),U=!0)},o(t){bt(e.$$.fragment,t),bt(r.$$.fragment,t),bt(M.$$.fragment,t),bt(J),bt(R.$$.fragment,t),bt(j.$$.fragment,t),U=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(r),Tt(M),J&&J.d(),Tt(R),Tt(j),V=!1,F()}}}function Md(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$;f(t,xi,(t=>n(15,p=t))),f(t,Ml,(t=>n(16,m=t))),f(t,_l,(t=>n(17,h=t))),f(t,mi,(t=>n(9,g=t))),f(t,gi,(t=>n(18,v=t))),f(t,te,(t=>n(19,$=t)));const{id:w}=Fs($);function y(){if(async function(){const t=await sa(d);200===t.code&&(n(8,i=t.data.artist.name),n(7,s=t.data.user?t.data.user.avatarUrl:t.data.artist.cover),n(2,l=t.data.artist.briefDesc),n(6,o=t.data.artist.mvSize),n(5,r=t.data.artist.musicSize),n(4,c=t.data.artist.albumSize))}(),async function(){const t=await function(t){return Br({url:"/artist/top/song",method:"get",params:{id:t}})}(d);200===t.code&&n(1,a=t.songs)}(),g){const t=JSON.parse(localStorage.getItem("useLoveSongerIds"));n(0,u=t.includes(p))}else n(0,u=!1)}function x(t){Dl.set("repeat"),Tl.set(!1),localStorage.setItem("isFMPlay","0"),_l.set(a);let e=[];for(let t=0;t<a.length;t++)e.push(a[t].id);localStorage.setItem("localPlayList",JSON.stringify(e)),Ml.set(t),async function(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),m!==h.length-1&&Hr(h[m+1].id)):Toast(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}(h[m])}ge((()=>{const{id:t}=Fs($);n(3,d=t),v||y()})),Y((()=>{y()}));return n(7,s=ki),n(8,i="--"),n(2,l="暂无描述"),n(6,o=0),n(5,r=0),n(4,c=0),n(1,a=[]),n(0,u=!1),n(3,d=w),[u,a,l,d,c,r,o,s,i,g,function(){""!=l&&me("/songerDesc?"+p)},x,async function(){var t;if(200===(await(t={id:p,t:u?0:1},Br({url:"/artist/sub",method:"get",params:t}))).code){const t=JSON.parse(localStorage.getItem("useLoveSongerIds"));if(u){let e=t.indexOf(Number(p));t.splice(e,1)}else t.unshift(Number(p));localStorage.setItem("useLoveSongerIds",JSON.stringify(t)),n(0,u=!u)}},()=>x(0),()=>{bi.set(s.replace(/^http:/,"https:")),me("/moreSong?name="+i+"&id="+d)}]}function _d(e){let n,s,i,l,o,r,c;return n=new si({props:{title:"播放音质"}}),l=new qi({props:{radioData:e[0],active:e[2]}}),l.$on("RadioClick",e[3]),r=new Yi({props:{tipTextList:e[1]}}),{c(){_t(n.$$.fragment),s=H(),i=O("div"),_t(l.$$.fragment),o=H(),_t(r.$$.fragment),E(i,"class","br-page svelte-uc65sw")},m(t,e){Lt(n,t,e),_(t,s,e),_(t,i,e),Lt(l,i,null),S(i,o),Lt(r,i,null),c=!0},p:t,i(t){c||(xt(n.$$.fragment,t),xt(l.$$.fragment,t),xt(r.$$.fragment,t),c=!0)},o(t){bt(n.$$.fragment,t),bt(l.$$.fragment,t),bt(r.$$.fragment,t),c=!1},d(t){Tt(n,t),t&&L(s),t&&L(i),Tt(l),Tt(r)}}}function Ld(t,e,n){let s;f(t,wi,(t=>n(4,s=t)));return[[{text:"普通",desc:"128K"},{text:"较高",desc:"192K"},{text:"极高",desc:"320K"},{text:"无损",desc:"FLAC"}],["提示:","1、音质越高相对应所需流量也越高。FLAC 格式对网络要求较高,一首歌曲文件几十 M 甚至超过 100M。","2、一般来说,达到较高音质(192K)非专业设备就已经听不出差距了,如果用的是普通蓝牙耳机,那就更没必要开启高音质了。","3、若当前账号无法播放高音质,或音乐资源无当前音质,将自动匹配下一级别音质。","4、所选音质将在下一次切换歌曲生效。"],Number(s),function(t){wi.set(t.detail.active.toString()),localStorage.setItem("musicQuality",t.detail.active.toString())}]}function Td(t){let e;return{c(){e=O("span"),e.innerHTML='<img class="authStatus svelte-hhobj8" src="/images/auth.png" alt=""/>',E(e,"class","vip")},m(t,n){_(t,e,n)},d(t){t&&L(e)}}}function Od(t){let e,n,s;return{c(){e=O("span"),n=O("img"),E(n,"class","cvip svelte-hhobj8"),a(n.src,s=`/images/vip/${t[12].user.vipRights.redVipLevel}.png`)||E(n,"src",s),E(n,"alt",""),E(e,"class","vip")},m(t,s){_(t,e,s),S(e,n)},p(t,e){4096&e&&!a(n.src,s=`/images/vip/${t[12].user.vipRights.redVipLevel}.png`)&&E(n,"src",s)},d(t){t&&L(e)}}}function Id(t){let e,n;return e=new Is({props:{size:"12",style:"vertical-align: middle;margin-left:4px"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Bd(t){let e,n;return e=new Ls({props:{size:"12",style:"vertical-align: middle;margin-left:4px;"}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Hd(t){let e,n,s,i,l,o=t[12].beReplied[0].user.nickname+"",r=t[12].beReplied[0].content+"";return{c(){e=O("div"),n=B("@ "),s=B(o),i=B(":"),l=B(r),E(e,"class","beReplied svelte-hhobj8")},m(t,o){_(t,e,o),S(e,n),S(e,s),S(e,i),S(e,l)},p(t,e){4096&e&&o!==(o=t[12].beReplied[0].user.nickname+"")&&P(s,o),4096&e&&r!==(r=t[12].beReplied[0].content+"")&&P(l,r)},d(t){t&&L(e)}}}function Nd(t){let e,n,s,i,l,o,r,c,u,d,f,p,m,h,g,v,$,w,y,x,b,z,k,C,M,T,I,N,R,A,U,V,J=t[12].user.nickname+"",q=Ns(t[12].time,"yyyy-MM-dd hh:mm:ss")+"",X=Es(t[12].likedCount)+"",G=t[12].content+"",W=1===t[12].user.authStatus&&Td(),K=0!==t[12].user.vipType&&Od(t);const Y=[Bd,Id],Z=[];function Q(t,e){return t[12].liked?0:1}function tt(){return t[7](t[12])}x=Q(t),b=Z[x]=Y[x](t);let et=t[12].beReplied&&t[12].beReplied.length>0&&Hd(t);return R=new li({}),{c(){e=O("div"),n=O("div"),s=O("div"),i=O("div"),l=O("div"),o=O("img"),c=H(),u=O("div"),d=O("div"),f=B(J),p=H(),W&&W.c(),m=H(),K&&K.c(),h=H(),g=O("div"),v=B(q),$=H(),w=O("div"),y=O("span"),b.c(),z=H(),k=B(X),C=H(),M=O("div"),T=new F,I=H(),et&&et.c(),N=H(),_t(R.$$.fragment),a(o.src,r=t[12].user.avatarUrl.replace(/^http:/,"https:")+"?param=50y50")||E(o,"src",r),E(o,"alt",""),E(o,"class","svelte-hhobj8"),E(l,"class","cover svelte-hhobj8"),E(d,"class","name"),E(g,"class","time svelte-hhobj8"),E(u,"class","info svelte-hhobj8"),E(i,"class","user svelte-hhobj8"),E(y,"class","liked-span svelte-hhobj8"),E(w,"class","like svelte-hhobj8"),j(w,"color",t[12].liked?"var(--primary-text-color)":"#666"),E(s,"class","top svelte-hhobj8"),T.a=I,E(M,"class","content svelte-hhobj8"),E(n,"class","comment svelte-hhobj8")},m(t,r){_(t,e,r),S(e,n),S(n,s),S(s,i),S(i,l),S(l,o),S(i,c),S(i,u),S(u,d),S(d,f),S(d,p),W&&W.m(d,null),S(d,m),K&&K.m(d,null),S(u,h),S(u,g),S(g,v),S(s,$),S(s,w),S(w,y),Z[x].m(y,null),S(y,z),S(w,k),S(n,C),S(n,M),T.m(G,M),S(M,I),et&&et.m(M,null),S(e,N),Lt(R,e,null),A=!0,U||(V=D(w,"click",tt),U=!0)},p(e,n){t=e,(!A||4096&n&&!a(o.src,r=t[12].user.avatarUrl.replace(/^http:/,"https:")+"?param=50y50"))&&E(o,"src",r),(!A||4096&n)&&J!==(J=t[12].user.nickname+"")&&P(f,J),1===t[12].user.authStatus?W||(W=Td(),W.c(),W.m(d,m)):W&&(W.d(1),W=null),0!==t[12].user.vipType?K?K.p(t,n):(K=Od(t),K.c(),K.m(d,null)):K&&(K.d(1),K=null),(!A||4096&n)&&q!==(q=Ns(t[12].time,"yyyy-MM-dd hh:mm:ss")+"")&&P(v,q);let s=x;x=Q(t),x!==s&&(wt(),bt(Z[s],1,1,(()=>{Z[s]=null})),yt(),b=Z[x],b||(b=Z[x]=Y[x](t),b.c()),xt(b,1),b.m(y,z)),(!A||4096&n)&&X!==(X=Es(t[12].likedCount)+"")&&P(k,X),(!A||4096&n)&&j(w,"color",t[12].liked?"var(--primary-text-color)":"#666"),(!A||4096&n)&&G!==(G=t[12].content+"")&&T.p(G),t[12].beReplied&&t[12].beReplied.length>0?et?et.p(t,n):(et=Hd(t),et.c(),et.m(M,null)):et&&(et.d(1),et=null)},i(t){A||(xt(b),xt(R.$$.fragment,t),A=!0)},o(t){bt(b),bt(R.$$.fragment,t),A=!1},d(t){t&&L(e),W&&W.d(),K&&K.d(),Z[x].d(),et&&et.d(),Tt(R),U=!1,V()}}}function Dd(t){let e,n,s,i,l;return e=new si({props:{title:`热门评论(${t[2]||0})`}}),i=new pl({props:{bottomHeight:70,paginationHeight:t[4],items:t[0],hasMore:t[1],$$slots:{default:[Nd,({item:t,index:e})=>({12:t,13:e}),({item:t,index:e})=>(t?4096:0)|(e?8192:0)]},$$scope:{ctx:t}}}),i.$on("load",t[8]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),E(s,"class","comment-page svelte-hhobj8")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),Lt(i,s,null),l=!0},p(t,[n]){const s={};4&n&&(s.title=`热门评论(${t[2]||0})`),e.$set(s);const l={};16&n&&(l.paginationHeight=t[4]),1&n&&(l.items=t[0]),2&n&&(l.hasMore=t[1]),20480&n&&(l.$$scope={dirty:n,ctx:t}),i.$set(l)},i(t){l||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),l=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),l=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i)}}}function Ed(t,e,n){let s,i,l,o,r,c,a,u;async function d(t){l=a.id;const e=await function(t,e=0,n=0,s=20){return Br({url:"/comment/hot",method:"get",params:{id:t,type:n,limit:s,offset:e,timestamp:(new Date).getTime()}})}(a.id,t);if(200===e.code){n(2,s=e.total),n(0,i=i.concat(e.hotComments)),n(1,o=e.hasMore),n(0,i=i.filter((t=>"云村评论编辑部"!==t.user.nickname)));for(let t=0;t<i.length;t++)n(0,i[t].content=Us(i[t].content),i)}}async function p(t,e){if(u){if(200===(await function(t,e,n=0,s){return Br({url:"/comment/like",method:"get",params:{id:t,cid:e,type:n,t:s,timestamp:(new Date).getTime()}})}(a.id,t,0,e?0:1)).code)for(let s=0;s<i.length;s++)i[s].commentId===t&&n(0,i[s].liked=!e,i)}else Ps("请登录")}f(t,Cl,(t=>n(10,a=t))),f(t,mi,(t=>n(11,u=t))),Y((()=>{n(4,c=document.documentElement.clientHeight||document.body.clientHeight-120),d(0)})),Z((()=>{l!==a.id&&(n(0,i=[]),n(3,r=0),n(1,o=!0),d(r))}));return n(2,s=0),n(0,i=[]),l=0,n(1,o=!0),n(3,r=0),n(4,c=0),[i,o,s,r,c,d,p,t=>p(t.commentId,t.liked),()=>{o&&(n(3,r=i.length),d(r))}]}function Rd(t,e,n){const s=t.slice();return s[3]=e[n],s}function Pd(t){let e,n,s=t[0],i=[];for(let e=0;e<s.length;e+=1)i[e]=Ad(Rd(t,s,e));const l=t=>bt(i[t],1,1,(()=>{i[t]=null}));return{c(){e=O("div");for(let t=0;t<i.length;t+=1)i[t].c();E(e,"class","songer-box svelte-svzm6k")},m(t,s){_(t,e,s);for(let t=0;t<i.length;t+=1)i[t].m(e,null);n=!0},p(t,n){if(1&n){let o;for(s=t[0],o=0;o<s.length;o+=1){const l=Rd(t,s,o);i[o]?(i[o].p(l,n),xt(i[o],1)):(i[o]=Ad(l),i[o].c(),xt(i[o],1),i[o].m(e,null))}for(wt(),o=s.length;o<i.length;o+=1)l(o);yt()}},i(t){if(!n){for(let t=0;t<s.length;t+=1)xt(i[t]);n=!0}},o(t){i=i.filter(Boolean);for(let t=0;t<i.length;t+=1)bt(i[t]);n=!1},d(t){t&&L(e),T(i,t)}}}function Ad(t){let e,n;return e=new Qc({props:{songer:t[3],coverSize:200}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};1&n&&(s.songer=t[3]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function jd(t){let e,n,s,i;e=new si({props:{title:"收藏的歌手"}});let l=t[0].length>0&&Pd(t);return{c(){_t(e.$$.fragment),n=H(),s=O("div"),l&&l.c(),E(s,"class","page svelte-svzm6k")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),l&&l.m(s,null),i=!0},p(t,[e]){t[0].length>0?l?(l.p(t,e),1&e&&xt(l,1)):(l=Pd(t),l.c(),xt(l,1),l.m(s,null)):l&&(wt(),bt(l,1,1,(()=>{l=null})),yt())},i(t){i||(xt(e.$$.fragment,t),xt(l),i=!0)},o(t){bt(e.$$.fragment,t),bt(l),i=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),l&&l.d()}}}function Ud(t,e,n){let s,i;async function l(){const t=await _c({limit:2e3});200===t.code&&n(0,s=t.data)}return f(t,gi,(t=>n(1,i=t))),ge((()=>{i||l()})),Y((()=>{l()})),n(0,s=[]),[s]}function Vd(t,e,n){const s=t.slice();return s[6]=e[n],s}function Fd(t){let e,n,s,i,l=t[6].ti+"",o=t[6].txt+"";return{c(){e=O("div"),n=B(l),s=H(),i=O("div"),E(e,"class","title svelte-18yar7i"),E(i,"class","text svelte-18yar7i")},m(t,l){_(t,e,l),S(e,n),_(t,s,l),_(t,i,l),i.innerHTML=o},p(t,e){1&e&&l!==(l=t[6].ti+"")&&P(n,l),1&e&&o!==(o=t[6].txt+"")&&(i.innerHTML=o)},d(t){t&&L(e),t&&L(s),t&&L(i)}}}function Jd(t){let e,n,s,i,l,o,r,c,a;e=new si({props:{title:"歌手详情",dark:!0}});let u=t[0],d=[];for(let e=0;e<u.length;e+=1)d[e]=Fd(Vd(t,u,e));return{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div"),i.textContent="简介",l=H(),o=O("div"),r=B(t[1]),c=H();for(let t=0;t<d.length;t+=1)d[t].c();E(i,"class","title svelte-18yar7i"),E(o,"class","text svelte-18yar7i"),E(s,"class","page svelte-18yar7i")},m(t,u){Lt(e,t,u),_(t,n,u),_(t,s,u),S(s,i),S(s,l),S(s,o),S(o,r),S(s,c);for(let t=0;t<d.length;t+=1)d[t].m(s,null);a=!0},p(t,[e]){if((!a||2&e)&&P(r,t[1]),1&e){let n;for(u=t[0],n=0;n<u.length;n+=1){const i=Vd(t,u,n);d[n]?d[n].p(i,e):(d[n]=Fd(i),d[n].c(),d[n].m(s,null))}for(;n<d.length;n+=1)d[n].d(1);d.length=u.length}},i(t){a||(xt(e.$$.fragment,t),a=!0)},o(t){bt(e.$$.fragment,t),a=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(d,t)}}}function qd(t,e,n){let s,i,l,o;async function r(){const t=await(e=l.substr(1),Br({url:"/artist/desc",method:"get",params:{id:e}}));var e;200===t.code&&(n(1,s=t.briefDesc),n(0,i=t.introduction))}return f(t,te,(t=>n(3,l=t))),f(t,gi,(t=>n(4,o=t))),ge((()=>{o||r()})),Y((()=>{r()})),n(1,s=""),n(0,i=[]),[i,s]}function Xd(t){let e,n;return e=new Qc({props:{songer:t[7],coverSize:200}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};128&n&&(s.songer=t[7]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Gd(t){let e,n,s,i,l;return e=new si({props:{title:`热门歌手 ${t[1].length} 位`}}),i=new pl({props:{bottomHeight:70,paginationHeight:t[2],items:t[1],hasMore:t[0],grid:3,$$slots:{default:[Xd,({item:t,index:e})=>({7:t,8:e}),({item:t,index:e})=>(t?128:0)|(e?256:0)]},$$scope:{ctx:t}}}),i.$on("load",t[5]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),E(s,"class","comment-page svelte-1fc8ytt")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),Lt(i,s,null),l=!0},p(t,[n]){const s={};2&n&&(s.title=`热门歌手 ${t[1].length} 位`),e.$set(s);const l={};4&n&&(l.paginationHeight=t[2]),2&n&&(l.items=t[1]),1&n&&(l.hasMore=t[0]),640&n&&(l.$$scope={dirty:n,ctx:t}),i.$set(l)},i(t){l||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),l=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),l=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i)}}}function Wd(t,e,n){let s,i,l,o,r;async function c(t){const e=await ia(20,t);200===e.code&&(n(1,s=s.concat(e.artists)),n(0,i=e.more))}f(t,gi,(t=>n(6,r=t))),ge((()=>{r||(n(1,s=[]),n(0,i=!0),n(3,l=0),n(2,o=document.documentElement.clientHeight||document.body.clientHeight-120),c())})),Y((()=>{n(2,o=document.documentElement.clientHeight||document.body.clientHeight-120),c(0)}));return n(1,s=[]),n(0,i=!0),n(3,l=0),n(2,o=0),[i,s,o,l,c,()=>{i&&(n(3,l=s.length),c(l))}]}function Kd(t){let e,n;return e=new jc({props:{name:t[12].name,coverImgUrl:t[12].coverImgUrl,id:t[12].id,width:150,playCount:t[12].playCount,trackCount:t[12].trackCount}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};4096&n&&(s.name=t[12].name),4096&n&&(s.coverImgUrl=t[12].coverImgUrl),4096&n&&(s.id=t[12].id),4096&n&&(s.playCount=t[12].playCount),4096&n&&(s.trackCount=t[12].trackCount),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function Yd(t){let e,n,s,i,l;return e=new si({props:{title:"官方"===t[4].cat?"官方歌单":`${t[4].cat} - ${"top"===t[4].type?"精选":"精品"}歌单`}}),i=new pl({props:{bottomHeight:70,paginationHeight:t[5],items:t[1],hasMore:t[0],grid:2,$$slots:{default:[Kd,({item:t,index:e})=>({12:t,13:e}),({item:t,index:e})=>(t?4096:0)|(e?8192:0)]},$$scope:{ctx:t}}}),i.$on("load",t[8]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),_t(i.$$.fragment),E(s,"class","comment-page svelte-1fc8ytt")},m(t,o){Lt(e,t,o),_(t,n,o),_(t,s,o),Lt(i,s,null),l=!0},p(t,[n]){const s={};16&n&&(s.title="官方"===t[4].cat?"官方歌单":`${t[4].cat} - ${"top"===t[4].type?"精选":"精品"}歌单`),e.$set(s);const l={};32&n&&(l.paginationHeight=t[5]),2&n&&(l.items=t[1]),1&n&&(l.hasMore=t[0]),20480&n&&(l.$$scope={dirty:n,ctx:t}),i.$set(l)},i(t){l||(xt(e.$$.fragment,t),xt(i.$$.fragment,t),l=!0)},o(t){bt(e.$$.fragment,t),bt(i.$$.fragment,t),l=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),Tt(i)}}}function Zd(t,e,n){let s,i,l,o,r,c,a,u;function d(){n(5,o=document.documentElement.clientHeight||document.body.clientHeight-120),n(4,r=Fs(a)),"high"===r.type?m(r.cat):p(r.cat)}async function p(t){const e=await na({limit:20,cat:"默认"===t?"全部":t,offset:l});200===e.code&&(n(1,s=s.concat(e.playlists)),n(0,i=e.more))}async function m(t){const e=await ea({limit:20,cat:"默认"===t?"全部":t,before:c});200===e.code&&(n(1,s=s.concat(e.playlists)),n(0,i=e.more))}f(t,te,(t=>n(9,a=t))),f(t,gi,(t=>n(10,u=t))),ge((()=>{u||(n(1,s=[]),n(0,i=!0),n(3,l=0),n(5,o=0),n(2,c=0),n(4,r={}),d())})),Y((()=>{d()}));return n(1,s=[]),n(0,i=!0),n(3,l=0),n(5,o=0),n(4,r={}),n(2,c=0),[i,s,c,l,r,o,p,m,()=>{i&&("high"===r.type?(n(2,c=s.slice(-1)[0].updateTime),m(r.cat)):(n(3,l=s.length),p(r.cat)))}]}function Qd(t,e,n){const s=t.slice();return s[21]=e[n],s}function tf(t){let e,n,s,i,l,o=t[21].text+"";function r(){return t[11](t[21])}return{c(){e=O("div"),n=B(o),s=H(),E(e,"class","type-item svelte-18svwxv"),U(e,"active",t[5]===t[21].index)},m(t,o){_(t,e,o),S(e,n),S(e,s),i||(l=D(e,"click",r),i=!0)},p(n,s){t=n,288&s&&U(e,"active",t[5]===t[21].index)},d(t){t&&L(e),i=!1,l()}}}function ef(t){let e,n;return e=new xo({props:{song:t[19],index:t[20],customCoverUrl:t[7]+"?param=100y100"}}),e.$on("songClick",t[10]),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};524288&n&&(s.song=t[19]),1048576&n&&(s.index=t[20]),128&n&&(s.customCoverUrl=t[7]+"?param=100y100"),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function nf(t){let e,n,s,i,l,o,r,c,a,u;e=new si({props:{title:`${t[2].name}的全部歌曲`}});let d=t[8],f=[];for(let e=0;e<d.length;e+=1)f[e]=tf(Qd(t,d,e));return a=new pl({props:{bottomHeight:70,paginationHeight:t[4],items:t[0],hasMore:t[1],$$slots:{default:[ef,({item:t,index:e})=>({19:t,20:e}),({item:t,index:e})=>(t?524288:0)|(e?1048576:0)]},$$scope:{ctx:t}}}),a.$on("load",t[12]),{c(){_t(e.$$.fragment),n=H(),s=O("div"),i=O("div");for(let t=0;t<f.length;t+=1)f[t].c();l=H(),o=O("div"),r=H(),c=O("div"),_t(a.$$.fragment),E(i,"class","type svelte-18svwxv"),E(o,"class","active-line svelte-18svwxv"),j(o,"left",20+(Hs()-40)/2*t[5]+"px"),j(c,"margin-top","40px"),E(s,"class","comment-page svelte-18svwxv")},m(t,d){Lt(e,t,d),_(t,n,d),_(t,s,d),S(s,i);for(let t=0;t<f.length;t+=1)f[t].m(i,null);S(s,l),S(s,o),S(s,r),S(s,c),Lt(a,c,null),u=!0},p(t,[n]){const s={};if(4&n&&(s.title=`${t[2].name}的全部歌曲`),e.$set(s),875&n){let e;for(d=t[8],e=0;e<d.length;e+=1){const s=Qd(t,d,e);f[e]?f[e].p(s,n):(f[e]=tf(s),f[e].c(),f[e].m(i,null))}for(;e<f.length;e+=1)f[e].d(1);f.length=d.length}(!u||32&n)&&j(o,"left",20+(Hs()-40)/2*t[5]+"px");const l={};16&n&&(l.paginationHeight=t[4]),1&n&&(l.items=t[0]),2&n&&(l.hasMore=t[1]),18350208&n&&(l.$$scope={dirty:n,ctx:t}),a.$set(l)},i(t){u||(xt(e.$$.fragment,t),xt(a.$$.fragment,t),u=!0)},o(t){bt(e.$$.fragment,t),bt(a.$$.fragment,t),u=!1},d(t){Tt(e,t),t&&L(n),t&&L(s),T(f,t),Tt(a)}}}function sf(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h;f(t,Ml,(t=>n(13,u=t))),f(t,_l,(t=>n(14,d=t))),f(t,bi,(t=>n(7,p=t))),f(t,te,(t=>n(15,m=t))),f(t,gi,(t=>n(16,h=t)));let g=[{index:0,type:"hot",text:"最热"},{index:1,type:"time",text:"最近"}];async function v(t,e){const l=await function(t,e,n,s){return Br({url:"/artist/songs",method:"get",params:{id:t,order:e,limit:n,offset:s}})}(r.id,e,20,t);200===l.code&&(n(0,s=s.concat(l.songs)),n(1,i=l.more))}async function $(t){const e=await Hr(t.id);200===e.code&&(e.data[0].url?(t.url=e.data[0].url.replace(/^http:/,"https:"),1===e.data[0].fee&&null!=e.data[0].freeTrialInfo?El.set("试听"):"flac"===e.data[0].type?El.set("FLAC"):El.set(e.data[0].br),t.al.picUrl=p,Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),u!==d.length-1&&Hr(d[u+1].id)):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}ge((()=>{h||(n(0,s=[]),n(1,i=!0),n(6,l=0),n(5,c=0),n(3,a="hot"),n(2,r=Fs(m)),n(4,o=document.documentElement.clientHeight||document.body.clientHeight-120),v(0,a))})),Y((()=>{n(2,r=Fs(m)),n(4,o=document.documentElement.clientHeight||document.body.clientHeight-120),v(0,a)}));return n(0,s=[]),n(1,i=!0),n(6,l=0),n(4,o=0),n(2,r={}),n(5,c=0),n(3,a=g[0].type),[s,i,r,a,o,c,l,p,g,v,function(t){!function(t){Tl.set(!1),localStorage.setItem("isFMPlay","0");let e=d,n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);if(n.includes(s[t].id))Ml.set(n.indexOf(s[t].id)),$(d[u]);else{e.splice(u+1,0,s[t]),_l.set(e);let n=[];for(let t=0;t<e.length;t++)n.push(e[t].id);localStorage.setItem("localPlayList",JSON.stringify(n)),Ml.set(u+1),$(d[u])}}(t.detail.index)},t=>{n(5,c=t.index),n(3,a=t.type),n(0,s=[]),n(1,i=!0),n(6,l=0),v(l,a)},()=>{i&&(n(6,l=s.length),v(l,a))}]}function lf(e){let n,s,i,l,o;return n=new si({props:{title:"关于"}}),{c(){_t(n.$$.fragment),s=H(),i=O("div"),l=O("div"),E(l,"id","markdown"),E(i,"class","about svelte-1l25dxc")},m(t,e){Lt(n,t,e),_(t,s,e),_(t,i,e),S(i,l),l.innerHTML='<h2 id="screencast">Screencast</h2>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen1.jpg?v=1.0.0" alt="screen1" width="100%" style="max-width:500px">\n<p>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen2.jpg?v=1.0.0" alt="screen2" width="100%" style="max-width:500px">\n<p>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen3.jpg?v=1.0.0" alt="screen3" width="100%" style="max-width:500px">\n<p>\n<p align="center">\n<img src="https://simplecloudmusic.com/assets/screen4.jpg?v=1.0.0" alt="Loscreen4go" width="100%" style="max-width:500px">\n<p>',o=!0},p:t,i(t){o||(xt(n.$$.fragment,t),o=!0)},o(t){bt(n.$$.fragment,t),o=!1},d(t){Tt(n,t),t&&L(s),t&&L(i)}}}function of(e){let n,s,i,l,o;return n=new si({props:{title:"版本记录"}}),{c(){_t(n.$$.fragment),s=H(),i=O("div"),l=O("div"),E(l,"id","markdown"),E(i,"class","about svelte-1l25dxc")},m(t,e){Lt(n,t,e),_(t,s,e),_(t,i,e),S(i,l),l.innerHTML='<h3 id="101">1.0.1</h3>\n<ol>\n<li><p>修复登录邮箱长度过短限制。</p>\n</li>\n<li><p>热评可开关。</p>\n</li>\n<li><p>对不符合要求的浏览器、PWA 环境等提示可选择【不再提醒】。</p>\n</li>\n</ol>\n<h3 id="100">1.0.0</h3>\n<ol>\n<li>第一版。</li>\n</ol>\n',o=!0},p:t,i(t){o||(xt(n.$$.fragment,t),o=!0)},o(t){bt(n.$$.fragment,t),o=!1},d(t){Tt(n,t),t&&L(s),t&&L(i)}}}const rf={"/playlist":class extends It{constructor(t){super(),Ot(this,t,uu,au,r,{})}},"/todayListDetail":class extends It{constructor(t){super(),Ot(this,t,Eu,Du,r,{})}},"/loveListDetail":class extends It{constructor(t){super(),Ot(this,t,Xu,qu,r,{})}},"/myAllPlayList":class extends It{constructor(t){super(),Ot(this,t,Zu,Yu,r,{})}},"/login":class extends It{constructor(t){super(),Ot(this,t,Hu,Ou,r,{},null,[-1,-1])}},"/setting":class extends It{constructor(t){super(),Ot(this,t,ed,td,r,{})}},"/search":class extends It{constructor(t){super(),Ot(this,t,wd,gd,r,{},null,[-1,-1])}},"/artist":class extends It{constructor(t){super(),Ot(this,t,Md,Cd,r,{})}},"/brSelect":class extends It{constructor(t){super(),Ot(this,t,Ld,_d,r,{})}},"/comments":class extends It{constructor(t){super(),Ot(this,t,Ed,Dd,r,{})}},"/allCollectSongers":class extends It{constructor(t){super(),Ot(this,t,Ud,jd,r,{})}},"/songerDesc":class extends It{constructor(t){super(),Ot(this,t,qd,Jd,r,{})}},"/moreSonger":class extends It{constructor(t){super(),Ot(this,t,Wd,Gd,r,{})}},"/moreList":class extends It{constructor(t){super(),Ot(this,t,Zd,Yd,r,{})}},"/moreSong":class extends It{constructor(t){super(),Ot(this,t,sf,nf,r,{})}},"/about":class extends It{constructor(t){super(),Ot(this,t,null,lf,r,{})}},"/version":class extends It{constructor(t){super(),Ot(this,t,null,of,r,{})}},"*":class extends It{constructor(t){super(),Ot(this,t,eu,tu,r,{})}}};function cf(t){let e,n;return e=new kc({props:{currentTimeLong:t[4]}}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},p(t,n){const s={};16&n&&(s.currentTimeLong=t[4]),e.$set(s)},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function af(t){let e,n;return e=new Cc({}),{c(){_t(e.$$.fragment)},m(t,s){Lt(e,t,s),n=!0},i(t){n||(xt(e.$$.fragment,t),n=!0)},o(t){bt(e.$$.fragment,t),n=!1},d(t){Tt(e,t)}}}function uf(t){let e,n,s,i,l,o,r,c,u,d,f,p;var m;i=new we({props:{routes:rf,restoreScroll:t[5],transitionFn:(m=300,Jt(m,[(t,e,n,{navigationType:s})=>Ft(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${t} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${s===Pt.GoBackward?"-":""}50%);\n\t\t\t\t}\n\t\t\t\t.${e} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${n} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),(t,e,n,{mountPointToLoad:s,mountPointToUnload:i})=>Ft(`\n\t\t\t\t.${n} {\n\t\t\t\t\tmin-height: ${Math.max(s.offsetHeight,(null==i?void 0:i.offsetHeight)||0)}px;\n\t\t\t\t\tmin-width: ${Math.max(s.offsetWidth,(null==i?void 0:i.offsetWidth)||0)}px;\n\t\t\t\t}\n\t\t\t`),(t,e,n,{navigationType:s})=>Ft(`\n\t\t\t\t.${t} {\n\t\t\t\t\ttransition: transform ${m}ms, opacity ${Math.floor(m/2)}ms linear ${Math.floor(m/2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${e} {\n\t\t\t\t\ttransition: transform ${m}ms, opacity ${Math.floor(m/2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${s===Pt.GoBackward?"":"-"}50%);\n\t\t\t\t}\n\t\t\t`)]))}}),i.$on("navigation-start",t[9]);let h=t[6]&&t[1]&&cf(t);r=new $c({props:{endTime:t[2],currentTime:t[3],currentTimeLong:t[4]}}),u=new Li({});let g=t[7]&&af();return{c(){e=O("audio"),s=H(),_t(i.$$.fragment),l=H(),h&&h.c(),o=H(),_t(r.$$.fragment),c=H(),_t(u.$$.fragment),d=H(),g&&g.c(),f=N(),a(e.src,n="")||E(e,"src","")},m(n,a){_(n,e,a),t[8](e),_(n,s,a),Lt(i,n,a),_(n,l,a),h&&h.m(n,a),_(n,o,a),Lt(r,n,a),_(n,c,a),Lt(u,n,a),_(n,d,a),g&&g.m(n,a),_(n,f,a),p=!0},p(t,[e]){const n={};32&e&&(n.restoreScroll=t[5]),i.$set(n),t[6]&&t[1]?h?(h.p(t,e),66&e&&xt(h,1)):(h=cf(t),h.c(),xt(h,1),h.m(o.parentNode,o)):h&&(wt(),bt(h,1,1,(()=>{h=null})),yt());const s={};4&e&&(s.endTime=t[2]),8&e&&(s.currentTime=t[3]),16&e&&(s.currentTimeLong=t[4]),r.$set(s),t[7]?g?128&e&&xt(g,1):(g=af(),g.c(),xt(g,1),g.m(f.parentNode,f)):g&&(wt(),bt(g,1,1,(()=>{g=null})),yt())},i(t){p||(xt(i.$$.fragment,t),xt(h),xt(r.$$.fragment,t),xt(u.$$.fragment,t),xt(g),p=!0)},o(t){bt(i.$$.fragment,t),bt(h),bt(r.$$.fragment,t),bt(u.$$.fragment,t),bt(g),p=!1},d(n){n&&L(e),t[8](null),n&&L(s),Tt(i,n),n&&L(l),h&&h.d(n),n&&L(o),Tt(r,n),n&&L(c),Tt(u,n),n&&L(d),g&&g.d(n),n&&L(f)}}}function df(t,e,n){let s,i,l,o,r,c,a,u,d,p,m,h,g,v,$;f(t,Ml,(t=>n(10,s=t))),f(t,_l,(t=>n(11,i=t))),f(t,Ol,(t=>n(12,l=t))),f(t,Tl,(t=>n(13,o=t))),f(t,Cl,(t=>n(14,r=t))),f(t,Nl,(t=>n(15,c=t))),f(t,Dl,(t=>n(16,a=t))),f(t,Il,(t=>n(17,u=t))),f(t,fo,(t=>n(18,d=t))),f(t,mi,(t=>n(19,p=t))),f(t,kl,(t=>n(20,m=t))),f(t,$i,(t=>n(5,h=t))),f(t,Sl,(t=>n(6,g=t))),f(t,pi,(t=>n(7,v=t)));let w=!1,y=0,x="0:00",b=0;async function z(t,e,n){const r=await Hr(t.id);200===r.code&&(r.data[0].url?(t.url=r.data[0].url.replace(/^http:/,"https:"),1===r.data[0].fee&&null!=r.data[0].freeTrialInfo?El.set("试听"):"flac"===r.data[0].type?El.set("FLAC"):El.set(r.data[0].br),window.audioDOM.src=t.url,window.audioDOM.play(),zl.set(!0),o?(!async function(){const t=await Dr();200===t.code&&(t.data[0].al=t.data[0].album,t.data[0].ar=t.data[0].artists,t.data[0].alia=t.data[0].alias,Il.set(t.data[0]))}(),Ol.set(t),Cl.set(t),_l.set([l]),Ml.set(0),localStorage.setItem("currentSong",JSON.stringify(t))):"shuffle"===e?(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(n)):"once"===e?(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(n),s!==i.length-1&&Hr(i[s+1].id)):(Cl.set(t),localStorage.setItem("currentSong",JSON.stringify(t)),Ml.set(s+1),s!==i.length-1&&Hr(i[s+1].id))):Ps(`😂 无法播放「${t.name}」!可能是版权原因......吧!请播放下一首。`,2e3))}window.addEventListener("hashchange",(function(t){t.newURL.indexOf("#")<0||""===t.newURL.split("#")[1]||"/"===t.newURL.split("#")[1]?hi.set(!0):hi.set(!1),t.oldURL.indexOf("#")>0&&"/login"===t.oldURL.split("#")[1]&&location.reload()})),window.addEventListener("popstate",(function(t){m&&(kl.set(!1),Nl.set("cover"),Ll.set(window.screen.height+"px"))})),Y((()=>{if(p&&(async function(t){const e=await Mc({uid:t.account.id,limit:1e4,offset:0});if(200===e.code){let n=[];for(let t=0;t<e.playlist.length;t++)n.push(e.playlist[t].id);localStorage.setItem("usePlayListIds",JSON.stringify(n)),async function(t){const e=await(n=t.account.id,Br({url:"/likelist",method:"get",params:{uid:n,timestamp:(new Date).getTime()}}));var n;if(200===e.code){let t=[];for(let n=0;n<e.ids.length;n++)t.push(e.ids[n]);po.set(JSON.stringify(t)),localStorage.setItem("useLoveSongIds",JSON.stringify(t))}else As("获取喜爱歌曲失败")}(t)}else As("获取收藏歌单失败")}(d),async function(){const t=await _c({limit:2e3});if(200===t.code){let e=[];for(let n=0;n<t.data.length;n++)e.push(t.data[n].id);localStorage.setItem("useLoveSongerIds",JSON.stringify(e))}else As("获取喜爱歌手失败")}()),localStorage.getItem("localPlayList")){let t=JSON.parse(localStorage.getItem("localPlayList"));t.length>300&&(t=t.slice(0,300)),async function(t){const e=await Nr(t);if(200===e.code){let n=e.songs;t.split(",").includes(r.id.toString())?Ml.set(t.split(",").indexOf(r.id.toString())):(n.unshift(r),Ml.set(0)),_l.set(n);let s=[];for(let t=0;t<n.length;t++)s.push(n[t].id);localStorage.setItem("localPlayList",JSON.stringify(s))}}(t.join(","))}location.href.indexOf("#")<0||""===location.href.split("#")[1]||"/"===location.href.split("#")[1]?hi.set(!0):hi.set(!1),window.audioDOM=$,window.audioDOM.addEventListener("canplaythrough",(function(){n(1,w=!0),n(2,y="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime))})),window.audioDOM.addEventListener("timeupdate",(function(){Bl.set(window.audioDOM.currentTime),n(3,x=Gs(window.audioDOM.currentTime)),n(4,b=window.audioDOM.currentTime/window.audioDOM.duration*100),n(2,y="-"+Gs(window.audioDOM.duration-window.audioDOM.currentTime))})),window.audioDOM.addEventListener("ended",(function(){if(o)Nl.set("cover"),z(u,"fm");else if("repeatOnce"!=a&&s===i.length-1)Ps("已经是最后一首了",2e3);else if("shuffle"===a){let t=Math.floor(Math.random()*(i.length-1));"lyric"===c&&Nl.set("cover"),z(i[t],"shuffle",t)}else"repeatOnce"===a?("lyric"===c&&Nl.set("cover"),z(i[s],"once",s)):("lyric"===c&&Nl.set("cover"),z(i[s+1]))}),!1),((new Date).getTime()-Number(localStorage.getItem("pauseTimes")))/1e3/60>30?window.audioDOM.src=`https://music.163.com/song/media/outer/url?id=${r.id}.mp3`:window.audioDOM.src=r.url,window.audioDOM.load()}));return[$,w,y,x,b,h,g,v,function(t){st[t?"unshift":"push"]((()=>{$=t,n(0,$)}))},t=>{0===t.detail.navigationType?gi.set(!1):2===t.detail.navigationType?gi.set(!0):gi.set(!1)}]}const ff=document.documentElement,pf=ff.clientWidth;ff.style.fontSize=100*pf/750+"px",localStorage.setItem("fullWidth",pf);return new class extends It{constructor(t){super(),Ot(this,t,df,uf,r,{})}}({target:document.body,props:{name:"world"}})}();




diff --git a/public/build/bundle.js.map b/public/build/bundle.js.map
index 17d55a7bb077c6d659e85821e67dcf7c37a4fa40..387d80c10fd9a6f790541e2f1b75d6d76078a210 100644
--- a/public/build/bundle.js.map
+++ b/public/build/bundle.js.map
@@ -1 +1 @@
-{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/regexparam/dist/regexparam.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/svelte-stack-router/src/types.js","../../node_modules/svelte-stack-router/src/utils.js","../../node_modules/svelte-stack-router/src/transition-functions.js","../../node_modules/svelte-stack-router/src/stack-router.js","../../node_modules/svelte-stack-router/src/StackRouter.svelte","../../node_modules/is-standalone/index.js","../../node_modules/svelte-remixicon/lib/icons/AccountCircleFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ArrowLeftLine.svelte","../../node_modules/svelte-remixicon/lib/icons/ArrowRightSLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Calendar2Fill.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatHeartFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatHeartLine.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatQuoteFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatQuoteLine.svelte","../../node_modules/svelte-remixicon/lib/icons/CheckboxBlankCircleLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Compass3Fill.svelte","../../node_modules/svelte-remixicon/lib/icons/DeleteBinLine.svelte","../../node_modules/svelte-remixicon/lib/icons/DislikeLine.svelte","../../node_modules/svelte-remixicon/lib/icons/GitRepositoryPrivateLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Heart2Fill.svelte","../../node_modules/svelte-remixicon/lib/icons/Heart2Line.svelte","../../node_modules/svelte-remixicon/lib/icons/HeartFill.svelte","../../node_modules/svelte-remixicon/lib/icons/HeartPulseFill.svelte","../../node_modules/svelte-remixicon/lib/icons/HeartPulseLine.svelte","../../node_modules/svelte-remixicon/lib/icons/LinksLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Message2Line.svelte","../../node_modules/svelte-remixicon/lib/icons/PauseFill.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayCircleLine.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayFill.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayListFill.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayListLine.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayMiniLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RadioButtonLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RadioFill.svelte","../../node_modules/svelte-remixicon/lib/icons/RadioLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RefreshLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RepeatOneLine.svelte","../../node_modules/svelte-remixicon/lib/icons/SearchLine.svelte","../../node_modules/svelte-remixicon/lib/icons/ShuffleLine.svelte","../../node_modules/svelte-remixicon/lib/icons/SkipBackFill.svelte","../../node_modules/svelte-remixicon/lib/icons/SkipForwardFill.svelte","../../node_modules/svelte-remixicon/lib/icons/SkipForwardMiniFill.svelte","../../node_modules/svelte-remixicon/lib/icons/SortDesc.svelte","../../node_modules/svelte-remixicon/lib/icons/StarSFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ThumbUpFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ThumbUpLine.svelte","../../node_modules/js-cookie/src/js.cookie.js","../../src/utils/emoji.js","../../src/utils/common.js","../../src/components/base/Button.svelte","../../src/components/base/NavBar.svelte","../../src/components/base/Divider.svelte","../../src/components/base/Input.svelte","../../src/components/base/Progress.svelte","../../src/store/common.js","../../src/components/base/TabBar.svelte","../../src/components/base/Switch.svelte","../../src/components/base/Cell.svelte","../../src/components/base/Radio.svelte","../../src/components/base/Tip.svelte","../../src/components/base/Pagination.svelte","../../src/components/base/Title.svelte","../../src/components/base/Picker.svelte","../../src/store/play.js","../../src/components/Lyric.svelte","../../node_modules/svelte/transition/index.mjs","../../node_modules/svelte-lazy/src/components/Placeholder.svelte","../../node_modules/svelte-lazy/src/index.svelte","../../src/store/user.js","../../src/components/Song.svelte","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/helpers/normalizeHeaderName.js","../../node_modules/axios/lib/core/enhanceError.js","../../node_modules/axios/lib/core/createError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/defaults.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/Cancel.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/index.js","../../src/utils/request.js","../../src/api/song.js","../../src/components/SongList.svelte","../../src/components/Play.svelte","../../src/components/MiniPlay.svelte","../../src/components/Loading.svelte","../../src/api/user.js","../../src/components/TopTitle.svelte","../../src/store/playList.js","../../src/components/Album.svelte","../../src/components/ListGrid.svelte","../../src/components/Singer.svelte","../../src/api/playlist.js","../../src/api/songer.js","../../src/pages/Love.svelte","../../src/pages/Discover.svelte","../../src/pages/Mine.svelte","../../src/pages/Home.svelte","../../src/pages/PlayListDetail.svelte","../../node_modules/crypto-js/core.js","../../node_modules/crypto-js/md5.js","../../node_modules/svelte-qrcode/src/lib/qrcode/index.js","../../node_modules/svelte-qrcode/src/lib/index.svelte","../../src/api/auth.js","../../src/pages/Login.svelte","../../src/pages/TodayListDetail.svelte","../../src/pages/LoveListDetail.svelte","../../src/pages/MyAllPlayList.svelte","../../src/pages/Setting.svelte","../../src/api/others.js","../../src/pages/Search.svelte","../../src/pages/Artist.svelte","../../src/pages/BrSelect.svelte","../../src/pages/MusicComment.svelte","../../src/pages/AllCollectSongers.svelte","../../src/pages/SongerDesc.svelte","../../src/pages/MoreSonger.svelte","../../src/pages/MoreList.svelte","../../src/pages/MoreSong.svelte","../../src/pages/About.svelte","../../src/pages/Version.svelte","../../src/routes.js","../../src/App.svelte","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n    // @ts-ignore\n    for (const k in src)\n        tar[k] = src[k];\n    return tar;\n}\nfunction is_promise(value) {\n    return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n    element.__svelte_meta = {\n        loc: { file, line, column, char }\n    };\n}\nfunction run(fn) {\n    return fn();\n}\nfunction blank_object() {\n    return Object.create(null);\n}\nfunction run_all(fns) {\n    fns.forEach(run);\n}\nfunction is_function(thing) {\n    return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n    return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n    if (!src_url_equal_anchor) {\n        src_url_equal_anchor = document.createElement('a');\n    }\n    src_url_equal_anchor.href = url;\n    return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n    return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n    return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n    if (store != null && typeof store.subscribe !== 'function') {\n        throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n    }\n}\nfunction subscribe(store, ...callbacks) {\n    if (store == null) {\n        return noop;\n    }\n    const unsub = store.subscribe(...callbacks);\n    return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n    let value;\n    subscribe(store, _ => value = _)();\n    return value;\n}\nfunction component_subscribe(component, store, callback) {\n    component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n    if (definition) {\n        const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n        return definition[0](slot_ctx);\n    }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n    return definition[1] && fn\n        ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n        : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n    if (definition[2] && fn) {\n        const lets = definition[2](fn(dirty));\n        if ($$scope.dirty === undefined) {\n            return lets;\n        }\n        if (typeof lets === 'object') {\n            const merged = [];\n            const len = Math.max($$scope.dirty.length, lets.length);\n            for (let i = 0; i < len; i += 1) {\n                merged[i] = $$scope.dirty[i] | lets[i];\n            }\n            return merged;\n        }\n        return $$scope.dirty | lets;\n    }\n    return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n    if (slot_changes) {\n        const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n        slot.p(slot_context, slot_changes);\n    }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n    const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n    update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n    if ($$scope.ctx.length > 32) {\n        const dirty = [];\n        const length = $$scope.ctx.length / 32;\n        for (let i = 0; i < length; i++) {\n            dirty[i] = -1;\n        }\n        return dirty;\n    }\n    return -1;\n}\nfunction exclude_internal_props(props) {\n    const result = {};\n    for (const k in props)\n        if (k[0] !== '$')\n            result[k] = props[k];\n    return result;\n}\nfunction compute_rest_props(props, keys) {\n    const rest = {};\n    keys = new Set(keys);\n    for (const k in props)\n        if (!keys.has(k) && k[0] !== '$')\n            rest[k] = props[k];\n    return rest;\n}\nfunction compute_slots(slots) {\n    const result = {};\n    for (const key in slots) {\n        result[key] = true;\n    }\n    return result;\n}\nfunction once(fn) {\n    let ran = false;\n    return function (...args) {\n        if (ran)\n            return;\n        ran = true;\n        fn.call(this, ...args);\n    };\n}\nfunction null_to_empty(value) {\n    return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n    store.set(value);\n    return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n    return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n    ? () => window.performance.now()\n    : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n    now = fn;\n}\nfunction set_raf(fn) {\n    raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n    tasks.forEach(task => {\n        if (!task.c(now)) {\n            tasks.delete(task);\n            task.f();\n        }\n    });\n    if (tasks.size !== 0)\n        raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n    tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n    let task;\n    if (tasks.size === 0)\n        raf(run_tasks);\n    return {\n        promise: new Promise(fulfill => {\n            tasks.add(task = { c: callback, f: fulfill });\n        }),\n        abort() {\n            tasks.delete(task);\n        }\n    };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n    is_hydrating = true;\n}\nfunction end_hydrating() {\n    is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n    // Return first index of value larger than input value in the range [low, high)\n    while (low < high) {\n        const mid = low + ((high - low) >> 1);\n        if (key(mid) <= value) {\n            low = mid + 1;\n        }\n        else {\n            high = mid;\n        }\n    }\n    return low;\n}\nfunction init_hydrate(target) {\n    if (target.hydrate_init)\n        return;\n    target.hydrate_init = true;\n    // We know that all children have claim_order values since the unclaimed have been detached if target is not <head>\n    let children = target.childNodes;\n    // If target is <head>, there may be children without claim_order\n    if (target.nodeName === 'HEAD') {\n        const myChildren = [];\n        for (let i = 0; i < children.length; i++) {\n            const node = children[i];\n            if (node.claim_order !== undefined) {\n                myChildren.push(node);\n            }\n        }\n        children = myChildren;\n    }\n    /*\n    * Reorder claimed children optimally.\n    * We can reorder claimed children optimally by finding the longest subsequence of\n    * nodes that are already claimed in order and only moving the rest. The longest\n    * subsequence subsequence of nodes that are claimed in order can be found by\n    * computing the longest increasing subsequence of .claim_order values.\n    *\n    * This algorithm is optimal in generating the least amount of reorder operations\n    * possible.\n    *\n    * Proof:\n    * We know that, given a set of reordering operations, the nodes that do not move\n    * always form an increasing subsequence, since they do not move among each other\n    * meaning that they must be already ordered among each other. Thus, the maximal\n    * set of nodes that do not move form a longest increasing subsequence.\n    */\n    // Compute longest increasing subsequence\n    // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n    const m = new Int32Array(children.length + 1);\n    // Predecessor indices + 1\n    const p = new Int32Array(children.length);\n    m[0] = -1;\n    let longest = 0;\n    for (let i = 0; i < children.length; i++) {\n        const current = children[i].claim_order;\n        // Find the largest subsequence length such that it ends in a value less than our current value\n        // upper_bound returns first greater value, so we subtract one\n        // with fast path for when we are on the current longest subsequence\n        const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n        p[i] = m[seqLen] + 1;\n        const newLen = seqLen + 1;\n        // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n        m[newLen] = i;\n        longest = Math.max(newLen, longest);\n    }\n    // The longest increasing subsequence of nodes (initially reversed)\n    const lis = [];\n    // The rest of the nodes, nodes that will be moved\n    const toMove = [];\n    let last = children.length - 1;\n    for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n        lis.push(children[cur - 1]);\n        for (; last >= cur; last--) {\n            toMove.push(children[last]);\n        }\n        last--;\n    }\n    for (; last >= 0; last--) {\n        toMove.push(children[last]);\n    }\n    lis.reverse();\n    // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n    toMove.sort((a, b) => a.claim_order - b.claim_order);\n    // Finally, we move the nodes\n    for (let i = 0, j = 0; i < toMove.length; i++) {\n        while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n            j++;\n        }\n        const anchor = j < lis.length ? lis[j] : null;\n        target.insertBefore(toMove[i], anchor);\n    }\n}\nfunction append(target, node) {\n    target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n    const append_styles_to = get_root_for_style(target);\n    if (!append_styles_to.getElementById(style_sheet_id)) {\n        const style = element('style');\n        style.id = style_sheet_id;\n        style.textContent = styles;\n        append_stylesheet(append_styles_to, style);\n    }\n}\nfunction get_root_for_style(node) {\n    if (!node)\n        return document;\n    const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n    if (root && root.host) {\n        return root;\n    }\n    return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n    const style_element = element('style');\n    append_stylesheet(get_root_for_style(node), style_element);\n    return style_element;\n}\nfunction append_stylesheet(node, style) {\n    append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n    if (is_hydrating) {\n        init_hydrate(target);\n        if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n            target.actual_end_child = target.firstChild;\n        }\n        // Skip nodes of undefined ordering\n        while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n            target.actual_end_child = target.actual_end_child.nextSibling;\n        }\n        if (node !== target.actual_end_child) {\n            // We only insert if the ordering of this node should be modified or the parent node is not target\n            if (node.claim_order !== undefined || node.parentNode !== target) {\n                target.insertBefore(node, target.actual_end_child);\n            }\n        }\n        else {\n            target.actual_end_child = node.nextSibling;\n        }\n    }\n    else if (node.parentNode !== target || node.nextSibling !== null) {\n        target.appendChild(node);\n    }\n}\nfunction insert(target, node, anchor) {\n    target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n    if (is_hydrating && !anchor) {\n        append_hydration(target, node);\n    }\n    else if (node.parentNode !== target || node.nextSibling != anchor) {\n        target.insertBefore(node, anchor || null);\n    }\n}\nfunction detach(node) {\n    node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n    for (let i = 0; i < iterations.length; i += 1) {\n        if (iterations[i])\n            iterations[i].d(detaching);\n    }\n}\nfunction element(name) {\n    return document.createElement(name);\n}\nfunction element_is(name, is) {\n    return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n    const target = {};\n    for (const k in obj) {\n        if (has_prop(obj, k)\n            // @ts-ignore\n            && exclude.indexOf(k) === -1) {\n            // @ts-ignore\n            target[k] = obj[k];\n        }\n    }\n    return target;\n}\nfunction svg_element(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n    return document.createTextNode(data);\n}\nfunction space() {\n    return text(' ');\n}\nfunction empty() {\n    return text('');\n}\nfunction listen(node, event, handler, options) {\n    node.addEventListener(event, handler, options);\n    return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n    return function (event) {\n        event.preventDefault();\n        // @ts-ignore\n        return fn.call(this, event);\n    };\n}\nfunction stop_propagation(fn) {\n    return function (event) {\n        event.stopPropagation();\n        // @ts-ignore\n        return fn.call(this, event);\n    };\n}\nfunction self(fn) {\n    return function (event) {\n        // @ts-ignore\n        if (event.target === this)\n            fn.call(this, event);\n    };\n}\nfunction trusted(fn) {\n    return function (event) {\n        // @ts-ignore\n        if (event.isTrusted)\n            fn.call(this, event);\n    };\n}\nfunction attr(node, attribute, value) {\n    if (value == null)\n        node.removeAttribute(attribute);\n    else if (node.getAttribute(attribute) !== value)\n        node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n    // @ts-ignore\n    const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n    for (const key in attributes) {\n        if (attributes[key] == null) {\n            node.removeAttribute(key);\n        }\n        else if (key === 'style') {\n            node.style.cssText = attributes[key];\n        }\n        else if (key === '__value') {\n            node.value = node[key] = attributes[key];\n        }\n        else if (descriptors[key] && descriptors[key].set) {\n            node[key] = attributes[key];\n        }\n        else {\n            attr(node, key, attributes[key]);\n        }\n    }\n}\nfunction set_svg_attributes(node, attributes) {\n    for (const key in attributes) {\n        attr(node, key, attributes[key]);\n    }\n}\nfunction set_custom_element_data(node, prop, value) {\n    if (prop in node) {\n        node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n    }\n    else {\n        attr(node, prop, value);\n    }\n}\nfunction xlink_attr(node, attribute, value) {\n    node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n    const value = new Set();\n    for (let i = 0; i < group.length; i += 1) {\n        if (group[i].checked)\n            value.add(group[i].__value);\n    }\n    if (!checked) {\n        value.delete(__value);\n    }\n    return Array.from(value);\n}\nfunction to_number(value) {\n    return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n    const array = [];\n    for (let i = 0; i < ranges.length; i += 1) {\n        array.push({ start: ranges.start(i), end: ranges.end(i) });\n    }\n    return array;\n}\nfunction children(element) {\n    return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n    if (nodes.claim_info === undefined) {\n        nodes.claim_info = { last_index: 0, total_claimed: 0 };\n    }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n    // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n    init_claim_info(nodes);\n    const resultNode = (() => {\n        // We first try to find an element after the previous one\n        for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n            const node = nodes[i];\n            if (predicate(node)) {\n                const replacement = processNode(node);\n                if (replacement === undefined) {\n                    nodes.splice(i, 1);\n                }\n                else {\n                    nodes[i] = replacement;\n                }\n                if (!dontUpdateLastIndex) {\n                    nodes.claim_info.last_index = i;\n                }\n                return node;\n            }\n        }\n        // Otherwise, we try to find one before\n        // We iterate in reverse so that we don't go too far back\n        for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n            const node = nodes[i];\n            if (predicate(node)) {\n                const replacement = processNode(node);\n                if (replacement === undefined) {\n                    nodes.splice(i, 1);\n                }\n                else {\n                    nodes[i] = replacement;\n                }\n                if (!dontUpdateLastIndex) {\n                    nodes.claim_info.last_index = i;\n                }\n                else if (replacement === undefined) {\n                    // Since we spliced before the last_index, we decrease it\n                    nodes.claim_info.last_index--;\n                }\n                return node;\n            }\n        }\n        // If we can't find any matching node, we create a new one\n        return createNode();\n    })();\n    resultNode.claim_order = nodes.claim_info.total_claimed;\n    nodes.claim_info.total_claimed += 1;\n    return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n    return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n        const remove = [];\n        for (let j = 0; j < node.attributes.length; j++) {\n            const attribute = node.attributes[j];\n            if (!attributes[attribute.name]) {\n                remove.push(attribute.name);\n            }\n        }\n        remove.forEach(v => node.removeAttribute(v));\n        return undefined;\n    }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n    return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n    return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n    return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n        const dataStr = '' + data;\n        if (node.data.startsWith(dataStr)) {\n            if (node.data.length !== dataStr.length) {\n                return node.splitText(dataStr.length);\n            }\n        }\n        else {\n            node.data = dataStr;\n        }\n    }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n    );\n}\nfunction claim_space(nodes) {\n    return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n    for (let i = start; i < nodes.length; i += 1) {\n        const node = nodes[i];\n        if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n            return i;\n        }\n    }\n    return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n    // find html opening tag\n    const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n    const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n    if (start_index === end_index) {\n        return new HtmlTagHydration();\n    }\n    init_claim_info(nodes);\n    const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n    detach(html_tag_nodes[0]);\n    detach(html_tag_nodes[html_tag_nodes.length - 1]);\n    const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n    for (const n of claimed_nodes) {\n        n.claim_order = nodes.claim_info.total_claimed;\n        nodes.claim_info.total_claimed += 1;\n    }\n    return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n    data = '' + data;\n    if (text.wholeText !== data)\n        text.data = data;\n}\nfunction set_input_value(input, value) {\n    input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n    try {\n        input.type = type;\n    }\n    catch (e) {\n        // do nothing\n    }\n}\nfunction set_style(node, key, value, important) {\n    node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n    for (let i = 0; i < select.options.length; i += 1) {\n        const option = select.options[i];\n        if (option.__value === value) {\n            option.selected = true;\n            return;\n        }\n    }\n    select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n    for (let i = 0; i < select.options.length; i += 1) {\n        const option = select.options[i];\n        option.selected = ~value.indexOf(option.__value);\n    }\n}\nfunction select_value(select) {\n    const selected_option = select.querySelector(':checked') || select.options[0];\n    return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n    return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n    if (crossorigin === undefined) {\n        crossorigin = false;\n        try {\n            if (typeof window !== 'undefined' && window.parent) {\n                void window.parent.document;\n            }\n        }\n        catch (error) {\n            crossorigin = true;\n        }\n    }\n    return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n    const computed_style = getComputedStyle(node);\n    if (computed_style.position === 'static') {\n        node.style.position = 'relative';\n    }\n    const iframe = element('iframe');\n    iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n        'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n    iframe.setAttribute('aria-hidden', 'true');\n    iframe.tabIndex = -1;\n    const crossorigin = is_crossorigin();\n    let unsubscribe;\n    if (crossorigin) {\n        iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n        unsubscribe = listen(window, 'message', (event) => {\n            if (event.source === iframe.contentWindow)\n                fn();\n        });\n    }\n    else {\n        iframe.src = 'about:blank';\n        iframe.onload = () => {\n            unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n        };\n    }\n    append(node, iframe);\n    return () => {\n        if (crossorigin) {\n            unsubscribe();\n        }\n        else if (unsubscribe && iframe.contentWindow) {\n            unsubscribe();\n        }\n        detach(iframe);\n    };\n}\nfunction toggle_class(element, name, toggle) {\n    element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n    const e = document.createEvent('CustomEvent');\n    e.initCustomEvent(type, bubbles, false, detail);\n    return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n    return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n    constructor() {\n        this.e = this.n = null;\n    }\n    c(html) {\n        this.h(html);\n    }\n    m(html, target, anchor = null) {\n        if (!this.e) {\n            this.e = element(target.nodeName);\n            this.t = target;\n            this.c(html);\n        }\n        this.i(anchor);\n    }\n    h(html) {\n        this.e.innerHTML = html;\n        this.n = Array.from(this.e.childNodes);\n    }\n    i(anchor) {\n        for (let i = 0; i < this.n.length; i += 1) {\n            insert(this.t, this.n[i], anchor);\n        }\n    }\n    p(html) {\n        this.d();\n        this.h(html);\n        this.i(this.a);\n    }\n    d() {\n        this.n.forEach(detach);\n    }\n}\nclass HtmlTagHydration extends HtmlTag {\n    constructor(claimed_nodes) {\n        super();\n        this.e = this.n = null;\n        this.l = claimed_nodes;\n    }\n    c(html) {\n        if (this.l) {\n            this.n = this.l;\n        }\n        else {\n            super.c(html);\n        }\n    }\n    i(anchor) {\n        for (let i = 0; i < this.n.length; i += 1) {\n            insert_hydration(this.t, this.n[i], anchor);\n        }\n    }\n}\nfunction attribute_to_object(attributes) {\n    const result = {};\n    for (const attribute of attributes) {\n        result[attribute.name] = attribute.value;\n    }\n    return result;\n}\nfunction get_custom_elements_slots(element) {\n    const result = {};\n    element.childNodes.forEach((node) => {\n        result[node.slot || 'default'] = true;\n    });\n    return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n    let hash = 5381;\n    let i = str.length;\n    while (i--)\n        hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n    return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n    const step = 16.666 / duration;\n    let keyframes = '{\\n';\n    for (let p = 0; p <= 1; p += step) {\n        const t = a + (b - a) * ease(p);\n        keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n    }\n    const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n    const name = `__svelte_${hash(rule)}_${uid}`;\n    const doc = get_root_for_style(node);\n    active_docs.add(doc);\n    const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n    const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n    if (!current_rules[name]) {\n        current_rules[name] = true;\n        stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n    }\n    const animation = node.style.animation || '';\n    node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n    active += 1;\n    return name;\n}\nfunction delete_rule(node, name) {\n    const previous = (node.style.animation || '').split(', ');\n    const next = previous.filter(name\n        ? anim => anim.indexOf(name) < 0 // remove specific animation\n        : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n    );\n    const deleted = previous.length - next.length;\n    if (deleted) {\n        node.style.animation = next.join(', ');\n        active -= deleted;\n        if (!active)\n            clear_rules();\n    }\n}\nfunction clear_rules() {\n    raf(() => {\n        if (active)\n            return;\n        active_docs.forEach(doc => {\n            const stylesheet = doc.__svelte_stylesheet;\n            let i = stylesheet.cssRules.length;\n            while (i--)\n                stylesheet.deleteRule(i);\n            doc.__svelte_rules = {};\n        });\n        active_docs.clear();\n    });\n}\n\nfunction create_animation(node, from, fn, params) {\n    if (!from)\n        return noop;\n    const to = node.getBoundingClientRect();\n    if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n        return noop;\n    const { delay = 0, duration = 300, easing = identity, \n    // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n    start: start_time = now() + delay, \n    // @ts-ignore todo:\n    end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n    let running = true;\n    let started = false;\n    let name;\n    function start() {\n        if (css) {\n            name = create_rule(node, 0, 1, duration, delay, easing, css);\n        }\n        if (!delay) {\n            started = true;\n        }\n    }\n    function stop() {\n        if (css)\n            delete_rule(node, name);\n        running = false;\n    }\n    loop(now => {\n        if (!started && now >= start_time) {\n            started = true;\n        }\n        if (started && now >= end) {\n            tick(1, 0);\n            stop();\n        }\n        if (!running) {\n            return false;\n        }\n        if (started) {\n            const p = now - start_time;\n            const t = 0 + 1 * easing(p / duration);\n            tick(t, 1 - t);\n        }\n        return true;\n    });\n    start();\n    tick(0, 1);\n    return stop;\n}\nfunction fix_position(node) {\n    const style = getComputedStyle(node);\n    if (style.position !== 'absolute' && style.position !== 'fixed') {\n        const { width, height } = style;\n        const a = node.getBoundingClientRect();\n        node.style.position = 'absolute';\n        node.style.width = width;\n        node.style.height = height;\n        add_transform(node, a);\n    }\n}\nfunction add_transform(node, a) {\n    const b = node.getBoundingClientRect();\n    if (a.left !== b.left || a.top !== b.top) {\n        const style = getComputedStyle(node);\n        const transform = style.transform === 'none' ? '' : style.transform;\n        node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n    }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n    current_component = component;\n}\nfunction get_current_component() {\n    if (!current_component)\n        throw new Error('Function called outside component initialization');\n    return current_component;\n}\nfunction beforeUpdate(fn) {\n    get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n    get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n    get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n    get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n    const component = get_current_component();\n    return (type, detail) => {\n        const callbacks = component.$$.callbacks[type];\n        if (callbacks) {\n            // TODO are there situations where events could be dispatched\n            // in a server (non-DOM) environment?\n            const event = custom_event(type, detail);\n            callbacks.slice().forEach(fn => {\n                fn.call(component, event);\n            });\n        }\n    };\n}\nfunction setContext(key, context) {\n    get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n    return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n    return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n    return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n    const callbacks = component.$$.callbacks[event.type];\n    if (callbacks) {\n        // @ts-ignore\n        callbacks.slice().forEach(fn => fn.call(this, event));\n    }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n    if (!update_scheduled) {\n        update_scheduled = true;\n        resolved_promise.then(flush);\n    }\n}\nfunction tick() {\n    schedule_update();\n    return resolved_promise;\n}\nfunction add_render_callback(fn) {\n    render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n    flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n    if (flushing)\n        return;\n    flushing = true;\n    do {\n        // first, call beforeUpdate functions\n        // and update components\n        for (let i = 0; i < dirty_components.length; i += 1) {\n            const component = dirty_components[i];\n            set_current_component(component);\n            update(component.$$);\n        }\n        set_current_component(null);\n        dirty_components.length = 0;\n        while (binding_callbacks.length)\n            binding_callbacks.pop()();\n        // then, once components are updated, call\n        // afterUpdate functions. This may cause\n        // subsequent updates...\n        for (let i = 0; i < render_callbacks.length; i += 1) {\n            const callback = render_callbacks[i];\n            if (!seen_callbacks.has(callback)) {\n                // ...so guard against infinite loops\n                seen_callbacks.add(callback);\n                callback();\n            }\n        }\n        render_callbacks.length = 0;\n    } while (dirty_components.length);\n    while (flush_callbacks.length) {\n        flush_callbacks.pop()();\n    }\n    update_scheduled = false;\n    flushing = false;\n    seen_callbacks.clear();\n}\nfunction update($$) {\n    if ($$.fragment !== null) {\n        $$.update();\n        run_all($$.before_update);\n        const dirty = $$.dirty;\n        $$.dirty = [-1];\n        $$.fragment && $$.fragment.p($$.ctx, dirty);\n        $$.after_update.forEach(add_render_callback);\n    }\n}\n\nlet promise;\nfunction wait() {\n    if (!promise) {\n        promise = Promise.resolve();\n        promise.then(() => {\n            promise = null;\n        });\n    }\n    return promise;\n}\nfunction dispatch(node, direction, kind) {\n    node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n    outros = {\n        r: 0,\n        c: [],\n        p: outros // parent group\n    };\n}\nfunction check_outros() {\n    if (!outros.r) {\n        run_all(outros.c);\n    }\n    outros = outros.p;\n}\nfunction transition_in(block, local) {\n    if (block && block.i) {\n        outroing.delete(block);\n        block.i(local);\n    }\n}\nfunction transition_out(block, local, detach, callback) {\n    if (block && block.o) {\n        if (outroing.has(block))\n            return;\n        outroing.add(block);\n        outros.c.push(() => {\n            outroing.delete(block);\n            if (callback) {\n                if (detach)\n                    block.d(1);\n                callback();\n            }\n        });\n        block.o(local);\n    }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n    let config = fn(node, params);\n    let running = false;\n    let animation_name;\n    let task;\n    let uid = 0;\n    function cleanup() {\n        if (animation_name)\n            delete_rule(node, animation_name);\n    }\n    function go() {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        if (css)\n            animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n        tick(0, 1);\n        const start_time = now() + delay;\n        const end_time = start_time + duration;\n        if (task)\n            task.abort();\n        running = true;\n        add_render_callback(() => dispatch(node, true, 'start'));\n        task = loop(now => {\n            if (running) {\n                if (now >= end_time) {\n                    tick(1, 0);\n                    dispatch(node, true, 'end');\n                    cleanup();\n                    return running = false;\n                }\n                if (now >= start_time) {\n                    const t = easing((now - start_time) / duration);\n                    tick(t, 1 - t);\n                }\n            }\n            return running;\n        });\n    }\n    let started = false;\n    return {\n        start() {\n            if (started)\n                return;\n            started = true;\n            delete_rule(node);\n            if (is_function(config)) {\n                config = config();\n                wait().then(go);\n            }\n            else {\n                go();\n            }\n        },\n        invalidate() {\n            started = false;\n        },\n        end() {\n            if (running) {\n                cleanup();\n                running = false;\n            }\n        }\n    };\n}\nfunction create_out_transition(node, fn, params) {\n    let config = fn(node, params);\n    let running = true;\n    let animation_name;\n    const group = outros;\n    group.r += 1;\n    function go() {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        if (css)\n            animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n        const start_time = now() + delay;\n        const end_time = start_time + duration;\n        add_render_callback(() => dispatch(node, false, 'start'));\n        loop(now => {\n            if (running) {\n                if (now >= end_time) {\n                    tick(0, 1);\n                    dispatch(node, false, 'end');\n                    if (!--group.r) {\n                        // this will result in `end()` being called,\n                        // so we don't need to clean up here\n                        run_all(group.c);\n                    }\n                    return false;\n                }\n                if (now >= start_time) {\n                    const t = easing((now - start_time) / duration);\n                    tick(1 - t, t);\n                }\n            }\n            return running;\n        });\n    }\n    if (is_function(config)) {\n        wait().then(() => {\n            // @ts-ignore\n            config = config();\n            go();\n        });\n    }\n    else {\n        go();\n    }\n    return {\n        end(reset) {\n            if (reset && config.tick) {\n                config.tick(1, 0);\n            }\n            if (running) {\n                if (animation_name)\n                    delete_rule(node, animation_name);\n                running = false;\n            }\n        }\n    };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n    let config = fn(node, params);\n    let t = intro ? 0 : 1;\n    let running_program = null;\n    let pending_program = null;\n    let animation_name = null;\n    function clear_animation() {\n        if (animation_name)\n            delete_rule(node, animation_name);\n    }\n    function init(program, duration) {\n        const d = (program.b - t);\n        duration *= Math.abs(d);\n        return {\n            a: t,\n            b: program.b,\n            d,\n            duration,\n            start: program.start,\n            end: program.start + duration,\n            group: program.group\n        };\n    }\n    function go(b) {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        const program = {\n            start: now() + delay,\n            b\n        };\n        if (!b) {\n            // @ts-ignore todo: improve typings\n            program.group = outros;\n            outros.r += 1;\n        }\n        if (running_program || pending_program) {\n            pending_program = program;\n        }\n        else {\n            // if this is an intro, and there's a delay, we need to do\n            // an initial tick and/or apply CSS animation immediately\n            if (css) {\n                clear_animation();\n                animation_name = create_rule(node, t, b, duration, delay, easing, css);\n            }\n            if (b)\n                tick(0, 1);\n            running_program = init(program, duration);\n            add_render_callback(() => dispatch(node, b, 'start'));\n            loop(now => {\n                if (pending_program && now > pending_program.start) {\n                    running_program = init(pending_program, duration);\n                    pending_program = null;\n                    dispatch(node, running_program.b, 'start');\n                    if (css) {\n                        clear_animation();\n                        animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n                    }\n                }\n                if (running_program) {\n                    if (now >= running_program.end) {\n                        tick(t = running_program.b, 1 - t);\n                        dispatch(node, running_program.b, 'end');\n                        if (!pending_program) {\n                            // we're done\n                            if (running_program.b) {\n                                // intro — we can tidy up immediately\n                                clear_animation();\n                            }\n                            else {\n                                // outro — needs to be coordinated\n                                if (!--running_program.group.r)\n                                    run_all(running_program.group.c);\n                            }\n                        }\n                        running_program = null;\n                    }\n                    else if (now >= running_program.start) {\n                        const p = now - running_program.start;\n                        t = running_program.a + running_program.d * easing(p / running_program.duration);\n                        tick(t, 1 - t);\n                    }\n                }\n                return !!(running_program || pending_program);\n            });\n        }\n    }\n    return {\n        run(b) {\n            if (is_function(config)) {\n                wait().then(() => {\n                    // @ts-ignore\n                    config = config();\n                    go(b);\n                });\n            }\n            else {\n                go(b);\n            }\n        },\n        end() {\n            clear_animation();\n            running_program = pending_program = null;\n        }\n    };\n}\n\nfunction handle_promise(promise, info) {\n    const token = info.token = {};\n    function update(type, index, key, value) {\n        if (info.token !== token)\n            return;\n        info.resolved = value;\n        let child_ctx = info.ctx;\n        if (key !== undefined) {\n            child_ctx = child_ctx.slice();\n            child_ctx[key] = value;\n        }\n        const block = type && (info.current = type)(child_ctx);\n        let needs_flush = false;\n        if (info.block) {\n            if (info.blocks) {\n                info.blocks.forEach((block, i) => {\n                    if (i !== index && block) {\n                        group_outros();\n                        transition_out(block, 1, 1, () => {\n                            if (info.blocks[i] === block) {\n                                info.blocks[i] = null;\n                            }\n                        });\n                        check_outros();\n                    }\n                });\n            }\n            else {\n                info.block.d(1);\n            }\n            block.c();\n            transition_in(block, 1);\n            block.m(info.mount(), info.anchor);\n            needs_flush = true;\n        }\n        info.block = block;\n        if (info.blocks)\n            info.blocks[index] = block;\n        if (needs_flush) {\n            flush();\n        }\n    }\n    if (is_promise(promise)) {\n        const current_component = get_current_component();\n        promise.then(value => {\n            set_current_component(current_component);\n            update(info.then, 1, info.value, value);\n            set_current_component(null);\n        }, error => {\n            set_current_component(current_component);\n            update(info.catch, 2, info.error, error);\n            set_current_component(null);\n            if (!info.hasCatch) {\n                throw error;\n            }\n        });\n        // if we previously had a then/catch block, destroy it\n        if (info.current !== info.pending) {\n            update(info.pending, 0);\n            return true;\n        }\n    }\n    else {\n        if (info.current !== info.then) {\n            update(info.then, 1, info.value, promise);\n            return true;\n        }\n        info.resolved = promise;\n    }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n    const child_ctx = ctx.slice();\n    const { resolved } = info;\n    if (info.current === info.then) {\n        child_ctx[info.value] = resolved;\n    }\n    if (info.current === info.catch) {\n        child_ctx[info.error] = resolved;\n    }\n    info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n    ? window\n    : typeof globalThis !== 'undefined'\n        ? globalThis\n        : global);\n\nfunction destroy_block(block, lookup) {\n    block.d(1);\n    lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n    transition_out(block, 1, 1, () => {\n        lookup.delete(block.key);\n    });\n}\nfunction fix_and_destroy_block(block, lookup) {\n    block.f();\n    destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n    block.f();\n    outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n    let o = old_blocks.length;\n    let n = list.length;\n    let i = o;\n    const old_indexes = {};\n    while (i--)\n        old_indexes[old_blocks[i].key] = i;\n    const new_blocks = [];\n    const new_lookup = new Map();\n    const deltas = new Map();\n    i = n;\n    while (i--) {\n        const child_ctx = get_context(ctx, list, i);\n        const key = get_key(child_ctx);\n        let block = lookup.get(key);\n        if (!block) {\n            block = create_each_block(key, child_ctx);\n            block.c();\n        }\n        else if (dynamic) {\n            block.p(child_ctx, dirty);\n        }\n        new_lookup.set(key, new_blocks[i] = block);\n        if (key in old_indexes)\n            deltas.set(key, Math.abs(i - old_indexes[key]));\n    }\n    const will_move = new Set();\n    const did_move = new Set();\n    function insert(block) {\n        transition_in(block, 1);\n        block.m(node, next);\n        lookup.set(block.key, block);\n        next = block.first;\n        n--;\n    }\n    while (o && n) {\n        const new_block = new_blocks[n - 1];\n        const old_block = old_blocks[o - 1];\n        const new_key = new_block.key;\n        const old_key = old_block.key;\n        if (new_block === old_block) {\n            // do nothing\n            next = new_block.first;\n            o--;\n            n--;\n        }\n        else if (!new_lookup.has(old_key)) {\n            // remove old block\n            destroy(old_block, lookup);\n            o--;\n        }\n        else if (!lookup.has(new_key) || will_move.has(new_key)) {\n            insert(new_block);\n        }\n        else if (did_move.has(old_key)) {\n            o--;\n        }\n        else if (deltas.get(new_key) > deltas.get(old_key)) {\n            did_move.add(new_key);\n            insert(new_block);\n        }\n        else {\n            will_move.add(old_key);\n            o--;\n        }\n    }\n    while (o--) {\n        const old_block = old_blocks[o];\n        if (!new_lookup.has(old_block.key))\n            destroy(old_block, lookup);\n    }\n    while (n)\n        insert(new_blocks[n - 1]);\n    return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n    const keys = new Set();\n    for (let i = 0; i < list.length; i++) {\n        const key = get_key(get_context(ctx, list, i));\n        if (keys.has(key)) {\n            throw new Error('Cannot have duplicate keys in a keyed each');\n        }\n        keys.add(key);\n    }\n}\n\nfunction get_spread_update(levels, updates) {\n    const update = {};\n    const to_null_out = {};\n    const accounted_for = { $$scope: 1 };\n    let i = levels.length;\n    while (i--) {\n        const o = levels[i];\n        const n = updates[i];\n        if (n) {\n            for (const key in o) {\n                if (!(key in n))\n                    to_null_out[key] = 1;\n            }\n            for (const key in n) {\n                if (!accounted_for[key]) {\n                    update[key] = n[key];\n                    accounted_for[key] = 1;\n                }\n            }\n            levels[i] = n;\n        }\n        else {\n            for (const key in o) {\n                accounted_for[key] = 1;\n            }\n        }\n    }\n    for (const key in to_null_out) {\n        if (!(key in update))\n            update[key] = undefined;\n    }\n    return update;\n}\nfunction get_spread_object(spread_props) {\n    return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n    'allowfullscreen',\n    'allowpaymentrequest',\n    'async',\n    'autofocus',\n    'autoplay',\n    'checked',\n    'controls',\n    'default',\n    'defer',\n    'disabled',\n    'formnovalidate',\n    'hidden',\n    'ismap',\n    'loop',\n    'multiple',\n    'muted',\n    'nomodule',\n    'novalidate',\n    'open',\n    'playsinline',\n    'readonly',\n    'required',\n    'reversed',\n    'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n    const attributes = Object.assign({}, ...args);\n    if (classes_to_add) {\n        if (attributes.class == null) {\n            attributes.class = classes_to_add;\n        }\n        else {\n            attributes.class += ' ' + classes_to_add;\n        }\n    }\n    let str = '';\n    Object.keys(attributes).forEach(name => {\n        if (invalid_attribute_name_character.test(name))\n            return;\n        const value = attributes[name];\n        if (value === true)\n            str += ' ' + name;\n        else if (boolean_attributes.has(name.toLowerCase())) {\n            if (value)\n                str += ' ' + name;\n        }\n        else if (value != null) {\n            str += ` ${name}=\"${value}\"`;\n        }\n    });\n    return str;\n}\nconst escaped = {\n    '\"': '&quot;',\n    \"'\": '&#39;',\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;'\n};\nfunction escape(html) {\n    return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n    return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n    const result = {};\n    for (const key in obj) {\n        result[key] = escape_attribute_value(obj[key]);\n    }\n    return result;\n}\nfunction each(items, fn) {\n    let str = '';\n    for (let i = 0; i < items.length; i += 1) {\n        str += fn(items[i], i);\n    }\n    return str;\n}\nconst missing_component = {\n    $$render: () => ''\n};\nfunction validate_component(component, name) {\n    if (!component || !component.$$render) {\n        if (name === 'svelte:component')\n            name += ' this={...}';\n        throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n    }\n    return component;\n}\nfunction debug(file, line, column, values) {\n    console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n    console.log(values); // eslint-disable-line no-console\n    return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n    function $$render(result, props, bindings, slots, context) {\n        const parent_component = current_component;\n        const $$ = {\n            on_destroy,\n            context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n            // these will be immediately discarded\n            on_mount: [],\n            before_update: [],\n            after_update: [],\n            callbacks: blank_object()\n        };\n        set_current_component({ $$ });\n        const html = fn(result, props, bindings, slots);\n        set_current_component(parent_component);\n        return html;\n    }\n    return {\n        render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n            on_destroy = [];\n            const result = { title: '', head: '', css: new Set() };\n            const html = $$render(result, props, {}, $$slots, context);\n            run_all(on_destroy);\n            return {\n                html,\n                css: {\n                    code: Array.from(result.css).map(css => css.code).join('\\n'),\n                    map: null // TODO\n                },\n                head: result.title + result.head\n            };\n        },\n        $$render\n    };\n}\nfunction add_attribute(name, value, boolean) {\n    if (value == null || (boolean && !value))\n        return '';\n    return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n    return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n    const index = component.$$.props[name];\n    if (index !== undefined) {\n        component.$$.bound[index] = callback;\n        callback(component.$$.ctx[index]);\n    }\n}\nfunction create_component(block) {\n    block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n    block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n    const { fragment, on_mount, on_destroy, after_update } = component.$$;\n    fragment && fragment.m(target, anchor);\n    if (!customElement) {\n        // onMount happens before the initial afterUpdate\n        add_render_callback(() => {\n            const new_on_destroy = on_mount.map(run).filter(is_function);\n            if (on_destroy) {\n                on_destroy.push(...new_on_destroy);\n            }\n            else {\n                // Edge case - component was destroyed immediately,\n                // most likely as a result of a binding initialising\n                run_all(new_on_destroy);\n            }\n            component.$$.on_mount = [];\n        });\n    }\n    after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n    const $$ = component.$$;\n    if ($$.fragment !== null) {\n        run_all($$.on_destroy);\n        $$.fragment && $$.fragment.d(detaching);\n        // TODO null out other refs, including component.$$ (but need to\n        // preserve final state?)\n        $$.on_destroy = $$.fragment = null;\n        $$.ctx = [];\n    }\n}\nfunction make_dirty(component, i) {\n    if (component.$$.dirty[0] === -1) {\n        dirty_components.push(component);\n        schedule_update();\n        component.$$.dirty.fill(0);\n    }\n    component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n    const parent_component = current_component;\n    set_current_component(component);\n    const $$ = component.$$ = {\n        fragment: null,\n        ctx: null,\n        // state\n        props,\n        update: noop,\n        not_equal,\n        bound: blank_object(),\n        // lifecycle\n        on_mount: [],\n        on_destroy: [],\n        on_disconnect: [],\n        before_update: [],\n        after_update: [],\n        context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n        // everything else\n        callbacks: blank_object(),\n        dirty,\n        skip_bound: false,\n        root: options.target || parent_component.$$.root\n    };\n    append_styles && append_styles($$.root);\n    let ready = false;\n    $$.ctx = instance\n        ? instance(component, options.props || {}, (i, ret, ...rest) => {\n            const value = rest.length ? rest[0] : ret;\n            if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n                if (!$$.skip_bound && $$.bound[i])\n                    $$.bound[i](value);\n                if (ready)\n                    make_dirty(component, i);\n            }\n            return ret;\n        })\n        : [];\n    $$.update();\n    ready = true;\n    run_all($$.before_update);\n    // `false` as a special case of no DOM component\n    $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n    if (options.target) {\n        if (options.hydrate) {\n            start_hydrating();\n            const nodes = children(options.target);\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.l(nodes);\n            nodes.forEach(detach);\n        }\n        else {\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.c();\n        }\n        if (options.intro)\n            transition_in(component.$$.fragment);\n        mount_component(component, options.target, options.anchor, options.customElement);\n        end_hydrating();\n        flush();\n    }\n    set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n    SvelteElement = class extends HTMLElement {\n        constructor() {\n            super();\n            this.attachShadow({ mode: 'open' });\n        }\n        connectedCallback() {\n            const { on_mount } = this.$$;\n            this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n            // @ts-ignore todo: improve typings\n            for (const key in this.$$.slotted) {\n                // @ts-ignore todo: improve typings\n                this.appendChild(this.$$.slotted[key]);\n            }\n        }\n        attributeChangedCallback(attr, _oldValue, newValue) {\n            this[attr] = newValue;\n        }\n        disconnectedCallback() {\n            run_all(this.$$.on_disconnect);\n        }\n        $destroy() {\n            destroy_component(this, 1);\n            this.$destroy = noop;\n        }\n        $on(type, callback) {\n            // TODO should this delegate to addEventListener?\n            const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n            callbacks.push(callback);\n            return () => {\n                const index = callbacks.indexOf(callback);\n                if (index !== -1)\n                    callbacks.splice(index, 1);\n            };\n        }\n        $set($$props) {\n            if (this.$$set && !is_empty($$props)) {\n                this.$$.skip_bound = true;\n                this.$$set($$props);\n                this.$$.skip_bound = false;\n            }\n        }\n    };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n    $destroy() {\n        destroy_component(this, 1);\n        this.$destroy = noop;\n    }\n    $on(type, callback) {\n        const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n        callbacks.push(callback);\n        return () => {\n            const index = callbacks.indexOf(callback);\n            if (index !== -1)\n                callbacks.splice(index, 1);\n        };\n    }\n    $set($$props) {\n        if (this.$$set && !is_empty($$props)) {\n            this.$$.skip_bound = true;\n            this.$$set($$props);\n            this.$$.skip_bound = false;\n        }\n    }\n}\n\nfunction dispatch_dev(type, detail) {\n    document.dispatchEvent(custom_event(type, Object.assign({ version: '3.43.1' }, detail), true));\n}\nfunction append_dev(target, node) {\n    dispatch_dev('SvelteDOMInsert', { target, node });\n    append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n    dispatch_dev('SvelteDOMInsert', { target, node });\n    append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n    dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n    insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n    dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n    insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n    dispatch_dev('SvelteDOMRemove', { node });\n    detach(node);\n}\nfunction detach_between_dev(before, after) {\n    while (before.nextSibling && before.nextSibling !== after) {\n        detach_dev(before.nextSibling);\n    }\n}\nfunction detach_before_dev(after) {\n    while (after.previousSibling) {\n        detach_dev(after.previousSibling);\n    }\n}\nfunction detach_after_dev(before) {\n    while (before.nextSibling) {\n        detach_dev(before.nextSibling);\n    }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n    const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n    if (has_prevent_default)\n        modifiers.push('preventDefault');\n    if (has_stop_propagation)\n        modifiers.push('stopPropagation');\n    dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n    const dispose = listen(node, event, handler, options);\n    return () => {\n        dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n        dispose();\n    };\n}\nfunction attr_dev(node, attribute, value) {\n    attr(node, attribute, value);\n    if (value == null)\n        dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n    else\n        dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n    node[property] = value;\n    dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n    node.dataset[property] = value;\n    dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n    data = '' + data;\n    if (text.wholeText === data)\n        return;\n    dispatch_dev('SvelteDOMSetData', { node: text, data });\n    text.data = data;\n}\nfunction validate_each_argument(arg) {\n    if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n        let msg = '{#each} only iterates over array-like objects.';\n        if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n            msg += ' You can use a spread to convert this iterable into an array.';\n        }\n        throw new Error(msg);\n    }\n}\nfunction validate_slots(name, slot, keys) {\n    for (const slot_key of Object.keys(slot)) {\n        if (!~keys.indexOf(slot_key)) {\n            console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n        }\n    }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n    constructor(options) {\n        if (!options || (!options.target && !options.$$inline)) {\n            throw new Error(\"'target' is a required option\");\n        }\n        super();\n    }\n    $destroy() {\n        super.$destroy();\n        this.$destroy = () => {\n            console.warn('Component was already destroyed'); // eslint-disable-line no-console\n        };\n    }\n    $capture_state() { }\n    $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n    constructor(options) {\n        super(options);\n    }\n}\nfunction loop_guard(timeout) {\n    const start = Date.now();\n    return () => {\n        if (Date.now() - start > timeout) {\n            throw new Error('Infinite loop detected');\n        }\n    };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","export default function (str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n    return {\n        subscribe: writable(value, start).subscribe\n    };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n    let stop;\n    const subscribers = new Set();\n    function set(new_value) {\n        if (safe_not_equal(value, new_value)) {\n            value = new_value;\n            if (stop) { // store is ready\n                const run_queue = !subscriber_queue.length;\n                for (const subscriber of subscribers) {\n                    subscriber[1]();\n                    subscriber_queue.push(subscriber, value);\n                }\n                if (run_queue) {\n                    for (let i = 0; i < subscriber_queue.length; i += 2) {\n                        subscriber_queue[i][0](subscriber_queue[i + 1]);\n                    }\n                    subscriber_queue.length = 0;\n                }\n            }\n        }\n    }\n    function update(fn) {\n        set(fn(value));\n    }\n    function subscribe(run, invalidate = noop) {\n        const subscriber = [run, invalidate];\n        subscribers.add(subscriber);\n        if (subscribers.size === 1) {\n            stop = start(set) || noop;\n        }\n        run(value);\n        return () => {\n            subscribers.delete(subscriber);\n            if (subscribers.size === 0) {\n                stop();\n                stop = null;\n            }\n        };\n    }\n    return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n    const single = !Array.isArray(stores);\n    const stores_array = single\n        ? [stores]\n        : stores;\n    const auto = fn.length < 2;\n    return readable(initial_value, (set) => {\n        let inited = false;\n        const values = [];\n        let pending = 0;\n        let cleanup = noop;\n        const sync = () => {\n            if (pending) {\n                return;\n            }\n            cleanup();\n            const result = fn(single ? values[0] : values, set);\n            if (auto) {\n                set(result);\n            }\n            else {\n                cleanup = is_function(result) ? result : noop;\n            }\n        };\n        const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n            values[i] = value;\n            pending &= ~(1 << i);\n            if (inited) {\n                sync();\n            }\n        }, () => {\n            pending |= (1 << i);\n        }));\n        inited = true;\n        sync();\n        return function stop() {\n            run_all(unsubscribers);\n            cleanup();\n        };\n    });\n}\n\nexport { derived, readable, writable };\n","export var LoadableEntryAction;\n(function (LoadableEntryAction) {\n    LoadableEntryAction[LoadableEntryAction[\"NoOp\"] = 0] = \"NoOp\";\n    LoadableEntryAction[LoadableEntryAction[\"New\"] = 1] = \"New\";\n    LoadableEntryAction[LoadableEntryAction[\"Resume\"] = 2] = \"Resume\";\n})(LoadableEntryAction || (LoadableEntryAction = {}));\nexport var UnloadableEntryAction;\n(function (UnloadableEntryAction) {\n    UnloadableEntryAction[UnloadableEntryAction[\"NoOp\"] = 0] = \"NoOp\";\n    UnloadableEntryAction[UnloadableEntryAction[\"Destroy\"] = 1] = \"Destroy\";\n    UnloadableEntryAction[UnloadableEntryAction[\"Pause\"] = 2] = \"Pause\";\n})(UnloadableEntryAction || (UnloadableEntryAction = {}));\nexport var NavigationType;\n(function (NavigationType) {\n    NavigationType[NavigationType[\"GoForwardNewState\"] = 0] = \"GoForwardNewState\";\n    NavigationType[NavigationType[\"GoForwardResumeState\"] = 1] = \"GoForwardResumeState\";\n    NavigationType[NavigationType[\"GoBackward\"] = 2] = \"GoBackward\";\n    NavigationType[NavigationType[\"Replace\"] = 3] = \"Replace\";\n})(NavigationType || (NavigationType = {}));\nexport var StackRouterEventType;\n(function (StackRouterEventType) {\n    StackRouterEventType[StackRouterEventType[\"Navigate\"] = 0] = \"Navigate\";\n    StackRouterEventType[StackRouterEventType[\"Mount\"] = 1] = \"Mount\";\n    StackRouterEventType[StackRouterEventType[\"Destroy\"] = 2] = \"Destroy\";\n    StackRouterEventType[StackRouterEventType[\"UpdateConfig\"] = 3] = \"UpdateConfig\";\n})(StackRouterEventType || (StackRouterEventType = {}));\n","export function noop() { }\nexport function animationFrame() {\n    return new Promise((res) => requestAnimationFrame(() => res()));\n}\nexport function sleep(ms) {\n    return new Promise((res) => setTimeout(() => res(), ms));\n}\nexport function dispatchCustomEvent(element, eventName) {\n    element.dispatchEvent(new CustomEvent(eventName, {\n        bubbles: true,\n        cancelable: true,\n    }));\n}\n","/* eslint-disable no-restricted-properties */\nimport { NavigationType } from './types';\nimport { animationFrame, sleep } from './utils';\nfunction makeStyleTag(content) {\n    const styleTag = document.createElement('style');\n    styleTag.innerHTML = content;\n    return styleTag;\n}\nexport function commonTransitionGenerator(duration, styleGenerators) {\n    return async (transitionFunctionData) => {\n        const timestamp = new Date().getTime();\n        const unloadClass = `unload-${timestamp}`;\n        const loadClass = `load-${timestamp}`;\n        const routerClass = `router-${timestamp}`;\n        const { mountPointToUnload, mountPointToLoad, scroll, routerMountPoint, } = transitionFunctionData;\n        mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.classList.add(unloadClass);\n        mountPointToLoad.classList.add(loadClass);\n        routerMountPoint.classList.add(routerClass);\n        const styleNodes = new Array(styleGenerators.length);\n        for (let i = 0; i < styleGenerators.length; i++) {\n            const styleNode = styleGenerators[i](loadClass, unloadClass, routerClass, transitionFunctionData);\n            styleNodes[i] = styleNode;\n            document.head.appendChild(styleNode);\n            await animationFrame();\n            await animationFrame();\n            await animationFrame();\n        }\n        await sleep(duration);\n        window.scrollTo(scroll.x, scroll.y);\n        if (window.getComputedStyle(document.documentElement).scrollBehavior === 'smooth') {\n            // At the moment of writing this comment there is no official/simple way to wait for the\n            // window.scrollTo method to complete the animation\n            // Hack: loop for a maximum of 500ms checking if the scroll position is close enough to the target scroll\n            const threshold = 5;\n            for (let i = 0; i < 50; i++) {\n                if (Math.sqrt(Math.pow(window.scrollX - scroll.x, 2)\n                    + Math.pow(window.scrollY - scroll.y, 2)) < threshold) {\n                    break;\n                }\n                await sleep(10);\n            }\n        }\n        for (const styleNode of styleNodes) {\n            document.head.removeChild(styleNode);\n        }\n        mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.classList.remove(unloadClass);\n        mountPointToLoad.classList.remove(loadClass);\n        routerMountPoint.classList.remove(routerClass);\n    };\n}\nexport function slide(duration) {\n    return commonTransitionGenerator(duration, [\n        (loadClass, unloadClass, routerClass, { navigationType, }) => makeStyleTag(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${loadClass} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${navigationType === NavigationType.GoBackward ? '-' : ''}50%);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),\n        (_1, _2, routerClass, { mountPointToLoad, mountPointToUnload, }) => makeStyleTag(`\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tmin-height: ${Math.max(mountPointToLoad.offsetHeight, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetHeight) || 0)}px;\n\t\t\t\t\tmin-width: ${Math.max(mountPointToLoad.offsetWidth, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetWidth) || 0)}px;\n\t\t\t\t}\n\t\t\t`),\n        (loadClass, unloadClass, _, { navigationType }) => makeStyleTag(`\n\t\t\t\t.${loadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear ${Math.floor(duration / 2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${navigationType === NavigationType.GoBackward ? '' : '-'}50%);\n\t\t\t\t}\n\t\t\t`),\n    ]);\n}\nexport function dive(duration) {\n    return commonTransitionGenerator(duration, [\n        (loadClass, unloadClass, routerClass, { navigationType }) => makeStyleTag(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${loadClass} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${navigationType === NavigationType.GoBackward ? '' : '-'}150px);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tperspective: 1200px;\n\t\t\t\t\tperspective-origin: top center;\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),\n        (_1, _2, routerClass, { mountPointToLoad, mountPointToUnload, }) => makeStyleTag(`\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tmin-height: ${Math.max(mountPointToLoad.offsetHeight, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetHeight) || 0)}px;\n\t\t\t\t\tmin-width: ${Math.max(mountPointToLoad.offsetWidth, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetWidth) || 0)}px;\n\t\t\t\t}\n\t\t\t`),\n        (loadClass, unloadClass, _, { navigationType }) => makeStyleTag(`\n\t\t\t\t.${loadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear ${Math.floor(duration / 2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${navigationType === NavigationType.GoBackward ? '-' : ''}150px);\n\t\t\t\t}\n\t\t\t`),\n    ]);\n}\nexport function noAnimation() {\n    return ({ scroll }) => {\n        window.scrollTo(scroll.x, scroll.y);\n        return Promise.resolve();\n    };\n}\n","import regexparam from 'regexparam';\nimport { tick } from 'svelte';\nimport { noop } from 'svelte/internal';\nimport { derived, writable, get, } from 'svelte/store';\nimport { noAnimation } from './transition-functions';\nimport { NavigationType, LoadableEntryAction, UnloadableEntryAction, StackRouterEventType, } from './types';\nimport { dispatchCustomEvent, sleep } from './utils';\nconst config = {\n    defaultResumable: true,\n    useHash: true,\n    restoreScroll: true,\n    routes: {},\n    mountPoint: null,\n    transitionFn: noAnimation(),\n    dispatch: null,\n};\nconst internalCache = writable([]);\n/** Current component cache readable store */\nexport const cache = derived(internalCache, (x) => x);\n/* LOCATION */\nfunction getLocation() {\n    if (config.useHash) {\n        const hashIndex = window.location.href.indexOf('#/');\n        const location = hashIndex > -1 ? window.location.href.substring(hashIndex + 1) : '/';\n        return location;\n    }\n    const relativeUrl = (window.location.pathname || '/') + window.location.search;\n    return relativeUrl;\n}\n// Used in the `pop` function to prevent a double trigger of the PopStateEvent\nlet ignorePopStateEvent = false;\nconst _location = writable(getLocation(), (set) => {\n    let previousLocation = null;\n    const handlePopState = async () => {\n        if (ignorePopStateEvent) {\n            return;\n        }\n        const newLocation = getLocation();\n        if (previousLocation !== newLocation) {\n            previousLocation = newLocation;\n            set(newLocation);\n        }\n    };\n    window.addEventListener('popstate', handlePopState);\n    return function stop() {\n        window.removeEventListener('popstate', handlePopState);\n    };\n});\n/**\n * Readable store representing the current location\n */\nexport const location = derived(_location, ($_location) => $_location);\n/* PATHNAME */\nfunction getPathname(location) {\n    const queryStringPosition = location.indexOf('?');\n    if (queryStringPosition !== -1) {\n        return location.substring(0, queryStringPosition);\n    }\n    return location;\n}\n/**\n * Readable store that contains the pathname part of the location\n */\nexport const pathname = derived(location, getPathname);\n/* SEARCH */\nfunction getSearch(location) {\n    const queryStringPosition = location.indexOf('?');\n    if (queryStringPosition !== -1) {\n        return location.substring(queryStringPosition);\n    }\n    return '';\n}\n/**\n * Readable store that contains the search part of the location\n */\nexport const search = derived(location, getSearch);\n/* UTILS */\nlet lastHistoryTimestamp;\nasync function waitForHistoryState(callback) {\n    const historyState = window.history.state;\n    callback();\n    // Wait for history.state to pick the current state (without this sleep history.state points to the previous state)\n    // See https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event\n    let limit = 100;\n    while (historyState === window.history.state && limit) {\n        await sleep(2);\n        limit--;\n    }\n    if (historyState === window.history.state) {\n        console.warn('unable to detect history change');\n    }\n}\nfunction buildParams(pathname, routeKey) {\n    const { pattern, keys } = regexparam(routeKey);\n    const matches = pattern.exec(pathname) || [];\n    const params = keys.reduce((params, _, index) => {\n        params[keys[index]] = matches[index + 1] === undefined ? null : decodeURIComponent(matches[index + 1]);\n        return params;\n    }, {});\n    return Object.keys(params).length === 0 ? undefined : params;\n}\n/* EVENT-BASED EXECUTION */\nconst eventQueue = [];\nfunction enqueueEvent(event) {\n    eventQueue.push(event);\n    consumeQueue();\n}\nlet consumingQueue = false;\nasync function consumeQueue() {\n    if (consumingQueue) {\n        return;\n    }\n    consumingQueue = true;\n    while (eventQueue.length > 0) {\n        const item = eventQueue.shift();\n        switch (item.type) {\n            case StackRouterEventType.Navigate:\n                await handleHistoryChange(item.payload);\n                break;\n            case StackRouterEventType.Mount:\n                await mount(item.payload);\n                break;\n            case StackRouterEventType.Destroy:\n                await destroy();\n                break;\n            case StackRouterEventType.UpdateConfig:\n                await updateConfig(item.payload);\n                break;\n            // no default\n        }\n    }\n    consumingQueue = false;\n}\n/* INIT & DESTROY */\nlet locationSubscription = noop;\nexport function handleUpdateConfig(initConfig) {\n    enqueueEvent({\n        type: StackRouterEventType.UpdateConfig,\n        payload: initConfig,\n    });\n}\nfunction updateConfig(initConfig) {\n    const previousUseHash = config.useHash;\n    Object.keys(initConfig)\n        .forEach((key) => {\n        if (initConfig[key] !== undefined) {\n            config[key] = initConfig[key];\n        }\n    });\n    if (previousUseHash !== config.useHash) {\n        const currentLocation = getLocation();\n        if (get(_location) !== currentLocation) {\n            _location.set(currentLocation);\n        }\n    }\n    if ('scrollRestoration' in window.history) {\n        window.history.scrollRestoration = config.restoreScroll ? 'manual' : 'auto';\n    }\n}\nexport function handleStackRouterComponentMount(initConfig) {\n    enqueueEvent({\n        type: StackRouterEventType.Mount,\n        payload: initConfig,\n    });\n}\nfunction mount(initConfig) {\n    updateConfig(initConfig);\n    const firstRun = true;\n    let previousState = null;\n    locationSubscription = location\n        .subscribe(async ($location) => {\n        // Wait for history.state to pick the current state (without this sleep history.state can point to the previous state)\n        // See https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event\n        let currentState = window.history.state;\n        if (!firstRun && currentState !== undefined) {\n            let limit = 100;\n            while (previousState === currentState && limit) {\n                await sleep(2);\n                limit--;\n                currentState = window.history.state;\n            }\n            if (previousState === currentState) {\n                console.warn('unable to detect history change');\n            }\n        }\n        enqueueEvent({\n            type: StackRouterEventType.Navigate,\n            payload: {\n                location: $location,\n                state: currentState,\n            },\n        });\n        previousState = currentState;\n    });\n}\nexport function handleStackRouterComponentDestroy() {\n    enqueueEvent({\n        type: StackRouterEventType.Destroy,\n    });\n}\nasync function destroy() {\n    locationSubscription();\n    const currentCache = get(internalCache);\n    for (const entry of currentCache) {\n        // eslint-disable-next-line no-use-before-define\n        if (entry === activeCacheEntry) {\n            if (entry.entryConfig.onBeforeUnload && entry.entryConfig.onBeforeUnload.length > 0) {\n                for (const callback of entry.entryConfig.onBeforeUnload) {\n                    await callback(true);\n                }\n            }\n            if (entry.entryConfig.resumable && entry.entryConfig.onPause && entry.entryConfig.onPause.length > 0) {\n                for (const callback of entry.entryConfig.onPause) {\n                    await callback(true);\n                }\n            }\n            if (entry.entryConfig.onAfterUnload && entry.entryConfig.onAfterUnload.length > 0) {\n                for (const callback of entry.entryConfig.onAfterUnload) {\n                    await callback(true);\n                }\n            }\n        }\n        entry.componentInstance.$destroy();\n    }\n    // eslint-disable-next-line no-use-before-define\n    activeCacheEntry = null;\n    internalCache.set([]);\n    locationSubscription = noop;\n    config.mountPoint = null;\n    config.dispatch = null;\n}\nlet editableEntryConfig = null;\nasync function prepareCacheEntryToActivate(cache, pathname) {\n    const routeKeys = Object.keys(config.routes);\n    const routeKey = routeKeys.find((routeKey) => {\n        const { pattern } = regexparam(routeKey);\n        return pattern.test(pathname);\n    });\n    if (routeKey === undefined || routeKey === null) {\n        return {\n            message: 'no route found',\n        };\n    }\n    const params = buildParams(pathname, routeKey);\n    const routeDescriptor = typeof config.routes[routeKey] === 'object' ? config.routes[routeKey] : {};\n    // Check guards before updating params\n    const guards = routeDescriptor.guards\n        || (routeDescriptor.guard && [routeDescriptor.guard])\n        || [];\n    for (const guard of guards) {\n        try {\n            if (!await guard(params)) {\n                return {\n                    message: 'access forbidden by guard',\n                    params,\n                };\n            }\n        }\n        catch (err) {\n            return {\n                message: 'guard error',\n                params,\n                err,\n            };\n        }\n    }\n    const resumableEntry = cache.find((s) => s.routeMatch === routeKey);\n    let entry;\n    if (resumableEntry) {\n        editableEntryConfig = resumableEntry.entryConfig;\n        entry = resumableEntry;\n        if (resumableEntry.pathname !== pathname) {\n            resumableEntry.componentInstance.$set({ params });\n            resumableEntry.pathname = pathname;\n        }\n    }\n    else {\n        const mountPoint = document.createElement('div');\n        editableEntryConfig = {\n            resumable: config.defaultResumable,\n        };\n        let component;\n        if (typeof config.routes[routeKey] !== 'object') {\n            component = config.routes[routeKey];\n        }\n        else if (routeDescriptor.component) {\n            component = routeDescriptor.component;\n        }\n        else if (routeDescriptor.componentProvider) {\n            try {\n                const resolved = await routeDescriptor.componentProvider();\n                component = resolved.default || resolved;\n                // Cache the promise result so that it will be available in the future\n                // without having to call the provider again\n                routeDescriptor.component = component;\n            }\n            catch (err) {\n                return {\n                    message: 'unable to get component from provider',\n                    err,\n                };\n            }\n        }\n        else {\n            return {\n                message: 'unable to get a component constructor',\n                err: new Error('unable to get a component constructor'),\n            };\n        }\n        entry = {\n            component,\n            // eslint-disable-next-line new-cap\n            componentInstance: new component({ target: mountPoint, props: { params } }),\n            mountPoint,\n            pathname,\n            routeMatch: routeKey,\n            entryConfig: editableEntryConfig,\n        };\n    }\n    await tick();\n    editableEntryConfig = null;\n    return entry;\n}\nlet activeCacheEntry = null;\nasync function handleHistoryChange(historyItem) {\n    var _a, _b, _c, _d;\n    const currentCache = get(internalCache);\n    const isNewHistoryItem = !historyItem.state;\n    if (isNewHistoryItem) {\n        historyItem.state = {\n            timestamp: new Date().getTime(),\n        };\n        await waitForHistoryState(() => window.history.replaceState(historyItem.state, '', (config.useHash ? '#' : '') + historyItem.location));\n    }\n    const pageToLoadResult = await prepareCacheEntryToActivate(currentCache, getPathname(historyItem.location));\n    if ('message' in pageToLoadResult) {\n        switch (pageToLoadResult.message) {\n            case 'access forbidden by guard':\n                (_a = config.dispatch) === null || _a === void 0 ? void 0 : _a.call(config, 'forbidden', {\n                    ...pageToLoadResult,\n                    location: historyItem.location,\n                });\n                break;\n            default:\n                (_b = config.dispatch) === null || _b === void 0 ? void 0 : _b.call(config, 'error', {\n                    ...pageToLoadResult,\n                    location: historyItem.location,\n                });\n                break;\n        }\n        return;\n    }\n    const pageToLoad = pageToLoadResult;\n    const pageToUnload = activeCacheEntry;\n    const newTopIndexInCurrentStack = currentCache.findIndex((s) => s.routeMatch === pageToLoad.routeMatch);\n    let pageToLoadAction = LoadableEntryAction.NoOp;\n    let pageToUnloadAction = UnloadableEntryAction.NoOp;\n    let navigationType = NavigationType.GoForwardNewState;\n    if (!pageToUnload) {\n        pageToLoadAction = LoadableEntryAction.New;\n    }\n    else {\n        if (pageToUnload.routeMatch !== pageToLoad.routeMatch) {\n            if (newTopIndexInCurrentStack !== -1) {\n                pageToLoadAction = LoadableEntryAction.Resume;\n            }\n            else {\n                pageToLoadAction = LoadableEntryAction.New;\n            }\n            if (pageToUnload.entryConfig.resumable) {\n                pageToUnloadAction = UnloadableEntryAction.Pause;\n            }\n            else {\n                pageToUnloadAction = UnloadableEntryAction.Destroy;\n            }\n        }\n        if (isNewHistoryItem) {\n            navigationType = NavigationType.GoForwardNewState;\n        }\n        else if (historyItem.state.timestamp > lastHistoryTimestamp) {\n            navigationType = NavigationType.GoForwardResumeState;\n        }\n        else if (historyItem.state.timestamp < lastHistoryTimestamp) {\n            navigationType = NavigationType.GoBackward;\n        }\n        else {\n            navigationType = NavigationType.Replace;\n        }\n    }\n    (_c = config.dispatch) === null || _c === void 0 ? void 0 : _c.call(config, 'navigation-start', {\n        location: historyItem.location,\n        navigationType,\n        pageToLoad,\n        pageToUnload,\n        pageToLoadAction,\n        pageToUnloadAction,\n    });\n    // BEFORE TRANSITION\n    async function beforeUnload() {\n        if (pageToUnload\n            && pageToUnloadAction !== UnloadableEntryAction.NoOp\n            && pageToUnload.entryConfig.onBeforeUnload\n            && pageToUnload.entryConfig.onBeforeUnload.length > 0) {\n            for (const callback of pageToUnload.entryConfig.onBeforeUnload) {\n                await callback();\n            }\n        }\n    }\n    async function beforeLoad() {\n        if (pageToLoad\n            && pageToLoadAction !== LoadableEntryAction.NoOp\n            && pageToLoad.entryConfig.onBeforeLoad\n            && pageToLoad.entryConfig.onBeforeLoad.length > 0) {\n            for (const callback of pageToLoad.entryConfig.onBeforeLoad) {\n                await callback();\n            }\n        }\n    }\n    await Promise.all([beforeUnload(), beforeLoad()]);\n    // DURING TRANSITION\n    async function pause() {\n        if (pageToUnload\n            && pageToUnloadAction === UnloadableEntryAction.Pause\n            && pageToUnload.entryConfig.onPause\n            && pageToUnload.entryConfig.onPause.length > 0) {\n            for (const callback of pageToUnload.entryConfig.onPause) {\n                await callback();\n            }\n        }\n    }\n    async function resume() {\n        if (pageToLoad && pageToLoadAction === LoadableEntryAction.Resume) {\n            const { returnValue } = historyItem.state || {};\n            await waitForHistoryState(() => {\n                // Remove returnValue and scroll\n                window.history.replaceState({\n                    timestamp: historyItem.state.timestamp,\n                }, '', (config.useHash ? '#' : '') + historyItem.location);\n            });\n            if (pageToLoad.entryConfig.onResume && pageToLoad.entryConfig.onResume.length > 0) {\n                for (const callback of pageToLoad.entryConfig.onResume) {\n                    await callback(returnValue);\n                }\n            }\n        }\n    }\n    const oldTopMountPoint = pageToUnload ? pageToUnload.mountPoint : null;\n    const newTopMountPoint = pageToLoad.mountPoint;\n    if (oldTopMountPoint !== newTopMountPoint) {\n        async function transition() {\n            if (config.mountPoint) {\n                if (!newTopMountPoint.parentElement) {\n                    config.mountPoint.appendChild(newTopMountPoint);\n                }\n                await config.transitionFn({\n                    navigationType,\n                    routerMountPoint: config.mountPoint,\n                    mountPointToLoad: newTopMountPoint,\n                    mountPointToUnload: oldTopMountPoint,\n                    scroll: historyItem.state.scroll || { x: 0, y: 0 },\n                });\n                if (oldTopMountPoint) {\n                    config.mountPoint.removeChild(oldTopMountPoint);\n                }\n            }\n        }\n        await Promise.all([\n            transition(),\n            pause(),\n            resume(),\n        ]);\n    }\n    // AFTER TRANSITION\n    async function afterLoad() {\n        if (pageToLoad\n            && pageToLoadAction !== LoadableEntryAction.NoOp\n            && pageToLoad.entryConfig.onAfterLoad\n            && pageToLoad.entryConfig.onAfterLoad.length > 0) {\n            for (const callback of pageToLoad.entryConfig.onAfterLoad) {\n                await callback();\n            }\n        }\n    }\n    async function afterUnload() {\n        if (pageToUnload\n            && pageToUnloadAction !== UnloadableEntryAction.NoOp\n            && pageToUnload.entryConfig.onAfterUnload\n            && pageToUnload.entryConfig.onAfterUnload.length > 0) {\n            for (const callback of pageToUnload.entryConfig.onAfterUnload) {\n                await callback();\n            }\n        }\n    }\n    await Promise.all([afterLoad(), afterUnload()]);\n    if (pageToLoadAction === LoadableEntryAction.New) {\n        currentCache.push(pageToLoad);\n    }\n    if (pageToUnload && pageToUnloadAction === UnloadableEntryAction.Destroy) {\n        pageToUnload.componentInstance.$destroy();\n        currentCache.splice(currentCache.indexOf(pageToUnload), 1);\n    }\n    internalCache.set(currentCache);\n    activeCacheEntry = pageToLoad;\n    lastHistoryTimestamp = historyItem.state.timestamp;\n    (_d = config.dispatch) === null || _d === void 0 ? void 0 : _d.call(config, 'navigation-end', {\n        location: historyItem.location,\n        navigationType,\n        pageToLoad,\n        pageToUnload,\n        pageToLoadAction,\n        pageToUnloadAction,\n    });\n}\n/* API FUNCTIONS */\n/**\n * Replaces the current history location and state\n * If the new location equals the current one, this function won't modify the browser history\n * @param location new location\n * @param state new history state\n */\nexport async function replace(location, state) {\n    if (location === getLocation()) {\n        return;\n    }\n    await waitForHistoryState(() => {\n        window.history.replaceState({\n            ...(state || {}),\n            timestamp: lastHistoryTimestamp,\n        }, '', (config.useHash ? '#' : '') + location);\n    });\n    dispatchCustomEvent(window, 'popstate');\n}\n/**\n * Navigates to a new location\n * If scroll restoration is enabled, the current window scroll position is persisted before leaving the current location\n * If the new location equals the current one, this function won't modify the browser history\n * @param location new location\n */\nexport async function push(location) {\n    if (location === getLocation()) {\n        return;\n    }\n    if (config.restoreScroll) {\n        await waitForHistoryState(() => {\n            window.history.replaceState({\n                timestamp: window.history.state ? window.history.state.timestamp : new Date().getTime(),\n                scroll: {\n                    x: window.scrollY,\n                    y: window.scrollY,\n                },\n            }, '', (config.useHash ? '#' : '') + getLocation());\n        });\n    }\n    await waitForHistoryState(() => {\n        window.history.pushState(undefined, '', (config.useHash ? '#' : '') + location);\n    });\n    dispatchCustomEvent(window, 'popstate');\n}\n/**\n * Navigates back\n * @param returnValue a serializable object that will be returned to the component associated with the previous location if resumable\n */\nexport async function pop(returnValue) {\n    ignorePopStateEvent = true;\n    await waitForHistoryState(() => window.history.back());\n    await waitForHistoryState(() => {\n        window.history.replaceState({\n            ...window.history.state || {},\n            returnValue,\n        }, '', (config.useHash ? '#' : '') + getLocation());\n    });\n    ignorePopStateEvent = false;\n    dispatchCustomEvent(window, 'popstate');\n}\n/**\n * Svelte action that can be associated with an HTMLAnchorElement (`<a>`) to automatically prefix '#' when using client side navigation only\n * @param node the HTML anchor tag\n * @param href the href attribute of the anchor tag\n * @returns an object containing the callback Svelte will use to trigger updates\n */\nexport function link(node, href) {\n    if (!node || !node.tagName || node.tagName.toLowerCase() !== 'a') {\n        throw new Error('not a <a> tag');\n    }\n    async function pushState(e) {\n        if (!e.ctrlKey) {\n            e.preventDefault();\n            // for an unknown reason, pushing the state blocks any on:click handler attached in a Svelte file.\n            // This sleep lets the event propagate and schedules the push call after the bubbling has finished\n            await sleep(1);\n            push(config.useHash ? node.getAttribute('href').substring(1) : node.getAttribute('href'));\n        }\n    }\n    node.addEventListener('click', pushState);\n    function hashHref(node, href) {\n        if (!href || href.length < 1 || href.charAt(0) !== '/') {\n            throw new Error(`invalid href ${href}`);\n        }\n        node.setAttribute('href', `${config.useHash ? '#' : ''}${href}`);\n    }\n    hashHref(node, href || node.getAttribute('href'));\n    return {\n        update(href) {\n            hashHref(node, href);\n        },\n    };\n}\n/* COMPONENT LIFECYCLE */\nconst lifecycleErrorText = 'lifecycle functions can only be'\n    + ' called while initializing or before preparing a component to resume (i.e. with a reactive statement on \"params\")';\n/**\n * Attaches a callback to the resume lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is resumed\n */\nexport function onResume(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onResume) {\n        editableEntryConfig.onResume = [];\n    }\n    editableEntryConfig.onResume.push(callback);\n}\n/**\n * Attaches a callback to the pause lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is paused\n */\nexport function onPause(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onPause) {\n        editableEntryConfig.onPause = [];\n    }\n    editableEntryConfig.onPause.push(callback);\n}\n/**\n * Attaches a callback to the before-unload lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is being prepared for unloading\n */\nexport function onBeforeUnload(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onBeforeUnload) {\n        editableEntryConfig.onBeforeUnload = [];\n    }\n    editableEntryConfig.onBeforeUnload.push(callback);\n}\n/**\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component has finished loading\n */\nexport function onAfterLoad(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onAfterLoad) {\n        editableEntryConfig.onAfterLoad = [];\n    }\n    editableEntryConfig.onAfterLoad.push(callback);\n}\n/**\n * Attaches a callback to the after-unload lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component has finished unloading\n */\nexport function onAfterUnload(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onAfterUnload) {\n        editableEntryConfig.onAfterUnload = [];\n    }\n    editableEntryConfig.onAfterUnload.push(callback);\n}\n/**\n * Attaches a callback to the before-load lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is being prepared for loading\n */\nexport function onBeforeLoad(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onBeforeLoad) {\n        editableEntryConfig.onBeforeLoad = [];\n    }\n    editableEntryConfig.onBeforeLoad.push(callback);\n}\n/**\n * Determines whether the component will be paused or destroyed\n * @param resumable whether the component should be paused and resumed or completely destroyed and recreated\n */\nexport function setResumable(resumable) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    editableEntryConfig.resumable = resumable;\n}\n","<script>\n\timport { createEventDispatcher, onDestroy, onMount } from \"svelte\";\n\n\timport {\n\t\thandleStackRouterComponentMount,\n\t\thandleStackRouterComponentDestroy,\n\t\thandleUpdateConfig,\n\t} from \"./stack-router\";\n\timport { dive } from \"./transition-functions.js\";\n\n\t/** @type {boolean} whether or not the default behavior should be to resume or recreate the components */\n\texport let defaultResumable = true;\n\t/** @type {boolean} whether or not to prefix routes with '#' to implement a server-agnostic client side routing (e.g. no need to redirect 404 to index) */\n\texport let useHash = true;\n\t/** @type {boolean} whether or not to restore the scroll position when navigating backwards */\n\texport let restoreScroll = true;\n\t/** @type {import('../dist/types').TransitionFunction} a function that handles the transition between two pages */\n\texport let transitionFn = dive(300);\n\t/** @type {Record.<string, import('../dist/types').SvelteComponentConstructor>} a key-value object associating a route path (e.g. '/a/route/path/:variable1?) to a SvelteComponent constructor */\n\texport let routes;\n\n\tlet dispatch = createEventDispatcher();\n\tlet mountPoint;\n\tonMount(() => {\n\t\thandleStackRouterComponentMount({\n\t\t\tmountPoint,\n\t\t\troutes,\n\t\t\tdefaultResumable,\n\t\t\tuseHash,\n\t\t\trestoreScroll,\n\t\t\ttransitionFn,\n\t\t\tdispatch,\n\t\t});\n\t});\n\tonDestroy(() => {\n\t\thandleStackRouterComponentDestroy();\n\t});\n\n\t$: defaultResumable,\n\t\tuseHash,\n\t\trestoreScroll,\n\t\ttransitionFn,\n\t\troutes,\n\t\thandleUpdateConfig({\n\t\t\troutes,\n\t\t\tdefaultResumable,\n\t\t\tuseHash,\n\t\t\trestoreScroll,\n\t\t\ttransitionFn,\n\t\t});\n</script>\n\n<div class=\"stack-router-mount-point\" bind:this={mountPoint} />\n","(function(global) {\n\n  function isStandalone() {\n    return navigator.standalone || (window.matchMedia('(display-mode: standalone)').matches);\n  }\n\n  if (\n    typeof module !== 'undefined' &&\n    module.exports &&\n    typeof window !== 'undefined'\n  ) {\n    module.exports = isStandalone();\n  } else if (typeof define === 'function' && define.amd) {\n    define([], (global.isStandalone = isStandalone()));\n  } else {\n    global.isStandalone = isStandalone();\n  }\n})(this);\n","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zM6.023 15.416C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M13.172 12l-4.95-4.95 1.414-1.414L16 12l-6.364 6.364-1.414-1.414z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm5.563-4.3l3.359-3.359a2.25 2.25 0 0 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 0 0-3.182 3.182l3.359 3.359z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path fill-rule=\"nonzero\" d=\"M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zm8.018-3.685L8.659 11.34a2.25 2.25 0 0 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zM10.962 8.1l-.447-.688C8.728 8.187 7.5 9.755 7.5 11.505c0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01v-.092c.006-.422.092-1.633 1.454-2.466l.185-.107-.447-.688zm4.553-.688c-1.787.775-3.015 2.343-3.015 4.093 0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01 0-.313-.029-1.762 1.639-2.665z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-9.485 2.412l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093zm5 0l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.5-14.5L10 10l-2.5 6.5L14 14l2.5-6.5zM12 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm2.172 10.23L12 18.654l2.617-2.623-9.645-9.645c-1.294 1.497-1.3 3.735.008 5.237zm15.263-6.866c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636-1.414-1.414 1.59-1.592c1.374-1.576 1.299-3.958-.193-5.453-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-.35-.314-.741-.555-1.155-.723l-2.25-2.25c1.668-.206 3.407.289 4.74 1.484 2.349-2.109 5.979-2.039 8.242.228z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path fill-rule=\"nonzero\" d=\"M6 10v10h13V10H6zm12-2h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-9 3h2v2H7v-2zm0 3h2v2H7v-2zm0 3h2v2H7v-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236C5.515 3 8.093 2.56 10.261 3.44L6.343 7.358l1.414 1.415L12 4.53l-.013-.014.014.013c2.349-2.109 5.979-2.039 8.242.228z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zM5.172 6.172c-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454-1.487-1.49-3.881-1.562-5.453-.186l-4.202 4.203-1.415-1.414 2.825-2.827-.082-.069c-1.575-1.265-3.877-1.157-5.328.295z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.978-1.187-7.084-3.937-9.132-8.5h4.698l.934-1.556 3 5L13.566 13H17v-2h-4.566l-.934 1.556-3-5L6.434 11H2.21C2.074 10.363 2 9.696 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.977-1.186-7.083-3.937-9.131-8.499L1 13v-2h1.21C2.074 10.364 2 9.698 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm0 2c-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 .685.09 1.352.267 2h2.167L8.5 7.556l3 5L12.434 11H17v2h-3.434L11.5 16.444l-3-5L7.566 13H5.108c.79 1.374 1.985 2.668 3.537 3.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M6 5h2v14H6V5zm10 0h2v14h-2V5z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM10.622 8.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M19.376 12.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83zM18 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path fill-rule=\"nonzero\" d=\"M9 8.482v7.036L15.03 12 9 8.482zM7.752 5.44l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-3a5 5 0 1 1 0-10 5 5 0 0 1 0 10z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 10h3V6H4v4h11V8h2v2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm1 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 10V8h-2v2H5V6h14v4h-2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm4 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-17.932a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10V2.068zM11 8h2v8h-2v-6H9V9l2-1z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M7.788 17.444A.5.5 0 0 1 7 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M20 4v12h3l-4 5-4-5h3V4h2zm-8 14v2H3v-2h9zm2-7v2H3v-2h11zm0-7v2H3V4h11z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M2 9h3v12H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm5.293-1.293l6.4-6.4a.5.5 0 0 1 .654-.047l.853.64a1.5 1.5 0 0 1 .553 1.57L14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H8a1 1 0 0 1-1-1V8.414a1 1 0 0 1 .293-.707z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h3.482a1 1 0 0 0 .817-.423L11.752.85a.5.5 0 0 1 .632-.159l1.814.907a2.5 2.5 0 0 1 1.305 2.853L14.6 8zM7 10.588V19h11.16L21 12.104V10h-6.4a2 2 0 0 1-1.938-2.493l.903-3.548a.5.5 0 0 0-.261-.571l-.661-.33-4.71 6.672c-.25.354-.57.644-.933.858zM5 11H3v8h2v-8z\"></path>\n</svg>","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t//     character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","export default {\n  大笑: '86',\n  可爱: '85',\n  憨笑: '359',\n  色: '95',\n  亲亲: '363',\n  惊恐: '96',\n  流泪: '356',\n  亲: '362',\n  呆: '352',\n  哀伤: '342',\n  呲牙: '343',\n  吐舌: '348',\n  撇嘴: '353',\n  怒: '361',\n  奸笑: '341',\n  汗: '97',\n  痛苦: '346',\n  惶恐: '354',\n  生病: '350',\n  口罩: '351',\n  大哭: '357',\n  晕: '355',\n  发怒: '115',\n  开心: '360',\n  鬼脸: '94',\n  皱眉: '87',\n  流感: '358',\n  爱心: '33',\n  心碎: '34',\n  钟情: '303',\n  星星: '309',\n  生气: '314',\n  便便: '89',\n  强: '13',\n  弱: '372',\n  拜: '14',\n  牵手: '379',\n  跳舞: '380',\n  禁止: '374',\n  这边: '262',\n  爱意: '106',\n  示爱: '376',\n  嘴唇: '367',\n  狗: '81',\n  猫: '78',\n  猪: '100',\n  兔子: '459',\n  小鸡: '450',\n  公鸡: '461',\n  幽灵: '116',\n  圣诞: '411',\n  外星: '101',\n  钻石: '52',\n  礼物: '107',\n  男孩: '0',\n  女孩: '1',\n  蛋糕: '337',\n  18: '186',\n  圈: '312',\n  叉: '313',\n  多多大笑: 'dx2',\n  多多耍酷: 'dx3',\n  多多比耶: 'dx4',\n  多多大哭: 'dx5',\n  多多瞌睡: 'dx6',\n  多多难过: 'dx7',\n  多多笑哭: 'dx8',\n  多多可怜: 'dx8',\n  多多无语: 'dx10',\n  多多捂脸: 'dx11',\n  多多亲吻: 'dx12',\n  多多调皮: 'dx13',\n  西西心动: 'dx14',\n  西西发怒: 'dx15',\n  西西惊讶: 'dx16',\n  西西奸笑: 'dx17',\n  西西晕了: 'dx18',\n  西西机智: 'dx19',\n  西西惊吓: 'dx20',\n  西西流汗: 'dx21',\n  西西呕吐: 'dx22',\n  西西再见: 'dx23',\n  西西疑问: 'dx24',\n};\n","import Cookies from 'js-cookie';\nimport Emoji from './emoji';\n\n// 设置MusicU cookie\nexport function setMusicU(key, value) {\n  return Cookies.set(key, value);\n}\n\n// 设置cookie\nexport function setCookies(string) {\n  const cookies = string.split(';;');\n  cookies.map(cookie => {\n    document.cookie = cookie;\n  });\n}\n\n// 获取cookie\nexport function getCookies() {\n  return document.cookie;\n}\n\nexport const fullWidth = () =>\n  localStorage.getItem('fullWidth');\n\n//时间戳转为时间\n//format支持五种格式,'yyyy年MM月dd日'、'yyyyMMdd'、'yyyy-MM-dd'、'yyyy/MM/dd'、'yyyy-MM-dd hh:mm:ss'\nexport function formatTime(time, format = 'yyyy年MM月dd日') {\n  const timer = new Date(time);\n  const Y = timer.getFullYear();\n  const M = timer.getMonth() + 1 < 10 ? '0' + (timer.getMonth() + 1) : timer.getMonth() + 1;\n  const D = timer.getDate() < 10 ? '0' + timer.getDate() : timer.getDate();\n  const h = timer.getHours() < 10 ? '0' + timer.getHours() : timer.getHours();\n  const m = timer.getMinutes() < 10 ? '0' + timer.getMinutes() : timer.getMinutes();\n  const s = timer.getSeconds() < 10 ? '0' + timer.getSeconds() : timer.getSeconds();\n  switch (format) {\n    case 'yyyy年MM月dd日':\n      return `${Y}年${M}月${D}日`;\n    case 'yyyyMMdd':\n      return `${Y}${M}${D}`;\n    case 'yyyy-MM-dd':\n      return `${Y}-${M}-${D}`;\n    case 'yyyy/MM/dd':\n      return `${Y}/${M}/${D}`;\n    case 'yyyy-MM-dd hh:mm:ss':\n      return `${Y}-${M}-${D} ${h}:${m}:${s}`;\n    default:\n      console.log('format参数不对');\n      break;\n  }\n}\n\n/**歌曲详情中歌手数据为数组,此工具转换为字符拼接\n * @param {需要处理的数据数组} Array\n */\nexport function songerListToStr(arr = [], isObj = true) {\n  let songerList = [];\n  if (isObj) {\n    for (let i = 0; i < arr.length; i++) {\n      songerList.push(arr[i].name);\n    }\n    return songerList.join('/');\n  } else {\n    for (let i = 0; i < arr.length; i++) {\n      songerList.push(arr[i]);\n    }\n    return songerList.join('/');\n  }\n}\n\n/**\n * 数字转整数 如 100000 转为10万\n * @param {需要转化的数} num\n * @param {需要保留的小数位数} point\n */\nexport function tranNumber(num, point = 1) {\n  let numStr = parseInt(num).toString();\n  // 万以内直接返回\n  if (numStr.length < 5) {\n    return numStr;\n  }\n  //大于8位数是亿\n  else if (numStr.length > 8) {\n    let decimal = numStr.substring(numStr.length - 8, numStr.length - 8 + point);\n    return parseFloat(parseInt(num / 100000000) + '.' + decimal) + '亿';\n  }\n  //大于6位数是十万 (以10W分割 10W以下全部显示)\n  else if (numStr.length > 4) {\n    let decimal = numStr.substring(numStr.length - 4, numStr.length - 4 + point);\n    return parseFloat(parseInt(num / 10000) + '.' + decimal) + '万';\n  }\n}\n\n/**\n * 让任意对象滚动一定距离的scrollTop\n * @param {滚动的元素} obj\n * @param {滚动的距离} target\n * @param {滚动时间} time\n */\nexport function scrollAnimate(obj, target, time = 500) {\n  clearInterval(obj.timer);\n  let step = (target - obj.scrollTop) / (time / 10);\n  obj.timer = setInterval(function () {\n    step = step > 0 ? Math.ceil(step) : Math.floor(step);\n    obj.scrollTop = obj.scrollTop + step;\n    if (obj.scrollTop >= target || obj.scrollTop + obj.offsetHeight >= obj.scrollHeight) {\n      clearInterval(obj.timer);\n    }\n  }, 10);\n}\n\n/**\n * 让任意对象滚动指定的scrollTop\n * @param {滚动的元素} dom\n * @param {滚动指定的最终scrollTop} position\n */\nexport function scrollSmoothTo(dom, position) {\n  if (!window.requestAnimationFrame) {\n    window.requestAnimationFrame = function (callback, element) {\n      return setTimeout(callback, 17);\n    };\n  }\n  // 当前滚动高度\n  var scrollTop = dom.scrollTop;\n  // 滚动step方法\n  var step = function () {\n    // 距离目标滚动距离\n    var distance = position - scrollTop;\n    // 目标滚动位置\n    scrollTop = scrollTop + distance / 10;\n    if (Math.abs(distance) < 1) {\n      dom.scrollTo(0, position);\n    } else {\n      dom.scrollTo(0, scrollTop);\n      requestAnimationFrame(step);\n    }\n  };\n  step();\n}\n\n//界面toast提示\n/*使用方法 Toast('这是一个弹框',2000)*/\nexport function Toast(msg, duration, callback) {\n  duration = isNaN(duration) ? 1000 : duration;\n  if (localStorage.getItem('isShowToast') === '1') {\n  } else {\n    localStorage.setItem('isShowToast', '1');\n    let m = document.createElement('div');\n    m.innerHTML = msg;\n    m.style.cssText =\n      'max-width:80%;padding:10px;color: rgb(255, 255, 255);text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 14px;';\n    document.body.appendChild(m);\n    setTimeout(function () {\n      const d = 0.5;\n      m.style.transition = 'ttransform ' + d + 's ease-in, opacity ' + d + 's ease-in';\n      m.style.opacity = '0';\n      setTimeout(function () {\n        localStorage.setItem('isShowToast', '0');\n        document.body.removeChild(m);\n        if (typeof callback === 'function') callback();\n      }, d * 1000);\n    }, duration);\n  }\n}\n\n//界面alert提示\n/*使用方法 Alert('这是一个弹框')*/\nexport function Alert(msg, btnText = '我知道了') {\n  let m = document.createElement('div');\n  m.onclick = function () {\n    // m.style.display = \"none\";\n    document.body.removeChild(m);\n  };\n  let strHtml = `<div>${msg}</div><div style='height:36px;width:60%;line-height:36px;color:#fff;margin:20px auto 0px;background:var(--primary-text-color);border-radius: 4px;'>${btnText}</div>`;\n  m.innerHTML = strHtml;\n  m.style.cssText =\n    'width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)';\n  document.body.appendChild(m);\n}\n\n/**\n *\n * @param {string} msg 提示文本\n * @param {function} callback 点击确定后回调\n * @param {function} cancelback 点击取消后回调\n * @param {string} yes 确定文字\n * @param {string} no 取消文字\n */\nexport function Confirm(msg, callback, yes = '确定', no = '取消', cancelback) {\n  let m = document.createElement('div');\n  let strHtml = `<div>${msg}</div><div style='height:36px;line-height:36px;color:#fff;margin:20px auto 0px;display:flex'><div style='flex:1;background:#e2e2e2;color:#666;line-height:36px;border-radius: 4px;margin:0 5px;' id='ConfirmNo'>${no}</div> <div style='margin:0 5px;flex:1;border-radius: 4px;line-height:36px;background:var(--primary-text-color);' id='ConfirmYes'>${yes}</div></div>`;\n  m.innerHTML = strHtml;\n  m.style.cssText =\n    'width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)';\n  document.body.appendChild(m);\n  document.getElementById('ConfirmNo').onclick = function () {\n    document.body.removeChild(m);\n    cancelback();\n  };\n  document.getElementById('ConfirmYes').onclick = function () {\n    document.body.removeChild(m);\n    callback();\n  };\n}\n\n/**\n * 将数组按照指定长度分割\n * @param {Array} array ,传入数组\n * @param {Number} subLength ,分割长度\n * @returns 返回处理后的数组\n */\nexport function cutArray(array, subLength = 150) {\n  let newArr = [];\n  if (array.length <= subLength) {\n    newArr.push(array);\n    return newArr;\n  } else {\n    let index = 0;\n    while (index < array.length) {\n      newArr.push(array.slice(index, (index += subLength)));\n    }\n    return newArr;\n  }\n}\n\n/**\n * 将文本中包含无法显示的 emoji 表情转成图片显示。比如 [吃惊] 之类\n * @param {string} text\n * @returns\n */\nexport function emojiToImg(text) {\n  const regex = /\\[[^\\[\\]]{1,4}\\]/g; //  /\\[.{1,10}\\]/g\n  if (!text.match(regex)) {\n    let fullText = `<span>${text}</span>`;\n    return fullText;\n  } else {\n    let textMatchList = text.match(regex);\n    if (textMatchList.length > 0) {\n      //包含[]表情\n      for (let x = 0; x < textMatchList.length; x++) {\n        if (textMatchList[x].indexOf('][') > -1) {\n          let itemList = textMatchList[x].split('][');\n          for (let t = 0; t < itemList.length; t++) {\n            if (itemList[t].substr(0, 1) !== '[') {\n              itemList[t] = `[${itemList[t]}`;\n            }\n            if (itemList[t].substr(itemList[t].length - 1, 1) !== ']') {\n              itemList[t] = `${itemList[t]}]`;\n            }\n          }\n          textMatchList = itemList;\n        }\n      }\n      for (let p = 0; p < textMatchList.length; p++) {\n        textMatchList[p] = textMatchList[p].substr(1); //删除首字符\n        textMatchList[p] = textMatchList[p].substring(0, textMatchList[p].length - 1); //删除最后末字符\n      }\n      const newtextMatchList = textMatchList;\n      if (newtextMatchList.length > 1) {\n        let newText = text;\n        for (let i = 0; i < newtextMatchList.length; i++) {\n          if (Emoji.hasOwnProperty(newtextMatchList[i])) {\n            newText = newText.replace(\n              new RegExp(`\\\\[${newtextMatchList[i]}\\\\]`, 'g'),\n              `<img style=\"vertical-align:middle;height:18px;width:18px;\" src=\"${emojiToUrl(\n                Emoji[newtextMatchList[i]]\n              )}\"></img>`\n            );\n          } else {\n            newText = text;\n          }\n        }\n        let fullText = `<span>${newText}</span>`;\n        return fullText;\n      } else {\n        if (Emoji.hasOwnProperty(newtextMatchList[0])) {\n          let newText = text.replace(\n            new RegExp(`\\\\[${newtextMatchList[0]}\\\\]`, 'g'),\n            `<img style=\"vertical-align:middle;height:18px;width:18px;\" src=\"${emojiToUrl(\n              Emoji[newtextMatchList[0]]\n            )}\"></img>`\n          );\n          let fullText = `<span>${newText}</span>`;\n          return fullText;\n        } else {\n          let fullText = `<span>${text}</span>`;\n          return fullText;\n        }\n      }\n    } else {\n      let fullText = `<span>${text}</span>`;\n      return fullText;\n    }\n  }\n}\nfunction emojiToUrl(value) {\n  if (value.substring(0, 2) === 'dx') {\n    return `/images/dd_and_xx/${value}.png`;\n  } else {\n    return `https://s1.music.126.net/style/web2/emt/emoji_${value}.png`;\n  }\n}\n\n/**\n * 处理 URL 中的参数\n * @param {string} search,传入的参数\n * @returns 返回处理之后的对象\n */\nexport function parseQuery(search) {\n  let theRequest = new Object();\n  let strs = '';\n  if (search.indexOf('?') != -1) {\n    let str = search.substr(1);\n    strs = str.split('&');\n    for (let i = 0; i < strs.length; i++) {\n      theRequest[strs[i].split('=')[0]] = decodeURIComponent(strs[i].split('=')[1]);\n    }\n  }\n  return theRequest;\n}\n\n/**\n * 封装 ripple 点击效果。传入要产生涟漪效果的 DOM 元素即可\n * @param {dom} dom\n */\nexport function ripple(dom, list = false) {\n  if (list) {\n    for (let t = 0; t < dom.childNodes.length; t++) {\n      dom.childNodes[t].addEventListener('touchstart', createRipple);\n      dom.childNodes[t].addEventListener('touchend', removeRipple);\n    }\n  } else {\n    dom.addEventListener('touchstart', createRipple);\n    dom.addEventListener('touchend', removeRipple);\n  }\n}\nfunction computeRippleStyles(element, event) {\n  const { top, left } = element.getBoundingClientRect();\n  const { clientWidth, clientHeight } = element;\n  const radius = Math.sqrt(clientWidth ** 2 + clientHeight ** 2) / 2;\n  const size = radius * 2;\n  const localX = event.changedTouches[0].clientX - left;\n  const localY = event.changedTouches[0].clientY - top;\n  const centerX = (clientWidth - radius * 2) / 2;\n  const centerY = (clientHeight - radius * 2) / 2;\n  const x = localX - radius;\n  const y = localY - radius;\n  return { x, y, centerX, centerY, size };\n}\nfunction createRipple(event) {\n  const container = this;\n  const { x, y, centerX, centerY, size } = computeRippleStyles(container, event);\n  const ripple = document.createElement('div');\n  ripple.classList.add('my-ripple');\n  ripple.style.opacity = `0`;\n  ripple.style.transform = `translate(${x}px, ${y}px) scale3d(.3, .3, .3)`;\n  ripple.style.width = `${size}px`;\n  ripple.style.height = `${size}px`;\n  // 记录水波的创建时间\n  ripple.dataset.createdAt = String(performance.now());\n  const { position } = window.getComputedStyle(container);\n  container.style.overflow = 'hidden';\n  position === 'static' && (this.style.position = 'relative');\n  container.appendChild(ripple);\n  window.setTimeout(() => {\n    ripple.style.transform = `translate(${centerX}px, ${centerY}px) scale3d(1, 1, 1)`;\n    ripple.style.opacity = `.2`;\n  });\n}\nfunction removeRipple() {\n  const container = this;\n  const ripples = container.querySelectorAll('.my-ripple');\n  if (!ripples.length) {\n    return;\n  }\n  const lastRipple = ripples[ripples.length - 1];\n  // 通过水波的创建时间计算出扩散动画还需要执行多久,确保每一个水波都完整的执行了扩散动画\n  const delay = 300 - performance.now() + Number(lastRipple.dataset.createdAt);\n  setTimeout(() => {\n    lastRipple.style.opacity = `0`;\n    setTimeout(() => lastRipple.parentNode?.removeChild(lastRipple), 300);\n  }, delay);\n}\n\n// 获取操作系统信息\nexport function getOsInfo() {\n  var userAgent = navigator.userAgent.toLowerCase();\n  var os = 'Unknown';\n  var version = 'Unknown';\n  if (userAgent.indexOf('win') > -1) {\n    os = 'Windows';\n    if (userAgent.indexOf('windows nt 5.0') > -1) {\n      version = 'Windows 2000';\n    } else if (userAgent.indexOf('windows nt 5.1') > -1 || userAgent.indexOf('windows nt 5.2') > -1) {\n      version = 'Windows XP';\n    } else if (userAgent.indexOf('windows nt 6.0') > -1) {\n      version = 'Windows Vista';\n    } else if (userAgent.indexOf('windows nt 6.1') > -1 || userAgent.indexOf('windows 7') > -1) {\n      version = 'Windows 7';\n    } else if (userAgent.indexOf('windows nt 6.2') > -1 || userAgent.indexOf('windows 8') > -1) {\n      version = 'Windows 8';\n    } else if (userAgent.indexOf('windows nt 6.3') > -1) {\n      version = 'Windows 8.1';\n    } else if (userAgent.indexOf('windows nt 6.2') > -1 || userAgent.indexOf('windows nt 10.0') > -1) {\n      version = 'Windows 10';\n    } else {\n      version = 'Unknown';\n    }\n  } else if (userAgent.indexOf('iphone') > -1) {\n    os = 'iPhone';\n  } else if (userAgent.indexOf('mac') > -1) {\n    os = 'Mac';\n  } else if (\n    userAgent.indexOf('x11') > -1 ||\n    userAgent.indexOf('unix') > -1 ||\n    userAgent.indexOf('sunname') > -1 ||\n    userAgent.indexOf('bsd') > -1\n  ) {\n    os = 'Unix';\n  } else if (userAgent.indexOf('linux') > -1) {\n    if (userAgent.indexOf('android') > -1) {\n      os = 'Android';\n    } else {\n      os = 'Linux';\n    }\n  } else {\n    os = 'Unknown';\n  }\n  return { os, version };\n}\n\n//浏览器与版本号\nexport function getUserAgentInfo() {\n  var userAgent = navigator.userAgent;\n  var version;\n  if (/opera/i.test(userAgent) || /OPR/i.test(userAgent)) {\n    version = getVersion(userAgent, 'OPR/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'opera', version };\n  } else if (/compatible/i.test(userAgent) && /MSIE/i.test(userAgent)) {\n    version = getVersion(userAgent, 'MSIE (\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'ie', version };\n  } else if (/Edge/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Edge/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'edge', version };\n  } else if (/Firefox/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Firefox/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'firefox', version };\n  } else if (/Safari/i.test(userAgent) && !/Chrome/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Safari/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'safari', version };\n  } else if (/Chrome/i.test(userAgent) && /Safari/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Chrome/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'chrome', version };\n  } else if (!!window.ActiveXObject || 'ActiveXObject' in window) {\n    version = 11;\n    return { browser: 'ie', version };\n  }\n}\n//版本号\nfunction getVersion(userAgent, reg) {\n  var reBrowser = new RegExp(reg);\n  reBrowser.test(userAgent);\n  return parseFloat(RegExp['$1']);\n}\n\n//处理时间,将传入的时间(秒),转换为时分秒格式。\n// times(number)\nexport function timeToMinute(times) {\n  var result = '00:00';\n  var hour, minute, second;\n  if (times > 0) {\n    hour = Math.floor(times / 3600);\n    if (hour < 10) {\n      hour = '0' + hour;\n    }\n    minute = Math.floor((times - 3600 * hour) / 60);\n    if (minute < 10) {\n      minute = '0' + minute;\n    }\n    second = Math.floor((times - 3600 * hour - 60 * minute) % 60);\n    if (second < 10) {\n      second = '0' + second;\n    }\n    if (hour == '00') {\n      result = minute + ':' + second;\n    } else if (minute == '00') {\n      // result = hour + \":\" + minute + \":\" + second;\n      result = minute + ':' + second;\n    } else {\n      result = second;\n    }\n  }\n  return result;\n}\n","<script>\n  import { onMount } from 'svelte';\n  import { createEventDispatcher } from 'svelte';\n\n  import { ripple } from '../../utils/common';\n\n  export let type = 'default'; //primary\n  const dispatch = createEventDispatcher();\n  function setClick() {\n    dispatch('BtnClick');\n  }\n\n  let btnDom;\n\n  onMount(() => {\n    if (btnDom) {\n      ripple(btnDom);\n    }\n  });\n</script>\n\n<button\n  on:click={setClick}\n  class=\"botton\"\n  class:default={type === 'default'}\n  class:primary={type === 'primary'}\n  bind:this={btnDom}\n>\n  <slot />\n</button>\n\n<style>\n  .botton {\n    text-align: center;\n    align-items: center;\n    width: 100%;\n    margin: auto;\n    height: 46px;\n    line-height: 46px;\n    background: var(--primary-text-color);\n    color: #fff;\n    border-radius: 6px;\n    border: none;\n    font-size: 16px;\n    font-weight: bold;\n  }\n  .default {\n    background: var(--secondary-background-color);\n    color: var(--primary-text-color);\n  }\n  .primary {\n    background: var(--primary-text-color);\n    color: #fff;\n  }\n</style>\n","<script>\n  import { pop } from 'svelte-stack-router';\n  import { createEventDispatcher, onMount, afterUpdate } from 'svelte';\n  import { ArrowLeftLine } from 'svelte-remixicon';\n\n  import { ripple } from '../../utils/common';\n\n  export let title = 'Title';\n  export let leftEvent = false;\n  export let transparent = false;\n  export let fixed = true;\n  export let alphaNumber = 1;\n  export let dark = false;\n  export let rightIcons = [];\n  export let isRefresh = false; //是否刷新中\n\n  let leftDom;\n  let rightDoms;\n\n  onMount(() => {\n    if (leftDom) ripple(leftDom);\n    if (rightDoms) {\n      ripple(rightDoms);\n    }\n    return () => {\n      rightDoms = null;\n    };\n  });\n\n  afterUpdate(() => {\n    if (rightDoms) {\n      ripple(rightDoms, true);\n    }\n  });\n\n  const dispatch = createEventDispatcher();\n\n  function setLeftClick() {\n    dispatch('setLeftClick');\n  }\n  function iconClick(id) {\n    dispatch('setRightIconClick', { id });\n  }\n</script>\n\n<div\n  class=\"nav secondary\"\n  style=\"background-color:rgba(255, 255, 255, {transparent ? alphaNumber : 1})\"\n  class:transparent\n  class:fixed={transparent ? true : fixed}\n>\n  <div\n    bind:this={leftDom}\n    class=\"left\"\n    style=\"color:rgba({transparent ? 255 * (1 - alphaNumber) : 0}, {transparent\n      ? 255 * (1 - alphaNumber)\n      : 0}, {transparent ? 255 * (1 - alphaNumber) : 0}, 1)\"\n    class:transparent\n    on:click={() => {\n      if (leftEvent) {\n        setLeftClick();\n      } else {\n        pop();\n      }\n    }}\n  >\n    <ArrowLeftLine size=\"22\" style=\"vertical-align: middle\" />\n  </div>\n  <div\n    class=\"center\"\n    class:dark\n    style=\"color:rgba({transparent ? 255 * (1 - alphaNumber) : 0}, {transparent\n      ? 255 * (1 - alphaNumber)\n      : 0}, {transparent ? 255 * (1 - alphaNumber) : 0}, 1)\"\n  >\n    {title}\n  </div>\n  <div class=\"right\" bind:this={rightDoms}>\n    {#if rightIcons.length > 0}\n      {#each rightIcons as rightIcon}\n        <div class=\"right-item\" on:click={() => iconClick(rightIcon.id)}>\n          <span class:rotate-icon={rightIcon.id === 'RefreshLine' && isRefresh}>\n            <svelte:component this={rightIcon.icon} size=\"22\" style=\"vertical-align: middle\" />\n          </span>\n        </div>\n      {/each}\n    {/if}\n  </div>\n</div>\n\n<style>\n  .rotate-icon {\n    display: inline-block;\n    -webkit-animation: myRotate 2s linear infinite;\n    animation: myRotate 2s linear infinite;\n  }\n  @keyframes myRotate {\n    0% {\n      transform: rotate(0deg);\n    }\n    50% {\n      transform: rotate(180deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  .dark {\n    color: #fff;\n  }\n  .transparent {\n    background-color: transparent;\n  }\n  .fixed {\n    position: fixed;\n    top: 0;\n  }\n  .nav {\n    width: 100%;\n    text-align: center;\n    align-items: center;\n    display: flex;\n    height: 50px;\n    font-size: 16px;\n    line-height: 50px;\n    z-index: 99;\n    background-color: #fff;\n  }\n  .left {\n    height: 50px;\n    line-height: 50px;\n    flex: 1;\n  }\n  .center {\n    line-height: 50px;\n    text-align: left;\n    flex: 5;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n  }\n  .right {\n    flex: 1;\n    display: flex;\n    justify-content: space-between;\n  }\n  .right-item {\n    flex: 1;\n    height: 50px;\n    line-height: 50px;\n    padding: 0 10px;\n  }\n</style>\n","<div class=\"diveder\" />\n\n<style>\n  .diveder {\n    margin: 5px auto;\n    height: 1px;\n    background-color: rgba(197, 197, 197, 0.3);\n  }\n</style>\n","<script>\n  import { onMount, createEventDispatcher } from 'svelte';\n\n  export let label = 'label';\n  export let type = 'text';\n  export let maxlength = 15;\n  export let placeholder = null;\n  export let value = '';\n  export let rightBtn = false;\n  export let btnText = '获取验证码';\n  $: defatltPlaceholder = '请输入' + label;\n  let inputDom;\n\n  const dispatch = createEventDispatcher();\n\n  onMount(() => {\n    setTimeout(function () {\n      inputDom.scrollIntoView(true);\n      inputDom.scrollIntoViewIfNeeded();\n    }, 300);\n    inputDom.type = type;\n  });\n  function setInput() {\n    dispatch('setInput', {\n      value,\n    });\n  }\n  function btnClick() {\n    dispatch('setBtn');\n  }\n</script>\n\n<div class=\"box\">\n  <div class=\"label\">{label}</div>\n  <input\n    bind:value\n    bind:this={inputDom}\n    {maxlength}\n    on:input={setInput}\n    placeholder={placeholder ? placeholder : defatltPlaceholder}\n    style=\"width:{rightBtn ? '75%' : '100%'}\"\n  />\n  {#if rightBtn}\n    <span class=\"right-btn\" on:click={btnClick}>{btnText}</span>\n  {/if}\n</div>\n\n<style>\n  .right-btn {\n    font-size: 10px;\n    border-radius: 4px;\n    border: 1px solid rgb(182, 182, 182);\n    line-height: 24px;\n    padding: 0 4px;\n    float: right;\n  }\n  .box {\n    width: 80%;\n    margin: auto;\n    padding: 14px;\n    overflow: hidden;\n  }\n  .label {\n    font-size: 14px;\n    margin-bottom: 6px;\n    color: rgb(139, 139, 139);\n  }\n  input {\n    padding: 0;\n    box-shadow: none;\n    outline: none;\n    -webkit-appearance: none;\n    border-radius: 0;\n    font-size: 18px;\n    line-height: 24px;\n    border-top: none;\n    border-left: none;\n    border-right: none;\n    width: 100%;\n    background: none;\n    border-bottom: 1px solid var(--secondary-dark-text-color);\n  }\n  input::-webkit-input-placeholder {\n    font-size: 16px;\n  }\n  input:focus {\n    box-shadow: none;\n    outline: none;\n    -webkit-appearance: none;\n    border-radius: 0;\n    border-bottom: 1px solid var(--primary-text-color);\n  }\n</style>\n","<script>\n  import { onMount, afterUpdate, createEventDispatcher } from 'svelte';\n\n  export let min = 0;\n  export let max = 100;\n  export let step = 1;\n  export let current = 0;\n  export let timeCurrent = 0;\n  let currentLong = 0;\n  let slider;\n  let scale = 0;\n  let movePoint = 20;\n\n  const dispatch = createEventDispatcher();\n\n  onMount(() => {\n    scale = slider.clientWidth / (max / step);\n  });\n  afterUpdate(() => {\n    currentLong = current;\n  });\n  function setCurrent() {\n    dispatch('setCurrent', {\n      current,\n    });\n  }\n  function setTimeCurrent() {\n    dispatch('setTimeCurrent', {\n      timeCurrent,\n    });\n  }\n  function handleClick(e) {\n    const distance = e.clientX - slider.getBoundingClientRect().left;\n    const value = Math.round(distance / scale) * step;\n    current = currentLong = value;\n    setCurrent();\n  }\n  function touchStart(e) {\n    movePoint = e.changedTouches[0].clientX;\n  }\n  function touchEnd(e) {\n    movePoint = e.changedTouches[0].clientX;\n    if (movePoint <= 20) {\n      current = timeCurrent = currentLong = min;\n    } else if (movePoint >= 355) {\n      current = timeCurrent = currentLong = max;\n    } else {\n      current = timeCurrent = currentLong = ((movePoint - 20) / 335) * 100;\n    }\n    setCurrent();\n    setTimeCurrent();\n  }\n  function touchMove(e) {\n    movePoint = e.changedTouches[0].clientX;\n    if (movePoint <= 20) {\n      timeCurrent = currentLong = min;\n    } else if (movePoint >= 355) {\n      timeCurrent = currentLong = max;\n    } else {\n      timeCurrent = currentLong = ((movePoint - 20) / 335) * 100;\n    }\n    setTimeCurrent();\n  }\n</script>\n\n<div\n  bind:this={slider}\n  class=\"slider\"\n  on:click={handleClick}\n  on:touchstart={touchStart}\n  on:touchmove={touchMove}\n  on:touchend={touchEnd}\n>\n  <div class=\"rail\">\n    <div class=\"ball\" style=\"left:calc({(currentLong / max) * 100}% - 7px)\" />\n    <div class=\"fill\" style=\"transform:scaleX({currentLong / max})\" />\n  </div>\n</div>\n\n<style>\n  .slider {\n    position: relative;\n    width: 100%;\n    height: 20px;\n    display: flex;\n    align-items: center;\n  }\n  .rail {\n    width: 100%;\n    height: 4px;\n    overflow: hidden;\n    border-radius: 2px;\n    background: rgba(255, 255, 255, 0.4);\n  }\n  .fill {\n    width: 100%;\n    height: 4px;\n    border-radius: 2px;\n    background: #fff;\n    transform: scaleX(0);\n    transform-origin: left;\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n  }\n  .ball {\n    width: 14px;\n    height: 14px;\n    border-radius: 10px;\n    background: #fff;\n    position: absolute;\n    top: calc(50% - 7px);\n  }\n</style>\n","import { writable } from 'svelte/store';\n\n//是否展示底部TabBar\n// export const isShowTabBarStore = writable(false);\n\n//是否Loading\nexport const isLoadingStore = writable(false);\n\n//用户是否登录\nexport const isLoginStore = writable(JSON.parse(localStorage.getItem('isLogin')) ? true : false);\n//当前是否是Home页面,为了处理首页三个页面不频繁加载\nexport const isHomePageStore = writable(true);\n//路由变化是否刷新页面\nexport const defaultResumableStore = writable(false);\n//主页active\nexport const tabbarActive = writable('1');\n//自动滚动\nexport const restoreScrollStore = writable(localStorage.getItem('restoreScroll') === '0' ? false : true);\n//音质\nexport const musicQualityStore = writable(\n  localStorage.getItem('musicQuality') ? localStorage.getItem('musicQuality') : '0'\n);\n//是否显示歌词翻译\nexport const isShowTranslateStore = writable(localStorage.getItem('isShowTranslate') === '0' ? false : true);\n//当前歌手详情 id,用于刷新歌手详情页\nexport const currentDetailSongerIdStore = writable(0);\n//解决歌手全部歌曲不返回歌曲封面问题\nexport const coverImgUrlStore = writable('');\n//是否显示热评入口\nexport const isShowCommentStore = writable(localStorage.getItem('isShowComment') === '0' ? '0' : '1');\n\nexport const defaultCover = `/images/defaultCover.png`;","<script>\n  import { onMount } from 'svelte';\n  import { ThumbUpFill, Compass3Fill, AccountCircleFill } from 'svelte-remixicon';\n\n  import { ripple } from '../../utils/common';\n  import { isHomePageStore, tabbarActive } from '../../store/common';\n\n  const navDatas = [\n    {\n      icon: ThumbUpFill,\n      text: '推荐',\n      path: '/love',\n    },\n    {\n      icon: Compass3Fill,\n      text: '发现',\n      path: '/discover',\n    },\n    {\n      icon: AccountCircleFill,\n      text: '我的',\n      path: '/mine',\n    },\n  ];\n  let tabDoms = [];\n  onMount(() => {\n    if (tabDoms.length > 0) {\n      for (let r = 0; r < tabDoms.length; r++) {\n        ripple(tabDoms[r]);\n      }\n    }\n  });\n</script>\n\n<div class=\"secondary nav\" style=\"bottom: {$isHomePageStore ? '0px' : 'calc(-55px - env(safe-area-inset-bottom))'};\">\n  {#each navDatas as navData, i}\n    <div\n      class=\"nav-item\"\n      class:active={$tabbarActive === i}\n      on:click={() => {\n        tabbarActive.set(i);\n      }}\n      bind:this={tabDoms[i]}\n    >\n      <div>\n        <svelte:component this={navData.icon} size=\"24px\" />\n      </div>\n      <div class=\"nav-text\">{navData.text}</div>\n    </div>\n  {/each}\n</div>\n\n<style>\n  .nav {\n    z-index: 599;\n    border-top: 1px solid rgba(197, 197, 197, 0.4);\n    width: 100%;\n    height: 55px;\n    position: fixed;\n    bottom: 0px;\n    display: flex;\n    text-align: center;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n    transition: all 0.4s ease-in-out;\n    -webkit-transition: all 0.4s ease-in-out;\n  }\n  .nav-item {\n    display: block;\n    font-size: 12.8px;\n    padding: 6.4px 0 9.6px;\n    flex: 1;\n  }\n  .nav-text {\n    margin-top: 3.2px;\n  }\n  .active {\n    color: var(--primary-text-color);\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from 'svelte';\n\n  export let check = false;\n  const dispatch = createEventDispatcher();\n  function setChange() {\n    dispatch('switchClick', {\n      check: !check,\n    });\n  }\n</script>\n\n<div\n  class=\"box\"\n  on:click={setChange}\n  style=\"background-color:{check ? 'var(--primary-text-color)' : 'rgb(177, 177, 177)'}\"\n>\n  <div class=\"ball\" style=\"left: {check ? '25px' : '1px'};\" />\n</div>\n\n<style>\n  .box {\n    display: inline-block;\n    width: 46px;\n    height: 22px;\n    background-color: rgb(177, 177, 177);\n    position: relative;\n    border-radius: 11px;\n    transition: all 0.3s ease;\n    -webkit-transition: all 0.3s ease;\n  }\n  .ball {\n    width: 20px;\n    height: 20px;\n    border-radius: 10px;\n    background-color: #fff;\n    position: absolute;\n    top: 1px;\n    left: 1px;\n    transition: all 0.3s ease;\n    -webkit-transition: all 0.3s ease;\n  }\n</style>\n","<script>\n  import { createEventDispatcher, onMount } from 'svelte';\n  import { ArrowRightSLine } from 'svelte-remixicon';\n  import { ripple } from '../../utils/common';\n\n  import Switch from './Switch.svelte';\n\n  let cellDom;\n  export let title = '标题';\n  export let titleDesc = '';\n  export let arrow = false;\n  export let desc = '';\n  export let cellCheck = false;\n\n  const dispatch = createEventDispatcher();\n\n  onMount(() => {\n    if (cellDom) {\n      ripple(cellDom);\n    }\n  });\n  function cellClick() {\n    if (desc === 'Switch') {\n      cellCheck = !cellCheck;\n      dispatch('cellClick', {\n        cellCheck,\n      });\n    } else {\n      dispatch('cellClick');\n    }\n  }\n</script>\n\n<div class=\"cell\" on:click={cellClick} bind:this={cellDom}>\n  <div class=\"title\">\n    <div class=\"title-main\">{title}</div>\n    {#if titleDesc != ''}\n      <div class=\"title-des\">{titleDesc}</div>\n    {/if}\n  </div>\n  <div class=\"desc\">\n    <div class=\"desc-title\">\n      {#if desc === 'Switch'}\n        <div class=\"switch\" style=\"margin-top: {titleDesc === '' ? '2px' : '8.5px'};\">\n          <Switch check={cellCheck} />\n        </div>\n      {:else}\n        {desc}\n      {/if}\n    </div>\n  </div>\n  {#if arrow}\n    <div class=\"arrow\" style=\"line-height: {titleDesc === '' ? '26px' : '39px'};\">\n      <span style=\"position: relative; top: -1px;\">\n        <ArrowRightSLine size=\"20\" style=\"vertical-align: middle;\" />\n      </span>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .cell {\n    background-color: #fff;\n    font-size: 16px;\n    padding: 13px 10px;\n    border-radius: 8px;\n    display: flex;\n    margin: 10px auto;\n  }\n  .title {\n    flex: auto;\n  }\n  .title-main {\n    height: 26px;\n    line-height: 26px;\n  }\n  .title-des {\n    font-size: 10px;\n    color: #999;\n  }\n  .desc {\n    height: 26px;\n    flex: auto;\n    display: table;\n  }\n  .desc-title {\n    vertical-align: middle;\n    display: table-cell;\n    text-align: right;\n    color: #666;\n    margin: 2px auto;\n  }\n  .switch {\n    margin-top: 2px;\n    height: 22px;\n  }\n  .arrow {\n    height: 26px;\n    line-height: 26px;\n    width: 20px;\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from \"svelte\";\n  import { CheckboxBlankCircleLine, RadioButtonLine } from \"svelte-remixicon\";\n\n  export let radioData = [];\n  export let active = 0;\n\n  const dispatch = createEventDispatcher();\n\n  function selectFun(index) {\n    active = index;\n    dispatch(\"RadioClick\", { active });\n  }\n</script>\n\n<div class=\"box\">\n  {#each radioData as item, i}\n    <div class=\"item\" on:click={() => selectFun(i)}>\n      <div class=\"left\">\n        {#if active === i}\n          <RadioButtonLine size=\"20\" color=\"var(--primary-text-color)\" style=\"vertical-align: middle;\" />\n        {:else}\n          <CheckboxBlankCircleLine size=\"20\" color=\"rgb(214, 214, 214)\" style=\"vertical-align: middle;\" />\n        {/if}\n      </div>\n      <div class=\"text\">\n        {item.text}\n        <div class=\"desc\">{item.desc}</div>\n      </div>\n    </div>\n  {/each}\n</div>\n\n<style>\n  .box {\n    background-color: #fff;\n    font-size: 16px;\n    border-radius: 8px;\n    padding: 20px 10px 1px;\n    margin: 20px auto;\n  }\n  .item {\n    margin-bottom: 20px;\n    display: flex;\n  }\n  .left {\n    width: 20px;\n    height: 20px;\n    margin-right: 10px;\n  }\n  .text {\n    line-height: 20px;\n  }\n  .desc {\n    font-size: 10px;\n    color: #b8b8b8;\n  }\n</style>\n","<script>\n  export let tipTextList = \"\";\n</script>\n\n<div>\n  {#each tipTextList as tipText}\n    <div class=\"tip\">{tipText}</div>\n  {/each}\n</div>\n\n<style>\n  .tip {\n    font-size: 12px;\n    color: rgb(141, 141, 141);\n    text-align: justify;\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from 'svelte';\n\n  export let bottomHeight = 0; //距离底部的距离临界值开始刷新\n  export let items = [];\n  export let paginationHeight = 0;\n  export let hasMore = true;\n  export let grid = 1;\n  let paginationDom;\n  let paginationBoxDom;\n\n  // 加载更多触发器 默认隐藏\n  const dispatch = createEventDispatcher();\n\n  // 加载更多触发器 事件\n  let loadData = function () {\n    if (!items || items.length == 0) return;\n    // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离\n    const scrollTop = paginationBoxDom.scrollTop;\n    //变量windowHeight是可视区的高度\n    const windowHeight = document.documentElement.clientHeight || document.body.clientHeight;\n    //变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)\n    const scrollHeight = paginationDom.scrollHeight;\n    // 滚动条到底部;\n    if (scrollTop + windowHeight + bottomHeight >= scrollHeight) {\n      dispatch('load');\n    }\n  };\n  //防抖\n  function debounce(fn, delay) {\n    let timer = null;\n    return function () {\n      if (timer) {\n        clearTimeout(timer);\n      }\n      timer = setTimeout(() => {\n        //模拟触发change事件\n        fn.apply(this, arguments);\n        // 清空计时器\n        timer = null;\n      }, delay);\n    };\n  }\n  // 节流\n  function throttle(fn, delay = 50) {\n    let timer = null;\n    return function () {\n      if (timer) {\n        return;\n      }\n      timer = setTimeout(() => {\n        fn.apply(this, arguments);\n        timer = null;\n      }, delay);\n    };\n  }\n</script>\n\n<!-- 加载更多触发器 - end -->\n<div\n  class=\"pagination-box\"\n  style=\"height:{paginationHeight}px\"\n  on:scroll={throttle(debounce(loadData, 500))}\n  bind:this={paginationBoxDom}\n>\n  <div bind:this={paginationDom}>\n    {#if items.length > 0}\n      {#if grid > 1}\n        <div class=\"grid-box\" style=\"grid-template-columns: repeat({grid}, {300 / grid}px);\">\n          {#each items as item, index}\n            <slot {item} {index} />\n          {/each}\n        </div>\n      {:else}\n        {#each items as item, index}\n          <slot {item} {index} />\n        {/each}\n      {/if}\n    {/if}\n  </div>\n  {#if hasMore}\n    <div class=\"no-more\">\n      <div>\n        <embed width=\"40\" height=\"40\" src=\"/images/Ripple.svg\" type=\"image/svg+xml\" />\n      </div>\n      <span class=\"no-more-text\">😤 别急啊,在加载了...</span>\n    </div>\n  {:else}\n    <div class=\"no-more no-more-text\">😤 别滑了,到底啦!</div>\n  {/if}\n</div>\n\n<style>\n  .pagination-box {\n    overflow-y: auto;\n    padding-top: 10px;\n  }\n  .pagination-box:global(::-webkit-scrollbar) {\n    width: 0 !important;\n  }\n  .no-more {\n    margin: 20px;\n    text-align: center;\n  }\n  .no-more-text {\n    color: #888;\n  }\n  .grid-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(1, 300px);\n  }\n</style>\n","<script>\n  import { createEventDispatcher, onMount, afterUpdate } from 'svelte';\n  import { ArrowRightSLine } from 'svelte-remixicon';\n\n  import { ripple } from '../../utils/common';\n\n  export let title = 'Title';\n  export let isShowRight = false;\n  export let iconText = '更多';\n  let titleDom;\n  const dispatch = createEventDispatcher();\n  function setTitleClick() {\n    dispatch('TitleClick');\n  }\n\n  onMount(() => {\n    if (titleDom) ripple(titleDom);\n  });\n</script>\n\n<div class=\"title\" on:click={setTitleClick} bind:this={titleDom}>\n  <div>{title}</div>\n  {#if isShowRight}\n    <div class=\"title-right\">\n      {iconText}\n      <span class=\"title-icon\">\n        <ArrowRightSLine size=\"24\" style=\"vertical-align: middle;\" />\n      </span>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .title-right {\n    line-height: 24px;\n    border-radius: 10px;\n    font-size: 14px;\n    color: #666;\n    height: 24px;\n    text-align: center;\n    margin-right: 20px;\n  }\n  .title {\n    text-align: left;\n    margin-left: 20px;\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 10px;\n    margin-top: 20px;\n    display: flex;\n    justify-content: space-between;\n  }\n  .title-icon {\n    position: relative;\n    top: -2px;\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from \"svelte\";\n\n  import Divider from \"./Divider.svelte\";\n\n  export let list = [];\n  export let title = \"请选择\";\n  export let isShow = false;\n\n  const dispatch = createEventDispatcher();\n\n  function liClickFun(index, item) {\n    dispatch(\"PickerClick\", {\n      index,\n      item,\n    });\n  }\n  function changeShowFun() {\n    isShow = false;\n    dispatch(\"ChangeShow\", {\n      isShow,\n    });\n  }\n</script>\n\n<div class=\"pick-mask\" on:click={changeShowFun} style=\"display: {isShow ? 'block' : 'none'};\">\n  <div class=\"pick\" style=\"bottom:{isShow ? '0px' : '-350px'}\">\n    <div class=\"btn\">\n      <!-- <div class=\"btn-item btn-left\">取消</div> -->\n      <div class=\"btn-item btn-center\">{title}</div>\n      <!-- <div class=\"btn-item btn-right\">确定</div> -->\n    </div>\n    <Divider />\n    <div class=\"roller\">\n      {#each list as l, i}\n        <div class=\"li\" on:click={() => liClickFun(i, l)}>{l.name}</div>\n      {/each}\n    </div>\n  </div>\n</div>\n\n<style>\n  .pick-mask {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 2000;\n    width: 100vw;\n    height: 100vh;\n    background-color: rgba(0, 0, 0, 0.5);\n  }\n  .pick {\n    font-size: 16px;\n    position: fixed;\n    bottom: 0px;\n    z-index: 2001;\n    background-color: #fff;\n    max-height: 250px;\n    width: 100%;\n    padding-bottom: 20px;\n  }\n  .btn {\n    height: 39px;\n    line-height: 39px;\n    display: flex;\n  }\n  .btn-item {\n    flex: 1;\n    padding: 10px;\n    color: var(--primary-text-color);\n  }\n  .btn-center {\n    text-align: center;\n    color: #777;\n  }\n\n  .roller {\n    overflow-y: scroll;\n    max-height: 200px;\n    width: 100%;\n    padding: 10px;\n    display: flex;\n    flex-wrap: wrap;\n  }\n  .li {\n    background-color: #eeeeee;\n    line-height: 24px;\n    font-size: 12px;\n    margin: 4px 8px 4px 0;\n    padding: 4px 8px;\n    border-radius: 4px;\n  }\n</style>\n","import { writable } from 'svelte/store';\nimport { defaultCover } from '../store/common';\n\n//播放器播放与暂停状态。true/false\nexport const playStatusStore = writable(false);\n//播放器是否显示最大化。true/false\nexport const playIsMaxStore = writable(false);\n//底部是否显示播放控制条,首次打开无歌曲播放时不显示。true/false\nexport const playIsMinStore = writable(true);\n//当前播放歌曲信息\nexport const currentSongStore = writable(\n  JSON.parse(localStorage.getItem('currentSong'))\n    ? JSON.parse(localStorage.getItem('currentSong'))\n    : {\n      name: '简易云音乐',\n      al: {\n        picUrl: defaultCover,\n      },\n      url: 'https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3',\n      ar: [{ name: '简易云音乐' }],\n    }\n);\n//下一曲播放歌曲信息\nexport const nextSongStore = writable({});\n//当前播放歌曲在播放列表位置\nexport const currentSongIndexStore = writable(0);\n//正在播放的播放列表\nexport const currentPlayListStore = writable([\n  JSON.parse(localStorage.getItem('currentSong'))\n    ? JSON.parse(localStorage.getItem('currentSong'))\n    : {\n      name: '简易云音乐',\n      al: {\n        picUrl: defaultCover,\n      },\n      url: 'https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3',\n      ar: [{ name: '简易云音乐' }],\n    },\n]);\n//是否在加载歌曲\nexport const isLoadingSongStore = writable(false);\n//全屏播放器顶部距离页面顶部的距离\nexport const maxPlayToTopStore = writable('100%');\n\n//是否正在私人FM播放\nexport const isFMPlayStore = writable(localStorage.getItem('isFMPlay') === '1' ? true : false);\n//私人FM当前播放\nexport const FMPlayStore = writable(\n  JSON.parse(localStorage.getItem('FMPlay')) ? JSON.parse(localStorage.getItem('FMPlay')) : {}\n);\n//私人FM下一首播放\nexport const FMPlayNextStore = writable({});\n//播放时间\nexport const currentTimeStore = writable('');\n//当前歌曲歌词\nexport const currentLyricStore = writable(\n  JSON.parse(localStorage.getItem('currentLyric'))\n    ? JSON.parse(localStorage.getItem('currentLyric'))\n    : {\n      songId: '',\n      lyric: '',\n      tlyric: '',\n    }\n);\n//播放器主要区域显示的内容,cover--歌曲封面;list--播放列表;lyric--歌词\nexport const mainCoverTypeStore = writable('cover');\n//播放模式,repeat--列表循环,repeatOnce--单曲循环,shuffle--随机,heart--心动模式\nexport const playRepeatModelStore = writable('repeat');\n//当前歌曲码率\nexport const currentSongQualityStore = writable(128000);\n","<script>\n  import { onMount } from 'svelte';\n\n  import { currentTimeStore, currentLyricStore } from '../store/play';\n  import { isShowTranslateStore } from '../store/common';\n\n  import { scrollSmoothTo } from '../utils/common';\n\n  export let maxHeight = '';\n\n  $: lyric = $currentLyricStore.lyric;\n  $: tlyric = $isShowTranslateStore ? $currentLyricStore.tlyric : '';\n  $: lyricArr = [];\n  $: tlyricArr = [];\n  $: lyricArrStartAndEnd = [];\n  $: currentIndex = 0;\n  $: itemHeightList = [];\n  let boxDom;\n  let scrollTimer = null;\n  $: isBlue = true;\n\n  onMount(() => {\n    //监听歌词滚动事件\n    lyricArr = formatLyric(lyric);\n    //去除开始的作者\n    if (tlyric.slice(1, 3) === 'by') {\n      tlyric = tlyric.slice(tlyric.indexOf('\\n') + 1);\n    }\n    //处理有些翻译竟然没时间标注!!\n    if (tlyric.slice(0, 1) !== '[') {\n      tlyric = '';\n    }\n    //处理有些歌词翻译竟然只有时间没内容,如《追光者》《匆匆那年》,翻译你妹呢!\n    let textArr = tlyric.split('\\n');\n    let isAllNull = false;\n    for (let t = 0; t < textArr.length; t++) {\n      if (textArr[t].substring(textArr[t].length - 1) != ']') {\n        isAllNull = false;\n      } else {\n        isAllNull = true;\n      }\n    }\n    if (isAllNull) tlyric = '';\n    if (tlyric.trim() !== '') tlyricArr = formatLyric(tlyric);\n    if (tlyric.trim() !== '') {\n      if (lyricArr[0].time !== 0) {\n        lyricArr.unshift({ time: 0, text: '• • •' });\n      }\n      if (tlyricArr[0].time !== 0) {\n        tlyricArr.unshift({ time: 0, text: '• • •' });\n      }\n      for (let e = 0; e < lyricArr.length; e++) {\n        for (let r = 0; r < tlyricArr.length; r++) {\n          if (lyricArr[e].time === tlyricArr[r].time) lyricArr[e].text_t = tlyricArr[r].text;\n          if (lyricArr[e].text_t === undefined) lyricArr[e].text_t = '• • •';\n        }\n      }\n      lyricArrStartAndEnd = lyricArr.length > 0 ? timeAdd(lyricArr) : [];\n      for (let r = 0; r < lyricArr.length; r++) {\n        itemHeightList.push(\n          40 + textSize('28px', lyricArr[r].text).height + textSize('16px', lyricArr[r].text_t).height\n        );\n      }\n    } else {\n      lyricArrStartAndEnd = lyricArr.length > 0 ? timeAdd(lyricArr) : [];\n      for (let r = 0; r < lyricArrStartAndEnd.length; r++) {\n        itemHeightList.push(textSize('28px', lyricArrStartAndEnd[r].text).height + 40);\n      }\n    }\n    autoScrollFun();\n  });\n  //自动滚动\n  function autoScrollFun() {\n    scrollTimer = setInterval(() => {\n      if (boxDom) {\n        for (let y = 0; y < lyricArrStartAndEnd.length - 1; y++) {\n          if (Math.ceil($currentTimeStore) >= lyricArrStartAndEnd[lyricArrStartAndEnd.length - 1].start) {\n            currentIndex = lyricArrStartAndEnd.length - 1;\n            boxDom.scrollTop = boxDom.scrollHeight - boxDom.clientHeight;\n          }\n          if (\n            Math.ceil($currentTimeStore) >= lyricArrStartAndEnd[y].start &&\n            Math.ceil($currentTimeStore) < lyricArrStartAndEnd[y].end\n          ) {\n            currentIndex = y;\n            boxDom.scrollIntoView({\n              block: 'start',\n              behavior: 'smooth',\n            });\n            if (currentIndex === 0) {\n              if ('scrollBehavior' in boxDom.style) {\n                boxDom.scrollTop = 0;\n              } else {\n                scrollSmoothTo(boxDom, 0);\n              }\n            } else {\n              if ('scrollBehavior' in boxDom.style) {\n                boxDom.scrollTop = sum(itemHeightList.slice(0, currentIndex - 1));\n              } else {\n                scrollSmoothTo(boxDom, sum(itemHeightList.slice(0, currentIndex - 1)));\n              }\n            }\n          }\n        }\n      }\n    }, 1000);\n  }\n  function sum(arr) {\n    if (Array.isArray(arr)) {\n      var arrSum = 0;\n      for (var i = 0; i < arr.length; i++) {\n        arrSum += arr[i];\n      }\n      return arrSum;\n    }\n  }\n  //传入初始歌词文本text\n  function formatLyric(text) {\n    //去除开始的作者\n    if (text.slice(1, 3) === 'by') {\n      text = text.slice(text.indexOf('\\n') + 1);\n    }\n    let lyricNew = [];\n    let arr = text.split('\\n'); //原歌词文本已经换好行了方便很多,我们直接通过换行符“\\n”进行切割\n    let row = arr.length; //获取歌词行数\n    for (let i = 0; i < row; i++) {\n      let temp_row = arr[i]; //现在每一行格式大概就是这样\"[00:04.302][02:10.00]hello world\";\n      let temp_arr = temp_row.split(']'); //我们可以通过“]”对时间和文本进行分离\n      let text = temp_arr.pop(); //把歌词文本从数组中剔除出来,获取到歌词文本了!\n      //再对剩下的歌词时间进行处理\n      temp_arr.forEach(element => {\n        let obj = {};\n        let time_arr = element.substr(1, element.length - 1).split(':'); //先把多余的“[”去掉,再分离出分、秒\n        let s = Math.ceil(time_arr[0]) * 60 + Math.ceil(time_arr[1]); //把时间转换成与currentTime相同的类型,方便待会实现滚动效果\n        obj.time = s > 0 ? s - 1 : s; //歌词转换成整秒之后会有延迟,提前一秒\n        obj.text = text.trim(); //去除前后空格,不然计算高度有问题\n        lyricNew.push(obj); //每一行歌词对象存到组件的lyric歌词属性里\n      });\n    }\n    if (lyricNew.length === 1) {\n      lyricNew = [\n        {\n          time: 0,\n          text: lyricNew[0].text,\n        },\n        {\n          time: 0,\n          text: lyricNew[0].text,\n        },\n      ];\n    }\n    if (lyricNew === []) return [];\n    for (let u = 0; u < lyricNew.length; u++) {\n      if (lyricNew[u].text === '') lyricNew[u].text = '• • •';\n    }\n    if (lyricNew.length > 0) {\n      if (lyricNew[0].time > 5) {\n        lyricNew.splice(0, 0, { time: 0, text: '• • •' });\n      }\n    }\n    for (let i = lyricNew.length - 1; i > 0; i--) {\n      if (lyricNew[i].time - lyricNew[i - 1].time < 2 && lyricNew[i - 1].text === '• • •') {\n        lyricNew.splice(i - 1, 1);\n      }\n    }\n    for (let d = lyricNew.length - 1; d > 0; d--) {\n      if (lyricNew[d - 1].time === lyricNew[d].time) {\n        lyricNew[d - 1].text = lyricNew[d - 1].text + ' ' + lyricNew[d].text;\n        lyricNew.splice(d, 1);\n      }\n    }\n    // 开头,两条时间都是一样的情况,合并为一条\n    if (lyricNew.length > 1 && lyricNew[0].time === lyricNew[1].time) {\n      lyricNew[0].text = lyricNew[0].text + ' ' + lyricNew[1].text;\n      lyricNew.splice(1, 1);\n    }\n    //去除某些歌词结尾是• • •的情况\n    for (let q = 0; q < lyricNew.length; q++) {\n      if (lyricNew[q].text.substring(lyricNew[q].text.length - 5) === '• • •' && lyricNew[q].text != '• • •') {\n        lyricNew[q].text = lyricNew[q].text.substr(0, lyricNew[q].text.length - 5);\n      }\n    }\n    lyricNew.sort(sortRule); //由于不同时间的相同歌词我们给排到一起了,所以这里要以时间顺序重新排列一下\n    return lyricNew.length === 0 ? [{ time: 0, text: '暂无歌词或歌词无效', start: 0, end: 20 }] : lyricNew;\n  }\n  function timeAdd(arr) {\n    for (let t = 0; t < arr.length - 1; t++) {\n      arr[t].start = arr[t].time;\n      arr[t].end = arr[t + 1].time;\n    }\n    arr[arr.length - 1].start = arr[arr.length - 1].time;\n    return arr;\n  }\n  function sortRule(a, b) {\n    //设置一下排序规则\n    return a.time - b.time;\n  }\n  function textSize(fontSize, text) {\n    let div = document.createElement('div');\n    let result = {};\n    result.width = div.offsetWidth;\n    result.height = div.offsetHeight;\n    div.style.visibility = 'hidden';\n    div.style.fontSize = fontSize;\n    // div.style.fontFamily =\n    //   '\"PingFang SC\", \"Lantinghei SC\", \"Microsoft YaHei\", \"HanHei SC\",\"Helvetica Neue\", \"Open Sans\", Arial, \"Hiragino Sans GB\", \"微软雅黑\",STHeiti, \"WenQuanYi Micro Hei\", SimSun, sans-serif';\n    div.style.padding = '20px';\n    div.style.wordWrap = 'break-word';\n    div.style.fontWeight = 'bold';\n    div.style.textAlign = 'justify';\n    document.body.appendChild(div);\n    if (typeof div.textContent != 'undefined') {\n      div.textContent = text;\n    } else {\n      div.innerText = text;\n    }\n    result.width = parseFloat(window.getComputedStyle(div).width) - result.width;\n    result.height = parseFloat(window.getComputedStyle(div).height) - result.height;\n    div.style.display = 'none';\n    return result;\n  }\n  function touchStart(e) {\n    isBlue = false;\n    if (scrollTimer) clearInterval(scrollTimer);\n    scrollTimer = null;\n  }\n  function touchMove(e) {}\n  function touchEnd(e) {\n    isBlue = true;\n    if (scrollTimer) clearInterval(scrollTimer);\n    scrollTimer = null;\n    autoScrollFun();\n  }\n  //iOS平滑滚动\n  function myScrollTo(dom, position, timeout) {\n    let scrollTop = dom.scrollTop;\n    let direction = position - scrollTop > 0 ? 1 : -1;\n    let distance = Math.abs(position - scrollTop);\n    let split = distance / 50;\n    let _timeout;\n    if (position !== scrollTop) {\n      timeout = timeout || 1000;\n      split *= direction;\n\n      _timeout = setInterval(function () {\n        if (!isBlue) {\n          if (_timeout) clearInterval(_timeout);\n          _timeout = null;\n        }\n        scrollTop += split;\n        distance -= Math.abs(split);\n        if (0 >= distance) {\n          dom.scrollTo(0, position);\n          clearInterval(_timeout);\n          _timeout = null;\n        } else {\n          dom.scrollTo(0, scrollTop);\n        }\n      }, timeout / 100);\n    }\n  }\n</script>\n\n<div class=\"xbox\">\n  <div\n    class=\"box\"\n    style=\"max-height:{maxHeight}\"\n    bind:this={boxDom}\n    on:touchstart={touchStart}\n    on:touchend={touchEnd}\n    on:touchmove={touchMove}\n  >\n    {#each lyricArr as lyric, i}\n      <div\n        class=\"ly\"\n        class:active={i === currentIndex}\n        style=\"filter: {isBlue && i !== currentIndex\n          ? `blur(${Math.abs(i - currentIndex) < 7 ? Math.abs(i - currentIndex) * 1 : 0}px)`\n          : 'none'};\n      -webkit-filter: {isBlue && i !== currentIndex\n          ? `blur(${Math.abs(i - currentIndex) < 7 ? Math.abs(i - currentIndex) * 1 : 0}px)`\n          : 'none'};\n      \"\n      >\n        <div>{lyric.text}</div>\n        {#if tlyric.trim() !== ''}\n          <div class=\"t-text\">{lyric.text_t}</div>\n        {/if}\n      </div>\n    {/each}\n  </div>\n</div>\n\n<style>\n  .box {\n    overflow-y: scroll;\n    scroll-behavior: smooth;\n    -webkit-overflow-scrolling: auto;\n  }\n  .ly {\n    word-wrap: break-word;\n    font-size: 28px;\n    font-weight: bold;\n    color: #fff;\n    padding: 20px;\n    transition: all 0.5s ease-in;\n    -webkit-transition: all 0.5s ease-in;\n    opacity: 0.5;\n    filter: blur(1px);\n    -webkit-filter: blur(1px);\n    text-align: justify;\n  }\n  .active {\n    opacity: 1;\n    filter: none;\n    -webkit-filter: none;\n  }\n  .t-text {\n    font-size: 16px;\n  }\n</style>\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n    const style = getComputedStyle(node);\n    const target_opacity = +style.opacity;\n    const f = style.filter === 'none' ? '' : style.filter;\n    const od = target_opacity * (1 - opacity);\n    return {\n        delay,\n        duration,\n        easing,\n        css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n    };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n    const o = +getComputedStyle(node).opacity;\n    return {\n        delay,\n        duration,\n        easing,\n        css: t => `opacity: ${t * o}`\n    };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n    const style = getComputedStyle(node);\n    const target_opacity = +style.opacity;\n    const transform = style.transform === 'none' ? '' : style.transform;\n    const od = target_opacity * (1 - opacity);\n    return {\n        delay,\n        duration,\n        easing,\n        css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n    };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n    const style = getComputedStyle(node);\n    const opacity = +style.opacity;\n    const height = parseFloat(style.height);\n    const padding_top = parseFloat(style.paddingTop);\n    const padding_bottom = parseFloat(style.paddingBottom);\n    const margin_top = parseFloat(style.marginTop);\n    const margin_bottom = parseFloat(style.marginBottom);\n    const border_top_width = parseFloat(style.borderTopWidth);\n    const border_bottom_width = parseFloat(style.borderBottomWidth);\n    return {\n        delay,\n        duration,\n        easing,\n        css: t => 'overflow: hidden;' +\n            `opacity: ${Math.min(t * 20, 1) * opacity};` +\n            `height: ${t * height}px;` +\n            `padding-top: ${t * padding_top}px;` +\n            `padding-bottom: ${t * padding_bottom}px;` +\n            `margin-top: ${t * margin_top}px;` +\n            `margin-bottom: ${t * margin_bottom}px;` +\n            `border-top-width: ${t * border_top_width}px;` +\n            `border-bottom-width: ${t * border_bottom_width}px;`\n    };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n    const style = getComputedStyle(node);\n    const target_opacity = +style.opacity;\n    const transform = style.transform === 'none' ? '' : style.transform;\n    const sd = 1 - start;\n    const od = target_opacity * (1 - opacity);\n    return {\n        delay,\n        duration,\n        easing,\n        css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n    };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n    let len = node.getTotalLength();\n    const style = getComputedStyle(node);\n    if (style.strokeLinecap !== 'butt') {\n        len += parseInt(style.strokeWidth);\n    }\n    if (duration === undefined) {\n        if (speed === undefined) {\n            duration = 800;\n        }\n        else {\n            duration = len / speed;\n        }\n    }\n    else if (typeof duration === 'function') {\n        duration = duration(len);\n    }\n    return {\n        delay,\n        duration,\n        easing,\n        css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n    };\n}\nfunction crossfade(_a) {\n    var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n    const to_receive = new Map();\n    const to_send = new Map();\n    function crossfade(from, node, params) {\n        const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n        const to = node.getBoundingClientRect();\n        const dx = from.left - to.left;\n        const dy = from.top - to.top;\n        const dw = from.width / to.width;\n        const dh = from.height / to.height;\n        const d = Math.sqrt(dx * dx + dy * dy);\n        const style = getComputedStyle(node);\n        const transform = style.transform === 'none' ? '' : style.transform;\n        const opacity = +style.opacity;\n        return {\n            delay,\n            duration: is_function(duration) ? duration(d) : duration,\n            easing,\n            css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n        };\n    }\n    function transition(items, counterparts, intro) {\n        return (node, params) => {\n            items.set(params.key, {\n                rect: node.getBoundingClientRect()\n            });\n            return () => {\n                if (counterparts.has(params.key)) {\n                    const { rect } = counterparts.get(params.key);\n                    counterparts.delete(params.key);\n                    return crossfade(rect, node, params);\n                }\n                // if the node is disappearing altogether\n                // (i.e. wasn't claimed by the other list)\n                // then we need to supply an outro\n                items.delete(params.key);\n                return fallback && fallback(node, params, intro);\n            };\n        };\n    }\n    return [\n        transition(to_send, to_receive, false),\n        transition(to_receive, to_send, true)\n    ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","{#if placeholder}\n  <div class={placeholderClass}>\n    {#if typeof placeholder === 'string'}\n      <div>{placeholder}</div>\n    {:else if ['function', 'object'].includes(typeof placeholder)}\n      <svelte:component this={placeholder} {...placeholderProps} />\n    {/if}\n  </div>\n{/if}\n\n<script>\n  export let placeholder = null;\n  export let placeholderProps = null;\n  const placeholderClass = 'svelte-lazy-placeholder';\n</script>\n","<div use:load class={rootClass} style=\"height: {rootInitialHeight}\">\n  {#if loaded}\n    <div \n      in:fade={fadeOption || {}} \n      class={contentClass}\n      style={contentStyle}\n    >\n      <slot>Lazy load content</slot>\n    </div>\n    {#if contentDisplay === 'hide' && placeholder}\n      <Placeholder {placeholder} {placeholderProps} />\n    {/if}\n  {:else if placeholder}\n    <Placeholder {placeholder} {placeholderProps} />\n  {/if}\n</div>\n\n<script>\n  import { fade } from 'svelte/transition';\n  import Placeholder from './components/Placeholder.svelte';\n  export let height = 0;\n  export let offset = 150;\n  export let fadeOption = {\n    delay: 0,\n    duration: 400, \n  };\n  export let resetHeightDelay = 0;\n  export let onload = null;\n  export let placeholder = null;\n  export let placeholderProps = null;\n  let className = '';\n  export { className as class };\n\n  const rootClass = 'svelte-lazy' \n    + (className ? ' ' + className : '');\n  const contentClass = 'svelte-lazy-content';\n  const rootInitialHeight = getStyleHeight();\n  let loaded = false;\n\n  let contentDisplay = '';\n  $: contentStyle = contentDisplay === 'hide' \n    ? 'display: none' \n    : '';\n\n  function load(node) {\n    setHeight(node);\n\n    const loadHandler = throttle(e => {\n      const nodeTop = node.getBoundingClientRect().top;\n      const expectedTop = getContainerHeight(e) + offset;\n\n      if (nodeTop <= expectedTop) {\n        loaded = true;\n        resetHeight(node);\n        onload && onload(node);\n        removeListeners();\n      }\n    }, 200);\n\n    loadHandler();\n    addListeners();\n\n    function addListeners() {\n      document.addEventListener('scroll', loadHandler, true);\n      window.addEventListener('resize', loadHandler);\n    }\n\n    function removeListeners() {\n      document.removeEventListener('scroll', loadHandler, true);\n      window.removeEventListener('resize', loadHandler);\n    }\n\n    return {\n      destroy: () => {\n        removeListeners();\n      },\n    };\n  }\n\n  function getStyleHeight() {\n    return (typeof height === 'number') \n      ? height + 'px' \n      : height;\n  }\n\n  function setHeight(node) {\n    if (height) {\n      node.style.height = getStyleHeight();\n    }\n  }\n\n  function resetHeight(node) {\n    // Add delay for remote resources like images to load\n    setTimeout(() => {\n      const handled = handleImgContent(node);\n      if (!handled) {\n        node.style.height = 'auto';\n      }\n    }, resetHeightDelay);\n  }\n\n  function handleImgContent(node) {\n    const img = node.querySelector('img');\n    if (img) {\n      if (!img.complete) {\n        contentDisplay = 'hide';\n\n        node.addEventListener('load', () => {\n          contentDisplay = '';\n          node.style.height = 'auto';\n        }, { capture: true, once: true });\n\n        node.addEventListener('error', () => {\n          // Keep passed height if there is error\n          contentDisplay = '';\n        }, { capture: true, once: true });\n\n        return true;\n      } else if (img.naturalHeight === 0) {\n        // Keep passed height if img has zero height\n        return true;\n      }\n    }  \n  }\n\n  function getContainerHeight(e) {\n    if (e && e.target && e.target.getBoundingClientRect) {\n      return e.target.getBoundingClientRect().bottom;\n    } else {\n      return window.innerHeight;\n    }\n  }\n\n  // From underscore souce code\n  function throttle(func, wait, options) {\n    let context, args, result;\n    let timeout = null;\n    let previous = 0;\n    if (!options) options = {};\n    const later = function() {\n      previous = options.leading === false ? 0 : new Date();\n      timeout = null;\n      result = func.apply(context, args);\n      if (!timeout) context = args = null;\n    };\n\n    return function(event) {\n      const now = new Date();\n      if (!previous && options.leading === false) previous = now;\n      const remaining = wait - (now - previous);\n      context = this;\n      args = arguments;\n      if (remaining <= 0 || remaining > wait) {\n        if (timeout) {\n          clearTimeout(timeout);\n          timeout = null;\n        }\n        previous = now;\n        result = func.apply(context, args);\n        if (!timeout) context = args = null;\n      } else if (!timeout && options.trailing !== false) {\n        timeout = setTimeout(later, remaining);\n      }\n      return result;\n    };\n  }\n</script>\n","import { writable } from \"svelte/store\";\n\n//用户信息\nexport const userInfoStore = writable(\n  JSON.parse(localStorage.getItem(\"isLogin\"))\n    ? JSON.parse(localStorage.getItem(\"userInfo\"))\n    : {}\n);\n\n//用户喜欢的音乐IDs\nexport const userLikeSongIdsStore = writable(\n  JSON.parse(localStorage.getItem(\"useLoveSongIds\"))\n    ? JSON.parse(localStorage.getItem(\"useLoveSongIds\"))\n    : []\n);\n//我喜欢的音乐歌单ID\nexport const userLikeListIdStore = writable(\n  JSON.parse(localStorage.getItem(\"userLikeListId\"))\n    ? JSON.parse(localStorage.getItem(\"userLikeListId\"))\n    : ''\n);\n","<script>\n  import { onMount, createEventDispatcher } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { HeartFill } from 'svelte-remixicon';\n\n  import { isLoginStore } from '../store/common';\n  import { userLikeSongIdsStore } from '../store/user';\n  import { currentSongStore, playStatusStore } from '../store/play';\n\n  import { ripple, songerListToStr, fullWidth } from '../utils/common';\n\n  const dispatch = createEventDispatcher();\n\n  function setSongClick(index) {\n    dispatch('songClick', { index });\n  }\n\n  export let song = {};\n  export let index = 0;\n  export let customCoverUrl = null;\n\n  let songDom;\n\n  onMount(() => {\n    if (songDom) {\n      ripple(songDom);\n    }\n  });\n</script>\n\n<div\n  class=\"song\"\n  on:click={() => {\n    if (song.id === $currentSongStore.id) {\n      window.audioDOM.play();\n      playStatusStore.set(true);\n    } else {\n      setSongClick(index);\n    }\n  }}\n  bind:this={songDom}\n>\n  <div class=\"love-span\">\n    {#if $isLoginStore && $userLikeSongIdsStore.includes(song.id)}\n      <HeartFill size=\"16\" style=\"vertical-align: middle\" />\n    {/if}\n  </div>\n  <div class=\"song-cover\">\n    <Lazy height={46}>\n      <img\n        class=\"img-song\"\n        src={customCoverUrl ? customCoverUrl : song.al.picUrl.replace(/^http:/, 'https:') + '?param=100y100'}\n        alt=\"\"\n      />\n    </Lazy>\n    {#if song.id === $currentSongStore.id && $playStatusStore}\n      <div class=\"song-play\">\n        <div class=\"pull_down pull_down1\" />\n        <div class=\"pull_down pull_down2\" />\n        <div class=\"pull_down pull_down3\" />\n        <div class=\"pull_down pull_down4\" />\n      </div>\n    {/if}\n    {#if song.id === $currentSongStore.id && !$playStatusStore}\n      <div class=\"song-no-play\">\n        <div class=\"no_pull_down\" />\n        <div class=\"no_pull_down\" />\n        <div class=\"no_pull_down\" />\n        <div class=\"no_pull_down\" />\n      </div>\n    {/if}\n  </div>\n  <div class=\"song-info\" style=\"max-width:{fullWidth() - 72}px;\">\n    <div class=\"song-name\">\n      {song.name}\n      <span class=\"alia\">\n        {song.alia && song.alia.length > 0 ? `(${song.alia[0]})` : ''}\n      </span>\n    </div>\n    <div class=\"song-songer\">\n      {songerListToStr(song.ar)}\n      <span>{song.al.name === '' ? '' : `- ${song.al.name}`}</span>\n    </div>\n  </div>\n</div>\n\n<style>\n  .song {\n    font-size: 14px;\n    text-align: center;\n    align-items: center;\n    padding: 14px auto;\n    display: flex;\n    height: 60px;\n    justify-content: space-between;\n    border-bottom: 1px solid rgba(197, 197, 197, 0.3);\n    box-sizing: border-box;\n  }\n  .love-span {\n    color: var(--primary-text-color);\n    line-height: 20px;\n    text-align: center;\n    width: 20px;\n    height: 20px;\n  }\n  .song-cover {\n    width: 46px;\n    height: 46px;\n    margin-right: 6px;\n    border-radius: 4px;\n    overflow: hidden;\n    background-color: #fff;\n    box-sizing: border-box;\n  }\n  .img-song {\n    width: 100%;\n    object-fit: cover;\n  }\n  .song-play {\n    position: relative;\n    width: 30px;\n    height: 30px;\n    top: -44px;\n    left: 4px;\n    z-index: 2;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    padding: 4px;\n  }\n  .song-play {\n    position: relative;\n    width: 30px;\n    height: 30px;\n    top: -44px;\n    left: 4px;\n    z-index: 2;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    padding: 4px;\n  }\n  .song-no-play {\n    position: relative;\n    width: 30px;\n    height: 30px;\n    top: -44px;\n    left: 4px;\n    z-index: 2;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    padding: 4px;\n  }\n  .no_pull_down {\n    flex: 1;\n    height: 6px;\n    margin: 0 1.2px;\n    background: #fff;\n    border-top: 1px solid var(--primary-text-color);\n  }\n  .pull_down {\n    flex: 1;\n    height: 30px;\n    margin: 0 1.2px;\n    background: #fff;\n    border-top: 1px solid var(--primary-text-color);\n  }\n  .pull_down1 {\n    -webkit-animation: jumpYa 0.8s infinite ease-in-out;\n    -o-animation: jumpYa 0.8s infinite ease-in-out;\n    animation: jumpYa 0.8s infinite ease-in-out;\n  }\n  .pull_down2 {\n    -webkit-animation: jumpYb 1.2s infinite ease-in-out;\n    -o-animation: jumpYb 1.2s infinite ease-in-out;\n    animation: jumpYb 1.2s infinite ease-in-out;\n  }\n  .pull_down3 {\n    -webkit-animation: jumpYc 1s infinite ease-in-out;\n    -o-animation: jumpYc 1s infinite ease-in-out;\n    animation: jumpYc 1s infinite ease-in-out;\n  }\n  .pull_down4 {\n    -webkit-animation: jumpYd 1.1s infinite ease-in-out;\n    -o-animation: jumpYd 1.1s infinite ease-in-out;\n    animation: jumpYd 1.1s infinite ease-in-out;\n  }\n  @keyframes jumpYa {\n    0% {\n      height: 20px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 20px;\n    }\n  }\n  @keyframes jumpYb {\n    0% {\n      height: 24px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 24px;\n    }\n  }\n  @keyframes jumpYc {\n    0% {\n      height: 30px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 30px;\n    }\n  }\n  @keyframes jumpYd {\n    0% {\n      height: 30px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 30px;\n    }\n  }\n  .song-info {\n    padding-top: 4px;\n    text-align: left;\n    flex: auto;\n  }\n  .song-name {\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    font-size: 18px;\n  }\n  .song-songer {\n    margin-top: 6px;\n    margin-bottom: 6px;\n    color: rgb(185, 185, 185);\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n  }\n</style>\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n  if (toString.call(val) !== '[object Object]') {\n    return false;\n  }\n\n  var prototype = Object.getPrototypeOf(val);\n  return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n                                           navigator.product === 'NativeScript' ||\n                                           navigator.product === 'NS')) {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (isPlainObject(result[key]) && isPlainObject(val)) {\n      result[key] = merge(result[key], val);\n    } else if (isPlainObject(val)) {\n      result[key] = merge({}, val);\n    } else if (isArray(val)) {\n      result[key] = val.slice();\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isPlainObject: isPlainObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim,\n  stripBOM: stripBOM\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected,\n    synchronous: options ? options.synchronous : false,\n    runWhen: options ? options.runWhen : null\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n    var responseType = config.responseType;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !responseType || responseType === 'text' ||  responseType === 'json' ?\n        request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(\n        timeoutErrorMessage,\n        config,\n        config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n  transitional: {\n    silentJSONParsing: true,\n    forcedJSONParsing: true,\n    clarifyTimeoutError: false\n  },\n\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n      setContentTypeIfUnset(headers, 'application/json');\n      return stringifySafely(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    var transitional = this.transitional;\n    var silentJSONParsing = transitional && transitional.silentJSONParsing;\n    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n    if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw enhanceError(e, this, 'E_JSON_PARSE');\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  var context = this || defaults;\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(context, data, headers);\n  });\n\n  return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  var valueFromConfig2Keys = ['url', 'method', 'data'];\n  var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n  var defaultToConfig2Keys = [\n    'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n    'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n    'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n    'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n  ];\n  var directMergeKeys = ['validateStatus'];\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    }\n  });\n\n  utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n  utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  utils.forEach(directMergeKeys, function merge(prop) {\n    if (prop in config2) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  var axiosKeys = valueFromConfig2Keys\n    .concat(mergeDeepPropertiesKeys)\n    .concat(defaultToConfig2Keys)\n    .concat(directMergeKeys);\n\n  var otherKeys = Object\n    .keys(config1)\n    .concat(Object.keys(config2))\n    .filter(function filterAxiosKeys(key) {\n      return axiosKeys.indexOf(key) === -1;\n    });\n\n  utils.forEach(otherKeys, mergeDeepProperties);\n\n  return config;\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n  var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n  var destVer = version.split('.');\n  for (var i = 0; i < 3; i++) {\n    if (pkgVersionArr[i] > destVer[i]) {\n      return true;\n    } else if (pkgVersionArr[i] < destVer[i]) {\n      return false;\n    }\n  }\n  return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  var isDeprecated = version && isOlderVersion(version);\n\n  function formatMessage(opt, desc) {\n    return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return function(value, opt, opts) {\n    if (validator === false) {\n      throw new Error(formatMessage(opt, ' has been removed in ' + version));\n    }\n\n    if (isDeprecated && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new TypeError('options must be an object');\n  }\n  var keys = Object.keys(options);\n  var i = keys.length;\n  while (i-- > 0) {\n    var opt = keys[i];\n    var validator = schema[opt];\n    if (validator) {\n      var value = options[opt];\n      var result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new TypeError('option ' + opt + ' must be ' + result);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw Error('Unknown option ' + opt);\n    }\n  }\n}\n\nmodule.exports = {\n  isOlderVersion: isOlderVersion,\n  assertOptions: assertOptions,\n  validators: validators\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  var transitional = config.transitional;\n\n  if (transitional !== undefined) {\n    validator.assertOptions(transitional, {\n      silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n      forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n      clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n    }, false);\n  }\n\n  // filter out skipped interceptors\n  var requestInterceptorChain = [];\n  var synchronousRequestInterceptors = true;\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n      return;\n    }\n\n    synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n    requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var responseInterceptorChain = [];\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var promise;\n\n  if (!synchronousRequestInterceptors) {\n    var chain = [dispatchRequest, undefined];\n\n    Array.prototype.unshift.apply(chain, requestInterceptorChain);\n    chain = chain.concat(responseInterceptorChain);\n\n    promise = Promise.resolve(config);\n    while (chain.length) {\n      promise = promise.then(chain.shift(), chain.shift());\n    }\n\n    return promise;\n  }\n\n\n  var newConfig = config;\n  while (requestInterceptorChain.length) {\n    var onFulfilled = requestInterceptorChain.shift();\n    var onRejected = requestInterceptorChain.shift();\n    try {\n      newConfig = onFulfilled(newConfig);\n    } catch (error) {\n      onRejected(error);\n      break;\n    }\n  }\n\n  try {\n    promise = dispatchRequest(newConfig);\n  } catch (error) {\n    return Promise.reject(error);\n  }\n\n  while (responseInterceptorChain.length) {\n    promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","import axios from 'axios';\nimport { get } from 'svelte/store';\nimport Cookies from 'js-cookie';\nimport { isLoadingStore } from '../store/common';\nimport { Alert } from './common';\n\nlet baseURL = 'https://netease-cloud-music-api-eight-lime.vercel.app/'\n\nconst service = axios.create({\n  baseURL,\n  withCredentials: true,\n  timeout: 15000,\n});\n\nservice.interceptors.request.use(config => {\n  if (!config.params) config.params = {};\n  // const c = Cookies.get('MUSIC_U')\n  // c && (config.params.cookie = `MUSIC_U=${c};`);\n  if (!config.isHideLoading) {\n    if (!get(isLoadingStore)) {\n      isLoadingStore.set(true);\n    }\n  }\n  return config;\n});\n\nservice.interceptors.response.use(\n  response => {\n    isLoadingStore.set(false);\n    const res = response.data;\n    console.debug('response', response.config.url, res);\n    if (res.code && ![200, 800, 801, 802, 803].includes(res.code)) {\n      const msg = res.message || res.msg || '未知错误';\n      const message = `${msg} (${response.config.url}: ${res.code})`;\n      Alert(typeof res === 'string' ? res : message);\n    }\n    return res;\n  },\n  error => {\n    isLoadingStore.set(false);\n    //签到不做报错处理\n    if (error.response.config.url != '/daily_signin') {\n      Alert(\n        error.response.data.code +\n        ':' +\n        (error.response.data.message\n          ? error.response.data.message\n          : error.response.data.msg\n            ? error.response.data.msg\n            : '未知错误')\n      );\n      return error.response.data;\n    }\n  }\n);\n\nexport default service;\n","import request from '../utils/request';\n\n/**\n * 获取音乐 url\n * 说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url,\n * !!!未登录状态返回试听片段(返回字段包含被截取的正常歌曲的开始时间和结束时间)\n * @param {string} id - 音乐的 id,例如 id=405998841,33894312\n */\nexport function getSongUrl(id) {\n  let br = 128000;\n  switch (localStorage.getItem('musicQuality')) {\n    case '0':\n      br = 128000;\n      break;\n    case '1':\n      br = 192000;\n      break;\n    case '2':\n      br = 320000;\n      break;\n    case '3':\n      br = 999000;\n      break;\n    default:\n      br = 128000;\n      break;\n  }\n  return request({\n    url: '/song/url',\n    method: 'get',\n    params: {\n      id,\n      br,\n    },\n    isHideLoading: true,\n  });\n}\n\n/**\n * 获取歌曲详情\n * 说明 : 调用此接口 , 传入音乐 id(支持多个 id, 用 , 隔开), 可获得歌曲详情(注意:歌曲封面现在需要通过专辑内容接口获取)\n * @param {string} ids - 音乐 id, 例如 ids=405998841,33894312\n */\nexport function getSongDetail(ids) {\n  if (typeof ids === 'string') ids = ids.replace(/,,/, ',');\n  return request({\n    url: '/song/detail',\n    method: 'get',\n    params: {\n      ids,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n/**\n * 获取相似音乐\n * 说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌曲\n * @param {string} id- 音乐 id, 例如 ids=405998841,33894312\n */\nexport function getSimiSong(id) {\n  return request({\n    url: '/simi/song',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n/**\n * 私人 FM( 需要登录 )\n *\n */\nexport function personalFM() {\n  return request({\n    url: '/personal_fm',\n    method: 'get',\n    params: {\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n/**\n * 喜欢音乐\n * 说明 : 调用此接口 , 传入音乐 id, 可喜欢该音乐\n * - id - 歌曲 id\n * - like - 默认为 true 即喜欢 , 若传 false, 则取消喜欢\n * @param {Object} params\n * @param {number} params.id\n * @param {boolean=} [params.like]\n */\nexport function likeThisSong(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/like',\n    method: 'get',\n    params,\n  });\n}\n\n//说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶\nexport function fmTrash(id) {\n  return request({\n    url: '/fm_trash',\n    method: 'post',\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n\n/**\n * 获取歌词\n * 说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的歌词 ( 不需要登录 )\n * @param {number} id - 音乐 id\n */\nexport function getLyric(id) {\n  return request({\n    url: '/lyric',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n\n/**\n * 热门评论\n * 说明 : 调用此接口 , 传入 type, 资源 id 可获得对应资源热门评论 ( 不需要登录 )\n * 必选参数 : id : 资源 id\n * type: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型\n * 0: 歌曲;1: mv;2: 歌单;3: 专辑;4: 电台;5: 视频\n * 可选参数 : limit: 取出评论数量 , 默认为 20\n * offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值\n * before: 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过5000条评论的时候需要用到)\n * 接口地址 : /comment/hot\n * 调用例子 : /comment/hot?id=186016&type=0\n * @param {number} id\n * @param {number} type\n * @param {number} limit\n * @param {number} offset\n * @returns\n */\nexport function getHotComment(id, offset = 0, type = 0, limit = 20) {\n  return request({\n    url: '/comment/hot',\n    method: 'get',\n    params: {\n      id,\n      type,\n      limit,\n      offset,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n/**\n * 新版评论接口\n * 说明 : 调用此接口 , 传入资源类型和资源id,以及排序方式,可获取对应资源的评论\n * 必选参数 :\n * id : 资源 id, 如歌曲 id,mv id\n * type: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型\n * 0: 歌曲 1: mv 2: 歌单 3: 专辑 4: 电台 5: 视频 6: 动态f\n * 可选参数 :\n * pageNo:分页参数,第N页,默认为1\n * pageSize:分页参数,每页多少条数据,默认20\n * sortType: 排序方式,1:按推荐排序,2:按热度排序,3:按时间排序\n * cursor: 当sortType为3时且页数不是第一页时需传入,值为上一条数据的time\n * 接口地址 : /comment/new\n * 调用例子 : /comment/new?type=0&id=1407551413&sortType=3,\n * /comment/new?type=0&id=1407551413&sortType=3&cursor=1602072870260&pageSize=20&pageNo=2\n * @param {Object} params\n * @param {number} params.id\n * @param {number} params.type\n * @param {number} params.limit\n * @param {number} params.offset\n * @param {number} params.before\n */\nexport function getComment(id, type = 0, pageNo = 1) {\n  return request({\n    url: '/comment/new',\n    method: 'post',\n    params: {\n      id,\n      type,\n      pageNo,\n      pageSize: 20,\n      sortType: 2,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 给评论点赞\n说明 : 调用此接口 , 传入 type, 资源 id, 和评论 id cid 和 是否点赞参数 t 即可给对 应评论点赞 ( 需要登录 )\n必选参数 : id : 资源 id, 如歌曲 id,mv id\ncid : 评论 id\nt : 是否点赞 ,1 为点赞 ,0 为取消点赞\ntype: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型\n*/\nexport function likeComment(id, cid, type = 0, t) {\n  return request({\n    url: '/comment/like',\n    method: 'get',\n    params: {\n      id,\n      cid,\n      type,\n      t,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n","<script>\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n\n  import Song from './Song.svelte';\n\n  import { getSongUrl } from '../api/song';\n\n  import { Toast } from '../utils/common';\n\n  export let songList = [];\n  export let isPlayList = false; //是否播放列表,false表示播放单曲\n\n  function playListFun(index) {\n    if (isPlayList) {\n      playRepeatModelStore.set('repeat');\n      isFMPlayStore.set(false);\n      localStorage.setItem('isFMPlay', '0');\n      currentPlayListStore.set(songList);\n      let ids = [];\n      for (let r = 0; r < songList.length; r++) {\n        ids.push(songList[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n      currentSongIndexStore.set(index);\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n    } else {\n      isFMPlayStore.set(false);\n      localStorage.setItem('isFMPlay', '0');\n      let newcurrentPlayList = $currentPlayListStore;\n      let newPlayListIds = [];\n      for (let r = 0; r < newcurrentPlayList.length; r++) {\n        newPlayListIds.push(newcurrentPlayList[r].id);\n      }\n      if (newPlayListIds.includes(songList[index].id)) {\n        currentSongIndexStore.set(newPlayListIds.indexOf(songList[index].id));\n        getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n      } else {\n        newcurrentPlayList.splice($currentSongIndexStore + 1, 0, songList[index]);\n        currentPlayListStore.set(newcurrentPlayList);\n        let ids = [];\n        for (let r = 0; r < newcurrentPlayList.length; r++) {\n          ids.push(newcurrentPlayList[r].id);\n        }\n        localStorage.setItem('localPlayList', JSON.stringify(ids));\n        currentSongIndexStore.set($currentSongIndexStore + 1);\n        getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n      }\n    }\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  function getSongClick(event) {\n    playListFun(event.detail.index);\n  }\n</script>\n\n<div>\n  {#each songList as song, i}\n    <Song {song} index={i} on:songClick={getSongClick} />\n  {/each}\n</div>\n","<script>\n  import { onMount } from \"svelte\";\n  import { push, location } from \"svelte-stack-router\";\n  import {\n    SkipBackFill,\n    SkipForwardFill,\n    PlayFill,\n    PauseFill,\n    ChatQuoteLine,\n    ChatQuoteFill,\n    Message2Line,\n    RadioLine,\n    Heart2Line,\n    Heart2Fill,\n    DislikeLine,\n    RepeatOneLine,\n    ShuffleLine,\n    PlayListLine,\n    PlayListFill,\n    SortDesc,\n    HeartPulseLine,\n  } from \"svelte-remixicon\";\n\n  import { Picker, Progress } from \"../components/base\";\n  import Lyric from \"../components/Lyric.svelte\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import {\n    getSongUrl,\n    personalFM,\n    likeThisSong,\n    getLyric,\n    fmTrash,\n  } from \"../api/song\";\n\n  import {\n    playStatusStore,\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    maxPlayToTopStore,\n    playIsMaxStore,\n    isFMPlayStore,\n    FMPlayNextStore,\n    FMPlayStore,\n    currentLyricStore,\n    mainCoverTypeStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import {\n    isLoginStore,\n    isHomePageStore,\n    currentDetailSongerIdStore,\n    isShowCommentStore,\n  } from \"../store/common\";\n  import { userLikeSongIdsStore } from \"../store/user\";\n\n  import {\n    timeToMinute,\n    songerListToStr,\n    Toast,\n    ripple,\n  } from \"../utils/common\";\n\n  export let currentTime = \"0:00\"; //当前播放时间\n  export let currentTimeLong = 0; //进度条长度\n  export let endTime = 0; //结束时间\n\n  let lyricDom;\n  let listDom;\n  let loveDom;\n  let disloveDom;\n  let repeatDom;\n  let commentDom;\n  let preDom;\n  let playDom;\n  let nextDom;\n  let coverDom;\n\n  let playBgDom;\n  let touchMoveToTop = 0; //播放器顶部距离整个视窗顶部的距离\n  let touchStartY; //滑动开始时候触摸点Y坐标\n  let touchEndY; //滑动结束时候触摸点Y坐标\n  let touchStartTime = 0; //滑动开始时间戳\n  let touchEndTime = 0; //滑动结束时间戳\n  let playListDom;\n\n  $: isLikeCurrentSong = $isLoginStore\n    ? $userLikeSongIdsStore.includes($currentSongStore.id)\n    : false; //是否喜欢当前歌曲\n  $: likeLoading = false; //优化点击红心请求时候loading效果\n  $: noLikeLoading = false; //优化FM点击不喜欢红心请求时候loading效果\n  $: lyricLoading = false; //优化点击歌词请求时候loading效果\n  $: PickerShow = false;\n  $: songers = $currentSongStore.ar;\n\n  onMount(() => {\n    maxPlayToTopStore.set(window.screen.height + \"px\");\n    playIsMaxStore.set(false);\n    mainCoverTypeStore.set(\"cover\");\n    if (lyricDom) ripple(lyricDom);\n    if (listDom) ripple(listDom);\n    if (loveDom) ripple(loveDom);\n    if (disloveDom) ripple(disloveDom);\n    if (repeatDom) ripple(repeatDom);\n    if (commentDom) ripple(commentDom);\n    if (preDom) ripple(preDom);\n    if (playDom) ripple(playDom);\n    if (nextDom) ripple(nextDom);\n    if (coverDom) ripple(coverDom);\n  });\n  //接收子组件(Progress)发送来的事件(setCurrent),获取当前进度点的值(event.detail.current)。\n  function getCurrent(event) {\n    window.audioDOM.currentTime =\n      (event.detail.current / 100) * window.audioDOM.duration;\n    currentTime = timeToMinute(window.audioDOM.currentTime);\n    currentTimeLong =\n      (window.audioDOM.currentTime / window.audioDOM.duration) * 100;\n    endTime =\n      \"-\" +\n      timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n    window.audioDOM.play();\n    playStatusStore.set(true);\n  }\n  //接收子组件(Progress)发送来的事件(setTimeCurrent),获取当前进度时间点的值(event.detail.timeCurrent )。\n  function getTimeCurrent(event) {\n    window.audioDOM.currentTime =\n      (event.detail.timeCurrent / 100) * window.audioDOM.duration;\n    currentTime = timeToMinute(window.audioDOM.currentTime);\n    currentTimeLong =\n      (window.audioDOM.currentTime / window.audioDOM.duration) * 100;\n    endTime =\n      \"-\" +\n      timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n  }\n  function handleDown() {\n    maxPlayToTopStore.set(window.screen.height + \"px\");\n    playIsMaxStore.set(false);\n    mainCoverTypeStore.set(\"cover\");\n  }\n  //切换下一首\n  function playNextFun() {\n    if ($isFMPlayStore) {\n      //正在私人FM\n      getSongUrlFun($FMPlayNextStore, \"next\");\n      mainCoverTypeStore.set(\"cover\");\n    } else {\n      if ($currentSongIndexStore === $currentPlayListStore.length - 1) {\n        Toast(\"已经是最后一首了\");\n      } else {\n        if ($mainCoverTypeStore === \"lyric\") mainCoverTypeStore.set(\"cover\");\n        //随机模式\n        if ($playRepeatModelStore === \"shuffle\") {\n          // Math.floor(Math.random() * 21);\n          let index = Math.floor(\n            Math.random() * ($currentPlayListStore.length - 1)\n          );\n          getSongUrlFun($currentPlayListStore[index], \"shuffle\", index);\n        } else {\n          currentSongIndexStore.set($currentSongIndexStore + 1);\n          getSongUrlFun($currentPlayListStore[$currentSongIndexStore], \"next\");\n        }\n      }\n    }\n  }\n  //切换上一首\n  function playPreFun() {\n    if ($currentSongIndexStore === 0) {\n      Toast(\"已经是第一首了\");\n    } else {\n      if ($mainCoverTypeStore === \"lyric\") mainCoverTypeStore.set(\"cover\");\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore - 1], \"pre\");\n    }\n  }\n  //获取歌单url\n  async function getSongUrlFun(song, type, index) {\n    const res = await getSongUrl(song.id);\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          //私人FM\n          personalFMFun();\n          FMPlayStore.set(song);\n          currentSongStore.set(song);\n          currentPlayListStore.set([$FMPlayStore]);\n          currentSongIndexStore.set(0);\n          localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        } else {\n          //切换下一首和上一首之后,修改播放歌曲在播放列表中的位置\n          if (type === \"next\") {\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          } else if (type === \"shuffle\") {\n            //随机\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              currentSongIndexStore.set(index);\n            }\n          } else {\n            //上一首\n            currentSongIndexStore.set($currentSongIndexStore - 1);\n          }\n        }\n      } else {\n        Toast(\n          `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n          2000\n        );\n      }\n    }\n  }\n  //私人FM\n  async function personalFMFun() {\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      FMPlayNextStore.set(res.data[0]);\n      getSongUrl(res.data[0].id);\n    }\n  }\n  //点击红心\n  async function handleLoveFun() {\n    if ($isLoginStore) {\n      likeLoading = true;\n      const res = await likeThisSong({\n        id: $currentSongStore.id,\n        like: !isLikeCurrentSong,\n      });\n      if (res.code === 200) {\n        const ids = JSON.parse(localStorage.getItem(\"useLoveSongIds\"));\n        if (isLikeCurrentSong) {\n          let i = ids.indexOf($currentSongStore.id);\n          ids.splice(i, 1);\n        } else {\n          ids.unshift($currentSongStore.id);\n        }\n        likeLoading = false;\n        userLikeSongIdsStore.set(JSON.stringify(ids));\n        localStorage.setItem(\"useLoveSongIds\", JSON.stringify(ids));\n      } else {\n        likeLoading = false;\n      }\n    } else {\n      Toast(\"当前未登录\");\n    }\n  }\n  //FM 不喜欢\n  async function handleFMNoLoveFun() {\n    noLikeLoading = true;\n    const res = await fmTrash($currentSongStore.id);\n    if (res.code === 200) {\n      noLikeLoading = false;\n      playNextFun();\n    }\n  }\n  //切换歌词显示\n  function changeLyricFun() {\n    if ($mainCoverTypeStore !== \"lyric\") {\n      getlyricFun();\n    } else {\n      mainCoverTypeStore.set(\"cover\");\n    }\n  }\n  //请求歌词\n  async function getlyricFun() {\n    if ($currentLyricStore.songId === $currentSongStore.id) {\n      mainCoverTypeStore.set(\"lyric\");\n    } else {\n      lyricLoading = true;\n      const res = await getLyric($currentSongStore.id);\n      if (res.code === 200) {\n        lyricLoading = false;\n        if (res.nolyric || res.needDesc || res.lrc.lyric === \"\") {\n          Toast(\"🙈🙈么有歌词哦!!🙈🙈\");\n          currentLyricStore.set({\n            songId: null,\n            lyric: null,\n            tlyric: null,\n          });\n          localStorage.setItem(\n            \"currentLyric\",\n            JSON.stringify({\n              songId: null,\n              lyric: null,\n              tlyric: null,\n            })\n          );\n        } else {\n          currentLyricStore.set({\n            songId: $currentSongStore.id,\n            lyric: res.lrc.lyric,\n            tlyric: res.tlyric.lyric,\n          });\n          localStorage.setItem(\n            \"currentLyric\",\n            JSON.stringify({\n              songId: $currentSongStore.id,\n              lyric: res.lrc.lyric,\n              tlyric: res.tlyric.lyric,\n            })\n          );\n          mainCoverTypeStore.set(\"lyric\");\n        }\n      } else {\n        lyricLoading = false;\n      }\n    }\n  }\n  //切换播放列表显示\n  function changeListFun() {\n    if ($mainCoverTypeStore !== \"list\") {\n      if ($currentSongIndexStore > 200) {\n        let r = confirm(\n          \"当前播放歌曲在播放列表中位置超过 200,显示播放列表将自动滚动至当前歌曲,极短时间内渲染大量页面会严重消耗设备性能😈😈。可以考虑到歌单详情页(已做了懒加载)查看列表哦😅。🤔确定显示播放列表吗🤔?\"\n        );\n        if (r === true) {\n          if ($currentPlayListStore.length > 200) {\n            Toast(\"列表太长,等我加载...🥱🥱\", 1000, () => {\n              mainCoverTypeStore.set(\"list\");\n              setTimeout(() => {\n                playListDom.scrollTop = 60 * $currentSongIndexStore;\n              }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n            });\n          } else {\n            mainCoverTypeStore.set(\"list\");\n            setTimeout(() => {\n              playListDom.scrollTop = 60 * $currentSongIndexStore;\n            }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n          }\n        }\n      } else {\n        if ($currentPlayListStore.length > 200) {\n          Toast(\"列表太长,等我加载...🥱🥱\", 1000, () => {\n            mainCoverTypeStore.set(\"list\");\n            setTimeout(() => {\n              playListDom.scrollTop = 60 * $currentSongIndexStore;\n            }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n          });\n        } else {\n          mainCoverTypeStore.set(\"list\");\n          setTimeout(() => {\n            playListDom.scrollTop = 60 * $currentSongIndexStore;\n          }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n        }\n      }\n    } else {\n      mainCoverTypeStore.set(\"cover\");\n    }\n  }\n  // 切换播放循环模式\n  function changeRrpeatFun(e) {\n    if ($playRepeatModelStore === \"heart\") {\n      Toast(\"心动模式无需切换\");\n    } else {\n      if ($playRepeatModelStore === \"repeat\") {\n        playRepeatModelStore.set(\"shuffle\");\n      } else if ($playRepeatModelStore === \"shuffle\") {\n        playRepeatModelStore.set(\"repeatOnce\");\n      } else {\n        playRepeatModelStore.set(\"repeat\");\n      }\n    }\n  }\n  //歌词区域点击\n  function lyricClickFun() {\n    mainCoverTypeStore.set(\"cover\");\n  }\n  //去歌曲评论页面\n  function toCommentFun() {\n    mainCoverTypeStore.set(\"cover\");\n    maxPlayToTopStore.set(window.screen.height + \"px\");\n    playIsMaxStore.set(false);\n    if (!($location === \"/comments\")) {\n      if ($isHomePageStore) isHomePageStore.set(false);\n      push(\"/comments\");\n    }\n  }\n  //滑动开始\n  function touchStart(e) {\n    touchStartTime = new Date().getTime();\n    touchStartY = e.changedTouches[0].clientY;\n    touchMoveToTop = 0;\n    maxPlayToTopStore.set(touchMoveToTop + \"px\");\n  }\n  //滑动结束\n  function touchEnd(e) {\n    touchEndTime = new Date().getTime();\n    touchEndY = e.changedTouches[0].clientY;\n    // 移动距离小于100不触发任何行为\n    // 移动结束时,播放器顶部距整个视窗顶部的距离大于屏幕高度一半的时候,可以不用考虑滑动速度,直接最小化播放器\n    // 移动距离超过100,播放器顶部距整个视窗顶部的距离还不到一半的时候,考虑速度,速度超过0.8,直接最小化;\n    // 速度小于0.3,不判断为最小化;0.3-0.8之间,如果移动距离超过250,最小化,不到250则不触发最小化。\n    if (touchMoveToTop >= window.screen.height / 2) {\n      //最小化\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set(\"cover\");\n    } else if (touchEndY - touchStartY <= 100) {\n      maxPlayToTopStore.set(\"0px\");\n    } else if (\n      touchEndY - touchStartY > 100 &&\n      (touchEndY - touchStartY) / (touchEndTime - touchStartTime) >= 0.8\n    ) {\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set(\"cover\");\n    } else if (\n      touchEndY - touchStartY > 100 &&\n      (touchEndY - touchStartY) / (touchEndTime - touchStartTime) <= 0.3\n    ) {\n      maxPlayToTopStore.set(\"0px\");\n    } else if (\n      0.3 < (touchEndY - touchStartY) / (touchEndTime - touchStartTime) < 0.8 &&\n      touchEndY - touchStartY > 250\n    ) {\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set(\"cover\");\n    } else {\n      maxPlayToTopStore.set(\"0px\");\n    }\n  }\n  //滑动过程\n  function touchMove(e) {\n    //阻止滑动时穿透问题\n    e.preventDefault();\n    e.stopPropagation();\n    if (parseFloat(playBgDom.style[\"top\"]) >= 0) {\n      touchMoveToTop = e.changedTouches[0].clientY - touchStartY;\n      maxPlayToTopStore.set(touchMoveToTop + \"px\");\n    }\n  }\n</script>\n\n<div\n  bind:this={playBgDom}\n  class=\"play-bg\"\n  style=\"background: url({$currentSongStore.al.picUrl.replace(\n    /^http:/,\n    'https:'\n  ) + '?param=800y800'});top:{$maxPlayToTopStore}\"\n>\n  <div class=\"play\">\n    <div class=\"top-box\">\n      <div\n        class=\"down\"\n        on:click={handleDown}\n        on:touchstart={touchStart}\n        on:touchend={touchEnd}\n        on:touchmove={touchMove}\n      >\n        <div class=\"down-line\" />\n      </div>\n      {#if $mainCoverTypeStore === \"cover\"}\n        <div\n          class=\"cover\"\n          on:click={handleDown}\n          on:touchstart={touchStart}\n          on:touchend={touchEnd}\n          on:touchmove={touchMove}\n          bind:this={coverDom}\n        >\n          <div>\n            <img\n              style=\"width:{$playStatusStore\n                ? '280px'\n                : '240px'};height:{$playStatusStore ? '280px' : '240px'}\"\n              src={$currentSongStore.al.picUrl.replace(/^http:/, \"https:\") +\n                \"?param=800y800\"}\n              alt=\"\"\n              class=\"cover-img\"\n            />\n          </div>\n        </div>\n      {:else if $mainCoverTypeStore === \"lyric\"}\n        <div class=\"lyric-cover\" on:click={lyricClickFun}>\n          <Lyric maxHeight=\"54vh\" />\n        </div>\n      {:else if !$isFMPlayStore && $mainCoverTypeStore === \"list\"}\n        <div class=\"song-list-box\" bind:this={playListDom}>\n          <SongList songList={$currentPlayListStore} />\n        </div>\n      {/if}\n    </div>\n    <div class=\"control-box\">\n      <div class=\"info\">\n        <div class=\"song\">\n          <div class=\"name\">\n            {$currentSongStore.name}\n            <span class=\"alia\">\n              {$currentSongStore.alia && $currentSongStore.alia.length > 0\n                ? `(${$currentSongStore.alia[0]})`\n                : \"\"}\n            </span>\n          </div>\n          <div\n            class=\"songer\"\n            on:click={() => {\n              if (songers.length === 1) {\n                if (songers[0].id != 0) {\n                  mainCoverTypeStore.set(\"cover\");\n                  maxPlayToTopStore.set(window.screen.height + \"px\");\n                  playIsMaxStore.set(false);\n                  isHomePageStore.set(false);\n                  currentDetailSongerIdStore.set(songers[0].id);\n                  push(`/artist?id=${songers[0].id}`);\n                }\n              } else {\n                PickerShow = true;\n              }\n            }}\n          >\n            {songerListToStr($currentSongStore.ar)}\n            <span>\n              {$currentSongStore.al.name === \"\"\n                ? \"\"\n                : `- ${$currentSongStore.al.name}`}\n            </span>\n          </div>\n        </div>\n        <div class=\"progress\">\n          <div class=\"line\">\n            <Progress\n              on:setCurrent={getCurrent}\n              on:setTimeCurrent={getTimeCurrent}\n              current={currentTimeLong}\n            />\n          </div>\n          <!-- 时间显示 -->\n          <div class=\"time\">\n            <div class=\"time-item start\">{currentTime}</div>\n            <div\n              class=\"time-item quality\"\n              on:click={() => {\n                mainCoverTypeStore.set(\"cover\");\n                maxPlayToTopStore.set(window.screen.height + \"px\");\n                playIsMaxStore.set(false);\n                if (!($location === \"/brSelect\")) {\n                  if ($isHomePageStore) isHomePageStore.set(false);\n                  push(\"/brSelect\");\n                }\n              }}\n            >\n              <span class=\"quality-span\">\n                {$currentSongQualityStore === \"FLAC\" ||\n                $currentSongQualityStore === \"试听\"\n                  ? $currentSongQualityStore\n                  : $currentSongQualityStore\n                      .toString()\n                      .substring(\n                        0,\n                        $currentSongQualityStore.toString().length - 3\n                      ) + \"K\"}\n              </span>\n            </div>\n            <div class=\"time-item end\">{endTime}</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"tool\">\n        <!-- 歌词 -->\n        <div\n          class=\"tool-item lyric\"\n          on:click={changeLyricFun}\n          bind:this={lyricDom}\n        >\n          {#if lyricLoading}\n            <span style=\"line-height: 30px;\">\n              <embed\n                width=\"24\"\n                height=\"24\"\n                src=\"/images/Ripple.svg\"\n                type=\"image/svg+xml\"\n              />\n            </span>\n          {:else if $mainCoverTypeStore === \"lyric\"}\n            <ChatQuoteFill size=\"20\" style=\"vertical-align: middle\" />\n          {:else}\n            <ChatQuoteLine size=\"20\" style=\"vertical-align: middle\" />\n          {/if}\n        </div>\n        {#if !$isFMPlayStore}\n          <!-- 播放列表 -->\n          <div\n            class=\"tool-item list\"\n            on:click={changeListFun}\n            bind:this={listDom}\n          >\n            {#if $mainCoverTypeStore === \"list\"}\n              <PlayListFill size=\"20\" style=\"vertical-align: middle\" />\n            {:else}\n              <PlayListLine size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </div>\n        {/if}\n        {#if $isFMPlayStore && $isLoginStore}\n          <!-- FM 不喜欢 -->\n          <div\n            class=\"tool-item list\"\n            on:click={handleFMNoLoveFun}\n            bind:this={disloveDom}\n          >\n            {#if noLikeLoading}\n              <span style=\"line-height: 30px;\">\n                <embed\n                  width=\"24\"\n                  height=\"24\"\n                  src=\"/images/Ripple.svg\"\n                  type=\"image/svg+xml\"\n                />\n              </span>\n            {:else}\n              <DislikeLine size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </div>\n        {/if}\n        {#if $isLoginStore}\n          <!-- 喜欢 -->\n          <div\n            class=\"tool-item love\"\n            on:click={handleLoveFun}\n            bind:this={loveDom}\n          >\n            {#if likeLoading}\n              <span style=\"line-height: 30px;\">\n                <embed\n                  width=\"24\"\n                  height=\"24\"\n                  src=\"/images/Ripple.svg\"\n                  type=\"image/svg+xml\"\n                />\n              </span>\n            {:else}\n              <span\n                style=\"color:{isLikeCurrentSong\n                  ? 'var(--primary-text-color)'\n                  : '#fff'}\"\n              >\n                {#if isLikeCurrentSong}\n                  <Heart2Fill size=\"20\" style=\"vertical-align: middle\" />\n                {:else}\n                  <Heart2Line size=\"20\" style=\"vertical-align: middle\" />\n                {/if}\n              </span>\n            {/if}\n          </div>\n        {/if}\n        {#if !$isFMPlayStore}\n          <!-- 播放模式 -->\n          <div\n            class=\"tool-item mode\"\n            on:click={(e) => changeRrpeatFun(e)}\n            bind:this={repeatDom}\n          >\n            {#if $playRepeatModelStore === \"repeat\"}\n              <SortDesc size=\"20\" style=\"vertical-align: middle\" />\n            {:else if $playRepeatModelStore === \"repeatOnce\"}\n              <RepeatOneLine size=\"20\" style=\"vertical-align: middle\" />\n            {:else if $playRepeatModelStore === \"heart\"}\n              <span class:heart-beat={$playStatusStore}>\n                <HeartPulseLine size=\"20\" style=\"vertical-align: middle\" />\n              </span>\n            {:else}\n              <ShuffleLine size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </div>\n        {/if}\n        <!-- 评论 -->\n        {#if $isShowCommentStore != \"0\"}\n          <div\n            class=\"tool-item comment\"\n            on:click={toCommentFun}\n            bind:this={commentDom}\n          >\n            <Message2Line size=\"20\" style=\"vertical-align: middle\" />\n          </div>\n        {/if}\n      </div>\n      <div class=\"control\">\n        <div\n          class=\"con-item pre\"\n          on:click={() => {\n            if (!$isFMPlayStore) playPreFun();\n          }}\n          bind:this={preDom}\n        >\n          {#if $isFMPlayStore}\n            <RadioLine\n              size=\"24px\"\n              style=\"vertical-align: middle;;height:80px\"\n            />\n          {:else}\n            <SkipBackFill\n              size=\"40px\"\n              style=\"vertical-align: middle;height:80px\"\n            />\n          {/if}\n        </div>\n        <div\n          class=\"con-item pause\"\n          bind:this={playDom}\n          on:click={() => {\n            if ($playStatusStore) {\n              window.audioDOM.pause();\n              playStatusStore.set(false);\n              localStorage.setItem(\"pauseTimes\", new Date().getTime());\n            } else {\n              //解决长时间不播放URL失效问题(暂定30分钟过期)\n              if (\n                (new Date().getTime() -\n                  Number(localStorage.getItem(\"pauseTimes\"))) /\n                  1000 /\n                  60 >\n                30\n              ) {\n                window.audioDOM.src = `https://music.163.com/song/media/outer/url?id=${$currentSongStore.id}.mp3`;\n              }\n              window.audioDOM.play();\n              playStatusStore.set(true);\n            }\n          }}\n        >\n          {#if $playStatusStore}\n            <PauseFill size=\"80px\" style=\"vertical-align: middle;height:80px\" />\n          {:else}\n            <PlayFill size=\"80px\" style=\"vertical-align: middle;height:80px\" />\n          {/if}\n        </div>\n        <div class=\"con-item next\" on:click={playNextFun} bind:this={nextDom}>\n          <SkipForwardFill\n            size=\"40px\"\n            style=\"vertical-align: middle;height:80px\"\n          />\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n{#if $playIsMaxStore && 0 < parseFloat($maxPlayToTopStore) < window.screen.height - 40}\n  <div\n    class=\"play-mask\"\n    style=\"background-color: rgba(0, 0, 0, {0.9 -\n      parseFloat($maxPlayToTopStore) / window.screen.height});\"\n  />\n{/if}\n\n<Picker\n  isShow={PickerShow}\n  title=\"请选择歌手\"\n  on:ChangeShow={(e) => {\n    PickerShow = e.detail.isShow;\n  }}\n  on:PickerClick={(e) => {\n    const { item: artist } = e.detail;\n    if (artist.id != 0) {\n      mainCoverTypeStore.set(\"cover\");\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      isHomePageStore.set(false);\n      currentDetailSongerIdStore.set(artist.id);\n      push(`/artist?id=${artist.id}`);\n    }\n  }}\n  list={songers}\n/>\n\n<style>\n  .alia {\n    color: rgb(255, 255, 255, 0.7);\n    font-size: 14px;\n    font-weight: normal;\n  }\n  .down {\n    text-align: center;\n    height: 6vh;\n    display: flex;\n  }\n  .down-line {\n    margin: auto;\n    width: 40px;\n    height: 6px;\n    border-radius: 3px;\n    margin: auto;\n    background: rgba(255, 255, 255, 0.8);\n  }\n  .line {\n    padding: 10px 20px;\n  }\n  .time {\n    font-size: 10px;\n    columns: 2;\n    padding: 0 18px;\n    color: rgba(255, 255, 255, 0.6);\n    display: flex;\n  }\n  .time-item {\n    flex: 1;\n  }\n  .start {\n    text-align: left;\n  }\n  .quality {\n    text-align: center;\n    display: inline-block;\n    opacity: 0.6;\n  }\n  .quality-span {\n    line-height: 13px;\n    font-size: 8px;\n    padding: 0 2px;\n    background-color: #fff;\n    border-radius: 2px;\n    color: rgb(99, 99, 99);\n  }\n  .end {\n    text-align: right;\n  }\n  .name {\n    margin-top: 20px;\n    font-size: 20px;\n    font-weight: bold;\n  }\n  .info {\n    text-align: left;\n  }\n  .song {\n    padding: 0 20px;\n  }\n  .songer {\n    margin-top: 6px;\n    font-size: 14px;\n    color: rgb(255, 255, 255, 0.7);\n  }\n  .play-bg {\n    width: 100vw;\n    height: 100vh;\n    position: fixed;\n    bottom: 0;\n    z-index: 999;\n    background-size: cover !important;\n    background-position: center !important;\n    transition: top 0.4s cubic-bezier(0.25, 1, 0.5, 1);\n    -webkit-transition: top 0.4s cubic-bezier(0.25, 1, 0.5, 1);\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .cover-img {\n    object-fit: cover;\n    transition: all 0.3s ease;\n    -webkit-transition: all 0.3s ease;\n  }\n  .play {\n    position: absolute;\n    z-index: 1001;\n    width: 100%;\n    height: 100%;\n    background: rgba(0, 0, 0, 0.4);\n    backdrop-filter: blur(20px);\n    -webkit-backdrop-filter: blur(20px);\n    color: #fff;\n    font-size: 26px;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  img {\n    display: block;\n    width: 220px;\n    height: 220px;\n    margin: auto;\n    border-radius: 10px;\n    box-shadow: 0 0 20px 0 rgb(0 0 0 / 20%);\n  }\n  .tool {\n    display: flex;\n    text-align: center;\n    width: 100%;\n    color: rgba(255, 255, 255, 0.8);\n  }\n  .tool-item {\n    flex: 1;\n    height: 30px;\n    position: relative;\n    overflow: hidden;\n    border-radius: 6px;\n  }\n  .control-box {\n    height: 40vh;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .control {\n    display: flex;\n    font-size: 40px;\n    text-align: center;\n    width: 100%;\n    color: rgba(255, 255, 255, 0.9);\n    align-items: center;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .con-item {\n    margin-bottom: 20px;\n    flex: 1;\n    border-radius: 40px;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .top-box {\n    height: 60vh;\n  }\n  .play-mask {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: 100vw;\n    height: 100vh;\n    background-color: rgba(0, 0, 0, 0.01);\n    z-index: 100;\n  }\n  .cover {\n    height: 54vh;\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .song-list-box {\n    scroll-behavior: smooth;\n    position: relative;\n    top: 0px;\n    max-height: 54vh;\n    overflow-x: auto;\n    transition: top 0.5s cubic-bezier(0.25, 1, 0.5, 1);\n    -webkit-transition: top 0.5s cubic-bezier(0.25, 1, 0.5, 1);\n  }\n  .heart-beat {\n    display: inline-block;\n    /* // 一个完整动画的持续时间 */\n    animation-duration: 1s;\n    /* // 动画循环次数:无限循环 */\n    animation-iteration-count: infinite;\n    /* // 调用的动画名,对应上面的 .heart-bounce */\n    animation-name: heart-bounce;\n  }\n  @keyframes heart-bounce {\n    from {\n      transform: scale(1);\n    }\n    12% {\n      transform: scale(1.02);\n    }\n    20% {\n      transform: scale(0.99);\n    }\n    28% {\n      transform: scale(0.98);\n    }\n    32% {\n      transform: scale(1.2);\n    }\n    38% {\n      transform: scale(0.96);\n    }\n    50% {\n      transform: scale(1);\n    }\n    58% {\n      transform: scale(0.98);\n    }\n    70% {\n      transform: scale(0.9);\n    }\n    80% {\n      transform: scale(0.98);\n    }\n    to {\n      transform: scale(1);\n    }\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { PlayFill, PauseFill, SkipForwardMiniFill } from 'svelte-remixicon';\n\n  import {\n    playIsMaxStore,\n    playStatusStore,\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    maxPlayToTopStore,\n    isFMPlayStore,\n    FMPlayNextStore,\n    FMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n  import { isHomePageStore } from '../store/common';\n\n  import { getSongUrl, personalFM } from '../api/song';\n\n  import { ripple, songerListToStr, Toast } from '../utils/common';\n\n  export let currentTimeLong = window.audioDOM.currentTime / window.audioDOM.duration; //进度条长度\n\n  let pauseDom;\n  let nextDom;\n  let touchStartX; //滑动开始时候触摸点Y坐标\n  let touchEndX; //滑动结束时候触摸点Y坐标\n  let touchStartTime = 0; //滑动开始时间戳\n  let touchEndTime = 0; //滑动结束时间戳\n  $: moveLong = 0; //移动距离\n\n  onMount(() => {\n    if (pauseDom) ripple(pauseDom);\n    if (nextDom) ripple(nextDom);\n  });\n\n  function handleMax() {\n    playIsMaxStore.set(true);\n    maxPlayToTopStore.set('0px');\n  }\n\n  function miniPlayFun() {\n    if ($playStatusStore) {\n      window.audioDOM.pause();\n      playStatusStore.set(false);\n      localStorage.setItem('pauseTimes', new Date().getTime());\n    } else {\n      //解决长时间不播放URL失效问题(暂定30分钟过期)\n      if ((new Date().getTime() - Number(localStorage.getItem('pauseTimes'))) / 1000 / 60 > 30) {\n        window.audioDOM.src = `https://music.163.com/song/media/outer/url?id=${$currentSongStore.id}.mp3`;\n      }\n      window.audioDOM.play();\n      playStatusStore.set(true);\n    }\n  }\n  function miniNextFun() {\n    if ($isFMPlayStore) {\n      //正在私人FM\n      getSongUrlFun($FMPlayNextStore, 'fm');\n    } else {\n      if ($currentSongIndexStore === $currentPlayListStore.length - 1) {\n        Toast('已经是最后一首了');\n      } else {\n        //随机模式\n        if ($playRepeatModelStore === 'shuffle') {\n          let index = Math.floor(Math.random() * ($currentPlayListStore.length - 1));\n          getSongUrlFun($currentPlayListStore[index], 'shuffle', index);\n        } else {\n          currentSongIndexStore.set($currentSongIndexStore + 1);\n          getSongUrlFun($currentPlayListStore[$currentSongIndexStore], 'next');\n        }\n      }\n    }\n  }\n  //获取歌曲URL\n  async function getSongUrlFun(song, type, index) {\n    const res = await getSongUrl(song.id);\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          //私人FM\n          personalFMFun();\n          FMPlayStore.set(song);\n          currentSongStore.set(song);\n          currentPlayListStore.set([$FMPlayStore]);\n          currentSongIndexStore.set(0);\n          localStorage.setItem('currentSong', JSON.stringify(song));\n        } else {\n          if (type === 'shuffle') {\n            //随机\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set(index);\n          } else {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          }\n        }\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  //私人FM\n  async function personalFMFun() {\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      FMPlayNextStore.set(res.data[0]);\n    }\n  }\n  //播放私人FM\n  function playFMFun() {\n    getSongUrlFun(FMSong);\n    isFMPlayStore.set(true);\n    localStorage.setItem('isFMPlay', '1');\n    localStorage.setItem('FMPlay', JSON.stringify(FMSong));\n    personalFMFun(true);\n  }\n  //滑动开始\n  function touchStart(e) {\n    touchStartTime = new Date().getTime();\n    touchStartX = e.changedTouches[0].clientX;\n  }\n  //滑动结束\n  function touchEnd(e) {\n    moveLong = 0;\n    touchEndTime = new Date().getTime();\n    touchEndX = e.changedTouches[0].clientX;\n    // 移动距离大于100,直接下一曲;\n    // 移动距离不超过100的时候,考虑速度,速度超过0.5,直接下一曲;\n    // 其他情况都是不触发\n    if (touchStartX - touchEndX > 100) {\n      miniNextFun();\n    } else if (touchStartX - touchEndX <= 100 && (touchStartX - touchEndX) / (touchEndTime - touchStartTime) >= 0.5) {\n      miniNextFun();\n    } else {\n    }\n  }\n  //滑动过程\n  function touchMove(e) {\n    //阻止滑动时穿透问题\n    e.preventDefault();\n    e.stopPropagation();\n    if (e.changedTouches[0].clientX - touchStartX < 0) {\n      moveLong = e.changedTouches[0].clientX - touchStartX;\n    }\n  }\n</script>\n\n<div\n  class=\"play secondary\"\n  style=\"bottom: {$isHomePageStore ? 56 : 0}px\"\n  on:touchstart={touchStart}\n  on:touchend={touchEnd}\n  on:touchmove={touchMove}\n>\n  <div class=\"progress\" style=\"width:{(currentTimeLong / 100) * window.screen.width}px;\" on:click={handleMax} />\n  <div class=\"cover\" on:click={handleMax} style=\"left:{moveLong}px\">\n    <Lazy height={50}>\n      <img src={$currentSongStore.al.picUrl.replace(/^http:/, 'https:') + '?param=800y800'} alt=\"\" />\n    </Lazy>\n  </div>\n  <div class=\"info\" on:click={handleMax} style=\"left:{moveLong}px\">\n    <div class=\"name\">\n      {$currentSongStore.name}\n      <span class=\"alia\">\n        {$currentSongStore.alia && $currentSongStore.alia.length > 0 ? `(${$currentSongStore.alia[0]})` : ''}\n      </span>\n    </div>\n    <div class=\"songer\">\n      {songerListToStr($currentSongStore.ar)}\n      <span>\n        {$currentSongStore.al.name === '' ? '' : `- ${$currentSongStore.al.name}`}\n      </span>\n    </div>\n  </div>\n  <div class=\"pause\" on:click={miniPlayFun} bind:this={pauseDom}>\n    {#if $playStatusStore}\n      <PauseFill size=\"40\" style=\"vertical-align: middle;height:57px\" />\n    {:else}\n      <PlayFill size=\"40\" style=\"vertical-align: middle;height:57px\" />\n    {/if}\n  </div>\n  <div class=\"next\" on:click={miniNextFun} bind:this={nextDom}>\n    <SkipForwardMiniFill size=\"40\" style=\"vertical-align: middle;height:57px\" />\n  </div>\n</div>\n\n<style>\n  .alia {\n    color: rgb(138, 138, 138);\n    font-size: 14px;\n    font-weight: normal;\n  }\n  .progress {\n    z-index: 100;\n    position: absolute;\n    bottom: 0;\n    width: 0%;\n    height: 60px;\n    background-image: linear-gradient(to right, rgba(197, 197, 197, 0.01), rgba(197, 197, 197, 0.3));\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .play {\n    z-index: 10;\n    width: 100%;\n    height: 60px;\n    position: fixed;\n    bottom: 0px;\n    display: flex;\n    align-items: center;\n    text-align: center;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n    border-top: 1px solid rgba(197, 197, 197, 0.4);\n    backdrop-filter: blur(20px);\n    -webkit-backdrop-filter: blur(20px);\n    background-color: rgba(255, 255, 255, 0.7);\n    transition: all 0.4s ease-in-out;\n    -webkit-transition: all 0.4s ease-in-out;\n  }\n  img {\n    width: 50px;\n    height: 50px;\n    border: rgb(214, 214, 214) solid 1px;\n    border-radius: 5px;\n    object-fit: cover;\n    overflow: hidden;\n  }\n  .cover {\n    width: 50px;\n    height: 50px;\n    padding: 5px;\n    overflow: hidden;\n    position: relative;\n    left: 0px;\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n  }\n  .pause {\n    flex: 1;\n    line-height: 57px;\n    z-index: 101;\n    border-radius: 30px;\n  }\n  .next {\n    z-index: 101;\n    flex: 1;\n    line-height: 57px;\n    border-radius: 30px;\n  }\n  .info {\n    flex: 3;\n    text-align: left;\n    font-size: 16px;\n    position: relative;\n    left: 0px;\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n  }\n  .name {\n    font-weight: bold;\n    align-items: center;\n    width: 186px;\n    height: 36px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box; /*作为弹性伸缩盒子模型显示。*/\n    -webkit-box-orient: vertical; /*设置伸缩盒子的子元素排列方式--从上到下垂直排列8*/\n    -webkit-line-clamp: 2;\n  }\n  .songer {\n    margin-top: 4px;\n    font-size: 12px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box; /*作为弹性伸缩盒子模型显示。*/\n    -webkit-box-orient: vertical; /*设置伸缩盒子的子元素排列方式--从上到下垂直排列8*/\n    -webkit-line-clamp: 1;\n  }\n</style>\n","<div class=\"bg\">\n  <div class=\"sk-chase\">\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n  </div>\n</div>\n\n<!-- <div class=\"bg\">\n  <div class=\"lds-ellipsis\">\n    <div />\n    <div />\n    <div />\n    <div />\n  </div>\n</div>\n\n<style>\n  .bg {\n    width: 100%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    bottom: 0;\n    z-index: 499;\n    background-color: rgba(138, 138, 138, 0.4);\n    align-items: center;\n    text-align: center;\n  }\n  .lds-ellipsis {\n    display: inline-block;\n    position: relative;\n    top: 45%;\n    width: 80px;\n    height: 80px;\n  }\n  .lds-ellipsis div {\n    position: absolute;\n    top: 33px;\n    width: 13px;\n    height: 13px;\n    border-radius: 50%;\n    background: #fff;\n    animation-timing-function: cubic-bezier(0, 1, 1, 0);\n  }\n  .lds-ellipsis div:nth-child(1) {\n    left: 8px;\n    animation: lds-ellipsis1 0.6s infinite;\n  }\n  .lds-ellipsis div:nth-child(2) {\n    left: 8px;\n    animation: lds-ellipsis2 0.6s infinite;\n  }\n  .lds-ellipsis div:nth-child(3) {\n    left: 32px;\n    animation: lds-ellipsis2 0.6s infinite;\n  }\n  .lds-ellipsis div:nth-child(4) {\n    left: 56px;\n    animation: lds-ellipsis3 0.6s infinite;\n  }\n  @keyframes lds-ellipsis1 {\n    0% {\n      transform: scale(0);\n    }\n    100% {\n      transform: scale(1);\n    }\n  }\n  @keyframes lds-ellipsis3 {\n    0% {\n      transform: scale(1);\n    }\n    100% {\n      transform: scale(0);\n    }\n  }\n  @keyframes lds-ellipsis2 {\n    0% {\n      transform: translate(0, 0);\n    }\n    100% {\n      transform: translate(24px, 0);\n    }\n  }\n</style> -->\n<style>\n  .bg {\n    width: 100%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    bottom: 0;\n    z-index: 499;\n    background-color: rgba(138, 138, 138, 0.4);\n    align-items: center;\n    text-align: center;\n  }\n  .sk-chase {\n    display: inline-block;\n    position: relative;\n    top: 45%;\n    width: 60px;\n    height: 60px;\n    animation: sk-chase 2.5s infinite linear both;\n  }\n  .sk-chase-dot {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    left: 0;\n    top: 0;\n    animation: sk-chase-dot 2s infinite ease-in-out both;\n  }\n  .sk-chase-dot:before {\n    content: \"\";\n    display: block;\n    width: 25%;\n    height: 25%;\n    background-color: #fff;\n    border-radius: 100%;\n    animation: sk-chase-dot-before 2s infinite ease-in-out both;\n  }\n  .sk-chase-dot:nth-child(1) {\n    animation-delay: -1.1s;\n  }\n  .sk-chase-dot:nth-child(2) {\n    animation-delay: -1s;\n  }\n  .sk-chase-dot:nth-child(3) {\n    animation-delay: -0.9s;\n  }\n  .sk-chase-dot:nth-child(4) {\n    animation-delay: -0.8s;\n  }\n  .sk-chase-dot:nth-child(5) {\n    animation-delay: -0.7s;\n  }\n  .sk-chase-dot:nth-child(6) {\n    animation-delay: -0.6s;\n  }\n  .sk-chase-dot:nth-child(1):before {\n    animation-delay: -1.1s;\n  }\n  .sk-chase-dot:nth-child(2):before {\n    animation-delay: -1s;\n  }\n  .sk-chase-dot:nth-child(3):before {\n    animation-delay: -0.9s;\n  }\n  .sk-chase-dot:nth-child(4):before {\n    animation-delay: -0.8s;\n  }\n  .sk-chase-dot:nth-child(5):before {\n    animation-delay: -0.7s;\n  }\n  .sk-chase-dot:nth-child(6):before {\n    animation-delay: -0.6s;\n  }\n  @keyframes sk-chase {\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  @keyframes sk-chase-dot {\n    80%,\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  @keyframes sk-chase-dot-before {\n    50% {\n      transform: scale(0.4);\n    }\n    100%,\n    0% {\n      transform: scale(1);\n    }\n  }\n</style>\n","import request from '../utils/request';\n// import { getCookies } from \"../utils/common\";\n\n/**\n * \n说明 : 调用此接口 ,传入手机号码, 可发送验证码\n必选参数 : phone: 手机号码\n可选参数 : ctcode: 国家区号,默认86即中国\n接口地址 : /captcha/sent\n调用例子 : /captcha/sent?phone=13xxx} uid \n * \n */\nexport function sendSmsCode(phone) {\n  return request({\n    url: '/captcha/sent',\n    method: 'get',\n    params: {\n      phone,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取用户详情\n * 说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户详情\n * - uid : 用户 id\n * @param {number} uid\n */\nexport function userDetail(uid) {\n  return request({\n    url: '/user/detail',\n    method: 'get',\n    params: {\n      uid,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取账号详情\n * 说明 : 登录后调用此接口 ,可获取用户账号信息\n */\nexport function userAccount(cookie) {\n  return request({\n    url: '/user/account',\n    method: 'get',\n    params: {\n      cookie,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取用户歌单\n * 说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户歌单\n * - uid : 用户 id\n * - limit : 返回数量 , 默认为 30\n * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0\n * @param {Object} params\n * @param {number} params.uid\n * @param {number} params.limit\n * @param {number=} params.offset\n */\nexport function userPlaylist(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/user/playlist',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 退出登录\n * 说明 : 调用此接口 , 可退出登录\n */\nexport function logout() {\n  return request({\n    url: '/logout',\n    method: 'post',\n  });\n}\n\n/**\n * 喜欢音乐列表(需要登录)\n * 说明 : 调用此接口 , 传入用户 id, 可获取已喜欢音乐id列表(id数组)\n * - uid: 用户 id\n * @param {number} uid\n */\nexport function userLikedSongsIDs(uid) {\n  return request({\n    url: '/likelist',\n    method: 'get',\n    params: {\n      uid,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 每日签到\n * 说明 : 调用此接口 , 传入签到类型 ( 可不传 , 默认安卓端签到 ), 可签到 ( 需要登录 ), 其中安卓端签到可获得 3 点经验 , web/PC 端签到可获得 2 点经验\n * -  type: 签到类型 , 默认 0, 其中 0 为安卓端签到 ,1 为 web/PC 签到\n * @param {number} type\n */\nexport function dailySignin(type = 0) {\n  return request({\n    url: '/daily_signin',\n    method: 'post',\n    params: {\n      type,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取收藏的专辑(需要登录)\n * 说明 : 调用此接口可获取到用户收藏的专辑\n * - limit : 返回数量 , 默认为 25\n * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*25, 其中 25 为 limit 的值 , 默认为 0\n * @param {Object} params\n * @param {number} params.limit\n * @param {number=} params.offset\n */\nexport function likedAlbums(params) {\n  return request({\n    url: '/album/sublist',\n    method: 'get',\n    params: {\n      limit: params.limit,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取收藏的歌手(需要登录)\n * 说明 : 调用此接口可获取到用户收藏的歌手\n */\nexport function likedArtists(params) {\n  return request({\n    url: '/artist/sublist',\n    method: 'get',\n    params: {\n      limit: params.limit,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取收藏的MV(需要登录)\n * 说明 : 调用此接口可获取到用户收藏的MV\n */\nexport function likedMVs(params) {\n  return request({\n    url: '/mv/sublist',\n    method: 'get',\n    params: {\n      limit: params.limit,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 上传歌曲到云盘(需要登录)\n */\nexport function uploadSong(file) {\n  let formData = new FormData();\n  formData.append('songFile', file);\n  return request({\n    url: '/cloud',\n    method: 'post',\n    params: {\n      timestamp: new Date().getTime(),\n    },\n    data: formData,\n    headers: {\n      'Content-Type': 'multipart/form-data',\n    },\n  });\n}\n\n/**\n * 获取云盘歌曲(需要登录)\n * 说明 : 登录后调用此接口 , 可获取云盘数据 , 获取的数据没有对应 url, 需要再调用一 次 /song/url 获取 url\n * - limit : 返回数量 , 默认为 200\n * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*200, 其中 200 为 limit 的值 , 默认为 0\n * @param {Object} params\n * @param {number} params.limit\n * @param {number=} params.offset\n */\nexport function cloudDisk(params = {}) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/user/cloud',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 获取云盘歌曲详情(需要登录)\n */\nexport function cloudDiskTrackDetail(id) {\n  return request({\n    url: '/user/cloud/detail',\n    method: 'get',\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n\n/**\n * 删除云盘歌曲(需要登录)\n * @param {Array} id\n */\nexport function cloudDiskTrackDelete(id) {\n  return request({\n    url: '/user/cloud/del',\n    method: 'get',\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n","<script>\n  import { createEventDispatcher, onMount, afterUpdate } from 'svelte';\n\n  import { ripple } from '../utils/common';\n\n  export let title = '首页';\n  export let desc = '暂无描述';\n  export let isRefresh = false; //是否刷新中\n  export let topTitleRightList = {};\n  const dispatch = createEventDispatcher();\n  function setClick(index) {\n    dispatch('IconClick', {\n      index,\n    });\n  }\n\n  let rightDoms;\n\n  onMount(() => {\n    if (rightDoms) {\n      ripple(rightDoms);\n    }\n    return () => {\n      rightDoms = null;\n    };\n  });\n  afterUpdate(() => {\n    if (rightDoms) {\n      ripple(rightDoms);\n    }\n  });\n</script>\n\n<div class=\"top-title\">\n  <div class=\"title\">\n    <h1>{title}<span class=\"desc\">&nbsp;&nbsp;&nbsp;{desc}</span></h1>\n  </div>\n  {#if topTitleRightList}\n    <div class=\"right\" bind:this={rightDoms}>\n      {#if topTitleRightList.type === 'icon'}\n        <span class:rotate-icon={isRefresh} on:click={() => setClick(0)}>\n          <svelte:component this={topTitleRightList.path} size=\"24\" />\n        </span>\n      {:else}\n        <span class=\"right-text\" on:click={() => setClick(0)}>{topTitleRightList.text}</span>\n      {/if}\n    </div>\n  {/if}\n</div>\n\n<style>\n  .rotate-icon {\n    display: inline-block;\n    -webkit-animation: myRotate 2s linear infinite;\n    animation: myRotate 2s linear infinite;\n  }\n  @keyframes myRotate {\n    0% {\n      transform: rotate(0deg);\n    }\n    50% {\n      transform: rotate(180deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  .top-title {\n    background-image: linear-gradient(#fff, #f4f4f4);\n    display: flex;\n    justify-content: space-between;\n    padding: 20px;\n  }\n  .right-text {\n    display: inline-block;\n    font-size: 16px;\n    line-height: 32px;\n  }\n  .right {\n    font-size: 32px;\n    line-height: 36px;\n  }\n  h1 {\n    text-align: left;\n    font-size: 32px;\n    font-weight: bold;\n    margin: 0px;\n  }\n  .desc {\n    font-size: 12px;\n    font-weight: 400;\n  }\n</style>\n","import { writable } from \"svelte/store\";\n\n//歌单ID\nexport const playListIdStore = writable(\"\");\n\n//歌单详情\nexport const playListDetailStore = writable({});\n\n//今日推荐歌曲列表\nexport const todayListStore = writable([]);\n","<script>\n  import { onMount } from \"svelte\";\n  import Lazy from \"svelte-lazy\";\n  import { push } from \"svelte-stack-router\";\n  import { PlayMiniLine } from \"svelte-remixicon\";\n\n  import { playListIdStore } from \"../store/playList\";\n  import { isHomePageStore } from \"../store/common\";\n\n  import { ripple, tranNumber, Confirm } from \"../utils/common\";\n\n  export let coverImgUrl = \"\";\n  export let playCount = 0;\n  export let name = \"\";\n  export let copywriter = \"\";\n  export let id = 0;\n  export let width = 150;\n  export let trackCount = 0;\n\n  const noop = () => void 0;\n\n  noop(\"trackCount\", trackCount);\n\n  let coverDom;\n  onMount(() => {\n    if (coverDom) {\n      ripple(coverDom);\n    }\n  });\n  function goToDetail() {\n    isHomePageStore.set(false);\n    push(`/playlist?id=${id}`);\n  }\n</script>\n\n<div\n  class=\"cover\"\n  on:click={goToDetail}\n  style=\"width:{width}px\"\n  bind:this={coverDom}\n>\n  <div class=\"cover-img\" style=\"width:{width}px;height:{width}px\">\n    <Lazy height={width}>\n      <img\n        src={coverImgUrl.replace(/^http:/, \"https:\") +\n          `?param=${width * 2}y${width * 2}`}\n        alt=\"\"\n      />\n    </Lazy>\n  </div>\n  <div class=\"play-num\">\n    <span style=\"position: relative;top:1px\">\n      <PlayMiniLine />\n    </span>\n    {tranNumber(playCount)}\n  </div>\n  <div class=\"name\" style=\"width:{width}px;\">{name}</div>\n  {#if copywriter && copywriter !== null && copywriter !== \"\"}\n    <div class=\"copywriter\">{copywriter}</div>\n  {/if}\n</div>\n\n<style>\n  .play-num {\n    margin: 4px auto;\n    font-size: 10px;\n    color: rgb(146, 146, 146);\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n  .copywriter {\n    margin: 4px auto;\n    font-size: 12px;\n    color: rgb(146, 146, 146);\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n    height: 26px;\n  }\n  .cover {\n    width: 105px;\n    padding-bottom: 10px;\n  }\n  .cover-img {\n    overflow: hidden;\n    width: 150px;\n    height: 150px;\n  }\n  img {\n    width: 100%;\n    border-radius: 6px;\n  }\n  .name {\n    margin-top: 4px;\n    line-height: 16px;\n    width: 150px;\n    height: 32px;\n    font-size: 12px;\n    text-align: left;\n    font-weight: bold;\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n</style>\n","<script>\n  import { createEventDispatcher, onMount } from 'svelte';\n  import { ArrowRightSLine } from 'svelte-remixicon';\n\n  import { Tip } from './base';\n  import PlayListCover from './Album.svelte';\n\n  import { ripple } from '../utils/common';\n\n  export let title = '';\n  export let playList = [];\n  export let isShowMore = true;\n  export let isShowTip = false;\n  export let tipTextList = '';\n  export let iconText = '更多';\n\n  const dispatch = createEventDispatcher();\n  function setTitleClick() {\n    dispatch('titleClick');\n  }\n\n  let titleDom;\n\n  onMount(() => {\n    if (titleDom) ripple(titleDom);\n  });\n</script>\n\n<div class=\"grid\">\n  <div class=\"title\" on:click={setTitleClick} bind:this={titleDom}>\n    <div class=\"title-left\">{title}</div>\n    {#if isShowMore}\n      <div class=\"title-right\">\n        {iconText}\n        <span class=\"title-icon\">\n          <ArrowRightSLine size=\"24\" style=\"vertical-align: middle;\" />\n        </span>\n      </div>\n    {/if}\n  </div>\n  {#if isShowTip}\n    <div class=\"tip\">\n      <Tip {tipTextList} />\n    </div>\n  {/if}\n  <slot />\n  <div class=\"list\">\n    {#each playList as play}\n      <div class=\"item\">\n        <PlayListCover\n          name={play.name}\n          coverImgUrl={play.coverImgUrl}\n          id={play.id}\n          width={220}\n          playCount={play.playCount}\n          copywriter={play.copywriter ? play.copywriter : ''}\n          trackCount={play.trackCount}\n        />\n      </div>\n    {/each}\n  </div>\n</div>\n\n<style>\n  .tip {\n    padding: 10px 20px;\n  }\n  .title-icon {\n    position: relative;\n    top: -2px;\n  }\n  .title-right {\n    line-height: 24px;\n    border-radius: 10px;\n    font-size: 14px;\n    color: #666;\n    height: 24px;\n    text-align: center;\n    margin-right: 20px;\n  }\n  .title {\n    text-align: left;\n    margin-left: 20px;\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 10px;\n    display: flex;\n    justify-content: space-between;\n  }\n  .list {\n    text-align: left;\n    white-space: nowrap;\n    overflow-x: scroll;\n    overflow-y: hidden;\n    display: flex;\n  }\n  .item {\n    margin-right: 20px;\n    flex-shrink: 0;\n    display: inline-block;\n  }\n  .list > :global(:first-child) {\n    margin-left: 20px;\n  }\n  .list > :global(:last-child) {\n    margin-right: 20px;\n  }\n  ::-webkit-scrollbar {\n    display: none; /* Chrome Safari */\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { push } from 'svelte-stack-router';\n  import { StarSFill } from 'svelte-remixicon';\n\n  import { isHomePageStore, currentDetailSongerIdStore } from '../store/common';\n\n  import { ripple } from '../utils/common';\n\n  export let songer = {};\n  export let coverSize = 200;\n  let useLoveSongerIds = JSON.parse(localStorage.getItem('useLoveSongerIds')) || [];\n  let songerDom;\n  onMount(() => {\n    // if (songerDom) {\n    //   ripple(songerDom);\n    // }\n  });\n  function toSongerPageFun() {\n    isHomePageStore.set(false);\n    currentDetailSongerIdStore.set(songer.id);\n    push(`/artist?id=${songer.id}`);\n  }\n</script>\n\n<div class=\"singer\" on:click={toSongerPageFun} bind:this={songerDom}>\n  {#if useLoveSongerIds.includes(songer.id)}\n    <div class=\"star\">\n      <StarSFill size=\"14\" style=\"vertical-align: middle\" />\n    </div>\n  {/if}\n  <div class=\"cover\">\n    <Lazy height={100}>\n      <img src={songer.img1v1Url.replace(/^http:/, 'https:') + '?param=' + coverSize + 'y' + coverSize} alt=\"\" />\n    </Lazy>\n  </div>\n  <div class=\"name\">{songer.name}</div>\n</div>\n\n<style>\n  .singer {\n    padding: 10px 0;\n    text-align: center;\n    position: relative;\n  }\n  .star {\n    position: absolute;\n    left: 0;\n    top: 0;\n    color: var(--primary-text-color);\n  }\n  .cover img {\n    border-radius: 100%;\n    width: 100%;\n    height: 100%;\n  }\n  .name {\n    margin-top: 6px;\n    font-size: 12px;\n    height: 26px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n</style>\n","import request from '../utils/request';\n// import { mapTrackPlayableStatus } from '@/utils/common';\n\n/**\n * 说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌单\n * @param {number} id\n * @returns\n */\nexport function getSimiPlaylist(id) {\n  return request({\n    url: '/simi/playlist',\n    method: 'get',\n    params: { id },\n  });\n}\n\n/**\n * 推荐歌单\n * 说明 : 调用此接口 , 可获取推荐歌单\n * - limit: 取出数量 , 默认为 30 (不支持 offset)\n * - 调用例子 : /personalized?limit=1\n * @param {Object} params\n * @param {number=} params.limit\n */\nexport function recommendPlaylist(params) {\n  return request({\n    url: '/personalized',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 心动模式/智能播放\n * 说明 : 登录后调用此接口 , 可获取心动模式/智能播放列表 必选参数 : id : 歌曲 id\n * pid : 歌单 id\n * 可选参数 : sid : 要开始播放的歌曲的 id\n * 接口地址 : /playmode/intelligence/list\n * 调用例子 : /playmode/intelligence/list?id=33894312&pid=24381616 , /playmode/intelligence/list?id=33894312&pid=24381616&sid=36871368\n * @param {object} params\n * @param {number=} params.id\n * @param {number=} params.pid\n * @param {number=} params.sid\n * @returns\n */\nexport function intelligenceList(params) {\n  return request({\n    url: '/playmode/intelligence/list',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 获取每日推荐歌单\n * 说明 : 调用此接口 , 可获得每日推荐歌单 ( 需要登录 )\n * @param {Object} params\n * @param {number=} params.limit\n */\nexport function dailyRecommendPlaylist(params) {\n  return request({\n    url: '/recommend/resource',\n    method: 'get',\n    params,\n  });\n}\n/**\n * 获取歌单详情\n * 说明 : 歌单能看到歌单名字, 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id, 可以获取对应歌单内的所有的音乐(未登录状态只能获取不完整的歌单,登录后是完整的),\n * 但是返回的trackIds是完整的,tracks 则是不完整的,可拿全部 trackIds 请求一次 song/detail 接口\n * 获取所有歌曲的详情 (https://github.com/Binaryify/NeteaseCloudMusicApi/issues/452)\n * - id : 歌单 id\n * - s : 歌单最近的 s 个收藏者, 默认为8\n * @param {number} id\n * @param {boolean=} noCache\n */\nexport function getPlaylistDetail(id, noCache = false) {\n  let params = { id };\n  if (noCache) params.timestamp = new Date().getTime();\n  return request({\n    url: '/playlist/detail',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * \n * 精品歌单标签列表\n说明 : 调用此接口 , 可获取精品歌单标签列表\n\n接口地址 : /playlist/highquality/tags\n\n调用例子 : /playlist/highquality/tags} params \n * @returns \n */\n\nexport function highQualityCat(params) {\n  return request({\n    url: '/playlist/highquality/tags',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 获取精品歌单\n * 说明 : 调用此接口 , 可获取精品歌单\n * - cat: tag, 比如 \" 华语 \"、\" 古风 \" 、\" 欧美 \"、\" 流行 \", 默认为 \"全部\", 可从精品歌单标签列表接口获取(/playlist/highquality/tags)\n * - limit: 取出歌单数量 , 默认为 20\n * - before: 分页参数,取上一页最后一个歌单的 updateTime 获取下一页数据\n * @param {Object} params\n * @param {string} params.cat\n * @param {number=} params.limit\n * @param {number} params.before\n */\nexport function highQualityPlaylist(params) {\n  return request({\n    url: '/top/playlist/highquality',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 歌单 ( 网友精选碟 )\n * 说明 : 调用此接口 , 可获取网友精选碟歌单\n * - order: 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 'hot'\n * - cat: tag, 比如 \" 华语 \"、\" 古风 \" 、\" 欧美 \"、\" 流行 \", 默认为 \"全部\",可从歌单分类接口获取(/playlist/catlist)\n * - limit: 取出歌单数量 , 默认为 50\n * - offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值\n * @param {Object} params\n * @param {string} params.order\n * @param {string} params.cat\n * @param {number} params.limit\n * @param {number} params.offset\n */\nexport function topPlaylist(params) {\n  return request({\n    url: '/top/playlist',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 歌单分类\n * 说明 : 调用此接口,可获取歌单分类,包含 category 信息\n */\nexport function playlistCatlist() {\n  return request({\n    url: '/playlist/catlist',\n    method: 'get',\n  });\n}\n/**\n * 热门歌单分类\n * 说明 : 调用此接口,可获取歌单分类,包含 category 信息\n */\nexport function playlistHotCatlist() {\n  return request({\n    url: '/playlist/hot',\n    method: 'get',\n  });\n}\n\n/**\n * 所有榜单\n * 说明 : 调用此接口,可获取所有榜单 接口地址 : /toplist\n */\nexport function toplists() {\n  return request({\n    url: '/toplist',\n    method: 'get',\n  });\n}\n\n/**\n * 收藏/取消收藏歌单\n * 说明 : 调用此接口, 传入类型和歌单 id 可收藏歌单或者取消收藏歌单\n * - t : 类型,1:收藏,2:取消收藏\n * - id : 歌单 id\n * @param {Object} params\n * @param {number} params.t\n * @param {number} params.id\n */\nexport function subscribePlaylist(id, isSubscribe) {\n  return request({\n    url: '/playlist/subscribe',\n    method: 'post',\n    params: {\n      id, t: isSubscribe ? 1 : 2,\n      timestamp: new Date().getTime(),\n    },\n    // needCookie: false,\n  });\n}\n\n/**\n * 删除歌单\n * 说明 : 调用此接口 , 传入歌单id可删除歌单\n * - id : 歌单id,可多个,用逗号隔开\n *  * @param {number} id\n */\nexport function deletePlaylist(id) {\n  return request({\n    url: '/playlist/delete',\n    method: 'post',\n    params: { id },\n  });\n}\n\n/**\n * 新建歌单\n * 说明 : 调用此接口 , 传入歌单名字可新建歌单\n * - name : 歌单名\n * - privacy : 是否设置为隐私歌单,默认否,传'10'则设置成隐私歌单\n * - type : 歌单类型,默认'NORMAL',传 'VIDEO'则为视频歌单\n * @param {Object} params\n * @param {string} params.name\n * @param {number} params.privacy\n * @param {string} params.type\n */\nexport function createPlaylist(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/playlist/create',\n    method: 'post',\n    params,\n  });\n}\n\n/**\n * 对歌单添加或删除歌曲\n * 说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 )\n * - op: 从歌单增加单曲为 add, 删除为 del\n * - pid: 歌单 id tracks: 歌曲 id,可多个,用逗号隔开\n * @param {Object} params\n * @param {string} params.op\n * @param {string} params.pid\n */\nexport function addOrRemoveTrackFromPlaylist(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/playlist/tracks',\n    method: 'post',\n    params,\n  });\n}\n\n/**\n * 每日推荐歌曲\n * 说明 : 调用此接口 , 可获得每日推荐歌曲 ( 需要登录 )\n * @param {Object} params\n * @param {string} params.op\n * @param {string} params.pid\n */\nexport function dailyRecommendTracks() {\n  return request({\n    url: '/recommend/songs',\n    method: 'get',\n    params: { timestamp: new Date().getTime() },\n  }).then(result => {\n    // result.data.dailySongs = mapTrackPlayableStatus(\n    //   result.data.dailySongs,\n    //   result.data.privileges\n    // );\n    return result;\n  });\n}\n","import request from '../utils/request';\n\n/**\n * 获取歌手详情\n * 说明 : 调用此接口 , 传入歌手 id, 可获得获取歌手详情\n * 必选参数 : id: 歌手 id\n * 接口地址 : /artist/detail\n * 调用例子 : /artist/detail?id=11972054 (Billie Eilish)\n */\nexport function getSongerDetail(id) {\n  return request({\n    url: '/artist/detail',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n/**\n * 获取歌手描述\n * 说明 : 调用此接口 , 传入歌手 id, 可获得歌手描述\n * 必选参数 : id: 歌手 id\n * 接口地址 : /artist/desc\n * 调用例子 : /artist/desc?id=6452 ( 周杰伦 )\n */\nexport function getSongerDesc(id) {\n  return request({\n    url: '/artist/desc',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n/**\n * 歌手热门50首歌曲\n * 说明 : 调用此接口,可获取歌手热门50首歌曲\n * 必选参数 : id: 歌手 id\n * 接口地址 : /artist/top/song\n * 调用例子 : /artist/top/song?id=6452 ( 周杰伦 )\n */\nexport function getSongerTop(id) {\n  return request({\n    url: '/artist/top/song',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n\n/**\n * 收藏歌手\n * 说明 : 调用此接口 , 传入歌手 id, 可收藏歌手\n * - id: 歌手 id\n * - t: 操作,1 为收藏,其他为取消收藏\n * @param {Object} params\n * @param {number} params.id\n * @param {number} params.t\n */\nexport function followAArtist(params) {\n  return request({\n    url: '/artist/sub',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 相似歌手\n * 说明 : 调用此接口 , 传入歌手 id, 可获得相似歌手\n * - id: 歌手 id\n * @param {number} id\n */\nexport function similarArtists(id) {\n  return request({\n    url: '/simi/artist',\n    method: 'get',\n    params: { id },\n  });\n}\n\n/**\n * 歌手歌手\n * 说明 : 调用此接口 , 可获取热门歌手数据\n * - 可选参数 : limit: 取出数量 , 默认为 50\n * offset: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认 为 0\n * 接口地址 : /top/artists\n * 调用例子 : /top/artists?offset=0&limit=30\n */\nexport function topArtists(limit, offset) {\n  return request({\n    url: '/top/artists',\n    method: 'get',\n    params: { limit, offset },\n  });\n}\n\n/**\n * 歌手全部歌曲\n说明 : 调用此接口,可获取歌手全部歌曲 必选参数 :\nid : 歌手 id\n可选参数 :\norder : hot ,time 按照热门或者时间排序\nlimit: 取出歌单数量 , 默认为 50\noffset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值\n接口地址 : /artist/songs\n调用例子 : /artist/songs?id=6452\n */\nexport function getAllSongs(id, order, limit, offset) {\n  return request({\n    url: '/artist/songs',\n    method: 'get',\n    params: { id, order, limit, offset },\n  });\n}\n","<script>\n  import { onMount } from \"svelte\";\n  import { push } from \"svelte-stack-router\";\n  import {\n    RadioFill,\n    RefreshLine,\n    Calendar2Fill,\n    GitRepositoryPrivateLine,\n  } from \"svelte-remixicon\";\n\n  import TopTitle from \"../components/TopTitle.svelte\";\n  import { Button } from \"../components/base\";\n  import ListGrid from \"../components/ListGrid.svelte\";\n  import SongList from \"../components/SongList.svelte\";\n  import Songer from \"../components/Singer.svelte\";\n\n  import { isLoginStore, defaultCover } from \"../store/common\";\n  import {\n    playIsMaxStore,\n    playStatusStore,\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    maxPlayToTopStore,\n    FMPlayStore,\n    isFMPlayStore,\n    FMPlayNextStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import { isHomePageStore } from \"../store/common\";\n  import { todayListStore } from \"../store/playList\";\n  import { userLikeListIdStore } from \"../store/user\";\n\n  import {\n    dailyRecommendTracks,\n    getSimiPlaylist,\n    dailyRecommendPlaylist,\n    getPlaylistDetail,\n  } from \"../api/playlist\";\n  import {\n    getSongUrl,\n    personalFM,\n    getSongDetail,\n    getSimiSong,\n  } from \"../api/song\";\n  import { similarArtists, getSongerDetail } from \"../api/songer\";\n  import { songerListToStr, Toast, ripple, fullWidth } from \"../utils/common\";\n\n  let dailyRecommendPlayList = []; //每日歌单推荐\n  let randomLoveSong = {}; //随机一个喜欢歌曲\n  let similarPlayList = []; //相似歌单推荐\n  let randomTenLoveSong = {}; //随机一个喜欢歌曲\n  let similarSongs = []; //相似歌曲推荐\n  let topTitleRightList = {\n    type: \"icon\",\n    path: RefreshLine,\n  };\n  let FMDom;\n  let todayDom;\n  $: isRefresh = false;\n  $: simiSonger = {};\n  $: simiSongers = [];\n\n  onMount(() => {\n    if (FMDom) {\n      ripple(FMDom);\n    }\n    if (todayDom) {\n      ripple(todayDom);\n    }\n    allOnMount();\n  });\n  function allOnMount() {\n    if ($isLoginStore) {\n      dailyRecommendPlaylistFun();\n      dailyRecommendTracksFun();\n      personalFMFun(true);\n      let useLoveSongIds =\n        JSON.parse(localStorage.getItem(\"useLoveSongIds\")) || [];\n      let randomIndex = Math.floor(Math.random() * useLoveSongIds.length);\n      getSongDetailFun(useLoveSongIds[randomIndex]);\n      getSimiPlaylistFun(useLoveSongIds[randomIndex]);\n      getPlaylistDetailFun();\n      //收藏随机歌手一位\n      const useLoveSongerIds =\n        JSON.parse(localStorage.getItem(\"useLoveSongerIds\")) || [];\n      let index = Math.floor(Math.random() * useLoveSongerIds.length);\n      if (index) {\n        getSongerDetailFun(useLoveSongerIds[index]);\n        similarArtistsFun(useLoveSongerIds[index], useLoveSongerIds);\n      }\n    }\n  }\n  //今日推荐歌曲\n  function playTodayFun() {\n    isHomePageStore.set(false);\n    push(\"/todayListDetail\");\n  }\n  //播放私人FM\n  function playFMFun() {\n    if ($FMPlayStore.id === $currentSongStore.id) {\n      window.audioDOM.play();\n      playStatusStore.set(true);\n      playIsMaxStore.set(true);\n      maxPlayToTopStore.set(\"0px\");\n    } else {\n      isFMPlayStore.set(true);\n      localStorage.setItem(\"isFMPlay\", \"1\");\n      getSongUrlFun($FMPlayStore);\n    }\n  }\n  //请求私人FM\n  async function personalFMFun(first) {\n    //first 是否是第一次请求私人FM\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      res.data[1].al = res.data[1].album;\n      res.data[1].ar = res.data[1].artists;\n      res.data[1].alia = res.data[1].alias;\n      if (first) {\n        FMPlayStore.set(res.data[0]);\n        FMPlayNextStore.set(res.data[1]);\n        localStorage.setItem(\"FMPlay\", JSON.stringify($FMPlayStore));\n      } else {\n        FMPlayStore.set(res.data[0]);\n      }\n    }\n  }\n  //每日推荐歌曲\n  async function dailyRecommendTracksFun() {\n    const res = await dailyRecommendTracks();\n    if (res.code === 200) {\n      todayListStore.set(res.data.dailySongs);\n    }\n  }\n  //每日推荐歌单\n  async function dailyRecommendPlaylistFun() {\n    const res = await dailyRecommendPlaylist();\n    if (res.code === 200) {\n      let olddailyRecommendPlayList = res.recommend;\n      if (\n        olddailyRecommendPlayList[0].copywriter === \"猜你喜欢\" &&\n        olddailyRecommendPlayList[0].name.indexOf(\"私人雷达\") > -1\n      ) {\n        getPlaylistDetailFun(true, olddailyRecommendPlayList);\n      } else {\n        dailyRecommendPlayList = olddailyRecommendPlayList;\n      }\n    }\n  }\n  //请求歌曲详情\n  async function getSongDetailFun(id) {\n    const res = await getSongDetail(id); //获取歌单详情\n    if (res.code === 200) {\n      randomLoveSong = res.songs[0];\n    }\n  }\n  //请求相似歌单\n  async function getSimiPlaylistFun(id) {\n    const res = await getSimiPlaylist(id); //获取歌单详情\n    if (res.code === 200) {\n      similarPlayList = res.playlists;\n    }\n  }\n  //请求相似歌曲\n  async function getSimiSongFun(id) {\n    const res = await getSimiSong(id); //获取歌单详情\n    if (res.code === 200) {\n      if (isRefresh) isRefresh = false;\n      for (let t = 0; t < res.songs.length; t++) {\n        res.songs[t].al = res.songs[t].album;\n        res.songs[t].ar = res.songs[t].artists;\n      }\n      similarSongs = res.songs;\n    }\n  }\n  //请求歌单详情\n  async function getPlaylistDetailFun(isRadar = false, list) {\n    const res = await getPlaylistDetail(\n      isRadar ? list[0].id : $userLikeListIdStore\n    ); //获取歌单详情\n    if (res.code === 200) {\n      if (isRadar) {\n        if (\n          list[0].copywriter === \"猜你喜欢\" &&\n          list[0].name.indexOf(\"私人雷达\") > -1\n        ) {\n          list[0].copywriter = list[0].name;\n          list[0].picUrl = res.playlist.tracks[0].al.picUrl;\n          list[0].name = `从《${res.playlist.tracks[0].name}》开始听吧`;\n        }\n        for (let i = 0; i < list.length; i++) {\n          list[i].coverImgUrl = list[i].picUrl;\n          list[i].playCount = list[i].playcount;\n        }\n        dailyRecommendPlayList = list;\n      }\n      let randomIndexTen = Math.round(Math.random() * 20); //喜欢歌曲最新20首随机一首\n      randomTenLoveSong = res.playlist.tracks[randomIndexTen];\n      if (randomTenLoveSong) getSimiSongFun(randomTenLoveSong.id);\n    }\n  }\n  //获取歌曲URL\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id);\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          currentPlayListStore.set([song]);\n          currentSongIndexStore.set(0);\n          currentSongStore.set(song);\n          song.al = song.album;\n          song.ar = song.artists;\n          song.alia = song.alias;\n          FMPlayStore.set(song);\n          localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        }\n      } else {\n        Toast(\n          `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n          2000\n        );\n      }\n    }\n  }\n  //获取相似歌手\n  async function similarArtistsFun(id, useLoveSongerIds) {\n    const res = await similarArtists(id);\n    if (res.code === 200) {\n      let newSongerIds = [];\n      for (let e = 0; e < res.artists.length; e++) {\n        newSongerIds.push(res.artists[e].id);\n      }\n      let artists = distinct(newSongerIds, useLoveSongerIds); //交集\n      for (let t = 0; t < artists.length; t++) {\n        for (let p = 0; p < res.artists.length; p++) {\n          if (artists[t] === res.artists[p].id) {\n            res.artists.splice(p, 1);\n          }\n        }\n      }\n      simiSongers =\n        res.artists.length > 6 ? res.artists.slice(0, 6) : res.artists;\n    }\n  }\n  //获取随机歌手信息\n  async function getSongerDetailFun(id) {\n    const res = await getSongerDetail(id);\n    if (res.code === 200) {\n      simiSonger = res.data.artist;\n    }\n  }\n  //数组去重\n  function distinct(A, B) {\n    let aSet = new Set(A);\n    let bSet = new Set(B);\n    //差集\n    // let differenceSet = new Set([...aSet].filter(x => !bSet.has(x)));\n    // return Array.from(differenceSet);\n    // 交集;\n    let intersection = new Set([...aSet].filter((x) => bSet.has(x)));\n    return Array.from(intersection);\n  }\n  function topClickFun(event) {\n    if (event.detail.index === 0) {\n      allOnMount();\n    }\n  }\n</script>\n\n<div class=\"love\">\n  {#if $isLoginStore}\n    <div class=\"login-box\">\n      <TopTitle\n        title=\"推荐\"\n        desc=\"专属推荐\"\n        {topTitleRightList}\n        {isRefresh}\n        on:IconClick={topClickFun}\n      />\n      <div class=\"login\">\n        <div class=\"today\" on:click={playTodayFun} bind:this={todayDom}>\n          <div\n            class=\"today-img-box\"\n            style=\"width: {fullWidth() -\n              40}px;background-image:url({$todayListStore.length !== 0\n              ? $todayListStore[0].al.picUrl.replace(/^http:/, 'https:') +\n                '?param=800y800'\n              : defaultCover})\"\n          />\n          <div class=\"day-box\">\n            <div class=\"day\">今日推荐</div>\n            <div class=\"name-list\">\n              <div class=\"name\">\n                {$todayListStore.length !== 0 ? $todayListStore[0].name : \"\"}\n              </div>\n              <div class=\"songer\">\n                {$todayListStore.length !== 0\n                  ? songerListToStr($todayListStore[0].ar)\n                  : \"\"}\n              </div>\n              <div class=\"calendar\">\n                <span style=\"position:relative;top:2px \">\n                  <Calendar2Fill size=\"14\" />\n                </span>{`${\n                  new Date().getMonth() + 1\n                }月${new Date().getDate()}日`}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div\n          class=\"fm-box\"\n          on:click={playFMFun}\n          style=\"background:url({$FMPlayStore.album\n            ? $FMPlayStore.album.blurPicUrl.replace(/^http:/, 'https:') +\n              '?param=80y80'\n            : ''})\"\n          bind:this={FMDom}\n        >\n          <div class=\"fm\">\n            <div class=\"fm-cover\">\n              <img\n                class=\"fm-cover-img\"\n                src={$FMPlayStore.album\n                  ? $FMPlayStore.album.blurPicUrl.replace(/^http:/, \"https:\") +\n                    \"?param=240y240\"\n                  : \"\"}\n                alt=\"\"\n              />\n            </div>\n            <div class=\"fm-info\">\n              {#if $isFMPlayStore && $playStatusStore && $currentSongStore.id === $FMPlayStore.id}\n                <div class=\"fm-play-motion\">\n                  <div class=\"pull_down pull_down1\" />\n                  <div class=\"pull_down pull_down2\" />\n                  <div class=\"pull_down pull_down3\" />\n                  <div class=\"pull_down pull_down4\" />\n                  <div class=\"pull_down pull_down5\" />\n                  <div class=\"pull_down pull_down6\" />\n                  <div class=\"pull_down pull_down7\" />\n                  <div class=\"pull_down pull_down8\" />\n                  <div class=\"pull_down pull_down9\" />\n                  <div class=\"pull_down pull_down10\" />\n                </div>\n              {/if}\n              <div class=\"fm-name\">\n                {$FMPlayStore.name ? $FMPlayStore.name : \"\"}\n                <span class=\"alia\">\n                  {$FMPlayStore.alia && $FMPlayStore.alia.length > 0\n                    ? `(${$FMPlayStore.alia[0]})`\n                    : \"\"}\n                </span>\n              </div>\n              <div class=\"fm-songer\">\n                {$FMPlayStore.artists\n                  ? songerListToStr($FMPlayStore.artists)\n                  : \"\"}\n                {#if $FMPlayStore.al}\n                  <span>\n                    {$FMPlayStore.al.name === \"\"\n                      ? \"\"\n                      : `- ${$FMPlayStore.al.name}`}\n                    <!-- {$FMPlayStore.al === true}\n                  {$FMPlayStore.album === true} -->\n                    <!-- {$FMPlayStore.al\n                    ? $FMPlayStore.al.name === \"\"\n                      ? \"\"\n                      : `- ${$FMPlayStore.al.name}`\n                    : $FMPlayStore.album.name === \"\"\n                    ? \"\"\n                    : `- ${$FMPlayStore.album.name}`} -->\n                  </span>\n                {/if}\n              </div>\n              <div class=\"fm-icon\">\n                <span style=\"position:relative;top:2px \">\n                  <RadioFill size=\"14\" />\n                </span>\n                私人 FM\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"list-grid\">\n          <ListGrid\n            title=\"每日歌单推荐\"\n            isShowMore={false}\n            playList={dailyRecommendPlayList}\n          />\n        </div>\n        {#if similarSongs.length > 0}\n          <div class=\"simiTitle\">相似歌曲推荐</div>\n          <div class=\"desc\">根据单曲《{randomTenLoveSong.name}》推荐</div>\n          <SongList songList={similarSongs} />\n        {/if}\n        {#if similarPlayList.length > 0}\n          <div class=\"list-grid\">\n            <ListGrid\n              title=\"相似歌单推荐\"\n              isShowMore={false}\n              isShowTip={true}\n              tipTextList={[`根据单曲《${randomLoveSong.name}》推荐`]}\n              playList={similarPlayList}\n            />\n          </div>\n        {/if}\n        {#if simiSongers.length > 0 && simiSonger.name}\n          <div class=\"simiTitle\">相似歌手推荐</div>\n          <div class=\"desc\">根据【{simiSonger.name}】推荐</div>\n          <div class=\"songer-box\">\n            {#each simiSongers as songer}\n              <Songer {songer} coverSize={330} />\n            {/each}\n          </div>\n        {/if}\n      </div>\n    </div>\n  {:else}\n    <div>\n      <TopTitle\n        title=\"推荐\"\n        desc=\"专属推荐\"\n        topTitleRightList={{ type: \"text\", text: \"\" }}\n      />\n      <div class=\"noLogin\">\n        <div>\n          <img class=\"login-img\" src=\"images/login.png\" alt=\"\" />\n        </div>\n        <div class=\"tip\">推荐功能需要登录</div>\n        <div class=\"login-btn\">\n          <Button\n            type=\"primary\"\n            on:BtnClick={() => {\n              isHomePageStore.set(false);\n              push(\"/login\");\n            }}\n          >\n            立即登录\n          </Button>\n        </div>\n      </div>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .alia {\n    color: rgb(255, 255, 255, 0.7);\n    font-size: 14px;\n    font-weight: normal;\n  }\n  .fm-songer {\n    color: rgb(255, 255, 255, 0.7);\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 1;\n  }\n  .simiTitle {\n    margin-top: 20px;\n    text-align: left;\n    margin-left: 20px;\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 10px;\n  }\n  .desc {\n    font-size: 12px;\n    color: rgb(141, 141, 141);\n    text-align: justify;\n    margin: 10px 0;\n    padding: 0 20px;\n  }\n  .list-grid {\n    margin-top: 30px;\n  }\n  .fm-play-motion {\n    position: absolute;\n    width: 100%;\n    height: 74px;\n    display: flex;\n    justify-content: space-around;\n    align-items: flex-end;\n  }\n  .pull_down {\n    flex: 1;\n    height: 6px;\n    margin: 0px 6px;\n    border-top-left-radius: 20px;\n    border-top-right-radius: 20px;\n    background: rgba(255, 255, 255, 0.1);\n  }\n  .pull_down1 {\n    -webkit-animation: jumpY1 1.5s infinite ease-in-out;\n    -o-animation: jumpY1 1.5s infinite ease-in-out;\n    animation: jumpY1 1.5s infinite ease-in-out;\n  }\n  .pull_down2 {\n    -webkit-animation: jumpY2 1.2s infinite ease-in-out;\n    -o-animation: jumpY2 1.2s infinite ease-in-out;\n    animation: jumpY2 1.2s infinite ease-in-out;\n  }\n  .pull_down3 {\n    -webkit-animation: jumpY3 1s infinite ease-in-out;\n    -o-animation: jumpY3 1s infinite ease-in-out;\n    animation: jumpY3 1s infinite ease-in-out;\n  }\n  .pull_down4 {\n    -webkit-animation: jumpY4 1.1s infinite ease-in-out;\n    -o-animation: jumpY4 1.1s infinite ease-in-out;\n    animation: jumpY4 1.1s infinite ease-in-out;\n  }\n  .pull_down5 {\n    -webkit-animation: jumpY5 1.6 infinite ease-in-out;\n    -o-animation: jumpY5 1.6s infinite ease-in-out;\n    animation: jumpY5 1.6s infinite ease-in-out;\n  }\n  .pull_down6 {\n    -webkit-animation: jumpY6 1.5s infinite ease-in-out;\n    -o-animation: jumpY6 1.5s infinite ease-in-out;\n    animation: jumpY6 1.5s infinite ease-in-out;\n  }\n  .pull_down7 {\n    -webkit-animation: jumpY7 1.7s infinite ease-in-out;\n    -o-animation: jumpY7 1.7s infinite ease-in-out;\n    animation: jumpY7 1.7s infinite ease-in-out;\n  }\n  .pull_down8 {\n    -webkit-animation: jumpY8 1.9s infinite ease-in-out;\n    -o-animation: jumpY8 1.9s infinite ease-in-out;\n    animation: jumpY8 1.9s infinite ease-in-out;\n  }\n  .pull_down9 {\n    -webkit-animation: jumpY9 1.1s infinite ease-in-out;\n    -o-animation: jumpY9 1.1s infinite ease-in-out;\n    animation: jumpY9 1.1s infinite ease-in-out;\n  }\n  .pull_down10 {\n    -webkit-animation: jumpY10 1.5s infinite ease-in-out;\n    -o-animation: jumpY10 1.5s infinite ease-in-out;\n    animation: jumpY10 1.5s infinite ease-in-out;\n  }\n  @keyframes jumpY1 {\n    0% {\n      height: 74px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 74px;\n    }\n  }\n  @keyframes jumpY2 {\n    0% {\n      height: 44px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 44px;\n    }\n  }\n  @keyframes jumpY3 {\n    0% {\n      height: 30px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 30px;\n    }\n  }\n  @keyframes jumpY4 {\n    0% {\n      height: 51px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 51px;\n    }\n  }\n  @keyframes jumpY5 {\n    0% {\n      height: 51px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 51px;\n    }\n  }\n  @keyframes jumpY6 {\n    0% {\n      height: 61px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 61px;\n    }\n  }\n  @keyframes jumpY7 {\n    0% {\n      height: 47px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 47px;\n    }\n  }\n  @keyframes jumpY8 {\n    0% {\n      height: 21px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 21px;\n    }\n  }\n  @keyframes jumpY9 {\n    0% {\n      height: 61px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 61px;\n    }\n  }\n  @keyframes jumpY10 {\n    0% {\n      height: 49px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 49px;\n    }\n  }\n  .noLogin {\n    width: 80%;\n    margin: auto;\n  }\n  .login-img {\n    width: 80%;\n  }\n  .tip {\n    margin: 20px 0;\n    font-size: 18px;\n    text-align: center;\n  }\n  .login {\n    text-align: center;\n  }\n  .login-box {\n    top: 0px;\n    position: relative;\n  }\n  .love {\n    font-size: 14px;\n    margin-bottom: constant(safe-area-inset-bottom);\n    margin-bottom: env(safe-area-inset-bottom);\n    padding-bottom: 120px;\n  }\n  .today {\n    margin: 0 20px;\n    border-radius: 10px;\n    color: #fff;\n    overflow: hidden;\n    transform: rotate(0deg);\n    position: relative;\n  }\n  .today-img-box {\n    height: 335px;\n    width: 335px;\n    overflow: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: -3;\n    animation: move 40s infinite;\n    background-image: url(\"/images/defaultCover.png\");\n    -webkit-animation: move 40s infinite;\n    -webkit-background-size: cover;\n    -moz-background-size: cover;\n    -o-background-size: cover;\n    background-size: cover;\n  }\n  @keyframes move {\n    0% {\n      transform: translateY(-47%);\n    }\n    50% {\n      transform: translateY(0);\n    }\n    100% {\n      transform: translateY(-47%);\n    }\n  }\n  .day-box {\n    height: 180px;\n    border-radius: 10px;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    background-image: linear-gradient(\n      to bottom,\n      rgba(0, 0, 0, 0) 0%,\n      rgba(0, 0, 0, 0.1) 20%,\n      rgba(0, 0, 0, 0.2) 40%,\n      rgba(0, 0, 0, 0.3) 60%,\n      rgba(0, 0, 0, 0.5) 100%\n    );\n  }\n  .day {\n    flex: 1;\n    font-size: 40px;\n    line-height: 90px;\n    font-weight: bold;\n  }\n  .name {\n    margin-bottom: 10px;\n    font-size: 18px;\n    font-weight: bold;\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n  .name-list {\n    flex: 1;\n    padding: 10px;\n    font-size: 14px;\n    text-align: left;\n  }\n  .fm {\n    display: flex;\n    background: rgba(0, 0, 0, 0.4);\n    backdrop-filter: blur(30px);\n    -webkit-backdrop-filter: blur(30px);\n    padding: 10px;\n    border-radius: 10px;\n  }\n  .fm-box {\n    margin: 0 20px;\n    color: #fff;\n    border-radius: 10px;\n    margin-top: 20px;\n    background: url(\"\");\n    background-size: cover !important;\n    background-position: 50% 50% !important;\n  }\n  .fm-cover {\n    flex: 1;\n    height: 74px;\n    width: 74px;\n    overflow: hidden;\n    border-radius: 5px;\n  }\n  .fm-cover-img {\n    width: 100%;\n    border-radius: 5px;\n  }\n  .fm-info {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    margin-left: 10px;\n    text-align: left;\n    flex: 3;\n  }\n  .fm-name {\n    font-size: 18px;\n    font-weight: bold;\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n  .fm-icon {\n    text-align: right;\n    font-size: 12px;\n  }\n  .calendar {\n    text-align: right;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { push } from 'svelte-stack-router';\n  import { SearchLine } from 'svelte-remixicon';\n\n  import { Title, Button } from '../components/base';\n  import TopTitle from '../components/TopTitle.svelte';\n  import ListGrid from '../components/ListGrid.svelte';\n  import Songer from '../components/Singer.svelte';\n\n  import { isHomePageStore, isLoginStore } from '../store/common';\n\n  import {\n    topPlaylist,\n    toplists,\n    highQualityPlaylist,\n    playlistCatlist,\n    playlistHotCatlist,\n    highQualityCat,\n  } from '../api/playlist';\n  import { topArtists } from '../api/songer';\n\n  let topPlayList = [];\n  let highquality = [];\n  let offList = [];\n  let topOrderList = [];\n  let topTitleRightList = {\n    type: 'icon',\n    path: SearchLine,\n  };\n  $: allList = [];\n  $: active1 = 0;\n  $: tab2list = [];\n  $: active2 = 0;\n  $: categories = {};\n  $: HotCatlist = [];\n  $: hotSongers = [];\n  $: cat = '';\n  $: heigcat = '';\n  $: heigtab2list = ['默认'];\n  $: heigActive = 0;\n\n  onMount(() => {\n    allMount();\n  });\n  function allMount() {\n    playlistHotCatlistFun();\n    highQualityCatFun();\n    offPlaylistFun();\n    toplistsFun();\n    topArtistsFun();\n  }\n  //获取热门歌单分类\n  async function playlistHotCatlistFun() {\n    const res = await playlistHotCatlist();\n    if (res.code === 200) {\n      HotCatlist = res.tags;\n      HotCatlist.unshift({ name: '默认', category: 0 });\n      playlistCatlistFun();\n    }\n  }\n  //获取精品歌单分类\n  async function highQualityCatFun() {\n    const res = await highQualityCat();\n    if (res.code === 200) {\n      for (let r = 0; r < res.tags.length; r++) {\n        heigtab2list.push(res.tags[r].name);\n      }\n      heigcat = heigtab2list[0];\n      highQualityPlaylistFun(heigcat);\n    }\n  }\n  //获取歌单分类\n  async function playlistCatlistFun() {\n    const res = await playlistCatlist();\n    if (res.code === 200) {\n      categories = res.categories;\n      categories['5'] = '热门';\n      allList = dealWithData(res.sub);\n      allList.unshift({ category: 5, allData: HotCatlist });\n      active1 = allList[0].category;\n      tab2list = allList.filter(item => item.category === active1)[0].allData;\n      active2 = 0;\n      cat = tab2list[0].name;\n      topPlaylistFun(tab2list[0].name);\n    }\n  }\n  //热门歌单\n  async function topPlaylistFun(cat) {\n    const res = await topPlaylist({ limit: 6, cat: cat === '默认' ? '全部' : cat });\n    if (res.code === 200) {\n      topPlayList = res.playlists;\n    }\n  }\n  //精品歌单\n  async function highQualityPlaylistFun(cat) {\n    const res = await highQualityPlaylist({ limit: 6, cat: cat === '默认' ? '全部' : cat });\n    if (res.code === 200) {\n      highquality = res.playlists;\n    }\n  }\n  //官方歌单\n  async function offPlaylistFun() {\n    const res = await topPlaylist({ limit: 6, cat: '官方' });\n    if (res.code === 200) {\n      offList = res.playlists;\n    }\n  }\n  //排行榜\n  async function toplistsFun() {\n    const res = await toplists();\n    if (res.code === 200) {\n      topOrderList = res.list;\n    }\n  }\n  //热门歌手\n  async function topArtistsFun() {\n    const res = await topArtists(9);\n    if (res.code === 200) {\n      hotSongers = res.artists;\n    }\n  }\n  // 查看全部热门歌手\n  function hotSongersFun() {\n    isHomePageStore.set(false);\n    push('/moreSonger');\n  }\n  function topClickFun(event) {\n    if (event.detail.index === 0) {\n      isHomePageStore.set(false);\n      push('/search');\n    }\n  }\n  function dealWithData(data) {\n    let c = [];\n    let d = {};\n    data.forEach(element => {\n      if (!d[element.category]) {\n        c.push({\n          category: element.category,\n          allData: [element],\n        });\n        d[element.category] = element;\n      } else {\n        c.forEach(ele => {\n          if (ele.category == element.category) {\n            ele.allData.push(element);\n          }\n        });\n      }\n    });\n    return c;\n  }\n</script>\n\n<TopTitle title=\"发现\" desc=\"歌单广场\" {topTitleRightList} on:IconClick={topClickFun} />\n<div class=\"page\">\n  {#if topPlayList.length > 0}\n    <div style=\"margin-top: 10px;\">\n      <ListGrid\n        title={tab2list.length > 0 ? `${tab2list[active2].name} - 精选歌单` : `默认-精选歌单`}\n        playList={topPlayList}\n        on:titleClick={() => {\n          isHomePageStore.set(false);\n          push('/moreList?cat=' + cat + '&type=top');\n        }}\n      >\n        <div>\n          <div class=\"tab-1-box\">\n            {#each allList as category}\n              <div\n                class=\"tab1\"\n                class:tab1-active={active1 === category.category}\n                on:click={() => {\n                  active1 = category.category;\n                  tab2list = allList.filter(item => item.category === active1)[0].allData;\n                  active2 = 0;\n                  cat = tab2list[0].name;\n                  topPlaylistFun(tab2list[0].name);\n                }}\n              >\n                {categories[category.category]}\n              </div>\n            {/each}\n          </div>\n          <div class=\"tab-2-box\">\n            {#each tab2list as tab, i}\n              <span\n                class=\"tab2\"\n                class:tab1-active={active2 === i}\n                on:click={() => {\n                  active2 = i;\n                  cat = tab.name;\n                  topPlaylistFun(tab.name);\n                }}\n              >\n                {tab.name}\n              </span>\n            {/each}\n            <div class=\"mask\" />\n          </div>\n        </div>\n      </ListGrid>\n    </div>\n  {/if}\n  {#if offList.length > 0}\n    <div class=\"list-grid\">\n      <ListGrid\n        title=\"官方歌单\"\n        playList={offList}\n        on:titleClick={() => {\n          isHomePageStore.set(false);\n          push('/moreList?cat=官方');\n        }}\n      />\n    </div>\n  {/if}\n  {#if topOrderList.length > 0}\n    <div class=\"list-grid\">\n      <ListGrid title=\"排行榜\" isShowMore={false} playList={topOrderList} />\n    </div>\n  {/if}\n  {#if hotSongers.length > 0}\n    <Title title=\"热门歌手\" isShowRight={true} on:TitleClick={hotSongersFun} />\n    <div class=\"songer-box\">\n      {#each hotSongers as songer}\n        <Songer {songer} coverSize={330} />\n      {/each}\n    </div>\n  {/if}\n  {#if highquality.length > 0}\n    <div class=\"list-grid\">\n      <ListGrid\n        title={heigtab2list.length > 0 ? `${heigtab2list[heigActive]} - 精品歌单` : `默认-精品歌单`}\n        playList={highquality}\n        isShowMore={highquality.length < 6 ? false : true}\n        on:titleClick={() => {\n          isHomePageStore.set(false);\n          push('/moreList?cat=' + heigcat + '&type=high');\n        }}\n      >\n        <div class=\"tab-2-box\">\n          {#each heigtab2list as tab, i}\n            <span\n              class=\"tab2\"\n              class:tab1-active={heigActive === i}\n              on:click={() => {\n                heigActive = i;\n                heigcat = tab;\n                highQualityPlaylistFun(tab);\n              }}\n            >\n              {tab}\n            </span>\n          {/each}\n          <div class=\"mask\" />\n        </div>\n      </ListGrid>\n    </div>\n  {/if}\n</div>\n\n<style>\n\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .list-grid {\n    margin-top: 30px;\n  }\n  .page {\n    padding-bottom: 120px;\n    font-size: 16px;\n  }\n  .tab-1-box {\n    display: flex;\n    padding: 0px 20px;\n    font-size: 12px;\n    justify-content: space-between;\n  }\n  .tab1 {\n    background-color: #fff;\n    border-radius: 4px;\n    padding: 4px 0;\n    width: 50px;\n    text-align: center;\n  }\n  .tab-2-box {\n    width: 100%;\n    overflow-x: auto;\n    white-space: nowrap;\n    display: flex;\n    font-size: 12px;\n  }\n  .tab-2-box:global(::-webkit-scrollbar) {\n    width: 0 !important;\n  }\n  .tab2 {\n    background-color: #fff;\n    border-radius: 4px;\n    padding: 4px 10px;\n    margin: 10px;\n  }\n  .tab-2-box > :global(:first-child) {\n    margin-left: 20px;\n  }\n  .tab-2-box > :global(:nth-last-child(2)) {\n    margin-right: 40px;\n  }\n  .tab1-active {\n    background-color: var(--primary-text-color);\n    color: #fff;\n  }\n  .mask {\n    position: absolute;\n    right: 0;\n    width: 40px;\n    height: 40px;\n    background-color: #f4f4f4;\n    -webkit-mask: linear-gradient(to left, #000, transparent);\n    mask: linear-gradient(to left, #000, transparent);\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { push } from 'svelte-stack-router';\n  import { RefreshLine, ArrowRightSLine, PlayFill, HeartPulseFill } from 'svelte-remixicon';\n\n  import { Button, Title } from '../components/base';\n  import TopTitle from '../components/TopTitle.svelte';\n  import ListGrid from '../components/ListGrid.svelte';\n  import Songer from '../components/Singer.svelte';\n\n  import { getSongDetail, getSongUrl } from '../api/song';\n  import { userPlaylist, likedArtists } from '../api/user';\n  import { getPlaylistDetail, intelligenceList } from '../api/playlist';\n\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentSongIndexStore,\n    currentPlayListStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n  import { isLoginStore, isHomePageStore } from '../store/common';\n  import { userLikeSongIdsStore, userInfoStore, userLikeListIdStore } from '../store/user';\n\n  import { Toast, Alert, ripple } from '../utils/common';\n\n  let loveSongDom;\n  let infoDom;\n  $: randomList = [];\n  $: collectList = [];\n  $: createList = [];\n  $: randomFontSize = [];\n  $: randomTop = [];\n  $: randomleft = [];\n  $: randomIds = [];\n  $: randomAll = [];\n  $: isRequsetSucc = false;\n  $: isRefresh = false;\n  $: collectSongers = []; //收藏的歌手\n  let topTitleRightList = {\n    type: 'icon',\n    path: RefreshLine,\n  };\n  let newuserLikeSongIdsStore =\n    typeof $userLikeSongIdsStore === 'string' ? JSON.parse($userLikeSongIdsStore) : $userLikeSongIdsStore;\n  onMount(() => {\n    if (loveSongDom) {\n      ripple(loveSongDom);\n    }\n    if (infoDom) {\n      ripple(infoDom);\n    }\n    allOnMount();\n  });\n  //初始化页面事件\n  function allOnMount() {\n    if ($isLoginStore) {\n      randomFontSize = getRandom(10, 30, 10);\n      randomTop = getRandom(0, 200, 10);\n      randomleft = getRandom(-50, 300, 10);\n      randomIds = getRandom(0, JSON.parse(localStorage.getItem('useLoveSongIds')).length, 10);\n      let ids = [];\n      for (let i = 0; i < randomIds.length; i++) {\n        ids.push(JSON.parse(localStorage.getItem('useLoveSongIds'))[randomIds[i]]);\n      }\n      getSongDetailFun(ids.join(','));\n      userPlaylistFun();\n      likedArtistsFun();\n    }\n  }\n  //获取收藏的歌手\n  async function likedArtistsFun() {\n    const res = await likedArtists({ limit: 6 });\n    if (res.code === 200) {\n      collectSongers = res.data;\n    }\n  }\n  // 全部歌手\n  function collectSongersFun() {\n    isHomePageStore.set(false);\n    push('/allCollectSongers');\n  }\n  //获取用户收藏歌单ID列表\n  async function userPlaylistFun(login) {\n    const res = await userPlaylist({ uid: $userInfoStore.account.id });\n    if (res.code === 200) {\n      isRefresh = false;\n      let createListL = [];\n      let collectListL = [];\n      //去除喜欢的音乐\n      if (\n        res.playlist[0].creator.userId === $userInfoStore.account.id &&\n        res.playlist[0].name.substr(-5) === '喜欢的音乐'\n      ) {\n        userLikeListIdStore.set(res.playlist[0].id);\n        localStorage.setItem('userLikeListId', res.playlist[0].id);\n        res.playlist.splice(0, 1);\n      }\n      for (let i = 0; i < res.playlist.length; i++) {\n        if (res.playlist[i].creator.userId === $userInfoStore.account.id) {\n          createListL.push(res.playlist[i]);\n        } else {\n          collectListL.push(res.playlist[i]);\n        }\n      }\n      //创建的\n      createList = createListL.length >= 10 ? createListL.slice(0, 10) : createListL;\n      //收藏的\n      collectList = collectListL.length >= 10 ? collectListL.slice(0, 10) : collectListL;\n    } else {\n      Toast('获取收藏歌单失败');\n    }\n  }\n  //获取指定数量、指定范围内随机数\n  function getRandom(n, m, sum) {\n    let arr = [];\n    for (let i = 0; i < sum; i++) {\n      arr.push(Math.floor(Math.random() * (m - n + 1) + n));\n    }\n    return arr;\n  }\n  //所有获取歌曲详情\n  async function getSongDetailFun(songIds) {\n    isRequsetSucc = false;\n    if (songIds.slice(0, 1) === ',') {\n      songIds = songIds.substr(1);\n    }\n    songIds = songIds.replace(',,', ',');\n    const res = await getSongDetail(songIds, true);\n    if (res.code === 200) {\n      randomList = res.songs;\n      randomAll = [];\n      for (let u = 0; u < randomList.length; u++) {\n        randomAll.push({\n          name: randomList[u].name,\n          size: randomFontSize[u],\n          top: randomTop[u],\n          left: randomleft[u],\n          img: randomList[u].al.picUrl,\n          id: randomList[u].id,\n        });\n      }\n      isRequsetSucc = true;\n    }\n  }\n  //刷新\n  function topClickFun(event) {\n    if (event.detail.index === 0) {\n      allOnMount();\n    }\n  }\n  //去喜欢歌曲页面\n  function goToLoveListFun() {\n    isHomePageStore.set(false);\n    push('/loveListDetail');\n  }\n  //创建歌单全部\n  function createTitleFun() {\n    isHomePageStore.set(false);\n    push('/myAllPlayList?create');\n  }\n  //收藏歌单全部\n  function collectTitleFun() {\n    isHomePageStore.set(false);\n    push('/myAllPlayList?collect');\n  }\n  //去设置页面\n  function toSettingFun() {\n    isHomePageStore.set(false);\n    push('/setting');\n  }\n  //快速播放\n  function quickPlayFun(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    getPlaylistDetailFun();\n  }\n  //心动模式\n  async function heartPlayFun(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    //从喜欢的歌曲id中随机出一首开启心动模式\n    const randomLikeSongId = newuserLikeSongIdsStore[Math.floor(Math.random() * newuserLikeSongIdsStore.length)];\n    const res = await intelligenceList({ id: randomLikeSongId, pid: $userLikeListIdStore });\n    if (res.code === 200) {\n      getSongUrl(randomLikeSongId);\n      let songsInfoList = [];\n      for (let r = 0; r < res.data.length; r++) {\n        songsInfoList.push(res.data[r].songInfo);\n      }\n      getFirstDetail(randomLikeSongId, songsInfoList);\n    }\n  }\n  async function getFirstDetail(randomLikeSongId, data) {\n    const res = await getSongDetail(randomLikeSongId, true);\n    if (res.code === 200) {\n      let songs = [res.songs[0], ...data];\n      currentPlayListStore.set(songs);\n      let ids = [];\n      for (let r = 0; r < songs.length; r++) {\n        ids.push(songs[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n      playListFun(true);\n    }\n  }\n  //请求歌单详情\n  async function getPlaylistDetailFun() {\n    const res = await getPlaylistDetail($userLikeListIdStore); //获取歌单详情\n    if (res.code === 200) {\n      let songIdList = [];\n      for (let i = 0; i < res.playlist.trackIds.length; i++) {\n        songIdList.push(res.playlist.trackIds[i].id);\n      }\n      if (songIdList.length > 400) {\n        Toast('歌曲较多,拼命加载中,请稍等!', 2000);\n      }\n      getQuickSongDetailFun(songIdList.join(','));\n      getSongUrl(songIdList[0]);\n    }\n  }\n  //获取所有歌曲详情\n  async function getQuickSongDetailFun(songIds) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      currentPlayListStore.set(res.songs);\n      playListFun(false);\n    }\n  }\n  //播放列表\n  function playListFun(isHeart) {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    currentSongIndexStore.set(0);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore], isHeart);\n  }\n  async function getSongUrlFun(song, isHeart) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        isHeart ? playRepeatModelStore.set('heart') : playRepeatModelStore.set('repeat');\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Alert(\n          isHeart\n            ? `😂 心动模式随机的第一首「${song.name}」无法播放!可能是版权原因......吧!请重新开启心动模式。`\n            : `😂 真不巧,您喜欢歌单的第一首--「${song.name}」就无法播放!可能是版权原因......吧!请进入音乐列表选择后面的歌曲播放。`\n        );\n      }\n    }\n  }\n</script>\n\n<TopTitle\n  title=\"我的\"\n  desc=\"曲库与设置\"\n  {isRefresh}\n  topTitleRightList={$isLoginStore ? topTitleRightList : null}\n  on:IconClick={topClickFun}\n/>\n<div class=\"mine\">\n  {#if $isLoginStore}\n    <div class=\"login\">\n      <div class=\"info-box\" on:click={toSettingFun} bind:this={infoDom}>\n        <div class=\"left\">\n          <div class=\"avatar\">\n            <img src={$userInfoStore.profile.avatarUrl.replace(/^http:/, 'https:') + '?param=180y180'} alt=\"\" />\n          </div>\n          <div class=\"info\">\n            <div class=\"nicename\">{$userInfoStore.profile.nickname}</div>\n            <div class=\"signature\">{$userInfoStore.profile.signature || ''}</div>\n            <div class=\"tag\">\n              {#if $userInfoStore.account.vipType !== 0}\n                <span class=\"vip\">\n                  <img class=\"cvip\" src=\"/images/vip/vip.png\" alt=\"\" />\n                  <span class=\"vip-text\">黑胶VIP</span>\n                </span>\n              {:else}\n                <span v-else class=\"text\">\n                  {$userInfoStore.profile.signature}\n                </span>\n              {/if}\n            </div>\n          </div>\n        </div>\n        <div class=\"more\">\n          <ArrowRightSLine size=\"26\" style=\"vertical-align: middle\" />\n        </div>\n      </div>\n      <div\n        class=\"love-song-box\"\n        style=\"background-image: url({$userInfoStore.profile.avatarUrl.replace(/^http:/, 'https:') +\n          '?param=180y180'});\"\n      >\n        <div class=\"love-song\" on:click={goToLoveListFun} bind:this={loveSongDom}>\n          <div class=\"love-title\">\n            <div class=\"love-title-text\">\n              我喜欢的音乐<span class=\"love-title-number\">{newuserLikeSongIdsStore.length}首</span>\n            </div>\n          </div>\n          <div class=\"random\">\n            {#if isRequsetSucc}\n              {#each randomAll as item, i}\n                <div\n                  class=\"random-item\"\n                  style=\"height:{item.size}px;line-height:{item.size}px;top: {i *\n                    26}px;left: {item.left}px;font-size:{item.size}px;\"\n                >\n                  <img\n                    class=\"random-img\"\n                    style=\"width:{item.size}px;height:{item.size}px;top:{item.size / 8}px\"\n                    src={item.img.replace(/^http:/, 'https:') + '?param=100y100'}\n                    alt=\"\"\n                  />\n                  {item.name}\n                </div>\n              {/each}\n            {:else}\n              <span style=\"line-height: 100px;position: relative;left: 50%;margin-left: -50px;top:40px\">\n                <embed width=\"100\" height=\"100\" src=\"/images/Ripple.svg\" type=\"image/svg+xml\" />\n              </span>\n            {/if}\n          </div>\n          <div class=\"quick-btn\">\n            <div class=\"quick-btn-item\" on:click={quickPlayFun}>\n              <PlayFill size=\"24\" style=\"vertical-align: middle\" />\n            </div>\n            <div class=\"quick-btn-item\" on:click={heartPlayFun}>\n              <span class:heart-beat={$playRepeatModelStore === 'heart' && $playStatusStore}>\n                <HeartPulseFill size=\"24\" style=\"vertical-align: middle\" />\n              </span>\n            </div>\n          </div>\n        </div>\n      </div>\n      {#if collectList.length > 0}\n        <div class=\"list-grid\">\n          <ListGrid title=\"收藏的歌单\" playList={collectList} iconText=\"全部\" on:titleClick={collectTitleFun} />\n        </div>\n      {/if}\n      {#if createList.length > 0}\n        <div class=\"list-grid\">\n          <ListGrid title=\"创建的歌单\" playList={createList} iconText=\"全部\" on:titleClick={createTitleFun} />\n        </div>\n      {/if}\n      {#if collectSongers.length > 0}\n        <Title title=\"收藏的歌手\" iconText=\"全部\" isShowRight={true} on:TitleClick={collectSongersFun} />\n        <div class=\"songer-box\">\n          {#each collectSongers as songer}\n            <Songer {songer} coverSize={330} />\n          {/each}\n        </div>\n      {/if}\n    </div>\n  {:else}\n    <div class=\"noLogin\">\n      <div>\n        <img class=\"login-img\" src=\"images/login.png\" alt=\"\" />\n      </div>\n      <div class=\"tip\">账号信息需要登录</div>\n      <div class=\"login-btn\">\n        <Button\n          type=\"primary\"\n          on:BtnClick={() => {\n            isHomePageStore.set(false);\n            push('/login');\n          }}\n        >\n          立即登录\n        </Button>\n      </div>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .list-grid {\n    margin-top: 30px;\n  }\n  .quick-btn {\n    z-index: 5;\n    display: flex;\n    justify-content: space-between;\n  }\n  .quick-btn-item {\n    width: 50px;\n    height: 50px;\n    margin: 10px;\n    border-radius: 25px;\n    background-color: rgba(255, 255, 255, 0.5);\n    color: var(--primary-text-color);\n    text-align: center;\n    line-height: 50px;\n  }\n  .nicename {\n    font-weight: bold;\n    font-size: 16px;\n  }\n  .signature {\n    font-size: 12px;\n    color: #666;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 1;\n    max-width: 200px;\n  }\n  .more {\n    line-height: 62px;\n  }\n  .cvip {\n    width: 24px;\n    height: 12px;\n  }\n  .vip-text {\n    position: relative;\n    top: -2px;\n    font-size: 12px;\n  }\n  .mine {\n    font-size: 14px;\n    padding-bottom: 120px;\n  }\n  .info-box {\n    padding: 10px;\n    display: flex;\n    margin: auto 20px;\n    justify-content: space-between;\n    background-color: #fff;\n    border-radius: 10px;\n  }\n  .left {\n    display: flex;\n  }\n  .avatar {\n    width: 60px;\n    height: 60px;\n    margin-right: 10px;\n    border-radius: 50%;\n    overflow: hidden;\n    border: rgb(214, 214, 214) solid 1px;\n  }\n  .avatar img {\n    width: 100%;\n  }\n  .info {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n  .love-song-box {\n    border-radius: 10px;\n    object-fit: cover;\n    background-position: center;\n    margin: 20px;\n    height: 335px;\n    overflow: hidden;\n    background-size: 100%;\n  }\n  .love-song {\n    height: 335px;\n    border-radius: 10px;\n    overflow: hidden;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    backdrop-filter: blur(14px);\n    -webkit-backdrop-filter: blur(14px);\n    background-color: rgba(0, 0, 0, 0.2);\n  }\n  .random {\n    flex: 8;\n    width: 100%;\n    object-fit: cover;\n    color: #fff;\n    position: relative;\n    font-size: 16px;\n  }\n  .random-item {\n    position: absolute;\n    left: 100px;\n    white-space: nowrap;\n    animation: move 60s infinite;\n    -webkit-animation: move 60s infinite;\n  }\n  @keyframes move {\n    0% {\n      transform: translateX(-50%);\n    }\n    50% {\n      transform: translateX(50%);\n    }\n    100% {\n      transform: translateX(-50%);\n    }\n  }\n  .random-img {\n    border-radius: 10%;\n    position: relative;\n  }\n  .love-title {\n    flex: 2;\n    font-size: 36px;\n    text-align: center;\n    color: #fff;\n  }\n  .love-title-text {\n    font-weight: bold;\n    line-height: 67px;\n  }\n  .love-title-number {\n    font-size: 16px;\n    margin-left: 6px;\n    line-height: 67px;\n  }\n  .noLogin {\n    width: 80%;\n    margin: auto;\n  }\n  .login-img {\n    width: 80%;\n  }\n  .tip {\n    margin: 20px 0;\n    font-size: 18px;\n    text-align: center;\n  }\n  .heart-beat {\n    display: inline-block;\n    /* // 一个完整动画的持续时间 */\n    animation-duration: 1s;\n    /* // 动画循环次数:无限循环 */\n    animation-iteration-count: infinite;\n    /* // 调用的动画名,对应上面的 .heart-bounce */\n    animation-name: heart-bounce;\n  }\n  @keyframes heart-bounce {\n    from {\n      transform: scale(1);\n    }\n    12% {\n      transform: scale(1.02);\n    }\n    20% {\n      transform: scale(0.99);\n    }\n    28% {\n      transform: scale(0.98);\n    }\n    32% {\n      transform: scale(1.2);\n    }\n    38% {\n      transform: scale(0.96);\n    }\n    50% {\n      transform: scale(1);\n    }\n    58% {\n      transform: scale(0.98);\n    }\n    70% {\n      transform: scale(0.9);\n    }\n    80% {\n      transform: scale(0.98);\n    }\n    to {\n      transform: scale(1);\n    }\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n\n  import Love from './Love.svelte';\n  import Discover from './Discover.svelte';\n  import Mine from './Mine.svelte';\n\n  import { dailySignin } from '../api/user';\n\n  import { isLoginStore, tabbarActive } from '../store/common';\n\n  onMount(() => {\n    $isLoginStore ? tabbarActive.set(0) : tabbarActive.set(1);\n    //签到\n    let date = new Date();\n    if (\n      $isLoginStore &&\n      localStorage.getItem('dailySigninFun_date') != '' + date.getFullYear() + (date.getMonth() + 1) + date.getDate()\n    ) {\n      dailySigninFun();\n    }\n  });\n  //签到\n  async function dailySigninFun() {\n    await dailySignin();\n    let date = new Date();\n    localStorage.setItem('dailySigninFun_date', '' + date.getFullYear() + (date.getMonth() + 1) + date.getDate());\n  }\n</script>\n\n<div style=\"display:{$tabbarActive === 0 ? 'block' : 'none'}\">\n  <Love />\n</div>\n<div style=\"display:{$tabbarActive === 1 ? 'block' : 'none'}\">\n  <Discover />\n</div>\n<div style=\"display:{$tabbarActive === 2 ? 'block' : 'none'}\">\n  <Mine />\n</div>\n","<script>\n  import { onMount } from \"svelte\";\n  import Lazy from \"svelte-lazy\";\n  import { onResume, search } from \"svelte-stack-router\";\n  import {\n    PlayCircleLine,\n    ChatHeartFill,\n    ChatHeartLine,\n  } from \"svelte-remixicon\";\n\n  import { Button, NavBar } from \"../components/base\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import {\n    isLoginStore,\n    isLoadingStore,\n    defaultResumableStore,\n    defaultCover,\n  } from \"../store/common\";\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import { userInfoStore } from \"../store/user\";\n\n  import { getPlaylistDetail, subscribePlaylist } from \"../api/playlist\";\n  import { getSongUrl, getSongDetail } from \"../api/song\";\n\n  import { formatTime, Toast, cutArray, parseQuery } from \"../utils/common\";\n\n  const { id } = parseQuery($search);\n\n  let coverDom;\n  $: playlistId = id;\n  $: collect = false;\n  $: title = \"歌单详情\";\n  $: description = \"\";\n  $: alphaNumber = 0; //NavBar透明度的值\n  $: songList = [];\n  $: coverImgUrl = defaultCover;\n  $: name = \"歌单名称\";\n  $: updateTime = new Date().getTime();\n  $: creator = {\n    nickname: \"创建者\",\n    avatarUrl: defaultCover,\n    id: 0,\n  };\n\n  onMount(() => {\n    getPlaylistDetailFun();\n  });\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      songList = [];\n      const { id } = parseQuery($search);\n      playlistId = id;\n      getPlaylistDetailFun();\n    }\n  });\n\n  async function getPlaylistDetailFun() {\n    console.debug(\"getPlaylistDetail\", playlistId);\n    const res = await getPlaylistDetail(playlistId); //获取歌单详情\n    if (res.code === 200) {\n      isLoadingStore.set(true);\n\n      const { trackIds } = res.playlist;\n\n      name = title = res.playlist.name;\n      creator = res.playlist.creator;\n      description = res.playlist.description;\n      coverImgUrl = res.playlist.coverImgUrl;\n      updateTime = res.playlist.updateTime;\n\n      const songIdList = trackIds.map((trackIdInfo) => trackIdInfo.id);\n      let cutSongIdList = cutArray(songIdList);\n      for (let t = 0; t < cutSongIdList.length; t++) {\n        await getSongDetailFun(cutSongIdList[t]);\n      }\n    }\n  }\n  async function getSongDetailFun(songIds) {\n    if (Array.isArray(songIds)) songIds = songIds.join(\",\");\n    const res = await getSongDetail(songIds); //所有获取歌曲详情\n    if (res.code === 200) {\n      songList = songList.concat(res.songs);\n    }\n  }\n  function scroll() {\n    const coverToTop = coverDom.getBoundingClientRect().top; //滑动时coverDom到顶部的距离,用于计算上滑时NavBar透明度。\n    if (coverToTop > -50 && coverToTop <= 0) {\n      alphaNumber = Math.abs(coverToTop) / 50;\n    } else {\n      alphaNumber = 1;\n    }\n    if (coverToTop > 0) {\n      alphaNumber = 0;\n    }\n  }\n\n  const playURL = (url) => {\n    window.audioDOM.src = url;\n    window.audioDOM.play();\n  };\n\n  const playSong = (song) => {\n    currentSongStore.set(song);\n    localStorage.setItem(\"currentSong\", JSON.stringify(song));\n    playURL(song.url);\n  };\n\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code !== 200) return;\n    if (res.data[0].url) {\n      song.url = res.data[0].url.replace(/^http:/, \"https:\");\n      if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n        currentSongQualityStore.set(\"试听\");\n      } else if (res.data[0].type === \"flac\") {\n        currentSongQualityStore.set(\"FLAC\");\n      } else {\n        currentSongQualityStore.set(res.data[0].br);\n      }\n      playSong(song);\n      playStatusStore.set(true);\n      // if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n      //   getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n    } else {\n      Toast(\n        `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n        2000\n      );\n    }\n  }\n  function playListFun(index) {\n    playRepeatModelStore.set(\"repeat\");\n    isFMPlayStore.set(false);\n    localStorage.setItem(\"isFMPlay\", \"0\");\n    currentPlayListStore.set(songList);\n    const ids = songList.map((song) => song.id);\n    localStorage.setItem(\"localPlayList\", JSON.stringify(ids));\n\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function subscribe() {\n    const res = await subscribePlaylist(playlistId, !collect);\n    if (res.code === 200) {\n      collect = !collect;\n    }\n  }\n</script>\n\n<svelte:window on:scroll={scroll} />\n<NavBar {title} transparent={true} dark={true} {alphaNumber} />\n<div class=\"play-list\">\n  <div\n    class=\"cover-box\"\n    bind:this={coverDom}\n    style=\"background: url({coverImgUrl.replace(/^http:/, 'https:') +\n      '?param=450y450'});\"\n  >\n    <div class=\"cover-bg\">\n      <div class=\"cover\">\n        <Lazy height={140}>\n          <img\n            class=\"img-cover\"\n            src={coverImgUrl.replace(/^http:/, \"https:\") + \"?param=450y450\"}\n            alt=\"\"\n          />\n        </Lazy>\n      </div>\n      <div class=\"info\">\n        <div class=\"name\">{name}</div>\n        <div class=\"creater\">\n          <img\n            class=\"creatorImg\"\n            src={creator.avatarUrl.replace(/^http:/, \"https:\") + \"?param=60y60\"}\n            alt=\"\"\n          />\n          <span class=\"creatertext\">{creator.nickname}</span>\n        </div>\n        <div class=\"update\">\n          更新于{formatTime(updateTime)} &#8226 {songList\n            ? songList.length\n            : 0}首\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"desc\">{description}</div>\n  <div class=\"btn\">\n    <div\n      class=\"play\"\n      style=\"margin-right: {$isLoginStore &&\n      creator.userId != $userInfoStore.account.id\n        ? 20\n        : 0}px;\"\n    >\n      <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n        <span class=\"icon\">\n          <PlayCircleLine size=\"20\" style=\"vertical-align: middle\" />\n        </span>\n        播放歌单\n      </Button>\n    </div>\n    {#if $isLoginStore && creator.userId != $userInfoStore.account.id}\n      <div class=\"random\">\n        <Button type={collect ? \"default\" : \"primary\"} on:BtnClick={subscribe}>\n          <span class=\"icon\">\n            {#if collect}\n              <ChatHeartLine size=\"20\" style=\"vertical-align: middle\" />\n            {:else}\n              <ChatHeartFill size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </span>\n          {collect ? \"取消收藏\" : \"收藏歌单\"}\n        </Button>\n      </div>\n    {/if}\n  </div>\n  <div>\n    <SongList {songList} />\n  </div>\n</div>\n\n<style>\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .btn {\n    display: flex;\n    margin-bottom: 10px;\n    padding: 0 20px;\n    flex-basis: 20px;\n  }\n  .play {\n    margin-right: 20px;\n    flex: 1;\n  }\n  .random {\n    flex: 1;\n  }\n  .cover-box {\n    background-position: center !important;\n  }\n  .cover-bg {\n    font-size: 12px;\n    padding: 60px 20px 20px;\n    display: flex;\n    color: #fff;\n    background: rgba(0, 0, 0, 0.3);\n    backdrop-filter: blur(20px);\n    -webkit-backdrop-filter: blur(20px);\n  }\n  .img-cover {\n    border-radius: 6px;\n    width: 140px;\n    height: 140px;\n    object-fit: cover;\n  }\n  .cover {\n    flex: 2;\n  }\n  .info {\n    padding-top: 6px;\n    flex: 3;\n    align-items: center;\n    margin-left: 10px;\n    position: relative;\n  }\n  .name {\n    font-size: 18px;\n    max-width: 192px;\n    font-weight: bold;\n  }\n  .creater {\n    margin-top: 8px;\n    align-items: center;\n    line-height: 24px;\n  }\n  .creatorImg {\n    border-radius: 4px;\n    width: 24px;\n    height: 24px;\n    margin-right: 4px;\n  }\n  .creatertext {\n    position: relative;\n    top: -8px;\n  }\n  .update {\n    position: absolute;\n    bottom: 6px;\n  }\n  .desc {\n    margin: 10px 20px;\n    font-size: 12px;\n    max-height: 60px;\n    overflow-y: auto;\n    text-align: justify;\n    color: rgb(116, 116, 116);\n  }\n  .desc:global(::-webkit-scrollbar) {\n    width: 0 !important;\n  }\n  .play-list {\n    padding-bottom: 70px;\n  }\n</style>\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t    var crypto;\n\n\t    // Native crypto from window (Browser)\n\t    if (typeof window !== 'undefined' && window.crypto) {\n\t        crypto = window.crypto;\n\t    }\n\n\t    // Native crypto in web worker (Browser)\n\t    if (typeof self !== 'undefined' && self.crypto) {\n\t        crypto = self.crypto;\n\t    }\n\n\t    // Native crypto from worker\n\t    if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t        crypto = globalThis.crypto;\n\t    }\n\n\t    // Native (experimental IE 11) crypto from window (Browser)\n\t    if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t        crypto = window.msCrypto;\n\t    }\n\n\t    // Native crypto from global (NodeJS)\n\t    if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t        crypto = global.crypto;\n\t    }\n\n\t    // Native crypto import via require (NodeJS)\n\t    if (!crypto && typeof require === 'function') {\n\t        try {\n\t            crypto = require('crypto');\n\t        } catch (err) {}\n\t    }\n\n\t    /*\n\t     * Cryptographically secure pseudorandom number generator\n\t     *\n\t     * As Math.random() is cryptographically not safe to use\n\t     */\n\t    var cryptoSecureRandomInt = function () {\n\t        if (crypto) {\n\t            // Use getRandomValues method (Browser)\n\t            if (typeof crypto.getRandomValues === 'function') {\n\t                try {\n\t                    return crypto.getRandomValues(new Uint32Array(1))[0];\n\t                } catch (err) {}\n\t            }\n\n\t            // Use randomBytes method (NodeJS)\n\t            if (typeof crypto.randomBytes === 'function') {\n\t                try {\n\t                    return crypto.randomBytes(4).readInt32LE();\n\t                } catch (err) {}\n\t            }\n\t        }\n\n\t        throw new Error('Native crypto module could not be used to get secure random number.');\n\t    };\n\n\t    /*\n\t     * Local polyfill of Object.create\n\n\t     */\n\t    var create = Object.create || (function () {\n\t        function F() {}\n\n\t        return function (obj) {\n\t            var subtype;\n\n\t            F.prototype = obj;\n\n\t            subtype = new F();\n\n\t            F.prototype = null;\n\n\t            return subtype;\n\t        };\n\t    }());\n\n\t    /**\n\t     * CryptoJS namespace.\n\t     */\n\t    var C = {};\n\n\t    /**\n\t     * Library namespace.\n\t     */\n\t    var C_lib = C.lib = {};\n\n\t    /**\n\t     * Base object for prototypal inheritance.\n\t     */\n\t    var Base = C_lib.Base = (function () {\n\n\n\t        return {\n\t            /**\n\t             * Creates a new object that inherits from this object.\n\t             *\n\t             * @param {Object} overrides Properties to copy into the new object.\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         field: 'value',\n\t             *\n\t             *         method: function () {\n\t             *         }\n\t             *     });\n\t             */\n\t            extend: function (overrides) {\n\t                // Spawn\n\t                var subtype = create(this);\n\n\t                // Augment\n\t                if (overrides) {\n\t                    subtype.mixIn(overrides);\n\t                }\n\n\t                // Create default initializer\n\t                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t                    subtype.init = function () {\n\t                        subtype.$super.init.apply(this, arguments);\n\t                    };\n\t                }\n\n\t                // Initializer's prototype is the subtype object\n\t                subtype.init.prototype = subtype;\n\n\t                // Reference supertype\n\t                subtype.$super = this;\n\n\t                return subtype;\n\t            },\n\n\t            /**\n\t             * Extends this object and runs the init method.\n\t             * Arguments to create() will be passed to init().\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var instance = MyType.create();\n\t             */\n\t            create: function () {\n\t                var instance = this.extend();\n\t                instance.init.apply(instance, arguments);\n\n\t                return instance;\n\t            },\n\n\t            /**\n\t             * Initializes a newly created object.\n\t             * Override this method to add some logic when your objects are created.\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         init: function () {\n\t             *             // ...\n\t             *         }\n\t             *     });\n\t             */\n\t            init: function () {\n\t            },\n\n\t            /**\n\t             * Copies properties into this object.\n\t             *\n\t             * @param {Object} properties The properties to mix in.\n\t             *\n\t             * @example\n\t             *\n\t             *     MyType.mixIn({\n\t             *         field: 'value'\n\t             *     });\n\t             */\n\t            mixIn: function (properties) {\n\t                for (var propertyName in properties) {\n\t                    if (properties.hasOwnProperty(propertyName)) {\n\t                        this[propertyName] = properties[propertyName];\n\t                    }\n\t                }\n\n\t                // IE won't copy toString using the loop above\n\t                if (properties.hasOwnProperty('toString')) {\n\t                    this.toString = properties.toString;\n\t                }\n\t            },\n\n\t            /**\n\t             * Creates a copy of this object.\n\t             *\n\t             * @return {Object} The clone.\n\t             *\n\t             * @example\n\t             *\n\t             *     var clone = instance.clone();\n\t             */\n\t            clone: function () {\n\t                return this.init.prototype.extend(this);\n\t            }\n\t        };\n\t    }());\n\n\t    /**\n\t     * An array of 32-bit words.\n\t     *\n\t     * @property {Array} words The array of 32-bit words.\n\t     * @property {number} sigBytes The number of significant bytes in this word array.\n\t     */\n\t    var WordArray = C_lib.WordArray = Base.extend({\n\t        /**\n\t         * Initializes a newly created word array.\n\t         *\n\t         * @param {Array} words (Optional) An array of 32-bit words.\n\t         * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.create();\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t         */\n\t        init: function (words, sigBytes) {\n\t            words = this.words = words || [];\n\n\t            if (sigBytes != undefined) {\n\t                this.sigBytes = sigBytes;\n\t            } else {\n\t                this.sigBytes = words.length * 4;\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts this word array to a string.\n\t         *\n\t         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t         *\n\t         * @return {string} The stringified word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     var string = wordArray + '';\n\t         *     var string = wordArray.toString();\n\t         *     var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t         */\n\t        toString: function (encoder) {\n\t            return (encoder || Hex).stringify(this);\n\t        },\n\n\t        /**\n\t         * Concatenates a word array to this word array.\n\t         *\n\t         * @param {WordArray} wordArray The word array to append.\n\t         *\n\t         * @return {WordArray} This word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray1.concat(wordArray2);\n\t         */\n\t        concat: function (wordArray) {\n\t            // Shortcuts\n\t            var thisWords = this.words;\n\t            var thatWords = wordArray.words;\n\t            var thisSigBytes = this.sigBytes;\n\t            var thatSigBytes = wordArray.sigBytes;\n\n\t            // Clamp excess bits\n\t            this.clamp();\n\n\t            // Concat\n\t            if (thisSigBytes % 4) {\n\t                // Copy one byte at a time\n\t                for (var i = 0; i < thatSigBytes; i++) {\n\t                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t                }\n\t            } else {\n\t                // Copy one word at a time\n\t                for (var j = 0; j < thatSigBytes; j += 4) {\n\t                    thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t                }\n\t            }\n\t            this.sigBytes += thatSigBytes;\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Removes insignificant bits.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray.clamp();\n\t         */\n\t        clamp: function () {\n\t            // Shortcuts\n\t            var words = this.words;\n\t            var sigBytes = this.sigBytes;\n\n\t            // Clamp\n\t            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t            words.length = Math.ceil(sigBytes / 4);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this word array.\n\t         *\n\t         * @return {WordArray} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = wordArray.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone.words = this.words.slice(0);\n\n\t            return clone;\n\t        },\n\n\t        /**\n\t         * Creates a word array filled with random bytes.\n\t         *\n\t         * @param {number} nBytes The number of random bytes to generate.\n\t         *\n\t         * @return {WordArray} The random word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.random(16);\n\t         */\n\t        random: function (nBytes) {\n\t            var words = [];\n\n\t            for (var i = 0; i < nBytes; i += 4) {\n\t                words.push(cryptoSecureRandomInt());\n\t            }\n\n\t            return new WordArray.init(words, nBytes);\n\t        }\n\t    });\n\n\t    /**\n\t     * Encoder namespace.\n\t     */\n\t    var C_enc = C.enc = {};\n\n\t    /**\n\t     * Hex encoding strategy.\n\t     */\n\t    var Hex = C_enc.Hex = {\n\t        /**\n\t         * Converts a word array to a hex string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The hex string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var hexChars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                hexChars.push((bite >>> 4).toString(16));\n\t                hexChars.push((bite & 0x0f).toString(16));\n\t            }\n\n\t            return hexChars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a hex string to a word array.\n\t         *\n\t         * @param {string} hexStr The hex string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t         */\n\t        parse: function (hexStr) {\n\t            // Shortcut\n\t            var hexStrLength = hexStr.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < hexStrLength; i += 2) {\n\t                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t            }\n\n\t            return new WordArray.init(words, hexStrLength / 2);\n\t        }\n\t    };\n\n\t    /**\n\t     * Latin1 encoding strategy.\n\t     */\n\t    var Latin1 = C_enc.Latin1 = {\n\t        /**\n\t         * Converts a word array to a Latin1 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The Latin1 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var latin1Chars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                latin1Chars.push(String.fromCharCode(bite));\n\t            }\n\n\t            return latin1Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a Latin1 string to a word array.\n\t         *\n\t         * @param {string} latin1Str The Latin1 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t         */\n\t        parse: function (latin1Str) {\n\t            // Shortcut\n\t            var latin1StrLength = latin1Str.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < latin1StrLength; i++) {\n\t                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t            }\n\n\t            return new WordArray.init(words, latin1StrLength);\n\t        }\n\t    };\n\n\t    /**\n\t     * UTF-8 encoding strategy.\n\t     */\n\t    var Utf8 = C_enc.Utf8 = {\n\t        /**\n\t         * Converts a word array to a UTF-8 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The UTF-8 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            try {\n\t                return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t            } catch (e) {\n\t                throw new Error('Malformed UTF-8 data');\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts a UTF-8 string to a word array.\n\t         *\n\t         * @param {string} utf8Str The UTF-8 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t         */\n\t        parse: function (utf8Str) {\n\t            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t        }\n\t    };\n\n\t    /**\n\t     * Abstract buffered block algorithm template.\n\t     *\n\t     * The property blockSize must be implemented in a concrete subtype.\n\t     *\n\t     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t     */\n\t    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t        /**\n\t         * Resets this block algorithm's data buffer to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm.reset();\n\t         */\n\t        reset: function () {\n\t            // Initial values\n\t            this._data = new WordArray.init();\n\t            this._nDataBytes = 0;\n\t        },\n\n\t        /**\n\t         * Adds new data to this block algorithm's buffer.\n\t         *\n\t         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm._append('data');\n\t         *     bufferedBlockAlgorithm._append(wordArray);\n\t         */\n\t        _append: function (data) {\n\t            // Convert string to WordArray, else assume WordArray already\n\t            if (typeof data == 'string') {\n\t                data = Utf8.parse(data);\n\t            }\n\n\t            // Append\n\t            this._data.concat(data);\n\t            this._nDataBytes += data.sigBytes;\n\t        },\n\n\t        /**\n\t         * Processes available data blocks.\n\t         *\n\t         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t         *\n\t         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t         *\n\t         * @return {WordArray} The processed data.\n\t         *\n\t         * @example\n\t         *\n\t         *     var processedData = bufferedBlockAlgorithm._process();\n\t         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t         */\n\t        _process: function (doFlush) {\n\t            var processedWords;\n\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\t            var dataSigBytes = data.sigBytes;\n\t            var blockSize = this.blockSize;\n\t            var blockSizeBytes = blockSize * 4;\n\n\t            // Count blocks ready\n\t            var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t            if (doFlush) {\n\t                // Round up to include partial blocks\n\t                nBlocksReady = Math.ceil(nBlocksReady);\n\t            } else {\n\t                // Round down to include only full blocks,\n\t                // less the number of blocks that must remain in the buffer\n\t                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t            }\n\n\t            // Count words ready\n\t            var nWordsReady = nBlocksReady * blockSize;\n\n\t            // Count bytes ready\n\t            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t            // Process blocks\n\t            if (nWordsReady) {\n\t                for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t                    // Perform concrete-algorithm logic\n\t                    this._doProcessBlock(dataWords, offset);\n\t                }\n\n\t                // Remove processed words\n\t                processedWords = dataWords.splice(0, nWordsReady);\n\t                data.sigBytes -= nBytesReady;\n\t            }\n\n\t            // Return processed words\n\t            return new WordArray.init(processedWords, nBytesReady);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this object.\n\t         *\n\t         * @return {Object} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = bufferedBlockAlgorithm.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone._data = this._data.clone();\n\n\t            return clone;\n\t        },\n\n\t        _minBufferSize: 0\n\t    });\n\n\t    /**\n\t     * Abstract hasher template.\n\t     *\n\t     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t     */\n\t    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t        /**\n\t         * Configuration options.\n\t         */\n\t        cfg: Base.extend(),\n\n\t        /**\n\t         * Initializes a newly created hasher.\n\t         *\n\t         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hasher = CryptoJS.algo.SHA256.create();\n\t         */\n\t        init: function (cfg) {\n\t            // Apply config defaults\n\t            this.cfg = this.cfg.extend(cfg);\n\n\t            // Set initial values\n\t            this.reset();\n\t        },\n\n\t        /**\n\t         * Resets this hasher to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.reset();\n\t         */\n\t        reset: function () {\n\t            // Reset data buffer\n\t            BufferedBlockAlgorithm.reset.call(this);\n\n\t            // Perform concrete-hasher logic\n\t            this._doReset();\n\t        },\n\n\t        /**\n\t         * Updates this hasher with a message.\n\t         *\n\t         * @param {WordArray|string} messageUpdate The message to append.\n\t         *\n\t         * @return {Hasher} This hasher.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.update('message');\n\t         *     hasher.update(wordArray);\n\t         */\n\t        update: function (messageUpdate) {\n\t            // Append\n\t            this._append(messageUpdate);\n\n\t            // Update the hash\n\t            this._process();\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Finalizes the hash computation.\n\t         * Note that the finalize operation is effectively a destructive, read-once operation.\n\t         *\n\t         * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t         *\n\t         * @return {WordArray} The hash.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hash = hasher.finalize();\n\t         *     var hash = hasher.finalize('message');\n\t         *     var hash = hasher.finalize(wordArray);\n\t         */\n\t        finalize: function (messageUpdate) {\n\t            // Final message update\n\t            if (messageUpdate) {\n\t                this._append(messageUpdate);\n\t            }\n\n\t            // Perform concrete-hasher logic\n\t            var hash = this._doFinalize();\n\n\t            return hash;\n\t        },\n\n\t        blockSize: 512/32,\n\n\t        /**\n\t         * Creates a shortcut function to a hasher's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to create a helper for.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHelper: function (hasher) {\n\t            return function (message, cfg) {\n\t                return new hasher.init(cfg).finalize(message);\n\t            };\n\t        },\n\n\t        /**\n\t         * Creates a shortcut function to the HMAC's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHmacHelper: function (hasher) {\n\t            return function (message, key) {\n\t                return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t            };\n\t        }\n\t    });\n\n\t    /**\n\t     * Algorithm namespace.\n\t     */\n\t    var C_algo = C.algo = {};\n\n\t    return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_algo = C.algo;\n\n\t    // Constants table\n\t    var T = [];\n\n\t    // Compute constants\n\t    (function () {\n\t        for (var i = 0; i < 64; i++) {\n\t            T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t        }\n\t    }());\n\n\t    /**\n\t     * MD5 hash algorithm.\n\t     */\n\t    var MD5 = C_algo.MD5 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash = new WordArray.init([\n\t                0x67452301, 0xefcdab89,\n\t                0x98badcfe, 0x10325476\n\t            ]);\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Swap endian\n\t            for (var i = 0; i < 16; i++) {\n\t                // Shortcuts\n\t                var offset_i = offset + i;\n\t                var M_offset_i = M[offset_i];\n\n\t                M[offset_i] = (\n\t                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)\n\t                );\n\t            }\n\n\t            // Shortcuts\n\t            var H = this._hash.words;\n\n\t            var M_offset_0  = M[offset + 0];\n\t            var M_offset_1  = M[offset + 1];\n\t            var M_offset_2  = M[offset + 2];\n\t            var M_offset_3  = M[offset + 3];\n\t            var M_offset_4  = M[offset + 4];\n\t            var M_offset_5  = M[offset + 5];\n\t            var M_offset_6  = M[offset + 6];\n\t            var M_offset_7  = M[offset + 7];\n\t            var M_offset_8  = M[offset + 8];\n\t            var M_offset_9  = M[offset + 9];\n\t            var M_offset_10 = M[offset + 10];\n\t            var M_offset_11 = M[offset + 11];\n\t            var M_offset_12 = M[offset + 12];\n\t            var M_offset_13 = M[offset + 13];\n\t            var M_offset_14 = M[offset + 14];\n\t            var M_offset_15 = M[offset + 15];\n\n\t            // Working varialbes\n\t            var a = H[0];\n\t            var b = H[1];\n\t            var c = H[2];\n\t            var d = H[3];\n\n\t            // Computation\n\t            a = FF(a, b, c, d, M_offset_0,  7,  T[0]);\n\t            d = FF(d, a, b, c, M_offset_1,  12, T[1]);\n\t            c = FF(c, d, a, b, M_offset_2,  17, T[2]);\n\t            b = FF(b, c, d, a, M_offset_3,  22, T[3]);\n\t            a = FF(a, b, c, d, M_offset_4,  7,  T[4]);\n\t            d = FF(d, a, b, c, M_offset_5,  12, T[5]);\n\t            c = FF(c, d, a, b, M_offset_6,  17, T[6]);\n\t            b = FF(b, c, d, a, M_offset_7,  22, T[7]);\n\t            a = FF(a, b, c, d, M_offset_8,  7,  T[8]);\n\t            d = FF(d, a, b, c, M_offset_9,  12, T[9]);\n\t            c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t            b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t            a = FF(a, b, c, d, M_offset_12, 7,  T[12]);\n\t            d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t            c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t            b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t            a = GG(a, b, c, d, M_offset_1,  5,  T[16]);\n\t            d = GG(d, a, b, c, M_offset_6,  9,  T[17]);\n\t            c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t            b = GG(b, c, d, a, M_offset_0,  20, T[19]);\n\t            a = GG(a, b, c, d, M_offset_5,  5,  T[20]);\n\t            d = GG(d, a, b, c, M_offset_10, 9,  T[21]);\n\t            c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t            b = GG(b, c, d, a, M_offset_4,  20, T[23]);\n\t            a = GG(a, b, c, d, M_offset_9,  5,  T[24]);\n\t            d = GG(d, a, b, c, M_offset_14, 9,  T[25]);\n\t            c = GG(c, d, a, b, M_offset_3,  14, T[26]);\n\t            b = GG(b, c, d, a, M_offset_8,  20, T[27]);\n\t            a = GG(a, b, c, d, M_offset_13, 5,  T[28]);\n\t            d = GG(d, a, b, c, M_offset_2,  9,  T[29]);\n\t            c = GG(c, d, a, b, M_offset_7,  14, T[30]);\n\t            b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t            a = HH(a, b, c, d, M_offset_5,  4,  T[32]);\n\t            d = HH(d, a, b, c, M_offset_8,  11, T[33]);\n\t            c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t            b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t            a = HH(a, b, c, d, M_offset_1,  4,  T[36]);\n\t            d = HH(d, a, b, c, M_offset_4,  11, T[37]);\n\t            c = HH(c, d, a, b, M_offset_7,  16, T[38]);\n\t            b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t            a = HH(a, b, c, d, M_offset_13, 4,  T[40]);\n\t            d = HH(d, a, b, c, M_offset_0,  11, T[41]);\n\t            c = HH(c, d, a, b, M_offset_3,  16, T[42]);\n\t            b = HH(b, c, d, a, M_offset_6,  23, T[43]);\n\t            a = HH(a, b, c, d, M_offset_9,  4,  T[44]);\n\t            d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t            c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t            b = HH(b, c, d, a, M_offset_2,  23, T[47]);\n\n\t            a = II(a, b, c, d, M_offset_0,  6,  T[48]);\n\t            d = II(d, a, b, c, M_offset_7,  10, T[49]);\n\t            c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t            b = II(b, c, d, a, M_offset_5,  21, T[51]);\n\t            a = II(a, b, c, d, M_offset_12, 6,  T[52]);\n\t            d = II(d, a, b, c, M_offset_3,  10, T[53]);\n\t            c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t            b = II(b, c, d, a, M_offset_1,  21, T[55]);\n\t            a = II(a, b, c, d, M_offset_8,  6,  T[56]);\n\t            d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t            c = II(c, d, a, b, M_offset_6,  15, T[58]);\n\t            b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t            a = II(a, b, c, d, M_offset_4,  6,  T[60]);\n\t            d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t            c = II(c, d, a, b, M_offset_2,  15, T[62]);\n\t            b = II(b, c, d, a, M_offset_9,  21, T[63]);\n\n\t            // Intermediate hash value\n\t            H[0] = (H[0] + a) | 0;\n\t            H[1] = (H[1] + b) | 0;\n\t            H[2] = (H[2] + c) | 0;\n\t            H[3] = (H[3] + d) | 0;\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t            var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t            var nBitsTotalL = nBitsTotal;\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t                (((nBitsTotalH << 8)  | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotalH << 24) | (nBitsTotalH >>> 8))  & 0xff00ff00)\n\t            );\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t                (((nBitsTotalL << 8)  | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotalL << 24) | (nBitsTotalL >>> 8))  & 0xff00ff00)\n\t            );\n\n\t            data.sigBytes = (dataWords.length + 1) * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Shortcuts\n\t            var hash = this._hash;\n\t            var H = hash.words;\n\n\t            // Swap endian\n\t            for (var i = 0; i < 4; i++) {\n\t                // Shortcut\n\t                var H_i = H[i];\n\n\t                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |\n\t                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);\n\t            }\n\n\t            // Return final computed hash\n\t            return hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        }\n\t    });\n\n\t    function FF(a, b, c, d, x, s, t) {\n\t        var n = a + ((b & c) | (~b & d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function GG(a, b, c, d, x, s, t) {\n\t        var n = a + ((b & d) | (c & ~d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function HH(a, b, c, d, x, s, t) {\n\t        var n = a + (b ^ c ^ d) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function II(a, b, c, d, x, s, t) {\n\t        var n = a + (c ^ (b | ~d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.MD5('message');\n\t     *     var hash = CryptoJS.MD5(wordArray);\n\t     */\n\t    C.MD5 = Hasher._createHelper(MD5);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacMD5(message, key);\n\t     */\n\t    C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","/*\n * QRious v4.0.2\n * Copyright (C) 2017 Alasdair Mercer\n * Copyright (C) 2010 Tom Zerucha\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.QRious = factory());\n  }(this, (function () { 'use strict';\n  \n    /*\n     * Copyright (C) 2017 Alasdair Mercer, !ninja\n     *\n     * Permission is hereby granted, free of charge, to any person obtaining a copy\n     * of this software and associated documentation files (the \"Software\"), to deal\n     * in the Software without restriction, including without limitation the rights\n     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n     * copies of the Software, and to permit persons to whom the Software is\n     * furnished to do so, subject to the following conditions:\n     *\n     * The above copyright notice and this permission notice shall be included in all\n     * copies or substantial portions of the Software.\n     *\n     * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n     * SOFTWARE.\n     */\n  \n    /**\n     * A bare-bones constructor for surrogate prototype swapping.\n     *\n     * @private\n     * @constructor\n     */\n    var Constructor = /* istanbul ignore next */ function() {};\n    /**\n     * A reference to <code>Object.prototype.hasOwnProperty</code>.\n     *\n     * @private\n     * @type {Function}\n     */\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n    /**\n     * A reference to <code>Array.prototype.slice</code>.\n     *\n     * @private\n     * @type {Function}\n     */\n    var slice = Array.prototype.slice;\n  \n    /**\n     * Creates an object which inherits the given <code>prototype</code>.\n     *\n     * Optionally, the created object can be extended further with the specified <code>properties</code>.\n     *\n     * @param {Object} prototype - the prototype to be inherited by the created object\n     * @param {Object} [properties] - the optional properties to be extended by the created object\n     * @return {Object} The newly created object.\n     * @private\n     */\n    function createObject(prototype, properties) {\n      var result;\n      /* istanbul ignore next */\n      if (typeof Object.create === 'function') {\n        result = Object.create(prototype);\n      } else {\n        Constructor.prototype = prototype;\n        result = new Constructor();\n        Constructor.prototype = null;\n      }\n  \n      if (properties) {\n        extendObject(true, result, properties);\n      }\n  \n      return result;\n    }\n  \n    /**\n     * Extends the constructor to which this method is associated with the <code>prototype</code> and/or\n     * <code>statics</code> provided.\n     *\n     * If <code>name</code> is provided, it will be used as the class name and can be accessed via a special\n     * <code>class_</code> property on the child constructor, otherwise the class name of the super constructor will be used\n     * instead. The class name may also be used string representation for instances of the child constructor (via\n     * <code>toString</code>), but this is not applicable to the <i>lite</i> version of Nevis.\n     *\n     * If <code>constructor</code> is provided, it will be used as the constructor for the child, otherwise a simple\n     * constructor which only calls the super constructor will be used instead.\n     *\n     * The super constructor can be accessed via a special <code>super_</code> property on the child constructor.\n     *\n     * @param {string} [name=this.class_] - the class name to be used for the child constructor\n     * @param {Function} [constructor] - the constructor for the child\n     * @param {Object} [prototype] - the prototype properties to be defined for the child\n     * @param {Object} [statics] - the static properties to be defined for the child\n     * @return {Function} The child <code>constructor</code> provided or the one created if none was given.\n     * @public\n     */\n    function extend(name, constructor, prototype, statics) {\n      var superConstructor = this;\n  \n      if (typeof name !== 'string') {\n        statics = prototype;\n        prototype = constructor;\n        constructor = name;\n        name = null;\n      }\n  \n      if (typeof constructor !== 'function') {\n        statics = prototype;\n        prototype = constructor;\n        constructor = function() {\n          return superConstructor.apply(this, arguments);\n        };\n      }\n  \n      extendObject(false, constructor, superConstructor, statics);\n  \n      constructor.prototype = createObject(superConstructor.prototype, prototype);\n      constructor.prototype.constructor = constructor;\n  \n      constructor.class_ = name || superConstructor.class_;\n      constructor.super_ = superConstructor;\n  \n      return constructor;\n    }\n  \n    /**\n     * Extends the specified <code>target</code> object with the properties in each of the <code>sources</code> provided.\n     *\n     * if any source is <code>null</code> it will be ignored.\n     *\n     * @param {boolean} own - <code>true</code> to only copy <b>own</b> properties from <code>sources</code> onto\n     * <code>target</code>; otherwise <code>false</code>\n     * @param {Object} target - the target object which should be extended\n     * @param {...Object} [sources] - the source objects whose properties are to be copied onto <code>target</code>\n     * @return {void}\n     * @private\n     */\n    function extendObject(own, target, sources) {\n      sources = slice.call(arguments, 2);\n  \n      var property;\n      var source;\n  \n      for (var i = 0, length = sources.length; i < length; i++) {\n        source = sources[i];\n  \n        for (property in source) {\n          if (!own || hasOwnProperty.call(source, property)) {\n            target[property] = source[property];\n          }\n        }\n      }\n    }\n  \n    var extend_1 = extend;\n  \n    /**\n     * The base class from which all others should extend.\n     *\n     * @public\n     * @constructor\n     */\n    function Nevis() {}\n    Nevis.class_ = 'Nevis';\n    Nevis.super_ = Object;\n  \n    /**\n     * Extends the constructor to which this method is associated with the <code>prototype</code> and/or\n     * <code>statics</code> provided.\n     *\n     * If <code>name</code> is provided, it will be used as the class name and can be accessed via a special\n     * <code>class_</code> property on the child constructor, otherwise the class name of the super constructor will be used\n     * instead. The class name may also be used string representation for instances of the child constructor (via\n     * <code>toString</code>), but this is not applicable to the <i>lite</i> version of Nevis.\n     *\n     * If <code>constructor</code> is provided, it will be used as the constructor for the child, otherwise a simple\n     * constructor which only calls the super constructor will be used instead.\n     *\n     * The super constructor can be accessed via a special <code>super_</code> property on the child constructor.\n     *\n     * @param {string} [name=this.class_] - the class name to be used for the child constructor\n     * @param {Function} [constructor] - the constructor for the child\n     * @param {Object} [prototype] - the prototype properties to be defined for the child\n     * @param {Object} [statics] - the static properties to be defined for the child\n     * @return {Function} The child <code>constructor</code> provided or the one created if none was given.\n     * @public\n     * @static\n     * @memberof Nevis\n     */\n    Nevis.extend = extend_1;\n  \n    var nevis = Nevis;\n  \n    var lite = nevis;\n  \n    /**\n     * Responsible for rendering a QR code {@link Frame} on a specific type of element.\n     *\n     * A renderer may be dependant on the rendering of another element, so the ordering of their execution is important.\n     *\n     * The rendering of a element can be deferred by disabling the renderer initially, however, any attempt get the element\n     * from the renderer will result in it being immediately enabled and the element being rendered.\n     *\n     * @param {QRious} qrious - the {@link QRious} instance to be used\n     * @param {*} element - the element onto which the QR code is to be rendered\n     * @param {boolean} [enabled] - <code>true</code> this {@link Renderer} is enabled; otherwise <code>false</code>.\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Renderer = lite.extend(function(qrious, element, enabled) {\n      /**\n       * The {@link QRious} instance.\n       *\n       * @protected\n       * @type {QRious}\n       * @memberof Renderer#\n       */\n      this.qrious = qrious;\n  \n      /**\n       * The element onto which this {@link Renderer} is rendering the QR code.\n       *\n       * @protected\n       * @type {*}\n       * @memberof Renderer#\n       */\n      this.element = element;\n      this.element.qrious = qrious;\n  \n      /**\n       * Whether this {@link Renderer} is enabled.\n       *\n       * @protected\n       * @type {boolean}\n       * @memberof Renderer#\n       */\n      this.enabled = Boolean(enabled);\n    }, {\n  \n      /**\n       * Draws the specified QR code <code>frame</code> on the underlying element.\n       *\n       * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n       *\n       * @param {Frame} frame - the {@link Frame} to be drawn\n       * @return {void}\n       * @protected\n       * @abstract\n       * @memberof Renderer#\n       */\n      draw: function(frame) {},\n  \n      /**\n       * Returns the element onto which this {@link Renderer} is rendering the QR code.\n       *\n       * If this method is called while this {@link Renderer} is disabled, it will be immediately enabled and rendered\n       * before the element is returned.\n       *\n       * @return {*} The element.\n       * @public\n       * @memberof Renderer#\n       */\n      getElement: function() {\n        if (!this.enabled) {\n          this.enabled = true;\n          this.render();\n        }\n  \n        return this.element;\n      },\n  \n      /**\n       * Calculates the size (in pixel units) to represent an individual module within the QR code based on the\n       * <code>frame</code> provided.\n       *\n       * Any configured padding will be excluded from the returned size.\n       *\n       * The returned value will be at least one, even in cases where the size of the QR code does not fit its contents.\n       * This is done so that the inevitable clipping is handled more gracefully since this way at least something is\n       * displayed instead of just a blank space filled by the background color.\n       *\n       * @param {Frame} frame - the {@link Frame} from which the module size is to be derived\n       * @return {number} The pixel size for each module in the QR code which will be no less than one.\n       * @protected\n       * @memberof Renderer#\n       */\n      getModuleSize: function(frame) {\n        var qrious = this.qrious;\n        var padding = qrious.padding || 0;\n        var pixels = Math.floor((qrious.size - (padding * 2)) / frame.width);\n  \n        return Math.max(1, pixels);\n      },\n\n      /**\n       * Renders a QR code on the underlying element based on the <code>frame</code> provided.\n       *\n       * @param {Frame} frame - the {@link Frame} to be rendered\n       * @return {void}\n       * @public\n       * @memberof Renderer#\n       */\n      render: function(frame) {\n        if (this.enabled) {\n          this.resize();\n          this.reset();\n          this.draw(frame);\n        }\n      },\n  \n      /**\n       * Resets the underlying element, effectively clearing any previously rendered QR code.\n       *\n       * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {void}\n       * @protected\n       * @abstract\n       * @memberof Renderer#\n       */\n      reset: function() {},\n  \n      /**\n       * Ensures that the size of the underlying element matches that defined on the associated {@link QRious} instance.\n       *\n       * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {void}\n       * @protected\n       * @abstract\n       * @memberof Renderer#\n       */\n      resize: function() {}\n  \n    });\n  \n    var Renderer_1 = Renderer;\n  \n    /**\n     * An implementation of {@link Renderer} for working with <code>canvas</code> elements.\n     *\n     * @public\n     * @class\n     * @extends Renderer\n     */\n    var CanvasRenderer = Renderer_1.extend({\n  \n      /**\n       * @override\n       */\n      draw: function(frame) {\n        var i, j;\n        var qrious = this.qrious;\n        var moduleSize = this.getModuleSize(frame);\n        var offset = parseInt((this.element.width-(frame.width * moduleSize)) / 2);\n        var context = this.element.getContext('2d');\n  \n        context.fillStyle = qrious.foreground;\n        context.globalAlpha = qrious.foregroundAlpha;\n  \n        for (i = 0; i < frame.width; i++) {\n          for (j = 0; j < frame.width; j++) {\n            if (frame.buffer[(j * frame.width) + i]) {\n              context.fillRect((moduleSize * i) + offset, (moduleSize * j) + offset, moduleSize, moduleSize);\n            }\n          }\n        }\n      },\n  \n      /**\n       * @override\n       */\n      reset: function() {\n        var qrious = this.qrious;\n        var context = this.element.getContext('2d');\n        var size = qrious.size;\n  \n        context.lineWidth = 1;\n        context.clearRect(0, 0, size, size);\n        context.fillStyle = qrious.background;\n        context.globalAlpha = qrious.backgroundAlpha;\n        context.fillRect(0, 0, size, size);\n      },\n  \n      /**\n       * @override\n       */\n      resize: function() {\n        var element = this.element;\n  \n        element.width = element.height = this.qrious.size;\n      }\n  \n    });\n  \n    var CanvasRenderer_1 = CanvasRenderer;\n  \n    /* eslint no-multi-spaces: \"off\" */\n  \n  \n  \n    /**\n     * Contains alignment pattern information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Alignment = lite.extend(null, {\n  \n      /**\n       * The alignment pattern block.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Alignment\n       */\n      BLOCK: [\n        0,  11, 15, 19, 23, 27, 31,\n        16, 18, 20, 22, 24, 26, 28, 20, 22, 24, 24, 26, 28, 28, 22, 24, 24,\n        26, 26, 28, 28, 24, 24, 26, 26, 26, 28, 28, 24, 26, 26, 26, 28, 28\n      ]\n  \n    });\n  \n    var Alignment_1 = Alignment;\n  \n    /* eslint no-multi-spaces: \"off\" */\n  \n  \n  \n    /**\n     * Contains error correction information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var ErrorCorrection = lite.extend(null, {\n  \n      /**\n       * The error correction blocks.\n       *\n       * There are four elements per version. The first two indicate the number of blocks, then the data width, and finally\n       * the ECC width.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof ErrorCorrection\n       */\n      BLOCKS: [\n        1,  0,  19,  7,     1,  0,  16,  10,    1,  0,  13,  13,    1,  0,  9,   17,\n        1,  0,  34,  10,    1,  0,  28,  16,    1,  0,  22,  22,    1,  0,  16,  28,\n        1,  0,  55,  15,    1,  0,  44,  26,    2,  0,  17,  18,    2,  0,  13,  22,\n        1,  0,  80,  20,    2,  0,  32,  18,    2,  0,  24,  26,    4,  0,  9,   16,\n        1,  0,  108, 26,    2,  0,  43,  24,    2,  2,  15,  18,    2,  2,  11,  22,\n        2,  0,  68,  18,    4,  0,  27,  16,    4,  0,  19,  24,    4,  0,  15,  28,\n        2,  0,  78,  20,    4,  0,  31,  18,    2,  4,  14,  18,    4,  1,  13,  26,\n        2,  0,  97,  24,    2,  2,  38,  22,    4,  2,  18,  22,    4,  2,  14,  26,\n        2,  0,  116, 30,    3,  2,  36,  22,    4,  4,  16,  20,    4,  4,  12,  24,\n        2,  2,  68,  18,    4,  1,  43,  26,    6,  2,  19,  24,    6,  2,  15,  28,\n        4,  0,  81,  20,    1,  4,  50,  30,    4,  4,  22,  28,    3,  8,  12,  24,\n        2,  2,  92,  24,    6,  2,  36,  22,    4,  6,  20,  26,    7,  4,  14,  28,\n        4,  0,  107, 26,    8,  1,  37,  22,    8,  4,  20,  24,    12, 4,  11,  22,\n        3,  1,  115, 30,    4,  5,  40,  24,    11, 5,  16,  20,    11, 5,  12,  24,\n        5,  1,  87,  22,    5,  5,  41,  24,    5,  7,  24,  30,    11, 7,  12,  24,\n        5,  1,  98,  24,    7,  3,  45,  28,    15, 2,  19,  24,    3,  13, 15,  30,\n        1,  5,  107, 28,    10, 1,  46,  28,    1,  15, 22,  28,    2,  17, 14,  28,\n        5,  1,  120, 30,    9,  4,  43,  26,    17, 1,  22,  28,    2,  19, 14,  28,\n        3,  4,  113, 28,    3,  11, 44,  26,    17, 4,  21,  26,    9,  16, 13,  26,\n        3,  5,  107, 28,    3,  13, 41,  26,    15, 5,  24,  30,    15, 10, 15,  28,\n        4,  4,  116, 28,    17, 0,  42,  26,    17, 6,  22,  28,    19, 6,  16,  30,\n        2,  7,  111, 28,    17, 0,  46,  28,    7,  16, 24,  30,    34, 0,  13,  24,\n        4,  5,  121, 30,    4,  14, 47,  28,    11, 14, 24,  30,    16, 14, 15,  30,\n        6,  4,  117, 30,    6,  14, 45,  28,    11, 16, 24,  30,    30, 2,  16,  30,\n        8,  4,  106, 26,    8,  13, 47,  28,    7,  22, 24,  30,    22, 13, 15,  30,\n        10, 2,  114, 28,    19, 4,  46,  28,    28, 6,  22,  28,    33, 4,  16,  30,\n        8,  4,  122, 30,    22, 3,  45,  28,    8,  26, 23,  30,    12, 28, 15,  30,\n        3,  10, 117, 30,    3,  23, 45,  28,    4,  31, 24,  30,    11, 31, 15,  30,\n        7,  7,  116, 30,    21, 7,  45,  28,    1,  37, 23,  30,    19, 26, 15,  30,\n        5,  10, 115, 30,    19, 10, 47,  28,    15, 25, 24,  30,    23, 25, 15,  30,\n        13, 3,  115, 30,    2,  29, 46,  28,    42, 1,  24,  30,    23, 28, 15,  30,\n        17, 0,  115, 30,    10, 23, 46,  28,    10, 35, 24,  30,    19, 35, 15,  30,\n        17, 1,  115, 30,    14, 21, 46,  28,    29, 19, 24,  30,    11, 46, 15,  30,\n        13, 6,  115, 30,    14, 23, 46,  28,    44, 7,  24,  30,    59, 1,  16,  30,\n        12, 7,  121, 30,    12, 26, 47,  28,    39, 14, 24,  30,    22, 41, 15,  30,\n        6,  14, 121, 30,    6,  34, 47,  28,    46, 10, 24,  30,    2,  64, 15,  30,\n        17, 4,  122, 30,    29, 14, 46,  28,    49, 10, 24,  30,    24, 46, 15,  30,\n        4,  18, 122, 30,    13, 32, 46,  28,    48, 14, 24,  30,    42, 32, 15,  30,\n        20, 4,  117, 30,    40, 7,  47,  28,    43, 22, 24,  30,    10, 67, 15,  30,\n        19, 6,  118, 30,    18, 31, 47,  28,    34, 34, 24,  30,    20, 61, 15,  30\n      ],\n  \n      /**\n       * The final format bits with mask (level << 3 | mask).\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof ErrorCorrection\n       */\n      FINAL_FORMAT: [\n        // L\n        0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976,\n        // M\n        0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0,\n        // Q\n        0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed,\n        // H\n        0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b\n      ],\n  \n      /**\n       * A map of human-readable ECC levels.\n       *\n       * @public\n       * @static\n       * @type {Object.<string, number>}\n       * @memberof ErrorCorrection\n       */\n      LEVELS: {\n        L: 1,\n        M: 2,\n        Q: 3,\n        H: 4\n      }\n  \n    });\n  \n    var ErrorCorrection_1 = ErrorCorrection;\n  \n    /**\n     * Contains Galois field information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Galois = lite.extend(null, {\n  \n      /**\n       * The Galois field exponent table.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Galois\n       */\n      EXPONENT: [\n        0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1d, 0x3a, 0x74, 0xe8, 0xcd, 0x87, 0x13, 0x26,\n        0x4c, 0x98, 0x2d, 0x5a, 0xb4, 0x75, 0xea, 0xc9, 0x8f, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0,\n        0x9d, 0x27, 0x4e, 0x9c, 0x25, 0x4a, 0x94, 0x35, 0x6a, 0xd4, 0xb5, 0x77, 0xee, 0xc1, 0x9f, 0x23,\n        0x46, 0x8c, 0x05, 0x0a, 0x14, 0x28, 0x50, 0xa0, 0x5d, 0xba, 0x69, 0xd2, 0xb9, 0x6f, 0xde, 0xa1,\n        0x5f, 0xbe, 0x61, 0xc2, 0x99, 0x2f, 0x5e, 0xbc, 0x65, 0xca, 0x89, 0x0f, 0x1e, 0x3c, 0x78, 0xf0,\n        0xfd, 0xe7, 0xd3, 0xbb, 0x6b, 0xd6, 0xb1, 0x7f, 0xfe, 0xe1, 0xdf, 0xa3, 0x5b, 0xb6, 0x71, 0xe2,\n        0xd9, 0xaf, 0x43, 0x86, 0x11, 0x22, 0x44, 0x88, 0x0d, 0x1a, 0x34, 0x68, 0xd0, 0xbd, 0x67, 0xce,\n        0x81, 0x1f, 0x3e, 0x7c, 0xf8, 0xed, 0xc7, 0x93, 0x3b, 0x76, 0xec, 0xc5, 0x97, 0x33, 0x66, 0xcc,\n        0x85, 0x17, 0x2e, 0x5c, 0xb8, 0x6d, 0xda, 0xa9, 0x4f, 0x9e, 0x21, 0x42, 0x84, 0x15, 0x2a, 0x54,\n        0xa8, 0x4d, 0x9a, 0x29, 0x52, 0xa4, 0x55, 0xaa, 0x49, 0x92, 0x39, 0x72, 0xe4, 0xd5, 0xb7, 0x73,\n        0xe6, 0xd1, 0xbf, 0x63, 0xc6, 0x91, 0x3f, 0x7e, 0xfc, 0xe5, 0xd7, 0xb3, 0x7b, 0xf6, 0xf1, 0xff,\n        0xe3, 0xdb, 0xab, 0x4b, 0x96, 0x31, 0x62, 0xc4, 0x95, 0x37, 0x6e, 0xdc, 0xa5, 0x57, 0xae, 0x41,\n        0x82, 0x19, 0x32, 0x64, 0xc8, 0x8d, 0x07, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xdd, 0xa7, 0x53, 0xa6,\n        0x51, 0xa2, 0x59, 0xb2, 0x79, 0xf2, 0xf9, 0xef, 0xc3, 0x9b, 0x2b, 0x56, 0xac, 0x45, 0x8a, 0x09,\n        0x12, 0x24, 0x48, 0x90, 0x3d, 0x7a, 0xf4, 0xf5, 0xf7, 0xf3, 0xfb, 0xeb, 0xcb, 0x8b, 0x0b, 0x16,\n        0x2c, 0x58, 0xb0, 0x7d, 0xfa, 0xe9, 0xcf, 0x83, 0x1b, 0x36, 0x6c, 0xd8, 0xad, 0x47, 0x8e, 0x00\n      ],\n  \n      /**\n       * The Galois field log table.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Galois\n       */\n      LOG: [\n        0xff, 0x00, 0x01, 0x19, 0x02, 0x32, 0x1a, 0xc6, 0x03, 0xdf, 0x33, 0xee, 0x1b, 0x68, 0xc7, 0x4b,\n        0x04, 0x64, 0xe0, 0x0e, 0x34, 0x8d, 0xef, 0x81, 0x1c, 0xc1, 0x69, 0xf8, 0xc8, 0x08, 0x4c, 0x71,\n        0x05, 0x8a, 0x65, 0x2f, 0xe1, 0x24, 0x0f, 0x21, 0x35, 0x93, 0x8e, 0xda, 0xf0, 0x12, 0x82, 0x45,\n        0x1d, 0xb5, 0xc2, 0x7d, 0x6a, 0x27, 0xf9, 0xb9, 0xc9, 0x9a, 0x09, 0x78, 0x4d, 0xe4, 0x72, 0xa6,\n        0x06, 0xbf, 0x8b, 0x62, 0x66, 0xdd, 0x30, 0xfd, 0xe2, 0x98, 0x25, 0xb3, 0x10, 0x91, 0x22, 0x88,\n        0x36, 0xd0, 0x94, 0xce, 0x8f, 0x96, 0xdb, 0xbd, 0xf1, 0xd2, 0x13, 0x5c, 0x83, 0x38, 0x46, 0x40,\n        0x1e, 0x42, 0xb6, 0xa3, 0xc3, 0x48, 0x7e, 0x6e, 0x6b, 0x3a, 0x28, 0x54, 0xfa, 0x85, 0xba, 0x3d,\n        0xca, 0x5e, 0x9b, 0x9f, 0x0a, 0x15, 0x79, 0x2b, 0x4e, 0xd4, 0xe5, 0xac, 0x73, 0xf3, 0xa7, 0x57,\n        0x07, 0x70, 0xc0, 0xf7, 0x8c, 0x80, 0x63, 0x0d, 0x67, 0x4a, 0xde, 0xed, 0x31, 0xc5, 0xfe, 0x18,\n        0xe3, 0xa5, 0x99, 0x77, 0x26, 0xb8, 0xb4, 0x7c, 0x11, 0x44, 0x92, 0xd9, 0x23, 0x20, 0x89, 0x2e,\n        0x37, 0x3f, 0xd1, 0x5b, 0x95, 0xbc, 0xcf, 0xcd, 0x90, 0x87, 0x97, 0xb2, 0xdc, 0xfc, 0xbe, 0x61,\n        0xf2, 0x56, 0xd3, 0xab, 0x14, 0x2a, 0x5d, 0x9e, 0x84, 0x3c, 0x39, 0x53, 0x47, 0x6d, 0x41, 0xa2,\n        0x1f, 0x2d, 0x43, 0xd8, 0xb7, 0x7b, 0xa4, 0x76, 0xc4, 0x17, 0x49, 0xec, 0x7f, 0x0c, 0x6f, 0xf6,\n        0x6c, 0xa1, 0x3b, 0x52, 0x29, 0x9d, 0x55, 0xaa, 0xfb, 0x60, 0x86, 0xb1, 0xbb, 0xcc, 0x3e, 0x5a,\n        0xcb, 0x59, 0x5f, 0xb0, 0x9c, 0xa9, 0xa0, 0x51, 0x0b, 0xf5, 0x16, 0xeb, 0x7a, 0x75, 0x2c, 0xd7,\n        0x4f, 0xae, 0xd5, 0xe9, 0xe6, 0xe7, 0xad, 0xe8, 0x74, 0xd6, 0xf4, 0xea, 0xa8, 0x50, 0x58, 0xaf\n      ]\n  \n    });\n  \n    var Galois_1 = Galois;\n  \n    /**\n     * Contains version pattern information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Version = lite.extend(null, {\n  \n      /**\n       * The version pattern block.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Version\n       */\n      BLOCK: [\n        0xc94, 0x5bc, 0xa99, 0x4d3, 0xbf6, 0x762, 0x847, 0x60d, 0x928, 0xb78, 0x45d, 0xa17, 0x532,\n        0x9a6, 0x683, 0x8c9, 0x7ec, 0xec4, 0x1e1, 0xfab, 0x08e, 0xc1a, 0x33f, 0xd75, 0x250, 0x9d5,\n        0x6f0, 0x8ba, 0x79f, 0xb0b, 0x42e, 0xa64, 0x541, 0xc69\n      ]\n  \n    });\n  \n    var Version_1 = Version;\n  \n    /**\n     * Generates information for a QR code frame based on a specific value to be encoded.\n     *\n     * @param {Frame~Options} options - the options to be used\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Frame = lite.extend(function(options) {\n      var dataBlock, eccBlock, index, neccBlock1, neccBlock2;\n      var valueLength = options.value.length;\n  \n      this._badness = [];\n      this._level = ErrorCorrection_1.LEVELS[options.level];\n      this._polynomial = [];\n      this._value = options.value;\n      this._version = 0;\n      this._stringBuffer = [];\n  \n      while (this._version < 40) {\n        this._version++;\n  \n        index = ((this._level - 1) * 4) + ((this._version - 1) * 16);\n  \n        neccBlock1 = ErrorCorrection_1.BLOCKS[index++];\n        neccBlock2 = ErrorCorrection_1.BLOCKS[index++];\n        dataBlock = ErrorCorrection_1.BLOCKS[index++];\n        eccBlock = ErrorCorrection_1.BLOCKS[index];\n  \n        index = (dataBlock * (neccBlock1 + neccBlock2)) + neccBlock2 - 3 + (this._version <= 9);\n  \n        if (valueLength <= index) {\n          break;\n        }\n      }\n  \n      this._dataBlock = dataBlock;\n      this._eccBlock = eccBlock;\n      this._neccBlock1 = neccBlock1;\n      this._neccBlock2 = neccBlock2;\n  \n      /**\n       * The data width is based on version.\n       *\n       * @public\n       * @type {number}\n       * @memberof Frame#\n       */\n      // FIXME: Ensure that it fits instead of being truncated.\n      var width = this.width = 17 + (4 * this._version);\n  \n      /**\n       * The image buffer.\n       *\n       * @public\n       * @type {number[]}\n       * @memberof Frame#\n       */\n      this.buffer = Frame._createArray(width * width);\n  \n      this._ecc = Frame._createArray(dataBlock + ((dataBlock + eccBlock) * (neccBlock1 + neccBlock2)) + neccBlock2);\n      this._mask = Frame._createArray(((width * (width + 1)) + 1) / 2);\n  \n      this._insertFinders();\n      this._insertAlignments();\n  \n      // Insert single foreground cell.\n      this.buffer[8 + (width * (width - 8))] = 1;\n  \n      this._insertTimingGap();\n      this._reverseMask();\n      this._insertTimingRowAndColumn();\n      this._insertVersion();\n      this._syncMask();\n      this._convertBitStream(valueLength);\n      this._calculatePolynomial();\n      this._appendEccToData();\n      this._interleaveBlocks();\n      this._pack();\n      this._finish();\n    }, {\n  \n      _addAlignment: function(x, y) {\n        var i;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        buffer[x + (width * y)] = 1;\n  \n        for (i = -2; i < 2; i++) {\n          buffer[x + i + (width * (y - 2))] = 1;\n          buffer[x - 2 + (width * (y + i + 1))] = 1;\n          buffer[x + 2 + (width * (y + i))] = 1;\n          buffer[x + i + 1 + (width * (y + 2))] = 1;\n        }\n  \n        for (i = 0; i < 2; i++) {\n          this._setMask(x - 1, y + i);\n          this._setMask(x + 1, y - i);\n          this._setMask(x - i, y - 1);\n          this._setMask(x + i, y + 1);\n        }\n      },\n  \n      _appendData: function(data, dataLength, ecc, eccLength) {\n        var bit, i, j;\n        var polynomial = this._polynomial;\n        var stringBuffer = this._stringBuffer;\n  \n        for (i = 0; i < eccLength; i++) {\n          stringBuffer[ecc + i] = 0;\n        }\n  \n        for (i = 0; i < dataLength; i++) {\n          bit = Galois_1.LOG[stringBuffer[data + i] ^ stringBuffer[ecc]];\n  \n          if (bit !== 255) {\n            for (j = 1; j < eccLength; j++) {\n              stringBuffer[ecc + j - 1] = stringBuffer[ecc + j] ^\n                Galois_1.EXPONENT[Frame._modN(bit + polynomial[eccLength - j])];\n            }\n          } else {\n            for (j = ecc; j < ecc + eccLength; j++) {\n              stringBuffer[j] = stringBuffer[j + 1];\n            }\n          }\n  \n          stringBuffer[ecc + eccLength - 1] = bit === 255 ? 0 : Galois_1.EXPONENT[Frame._modN(bit + polynomial[0])];\n        }\n      },\n  \n      _appendEccToData: function() {\n        var i;\n        var data = 0;\n        var dataBlock = this._dataBlock;\n        var ecc = this._calculateMaxLength();\n        var eccBlock = this._eccBlock;\n  \n        for (i = 0; i < this._neccBlock1; i++) {\n          this._appendData(data, dataBlock, ecc, eccBlock);\n  \n          data += dataBlock;\n          ecc += eccBlock;\n        }\n  \n        for (i = 0; i < this._neccBlock2; i++) {\n          this._appendData(data, dataBlock + 1, ecc, eccBlock);\n  \n          data += dataBlock + 1;\n          ecc += eccBlock;\n        }\n      },\n  \n      _applyMask: function(mask) {\n        var r3x, r3y, x, y;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        switch (mask) {\n        case 0:\n          for (y = 0; y < width; y++) {\n            for (x = 0; x < width; x++) {\n              if (!((x + y) & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 1:\n          for (y = 0; y < width; y++) {\n            for (x = 0; x < width; x++) {\n              if (!(y & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 2:\n          for (y = 0; y < width; y++) {\n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!r3x && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 3:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = r3y, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!r3x && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 4:\n          for (y = 0; y < width; y++) {\n            for (r3x = 0, r3y = (y >> 1) & 1, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n                r3y = !r3y;\n              }\n  \n              if (!r3y && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 5:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!((x & y & 1) + !(!r3x | !r3y)) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 6:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!((x & y & 1) + (r3x && r3x === r3y) & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 7:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!((r3x && r3x === r3y) + (x + y & 1) & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        }\n      },\n  \n      _calculateMaxLength: function() {\n        return (this._dataBlock * (this._neccBlock1 + this._neccBlock2)) + this._neccBlock2;\n      },\n  \n      _calculatePolynomial: function() {\n        var i, j;\n        var eccBlock = this._eccBlock;\n        var polynomial = this._polynomial;\n  \n        polynomial[0] = 1;\n  \n        for (i = 0; i < eccBlock; i++) {\n          polynomial[i + 1] = 1;\n  \n          for (j = i; j > 0; j--) {\n            polynomial[j] = polynomial[j] ? polynomial[j - 1] ^\n              Galois_1.EXPONENT[Frame._modN(Galois_1.LOG[polynomial[j]] + i)] : polynomial[j - 1];\n          }\n  \n          polynomial[0] = Galois_1.EXPONENT[Frame._modN(Galois_1.LOG[polynomial[0]] + i)];\n        }\n  \n        // Use logs for generator polynomial to save calculation step.\n        for (i = 0; i <= eccBlock; i++) {\n          polynomial[i] = Galois_1.LOG[polynomial[i]];\n        }\n      },\n  \n      _checkBadness: function() {\n        var b, b1, h, x, y;\n        var bad = 0;\n        var badness = this._badness;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        // Blocks of same colour.\n        for (y = 0; y < width - 1; y++) {\n          for (x = 0; x < width - 1; x++) {\n            // All foreground colour.\n            if ((buffer[x + (width * y)] &&\n              buffer[x + 1 + (width * y)] &&\n              buffer[x + (width * (y + 1))] &&\n              buffer[x + 1 + (width * (y + 1))]) ||\n              // All background colour.\n              !(buffer[x + (width * y)] ||\n              buffer[x + 1 + (width * y)] ||\n              buffer[x + (width * (y + 1))] ||\n              buffer[x + 1 + (width * (y + 1))])) {\n              bad += Frame.N2;\n            }\n          }\n        }\n  \n        var bw = 0;\n  \n        // X runs.\n        for (y = 0; y < width; y++) {\n          h = 0;\n  \n          badness[0] = 0;\n  \n          for (b = 0, x = 0; x < width; x++) {\n            b1 = buffer[x + (width * y)];\n  \n            if (b === b1) {\n              badness[h]++;\n            } else {\n              badness[++h] = 1;\n            }\n  \n            b = b1;\n            bw += b ? 1 : -1;\n          }\n  \n          bad += this._getBadness(h);\n        }\n  \n        if (bw < 0) {\n          bw = -bw;\n        }\n  \n        var count = 0;\n        var big = bw;\n        big += big << 2;\n        big <<= 1;\n  \n        while (big > width * width) {\n          big -= width * width;\n          count++;\n        }\n  \n        bad += count * Frame.N4;\n  \n        // Y runs.\n        for (x = 0; x < width; x++) {\n          h = 0;\n  \n          badness[0] = 0;\n  \n          for (b = 0, y = 0; y < width; y++) {\n            b1 = buffer[x + (width * y)];\n  \n            if (b === b1) {\n              badness[h]++;\n            } else {\n              badness[++h] = 1;\n            }\n  \n            b = b1;\n          }\n  \n          bad += this._getBadness(h);\n        }\n  \n        return bad;\n      },\n  \n      _convertBitStream: function(length) {\n        var bit, i;\n        var ecc = this._ecc;\n        var version = this._version;\n  \n        // Convert string to bit stream. 8-bit data to QR-coded 8-bit data (numeric, alphanumeric, or kanji not supported).\n        for (i = 0; i < length; i++) {\n          ecc[i] = this._value.charCodeAt(i);\n        }\n  \n        var stringBuffer = this._stringBuffer = ecc.slice();\n        var maxLength = this._calculateMaxLength();\n  \n        if (length >= maxLength - 2) {\n          length = maxLength - 2;\n  \n          if (version > 9) {\n            length--;\n          }\n        }\n  \n        // Shift and re-pack to insert length prefix.\n        var index = length;\n  \n        if (version > 9) {\n          stringBuffer[index + 2] = 0;\n          stringBuffer[index + 3] = 0;\n  \n          while (index--) {\n            bit = stringBuffer[index];\n  \n            stringBuffer[index + 3] |= 255 & (bit << 4);\n            stringBuffer[index + 2] = bit >> 4;\n          }\n  \n          stringBuffer[2] |= 255 & (length << 4);\n          stringBuffer[1] = length >> 4;\n          stringBuffer[0] = 0x40 | (length >> 12);\n        } else {\n          stringBuffer[index + 1] = 0;\n          stringBuffer[index + 2] = 0;\n  \n          while (index--) {\n            bit = stringBuffer[index];\n  \n            stringBuffer[index + 2] |= 255 & (bit << 4);\n            stringBuffer[index + 1] = bit >> 4;\n          }\n  \n          stringBuffer[1] |= 255 & (length << 4);\n          stringBuffer[0] = 0x40 | (length >> 4);\n        }\n  \n        // Fill to end with pad pattern.\n        index = length + 3 - (version < 10);\n  \n        while (index < maxLength) {\n          stringBuffer[index++] = 0xec;\n          stringBuffer[index++] = 0x11;\n        }\n      },\n  \n      _getBadness: function(length) {\n        var i;\n        var badRuns = 0;\n        var badness = this._badness;\n  \n        for (i = 0; i <= length; i++) {\n          if (badness[i] >= 5) {\n            badRuns += Frame.N1 + badness[i] - 5;\n          }\n        }\n  \n        // FBFFFBF as in finder.\n        for (i = 3; i < length - 1; i += 2) {\n          if (badness[i - 2] === badness[i + 2] &&\n            badness[i + 2] === badness[i - 1] &&\n            badness[i - 1] === badness[i + 1] &&\n            badness[i - 1] * 3 === badness[i] &&\n            // Background around the foreground pattern? Not part of the specs.\n            (badness[i - 3] === 0 || i + 3 > length ||\n            badness[i - 3] * 3 >= badness[i] * 4 ||\n            badness[i + 3] * 3 >= badness[i] * 4)) {\n            badRuns += Frame.N3;\n          }\n        }\n  \n        return badRuns;\n      },\n  \n      _finish: function() {\n        // Save pre-mask copy of frame.\n        this._stringBuffer = this.buffer.slice();\n  \n        var currentMask, i;\n        var bit = 0;\n        var mask = 30000;\n  \n        /*\n         * Using for instead of while since in original Arduino code if an early mask was \"good enough\" it wouldn't try for\n         * a better one since they get more complex and take longer.\n         */\n        for (i = 0; i < 8; i++) {\n          // Returns foreground-background imbalance.\n          this._applyMask(i);\n  \n          currentMask = this._checkBadness();\n  \n          // Is current mask better than previous best?\n          if (currentMask < mask) {\n            mask = currentMask;\n            bit = i;\n          }\n  \n          // Don't increment \"i\" to a void redoing mask.\n          if (bit === 7) {\n            break;\n          }\n  \n          // Reset for next pass.\n          this.buffer = this._stringBuffer.slice();\n        }\n  \n        // Redo best mask as none were \"good enough\" (i.e. last wasn't bit).\n        if (bit !== i) {\n          this._applyMask(bit);\n        }\n  \n        // Add in final mask/ECC level bytes.\n        mask = ErrorCorrection_1.FINAL_FORMAT[bit + (this._level - 1 << 3)];\n  \n        var buffer = this.buffer;\n        var width = this.width;\n  \n        // Low byte.\n        for (i = 0; i < 8; i++, mask >>= 1) {\n          if (mask & 1) {\n            buffer[width - 1 - i + (width * 8)] = 1;\n  \n            if (i < 6) {\n              buffer[8 + (width * i)] = 1;\n            } else {\n              buffer[8 + (width * (i + 1))] = 1;\n            }\n          }\n        }\n  \n        // High byte.\n        for (i = 0; i < 7; i++, mask >>= 1) {\n          if (mask & 1) {\n            buffer[8 + (width * (width - 7 + i))] = 1;\n  \n            if (i) {\n              buffer[6 - i + (width * 8)] = 1;\n            } else {\n              buffer[7 + (width * 8)] = 1;\n            }\n          }\n        }\n      },\n  \n      _interleaveBlocks: function() {\n        var i, j;\n        var dataBlock = this._dataBlock;\n        var ecc = this._ecc;\n        var eccBlock = this._eccBlock;\n        var k = 0;\n        var maxLength = this._calculateMaxLength();\n        var neccBlock1 = this._neccBlock1;\n        var neccBlock2 = this._neccBlock2;\n        var stringBuffer = this._stringBuffer;\n  \n        for (i = 0; i < dataBlock; i++) {\n          for (j = 0; j < neccBlock1; j++) {\n            ecc[k++] = stringBuffer[i + (j * dataBlock)];\n          }\n  \n          for (j = 0; j < neccBlock2; j++) {\n            ecc[k++] = stringBuffer[(neccBlock1 * dataBlock) + i + (j * (dataBlock + 1))];\n          }\n        }\n  \n        for (j = 0; j < neccBlock2; j++) {\n          ecc[k++] = stringBuffer[(neccBlock1 * dataBlock) + i + (j * (dataBlock + 1))];\n        }\n  \n        for (i = 0; i < eccBlock; i++) {\n          for (j = 0; j < neccBlock1 + neccBlock2; j++) {\n            ecc[k++] = stringBuffer[maxLength + i + (j * eccBlock)];\n          }\n        }\n  \n        this._stringBuffer = ecc;\n      },\n  \n      _insertAlignments: function() {\n        var i, x, y;\n        var version = this._version;\n        var width = this.width;\n  \n        if (version > 1) {\n          i = Alignment_1.BLOCK[version];\n          y = width - 7;\n  \n          for (;;) {\n            x = width - 7;\n  \n            while (x > i - 3) {\n              this._addAlignment(x, y);\n  \n              if (x < i) {\n                break;\n              }\n  \n              x -= i;\n            }\n  \n            if (y <= i + 9) {\n              break;\n            }\n  \n            y -= i;\n  \n            this._addAlignment(6, y);\n            this._addAlignment(y, 6);\n          }\n        }\n      },\n  \n      _insertFinders: function() {\n        var i, j, x, y;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        for (i = 0; i < 3; i++) {\n          j = 0;\n          y = 0;\n  \n          if (i === 1) {\n            j = width - 7;\n          }\n          if (i === 2) {\n            y = width - 7;\n          }\n  \n          buffer[y + 3 + (width * (j + 3))] = 1;\n  \n          for (x = 0; x < 6; x++) {\n            buffer[y + x + (width * j)] = 1;\n            buffer[y + (width * (j + x + 1))] = 1;\n            buffer[y + 6 + (width * (j + x))] = 1;\n            buffer[y + x + 1 + (width * (j + 6))] = 1;\n          }\n  \n          for (x = 1; x < 5; x++) {\n            this._setMask(y + x, j + 1);\n            this._setMask(y + 1, j + x + 1);\n            this._setMask(y + 5, j + x);\n            this._setMask(y + x + 1, j + 5);\n          }\n  \n          for (x = 2; x < 4; x++) {\n            buffer[y + x + (width * (j + 2))] = 1;\n            buffer[y + 2 + (width * (j + x + 1))] = 1;\n            buffer[y + 4 + (width * (j + x))] = 1;\n            buffer[y + x + 1 + (width * (j + 4))] = 1;\n          }\n        }\n      },\n  \n      _insertTimingGap: function() {\n        var x, y;\n        var width = this.width;\n  \n        for (y = 0; y < 7; y++) {\n          this._setMask(7, y);\n          this._setMask(width - 8, y);\n          this._setMask(7, y + width - 7);\n        }\n  \n        for (x = 0; x < 8; x++) {\n          this._setMask(x, 7);\n          this._setMask(x + width - 8, 7);\n          this._setMask(x, width - 8);\n        }\n      },\n  \n      _insertTimingRowAndColumn: function() {\n        var x;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        for (x = 0; x < width - 14; x++) {\n          if (x & 1) {\n            this._setMask(8 + x, 6);\n            this._setMask(6, 8 + x);\n          } else {\n            buffer[8 + x + (width * 6)] = 1;\n            buffer[6 + (width * (8 + x))] = 1;\n          }\n        }\n      },\n  \n      _insertVersion: function() {\n        var i, j, x, y;\n        var buffer = this.buffer;\n        var version = this._version;\n        var width = this.width;\n  \n        if (version > 6) {\n          i = Version_1.BLOCK[version - 7];\n          j = 17;\n  \n          for (x = 0; x < 6; x++) {\n            for (y = 0; y < 3; y++, j--) {\n              if (1 & (j > 11 ? version >> j - 12 : i >> j)) {\n                buffer[5 - x + (width * (2 - y + width - 11))] = 1;\n                buffer[2 - y + width - 11 + (width * (5 - x))] = 1;\n              } else {\n                this._setMask(5 - x, 2 - y + width - 11);\n                this._setMask(2 - y + width - 11, 5 - x);\n              }\n            }\n          }\n        }\n      },\n  \n      _isMasked: function(x, y) {\n        var bit = Frame._getMaskBit(x, y);\n  \n        return this._mask[bit] === 1;\n      },\n  \n      _pack: function() {\n        var bit, i, j;\n        var k = 1;\n        var v = 1;\n        var width = this.width;\n        var x = width - 1;\n        var y = width - 1;\n  \n        // Interleaved data and ECC codes.\n        var length = ((this._dataBlock + this._eccBlock) * (this._neccBlock1 + this._neccBlock2)) + this._neccBlock2;\n  \n        for (i = 0; i < length; i++) {\n          bit = this._stringBuffer[i];\n  \n          for (j = 0; j < 8; j++, bit <<= 1) {\n            if (0x80 & bit) {\n              this.buffer[x + (width * y)] = 1;\n            }\n  \n            // Find next fill position.\n            do {\n              if (v) {\n                x--;\n              } else {\n                x++;\n  \n                if (k) {\n                  if (y !== 0) {\n                    y--;\n                  } else {\n                    x -= 2;\n                    k = !k;\n  \n                    if (x === 6) {\n                      x--;\n                      y = 9;\n                    }\n                  }\n                } else if (y !== width - 1) {\n                  y++;\n                } else {\n                  x -= 2;\n                  k = !k;\n  \n                  if (x === 6) {\n                    x--;\n                    y -= 8;\n                  }\n                }\n              }\n  \n              v = !v;\n            } while (this._isMasked(x, y));\n          }\n        }\n      },\n  \n      _reverseMask: function() {\n        var x, y;\n        var width = this.width;\n  \n        for (x = 0; x < 9; x++) {\n          this._setMask(x, 8);\n        }\n  \n        for (x = 0; x < 8; x++) {\n          this._setMask(x + width - 8, 8);\n          this._setMask(8, x);\n        }\n  \n        for (y = 0; y < 7; y++) {\n          this._setMask(8, y + width - 7);\n        }\n      },\n  \n      _setMask: function(x, y) {\n        var bit = Frame._getMaskBit(x, y);\n  \n        this._mask[bit] = 1;\n      },\n  \n      _syncMask: function() {\n        var x, y;\n        var width = this.width;\n  \n        for (y = 0; y < width; y++) {\n          for (x = 0; x <= y; x++) {\n            if (this.buffer[x + (width * y)]) {\n              this._setMask(x, y);\n            }\n          }\n        }\n      }\n  \n    }, {\n  \n      _createArray: function(length) {\n        var i;\n        var array = [];\n  \n        for (i = 0; i < length; i++) {\n          array[i] = 0;\n        }\n  \n        return array;\n      },\n  \n      _getMaskBit: function(x, y) {\n        var bit;\n  \n        if (x > y) {\n          bit = x;\n          x = y;\n          y = bit;\n        }\n  \n        bit = y;\n        bit += y * y;\n        bit >>= 1;\n        bit += x;\n  \n        return bit;\n      },\n  \n      _modN: function(x) {\n        while (x >= 255) {\n          x -= 255;\n          x = (x >> 8) + (x & 255);\n        }\n  \n        return x;\n      },\n  \n      // *Badness* coefficients.\n      N1: 3,\n      N2: 3,\n      N3: 40,\n      N4: 10\n  \n    });\n  \n    var Frame_1 = Frame;\n  \n    /**\n     * The options used by {@link Frame}.\n     *\n     * @typedef {Object} Frame~Options\n     * @property {string} level - The ECC level to be used.\n     * @property {string} value - The value to be encoded.\n     */\n  \n    /**\n     * An implementation of {@link Renderer} for working with <code>img</code> elements.\n     *\n     * This depends on {@link CanvasRenderer} being executed first as this implementation simply applies the data URL from\n     * the rendered <code>canvas</code> element as the <code>src</code> for the <code>img</code> element being rendered.\n     *\n     * @public\n     * @class\n     * @extends Renderer\n     */\n    var ImageRenderer = Renderer_1.extend({\n  \n      /**\n       * @override\n       */\n      draw: function() {\n        this.element.src = this.qrious.toDataURL();\n      },\n  \n      /**\n       * @override\n       */\n      reset: function() {\n        this.element.src = '';\n      },\n  \n      /**\n       * @override\n       */\n      resize: function() {\n        var element = this.element;\n  \n        element.width = element.height = this.qrious.size;\n      }\n  \n    });\n  \n    var ImageRenderer_1 = ImageRenderer;\n  \n    /**\n     * Defines an available option while also configuring how values are applied to the target object.\n     *\n     * Optionally, a default value can be specified as well a value transformer for greater control over how the option\n     * value is applied.\n     *\n     * If no value transformer is specified, then any specified option will be applied directly. All values are maintained\n     * on the target object itself as a field using the option name prefixed with a single underscore.\n     *\n     * When an option is specified as modifiable, the {@link OptionManager} will be required to include a setter for the\n     * property that is defined on the target object that uses the option name.\n     *\n     * @param {string} name - the name to be used\n     * @param {boolean} [modifiable] - <code>true</code> if the property defined on target objects should include a setter;\n     * otherwise <code>false</code>\n     * @param {*} [defaultValue] - the default value to be used\n     * @param {Option~ValueTransformer} [valueTransformer] - the value transformer to be used\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Option = lite.extend(function(name, modifiable, defaultValue, valueTransformer) {\n      /**\n       * The name for this {@link Option}.\n       *\n       * @public\n       * @type {string}\n       * @memberof Option#\n       */\n      this.name = name;\n  \n      /**\n       * Whether a setter should be included on the property defined on target objects for this {@link Option}.\n       *\n       * @public\n       * @type {boolean}\n       * @memberof Option#\n       */\n      this.modifiable = Boolean(modifiable);\n  \n      /**\n       * The default value for this {@link Option}.\n       *\n       * @public\n       * @type {*}\n       * @memberof Option#\n       */\n      this.defaultValue = defaultValue;\n  \n      this._valueTransformer = valueTransformer;\n    }, {\n  \n      /**\n       * Transforms the specified <code>value</code> so that it can be applied for this {@link Option}.\n       *\n       * If a value transformer has been specified for this {@link Option}, it will be called upon to transform\n       * <code>value</code>. Otherwise, <code>value</code> will be returned directly.\n       *\n       * @param {*} value - the value to be transformed\n       * @return {*} The transformed value or <code>value</code> if no value transformer is specified.\n       * @public\n       * @memberof Option#\n       */\n      transform: function(value) {\n        var transformer = this._valueTransformer;\n        if (typeof transformer === 'function') {\n          return transformer(value, this);\n        }\n  \n        return value;\n      }\n  \n    });\n  \n    var Option_1 = Option;\n  \n    /**\n     * Returns a transformed value for the specified <code>value</code> to be applied for the <code>option</code> provided.\n     *\n     * @callback Option~ValueTransformer\n     * @param {*} value - the value to be transformed\n     * @param {Option} option - the {@link Option} for which <code>value</code> is being transformed\n     * @return {*} The transform value.\n     */\n  \n    /**\n     * Contains utility methods that are useful throughout the library.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Utilities = lite.extend(null, {\n  \n      /**\n       * Returns the absolute value of a given number.\n       *\n       * This method is simply a convenient shorthand for <code>Math.abs</code> while ensuring that nulls are returned as\n       * <code>null</code> instead of zero.\n       *\n       * @param {number} value - the number whose absolute value is to be returned\n       * @return {number} The absolute value of <code>value</code> or <code>null</code> if <code>value</code> is\n       * <code>null</code>.\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      abs: function(value) {\n        return value != null ? Math.abs(value) : null;\n      },\n  \n      /**\n       * Returns whether the specified <code>object</code> has a property with the specified <code>name</code> as an own\n       * (not inherited) property.\n       *\n       * @param {Object} object - the object on which the property is to be checked\n       * @param {string} name - the name of the property to be checked\n       * @return {boolean} <code>true</code> if <code>object</code> has an own property with <code>name</code>.\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      hasOwn: function(object, name) {\n        return Object.prototype.hasOwnProperty.call(object, name);\n      },\n  \n      /**\n       * A non-operation method that does absolutely nothing.\n       *\n       * @return {void}\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      noop: function() {},\n  \n      /**\n       * Transforms the specified <code>string</code> to upper case while remaining null-safe.\n       *\n       * @param {string} string - the string to be transformed to upper case\n       * @return {string} <code>string</code> transformed to upper case if <code>string</code> is not <code>null</code>.\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      toUpperCase: function(string) {\n        return string != null ? string.toUpperCase() : null;\n      }\n  \n    });\n  \n    var Utilities_1 = Utilities;\n  \n    /**\n     * Manages multiple {@link Option} instances that are intended to be used by multiple implementations.\n     *\n     * Although the option definitions are shared between targets, the values are maintained on the targets themselves.\n     *\n     * @param {Option[]} options - the options to be used\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var OptionManager = lite.extend(function(options) {\n      /**\n       * The available options for this {@link OptionManager}.\n       *\n       * @public\n       * @type {Object.<string, Option>}\n       * @memberof OptionManager#\n       */\n      this.options = {};\n  \n      options.forEach(function(option) {\n        this.options[option.name] = option;\n      }, this);\n    }, {\n  \n      /**\n       * Returns whether an option with the specified <code>name</code> is available.\n       *\n       * @param {string} name - the name of the {@link Option} whose existence is to be checked\n       * @return {boolean} <code>true</code> if an {@link Option} exists with <code>name</code>; otherwise\n       * <code>false</code>.\n       * @public\n       * @memberof OptionManager#\n       */\n      exists: function(name) {\n        return this.options[name] != null;\n      },\n  \n      /**\n       * Returns the value of the option with the specified <code>name</code> on the <code>target</code> object provided.\n       *\n       * @param {string} name - the name of the {@link Option} whose value on <code>target</code> is to be returned\n       * @param {Object} target - the object from which the value of the named {@link Option} is to be returned\n       * @return {*} The value of the {@link Option} with <code>name</code> on <code>target</code>.\n       * @public\n       * @memberof OptionManager#\n       */\n      get: function(name, target) {\n        return OptionManager._get(this.options[name], target);\n      },\n  \n      /**\n       * Returns a copy of all of the available options on the <code>target</code> object provided.\n       *\n       * @param {Object} target - the object from which the option name/value pairs are to be returned\n       * @return {Object.<string, *>} A hash containing the name/value pairs of all options on <code>target</code>.\n       * @public\n       * @memberof OptionManager#\n       */\n      getAll: function(target) {\n        var name;\n        var options = this.options;\n        var result = {};\n  \n        for (name in options) {\n          if (Utilities_1.hasOwn(options, name)) {\n            result[name] = OptionManager._get(options[name], target);\n          }\n        }\n  \n        return result;\n      },\n  \n      /**\n       * Initializes the available options for the <code>target</code> object provided and then applies the initial values\n       * within the speciifed <code>options</code>.\n       *\n       * This method will throw an error if any of the names within <code>options</code> does not match an available option.\n       *\n       * This involves setting the default values and defining properties for all of the available options on\n       * <code>target</code> before finally calling {@link OptionMananger#setAll} with <code>options</code> and\n       * <code>target</code>. Any options that are configured to be modifiable will have a setter included in their defined\n       * property that will allow its corresponding value to be modified.\n       *\n       * If a change handler is specified, it will be called whenever the value changes on <code>target</code> for a\n       * modifiable option, but only when done so via the defined property's setter.\n       *\n       * @param {Object.<string, *>} options - the name/value pairs of the initial options to be set\n       * @param {Object} target - the object on which the options are to be initialized\n       * @param {Function} [changeHandler] - the function to be called whenever the value of an modifiable option changes on\n       * <code>target</code>\n       * @return {void}\n       * @throws {Error} If <code>options</code> contains an invalid option name.\n       * @public\n       * @memberof OptionManager#\n       */\n      init: function(options, target, changeHandler) {\n        if (typeof changeHandler !== 'function') {\n          changeHandler = Utilities_1.noop;\n        }\n  \n        var name, option;\n  \n        for (name in this.options) {\n          if (Utilities_1.hasOwn(this.options, name)) {\n            option = this.options[name];\n  \n            OptionManager._set(option, option.defaultValue, target);\n            OptionManager._createAccessor(option, target, changeHandler);\n          }\n        }\n  \n        this._setAll(options, target, true);\n      },\n  \n      /**\n       * Sets the value of the option with the specified <code>name</code> on the <code>target</code> object provided to\n       * <code>value</code>.\n       *\n       * This method will throw an error if <code>name</code> does not match an available option or matches an option that\n       * cannot be modified.\n       *\n       * If <code>value</code> is <code>null</code> and the {@link Option} has a default value configured, then that default\n       * value will be used instead. If the {@link Option} also has a value transformer configured, it will be used to\n       * transform whichever value was determined to be used.\n       *\n       * This method returns whether the value of the underlying field on <code>target</code> was changed as a result.\n       *\n       * @param {string} name - the name of the {@link Option} whose value is to be set\n       * @param {*} value - the value to be set for the named {@link Option} on <code>target</code>\n       * @param {Object} target - the object on which <code>value</code> is to be set for the named {@link Option}\n       * @return {boolean} <code>true</code> if the underlying field on <code>target</code> was changed; otherwise\n       * <code>false</code>.\n       * @throws {Error} If <code>name</code> is invalid or is for an option that cannot be modified.\n       * @public\n       * @memberof OptionManager#\n       */\n      set: function(name, value, target) {\n        return this._set(name, value, target);\n      },\n  \n      /**\n       * Sets all of the specified <code>options</code> on the <code>target</code> object provided to their corresponding\n       * values.\n       *\n       * This method will throw an error if any of the names within <code>options</code> does not match an available option\n       * or matches an option that cannot be modified.\n       *\n       * If any value within <code>options</code> is <code>null</code> and the corresponding {@link Option} has a default\n       * value configured, then that default value will be used instead. If an {@link Option} also has a value transformer\n       * configured, it will be used to transform whichever value was determined to be used.\n       *\n       * This method returns whether the value for any of the underlying fields on <code>target</code> were changed as a\n       * result.\n       *\n       * @param {Object.<string, *>} options - the name/value pairs of options to be set\n       * @param {Object} target - the object on which the options are to be set\n       * @return {boolean} <code>true</code> if any of the underlying fields on <code>target</code> were changed; otherwise\n       * <code>false</code>.\n       * @throws {Error} If <code>options</code> contains an invalid option name or an option that cannot be modiifed.\n       * @public\n       * @memberof OptionManager#\n       */\n      setAll: function(options, target) {\n        return this._setAll(options, target);\n      },\n  \n      _set: function(name, value, target, allowUnmodifiable) {\n        var option = this.options[name];\n        if (!option) {\n          throw new Error('Invalid option: ' + name);\n        }\n        if (!option.modifiable && !allowUnmodifiable) {\n          throw new Error('Option cannot be modified: ' + name);\n        }\n  \n        return OptionManager._set(option, value, target);\n      },\n  \n      _setAll: function(options, target, allowUnmodifiable) {\n        if (!options) {\n          return false;\n        }\n  \n        var name;\n        var changed = false;\n  \n        for (name in options) {\n          if (Utilities_1.hasOwn(options, name) && this._set(name, options[name], target, allowUnmodifiable)) {\n            changed = true;\n          }\n        }\n  \n        return changed;\n      }\n  \n    }, {\n  \n      _createAccessor: function(option, target, changeHandler) {\n        var descriptor = {\n          get: function() {\n            return OptionManager._get(option, target);\n          }\n        };\n  \n        if (option.modifiable) {\n          descriptor.set = function(value) {\n            if (OptionManager._set(option, value, target)) {\n              changeHandler(value, option);\n            }\n          };\n        }\n  \n        Object.defineProperty(target, option.name, descriptor);\n      },\n  \n      _get: function(option, target) {\n        return target['_' + option.name];\n      },\n  \n      _set: function(option, value, target) {\n        var fieldName = '_' + option.name;\n        var oldValue = target[fieldName];\n        var newValue = option.transform(value != null ? value : option.defaultValue);\n  \n        target[fieldName] = newValue;\n  \n        return newValue !== oldValue;\n      }\n  \n    });\n  \n    var OptionManager_1 = OptionManager;\n  \n    /**\n     * Called whenever the value of a modifiable {@link Option} is changed on a target object via the defined property's\n     * setter.\n     *\n     * @callback OptionManager~ChangeHandler\n     * @param {*} value - the new value for <code>option</code> on the target object\n     * @param {Option} option - the modifable {@link Option} whose value has changed on the target object.\n     * @return {void}\n     */\n  \n    /**\n     * A basic manager for {@link Service} implementations that are mapped to simple names.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var ServiceManager = lite.extend(function() {\n      this._services = {};\n    }, {\n  \n      /**\n       * Returns the {@link Service} being managed with the specified <code>name</code>.\n       *\n       * @param {string} name - the name of the {@link Service} to be returned\n       * @return {Service} The {@link Service} is being managed with <code>name</code>.\n       * @throws {Error} If no {@link Service} is being managed with <code>name</code>.\n       * @public\n       * @memberof ServiceManager#\n       */\n      getService: function(name) {\n        var service = this._services[name];\n        if (!service) {\n          throw new Error('Service is not being managed with name: ' + name);\n        }\n  \n        return service;\n      },\n  \n      /**\n       * Sets the {@link Service} implementation to be managed for the specified <code>name</code> to the\n       * <code>service</code> provided.\n       *\n       * @param {string} name - the name of the {@link Service} to be managed with <code>name</code>\n       * @param {Service} service - the {@link Service} implementation to be managed\n       * @return {void}\n       * @throws {Error} If a {@link Service} is already being managed with the same <code>name</code>.\n       * @public\n       * @memberof ServiceManager#\n       */\n      setService: function(name, service) {\n        if (this._services[name]) {\n          throw new Error('Service is already managed with name: ' + name);\n        }\n  \n        if (service) {\n          this._services[name] = service;\n        }\n      }\n  \n    });\n  \n    var ServiceManager_1 = ServiceManager;\n  \n    var optionManager = new OptionManager_1([\n      new Option_1('background', true, 'white'),\n      new Option_1('backgroundAlpha', true, 1, Utilities_1.abs),\n      new Option_1('element'),\n      new Option_1('foreground', true, 'black'),\n      new Option_1('foregroundAlpha', true, 1, Utilities_1.abs),\n      new Option_1('level', true, 'L', Utilities_1.toUpperCase),\n      new Option_1('mime', true, 'image/png'),\n      new Option_1('padding', true, null, Utilities_1.abs),\n      new Option_1('size', true, 100, Utilities_1.abs),\n      new Option_1('value', true, '')\n    ]);\n    var serviceManager = new ServiceManager_1();\n  \n    /**\n     * Enables configuration of a QR code generator which uses HTML5 <code>canvas</code> for rendering.\n     *\n     * @param {QRious~Options} [options] - the options to be used\n     * @throws {Error} If any <code>options</code> are invalid.\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var QRious = lite.extend(function(options) {\n      optionManager.init(options, this, this.update.bind(this));\n  \n      var element = optionManager.get('element', this);\n      var elementService = serviceManager.getService('element');\n      var canvas = element && elementService.isCanvas(element) ? element : elementService.createCanvas();\n      var image = element && elementService.isImage(element) ? element : elementService.createImage();\n  \n      this._canvasRenderer = new CanvasRenderer_1(this, canvas, true);\n      this._imageRenderer = new ImageRenderer_1(this, image, image === element);\n  \n      this.update();\n    }, {\n  \n      /**\n       * Returns all of the options configured for this {@link QRious}.\n       *\n       * Any changes made to the returned object will not be reflected in the options themselves or their corresponding\n       * underlying fields.\n       *\n       * @return {Object.<string, *>} A copy of the applied options.\n       * @public\n       * @memberof QRious#\n       */\n      get: function() {\n        return optionManager.getAll(this);\n      },\n  \n      /**\n       * Sets all of the specified <code>options</code> and automatically updates this {@link QRious} if any of the\n       * underlying fields are changed as a result.\n       *\n       * This is the preferred method for updating multiple options at one time to avoid unnecessary updates between\n       * changes.\n       *\n       * @param {QRious~Options} options - the options to be set\n       * @return {void}\n       * @throws {Error} If any <code>options</code> are invalid or cannot be modified.\n       * @public\n       * @memberof QRious#\n       */\n      set: function(options) {\n        if (optionManager.setAll(options, this)) {\n          this.update();\n        }\n      },\n  \n      /**\n       * Returns the image data URI for the generated QR code using the <code>mime</code> provided.\n       *\n       * @param {string} [mime] - the MIME type for the image\n       * @return {string} The image data URI for the QR code.\n       * @public\n       * @memberof QRious#\n       */\n      toDataURL: function(mime) {\n        return this.canvas.toDataURL(mime || this.mime);\n      },\n  \n      /**\n       * Updates this {@link QRious} by generating a new {@link Frame} and re-rendering the QR code.\n       *\n       * @return {void}\n       * @protected\n       * @memberof QRious#\n       */\n      update: function() {\n        var frame = new Frame_1({\n          level: this.level,\n          value: this.value\n        });\n  \n        this._canvasRenderer.render(frame);\n        this._imageRenderer.render(frame);\n      }\n  \n    }, {\n  \n      /**\n       * Configures the <code>service</code> provided to be used by all {@link QRious} instances.\n       *\n       * @param {Service} service - the {@link Service} to be configured\n       * @return {void}\n       * @throws {Error} If a {@link Service} has already been configured with the same name.\n       * @public\n       * @static\n       * @memberof QRious\n       */\n      use: function(service) {\n        serviceManager.setService(service.getName(), service);\n      }\n  \n    });\n  \n    Object.defineProperties(QRious.prototype, {\n  \n      canvas: {\n        /**\n         * Returns the <code>canvas</code> element being used to render the QR code for this {@link QRious}.\n         *\n         * @return {*} The <code>canvas</code> element.\n         * @public\n         * @memberof QRious#\n         * @alias canvas\n         */\n        get: function() {\n          return this._canvasRenderer.getElement();\n        }\n      },\n  \n      image: {\n        /**\n         * Returns the <code>img</code> element being used to render the QR code for this {@link QRious}.\n         *\n         * @return {*} The <code>img</code> element.\n         * @public\n         * @memberof QRious#\n         * @alias image\n         */\n        get: function() {\n          return this._imageRenderer.getElement();\n        }\n      }\n  \n    });\n  \n    var QRious_1$2 = QRious;\n  \n    /**\n     * The options used by {@link QRious}.\n     *\n     * @typedef {Object} QRious~Options\n     * @property {string} [background=\"white\"] - The background color to be applied to the QR code.\n     * @property {number} [backgroundAlpha=1] - The background alpha to be applied to the QR code.\n     * @property {*} [element] - The element to be used to render the QR code which may either be an <code>canvas</code> or\n     * <code>img</code>. The element(s) will be created if needed.\n     * @property {string} [foreground=\"black\"] - The foreground color to be applied to the QR code.\n     * @property {number} [foregroundAlpha=1] - The foreground alpha to be applied to the QR code.\n     * @property {string} [level=\"L\"] - The error correction level to be applied to the QR code.\n     * @property {string} [mime=\"image/png\"] - The MIME type to be used to render the image for the QR code.\n     * @property {number} [padding] - The padding for the QR code in pixels.\n     * @property {number} [size=100] - The size of the QR code in pixels.\n     * @property {string} [value=\"\"] - The value to be encoded within the QR code.\n     */\n  \n    var index = QRious_1$2;\n  \n    /**\n     * Defines a service contract that must be met by all implementations.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Service = lite.extend({\n  \n      /**\n       * Returns the name of this {@link Service}.\n       *\n       * @return {string} The service name.\n       * @public\n       * @abstract\n       * @memberof Service#\n       */\n      getName: function() {}\n  \n    });\n  \n    var Service_1 = Service;\n  \n    /**\n     * A service for working with elements.\n     *\n     * @public\n     * @class\n     * @extends Service\n     */\n    var ElementService = Service_1.extend({\n  \n      /**\n       * Creates an instance of a canvas element.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {*} The newly created canvas element.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      createCanvas: function() {},\n  \n      /**\n       * Creates an instance of a image element.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {*} The newly created image element.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      createImage: function() {},\n  \n      /**\n       * @override\n       */\n      getName: function() {\n        return 'element';\n      },\n  \n      /**\n       * Returns whether the specified <code>element</code> is a canvas.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @param {*} element - the element to be checked\n       * @return {boolean} <code>true</code> if <code>element</code> is a canvas; otherwise <code>false</code>.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      isCanvas: function(element) {},\n  \n      /**\n       * Returns whether the specified <code>element</code> is an image.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @param {*} element - the element to be checked\n       * @return {boolean} <code>true</code> if <code>element</code> is an image; otherwise <code>false</code>.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      isImage: function(element) {}\n  \n    });\n  \n    var ElementService_1 = ElementService;\n  \n    /**\n     * An implementation of {@link ElementService} intended for use within a browser environment.\n     *\n     * @public\n     * @class\n     * @extends ElementService\n     */\n    var BrowserElementService = ElementService_1.extend({\n  \n      /**\n       * @override\n       */\n      createCanvas: function() {\n        return document.createElement('canvas');\n      },\n  \n      /**\n       * @override\n       */\n      createImage: function() {\n        return document.createElement('img');\n      },\n  \n      /**\n       * @override\n       */\n      isCanvas: function(element) {\n        return element instanceof HTMLCanvasElement;\n      },\n  \n      /**\n       * @override\n       */\n      isImage: function(element) {\n        return element instanceof HTMLImageElement;\n      }\n  \n    });\n  \n    var BrowserElementService_1 = BrowserElementService;\n  \n    index.use(new BrowserElementService_1());\n  \n    var QRious_1 = index;\n  \n    return QRious_1;\n  \n  })));","<script>\n  import { onMount } from 'svelte';\n  import QrCode from './qrcode';\n\n  const QRcode = new QrCode();\n\n  export let errorCorrection = \"L\";\n  export let background = \"#fff\";\n  export let color = \"#000\";\n  export let size = \"200\";\n  export let value = \"\";\n  export let padding = 0;\n  export let className = \"qrcode\";\n\n  let image = '';\n\n  function generateQrCode() {\n    QRcode.set({\n      background,\n      foreground: color,\n      level: errorCorrection,\n      padding,\n      size,\n      value,\n    });\n    \n    image = QRcode.toDataURL('image/jpeg');\n  }\n\n  $: {\n    if(value) {\n      generateQrCode();\n    }\n  }\n\n  onMount(() => {\n    generateQrCode();\n  });\n\n</script>\n\n<img src={image} alt={value} class={className}/>","import request from \"../utils/request\";\n/**\n * 手机登录\n * - phone: 手机号码\n * - password: 密码\n * - countrycode: 国家码,用于国外手机号登录,例如美国传入:1\n * - md5_password: md5加密后的密码,传入后 password 将失效\n * - captcha: 验证码,使用 /captcha/sent接口传入手机号获取验证码,调用此接口传入验证码,可使用验证码登录,传入后 password 参数将失效\n * @param {Object} params\n * @param {string} params.phone\n * @param {string} params.password\n * @param {string=} params.countrycode\n * @param {string=} params.md5_password\n * @param {string=} params.captcha\n */\nexport function loginWithPhone(params) {\n  return request({\n    url: \"/login/cellphone\",\n    method: \"post\",\n    params,\n  });\n}\n\n/**\n * 邮箱登录\n * - email: 163 网易邮箱\n * - password: 密码\n * - md5_password: md5加密后的密码,传入后 password 将失效\n * @param {Object} params\n * @param {string} params.email\n * @param {string} params.password\n * @param {string=} params.md5_password\n */\nexport function loginWithEmail(params) {\n  return request({\n    url: \"/login\",\n    method: \"post\",\n    params,\n  });\n}\n\n/**\n * 二维码key生成接口\n */\nexport function loginQrCodeKey() {\n  return request({\n    url: \"/login/qr/key\",\n    method: \"get\",\n    params: {\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 二维码生成接口\n * 说明: 调用此接口传入上一个接口生成的key可生成二维码图片的base64和二维码信息,\n * 可使用base64展示图片,或者使用二维码信息内容自行使用第三方二维码生产库渲染二维码\n * @param {Object} params\n * @param {string} params.key\n * @param {string=} params.qrimg 传入后会额外返回二维码图片base64编码\n */\nexport function loginQrCodeCreate(params) {\n  return request({\n    url: \"/login/qr/create\",\n    method: \"get\",\n    params: {\n      ...params,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 二维码检测扫码状态接口\n * 说明: 轮询此接口可获取二维码扫码状态,800为二维码过期,801为等待扫码,802为待确认,803为授权登录成功(803状态码下会返回cookies)\n * @param {string} key\n */\nexport function loginQrCodeCheck(key) {\n  return request({\n    url: \"/login/qr/check\",\n    method: \"get\",\n    params: {\n      key,\n      timestamp: new Date().getTime(),\n    },\n    isHideLoading: true,\n  });\n}\n\n/**\n * 刷新登录\n * 说明 : 调用此接口 , 可刷新登录状态\n * - 调用例子 : /login/refresh\n */\nexport function refreshCookie() {\n  return request({\n    url: \"/login/refresh\",\n    method: \"post\",\n  });\n}\n\n/**\n * 退出登录\n * 说明 : 调用此接口 , 可退出登录\n */\nexport function logout() {\n  return request({\n    url: \"/logout\",\n    method: \"post\",\n  });\n}\n","<script>\n  import { onMount, onDestroy } from \"svelte\";\n  import { pop, search } from \"svelte-stack-router\";\n  import md5 from \"crypto-js/md5\";\n  import { LinksLine } from \"svelte-remixicon\";\n  import QrCode from \"svelte-qrcode\";\n\n  import { NavBar, Input, Button } from \"../components/base\";\n\n  import { isHomePageStore, isLoginStore } from \"../store/common\";\n  import { playIsMinStore } from \"../store/play\";\n  import {\n    userInfoStore,\n    userLikeSongIdsStore,\n    userLikeListIdStore,\n  } from \"../store/user\";\n\n  import {\n    loginWithPhone,\n    loginWithEmail,\n    loginQrCodeKey,\n    loginQrCodeCreate,\n    loginQrCodeCheck,\n  } from \"../api/auth\";\n  import {\n    userPlaylist,\n    userLikedSongsIDs,\n    likedArtists,\n    userAccount,\n    sendSmsCode,\n  } from \"../api/user\";\n\n  import { setCookies, Alert, Toast, parseQuery } from \"../utils/common\";\n\n  let { type = \"phone\" } = parseQuery($search);\n\n  let timerLogin = null;\n\n  let phone = \"\";\n  let phone_code = \"\";\n  let phone_password = \"\";\n\n  let email = \"\";\n  let email_password = \"\";\n\n  $: phoneType = \"code\"; //code--短信验证,pwd--密码验证\n  let tiptext =\n    \"您的密码会进行 MD5 加密后再传输到网易云 API。本应用不会传输您的账号数据到任何非网易云音乐官方服务器。\";\n  $: loginType =\n    type === \"qr\" ? \"二维码登录\" : type === \"phone\" ? \"手机号登录\" : \"邮箱登录\";\n  $: qrImg = \"\";\n  $: qrTip = \"请扫码\";\n  $: btnText = \"获取验证码\";\n\n  function isPhone(phone) {\n    //手机号正则\n    let mPattern = /^1[3-9]\\d{9}$/;\n    //返回 true or false\n    return mPattern.test(phone);\n  }\n\n  function loginSuccFun(res) {\n    //登录成功\n    setCookies(res.cookie);\n    isLoginStore.set(true);\n    userInfoStore.set(res);\n    localStorage.setItem(\"isLogin\", true);\n    localStorage.setItem(\"userInfo\", JSON.stringify(res));\n    setTimeout(() => pop(), 100);\n    // userPlaylistFun(res);\n  }\n  //手机号登录\n  async function doPhoneLogin() {\n    if (!isPhone(phone)) {\n      return Toast(\"请输入正确的手机号\");\n    }\n    if (phoneType === \"code\" && phone_code.length != 4) {\n      return Toast(\"请输入四位验证码\");\n    }\n\n    let params = {};\n    if (phoneType === \"code\") {\n      //验证码验证\n      params = {\n        phone,\n        captcha: phone_code,\n        password: \"fakePassword\",\n      };\n    } else {\n      //密码验证\n      params = {\n        phone,\n        md5_password: phone_password,\n        password: \"fakePassword\",\n      };\n    }\n    const res = await loginWithPhone(params);\n    if (res.code === 200) {\n      loginSuccFun(res);\n    } else {\n      Alert(\"登录不成功, 请重新登录。\");\n    }\n  }\n  //邮箱登录\n  async function doEmailLogin() {\n    const res = await loginWithEmail({\n      email,\n      md5_password: email_password,\n      password: \"fakePassword\",\n    });\n    if (res.code === 200) {\n      loginSuccFun(res);\n    } else {\n      Alert(\"登录不成功, 请重新登录。\");\n    }\n  }\n  onMount(() => {\n    isHomePageStore.set(false);\n    playIsMinStore.set(false);\n  });\n  onDestroy(() => {\n    playIsMinStore.set(true);\n  });\n  function set_phone_password(e) {\n    phone_password = md5(e.detail.value).toString();\n  }\n  function set_phone_code(e) {\n    phone_code = e.detail.value.toString();\n  }\n  function set_email_password(e) {\n    email_password = md5(e.detail.value).toString();\n  }\n  function getPhone(e) {\n    phone = e.detail.value;\n  }\n  function set_email_assress(e) {\n    email = e.detail.value;\n  }\n\n  // async function userPlaylistFun(login) {\n  //   //获取用户收藏歌单ID列表,用于判断是否已经收藏\n  //   const res = await userPlaylist({\n  //     uid: login.account.id,\n  //     limit: 10000,\n  //     offset: 0,\n  //   });\n  //   if (res.code === 200) {\n  //     let ids = [];\n  //     for (let i = 0; i < res.playlist.length; i++) {\n  //       ids.push(res.playlist[i].id);\n  //     }\n\n  //     if (\n  //       res.playlist[0].creator.userId === $userInfoStore.account.id &&\n  //       res.playlist[0].name.substr(-5) === \"喜欢的音乐\"\n  //     ) {\n  //       userLikeListIdStore.set(res.playlist[0].id);\n  //       localStorage.setItem(\"userLikeListId\", res.playlist[0].id);\n  //     }\n\n  //     localStorage.setItem(\"usePlayListIds\", JSON.stringify(ids));\n  //     userLikedSongsIDsFun(login);\n  //   } else {\n  //     Alert(\"获取收藏歌单失败\");\n  //   }\n  // }\n  // async function userLikedSongsIDsFun(login) {\n  //   //获取用户喜爱歌曲ID列表,用于判断是否已经收藏\n  //   const res = await userLikedSongsIDs(login.account.id);\n  //   if (res.code === 200) {\n  //     let ids = [];\n  //     for (let i = 0; i < res.ids.length; i++) {\n  //       ids.push(res.ids[i]);\n  //     }\n  //     isLoginStore.set(true);\n  //     localStorage.setItem(\"isLogin\", true);\n  //     userLikeSongIdsStore.set(JSON.stringify(ids));\n  //     localStorage.setItem(\"useLoveSongIds\", JSON.stringify(ids));\n  //     likedArtistsFun();\n  //   } else {\n  //     alert(\"获取喜爱歌曲失败\");\n  //   }\n  // }\n  // //获取收藏的歌手\n  // async function likedArtistsFun() {\n  //   const res = await likedArtists({ limit: 2000 });\n  //   if (res.code === 200) {\n  //     let ids = [];\n  //     for (let i = 0; i < res.data.length; i++) {\n  //       ids.push(res.data[i].id);\n  //     }\n  //     localStorage.setItem(\"useLoveSongerIds\", JSON.stringify(ids));\n  //     setTimeout(() => {\n  //       pop();\n  //     }, 100);\n  //   } else {\n  //     alert(\"获取喜爱歌手失败\");\n  //   }\n  // }\n  async function qrLoginFun() {\n    type = \"qr\";\n    const res = await loginQrCodeKey();\n    if (res.code === 200) {\n      loginQrCodeCreateFun(res.data.unikey);\n    }\n  }\n  async function loginQrCodeCreateFun(key) {\n    const res = await loginQrCodeCreate({\n      key,\n    });\n    if (res.code === 200) {\n      qrImg = res.data.qrurl;\n      timerLogin = setInterval(() => {\n        loginQrCodeCheckFun(key);\n      }, 1000);\n    }\n  }\n  async function loginQrCodeCheckFun(key) {\n    const res = await loginQrCodeCheck(key);\n    if (res.code === 800) {\n      qrTip = res.message;\n    } else if (res.code === 801) {\n      qrTip = res.message;\n    } else if (res.code === 802) {\n      qrTip = res.message;\n    } else if (res.code === 803) {\n      clearInterval(timerLogin);\n      setTimeout(() => {\n        userAccountFun(res.cookie);\n      }, 300);\n    } else {\n      clearInterval(timerLogin);\n    }\n  }\n  async function userAccountFun(cookie) {\n    const res = await userAccount(cookie);\n    if (res.code === 200) {\n      let newres = res;\n      newres.cookie = cookie;\n      loginSuccFun(newres);\n    }\n  }\n  async function sendSmsCodeFun() {\n    if (btnText === \"获取验证码\") {\n      if (!isPhone(phone)) {\n        Toast(\"请输入正确的手机号\");\n      } else {\n        const res = await sendSmsCode(phone);\n        if (res.code === 200) {\n          Toast(\n            \"验证码已发送至\" +\n              phone.substring(phone.length - 4) +\n              \",请注意查收!\",\n            2000\n          );\n          setinter60();\n        }\n      }\n    }\n  }\n  function setinter60() {\n    let time = 59;\n    let myTimer = setInterval(() => {\n      time--;\n      if (time === 0) {\n        clearInterval(myTimer);\n        btnText = \"获取验证码\";\n      } else {\n        btnText = time + \"s 后重发\";\n      }\n    }, 1000);\n  }\n</script>\n\n<NavBar title={loginType} />\n<div class=\"login-page\">\n  <div class=\"desc\">请使用网易云音乐账号登录</div>\n  <div class=\"lead\">\n    <div class=\"netease\">\n      <img src=\"/images/nm_logo.png\" alt=\"\" />\n    </div>\n    <div class=\"arr\">\n      <LinksLine />\n    </div>\n    <div class=\"simple\"><img src=\"/images/sm_logo.png\" alt=\"\" /></div>\n  </div>\n  {#if type === \"qr\"}\n    <div class=\"qr\">\n      <div class=\"qr-tip\">{qrTip}</div>\n      <div class=\"qrcode\">\n        <QrCode value={qrImg} />\n      </div>\n      <div class=\"tip\">\n        直接使用网易云音乐 APP 扫码登录,或截图保存之后使用网易云音乐 APP\n        扫码登录。\n      </div>\n    </div>\n  {/if}\n  {#if type === \"phone\"}\n    <div class=\"phone\">\n      <Input label=\"手机号\" type=\"tel\" maxlength=\"11\" on:setInput={getPhone} />\n      {#if phoneType === \"pwd\"}\n        <Input\n          label=\"密码\"\n          type=\"password\"\n          maxlength=\"40\"\n          bind:phone_password\n          on:setInput={set_phone_password}\n        />\n      {/if}\n      {#if phoneType === \"code\"}\n        <Input\n          label=\"验证码\"\n          type=\"tel\"\n          maxlength=\"4\"\n          bind:phone_code\n          rightBtn={true}\n          {btnText}\n          on:setInput={set_phone_code}\n          on:setBtn={sendSmsCodeFun}\n        />\n      {/if}\n      <div class=\"phone-switch\">\n        {#if phoneType === \"pwd\"}\n          <span\n            on:click={() => {\n              phoneType = \"code\";\n            }}\n          >\n            短信验证\n          </span>{/if}\n        {#if phoneType === \"code\"}\n          <span\n            on:click={() => {\n              phoneType = \"pwd\";\n            }}\n          >\n            密码验证\n          </span>\n        {/if}\n      </div>\n      <div class=\"btn\">\n        <Button on:BtnClick={doPhoneLogin} type=\"primary\">登录</Button>\n      </div>\n      {#if phoneType === \"pwd\"}\n        <div class=\"tip\">{tiptext}</div>\n      {/if}\n    </div>\n  {/if}\n\n  {#if type === \"email\"}\n    <div class=\"email\">\n      <Input\n        label=\"邮箱\"\n        maxlength={30}\n        type=\"text\"\n        on:setInput={set_email_assress}\n      />\n      <Input\n        label=\"密码\"\n        type=\"password\"\n        maxlength=\"40\"\n        bind:email_password\n        on:setInput={set_email_password}\n      />\n      <div class=\"btn\">\n        <Button on:BtnClick={doEmailLogin} type=\"primary\">登录</Button>\n      </div>\n      <div class=\"tip\">{tiptext}</div>\n    </div>\n  {/if}\n\n  <div class=\"type-switch\">\n    {#if type !== \"phone\"}\n      <span\n        on:click={() => {\n          clearInterval(timerLogin);\n          type = \"phone\";\n        }}\n      >\n        手机号登录\n      </span>\n    {/if}\n\n    {#if type !== \"qr\"}\n      <span on:click={qrLoginFun}> 二维码登录 </span>\n    {/if}\n\n    {#if type !== \"email\"}\n      <span\n        on:click={() => {\n          type = \"email\";\n          clearInterval(timerLogin);\n        }}\n      >\n        邮箱登录\n      </span>\n    {/if}\n  </div>\n</div>\n\n<style>\n  .desc {\n    font-size: 12px;\n    text-align: center;\n    color: #666;\n    margin: 20px;\n  }\n  .qr-tip {\n    text-align: center;\n    margin: 20px auto;\n  }\n  .login-page {\n    padding-top: 50px;\n    font-size: 16px;\n  }\n  .btn {\n    margin: 10px auto;\n    width: 80%;\n  }\n  .qr {\n    text-align: center;\n  }\n  .qrcode {\n    margin: auto;\n    width: 200px;\n    height: 200px;\n    background: cornflowerblue;\n  }\n  .tip {\n    width: 80%;\n    text-align: justify;\n    font-size: 12px;\n    line-height: 16px;\n    margin: 20px auto;\n    word-break: break-all;\n  }\n  .lead {\n    text-align: center;\n    align-items: center;\n    margin: 20px auto;\n    width: 50%;\n    display: flex;\n    justify-content: center;\n  }\n  .netease {\n    flex: 1.5;\n  }\n  img {\n    width: 100%;\n  }\n  .arr {\n    color: rgb(139, 139, 139);\n    flex: 1;\n  }\n  .simple {\n    flex: 1.5;\n  }\n  .phone-switch {\n    margin: 20px;\n    text-align: center;\n    color: var(--primary-text-color);\n  }\n  .type-switch {\n    position: fixed;\n    width: 100%;\n    bottom: 40px;\n    text-align: center;\n    color: var(--primary-text-color);\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n\n  .type-switch span + .type-switch span::before {\n    content: \" | \";\n    display: inline-block;\n    width: 1em;\n    height: 1em;\n  }\n</style>\n","<script>\n  import { onMount } from \"svelte\";\n  import { PlayCircleLine } from \"svelte-remixicon\";\n  import { onResume } from \"svelte-stack-router\";\n\n  import { Button, NavBar } from \"../components/base\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import { getSongUrl, getSongDetail } from \"../api/song\";\n\n  import { playListDetailStore, todayListStore } from \"../store/playList\";\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import { defaultResumableStore } from \"../store/common\";\n\n  import { Toast } from \"../utils/common\";\n\n  $: songList = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      let songIdList = [];\n      for (let i = 0; i < $todayListStore.length; i++) {\n        songIdList.push($todayListStore[i].id);\n      }\n      getSongDetailFun(songIdList.join(\",\"));\n      getSongUrl(songIdList[0]);\n    }\n  });\n  onMount(() => {\n    let songIdList = [];\n    for (let i = 0; i < $todayListStore.length; i++) {\n      songIdList.push($todayListStore[i].id);\n    }\n    getSongDetailFun(songIdList.join(\",\"));\n    getSongUrl(songIdList[0]);\n  });\n  async function getSongDetailFun(songIds) {\n    const res = await getSongDetail(songIds); //所有获取歌曲详情\n    if (res.code === 200) {\n      playListDetailStore.set(res.songs);\n      songList = res.songs;\n    }\n  }\n  function playListFun(index) {\n    playRepeatModelStore.set(\"repeat\");\n    isFMPlayStore.set(false);\n    localStorage.setItem(\"isFMPlay\", \"0\");\n    currentPlayListStore.set(songList);\n    let ids = [];\n    for (let r = 0; r < songList.length; r++) {\n      ids.push(songList[r].id);\n    }\n    localStorage.setItem(\"localPlayList\", JSON.stringify(ids));\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n</script>\n\n<NavBar title=\"今日推荐歌曲\" />\n<div class=\"play-list\">\n  <div class=\"today-title\">今日推荐歌曲</div>\n  <div class=\"today-desc\">\n    根据你的音乐口味生成 {songList.length} 首 · 每天6:00更新\n  </div>\n  <div class=\"btn\">\n    <div class=\"play\">\n      <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n        <span class=\"icon\">\n          <PlayCircleLine size=\"22\" style=\"vertical-align: middle\" />\n        </span>\n        播放全部\n      </Button>\n    </div>\n  </div>\n  <div>\n    <SongList {songList} />\n  </div>\n</div>\n\n<style>\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .today-title {\n    text-align: center;\n    font-size: 46px;\n    color: var(--primary-text-color);\n    margin: 40px auto;\n    font-weight: bold;\n  }\n  .today-desc {\n    text-align: center;\n    font-size: 12px;\n  }\n\n  .btn {\n    width: 100%;\n    display: flex;\n    margin-bottom: 10px;\n  }\n  .play {\n    padding: 0px 20px 10px 20px;\n    flex: 1;\n  }\n  .play-list {\n    padding-top: 50px;\n    padding-bottom: 70px;\n  }\n</style>\n","<script>\n  import { onMount, onDestroy } from 'svelte';\n  import { onResume } from 'svelte-stack-router';\n  import { PlayCircleLine, ShuffleLine, SearchLine, RefreshLine } from 'svelte-remixicon';\n\n  import { Button, NavBar } from '../components/base';\n  import SongList from '../components/SongList.svelte';\n\n  import { isHomePageStore, isLoadingStore, defaultResumableStore } from '../store/common';\n  import { userInfoStore, userLikeListIdStore } from '../store/user';\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n\n  import { getSongUrl, getSongDetail } from '../api/song';\n  import { getPlaylistDetail } from '../api/playlist';\n\n  import { Toast, cutArray, songerListToStr } from '../utils/common';\n\n  let inputDom;\n  $: keywords = '';\n  $: isSearch = false;\n  $: songList = [];\n  $: searchSongList = []; //搜索过滤之后的歌曲列表\n  $: isRefresh = false;\n\n  let rightIcons = [\n    {\n      id: 'SearchLine',\n      icon: SearchLine,\n    },\n  ];\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      songList = [];\n      isSearch = false;\n      searchSongList = [];\n      keywords = '';\n      isHomePageStore.set(false);\n      getPlaylistDetailFun();\n    }\n  });\n  onMount(() => {\n    isHomePageStore.set(false);\n    getPlaylistDetailFun();\n  });\n  onDestroy(() => {\n    isHomePageStore.set(true);\n  });\n  function inputchange(e) {\n    setTimeout(() => {\n      //采用延时进行节流\n      if (!e.target.isNeedPrevent && e.target.oldValue !== e.target.value) {\n        //判断输入是否完成以及值是否变化\n        e.target.oldValue = e.target.value;\n        keywords = e.target.value;\n        searchFun();\n      }\n    }, 100);\n  }\n  //搜索\n  function searchFun() {\n    if (keywords.trim() != '') {\n      // inputDom.blur();\n      searchSongList = songList.filter(\n        item =>\n          item.name.indexOf(keywords) > -1 ||\n          songerListToStr(item.ar).indexOf(keywords) > -1 ||\n          songerListToStr(item.alia, false).indexOf(keywords) > -1\n      );\n    }\n  }\n  //请求歌单详情\n  async function getPlaylistDetailFun() {\n    const res = await getPlaylistDetail($userLikeListIdStore); //获取歌单详情\n    if (res.code === 200) {\n      isLoadingStore.set(true);\n      let songIdList = [];\n      for (let i = 0; i < res.playlist.trackIds.length; i++) {\n        songIdList.push(res.playlist.trackIds[i].id);\n      }\n      let cutSongIdList = cutArray(songIdList);\n      for (let t = 0; t < cutSongIdList.length; t++) {\n        await getSongDetailFun(cutSongIdList[t].join(','), t === cutSongIdList.length - 1);\n      }\n    }\n  }\n  //所有获取歌曲详情\n  async function getSongDetailFun(songIds, last) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      songList = songList.concat(res.songs);\n      if (last) {\n        isRefresh = false;\n      }\n    }\n  }\n  //顺序播放\n  function playListFun(index) {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    currentPlayListStore.set(songList);\n    let ids = [];\n    for (let r = 0; r < songList.length; r++) {\n      ids.push(songList[r].id);\n    }\n    localStorage.setItem('localPlayList', JSON.stringify(ids));\n    currentSongIndexStore.set(index);\n    playRepeatModelStore.set('repeat');\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  //随机播放\n  function playListShuffleFun() {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    currentPlayListStore.set(songList);\n    let ids = [];\n    for (let r = 0; r < songList.length; r++) {\n      ids.push(songList[r].id);\n    }\n    localStorage.setItem('localPlayList', JSON.stringify(ids));\n    let index = Math.floor(Math.random() * ($currentPlayListStore.length - 1));\n    playRepeatModelStore.set('shuffle');\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  function rightClickFun(e) {\n    if (e.detail.id === 'SearchLine' && isSearch) {\n      isSearch = false;\n    } else if (e.detail.id === 'SearchLine' && !isSearch) {\n      isSearch = true;\n      setTimeout(() => {\n        inputDom.focus();\n        inputDom.addEventListener('compositionstart', function (e) {\n          //非直接的文字输入时(键盘输入中文的拼音)\n          e.target.isNeedPrevent = true;\n        });\n        inputDom.addEventListener('compositionend', function (e) {\n          //直接输入文字后(键盘选择真实的汉字)\n          e.target.isNeedPrevent = false;\n        });\n        inputDom.addEventListener('input', inputchange);\n        inputDom.addEventListener('keydown', function (e) {\n          if (e.key === 'Enter') {\n            inputDom.blur();\n            searchFun();\n          }\n        });\n      }, 100);\n    }\n  }\n</script>\n\n<NavBar\n  title={$userInfoStore.profile.nickname + '喜欢的歌曲'}\n  {isRefresh}\n  {rightIcons}\n  on:setRightIconClick={rightClickFun}\n/>\n<div class=\"play-list\">\n  {#if isSearch}\n    <div class=\"input-box\">\n      <form action=\"JavaScript:void 0\">\n        <input bind:this={inputDom} placeholder=\"请输入关键字\" type=\"search\" value={keywords} />\n      </form>\n      <button\n        on:click={() => {\n          inputDom.blur();\n          searchFun();\n        }}\n        style=\"background-color: {keywords === '' ? 'rgb(224, 224, 224)' : 'var(--primary-text-color)'};\n        color:{keywords === '' ? '#666' : '#fff'}\"\n      >\n        搜索\n      </button>\n    </div>\n  {/if}\n  <div class=\"today-title\">我喜欢的音乐</div>\n  <div class=\"today-desc\">\n    共 {songList.length} 首\n    {#if isSearch && keywords != ''}\n      ,其中 <span>{searchSongList.length}</span> 首包含『{keywords}』\n    {/if}\n  </div>\n  {#if isSearch && keywords != ''}\n    <div />\n  {:else}\n    <div class=\"btn\">\n      <div class=\"play\">\n        <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n          <span class=\"icon\">\n            <PlayCircleLine size=\"20\" style=\"vertical-align: middle\" />\n          </span>\n          顺序播放\n        </Button>\n      </div>\n      <div class=\"play\">\n        <Button type=\"primary\" on:BtnClick={playListShuffleFun}>\n          <span class=\"icon\">\n            <ShuffleLine size=\"20\" style=\"vertical-align: middle\" />\n          </span>\n          随机播放\n        </Button>\n      </div>\n    </div>\n  {/if}\n  <div>\n    {#if isSearch && keywords != ''}\n      <SongList songList={searchSongList} />\n    {:else}\n      <SongList {songList} />\n    {/if}\n  </div>\n</div>\n\n<style>\n  .input-box {\n    margin: 10px auto;\n    font-size: 20px;\n    display: flex;\n    padding: 0 20px;\n  }\n  .input-box form {\n    flex: auto;\n  }\n  .input-box form input {\n    width: 100%;\n    margin: 0;\n    padding: 0 5px;\n    border: none;\n    height: 30px;\n    box-sizing: border-box;\n    line-height: 10px;\n    border-radius: 4px;\n    font-size: 14px;\n    outline: none;\n    -webkit-appearance: none;\n  }\n  .input-box input:focus {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box input:active {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box button {\n    border: none;\n    padding: 0 8px;\n    border-radius: 4px;\n    margin-left: 10px;\n    width: 48px;\n    height: 30px;\n    line-height: 30px;\n    font-size: 14px;\n    background-color: rgb(224, 224, 224);\n  }\n  .today-title {\n    text-align: center;\n    font-size: 46px;\n    color: var(--primary-text-color);\n    margin: 20px auto;\n    font-weight: bold;\n  }\n  .today-desc {\n    text-align: center;\n    font-size: 12px;\n    margin-bottom: 10px;\n  }\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .btn {\n    width: 100%;\n    display: flex;\n    margin-bottom: 10px;\n  }\n  .play {\n    padding: 0px 20px 10px 20px;\n    flex: 1;\n  }\n  .play-list {\n    padding-top: 50px;\n    padding-bottom: 70px;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { search, onResume } from 'svelte-stack-router';\n\n  import { NavBar } from '../components/base';\n  import MiniPlayListCover from '../components/Album.svelte';\n\n  import { userPlaylist } from '../api/user';\n\n  import { userInfoStore } from '../store/user';\n  import { defaultResumableStore } from '../store/common';\n\n  import { Alert } from '../utils/common';\n\n  $: playList = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      userPlaylistFun();\n    }\n  });\n\n  onMount(() => {\n    userPlaylistFun();\n  });\n  //获取用户收藏歌单ID列表\n  async function userPlaylistFun(login) {\n    const res = await userPlaylist({\n      uid: $userInfoStore.account.id,\n    });\n    if (res.code === 200) {\n      let createListL = [];\n      let collectListL = [];\n      //去除喜欢的音乐\n      if (\n        res.playlist[0].creator.userId === $userInfoStore.account.id &&\n        res.playlist[0].name.substr(-5) === '喜欢的音乐'\n      ) {\n        res.playlist.splice(0, 1);\n      }\n      for (let i = 0; i < res.playlist.length; i++) {\n        if (res.playlist[i].creator.userId === $userInfoStore.account.id) {\n          createListL.push(res.playlist[i]);\n        } else {\n          collectListL.push(res.playlist[i]);\n        }\n      }\n      playList = $search === '?create' ? createListL : collectListL;\n    } else {\n      Alert('获取收藏歌单失败');\n    }\n  }\n</script>\n\n<NavBar title={$search === '?create' ? '创建的歌单' : '收藏的歌单'} />\n\n<div class=\"play-list-page\">\n  {#each playList as play}\n    <Lazy height={180}>\n      <MiniPlayListCover\n        name={play.name}\n        coverImgUrl={play.coverImgUrl}\n        id={play.id}\n        playCount={play.playCount}\n        trackCount={play.trackCount}\n      />\n    </Lazy>\n  {/each}\n</div>\n\n<style>\n  .play-list-page {\n    padding: 60px 20px 70px;\n    font-size: 16px;\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n  }\n  .play-list-page:after {\n    content: '';\n    width: 105px;\n  }\n</style>\n","<script>\n  import { pop, push } from 'svelte-stack-router';\n\n  import { NavBar, Cell, Button } from '../components/base';\n\n  import { logout } from '../api/user';\n\n  import {\n    restoreScrollStore,\n    musicQualityStore,\n    isShowTranslateStore,\n    isLoginStore,\n    isShowCommentStore,\n  } from '../store/common';\n\n  import { Confirm } from '../utils/common';\n\n  let musicQualityArr = ['普通', '较高', '极高', '无损'];\n\n  function switchScrollFun(e) {\n    restoreScrollStore.set(e.detail.cellCheck);\n    localStorage.setItem('restoreScroll', e.detail.cellCheck ? '1' : '0');\n  }\n  function switchCommentFun(e) {\n    isShowCommentStore.set(e.detail.cellCheck ? '1' : '0');\n    localStorage.setItem('isShowComment', e.detail.cellCheck ? '1' : '0');\n  }\n  function brFun() {\n    push('/brSelect');\n  }\n  function translateFun(e) {\n    isShowTranslateStore.set(e.detail.cellCheck);\n    localStorage.setItem('isShowTranslate', e.detail.cellCheck ? '1' : '0');\n  }\n  function logoutFun() {\n    Confirm('确定退出当前账号?', async () => {\n      const res = await logout();\n      if (res.code === 200) {\n        localStorage.clear();\n        isLoginStore.set(false);\n        clearAllCookie();\n        pop();\n      }\n    });\n  }\n  //清除所有cookie函数\n  function clearAllCookie() {\n    let keys = document.cookie.match(/[^ =;]+(?=\\=)/g);\n    if (keys) {\n      for (let i = keys.length; i--; ) document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString();\n    }\n  }\n  function aboutFun() {\n    push('/about');\n  }\n  function versionFun() {\n    push('/version');\n  }\n</script>\n\n<NavBar title=\"设置\" />\n\n<div class=\"setting-page\">\n  <!-- 设置 -->\n  <Cell title=\"播放音质\" on:cellClick={brFun} desc={musicQualityArr[Number($musicQualityStore)]} arrow={true} />\n  <Cell\n    title=\"热评\"\n    on:cellClick={switchCommentFun}\n    desc=\"Switch\"\n    cellCheck={$isShowCommentStore === '0' ? false : true}\n  />\n  <Cell title=\"显示歌词翻译\" on:cellClick={translateFun} desc=\"Switch\" cellCheck={$isShowTranslateStore} />\n  <Cell\n    title=\"自动滚动\"\n    titleDesc=\"导航返回上一页后自动滚动到之前的位置\"\n    on:cellClick={switchScrollFun}\n    desc=\"Switch\"\n    cellCheck={$restoreScrollStore}\n  />\n  <Cell title=\"关于\" on:cellClick={aboutFun} arrow={true} />\n  <Cell title=\"版本记录\" on:cellClick={versionFun} arrow={true} />\n  <div class=\"bottom\">\n    <Button on:BtnClick={logoutFun}>退出登录</Button>\n  </div>\n  <div class=\"version\">V 1.0.1</div>\n</div>\n\n<style>\n  .setting-page {\n    padding: 50px 20px 70px;\n    font-size: 16px;\n  }\n  .bottom {\n    margin: 20px auto;\n  }\n  .version {\n    margin: 20px auto;\n    font-size: 12px;\n    text-align: center;\n    color: rgb(141, 141, 141);\n  }\n</style>\n","import request from \"../utils/request\";\n// import { mapTrackPlayableStatus } from '@/utils/common';\n\n/**\n * 搜索\n * 说明 : 调用此接口 , 传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户 , 关键词可以多个 , 以空格隔开 ,\n * 如 \" 周杰伦 搁浅 \"( 不需要登录 ), 搜索获取的 mp3url 不能直接用 , 可通过 /song/url 接口传入歌曲 id 获取具体的播放链接\n * - keywords : 关键词\n * - limit : 返回数量 , 默认为 30\n * - offset : 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0\n * - type: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频, 1018:综合\n * - 调用例子 : /search?keywords=海阔天空 /cloudsearch?keywords=海阔天空(更全)\n * @param {Object} params\n * @param {string} params.keywords\n * @param {number=} params.limit\n * @param {number=} params.offset\n * @param {number=} params.type\n */\nexport function search(params) {\n  return request({\n    url: \"/search\",\n    method: \"get\",\n    params,\n  }).then(data => {\n    // if (data.result?.song !== undefined)\n    //   data.result.song.songs = mapTrackPlayableStatus(data.result.song.songs);\n    return data;\n  });\n}\n\nexport function personalFM() {\n  return request({\n    url: \"/personal_fm\",\n    method: \"get\",\n    params: {\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n//说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶\nexport function fmTrash(id) {\n  return request({\n    url: \"/fm_trash\",\n    method: \"post\",\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n","<script>\n  import { onMount } from 'svelte';\n  import { DeleteBinLine } from 'svelte-remixicon';\n\n  import { NavBar } from '../components/base';\n  import Songer from '../components/Singer.svelte';\n  import MiniPlayListCover from '../components/Album.svelte';\n  import SongList from '../components/SongList.svelte';\n\n  import { search } from '../api/others';\n  import { getSongDetail } from '../api/song';\n\n  import { ripple, fullWidth } from '../utils/common';\n\n  let inputDom;\n  let keywords = '';\n  let songers = [];\n  $: songs = [];\n  let playLists = [];\n  let typeList = [\n    { index: 0, type: 0, text: '综合' },\n    { index: 1, type: 1, text: '单曲' },\n    { index: 2, type: 100, text: '歌手' },\n    { index: 3, type: 1000, text: '歌单' },\n  ];\n  $: active = 0;\n  $: type = typeList[0].type;\n  $: searchkeywordList = localStorage.getItem('searchkeywords')\n    ? [...new Set(localStorage.getItem('searchkeywords').split('|&&|'))].filter(function (s) {\n        return s && s.trim();\n      })\n    : [];\n  $: searchkeywordList10 =\n    searchkeywordList.length > 10\n      ? searchkeywordList.slice(0, 10).filter(function (s) {\n          return s && s.trim();\n        })\n      : searchkeywordList.filter(function (s) {\n          return s && s.trim();\n        });\n  $: isShowResult = false;\n  let typeDoms;\n\n  onMount(() => {\n    if (typeDoms) ripple(typeDoms, true);\n    inputDom.addEventListener('compositionstart', function (e) {\n      //非直接的文字输入时(键盘输入中文的拼音)\n      e.target.isNeedPrevent = true;\n    });\n    inputDom.addEventListener('compositionend', function (e) {\n      //直接输入文字后(键盘选择真实的汉字)\n      e.target.isNeedPrevent = false;\n    });\n    inputDom.addEventListener('input', inputchange);\n    inputDom.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter') searchFun();\n    });\n  });\n  function inputchange(e) {\n    setTimeout(() => {\n      //采用延时进行节流\n      if (!e.target.isNeedPrevent && e.target.oldValue !== e.target.value) {\n        //判断输入是否完成以及值是否变化\n        e.target.oldValue = e.target.value;\n        keywords = e.target.value;\n      }\n    }, 10);\n  }\n  //搜索\n  function searchFun() {\n    if (keywords.trim() != '') {\n      inputDom.blur();\n      let searchkeywords = localStorage.getItem('searchkeywords') ? localStorage.getItem('searchkeywords') : '';\n      if (searchkeywords.indexOf(keywords) != -1) {\n        //有\n        searchkeywords = `${keywords}|&&|` + searchkeywords.replace(`${keywords}|&&|`, '');\n      } else {\n        searchkeywords = `${keywords}|&&|` + searchkeywords;\n      }\n      searchkeywordList = searchkeywords.split('|&&|');\n      localStorage.setItem('searchkeywords', searchkeywords);\n      if (type === 0) {\n        //搜索综合\n        searchApiFun(typeList[1].type, false);\n        searchApiFun(typeList[2].type, false);\n        searchApiFun(typeList[3].type, false);\n      } else {\n        searchApiFun(type, true);\n      }\n    }\n  }\n  function quickSearchFun(key) {\n    keywords = key;\n    searchFun();\n  }\n  function clearSearchFun() {\n    searchkeywordList10 = [];\n    localStorage.removeItem('searchkeywords');\n  }\n  //开始搜索\n  async function searchApiFun(type, isMore) {\n    const res = await search({ keywords, type, limit: isMore ? 30 : 6 });\n    if (res.code === 200) {\n      isShowResult = true;\n      switch (type) {\n        case 1:\n          let songIdList = [];\n          for (let i = 0; i < res.result.songs.length; i++) {\n            songIdList.push(res.result.songs[i].id);\n          }\n          getSongDetailFun(songIdList.join(','));\n          break;\n        case 100:\n          songers = res.result.artists;\n          break;\n        case 1000:\n          playLists = res.result.playlists;\n          break;\n        default:\n          console.log('未知类型');\n          break;\n      }\n    }\n  }\n  //获取所有歌曲详情\n  async function getSongDetailFun(songIds) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      songs = res.songs;\n    }\n  }\n  //数组去重\n  function uniqe(arr) {\n    for (var i = 0; i < arr.length; i++) {\n      if (arr.indexOf(arr[i]) == i) {\n        temp.push(arr[i]);\n      }\n    }\n    return temp;\n  }\n</script>\n\n<NavBar title=\"搜索\" />\n<div class=\"search-page\">\n  <div class=\"input-box\">\n    <form action=\"JavaScript:void 0\">\n      <input bind:this={inputDom} placeholder=\"请输入关键字\" type=\"search\" value={keywords} />\n    </form>\n    <button\n      on:click={() => searchFun()}\n      style=\"background-color: {keywords === '' ? 'rgb(224, 224, 224)' : 'var(--primary-text-color)'};\n        color:{keywords === '' ? '#666' : '#fff'}\"\n    >\n      搜索\n    </button>\n  </div>\n  <div class=\"searchkeyword\">\n    {#each searchkeywordList10.filter(function (s) {\n      return s && s.trim();\n    }) as item}\n      <span class=\"key-item\" on:click={() => quickSearchFun(item)}>\n        {item}\n      </span>\n    {/each}\n    {#if searchkeywordList10.filter(function (s) {\n      return s && s.trim();\n    }).length > 0}\n      <span class=\"key-item\" on:click={clearSearchFun}>\n        <DeleteBinLine size=\"12\" style=\"vertical-align: middle\" />\n      </span>\n    {/if}\n  </div>\n  <div class=\"type\" bind:this={typeDoms}>\n    {#each typeList as t}\n      <div\n        class=\"type-item\"\n        class:active={active === t.index}\n        on:click={() => {\n          active = t.index;\n          type = t.type;\n          searchFun();\n        }}\n      >\n        {t.text}\n      </div>\n    {/each}\n  </div>\n  <div class=\"active-line\" style=\"left: {20 + ((fullWidth() - 40) / 4) * active}px;\" />\n  {#if isShowResult}\n    <div class=\"result-box\">\n      <!-- 综合 -->\n      <div class=\"result all-box\" style=\"display: {active === 0 ? 'block' : 'none'};\">\n        <div class=\"songer-title\">单曲</div>\n        <div class=\"reault-song\">\n          <div class=\"song-box\">\n            <SongList songList={songs} />\n          </div>\n        </div>\n        <!-- <Divider /> -->\n        <div class=\"songer-title\">歌手</div>\n        <div class=\"reault-songer\">\n          {#each songers as songer}\n            <div class=\"songer-box\">\n              <Songer {songer} coverSize={330} />\n            </div>\n          {/each}\n        </div>\n        <!-- <Divider /> -->\n        <div class=\"songer-title\">歌单</div>\n        <div class=\"reault-play-list\">\n          {#each playLists as play}\n            <div class=\"list-box\">\n              <MiniPlayListCover\n                name={play.name}\n                coverImgUrl={play.coverImgUrl}\n                id={play.id}\n                playCount={play.playCount}\n                trackCount={play.trackCount}\n              />\n            </div>\n          {/each}\n        </div>\n      </div>\n      <!-- 单曲 -->\n      <div class=\"result song-box\" style=\"display: {active === 1 ? 'block' : 'none'};\">\n        <div class=\"reault-song\">\n          <div class=\"song-box\">\n            <SongList songList={songs} />\n          </div>\n        </div>\n      </div>\n      <!--歌手 -->\n      <div class=\"result reault-songer-box\" style=\"display: {active === 2 ? 'block' : 'none'};\">\n        <div class=\"reault-songer\">\n          {#each songers as songer}\n            <Songer {songer} coverSize={250} />\n          {/each}\n        </div>\n      </div>\n      <!-- 歌单 -->\n      <div style=\"display: {active === 3 ? 'block' : 'none'};\">\n        <div class=\"reault-play-list\">\n          {#each playLists as play}\n            <MiniPlayListCover\n              name={play.name}\n              coverImgUrl={play.coverImgUrl}\n              id={play.id}\n              playCount={play.playCount}\n              trackCount={play.trackCount}\n            />\n          {/each}\n        </div>\n      </div>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .searchkeyword {\n    padding: 10px 20px;\n  }\n  .key-item {\n    display: inline-block;\n    font-size: 12px;\n    margin: 4px 8px 4px 0;\n    padding: 4px 8px;\n    border-radius: 4px;\n    background-color: #fff;\n  }\n  .songer-title {\n    margin: 20px auto 10px;\n    font-weight: bold;\n    padding: 0 20px;\n  }\n  .active-line {\n    margin-bottom: 10px;\n    height: 2px;\n    width: 83.75px;\n    background-color: var(--primary-text-color);\n    position: relative;\n    left: 0px;\n    transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n    -webkit-transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n  }\n  .type {\n    display: flex;\n    padding: 0 20px;\n  }\n  .type-item {\n    font-weight: bold;\n    padding: 10px 0 8px;\n    text-align: center;\n    flex: 1;\n  }\n  .active {\n    color: var(--primary-text-color);\n  }\n  .search-page {\n    font-size: 16px;\n    padding: 50px 0px 70px;\n  }\n  .input-box {\n    margin: 10px auto;\n    font-size: 20px;\n    display: flex;\n    padding: 0 20px;\n  }\n  .input-box form {\n    flex: auto;\n  }\n  .input-box form input {\n    width: 100%;\n    margin: 0;\n    padding: 0 5px;\n    border: none;\n    height: 30px;\n    box-sizing: border-box;\n    line-height: 10px;\n    border-radius: 4px;\n    font-size: 14px;\n    outline: none;\n    -webkit-appearance: none;\n  }\n  .input-box input:focus {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box input:active {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box button {\n    border: none;\n    padding: 0 8px;\n    border-radius: 4px;\n    margin-left: 10px;\n    width: 48px;\n    height: 30px;\n    line-height: 30px;\n    font-size: 14px;\n    background-color: rgb(224, 224, 224);\n  }\n  .reault-songer {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .reault-play-list {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(2, 150px);\n    padding: 0 20px;\n  }\n  .songer-box {\n    padding: 10px 0;\n  }\n</style>\n","<script>\n  import { onMount, afterUpdate } from \"svelte\";\n  import Lazy from \"svelte-lazy\";\n  import { push, onResume, search } from \"svelte-stack-router\";\n  import {\n    PlayCircleLine,\n    ChatHeartFill,\n    ChatHeartLine,\n  } from \"svelte-remixicon\";\n\n  import { NavBar, Title, Button } from \"../components/base\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import {\n    defaultResumableStore,\n    isLoginStore,\n    currentDetailSongerIdStore,\n    coverImgUrlStore,\n    defaultCover,\n  } from \"../store/common\";\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n\n  import { getSongerDetail, getSongerTop, followAArtist } from \"../api/songer\";\n  import { getSongUrl } from \"../api/song\";\n  import { parseQuery } from \"../utils/common\";\n\n  const { id } = parseQuery($search);\n\n  $: coverImgUrl = defaultCover;\n  $: name = \"--\";\n  $: description = \"暂无描述\";\n  $: mvSize = 0;\n  $: musicSize = 0;\n  $: albumSize = 0;\n  $: hotSongs = [];\n  $: collect = false;\n  $: currentSongerId = id; //当前歌手 ID,用于计算更新页面\n\n  onResume(() => {\n    const { id } = parseQuery($search);\n    currentSongerId = id;\n    if (!$defaultResumableStore) {\n      allMount();\n    }\n  });\n  onMount(() => {\n    allMount();\n  });\n  // afterUpdate(() => {\n  //   if (currentSongerId !== $currentDetailSongerIdStore) {\n  //     allMount();\n  //   }\n  // });\n  function allMount() {\n    getSongerDetailFun();\n    getSongerTopFun();\n    if ($isLoginStore) {\n      const ids = JSON.parse(localStorage.getItem(\"useLoveSongerIds\"));\n      collect = ids.includes($currentDetailSongerIdStore);\n    } else {\n      collect = false;\n    }\n  }\n  async function getSongerDetailFun() {\n    const res = await getSongerDetail(currentSongerId);\n    if (res.code === 200) {\n      name = res.data.artist.name;\n      coverImgUrl = res.data.user\n        ? res.data.user.avatarUrl\n        : res.data.artist.cover;\n      description = res.data.artist.briefDesc;\n      mvSize = res.data.artist.mvSize;\n      musicSize = res.data.artist.musicSize;\n      albumSize = res.data.artist.albumSize;\n    }\n  }\n  async function getSongerTopFun() {\n    const res = await getSongerTop(currentSongerId);\n    if (res.code === 200) {\n      hotSongs = res.songs;\n    }\n  }\n  function toDescFun() {\n    if (description != \"\") {\n      push(\"/songerDesc?\" + $currentDetailSongerIdStore);\n    }\n  }\n  function playListFun(index) {\n    playRepeatModelStore.set(\"repeat\");\n    isFMPlayStore.set(false);\n    localStorage.setItem(\"isFMPlay\", \"0\");\n    currentPlayListStore.set(hotSongs);\n    let ids = [];\n    for (let r = 0; r < hotSongs.length; r++) {\n      ids.push(hotSongs[r].id);\n    }\n    localStorage.setItem(\"localPlayList\", JSON.stringify(ids));\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(\n          `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n          2000\n        );\n      }\n    }\n  }\n  async function loveSongerFun() {\n    const res = await followAArtist({\n      id: $currentDetailSongerIdStore,\n      t: collect ? 0 : 1,\n    });\n    if (res.code === 200) {\n      const ids = JSON.parse(localStorage.getItem(\"useLoveSongerIds\"));\n      if (collect) {\n        let i = ids.indexOf(Number($currentDetailSongerIdStore));\n        ids.splice(i, 1);\n      } else {\n        ids.unshift(Number($currentDetailSongerIdStore));\n      }\n      localStorage.setItem(\"useLoveSongerIds\", JSON.stringify(ids));\n      collect = !collect;\n    }\n  }\n</script>\n\n<NavBar title={name} dark={true} />\n<div class=\"page\">\n  <div class=\"cover-box\">\n    <div class=\"cover-bg\">\n      <div class=\"cover\">\n        <Lazy height={140}>\n          <img\n            class=\"img-cover\"\n            src={coverImgUrl.replace(/^http:/, \"https:\") + \"?param=400y400\"}\n            alt=\"\"\n          />\n        </Lazy>\n      </div>\n      <div class=\"info\">\n        <div class=\"name\">{name}</div>\n        <div class=\"song-count\">\n          {musicSize} 首歌 • {albumSize} 张专辑 • {mvSize} 个 MV\n        </div>\n        <div class=\"desc\" on:click={toDescFun}>{description}</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"btn\">\n    <div class=\"play\">\n      <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n        <span class=\"icon\">\n          <PlayCircleLine size=\"20\" style=\"vertical-align: middle\" />\n        </span>\n        播放全部\n      </Button>\n    </div>\n    {#if $isLoginStore}\n      <div class=\"random\">\n        <Button\n          type={collect ? \"default\" : \"primary\"}\n          on:BtnClick={loveSongerFun}\n        >\n          <span class=\"icon\">\n            {#if collect}\n              <ChatHeartLine size=\"20\" style=\"vertical-align: middle\" />\n            {:else}\n              <ChatHeartFill size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </span>\n          {collect ? \"取消收藏\" : \"收藏歌手\"}\n        </Button>\n      </div>\n    {/if}\n  </div>\n  <div>\n    <Title\n      title={`热门 ${hotSongs.length} 首`}\n      isShowRight={hotSongs.length === 50}\n      on:TitleClick={() => {\n        coverImgUrlStore.set(coverImgUrl.replace(/^http:/, \"https:\"));\n        push(\"/moreSong?name=\" + name + \"&id=\" + currentSongerId);\n      }}\n    />\n    <SongList songList={hotSongs} />\n  </div>\n</div>\n\n<style>\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .btn {\n    width: 100%;\n    display: flex;\n    margin-top: 10px;\n  }\n  .play {\n    padding: 0px 10px 10px 20px;\n    flex: 1;\n  }\n  .random {\n    padding: 0px 20px 10px 20px;\n    flex: 1;\n  }\n  .page {\n    padding: 50px 0 70px;\n    font-size: 16px;\n  }\n  .cover-box {\n    padding: 0 20px;\n  }\n  .cover-bg {\n    font-size: 12px;\n    padding: 20px 0px;\n    display: flex;\n  }\n  .cover {\n    width: 150px;\n    height: 150px;\n    border-radius: 150px;\n    overflow: hidden;\n    flex: 0 0 150px;\n    background-color: #fff;\n  }\n  .img-cover {\n    border-radius: 6px;\n    width: 150px;\n    height: 150px;\n    object-fit: cover;\n  }\n  .info {\n    padding-top: 6px;\n    margin-left: 10px;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n  .name {\n    font-size: 24px;\n    max-width: 192px;\n    font-weight: bold;\n  }\n  .song-count {\n    font-size: 12px;\n  }\n  .desc {\n    padding: 10px 0;\n    font-size: 12px;\n    max-height: 57px;\n    text-align: justify;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 5;\n    color: rgb(116, 116, 116);\n  }\n</style>\n","<script>\n  import { NavBar, Radio, Tip } from \"../components/base\";\n\n  import { musicQualityStore } from \"../store/common\";\n\n  let radioData = [\n    { text: \"普通\", desc: \"128K\" },\n    { text: \"较高\", desc: \"192K\" },\n    { text: \"极高\", desc: \"320K\" },\n    { text: \"无损\", desc: \"FLAC\" },\n  ];\n  let tipTextList = [\n    \"提示:\",\n    \"1、音质越高相对应所需流量也越高。FLAC 格式对网络要求较高,一首歌曲文件几十 M 甚至超过 100M。\",\n    \"2、一般来说,达到较高音质(192K)非专业设备就已经听不出差距了,如果用的是普通蓝牙耳机,那就更没必要开启高音质了。\",\n    \"3、若当前账号无法播放高音质,或音乐资源无当前音质,将自动匹配下一级别音质。\",\n    \"4、所选音质将在下一次切换歌曲生效。\",\n  ];\n  let active = Number($musicQualityStore);\n\n  function getActiveFun(e) {\n    musicQualityStore.set(e.detail.active.toString());\n    localStorage.setItem(\"musicQuality\", e.detail.active.toString());\n  }\n</script>\n\n<NavBar title=\"播放音质\" />\n<div class=\"br-page\">\n  <Radio {radioData} on:RadioClick={getActiveFun} {active} />\n  <Tip {tipTextList} />\n</div>\n\n<style>\n  .br-page {\n    padding: 50px 20px 70px;\n    font-size: 16px;\n  }\n</style>\n","<script>\n  import { onMount, afterUpdate } from 'svelte';\n  import { ThumbUpLine, ThumbUpFill } from 'svelte-remixicon';\n\n  import { NavBar, Divider, Pagination } from '../components/base';\n\n  import { getHotComment, likeComment } from '../api/song';\n\n  import { currentSongStore } from '../store/play';\n  import { isLoginStore } from '../store/common';\n\n  import { formatTime, Toast, tranNumber, emojiToImg } from '../utils/common';\n\n  $: totalCount = 0;\n  $: hotComments = [];\n  $: currentSongId = 0; //当前歌曲 ID,用于计算更新页面\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  \n  onMount(() => {\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    getHotCommentFun(0);\n  });\n  afterUpdate(() => {\n    if (currentSongId !== $currentSongStore.id) {\n      hotComments = [];\n      offset = 0;\n      hasMore = true;\n      getHotCommentFun(offset);\n    }\n  });\n  async function getHotCommentFun(offset) {\n    currentSongId = $currentSongStore.id;\n    const res = await getHotComment($currentSongStore.id, offset);\n    if (res.code === 200) {\n      totalCount = res.total;\n      hotComments = hotComments.concat(res.hotComments);\n      hasMore = res.hasMore;\n      // 去除云村编辑部的广告\n      hotComments = hotComments.filter(item => item.user.nickname !== '云村评论编辑部');\n      for (let r = 0; r < hotComments.length; r++) {\n        //处理 emoji 表情显示\n        hotComments[r].content = emojiToImg(hotComments[r].content);\n      }\n    }\n  }\n  async function commentClickFun(commentId, liked) {\n    if ($isLoginStore) {\n      const res = await likeComment($currentSongStore.id, commentId, 0, liked ? 0 : 1);\n      if (res.code === 200) {\n        for (let y = 0; y < hotComments.length; y++) {\n          if (hotComments[y].commentId === commentId) {\n            hotComments[y].liked = !liked;\n          }\n        }\n      }\n    } else {\n      Toast('请登录');\n    }\n  }\n</script>\n\n<NavBar title={`热门评论(${totalCount || 0})`} />\n<div class=\"comment-page\">\n  <Pagination\n    bottomHeight={70}\n    {paginationHeight}\n    items={hotComments}\n    let:item\n    let:index\n    {hasMore}\n    on:load={() => {\n      if (hasMore) {\n        offset = hotComments.length;\n        getHotCommentFun(offset);\n      }\n    }}\n  >\n    <div>\n      <div class=\"comment\">\n        <!-- <div class=\"floor\">{index + 1}楼</div> -->\n        <div class=\"top\">\n          <div class=\"user\">\n            <div class=\"cover\">\n              <img src={item.user.avatarUrl.replace(/^http:/, 'https:') + '?param=50y50'} alt=\"\" />\n            </div>\n            <div class=\"info\">\n              <div class=\"name\">\n                {item.user.nickname}\n                {#if item.user.authStatus === 1}\n                  <span class=\"vip\">\n                    <img class=\"authStatus\" src=\"/images/auth.png\" alt=\"\" />\n                  </span>\n                {/if}\n                {#if item.user.vipType !== 0}\n                  <span class=\"vip\">\n                    <img class=\"cvip\" src={`/images/vip/${item.user.vipRights.redVipLevel}.png`} alt=\"\" />\n                  </span>\n                {/if}\n              </div>\n              <div class=\"time\">\n                {formatTime(item.time, 'yyyy-MM-dd hh:mm:ss')}\n              </div>\n            </div>\n          </div>\n          <div\n            class=\"like\"\n            on:click={() => commentClickFun(item.commentId, item.liked)}\n            style=\"color:{item.liked ? 'var(--primary-text-color)' : '#666'}\"\n          >\n            <span class=\"liked-span\">\n              {#if item.liked}\n                <ThumbUpFill size=\"12\" style=\"vertical-align: middle;margin-left:4px;\" />\n              {:else}\n                <ThumbUpLine size=\"12\" style=\"vertical-align: middle;margin-left:4px\" />\n              {/if}\n            </span>{tranNumber(item.likedCount)}\n          </div>\n        </div>\n        <div class=\"content\">\n          {@html item.content}\n          {#if item.beReplied && item.beReplied.length > 0}\n            <div class=\"beReplied\">\n              @ {item.beReplied[0].user.nickname}:{item.beReplied[0].content}\n            </div>\n          {/if}\n        </div>\n      </div>\n      <Divider />\n    </div>\n  </Pagination>\n</div>\n\n<style>\n  .cvip {\n    width: 29.1667px;\n    height: 10px;\n  }\n  .authStatus {\n    width: 10px;\n    height: 10px;\n  }\n  .beReplied {\n    color: #8a8a8a;\n    font-size: 10px;\n    padding: 4px;\n    margin-top: 4px;\n    border-radius: 4px;\n    background-color: #ebebeb;\n  }\n  .comment-page {\n    padding: 50px 10px 70px;\n    font-size: 16px;\n    color: #333333;\n  }\n  .comment {\n    margin: 20px auto;\n  }\n  .top {\n    display: flex;\n    justify-content: space-between;\n  }\n  .cover {\n    width: 30px;\n    height: 30px;\n    border-radius: 15px;\n    overflow: hidden;\n    margin-right: 10px;\n  }\n  .cover img {\n    width: 100%;\n  }\n  .user {\n    display: flex;\n    justify-content: flex-start;\n    font-size: 12px;\n  }\n  .info {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n  .time {\n    font-size: 10px;\n    color: #888;\n  }\n  .like {\n    color: #666;\n    font-size: 12px;\n    line-height: 30px;\n  }\n  .liked-span {\n    position: relative;\n    top: -2px;\n  }\n  .content {\n    text-align: justify;\n    margin-top: 10px;\n  }\n</style>\n","<script>\n  import { onMount } from \"svelte\";\n  import { onResume } from \"svelte-stack-router\";\n\n  import Songer from \"../components/Singer.svelte\";\n  import { NavBar } from \"../components/base\";\n\n  import { defaultResumableStore } from \"../store/common\";\n\n  import { likedArtists } from \"../api/user\";\n\n  $: collectSongers = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      likedArtistsFun();\n    }\n  });\n  onMount(() => {\n    likedArtistsFun();\n  });\n  //获取收藏的歌手\n  async function likedArtistsFun() {\n    const res = await likedArtists({ limit: 2000 });\n    if (res.code === 200) {\n      collectSongers = res.data;\n    }\n  }\n</script>\n\n<NavBar title=\"收藏的歌手\" />\n<div class=\"page\">\n  {#if collectSongers.length > 0}\n    <div class=\"songer-box\">\n      {#each collectSongers as songer}\n        <Songer {songer} coverSize={200} />\n      {/each}\n    </div>\n  {/if}\n</div>\n\n<style>\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(4, 75px);\n    padding: 0 20px;\n  }\n  .page {\n    font-size: 16px;\n    padding: 50px 0px 70px;\n  }\n</style>\n","<script>\n  import { onMount } from \"svelte\";\n  import { search, onResume } from \"svelte-stack-router\";\n\n  import { NavBar } from \"../components/base\";\n\n  import { defaultResumableStore } from \"../store/common\";\n\n  import { getSongerDesc } from \"../api/songer\";\n\n  $: briefDesc = \"\";\n  $: introduction = [];\n  $: topicData = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      getSongerDescFun();\n    }\n  });\n\n  onMount(() => {\n    getSongerDescFun();\n  });\n  async function getSongerDescFun() {\n    const res = await getSongerDesc($search.substr(1));\n    if (res.code === 200) {\n      briefDesc = res.briefDesc;\n      introduction = res.introduction;\n      topicData = res.topicData;\n    }\n  }\n</script>\n\n<NavBar title=\"歌手详情\" dark={true} />\n<div class=\"page\">\n  <div class=\"title\">简介</div>\n  <div class=\"text\">{briefDesc}</div>\n  {#each introduction as i}\n    <div class=\"title\">{i.ti}</div>\n    <div class=\"text\">{@html i.txt}</div>\n  {/each}\n</div>\n\n<style>\n  .page {\n    padding: 50px 20px 70px;\n    font-size: 18px;\n    font-weight: bold;\n    text-align: justify;\n  }\n  .title {\n    margin: 20px 0 10px;\n  }\n  .text {\n    font-weight: normal;\n    font-size: 14px;\n    color: rgb(97, 97, 97);\n    white-space: pre-line;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { onResume } from 'svelte-stack-router';\n\n  import { NavBar, Pagination } from '../components/base';\n  import Songer from '../components/Singer.svelte';\n\n  import { defaultResumableStore } from '../store/common';\n\n  import { topArtists } from '../api/songer';\n\n  $: hotSongers = [];\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  let limit = 20;\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      hotSongers = [];\n      hasMore = true;\n      offset = 0;\n      paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n      topArtistsFun();\n    }\n  });\n\n  onMount(() => {\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    topArtistsFun(0);\n  });\n  //热门歌手\n  async function topArtistsFun(offset) {\n    const res = await topArtists(limit, offset);\n    if (res.code === 200) {\n      hotSongers = hotSongers.concat(res.artists);\n      hasMore = res.more;\n    }\n  }\n</script>\n\n<NavBar title={`热门歌手 ${hotSongers.length} 位`} />\n<div class=\"comment-page\">\n  <Pagination\n    bottomHeight={70}\n    {paginationHeight}\n    items={hotSongers}\n    let:item\n    let:index\n    {hasMore}\n    grid={3}\n    on:load={() => {\n      if (hasMore) {\n        offset = hotSongers.length;\n        topArtistsFun(offset);\n      }\n    }}\n  >\n    <Songer songer={item} coverSize={200} />\n  </Pagination>\n</div>\n\n<style>\n  .comment-page {\n    padding: 50px 20px;\n    font-size: 16px;\n    color: #333333;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { onResume, search } from 'svelte-stack-router';\n  import Lazy from 'svelte-lazy';\n\n  import { NavBar, Pagination } from '../components/base';\n  import MiniPlayListCover from '../components/Album.svelte';\n\n  import { defaultResumableStore } from '../store/common';\n\n  import { topPlaylist, highQualityPlaylist } from '../api/playlist';\n\n  import { parseQuery } from '../utils/common';\n\n  $: playList = [];\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  $: searchObj = {};\n  $: before = 0;\n  let limit = 20;\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      playList = [];\n      hasMore = true;\n      offset = 0;\n      paginationHeight = 0;\n      before = 0;\n      searchObj = {};\n      allMount();\n    }\n  });\n  onMount(() => {\n    allMount();\n  });\n  function allMount() {\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    searchObj = parseQuery($search);\n    if (searchObj.type === 'high') {\n      highQualityPlaylistFun(searchObj.cat);\n    } else {\n      topPlaylistFun(searchObj.cat);\n    }\n  }\n  //热门歌单\n  async function topPlaylistFun(cat) {\n    const res = await topPlaylist({ limit, cat: cat === '默认' ? '全部' : cat, offset });\n    if (res.code === 200) {\n      playList = playList.concat(res.playlists);\n      hasMore = res.more;\n    }\n  }\n  //精品歌单\n  async function highQualityPlaylistFun(cat) {\n    const res = await highQualityPlaylist({ limit, cat: cat === '默认' ? '全部' : cat, before });\n    if (res.code === 200) {\n      playList = playList.concat(res.playlists);\n      hasMore = res.more;\n    }\n  }\n</script>\n\n<NavBar\n  title={searchObj.cat === '官方' ? '官方歌单' : `${searchObj.cat} - ${searchObj.type === 'top' ? '精选' : '精品'}歌单`}\n/>\n<div class=\"comment-page\">\n  <Pagination\n    bottomHeight={70}\n    {paginationHeight}\n    items={playList}\n    let:item\n    let:index\n    {hasMore}\n    grid={2}\n    on:load={() => {\n      if (hasMore) {\n        if (searchObj.type === 'high') {\n          before = playList.slice(-1)[0].updateTime;\n          highQualityPlaylistFun(searchObj.cat);\n        } else {\n          offset = playList.length;\n          topPlaylistFun(searchObj.cat);\n        }\n      }\n    }}\n  >\n    <MiniPlayListCover\n      name={item.name}\n      coverImgUrl={item.coverImgUrl}\n      id={item.id}\n      width={150}\n      playCount={item.playCount}\n      trackCount={item.trackCount}\n    />\n  </Pagination>\n</div>\n\n<style>\n  .comment-page {\n    padding: 50px 20px;\n    font-size: 16px;\n    color: #333333;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { onResume, search } from 'svelte-stack-router';\n\n  import { NavBar, Pagination } from '../components/base';\n  import Song from '../components/Song.svelte';\n\n  import { defaultResumableStore, coverImgUrlStore } from '../store/common';\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    currentSongQualityStore,\n  } from '../store/play';\n\n  import { getAllSongs } from '../api/songer';\n  import { getSongUrl } from '../api/song';\n\n  import { parseQuery, Toast, fullWidth } from '../utils/common';\n\n  $: songList = [];\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  let limit = 20;\n  $: searchObj = {};\n  let typeList = [\n    { index: 0, type: 'hot', text: '最热' },\n    { index: 1, type: 'time', text: '最近' },\n  ];\n  $: active = 0;\n  $: order = typeList[0].type;\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      songList = [];\n      hasMore = true;\n      offset = 0;\n      active = 0;\n      order = 'hot';\n      searchObj = parseQuery($search);\n      paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n      getAllSongsFun(0, order);\n    }\n  });\n\n  onMount(() => {\n    searchObj = parseQuery($search);\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    getAllSongsFun(0, order);\n  });\n  //热门歌手\n  async function getAllSongsFun(offset, order) {\n    const res = await getAllSongs(searchObj.id, order, limit, offset);\n    if (res.code === 200) {\n      songList = songList.concat(res.songs);\n      hasMore = res.more;\n    }\n  }\n  function playListFun(index) {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    let newcurrentPlayList = $currentPlayListStore;\n    let newPlayListIds = [];\n    for (let r = 0; r < newcurrentPlayList.length; r++) {\n      newPlayListIds.push(newcurrentPlayList[r].id);\n    }\n    if (newPlayListIds.includes(songList[index].id)) {\n      currentSongIndexStore.set(newPlayListIds.indexOf(songList[index].id));\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n    } else {\n      newcurrentPlayList.splice($currentSongIndexStore + 1, 0, songList[index]);\n      currentPlayListStore.set(newcurrentPlayList);\n      let ids = [];\n      for (let r = 0; r < newcurrentPlayList.length; r++) {\n        ids.push(newcurrentPlayList[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n      currentSongIndexStore.set($currentSongIndexStore + 1);\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n    }\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        song.al.picUrl = $coverImgUrlStore;\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  function getSongClick(event) {\n    playListFun(event.detail.index);\n  }\n</script>\n\n<NavBar title={`${searchObj.name}的全部歌曲`} />\n\n<div class=\"comment-page\">\n  <div class=\"type\">\n    {#each typeList as t}\n      <div\n        class=\"type-item\"\n        class:active={active === t.index}\n        on:click={() => {\n          active = t.index;\n          order = t.type;\n          songList = [];\n          hasMore = true;\n          offset = 0;\n          getAllSongsFun(offset, order);\n        }}\n      >\n        {t.text}\n      </div>\n    {/each}\n  </div>\n  <div class=\"active-line\" style=\"left: {20 + ((fullWidth() - 40) / 2) * active}px;\" />\n  <div style=\"margin-top:40px\">\n    <Pagination\n      bottomHeight={70}\n      {paginationHeight}\n      items={songList}\n      let:item\n      let:index\n      {hasMore}\n      on:load={() => {\n        if (hasMore) {\n          offset = songList.length;\n          getAllSongsFun(offset, order);\n        }\n      }}\n    >\n      <Song song={item} {index} customCoverUrl={$coverImgUrlStore + '?param=100y100'} on:songClick={getSongClick} />\n    </Pagination>\n  </div>\n</div>\n\n<style>\n  .comment-page {\n    padding: 50px 0;\n    font-size: 16px;\n    color: #333333;\n  }\n  .type {\n    background-color: #fff;\n    position: fixed;\n    top: 50px;\n    width: 100%;\n    display: flex;\n    z-index: 50;\n  }\n  .type-item {\n    font-weight: bold;\n    padding: 10px 0 8px;\n    text-align: center;\n    flex: 1;\n  }\n  .active {\n    color: var(--primary-text-color);\n  }\n  .active-line {\n    position: fixed;\n    top: 86px;\n    margin-bottom: 10px;\n    height: 2px;\n    width: 167.5px;\n    background-color: var(--primary-text-color);\n    left: 0px;\n    transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n    -webkit-transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n  }\n</style>\n","<script>\n  import md from '../../README.md';\n  import { NavBar } from '../components/base';\n</script>\n\n<NavBar title=\"关于\" />\n<div class=\"about\">\n  <div id=\"markdown\">{@html md}</div>\n</div>\n\n<style>\n  .about {\n    padding: 50px 0px 70px;\n  }\n</style>\n","<script>\n  import md from '../../version.md';\n  import { NavBar } from '../components/base';\n</script>\n\n<NavBar title=\"版本记录\" />\n<div class=\"about\">\n  <div id=\"markdown\">{@html md}</div>\n</div>\n\n<style>\n  .about {\n    padding: 50px 0px 70px;\n  }\n</style>\n","import Home from './pages/Home.svelte';\nimport PlayListDetail from './pages/PlayListDetail.svelte';\nimport Login from './pages/Login.svelte';\nimport TodayListDetail from './pages/TodayListDetail.svelte';\nimport LoveListDetail from './pages/LoveListDetail.svelte';\nimport MyAllPlayList from './pages/MyAllPlayList.svelte';\nimport Setting from './pages/Setting.svelte';\nimport Search from './pages/Search.svelte';\nimport Artist from './pages/Artist.svelte';\nimport BrSelect from './pages/BrSelect.svelte';\nimport MusicComment from './pages/MusicComment.svelte';\nimport AllCollectSongers from './pages/AllCollectSongers.svelte';\nimport SongerDesc from './pages/SongerDesc.svelte';\nimport MoreSonger from './pages/MoreSonger.svelte';\nimport MoreList from './pages/MoreList.svelte';\nimport MoreSong from './pages/MoreSong.svelte';\nimport About from './pages/About.svelte';\nimport Version from './pages/Version.svelte';\n\nconst routes = {\n  '/playlist': PlayListDetail,\n  '/todayListDetail': TodayListDetail,\n  '/loveListDetail': LoveListDetail,\n  '/myAllPlayList': MyAllPlayList,\n  '/login': Login,\n  '/setting': Setting,\n  '/search': Search,\n  '/artist': Artist,\n  '/brSelect': BrSelect,\n  '/comments': MusicComment,\n  '/allCollectSongers': AllCollectSongers,\n  '/songerDesc': SongerDesc,\n  '/moreSonger': MoreSonger,\n  '/moreList': MoreList,\n  '/moreSong': MoreSong,\n  '/about': About,\n  '/version': Version,\n  '*': Home,\n};\n\nexport default routes;\n","<script>\n  import { onMount } from 'svelte';\n  import { StackRouter, slide } from 'svelte-stack-router';\n  import isStandalone from 'is-standalone';\n\n  import Play from './components/Play.svelte';\n  import MiniPlay from './components/MiniPlay.svelte';\n  import Loading from './components/Loading.svelte';\n  import { TabBar } from './components/base';\n\n  import { getSongUrl, personalFM, getSongDetail } from './api/song';\n  import { userPlaylist, userLikedSongsIDs, likedArtists } from './api/user';\n\n  import routes from './routes';\n\n  import {\n    isLoadingStore,\n    isHomePageStore,\n    restoreScrollStore,\n    defaultResumableStore,\n    isLoginStore,\n  } from './store/common';\n  import {\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    playIsMaxStore,\n    playIsMinStore,\n    playStatusStore,\n    maxPlayToTopStore,\n    isFMPlayStore,\n    FMPlayStore,\n    FMPlayNextStore,\n    currentTimeStore,\n    mainCoverTypeStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from './store/play';\n  import { userInfoStore, userLikeSongIdsStore } from './store/user';\n\n  import { timeToMinute, Toast, Alert, Confirm, getUserAgentInfo, getOsInfo } from './utils/common';\n\n  let audioDOM;\n  let audioDOMIsRander = false;\n  let endTime = 0;\n  let currentTime = '0:00';\n  let currentTimeLong = 0;\n\n  window.addEventListener('hashchange', function (event) {\n    if (event.newURL.indexOf('#') < 0 || event.newURL.split('#')[1] === '' || event.newURL.split('#')[1] === '/') {\n      isHomePageStore.set(true);\n    } else {\n      isHomePageStore.set(false);\n    }\n    if (event.oldURL.indexOf('#') > 0 && event.oldURL.split('#')[1] === '/login') {\n      location.reload();\n    }\n  });\n\n  // history.pushState(null, null, location.href);\n  window.addEventListener('popstate', function (event) {\n    if ($playIsMaxStore) {\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set('cover');\n      maxPlayToTopStore.set(window.screen.height + 'px');\n    }\n  });\n\n  // pushHistory();\n\n  // window.addEventListener(\n  //   \"popstate\",\n  //   function (e) {\n  //     console.log(11, e);\n  //     // $(\".onback\").show();\n  //   },\n  //   false\n  // );\n\n  // function pushHistory() {\n  //   var state = {\n  //     title: \"title\",\n  //     url: \"#\",\n  //   };\n  //   window.history.pushState(state, \"title\", \"#\");\n  // }\n\n  onMount(() => {\n    if ($isLoginStore) {\n      userPlaylistFun($userInfoStore);\n      likedArtistsFun();\n    }\n    // 开启页面重新请求播放列表数据\n    if (localStorage.getItem('localPlayList')) {\n      let localPlayList = JSON.parse(localStorage.getItem('localPlayList'));\n      if (localPlayList.length > 300) {\n        localPlayList = localPlayList.slice(0, 300);\n      }\n      getLocalPlayListFun(localPlayList.join(','));\n    }\n    if (location.href.indexOf('#') < 0 || location.href.split('#')[1] === '' || location.href.split('#')[1] === '/') {\n      isHomePageStore.set(true);\n    } else {\n      isHomePageStore.set(false);\n    }\n    window.audioDOM = audioDOM;\n    window.audioDOM.addEventListener('canplaythrough', function () {\n      // 音频可以播放了\n      audioDOMIsRander = true;\n      endTime = '-' + timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n    });\n    window.audioDOM.addEventListener('timeupdate', function () {\n      currentTimeStore.set(window.audioDOM.currentTime);\n      // 更新与播放进度相关的内容\n      currentTime = timeToMinute(window.audioDOM.currentTime);\n      currentTimeLong = (window.audioDOM.currentTime / window.audioDOM.duration) * 100;\n      endTime = '-' + timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n    });\n    window.audioDOM.addEventListener(\n      'ended',\n      function () {\n        if ($isFMPlayStore) {\n          //私人FM播放\n          mainCoverTypeStore.set('cover');\n          getSongUrlFun($FMPlayNextStore, 'fm');\n        } else {\n          if ($playRepeatModelStore != 'repeatOnce' && $currentSongIndexStore === $currentPlayListStore.length - 1) {\n            Toast('已经是最后一首了', 2000);\n          } else {\n            if ($playRepeatModelStore === 'shuffle') {\n              //随机\n              let index = Math.floor(Math.random() * ($currentPlayListStore.length - 1));\n              if ($mainCoverTypeStore === 'lyric') mainCoverTypeStore.set('cover');\n              getSongUrlFun($currentPlayListStore[index], 'shuffle', index);\n            } else if ($playRepeatModelStore === 'repeatOnce') {\n              //单曲循环\n              if ($mainCoverTypeStore === 'lyric') mainCoverTypeStore.set('cover');\n              getSongUrlFun($currentPlayListStore[$currentSongIndexStore], 'once', $currentSongIndexStore);\n            } else {\n              if ($mainCoverTypeStore === 'lyric') mainCoverTypeStore.set('cover');\n              getSongUrlFun($currentPlayListStore[$currentSongIndexStore + 1]);\n            }\n          }\n        }\n      },\n      false\n    );\n    //解决长时间不播放URL失效问题(暂定30分钟过期)\n    if ((new Date().getTime() - Number(localStorage.getItem('pauseTimes'))) / 1000 / 60 > 30) {\n      window.audioDOM.src = `https://music.163.com/song/media/outer/url?id=${$currentSongStore.id}.mp3`;\n    } else {\n      window.audioDOM.src = $currentSongStore.url;\n    }\n    // window.audioDOM.src = \"https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3\";\n    window.audioDOM.load(); //解决iOS canplaythrough不生效问题\n  });\n  //获取所有歌曲详情\n  async function getLocalPlayListFun(songIds) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      let songs = res.songs;\n      if (!songIds.split(',').includes($currentSongStore.id.toString())) {\n        songs.unshift($currentSongStore);\n        currentSongIndexStore.set(0);\n      } else {\n        currentSongIndexStore.set(songIds.split(',').indexOf($currentSongStore.id.toString()));\n      }\n      currentPlayListStore.set(songs);\n      let ids = [];\n      for (let r = 0; r < songs.length; r++) {\n        ids.push(songs[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n    }\n  }\n  //获取收藏的歌手\n  async function likedArtistsFun() {\n    const res = await likedArtists({ limit: 2000 });\n    if (res.code === 200) {\n      let ids = [];\n      for (let i = 0; i < res.data.length; i++) {\n        ids.push(res.data[i].id);\n      }\n      localStorage.setItem('useLoveSongerIds', JSON.stringify(ids));\n    } else {\n      alert('获取喜爱歌手失败');\n    }\n  }\n  async function getSongUrlFun(song, type, index) {\n    const res = await getSongUrl(song.id); //获取歌曲url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          //私人FM播放\n          personalFMFun();\n          FMPlayStore.set(song);\n          currentSongStore.set(song);\n          currentPlayListStore.set([$FMPlayStore]);\n          currentSongIndexStore.set(0);\n          localStorage.setItem('currentSong', JSON.stringify(song));\n        } else {\n          if (type === 'shuffle') {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set(index);\n          } else if (type === 'once') {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set(index);\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          } else {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set($currentSongIndexStore + 1);\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          }\n        }\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  //私人FM\n  async function personalFMFun() {\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      FMPlayNextStore.set(res.data[0]);\n    }\n  }\n  async function userPlaylistFun(login) {\n    //获取用户收藏歌单ID列表,用于判断是否已经收藏\n    const res = await userPlaylist({\n      uid: login.account.id,\n      limit: 10000,\n      offset: 0,\n    });\n    if (res.code === 200) {\n      let ids = [];\n      for (let i = 0; i < res.playlist.length; i++) {\n        ids.push(res.playlist[i].id);\n      }\n      localStorage.setItem('usePlayListIds', JSON.stringify(ids));\n      userLikedSongsIDsFun(login);\n    } else {\n      Alert('获取收藏歌单失败');\n    }\n  }\n  async function userLikedSongsIDsFun(login) {\n    //获取用户喜爱歌曲ID列表,用于判断是否已经收藏\n    const res = await userLikedSongsIDs(login.account.id);\n    if (res.code === 200) {\n      let ids = [];\n      for (let i = 0; i < res.ids.length; i++) {\n        ids.push(res.ids[i]);\n      }\n      userLikeSongIdsStore.set(JSON.stringify(ids));\n      localStorage.setItem('useLoveSongIds', JSON.stringify(ids));\n    } else {\n      alert('获取喜爱歌曲失败');\n    }\n  }\n</script>\n\n<audio bind:this={audioDOM} src=\"\" />\n\n<StackRouter\n  {routes}\n  restoreScroll={$restoreScrollStore}\n  transitionFn={slide(300)}\n  on:navigation-start={e => {\n    // 0--前进,2--后退,1--替换\n    if (e.detail.navigationType === 0) {\n      defaultResumableStore.set(false);\n    } else if (e.detail.navigationType === 2) {\n      defaultResumableStore.set(true);\n    } else {\n      defaultResumableStore.set(false);\n    }\n  }}\n/>\n\n{#if $playIsMinStore && audioDOMIsRander}\n  <MiniPlay {currentTimeLong} />\n{/if}\n<Play {endTime} {currentTime} {currentTimeLong} />\n<TabBar />\n{#if $isLoadingStore}\n  <Loading />\n{/if}\n\n<style>\n</style>\n","import App from './App.svelte';\n\nconst rootElement = document.documentElement;\nconst clientWidth = rootElement.clientWidth;\nconst vM = 750;\nconst vFontSize = 100;\n\nrootElement.style.fontSize = (vFontSize * clientWidth) / vM + 'px';\nlocalStorage.setItem('fullWidth', clientWidth);\n\nconst app = new App({\n  target: document.body,\n  props: {\n    name: 'world',\n  },\n});\n\nexport default app;\n"],"names":["bind","location","search","get","this","Toast","throttle","linear","require$$0","require$$1","defaults","validators","InterceptorManager","Cancel","Axios","axios","require$$2","require$$3","require$$4","request","undefined","global","require","QrCode","md"],"mappings":"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CX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,GAAG;IACT,EAAE,EAAE,EAAE,GAAG;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IA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CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD;IACA,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD;IACA,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,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AAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,EAAE,GA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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,OAAO;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,GAAG,EAAE;IACX,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IA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"}
\ No newline at end of file
+{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/regexparam/dist/regexparam.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/svelte-stack-router/src/types.js","../../node_modules/svelte-stack-router/src/utils.js","../../node_modules/svelte-stack-router/src/transition-functions.js","../../node_modules/svelte-stack-router/src/stack-router.js","../../node_modules/svelte-stack-router/src/StackRouter.svelte","../../node_modules/is-standalone/index.js","../../node_modules/svelte-remixicon/lib/icons/AccountCircleFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ArrowLeftLine.svelte","../../node_modules/svelte-remixicon/lib/icons/ArrowRightSLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Calendar2Fill.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatHeartFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatHeartLine.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatQuoteFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ChatQuoteLine.svelte","../../node_modules/svelte-remixicon/lib/icons/CheckboxBlankCircleLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Compass3Fill.svelte","../../node_modules/svelte-remixicon/lib/icons/DeleteBinLine.svelte","../../node_modules/svelte-remixicon/lib/icons/DislikeLine.svelte","../../node_modules/svelte-remixicon/lib/icons/GitRepositoryPrivateLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Heart2Fill.svelte","../../node_modules/svelte-remixicon/lib/icons/Heart2Line.svelte","../../node_modules/svelte-remixicon/lib/icons/HeartFill.svelte","../../node_modules/svelte-remixicon/lib/icons/HeartPulseFill.svelte","../../node_modules/svelte-remixicon/lib/icons/HeartPulseLine.svelte","../../node_modules/svelte-remixicon/lib/icons/LinksLine.svelte","../../node_modules/svelte-remixicon/lib/icons/Message2Line.svelte","../../node_modules/svelte-remixicon/lib/icons/PauseFill.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayCircleLine.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayFill.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayListFill.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayListLine.svelte","../../node_modules/svelte-remixicon/lib/icons/PlayMiniLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RadioButtonLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RadioFill.svelte","../../node_modules/svelte-remixicon/lib/icons/RadioLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RefreshLine.svelte","../../node_modules/svelte-remixicon/lib/icons/RepeatOneLine.svelte","../../node_modules/svelte-remixicon/lib/icons/SearchLine.svelte","../../node_modules/svelte-remixicon/lib/icons/ShuffleLine.svelte","../../node_modules/svelte-remixicon/lib/icons/SkipBackFill.svelte","../../node_modules/svelte-remixicon/lib/icons/SkipForwardFill.svelte","../../node_modules/svelte-remixicon/lib/icons/SkipForwardMiniFill.svelte","../../node_modules/svelte-remixicon/lib/icons/SortDesc.svelte","../../node_modules/svelte-remixicon/lib/icons/StarSFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ThumbUpFill.svelte","../../node_modules/svelte-remixicon/lib/icons/ThumbUpLine.svelte","../../node_modules/js-cookie/src/js.cookie.js","../../src/utils/emoji.js","../../src/utils/common.js","../../src/components/base/Button.svelte","../../src/components/base/NavBar.svelte","../../src/components/base/Divider.svelte","../../src/components/base/Input.svelte","../../src/components/base/Progress.svelte","../../src/store/common.js","../../src/components/base/TabBar.svelte","../../src/components/base/Switch.svelte","../../src/components/base/Cell.svelte","../../src/components/base/Radio.svelte","../../src/components/base/Tip.svelte","../../src/components/base/Pagination.svelte","../../src/components/base/Title.svelte","../../src/components/base/Picker.svelte","../../src/store/play.js","../../src/components/Lyric.svelte","../../node_modules/svelte/transition/index.mjs","../../node_modules/svelte-lazy/src/components/Placeholder.svelte","../../node_modules/svelte-lazy/src/index.svelte","../../src/store/user.js","../../src/components/Song.svelte","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/helpers/normalizeHeaderName.js","../../node_modules/axios/lib/core/enhanceError.js","../../node_modules/axios/lib/core/createError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/defaults.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/Cancel.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/index.js","../../src/utils/request.js","../../src/api/song.js","../../src/components/SongList.svelte","../../src/components/Play.svelte","../../src/components/MiniPlay.svelte","../../src/components/Loading.svelte","../../src/api/user.js","../../src/components/TopTitle.svelte","../../src/store/playList.js","../../src/components/Album.svelte","../../src/components/ListGrid.svelte","../../src/components/Singer.svelte","../../src/api/playlist.js","../../src/api/songer.js","../../src/pages/Love.svelte","../../src/pages/Discover.svelte","../../src/pages/Mine.svelte","../../src/pages/Home.svelte","../../src/pages/PlayListDetail.svelte","../../node_modules/crypto-js/core.js","../../node_modules/crypto-js/md5.js","../../node_modules/svelte-qrcode/src/lib/qrcode/index.js","../../node_modules/svelte-qrcode/src/lib/index.svelte","../../src/api/auth.js","../../src/pages/Login.svelte","../../src/pages/TodayListDetail.svelte","../../src/pages/LoveListDetail.svelte","../../src/pages/MyAllPlayList.svelte","../../src/pages/Setting.svelte","../../src/api/others.js","../../src/pages/Search.svelte","../../src/pages/Artist.svelte","../../src/pages/BrSelect.svelte","../../src/pages/MusicComment.svelte","../../src/pages/AllCollectSongers.svelte","../../src/pages/SongerDesc.svelte","../../src/pages/MoreSonger.svelte","../../src/pages/MoreList.svelte","../../src/pages/MoreSong.svelte","../../src/pages/About.svelte","../../src/pages/Version.svelte","../../src/routes.js","../../src/App.svelte","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n    // @ts-ignore\n    for (const k in src)\n        tar[k] = src[k];\n    return tar;\n}\nfunction is_promise(value) {\n    return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n    element.__svelte_meta = {\n        loc: { file, line, column, char }\n    };\n}\nfunction run(fn) {\n    return fn();\n}\nfunction blank_object() {\n    return Object.create(null);\n}\nfunction run_all(fns) {\n    fns.forEach(run);\n}\nfunction is_function(thing) {\n    return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n    return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n    if (!src_url_equal_anchor) {\n        src_url_equal_anchor = document.createElement('a');\n    }\n    src_url_equal_anchor.href = url;\n    return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n    return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n    return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n    if (store != null && typeof store.subscribe !== 'function') {\n        throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n    }\n}\nfunction subscribe(store, ...callbacks) {\n    if (store == null) {\n        return noop;\n    }\n    const unsub = store.subscribe(...callbacks);\n    return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n    let value;\n    subscribe(store, _ => value = _)();\n    return value;\n}\nfunction component_subscribe(component, store, callback) {\n    component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n    if (definition) {\n        const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n        return definition[0](slot_ctx);\n    }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n    return definition[1] && fn\n        ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n        : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n    if (definition[2] && fn) {\n        const lets = definition[2](fn(dirty));\n        if ($$scope.dirty === undefined) {\n            return lets;\n        }\n        if (typeof lets === 'object') {\n            const merged = [];\n            const len = Math.max($$scope.dirty.length, lets.length);\n            for (let i = 0; i < len; i += 1) {\n                merged[i] = $$scope.dirty[i] | lets[i];\n            }\n            return merged;\n        }\n        return $$scope.dirty | lets;\n    }\n    return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n    if (slot_changes) {\n        const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n        slot.p(slot_context, slot_changes);\n    }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n    const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n    update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n    if ($$scope.ctx.length > 32) {\n        const dirty = [];\n        const length = $$scope.ctx.length / 32;\n        for (let i = 0; i < length; i++) {\n            dirty[i] = -1;\n        }\n        return dirty;\n    }\n    return -1;\n}\nfunction exclude_internal_props(props) {\n    const result = {};\n    for (const k in props)\n        if (k[0] !== '$')\n            result[k] = props[k];\n    return result;\n}\nfunction compute_rest_props(props, keys) {\n    const rest = {};\n    keys = new Set(keys);\n    for (const k in props)\n        if (!keys.has(k) && k[0] !== '$')\n            rest[k] = props[k];\n    return rest;\n}\nfunction compute_slots(slots) {\n    const result = {};\n    for (const key in slots) {\n        result[key] = true;\n    }\n    return result;\n}\nfunction once(fn) {\n    let ran = false;\n    return function (...args) {\n        if (ran)\n            return;\n        ran = true;\n        fn.call(this, ...args);\n    };\n}\nfunction null_to_empty(value) {\n    return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n    store.set(value);\n    return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n    return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n    ? () => window.performance.now()\n    : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n    now = fn;\n}\nfunction set_raf(fn) {\n    raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n    tasks.forEach(task => {\n        if (!task.c(now)) {\n            tasks.delete(task);\n            task.f();\n        }\n    });\n    if (tasks.size !== 0)\n        raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n    tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n    let task;\n    if (tasks.size === 0)\n        raf(run_tasks);\n    return {\n        promise: new Promise(fulfill => {\n            tasks.add(task = { c: callback, f: fulfill });\n        }),\n        abort() {\n            tasks.delete(task);\n        }\n    };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n    is_hydrating = true;\n}\nfunction end_hydrating() {\n    is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n    // Return first index of value larger than input value in the range [low, high)\n    while (low < high) {\n        const mid = low + ((high - low) >> 1);\n        if (key(mid) <= value) {\n            low = mid + 1;\n        }\n        else {\n            high = mid;\n        }\n    }\n    return low;\n}\nfunction init_hydrate(target) {\n    if (target.hydrate_init)\n        return;\n    target.hydrate_init = true;\n    // We know that all children have claim_order values since the unclaimed have been detached if target is not <head>\n    let children = target.childNodes;\n    // If target is <head>, there may be children without claim_order\n    if (target.nodeName === 'HEAD') {\n        const myChildren = [];\n        for (let i = 0; i < children.length; i++) {\n            const node = children[i];\n            if (node.claim_order !== undefined) {\n                myChildren.push(node);\n            }\n        }\n        children = myChildren;\n    }\n    /*\n    * Reorder claimed children optimally.\n    * We can reorder claimed children optimally by finding the longest subsequence of\n    * nodes that are already claimed in order and only moving the rest. The longest\n    * subsequence subsequence of nodes that are claimed in order can be found by\n    * computing the longest increasing subsequence of .claim_order values.\n    *\n    * This algorithm is optimal in generating the least amount of reorder operations\n    * possible.\n    *\n    * Proof:\n    * We know that, given a set of reordering operations, the nodes that do not move\n    * always form an increasing subsequence, since they do not move among each other\n    * meaning that they must be already ordered among each other. Thus, the maximal\n    * set of nodes that do not move form a longest increasing subsequence.\n    */\n    // Compute longest increasing subsequence\n    // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n    const m = new Int32Array(children.length + 1);\n    // Predecessor indices + 1\n    const p = new Int32Array(children.length);\n    m[0] = -1;\n    let longest = 0;\n    for (let i = 0; i < children.length; i++) {\n        const current = children[i].claim_order;\n        // Find the largest subsequence length such that it ends in a value less than our current value\n        // upper_bound returns first greater value, so we subtract one\n        // with fast path for when we are on the current longest subsequence\n        const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n        p[i] = m[seqLen] + 1;\n        const newLen = seqLen + 1;\n        // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n        m[newLen] = i;\n        longest = Math.max(newLen, longest);\n    }\n    // The longest increasing subsequence of nodes (initially reversed)\n    const lis = [];\n    // The rest of the nodes, nodes that will be moved\n    const toMove = [];\n    let last = children.length - 1;\n    for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n        lis.push(children[cur - 1]);\n        for (; last >= cur; last--) {\n            toMove.push(children[last]);\n        }\n        last--;\n    }\n    for (; last >= 0; last--) {\n        toMove.push(children[last]);\n    }\n    lis.reverse();\n    // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n    toMove.sort((a, b) => a.claim_order - b.claim_order);\n    // Finally, we move the nodes\n    for (let i = 0, j = 0; i < toMove.length; i++) {\n        while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n            j++;\n        }\n        const anchor = j < lis.length ? lis[j] : null;\n        target.insertBefore(toMove[i], anchor);\n    }\n}\nfunction append(target, node) {\n    target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n    const append_styles_to = get_root_for_style(target);\n    if (!append_styles_to.getElementById(style_sheet_id)) {\n        const style = element('style');\n        style.id = style_sheet_id;\n        style.textContent = styles;\n        append_stylesheet(append_styles_to, style);\n    }\n}\nfunction get_root_for_style(node) {\n    if (!node)\n        return document;\n    const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n    if (root && root.host) {\n        return root;\n    }\n    return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n    const style_element = element('style');\n    append_stylesheet(get_root_for_style(node), style_element);\n    return style_element;\n}\nfunction append_stylesheet(node, style) {\n    append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n    if (is_hydrating) {\n        init_hydrate(target);\n        if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n            target.actual_end_child = target.firstChild;\n        }\n        // Skip nodes of undefined ordering\n        while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n            target.actual_end_child = target.actual_end_child.nextSibling;\n        }\n        if (node !== target.actual_end_child) {\n            // We only insert if the ordering of this node should be modified or the parent node is not target\n            if (node.claim_order !== undefined || node.parentNode !== target) {\n                target.insertBefore(node, target.actual_end_child);\n            }\n        }\n        else {\n            target.actual_end_child = node.nextSibling;\n        }\n    }\n    else if (node.parentNode !== target || node.nextSibling !== null) {\n        target.appendChild(node);\n    }\n}\nfunction insert(target, node, anchor) {\n    target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n    if (is_hydrating && !anchor) {\n        append_hydration(target, node);\n    }\n    else if (node.parentNode !== target || node.nextSibling != anchor) {\n        target.insertBefore(node, anchor || null);\n    }\n}\nfunction detach(node) {\n    node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n    for (let i = 0; i < iterations.length; i += 1) {\n        if (iterations[i])\n            iterations[i].d(detaching);\n    }\n}\nfunction element(name) {\n    return document.createElement(name);\n}\nfunction element_is(name, is) {\n    return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n    const target = {};\n    for (const k in obj) {\n        if (has_prop(obj, k)\n            // @ts-ignore\n            && exclude.indexOf(k) === -1) {\n            // @ts-ignore\n            target[k] = obj[k];\n        }\n    }\n    return target;\n}\nfunction svg_element(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n    return document.createTextNode(data);\n}\nfunction space() {\n    return text(' ');\n}\nfunction empty() {\n    return text('');\n}\nfunction listen(node, event, handler, options) {\n    node.addEventListener(event, handler, options);\n    return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n    return function (event) {\n        event.preventDefault();\n        // @ts-ignore\n        return fn.call(this, event);\n    };\n}\nfunction stop_propagation(fn) {\n    return function (event) {\n        event.stopPropagation();\n        // @ts-ignore\n        return fn.call(this, event);\n    };\n}\nfunction self(fn) {\n    return function (event) {\n        // @ts-ignore\n        if (event.target === this)\n            fn.call(this, event);\n    };\n}\nfunction trusted(fn) {\n    return function (event) {\n        // @ts-ignore\n        if (event.isTrusted)\n            fn.call(this, event);\n    };\n}\nfunction attr(node, attribute, value) {\n    if (value == null)\n        node.removeAttribute(attribute);\n    else if (node.getAttribute(attribute) !== value)\n        node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n    // @ts-ignore\n    const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n    for (const key in attributes) {\n        if (attributes[key] == null) {\n            node.removeAttribute(key);\n        }\n        else if (key === 'style') {\n            node.style.cssText = attributes[key];\n        }\n        else if (key === '__value') {\n            node.value = node[key] = attributes[key];\n        }\n        else if (descriptors[key] && descriptors[key].set) {\n            node[key] = attributes[key];\n        }\n        else {\n            attr(node, key, attributes[key]);\n        }\n    }\n}\nfunction set_svg_attributes(node, attributes) {\n    for (const key in attributes) {\n        attr(node, key, attributes[key]);\n    }\n}\nfunction set_custom_element_data(node, prop, value) {\n    if (prop in node) {\n        node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n    }\n    else {\n        attr(node, prop, value);\n    }\n}\nfunction xlink_attr(node, attribute, value) {\n    node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n    const value = new Set();\n    for (let i = 0; i < group.length; i += 1) {\n        if (group[i].checked)\n            value.add(group[i].__value);\n    }\n    if (!checked) {\n        value.delete(__value);\n    }\n    return Array.from(value);\n}\nfunction to_number(value) {\n    return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n    const array = [];\n    for (let i = 0; i < ranges.length; i += 1) {\n        array.push({ start: ranges.start(i), end: ranges.end(i) });\n    }\n    return array;\n}\nfunction children(element) {\n    return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n    if (nodes.claim_info === undefined) {\n        nodes.claim_info = { last_index: 0, total_claimed: 0 };\n    }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n    // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n    init_claim_info(nodes);\n    const resultNode = (() => {\n        // We first try to find an element after the previous one\n        for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n            const node = nodes[i];\n            if (predicate(node)) {\n                const replacement = processNode(node);\n                if (replacement === undefined) {\n                    nodes.splice(i, 1);\n                }\n                else {\n                    nodes[i] = replacement;\n                }\n                if (!dontUpdateLastIndex) {\n                    nodes.claim_info.last_index = i;\n                }\n                return node;\n            }\n        }\n        // Otherwise, we try to find one before\n        // We iterate in reverse so that we don't go too far back\n        for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n            const node = nodes[i];\n            if (predicate(node)) {\n                const replacement = processNode(node);\n                if (replacement === undefined) {\n                    nodes.splice(i, 1);\n                }\n                else {\n                    nodes[i] = replacement;\n                }\n                if (!dontUpdateLastIndex) {\n                    nodes.claim_info.last_index = i;\n                }\n                else if (replacement === undefined) {\n                    // Since we spliced before the last_index, we decrease it\n                    nodes.claim_info.last_index--;\n                }\n                return node;\n            }\n        }\n        // If we can't find any matching node, we create a new one\n        return createNode();\n    })();\n    resultNode.claim_order = nodes.claim_info.total_claimed;\n    nodes.claim_info.total_claimed += 1;\n    return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n    return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n        const remove = [];\n        for (let j = 0; j < node.attributes.length; j++) {\n            const attribute = node.attributes[j];\n            if (!attributes[attribute.name]) {\n                remove.push(attribute.name);\n            }\n        }\n        remove.forEach(v => node.removeAttribute(v));\n        return undefined;\n    }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n    return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n    return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n    return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n        const dataStr = '' + data;\n        if (node.data.startsWith(dataStr)) {\n            if (node.data.length !== dataStr.length) {\n                return node.splitText(dataStr.length);\n            }\n        }\n        else {\n            node.data = dataStr;\n        }\n    }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n    );\n}\nfunction claim_space(nodes) {\n    return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n    for (let i = start; i < nodes.length; i += 1) {\n        const node = nodes[i];\n        if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n            return i;\n        }\n    }\n    return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n    // find html opening tag\n    const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n    const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n    if (start_index === end_index) {\n        return new HtmlTagHydration();\n    }\n    init_claim_info(nodes);\n    const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n    detach(html_tag_nodes[0]);\n    detach(html_tag_nodes[html_tag_nodes.length - 1]);\n    const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n    for (const n of claimed_nodes) {\n        n.claim_order = nodes.claim_info.total_claimed;\n        nodes.claim_info.total_claimed += 1;\n    }\n    return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n    data = '' + data;\n    if (text.wholeText !== data)\n        text.data = data;\n}\nfunction set_input_value(input, value) {\n    input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n    try {\n        input.type = type;\n    }\n    catch (e) {\n        // do nothing\n    }\n}\nfunction set_style(node, key, value, important) {\n    node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n    for (let i = 0; i < select.options.length; i += 1) {\n        const option = select.options[i];\n        if (option.__value === value) {\n            option.selected = true;\n            return;\n        }\n    }\n    select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n    for (let i = 0; i < select.options.length; i += 1) {\n        const option = select.options[i];\n        option.selected = ~value.indexOf(option.__value);\n    }\n}\nfunction select_value(select) {\n    const selected_option = select.querySelector(':checked') || select.options[0];\n    return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n    return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n    if (crossorigin === undefined) {\n        crossorigin = false;\n        try {\n            if (typeof window !== 'undefined' && window.parent) {\n                void window.parent.document;\n            }\n        }\n        catch (error) {\n            crossorigin = true;\n        }\n    }\n    return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n    const computed_style = getComputedStyle(node);\n    if (computed_style.position === 'static') {\n        node.style.position = 'relative';\n    }\n    const iframe = element('iframe');\n    iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n        'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n    iframe.setAttribute('aria-hidden', 'true');\n    iframe.tabIndex = -1;\n    const crossorigin = is_crossorigin();\n    let unsubscribe;\n    if (crossorigin) {\n        iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n        unsubscribe = listen(window, 'message', (event) => {\n            if (event.source === iframe.contentWindow)\n                fn();\n        });\n    }\n    else {\n        iframe.src = 'about:blank';\n        iframe.onload = () => {\n            unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n        };\n    }\n    append(node, iframe);\n    return () => {\n        if (crossorigin) {\n            unsubscribe();\n        }\n        else if (unsubscribe && iframe.contentWindow) {\n            unsubscribe();\n        }\n        detach(iframe);\n    };\n}\nfunction toggle_class(element, name, toggle) {\n    element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n    const e = document.createEvent('CustomEvent');\n    e.initCustomEvent(type, bubbles, false, detail);\n    return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n    return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n    constructor() {\n        this.e = this.n = null;\n    }\n    c(html) {\n        this.h(html);\n    }\n    m(html, target, anchor = null) {\n        if (!this.e) {\n            this.e = element(target.nodeName);\n            this.t = target;\n            this.c(html);\n        }\n        this.i(anchor);\n    }\n    h(html) {\n        this.e.innerHTML = html;\n        this.n = Array.from(this.e.childNodes);\n    }\n    i(anchor) {\n        for (let i = 0; i < this.n.length; i += 1) {\n            insert(this.t, this.n[i], anchor);\n        }\n    }\n    p(html) {\n        this.d();\n        this.h(html);\n        this.i(this.a);\n    }\n    d() {\n        this.n.forEach(detach);\n    }\n}\nclass HtmlTagHydration extends HtmlTag {\n    constructor(claimed_nodes) {\n        super();\n        this.e = this.n = null;\n        this.l = claimed_nodes;\n    }\n    c(html) {\n        if (this.l) {\n            this.n = this.l;\n        }\n        else {\n            super.c(html);\n        }\n    }\n    i(anchor) {\n        for (let i = 0; i < this.n.length; i += 1) {\n            insert_hydration(this.t, this.n[i], anchor);\n        }\n    }\n}\nfunction attribute_to_object(attributes) {\n    const result = {};\n    for (const attribute of attributes) {\n        result[attribute.name] = attribute.value;\n    }\n    return result;\n}\nfunction get_custom_elements_slots(element) {\n    const result = {};\n    element.childNodes.forEach((node) => {\n        result[node.slot || 'default'] = true;\n    });\n    return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n    let hash = 5381;\n    let i = str.length;\n    while (i--)\n        hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n    return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n    const step = 16.666 / duration;\n    let keyframes = '{\\n';\n    for (let p = 0; p <= 1; p += step) {\n        const t = a + (b - a) * ease(p);\n        keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n    }\n    const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n    const name = `__svelte_${hash(rule)}_${uid}`;\n    const doc = get_root_for_style(node);\n    active_docs.add(doc);\n    const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n    const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n    if (!current_rules[name]) {\n        current_rules[name] = true;\n        stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n    }\n    const animation = node.style.animation || '';\n    node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n    active += 1;\n    return name;\n}\nfunction delete_rule(node, name) {\n    const previous = (node.style.animation || '').split(', ');\n    const next = previous.filter(name\n        ? anim => anim.indexOf(name) < 0 // remove specific animation\n        : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n    );\n    const deleted = previous.length - next.length;\n    if (deleted) {\n        node.style.animation = next.join(', ');\n        active -= deleted;\n        if (!active)\n            clear_rules();\n    }\n}\nfunction clear_rules() {\n    raf(() => {\n        if (active)\n            return;\n        active_docs.forEach(doc => {\n            const stylesheet = doc.__svelte_stylesheet;\n            let i = stylesheet.cssRules.length;\n            while (i--)\n                stylesheet.deleteRule(i);\n            doc.__svelte_rules = {};\n        });\n        active_docs.clear();\n    });\n}\n\nfunction create_animation(node, from, fn, params) {\n    if (!from)\n        return noop;\n    const to = node.getBoundingClientRect();\n    if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n        return noop;\n    const { delay = 0, duration = 300, easing = identity, \n    // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n    start: start_time = now() + delay, \n    // @ts-ignore todo:\n    end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n    let running = true;\n    let started = false;\n    let name;\n    function start() {\n        if (css) {\n            name = create_rule(node, 0, 1, duration, delay, easing, css);\n        }\n        if (!delay) {\n            started = true;\n        }\n    }\n    function stop() {\n        if (css)\n            delete_rule(node, name);\n        running = false;\n    }\n    loop(now => {\n        if (!started && now >= start_time) {\n            started = true;\n        }\n        if (started && now >= end) {\n            tick(1, 0);\n            stop();\n        }\n        if (!running) {\n            return false;\n        }\n        if (started) {\n            const p = now - start_time;\n            const t = 0 + 1 * easing(p / duration);\n            tick(t, 1 - t);\n        }\n        return true;\n    });\n    start();\n    tick(0, 1);\n    return stop;\n}\nfunction fix_position(node) {\n    const style = getComputedStyle(node);\n    if (style.position !== 'absolute' && style.position !== 'fixed') {\n        const { width, height } = style;\n        const a = node.getBoundingClientRect();\n        node.style.position = 'absolute';\n        node.style.width = width;\n        node.style.height = height;\n        add_transform(node, a);\n    }\n}\nfunction add_transform(node, a) {\n    const b = node.getBoundingClientRect();\n    if (a.left !== b.left || a.top !== b.top) {\n        const style = getComputedStyle(node);\n        const transform = style.transform === 'none' ? '' : style.transform;\n        node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n    }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n    current_component = component;\n}\nfunction get_current_component() {\n    if (!current_component)\n        throw new Error('Function called outside component initialization');\n    return current_component;\n}\nfunction beforeUpdate(fn) {\n    get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n    get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n    get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n    get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n    const component = get_current_component();\n    return (type, detail) => {\n        const callbacks = component.$$.callbacks[type];\n        if (callbacks) {\n            // TODO are there situations where events could be dispatched\n            // in a server (non-DOM) environment?\n            const event = custom_event(type, detail);\n            callbacks.slice().forEach(fn => {\n                fn.call(component, event);\n            });\n        }\n    };\n}\nfunction setContext(key, context) {\n    get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n    return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n    return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n    return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n    const callbacks = component.$$.callbacks[event.type];\n    if (callbacks) {\n        // @ts-ignore\n        callbacks.slice().forEach(fn => fn.call(this, event));\n    }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n    if (!update_scheduled) {\n        update_scheduled = true;\n        resolved_promise.then(flush);\n    }\n}\nfunction tick() {\n    schedule_update();\n    return resolved_promise;\n}\nfunction add_render_callback(fn) {\n    render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n    flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n    if (flushing)\n        return;\n    flushing = true;\n    do {\n        // first, call beforeUpdate functions\n        // and update components\n        for (let i = 0; i < dirty_components.length; i += 1) {\n            const component = dirty_components[i];\n            set_current_component(component);\n            update(component.$$);\n        }\n        set_current_component(null);\n        dirty_components.length = 0;\n        while (binding_callbacks.length)\n            binding_callbacks.pop()();\n        // then, once components are updated, call\n        // afterUpdate functions. This may cause\n        // subsequent updates...\n        for (let i = 0; i < render_callbacks.length; i += 1) {\n            const callback = render_callbacks[i];\n            if (!seen_callbacks.has(callback)) {\n                // ...so guard against infinite loops\n                seen_callbacks.add(callback);\n                callback();\n            }\n        }\n        render_callbacks.length = 0;\n    } while (dirty_components.length);\n    while (flush_callbacks.length) {\n        flush_callbacks.pop()();\n    }\n    update_scheduled = false;\n    flushing = false;\n    seen_callbacks.clear();\n}\nfunction update($$) {\n    if ($$.fragment !== null) {\n        $$.update();\n        run_all($$.before_update);\n        const dirty = $$.dirty;\n        $$.dirty = [-1];\n        $$.fragment && $$.fragment.p($$.ctx, dirty);\n        $$.after_update.forEach(add_render_callback);\n    }\n}\n\nlet promise;\nfunction wait() {\n    if (!promise) {\n        promise = Promise.resolve();\n        promise.then(() => {\n            promise = null;\n        });\n    }\n    return promise;\n}\nfunction dispatch(node, direction, kind) {\n    node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n    outros = {\n        r: 0,\n        c: [],\n        p: outros // parent group\n    };\n}\nfunction check_outros() {\n    if (!outros.r) {\n        run_all(outros.c);\n    }\n    outros = outros.p;\n}\nfunction transition_in(block, local) {\n    if (block && block.i) {\n        outroing.delete(block);\n        block.i(local);\n    }\n}\nfunction transition_out(block, local, detach, callback) {\n    if (block && block.o) {\n        if (outroing.has(block))\n            return;\n        outroing.add(block);\n        outros.c.push(() => {\n            outroing.delete(block);\n            if (callback) {\n                if (detach)\n                    block.d(1);\n                callback();\n            }\n        });\n        block.o(local);\n    }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n    let config = fn(node, params);\n    let running = false;\n    let animation_name;\n    let task;\n    let uid = 0;\n    function cleanup() {\n        if (animation_name)\n            delete_rule(node, animation_name);\n    }\n    function go() {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        if (css)\n            animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n        tick(0, 1);\n        const start_time = now() + delay;\n        const end_time = start_time + duration;\n        if (task)\n            task.abort();\n        running = true;\n        add_render_callback(() => dispatch(node, true, 'start'));\n        task = loop(now => {\n            if (running) {\n                if (now >= end_time) {\n                    tick(1, 0);\n                    dispatch(node, true, 'end');\n                    cleanup();\n                    return running = false;\n                }\n                if (now >= start_time) {\n                    const t = easing((now - start_time) / duration);\n                    tick(t, 1 - t);\n                }\n            }\n            return running;\n        });\n    }\n    let started = false;\n    return {\n        start() {\n            if (started)\n                return;\n            started = true;\n            delete_rule(node);\n            if (is_function(config)) {\n                config = config();\n                wait().then(go);\n            }\n            else {\n                go();\n            }\n        },\n        invalidate() {\n            started = false;\n        },\n        end() {\n            if (running) {\n                cleanup();\n                running = false;\n            }\n        }\n    };\n}\nfunction create_out_transition(node, fn, params) {\n    let config = fn(node, params);\n    let running = true;\n    let animation_name;\n    const group = outros;\n    group.r += 1;\n    function go() {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        if (css)\n            animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n        const start_time = now() + delay;\n        const end_time = start_time + duration;\n        add_render_callback(() => dispatch(node, false, 'start'));\n        loop(now => {\n            if (running) {\n                if (now >= end_time) {\n                    tick(0, 1);\n                    dispatch(node, false, 'end');\n                    if (!--group.r) {\n                        // this will result in `end()` being called,\n                        // so we don't need to clean up here\n                        run_all(group.c);\n                    }\n                    return false;\n                }\n                if (now >= start_time) {\n                    const t = easing((now - start_time) / duration);\n                    tick(1 - t, t);\n                }\n            }\n            return running;\n        });\n    }\n    if (is_function(config)) {\n        wait().then(() => {\n            // @ts-ignore\n            config = config();\n            go();\n        });\n    }\n    else {\n        go();\n    }\n    return {\n        end(reset) {\n            if (reset && config.tick) {\n                config.tick(1, 0);\n            }\n            if (running) {\n                if (animation_name)\n                    delete_rule(node, animation_name);\n                running = false;\n            }\n        }\n    };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n    let config = fn(node, params);\n    let t = intro ? 0 : 1;\n    let running_program = null;\n    let pending_program = null;\n    let animation_name = null;\n    function clear_animation() {\n        if (animation_name)\n            delete_rule(node, animation_name);\n    }\n    function init(program, duration) {\n        const d = (program.b - t);\n        duration *= Math.abs(d);\n        return {\n            a: t,\n            b: program.b,\n            d,\n            duration,\n            start: program.start,\n            end: program.start + duration,\n            group: program.group\n        };\n    }\n    function go(b) {\n        const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n        const program = {\n            start: now() + delay,\n            b\n        };\n        if (!b) {\n            // @ts-ignore todo: improve typings\n            program.group = outros;\n            outros.r += 1;\n        }\n        if (running_program || pending_program) {\n            pending_program = program;\n        }\n        else {\n            // if this is an intro, and there's a delay, we need to do\n            // an initial tick and/or apply CSS animation immediately\n            if (css) {\n                clear_animation();\n                animation_name = create_rule(node, t, b, duration, delay, easing, css);\n            }\n            if (b)\n                tick(0, 1);\n            running_program = init(program, duration);\n            add_render_callback(() => dispatch(node, b, 'start'));\n            loop(now => {\n                if (pending_program && now > pending_program.start) {\n                    running_program = init(pending_program, duration);\n                    pending_program = null;\n                    dispatch(node, running_program.b, 'start');\n                    if (css) {\n                        clear_animation();\n                        animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n                    }\n                }\n                if (running_program) {\n                    if (now >= running_program.end) {\n                        tick(t = running_program.b, 1 - t);\n                        dispatch(node, running_program.b, 'end');\n                        if (!pending_program) {\n                            // we're done\n                            if (running_program.b) {\n                                // intro — we can tidy up immediately\n                                clear_animation();\n                            }\n                            else {\n                                // outro — needs to be coordinated\n                                if (!--running_program.group.r)\n                                    run_all(running_program.group.c);\n                            }\n                        }\n                        running_program = null;\n                    }\n                    else if (now >= running_program.start) {\n                        const p = now - running_program.start;\n                        t = running_program.a + running_program.d * easing(p / running_program.duration);\n                        tick(t, 1 - t);\n                    }\n                }\n                return !!(running_program || pending_program);\n            });\n        }\n    }\n    return {\n        run(b) {\n            if (is_function(config)) {\n                wait().then(() => {\n                    // @ts-ignore\n                    config = config();\n                    go(b);\n                });\n            }\n            else {\n                go(b);\n            }\n        },\n        end() {\n            clear_animation();\n            running_program = pending_program = null;\n        }\n    };\n}\n\nfunction handle_promise(promise, info) {\n    const token = info.token = {};\n    function update(type, index, key, value) {\n        if (info.token !== token)\n            return;\n        info.resolved = value;\n        let child_ctx = info.ctx;\n        if (key !== undefined) {\n            child_ctx = child_ctx.slice();\n            child_ctx[key] = value;\n        }\n        const block = type && (info.current = type)(child_ctx);\n        let needs_flush = false;\n        if (info.block) {\n            if (info.blocks) {\n                info.blocks.forEach((block, i) => {\n                    if (i !== index && block) {\n                        group_outros();\n                        transition_out(block, 1, 1, () => {\n                            if (info.blocks[i] === block) {\n                                info.blocks[i] = null;\n                            }\n                        });\n                        check_outros();\n                    }\n                });\n            }\n            else {\n                info.block.d(1);\n            }\n            block.c();\n            transition_in(block, 1);\n            block.m(info.mount(), info.anchor);\n            needs_flush = true;\n        }\n        info.block = block;\n        if (info.blocks)\n            info.blocks[index] = block;\n        if (needs_flush) {\n            flush();\n        }\n    }\n    if (is_promise(promise)) {\n        const current_component = get_current_component();\n        promise.then(value => {\n            set_current_component(current_component);\n            update(info.then, 1, info.value, value);\n            set_current_component(null);\n        }, error => {\n            set_current_component(current_component);\n            update(info.catch, 2, info.error, error);\n            set_current_component(null);\n            if (!info.hasCatch) {\n                throw error;\n            }\n        });\n        // if we previously had a then/catch block, destroy it\n        if (info.current !== info.pending) {\n            update(info.pending, 0);\n            return true;\n        }\n    }\n    else {\n        if (info.current !== info.then) {\n            update(info.then, 1, info.value, promise);\n            return true;\n        }\n        info.resolved = promise;\n    }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n    const child_ctx = ctx.slice();\n    const { resolved } = info;\n    if (info.current === info.then) {\n        child_ctx[info.value] = resolved;\n    }\n    if (info.current === info.catch) {\n        child_ctx[info.error] = resolved;\n    }\n    info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n    ? window\n    : typeof globalThis !== 'undefined'\n        ? globalThis\n        : global);\n\nfunction destroy_block(block, lookup) {\n    block.d(1);\n    lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n    transition_out(block, 1, 1, () => {\n        lookup.delete(block.key);\n    });\n}\nfunction fix_and_destroy_block(block, lookup) {\n    block.f();\n    destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n    block.f();\n    outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n    let o = old_blocks.length;\n    let n = list.length;\n    let i = o;\n    const old_indexes = {};\n    while (i--)\n        old_indexes[old_blocks[i].key] = i;\n    const new_blocks = [];\n    const new_lookup = new Map();\n    const deltas = new Map();\n    i = n;\n    while (i--) {\n        const child_ctx = get_context(ctx, list, i);\n        const key = get_key(child_ctx);\n        let block = lookup.get(key);\n        if (!block) {\n            block = create_each_block(key, child_ctx);\n            block.c();\n        }\n        else if (dynamic) {\n            block.p(child_ctx, dirty);\n        }\n        new_lookup.set(key, new_blocks[i] = block);\n        if (key in old_indexes)\n            deltas.set(key, Math.abs(i - old_indexes[key]));\n    }\n    const will_move = new Set();\n    const did_move = new Set();\n    function insert(block) {\n        transition_in(block, 1);\n        block.m(node, next);\n        lookup.set(block.key, block);\n        next = block.first;\n        n--;\n    }\n    while (o && n) {\n        const new_block = new_blocks[n - 1];\n        const old_block = old_blocks[o - 1];\n        const new_key = new_block.key;\n        const old_key = old_block.key;\n        if (new_block === old_block) {\n            // do nothing\n            next = new_block.first;\n            o--;\n            n--;\n        }\n        else if (!new_lookup.has(old_key)) {\n            // remove old block\n            destroy(old_block, lookup);\n            o--;\n        }\n        else if (!lookup.has(new_key) || will_move.has(new_key)) {\n            insert(new_block);\n        }\n        else if (did_move.has(old_key)) {\n            o--;\n        }\n        else if (deltas.get(new_key) > deltas.get(old_key)) {\n            did_move.add(new_key);\n            insert(new_block);\n        }\n        else {\n            will_move.add(old_key);\n            o--;\n        }\n    }\n    while (o--) {\n        const old_block = old_blocks[o];\n        if (!new_lookup.has(old_block.key))\n            destroy(old_block, lookup);\n    }\n    while (n)\n        insert(new_blocks[n - 1]);\n    return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n    const keys = new Set();\n    for (let i = 0; i < list.length; i++) {\n        const key = get_key(get_context(ctx, list, i));\n        if (keys.has(key)) {\n            throw new Error('Cannot have duplicate keys in a keyed each');\n        }\n        keys.add(key);\n    }\n}\n\nfunction get_spread_update(levels, updates) {\n    const update = {};\n    const to_null_out = {};\n    const accounted_for = { $$scope: 1 };\n    let i = levels.length;\n    while (i--) {\n        const o = levels[i];\n        const n = updates[i];\n        if (n) {\n            for (const key in o) {\n                if (!(key in n))\n                    to_null_out[key] = 1;\n            }\n            for (const key in n) {\n                if (!accounted_for[key]) {\n                    update[key] = n[key];\n                    accounted_for[key] = 1;\n                }\n            }\n            levels[i] = n;\n        }\n        else {\n            for (const key in o) {\n                accounted_for[key] = 1;\n            }\n        }\n    }\n    for (const key in to_null_out) {\n        if (!(key in update))\n            update[key] = undefined;\n    }\n    return update;\n}\nfunction get_spread_object(spread_props) {\n    return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n    'allowfullscreen',\n    'allowpaymentrequest',\n    'async',\n    'autofocus',\n    'autoplay',\n    'checked',\n    'controls',\n    'default',\n    'defer',\n    'disabled',\n    'formnovalidate',\n    'hidden',\n    'ismap',\n    'loop',\n    'multiple',\n    'muted',\n    'nomodule',\n    'novalidate',\n    'open',\n    'playsinline',\n    'readonly',\n    'required',\n    'reversed',\n    'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n    const attributes = Object.assign({}, ...args);\n    if (classes_to_add) {\n        if (attributes.class == null) {\n            attributes.class = classes_to_add;\n        }\n        else {\n            attributes.class += ' ' + classes_to_add;\n        }\n    }\n    let str = '';\n    Object.keys(attributes).forEach(name => {\n        if (invalid_attribute_name_character.test(name))\n            return;\n        const value = attributes[name];\n        if (value === true)\n            str += ' ' + name;\n        else if (boolean_attributes.has(name.toLowerCase())) {\n            if (value)\n                str += ' ' + name;\n        }\n        else if (value != null) {\n            str += ` ${name}=\"${value}\"`;\n        }\n    });\n    return str;\n}\nconst escaped = {\n    '\"': '&quot;',\n    \"'\": '&#39;',\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;'\n};\nfunction escape(html) {\n    return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n    return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n    const result = {};\n    for (const key in obj) {\n        result[key] = escape_attribute_value(obj[key]);\n    }\n    return result;\n}\nfunction each(items, fn) {\n    let str = '';\n    for (let i = 0; i < items.length; i += 1) {\n        str += fn(items[i], i);\n    }\n    return str;\n}\nconst missing_component = {\n    $$render: () => ''\n};\nfunction validate_component(component, name) {\n    if (!component || !component.$$render) {\n        if (name === 'svelte:component')\n            name += ' this={...}';\n        throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n    }\n    return component;\n}\nfunction debug(file, line, column, values) {\n    console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n    console.log(values); // eslint-disable-line no-console\n    return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n    function $$render(result, props, bindings, slots, context) {\n        const parent_component = current_component;\n        const $$ = {\n            on_destroy,\n            context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n            // these will be immediately discarded\n            on_mount: [],\n            before_update: [],\n            after_update: [],\n            callbacks: blank_object()\n        };\n        set_current_component({ $$ });\n        const html = fn(result, props, bindings, slots);\n        set_current_component(parent_component);\n        return html;\n    }\n    return {\n        render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n            on_destroy = [];\n            const result = { title: '', head: '', css: new Set() };\n            const html = $$render(result, props, {}, $$slots, context);\n            run_all(on_destroy);\n            return {\n                html,\n                css: {\n                    code: Array.from(result.css).map(css => css.code).join('\\n'),\n                    map: null // TODO\n                },\n                head: result.title + result.head\n            };\n        },\n        $$render\n    };\n}\nfunction add_attribute(name, value, boolean) {\n    if (value == null || (boolean && !value))\n        return '';\n    return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n    return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n    const index = component.$$.props[name];\n    if (index !== undefined) {\n        component.$$.bound[index] = callback;\n        callback(component.$$.ctx[index]);\n    }\n}\nfunction create_component(block) {\n    block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n    block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n    const { fragment, on_mount, on_destroy, after_update } = component.$$;\n    fragment && fragment.m(target, anchor);\n    if (!customElement) {\n        // onMount happens before the initial afterUpdate\n        add_render_callback(() => {\n            const new_on_destroy = on_mount.map(run).filter(is_function);\n            if (on_destroy) {\n                on_destroy.push(...new_on_destroy);\n            }\n            else {\n                // Edge case - component was destroyed immediately,\n                // most likely as a result of a binding initialising\n                run_all(new_on_destroy);\n            }\n            component.$$.on_mount = [];\n        });\n    }\n    after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n    const $$ = component.$$;\n    if ($$.fragment !== null) {\n        run_all($$.on_destroy);\n        $$.fragment && $$.fragment.d(detaching);\n        // TODO null out other refs, including component.$$ (but need to\n        // preserve final state?)\n        $$.on_destroy = $$.fragment = null;\n        $$.ctx = [];\n    }\n}\nfunction make_dirty(component, i) {\n    if (component.$$.dirty[0] === -1) {\n        dirty_components.push(component);\n        schedule_update();\n        component.$$.dirty.fill(0);\n    }\n    component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n    const parent_component = current_component;\n    set_current_component(component);\n    const $$ = component.$$ = {\n        fragment: null,\n        ctx: null,\n        // state\n        props,\n        update: noop,\n        not_equal,\n        bound: blank_object(),\n        // lifecycle\n        on_mount: [],\n        on_destroy: [],\n        on_disconnect: [],\n        before_update: [],\n        after_update: [],\n        context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n        // everything else\n        callbacks: blank_object(),\n        dirty,\n        skip_bound: false,\n        root: options.target || parent_component.$$.root\n    };\n    append_styles && append_styles($$.root);\n    let ready = false;\n    $$.ctx = instance\n        ? instance(component, options.props || {}, (i, ret, ...rest) => {\n            const value = rest.length ? rest[0] : ret;\n            if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n                if (!$$.skip_bound && $$.bound[i])\n                    $$.bound[i](value);\n                if (ready)\n                    make_dirty(component, i);\n            }\n            return ret;\n        })\n        : [];\n    $$.update();\n    ready = true;\n    run_all($$.before_update);\n    // `false` as a special case of no DOM component\n    $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n    if (options.target) {\n        if (options.hydrate) {\n            start_hydrating();\n            const nodes = children(options.target);\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.l(nodes);\n            nodes.forEach(detach);\n        }\n        else {\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            $$.fragment && $$.fragment.c();\n        }\n        if (options.intro)\n            transition_in(component.$$.fragment);\n        mount_component(component, options.target, options.anchor, options.customElement);\n        end_hydrating();\n        flush();\n    }\n    set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n    SvelteElement = class extends HTMLElement {\n        constructor() {\n            super();\n            this.attachShadow({ mode: 'open' });\n        }\n        connectedCallback() {\n            const { on_mount } = this.$$;\n            this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n            // @ts-ignore todo: improve typings\n            for (const key in this.$$.slotted) {\n                // @ts-ignore todo: improve typings\n                this.appendChild(this.$$.slotted[key]);\n            }\n        }\n        attributeChangedCallback(attr, _oldValue, newValue) {\n            this[attr] = newValue;\n        }\n        disconnectedCallback() {\n            run_all(this.$$.on_disconnect);\n        }\n        $destroy() {\n            destroy_component(this, 1);\n            this.$destroy = noop;\n        }\n        $on(type, callback) {\n            // TODO should this delegate to addEventListener?\n            const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n            callbacks.push(callback);\n            return () => {\n                const index = callbacks.indexOf(callback);\n                if (index !== -1)\n                    callbacks.splice(index, 1);\n            };\n        }\n        $set($$props) {\n            if (this.$$set && !is_empty($$props)) {\n                this.$$.skip_bound = true;\n                this.$$set($$props);\n                this.$$.skip_bound = false;\n            }\n        }\n    };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n    $destroy() {\n        destroy_component(this, 1);\n        this.$destroy = noop;\n    }\n    $on(type, callback) {\n        const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n        callbacks.push(callback);\n        return () => {\n            const index = callbacks.indexOf(callback);\n            if (index !== -1)\n                callbacks.splice(index, 1);\n        };\n    }\n    $set($$props) {\n        if (this.$$set && !is_empty($$props)) {\n            this.$$.skip_bound = true;\n            this.$$set($$props);\n            this.$$.skip_bound = false;\n        }\n    }\n}\n\nfunction dispatch_dev(type, detail) {\n    document.dispatchEvent(custom_event(type, Object.assign({ version: '3.43.1' }, detail), true));\n}\nfunction append_dev(target, node) {\n    dispatch_dev('SvelteDOMInsert', { target, node });\n    append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n    dispatch_dev('SvelteDOMInsert', { target, node });\n    append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n    dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n    insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n    dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n    insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n    dispatch_dev('SvelteDOMRemove', { node });\n    detach(node);\n}\nfunction detach_between_dev(before, after) {\n    while (before.nextSibling && before.nextSibling !== after) {\n        detach_dev(before.nextSibling);\n    }\n}\nfunction detach_before_dev(after) {\n    while (after.previousSibling) {\n        detach_dev(after.previousSibling);\n    }\n}\nfunction detach_after_dev(before) {\n    while (before.nextSibling) {\n        detach_dev(before.nextSibling);\n    }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n    const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n    if (has_prevent_default)\n        modifiers.push('preventDefault');\n    if (has_stop_propagation)\n        modifiers.push('stopPropagation');\n    dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n    const dispose = listen(node, event, handler, options);\n    return () => {\n        dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n        dispose();\n    };\n}\nfunction attr_dev(node, attribute, value) {\n    attr(node, attribute, value);\n    if (value == null)\n        dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n    else\n        dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n    node[property] = value;\n    dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n    node.dataset[property] = value;\n    dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n    data = '' + data;\n    if (text.wholeText === data)\n        return;\n    dispatch_dev('SvelteDOMSetData', { node: text, data });\n    text.data = data;\n}\nfunction validate_each_argument(arg) {\n    if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n        let msg = '{#each} only iterates over array-like objects.';\n        if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n            msg += ' You can use a spread to convert this iterable into an array.';\n        }\n        throw new Error(msg);\n    }\n}\nfunction validate_slots(name, slot, keys) {\n    for (const slot_key of Object.keys(slot)) {\n        if (!~keys.indexOf(slot_key)) {\n            console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n        }\n    }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n    constructor(options) {\n        if (!options || (!options.target && !options.$$inline)) {\n            throw new Error(\"'target' is a required option\");\n        }\n        super();\n    }\n    $destroy() {\n        super.$destroy();\n        this.$destroy = () => {\n            console.warn('Component was already destroyed'); // eslint-disable-line no-console\n        };\n    }\n    $capture_state() { }\n    $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n    constructor(options) {\n        super(options);\n    }\n}\nfunction loop_guard(timeout) {\n    const start = Date.now();\n    return () => {\n        if (Date.now() - start > timeout) {\n            throw new Error('Infinite loop detected');\n        }\n    };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","export default function (str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n    return {\n        subscribe: writable(value, start).subscribe\n    };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n    let stop;\n    const subscribers = new Set();\n    function set(new_value) {\n        if (safe_not_equal(value, new_value)) {\n            value = new_value;\n            if (stop) { // store is ready\n                const run_queue = !subscriber_queue.length;\n                for (const subscriber of subscribers) {\n                    subscriber[1]();\n                    subscriber_queue.push(subscriber, value);\n                }\n                if (run_queue) {\n                    for (let i = 0; i < subscriber_queue.length; i += 2) {\n                        subscriber_queue[i][0](subscriber_queue[i + 1]);\n                    }\n                    subscriber_queue.length = 0;\n                }\n            }\n        }\n    }\n    function update(fn) {\n        set(fn(value));\n    }\n    function subscribe(run, invalidate = noop) {\n        const subscriber = [run, invalidate];\n        subscribers.add(subscriber);\n        if (subscribers.size === 1) {\n            stop = start(set) || noop;\n        }\n        run(value);\n        return () => {\n            subscribers.delete(subscriber);\n            if (subscribers.size === 0) {\n                stop();\n                stop = null;\n            }\n        };\n    }\n    return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n    const single = !Array.isArray(stores);\n    const stores_array = single\n        ? [stores]\n        : stores;\n    const auto = fn.length < 2;\n    return readable(initial_value, (set) => {\n        let inited = false;\n        const values = [];\n        let pending = 0;\n        let cleanup = noop;\n        const sync = () => {\n            if (pending) {\n                return;\n            }\n            cleanup();\n            const result = fn(single ? values[0] : values, set);\n            if (auto) {\n                set(result);\n            }\n            else {\n                cleanup = is_function(result) ? result : noop;\n            }\n        };\n        const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n            values[i] = value;\n            pending &= ~(1 << i);\n            if (inited) {\n                sync();\n            }\n        }, () => {\n            pending |= (1 << i);\n        }));\n        inited = true;\n        sync();\n        return function stop() {\n            run_all(unsubscribers);\n            cleanup();\n        };\n    });\n}\n\nexport { derived, readable, writable };\n","export var LoadableEntryAction;\n(function (LoadableEntryAction) {\n    LoadableEntryAction[LoadableEntryAction[\"NoOp\"] = 0] = \"NoOp\";\n    LoadableEntryAction[LoadableEntryAction[\"New\"] = 1] = \"New\";\n    LoadableEntryAction[LoadableEntryAction[\"Resume\"] = 2] = \"Resume\";\n})(LoadableEntryAction || (LoadableEntryAction = {}));\nexport var UnloadableEntryAction;\n(function (UnloadableEntryAction) {\n    UnloadableEntryAction[UnloadableEntryAction[\"NoOp\"] = 0] = \"NoOp\";\n    UnloadableEntryAction[UnloadableEntryAction[\"Destroy\"] = 1] = \"Destroy\";\n    UnloadableEntryAction[UnloadableEntryAction[\"Pause\"] = 2] = \"Pause\";\n})(UnloadableEntryAction || (UnloadableEntryAction = {}));\nexport var NavigationType;\n(function (NavigationType) {\n    NavigationType[NavigationType[\"GoForwardNewState\"] = 0] = \"GoForwardNewState\";\n    NavigationType[NavigationType[\"GoForwardResumeState\"] = 1] = \"GoForwardResumeState\";\n    NavigationType[NavigationType[\"GoBackward\"] = 2] = \"GoBackward\";\n    NavigationType[NavigationType[\"Replace\"] = 3] = \"Replace\";\n})(NavigationType || (NavigationType = {}));\nexport var StackRouterEventType;\n(function (StackRouterEventType) {\n    StackRouterEventType[StackRouterEventType[\"Navigate\"] = 0] = \"Navigate\";\n    StackRouterEventType[StackRouterEventType[\"Mount\"] = 1] = \"Mount\";\n    StackRouterEventType[StackRouterEventType[\"Destroy\"] = 2] = \"Destroy\";\n    StackRouterEventType[StackRouterEventType[\"UpdateConfig\"] = 3] = \"UpdateConfig\";\n})(StackRouterEventType || (StackRouterEventType = {}));\n","export function noop() { }\nexport function animationFrame() {\n    return new Promise((res) => requestAnimationFrame(() => res()));\n}\nexport function sleep(ms) {\n    return new Promise((res) => setTimeout(() => res(), ms));\n}\nexport function dispatchCustomEvent(element, eventName) {\n    element.dispatchEvent(new CustomEvent(eventName, {\n        bubbles: true,\n        cancelable: true,\n    }));\n}\n","/* eslint-disable no-restricted-properties */\nimport { NavigationType } from './types';\nimport { animationFrame, sleep } from './utils';\nfunction makeStyleTag(content) {\n    const styleTag = document.createElement('style');\n    styleTag.innerHTML = content;\n    return styleTag;\n}\nexport function commonTransitionGenerator(duration, styleGenerators) {\n    return async (transitionFunctionData) => {\n        const timestamp = new Date().getTime();\n        const unloadClass = `unload-${timestamp}`;\n        const loadClass = `load-${timestamp}`;\n        const routerClass = `router-${timestamp}`;\n        const { mountPointToUnload, mountPointToLoad, scroll, routerMountPoint, } = transitionFunctionData;\n        mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.classList.add(unloadClass);\n        mountPointToLoad.classList.add(loadClass);\n        routerMountPoint.classList.add(routerClass);\n        const styleNodes = new Array(styleGenerators.length);\n        for (let i = 0; i < styleGenerators.length; i++) {\n            const styleNode = styleGenerators[i](loadClass, unloadClass, routerClass, transitionFunctionData);\n            styleNodes[i] = styleNode;\n            document.head.appendChild(styleNode);\n            await animationFrame();\n            await animationFrame();\n            await animationFrame();\n        }\n        await sleep(duration);\n        window.scrollTo(scroll.x, scroll.y);\n        if (window.getComputedStyle(document.documentElement).scrollBehavior === 'smooth') {\n            // At the moment of writing this comment there is no official/simple way to wait for the\n            // window.scrollTo method to complete the animation\n            // Hack: loop for a maximum of 500ms checking if the scroll position is close enough to the target scroll\n            const threshold = 5;\n            for (let i = 0; i < 50; i++) {\n                if (Math.sqrt(Math.pow(window.scrollX - scroll.x, 2)\n                    + Math.pow(window.scrollY - scroll.y, 2)) < threshold) {\n                    break;\n                }\n                await sleep(10);\n            }\n        }\n        for (const styleNode of styleNodes) {\n            document.head.removeChild(styleNode);\n        }\n        mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.classList.remove(unloadClass);\n        mountPointToLoad.classList.remove(loadClass);\n        routerMountPoint.classList.remove(routerClass);\n    };\n}\nexport function slide(duration) {\n    return commonTransitionGenerator(duration, [\n        (loadClass, unloadClass, routerClass, { navigationType, }) => makeStyleTag(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${loadClass} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${navigationType === NavigationType.GoBackward ? '-' : ''}50%);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),\n        (_1, _2, routerClass, { mountPointToLoad, mountPointToUnload, }) => makeStyleTag(`\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tmin-height: ${Math.max(mountPointToLoad.offsetHeight, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetHeight) || 0)}px;\n\t\t\t\t\tmin-width: ${Math.max(mountPointToLoad.offsetWidth, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetWidth) || 0)}px;\n\t\t\t\t}\n\t\t\t`),\n        (loadClass, unloadClass, _, { navigationType }) => makeStyleTag(`\n\t\t\t\t.${loadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear ${Math.floor(duration / 2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateX(0%);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateX(${navigationType === NavigationType.GoBackward ? '' : '-'}50%);\n\t\t\t\t}\n\t\t\t`),\n    ]);\n}\nexport function dive(duration) {\n    return commonTransitionGenerator(duration, [\n        (loadClass, unloadClass, routerClass, { navigationType }) => makeStyleTag(`\n\t\t\t\thtml {\n\t\t\t\t\tscroll-behavior: smooth;\n\t\t\t\t}\n\t\t\t\t.${loadClass} {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tright: 0;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${navigationType === NavigationType.GoBackward ? '' : '-'}150px);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tperspective: 1200px;\n\t\t\t\t\tperspective-origin: top center;\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t`),\n        (_1, _2, routerClass, { mountPointToLoad, mountPointToUnload, }) => makeStyleTag(`\n\t\t\t\t.${routerClass} {\n\t\t\t\t\tmin-height: ${Math.max(mountPointToLoad.offsetHeight, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetHeight) || 0)}px;\n\t\t\t\t\tmin-width: ${Math.max(mountPointToLoad.offsetWidth, (mountPointToUnload === null || mountPointToUnload === void 0 ? void 0 : mountPointToUnload.offsetWidth) || 0)}px;\n\t\t\t\t}\n\t\t\t`),\n        (loadClass, unloadClass, _, { navigationType }) => makeStyleTag(`\n\t\t\t\t.${loadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear ${Math.floor(duration / 2)}ms;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: translateZ(0px);\n\t\t\t\t}\n\t\t\t\t.${unloadClass} {\n\t\t\t\t\ttransition: transform ${duration}ms, opacity ${Math.floor(duration / 2)}ms linear;\n\t\t\t\t\topacity: 0;\n\t\t\t\t\ttransform: translateZ(${navigationType === NavigationType.GoBackward ? '-' : ''}150px);\n\t\t\t\t}\n\t\t\t`),\n    ]);\n}\nexport function noAnimation() {\n    return ({ scroll }) => {\n        window.scrollTo(scroll.x, scroll.y);\n        return Promise.resolve();\n    };\n}\n","import regexparam from 'regexparam';\nimport { tick } from 'svelte';\nimport { noop } from 'svelte/internal';\nimport { derived, writable, get, } from 'svelte/store';\nimport { noAnimation } from './transition-functions';\nimport { NavigationType, LoadableEntryAction, UnloadableEntryAction, StackRouterEventType, } from './types';\nimport { dispatchCustomEvent, sleep } from './utils';\nconst config = {\n    defaultResumable: true,\n    useHash: true,\n    restoreScroll: true,\n    routes: {},\n    mountPoint: null,\n    transitionFn: noAnimation(),\n    dispatch: null,\n};\nconst internalCache = writable([]);\n/** Current component cache readable store */\nexport const cache = derived(internalCache, (x) => x);\n/* LOCATION */\nfunction getLocation() {\n    if (config.useHash) {\n        const hashIndex = window.location.href.indexOf('#/');\n        const location = hashIndex > -1 ? window.location.href.substring(hashIndex + 1) : '/';\n        return location;\n    }\n    const relativeUrl = (window.location.pathname || '/') + window.location.search;\n    return relativeUrl;\n}\n// Used in the `pop` function to prevent a double trigger of the PopStateEvent\nlet ignorePopStateEvent = false;\nconst _location = writable(getLocation(), (set) => {\n    let previousLocation = null;\n    const handlePopState = async () => {\n        if (ignorePopStateEvent) {\n            return;\n        }\n        const newLocation = getLocation();\n        if (previousLocation !== newLocation) {\n            previousLocation = newLocation;\n            set(newLocation);\n        }\n    };\n    window.addEventListener('popstate', handlePopState);\n    return function stop() {\n        window.removeEventListener('popstate', handlePopState);\n    };\n});\n/**\n * Readable store representing the current location\n */\nexport const location = derived(_location, ($_location) => $_location);\n/* PATHNAME */\nfunction getPathname(location) {\n    const queryStringPosition = location.indexOf('?');\n    if (queryStringPosition !== -1) {\n        return location.substring(0, queryStringPosition);\n    }\n    return location;\n}\n/**\n * Readable store that contains the pathname part of the location\n */\nexport const pathname = derived(location, getPathname);\n/* SEARCH */\nfunction getSearch(location) {\n    const queryStringPosition = location.indexOf('?');\n    if (queryStringPosition !== -1) {\n        return location.substring(queryStringPosition);\n    }\n    return '';\n}\n/**\n * Readable store that contains the search part of the location\n */\nexport const search = derived(location, getSearch);\n/* UTILS */\nlet lastHistoryTimestamp;\nasync function waitForHistoryState(callback) {\n    const historyState = window.history.state;\n    callback();\n    // Wait for history.state to pick the current state (without this sleep history.state points to the previous state)\n    // See https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event\n    let limit = 100;\n    while (historyState === window.history.state && limit) {\n        await sleep(2);\n        limit--;\n    }\n    if (historyState === window.history.state) {\n        console.warn('unable to detect history change');\n    }\n}\nfunction buildParams(pathname, routeKey) {\n    const { pattern, keys } = regexparam(routeKey);\n    const matches = pattern.exec(pathname) || [];\n    const params = keys.reduce((params, _, index) => {\n        params[keys[index]] = matches[index + 1] === undefined ? null : decodeURIComponent(matches[index + 1]);\n        return params;\n    }, {});\n    return Object.keys(params).length === 0 ? undefined : params;\n}\n/* EVENT-BASED EXECUTION */\nconst eventQueue = [];\nfunction enqueueEvent(event) {\n    eventQueue.push(event);\n    consumeQueue();\n}\nlet consumingQueue = false;\nasync function consumeQueue() {\n    if (consumingQueue) {\n        return;\n    }\n    consumingQueue = true;\n    while (eventQueue.length > 0) {\n        const item = eventQueue.shift();\n        switch (item.type) {\n            case StackRouterEventType.Navigate:\n                await handleHistoryChange(item.payload);\n                break;\n            case StackRouterEventType.Mount:\n                await mount(item.payload);\n                break;\n            case StackRouterEventType.Destroy:\n                await destroy();\n                break;\n            case StackRouterEventType.UpdateConfig:\n                await updateConfig(item.payload);\n                break;\n            // no default\n        }\n    }\n    consumingQueue = false;\n}\n/* INIT & DESTROY */\nlet locationSubscription = noop;\nexport function handleUpdateConfig(initConfig) {\n    enqueueEvent({\n        type: StackRouterEventType.UpdateConfig,\n        payload: initConfig,\n    });\n}\nfunction updateConfig(initConfig) {\n    const previousUseHash = config.useHash;\n    Object.keys(initConfig)\n        .forEach((key) => {\n        if (initConfig[key] !== undefined) {\n            config[key] = initConfig[key];\n        }\n    });\n    if (previousUseHash !== config.useHash) {\n        const currentLocation = getLocation();\n        if (get(_location) !== currentLocation) {\n            _location.set(currentLocation);\n        }\n    }\n    if ('scrollRestoration' in window.history) {\n        window.history.scrollRestoration = config.restoreScroll ? 'manual' : 'auto';\n    }\n}\nexport function handleStackRouterComponentMount(initConfig) {\n    enqueueEvent({\n        type: StackRouterEventType.Mount,\n        payload: initConfig,\n    });\n}\nfunction mount(initConfig) {\n    updateConfig(initConfig);\n    const firstRun = true;\n    let previousState = null;\n    locationSubscription = location\n        .subscribe(async ($location) => {\n        // Wait for history.state to pick the current state (without this sleep history.state can point to the previous state)\n        // See https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event\n        let currentState = window.history.state;\n        if (!firstRun && currentState !== undefined) {\n            let limit = 100;\n            while (previousState === currentState && limit) {\n                await sleep(2);\n                limit--;\n                currentState = window.history.state;\n            }\n            if (previousState === currentState) {\n                console.warn('unable to detect history change');\n            }\n        }\n        enqueueEvent({\n            type: StackRouterEventType.Navigate,\n            payload: {\n                location: $location,\n                state: currentState,\n            },\n        });\n        previousState = currentState;\n    });\n}\nexport function handleStackRouterComponentDestroy() {\n    enqueueEvent({\n        type: StackRouterEventType.Destroy,\n    });\n}\nasync function destroy() {\n    locationSubscription();\n    const currentCache = get(internalCache);\n    for (const entry of currentCache) {\n        // eslint-disable-next-line no-use-before-define\n        if (entry === activeCacheEntry) {\n            if (entry.entryConfig.onBeforeUnload && entry.entryConfig.onBeforeUnload.length > 0) {\n                for (const callback of entry.entryConfig.onBeforeUnload) {\n                    await callback(true);\n                }\n            }\n            if (entry.entryConfig.resumable && entry.entryConfig.onPause && entry.entryConfig.onPause.length > 0) {\n                for (const callback of entry.entryConfig.onPause) {\n                    await callback(true);\n                }\n            }\n            if (entry.entryConfig.onAfterUnload && entry.entryConfig.onAfterUnload.length > 0) {\n                for (const callback of entry.entryConfig.onAfterUnload) {\n                    await callback(true);\n                }\n            }\n        }\n        entry.componentInstance.$destroy();\n    }\n    // eslint-disable-next-line no-use-before-define\n    activeCacheEntry = null;\n    internalCache.set([]);\n    locationSubscription = noop;\n    config.mountPoint = null;\n    config.dispatch = null;\n}\nlet editableEntryConfig = null;\nasync function prepareCacheEntryToActivate(cache, pathname) {\n    const routeKeys = Object.keys(config.routes);\n    const routeKey = routeKeys.find((routeKey) => {\n        const { pattern } = regexparam(routeKey);\n        return pattern.test(pathname);\n    });\n    if (routeKey === undefined || routeKey === null) {\n        return {\n            message: 'no route found',\n        };\n    }\n    const params = buildParams(pathname, routeKey);\n    const routeDescriptor = typeof config.routes[routeKey] === 'object' ? config.routes[routeKey] : {};\n    // Check guards before updating params\n    const guards = routeDescriptor.guards\n        || (routeDescriptor.guard && [routeDescriptor.guard])\n        || [];\n    for (const guard of guards) {\n        try {\n            if (!await guard(params)) {\n                return {\n                    message: 'access forbidden by guard',\n                    params,\n                };\n            }\n        }\n        catch (err) {\n            return {\n                message: 'guard error',\n                params,\n                err,\n            };\n        }\n    }\n    const resumableEntry = cache.find((s) => s.routeMatch === routeKey);\n    let entry;\n    if (resumableEntry) {\n        editableEntryConfig = resumableEntry.entryConfig;\n        entry = resumableEntry;\n        if (resumableEntry.pathname !== pathname) {\n            resumableEntry.componentInstance.$set({ params });\n            resumableEntry.pathname = pathname;\n        }\n    }\n    else {\n        const mountPoint = document.createElement('div');\n        editableEntryConfig = {\n            resumable: config.defaultResumable,\n        };\n        let component;\n        if (typeof config.routes[routeKey] !== 'object') {\n            component = config.routes[routeKey];\n        }\n        else if (routeDescriptor.component) {\n            component = routeDescriptor.component;\n        }\n        else if (routeDescriptor.componentProvider) {\n            try {\n                const resolved = await routeDescriptor.componentProvider();\n                component = resolved.default || resolved;\n                // Cache the promise result so that it will be available in the future\n                // without having to call the provider again\n                routeDescriptor.component = component;\n            }\n            catch (err) {\n                return {\n                    message: 'unable to get component from provider',\n                    err,\n                };\n            }\n        }\n        else {\n            return {\n                message: 'unable to get a component constructor',\n                err: new Error('unable to get a component constructor'),\n            };\n        }\n        entry = {\n            component,\n            // eslint-disable-next-line new-cap\n            componentInstance: new component({ target: mountPoint, props: { params } }),\n            mountPoint,\n            pathname,\n            routeMatch: routeKey,\n            entryConfig: editableEntryConfig,\n        };\n    }\n    await tick();\n    editableEntryConfig = null;\n    return entry;\n}\nlet activeCacheEntry = null;\nasync function handleHistoryChange(historyItem) {\n    var _a, _b, _c, _d;\n    const currentCache = get(internalCache);\n    const isNewHistoryItem = !historyItem.state;\n    if (isNewHistoryItem) {\n        historyItem.state = {\n            timestamp: new Date().getTime(),\n        };\n        await waitForHistoryState(() => window.history.replaceState(historyItem.state, '', (config.useHash ? '#' : '') + historyItem.location));\n    }\n    const pageToLoadResult = await prepareCacheEntryToActivate(currentCache, getPathname(historyItem.location));\n    if ('message' in pageToLoadResult) {\n        switch (pageToLoadResult.message) {\n            case 'access forbidden by guard':\n                (_a = config.dispatch) === null || _a === void 0 ? void 0 : _a.call(config, 'forbidden', {\n                    ...pageToLoadResult,\n                    location: historyItem.location,\n                });\n                break;\n            default:\n                (_b = config.dispatch) === null || _b === void 0 ? void 0 : _b.call(config, 'error', {\n                    ...pageToLoadResult,\n                    location: historyItem.location,\n                });\n                break;\n        }\n        return;\n    }\n    const pageToLoad = pageToLoadResult;\n    const pageToUnload = activeCacheEntry;\n    const newTopIndexInCurrentStack = currentCache.findIndex((s) => s.routeMatch === pageToLoad.routeMatch);\n    let pageToLoadAction = LoadableEntryAction.NoOp;\n    let pageToUnloadAction = UnloadableEntryAction.NoOp;\n    let navigationType = NavigationType.GoForwardNewState;\n    if (!pageToUnload) {\n        pageToLoadAction = LoadableEntryAction.New;\n    }\n    else {\n        if (pageToUnload.routeMatch !== pageToLoad.routeMatch) {\n            if (newTopIndexInCurrentStack !== -1) {\n                pageToLoadAction = LoadableEntryAction.Resume;\n            }\n            else {\n                pageToLoadAction = LoadableEntryAction.New;\n            }\n            if (pageToUnload.entryConfig.resumable) {\n                pageToUnloadAction = UnloadableEntryAction.Pause;\n            }\n            else {\n                pageToUnloadAction = UnloadableEntryAction.Destroy;\n            }\n        }\n        if (isNewHistoryItem) {\n            navigationType = NavigationType.GoForwardNewState;\n        }\n        else if (historyItem.state.timestamp > lastHistoryTimestamp) {\n            navigationType = NavigationType.GoForwardResumeState;\n        }\n        else if (historyItem.state.timestamp < lastHistoryTimestamp) {\n            navigationType = NavigationType.GoBackward;\n        }\n        else {\n            navigationType = NavigationType.Replace;\n        }\n    }\n    (_c = config.dispatch) === null || _c === void 0 ? void 0 : _c.call(config, 'navigation-start', {\n        location: historyItem.location,\n        navigationType,\n        pageToLoad,\n        pageToUnload,\n        pageToLoadAction,\n        pageToUnloadAction,\n    });\n    // BEFORE TRANSITION\n    async function beforeUnload() {\n        if (pageToUnload\n            && pageToUnloadAction !== UnloadableEntryAction.NoOp\n            && pageToUnload.entryConfig.onBeforeUnload\n            && pageToUnload.entryConfig.onBeforeUnload.length > 0) {\n            for (const callback of pageToUnload.entryConfig.onBeforeUnload) {\n                await callback();\n            }\n        }\n    }\n    async function beforeLoad() {\n        if (pageToLoad\n            && pageToLoadAction !== LoadableEntryAction.NoOp\n            && pageToLoad.entryConfig.onBeforeLoad\n            && pageToLoad.entryConfig.onBeforeLoad.length > 0) {\n            for (const callback of pageToLoad.entryConfig.onBeforeLoad) {\n                await callback();\n            }\n        }\n    }\n    await Promise.all([beforeUnload(), beforeLoad()]);\n    // DURING TRANSITION\n    async function pause() {\n        if (pageToUnload\n            && pageToUnloadAction === UnloadableEntryAction.Pause\n            && pageToUnload.entryConfig.onPause\n            && pageToUnload.entryConfig.onPause.length > 0) {\n            for (const callback of pageToUnload.entryConfig.onPause) {\n                await callback();\n            }\n        }\n    }\n    async function resume() {\n        if (pageToLoad && pageToLoadAction === LoadableEntryAction.Resume) {\n            const { returnValue } = historyItem.state || {};\n            await waitForHistoryState(() => {\n                // Remove returnValue and scroll\n                window.history.replaceState({\n                    timestamp: historyItem.state.timestamp,\n                }, '', (config.useHash ? '#' : '') + historyItem.location);\n            });\n            if (pageToLoad.entryConfig.onResume && pageToLoad.entryConfig.onResume.length > 0) {\n                for (const callback of pageToLoad.entryConfig.onResume) {\n                    await callback(returnValue);\n                }\n            }\n        }\n    }\n    const oldTopMountPoint = pageToUnload ? pageToUnload.mountPoint : null;\n    const newTopMountPoint = pageToLoad.mountPoint;\n    if (oldTopMountPoint !== newTopMountPoint) {\n        async function transition() {\n            if (config.mountPoint) {\n                if (!newTopMountPoint.parentElement) {\n                    config.mountPoint.appendChild(newTopMountPoint);\n                }\n                await config.transitionFn({\n                    navigationType,\n                    routerMountPoint: config.mountPoint,\n                    mountPointToLoad: newTopMountPoint,\n                    mountPointToUnload: oldTopMountPoint,\n                    scroll: historyItem.state.scroll || { x: 0, y: 0 },\n                });\n                if (oldTopMountPoint) {\n                    config.mountPoint.removeChild(oldTopMountPoint);\n                }\n            }\n        }\n        await Promise.all([\n            transition(),\n            pause(),\n            resume(),\n        ]);\n    }\n    // AFTER TRANSITION\n    async function afterLoad() {\n        if (pageToLoad\n            && pageToLoadAction !== LoadableEntryAction.NoOp\n            && pageToLoad.entryConfig.onAfterLoad\n            && pageToLoad.entryConfig.onAfterLoad.length > 0) {\n            for (const callback of pageToLoad.entryConfig.onAfterLoad) {\n                await callback();\n            }\n        }\n    }\n    async function afterUnload() {\n        if (pageToUnload\n            && pageToUnloadAction !== UnloadableEntryAction.NoOp\n            && pageToUnload.entryConfig.onAfterUnload\n            && pageToUnload.entryConfig.onAfterUnload.length > 0) {\n            for (const callback of pageToUnload.entryConfig.onAfterUnload) {\n                await callback();\n            }\n        }\n    }\n    await Promise.all([afterLoad(), afterUnload()]);\n    if (pageToLoadAction === LoadableEntryAction.New) {\n        currentCache.push(pageToLoad);\n    }\n    if (pageToUnload && pageToUnloadAction === UnloadableEntryAction.Destroy) {\n        pageToUnload.componentInstance.$destroy();\n        currentCache.splice(currentCache.indexOf(pageToUnload), 1);\n    }\n    internalCache.set(currentCache);\n    activeCacheEntry = pageToLoad;\n    lastHistoryTimestamp = historyItem.state.timestamp;\n    (_d = config.dispatch) === null || _d === void 0 ? void 0 : _d.call(config, 'navigation-end', {\n        location: historyItem.location,\n        navigationType,\n        pageToLoad,\n        pageToUnload,\n        pageToLoadAction,\n        pageToUnloadAction,\n    });\n}\n/* API FUNCTIONS */\n/**\n * Replaces the current history location and state\n * If the new location equals the current one, this function won't modify the browser history\n * @param location new location\n * @param state new history state\n */\nexport async function replace(location, state) {\n    if (location === getLocation()) {\n        return;\n    }\n    await waitForHistoryState(() => {\n        window.history.replaceState({\n            ...(state || {}),\n            timestamp: lastHistoryTimestamp,\n        }, '', (config.useHash ? '#' : '') + location);\n    });\n    dispatchCustomEvent(window, 'popstate');\n}\n/**\n * Navigates to a new location\n * If scroll restoration is enabled, the current window scroll position is persisted before leaving the current location\n * If the new location equals the current one, this function won't modify the browser history\n * @param location new location\n */\nexport async function push(location) {\n    if (location === getLocation()) {\n        return;\n    }\n    if (config.restoreScroll) {\n        await waitForHistoryState(() => {\n            window.history.replaceState({\n                timestamp: window.history.state ? window.history.state.timestamp : new Date().getTime(),\n                scroll: {\n                    x: window.scrollY,\n                    y: window.scrollY,\n                },\n            }, '', (config.useHash ? '#' : '') + getLocation());\n        });\n    }\n    await waitForHistoryState(() => {\n        window.history.pushState(undefined, '', (config.useHash ? '#' : '') + location);\n    });\n    dispatchCustomEvent(window, 'popstate');\n}\n/**\n * Navigates back\n * @param returnValue a serializable object that will be returned to the component associated with the previous location if resumable\n */\nexport async function pop(returnValue) {\n    ignorePopStateEvent = true;\n    await waitForHistoryState(() => window.history.back());\n    await waitForHistoryState(() => {\n        window.history.replaceState({\n            ...window.history.state || {},\n            returnValue,\n        }, '', (config.useHash ? '#' : '') + getLocation());\n    });\n    ignorePopStateEvent = false;\n    dispatchCustomEvent(window, 'popstate');\n}\n/**\n * Svelte action that can be associated with an HTMLAnchorElement (`<a>`) to automatically prefix '#' when using client side navigation only\n * @param node the HTML anchor tag\n * @param href the href attribute of the anchor tag\n * @returns an object containing the callback Svelte will use to trigger updates\n */\nexport function link(node, href) {\n    if (!node || !node.tagName || node.tagName.toLowerCase() !== 'a') {\n        throw new Error('not a <a> tag');\n    }\n    async function pushState(e) {\n        if (!e.ctrlKey) {\n            e.preventDefault();\n            // for an unknown reason, pushing the state blocks any on:click handler attached in a Svelte file.\n            // This sleep lets the event propagate and schedules the push call after the bubbling has finished\n            await sleep(1);\n            push(config.useHash ? node.getAttribute('href').substring(1) : node.getAttribute('href'));\n        }\n    }\n    node.addEventListener('click', pushState);\n    function hashHref(node, href) {\n        if (!href || href.length < 1 || href.charAt(0) !== '/') {\n            throw new Error(`invalid href ${href}`);\n        }\n        node.setAttribute('href', `${config.useHash ? '#' : ''}${href}`);\n    }\n    hashHref(node, href || node.getAttribute('href'));\n    return {\n        update(href) {\n            hashHref(node, href);\n        },\n    };\n}\n/* COMPONENT LIFECYCLE */\nconst lifecycleErrorText = 'lifecycle functions can only be'\n    + ' called while initializing or before preparing a component to resume (i.e. with a reactive statement on \"params\")';\n/**\n * Attaches a callback to the resume lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is resumed\n */\nexport function onResume(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onResume) {\n        editableEntryConfig.onResume = [];\n    }\n    editableEntryConfig.onResume.push(callback);\n}\n/**\n * Attaches a callback to the pause lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is paused\n */\nexport function onPause(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onPause) {\n        editableEntryConfig.onPause = [];\n    }\n    editableEntryConfig.onPause.push(callback);\n}\n/**\n * Attaches a callback to the before-unload lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is being prepared for unloading\n */\nexport function onBeforeUnload(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onBeforeUnload) {\n        editableEntryConfig.onBeforeUnload = [];\n    }\n    editableEntryConfig.onBeforeUnload.push(callback);\n}\n/**\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component has finished loading\n */\nexport function onAfterLoad(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onAfterLoad) {\n        editableEntryConfig.onAfterLoad = [];\n    }\n    editableEntryConfig.onAfterLoad.push(callback);\n}\n/**\n * Attaches a callback to the after-unload lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component has finished unloading\n */\nexport function onAfterUnload(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onAfterUnload) {\n        editableEntryConfig.onAfterUnload = [];\n    }\n    editableEntryConfig.onAfterUnload.push(callback);\n}\n/**\n * Attaches a callback to the before-load lifecycle phase.\n * Lifecycle summary (|| = semi-parallel execution, achieved with Promise.all):\n * - create the page component if not in cache\n * - before-unload previous component || before-load new component\n * - pause previous component if resumable || resume new component if in cache || animate-transition\n * - after-unload previous component || after-load new component\n * - destroy previous component if not resumable\n * @param callback function that will be called when the component is being prepared for loading\n */\nexport function onBeforeLoad(callback) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    if (!editableEntryConfig.onBeforeLoad) {\n        editableEntryConfig.onBeforeLoad = [];\n    }\n    editableEntryConfig.onBeforeLoad.push(callback);\n}\n/**\n * Determines whether the component will be paused or destroyed\n * @param resumable whether the component should be paused and resumed or completely destroyed and recreated\n */\nexport function setResumable(resumable) {\n    if (!editableEntryConfig) {\n        throw new Error(lifecycleErrorText);\n    }\n    editableEntryConfig.resumable = resumable;\n}\n","<script>\n\timport { createEventDispatcher, onDestroy, onMount } from \"svelte\";\n\n\timport {\n\t\thandleStackRouterComponentMount,\n\t\thandleStackRouterComponentDestroy,\n\t\thandleUpdateConfig,\n\t} from \"./stack-router\";\n\timport { dive } from \"./transition-functions.js\";\n\n\t/** @type {boolean} whether or not the default behavior should be to resume or recreate the components */\n\texport let defaultResumable = true;\n\t/** @type {boolean} whether or not to prefix routes with '#' to implement a server-agnostic client side routing (e.g. no need to redirect 404 to index) */\n\texport let useHash = true;\n\t/** @type {boolean} whether or not to restore the scroll position when navigating backwards */\n\texport let restoreScroll = true;\n\t/** @type {import('../dist/types').TransitionFunction} a function that handles the transition between two pages */\n\texport let transitionFn = dive(300);\n\t/** @type {Record.<string, import('../dist/types').SvelteComponentConstructor>} a key-value object associating a route path (e.g. '/a/route/path/:variable1?) to a SvelteComponent constructor */\n\texport let routes;\n\n\tlet dispatch = createEventDispatcher();\n\tlet mountPoint;\n\tonMount(() => {\n\t\thandleStackRouterComponentMount({\n\t\t\tmountPoint,\n\t\t\troutes,\n\t\t\tdefaultResumable,\n\t\t\tuseHash,\n\t\t\trestoreScroll,\n\t\t\ttransitionFn,\n\t\t\tdispatch,\n\t\t});\n\t});\n\tonDestroy(() => {\n\t\thandleStackRouterComponentDestroy();\n\t});\n\n\t$: defaultResumable,\n\t\tuseHash,\n\t\trestoreScroll,\n\t\ttransitionFn,\n\t\troutes,\n\t\thandleUpdateConfig({\n\t\t\troutes,\n\t\t\tdefaultResumable,\n\t\t\tuseHash,\n\t\t\trestoreScroll,\n\t\t\ttransitionFn,\n\t\t});\n</script>\n\n<div class=\"stack-router-mount-point\" bind:this={mountPoint} />\n","(function(global) {\n\n  function isStandalone() {\n    return navigator.standalone || (window.matchMedia('(display-mode: standalone)').matches);\n  }\n\n  if (\n    typeof module !== 'undefined' &&\n    module.exports &&\n    typeof window !== 'undefined'\n  ) {\n    module.exports = isStandalone();\n  } else if (typeof define === 'function' && define.amd) {\n    define([], (global.isStandalone = isStandalone()));\n  } else {\n    global.isStandalone = isStandalone();\n  }\n})(this);\n","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zM6.023 15.416C7.491 17.606 9.695 19 12.16 19c2.464 0 4.669-1.393 6.136-3.584A8.968 8.968 0 0 0 12.16 13a8.968 8.968 0 0 0-6.137 2.416zM12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M13.172 12l-4.95-4.95 1.414-1.414L16 12l-6.364 6.364-1.414-1.414z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 3h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1h2v2h6V1h2v2zM4 9v10h16V9H4zm2 2h2v2H6v-2zm5 0h2v2h-2v-2zm5 0h2v2h-2v-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm5.563-4.3l3.359-3.359a2.25 2.25 0 0 0-3.182-3.182l-.177.177-.177-.177a2.25 2.25 0 0 0-3.182 3.182l3.359 3.359z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path fill-rule=\"nonzero\" d=\"M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zm8.018-3.685L8.659 11.34a2.25 2.25 0 0 1 3.182-3.182l.177.177.177-.177a2.25 2.25 0 0 1 3.182 3.182l-3.36 3.359z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zM10.962 8.1l-.447-.688C8.728 8.187 7.5 9.755 7.5 11.505c0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01v-.092c.006-.422.092-1.633 1.454-2.466l.185-.107-.447-.688zm4.553-.688c-1.787.775-3.015 2.343-3.015 4.093 0 .995.277 1.609.792 2.156.324.344.837.589 1.374.589.966 0 1.75-.784 1.75-1.75 0-.92-.711-1.661-1.614-1.745-.16-.015-.324-.012-.479.01 0-.313-.029-1.762 1.639-2.665z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M21 3c.552 0 1 .448 1 1v14c0 .552-.448 1-1 1H6.455L2 22.5V4c0-.552.448-1 1-1h18zm-1 2H4v13.385L5.763 17H20V5zm-9.485 2.412l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093zm5 0l.447.688c-1.668.903-1.639 2.352-1.639 2.664.155-.02.318-.024.48-.009.902.084 1.613.825 1.613 1.745 0 .966-.784 1.75-1.75 1.75-.537 0-1.05-.245-1.374-.59-.515-.546-.792-1.16-.792-2.155 0-1.75 1.228-3.318 3.015-4.093z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm4.5-14.5L10 10l-2.5 6.5L14 14l2.5-6.5zM12 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 6h5v2h-2v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8H2V6h5V3a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v3zm1 2H6v12h12V8zm-9 3h2v6H9v-6zm4 0h2v6h-2v-6zM9 4v2h6V4H9z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M2.808 1.393l18.384 18.385-1.414 1.414-3.747-3.747L12 21.485 3.52 12.993c-2.04-2.284-2.028-5.753.034-8.023L1.393 2.808l1.415-1.415zm2.172 10.23L12 18.654l2.617-2.623-9.645-9.645c-1.294 1.497-1.3 3.735.008 5.237zm15.263-6.866c2.262 2.268 2.34 5.88.236 8.236l-1.635 1.636-1.414-1.414 1.59-1.592c1.374-1.576 1.299-3.958-.193-5.453-1.5-1.502-3.92-1.563-5.49-.153l-1.335 1.198-1.336-1.197c-.35-.314-.741-.555-1.155-.723l-2.25-2.25c1.668-.206 3.407.289 4.74 1.484 2.349-2.109 5.979-2.039 8.242.228z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path fill-rule=\"nonzero\" d=\"M6 10v10h13V10H6zm12-2h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h2V7a6 6 0 1 1 12 0v1zm-2 0V7a4 4 0 1 0-8 0v1h8zm-9 3h2v2H7v-2zm0 3h2v2H7v-2zm0 3h2v2H7v-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236C5.515 3 8.093 2.56 10.261 3.44L6.343 7.358l1.414 1.415L12 4.53l-.013-.014.014.013c2.349-2.109 5.979-2.039 8.242.228z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M20.243 4.757c2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228 2.349-2.109 5.979-2.039 8.242.228zM5.172 6.172c-1.49 1.49-1.565 3.875-.192 5.451L12 18.654l7.02-7.03c1.374-1.577 1.299-3.959-.193-5.454-1.487-1.49-3.881-1.562-5.453-.186l-4.202 4.203-1.415-1.414 2.825-2.827-.082-.069c-1.575-1.265-3.877-1.157-5.328.295z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M12.001 4.529c2.349-2.109 5.979-2.039 8.242.228 2.262 2.268 2.34 5.88.236 8.236l-8.48 8.492-8.478-8.492c-2.104-2.356-2.025-5.974.236-8.236 2.265-2.264 5.888-2.34 8.244-.228z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.978-1.187-7.084-3.937-9.132-8.5h4.698l.934-1.556 3 5L13.566 13H17v-2h-4.566l-.934 1.556-3-5L6.434 11H2.21C2.074 10.363 2 9.696 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M16.5 3C19.538 3 22 5.5 22 9c0 7-7.5 11-10 12.5-1.977-1.186-7.083-3.937-9.131-8.499L1 13v-2h1.21C2.074 10.364 2 9.698 2 9c0-3.5 2.5-6 5.5-6C9.36 3 11 4 12 5c1-1 2.64-2 4.5-2zm0 2c-1.076 0-2.24.57-3.086 1.414L12 7.828l-1.414-1.414C9.74 5.57 8.576 5 7.5 5 5.56 5 4 6.656 4 9c0 .685.09 1.352.267 2h2.167L8.5 7.556l3 5L12.434 11H17v2h-3.434L11.5 16.444l-3-5L7.566 13H5.108c.79 1.374 1.985 2.668 3.537 3.903.745.592 1.54 1.145 2.421 1.7.299.189.595.37.934.572.339-.202.635-.383.934-.571.881-.556 1.676-1.109 2.42-1.701C18.335 14.533 20 11.943 20 9c0-2.36-1.537-4-3.5-4z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M13.06 8.11l1.415 1.415a7 7 0 0 1 0 9.9l-.354.353a7 7 0 0 1-9.9-9.9l1.415 1.415a5 5 0 1 0 7.071 7.071l.354-.354a5 5 0 0 0 0-7.07l-1.415-1.415 1.415-1.414zm6.718 6.011l-1.414-1.414a5 5 0 1 0-7.071-7.071l-.354.354a5 5 0 0 0 0 7.07l1.415 1.415-1.415 1.414-1.414-1.414a7 7 0 0 1 0-9.9l.354-.353a7 7 0 0 1 9.9 9.9z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zm-.692-2H20V5H4v13.385L5.763 17zM11 10h2v2h-2v-2zm-4 0h2v2H7v-2zm8 0h2v2h-2v-2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M6 5h2v14H6V5zm10 0h2v14h-2V5z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM10.622 8.415l4.879 3.252a.4.4 0 0 1 0 .666l-4.88 3.252a.4.4 0 0 1-.621-.332V8.747a.4.4 0 0 1 .622-.332z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M19.376 12.416L8.777 19.482A.5.5 0 0 1 8 19.066V4.934a.5.5 0 0 1 .777-.416l10.599 7.066a.5.5 0 0 1 0 .832z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M2 18h10v2H2v-2zm0-7h14v2H2v-2zm0-7h20v2H2V4zm17 11.17V9h5v2h-3v7a3 3 0 1 1-2-2.83zM18 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path fill-rule=\"nonzero\" d=\"M9 8.482v7.036L15.03 12 9 8.482zM7.752 5.44l10.508 6.13a.5.5 0 0 1 0 .863l-10.508 6.13A.5.5 0 0 1 7 18.128V5.871a.5.5 0 0 1 .752-.432z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-3a5 5 0 1 1 0-10 5 5 0 0 1 0 10z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 10h3V6H4v4h11V8h2v2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zm1 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M17 10V8h-2v2H5V6h14v4h-2zM6 3V1h2v2h13.008c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3H6zM4 5v14h16V5H4zm4 13a3 3 0 1 1 0-6 3 3 0 0 1 0 6z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M5.463 4.433A9.961 9.961 0 0 1 12 2c5.523 0 10 4.477 10 10 0 2.136-.67 4.116-1.81 5.74L17 12h3A8 8 0 0 0 6.46 6.228l-.997-1.795zm13.074 15.134A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12c0-2.136.67-4.116 1.81-5.74L7 12H4a8 8 0 0 0 13.54 5.772l.997 1.795z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M8 20v1.932a.5.5 0 0 1-.82.385l-4.12-3.433A.5.5 0 0 1 3.382 18H18a2 2 0 0 0 2-2V8h2v8a4 4 0 0 1-4 4H8zm8-17.932a.5.5 0 0 1 .82-.385l4.12 3.433a.5.5 0 0 1-.321.884H6a2 2 0 0 0-2 2v8H2V8a4 4 0 0 1 4-4h10V2.068zM11 8h2v8h-2v-6H9V9l2-1z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617zm-2.006-.742A6.977 6.977 0 0 0 18 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 0 0 4.875-1.975l.15-.15z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M18 17.883V16l5 3-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M8 11.333l10.223-6.815a.5.5 0 0 1 .777.416v14.132a.5.5 0 0 1-.777.416L8 12.667V19a1 1 0 0 1-2 0V5a1 1 0 1 1 2 0v6.333z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M16 12.667L5.777 19.482A.5.5 0 0 1 5 19.066V4.934a.5.5 0 0 1 .777-.416L16 11.333V5a1 1 0 0 1 2 0v14a1 1 0 0 1-2 0v-6.333z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M7.788 17.444A.5.5 0 0 1 7 17.035V6.965a.5.5 0 0 1 .788-.409l7.133 5.036a.5.5 0 0 1 0 .816l-7.133 5.036zM16 7a1 1 0 0 1 2 0v10a1 1 0 1 1-2 0V7z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0H24V24H0z\"></path>        <path d=\"M20 4v12h3l-4 5-4-5h3V4h2zm-8 14v2H3v-2h9zm2-7v2H3v-2h11zm0-7v2H3V4h11z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M12 17l-5.878 3.59 1.598-6.7-5.23-4.48 6.865-.55L12 2.5l2.645 6.36 6.866.55-5.231 4.48 1.598 6.7z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M2 9h3v12H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zm5.293-1.293l6.4-6.4a.5.5 0 0 1 .654-.047l.853.64a1.5 1.5 0 0 1 .553 1.57L14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H8a1 1 0 0 1-1-1V8.414a1 1 0 0 1 .293-.707z\"></path>\n</svg>","<script>\nexport let size = '1em';\nexport let color = 'currentColor';\nlet customClass = '';\nexport { customClass as class };\n</script>\n\n<svg\nxmlns=\"http://www.w3.org/2000/svg\"\nviewBox=\"0 0 24 24\"\nwidth={size}\nheight={size}\nfill={color}\nclass=\"remixicon {customClass}\"\n{...$$restProps}\non:click\n>\n<path fill=\"none\" d=\"M0 0h24v24H0z\"></path>        <path d=\"M14.6 8H21a2 2 0 0 1 2 2v2.104a2 2 0 0 1-.15.762l-3.095 7.515a1 1 0 0 1-.925.619H2a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1h3.482a1 1 0 0 0 .817-.423L11.752.85a.5.5 0 0 1 .632-.159l1.814.907a2.5 2.5 0 0 1 1.305 2.853L14.6 8zM7 10.588V19h11.16L21 12.104V10h-6.4a2 2 0 0 1-1.938-2.493l.903-3.548a.5.5 0 0 0-.261-.571l-.661-.33-4.71 6.672c-.25.354-.57.644-.933.858zM5 11H3v8h2v-8z\"></path>\n</svg>","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t//     character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","export default {\n  大笑: '86',\n  可爱: '85',\n  憨笑: '359',\n  色: '95',\n  亲亲: '363',\n  惊恐: '96',\n  流泪: '356',\n  亲: '362',\n  呆: '352',\n  哀伤: '342',\n  呲牙: '343',\n  吐舌: '348',\n  撇嘴: '353',\n  怒: '361',\n  奸笑: '341',\n  汗: '97',\n  痛苦: '346',\n  惶恐: '354',\n  生病: '350',\n  口罩: '351',\n  大哭: '357',\n  晕: '355',\n  发怒: '115',\n  开心: '360',\n  鬼脸: '94',\n  皱眉: '87',\n  流感: '358',\n  爱心: '33',\n  心碎: '34',\n  钟情: '303',\n  星星: '309',\n  生气: '314',\n  便便: '89',\n  强: '13',\n  弱: '372',\n  拜: '14',\n  牵手: '379',\n  跳舞: '380',\n  禁止: '374',\n  这边: '262',\n  爱意: '106',\n  示爱: '376',\n  嘴唇: '367',\n  狗: '81',\n  猫: '78',\n  猪: '100',\n  兔子: '459',\n  小鸡: '450',\n  公鸡: '461',\n  幽灵: '116',\n  圣诞: '411',\n  外星: '101',\n  钻石: '52',\n  礼物: '107',\n  男孩: '0',\n  女孩: '1',\n  蛋糕: '337',\n  18: '186',\n  圈: '312',\n  叉: '313',\n  多多大笑: 'dx2',\n  多多耍酷: 'dx3',\n  多多比耶: 'dx4',\n  多多大哭: 'dx5',\n  多多瞌睡: 'dx6',\n  多多难过: 'dx7',\n  多多笑哭: 'dx8',\n  多多可怜: 'dx8',\n  多多无语: 'dx10',\n  多多捂脸: 'dx11',\n  多多亲吻: 'dx12',\n  多多调皮: 'dx13',\n  西西心动: 'dx14',\n  西西发怒: 'dx15',\n  西西惊讶: 'dx16',\n  西西奸笑: 'dx17',\n  西西晕了: 'dx18',\n  西西机智: 'dx19',\n  西西惊吓: 'dx20',\n  西西流汗: 'dx21',\n  西西呕吐: 'dx22',\n  西西再见: 'dx23',\n  西西疑问: 'dx24',\n};\n","import Cookies from 'js-cookie';\nimport Emoji from './emoji';\n\n// 设置MusicU cookie\nexport function setMusicU(key, value) {\n  return Cookies.set(key, value);\n}\n\n// 设置cookie\nexport function setCookies(string) {\n  const cookies = string.split(';;');\n  cookies.map(cookie => {\n    document.cookie = cookie;\n  });\n}\n\n// 获取cookie\nexport function getCookies() {\n  return document.cookie;\n}\n\nexport const fullWidth = () =>\n  localStorage.getItem('fullWidth');\n\n//时间戳转为时间\n//format支持五种格式,'yyyy年MM月dd日'、'yyyyMMdd'、'yyyy-MM-dd'、'yyyy/MM/dd'、'yyyy-MM-dd hh:mm:ss'\nexport function formatTime(time, format = 'yyyy年MM月dd日') {\n  const timer = new Date(time);\n  const Y = timer.getFullYear();\n  const M = timer.getMonth() + 1 < 10 ? '0' + (timer.getMonth() + 1) : timer.getMonth() + 1;\n  const D = timer.getDate() < 10 ? '0' + timer.getDate() : timer.getDate();\n  const h = timer.getHours() < 10 ? '0' + timer.getHours() : timer.getHours();\n  const m = timer.getMinutes() < 10 ? '0' + timer.getMinutes() : timer.getMinutes();\n  const s = timer.getSeconds() < 10 ? '0' + timer.getSeconds() : timer.getSeconds();\n  switch (format) {\n    case 'yyyy年MM月dd日':\n      return `${Y}年${M}月${D}日`;\n    case 'yyyyMMdd':\n      return `${Y}${M}${D}`;\n    case 'yyyy-MM-dd':\n      return `${Y}-${M}-${D}`;\n    case 'yyyy/MM/dd':\n      return `${Y}/${M}/${D}`;\n    case 'yyyy-MM-dd hh:mm:ss':\n      return `${Y}-${M}-${D} ${h}:${m}:${s}`;\n    default:\n      console.log('format参数不对');\n      break;\n  }\n}\n\n/**歌曲详情中歌手数据为数组,此工具转换为字符拼接\n * @param {需要处理的数据数组} Array\n */\nexport function songerListToStr(arr = [], isObj = true) {\n  let songerList = [];\n  if (isObj) {\n    for (let i = 0; i < arr.length; i++) {\n      songerList.push(arr[i].name);\n    }\n    return songerList.join('/');\n  } else {\n    for (let i = 0; i < arr.length; i++) {\n      songerList.push(arr[i]);\n    }\n    return songerList.join('/');\n  }\n}\n\n/**\n * 数字转整数 如 100000 转为10万\n * @param {需要转化的数} num\n * @param {需要保留的小数位数} point\n */\nexport function tranNumber(num, point = 1) {\n  let numStr = parseInt(num).toString();\n  // 万以内直接返回\n  if (numStr.length < 5) {\n    return numStr;\n  }\n  //大于8位数是亿\n  else if (numStr.length > 8) {\n    let decimal = numStr.substring(numStr.length - 8, numStr.length - 8 + point);\n    return parseFloat(parseInt(num / 100000000) + '.' + decimal) + '亿';\n  }\n  //大于6位数是十万 (以10W分割 10W以下全部显示)\n  else if (numStr.length > 4) {\n    let decimal = numStr.substring(numStr.length - 4, numStr.length - 4 + point);\n    return parseFloat(parseInt(num / 10000) + '.' + decimal) + '万';\n  }\n}\n\n/**\n * 让任意对象滚动一定距离的scrollTop\n * @param {滚动的元素} obj\n * @param {滚动的距离} target\n * @param {滚动时间} time\n */\nexport function scrollAnimate(obj, target, time = 500) {\n  clearInterval(obj.timer);\n  let step = (target - obj.scrollTop) / (time / 10);\n  obj.timer = setInterval(function () {\n    step = step > 0 ? Math.ceil(step) : Math.floor(step);\n    obj.scrollTop = obj.scrollTop + step;\n    if (obj.scrollTop >= target || obj.scrollTop + obj.offsetHeight >= obj.scrollHeight) {\n      clearInterval(obj.timer);\n    }\n  }, 10);\n}\n\n/**\n * 让任意对象滚动指定的scrollTop\n * @param {滚动的元素} dom\n * @param {滚动指定的最终scrollTop} position\n */\nexport function scrollSmoothTo(dom, position) {\n  if (!window.requestAnimationFrame) {\n    window.requestAnimationFrame = function (callback, element) {\n      return setTimeout(callback, 17);\n    };\n  }\n  // 当前滚动高度\n  var scrollTop = dom.scrollTop;\n  // 滚动step方法\n  var step = function () {\n    // 距离目标滚动距离\n    var distance = position - scrollTop;\n    // 目标滚动位置\n    scrollTop = scrollTop + distance / 10;\n    if (Math.abs(distance) < 1) {\n      dom.scrollTo(0, position);\n    } else {\n      dom.scrollTo(0, scrollTop);\n      requestAnimationFrame(step);\n    }\n  };\n  step();\n}\n\n//界面toast提示\n/*使用方法 Toast('这是一个弹框',2000)*/\nexport function Toast(msg, duration, callback) {\n  duration = isNaN(duration) ? 1000 : duration;\n  if (localStorage.getItem('isShowToast') === '1') {\n  } else {\n    localStorage.setItem('isShowToast', '1');\n    let m = document.createElement('div');\n    m.innerHTML = msg;\n    m.style.cssText =\n      'max-width:80%;padding:10px;color: rgb(255, 255, 255);text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 14px;';\n    document.body.appendChild(m);\n    setTimeout(function () {\n      const d = 0.5;\n      m.style.transition = 'ttransform ' + d + 's ease-in, opacity ' + d + 's ease-in';\n      m.style.opacity = '0';\n      setTimeout(function () {\n        localStorage.setItem('isShowToast', '0');\n        document.body.removeChild(m);\n        if (typeof callback === 'function') callback();\n      }, d * 1000);\n    }, duration);\n  }\n}\n\n//界面alert提示\n/*使用方法 Alert('这是一个弹框')*/\nexport function Alert(msg, btnText = '我知道了') {\n  let m = document.createElement('div');\n  m.onclick = function () {\n    // m.style.display = \"none\";\n    document.body.removeChild(m);\n  };\n  let strHtml = `<div>${msg}</div><div style='height:36px;width:60%;line-height:36px;color:#fff;margin:20px auto 0px;background:var(--primary-text-color);border-radius: 4px;'>${btnText}</div>`;\n  m.innerHTML = strHtml;\n  m.style.cssText =\n    'width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)';\n  document.body.appendChild(m);\n}\n\n/**\n *\n * @param {string} msg 提示文本\n * @param {function} callback 点击确定后回调\n * @param {function} cancelback 点击取消后回调\n * @param {string} yes 确定文字\n * @param {string} no 取消文字\n */\nexport function Confirm(msg, callback, yes = '确定', no = '取消', cancelback) {\n  let m = document.createElement('div');\n  let strHtml = `<div>${msg}</div><div style='height:36px;line-height:36px;color:#fff;margin:20px auto 0px;display:flex'><div style='flex:1;background:#e2e2e2;color:#666;line-height:36px;border-radius: 4px;margin:0 5px;' id='ConfirmNo'>${no}</div> <div style='margin:0 5px;flex:1;border-radius: 4px;line-height:36px;background:var(--primary-text-color);' id='ConfirmYes'>${yes}</div></div>`;\n  m.innerHTML = strHtml;\n  m.style.cssText =\n    'width:60%;padding:20px;color: #666;text-align: center;border-radius: 10px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(255, 255, 255, 1);font-size: 14px;box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15)';\n  document.body.appendChild(m);\n  document.getElementById('ConfirmNo').onclick = function () {\n    document.body.removeChild(m);\n    cancelback();\n  };\n  document.getElementById('ConfirmYes').onclick = function () {\n    document.body.removeChild(m);\n    callback();\n  };\n}\n\n/**\n * 将数组按照指定长度分割\n * @param {Array} array ,传入数组\n * @param {Number} subLength ,分割长度\n * @returns 返回处理后的数组\n */\nexport function cutArray(array, subLength = 150) {\n  let newArr = [];\n  if (array.length <= subLength) {\n    newArr.push(array);\n    return newArr;\n  } else {\n    let index = 0;\n    while (index < array.length) {\n      newArr.push(array.slice(index, (index += subLength)));\n    }\n    return newArr;\n  }\n}\n\n/**\n * 将文本中包含无法显示的 emoji 表情转成图片显示。比如 [吃惊] 之类\n * @param {string} text\n * @returns\n */\nexport function emojiToImg(text) {\n  const regex = /\\[[^\\[\\]]{1,4}\\]/g; //  /\\[.{1,10}\\]/g\n  if (!text.match(regex)) {\n    let fullText = `<span>${text}</span>`;\n    return fullText;\n  } else {\n    let textMatchList = text.match(regex);\n    if (textMatchList.length > 0) {\n      //包含[]表情\n      for (let x = 0; x < textMatchList.length; x++) {\n        if (textMatchList[x].indexOf('][') > -1) {\n          let itemList = textMatchList[x].split('][');\n          for (let t = 0; t < itemList.length; t++) {\n            if (itemList[t].substr(0, 1) !== '[') {\n              itemList[t] = `[${itemList[t]}`;\n            }\n            if (itemList[t].substr(itemList[t].length - 1, 1) !== ']') {\n              itemList[t] = `${itemList[t]}]`;\n            }\n          }\n          textMatchList = itemList;\n        }\n      }\n      for (let p = 0; p < textMatchList.length; p++) {\n        textMatchList[p] = textMatchList[p].substr(1); //删除首字符\n        textMatchList[p] = textMatchList[p].substring(0, textMatchList[p].length - 1); //删除最后末字符\n      }\n      const newtextMatchList = textMatchList;\n      if (newtextMatchList.length > 1) {\n        let newText = text;\n        for (let i = 0; i < newtextMatchList.length; i++) {\n          if (Emoji.hasOwnProperty(newtextMatchList[i])) {\n            newText = newText.replace(\n              new RegExp(`\\\\[${newtextMatchList[i]}\\\\]`, 'g'),\n              `<img style=\"vertical-align:middle;height:18px;width:18px;\" src=\"${emojiToUrl(\n                Emoji[newtextMatchList[i]]\n              )}\"></img>`\n            );\n          } else {\n            newText = text;\n          }\n        }\n        let fullText = `<span>${newText}</span>`;\n        return fullText;\n      } else {\n        if (Emoji.hasOwnProperty(newtextMatchList[0])) {\n          let newText = text.replace(\n            new RegExp(`\\\\[${newtextMatchList[0]}\\\\]`, 'g'),\n            `<img style=\"vertical-align:middle;height:18px;width:18px;\" src=\"${emojiToUrl(\n              Emoji[newtextMatchList[0]]\n            )}\"></img>`\n          );\n          let fullText = `<span>${newText}</span>`;\n          return fullText;\n        } else {\n          let fullText = `<span>${text}</span>`;\n          return fullText;\n        }\n      }\n    } else {\n      let fullText = `<span>${text}</span>`;\n      return fullText;\n    }\n  }\n}\nfunction emojiToUrl(value) {\n  if (value.substring(0, 2) === 'dx') {\n    return `/images/dd_and_xx/${value}.png`;\n  } else {\n    return `https://s1.music.126.net/style/web2/emt/emoji_${value}.png`;\n  }\n}\n\n/**\n * 处理 URL 中的参数\n * @param {string} search,传入的参数\n * @returns 返回处理之后的对象\n */\nexport function parseQuery(search) {\n  let theRequest = new Object();\n  let strs = '';\n  if (search.indexOf('?') != -1) {\n    let str = search.substr(1);\n    strs = str.split('&');\n    for (let i = 0; i < strs.length; i++) {\n      theRequest[strs[i].split('=')[0]] = decodeURIComponent(strs[i].split('=')[1]);\n    }\n  }\n  return theRequest;\n}\n\n/**\n * 封装 ripple 点击效果。传入要产生涟漪效果的 DOM 元素即可\n * @param {dom} dom\n */\nexport function ripple(dom, list = false) {\n  if (list) {\n    for (let t = 0; t < dom.childNodes.length; t++) {\n      dom.childNodes[t].addEventListener('touchstart', createRipple);\n      dom.childNodes[t].addEventListener('touchend', removeRipple);\n    }\n  } else {\n    dom.addEventListener('touchstart', createRipple);\n    dom.addEventListener('touchend', removeRipple);\n  }\n}\nfunction computeRippleStyles(element, event) {\n  const { top, left } = element.getBoundingClientRect();\n  const { clientWidth, clientHeight } = element;\n  const radius = Math.sqrt(clientWidth ** 2 + clientHeight ** 2) / 2;\n  const size = radius * 2;\n  const localX = event.changedTouches[0].clientX - left;\n  const localY = event.changedTouches[0].clientY - top;\n  const centerX = (clientWidth - radius * 2) / 2;\n  const centerY = (clientHeight - radius * 2) / 2;\n  const x = localX - radius;\n  const y = localY - radius;\n  return { x, y, centerX, centerY, size };\n}\nfunction createRipple(event) {\n  const container = this;\n  const { x, y, centerX, centerY, size } = computeRippleStyles(container, event);\n  const ripple = document.createElement('div');\n  ripple.classList.add('my-ripple');\n  ripple.style.opacity = `0`;\n  ripple.style.transform = `translate(${x}px, ${y}px) scale3d(.3, .3, .3)`;\n  ripple.style.width = `${size}px`;\n  ripple.style.height = `${size}px`;\n  // 记录水波的创建时间\n  ripple.dataset.createdAt = String(performance.now());\n  const { position } = window.getComputedStyle(container);\n  container.style.overflow = 'hidden';\n  position === 'static' && (this.style.position = 'relative');\n  container.appendChild(ripple);\n  window.setTimeout(() => {\n    ripple.style.transform = `translate(${centerX}px, ${centerY}px) scale3d(1, 1, 1)`;\n    ripple.style.opacity = `.2`;\n  });\n}\nfunction removeRipple() {\n  const container = this;\n  const ripples = container.querySelectorAll('.my-ripple');\n  if (!ripples.length) {\n    return;\n  }\n  const lastRipple = ripples[ripples.length - 1];\n  // 通过水波的创建时间计算出扩散动画还需要执行多久,确保每一个水波都完整的执行了扩散动画\n  const delay = 300 - performance.now() + Number(lastRipple.dataset.createdAt);\n  setTimeout(() => {\n    lastRipple.style.opacity = `0`;\n    setTimeout(() => lastRipple.parentNode?.removeChild(lastRipple), 300);\n  }, delay);\n}\n\n// 获取操作系统信息\nexport function getOsInfo() {\n  var userAgent = navigator.userAgent.toLowerCase();\n  var os = 'Unknown';\n  var version = 'Unknown';\n  if (userAgent.indexOf('win') > -1) {\n    os = 'Windows';\n    if (userAgent.indexOf('windows nt 5.0') > -1) {\n      version = 'Windows 2000';\n    } else if (userAgent.indexOf('windows nt 5.1') > -1 || userAgent.indexOf('windows nt 5.2') > -1) {\n      version = 'Windows XP';\n    } else if (userAgent.indexOf('windows nt 6.0') > -1) {\n      version = 'Windows Vista';\n    } else if (userAgent.indexOf('windows nt 6.1') > -1 || userAgent.indexOf('windows 7') > -1) {\n      version = 'Windows 7';\n    } else if (userAgent.indexOf('windows nt 6.2') > -1 || userAgent.indexOf('windows 8') > -1) {\n      version = 'Windows 8';\n    } else if (userAgent.indexOf('windows nt 6.3') > -1) {\n      version = 'Windows 8.1';\n    } else if (userAgent.indexOf('windows nt 6.2') > -1 || userAgent.indexOf('windows nt 10.0') > -1) {\n      version = 'Windows 10';\n    } else {\n      version = 'Unknown';\n    }\n  } else if (userAgent.indexOf('iphone') > -1) {\n    os = 'iPhone';\n  } else if (userAgent.indexOf('mac') > -1) {\n    os = 'Mac';\n  } else if (\n    userAgent.indexOf('x11') > -1 ||\n    userAgent.indexOf('unix') > -1 ||\n    userAgent.indexOf('sunname') > -1 ||\n    userAgent.indexOf('bsd') > -1\n  ) {\n    os = 'Unix';\n  } else if (userAgent.indexOf('linux') > -1) {\n    if (userAgent.indexOf('android') > -1) {\n      os = 'Android';\n    } else {\n      os = 'Linux';\n    }\n  } else {\n    os = 'Unknown';\n  }\n  return { os, version };\n}\n\n//浏览器与版本号\nexport function getUserAgentInfo() {\n  var userAgent = navigator.userAgent;\n  var version;\n  if (/opera/i.test(userAgent) || /OPR/i.test(userAgent)) {\n    version = getVersion(userAgent, 'OPR/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'opera', version };\n  } else if (/compatible/i.test(userAgent) && /MSIE/i.test(userAgent)) {\n    version = getVersion(userAgent, 'MSIE (\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'ie', version };\n  } else if (/Edge/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Edge/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'edge', version };\n  } else if (/Firefox/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Firefox/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'firefox', version };\n  } else if (/Safari/i.test(userAgent) && !/Chrome/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Safari/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'safari', version };\n  } else if (/Chrome/i.test(userAgent) && /Safari/i.test(userAgent)) {\n    version = getVersion(userAgent, 'Chrome/(\\\\d+\\\\.+\\\\d+)');\n    return { browser: 'chrome', version };\n  } else if (!!window.ActiveXObject || 'ActiveXObject' in window) {\n    version = 11;\n    return { browser: 'ie', version };\n  }\n}\n//版本号\nfunction getVersion(userAgent, reg) {\n  var reBrowser = new RegExp(reg);\n  reBrowser.test(userAgent);\n  return parseFloat(RegExp['$1']);\n}\n\n//处理时间,将传入的时间(秒),转换为时分秒格式。\n// times(number)\nexport function timeToMinute(times) {\n  var result = '00:00';\n  var hour, minute, second;\n  if (times > 0) {\n    hour = Math.floor(times / 3600);\n    if (hour < 10) {\n      hour = '0' + hour;\n    }\n    minute = Math.floor((times - 3600 * hour) / 60);\n    if (minute < 10) {\n      minute = '0' + minute;\n    }\n    second = Math.floor((times - 3600 * hour - 60 * minute) % 60);\n    if (second < 10) {\n      second = '0' + second;\n    }\n    if (hour == '00') {\n      result = minute + ':' + second;\n    } else if (minute == '00') {\n      // result = hour + \":\" + minute + \":\" + second;\n      result = minute + ':' + second;\n    } else {\n      result = second;\n    }\n  }\n  return result;\n}\n","<script>\n  import { onMount } from 'svelte';\n  import { createEventDispatcher } from 'svelte';\n\n  import { ripple } from '../../utils/common';\n\n  export let type = 'default'; //primary\n  const dispatch = createEventDispatcher();\n  function setClick() {\n    dispatch('BtnClick');\n  }\n\n  let btnDom;\n\n  onMount(() => {\n    if (btnDom) {\n      ripple(btnDom);\n    }\n  });\n</script>\n\n<button\n  on:click={setClick}\n  class=\"botton\"\n  class:default={type === 'default'}\n  class:primary={type === 'primary'}\n  bind:this={btnDom}\n>\n  <slot />\n</button>\n\n<style>\n  .botton {\n    text-align: center;\n    align-items: center;\n    width: 100%;\n    margin: auto;\n    height: 46px;\n    line-height: 46px;\n    background: var(--primary-text-color);\n    color: #fff;\n    border-radius: 6px;\n    border: none;\n    font-size: 16px;\n    font-weight: bold;\n  }\n  .default {\n    background: var(--secondary-background-color);\n    color: var(--primary-text-color);\n  }\n  .primary {\n    background: var(--primary-text-color);\n    color: #fff;\n  }\n</style>\n","<script>\n  import { pop } from 'svelte-stack-router';\n  import { createEventDispatcher, onMount, afterUpdate } from 'svelte';\n  import { ArrowLeftLine } from 'svelte-remixicon';\n\n  import { ripple } from '../../utils/common';\n\n  export let title = 'Title';\n  export let leftEvent = false;\n  export let transparent = false;\n  export let fixed = true;\n  export let alphaNumber = 1;\n  export let dark = false;\n  export let rightIcons = [];\n  export let isRefresh = false; //是否刷新中\n\n  let leftDom;\n  let rightDoms;\n\n  onMount(() => {\n    if (leftDom) ripple(leftDom);\n    if (rightDoms) {\n      ripple(rightDoms);\n    }\n    return () => {\n      rightDoms = null;\n    };\n  });\n\n  afterUpdate(() => {\n    if (rightDoms) {\n      ripple(rightDoms, true);\n    }\n  });\n\n  const dispatch = createEventDispatcher();\n\n  function setLeftClick() {\n    dispatch('setLeftClick');\n  }\n  function iconClick(id) {\n    dispatch('setRightIconClick', { id });\n  }\n</script>\n\n<div\n  class=\"nav secondary\"\n  style=\"background-color:rgba(255, 255, 255, {transparent ? alphaNumber : 1})\"\n  class:transparent\n  class:fixed={transparent ? true : fixed}\n>\n  <div\n    bind:this={leftDom}\n    class=\"left\"\n    style=\"color:rgba({transparent ? 255 * (1 - alphaNumber) : 0}, {transparent\n      ? 255 * (1 - alphaNumber)\n      : 0}, {transparent ? 255 * (1 - alphaNumber) : 0}, 1)\"\n    class:transparent\n    on:click={() => {\n      if (leftEvent) {\n        setLeftClick();\n      } else {\n        pop();\n      }\n    }}\n  >\n    <ArrowLeftLine size=\"22\" style=\"vertical-align: middle\" />\n  </div>\n  <div\n    class=\"center\"\n    class:dark\n    style=\"color:rgba({transparent ? 255 * (1 - alphaNumber) : 0}, {transparent\n      ? 255 * (1 - alphaNumber)\n      : 0}, {transparent ? 255 * (1 - alphaNumber) : 0}, 1)\"\n  >\n    {title}\n  </div>\n  <div class=\"right\" bind:this={rightDoms}>\n    {#if rightIcons.length > 0}\n      {#each rightIcons as rightIcon}\n        <div class=\"right-item\" on:click={() => iconClick(rightIcon.id)}>\n          <span class:rotate-icon={rightIcon.id === 'RefreshLine' && isRefresh}>\n            <svelte:component this={rightIcon.icon} size=\"22\" style=\"vertical-align: middle\" />\n          </span>\n        </div>\n      {/each}\n    {/if}\n  </div>\n</div>\n\n<style>\n  .rotate-icon {\n    display: inline-block;\n    -webkit-animation: myRotate 2s linear infinite;\n    animation: myRotate 2s linear infinite;\n  }\n  @keyframes myRotate {\n    0% {\n      transform: rotate(0deg);\n    }\n    50% {\n      transform: rotate(180deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  .dark {\n    color: #fff;\n  }\n  .transparent {\n    background-color: transparent;\n  }\n  .fixed {\n    position: fixed;\n    top: 0;\n  }\n  .nav {\n    width: 100%;\n    text-align: center;\n    align-items: center;\n    display: flex;\n    height: 50px;\n    font-size: 16px;\n    line-height: 50px;\n    z-index: 99;\n    background-color: #fff;\n  }\n  .left {\n    height: 50px;\n    line-height: 50px;\n    flex: 1;\n  }\n  .center {\n    line-height: 50px;\n    text-align: left;\n    flex: 5;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n  }\n  .right {\n    flex: 1;\n    display: flex;\n    justify-content: space-between;\n  }\n  .right-item {\n    flex: 1;\n    height: 50px;\n    line-height: 50px;\n    padding: 0 10px;\n  }\n</style>\n","<div class=\"diveder\" />\n\n<style>\n  .diveder {\n    margin: 5px auto;\n    height: 1px;\n    background-color: rgba(197, 197, 197, 0.3);\n  }\n</style>\n","<script>\n  import { onMount, createEventDispatcher } from 'svelte';\n\n  export let label = 'label';\n  export let type = 'text';\n  export let maxlength = 15;\n  export let placeholder = null;\n  export let value = '';\n  export let rightBtn = false;\n  export let btnText = '获取验证码';\n  $: defatltPlaceholder = '请输入' + label;\n  let inputDom;\n\n  const dispatch = createEventDispatcher();\n\n  onMount(() => {\n    setTimeout(function () {\n      inputDom.scrollIntoView(true);\n      inputDom.scrollIntoViewIfNeeded();\n    }, 300);\n    inputDom.type = type;\n  });\n  function setInput() {\n    dispatch('setInput', {\n      value,\n    });\n  }\n  function btnClick() {\n    dispatch('setBtn');\n  }\n</script>\n\n<div class=\"box\">\n  <div class=\"label\">{label}</div>\n  <input\n    bind:value\n    bind:this={inputDom}\n    {maxlength}\n    on:input={setInput}\n    placeholder={placeholder ? placeholder : defatltPlaceholder}\n    style=\"width:{rightBtn ? '75%' : '100%'}\"\n  />\n  {#if rightBtn}\n    <span class=\"right-btn\" on:click={btnClick}>{btnText}</span>\n  {/if}\n</div>\n\n<style>\n  .right-btn {\n    font-size: 10px;\n    border-radius: 4px;\n    border: 1px solid rgb(182, 182, 182);\n    line-height: 24px;\n    padding: 0 4px;\n    float: right;\n  }\n  .box {\n    width: 80%;\n    margin: auto;\n    padding: 14px;\n    overflow: hidden;\n  }\n  .label {\n    font-size: 14px;\n    margin-bottom: 6px;\n    color: rgb(139, 139, 139);\n  }\n  input {\n    padding: 0;\n    box-shadow: none;\n    outline: none;\n    -webkit-appearance: none;\n    border-radius: 0;\n    font-size: 18px;\n    line-height: 24px;\n    border-top: none;\n    border-left: none;\n    border-right: none;\n    width: 100%;\n    background: none;\n    border-bottom: 1px solid var(--secondary-dark-text-color);\n  }\n  input::-webkit-input-placeholder {\n    font-size: 16px;\n  }\n  input:focus {\n    box-shadow: none;\n    outline: none;\n    -webkit-appearance: none;\n    border-radius: 0;\n    border-bottom: 1px solid var(--primary-text-color);\n  }\n</style>\n","<script>\n  import { onMount, afterUpdate, createEventDispatcher } from 'svelte';\n\n  export let min = 0;\n  export let max = 100;\n  export let step = 1;\n  export let current = 0;\n  export let timeCurrent = 0;\n  let currentLong = 0;\n  let slider;\n  let scale = 0;\n  let movePoint = 20;\n\n  const dispatch = createEventDispatcher();\n\n  onMount(() => {\n    scale = slider.clientWidth / (max / step);\n  });\n  afterUpdate(() => {\n    currentLong = current;\n  });\n  function setCurrent() {\n    dispatch('setCurrent', {\n      current,\n    });\n  }\n  function setTimeCurrent() {\n    dispatch('setTimeCurrent', {\n      timeCurrent,\n    });\n  }\n  function handleClick(e) {\n    const distance = e.clientX - slider.getBoundingClientRect().left;\n    const value = Math.round(distance / scale) * step;\n    current = currentLong = value;\n    setCurrent();\n  }\n  function touchStart(e) {\n    movePoint = e.changedTouches[0].clientX;\n  }\n  function touchEnd(e) {\n    movePoint = e.changedTouches[0].clientX;\n    if (movePoint <= 20) {\n      current = timeCurrent = currentLong = min;\n    } else if (movePoint >= 355) {\n      current = timeCurrent = currentLong = max;\n    } else {\n      current = timeCurrent = currentLong = ((movePoint - 20) / 335) * 100;\n    }\n    setCurrent();\n    setTimeCurrent();\n  }\n  function touchMove(e) {\n    movePoint = e.changedTouches[0].clientX;\n    if (movePoint <= 20) {\n      timeCurrent = currentLong = min;\n    } else if (movePoint >= 355) {\n      timeCurrent = currentLong = max;\n    } else {\n      timeCurrent = currentLong = ((movePoint - 20) / 335) * 100;\n    }\n    setTimeCurrent();\n  }\n</script>\n\n<div\n  bind:this={slider}\n  class=\"slider\"\n  on:click={handleClick}\n  on:touchstart={touchStart}\n  on:touchmove={touchMove}\n  on:touchend={touchEnd}\n>\n  <div class=\"rail\">\n    <div class=\"ball\" style=\"left:calc({(currentLong / max) * 100}% - 7px)\" />\n    <div class=\"fill\" style=\"transform:scaleX({currentLong / max})\" />\n  </div>\n</div>\n\n<style>\n  .slider {\n    position: relative;\n    width: 100%;\n    height: 20px;\n    display: flex;\n    align-items: center;\n  }\n  .rail {\n    width: 100%;\n    height: 4px;\n    overflow: hidden;\n    border-radius: 2px;\n    background: rgba(255, 255, 255, 0.4);\n  }\n  .fill {\n    width: 100%;\n    height: 4px;\n    border-radius: 2px;\n    background: #fff;\n    transform: scaleX(0);\n    transform-origin: left;\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n  }\n  .ball {\n    width: 14px;\n    height: 14px;\n    border-radius: 10px;\n    background: #fff;\n    position: absolute;\n    top: calc(50% - 7px);\n  }\n</style>\n","import { writable } from 'svelte/store';\n\n//是否展示底部TabBar\n// export const isShowTabBarStore = writable(false);\n\n//是否Loading\nexport const isLoadingStore = writable(false);\n\n//用户是否登录\nexport const isLoginStore = writable(JSON.parse(localStorage.getItem('isLogin')) ? true : false);\n//当前是否是Home页面,为了处理首页三个页面不频繁加载\nexport const isHomePageStore = writable(true);\n//路由变化是否刷新页面\nexport const defaultResumableStore = writable(false);\n//主页active\nexport const tabbarActive = writable('1');\n//自动滚动\nexport const restoreScrollStore = writable(localStorage.getItem('restoreScroll') === '0' ? false : true);\n//音质\nexport const musicQualityStore = writable(\n  localStorage.getItem('musicQuality') ? localStorage.getItem('musicQuality') : '0'\n);\n//是否显示歌词翻译\nexport const isShowTranslateStore = writable(localStorage.getItem('isShowTranslate') === '0' ? false : true);\n//当前歌手详情 id,用于刷新歌手详情页\nexport const currentDetailSongerIdStore = writable(0);\n//解决歌手全部歌曲不返回歌曲封面问题\nexport const coverImgUrlStore = writable('');\n//是否显示热评入口\nexport const isShowCommentStore = writable(localStorage.getItem('isShowComment') === '0' ? '0' : '1');\n\nexport const defaultCover = `/images/defaultCover.png`;","<script>\n  import { onMount } from 'svelte';\n  import { ThumbUpFill, Compass3Fill, AccountCircleFill } from 'svelte-remixicon';\n\n  import { ripple } from '../../utils/common';\n  import { isHomePageStore, tabbarActive } from '../../store/common';\n\n  const navDatas = [\n    {\n      icon: ThumbUpFill,\n      text: '推荐',\n      path: '/love',\n    },\n    {\n      icon: Compass3Fill,\n      text: '发现',\n      path: '/discover',\n    },\n    {\n      icon: AccountCircleFill,\n      text: '我的',\n      path: '/mine',\n    },\n  ];\n  let tabDoms = [];\n  onMount(() => {\n    if (tabDoms.length > 0) {\n      for (let r = 0; r < tabDoms.length; r++) {\n        ripple(tabDoms[r]);\n      }\n    }\n  });\n</script>\n\n<div class=\"secondary nav\" style=\"bottom: {$isHomePageStore ? '0px' : 'calc(-55px - env(safe-area-inset-bottom))'};\">\n  {#each navDatas as navData, i}\n    <div\n      class=\"nav-item\"\n      class:active={$tabbarActive === i}\n      on:click={() => {\n        tabbarActive.set(i);\n      }}\n      bind:this={tabDoms[i]}\n    >\n      <div>\n        <svelte:component this={navData.icon} size=\"24px\" />\n      </div>\n      <div class=\"nav-text\">{navData.text}</div>\n    </div>\n  {/each}\n</div>\n\n<style>\n  .nav {\n    z-index: 599;\n    border-top: 1px solid rgba(197, 197, 197, 0.4);\n    width: 100%;\n    height: 55px;\n    position: fixed;\n    bottom: 0px;\n    display: flex;\n    text-align: center;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n    transition: all 0.4s ease-in-out;\n    -webkit-transition: all 0.4s ease-in-out;\n  }\n  .nav-item {\n    display: block;\n    font-size: 12.8px;\n    padding: 6.4px 0 9.6px;\n    flex: 1;\n  }\n  .nav-text {\n    margin-top: 3.2px;\n  }\n  .active {\n    color: var(--primary-text-color);\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from 'svelte';\n\n  export let check = false;\n  const dispatch = createEventDispatcher();\n  function setChange() {\n    dispatch('switchClick', {\n      check: !check,\n    });\n  }\n</script>\n\n<div\n  class=\"box\"\n  on:click={setChange}\n  style=\"background-color:{check ? 'var(--primary-text-color)' : 'rgb(177, 177, 177)'}\"\n>\n  <div class=\"ball\" style=\"left: {check ? '25px' : '1px'};\" />\n</div>\n\n<style>\n  .box {\n    display: inline-block;\n    width: 46px;\n    height: 22px;\n    background-color: rgb(177, 177, 177);\n    position: relative;\n    border-radius: 11px;\n    transition: all 0.3s ease;\n    -webkit-transition: all 0.3s ease;\n  }\n  .ball {\n    width: 20px;\n    height: 20px;\n    border-radius: 10px;\n    background-color: #fff;\n    position: absolute;\n    top: 1px;\n    left: 1px;\n    transition: all 0.3s ease;\n    -webkit-transition: all 0.3s ease;\n  }\n</style>\n","<script>\n  import { createEventDispatcher, onMount } from 'svelte';\n  import { ArrowRightSLine } from 'svelte-remixicon';\n  import { ripple } from '../../utils/common';\n\n  import Switch from './Switch.svelte';\n\n  let cellDom;\n  export let title = '标题';\n  export let titleDesc = '';\n  export let arrow = false;\n  export let desc = '';\n  export let cellCheck = false;\n\n  const dispatch = createEventDispatcher();\n\n  onMount(() => {\n    if (cellDom) {\n      ripple(cellDom);\n    }\n  });\n  function cellClick() {\n    if (desc === 'Switch') {\n      cellCheck = !cellCheck;\n      dispatch('cellClick', {\n        cellCheck,\n      });\n    } else {\n      dispatch('cellClick');\n    }\n  }\n</script>\n\n<div class=\"cell\" on:click={cellClick} bind:this={cellDom}>\n  <div class=\"title\">\n    <div class=\"title-main\">{title}</div>\n    {#if titleDesc != ''}\n      <div class=\"title-des\">{titleDesc}</div>\n    {/if}\n  </div>\n  <div class=\"desc\">\n    <div class=\"desc-title\">\n      {#if desc === 'Switch'}\n        <div class=\"switch\" style=\"margin-top: {titleDesc === '' ? '2px' : '8.5px'};\">\n          <Switch check={cellCheck} />\n        </div>\n      {:else}\n        {desc}\n      {/if}\n    </div>\n  </div>\n  {#if arrow}\n    <div class=\"arrow\" style=\"line-height: {titleDesc === '' ? '26px' : '39px'};\">\n      <span style=\"position: relative; top: -1px;\">\n        <ArrowRightSLine size=\"20\" style=\"vertical-align: middle;\" />\n      </span>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .cell {\n    background-color: #fff;\n    font-size: 16px;\n    padding: 13px 10px;\n    border-radius: 8px;\n    display: flex;\n    margin: 10px auto;\n  }\n  .title {\n    flex: auto;\n  }\n  .title-main {\n    height: 26px;\n    line-height: 26px;\n  }\n  .title-des {\n    font-size: 10px;\n    color: #999;\n  }\n  .desc {\n    height: 26px;\n    flex: auto;\n    display: table;\n  }\n  .desc-title {\n    vertical-align: middle;\n    display: table-cell;\n    text-align: right;\n    color: #666;\n    margin: 2px auto;\n  }\n  .switch {\n    margin-top: 2px;\n    height: 22px;\n  }\n  .arrow {\n    height: 26px;\n    line-height: 26px;\n    width: 20px;\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from \"svelte\";\n  import { CheckboxBlankCircleLine, RadioButtonLine } from \"svelte-remixicon\";\n\n  export let radioData = [];\n  export let active = 0;\n\n  const dispatch = createEventDispatcher();\n\n  function selectFun(index) {\n    active = index;\n    dispatch(\"RadioClick\", { active });\n  }\n</script>\n\n<div class=\"box\">\n  {#each radioData as item, i}\n    <div class=\"item\" on:click={() => selectFun(i)}>\n      <div class=\"left\">\n        {#if active === i}\n          <RadioButtonLine size=\"20\" color=\"var(--primary-text-color)\" style=\"vertical-align: middle;\" />\n        {:else}\n          <CheckboxBlankCircleLine size=\"20\" color=\"rgb(214, 214, 214)\" style=\"vertical-align: middle;\" />\n        {/if}\n      </div>\n      <div class=\"text\">\n        {item.text}\n        <div class=\"desc\">{item.desc}</div>\n      </div>\n    </div>\n  {/each}\n</div>\n\n<style>\n  .box {\n    background-color: #fff;\n    font-size: 16px;\n    border-radius: 8px;\n    padding: 20px 10px 1px;\n    margin: 20px auto;\n  }\n  .item {\n    margin-bottom: 20px;\n    display: flex;\n  }\n  .left {\n    width: 20px;\n    height: 20px;\n    margin-right: 10px;\n  }\n  .text {\n    line-height: 20px;\n  }\n  .desc {\n    font-size: 10px;\n    color: #b8b8b8;\n  }\n</style>\n","<script>\n  export let tipTextList = \"\";\n</script>\n\n<div>\n  {#each tipTextList as tipText}\n    <div class=\"tip\">{tipText}</div>\n  {/each}\n</div>\n\n<style>\n  .tip {\n    font-size: 12px;\n    color: rgb(141, 141, 141);\n    text-align: justify;\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from 'svelte';\n\n  export let bottomHeight = 0; //距离底部的距离临界值开始刷新\n  export let items = [];\n  export let paginationHeight = 0;\n  export let hasMore = true;\n  export let grid = 1;\n  let paginationDom;\n  let paginationBoxDom;\n\n  // 加载更多触发器 默认隐藏\n  const dispatch = createEventDispatcher();\n\n  // 加载更多触发器 事件\n  let loadData = function () {\n    if (!items || items.length == 0) return;\n    // 变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离\n    const scrollTop = paginationBoxDom.scrollTop;\n    //变量windowHeight是可视区的高度\n    const windowHeight = document.documentElement.clientHeight || document.body.clientHeight;\n    //变量scrollHeight是滚动条的总高度(当前可滚动的页面的总高度)\n    const scrollHeight = paginationDom.scrollHeight;\n    // 滚动条到底部;\n    if (scrollTop + windowHeight + bottomHeight >= scrollHeight) {\n      dispatch('load');\n    }\n  };\n  //防抖\n  function debounce(fn, delay) {\n    let timer = null;\n    return function () {\n      if (timer) {\n        clearTimeout(timer);\n      }\n      timer = setTimeout(() => {\n        //模拟触发change事件\n        fn.apply(this, arguments);\n        // 清空计时器\n        timer = null;\n      }, delay);\n    };\n  }\n  // 节流\n  function throttle(fn, delay = 50) {\n    let timer = null;\n    return function () {\n      if (timer) {\n        return;\n      }\n      timer = setTimeout(() => {\n        fn.apply(this, arguments);\n        timer = null;\n      }, delay);\n    };\n  }\n</script>\n\n<!-- 加载更多触发器 - end -->\n<div\n  class=\"pagination-box\"\n  style=\"height:{paginationHeight}px\"\n  on:scroll={throttle(debounce(loadData, 500))}\n  bind:this={paginationBoxDom}\n>\n  <div bind:this={paginationDom}>\n    {#if items.length > 0}\n      {#if grid > 1}\n        <div class=\"grid-box\" style=\"grid-template-columns: repeat({grid}, {300 / grid}px);\">\n          {#each items as item, index}\n            <slot {item} {index} />\n          {/each}\n        </div>\n      {:else}\n        {#each items as item, index}\n          <slot {item} {index} />\n        {/each}\n      {/if}\n    {/if}\n  </div>\n  {#if hasMore}\n    <div class=\"no-more\">\n      <div>\n        <embed width=\"40\" height=\"40\" src=\"/images/Ripple.svg\" type=\"image/svg+xml\" />\n      </div>\n      <span class=\"no-more-text\">😤 别急啊,在加载了...</span>\n    </div>\n  {:else}\n    <div class=\"no-more no-more-text\">😤 别滑了,到底啦!</div>\n  {/if}\n</div>\n\n<style>\n  .pagination-box {\n    overflow-y: auto;\n    padding-top: 10px;\n  }\n  .pagination-box:global(::-webkit-scrollbar) {\n    width: 0 !important;\n  }\n  .no-more {\n    margin: 20px;\n    text-align: center;\n  }\n  .no-more-text {\n    color: #888;\n  }\n  .grid-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(1, 300px);\n  }\n</style>\n","<script>\n  import { createEventDispatcher, onMount, afterUpdate } from 'svelte';\n  import { ArrowRightSLine } from 'svelte-remixicon';\n\n  import { ripple } from '../../utils/common';\n\n  export let title = 'Title';\n  export let isShowRight = false;\n  export let iconText = '更多';\n  let titleDom;\n  const dispatch = createEventDispatcher();\n  function setTitleClick() {\n    dispatch('TitleClick');\n  }\n\n  onMount(() => {\n    if (titleDom) ripple(titleDom);\n  });\n</script>\n\n<div class=\"title\" on:click={setTitleClick} bind:this={titleDom}>\n  <div>{title}</div>\n  {#if isShowRight}\n    <div class=\"title-right\">\n      {iconText}\n      <span class=\"title-icon\">\n        <ArrowRightSLine size=\"24\" style=\"vertical-align: middle;\" />\n      </span>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .title-right {\n    line-height: 24px;\n    border-radius: 10px;\n    font-size: 14px;\n    color: #666;\n    height: 24px;\n    text-align: center;\n    margin-right: 20px;\n  }\n  .title {\n    text-align: left;\n    margin-left: 20px;\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 10px;\n    margin-top: 20px;\n    display: flex;\n    justify-content: space-between;\n  }\n  .title-icon {\n    position: relative;\n    top: -2px;\n  }\n</style>\n","<script>\n  import { createEventDispatcher } from \"svelte\";\n\n  import Divider from \"./Divider.svelte\";\n\n  export let list = [];\n  export let title = \"请选择\";\n  export let isShow = false;\n\n  const dispatch = createEventDispatcher();\n\n  function liClickFun(index, item) {\n    dispatch(\"PickerClick\", {\n      index,\n      item,\n    });\n  }\n  function changeShowFun() {\n    isShow = false;\n    dispatch(\"ChangeShow\", {\n      isShow,\n    });\n  }\n</script>\n\n<div class=\"pick-mask\" on:click={changeShowFun} style=\"display: {isShow ? 'block' : 'none'};\">\n  <div class=\"pick\" style=\"bottom:{isShow ? '0px' : '-350px'}\">\n    <div class=\"btn\">\n      <!-- <div class=\"btn-item btn-left\">取消</div> -->\n      <div class=\"btn-item btn-center\">{title}</div>\n      <!-- <div class=\"btn-item btn-right\">确定</div> -->\n    </div>\n    <Divider />\n    <div class=\"roller\">\n      {#each list as l, i}\n        <div class=\"li\" on:click={() => liClickFun(i, l)}>{l.name}</div>\n      {/each}\n    </div>\n  </div>\n</div>\n\n<style>\n  .pick-mask {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 2000;\n    width: 100vw;\n    height: 100vh;\n    background-color: rgba(0, 0, 0, 0.5);\n  }\n  .pick {\n    font-size: 16px;\n    position: fixed;\n    bottom: 0px;\n    z-index: 2001;\n    background-color: #fff;\n    max-height: 250px;\n    width: 100%;\n    padding-bottom: 20px;\n  }\n  .btn {\n    height: 39px;\n    line-height: 39px;\n    display: flex;\n  }\n  .btn-item {\n    flex: 1;\n    padding: 10px;\n    color: var(--primary-text-color);\n  }\n  .btn-center {\n    text-align: center;\n    color: #777;\n  }\n\n  .roller {\n    overflow-y: scroll;\n    max-height: 200px;\n    width: 100%;\n    padding: 10px;\n    display: flex;\n    flex-wrap: wrap;\n  }\n  .li {\n    background-color: #eeeeee;\n    line-height: 24px;\n    font-size: 12px;\n    margin: 4px 8px 4px 0;\n    padding: 4px 8px;\n    border-radius: 4px;\n  }\n</style>\n","import { writable } from 'svelte/store';\nimport { defaultCover } from '../store/common';\n\n//播放器播放与暂停状态。true/false\nexport const playStatusStore = writable(false);\n//播放器是否显示最大化。true/false\nexport const playIsMaxStore = writable(false);\n//底部是否显示播放控制条,首次打开无歌曲播放时不显示。true/false\nexport const playIsMinStore = writable(true);\n//当前播放歌曲信息\nexport const currentSongStore = writable(\n  JSON.parse(localStorage.getItem('currentSong'))\n    ? JSON.parse(localStorage.getItem('currentSong'))\n    : {\n      name: '简易云音乐',\n      al: {\n        picUrl: defaultCover,\n      },\n      url: 'https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3',\n      ar: [{ name: '简易云音乐' }],\n    }\n);\n//下一曲播放歌曲信息\nexport const nextSongStore = writable({});\n//当前播放歌曲在播放列表位置\nexport const currentSongIndexStore = writable(0);\n//正在播放的播放列表\nexport const currentPlayListStore = writable([\n  JSON.parse(localStorage.getItem('currentSong'))\n    ? JSON.parse(localStorage.getItem('currentSong'))\n    : {\n      name: '简易云音乐',\n      al: {\n        picUrl: defaultCover,\n      },\n      url: 'https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3',\n      ar: [{ name: '简易云音乐' }],\n    },\n]);\n//是否在加载歌曲\nexport const isLoadingSongStore = writable(false);\n//全屏播放器顶部距离页面顶部的距离\nexport const maxPlayToTopStore = writable('100%');\n\n//是否正在私人FM播放\nexport const isFMPlayStore = writable(localStorage.getItem('isFMPlay') === '1' ? true : false);\n//私人FM当前播放\nexport const FMPlayStore = writable(\n  JSON.parse(localStorage.getItem('FMPlay')) ? JSON.parse(localStorage.getItem('FMPlay')) : {}\n);\n//私人FM下一首播放\nexport const FMPlayNextStore = writable({});\n//播放时间\nexport const currentTimeStore = writable('');\n//当前歌曲歌词\nexport const currentLyricStore = writable(\n  JSON.parse(localStorage.getItem('currentLyric'))\n    ? JSON.parse(localStorage.getItem('currentLyric'))\n    : {\n      songId: '',\n      lyric: '',\n      tlyric: '',\n    }\n);\n//播放器主要区域显示的内容,cover--歌曲封面;list--播放列表;lyric--歌词\nexport const mainCoverTypeStore = writable('cover');\n//播放模式,repeat--列表循环,repeatOnce--单曲循环,shuffle--随机,heart--心动模式\nexport const playRepeatModelStore = writable('repeat');\n//当前歌曲码率\nexport const currentSongQualityStore = writable(128000);\n","<script>\n  import { onMount } from 'svelte';\n\n  import { currentTimeStore, currentLyricStore } from '../store/play';\n  import { isShowTranslateStore } from '../store/common';\n\n  import { scrollSmoothTo } from '../utils/common';\n\n  export let maxHeight = '';\n\n  $: lyric = $currentLyricStore.lyric;\n  $: tlyric = $isShowTranslateStore ? $currentLyricStore.tlyric : '';\n  $: lyricArr = [];\n  $: tlyricArr = [];\n  $: lyricArrStartAndEnd = [];\n  $: currentIndex = 0;\n  $: itemHeightList = [];\n  let boxDom;\n  let scrollTimer = null;\n  $: isBlue = true;\n\n  onMount(() => {\n    //监听歌词滚动事件\n    lyricArr = formatLyric(lyric);\n    //去除开始的作者\n    if (tlyric.slice(1, 3) === 'by') {\n      tlyric = tlyric.slice(tlyric.indexOf('\\n') + 1);\n    }\n    //处理有些翻译竟然没时间标注!!\n    if (tlyric.slice(0, 1) !== '[') {\n      tlyric = '';\n    }\n    //处理有些歌词翻译竟然只有时间没内容,如《追光者》《匆匆那年》,翻译你妹呢!\n    let textArr = tlyric.split('\\n');\n    let isAllNull = false;\n    for (let t = 0; t < textArr.length; t++) {\n      if (textArr[t].substring(textArr[t].length - 1) != ']') {\n        isAllNull = false;\n      } else {\n        isAllNull = true;\n      }\n    }\n    if (isAllNull) tlyric = '';\n    if (tlyric.trim() !== '') tlyricArr = formatLyric(tlyric);\n    if (tlyric.trim() !== '') {\n      if (lyricArr[0].time !== 0) {\n        lyricArr.unshift({ time: 0, text: '• • •' });\n      }\n      if (tlyricArr[0].time !== 0) {\n        tlyricArr.unshift({ time: 0, text: '• • •' });\n      }\n      for (let e = 0; e < lyricArr.length; e++) {\n        for (let r = 0; r < tlyricArr.length; r++) {\n          if (lyricArr[e].time === tlyricArr[r].time) lyricArr[e].text_t = tlyricArr[r].text;\n          if (lyricArr[e].text_t === undefined) lyricArr[e].text_t = '• • •';\n        }\n      }\n      lyricArrStartAndEnd = lyricArr.length > 0 ? timeAdd(lyricArr) : [];\n      for (let r = 0; r < lyricArr.length; r++) {\n        itemHeightList.push(\n          40 + textSize('28px', lyricArr[r].text).height + textSize('16px', lyricArr[r].text_t).height\n        );\n      }\n    } else {\n      lyricArrStartAndEnd = lyricArr.length > 0 ? timeAdd(lyricArr) : [];\n      for (let r = 0; r < lyricArrStartAndEnd.length; r++) {\n        itemHeightList.push(textSize('28px', lyricArrStartAndEnd[r].text).height + 40);\n      }\n    }\n    autoScrollFun();\n  });\n  //自动滚动\n  function autoScrollFun() {\n    scrollTimer = setInterval(() => {\n      if (boxDom) {\n        for (let y = 0; y < lyricArrStartAndEnd.length - 1; y++) {\n          if (Math.ceil($currentTimeStore) >= lyricArrStartAndEnd[lyricArrStartAndEnd.length - 1].start) {\n            currentIndex = lyricArrStartAndEnd.length - 1;\n            boxDom.scrollTop = boxDom.scrollHeight - boxDom.clientHeight;\n          }\n          if (\n            Math.ceil($currentTimeStore) >= lyricArrStartAndEnd[y].start &&\n            Math.ceil($currentTimeStore) < lyricArrStartAndEnd[y].end\n          ) {\n            currentIndex = y;\n            boxDom.scrollIntoView({\n              block: 'start',\n              behavior: 'smooth',\n            });\n            if (currentIndex === 0) {\n              if ('scrollBehavior' in boxDom.style) {\n                boxDom.scrollTop = 0;\n              } else {\n                scrollSmoothTo(boxDom, 0);\n              }\n            } else {\n              if ('scrollBehavior' in boxDom.style) {\n                boxDom.scrollTop = sum(itemHeightList.slice(0, currentIndex - 1));\n              } else {\n                scrollSmoothTo(boxDom, sum(itemHeightList.slice(0, currentIndex - 1)));\n              }\n            }\n          }\n        }\n      }\n    }, 1000);\n  }\n  function sum(arr) {\n    if (Array.isArray(arr)) {\n      var arrSum = 0;\n      for (var i = 0; i < arr.length; i++) {\n        arrSum += arr[i];\n      }\n      return arrSum;\n    }\n  }\n  //传入初始歌词文本text\n  function formatLyric(text) {\n    //去除开始的作者\n    if (text.slice(1, 3) === 'by') {\n      text = text.slice(text.indexOf('\\n') + 1);\n    }\n    let lyricNew = [];\n    let arr = text.split('\\n'); //原歌词文本已经换好行了方便很多,我们直接通过换行符“\\n”进行切割\n    let row = arr.length; //获取歌词行数\n    for (let i = 0; i < row; i++) {\n      let temp_row = arr[i]; //现在每一行格式大概就是这样\"[00:04.302][02:10.00]hello world\";\n      let temp_arr = temp_row.split(']'); //我们可以通过“]”对时间和文本进行分离\n      let text = temp_arr.pop(); //把歌词文本从数组中剔除出来,获取到歌词文本了!\n      //再对剩下的歌词时间进行处理\n      temp_arr.forEach(element => {\n        let obj = {};\n        let time_arr = element.substr(1, element.length - 1).split(':'); //先把多余的“[”去掉,再分离出分、秒\n        let s = Math.ceil(time_arr[0]) * 60 + Math.ceil(time_arr[1]); //把时间转换成与currentTime相同的类型,方便待会实现滚动效果\n        obj.time = s > 0 ? s - 1 : s; //歌词转换成整秒之后会有延迟,提前一秒\n        obj.text = text.trim(); //去除前后空格,不然计算高度有问题\n        lyricNew.push(obj); //每一行歌词对象存到组件的lyric歌词属性里\n      });\n    }\n    if (lyricNew.length === 1) {\n      lyricNew = [\n        {\n          time: 0,\n          text: lyricNew[0].text,\n        },\n        {\n          time: 0,\n          text: lyricNew[0].text,\n        },\n      ];\n    }\n    if (lyricNew === []) return [];\n    for (let u = 0; u < lyricNew.length; u++) {\n      if (lyricNew[u].text === '') lyricNew[u].text = '• • •';\n    }\n    if (lyricNew.length > 0) {\n      if (lyricNew[0].time > 5) {\n        lyricNew.splice(0, 0, { time: 0, text: '• • •' });\n      }\n    }\n    for (let i = lyricNew.length - 1; i > 0; i--) {\n      if (lyricNew[i].time - lyricNew[i - 1].time < 2 && lyricNew[i - 1].text === '• • •') {\n        lyricNew.splice(i - 1, 1);\n      }\n    }\n    for (let d = lyricNew.length - 1; d > 0; d--) {\n      if (lyricNew[d - 1].time === lyricNew[d].time) {\n        lyricNew[d - 1].text = lyricNew[d - 1].text + ' ' + lyricNew[d].text;\n        lyricNew.splice(d, 1);\n      }\n    }\n    // 开头,两条时间都是一样的情况,合并为一条\n    if (lyricNew.length > 1 && lyricNew[0].time === lyricNew[1].time) {\n      lyricNew[0].text = lyricNew[0].text + ' ' + lyricNew[1].text;\n      lyricNew.splice(1, 1);\n    }\n    //去除某些歌词结尾是• • •的情况\n    for (let q = 0; q < lyricNew.length; q++) {\n      if (lyricNew[q].text.substring(lyricNew[q].text.length - 5) === '• • •' && lyricNew[q].text != '• • •') {\n        lyricNew[q].text = lyricNew[q].text.substr(0, lyricNew[q].text.length - 5);\n      }\n    }\n    lyricNew.sort(sortRule); //由于不同时间的相同歌词我们给排到一起了,所以这里要以时间顺序重新排列一下\n    return lyricNew.length === 0 ? [{ time: 0, text: '暂无歌词或歌词无效', start: 0, end: 20 }] : lyricNew;\n  }\n  function timeAdd(arr) {\n    for (let t = 0; t < arr.length - 1; t++) {\n      arr[t].start = arr[t].time;\n      arr[t].end = arr[t + 1].time;\n    }\n    arr[arr.length - 1].start = arr[arr.length - 1].time;\n    return arr;\n  }\n  function sortRule(a, b) {\n    //设置一下排序规则\n    return a.time - b.time;\n  }\n  function textSize(fontSize, text) {\n    let div = document.createElement('div');\n    let result = {};\n    result.width = div.offsetWidth;\n    result.height = div.offsetHeight;\n    div.style.visibility = 'hidden';\n    div.style.fontSize = fontSize;\n    // div.style.fontFamily =\n    //   '\"PingFang SC\", \"Lantinghei SC\", \"Microsoft YaHei\", \"HanHei SC\",\"Helvetica Neue\", \"Open Sans\", Arial, \"Hiragino Sans GB\", \"微软雅黑\",STHeiti, \"WenQuanYi Micro Hei\", SimSun, sans-serif';\n    div.style.padding = '20px';\n    div.style.wordWrap = 'break-word';\n    div.style.fontWeight = 'bold';\n    div.style.textAlign = 'justify';\n    document.body.appendChild(div);\n    if (typeof div.textContent != 'undefined') {\n      div.textContent = text;\n    } else {\n      div.innerText = text;\n    }\n    result.width = parseFloat(window.getComputedStyle(div).width) - result.width;\n    result.height = parseFloat(window.getComputedStyle(div).height) - result.height;\n    div.style.display = 'none';\n    return result;\n  }\n  function touchStart(e) {\n    isBlue = false;\n    if (scrollTimer) clearInterval(scrollTimer);\n    scrollTimer = null;\n  }\n  function touchMove(e) {}\n  function touchEnd(e) {\n    isBlue = true;\n    if (scrollTimer) clearInterval(scrollTimer);\n    scrollTimer = null;\n    autoScrollFun();\n  }\n  //iOS平滑滚动\n  function myScrollTo(dom, position, timeout) {\n    let scrollTop = dom.scrollTop;\n    let direction = position - scrollTop > 0 ? 1 : -1;\n    let distance = Math.abs(position - scrollTop);\n    let split = distance / 50;\n    let _timeout;\n    if (position !== scrollTop) {\n      timeout = timeout || 1000;\n      split *= direction;\n\n      _timeout = setInterval(function () {\n        if (!isBlue) {\n          if (_timeout) clearInterval(_timeout);\n          _timeout = null;\n        }\n        scrollTop += split;\n        distance -= Math.abs(split);\n        if (0 >= distance) {\n          dom.scrollTo(0, position);\n          clearInterval(_timeout);\n          _timeout = null;\n        } else {\n          dom.scrollTo(0, scrollTop);\n        }\n      }, timeout / 100);\n    }\n  }\n</script>\n\n<div class=\"xbox\">\n  <div\n    class=\"box\"\n    style=\"max-height:{maxHeight}\"\n    bind:this={boxDom}\n    on:touchstart={touchStart}\n    on:touchend={touchEnd}\n    on:touchmove={touchMove}\n  >\n    {#each lyricArr as lyric, i}\n      <div\n        class=\"ly\"\n        class:active={i === currentIndex}\n        style=\"filter: {isBlue && i !== currentIndex\n          ? `blur(${Math.abs(i - currentIndex) < 7 ? Math.abs(i - currentIndex) * 1 : 0}px)`\n          : 'none'};\n      -webkit-filter: {isBlue && i !== currentIndex\n          ? `blur(${Math.abs(i - currentIndex) < 7 ? Math.abs(i - currentIndex) * 1 : 0}px)`\n          : 'none'};\n      \"\n      >\n        <div>{lyric.text}</div>\n        {#if tlyric.trim() !== ''}\n          <div class=\"t-text\">{lyric.text_t}</div>\n        {/if}\n      </div>\n    {/each}\n  </div>\n</div>\n\n<style>\n  .box {\n    overflow-y: scroll;\n    scroll-behavior: smooth;\n    -webkit-overflow-scrolling: auto;\n  }\n  .ly {\n    word-wrap: break-word;\n    font-size: 28px;\n    font-weight: bold;\n    color: #fff;\n    padding: 20px;\n    transition: all 0.5s ease-in;\n    -webkit-transition: all 0.5s ease-in;\n    opacity: 0.5;\n    filter: blur(1px);\n    -webkit-filter: blur(1px);\n    text-align: justify;\n  }\n  .active {\n    opacity: 1;\n    filter: none;\n    -webkit-filter: none;\n  }\n  .t-text {\n    font-size: 16px;\n  }\n</style>\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n    const style = getComputedStyle(node);\n    const target_opacity = +style.opacity;\n    const f = style.filter === 'none' ? '' : style.filter;\n    const od = target_opacity * (1 - opacity);\n    return {\n        delay,\n        duration,\n        easing,\n        css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n    };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n    const o = +getComputedStyle(node).opacity;\n    return {\n        delay,\n        duration,\n        easing,\n        css: t => `opacity: ${t * o}`\n    };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n    const style = getComputedStyle(node);\n    const target_opacity = +style.opacity;\n    const transform = style.transform === 'none' ? '' : style.transform;\n    const od = target_opacity * (1 - opacity);\n    return {\n        delay,\n        duration,\n        easing,\n        css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n    };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n    const style = getComputedStyle(node);\n    const opacity = +style.opacity;\n    const height = parseFloat(style.height);\n    const padding_top = parseFloat(style.paddingTop);\n    const padding_bottom = parseFloat(style.paddingBottom);\n    const margin_top = parseFloat(style.marginTop);\n    const margin_bottom = parseFloat(style.marginBottom);\n    const border_top_width = parseFloat(style.borderTopWidth);\n    const border_bottom_width = parseFloat(style.borderBottomWidth);\n    return {\n        delay,\n        duration,\n        easing,\n        css: t => 'overflow: hidden;' +\n            `opacity: ${Math.min(t * 20, 1) * opacity};` +\n            `height: ${t * height}px;` +\n            `padding-top: ${t * padding_top}px;` +\n            `padding-bottom: ${t * padding_bottom}px;` +\n            `margin-top: ${t * margin_top}px;` +\n            `margin-bottom: ${t * margin_bottom}px;` +\n            `border-top-width: ${t * border_top_width}px;` +\n            `border-bottom-width: ${t * border_bottom_width}px;`\n    };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n    const style = getComputedStyle(node);\n    const target_opacity = +style.opacity;\n    const transform = style.transform === 'none' ? '' : style.transform;\n    const sd = 1 - start;\n    const od = target_opacity * (1 - opacity);\n    return {\n        delay,\n        duration,\n        easing,\n        css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n    };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n    let len = node.getTotalLength();\n    const style = getComputedStyle(node);\n    if (style.strokeLinecap !== 'butt') {\n        len += parseInt(style.strokeWidth);\n    }\n    if (duration === undefined) {\n        if (speed === undefined) {\n            duration = 800;\n        }\n        else {\n            duration = len / speed;\n        }\n    }\n    else if (typeof duration === 'function') {\n        duration = duration(len);\n    }\n    return {\n        delay,\n        duration,\n        easing,\n        css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n    };\n}\nfunction crossfade(_a) {\n    var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n    const to_receive = new Map();\n    const to_send = new Map();\n    function crossfade(from, node, params) {\n        const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n        const to = node.getBoundingClientRect();\n        const dx = from.left - to.left;\n        const dy = from.top - to.top;\n        const dw = from.width / to.width;\n        const dh = from.height / to.height;\n        const d = Math.sqrt(dx * dx + dy * dy);\n        const style = getComputedStyle(node);\n        const transform = style.transform === 'none' ? '' : style.transform;\n        const opacity = +style.opacity;\n        return {\n            delay,\n            duration: is_function(duration) ? duration(d) : duration,\n            easing,\n            css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n        };\n    }\n    function transition(items, counterparts, intro) {\n        return (node, params) => {\n            items.set(params.key, {\n                rect: node.getBoundingClientRect()\n            });\n            return () => {\n                if (counterparts.has(params.key)) {\n                    const { rect } = counterparts.get(params.key);\n                    counterparts.delete(params.key);\n                    return crossfade(rect, node, params);\n                }\n                // if the node is disappearing altogether\n                // (i.e. wasn't claimed by the other list)\n                // then we need to supply an outro\n                items.delete(params.key);\n                return fallback && fallback(node, params, intro);\n            };\n        };\n    }\n    return [\n        transition(to_send, to_receive, false),\n        transition(to_receive, to_send, true)\n    ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","{#if placeholder}\n  <div class={placeholderClass}>\n    {#if typeof placeholder === 'string'}\n      <div>{placeholder}</div>\n    {:else if ['function', 'object'].includes(typeof placeholder)}\n      <svelte:component this={placeholder} {...placeholderProps} />\n    {/if}\n  </div>\n{/if}\n\n<script>\n  export let placeholder = null;\n  export let placeholderProps = null;\n  const placeholderClass = 'svelte-lazy-placeholder';\n</script>\n","<div use:load class={rootClass} style=\"height: {rootInitialHeight}\">\n  {#if loaded}\n    <div \n      in:fade={fadeOption || {}} \n      class={contentClass}\n      style={contentStyle}\n    >\n      <slot>Lazy load content</slot>\n    </div>\n    {#if contentDisplay === 'hide' && placeholder}\n      <Placeholder {placeholder} {placeholderProps} />\n    {/if}\n  {:else if placeholder}\n    <Placeholder {placeholder} {placeholderProps} />\n  {/if}\n</div>\n\n<script>\n  import { fade } from 'svelte/transition';\n  import Placeholder from './components/Placeholder.svelte';\n  export let height = 0;\n  export let offset = 150;\n  export let fadeOption = {\n    delay: 0,\n    duration: 400, \n  };\n  export let resetHeightDelay = 0;\n  export let onload = null;\n  export let placeholder = null;\n  export let placeholderProps = null;\n  let className = '';\n  export { className as class };\n\n  const rootClass = 'svelte-lazy' \n    + (className ? ' ' + className : '');\n  const contentClass = 'svelte-lazy-content';\n  const rootInitialHeight = getStyleHeight();\n  let loaded = false;\n\n  let contentDisplay = '';\n  $: contentStyle = contentDisplay === 'hide' \n    ? 'display: none' \n    : '';\n\n  function load(node) {\n    setHeight(node);\n\n    const loadHandler = throttle(e => {\n      const nodeTop = node.getBoundingClientRect().top;\n      const expectedTop = getContainerHeight(e) + offset;\n\n      if (nodeTop <= expectedTop) {\n        loaded = true;\n        resetHeight(node);\n        onload && onload(node);\n        removeListeners();\n      }\n    }, 200);\n\n    loadHandler();\n    addListeners();\n\n    function addListeners() {\n      document.addEventListener('scroll', loadHandler, true);\n      window.addEventListener('resize', loadHandler);\n    }\n\n    function removeListeners() {\n      document.removeEventListener('scroll', loadHandler, true);\n      window.removeEventListener('resize', loadHandler);\n    }\n\n    return {\n      destroy: () => {\n        removeListeners();\n      },\n    };\n  }\n\n  function getStyleHeight() {\n    return (typeof height === 'number') \n      ? height + 'px' \n      : height;\n  }\n\n  function setHeight(node) {\n    if (height) {\n      node.style.height = getStyleHeight();\n    }\n  }\n\n  function resetHeight(node) {\n    // Add delay for remote resources like images to load\n    setTimeout(() => {\n      const handled = handleImgContent(node);\n      if (!handled) {\n        node.style.height = 'auto';\n      }\n    }, resetHeightDelay);\n  }\n\n  function handleImgContent(node) {\n    const img = node.querySelector('img');\n    if (img) {\n      if (!img.complete) {\n        contentDisplay = 'hide';\n\n        node.addEventListener('load', () => {\n          contentDisplay = '';\n          node.style.height = 'auto';\n        }, { capture: true, once: true });\n\n        node.addEventListener('error', () => {\n          // Keep passed height if there is error\n          contentDisplay = '';\n        }, { capture: true, once: true });\n\n        return true;\n      } else if (img.naturalHeight === 0) {\n        // Keep passed height if img has zero height\n        return true;\n      }\n    }  \n  }\n\n  function getContainerHeight(e) {\n    if (e && e.target && e.target.getBoundingClientRect) {\n      return e.target.getBoundingClientRect().bottom;\n    } else {\n      return window.innerHeight;\n    }\n  }\n\n  // From underscore souce code\n  function throttle(func, wait, options) {\n    let context, args, result;\n    let timeout = null;\n    let previous = 0;\n    if (!options) options = {};\n    const later = function() {\n      previous = options.leading === false ? 0 : new Date();\n      timeout = null;\n      result = func.apply(context, args);\n      if (!timeout) context = args = null;\n    };\n\n    return function(event) {\n      const now = new Date();\n      if (!previous && options.leading === false) previous = now;\n      const remaining = wait - (now - previous);\n      context = this;\n      args = arguments;\n      if (remaining <= 0 || remaining > wait) {\n        if (timeout) {\n          clearTimeout(timeout);\n          timeout = null;\n        }\n        previous = now;\n        result = func.apply(context, args);\n        if (!timeout) context = args = null;\n      } else if (!timeout && options.trailing !== false) {\n        timeout = setTimeout(later, remaining);\n      }\n      return result;\n    };\n  }\n</script>\n","import { writable } from \"svelte/store\";\n\n//用户信息\nexport const userInfoStore = writable(\n  JSON.parse(localStorage.getItem(\"isLogin\"))\n    ? JSON.parse(localStorage.getItem(\"userInfo\"))\n    : {}\n);\n\n//用户喜欢的音乐IDs\nexport const userLikeSongIdsStore = writable(\n  JSON.parse(localStorage.getItem(\"useLoveSongIds\"))\n    ? JSON.parse(localStorage.getItem(\"useLoveSongIds\"))\n    : []\n);\n//我喜欢的音乐歌单ID\nexport const userLikeListIdStore = writable(\n  JSON.parse(localStorage.getItem(\"userLikeListId\"))\n    ? JSON.parse(localStorage.getItem(\"userLikeListId\"))\n    : ''\n);\n","<script>\n  import { onMount, createEventDispatcher } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { HeartFill } from 'svelte-remixicon';\n\n  import { isLoginStore } from '../store/common';\n  import { userLikeSongIdsStore } from '../store/user';\n  import { currentSongStore, playStatusStore } from '../store/play';\n\n  import { ripple, songerListToStr, fullWidth } from '../utils/common';\n\n  const dispatch = createEventDispatcher();\n\n  function setSongClick(index) {\n    dispatch('songClick', { index });\n  }\n\n  export let song = {};\n  export let index = 0;\n  export let customCoverUrl = null;\n\n  let songDom;\n\n  onMount(() => {\n    if (songDom) {\n      ripple(songDom);\n    }\n  });\n</script>\n\n<div\n  class=\"song\"\n  on:click={() => {\n    if (song.id === $currentSongStore.id) {\n      window.audioDOM.play();\n      playStatusStore.set(true);\n    } else {\n      setSongClick(index);\n    }\n  }}\n  bind:this={songDom}\n>\n  <div class=\"love-span\">\n    {#if $isLoginStore && $userLikeSongIdsStore.includes(song.id)}\n      <HeartFill size=\"16\" style=\"vertical-align: middle\" />\n    {/if}\n  </div>\n  <div class=\"song-cover\">\n    <Lazy height={46}>\n      <img\n        class=\"img-song\"\n        src={customCoverUrl ? customCoverUrl : song.al.picUrl.replace(/^http:/, 'https:') + '?param=100y100'}\n        alt=\"\"\n      />\n    </Lazy>\n    {#if song.id === $currentSongStore.id && $playStatusStore}\n      <div class=\"song-play\">\n        <div class=\"pull_down pull_down1\" />\n        <div class=\"pull_down pull_down2\" />\n        <div class=\"pull_down pull_down3\" />\n        <div class=\"pull_down pull_down4\" />\n      </div>\n    {/if}\n    {#if song.id === $currentSongStore.id && !$playStatusStore}\n      <div class=\"song-no-play\">\n        <div class=\"no_pull_down\" />\n        <div class=\"no_pull_down\" />\n        <div class=\"no_pull_down\" />\n        <div class=\"no_pull_down\" />\n      </div>\n    {/if}\n  </div>\n  <div class=\"song-info\" style=\"max-width:{fullWidth() - 72}px;\">\n    <div class=\"song-name\">\n      {song.name}\n      <span class=\"alia\">\n        {song.alia && song.alia.length > 0 ? `(${song.alia[0]})` : ''}\n      </span>\n    </div>\n    <div class=\"song-songer\">\n      {songerListToStr(song.ar)}\n      <span>{song.al.name === '' ? '' : `- ${song.al.name}`}</span>\n    </div>\n  </div>\n</div>\n\n<style>\n  .song {\n    font-size: 14px;\n    text-align: center;\n    align-items: center;\n    padding: 14px auto;\n    display: flex;\n    height: 60px;\n    justify-content: space-between;\n    border-bottom: 1px solid rgba(197, 197, 197, 0.3);\n    box-sizing: border-box;\n  }\n  .love-span {\n    color: var(--primary-text-color);\n    line-height: 20px;\n    text-align: center;\n    width: 20px;\n    height: 20px;\n  }\n  .song-cover {\n    width: 46px;\n    height: 46px;\n    margin-right: 6px;\n    border-radius: 4px;\n    overflow: hidden;\n    background-color: #fff;\n    box-sizing: border-box;\n  }\n  .img-song {\n    width: 100%;\n    object-fit: cover;\n  }\n  .song-play {\n    position: relative;\n    width: 30px;\n    height: 30px;\n    top: -44px;\n    left: 4px;\n    z-index: 2;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    padding: 4px;\n  }\n  .song-play {\n    position: relative;\n    width: 30px;\n    height: 30px;\n    top: -44px;\n    left: 4px;\n    z-index: 2;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    padding: 4px;\n  }\n  .song-no-play {\n    position: relative;\n    width: 30px;\n    height: 30px;\n    top: -44px;\n    left: 4px;\n    z-index: 2;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    padding: 4px;\n  }\n  .no_pull_down {\n    flex: 1;\n    height: 6px;\n    margin: 0 1.2px;\n    background: #fff;\n    border-top: 1px solid var(--primary-text-color);\n  }\n  .pull_down {\n    flex: 1;\n    height: 30px;\n    margin: 0 1.2px;\n    background: #fff;\n    border-top: 1px solid var(--primary-text-color);\n  }\n  .pull_down1 {\n    -webkit-animation: jumpYa 0.8s infinite ease-in-out;\n    -o-animation: jumpYa 0.8s infinite ease-in-out;\n    animation: jumpYa 0.8s infinite ease-in-out;\n  }\n  .pull_down2 {\n    -webkit-animation: jumpYb 1.2s infinite ease-in-out;\n    -o-animation: jumpYb 1.2s infinite ease-in-out;\n    animation: jumpYb 1.2s infinite ease-in-out;\n  }\n  .pull_down3 {\n    -webkit-animation: jumpYc 1s infinite ease-in-out;\n    -o-animation: jumpYc 1s infinite ease-in-out;\n    animation: jumpYc 1s infinite ease-in-out;\n  }\n  .pull_down4 {\n    -webkit-animation: jumpYd 1.1s infinite ease-in-out;\n    -o-animation: jumpYd 1.1s infinite ease-in-out;\n    animation: jumpYd 1.1s infinite ease-in-out;\n  }\n  @keyframes jumpYa {\n    0% {\n      height: 20px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 20px;\n    }\n  }\n  @keyframes jumpYb {\n    0% {\n      height: 24px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 24px;\n    }\n  }\n  @keyframes jumpYc {\n    0% {\n      height: 30px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 30px;\n    }\n  }\n  @keyframes jumpYd {\n    0% {\n      height: 30px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 30px;\n    }\n  }\n  .song-info {\n    padding-top: 4px;\n    text-align: left;\n    flex: auto;\n  }\n  .song-name {\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    font-size: 18px;\n  }\n  .song-songer {\n    margin-top: 6px;\n    margin-bottom: 6px;\n    color: rgb(185, 185, 185);\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n  }\n</style>\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n  if (toString.call(val) !== '[object Object]') {\n    return false;\n  }\n\n  var prototype = Object.getPrototypeOf(val);\n  return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n                                           navigator.product === 'NativeScript' ||\n                                           navigator.product === 'NS')) {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (isPlainObject(result[key]) && isPlainObject(val)) {\n      result[key] = merge(result[key], val);\n    } else if (isPlainObject(val)) {\n      result[key] = merge({}, val);\n    } else if (isArray(val)) {\n      result[key] = val.slice();\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isPlainObject: isPlainObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim,\n  stripBOM: stripBOM\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected,\n    synchronous: options ? options.synchronous : false,\n    runWhen: options ? options.runWhen : null\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n    var responseType = config.responseType;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !responseType || responseType === 'text' ||  responseType === 'json' ?\n        request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(\n        timeoutErrorMessage,\n        config,\n        config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n  transitional: {\n    silentJSONParsing: true,\n    forcedJSONParsing: true,\n    clarifyTimeoutError: false\n  },\n\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n      setContentTypeIfUnset(headers, 'application/json');\n      return stringifySafely(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    var transitional = this.transitional;\n    var silentJSONParsing = transitional && transitional.silentJSONParsing;\n    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n    if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw enhanceError(e, this, 'E_JSON_PARSE');\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  var context = this || defaults;\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(context, data, headers);\n  });\n\n  return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  var valueFromConfig2Keys = ['url', 'method', 'data'];\n  var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n  var defaultToConfig2Keys = [\n    'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n    'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n    'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n    'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n  ];\n  var directMergeKeys = ['validateStatus'];\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    }\n  });\n\n  utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n  utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  utils.forEach(directMergeKeys, function merge(prop) {\n    if (prop in config2) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  var axiosKeys = valueFromConfig2Keys\n    .concat(mergeDeepPropertiesKeys)\n    .concat(defaultToConfig2Keys)\n    .concat(directMergeKeys);\n\n  var otherKeys = Object\n    .keys(config1)\n    .concat(Object.keys(config2))\n    .filter(function filterAxiosKeys(key) {\n      return axiosKeys.indexOf(key) === -1;\n    });\n\n  utils.forEach(otherKeys, mergeDeepProperties);\n\n  return config;\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n  var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n  var destVer = version.split('.');\n  for (var i = 0; i < 3; i++) {\n    if (pkgVersionArr[i] > destVer[i]) {\n      return true;\n    } else if (pkgVersionArr[i] < destVer[i]) {\n      return false;\n    }\n  }\n  return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  var isDeprecated = version && isOlderVersion(version);\n\n  function formatMessage(opt, desc) {\n    return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return function(value, opt, opts) {\n    if (validator === false) {\n      throw new Error(formatMessage(opt, ' has been removed in ' + version));\n    }\n\n    if (isDeprecated && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new TypeError('options must be an object');\n  }\n  var keys = Object.keys(options);\n  var i = keys.length;\n  while (i-- > 0) {\n    var opt = keys[i];\n    var validator = schema[opt];\n    if (validator) {\n      var value = options[opt];\n      var result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new TypeError('option ' + opt + ' must be ' + result);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw Error('Unknown option ' + opt);\n    }\n  }\n}\n\nmodule.exports = {\n  isOlderVersion: isOlderVersion,\n  assertOptions: assertOptions,\n  validators: validators\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  var transitional = config.transitional;\n\n  if (transitional !== undefined) {\n    validator.assertOptions(transitional, {\n      silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n      forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n      clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n    }, false);\n  }\n\n  // filter out skipped interceptors\n  var requestInterceptorChain = [];\n  var synchronousRequestInterceptors = true;\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n      return;\n    }\n\n    synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n    requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var responseInterceptorChain = [];\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var promise;\n\n  if (!synchronousRequestInterceptors) {\n    var chain = [dispatchRequest, undefined];\n\n    Array.prototype.unshift.apply(chain, requestInterceptorChain);\n    chain = chain.concat(responseInterceptorChain);\n\n    promise = Promise.resolve(config);\n    while (chain.length) {\n      promise = promise.then(chain.shift(), chain.shift());\n    }\n\n    return promise;\n  }\n\n\n  var newConfig = config;\n  while (requestInterceptorChain.length) {\n    var onFulfilled = requestInterceptorChain.shift();\n    var onRejected = requestInterceptorChain.shift();\n    try {\n      newConfig = onFulfilled(newConfig);\n    } catch (error) {\n      onRejected(error);\n      break;\n    }\n  }\n\n  try {\n    promise = dispatchRequest(newConfig);\n  } catch (error) {\n    return Promise.reject(error);\n  }\n\n  while (responseInterceptorChain.length) {\n    promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","import axios from 'axios';\nimport { get } from 'svelte/store';\nimport Cookies from 'js-cookie';\nimport { isLoadingStore } from '../store/common';\nimport { Alert } from './common';\n\nlet baseURL = 'https://netease-cloud-music-api-eight-lime.vercel.app/'\n\nconst service = axios.create({\n  baseURL,\n  withCredentials: true,\n  timeout: 15000,\n});\n\nservice.interceptors.request.use(config => {\n  if (!config.params) config.params = {};\n  // const c = Cookies.get('MUSIC_U')\n  // c && (config.params.cookie = `MUSIC_U=${c};`);\n  if (!config.isHideLoading) {\n    if (!get(isLoadingStore)) {\n      isLoadingStore.set(true);\n    }\n  }\n  return config;\n});\n\nservice.interceptors.response.use(\n  response => {\n    isLoadingStore.set(false);\n    const res = response.data;\n    console.debug('response', response.config.url, res);\n    if (res.code && ![200, 800, 801, 802, 803].includes(res.code)) {\n      const msg = res.message || res.msg || '未知错误';\n      const message = `${msg} (${response.config.url}: ${res.code})`;\n      Alert(typeof res === 'string' ? res : message);\n    }\n    return res;\n  },\n  error => {\n    isLoadingStore.set(false);\n    //签到不做报错处理\n    if (error.response.config.url != '/daily_signin') {\n      Alert(\n        error.response.data.code +\n        ':' +\n        (error.response.data.message\n          ? error.response.data.message\n          : error.response.data.msg\n            ? error.response.data.msg\n            : '未知错误')\n      );\n      return error.response.data;\n    }\n  }\n);\n\nexport default service;\n","import request from '../utils/request';\n\n/**\n * 获取音乐 url\n * 说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url,\n * !!!未登录状态返回试听片段(返回字段包含被截取的正常歌曲的开始时间和结束时间)\n * @param {string} id - 音乐的 id,例如 id=405998841,33894312\n */\nexport function getSongUrl(id) {\n  let br = 128000;\n  switch (localStorage.getItem('musicQuality')) {\n    case '0':\n      br = 128000;\n      break;\n    case '1':\n      br = 192000;\n      break;\n    case '2':\n      br = 320000;\n      break;\n    case '3':\n      br = 999000;\n      break;\n    default:\n      br = 128000;\n      break;\n  }\n  return request({\n    url: '/song/url',\n    method: 'get',\n    params: {\n      id,\n      br,\n    },\n    isHideLoading: true,\n  });\n}\n\n/**\n * 获取歌曲详情\n * 说明 : 调用此接口 , 传入音乐 id(支持多个 id, 用 , 隔开), 可获得歌曲详情(注意:歌曲封面现在需要通过专辑内容接口获取)\n * @param {string} ids - 音乐 id, 例如 ids=405998841,33894312\n */\nexport function getSongDetail(ids) {\n  if (typeof ids === 'string') ids = ids.replace(/,,/, ',');\n  return request({\n    url: '/song/detail',\n    method: 'get',\n    params: {\n      ids,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n/**\n * 获取相似音乐\n * 说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌曲\n * @param {string} id- 音乐 id, 例如 ids=405998841,33894312\n */\nexport function getSimiSong(id) {\n  return request({\n    url: '/simi/song',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n/**\n * 私人 FM( 需要登录 )\n *\n */\nexport function personalFM() {\n  return request({\n    url: '/personal_fm',\n    method: 'get',\n    params: {\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n/**\n * 喜欢音乐\n * 说明 : 调用此接口 , 传入音乐 id, 可喜欢该音乐\n * - id - 歌曲 id\n * - like - 默认为 true 即喜欢 , 若传 false, 则取消喜欢\n * @param {Object} params\n * @param {number} params.id\n * @param {boolean=} [params.like]\n */\nexport function likeThisSong(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/like',\n    method: 'get',\n    params,\n  });\n}\n\n//说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶\nexport function fmTrash(id) {\n  return request({\n    url: '/fm_trash',\n    method: 'post',\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n\n/**\n * 获取歌词\n * 说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的歌词 ( 不需要登录 )\n * @param {number} id - 音乐 id\n */\nexport function getLyric(id) {\n  return request({\n    url: '/lyric',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n\n/**\n * 热门评论\n * 说明 : 调用此接口 , 传入 type, 资源 id 可获得对应资源热门评论 ( 不需要登录 )\n * 必选参数 : id : 资源 id\n * type: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型\n * 0: 歌曲;1: mv;2: 歌单;3: 专辑;4: 电台;5: 视频\n * 可选参数 : limit: 取出评论数量 , 默认为 20\n * offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值\n * before: 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过5000条评论的时候需要用到)\n * 接口地址 : /comment/hot\n * 调用例子 : /comment/hot?id=186016&type=0\n * @param {number} id\n * @param {number} type\n * @param {number} limit\n * @param {number} offset\n * @returns\n */\nexport function getHotComment(id, offset = 0, type = 0, limit = 20) {\n  return request({\n    url: '/comment/hot',\n    method: 'get',\n    params: {\n      id,\n      type,\n      limit,\n      offset,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n/**\n * 新版评论接口\n * 说明 : 调用此接口 , 传入资源类型和资源id,以及排序方式,可获取对应资源的评论\n * 必选参数 :\n * id : 资源 id, 如歌曲 id,mv id\n * type: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型\n * 0: 歌曲 1: mv 2: 歌单 3: 专辑 4: 电台 5: 视频 6: 动态f\n * 可选参数 :\n * pageNo:分页参数,第N页,默认为1\n * pageSize:分页参数,每页多少条数据,默认20\n * sortType: 排序方式,1:按推荐排序,2:按热度排序,3:按时间排序\n * cursor: 当sortType为3时且页数不是第一页时需传入,值为上一条数据的time\n * 接口地址 : /comment/new\n * 调用例子 : /comment/new?type=0&id=1407551413&sortType=3,\n * /comment/new?type=0&id=1407551413&sortType=3&cursor=1602072870260&pageSize=20&pageNo=2\n * @param {Object} params\n * @param {number} params.id\n * @param {number} params.type\n * @param {number} params.limit\n * @param {number} params.offset\n * @param {number} params.before\n */\nexport function getComment(id, type = 0, pageNo = 1) {\n  return request({\n    url: '/comment/new',\n    method: 'post',\n    params: {\n      id,\n      type,\n      pageNo,\n      pageSize: 20,\n      sortType: 2,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 给评论点赞\n说明 : 调用此接口 , 传入 type, 资源 id, 和评论 id cid 和 是否点赞参数 t 即可给对 应评论点赞 ( 需要登录 )\n必选参数 : id : 资源 id, 如歌曲 id,mv id\ncid : 评论 id\nt : 是否点赞 ,1 为点赞 ,0 为取消点赞\ntype: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型\n*/\nexport function likeComment(id, cid, type = 0, t) {\n  return request({\n    url: '/comment/like',\n    method: 'get',\n    params: {\n      id,\n      cid,\n      type,\n      t,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n","<script>\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n\n  import Song from './Song.svelte';\n\n  import { getSongUrl } from '../api/song';\n\n  import { Toast } from '../utils/common';\n\n  export let songList = [];\n  export let isPlayList = false; //是否播放列表,false表示播放单曲\n\n  function playListFun(index) {\n    if (isPlayList) {\n      playRepeatModelStore.set('repeat');\n      isFMPlayStore.set(false);\n      localStorage.setItem('isFMPlay', '0');\n      currentPlayListStore.set(songList);\n      let ids = [];\n      for (let r = 0; r < songList.length; r++) {\n        ids.push(songList[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n      currentSongIndexStore.set(index);\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n    } else {\n      isFMPlayStore.set(false);\n      localStorage.setItem('isFMPlay', '0');\n      let newcurrentPlayList = $currentPlayListStore;\n      let newPlayListIds = [];\n      for (let r = 0; r < newcurrentPlayList.length; r++) {\n        newPlayListIds.push(newcurrentPlayList[r].id);\n      }\n      if (newPlayListIds.includes(songList[index].id)) {\n        currentSongIndexStore.set(newPlayListIds.indexOf(songList[index].id));\n        getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n      } else {\n        newcurrentPlayList.splice($currentSongIndexStore + 1, 0, songList[index]);\n        currentPlayListStore.set(newcurrentPlayList);\n        let ids = [];\n        for (let r = 0; r < newcurrentPlayList.length; r++) {\n          ids.push(newcurrentPlayList[r].id);\n        }\n        localStorage.setItem('localPlayList', JSON.stringify(ids));\n        currentSongIndexStore.set($currentSongIndexStore + 1);\n        getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n      }\n    }\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  function getSongClick(event) {\n    playListFun(event.detail.index);\n  }\n</script>\n\n<div>\n  {#each songList as song, i}\n    <Song {song} index={i} on:songClick={getSongClick} />\n  {/each}\n</div>\n","<script>\n  import { onMount } from \"svelte\";\n  import { push, location } from \"svelte-stack-router\";\n  import {\n    SkipBackFill,\n    SkipForwardFill,\n    PlayFill,\n    PauseFill,\n    ChatQuoteLine,\n    ChatQuoteFill,\n    Message2Line,\n    RadioLine,\n    Heart2Line,\n    Heart2Fill,\n    DislikeLine,\n    RepeatOneLine,\n    ShuffleLine,\n    PlayListLine,\n    PlayListFill,\n    SortDesc,\n    HeartPulseLine,\n  } from \"svelte-remixicon\";\n\n  import { Picker, Progress } from \"../components/base\";\n  import Lyric from \"../components/Lyric.svelte\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import {\n    getSongUrl,\n    personalFM,\n    likeThisSong,\n    getLyric,\n    fmTrash,\n  } from \"../api/song\";\n\n  import {\n    playStatusStore,\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    maxPlayToTopStore,\n    playIsMaxStore,\n    isFMPlayStore,\n    FMPlayNextStore,\n    FMPlayStore,\n    currentLyricStore,\n    mainCoverTypeStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import {\n    isLoginStore,\n    isHomePageStore,\n    currentDetailSongerIdStore,\n    isShowCommentStore,\n  } from \"../store/common\";\n  import { userLikeSongIdsStore } from \"../store/user\";\n\n  import {\n    timeToMinute,\n    songerListToStr,\n    Toast,\n    ripple,\n  } from \"../utils/common\";\n\n  export let currentTime = \"0:00\"; //当前播放时间\n  export let currentTimeLong = 0; //进度条长度\n  export let endTime = 0; //结束时间\n\n  let lyricDom;\n  let listDom;\n  let loveDom;\n  let disloveDom;\n  let repeatDom;\n  let commentDom;\n  let preDom;\n  let playDom;\n  let nextDom;\n  let coverDom;\n\n  let playBgDom;\n  let touchMoveToTop = 0; //播放器顶部距离整个视窗顶部的距离\n  let touchStartY; //滑动开始时候触摸点Y坐标\n  let touchEndY; //滑动结束时候触摸点Y坐标\n  let touchStartTime = 0; //滑动开始时间戳\n  let touchEndTime = 0; //滑动结束时间戳\n  let playListDom;\n\n  $: isLikeCurrentSong = $isLoginStore\n    ? $userLikeSongIdsStore.includes($currentSongStore.id)\n    : false; //是否喜欢当前歌曲\n  $: likeLoading = false; //优化点击红心请求时候loading效果\n  $: noLikeLoading = false; //优化FM点击不喜欢红心请求时候loading效果\n  $: lyricLoading = false; //优化点击歌词请求时候loading效果\n  $: PickerShow = false;\n  $: songers = $currentSongStore.ar;\n\n  onMount(() => {\n    maxPlayToTopStore.set(window.screen.height + \"px\");\n    playIsMaxStore.set(false);\n    mainCoverTypeStore.set(\"cover\");\n    if (lyricDom) ripple(lyricDom);\n    if (listDom) ripple(listDom);\n    if (loveDom) ripple(loveDom);\n    if (disloveDom) ripple(disloveDom);\n    if (repeatDom) ripple(repeatDom);\n    if (commentDom) ripple(commentDom);\n    if (preDom) ripple(preDom);\n    if (playDom) ripple(playDom);\n    if (nextDom) ripple(nextDom);\n    if (coverDom) ripple(coverDom);\n  });\n  //接收子组件(Progress)发送来的事件(setCurrent),获取当前进度点的值(event.detail.current)。\n  function getCurrent(event) {\n    window.audioDOM.currentTime =\n      (event.detail.current / 100) * window.audioDOM.duration;\n    currentTime = timeToMinute(window.audioDOM.currentTime);\n    currentTimeLong =\n      (window.audioDOM.currentTime / window.audioDOM.duration) * 100;\n    endTime =\n      \"-\" +\n      timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n    window.audioDOM.play();\n    playStatusStore.set(true);\n  }\n  //接收子组件(Progress)发送来的事件(setTimeCurrent),获取当前进度时间点的值(event.detail.timeCurrent )。\n  function getTimeCurrent(event) {\n    window.audioDOM.currentTime =\n      (event.detail.timeCurrent / 100) * window.audioDOM.duration;\n    currentTime = timeToMinute(window.audioDOM.currentTime);\n    currentTimeLong =\n      (window.audioDOM.currentTime / window.audioDOM.duration) * 100;\n    endTime =\n      \"-\" +\n      timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n  }\n  function handleDown() {\n    maxPlayToTopStore.set(window.screen.height + \"px\");\n    playIsMaxStore.set(false);\n    mainCoverTypeStore.set(\"cover\");\n  }\n  //切换下一首\n  function playNextFun() {\n    if ($isFMPlayStore) {\n      //正在私人FM\n      getSongUrlFun($FMPlayNextStore, \"next\");\n      mainCoverTypeStore.set(\"cover\");\n    } else {\n      if ($currentSongIndexStore === $currentPlayListStore.length - 1) {\n        Toast(\"已经是最后一首了\");\n      } else {\n        if ($mainCoverTypeStore === \"lyric\") mainCoverTypeStore.set(\"cover\");\n        //随机模式\n        if ($playRepeatModelStore === \"shuffle\") {\n          // Math.floor(Math.random() * 21);\n          let index = Math.floor(\n            Math.random() * ($currentPlayListStore.length - 1)\n          );\n          getSongUrlFun($currentPlayListStore[index], \"shuffle\", index);\n        } else {\n          currentSongIndexStore.set($currentSongIndexStore + 1);\n          getSongUrlFun($currentPlayListStore[$currentSongIndexStore], \"next\");\n        }\n      }\n    }\n  }\n  //切换上一首\n  function playPreFun() {\n    if ($currentSongIndexStore === 0) {\n      Toast(\"已经是第一首了\");\n    } else {\n      if ($mainCoverTypeStore === \"lyric\") mainCoverTypeStore.set(\"cover\");\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore - 1], \"pre\");\n    }\n  }\n  //获取歌单url\n  async function getSongUrlFun(song, type, index) {\n    const res = await getSongUrl(song.id);\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          //私人FM\n          personalFMFun();\n          FMPlayStore.set(song);\n          currentSongStore.set(song);\n          currentPlayListStore.set([$FMPlayStore]);\n          currentSongIndexStore.set(0);\n          localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        } else {\n          //切换下一首和上一首之后,修改播放歌曲在播放列表中的位置\n          if (type === \"next\") {\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          } else if (type === \"shuffle\") {\n            //随机\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              currentSongIndexStore.set(index);\n            }\n          } else {\n            //上一首\n            currentSongIndexStore.set($currentSongIndexStore - 1);\n          }\n        }\n      } else {\n        Toast(\n          `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n          2000\n        );\n      }\n    }\n  }\n  //私人FM\n  async function personalFMFun() {\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      FMPlayNextStore.set(res.data[0]);\n      getSongUrl(res.data[0].id);\n    }\n  }\n  //点击红心\n  async function handleLoveFun() {\n    if ($isLoginStore) {\n      likeLoading = true;\n      const res = await likeThisSong({\n        id: $currentSongStore.id,\n        like: !isLikeCurrentSong,\n      });\n      if (res.code === 200) {\n        const ids = JSON.parse(localStorage.getItem(\"useLoveSongIds\"));\n        if (isLikeCurrentSong) {\n          let i = ids.indexOf($currentSongStore.id);\n          ids.splice(i, 1);\n        } else {\n          ids.unshift($currentSongStore.id);\n        }\n        likeLoading = false;\n        userLikeSongIdsStore.set(JSON.stringify(ids));\n        localStorage.setItem(\"useLoveSongIds\", JSON.stringify(ids));\n      } else {\n        likeLoading = false;\n      }\n    } else {\n      Toast(\"当前未登录\");\n    }\n  }\n  //FM 不喜欢\n  async function handleFMNoLoveFun() {\n    noLikeLoading = true;\n    const res = await fmTrash($currentSongStore.id);\n    if (res.code === 200) {\n      noLikeLoading = false;\n      playNextFun();\n    }\n  }\n  //切换歌词显示\n  function changeLyricFun() {\n    if ($mainCoverTypeStore !== \"lyric\") {\n      getlyricFun();\n    } else {\n      mainCoverTypeStore.set(\"cover\");\n    }\n  }\n  //请求歌词\n  async function getlyricFun() {\n    if ($currentLyricStore.songId === $currentSongStore.id) {\n      mainCoverTypeStore.set(\"lyric\");\n    } else {\n      lyricLoading = true;\n      const res = await getLyric($currentSongStore.id);\n      if (res.code === 200) {\n        lyricLoading = false;\n        if (res.nolyric || res.needDesc || res.lrc.lyric === \"\") {\n          Toast(\"🙈🙈么有歌词哦!!🙈🙈\");\n          currentLyricStore.set({\n            songId: null,\n            lyric: null,\n            tlyric: null,\n          });\n          localStorage.setItem(\n            \"currentLyric\",\n            JSON.stringify({\n              songId: null,\n              lyric: null,\n              tlyric: null,\n            })\n          );\n        } else {\n          currentLyricStore.set({\n            songId: $currentSongStore.id,\n            lyric: res.lrc.lyric,\n            tlyric: res.tlyric.lyric,\n          });\n          localStorage.setItem(\n            \"currentLyric\",\n            JSON.stringify({\n              songId: $currentSongStore.id,\n              lyric: res.lrc.lyric,\n              tlyric: res.tlyric.lyric,\n            })\n          );\n          mainCoverTypeStore.set(\"lyric\");\n        }\n      } else {\n        lyricLoading = false;\n      }\n    }\n  }\n  //切换播放列表显示\n  function changeListFun() {\n    if ($mainCoverTypeStore !== \"list\") {\n      if ($currentSongIndexStore > 200) {\n        let r = confirm(\n          \"当前播放歌曲在播放列表中位置超过 200,显示播放列表将自动滚动至当前歌曲,极短时间内渲染大量页面会严重消耗设备性能😈😈。可以考虑到歌单详情页(已做了懒加载)查看列表哦😅。🤔确定显示播放列表吗🤔?\"\n        );\n        if (r === true) {\n          if ($currentPlayListStore.length > 200) {\n            Toast(\"列表太长,等我加载...🥱🥱\", 1000, () => {\n              mainCoverTypeStore.set(\"list\");\n              setTimeout(() => {\n                playListDom.scrollTop = 60 * $currentSongIndexStore;\n              }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n            });\n          } else {\n            mainCoverTypeStore.set(\"list\");\n            setTimeout(() => {\n              playListDom.scrollTop = 60 * $currentSongIndexStore;\n            }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n          }\n        }\n      } else {\n        if ($currentPlayListStore.length > 200) {\n          Toast(\"列表太长,等我加载...🥱🥱\", 1000, () => {\n            mainCoverTypeStore.set(\"list\");\n            setTimeout(() => {\n              playListDom.scrollTop = 60 * $currentSongIndexStore;\n            }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n          });\n        } else {\n          mainCoverTypeStore.set(\"list\");\n          setTimeout(() => {\n            playListDom.scrollTop = 60 * $currentSongIndexStore;\n          }, 100); //做延迟处理,渲染页面之后才能获取DOM高度,计算滚动高度\n        }\n      }\n    } else {\n      mainCoverTypeStore.set(\"cover\");\n    }\n  }\n  // 切换播放循环模式\n  function changeRrpeatFun(e) {\n    if ($playRepeatModelStore === \"heart\") {\n      Toast(\"心动模式无需切换\");\n    } else {\n      if ($playRepeatModelStore === \"repeat\") {\n        playRepeatModelStore.set(\"shuffle\");\n      } else if ($playRepeatModelStore === \"shuffle\") {\n        playRepeatModelStore.set(\"repeatOnce\");\n      } else {\n        playRepeatModelStore.set(\"repeat\");\n      }\n    }\n  }\n  //歌词区域点击\n  function lyricClickFun() {\n    mainCoverTypeStore.set(\"cover\");\n  }\n  //去歌曲评论页面\n  function toCommentFun() {\n    mainCoverTypeStore.set(\"cover\");\n    maxPlayToTopStore.set(window.screen.height + \"px\");\n    playIsMaxStore.set(false);\n    if (!($location === \"/comments\")) {\n      if ($isHomePageStore) isHomePageStore.set(false);\n      push(\"/comments\");\n    }\n  }\n  //滑动开始\n  function touchStart(e) {\n    touchStartTime = new Date().getTime();\n    touchStartY = e.changedTouches[0].clientY;\n    touchMoveToTop = 0;\n    maxPlayToTopStore.set(touchMoveToTop + \"px\");\n  }\n  //滑动结束\n  function touchEnd(e) {\n    touchEndTime = new Date().getTime();\n    touchEndY = e.changedTouches[0].clientY;\n    // 移动距离小于100不触发任何行为\n    // 移动结束时,播放器顶部距整个视窗顶部的距离大于屏幕高度一半的时候,可以不用考虑滑动速度,直接最小化播放器\n    // 移动距离超过100,播放器顶部距整个视窗顶部的距离还不到一半的时候,考虑速度,速度超过0.8,直接最小化;\n    // 速度小于0.3,不判断为最小化;0.3-0.8之间,如果移动距离超过250,最小化,不到250则不触发最小化。\n    if (touchMoveToTop >= window.screen.height / 2) {\n      //最小化\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set(\"cover\");\n    } else if (touchEndY - touchStartY <= 100) {\n      maxPlayToTopStore.set(\"0px\");\n    } else if (\n      touchEndY - touchStartY > 100 &&\n      (touchEndY - touchStartY) / (touchEndTime - touchStartTime) >= 0.8\n    ) {\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set(\"cover\");\n    } else if (\n      touchEndY - touchStartY > 100 &&\n      (touchEndY - touchStartY) / (touchEndTime - touchStartTime) <= 0.3\n    ) {\n      maxPlayToTopStore.set(\"0px\");\n    } else if (\n      0.3 < (touchEndY - touchStartY) / (touchEndTime - touchStartTime) < 0.8 &&\n      touchEndY - touchStartY > 250\n    ) {\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set(\"cover\");\n    } else {\n      maxPlayToTopStore.set(\"0px\");\n    }\n  }\n  //滑动过程\n  function touchMove(e) {\n    //阻止滑动时穿透问题\n    e.preventDefault();\n    e.stopPropagation();\n    if (parseFloat(playBgDom.style[\"top\"]) >= 0) {\n      touchMoveToTop = e.changedTouches[0].clientY - touchStartY;\n      maxPlayToTopStore.set(touchMoveToTop + \"px\");\n    }\n  }\n</script>\n\n<div\n  bind:this={playBgDom}\n  class=\"play-bg\"\n  style=\"background: url({$currentSongStore.al.picUrl.replace(\n    /^http:/,\n    'https:'\n  ) + '?param=800y800'});top:{$maxPlayToTopStore}\"\n>\n  <div class=\"play\">\n    <div class=\"top-box\">\n      <div\n        class=\"down\"\n        on:click={handleDown}\n        on:touchstart={touchStart}\n        on:touchend={touchEnd}\n        on:touchmove={touchMove}\n      >\n        <div class=\"down-line\" />\n      </div>\n      {#if $mainCoverTypeStore === \"cover\"}\n        <div\n          class=\"cover\"\n          on:click={handleDown}\n          on:touchstart={touchStart}\n          on:touchend={touchEnd}\n          on:touchmove={touchMove}\n          bind:this={coverDom}\n        >\n          <div>\n            <img\n              style=\"width:{$playStatusStore\n                ? '280px'\n                : '240px'};height:{$playStatusStore ? '280px' : '240px'}\"\n              src={$currentSongStore.al.picUrl.replace(/^http:/, \"https:\") +\n                \"?param=800y800\"}\n              alt=\"\"\n              class=\"cover-img\"\n            />\n          </div>\n        </div>\n      {:else if $mainCoverTypeStore === \"lyric\"}\n        <div class=\"lyric-cover\" on:click={lyricClickFun}>\n          <Lyric maxHeight=\"54vh\" />\n        </div>\n      {:else if !$isFMPlayStore && $mainCoverTypeStore === \"list\"}\n        <div class=\"song-list-box\" bind:this={playListDom}>\n          <SongList songList={$currentPlayListStore} />\n        </div>\n      {/if}\n    </div>\n    <div class=\"control-box\">\n      <div class=\"info\">\n        <div class=\"song\">\n          <div class=\"name\">\n            {$currentSongStore.name}\n            <span class=\"alia\">\n              {$currentSongStore.alia && $currentSongStore.alia.length > 0\n                ? `(${$currentSongStore.alia[0]})`\n                : \"\"}\n            </span>\n          </div>\n          <div\n            class=\"songer\"\n            on:click={() => {\n              if (songers.length === 1) {\n                if (songers[0].id != 0) {\n                  mainCoverTypeStore.set(\"cover\");\n                  maxPlayToTopStore.set(window.screen.height + \"px\");\n                  playIsMaxStore.set(false);\n                  isHomePageStore.set(false);\n                  currentDetailSongerIdStore.set(songers[0].id);\n                  push(`/artist?id=${songers[0].id}`);\n                }\n              } else {\n                PickerShow = true;\n              }\n            }}\n          >\n            {songerListToStr($currentSongStore.ar)}\n            <span>\n              {$currentSongStore.al.name === \"\"\n                ? \"\"\n                : `- ${$currentSongStore.al.name}`}\n            </span>\n          </div>\n        </div>\n        <div class=\"progress\">\n          <div class=\"line\">\n            <Progress\n              on:setCurrent={getCurrent}\n              on:setTimeCurrent={getTimeCurrent}\n              current={currentTimeLong}\n            />\n          </div>\n          <!-- 时间显示 -->\n          <div class=\"time\">\n            <div class=\"time-item start\">{currentTime}</div>\n            <div\n              class=\"time-item quality\"\n              on:click={() => {\n                mainCoverTypeStore.set(\"cover\");\n                maxPlayToTopStore.set(window.screen.height + \"px\");\n                playIsMaxStore.set(false);\n                if (!($location === \"/brSelect\")) {\n                  if ($isHomePageStore) isHomePageStore.set(false);\n                  push(\"/brSelect\");\n                }\n              }}\n            >\n              <span class=\"quality-span\">\n                {$currentSongQualityStore === \"FLAC\" ||\n                $currentSongQualityStore === \"试听\"\n                  ? $currentSongQualityStore\n                  : $currentSongQualityStore\n                      .toString()\n                      .substring(\n                        0,\n                        $currentSongQualityStore.toString().length - 3\n                      ) + \"K\"}\n              </span>\n            </div>\n            <div class=\"time-item end\">{endTime}</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"tool\">\n        <!-- 歌词 -->\n        <div\n          class=\"tool-item lyric\"\n          on:click={changeLyricFun}\n          bind:this={lyricDom}\n        >\n          {#if lyricLoading}\n            <span style=\"line-height: 30px;\">\n              <embed\n                width=\"24\"\n                height=\"24\"\n                src=\"/images/Ripple.svg\"\n                type=\"image/svg+xml\"\n              />\n            </span>\n          {:else if $mainCoverTypeStore === \"lyric\"}\n            <ChatQuoteFill size=\"20\" style=\"vertical-align: middle\" />\n          {:else}\n            <ChatQuoteLine size=\"20\" style=\"vertical-align: middle\" />\n          {/if}\n        </div>\n        {#if !$isFMPlayStore}\n          <!-- 播放列表 -->\n          <div\n            class=\"tool-item list\"\n            on:click={changeListFun}\n            bind:this={listDom}\n          >\n            {#if $mainCoverTypeStore === \"list\"}\n              <PlayListFill size=\"20\" style=\"vertical-align: middle\" />\n            {:else}\n              <PlayListLine size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </div>\n        {/if}\n        {#if $isFMPlayStore && $isLoginStore}\n          <!-- FM 不喜欢 -->\n          <div\n            class=\"tool-item list\"\n            on:click={handleFMNoLoveFun}\n            bind:this={disloveDom}\n          >\n            {#if noLikeLoading}\n              <span style=\"line-height: 30px;\">\n                <embed\n                  width=\"24\"\n                  height=\"24\"\n                  src=\"/images/Ripple.svg\"\n                  type=\"image/svg+xml\"\n                />\n              </span>\n            {:else}\n              <DislikeLine size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </div>\n        {/if}\n        {#if $isLoginStore}\n          <!-- 喜欢 -->\n          <div\n            class=\"tool-item love\"\n            on:click={handleLoveFun}\n            bind:this={loveDom}\n          >\n            {#if likeLoading}\n              <span style=\"line-height: 30px;\">\n                <embed\n                  width=\"24\"\n                  height=\"24\"\n                  src=\"/images/Ripple.svg\"\n                  type=\"image/svg+xml\"\n                />\n              </span>\n            {:else}\n              <span\n                style=\"color:{isLikeCurrentSong\n                  ? 'var(--primary-text-color)'\n                  : '#fff'}\"\n              >\n                {#if isLikeCurrentSong}\n                  <Heart2Fill size=\"20\" style=\"vertical-align: middle\" />\n                {:else}\n                  <Heart2Line size=\"20\" style=\"vertical-align: middle\" />\n                {/if}\n              </span>\n            {/if}\n          </div>\n        {/if}\n        {#if !$isFMPlayStore}\n          <!-- 播放模式 -->\n          <div\n            class=\"tool-item mode\"\n            on:click={(e) => changeRrpeatFun(e)}\n            bind:this={repeatDom}\n          >\n            {#if $playRepeatModelStore === \"repeat\"}\n              <SortDesc size=\"20\" style=\"vertical-align: middle\" />\n            {:else if $playRepeatModelStore === \"repeatOnce\"}\n              <RepeatOneLine size=\"20\" style=\"vertical-align: middle\" />\n            {:else if $playRepeatModelStore === \"heart\"}\n              <span class:heart-beat={$playStatusStore}>\n                <HeartPulseLine size=\"20\" style=\"vertical-align: middle\" />\n              </span>\n            {:else}\n              <ShuffleLine size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </div>\n        {/if}\n        <!-- 评论 -->\n        {#if $isShowCommentStore != \"0\"}\n          <div\n            class=\"tool-item comment\"\n            on:click={toCommentFun}\n            bind:this={commentDom}\n          >\n            <Message2Line size=\"20\" style=\"vertical-align: middle\" />\n          </div>\n        {/if}\n      </div>\n      <div class=\"control\">\n        <div\n          class=\"con-item pre\"\n          on:click={() => {\n            if (!$isFMPlayStore) playPreFun();\n          }}\n          bind:this={preDom}\n        >\n          {#if $isFMPlayStore}\n            <RadioLine\n              size=\"24px\"\n              style=\"vertical-align: middle;;height:80px\"\n            />\n          {:else}\n            <SkipBackFill\n              size=\"40px\"\n              style=\"vertical-align: middle;height:80px\"\n            />\n          {/if}\n        </div>\n        <div\n          class=\"con-item pause\"\n          bind:this={playDom}\n          on:click={() => {\n            if ($playStatusStore) {\n              window.audioDOM.pause();\n              playStatusStore.set(false);\n              localStorage.setItem(\"pauseTimes\", new Date().getTime());\n            } else {\n              //解决长时间不播放URL失效问题(暂定30分钟过期)\n              if (\n                (new Date().getTime() -\n                  Number(localStorage.getItem(\"pauseTimes\"))) /\n                  1000 /\n                  60 >\n                30\n              ) {\n                window.audioDOM.src = `https://music.163.com/song/media/outer/url?id=${$currentSongStore.id}.mp3`;\n              }\n              window.audioDOM.play();\n              playStatusStore.set(true);\n            }\n          }}\n        >\n          {#if $playStatusStore}\n            <PauseFill size=\"80px\" style=\"vertical-align: middle;height:80px\" />\n          {:else}\n            <PlayFill size=\"80px\" style=\"vertical-align: middle;height:80px\" />\n          {/if}\n        </div>\n        <div class=\"con-item next\" on:click={playNextFun} bind:this={nextDom}>\n          <SkipForwardFill\n            size=\"40px\"\n            style=\"vertical-align: middle;height:80px\"\n          />\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n{#if $playIsMaxStore && 0 < parseFloat($maxPlayToTopStore) < window.screen.height - 40}\n  <div\n    class=\"play-mask\"\n    style=\"background-color: rgba(0, 0, 0, {0.9 -\n      parseFloat($maxPlayToTopStore) / window.screen.height});\"\n  />\n{/if}\n\n<Picker\n  isShow={PickerShow}\n  title=\"请选择歌手\"\n  on:ChangeShow={(e) => {\n    PickerShow = e.detail.isShow;\n  }}\n  on:PickerClick={(e) => {\n    const { item: artist } = e.detail;\n    if (artist.id != 0) {\n      mainCoverTypeStore.set(\"cover\");\n      maxPlayToTopStore.set(window.screen.height + \"px\");\n      playIsMaxStore.set(false);\n      isHomePageStore.set(false);\n      currentDetailSongerIdStore.set(artist.id);\n      push(`/artist?id=${artist.id}`);\n    }\n  }}\n  list={songers}\n/>\n\n<style>\n  .alia {\n    color: rgb(255, 255, 255, 0.7);\n    font-size: 14px;\n    font-weight: normal;\n  }\n  .down {\n    text-align: center;\n    height: 6vh;\n    display: flex;\n  }\n  .down-line {\n    margin: auto;\n    width: 40px;\n    height: 6px;\n    border-radius: 3px;\n    margin: auto;\n    background: rgba(255, 255, 255, 0.8);\n  }\n  .line {\n    padding: 10px 20px;\n  }\n  .time {\n    font-size: 10px;\n    columns: 2;\n    padding: 0 18px;\n    color: rgba(255, 255, 255, 0.6);\n    display: flex;\n  }\n  .time-item {\n    flex: 1;\n  }\n  .start {\n    text-align: left;\n  }\n  .quality {\n    text-align: center;\n    display: inline-block;\n    opacity: 0.6;\n  }\n  .quality-span {\n    line-height: 13px;\n    font-size: 8px;\n    padding: 0 2px;\n    background-color: #fff;\n    border-radius: 2px;\n    color: rgb(99, 99, 99);\n  }\n  .end {\n    text-align: right;\n  }\n  .name {\n    margin-top: 20px;\n    font-size: 20px;\n    font-weight: bold;\n  }\n  .info {\n    text-align: left;\n  }\n  .song {\n    padding: 0 20px;\n  }\n  .songer {\n    margin-top: 6px;\n    font-size: 14px;\n    color: rgb(255, 255, 255, 0.7);\n  }\n  .play-bg {\n    width: 100vw;\n    height: 100vh;\n    position: fixed;\n    bottom: 0;\n    z-index: 999;\n    background-size: cover !important;\n    background-position: center !important;\n    transition: top 0.4s cubic-bezier(0.25, 1, 0.5, 1);\n    -webkit-transition: top 0.4s cubic-bezier(0.25, 1, 0.5, 1);\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .cover-img {\n    object-fit: cover;\n    transition: all 0.3s ease;\n    -webkit-transition: all 0.3s ease;\n  }\n  .play {\n    position: absolute;\n    z-index: 1001;\n    width: 100%;\n    height: 100%;\n    background: rgba(0, 0, 0, 0.4);\n    backdrop-filter: blur(20px);\n    -webkit-backdrop-filter: blur(20px);\n    color: #fff;\n    font-size: 26px;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  img {\n    display: block;\n    width: 220px;\n    height: 220px;\n    margin: auto;\n    border-radius: 10px;\n    box-shadow: 0 0 20px 0 rgb(0 0 0 / 20%);\n  }\n  .tool {\n    display: flex;\n    text-align: center;\n    width: 100%;\n    color: rgba(255, 255, 255, 0.8);\n  }\n  .tool-item {\n    flex: 1;\n    height: 30px;\n    position: relative;\n    overflow: hidden;\n    border-radius: 6px;\n  }\n  .control-box {\n    height: 40vh;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .control {\n    display: flex;\n    font-size: 40px;\n    text-align: center;\n    width: 100%;\n    color: rgba(255, 255, 255, 0.9);\n    align-items: center;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .con-item {\n    margin-bottom: 20px;\n    flex: 1;\n    border-radius: 40px;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .top-box {\n    height: 60vh;\n  }\n  .play-mask {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: 100vw;\n    height: 100vh;\n    background-color: rgba(0, 0, 0, 0.01);\n    z-index: 100;\n  }\n  .cover {\n    height: 54vh;\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .song-list-box {\n    scroll-behavior: smooth;\n    position: relative;\n    top: 0px;\n    max-height: 54vh;\n    overflow-x: auto;\n    transition: top 0.5s cubic-bezier(0.25, 1, 0.5, 1);\n    -webkit-transition: top 0.5s cubic-bezier(0.25, 1, 0.5, 1);\n  }\n  .heart-beat {\n    display: inline-block;\n    /* // 一个完整动画的持续时间 */\n    animation-duration: 1s;\n    /* // 动画循环次数:无限循环 */\n    animation-iteration-count: infinite;\n    /* // 调用的动画名,对应上面的 .heart-bounce */\n    animation-name: heart-bounce;\n  }\n  @keyframes heart-bounce {\n    from {\n      transform: scale(1);\n    }\n    12% {\n      transform: scale(1.02);\n    }\n    20% {\n      transform: scale(0.99);\n    }\n    28% {\n      transform: scale(0.98);\n    }\n    32% {\n      transform: scale(1.2);\n    }\n    38% {\n      transform: scale(0.96);\n    }\n    50% {\n      transform: scale(1);\n    }\n    58% {\n      transform: scale(0.98);\n    }\n    70% {\n      transform: scale(0.9);\n    }\n    80% {\n      transform: scale(0.98);\n    }\n    to {\n      transform: scale(1);\n    }\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { PlayFill, PauseFill, SkipForwardMiniFill } from 'svelte-remixicon';\n\n  import {\n    playIsMaxStore,\n    playStatusStore,\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    maxPlayToTopStore,\n    isFMPlayStore,\n    FMPlayNextStore,\n    FMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n  import { isHomePageStore } from '../store/common';\n\n  import { getSongUrl, personalFM } from '../api/song';\n\n  import { ripple, songerListToStr, Toast } from '../utils/common';\n\n  export let currentTimeLong = window.audioDOM.currentTime / window.audioDOM.duration; //进度条长度\n\n  let pauseDom;\n  let nextDom;\n  let touchStartX; //滑动开始时候触摸点Y坐标\n  let touchEndX; //滑动结束时候触摸点Y坐标\n  let touchStartTime = 0; //滑动开始时间戳\n  let touchEndTime = 0; //滑动结束时间戳\n  $: moveLong = 0; //移动距离\n\n  onMount(() => {\n    if (pauseDom) ripple(pauseDom);\n    if (nextDom) ripple(nextDom);\n  });\n\n  function handleMax() {\n    playIsMaxStore.set(true);\n    maxPlayToTopStore.set('0px');\n  }\n\n  function miniPlayFun() {\n    if ($playStatusStore) {\n      window.audioDOM.pause();\n      playStatusStore.set(false);\n      localStorage.setItem('pauseTimes', new Date().getTime());\n    } else {\n      //解决长时间不播放URL失效问题(暂定30分钟过期)\n      if ((new Date().getTime() - Number(localStorage.getItem('pauseTimes'))) / 1000 / 60 > 30) {\n        window.audioDOM.src = `https://music.163.com/song/media/outer/url?id=${$currentSongStore.id}.mp3`;\n      }\n      window.audioDOM.play();\n      playStatusStore.set(true);\n    }\n  }\n  function miniNextFun() {\n    if ($isFMPlayStore) {\n      //正在私人FM\n      getSongUrlFun($FMPlayNextStore, 'fm');\n    } else {\n      if ($currentSongIndexStore === $currentPlayListStore.length - 1) {\n        Toast('已经是最后一首了');\n      } else {\n        //随机模式\n        if ($playRepeatModelStore === 'shuffle') {\n          let index = Math.floor(Math.random() * ($currentPlayListStore.length - 1));\n          getSongUrlFun($currentPlayListStore[index], 'shuffle', index);\n        } else {\n          currentSongIndexStore.set($currentSongIndexStore + 1);\n          getSongUrlFun($currentPlayListStore[$currentSongIndexStore], 'next');\n        }\n      }\n    }\n  }\n  //获取歌曲URL\n  async function getSongUrlFun(song, type, index) {\n    const res = await getSongUrl(song.id);\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          //私人FM\n          personalFMFun();\n          FMPlayStore.set(song);\n          currentSongStore.set(song);\n          currentPlayListStore.set([$FMPlayStore]);\n          currentSongIndexStore.set(0);\n          localStorage.setItem('currentSong', JSON.stringify(song));\n        } else {\n          if (type === 'shuffle') {\n            //随机\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set(index);\n          } else {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          }\n        }\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  //私人FM\n  async function personalFMFun() {\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      FMPlayNextStore.set(res.data[0]);\n    }\n  }\n  //播放私人FM\n  function playFMFun() {\n    getSongUrlFun(FMSong);\n    isFMPlayStore.set(true);\n    localStorage.setItem('isFMPlay', '1');\n    localStorage.setItem('FMPlay', JSON.stringify(FMSong));\n    personalFMFun(true);\n  }\n  //滑动开始\n  function touchStart(e) {\n    touchStartTime = new Date().getTime();\n    touchStartX = e.changedTouches[0].clientX;\n  }\n  //滑动结束\n  function touchEnd(e) {\n    moveLong = 0;\n    touchEndTime = new Date().getTime();\n    touchEndX = e.changedTouches[0].clientX;\n    // 移动距离大于100,直接下一曲;\n    // 移动距离不超过100的时候,考虑速度,速度超过0.5,直接下一曲;\n    // 其他情况都是不触发\n    if (touchStartX - touchEndX > 100) {\n      miniNextFun();\n    } else if (touchStartX - touchEndX <= 100 && (touchStartX - touchEndX) / (touchEndTime - touchStartTime) >= 0.5) {\n      miniNextFun();\n    } else {\n    }\n  }\n  //滑动过程\n  function touchMove(e) {\n    //阻止滑动时穿透问题\n    e.preventDefault();\n    e.stopPropagation();\n    if (e.changedTouches[0].clientX - touchStartX < 0) {\n      moveLong = e.changedTouches[0].clientX - touchStartX;\n    }\n  }\n</script>\n\n<div\n  class=\"play secondary\"\n  style=\"bottom: {$isHomePageStore ? 56 : 0}px\"\n  on:touchstart={touchStart}\n  on:touchend={touchEnd}\n  on:touchmove={touchMove}\n>\n  <div class=\"progress\" style=\"width:{(currentTimeLong / 100) * window.screen.width}px;\" on:click={handleMax} />\n  <div class=\"cover\" on:click={handleMax} style=\"left:{moveLong}px\">\n    <Lazy height={50}>\n      <img src={$currentSongStore.al.picUrl.replace(/^http:/, 'https:') + '?param=800y800'} alt=\"\" />\n    </Lazy>\n  </div>\n  <div class=\"info\" on:click={handleMax} style=\"left:{moveLong}px\">\n    <div class=\"name\">\n      {$currentSongStore.name}\n      <span class=\"alia\">\n        {$currentSongStore.alia && $currentSongStore.alia.length > 0 ? `(${$currentSongStore.alia[0]})` : ''}\n      </span>\n    </div>\n    <div class=\"songer\">\n      {songerListToStr($currentSongStore.ar)}\n      <span>\n        {$currentSongStore.al.name === '' ? '' : `- ${$currentSongStore.al.name}`}\n      </span>\n    </div>\n  </div>\n  <div class=\"pause\" on:click={miniPlayFun} bind:this={pauseDom}>\n    {#if $playStatusStore}\n      <PauseFill size=\"40\" style=\"vertical-align: middle;height:57px\" />\n    {:else}\n      <PlayFill size=\"40\" style=\"vertical-align: middle;height:57px\" />\n    {/if}\n  </div>\n  <div class=\"next\" on:click={miniNextFun} bind:this={nextDom}>\n    <SkipForwardMiniFill size=\"40\" style=\"vertical-align: middle;height:57px\" />\n  </div>\n</div>\n\n<style>\n  .alia {\n    color: rgb(138, 138, 138);\n    font-size: 14px;\n    font-weight: normal;\n  }\n  .progress {\n    z-index: 100;\n    position: absolute;\n    bottom: 0;\n    width: 0%;\n    height: 60px;\n    background-image: linear-gradient(to right, rgba(197, 197, 197, 0.01), rgba(197, 197, 197, 0.3));\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n  .play {\n    z-index: 10;\n    width: 100%;\n    height: 60px;\n    position: fixed;\n    bottom: 0px;\n    display: flex;\n    align-items: center;\n    text-align: center;\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n    border-top: 1px solid rgba(197, 197, 197, 0.4);\n    backdrop-filter: blur(20px);\n    -webkit-backdrop-filter: blur(20px);\n    background-color: rgba(255, 255, 255, 0.7);\n    transition: all 0.4s ease-in-out;\n    -webkit-transition: all 0.4s ease-in-out;\n  }\n  img {\n    width: 50px;\n    height: 50px;\n    border: rgb(214, 214, 214) solid 1px;\n    border-radius: 5px;\n    object-fit: cover;\n    overflow: hidden;\n  }\n  .cover {\n    width: 50px;\n    height: 50px;\n    padding: 5px;\n    overflow: hidden;\n    position: relative;\n    left: 0px;\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n  }\n  .pause {\n    flex: 1;\n    line-height: 57px;\n    z-index: 101;\n    border-radius: 30px;\n  }\n  .next {\n    z-index: 101;\n    flex: 1;\n    line-height: 57px;\n    border-radius: 30px;\n  }\n  .info {\n    flex: 3;\n    text-align: left;\n    font-size: 16px;\n    position: relative;\n    left: 0px;\n    transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n    -webkit-transition: all 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);\n  }\n  .name {\n    font-weight: bold;\n    align-items: center;\n    width: 186px;\n    height: 36px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box; /*作为弹性伸缩盒子模型显示。*/\n    -webkit-box-orient: vertical; /*设置伸缩盒子的子元素排列方式--从上到下垂直排列8*/\n    -webkit-line-clamp: 2;\n  }\n  .songer {\n    margin-top: 4px;\n    font-size: 12px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box; /*作为弹性伸缩盒子模型显示。*/\n    -webkit-box-orient: vertical; /*设置伸缩盒子的子元素排列方式--从上到下垂直排列8*/\n    -webkit-line-clamp: 1;\n  }\n</style>\n","<div class=\"bg\">\n  <div class=\"sk-chase\">\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n    <div class=\"sk-chase-dot\" />\n  </div>\n</div>\n\n<!-- <div class=\"bg\">\n  <div class=\"lds-ellipsis\">\n    <div />\n    <div />\n    <div />\n    <div />\n  </div>\n</div>\n\n<style>\n  .bg {\n    width: 100%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    bottom: 0;\n    z-index: 499;\n    background-color: rgba(138, 138, 138, 0.4);\n    align-items: center;\n    text-align: center;\n  }\n  .lds-ellipsis {\n    display: inline-block;\n    position: relative;\n    top: 45%;\n    width: 80px;\n    height: 80px;\n  }\n  .lds-ellipsis div {\n    position: absolute;\n    top: 33px;\n    width: 13px;\n    height: 13px;\n    border-radius: 50%;\n    background: #fff;\n    animation-timing-function: cubic-bezier(0, 1, 1, 0);\n  }\n  .lds-ellipsis div:nth-child(1) {\n    left: 8px;\n    animation: lds-ellipsis1 0.6s infinite;\n  }\n  .lds-ellipsis div:nth-child(2) {\n    left: 8px;\n    animation: lds-ellipsis2 0.6s infinite;\n  }\n  .lds-ellipsis div:nth-child(3) {\n    left: 32px;\n    animation: lds-ellipsis2 0.6s infinite;\n  }\n  .lds-ellipsis div:nth-child(4) {\n    left: 56px;\n    animation: lds-ellipsis3 0.6s infinite;\n  }\n  @keyframes lds-ellipsis1 {\n    0% {\n      transform: scale(0);\n    }\n    100% {\n      transform: scale(1);\n    }\n  }\n  @keyframes lds-ellipsis3 {\n    0% {\n      transform: scale(1);\n    }\n    100% {\n      transform: scale(0);\n    }\n  }\n  @keyframes lds-ellipsis2 {\n    0% {\n      transform: translate(0, 0);\n    }\n    100% {\n      transform: translate(24px, 0);\n    }\n  }\n</style> -->\n<style>\n  .bg {\n    width: 100%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    bottom: 0;\n    z-index: 499;\n    background-color: rgba(138, 138, 138, 0.4);\n    align-items: center;\n    text-align: center;\n  }\n  .sk-chase {\n    display: inline-block;\n    position: relative;\n    top: 45%;\n    width: 60px;\n    height: 60px;\n    animation: sk-chase 2.5s infinite linear both;\n  }\n  .sk-chase-dot {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    left: 0;\n    top: 0;\n    animation: sk-chase-dot 2s infinite ease-in-out both;\n  }\n  .sk-chase-dot:before {\n    content: \"\";\n    display: block;\n    width: 25%;\n    height: 25%;\n    background-color: #fff;\n    border-radius: 100%;\n    animation: sk-chase-dot-before 2s infinite ease-in-out both;\n  }\n  .sk-chase-dot:nth-child(1) {\n    animation-delay: -1.1s;\n  }\n  .sk-chase-dot:nth-child(2) {\n    animation-delay: -1s;\n  }\n  .sk-chase-dot:nth-child(3) {\n    animation-delay: -0.9s;\n  }\n  .sk-chase-dot:nth-child(4) {\n    animation-delay: -0.8s;\n  }\n  .sk-chase-dot:nth-child(5) {\n    animation-delay: -0.7s;\n  }\n  .sk-chase-dot:nth-child(6) {\n    animation-delay: -0.6s;\n  }\n  .sk-chase-dot:nth-child(1):before {\n    animation-delay: -1.1s;\n  }\n  .sk-chase-dot:nth-child(2):before {\n    animation-delay: -1s;\n  }\n  .sk-chase-dot:nth-child(3):before {\n    animation-delay: -0.9s;\n  }\n  .sk-chase-dot:nth-child(4):before {\n    animation-delay: -0.8s;\n  }\n  .sk-chase-dot:nth-child(5):before {\n    animation-delay: -0.7s;\n  }\n  .sk-chase-dot:nth-child(6):before {\n    animation-delay: -0.6s;\n  }\n  @keyframes sk-chase {\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  @keyframes sk-chase-dot {\n    80%,\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  @keyframes sk-chase-dot-before {\n    50% {\n      transform: scale(0.4);\n    }\n    100%,\n    0% {\n      transform: scale(1);\n    }\n  }\n</style>\n","import request from '../utils/request';\n// import { getCookies } from \"../utils/common\";\n\n/**\n * \n说明 : 调用此接口 ,传入手机号码, 可发送验证码\n必选参数 : phone: 手机号码\n可选参数 : ctcode: 国家区号,默认86即中国\n接口地址 : /captcha/sent\n调用例子 : /captcha/sent?phone=13xxx} uid \n * \n */\nexport function sendSmsCode(phone) {\n  return request({\n    url: '/captcha/sent',\n    method: 'get',\n    params: {\n      phone,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取用户详情\n * 说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户详情\n * - uid : 用户 id\n * @param {number} uid\n */\nexport function userDetail(uid) {\n  return request({\n    url: '/user/detail',\n    method: 'get',\n    params: {\n      uid,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取账号详情\n * 说明 : 登录后调用此接口 ,可获取用户账号信息\n */\nexport function userAccount(cookie) {\n  return request({\n    url: '/user/account',\n    method: 'get',\n    params: {\n      cookie,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取用户歌单\n * 说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户歌单\n * - uid : 用户 id\n * - limit : 返回数量 , 默认为 30\n * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0\n * @param {Object} params\n * @param {number} params.uid\n * @param {number} params.limit\n * @param {number=} params.offset\n */\nexport function userPlaylist(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/user/playlist',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 退出登录\n * 说明 : 调用此接口 , 可退出登录\n */\nexport function logout() {\n  return request({\n    url: '/logout',\n    method: 'post',\n  });\n}\n\n/**\n * 喜欢音乐列表(需要登录)\n * 说明 : 调用此接口 , 传入用户 id, 可获取已喜欢音乐id列表(id数组)\n * - uid: 用户 id\n * @param {number} uid\n */\nexport function userLikedSongsIDs(uid) {\n  return request({\n    url: '/likelist',\n    method: 'get',\n    params: {\n      uid,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 每日签到\n * 说明 : 调用此接口 , 传入签到类型 ( 可不传 , 默认安卓端签到 ), 可签到 ( 需要登录 ), 其中安卓端签到可获得 3 点经验 , web/PC 端签到可获得 2 点经验\n * -  type: 签到类型 , 默认 0, 其中 0 为安卓端签到 ,1 为 web/PC 签到\n * @param {number} type\n */\nexport function dailySignin(type = 0) {\n  return request({\n    url: '/daily_signin',\n    method: 'post',\n    params: {\n      type,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取收藏的专辑(需要登录)\n * 说明 : 调用此接口可获取到用户收藏的专辑\n * - limit : 返回数量 , 默认为 25\n * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*25, 其中 25 为 limit 的值 , 默认为 0\n * @param {Object} params\n * @param {number} params.limit\n * @param {number=} params.offset\n */\nexport function likedAlbums(params) {\n  return request({\n    url: '/album/sublist',\n    method: 'get',\n    params: {\n      limit: params.limit,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取收藏的歌手(需要登录)\n * 说明 : 调用此接口可获取到用户收藏的歌手\n */\nexport function likedArtists(params) {\n  return request({\n    url: '/artist/sublist',\n    method: 'get',\n    params: {\n      limit: params.limit,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 获取收藏的MV(需要登录)\n * 说明 : 调用此接口可获取到用户收藏的MV\n */\nexport function likedMVs(params) {\n  return request({\n    url: '/mv/sublist',\n    method: 'get',\n    params: {\n      limit: params.limit,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 上传歌曲到云盘(需要登录)\n */\nexport function uploadSong(file) {\n  let formData = new FormData();\n  formData.append('songFile', file);\n  return request({\n    url: '/cloud',\n    method: 'post',\n    params: {\n      timestamp: new Date().getTime(),\n    },\n    data: formData,\n    headers: {\n      'Content-Type': 'multipart/form-data',\n    },\n  });\n}\n\n/**\n * 获取云盘歌曲(需要登录)\n * 说明 : 登录后调用此接口 , 可获取云盘数据 , 获取的数据没有对应 url, 需要再调用一 次 /song/url 获取 url\n * - limit : 返回数量 , 默认为 200\n * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*200, 其中 200 为 limit 的值 , 默认为 0\n * @param {Object} params\n * @param {number} params.limit\n * @param {number=} params.offset\n */\nexport function cloudDisk(params = {}) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/user/cloud',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 获取云盘歌曲详情(需要登录)\n */\nexport function cloudDiskTrackDetail(id) {\n  return request({\n    url: '/user/cloud/detail',\n    method: 'get',\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n\n/**\n * 删除云盘歌曲(需要登录)\n * @param {Array} id\n */\nexport function cloudDiskTrackDelete(id) {\n  return request({\n    url: '/user/cloud/del',\n    method: 'get',\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n","<script>\n  import { createEventDispatcher, onMount, afterUpdate } from 'svelte';\n\n  import { ripple } from '../utils/common';\n\n  export let title = '首页';\n  export let desc = '暂无描述';\n  export let isRefresh = false; //是否刷新中\n  export let topTitleRightList = {};\n  const dispatch = createEventDispatcher();\n  function setClick(index) {\n    dispatch('IconClick', {\n      index,\n    });\n  }\n\n  let rightDoms;\n\n  onMount(() => {\n    if (rightDoms) {\n      ripple(rightDoms);\n    }\n    return () => {\n      rightDoms = null;\n    };\n  });\n  afterUpdate(() => {\n    if (rightDoms) {\n      ripple(rightDoms);\n    }\n  });\n</script>\n\n<div class=\"top-title\">\n  <div class=\"title\">\n    <h1>{title}<span class=\"desc\">&nbsp;&nbsp;&nbsp;{desc}</span></h1>\n  </div>\n  {#if topTitleRightList}\n    <div class=\"right\" bind:this={rightDoms}>\n      {#if topTitleRightList.type === 'icon'}\n        <span class:rotate-icon={isRefresh} on:click={() => setClick(0)}>\n          <svelte:component this={topTitleRightList.path} size=\"24\" />\n        </span>\n      {:else}\n        <span class=\"right-text\" on:click={() => setClick(0)}>{topTitleRightList.text}</span>\n      {/if}\n    </div>\n  {/if}\n</div>\n\n<style>\n  .rotate-icon {\n    display: inline-block;\n    -webkit-animation: myRotate 2s linear infinite;\n    animation: myRotate 2s linear infinite;\n  }\n  @keyframes myRotate {\n    0% {\n      transform: rotate(0deg);\n    }\n    50% {\n      transform: rotate(180deg);\n    }\n    100% {\n      transform: rotate(360deg);\n    }\n  }\n  .top-title {\n    background-image: linear-gradient(#fff, #f4f4f4);\n    display: flex;\n    justify-content: space-between;\n    padding: 20px;\n  }\n  .right-text {\n    display: inline-block;\n    font-size: 16px;\n    line-height: 32px;\n  }\n  .right {\n    font-size: 32px;\n    line-height: 36px;\n  }\n  h1 {\n    text-align: left;\n    font-size: 32px;\n    font-weight: bold;\n    margin: 0px;\n  }\n  .desc {\n    font-size: 12px;\n    font-weight: 400;\n  }\n</style>\n","import { writable } from \"svelte/store\";\n\n//歌单ID\nexport const playListIdStore = writable(\"\");\n\n//歌单详情\nexport const playListDetailStore = writable({});\n\n//今日推荐歌曲列表\nexport const todayListStore = writable([]);\n","<script>\n  import { onMount } from \"svelte\";\n  import Lazy from \"svelte-lazy\";\n  import { push } from \"svelte-stack-router\";\n  import { PlayMiniLine } from \"svelte-remixicon\";\n\n  import { playListIdStore } from \"../store/playList\";\n  import { isHomePageStore } from \"../store/common\";\n\n  import { ripple, tranNumber, Confirm } from \"../utils/common\";\n\n  export let coverImgUrl = \"\";\n  export let playCount = 0;\n  export let name = \"\";\n  export let copywriter = \"\";\n  export let id = 0;\n  export let width = 150;\n  export let trackCount = 0;\n\n  const noop = () => void 0;\n\n  noop(\"trackCount\", trackCount);\n\n  let coverDom;\n  onMount(() => {\n    if (coverDom) {\n      ripple(coverDom);\n    }\n  });\n  function goToDetail() {\n    isHomePageStore.set(false);\n    push(`/playlist?id=${id}`);\n  }\n</script>\n\n<div\n  class=\"cover\"\n  on:click={goToDetail}\n  style=\"width:{width}px\"\n  bind:this={coverDom}\n>\n  <div class=\"cover-img\" style=\"width:{width}px;height:{width}px\">\n    <Lazy height={width}>\n      <img\n        src={coverImgUrl.replace(/^http:/, \"https:\") +\n          `?param=${width * 2}y${width * 2}`}\n        alt=\"\"\n      />\n    </Lazy>\n  </div>\n  <div class=\"play-num\">\n    <span style=\"position: relative;top:1px\">\n      <PlayMiniLine />\n    </span>\n    {tranNumber(playCount)}\n  </div>\n  <div class=\"name\" style=\"width:{width}px;\">{name}</div>\n  {#if copywriter && copywriter !== null && copywriter !== \"\"}\n    <div class=\"copywriter\">{copywriter}</div>\n  {/if}\n</div>\n\n<style>\n  .play-num {\n    margin: 4px auto;\n    font-size: 10px;\n    color: rgb(146, 146, 146);\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n  .copywriter {\n    margin: 4px auto;\n    font-size: 12px;\n    color: rgb(146, 146, 146);\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n    height: 26px;\n  }\n  .cover {\n    width: 105px;\n    padding-bottom: 10px;\n  }\n  .cover-img {\n    overflow: hidden;\n    width: 150px;\n    height: 150px;\n  }\n  img {\n    width: 100%;\n    border-radius: 6px;\n  }\n  .name {\n    margin-top: 4px;\n    line-height: 16px;\n    width: 150px;\n    height: 32px;\n    font-size: 12px;\n    text-align: left;\n    font-weight: bold;\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n</style>\n","<script>\n  import { createEventDispatcher, onMount } from 'svelte';\n  import { ArrowRightSLine } from 'svelte-remixicon';\n\n  import { Tip } from './base';\n  import PlayListCover from './Album.svelte';\n\n  import { ripple } from '../utils/common';\n\n  export let title = '';\n  export let playList = [];\n  export let isShowMore = true;\n  export let isShowTip = false;\n  export let tipTextList = '';\n  export let iconText = '更多';\n\n  const dispatch = createEventDispatcher();\n  function setTitleClick() {\n    dispatch('titleClick');\n  }\n\n  let titleDom;\n\n  onMount(() => {\n    if (titleDom) ripple(titleDom);\n  });\n</script>\n\n<div class=\"grid\">\n  <div class=\"title\" on:click={setTitleClick} bind:this={titleDom}>\n    <div class=\"title-left\">{title}</div>\n    {#if isShowMore}\n      <div class=\"title-right\">\n        {iconText}\n        <span class=\"title-icon\">\n          <ArrowRightSLine size=\"24\" style=\"vertical-align: middle;\" />\n        </span>\n      </div>\n    {/if}\n  </div>\n  {#if isShowTip}\n    <div class=\"tip\">\n      <Tip {tipTextList} />\n    </div>\n  {/if}\n  <slot />\n  <div class=\"list\">\n    {#each playList as play}\n      <div class=\"item\">\n        <PlayListCover\n          name={play.name}\n          coverImgUrl={play.coverImgUrl}\n          id={play.id}\n          width={220}\n          playCount={play.playCount}\n          copywriter={play.copywriter ? play.copywriter : ''}\n          trackCount={play.trackCount}\n        />\n      </div>\n    {/each}\n  </div>\n</div>\n\n<style>\n  .tip {\n    padding: 10px 20px;\n  }\n  .title-icon {\n    position: relative;\n    top: -2px;\n  }\n  .title-right {\n    line-height: 24px;\n    border-radius: 10px;\n    font-size: 14px;\n    color: #666;\n    height: 24px;\n    text-align: center;\n    margin-right: 20px;\n  }\n  .title {\n    text-align: left;\n    margin-left: 20px;\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 10px;\n    display: flex;\n    justify-content: space-between;\n  }\n  .list {\n    text-align: left;\n    white-space: nowrap;\n    overflow-x: scroll;\n    overflow-y: hidden;\n    display: flex;\n  }\n  .item {\n    margin-right: 20px;\n    flex-shrink: 0;\n    display: inline-block;\n  }\n  .list > :global(:first-child) {\n    margin-left: 20px;\n  }\n  .list > :global(:last-child) {\n    margin-right: 20px;\n  }\n  ::-webkit-scrollbar {\n    display: none; /* Chrome Safari */\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { push } from 'svelte-stack-router';\n  import { StarSFill } from 'svelte-remixicon';\n\n  import { isHomePageStore, currentDetailSongerIdStore } from '../store/common';\n\n  import { ripple } from '../utils/common';\n\n  export let songer = {};\n  export let coverSize = 200;\n  let useLoveSongerIds = JSON.parse(localStorage.getItem('useLoveSongerIds')) || [];\n  let songerDom;\n  onMount(() => {\n    // if (songerDom) {\n    //   ripple(songerDom);\n    // }\n  });\n  function toSongerPageFun() {\n    isHomePageStore.set(false);\n    currentDetailSongerIdStore.set(songer.id);\n    push(`/artist?id=${songer.id}`);\n  }\n</script>\n\n<div class=\"singer\" on:click={toSongerPageFun} bind:this={songerDom}>\n  {#if useLoveSongerIds.includes(songer.id)}\n    <div class=\"star\">\n      <StarSFill size=\"14\" style=\"vertical-align: middle\" />\n    </div>\n  {/if}\n  <div class=\"cover\">\n    <Lazy height={100}>\n      <img src={songer.img1v1Url.replace(/^http:/, 'https:') + '?param=' + coverSize + 'y' + coverSize} alt=\"\" />\n    </Lazy>\n  </div>\n  <div class=\"name\">{songer.name}</div>\n</div>\n\n<style>\n  .singer {\n    padding: 10px 0;\n    text-align: center;\n    position: relative;\n  }\n  .star {\n    position: absolute;\n    left: 0;\n    top: 0;\n    color: var(--primary-text-color);\n  }\n  .cover img {\n    border-radius: 100%;\n    width: 100%;\n    height: 100%;\n  }\n  .name {\n    margin-top: 6px;\n    font-size: 12px;\n    height: 26px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n</style>\n","import request from '../utils/request';\n// import { mapTrackPlayableStatus } from '@/utils/common';\n\n/**\n * 说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌单\n * @param {number} id\n * @returns\n */\nexport function getSimiPlaylist(id) {\n  return request({\n    url: '/simi/playlist',\n    method: 'get',\n    params: { id },\n  });\n}\n\n/**\n * 推荐歌单\n * 说明 : 调用此接口 , 可获取推荐歌单\n * - limit: 取出数量 , 默认为 30 (不支持 offset)\n * - 调用例子 : /personalized?limit=1\n * @param {Object} params\n * @param {number=} params.limit\n */\nexport function recommendPlaylist(params) {\n  return request({\n    url: '/personalized',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 心动模式/智能播放\n * 说明 : 登录后调用此接口 , 可获取心动模式/智能播放列表 必选参数 : id : 歌曲 id\n * pid : 歌单 id\n * 可选参数 : sid : 要开始播放的歌曲的 id\n * 接口地址 : /playmode/intelligence/list\n * 调用例子 : /playmode/intelligence/list?id=33894312&pid=24381616 , /playmode/intelligence/list?id=33894312&pid=24381616&sid=36871368\n * @param {object} params\n * @param {number=} params.id\n * @param {number=} params.pid\n * @param {number=} params.sid\n * @returns\n */\nexport function intelligenceList(params) {\n  return request({\n    url: '/playmode/intelligence/list',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 获取每日推荐歌单\n * 说明 : 调用此接口 , 可获得每日推荐歌单 ( 需要登录 )\n * @param {Object} params\n * @param {number=} params.limit\n */\nexport function dailyRecommendPlaylist(params) {\n  return request({\n    url: '/recommend/resource',\n    method: 'get',\n    params,\n  });\n}\n/**\n * 获取歌单详情\n * 说明 : 歌单能看到歌单名字, 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id, 可以获取对应歌单内的所有的音乐(未登录状态只能获取不完整的歌单,登录后是完整的),\n * 但是返回的trackIds是完整的,tracks 则是不完整的,可拿全部 trackIds 请求一次 song/detail 接口\n * 获取所有歌曲的详情 (https://github.com/Binaryify/NeteaseCloudMusicApi/issues/452)\n * - id : 歌单 id\n * - s : 歌单最近的 s 个收藏者, 默认为8\n * @param {number} id\n * @param {boolean=} noCache\n */\nexport function getPlaylistDetail(id, noCache = false) {\n  let params = { id };\n  if (noCache) params.timestamp = new Date().getTime();\n  return request({\n    url: '/playlist/detail',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * \n * 精品歌单标签列表\n说明 : 调用此接口 , 可获取精品歌单标签列表\n\n接口地址 : /playlist/highquality/tags\n\n调用例子 : /playlist/highquality/tags} params \n * @returns \n */\n\nexport function highQualityCat(params) {\n  return request({\n    url: '/playlist/highquality/tags',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 获取精品歌单\n * 说明 : 调用此接口 , 可获取精品歌单\n * - cat: tag, 比如 \" 华语 \"、\" 古风 \" 、\" 欧美 \"、\" 流行 \", 默认为 \"全部\", 可从精品歌单标签列表接口获取(/playlist/highquality/tags)\n * - limit: 取出歌单数量 , 默认为 20\n * - before: 分页参数,取上一页最后一个歌单的 updateTime 获取下一页数据\n * @param {Object} params\n * @param {string} params.cat\n * @param {number=} params.limit\n * @param {number} params.before\n */\nexport function highQualityPlaylist(params) {\n  return request({\n    url: '/top/playlist/highquality',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 歌单 ( 网友精选碟 )\n * 说明 : 调用此接口 , 可获取网友精选碟歌单\n * - order: 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 'hot'\n * - cat: tag, 比如 \" 华语 \"、\" 古风 \" 、\" 欧美 \"、\" 流行 \", 默认为 \"全部\",可从歌单分类接口获取(/playlist/catlist)\n * - limit: 取出歌单数量 , 默认为 50\n * - offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值\n * @param {Object} params\n * @param {string} params.order\n * @param {string} params.cat\n * @param {number} params.limit\n * @param {number} params.offset\n */\nexport function topPlaylist(params) {\n  return request({\n    url: '/top/playlist',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 歌单分类\n * 说明 : 调用此接口,可获取歌单分类,包含 category 信息\n */\nexport function playlistCatlist() {\n  return request({\n    url: '/playlist/catlist',\n    method: 'get',\n  });\n}\n/**\n * 热门歌单分类\n * 说明 : 调用此接口,可获取歌单分类,包含 category 信息\n */\nexport function playlistHotCatlist() {\n  return request({\n    url: '/playlist/hot',\n    method: 'get',\n  });\n}\n\n/**\n * 所有榜单\n * 说明 : 调用此接口,可获取所有榜单 接口地址 : /toplist\n */\nexport function toplists() {\n  return request({\n    url: '/toplist',\n    method: 'get',\n  });\n}\n\n/**\n * 收藏/取消收藏歌单\n * 说明 : 调用此接口, 传入类型和歌单 id 可收藏歌单或者取消收藏歌单\n * - t : 类型,1:收藏,2:取消收藏\n * - id : 歌单 id\n * @param {Object} params\n * @param {number} params.t\n * @param {number} params.id\n */\nexport function subscribePlaylist(id, isSubscribe) {\n  return request({\n    url: '/playlist/subscribe',\n    method: 'post',\n    params: {\n      id, t: isSubscribe ? 1 : 2,\n      timestamp: new Date().getTime(),\n    },\n    // needCookie: false,\n  });\n}\n\n/**\n * 删除歌单\n * 说明 : 调用此接口 , 传入歌单id可删除歌单\n * - id : 歌单id,可多个,用逗号隔开\n *  * @param {number} id\n */\nexport function deletePlaylist(id) {\n  return request({\n    url: '/playlist/delete',\n    method: 'post',\n    params: { id },\n  });\n}\n\n/**\n * 新建歌单\n * 说明 : 调用此接口 , 传入歌单名字可新建歌单\n * - name : 歌单名\n * - privacy : 是否设置为隐私歌单,默认否,传'10'则设置成隐私歌单\n * - type : 歌单类型,默认'NORMAL',传 'VIDEO'则为视频歌单\n * @param {Object} params\n * @param {string} params.name\n * @param {number} params.privacy\n * @param {string} params.type\n */\nexport function createPlaylist(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/playlist/create',\n    method: 'post',\n    params,\n  });\n}\n\n/**\n * 对歌单添加或删除歌曲\n * 说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 )\n * - op: 从歌单增加单曲为 add, 删除为 del\n * - pid: 歌单 id tracks: 歌曲 id,可多个,用逗号隔开\n * @param {Object} params\n * @param {string} params.op\n * @param {string} params.pid\n */\nexport function addOrRemoveTrackFromPlaylist(params) {\n  params.timestamp = new Date().getTime();\n  return request({\n    url: '/playlist/tracks',\n    method: 'post',\n    params,\n  });\n}\n\n/**\n * 每日推荐歌曲\n * 说明 : 调用此接口 , 可获得每日推荐歌曲 ( 需要登录 )\n * @param {Object} params\n * @param {string} params.op\n * @param {string} params.pid\n */\nexport function dailyRecommendTracks() {\n  return request({\n    url: '/recommend/songs',\n    method: 'get',\n    params: { timestamp: new Date().getTime() },\n  }).then(result => {\n    // result.data.dailySongs = mapTrackPlayableStatus(\n    //   result.data.dailySongs,\n    //   result.data.privileges\n    // );\n    return result;\n  });\n}\n","import request from '../utils/request';\n\n/**\n * 获取歌手详情\n * 说明 : 调用此接口 , 传入歌手 id, 可获得获取歌手详情\n * 必选参数 : id: 歌手 id\n * 接口地址 : /artist/detail\n * 调用例子 : /artist/detail?id=11972054 (Billie Eilish)\n */\nexport function getSongerDetail(id) {\n  return request({\n    url: '/artist/detail',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n/**\n * 获取歌手描述\n * 说明 : 调用此接口 , 传入歌手 id, 可获得歌手描述\n * 必选参数 : id: 歌手 id\n * 接口地址 : /artist/desc\n * 调用例子 : /artist/desc?id=6452 ( 周杰伦 )\n */\nexport function getSongerDesc(id) {\n  return request({\n    url: '/artist/desc',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n/**\n * 歌手热门50首歌曲\n * 说明 : 调用此接口,可获取歌手热门50首歌曲\n * 必选参数 : id: 歌手 id\n * 接口地址 : /artist/top/song\n * 调用例子 : /artist/top/song?id=6452 ( 周杰伦 )\n */\nexport function getSongerTop(id) {\n  return request({\n    url: '/artist/top/song',\n    method: 'get',\n    params: {\n      id,\n    },\n  });\n}\n\n/**\n * 收藏歌手\n * 说明 : 调用此接口 , 传入歌手 id, 可收藏歌手\n * - id: 歌手 id\n * - t: 操作,1 为收藏,其他为取消收藏\n * @param {Object} params\n * @param {number} params.id\n * @param {number} params.t\n */\nexport function followAArtist(params) {\n  return request({\n    url: '/artist/sub',\n    method: 'get',\n    params,\n  });\n}\n\n/**\n * 相似歌手\n * 说明 : 调用此接口 , 传入歌手 id, 可获得相似歌手\n * - id: 歌手 id\n * @param {number} id\n */\nexport function similarArtists(id) {\n  return request({\n    url: '/simi/artist',\n    method: 'get',\n    params: { id },\n  });\n}\n\n/**\n * 歌手歌手\n * 说明 : 调用此接口 , 可获取热门歌手数据\n * - 可选参数 : limit: 取出数量 , 默认为 50\n * offset: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认 为 0\n * 接口地址 : /top/artists\n * 调用例子 : /top/artists?offset=0&limit=30\n */\nexport function topArtists(limit, offset) {\n  return request({\n    url: '/top/artists',\n    method: 'get',\n    params: { limit, offset },\n  });\n}\n\n/**\n * 歌手全部歌曲\n说明 : 调用此接口,可获取歌手全部歌曲 必选参数 :\nid : 歌手 id\n可选参数 :\norder : hot ,time 按照热门或者时间排序\nlimit: 取出歌单数量 , 默认为 50\noffset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值\n接口地址 : /artist/songs\n调用例子 : /artist/songs?id=6452\n */\nexport function getAllSongs(id, order, limit, offset) {\n  return request({\n    url: '/artist/songs',\n    method: 'get',\n    params: { id, order, limit, offset },\n  });\n}\n","<script>\n  import { onMount } from \"svelte\";\n  import { push } from \"svelte-stack-router\";\n  import {\n    RadioFill,\n    RefreshLine,\n    Calendar2Fill,\n    GitRepositoryPrivateLine,\n  } from \"svelte-remixicon\";\n\n  import TopTitle from \"../components/TopTitle.svelte\";\n  import { Button } from \"../components/base\";\n  import ListGrid from \"../components/ListGrid.svelte\";\n  import SongList from \"../components/SongList.svelte\";\n  import Songer from \"../components/Singer.svelte\";\n\n  import { isLoginStore, defaultCover } from \"../store/common\";\n  import {\n    playIsMaxStore,\n    playStatusStore,\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    maxPlayToTopStore,\n    FMPlayStore,\n    isFMPlayStore,\n    FMPlayNextStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import { isHomePageStore } from \"../store/common\";\n  import { todayListStore } from \"../store/playList\";\n  import { userLikeListIdStore } from \"../store/user\";\n\n  import {\n    dailyRecommendTracks,\n    getSimiPlaylist,\n    dailyRecommendPlaylist,\n    getPlaylistDetail,\n  } from \"../api/playlist\";\n  import {\n    getSongUrl,\n    personalFM,\n    getSongDetail,\n    getSimiSong,\n  } from \"../api/song\";\n  import { similarArtists, getSongerDetail } from \"../api/songer\";\n  import { songerListToStr, Toast, ripple, fullWidth } from \"../utils/common\";\n\n  let dailyRecommendPlayList = []; //每日歌单推荐\n  let randomLoveSong = {}; //随机一个喜欢歌曲\n  let similarPlayList = []; //相似歌单推荐\n  let randomTenLoveSong = {}; //随机一个喜欢歌曲\n  let similarSongs = []; //相似歌曲推荐\n  let topTitleRightList = {\n    type: \"icon\",\n    path: RefreshLine,\n  };\n  let FMDom;\n  let todayDom;\n  $: isRefresh = false;\n  $: simiSonger = {};\n  $: simiSongers = [];\n\n  onMount(() => {\n    if (FMDom) {\n      ripple(FMDom);\n    }\n    if (todayDom) {\n      ripple(todayDom);\n    }\n    allOnMount();\n  });\n  function allOnMount() {\n    if ($isLoginStore) {\n      dailyRecommendPlaylistFun();\n      dailyRecommendTracksFun();\n      personalFMFun(true);\n      let useLoveSongIds =\n        JSON.parse(localStorage.getItem(\"useLoveSongIds\")) || [];\n      let randomIndex = Math.floor(Math.random() * useLoveSongIds.length);\n      getSongDetailFun(useLoveSongIds[randomIndex]);\n      getSimiPlaylistFun(useLoveSongIds[randomIndex]);\n      getPlaylistDetailFun();\n      //收藏随机歌手一位\n      const useLoveSongerIds =\n        JSON.parse(localStorage.getItem(\"useLoveSongerIds\")) || [];\n      let index = Math.floor(Math.random() * useLoveSongerIds.length);\n      if (index) {\n        getSongerDetailFun(useLoveSongerIds[index]);\n        similarArtistsFun(useLoveSongerIds[index], useLoveSongerIds);\n      }\n    }\n  }\n  //今日推荐歌曲\n  function playTodayFun() {\n    isHomePageStore.set(false);\n    push(\"/todayListDetail\");\n  }\n  //播放私人FM\n  function playFMFun() {\n    if ($FMPlayStore.id === $currentSongStore.id) {\n      window.audioDOM.play();\n      playStatusStore.set(true);\n      playIsMaxStore.set(true);\n      maxPlayToTopStore.set(\"0px\");\n    } else {\n      isFMPlayStore.set(true);\n      localStorage.setItem(\"isFMPlay\", \"1\");\n      getSongUrlFun($FMPlayStore);\n    }\n  }\n  //请求私人FM\n  async function personalFMFun(first) {\n    //first 是否是第一次请求私人FM\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      res.data[1].al = res.data[1].album;\n      res.data[1].ar = res.data[1].artists;\n      res.data[1].alia = res.data[1].alias;\n      if (first) {\n        FMPlayStore.set(res.data[0]);\n        FMPlayNextStore.set(res.data[1]);\n        localStorage.setItem(\"FMPlay\", JSON.stringify($FMPlayStore));\n      } else {\n        FMPlayStore.set(res.data[0]);\n      }\n    }\n  }\n  //每日推荐歌曲\n  async function dailyRecommendTracksFun() {\n    const res = await dailyRecommendTracks();\n    if (res.code === 200) {\n      todayListStore.set(res.data.dailySongs);\n    }\n  }\n  //每日推荐歌单\n  async function dailyRecommendPlaylistFun() {\n    const res = await dailyRecommendPlaylist();\n    if (res.code === 200) {\n      let olddailyRecommendPlayList = res.recommend;\n      if (\n        olddailyRecommendPlayList[0].copywriter === \"猜你喜欢\" &&\n        olddailyRecommendPlayList[0].name.indexOf(\"私人雷达\") > -1\n      ) {\n        getPlaylistDetailFun(true, olddailyRecommendPlayList);\n      } else {\n        dailyRecommendPlayList = olddailyRecommendPlayList;\n      }\n    }\n  }\n  //请求歌曲详情\n  async function getSongDetailFun(id) {\n    const res = await getSongDetail(id); //获取歌单详情\n    if (res.code === 200) {\n      randomLoveSong = res.songs[0];\n    }\n  }\n  //请求相似歌单\n  async function getSimiPlaylistFun(id) {\n    const res = await getSimiPlaylist(id); //获取歌单详情\n    if (res.code === 200) {\n      similarPlayList = res.playlists;\n    }\n  }\n  //请求相似歌曲\n  async function getSimiSongFun(id) {\n    const res = await getSimiSong(id); //获取歌单详情\n    if (res.code === 200) {\n      if (isRefresh) isRefresh = false;\n      for (let t = 0; t < res.songs.length; t++) {\n        res.songs[t].al = res.songs[t].album;\n        res.songs[t].ar = res.songs[t].artists;\n      }\n      similarSongs = res.songs;\n    }\n  }\n  //请求歌单详情\n  async function getPlaylistDetailFun(isRadar = false, list) {\n    const res = await getPlaylistDetail(\n      isRadar ? list[0].id : $userLikeListIdStore\n    ); //获取歌单详情\n    if (res.code === 200) {\n      if (isRadar) {\n        if (\n          list[0].copywriter === \"猜你喜欢\" &&\n          list[0].name.indexOf(\"私人雷达\") > -1\n        ) {\n          list[0].copywriter = list[0].name;\n          list[0].picUrl = res.playlist.tracks[0].al.picUrl;\n          list[0].name = `从《${res.playlist.tracks[0].name}》开始听吧`;\n        }\n        for (let i = 0; i < list.length; i++) {\n          list[i].coverImgUrl = list[i].picUrl;\n          list[i].playCount = list[i].playcount;\n        }\n        dailyRecommendPlayList = list;\n      }\n      let randomIndexTen = Math.round(Math.random() * 20); //喜欢歌曲最新20首随机一首\n      randomTenLoveSong = res.playlist.tracks[randomIndexTen];\n      if (randomTenLoveSong) getSimiSongFun(randomTenLoveSong.id);\n    }\n  }\n  //获取歌曲URL\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id);\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          currentPlayListStore.set([song]);\n          currentSongIndexStore.set(0);\n          currentSongStore.set(song);\n          song.al = song.album;\n          song.ar = song.artists;\n          song.alia = song.alias;\n          FMPlayStore.set(song);\n          localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        }\n      } else {\n        Toast(\n          `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n          2000\n        );\n      }\n    }\n  }\n  //获取相似歌手\n  async function similarArtistsFun(id, useLoveSongerIds) {\n    const res = await similarArtists(id);\n    if (res.code === 200) {\n      let newSongerIds = [];\n      for (let e = 0; e < res.artists.length; e++) {\n        newSongerIds.push(res.artists[e].id);\n      }\n      let artists = distinct(newSongerIds, useLoveSongerIds); //交集\n      for (let t = 0; t < artists.length; t++) {\n        for (let p = 0; p < res.artists.length; p++) {\n          if (artists[t] === res.artists[p].id) {\n            res.artists.splice(p, 1);\n          }\n        }\n      }\n      simiSongers =\n        res.artists.length > 6 ? res.artists.slice(0, 6) : res.artists;\n    }\n  }\n  //获取随机歌手信息\n  async function getSongerDetailFun(id) {\n    const res = await getSongerDetail(id);\n    if (res.code === 200) {\n      simiSonger = res.data.artist;\n    }\n  }\n  //数组去重\n  function distinct(A, B) {\n    let aSet = new Set(A);\n    let bSet = new Set(B);\n    //差集\n    // let differenceSet = new Set([...aSet].filter(x => !bSet.has(x)));\n    // return Array.from(differenceSet);\n    // 交集;\n    let intersection = new Set([...aSet].filter((x) => bSet.has(x)));\n    return Array.from(intersection);\n  }\n  function topClickFun(event) {\n    if (event.detail.index === 0) {\n      allOnMount();\n    }\n  }\n</script>\n\n<div class=\"love\">\n  {#if $isLoginStore}\n    <div class=\"login-box\">\n      <TopTitle\n        title=\"推荐\"\n        desc=\"专属推荐\"\n        {topTitleRightList}\n        {isRefresh}\n        on:IconClick={topClickFun}\n      />\n      <div class=\"login\">\n        <div class=\"today\" on:click={playTodayFun} bind:this={todayDom}>\n          <div\n            class=\"today-img-box\"\n            style=\"width: {fullWidth() -\n              40}px;background-image:url({$todayListStore.length !== 0\n              ? $todayListStore[0].al.picUrl.replace(/^http:/, 'https:') +\n                '?param=800y800'\n              : defaultCover})\"\n          />\n          <div class=\"day-box\">\n            <div class=\"day\">今日推荐</div>\n            <div class=\"name-list\">\n              <div class=\"name\">\n                {$todayListStore.length !== 0 ? $todayListStore[0].name : \"\"}\n              </div>\n              <div class=\"songer\">\n                {$todayListStore.length !== 0\n                  ? songerListToStr($todayListStore[0].ar)\n                  : \"\"}\n              </div>\n              <div class=\"calendar\">\n                <span style=\"position:relative;top:2px \">\n                  <Calendar2Fill size=\"14\" />\n                </span>{`${\n                  new Date().getMonth() + 1\n                }月${new Date().getDate()}日`}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div\n          class=\"fm-box\"\n          on:click={playFMFun}\n          style=\"background:url({$FMPlayStore.album\n            ? $FMPlayStore.album.blurPicUrl.replace(/^http:/, 'https:') +\n              '?param=80y80'\n            : ''})\"\n          bind:this={FMDom}\n        >\n          <div class=\"fm\">\n            <div class=\"fm-cover\">\n              <img\n                class=\"fm-cover-img\"\n                src={$FMPlayStore.album\n                  ? $FMPlayStore.album.blurPicUrl.replace(/^http:/, \"https:\") +\n                    \"?param=240y240\"\n                  : \"\"}\n                alt=\"\"\n              />\n            </div>\n            <div class=\"fm-info\">\n              {#if $isFMPlayStore && $playStatusStore && $currentSongStore.id === $FMPlayStore.id}\n                <div class=\"fm-play-motion\">\n                  <div class=\"pull_down pull_down1\" />\n                  <div class=\"pull_down pull_down2\" />\n                  <div class=\"pull_down pull_down3\" />\n                  <div class=\"pull_down pull_down4\" />\n                  <div class=\"pull_down pull_down5\" />\n                  <div class=\"pull_down pull_down6\" />\n                  <div class=\"pull_down pull_down7\" />\n                  <div class=\"pull_down pull_down8\" />\n                  <div class=\"pull_down pull_down9\" />\n                  <div class=\"pull_down pull_down10\" />\n                </div>\n              {/if}\n              <div class=\"fm-name\">\n                {$FMPlayStore.name ? $FMPlayStore.name : \"\"}\n                <span class=\"alia\">\n                  {$FMPlayStore.alia && $FMPlayStore.alia.length > 0\n                    ? `(${$FMPlayStore.alia[0]})`\n                    : \"\"}\n                </span>\n              </div>\n              <div class=\"fm-songer\">\n                {$FMPlayStore.artists\n                  ? songerListToStr($FMPlayStore.artists)\n                  : \"\"}\n                {#if $FMPlayStore.al}\n                  <span>\n                    {$FMPlayStore.al.name === \"\"\n                      ? \"\"\n                      : `- ${$FMPlayStore.al.name}`}\n                    <!-- {$FMPlayStore.al === true}\n                  {$FMPlayStore.album === true} -->\n                    <!-- {$FMPlayStore.al\n                    ? $FMPlayStore.al.name === \"\"\n                      ? \"\"\n                      : `- ${$FMPlayStore.al.name}`\n                    : $FMPlayStore.album.name === \"\"\n                    ? \"\"\n                    : `- ${$FMPlayStore.album.name}`} -->\n                  </span>\n                {/if}\n              </div>\n              <div class=\"fm-icon\">\n                <span style=\"position:relative;top:2px \">\n                  <RadioFill size=\"14\" />\n                </span>\n                私人 FM\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"list-grid\">\n          <ListGrid\n            title=\"每日歌单推荐\"\n            isShowMore={false}\n            playList={dailyRecommendPlayList}\n          />\n        </div>\n        {#if similarSongs.length > 0}\n          <div class=\"simiTitle\">相似歌曲推荐</div>\n          <div class=\"desc\">根据单曲《{randomTenLoveSong.name}》推荐</div>\n          <SongList songList={similarSongs} />\n        {/if}\n        {#if similarPlayList.length > 0}\n          <div class=\"list-grid\">\n            <ListGrid\n              title=\"相似歌单推荐\"\n              isShowMore={false}\n              isShowTip={true}\n              tipTextList={[`根据单曲《${randomLoveSong.name}》推荐`]}\n              playList={similarPlayList}\n            />\n          </div>\n        {/if}\n        {#if simiSongers.length > 0 && simiSonger.name}\n          <div class=\"simiTitle\">相似歌手推荐</div>\n          <div class=\"desc\">根据【{simiSonger.name}】推荐</div>\n          <div class=\"songer-box\">\n            {#each simiSongers as songer}\n              <Songer {songer} coverSize={330} />\n            {/each}\n          </div>\n        {/if}\n      </div>\n    </div>\n  {:else}\n    <div>\n      <TopTitle\n        title=\"推荐\"\n        desc=\"专属推荐\"\n        topTitleRightList={{ type: \"text\", text: \"\" }}\n      />\n      <div class=\"noLogin\">\n        <div>\n          <img class=\"login-img\" src=\"images/login.png\" alt=\"\" />\n        </div>\n        <div class=\"tip\">推荐功能需要登录</div>\n        <div class=\"login-btn\">\n          <Button\n            type=\"primary\"\n            on:BtnClick={() => {\n              isHomePageStore.set(false);\n              push(\"/login\");\n            }}\n          >\n            立即登录\n          </Button>\n        </div>\n      </div>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .alia {\n    color: rgb(255, 255, 255, 0.7);\n    font-size: 14px;\n    font-weight: normal;\n  }\n  .fm-songer {\n    color: rgb(255, 255, 255, 0.7);\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 1;\n  }\n  .simiTitle {\n    margin-top: 20px;\n    text-align: left;\n    margin-left: 20px;\n    font-size: 20px;\n    font-weight: bold;\n    margin-bottom: 10px;\n  }\n  .desc {\n    font-size: 12px;\n    color: rgb(141, 141, 141);\n    text-align: justify;\n    margin: 10px 0;\n    padding: 0 20px;\n  }\n  .list-grid {\n    margin-top: 30px;\n  }\n  .fm-play-motion {\n    position: absolute;\n    width: 100%;\n    height: 74px;\n    display: flex;\n    justify-content: space-around;\n    align-items: flex-end;\n  }\n  .pull_down {\n    flex: 1;\n    height: 6px;\n    margin: 0px 6px;\n    border-top-left-radius: 20px;\n    border-top-right-radius: 20px;\n    background: rgba(255, 255, 255, 0.1);\n  }\n  .pull_down1 {\n    -webkit-animation: jumpY1 1.5s infinite ease-in-out;\n    -o-animation: jumpY1 1.5s infinite ease-in-out;\n    animation: jumpY1 1.5s infinite ease-in-out;\n  }\n  .pull_down2 {\n    -webkit-animation: jumpY2 1.2s infinite ease-in-out;\n    -o-animation: jumpY2 1.2s infinite ease-in-out;\n    animation: jumpY2 1.2s infinite ease-in-out;\n  }\n  .pull_down3 {\n    -webkit-animation: jumpY3 1s infinite ease-in-out;\n    -o-animation: jumpY3 1s infinite ease-in-out;\n    animation: jumpY3 1s infinite ease-in-out;\n  }\n  .pull_down4 {\n    -webkit-animation: jumpY4 1.1s infinite ease-in-out;\n    -o-animation: jumpY4 1.1s infinite ease-in-out;\n    animation: jumpY4 1.1s infinite ease-in-out;\n  }\n  .pull_down5 {\n    -webkit-animation: jumpY5 1.6 infinite ease-in-out;\n    -o-animation: jumpY5 1.6s infinite ease-in-out;\n    animation: jumpY5 1.6s infinite ease-in-out;\n  }\n  .pull_down6 {\n    -webkit-animation: jumpY6 1.5s infinite ease-in-out;\n    -o-animation: jumpY6 1.5s infinite ease-in-out;\n    animation: jumpY6 1.5s infinite ease-in-out;\n  }\n  .pull_down7 {\n    -webkit-animation: jumpY7 1.7s infinite ease-in-out;\n    -o-animation: jumpY7 1.7s infinite ease-in-out;\n    animation: jumpY7 1.7s infinite ease-in-out;\n  }\n  .pull_down8 {\n    -webkit-animation: jumpY8 1.9s infinite ease-in-out;\n    -o-animation: jumpY8 1.9s infinite ease-in-out;\n    animation: jumpY8 1.9s infinite ease-in-out;\n  }\n  .pull_down9 {\n    -webkit-animation: jumpY9 1.1s infinite ease-in-out;\n    -o-animation: jumpY9 1.1s infinite ease-in-out;\n    animation: jumpY9 1.1s infinite ease-in-out;\n  }\n  .pull_down10 {\n    -webkit-animation: jumpY10 1.5s infinite ease-in-out;\n    -o-animation: jumpY10 1.5s infinite ease-in-out;\n    animation: jumpY10 1.5s infinite ease-in-out;\n  }\n  @keyframes jumpY1 {\n    0% {\n      height: 74px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 74px;\n    }\n  }\n  @keyframes jumpY2 {\n    0% {\n      height: 44px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 44px;\n    }\n  }\n  @keyframes jumpY3 {\n    0% {\n      height: 30px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 30px;\n    }\n  }\n  @keyframes jumpY4 {\n    0% {\n      height: 51px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 51px;\n    }\n  }\n  @keyframes jumpY5 {\n    0% {\n      height: 51px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 51px;\n    }\n  }\n  @keyframes jumpY6 {\n    0% {\n      height: 61px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 61px;\n    }\n  }\n  @keyframes jumpY7 {\n    0% {\n      height: 47px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 47px;\n    }\n  }\n  @keyframes jumpY8 {\n    0% {\n      height: 21px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 21px;\n    }\n  }\n  @keyframes jumpY9 {\n    0% {\n      height: 61px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 61px;\n    }\n  }\n  @keyframes jumpY10 {\n    0% {\n      height: 49px;\n    }\n    50% {\n      height: 6px;\n    }\n    100% {\n      height: 49px;\n    }\n  }\n  .noLogin {\n    width: 80%;\n    margin: auto;\n  }\n  .login-img {\n    width: 80%;\n  }\n  .tip {\n    margin: 20px 0;\n    font-size: 18px;\n    text-align: center;\n  }\n  .login {\n    text-align: center;\n  }\n  .login-box {\n    top: 0px;\n    position: relative;\n  }\n  .love {\n    font-size: 14px;\n    margin-bottom: constant(safe-area-inset-bottom);\n    margin-bottom: env(safe-area-inset-bottom);\n    padding-bottom: 120px;\n  }\n  .today {\n    margin: 0 20px;\n    border-radius: 10px;\n    color: #fff;\n    overflow: hidden;\n    transform: rotate(0deg);\n    position: relative;\n  }\n  .today-img-box {\n    height: 335px;\n    width: 335px;\n    overflow: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: -3;\n    animation: move 40s infinite;\n    background-image: url(\"/images/defaultCover.png\");\n    -webkit-animation: move 40s infinite;\n    -webkit-background-size: cover;\n    -moz-background-size: cover;\n    -o-background-size: cover;\n    background-size: cover;\n  }\n  @keyframes move {\n    0% {\n      transform: translateY(-47%);\n    }\n    50% {\n      transform: translateY(0);\n    }\n    100% {\n      transform: translateY(-47%);\n    }\n  }\n  .day-box {\n    height: 180px;\n    border-radius: 10px;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    background-image: linear-gradient(\n      to bottom,\n      rgba(0, 0, 0, 0) 0%,\n      rgba(0, 0, 0, 0.1) 20%,\n      rgba(0, 0, 0, 0.2) 40%,\n      rgba(0, 0, 0, 0.3) 60%,\n      rgba(0, 0, 0, 0.5) 100%\n    );\n  }\n  .day {\n    flex: 1;\n    font-size: 40px;\n    line-height: 90px;\n    font-weight: bold;\n  }\n  .name {\n    margin-bottom: 10px;\n    font-size: 18px;\n    font-weight: bold;\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n  .name-list {\n    flex: 1;\n    padding: 10px;\n    font-size: 14px;\n    text-align: left;\n  }\n  .fm {\n    display: flex;\n    background: rgba(0, 0, 0, 0.4);\n    backdrop-filter: blur(30px);\n    -webkit-backdrop-filter: blur(30px);\n    padding: 10px;\n    border-radius: 10px;\n  }\n  .fm-box {\n    margin: 0 20px;\n    color: #fff;\n    border-radius: 10px;\n    margin-top: 20px;\n    background: url(\"\");\n    background-size: cover !important;\n    background-position: 50% 50% !important;\n  }\n  .fm-cover {\n    flex: 1;\n    height: 74px;\n    width: 74px;\n    overflow: hidden;\n    border-radius: 5px;\n  }\n  .fm-cover-img {\n    width: 100%;\n    border-radius: 5px;\n  }\n  .fm-info {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    margin-left: 10px;\n    text-align: left;\n    flex: 3;\n  }\n  .fm-name {\n    font-size: 18px;\n    font-weight: bold;\n    white-space: normal;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 2;\n  }\n  .fm-icon {\n    text-align: right;\n    font-size: 12px;\n  }\n  .calendar {\n    text-align: right;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { push } from 'svelte-stack-router';\n  import { SearchLine } from 'svelte-remixicon';\n\n  import { Title, Button } from '../components/base';\n  import TopTitle from '../components/TopTitle.svelte';\n  import ListGrid from '../components/ListGrid.svelte';\n  import Songer from '../components/Singer.svelte';\n\n  import { isHomePageStore, isLoginStore } from '../store/common';\n\n  import {\n    topPlaylist,\n    toplists,\n    highQualityPlaylist,\n    playlistCatlist,\n    playlistHotCatlist,\n    highQualityCat,\n  } from '../api/playlist';\n  import { topArtists } from '../api/songer';\n\n  let topPlayList = [];\n  let highquality = [];\n  let offList = [];\n  let topOrderList = [];\n  let topTitleRightList = {\n    type: 'icon',\n    path: SearchLine,\n  };\n  $: allList = [];\n  $: active1 = 0;\n  $: tab2list = [];\n  $: active2 = 0;\n  $: categories = {};\n  $: HotCatlist = [];\n  $: hotSongers = [];\n  $: cat = '';\n  $: heigcat = '';\n  $: heigtab2list = ['默认'];\n  $: heigActive = 0;\n\n  onMount(() => {\n    allMount();\n  });\n  function allMount() {\n    playlistHotCatlistFun();\n    highQualityCatFun();\n    offPlaylistFun();\n    toplistsFun();\n    topArtistsFun();\n  }\n  //获取热门歌单分类\n  async function playlistHotCatlistFun() {\n    const res = await playlistHotCatlist();\n    if (res.code === 200) {\n      HotCatlist = res.tags;\n      HotCatlist.unshift({ name: '默认', category: 0 });\n      playlistCatlistFun();\n    }\n  }\n  //获取精品歌单分类\n  async function highQualityCatFun() {\n    const res = await highQualityCat();\n    if (res.code === 200) {\n      for (let r = 0; r < res.tags.length; r++) {\n        heigtab2list.push(res.tags[r].name);\n      }\n      heigcat = heigtab2list[0];\n      highQualityPlaylistFun(heigcat);\n    }\n  }\n  //获取歌单分类\n  async function playlistCatlistFun() {\n    const res = await playlistCatlist();\n    if (res.code === 200) {\n      categories = res.categories;\n      categories['5'] = '热门';\n      allList = dealWithData(res.sub);\n      allList.unshift({ category: 5, allData: HotCatlist });\n      active1 = allList[0].category;\n      tab2list = allList.filter(item => item.category === active1)[0].allData;\n      active2 = 0;\n      cat = tab2list[0].name;\n      topPlaylistFun(tab2list[0].name);\n    }\n  }\n  //热门歌单\n  async function topPlaylistFun(cat) {\n    const res = await topPlaylist({ limit: 6, cat: cat === '默认' ? '全部' : cat });\n    if (res.code === 200) {\n      topPlayList = res.playlists;\n    }\n  }\n  //精品歌单\n  async function highQualityPlaylistFun(cat) {\n    const res = await highQualityPlaylist({ limit: 6, cat: cat === '默认' ? '全部' : cat });\n    if (res.code === 200) {\n      highquality = res.playlists;\n    }\n  }\n  //官方歌单\n  async function offPlaylistFun() {\n    const res = await topPlaylist({ limit: 6, cat: '官方' });\n    if (res.code === 200) {\n      offList = res.playlists;\n    }\n  }\n  //排行榜\n  async function toplistsFun() {\n    const res = await toplists();\n    if (res.code === 200) {\n      topOrderList = res.list;\n    }\n  }\n  //热门歌手\n  async function topArtistsFun() {\n    const res = await topArtists(9);\n    if (res.code === 200) {\n      hotSongers = res.artists;\n    }\n  }\n  // 查看全部热门歌手\n  function hotSongersFun() {\n    isHomePageStore.set(false);\n    push('/moreSonger');\n  }\n  function topClickFun(event) {\n    if (event.detail.index === 0) {\n      isHomePageStore.set(false);\n      push('/search');\n    }\n  }\n  function dealWithData(data) {\n    let c = [];\n    let d = {};\n    data.forEach(element => {\n      if (!d[element.category]) {\n        c.push({\n          category: element.category,\n          allData: [element],\n        });\n        d[element.category] = element;\n      } else {\n        c.forEach(ele => {\n          if (ele.category == element.category) {\n            ele.allData.push(element);\n          }\n        });\n      }\n    });\n    return c;\n  }\n</script>\n\n<TopTitle title=\"发现\" desc=\"歌单广场\" {topTitleRightList} on:IconClick={topClickFun} />\n<div class=\"page\">\n  {#if topPlayList.length > 0}\n    <div style=\"margin-top: 10px;\">\n      <ListGrid\n        title={tab2list.length > 0 ? `${tab2list[active2].name} - 精选歌单` : `默认-精选歌单`}\n        playList={topPlayList}\n        on:titleClick={() => {\n          isHomePageStore.set(false);\n          push('/moreList?cat=' + cat + '&type=top');\n        }}\n      >\n        <div>\n          <div class=\"tab-1-box\">\n            {#each allList as category}\n              <div\n                class=\"tab1\"\n                class:tab1-active={active1 === category.category}\n                on:click={() => {\n                  active1 = category.category;\n                  tab2list = allList.filter(item => item.category === active1)[0].allData;\n                  active2 = 0;\n                  cat = tab2list[0].name;\n                  topPlaylistFun(tab2list[0].name);\n                }}\n              >\n                {categories[category.category]}\n              </div>\n            {/each}\n          </div>\n          <div class=\"tab-2-box\">\n            {#each tab2list as tab, i}\n              <span\n                class=\"tab2\"\n                class:tab1-active={active2 === i}\n                on:click={() => {\n                  active2 = i;\n                  cat = tab.name;\n                  topPlaylistFun(tab.name);\n                }}\n              >\n                {tab.name}\n              </span>\n            {/each}\n            <div class=\"mask\" />\n          </div>\n        </div>\n      </ListGrid>\n    </div>\n  {/if}\n  {#if offList.length > 0}\n    <div class=\"list-grid\">\n      <ListGrid\n        title=\"官方歌单\"\n        playList={offList}\n        on:titleClick={() => {\n          isHomePageStore.set(false);\n          push('/moreList?cat=官方');\n        }}\n      />\n    </div>\n  {/if}\n  {#if topOrderList.length > 0}\n    <div class=\"list-grid\">\n      <ListGrid title=\"排行榜\" isShowMore={false} playList={topOrderList} />\n    </div>\n  {/if}\n  {#if hotSongers.length > 0}\n    <Title title=\"热门歌手\" isShowRight={true} on:TitleClick={hotSongersFun} />\n    <div class=\"songer-box\">\n      {#each hotSongers as songer}\n        <Songer {songer} coverSize={330} />\n      {/each}\n    </div>\n  {/if}\n  {#if highquality.length > 0}\n    <div class=\"list-grid\">\n      <ListGrid\n        title={heigtab2list.length > 0 ? `${heigtab2list[heigActive]} - 精品歌单` : `默认-精品歌单`}\n        playList={highquality}\n        isShowMore={highquality.length < 6 ? false : true}\n        on:titleClick={() => {\n          isHomePageStore.set(false);\n          push('/moreList?cat=' + heigcat + '&type=high');\n        }}\n      >\n        <div class=\"tab-2-box\">\n          {#each heigtab2list as tab, i}\n            <span\n              class=\"tab2\"\n              class:tab1-active={heigActive === i}\n              on:click={() => {\n                heigActive = i;\n                heigcat = tab;\n                highQualityPlaylistFun(tab);\n              }}\n            >\n              {tab}\n            </span>\n          {/each}\n          <div class=\"mask\" />\n        </div>\n      </ListGrid>\n    </div>\n  {/if}\n</div>\n\n<style>\n\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .list-grid {\n    margin-top: 30px;\n  }\n  .page {\n    padding-bottom: 120px;\n    font-size: 16px;\n  }\n  .tab-1-box {\n    display: flex;\n    padding: 0px 20px;\n    font-size: 12px;\n    justify-content: space-between;\n  }\n  .tab1 {\n    background-color: #fff;\n    border-radius: 4px;\n    padding: 4px 0;\n    width: 50px;\n    text-align: center;\n  }\n  .tab-2-box {\n    width: 100%;\n    overflow-x: auto;\n    white-space: nowrap;\n    display: flex;\n    font-size: 12px;\n  }\n  .tab-2-box:global(::-webkit-scrollbar) {\n    width: 0 !important;\n  }\n  .tab2 {\n    background-color: #fff;\n    border-radius: 4px;\n    padding: 4px 10px;\n    margin: 10px;\n  }\n  .tab-2-box > :global(:first-child) {\n    margin-left: 20px;\n  }\n  .tab-2-box > :global(:nth-last-child(2)) {\n    margin-right: 40px;\n  }\n  .tab1-active {\n    background-color: var(--primary-text-color);\n    color: #fff;\n  }\n  .mask {\n    position: absolute;\n    right: 0;\n    width: 40px;\n    height: 40px;\n    background-color: #f4f4f4;\n    -webkit-mask: linear-gradient(to left, #000, transparent);\n    mask: linear-gradient(to left, #000, transparent);\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { push } from 'svelte-stack-router';\n  import { RefreshLine, ArrowRightSLine, PlayFill, HeartPulseFill } from 'svelte-remixicon';\n\n  import { Button, Title } from '../components/base';\n  import TopTitle from '../components/TopTitle.svelte';\n  import ListGrid from '../components/ListGrid.svelte';\n  import Songer from '../components/Singer.svelte';\n\n  import { getSongDetail, getSongUrl } from '../api/song';\n  import { userPlaylist, likedArtists } from '../api/user';\n  import { getPlaylistDetail, intelligenceList } from '../api/playlist';\n\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentSongIndexStore,\n    currentPlayListStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n  import { isLoginStore, isHomePageStore } from '../store/common';\n  import { userLikeSongIdsStore, userInfoStore, userLikeListIdStore } from '../store/user';\n\n  import { Toast, Alert, ripple } from '../utils/common';\n\n  let loveSongDom;\n  let infoDom;\n  $: randomList = [];\n  $: collectList = [];\n  $: createList = [];\n  $: randomFontSize = [];\n  $: randomTop = [];\n  $: randomleft = [];\n  $: randomIds = [];\n  $: randomAll = [];\n  $: isRequsetSucc = false;\n  $: isRefresh = false;\n  $: collectSongers = []; //收藏的歌手\n  let topTitleRightList = {\n    type: 'icon',\n    path: RefreshLine,\n  };\n  let newuserLikeSongIdsStore =\n    typeof $userLikeSongIdsStore === 'string' ? JSON.parse($userLikeSongIdsStore) : $userLikeSongIdsStore;\n  onMount(() => {\n    if (loveSongDom) {\n      ripple(loveSongDom);\n    }\n    if (infoDom) {\n      ripple(infoDom);\n    }\n    allOnMount();\n  });\n  //初始化页面事件\n  function allOnMount() {\n    if ($isLoginStore) {\n      randomFontSize = getRandom(10, 30, 10);\n      randomTop = getRandom(0, 200, 10);\n      randomleft = getRandom(-50, 300, 10);\n      randomIds = getRandom(0, JSON.parse(localStorage.getItem('useLoveSongIds')).length, 10);\n      let ids = [];\n      for (let i = 0; i < randomIds.length; i++) {\n        ids.push(JSON.parse(localStorage.getItem('useLoveSongIds'))[randomIds[i]]);\n      }\n      getSongDetailFun(ids.join(','));\n      userPlaylistFun();\n      likedArtistsFun();\n    }\n  }\n  //获取收藏的歌手\n  async function likedArtistsFun() {\n    const res = await likedArtists({ limit: 6 });\n    if (res.code === 200) {\n      collectSongers = res.data;\n    }\n  }\n  // 全部歌手\n  function collectSongersFun() {\n    isHomePageStore.set(false);\n    push('/allCollectSongers');\n  }\n  //获取用户收藏歌单ID列表\n  async function userPlaylistFun(login) {\n    const res = await userPlaylist({ uid: $userInfoStore.account.id });\n    if (res.code === 200) {\n      isRefresh = false;\n      let createListL = [];\n      let collectListL = [];\n      //去除喜欢的音乐\n      if (\n        res.playlist[0].creator.userId === $userInfoStore.account.id &&\n        res.playlist[0].name.substr(-5) === '喜欢的音乐'\n      ) {\n        userLikeListIdStore.set(res.playlist[0].id);\n        localStorage.setItem('userLikeListId', res.playlist[0].id);\n        res.playlist.splice(0, 1);\n      }\n      for (let i = 0; i < res.playlist.length; i++) {\n        if (res.playlist[i].creator.userId === $userInfoStore.account.id) {\n          createListL.push(res.playlist[i]);\n        } else {\n          collectListL.push(res.playlist[i]);\n        }\n      }\n      //创建的\n      createList = createListL.length >= 10 ? createListL.slice(0, 10) : createListL;\n      //收藏的\n      collectList = collectListL.length >= 10 ? collectListL.slice(0, 10) : collectListL;\n    } else {\n      Toast('获取收藏歌单失败');\n    }\n  }\n  //获取指定数量、指定范围内随机数\n  function getRandom(n, m, sum) {\n    let arr = [];\n    for (let i = 0; i < sum; i++) {\n      arr.push(Math.floor(Math.random() * (m - n + 1) + n));\n    }\n    return arr;\n  }\n  //所有获取歌曲详情\n  async function getSongDetailFun(songIds) {\n    isRequsetSucc = false;\n    if (songIds.slice(0, 1) === ',') {\n      songIds = songIds.substr(1);\n    }\n    songIds = songIds.replace(',,', ',');\n    const res = await getSongDetail(songIds, true);\n    if (res.code === 200) {\n      randomList = res.songs;\n      randomAll = [];\n      for (let u = 0; u < randomList.length; u++) {\n        randomAll.push({\n          name: randomList[u].name,\n          size: randomFontSize[u],\n          top: randomTop[u],\n          left: randomleft[u],\n          img: randomList[u].al.picUrl,\n          id: randomList[u].id,\n        });\n      }\n      isRequsetSucc = true;\n    }\n  }\n  //刷新\n  function topClickFun(event) {\n    if (event.detail.index === 0) {\n      allOnMount();\n    }\n  }\n  //去喜欢歌曲页面\n  function goToLoveListFun() {\n    isHomePageStore.set(false);\n    push('/loveListDetail');\n  }\n  //创建歌单全部\n  function createTitleFun() {\n    isHomePageStore.set(false);\n    push('/myAllPlayList?create');\n  }\n  //收藏歌单全部\n  function collectTitleFun() {\n    isHomePageStore.set(false);\n    push('/myAllPlayList?collect');\n  }\n  //去设置页面\n  function toSettingFun() {\n    isHomePageStore.set(false);\n    push('/setting');\n  }\n  //快速播放\n  function quickPlayFun(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    getPlaylistDetailFun();\n  }\n  //心动模式\n  async function heartPlayFun(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    //从喜欢的歌曲id中随机出一首开启心动模式\n    const randomLikeSongId = newuserLikeSongIdsStore[Math.floor(Math.random() * newuserLikeSongIdsStore.length)];\n    const res = await intelligenceList({ id: randomLikeSongId, pid: $userLikeListIdStore });\n    if (res.code === 200) {\n      getSongUrl(randomLikeSongId);\n      let songsInfoList = [];\n      for (let r = 0; r < res.data.length; r++) {\n        songsInfoList.push(res.data[r].songInfo);\n      }\n      getFirstDetail(randomLikeSongId, songsInfoList);\n    }\n  }\n  async function getFirstDetail(randomLikeSongId, data) {\n    const res = await getSongDetail(randomLikeSongId, true);\n    if (res.code === 200) {\n      let songs = [res.songs[0], ...data];\n      currentPlayListStore.set(songs);\n      let ids = [];\n      for (let r = 0; r < songs.length; r++) {\n        ids.push(songs[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n      playListFun(true);\n    }\n  }\n  //请求歌单详情\n  async function getPlaylistDetailFun() {\n    const res = await getPlaylistDetail($userLikeListIdStore); //获取歌单详情\n    if (res.code === 200) {\n      let songIdList = [];\n      for (let i = 0; i < res.playlist.trackIds.length; i++) {\n        songIdList.push(res.playlist.trackIds[i].id);\n      }\n      if (songIdList.length > 400) {\n        Toast('歌曲较多,拼命加载中,请稍等!', 2000);\n      }\n      getQuickSongDetailFun(songIdList.join(','));\n      getSongUrl(songIdList[0]);\n    }\n  }\n  //获取所有歌曲详情\n  async function getQuickSongDetailFun(songIds) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      currentPlayListStore.set(res.songs);\n      playListFun(false);\n    }\n  }\n  //播放列表\n  function playListFun(isHeart) {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    currentSongIndexStore.set(0);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore], isHeart);\n  }\n  async function getSongUrlFun(song, isHeart) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        isHeart ? playRepeatModelStore.set('heart') : playRepeatModelStore.set('repeat');\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Alert(\n          isHeart\n            ? `😂 心动模式随机的第一首「${song.name}」无法播放!可能是版权原因......吧!请重新开启心动模式。`\n            : `😂 真不巧,您喜欢歌单的第一首--「${song.name}」就无法播放!可能是版权原因......吧!请进入音乐列表选择后面的歌曲播放。`\n        );\n      }\n    }\n  }\n</script>\n\n<TopTitle\n  title=\"我的\"\n  desc=\"曲库与设置\"\n  {isRefresh}\n  topTitleRightList={$isLoginStore ? topTitleRightList : null}\n  on:IconClick={topClickFun}\n/>\n<div class=\"mine\">\n  {#if $isLoginStore}\n    <div class=\"login\">\n      <div class=\"info-box\" on:click={toSettingFun} bind:this={infoDom}>\n        <div class=\"left\">\n          <div class=\"avatar\">\n            <img src={$userInfoStore.profile.avatarUrl.replace(/^http:/, 'https:') + '?param=180y180'} alt=\"\" />\n          </div>\n          <div class=\"info\">\n            <div class=\"nicename\">{$userInfoStore.profile.nickname}</div>\n            <div class=\"signature\">{$userInfoStore.profile.signature || ''}</div>\n            <div class=\"tag\">\n              {#if $userInfoStore.account.vipType !== 0}\n                <span class=\"vip\">\n                  <img class=\"cvip\" src=\"/images/vip/vip.png\" alt=\"\" />\n                  <span class=\"vip-text\">黑胶VIP</span>\n                </span>\n              {:else}\n                <span v-else class=\"text\">\n                  {$userInfoStore.profile.signature}\n                </span>\n              {/if}\n            </div>\n          </div>\n        </div>\n        <div class=\"more\">\n          <ArrowRightSLine size=\"26\" style=\"vertical-align: middle\" />\n        </div>\n      </div>\n      <div\n        class=\"love-song-box\"\n        style=\"background-image: url({$userInfoStore.profile.avatarUrl.replace(/^http:/, 'https:') +\n          '?param=180y180'});\"\n      >\n        <div class=\"love-song\" on:click={goToLoveListFun} bind:this={loveSongDom}>\n          <div class=\"love-title\">\n            <div class=\"love-title-text\">\n              我喜欢的音乐<span class=\"love-title-number\">{newuserLikeSongIdsStore.length}首</span>\n            </div>\n          </div>\n          <div class=\"random\">\n            {#if isRequsetSucc}\n              {#each randomAll as item, i}\n                <div\n                  class=\"random-item\"\n                  style=\"height:{item.size}px;line-height:{item.size}px;top: {i *\n                    26}px;left: {item.left}px;font-size:{item.size}px;\"\n                >\n                  <img\n                    class=\"random-img\"\n                    style=\"width:{item.size}px;height:{item.size}px;top:{item.size / 8}px\"\n                    src={item.img.replace(/^http:/, 'https:') + '?param=100y100'}\n                    alt=\"\"\n                  />\n                  {item.name}\n                </div>\n              {/each}\n            {:else}\n              <span style=\"line-height: 100px;position: relative;left: 50%;margin-left: -50px;top:40px\">\n                <embed width=\"100\" height=\"100\" src=\"/images/Ripple.svg\" type=\"image/svg+xml\" />\n              </span>\n            {/if}\n          </div>\n          <div class=\"quick-btn\">\n            <div class=\"quick-btn-item\" on:click={quickPlayFun}>\n              <PlayFill size=\"24\" style=\"vertical-align: middle\" />\n            </div>\n            <div class=\"quick-btn-item\" on:click={heartPlayFun}>\n              <span class:heart-beat={$playRepeatModelStore === 'heart' && $playStatusStore}>\n                <HeartPulseFill size=\"24\" style=\"vertical-align: middle\" />\n              </span>\n            </div>\n          </div>\n        </div>\n      </div>\n      {#if collectList.length > 0}\n        <div class=\"list-grid\">\n          <ListGrid title=\"收藏的歌单\" playList={collectList} iconText=\"全部\" on:titleClick={collectTitleFun} />\n        </div>\n      {/if}\n      {#if createList.length > 0}\n        <div class=\"list-grid\">\n          <ListGrid title=\"创建的歌单\" playList={createList} iconText=\"全部\" on:titleClick={createTitleFun} />\n        </div>\n      {/if}\n      {#if collectSongers.length > 0}\n        <Title title=\"收藏的歌手\" iconText=\"全部\" isShowRight={true} on:TitleClick={collectSongersFun} />\n        <div class=\"songer-box\">\n          {#each collectSongers as songer}\n            <Songer {songer} coverSize={330} />\n          {/each}\n        </div>\n      {/if}\n    </div>\n  {:else}\n    <div class=\"noLogin\">\n      <div>\n        <img class=\"login-img\" src=\"images/login.png\" alt=\"\" />\n      </div>\n      <div class=\"tip\">账号信息需要登录</div>\n      <div class=\"login-btn\">\n        <Button\n          type=\"primary\"\n          on:BtnClick={() => {\n            isHomePageStore.set(false);\n            push('/login');\n          }}\n        >\n          立即登录\n        </Button>\n      </div>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .list-grid {\n    margin-top: 30px;\n  }\n  .quick-btn {\n    z-index: 5;\n    display: flex;\n    justify-content: space-between;\n  }\n  .quick-btn-item {\n    width: 50px;\n    height: 50px;\n    margin: 10px;\n    border-radius: 25px;\n    background-color: rgba(255, 255, 255, 0.5);\n    color: var(--primary-text-color);\n    text-align: center;\n    line-height: 50px;\n  }\n  .nicename {\n    font-weight: bold;\n    font-size: 16px;\n  }\n  .signature {\n    font-size: 12px;\n    color: #666;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 1;\n    max-width: 200px;\n  }\n  .more {\n    line-height: 62px;\n  }\n  .cvip {\n    width: 24px;\n    height: 12px;\n  }\n  .vip-text {\n    position: relative;\n    top: -2px;\n    font-size: 12px;\n  }\n  .mine {\n    font-size: 14px;\n    padding-bottom: 120px;\n  }\n  .info-box {\n    padding: 10px;\n    display: flex;\n    margin: auto 20px;\n    justify-content: space-between;\n    background-color: #fff;\n    border-radius: 10px;\n  }\n  .left {\n    display: flex;\n  }\n  .avatar {\n    width: 60px;\n    height: 60px;\n    margin-right: 10px;\n    border-radius: 50%;\n    overflow: hidden;\n    border: rgb(214, 214, 214) solid 1px;\n  }\n  .avatar img {\n    width: 100%;\n  }\n  .info {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n  .love-song-box {\n    border-radius: 10px;\n    object-fit: cover;\n    background-position: center;\n    margin: 20px;\n    height: 335px;\n    overflow: hidden;\n    background-size: 100%;\n  }\n  .love-song {\n    height: 335px;\n    border-radius: 10px;\n    overflow: hidden;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    backdrop-filter: blur(14px);\n    -webkit-backdrop-filter: blur(14px);\n    background-color: rgba(0, 0, 0, 0.2);\n  }\n  .random {\n    flex: 8;\n    width: 100%;\n    object-fit: cover;\n    color: #fff;\n    position: relative;\n    font-size: 16px;\n  }\n  .random-item {\n    position: absolute;\n    left: 100px;\n    white-space: nowrap;\n    animation: move 60s infinite;\n    -webkit-animation: move 60s infinite;\n  }\n  @keyframes move {\n    0% {\n      transform: translateX(-50%);\n    }\n    50% {\n      transform: translateX(50%);\n    }\n    100% {\n      transform: translateX(-50%);\n    }\n  }\n  .random-img {\n    border-radius: 10%;\n    position: relative;\n  }\n  .love-title {\n    flex: 2;\n    font-size: 36px;\n    text-align: center;\n    color: #fff;\n  }\n  .love-title-text {\n    font-weight: bold;\n    line-height: 67px;\n  }\n  .love-title-number {\n    font-size: 16px;\n    margin-left: 6px;\n    line-height: 67px;\n  }\n  .noLogin {\n    width: 80%;\n    margin: auto;\n  }\n  .login-img {\n    width: 80%;\n  }\n  .tip {\n    margin: 20px 0;\n    font-size: 18px;\n    text-align: center;\n  }\n  .heart-beat {\n    display: inline-block;\n    /* // 一个完整动画的持续时间 */\n    animation-duration: 1s;\n    /* // 动画循环次数:无限循环 */\n    animation-iteration-count: infinite;\n    /* // 调用的动画名,对应上面的 .heart-bounce */\n    animation-name: heart-bounce;\n  }\n  @keyframes heart-bounce {\n    from {\n      transform: scale(1);\n    }\n    12% {\n      transform: scale(1.02);\n    }\n    20% {\n      transform: scale(0.99);\n    }\n    28% {\n      transform: scale(0.98);\n    }\n    32% {\n      transform: scale(1.2);\n    }\n    38% {\n      transform: scale(0.96);\n    }\n    50% {\n      transform: scale(1);\n    }\n    58% {\n      transform: scale(0.98);\n    }\n    70% {\n      transform: scale(0.9);\n    }\n    80% {\n      transform: scale(0.98);\n    }\n    to {\n      transform: scale(1);\n    }\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n\n  import Love from './Love.svelte';\n  import Discover from './Discover.svelte';\n  import Mine from './Mine.svelte';\n\n  import { dailySignin } from '../api/user';\n\n  import { isLoginStore, tabbarActive } from '../store/common';\n\n  onMount(() => {\n    $isLoginStore ? tabbarActive.set(0) : tabbarActive.set(1);\n    //签到\n    let date = new Date();\n    if (\n      $isLoginStore &&\n      localStorage.getItem('dailySigninFun_date') != '' + date.getFullYear() + (date.getMonth() + 1) + date.getDate()\n    ) {\n      dailySigninFun();\n    }\n  });\n  //签到\n  async function dailySigninFun() {\n    await dailySignin();\n    let date = new Date();\n    localStorage.setItem('dailySigninFun_date', '' + date.getFullYear() + (date.getMonth() + 1) + date.getDate());\n  }\n</script>\n\n<div style=\"display:{$tabbarActive === 0 ? 'block' : 'none'}\">\n  <Love />\n</div>\n<div style=\"display:{$tabbarActive === 1 ? 'block' : 'none'}\">\n  <Discover />\n</div>\n<div style=\"display:{$tabbarActive === 2 ? 'block' : 'none'}\">\n  <Mine />\n</div>\n","<script>\n  import { onMount } from \"svelte\";\n  import Lazy from \"svelte-lazy\";\n  import { onResume, search } from \"svelte-stack-router\";\n  import {\n    PlayCircleLine,\n    ChatHeartFill,\n    ChatHeartLine,\n  } from \"svelte-remixicon\";\n\n  import { Button, NavBar } from \"../components/base\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import {\n    isLoginStore,\n    isLoadingStore,\n    defaultResumableStore,\n    defaultCover,\n  } from \"../store/common\";\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import { userInfoStore } from \"../store/user\";\n\n  import { getPlaylistDetail, subscribePlaylist } from \"../api/playlist\";\n  import { getSongUrl, getSongDetail } from \"../api/song\";\n\n  import { formatTime, Toast, cutArray, parseQuery } from \"../utils/common\";\n\n  const { id } = parseQuery($search);\n\n  let coverDom;\n  $: playlistId = id;\n  $: collect = false;\n  $: title = \"歌单详情\";\n  $: description = \"\";\n  $: alphaNumber = 0; //NavBar透明度的值\n  $: songList = [];\n  $: coverImgUrl = defaultCover;\n  $: name = \"歌单名称\";\n  $: updateTime = new Date().getTime();\n  $: creator = {\n    nickname: \"创建者\",\n    avatarUrl: defaultCover,\n    id: 0,\n  };\n\n  onMount(() => {\n    getPlaylistDetailFun();\n  });\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      songList = [];\n      const { id } = parseQuery($search);\n      playlistId = id;\n      getPlaylistDetailFun();\n    }\n  });\n\n  async function getPlaylistDetailFun() {\n    console.debug(\"getPlaylistDetail\", playlistId);\n    const res = await getPlaylistDetail(playlistId); //获取歌单详情\n    if (res.code === 200) {\n      isLoadingStore.set(true);\n\n      const { trackIds } = res.playlist;\n\n      name = title = res.playlist.name;\n      creator = res.playlist.creator;\n      description = res.playlist.description;\n      coverImgUrl = res.playlist.coverImgUrl;\n      updateTime = res.playlist.updateTime;\n\n      const songIdList = trackIds.map((trackIdInfo) => trackIdInfo.id);\n      let cutSongIdList = cutArray(songIdList);\n      for (let t = 0; t < cutSongIdList.length; t++) {\n        await getSongDetailFun(cutSongIdList[t]);\n      }\n    }\n  }\n  async function getSongDetailFun(songIds) {\n    if (Array.isArray(songIds)) songIds = songIds.join(\",\");\n    const res = await getSongDetail(songIds); //所有获取歌曲详情\n    if (res.code === 200) {\n      songList = songList.concat(res.songs);\n    }\n  }\n  function scroll() {\n    const coverToTop = coverDom.getBoundingClientRect().top; //滑动时coverDom到顶部的距离,用于计算上滑时NavBar透明度。\n    if (coverToTop > -50 && coverToTop <= 0) {\n      alphaNumber = Math.abs(coverToTop) / 50;\n    } else {\n      alphaNumber = 1;\n    }\n    if (coverToTop > 0) {\n      alphaNumber = 0;\n    }\n  }\n\n  const playURL = (url) => {\n    window.audioDOM.src = url;\n    window.audioDOM.play();\n  };\n\n  const playSong = (song) => {\n    currentSongStore.set(song);\n    localStorage.setItem(\"currentSong\", JSON.stringify(song));\n    playURL(song.url);\n  };\n\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code !== 200) return;\n    if (res.data[0].url) {\n      song.url = res.data[0].url.replace(/^http:/, \"https:\");\n      if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n        currentSongQualityStore.set(\"试听\");\n      } else if (res.data[0].type === \"flac\") {\n        currentSongQualityStore.set(\"FLAC\");\n      } else {\n        currentSongQualityStore.set(res.data[0].br);\n      }\n      playSong(song);\n      playStatusStore.set(true);\n      // if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n      //   getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n    } else {\n      Toast(\n        `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n        2000\n      );\n    }\n  }\n  function playListFun(index) {\n    playRepeatModelStore.set(\"repeat\");\n    isFMPlayStore.set(false);\n    localStorage.setItem(\"isFMPlay\", \"0\");\n    currentPlayListStore.set(songList);\n    const ids = songList.map((song) => song.id);\n    localStorage.setItem(\"localPlayList\", JSON.stringify(ids));\n\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function subscribe() {\n    const res = await subscribePlaylist(playlistId, !collect);\n    if (res.code === 200) {\n      collect = !collect;\n    }\n  }\n</script>\n\n<svelte:window on:scroll={scroll} />\n<NavBar {title} transparent={true} dark={true} {alphaNumber} />\n<div class=\"play-list\">\n  <div\n    class=\"cover-box\"\n    bind:this={coverDom}\n    style=\"background: url({coverImgUrl.replace(/^http:/, 'https:') +\n      '?param=450y450'});\"\n  >\n    <div class=\"cover-bg\">\n      <div class=\"cover\">\n        <Lazy height={140}>\n          <img\n            class=\"img-cover\"\n            src={coverImgUrl.replace(/^http:/, \"https:\") + \"?param=450y450\"}\n            alt=\"\"\n          />\n        </Lazy>\n      </div>\n      <div class=\"info\">\n        <div class=\"name\">{name}</div>\n        <div class=\"creater\">\n          <img\n            class=\"creatorImg\"\n            src={creator.avatarUrl.replace(/^http:/, \"https:\") + \"?param=60y60\"}\n            alt=\"\"\n          />\n          <span class=\"creatertext\">{creator.nickname}</span>\n        </div>\n        <div class=\"update\">\n          更新于{formatTime(updateTime)} &#8226 {songList\n            ? songList.length\n            : 0}首\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"desc\">{description}</div>\n  <div class=\"btn\">\n    <div\n      class=\"play\"\n      style=\"margin-right: {$isLoginStore &&\n      creator.userId != $userInfoStore.account.id\n        ? 20\n        : 0}px;\"\n    >\n      <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n        <span class=\"icon\">\n          <PlayCircleLine size=\"20\" style=\"vertical-align: middle\" />\n        </span>\n        播放歌单\n      </Button>\n    </div>\n    {#if $isLoginStore && creator.userId != $userInfoStore.account.id}\n      <div class=\"random\">\n        <Button type={collect ? \"default\" : \"primary\"} on:BtnClick={subscribe}>\n          <span class=\"icon\">\n            {#if collect}\n              <ChatHeartLine size=\"20\" style=\"vertical-align: middle\" />\n            {:else}\n              <ChatHeartFill size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </span>\n          {collect ? \"取消收藏\" : \"收藏歌单\"}\n        </Button>\n      </div>\n    {/if}\n  </div>\n  <div>\n    <SongList {songList} />\n  </div>\n</div>\n\n<style>\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .btn {\n    display: flex;\n    margin-bottom: 10px;\n    padding: 0 20px;\n    flex-basis: 20px;\n  }\n  .play {\n    margin-right: 20px;\n    flex: 1;\n  }\n  .random {\n    flex: 1;\n  }\n  .cover-box {\n    background-position: center !important;\n  }\n  .cover-bg {\n    font-size: 12px;\n    padding: 60px 20px 20px;\n    display: flex;\n    color: #fff;\n    background: rgba(0, 0, 0, 0.3);\n    backdrop-filter: blur(20px);\n    -webkit-backdrop-filter: blur(20px);\n  }\n  .img-cover {\n    border-radius: 6px;\n    width: 140px;\n    height: 140px;\n    object-fit: cover;\n  }\n  .cover {\n    flex: 2;\n  }\n  .info {\n    padding-top: 6px;\n    flex: 3;\n    align-items: center;\n    margin-left: 10px;\n    position: relative;\n  }\n  .name {\n    font-size: 18px;\n    max-width: 192px;\n    font-weight: bold;\n  }\n  .creater {\n    margin-top: 8px;\n    align-items: center;\n    line-height: 24px;\n  }\n  .creatorImg {\n    border-radius: 4px;\n    width: 24px;\n    height: 24px;\n    margin-right: 4px;\n  }\n  .creatertext {\n    position: relative;\n    top: -8px;\n  }\n  .update {\n    position: absolute;\n    bottom: 6px;\n  }\n  .desc {\n    margin: 10px 20px;\n    font-size: 12px;\n    max-height: 60px;\n    overflow-y: auto;\n    text-align: justify;\n    color: rgb(116, 116, 116);\n  }\n  .desc:global(::-webkit-scrollbar) {\n    width: 0 !important;\n  }\n  .play-list {\n    padding-bottom: 70px;\n  }\n</style>\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t    var crypto;\n\n\t    // Native crypto from window (Browser)\n\t    if (typeof window !== 'undefined' && window.crypto) {\n\t        crypto = window.crypto;\n\t    }\n\n\t    // Native crypto in web worker (Browser)\n\t    if (typeof self !== 'undefined' && self.crypto) {\n\t        crypto = self.crypto;\n\t    }\n\n\t    // Native crypto from worker\n\t    if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t        crypto = globalThis.crypto;\n\t    }\n\n\t    // Native (experimental IE 11) crypto from window (Browser)\n\t    if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t        crypto = window.msCrypto;\n\t    }\n\n\t    // Native crypto from global (NodeJS)\n\t    if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t        crypto = global.crypto;\n\t    }\n\n\t    // Native crypto import via require (NodeJS)\n\t    if (!crypto && typeof require === 'function') {\n\t        try {\n\t            crypto = require('crypto');\n\t        } catch (err) {}\n\t    }\n\n\t    /*\n\t     * Cryptographically secure pseudorandom number generator\n\t     *\n\t     * As Math.random() is cryptographically not safe to use\n\t     */\n\t    var cryptoSecureRandomInt = function () {\n\t        if (crypto) {\n\t            // Use getRandomValues method (Browser)\n\t            if (typeof crypto.getRandomValues === 'function') {\n\t                try {\n\t                    return crypto.getRandomValues(new Uint32Array(1))[0];\n\t                } catch (err) {}\n\t            }\n\n\t            // Use randomBytes method (NodeJS)\n\t            if (typeof crypto.randomBytes === 'function') {\n\t                try {\n\t                    return crypto.randomBytes(4).readInt32LE();\n\t                } catch (err) {}\n\t            }\n\t        }\n\n\t        throw new Error('Native crypto module could not be used to get secure random number.');\n\t    };\n\n\t    /*\n\t     * Local polyfill of Object.create\n\n\t     */\n\t    var create = Object.create || (function () {\n\t        function F() {}\n\n\t        return function (obj) {\n\t            var subtype;\n\n\t            F.prototype = obj;\n\n\t            subtype = new F();\n\n\t            F.prototype = null;\n\n\t            return subtype;\n\t        };\n\t    }());\n\n\t    /**\n\t     * CryptoJS namespace.\n\t     */\n\t    var C = {};\n\n\t    /**\n\t     * Library namespace.\n\t     */\n\t    var C_lib = C.lib = {};\n\n\t    /**\n\t     * Base object for prototypal inheritance.\n\t     */\n\t    var Base = C_lib.Base = (function () {\n\n\n\t        return {\n\t            /**\n\t             * Creates a new object that inherits from this object.\n\t             *\n\t             * @param {Object} overrides Properties to copy into the new object.\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         field: 'value',\n\t             *\n\t             *         method: function () {\n\t             *         }\n\t             *     });\n\t             */\n\t            extend: function (overrides) {\n\t                // Spawn\n\t                var subtype = create(this);\n\n\t                // Augment\n\t                if (overrides) {\n\t                    subtype.mixIn(overrides);\n\t                }\n\n\t                // Create default initializer\n\t                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t                    subtype.init = function () {\n\t                        subtype.$super.init.apply(this, arguments);\n\t                    };\n\t                }\n\n\t                // Initializer's prototype is the subtype object\n\t                subtype.init.prototype = subtype;\n\n\t                // Reference supertype\n\t                subtype.$super = this;\n\n\t                return subtype;\n\t            },\n\n\t            /**\n\t             * Extends this object and runs the init method.\n\t             * Arguments to create() will be passed to init().\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var instance = MyType.create();\n\t             */\n\t            create: function () {\n\t                var instance = this.extend();\n\t                instance.init.apply(instance, arguments);\n\n\t                return instance;\n\t            },\n\n\t            /**\n\t             * Initializes a newly created object.\n\t             * Override this method to add some logic when your objects are created.\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         init: function () {\n\t             *             // ...\n\t             *         }\n\t             *     });\n\t             */\n\t            init: function () {\n\t            },\n\n\t            /**\n\t             * Copies properties into this object.\n\t             *\n\t             * @param {Object} properties The properties to mix in.\n\t             *\n\t             * @example\n\t             *\n\t             *     MyType.mixIn({\n\t             *         field: 'value'\n\t             *     });\n\t             */\n\t            mixIn: function (properties) {\n\t                for (var propertyName in properties) {\n\t                    if (properties.hasOwnProperty(propertyName)) {\n\t                        this[propertyName] = properties[propertyName];\n\t                    }\n\t                }\n\n\t                // IE won't copy toString using the loop above\n\t                if (properties.hasOwnProperty('toString')) {\n\t                    this.toString = properties.toString;\n\t                }\n\t            },\n\n\t            /**\n\t             * Creates a copy of this object.\n\t             *\n\t             * @return {Object} The clone.\n\t             *\n\t             * @example\n\t             *\n\t             *     var clone = instance.clone();\n\t             */\n\t            clone: function () {\n\t                return this.init.prototype.extend(this);\n\t            }\n\t        };\n\t    }());\n\n\t    /**\n\t     * An array of 32-bit words.\n\t     *\n\t     * @property {Array} words The array of 32-bit words.\n\t     * @property {number} sigBytes The number of significant bytes in this word array.\n\t     */\n\t    var WordArray = C_lib.WordArray = Base.extend({\n\t        /**\n\t         * Initializes a newly created word array.\n\t         *\n\t         * @param {Array} words (Optional) An array of 32-bit words.\n\t         * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.create();\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t         */\n\t        init: function (words, sigBytes) {\n\t            words = this.words = words || [];\n\n\t            if (sigBytes != undefined) {\n\t                this.sigBytes = sigBytes;\n\t            } else {\n\t                this.sigBytes = words.length * 4;\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts this word array to a string.\n\t         *\n\t         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t         *\n\t         * @return {string} The stringified word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     var string = wordArray + '';\n\t         *     var string = wordArray.toString();\n\t         *     var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t         */\n\t        toString: function (encoder) {\n\t            return (encoder || Hex).stringify(this);\n\t        },\n\n\t        /**\n\t         * Concatenates a word array to this word array.\n\t         *\n\t         * @param {WordArray} wordArray The word array to append.\n\t         *\n\t         * @return {WordArray} This word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray1.concat(wordArray2);\n\t         */\n\t        concat: function (wordArray) {\n\t            // Shortcuts\n\t            var thisWords = this.words;\n\t            var thatWords = wordArray.words;\n\t            var thisSigBytes = this.sigBytes;\n\t            var thatSigBytes = wordArray.sigBytes;\n\n\t            // Clamp excess bits\n\t            this.clamp();\n\n\t            // Concat\n\t            if (thisSigBytes % 4) {\n\t                // Copy one byte at a time\n\t                for (var i = 0; i < thatSigBytes; i++) {\n\t                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t                }\n\t            } else {\n\t                // Copy one word at a time\n\t                for (var j = 0; j < thatSigBytes; j += 4) {\n\t                    thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t                }\n\t            }\n\t            this.sigBytes += thatSigBytes;\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Removes insignificant bits.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray.clamp();\n\t         */\n\t        clamp: function () {\n\t            // Shortcuts\n\t            var words = this.words;\n\t            var sigBytes = this.sigBytes;\n\n\t            // Clamp\n\t            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t            words.length = Math.ceil(sigBytes / 4);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this word array.\n\t         *\n\t         * @return {WordArray} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = wordArray.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone.words = this.words.slice(0);\n\n\t            return clone;\n\t        },\n\n\t        /**\n\t         * Creates a word array filled with random bytes.\n\t         *\n\t         * @param {number} nBytes The number of random bytes to generate.\n\t         *\n\t         * @return {WordArray} The random word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.random(16);\n\t         */\n\t        random: function (nBytes) {\n\t            var words = [];\n\n\t            for (var i = 0; i < nBytes; i += 4) {\n\t                words.push(cryptoSecureRandomInt());\n\t            }\n\n\t            return new WordArray.init(words, nBytes);\n\t        }\n\t    });\n\n\t    /**\n\t     * Encoder namespace.\n\t     */\n\t    var C_enc = C.enc = {};\n\n\t    /**\n\t     * Hex encoding strategy.\n\t     */\n\t    var Hex = C_enc.Hex = {\n\t        /**\n\t         * Converts a word array to a hex string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The hex string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var hexChars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                hexChars.push((bite >>> 4).toString(16));\n\t                hexChars.push((bite & 0x0f).toString(16));\n\t            }\n\n\t            return hexChars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a hex string to a word array.\n\t         *\n\t         * @param {string} hexStr The hex string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t         */\n\t        parse: function (hexStr) {\n\t            // Shortcut\n\t            var hexStrLength = hexStr.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < hexStrLength; i += 2) {\n\t                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t            }\n\n\t            return new WordArray.init(words, hexStrLength / 2);\n\t        }\n\t    };\n\n\t    /**\n\t     * Latin1 encoding strategy.\n\t     */\n\t    var Latin1 = C_enc.Latin1 = {\n\t        /**\n\t         * Converts a word array to a Latin1 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The Latin1 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var latin1Chars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                latin1Chars.push(String.fromCharCode(bite));\n\t            }\n\n\t            return latin1Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a Latin1 string to a word array.\n\t         *\n\t         * @param {string} latin1Str The Latin1 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t         */\n\t        parse: function (latin1Str) {\n\t            // Shortcut\n\t            var latin1StrLength = latin1Str.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < latin1StrLength; i++) {\n\t                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t            }\n\n\t            return new WordArray.init(words, latin1StrLength);\n\t        }\n\t    };\n\n\t    /**\n\t     * UTF-8 encoding strategy.\n\t     */\n\t    var Utf8 = C_enc.Utf8 = {\n\t        /**\n\t         * Converts a word array to a UTF-8 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The UTF-8 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            try {\n\t                return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t            } catch (e) {\n\t                throw new Error('Malformed UTF-8 data');\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts a UTF-8 string to a word array.\n\t         *\n\t         * @param {string} utf8Str The UTF-8 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t         */\n\t        parse: function (utf8Str) {\n\t            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t        }\n\t    };\n\n\t    /**\n\t     * Abstract buffered block algorithm template.\n\t     *\n\t     * The property blockSize must be implemented in a concrete subtype.\n\t     *\n\t     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t     */\n\t    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t        /**\n\t         * Resets this block algorithm's data buffer to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm.reset();\n\t         */\n\t        reset: function () {\n\t            // Initial values\n\t            this._data = new WordArray.init();\n\t            this._nDataBytes = 0;\n\t        },\n\n\t        /**\n\t         * Adds new data to this block algorithm's buffer.\n\t         *\n\t         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm._append('data');\n\t         *     bufferedBlockAlgorithm._append(wordArray);\n\t         */\n\t        _append: function (data) {\n\t            // Convert string to WordArray, else assume WordArray already\n\t            if (typeof data == 'string') {\n\t                data = Utf8.parse(data);\n\t            }\n\n\t            // Append\n\t            this._data.concat(data);\n\t            this._nDataBytes += data.sigBytes;\n\t        },\n\n\t        /**\n\t         * Processes available data blocks.\n\t         *\n\t         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t         *\n\t         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t         *\n\t         * @return {WordArray} The processed data.\n\t         *\n\t         * @example\n\t         *\n\t         *     var processedData = bufferedBlockAlgorithm._process();\n\t         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t         */\n\t        _process: function (doFlush) {\n\t            var processedWords;\n\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\t            var dataSigBytes = data.sigBytes;\n\t            var blockSize = this.blockSize;\n\t            var blockSizeBytes = blockSize * 4;\n\n\t            // Count blocks ready\n\t            var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t            if (doFlush) {\n\t                // Round up to include partial blocks\n\t                nBlocksReady = Math.ceil(nBlocksReady);\n\t            } else {\n\t                // Round down to include only full blocks,\n\t                // less the number of blocks that must remain in the buffer\n\t                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t            }\n\n\t            // Count words ready\n\t            var nWordsReady = nBlocksReady * blockSize;\n\n\t            // Count bytes ready\n\t            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t            // Process blocks\n\t            if (nWordsReady) {\n\t                for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t                    // Perform concrete-algorithm logic\n\t                    this._doProcessBlock(dataWords, offset);\n\t                }\n\n\t                // Remove processed words\n\t                processedWords = dataWords.splice(0, nWordsReady);\n\t                data.sigBytes -= nBytesReady;\n\t            }\n\n\t            // Return processed words\n\t            return new WordArray.init(processedWords, nBytesReady);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this object.\n\t         *\n\t         * @return {Object} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = bufferedBlockAlgorithm.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone._data = this._data.clone();\n\n\t            return clone;\n\t        },\n\n\t        _minBufferSize: 0\n\t    });\n\n\t    /**\n\t     * Abstract hasher template.\n\t     *\n\t     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t     */\n\t    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t        /**\n\t         * Configuration options.\n\t         */\n\t        cfg: Base.extend(),\n\n\t        /**\n\t         * Initializes a newly created hasher.\n\t         *\n\t         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hasher = CryptoJS.algo.SHA256.create();\n\t         */\n\t        init: function (cfg) {\n\t            // Apply config defaults\n\t            this.cfg = this.cfg.extend(cfg);\n\n\t            // Set initial values\n\t            this.reset();\n\t        },\n\n\t        /**\n\t         * Resets this hasher to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.reset();\n\t         */\n\t        reset: function () {\n\t            // Reset data buffer\n\t            BufferedBlockAlgorithm.reset.call(this);\n\n\t            // Perform concrete-hasher logic\n\t            this._doReset();\n\t        },\n\n\t        /**\n\t         * Updates this hasher with a message.\n\t         *\n\t         * @param {WordArray|string} messageUpdate The message to append.\n\t         *\n\t         * @return {Hasher} This hasher.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.update('message');\n\t         *     hasher.update(wordArray);\n\t         */\n\t        update: function (messageUpdate) {\n\t            // Append\n\t            this._append(messageUpdate);\n\n\t            // Update the hash\n\t            this._process();\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Finalizes the hash computation.\n\t         * Note that the finalize operation is effectively a destructive, read-once operation.\n\t         *\n\t         * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t         *\n\t         * @return {WordArray} The hash.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hash = hasher.finalize();\n\t         *     var hash = hasher.finalize('message');\n\t         *     var hash = hasher.finalize(wordArray);\n\t         */\n\t        finalize: function (messageUpdate) {\n\t            // Final message update\n\t            if (messageUpdate) {\n\t                this._append(messageUpdate);\n\t            }\n\n\t            // Perform concrete-hasher logic\n\t            var hash = this._doFinalize();\n\n\t            return hash;\n\t        },\n\n\t        blockSize: 512/32,\n\n\t        /**\n\t         * Creates a shortcut function to a hasher's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to create a helper for.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHelper: function (hasher) {\n\t            return function (message, cfg) {\n\t                return new hasher.init(cfg).finalize(message);\n\t            };\n\t        },\n\n\t        /**\n\t         * Creates a shortcut function to the HMAC's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHmacHelper: function (hasher) {\n\t            return function (message, key) {\n\t                return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t            };\n\t        }\n\t    });\n\n\t    /**\n\t     * Algorithm namespace.\n\t     */\n\t    var C_algo = C.algo = {};\n\n\t    return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var Hasher = C_lib.Hasher;\n\t    var C_algo = C.algo;\n\n\t    // Constants table\n\t    var T = [];\n\n\t    // Compute constants\n\t    (function () {\n\t        for (var i = 0; i < 64; i++) {\n\t            T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t        }\n\t    }());\n\n\t    /**\n\t     * MD5 hash algorithm.\n\t     */\n\t    var MD5 = C_algo.MD5 = Hasher.extend({\n\t        _doReset: function () {\n\t            this._hash = new WordArray.init([\n\t                0x67452301, 0xefcdab89,\n\t                0x98badcfe, 0x10325476\n\t            ]);\n\t        },\n\n\t        _doProcessBlock: function (M, offset) {\n\t            // Swap endian\n\t            for (var i = 0; i < 16; i++) {\n\t                // Shortcuts\n\t                var offset_i = offset + i;\n\t                var M_offset_i = M[offset_i];\n\n\t                M[offset_i] = (\n\t                    (((M_offset_i << 8)  | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t                    (((M_offset_i << 24) | (M_offset_i >>> 8))  & 0xff00ff00)\n\t                );\n\t            }\n\n\t            // Shortcuts\n\t            var H = this._hash.words;\n\n\t            var M_offset_0  = M[offset + 0];\n\t            var M_offset_1  = M[offset + 1];\n\t            var M_offset_2  = M[offset + 2];\n\t            var M_offset_3  = M[offset + 3];\n\t            var M_offset_4  = M[offset + 4];\n\t            var M_offset_5  = M[offset + 5];\n\t            var M_offset_6  = M[offset + 6];\n\t            var M_offset_7  = M[offset + 7];\n\t            var M_offset_8  = M[offset + 8];\n\t            var M_offset_9  = M[offset + 9];\n\t            var M_offset_10 = M[offset + 10];\n\t            var M_offset_11 = M[offset + 11];\n\t            var M_offset_12 = M[offset + 12];\n\t            var M_offset_13 = M[offset + 13];\n\t            var M_offset_14 = M[offset + 14];\n\t            var M_offset_15 = M[offset + 15];\n\n\t            // Working varialbes\n\t            var a = H[0];\n\t            var b = H[1];\n\t            var c = H[2];\n\t            var d = H[3];\n\n\t            // Computation\n\t            a = FF(a, b, c, d, M_offset_0,  7,  T[0]);\n\t            d = FF(d, a, b, c, M_offset_1,  12, T[1]);\n\t            c = FF(c, d, a, b, M_offset_2,  17, T[2]);\n\t            b = FF(b, c, d, a, M_offset_3,  22, T[3]);\n\t            a = FF(a, b, c, d, M_offset_4,  7,  T[4]);\n\t            d = FF(d, a, b, c, M_offset_5,  12, T[5]);\n\t            c = FF(c, d, a, b, M_offset_6,  17, T[6]);\n\t            b = FF(b, c, d, a, M_offset_7,  22, T[7]);\n\t            a = FF(a, b, c, d, M_offset_8,  7,  T[8]);\n\t            d = FF(d, a, b, c, M_offset_9,  12, T[9]);\n\t            c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t            b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t            a = FF(a, b, c, d, M_offset_12, 7,  T[12]);\n\t            d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t            c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t            b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t            a = GG(a, b, c, d, M_offset_1,  5,  T[16]);\n\t            d = GG(d, a, b, c, M_offset_6,  9,  T[17]);\n\t            c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t            b = GG(b, c, d, a, M_offset_0,  20, T[19]);\n\t            a = GG(a, b, c, d, M_offset_5,  5,  T[20]);\n\t            d = GG(d, a, b, c, M_offset_10, 9,  T[21]);\n\t            c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t            b = GG(b, c, d, a, M_offset_4,  20, T[23]);\n\t            a = GG(a, b, c, d, M_offset_9,  5,  T[24]);\n\t            d = GG(d, a, b, c, M_offset_14, 9,  T[25]);\n\t            c = GG(c, d, a, b, M_offset_3,  14, T[26]);\n\t            b = GG(b, c, d, a, M_offset_8,  20, T[27]);\n\t            a = GG(a, b, c, d, M_offset_13, 5,  T[28]);\n\t            d = GG(d, a, b, c, M_offset_2,  9,  T[29]);\n\t            c = GG(c, d, a, b, M_offset_7,  14, T[30]);\n\t            b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t            a = HH(a, b, c, d, M_offset_5,  4,  T[32]);\n\t            d = HH(d, a, b, c, M_offset_8,  11, T[33]);\n\t            c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t            b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t            a = HH(a, b, c, d, M_offset_1,  4,  T[36]);\n\t            d = HH(d, a, b, c, M_offset_4,  11, T[37]);\n\t            c = HH(c, d, a, b, M_offset_7,  16, T[38]);\n\t            b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t            a = HH(a, b, c, d, M_offset_13, 4,  T[40]);\n\t            d = HH(d, a, b, c, M_offset_0,  11, T[41]);\n\t            c = HH(c, d, a, b, M_offset_3,  16, T[42]);\n\t            b = HH(b, c, d, a, M_offset_6,  23, T[43]);\n\t            a = HH(a, b, c, d, M_offset_9,  4,  T[44]);\n\t            d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t            c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t            b = HH(b, c, d, a, M_offset_2,  23, T[47]);\n\n\t            a = II(a, b, c, d, M_offset_0,  6,  T[48]);\n\t            d = II(d, a, b, c, M_offset_7,  10, T[49]);\n\t            c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t            b = II(b, c, d, a, M_offset_5,  21, T[51]);\n\t            a = II(a, b, c, d, M_offset_12, 6,  T[52]);\n\t            d = II(d, a, b, c, M_offset_3,  10, T[53]);\n\t            c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t            b = II(b, c, d, a, M_offset_1,  21, T[55]);\n\t            a = II(a, b, c, d, M_offset_8,  6,  T[56]);\n\t            d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t            c = II(c, d, a, b, M_offset_6,  15, T[58]);\n\t            b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t            a = II(a, b, c, d, M_offset_4,  6,  T[60]);\n\t            d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t            c = II(c, d, a, b, M_offset_2,  15, T[62]);\n\t            b = II(b, c, d, a, M_offset_9,  21, T[63]);\n\n\t            // Intermediate hash value\n\t            H[0] = (H[0] + a) | 0;\n\t            H[1] = (H[1] + b) | 0;\n\t            H[2] = (H[2] + c) | 0;\n\t            H[3] = (H[3] + d) | 0;\n\t        },\n\n\t        _doFinalize: function () {\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\n\t            var nBitsTotal = this._nDataBytes * 8;\n\t            var nBitsLeft = data.sigBytes * 8;\n\n\t            // Add padding\n\t            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t            var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t            var nBitsTotalL = nBitsTotal;\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t                (((nBitsTotalH << 8)  | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotalH << 24) | (nBitsTotalH >>> 8))  & 0xff00ff00)\n\t            );\n\t            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t                (((nBitsTotalL << 8)  | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t                (((nBitsTotalL << 24) | (nBitsTotalL >>> 8))  & 0xff00ff00)\n\t            );\n\n\t            data.sigBytes = (dataWords.length + 1) * 4;\n\n\t            // Hash final blocks\n\t            this._process();\n\n\t            // Shortcuts\n\t            var hash = this._hash;\n\t            var H = hash.words;\n\n\t            // Swap endian\n\t            for (var i = 0; i < 4; i++) {\n\t                // Shortcut\n\t                var H_i = H[i];\n\n\t                H[i] = (((H_i << 8)  | (H_i >>> 24)) & 0x00ff00ff) |\n\t                       (((H_i << 24) | (H_i >>> 8))  & 0xff00ff00);\n\t            }\n\n\t            // Return final computed hash\n\t            return hash;\n\t        },\n\n\t        clone: function () {\n\t            var clone = Hasher.clone.call(this);\n\t            clone._hash = this._hash.clone();\n\n\t            return clone;\n\t        }\n\t    });\n\n\t    function FF(a, b, c, d, x, s, t) {\n\t        var n = a + ((b & c) | (~b & d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function GG(a, b, c, d, x, s, t) {\n\t        var n = a + ((b & d) | (c & ~d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function HH(a, b, c, d, x, s, t) {\n\t        var n = a + (b ^ c ^ d) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    function II(a, b, c, d, x, s, t) {\n\t        var n = a + (c ^ (b | ~d)) + x + t;\n\t        return ((n << s) | (n >>> (32 - s))) + b;\n\t    }\n\n\t    /**\n\t     * Shortcut function to the hasher's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     *\n\t     * @return {WordArray} The hash.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hash = CryptoJS.MD5('message');\n\t     *     var hash = CryptoJS.MD5(wordArray);\n\t     */\n\t    C.MD5 = Hasher._createHelper(MD5);\n\n\t    /**\n\t     * Shortcut function to the HMAC's object interface.\n\t     *\n\t     * @param {WordArray|string} message The message to hash.\n\t     * @param {WordArray|string} key The secret key.\n\t     *\n\t     * @return {WordArray} The HMAC.\n\t     *\n\t     * @static\n\t     *\n\t     * @example\n\t     *\n\t     *     var hmac = CryptoJS.HmacMD5(message, key);\n\t     */\n\t    C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","/*\n * QRious v4.0.2\n * Copyright (C) 2017 Alasdair Mercer\n * Copyright (C) 2010 Tom Zerucha\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    (global.QRious = factory());\n  }(this, (function () { 'use strict';\n  \n    /*\n     * Copyright (C) 2017 Alasdair Mercer, !ninja\n     *\n     * Permission is hereby granted, free of charge, to any person obtaining a copy\n     * of this software and associated documentation files (the \"Software\"), to deal\n     * in the Software without restriction, including without limitation the rights\n     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n     * copies of the Software, and to permit persons to whom the Software is\n     * furnished to do so, subject to the following conditions:\n     *\n     * The above copyright notice and this permission notice shall be included in all\n     * copies or substantial portions of the Software.\n     *\n     * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n     * SOFTWARE.\n     */\n  \n    /**\n     * A bare-bones constructor for surrogate prototype swapping.\n     *\n     * @private\n     * @constructor\n     */\n    var Constructor = /* istanbul ignore next */ function() {};\n    /**\n     * A reference to <code>Object.prototype.hasOwnProperty</code>.\n     *\n     * @private\n     * @type {Function}\n     */\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n    /**\n     * A reference to <code>Array.prototype.slice</code>.\n     *\n     * @private\n     * @type {Function}\n     */\n    var slice = Array.prototype.slice;\n  \n    /**\n     * Creates an object which inherits the given <code>prototype</code>.\n     *\n     * Optionally, the created object can be extended further with the specified <code>properties</code>.\n     *\n     * @param {Object} prototype - the prototype to be inherited by the created object\n     * @param {Object} [properties] - the optional properties to be extended by the created object\n     * @return {Object} The newly created object.\n     * @private\n     */\n    function createObject(prototype, properties) {\n      var result;\n      /* istanbul ignore next */\n      if (typeof Object.create === 'function') {\n        result = Object.create(prototype);\n      } else {\n        Constructor.prototype = prototype;\n        result = new Constructor();\n        Constructor.prototype = null;\n      }\n  \n      if (properties) {\n        extendObject(true, result, properties);\n      }\n  \n      return result;\n    }\n  \n    /**\n     * Extends the constructor to which this method is associated with the <code>prototype</code> and/or\n     * <code>statics</code> provided.\n     *\n     * If <code>name</code> is provided, it will be used as the class name and can be accessed via a special\n     * <code>class_</code> property on the child constructor, otherwise the class name of the super constructor will be used\n     * instead. The class name may also be used string representation for instances of the child constructor (via\n     * <code>toString</code>), but this is not applicable to the <i>lite</i> version of Nevis.\n     *\n     * If <code>constructor</code> is provided, it will be used as the constructor for the child, otherwise a simple\n     * constructor which only calls the super constructor will be used instead.\n     *\n     * The super constructor can be accessed via a special <code>super_</code> property on the child constructor.\n     *\n     * @param {string} [name=this.class_] - the class name to be used for the child constructor\n     * @param {Function} [constructor] - the constructor for the child\n     * @param {Object} [prototype] - the prototype properties to be defined for the child\n     * @param {Object} [statics] - the static properties to be defined for the child\n     * @return {Function} The child <code>constructor</code> provided or the one created if none was given.\n     * @public\n     */\n    function extend(name, constructor, prototype, statics) {\n      var superConstructor = this;\n  \n      if (typeof name !== 'string') {\n        statics = prototype;\n        prototype = constructor;\n        constructor = name;\n        name = null;\n      }\n  \n      if (typeof constructor !== 'function') {\n        statics = prototype;\n        prototype = constructor;\n        constructor = function() {\n          return superConstructor.apply(this, arguments);\n        };\n      }\n  \n      extendObject(false, constructor, superConstructor, statics);\n  \n      constructor.prototype = createObject(superConstructor.prototype, prototype);\n      constructor.prototype.constructor = constructor;\n  \n      constructor.class_ = name || superConstructor.class_;\n      constructor.super_ = superConstructor;\n  \n      return constructor;\n    }\n  \n    /**\n     * Extends the specified <code>target</code> object with the properties in each of the <code>sources</code> provided.\n     *\n     * if any source is <code>null</code> it will be ignored.\n     *\n     * @param {boolean} own - <code>true</code> to only copy <b>own</b> properties from <code>sources</code> onto\n     * <code>target</code>; otherwise <code>false</code>\n     * @param {Object} target - the target object which should be extended\n     * @param {...Object} [sources] - the source objects whose properties are to be copied onto <code>target</code>\n     * @return {void}\n     * @private\n     */\n    function extendObject(own, target, sources) {\n      sources = slice.call(arguments, 2);\n  \n      var property;\n      var source;\n  \n      for (var i = 0, length = sources.length; i < length; i++) {\n        source = sources[i];\n  \n        for (property in source) {\n          if (!own || hasOwnProperty.call(source, property)) {\n            target[property] = source[property];\n          }\n        }\n      }\n    }\n  \n    var extend_1 = extend;\n  \n    /**\n     * The base class from which all others should extend.\n     *\n     * @public\n     * @constructor\n     */\n    function Nevis() {}\n    Nevis.class_ = 'Nevis';\n    Nevis.super_ = Object;\n  \n    /**\n     * Extends the constructor to which this method is associated with the <code>prototype</code> and/or\n     * <code>statics</code> provided.\n     *\n     * If <code>name</code> is provided, it will be used as the class name and can be accessed via a special\n     * <code>class_</code> property on the child constructor, otherwise the class name of the super constructor will be used\n     * instead. The class name may also be used string representation for instances of the child constructor (via\n     * <code>toString</code>), but this is not applicable to the <i>lite</i> version of Nevis.\n     *\n     * If <code>constructor</code> is provided, it will be used as the constructor for the child, otherwise a simple\n     * constructor which only calls the super constructor will be used instead.\n     *\n     * The super constructor can be accessed via a special <code>super_</code> property on the child constructor.\n     *\n     * @param {string} [name=this.class_] - the class name to be used for the child constructor\n     * @param {Function} [constructor] - the constructor for the child\n     * @param {Object} [prototype] - the prototype properties to be defined for the child\n     * @param {Object} [statics] - the static properties to be defined for the child\n     * @return {Function} The child <code>constructor</code> provided or the one created if none was given.\n     * @public\n     * @static\n     * @memberof Nevis\n     */\n    Nevis.extend = extend_1;\n  \n    var nevis = Nevis;\n  \n    var lite = nevis;\n  \n    /**\n     * Responsible for rendering a QR code {@link Frame} on a specific type of element.\n     *\n     * A renderer may be dependant on the rendering of another element, so the ordering of their execution is important.\n     *\n     * The rendering of a element can be deferred by disabling the renderer initially, however, any attempt get the element\n     * from the renderer will result in it being immediately enabled and the element being rendered.\n     *\n     * @param {QRious} qrious - the {@link QRious} instance to be used\n     * @param {*} element - the element onto which the QR code is to be rendered\n     * @param {boolean} [enabled] - <code>true</code> this {@link Renderer} is enabled; otherwise <code>false</code>.\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Renderer = lite.extend(function(qrious, element, enabled) {\n      /**\n       * The {@link QRious} instance.\n       *\n       * @protected\n       * @type {QRious}\n       * @memberof Renderer#\n       */\n      this.qrious = qrious;\n  \n      /**\n       * The element onto which this {@link Renderer} is rendering the QR code.\n       *\n       * @protected\n       * @type {*}\n       * @memberof Renderer#\n       */\n      this.element = element;\n      this.element.qrious = qrious;\n  \n      /**\n       * Whether this {@link Renderer} is enabled.\n       *\n       * @protected\n       * @type {boolean}\n       * @memberof Renderer#\n       */\n      this.enabled = Boolean(enabled);\n    }, {\n  \n      /**\n       * Draws the specified QR code <code>frame</code> on the underlying element.\n       *\n       * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n       *\n       * @param {Frame} frame - the {@link Frame} to be drawn\n       * @return {void}\n       * @protected\n       * @abstract\n       * @memberof Renderer#\n       */\n      draw: function(frame) {},\n  \n      /**\n       * Returns the element onto which this {@link Renderer} is rendering the QR code.\n       *\n       * If this method is called while this {@link Renderer} is disabled, it will be immediately enabled and rendered\n       * before the element is returned.\n       *\n       * @return {*} The element.\n       * @public\n       * @memberof Renderer#\n       */\n      getElement: function() {\n        if (!this.enabled) {\n          this.enabled = true;\n          this.render();\n        }\n  \n        return this.element;\n      },\n  \n      /**\n       * Calculates the size (in pixel units) to represent an individual module within the QR code based on the\n       * <code>frame</code> provided.\n       *\n       * Any configured padding will be excluded from the returned size.\n       *\n       * The returned value will be at least one, even in cases where the size of the QR code does not fit its contents.\n       * This is done so that the inevitable clipping is handled more gracefully since this way at least something is\n       * displayed instead of just a blank space filled by the background color.\n       *\n       * @param {Frame} frame - the {@link Frame} from which the module size is to be derived\n       * @return {number} The pixel size for each module in the QR code which will be no less than one.\n       * @protected\n       * @memberof Renderer#\n       */\n      getModuleSize: function(frame) {\n        var qrious = this.qrious;\n        var padding = qrious.padding || 0;\n        var pixels = Math.floor((qrious.size - (padding * 2)) / frame.width);\n  \n        return Math.max(1, pixels);\n      },\n\n      /**\n       * Renders a QR code on the underlying element based on the <code>frame</code> provided.\n       *\n       * @param {Frame} frame - the {@link Frame} to be rendered\n       * @return {void}\n       * @public\n       * @memberof Renderer#\n       */\n      render: function(frame) {\n        if (this.enabled) {\n          this.resize();\n          this.reset();\n          this.draw(frame);\n        }\n      },\n  \n      /**\n       * Resets the underlying element, effectively clearing any previously rendered QR code.\n       *\n       * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {void}\n       * @protected\n       * @abstract\n       * @memberof Renderer#\n       */\n      reset: function() {},\n  \n      /**\n       * Ensures that the size of the underlying element matches that defined on the associated {@link QRious} instance.\n       *\n       * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {void}\n       * @protected\n       * @abstract\n       * @memberof Renderer#\n       */\n      resize: function() {}\n  \n    });\n  \n    var Renderer_1 = Renderer;\n  \n    /**\n     * An implementation of {@link Renderer} for working with <code>canvas</code> elements.\n     *\n     * @public\n     * @class\n     * @extends Renderer\n     */\n    var CanvasRenderer = Renderer_1.extend({\n  \n      /**\n       * @override\n       */\n      draw: function(frame) {\n        var i, j;\n        var qrious = this.qrious;\n        var moduleSize = this.getModuleSize(frame);\n        var offset = parseInt((this.element.width-(frame.width * moduleSize)) / 2);\n        var context = this.element.getContext('2d');\n  \n        context.fillStyle = qrious.foreground;\n        context.globalAlpha = qrious.foregroundAlpha;\n  \n        for (i = 0; i < frame.width; i++) {\n          for (j = 0; j < frame.width; j++) {\n            if (frame.buffer[(j * frame.width) + i]) {\n              context.fillRect((moduleSize * i) + offset, (moduleSize * j) + offset, moduleSize, moduleSize);\n            }\n          }\n        }\n      },\n  \n      /**\n       * @override\n       */\n      reset: function() {\n        var qrious = this.qrious;\n        var context = this.element.getContext('2d');\n        var size = qrious.size;\n  \n        context.lineWidth = 1;\n        context.clearRect(0, 0, size, size);\n        context.fillStyle = qrious.background;\n        context.globalAlpha = qrious.backgroundAlpha;\n        context.fillRect(0, 0, size, size);\n      },\n  \n      /**\n       * @override\n       */\n      resize: function() {\n        var element = this.element;\n  \n        element.width = element.height = this.qrious.size;\n      }\n  \n    });\n  \n    var CanvasRenderer_1 = CanvasRenderer;\n  \n    /* eslint no-multi-spaces: \"off\" */\n  \n  \n  \n    /**\n     * Contains alignment pattern information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Alignment = lite.extend(null, {\n  \n      /**\n       * The alignment pattern block.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Alignment\n       */\n      BLOCK: [\n        0,  11, 15, 19, 23, 27, 31,\n        16, 18, 20, 22, 24, 26, 28, 20, 22, 24, 24, 26, 28, 28, 22, 24, 24,\n        26, 26, 28, 28, 24, 24, 26, 26, 26, 28, 28, 24, 26, 26, 26, 28, 28\n      ]\n  \n    });\n  \n    var Alignment_1 = Alignment;\n  \n    /* eslint no-multi-spaces: \"off\" */\n  \n  \n  \n    /**\n     * Contains error correction information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var ErrorCorrection = lite.extend(null, {\n  \n      /**\n       * The error correction blocks.\n       *\n       * There are four elements per version. The first two indicate the number of blocks, then the data width, and finally\n       * the ECC width.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof ErrorCorrection\n       */\n      BLOCKS: [\n        1,  0,  19,  7,     1,  0,  16,  10,    1,  0,  13,  13,    1,  0,  9,   17,\n        1,  0,  34,  10,    1,  0,  28,  16,    1,  0,  22,  22,    1,  0,  16,  28,\n        1,  0,  55,  15,    1,  0,  44,  26,    2,  0,  17,  18,    2,  0,  13,  22,\n        1,  0,  80,  20,    2,  0,  32,  18,    2,  0,  24,  26,    4,  0,  9,   16,\n        1,  0,  108, 26,    2,  0,  43,  24,    2,  2,  15,  18,    2,  2,  11,  22,\n        2,  0,  68,  18,    4,  0,  27,  16,    4,  0,  19,  24,    4,  0,  15,  28,\n        2,  0,  78,  20,    4,  0,  31,  18,    2,  4,  14,  18,    4,  1,  13,  26,\n        2,  0,  97,  24,    2,  2,  38,  22,    4,  2,  18,  22,    4,  2,  14,  26,\n        2,  0,  116, 30,    3,  2,  36,  22,    4,  4,  16,  20,    4,  4,  12,  24,\n        2,  2,  68,  18,    4,  1,  43,  26,    6,  2,  19,  24,    6,  2,  15,  28,\n        4,  0,  81,  20,    1,  4,  50,  30,    4,  4,  22,  28,    3,  8,  12,  24,\n        2,  2,  92,  24,    6,  2,  36,  22,    4,  6,  20,  26,    7,  4,  14,  28,\n        4,  0,  107, 26,    8,  1,  37,  22,    8,  4,  20,  24,    12, 4,  11,  22,\n        3,  1,  115, 30,    4,  5,  40,  24,    11, 5,  16,  20,    11, 5,  12,  24,\n        5,  1,  87,  22,    5,  5,  41,  24,    5,  7,  24,  30,    11, 7,  12,  24,\n        5,  1,  98,  24,    7,  3,  45,  28,    15, 2,  19,  24,    3,  13, 15,  30,\n        1,  5,  107, 28,    10, 1,  46,  28,    1,  15, 22,  28,    2,  17, 14,  28,\n        5,  1,  120, 30,    9,  4,  43,  26,    17, 1,  22,  28,    2,  19, 14,  28,\n        3,  4,  113, 28,    3,  11, 44,  26,    17, 4,  21,  26,    9,  16, 13,  26,\n        3,  5,  107, 28,    3,  13, 41,  26,    15, 5,  24,  30,    15, 10, 15,  28,\n        4,  4,  116, 28,    17, 0,  42,  26,    17, 6,  22,  28,    19, 6,  16,  30,\n        2,  7,  111, 28,    17, 0,  46,  28,    7,  16, 24,  30,    34, 0,  13,  24,\n        4,  5,  121, 30,    4,  14, 47,  28,    11, 14, 24,  30,    16, 14, 15,  30,\n        6,  4,  117, 30,    6,  14, 45,  28,    11, 16, 24,  30,    30, 2,  16,  30,\n        8,  4,  106, 26,    8,  13, 47,  28,    7,  22, 24,  30,    22, 13, 15,  30,\n        10, 2,  114, 28,    19, 4,  46,  28,    28, 6,  22,  28,    33, 4,  16,  30,\n        8,  4,  122, 30,    22, 3,  45,  28,    8,  26, 23,  30,    12, 28, 15,  30,\n        3,  10, 117, 30,    3,  23, 45,  28,    4,  31, 24,  30,    11, 31, 15,  30,\n        7,  7,  116, 30,    21, 7,  45,  28,    1,  37, 23,  30,    19, 26, 15,  30,\n        5,  10, 115, 30,    19, 10, 47,  28,    15, 25, 24,  30,    23, 25, 15,  30,\n        13, 3,  115, 30,    2,  29, 46,  28,    42, 1,  24,  30,    23, 28, 15,  30,\n        17, 0,  115, 30,    10, 23, 46,  28,    10, 35, 24,  30,    19, 35, 15,  30,\n        17, 1,  115, 30,    14, 21, 46,  28,    29, 19, 24,  30,    11, 46, 15,  30,\n        13, 6,  115, 30,    14, 23, 46,  28,    44, 7,  24,  30,    59, 1,  16,  30,\n        12, 7,  121, 30,    12, 26, 47,  28,    39, 14, 24,  30,    22, 41, 15,  30,\n        6,  14, 121, 30,    6,  34, 47,  28,    46, 10, 24,  30,    2,  64, 15,  30,\n        17, 4,  122, 30,    29, 14, 46,  28,    49, 10, 24,  30,    24, 46, 15,  30,\n        4,  18, 122, 30,    13, 32, 46,  28,    48, 14, 24,  30,    42, 32, 15,  30,\n        20, 4,  117, 30,    40, 7,  47,  28,    43, 22, 24,  30,    10, 67, 15,  30,\n        19, 6,  118, 30,    18, 31, 47,  28,    34, 34, 24,  30,    20, 61, 15,  30\n      ],\n  \n      /**\n       * The final format bits with mask (level << 3 | mask).\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof ErrorCorrection\n       */\n      FINAL_FORMAT: [\n        // L\n        0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976,\n        // M\n        0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0,\n        // Q\n        0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed,\n        // H\n        0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b\n      ],\n  \n      /**\n       * A map of human-readable ECC levels.\n       *\n       * @public\n       * @static\n       * @type {Object.<string, number>}\n       * @memberof ErrorCorrection\n       */\n      LEVELS: {\n        L: 1,\n        M: 2,\n        Q: 3,\n        H: 4\n      }\n  \n    });\n  \n    var ErrorCorrection_1 = ErrorCorrection;\n  \n    /**\n     * Contains Galois field information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Galois = lite.extend(null, {\n  \n      /**\n       * The Galois field exponent table.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Galois\n       */\n      EXPONENT: [\n        0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1d, 0x3a, 0x74, 0xe8, 0xcd, 0x87, 0x13, 0x26,\n        0x4c, 0x98, 0x2d, 0x5a, 0xb4, 0x75, 0xea, 0xc9, 0x8f, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0,\n        0x9d, 0x27, 0x4e, 0x9c, 0x25, 0x4a, 0x94, 0x35, 0x6a, 0xd4, 0xb5, 0x77, 0xee, 0xc1, 0x9f, 0x23,\n        0x46, 0x8c, 0x05, 0x0a, 0x14, 0x28, 0x50, 0xa0, 0x5d, 0xba, 0x69, 0xd2, 0xb9, 0x6f, 0xde, 0xa1,\n        0x5f, 0xbe, 0x61, 0xc2, 0x99, 0x2f, 0x5e, 0xbc, 0x65, 0xca, 0x89, 0x0f, 0x1e, 0x3c, 0x78, 0xf0,\n        0xfd, 0xe7, 0xd3, 0xbb, 0x6b, 0xd6, 0xb1, 0x7f, 0xfe, 0xe1, 0xdf, 0xa3, 0x5b, 0xb6, 0x71, 0xe2,\n        0xd9, 0xaf, 0x43, 0x86, 0x11, 0x22, 0x44, 0x88, 0x0d, 0x1a, 0x34, 0x68, 0xd0, 0xbd, 0x67, 0xce,\n        0x81, 0x1f, 0x3e, 0x7c, 0xf8, 0xed, 0xc7, 0x93, 0x3b, 0x76, 0xec, 0xc5, 0x97, 0x33, 0x66, 0xcc,\n        0x85, 0x17, 0x2e, 0x5c, 0xb8, 0x6d, 0xda, 0xa9, 0x4f, 0x9e, 0x21, 0x42, 0x84, 0x15, 0x2a, 0x54,\n        0xa8, 0x4d, 0x9a, 0x29, 0x52, 0xa4, 0x55, 0xaa, 0x49, 0x92, 0x39, 0x72, 0xe4, 0xd5, 0xb7, 0x73,\n        0xe6, 0xd1, 0xbf, 0x63, 0xc6, 0x91, 0x3f, 0x7e, 0xfc, 0xe5, 0xd7, 0xb3, 0x7b, 0xf6, 0xf1, 0xff,\n        0xe3, 0xdb, 0xab, 0x4b, 0x96, 0x31, 0x62, 0xc4, 0x95, 0x37, 0x6e, 0xdc, 0xa5, 0x57, 0xae, 0x41,\n        0x82, 0x19, 0x32, 0x64, 0xc8, 0x8d, 0x07, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xdd, 0xa7, 0x53, 0xa6,\n        0x51, 0xa2, 0x59, 0xb2, 0x79, 0xf2, 0xf9, 0xef, 0xc3, 0x9b, 0x2b, 0x56, 0xac, 0x45, 0x8a, 0x09,\n        0x12, 0x24, 0x48, 0x90, 0x3d, 0x7a, 0xf4, 0xf5, 0xf7, 0xf3, 0xfb, 0xeb, 0xcb, 0x8b, 0x0b, 0x16,\n        0x2c, 0x58, 0xb0, 0x7d, 0xfa, 0xe9, 0xcf, 0x83, 0x1b, 0x36, 0x6c, 0xd8, 0xad, 0x47, 0x8e, 0x00\n      ],\n  \n      /**\n       * The Galois field log table.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Galois\n       */\n      LOG: [\n        0xff, 0x00, 0x01, 0x19, 0x02, 0x32, 0x1a, 0xc6, 0x03, 0xdf, 0x33, 0xee, 0x1b, 0x68, 0xc7, 0x4b,\n        0x04, 0x64, 0xe0, 0x0e, 0x34, 0x8d, 0xef, 0x81, 0x1c, 0xc1, 0x69, 0xf8, 0xc8, 0x08, 0x4c, 0x71,\n        0x05, 0x8a, 0x65, 0x2f, 0xe1, 0x24, 0x0f, 0x21, 0x35, 0x93, 0x8e, 0xda, 0xf0, 0x12, 0x82, 0x45,\n        0x1d, 0xb5, 0xc2, 0x7d, 0x6a, 0x27, 0xf9, 0xb9, 0xc9, 0x9a, 0x09, 0x78, 0x4d, 0xe4, 0x72, 0xa6,\n        0x06, 0xbf, 0x8b, 0x62, 0x66, 0xdd, 0x30, 0xfd, 0xe2, 0x98, 0x25, 0xb3, 0x10, 0x91, 0x22, 0x88,\n        0x36, 0xd0, 0x94, 0xce, 0x8f, 0x96, 0xdb, 0xbd, 0xf1, 0xd2, 0x13, 0x5c, 0x83, 0x38, 0x46, 0x40,\n        0x1e, 0x42, 0xb6, 0xa3, 0xc3, 0x48, 0x7e, 0x6e, 0x6b, 0x3a, 0x28, 0x54, 0xfa, 0x85, 0xba, 0x3d,\n        0xca, 0x5e, 0x9b, 0x9f, 0x0a, 0x15, 0x79, 0x2b, 0x4e, 0xd4, 0xe5, 0xac, 0x73, 0xf3, 0xa7, 0x57,\n        0x07, 0x70, 0xc0, 0xf7, 0x8c, 0x80, 0x63, 0x0d, 0x67, 0x4a, 0xde, 0xed, 0x31, 0xc5, 0xfe, 0x18,\n        0xe3, 0xa5, 0x99, 0x77, 0x26, 0xb8, 0xb4, 0x7c, 0x11, 0x44, 0x92, 0xd9, 0x23, 0x20, 0x89, 0x2e,\n        0x37, 0x3f, 0xd1, 0x5b, 0x95, 0xbc, 0xcf, 0xcd, 0x90, 0x87, 0x97, 0xb2, 0xdc, 0xfc, 0xbe, 0x61,\n        0xf2, 0x56, 0xd3, 0xab, 0x14, 0x2a, 0x5d, 0x9e, 0x84, 0x3c, 0x39, 0x53, 0x47, 0x6d, 0x41, 0xa2,\n        0x1f, 0x2d, 0x43, 0xd8, 0xb7, 0x7b, 0xa4, 0x76, 0xc4, 0x17, 0x49, 0xec, 0x7f, 0x0c, 0x6f, 0xf6,\n        0x6c, 0xa1, 0x3b, 0x52, 0x29, 0x9d, 0x55, 0xaa, 0xfb, 0x60, 0x86, 0xb1, 0xbb, 0xcc, 0x3e, 0x5a,\n        0xcb, 0x59, 0x5f, 0xb0, 0x9c, 0xa9, 0xa0, 0x51, 0x0b, 0xf5, 0x16, 0xeb, 0x7a, 0x75, 0x2c, 0xd7,\n        0x4f, 0xae, 0xd5, 0xe9, 0xe6, 0xe7, 0xad, 0xe8, 0x74, 0xd6, 0xf4, 0xea, 0xa8, 0x50, 0x58, 0xaf\n      ]\n  \n    });\n  \n    var Galois_1 = Galois;\n  \n    /**\n     * Contains version pattern information.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Version = lite.extend(null, {\n  \n      /**\n       * The version pattern block.\n       *\n       * @public\n       * @static\n       * @type {number[]}\n       * @memberof Version\n       */\n      BLOCK: [\n        0xc94, 0x5bc, 0xa99, 0x4d3, 0xbf6, 0x762, 0x847, 0x60d, 0x928, 0xb78, 0x45d, 0xa17, 0x532,\n        0x9a6, 0x683, 0x8c9, 0x7ec, 0xec4, 0x1e1, 0xfab, 0x08e, 0xc1a, 0x33f, 0xd75, 0x250, 0x9d5,\n        0x6f0, 0x8ba, 0x79f, 0xb0b, 0x42e, 0xa64, 0x541, 0xc69\n      ]\n  \n    });\n  \n    var Version_1 = Version;\n  \n    /**\n     * Generates information for a QR code frame based on a specific value to be encoded.\n     *\n     * @param {Frame~Options} options - the options to be used\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Frame = lite.extend(function(options) {\n      var dataBlock, eccBlock, index, neccBlock1, neccBlock2;\n      var valueLength = options.value.length;\n  \n      this._badness = [];\n      this._level = ErrorCorrection_1.LEVELS[options.level];\n      this._polynomial = [];\n      this._value = options.value;\n      this._version = 0;\n      this._stringBuffer = [];\n  \n      while (this._version < 40) {\n        this._version++;\n  \n        index = ((this._level - 1) * 4) + ((this._version - 1) * 16);\n  \n        neccBlock1 = ErrorCorrection_1.BLOCKS[index++];\n        neccBlock2 = ErrorCorrection_1.BLOCKS[index++];\n        dataBlock = ErrorCorrection_1.BLOCKS[index++];\n        eccBlock = ErrorCorrection_1.BLOCKS[index];\n  \n        index = (dataBlock * (neccBlock1 + neccBlock2)) + neccBlock2 - 3 + (this._version <= 9);\n  \n        if (valueLength <= index) {\n          break;\n        }\n      }\n  \n      this._dataBlock = dataBlock;\n      this._eccBlock = eccBlock;\n      this._neccBlock1 = neccBlock1;\n      this._neccBlock2 = neccBlock2;\n  \n      /**\n       * The data width is based on version.\n       *\n       * @public\n       * @type {number}\n       * @memberof Frame#\n       */\n      // FIXME: Ensure that it fits instead of being truncated.\n      var width = this.width = 17 + (4 * this._version);\n  \n      /**\n       * The image buffer.\n       *\n       * @public\n       * @type {number[]}\n       * @memberof Frame#\n       */\n      this.buffer = Frame._createArray(width * width);\n  \n      this._ecc = Frame._createArray(dataBlock + ((dataBlock + eccBlock) * (neccBlock1 + neccBlock2)) + neccBlock2);\n      this._mask = Frame._createArray(((width * (width + 1)) + 1) / 2);\n  \n      this._insertFinders();\n      this._insertAlignments();\n  \n      // Insert single foreground cell.\n      this.buffer[8 + (width * (width - 8))] = 1;\n  \n      this._insertTimingGap();\n      this._reverseMask();\n      this._insertTimingRowAndColumn();\n      this._insertVersion();\n      this._syncMask();\n      this._convertBitStream(valueLength);\n      this._calculatePolynomial();\n      this._appendEccToData();\n      this._interleaveBlocks();\n      this._pack();\n      this._finish();\n    }, {\n  \n      _addAlignment: function(x, y) {\n        var i;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        buffer[x + (width * y)] = 1;\n  \n        for (i = -2; i < 2; i++) {\n          buffer[x + i + (width * (y - 2))] = 1;\n          buffer[x - 2 + (width * (y + i + 1))] = 1;\n          buffer[x + 2 + (width * (y + i))] = 1;\n          buffer[x + i + 1 + (width * (y + 2))] = 1;\n        }\n  \n        for (i = 0; i < 2; i++) {\n          this._setMask(x - 1, y + i);\n          this._setMask(x + 1, y - i);\n          this._setMask(x - i, y - 1);\n          this._setMask(x + i, y + 1);\n        }\n      },\n  \n      _appendData: function(data, dataLength, ecc, eccLength) {\n        var bit, i, j;\n        var polynomial = this._polynomial;\n        var stringBuffer = this._stringBuffer;\n  \n        for (i = 0; i < eccLength; i++) {\n          stringBuffer[ecc + i] = 0;\n        }\n  \n        for (i = 0; i < dataLength; i++) {\n          bit = Galois_1.LOG[stringBuffer[data + i] ^ stringBuffer[ecc]];\n  \n          if (bit !== 255) {\n            for (j = 1; j < eccLength; j++) {\n              stringBuffer[ecc + j - 1] = stringBuffer[ecc + j] ^\n                Galois_1.EXPONENT[Frame._modN(bit + polynomial[eccLength - j])];\n            }\n          } else {\n            for (j = ecc; j < ecc + eccLength; j++) {\n              stringBuffer[j] = stringBuffer[j + 1];\n            }\n          }\n  \n          stringBuffer[ecc + eccLength - 1] = bit === 255 ? 0 : Galois_1.EXPONENT[Frame._modN(bit + polynomial[0])];\n        }\n      },\n  \n      _appendEccToData: function() {\n        var i;\n        var data = 0;\n        var dataBlock = this._dataBlock;\n        var ecc = this._calculateMaxLength();\n        var eccBlock = this._eccBlock;\n  \n        for (i = 0; i < this._neccBlock1; i++) {\n          this._appendData(data, dataBlock, ecc, eccBlock);\n  \n          data += dataBlock;\n          ecc += eccBlock;\n        }\n  \n        for (i = 0; i < this._neccBlock2; i++) {\n          this._appendData(data, dataBlock + 1, ecc, eccBlock);\n  \n          data += dataBlock + 1;\n          ecc += eccBlock;\n        }\n      },\n  \n      _applyMask: function(mask) {\n        var r3x, r3y, x, y;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        switch (mask) {\n        case 0:\n          for (y = 0; y < width; y++) {\n            for (x = 0; x < width; x++) {\n              if (!((x + y) & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 1:\n          for (y = 0; y < width; y++) {\n            for (x = 0; x < width; x++) {\n              if (!(y & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 2:\n          for (y = 0; y < width; y++) {\n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!r3x && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 3:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = r3y, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!r3x && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 4:\n          for (y = 0; y < width; y++) {\n            for (r3x = 0, r3y = (y >> 1) & 1, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n                r3y = !r3y;\n              }\n  \n              if (!r3y && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 5:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!((x & y & 1) + !(!r3x | !r3y)) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 6:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!((x & y & 1) + (r3x && r3x === r3y) & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        case 7:\n          for (r3y = 0, y = 0; y < width; y++, r3y++) {\n            if (r3y === 3) {\n              r3y = 0;\n            }\n  \n            for (r3x = 0, x = 0; x < width; x++, r3x++) {\n              if (r3x === 3) {\n                r3x = 0;\n              }\n  \n              if (!((r3x && r3x === r3y) + (x + y & 1) & 1) && !this._isMasked(x, y)) {\n                buffer[x + (y * width)] ^= 1;\n              }\n            }\n          }\n  \n          break;\n        }\n      },\n  \n      _calculateMaxLength: function() {\n        return (this._dataBlock * (this._neccBlock1 + this._neccBlock2)) + this._neccBlock2;\n      },\n  \n      _calculatePolynomial: function() {\n        var i, j;\n        var eccBlock = this._eccBlock;\n        var polynomial = this._polynomial;\n  \n        polynomial[0] = 1;\n  \n        for (i = 0; i < eccBlock; i++) {\n          polynomial[i + 1] = 1;\n  \n          for (j = i; j > 0; j--) {\n            polynomial[j] = polynomial[j] ? polynomial[j - 1] ^\n              Galois_1.EXPONENT[Frame._modN(Galois_1.LOG[polynomial[j]] + i)] : polynomial[j - 1];\n          }\n  \n          polynomial[0] = Galois_1.EXPONENT[Frame._modN(Galois_1.LOG[polynomial[0]] + i)];\n        }\n  \n        // Use logs for generator polynomial to save calculation step.\n        for (i = 0; i <= eccBlock; i++) {\n          polynomial[i] = Galois_1.LOG[polynomial[i]];\n        }\n      },\n  \n      _checkBadness: function() {\n        var b, b1, h, x, y;\n        var bad = 0;\n        var badness = this._badness;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        // Blocks of same colour.\n        for (y = 0; y < width - 1; y++) {\n          for (x = 0; x < width - 1; x++) {\n            // All foreground colour.\n            if ((buffer[x + (width * y)] &&\n              buffer[x + 1 + (width * y)] &&\n              buffer[x + (width * (y + 1))] &&\n              buffer[x + 1 + (width * (y + 1))]) ||\n              // All background colour.\n              !(buffer[x + (width * y)] ||\n              buffer[x + 1 + (width * y)] ||\n              buffer[x + (width * (y + 1))] ||\n              buffer[x + 1 + (width * (y + 1))])) {\n              bad += Frame.N2;\n            }\n          }\n        }\n  \n        var bw = 0;\n  \n        // X runs.\n        for (y = 0; y < width; y++) {\n          h = 0;\n  \n          badness[0] = 0;\n  \n          for (b = 0, x = 0; x < width; x++) {\n            b1 = buffer[x + (width * y)];\n  \n            if (b === b1) {\n              badness[h]++;\n            } else {\n              badness[++h] = 1;\n            }\n  \n            b = b1;\n            bw += b ? 1 : -1;\n          }\n  \n          bad += this._getBadness(h);\n        }\n  \n        if (bw < 0) {\n          bw = -bw;\n        }\n  \n        var count = 0;\n        var big = bw;\n        big += big << 2;\n        big <<= 1;\n  \n        while (big > width * width) {\n          big -= width * width;\n          count++;\n        }\n  \n        bad += count * Frame.N4;\n  \n        // Y runs.\n        for (x = 0; x < width; x++) {\n          h = 0;\n  \n          badness[0] = 0;\n  \n          for (b = 0, y = 0; y < width; y++) {\n            b1 = buffer[x + (width * y)];\n  \n            if (b === b1) {\n              badness[h]++;\n            } else {\n              badness[++h] = 1;\n            }\n  \n            b = b1;\n          }\n  \n          bad += this._getBadness(h);\n        }\n  \n        return bad;\n      },\n  \n      _convertBitStream: function(length) {\n        var bit, i;\n        var ecc = this._ecc;\n        var version = this._version;\n  \n        // Convert string to bit stream. 8-bit data to QR-coded 8-bit data (numeric, alphanumeric, or kanji not supported).\n        for (i = 0; i < length; i++) {\n          ecc[i] = this._value.charCodeAt(i);\n        }\n  \n        var stringBuffer = this._stringBuffer = ecc.slice();\n        var maxLength = this._calculateMaxLength();\n  \n        if (length >= maxLength - 2) {\n          length = maxLength - 2;\n  \n          if (version > 9) {\n            length--;\n          }\n        }\n  \n        // Shift and re-pack to insert length prefix.\n        var index = length;\n  \n        if (version > 9) {\n          stringBuffer[index + 2] = 0;\n          stringBuffer[index + 3] = 0;\n  \n          while (index--) {\n            bit = stringBuffer[index];\n  \n            stringBuffer[index + 3] |= 255 & (bit << 4);\n            stringBuffer[index + 2] = bit >> 4;\n          }\n  \n          stringBuffer[2] |= 255 & (length << 4);\n          stringBuffer[1] = length >> 4;\n          stringBuffer[0] = 0x40 | (length >> 12);\n        } else {\n          stringBuffer[index + 1] = 0;\n          stringBuffer[index + 2] = 0;\n  \n          while (index--) {\n            bit = stringBuffer[index];\n  \n            stringBuffer[index + 2] |= 255 & (bit << 4);\n            stringBuffer[index + 1] = bit >> 4;\n          }\n  \n          stringBuffer[1] |= 255 & (length << 4);\n          stringBuffer[0] = 0x40 | (length >> 4);\n        }\n  \n        // Fill to end with pad pattern.\n        index = length + 3 - (version < 10);\n  \n        while (index < maxLength) {\n          stringBuffer[index++] = 0xec;\n          stringBuffer[index++] = 0x11;\n        }\n      },\n  \n      _getBadness: function(length) {\n        var i;\n        var badRuns = 0;\n        var badness = this._badness;\n  \n        for (i = 0; i <= length; i++) {\n          if (badness[i] >= 5) {\n            badRuns += Frame.N1 + badness[i] - 5;\n          }\n        }\n  \n        // FBFFFBF as in finder.\n        for (i = 3; i < length - 1; i += 2) {\n          if (badness[i - 2] === badness[i + 2] &&\n            badness[i + 2] === badness[i - 1] &&\n            badness[i - 1] === badness[i + 1] &&\n            badness[i - 1] * 3 === badness[i] &&\n            // Background around the foreground pattern? Not part of the specs.\n            (badness[i - 3] === 0 || i + 3 > length ||\n            badness[i - 3] * 3 >= badness[i] * 4 ||\n            badness[i + 3] * 3 >= badness[i] * 4)) {\n            badRuns += Frame.N3;\n          }\n        }\n  \n        return badRuns;\n      },\n  \n      _finish: function() {\n        // Save pre-mask copy of frame.\n        this._stringBuffer = this.buffer.slice();\n  \n        var currentMask, i;\n        var bit = 0;\n        var mask = 30000;\n  \n        /*\n         * Using for instead of while since in original Arduino code if an early mask was \"good enough\" it wouldn't try for\n         * a better one since they get more complex and take longer.\n         */\n        for (i = 0; i < 8; i++) {\n          // Returns foreground-background imbalance.\n          this._applyMask(i);\n  \n          currentMask = this._checkBadness();\n  \n          // Is current mask better than previous best?\n          if (currentMask < mask) {\n            mask = currentMask;\n            bit = i;\n          }\n  \n          // Don't increment \"i\" to a void redoing mask.\n          if (bit === 7) {\n            break;\n          }\n  \n          // Reset for next pass.\n          this.buffer = this._stringBuffer.slice();\n        }\n  \n        // Redo best mask as none were \"good enough\" (i.e. last wasn't bit).\n        if (bit !== i) {\n          this._applyMask(bit);\n        }\n  \n        // Add in final mask/ECC level bytes.\n        mask = ErrorCorrection_1.FINAL_FORMAT[bit + (this._level - 1 << 3)];\n  \n        var buffer = this.buffer;\n        var width = this.width;\n  \n        // Low byte.\n        for (i = 0; i < 8; i++, mask >>= 1) {\n          if (mask & 1) {\n            buffer[width - 1 - i + (width * 8)] = 1;\n  \n            if (i < 6) {\n              buffer[8 + (width * i)] = 1;\n            } else {\n              buffer[8 + (width * (i + 1))] = 1;\n            }\n          }\n        }\n  \n        // High byte.\n        for (i = 0; i < 7; i++, mask >>= 1) {\n          if (mask & 1) {\n            buffer[8 + (width * (width - 7 + i))] = 1;\n  \n            if (i) {\n              buffer[6 - i + (width * 8)] = 1;\n            } else {\n              buffer[7 + (width * 8)] = 1;\n            }\n          }\n        }\n      },\n  \n      _interleaveBlocks: function() {\n        var i, j;\n        var dataBlock = this._dataBlock;\n        var ecc = this._ecc;\n        var eccBlock = this._eccBlock;\n        var k = 0;\n        var maxLength = this._calculateMaxLength();\n        var neccBlock1 = this._neccBlock1;\n        var neccBlock2 = this._neccBlock2;\n        var stringBuffer = this._stringBuffer;\n  \n        for (i = 0; i < dataBlock; i++) {\n          for (j = 0; j < neccBlock1; j++) {\n            ecc[k++] = stringBuffer[i + (j * dataBlock)];\n          }\n  \n          for (j = 0; j < neccBlock2; j++) {\n            ecc[k++] = stringBuffer[(neccBlock1 * dataBlock) + i + (j * (dataBlock + 1))];\n          }\n        }\n  \n        for (j = 0; j < neccBlock2; j++) {\n          ecc[k++] = stringBuffer[(neccBlock1 * dataBlock) + i + (j * (dataBlock + 1))];\n        }\n  \n        for (i = 0; i < eccBlock; i++) {\n          for (j = 0; j < neccBlock1 + neccBlock2; j++) {\n            ecc[k++] = stringBuffer[maxLength + i + (j * eccBlock)];\n          }\n        }\n  \n        this._stringBuffer = ecc;\n      },\n  \n      _insertAlignments: function() {\n        var i, x, y;\n        var version = this._version;\n        var width = this.width;\n  \n        if (version > 1) {\n          i = Alignment_1.BLOCK[version];\n          y = width - 7;\n  \n          for (;;) {\n            x = width - 7;\n  \n            while (x > i - 3) {\n              this._addAlignment(x, y);\n  \n              if (x < i) {\n                break;\n              }\n  \n              x -= i;\n            }\n  \n            if (y <= i + 9) {\n              break;\n            }\n  \n            y -= i;\n  \n            this._addAlignment(6, y);\n            this._addAlignment(y, 6);\n          }\n        }\n      },\n  \n      _insertFinders: function() {\n        var i, j, x, y;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        for (i = 0; i < 3; i++) {\n          j = 0;\n          y = 0;\n  \n          if (i === 1) {\n            j = width - 7;\n          }\n          if (i === 2) {\n            y = width - 7;\n          }\n  \n          buffer[y + 3 + (width * (j + 3))] = 1;\n  \n          for (x = 0; x < 6; x++) {\n            buffer[y + x + (width * j)] = 1;\n            buffer[y + (width * (j + x + 1))] = 1;\n            buffer[y + 6 + (width * (j + x))] = 1;\n            buffer[y + x + 1 + (width * (j + 6))] = 1;\n          }\n  \n          for (x = 1; x < 5; x++) {\n            this._setMask(y + x, j + 1);\n            this._setMask(y + 1, j + x + 1);\n            this._setMask(y + 5, j + x);\n            this._setMask(y + x + 1, j + 5);\n          }\n  \n          for (x = 2; x < 4; x++) {\n            buffer[y + x + (width * (j + 2))] = 1;\n            buffer[y + 2 + (width * (j + x + 1))] = 1;\n            buffer[y + 4 + (width * (j + x))] = 1;\n            buffer[y + x + 1 + (width * (j + 4))] = 1;\n          }\n        }\n      },\n  \n      _insertTimingGap: function() {\n        var x, y;\n        var width = this.width;\n  \n        for (y = 0; y < 7; y++) {\n          this._setMask(7, y);\n          this._setMask(width - 8, y);\n          this._setMask(7, y + width - 7);\n        }\n  \n        for (x = 0; x < 8; x++) {\n          this._setMask(x, 7);\n          this._setMask(x + width - 8, 7);\n          this._setMask(x, width - 8);\n        }\n      },\n  \n      _insertTimingRowAndColumn: function() {\n        var x;\n        var buffer = this.buffer;\n        var width = this.width;\n  \n        for (x = 0; x < width - 14; x++) {\n          if (x & 1) {\n            this._setMask(8 + x, 6);\n            this._setMask(6, 8 + x);\n          } else {\n            buffer[8 + x + (width * 6)] = 1;\n            buffer[6 + (width * (8 + x))] = 1;\n          }\n        }\n      },\n  \n      _insertVersion: function() {\n        var i, j, x, y;\n        var buffer = this.buffer;\n        var version = this._version;\n        var width = this.width;\n  \n        if (version > 6) {\n          i = Version_1.BLOCK[version - 7];\n          j = 17;\n  \n          for (x = 0; x < 6; x++) {\n            for (y = 0; y < 3; y++, j--) {\n              if (1 & (j > 11 ? version >> j - 12 : i >> j)) {\n                buffer[5 - x + (width * (2 - y + width - 11))] = 1;\n                buffer[2 - y + width - 11 + (width * (5 - x))] = 1;\n              } else {\n                this._setMask(5 - x, 2 - y + width - 11);\n                this._setMask(2 - y + width - 11, 5 - x);\n              }\n            }\n          }\n        }\n      },\n  \n      _isMasked: function(x, y) {\n        var bit = Frame._getMaskBit(x, y);\n  \n        return this._mask[bit] === 1;\n      },\n  \n      _pack: function() {\n        var bit, i, j;\n        var k = 1;\n        var v = 1;\n        var width = this.width;\n        var x = width - 1;\n        var y = width - 1;\n  \n        // Interleaved data and ECC codes.\n        var length = ((this._dataBlock + this._eccBlock) * (this._neccBlock1 + this._neccBlock2)) + this._neccBlock2;\n  \n        for (i = 0; i < length; i++) {\n          bit = this._stringBuffer[i];\n  \n          for (j = 0; j < 8; j++, bit <<= 1) {\n            if (0x80 & bit) {\n              this.buffer[x + (width * y)] = 1;\n            }\n  \n            // Find next fill position.\n            do {\n              if (v) {\n                x--;\n              } else {\n                x++;\n  \n                if (k) {\n                  if (y !== 0) {\n                    y--;\n                  } else {\n                    x -= 2;\n                    k = !k;\n  \n                    if (x === 6) {\n                      x--;\n                      y = 9;\n                    }\n                  }\n                } else if (y !== width - 1) {\n                  y++;\n                } else {\n                  x -= 2;\n                  k = !k;\n  \n                  if (x === 6) {\n                    x--;\n                    y -= 8;\n                  }\n                }\n              }\n  \n              v = !v;\n            } while (this._isMasked(x, y));\n          }\n        }\n      },\n  \n      _reverseMask: function() {\n        var x, y;\n        var width = this.width;\n  \n        for (x = 0; x < 9; x++) {\n          this._setMask(x, 8);\n        }\n  \n        for (x = 0; x < 8; x++) {\n          this._setMask(x + width - 8, 8);\n          this._setMask(8, x);\n        }\n  \n        for (y = 0; y < 7; y++) {\n          this._setMask(8, y + width - 7);\n        }\n      },\n  \n      _setMask: function(x, y) {\n        var bit = Frame._getMaskBit(x, y);\n  \n        this._mask[bit] = 1;\n      },\n  \n      _syncMask: function() {\n        var x, y;\n        var width = this.width;\n  \n        for (y = 0; y < width; y++) {\n          for (x = 0; x <= y; x++) {\n            if (this.buffer[x + (width * y)]) {\n              this._setMask(x, y);\n            }\n          }\n        }\n      }\n  \n    }, {\n  \n      _createArray: function(length) {\n        var i;\n        var array = [];\n  \n        for (i = 0; i < length; i++) {\n          array[i] = 0;\n        }\n  \n        return array;\n      },\n  \n      _getMaskBit: function(x, y) {\n        var bit;\n  \n        if (x > y) {\n          bit = x;\n          x = y;\n          y = bit;\n        }\n  \n        bit = y;\n        bit += y * y;\n        bit >>= 1;\n        bit += x;\n  \n        return bit;\n      },\n  \n      _modN: function(x) {\n        while (x >= 255) {\n          x -= 255;\n          x = (x >> 8) + (x & 255);\n        }\n  \n        return x;\n      },\n  \n      // *Badness* coefficients.\n      N1: 3,\n      N2: 3,\n      N3: 40,\n      N4: 10\n  \n    });\n  \n    var Frame_1 = Frame;\n  \n    /**\n     * The options used by {@link Frame}.\n     *\n     * @typedef {Object} Frame~Options\n     * @property {string} level - The ECC level to be used.\n     * @property {string} value - The value to be encoded.\n     */\n  \n    /**\n     * An implementation of {@link Renderer} for working with <code>img</code> elements.\n     *\n     * This depends on {@link CanvasRenderer} being executed first as this implementation simply applies the data URL from\n     * the rendered <code>canvas</code> element as the <code>src</code> for the <code>img</code> element being rendered.\n     *\n     * @public\n     * @class\n     * @extends Renderer\n     */\n    var ImageRenderer = Renderer_1.extend({\n  \n      /**\n       * @override\n       */\n      draw: function() {\n        this.element.src = this.qrious.toDataURL();\n      },\n  \n      /**\n       * @override\n       */\n      reset: function() {\n        this.element.src = '';\n      },\n  \n      /**\n       * @override\n       */\n      resize: function() {\n        var element = this.element;\n  \n        element.width = element.height = this.qrious.size;\n      }\n  \n    });\n  \n    var ImageRenderer_1 = ImageRenderer;\n  \n    /**\n     * Defines an available option while also configuring how values are applied to the target object.\n     *\n     * Optionally, a default value can be specified as well a value transformer for greater control over how the option\n     * value is applied.\n     *\n     * If no value transformer is specified, then any specified option will be applied directly. All values are maintained\n     * on the target object itself as a field using the option name prefixed with a single underscore.\n     *\n     * When an option is specified as modifiable, the {@link OptionManager} will be required to include a setter for the\n     * property that is defined on the target object that uses the option name.\n     *\n     * @param {string} name - the name to be used\n     * @param {boolean} [modifiable] - <code>true</code> if the property defined on target objects should include a setter;\n     * otherwise <code>false</code>\n     * @param {*} [defaultValue] - the default value to be used\n     * @param {Option~ValueTransformer} [valueTransformer] - the value transformer to be used\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Option = lite.extend(function(name, modifiable, defaultValue, valueTransformer) {\n      /**\n       * The name for this {@link Option}.\n       *\n       * @public\n       * @type {string}\n       * @memberof Option#\n       */\n      this.name = name;\n  \n      /**\n       * Whether a setter should be included on the property defined on target objects for this {@link Option}.\n       *\n       * @public\n       * @type {boolean}\n       * @memberof Option#\n       */\n      this.modifiable = Boolean(modifiable);\n  \n      /**\n       * The default value for this {@link Option}.\n       *\n       * @public\n       * @type {*}\n       * @memberof Option#\n       */\n      this.defaultValue = defaultValue;\n  \n      this._valueTransformer = valueTransformer;\n    }, {\n  \n      /**\n       * Transforms the specified <code>value</code> so that it can be applied for this {@link Option}.\n       *\n       * If a value transformer has been specified for this {@link Option}, it will be called upon to transform\n       * <code>value</code>. Otherwise, <code>value</code> will be returned directly.\n       *\n       * @param {*} value - the value to be transformed\n       * @return {*} The transformed value or <code>value</code> if no value transformer is specified.\n       * @public\n       * @memberof Option#\n       */\n      transform: function(value) {\n        var transformer = this._valueTransformer;\n        if (typeof transformer === 'function') {\n          return transformer(value, this);\n        }\n  \n        return value;\n      }\n  \n    });\n  \n    var Option_1 = Option;\n  \n    /**\n     * Returns a transformed value for the specified <code>value</code> to be applied for the <code>option</code> provided.\n     *\n     * @callback Option~ValueTransformer\n     * @param {*} value - the value to be transformed\n     * @param {Option} option - the {@link Option} for which <code>value</code> is being transformed\n     * @return {*} The transform value.\n     */\n  \n    /**\n     * Contains utility methods that are useful throughout the library.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Utilities = lite.extend(null, {\n  \n      /**\n       * Returns the absolute value of a given number.\n       *\n       * This method is simply a convenient shorthand for <code>Math.abs</code> while ensuring that nulls are returned as\n       * <code>null</code> instead of zero.\n       *\n       * @param {number} value - the number whose absolute value is to be returned\n       * @return {number} The absolute value of <code>value</code> or <code>null</code> if <code>value</code> is\n       * <code>null</code>.\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      abs: function(value) {\n        return value != null ? Math.abs(value) : null;\n      },\n  \n      /**\n       * Returns whether the specified <code>object</code> has a property with the specified <code>name</code> as an own\n       * (not inherited) property.\n       *\n       * @param {Object} object - the object on which the property is to be checked\n       * @param {string} name - the name of the property to be checked\n       * @return {boolean} <code>true</code> if <code>object</code> has an own property with <code>name</code>.\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      hasOwn: function(object, name) {\n        return Object.prototype.hasOwnProperty.call(object, name);\n      },\n  \n      /**\n       * A non-operation method that does absolutely nothing.\n       *\n       * @return {void}\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      noop: function() {},\n  \n      /**\n       * Transforms the specified <code>string</code> to upper case while remaining null-safe.\n       *\n       * @param {string} string - the string to be transformed to upper case\n       * @return {string} <code>string</code> transformed to upper case if <code>string</code> is not <code>null</code>.\n       * @public\n       * @static\n       * @memberof Utilities\n       */\n      toUpperCase: function(string) {\n        return string != null ? string.toUpperCase() : null;\n      }\n  \n    });\n  \n    var Utilities_1 = Utilities;\n  \n    /**\n     * Manages multiple {@link Option} instances that are intended to be used by multiple implementations.\n     *\n     * Although the option definitions are shared between targets, the values are maintained on the targets themselves.\n     *\n     * @param {Option[]} options - the options to be used\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var OptionManager = lite.extend(function(options) {\n      /**\n       * The available options for this {@link OptionManager}.\n       *\n       * @public\n       * @type {Object.<string, Option>}\n       * @memberof OptionManager#\n       */\n      this.options = {};\n  \n      options.forEach(function(option) {\n        this.options[option.name] = option;\n      }, this);\n    }, {\n  \n      /**\n       * Returns whether an option with the specified <code>name</code> is available.\n       *\n       * @param {string} name - the name of the {@link Option} whose existence is to be checked\n       * @return {boolean} <code>true</code> if an {@link Option} exists with <code>name</code>; otherwise\n       * <code>false</code>.\n       * @public\n       * @memberof OptionManager#\n       */\n      exists: function(name) {\n        return this.options[name] != null;\n      },\n  \n      /**\n       * Returns the value of the option with the specified <code>name</code> on the <code>target</code> object provided.\n       *\n       * @param {string} name - the name of the {@link Option} whose value on <code>target</code> is to be returned\n       * @param {Object} target - the object from which the value of the named {@link Option} is to be returned\n       * @return {*} The value of the {@link Option} with <code>name</code> on <code>target</code>.\n       * @public\n       * @memberof OptionManager#\n       */\n      get: function(name, target) {\n        return OptionManager._get(this.options[name], target);\n      },\n  \n      /**\n       * Returns a copy of all of the available options on the <code>target</code> object provided.\n       *\n       * @param {Object} target - the object from which the option name/value pairs are to be returned\n       * @return {Object.<string, *>} A hash containing the name/value pairs of all options on <code>target</code>.\n       * @public\n       * @memberof OptionManager#\n       */\n      getAll: function(target) {\n        var name;\n        var options = this.options;\n        var result = {};\n  \n        for (name in options) {\n          if (Utilities_1.hasOwn(options, name)) {\n            result[name] = OptionManager._get(options[name], target);\n          }\n        }\n  \n        return result;\n      },\n  \n      /**\n       * Initializes the available options for the <code>target</code> object provided and then applies the initial values\n       * within the speciifed <code>options</code>.\n       *\n       * This method will throw an error if any of the names within <code>options</code> does not match an available option.\n       *\n       * This involves setting the default values and defining properties for all of the available options on\n       * <code>target</code> before finally calling {@link OptionMananger#setAll} with <code>options</code> and\n       * <code>target</code>. Any options that are configured to be modifiable will have a setter included in their defined\n       * property that will allow its corresponding value to be modified.\n       *\n       * If a change handler is specified, it will be called whenever the value changes on <code>target</code> for a\n       * modifiable option, but only when done so via the defined property's setter.\n       *\n       * @param {Object.<string, *>} options - the name/value pairs of the initial options to be set\n       * @param {Object} target - the object on which the options are to be initialized\n       * @param {Function} [changeHandler] - the function to be called whenever the value of an modifiable option changes on\n       * <code>target</code>\n       * @return {void}\n       * @throws {Error} If <code>options</code> contains an invalid option name.\n       * @public\n       * @memberof OptionManager#\n       */\n      init: function(options, target, changeHandler) {\n        if (typeof changeHandler !== 'function') {\n          changeHandler = Utilities_1.noop;\n        }\n  \n        var name, option;\n  \n        for (name in this.options) {\n          if (Utilities_1.hasOwn(this.options, name)) {\n            option = this.options[name];\n  \n            OptionManager._set(option, option.defaultValue, target);\n            OptionManager._createAccessor(option, target, changeHandler);\n          }\n        }\n  \n        this._setAll(options, target, true);\n      },\n  \n      /**\n       * Sets the value of the option with the specified <code>name</code> on the <code>target</code> object provided to\n       * <code>value</code>.\n       *\n       * This method will throw an error if <code>name</code> does not match an available option or matches an option that\n       * cannot be modified.\n       *\n       * If <code>value</code> is <code>null</code> and the {@link Option} has a default value configured, then that default\n       * value will be used instead. If the {@link Option} also has a value transformer configured, it will be used to\n       * transform whichever value was determined to be used.\n       *\n       * This method returns whether the value of the underlying field on <code>target</code> was changed as a result.\n       *\n       * @param {string} name - the name of the {@link Option} whose value is to be set\n       * @param {*} value - the value to be set for the named {@link Option} on <code>target</code>\n       * @param {Object} target - the object on which <code>value</code> is to be set for the named {@link Option}\n       * @return {boolean} <code>true</code> if the underlying field on <code>target</code> was changed; otherwise\n       * <code>false</code>.\n       * @throws {Error} If <code>name</code> is invalid or is for an option that cannot be modified.\n       * @public\n       * @memberof OptionManager#\n       */\n      set: function(name, value, target) {\n        return this._set(name, value, target);\n      },\n  \n      /**\n       * Sets all of the specified <code>options</code> on the <code>target</code> object provided to their corresponding\n       * values.\n       *\n       * This method will throw an error if any of the names within <code>options</code> does not match an available option\n       * or matches an option that cannot be modified.\n       *\n       * If any value within <code>options</code> is <code>null</code> and the corresponding {@link Option} has a default\n       * value configured, then that default value will be used instead. If an {@link Option} also has a value transformer\n       * configured, it will be used to transform whichever value was determined to be used.\n       *\n       * This method returns whether the value for any of the underlying fields on <code>target</code> were changed as a\n       * result.\n       *\n       * @param {Object.<string, *>} options - the name/value pairs of options to be set\n       * @param {Object} target - the object on which the options are to be set\n       * @return {boolean} <code>true</code> if any of the underlying fields on <code>target</code> were changed; otherwise\n       * <code>false</code>.\n       * @throws {Error} If <code>options</code> contains an invalid option name or an option that cannot be modiifed.\n       * @public\n       * @memberof OptionManager#\n       */\n      setAll: function(options, target) {\n        return this._setAll(options, target);\n      },\n  \n      _set: function(name, value, target, allowUnmodifiable) {\n        var option = this.options[name];\n        if (!option) {\n          throw new Error('Invalid option: ' + name);\n        }\n        if (!option.modifiable && !allowUnmodifiable) {\n          throw new Error('Option cannot be modified: ' + name);\n        }\n  \n        return OptionManager._set(option, value, target);\n      },\n  \n      _setAll: function(options, target, allowUnmodifiable) {\n        if (!options) {\n          return false;\n        }\n  \n        var name;\n        var changed = false;\n  \n        for (name in options) {\n          if (Utilities_1.hasOwn(options, name) && this._set(name, options[name], target, allowUnmodifiable)) {\n            changed = true;\n          }\n        }\n  \n        return changed;\n      }\n  \n    }, {\n  \n      _createAccessor: function(option, target, changeHandler) {\n        var descriptor = {\n          get: function() {\n            return OptionManager._get(option, target);\n          }\n        };\n  \n        if (option.modifiable) {\n          descriptor.set = function(value) {\n            if (OptionManager._set(option, value, target)) {\n              changeHandler(value, option);\n            }\n          };\n        }\n  \n        Object.defineProperty(target, option.name, descriptor);\n      },\n  \n      _get: function(option, target) {\n        return target['_' + option.name];\n      },\n  \n      _set: function(option, value, target) {\n        var fieldName = '_' + option.name;\n        var oldValue = target[fieldName];\n        var newValue = option.transform(value != null ? value : option.defaultValue);\n  \n        target[fieldName] = newValue;\n  \n        return newValue !== oldValue;\n      }\n  \n    });\n  \n    var OptionManager_1 = OptionManager;\n  \n    /**\n     * Called whenever the value of a modifiable {@link Option} is changed on a target object via the defined property's\n     * setter.\n     *\n     * @callback OptionManager~ChangeHandler\n     * @param {*} value - the new value for <code>option</code> on the target object\n     * @param {Option} option - the modifable {@link Option} whose value has changed on the target object.\n     * @return {void}\n     */\n  \n    /**\n     * A basic manager for {@link Service} implementations that are mapped to simple names.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var ServiceManager = lite.extend(function() {\n      this._services = {};\n    }, {\n  \n      /**\n       * Returns the {@link Service} being managed with the specified <code>name</code>.\n       *\n       * @param {string} name - the name of the {@link Service} to be returned\n       * @return {Service} The {@link Service} is being managed with <code>name</code>.\n       * @throws {Error} If no {@link Service} is being managed with <code>name</code>.\n       * @public\n       * @memberof ServiceManager#\n       */\n      getService: function(name) {\n        var service = this._services[name];\n        if (!service) {\n          throw new Error('Service is not being managed with name: ' + name);\n        }\n  \n        return service;\n      },\n  \n      /**\n       * Sets the {@link Service} implementation to be managed for the specified <code>name</code> to the\n       * <code>service</code> provided.\n       *\n       * @param {string} name - the name of the {@link Service} to be managed with <code>name</code>\n       * @param {Service} service - the {@link Service} implementation to be managed\n       * @return {void}\n       * @throws {Error} If a {@link Service} is already being managed with the same <code>name</code>.\n       * @public\n       * @memberof ServiceManager#\n       */\n      setService: function(name, service) {\n        if (this._services[name]) {\n          throw new Error('Service is already managed with name: ' + name);\n        }\n  \n        if (service) {\n          this._services[name] = service;\n        }\n      }\n  \n    });\n  \n    var ServiceManager_1 = ServiceManager;\n  \n    var optionManager = new OptionManager_1([\n      new Option_1('background', true, 'white'),\n      new Option_1('backgroundAlpha', true, 1, Utilities_1.abs),\n      new Option_1('element'),\n      new Option_1('foreground', true, 'black'),\n      new Option_1('foregroundAlpha', true, 1, Utilities_1.abs),\n      new Option_1('level', true, 'L', Utilities_1.toUpperCase),\n      new Option_1('mime', true, 'image/png'),\n      new Option_1('padding', true, null, Utilities_1.abs),\n      new Option_1('size', true, 100, Utilities_1.abs),\n      new Option_1('value', true, '')\n    ]);\n    var serviceManager = new ServiceManager_1();\n  \n    /**\n     * Enables configuration of a QR code generator which uses HTML5 <code>canvas</code> for rendering.\n     *\n     * @param {QRious~Options} [options] - the options to be used\n     * @throws {Error} If any <code>options</code> are invalid.\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var QRious = lite.extend(function(options) {\n      optionManager.init(options, this, this.update.bind(this));\n  \n      var element = optionManager.get('element', this);\n      var elementService = serviceManager.getService('element');\n      var canvas = element && elementService.isCanvas(element) ? element : elementService.createCanvas();\n      var image = element && elementService.isImage(element) ? element : elementService.createImage();\n  \n      this._canvasRenderer = new CanvasRenderer_1(this, canvas, true);\n      this._imageRenderer = new ImageRenderer_1(this, image, image === element);\n  \n      this.update();\n    }, {\n  \n      /**\n       * Returns all of the options configured for this {@link QRious}.\n       *\n       * Any changes made to the returned object will not be reflected in the options themselves or their corresponding\n       * underlying fields.\n       *\n       * @return {Object.<string, *>} A copy of the applied options.\n       * @public\n       * @memberof QRious#\n       */\n      get: function() {\n        return optionManager.getAll(this);\n      },\n  \n      /**\n       * Sets all of the specified <code>options</code> and automatically updates this {@link QRious} if any of the\n       * underlying fields are changed as a result.\n       *\n       * This is the preferred method for updating multiple options at one time to avoid unnecessary updates between\n       * changes.\n       *\n       * @param {QRious~Options} options - the options to be set\n       * @return {void}\n       * @throws {Error} If any <code>options</code> are invalid or cannot be modified.\n       * @public\n       * @memberof QRious#\n       */\n      set: function(options) {\n        if (optionManager.setAll(options, this)) {\n          this.update();\n        }\n      },\n  \n      /**\n       * Returns the image data URI for the generated QR code using the <code>mime</code> provided.\n       *\n       * @param {string} [mime] - the MIME type for the image\n       * @return {string} The image data URI for the QR code.\n       * @public\n       * @memberof QRious#\n       */\n      toDataURL: function(mime) {\n        return this.canvas.toDataURL(mime || this.mime);\n      },\n  \n      /**\n       * Updates this {@link QRious} by generating a new {@link Frame} and re-rendering the QR code.\n       *\n       * @return {void}\n       * @protected\n       * @memberof QRious#\n       */\n      update: function() {\n        var frame = new Frame_1({\n          level: this.level,\n          value: this.value\n        });\n  \n        this._canvasRenderer.render(frame);\n        this._imageRenderer.render(frame);\n      }\n  \n    }, {\n  \n      /**\n       * Configures the <code>service</code> provided to be used by all {@link QRious} instances.\n       *\n       * @param {Service} service - the {@link Service} to be configured\n       * @return {void}\n       * @throws {Error} If a {@link Service} has already been configured with the same name.\n       * @public\n       * @static\n       * @memberof QRious\n       */\n      use: function(service) {\n        serviceManager.setService(service.getName(), service);\n      }\n  \n    });\n  \n    Object.defineProperties(QRious.prototype, {\n  \n      canvas: {\n        /**\n         * Returns the <code>canvas</code> element being used to render the QR code for this {@link QRious}.\n         *\n         * @return {*} The <code>canvas</code> element.\n         * @public\n         * @memberof QRious#\n         * @alias canvas\n         */\n        get: function() {\n          return this._canvasRenderer.getElement();\n        }\n      },\n  \n      image: {\n        /**\n         * Returns the <code>img</code> element being used to render the QR code for this {@link QRious}.\n         *\n         * @return {*} The <code>img</code> element.\n         * @public\n         * @memberof QRious#\n         * @alias image\n         */\n        get: function() {\n          return this._imageRenderer.getElement();\n        }\n      }\n  \n    });\n  \n    var QRious_1$2 = QRious;\n  \n    /**\n     * The options used by {@link QRious}.\n     *\n     * @typedef {Object} QRious~Options\n     * @property {string} [background=\"white\"] - The background color to be applied to the QR code.\n     * @property {number} [backgroundAlpha=1] - The background alpha to be applied to the QR code.\n     * @property {*} [element] - The element to be used to render the QR code which may either be an <code>canvas</code> or\n     * <code>img</code>. The element(s) will be created if needed.\n     * @property {string} [foreground=\"black\"] - The foreground color to be applied to the QR code.\n     * @property {number} [foregroundAlpha=1] - The foreground alpha to be applied to the QR code.\n     * @property {string} [level=\"L\"] - The error correction level to be applied to the QR code.\n     * @property {string} [mime=\"image/png\"] - The MIME type to be used to render the image for the QR code.\n     * @property {number} [padding] - The padding for the QR code in pixels.\n     * @property {number} [size=100] - The size of the QR code in pixels.\n     * @property {string} [value=\"\"] - The value to be encoded within the QR code.\n     */\n  \n    var index = QRious_1$2;\n  \n    /**\n     * Defines a service contract that must be met by all implementations.\n     *\n     * @public\n     * @class\n     * @extends Nevis\n     */\n    var Service = lite.extend({\n  \n      /**\n       * Returns the name of this {@link Service}.\n       *\n       * @return {string} The service name.\n       * @public\n       * @abstract\n       * @memberof Service#\n       */\n      getName: function() {}\n  \n    });\n  \n    var Service_1 = Service;\n  \n    /**\n     * A service for working with elements.\n     *\n     * @public\n     * @class\n     * @extends Service\n     */\n    var ElementService = Service_1.extend({\n  \n      /**\n       * Creates an instance of a canvas element.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {*} The newly created canvas element.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      createCanvas: function() {},\n  \n      /**\n       * Creates an instance of a image element.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @return {*} The newly created image element.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      createImage: function() {},\n  \n      /**\n       * @override\n       */\n      getName: function() {\n        return 'element';\n      },\n  \n      /**\n       * Returns whether the specified <code>element</code> is a canvas.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @param {*} element - the element to be checked\n       * @return {boolean} <code>true</code> if <code>element</code> is a canvas; otherwise <code>false</code>.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      isCanvas: function(element) {},\n  \n      /**\n       * Returns whether the specified <code>element</code> is an image.\n       *\n       * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n       *\n       * @param {*} element - the element to be checked\n       * @return {boolean} <code>true</code> if <code>element</code> is an image; otherwise <code>false</code>.\n       * @public\n       * @abstract\n       * @memberof ElementService#\n       */\n      isImage: function(element) {}\n  \n    });\n  \n    var ElementService_1 = ElementService;\n  \n    /**\n     * An implementation of {@link ElementService} intended for use within a browser environment.\n     *\n     * @public\n     * @class\n     * @extends ElementService\n     */\n    var BrowserElementService = ElementService_1.extend({\n  \n      /**\n       * @override\n       */\n      createCanvas: function() {\n        return document.createElement('canvas');\n      },\n  \n      /**\n       * @override\n       */\n      createImage: function() {\n        return document.createElement('img');\n      },\n  \n      /**\n       * @override\n       */\n      isCanvas: function(element) {\n        return element instanceof HTMLCanvasElement;\n      },\n  \n      /**\n       * @override\n       */\n      isImage: function(element) {\n        return element instanceof HTMLImageElement;\n      }\n  \n    });\n  \n    var BrowserElementService_1 = BrowserElementService;\n  \n    index.use(new BrowserElementService_1());\n  \n    var QRious_1 = index;\n  \n    return QRious_1;\n  \n  })));","<script>\n  import { onMount } from 'svelte';\n  import QrCode from './qrcode';\n\n  const QRcode = new QrCode();\n\n  export let errorCorrection = \"L\";\n  export let background = \"#fff\";\n  export let color = \"#000\";\n  export let size = \"200\";\n  export let value = \"\";\n  export let padding = 0;\n  export let className = \"qrcode\";\n\n  let image = '';\n\n  function generateQrCode() {\n    QRcode.set({\n      background,\n      foreground: color,\n      level: errorCorrection,\n      padding,\n      size,\n      value,\n    });\n    \n    image = QRcode.toDataURL('image/jpeg');\n  }\n\n  $: {\n    if(value) {\n      generateQrCode();\n    }\n  }\n\n  onMount(() => {\n    generateQrCode();\n  });\n\n</script>\n\n<img src={image} alt={value} class={className}/>","import request from \"../utils/request\";\n/**\n * 手机登录\n * - phone: 手机号码\n * - password: 密码\n * - countrycode: 国家码,用于国外手机号登录,例如美国传入:1\n * - md5_password: md5加密后的密码,传入后 password 将失效\n * - captcha: 验证码,使用 /captcha/sent接口传入手机号获取验证码,调用此接口传入验证码,可使用验证码登录,传入后 password 参数将失效\n * @param {Object} params\n * @param {string} params.phone\n * @param {string} params.password\n * @param {string=} params.countrycode\n * @param {string=} params.md5_password\n * @param {string=} params.captcha\n */\nexport function loginWithPhone(params) {\n  return request({\n    url: \"/login/cellphone\",\n    method: \"post\",\n    params,\n  });\n}\n\n/**\n * 邮箱登录\n * - email: 163 网易邮箱\n * - password: 密码\n * - md5_password: md5加密后的密码,传入后 password 将失效\n * @param {Object} params\n * @param {string} params.email\n * @param {string} params.password\n * @param {string=} params.md5_password\n */\nexport function loginWithEmail(params) {\n  return request({\n    url: \"/login\",\n    method: \"post\",\n    params,\n  });\n}\n\n/**\n * 二维码key生成接口\n */\nexport function loginQrCodeKey() {\n  return request({\n    url: \"/login/qr/key\",\n    method: \"get\",\n    params: {\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 二维码生成接口\n * 说明: 调用此接口传入上一个接口生成的key可生成二维码图片的base64和二维码信息,\n * 可使用base64展示图片,或者使用二维码信息内容自行使用第三方二维码生产库渲染二维码\n * @param {Object} params\n * @param {string} params.key\n * @param {string=} params.qrimg 传入后会额外返回二维码图片base64编码\n */\nexport function loginQrCodeCreate(params) {\n  return request({\n    url: \"/login/qr/create\",\n    method: \"get\",\n    params: {\n      ...params,\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n/**\n * 二维码检测扫码状态接口\n * 说明: 轮询此接口可获取二维码扫码状态,800为二维码过期,801为等待扫码,802为待确认,803为授权登录成功(803状态码下会返回cookies)\n * @param {string} key\n */\nexport function loginQrCodeCheck(key) {\n  return request({\n    url: \"/login/qr/check\",\n    method: \"get\",\n    params: {\n      key,\n      timestamp: new Date().getTime(),\n    },\n    isHideLoading: true,\n  });\n}\n\n/**\n * 刷新登录\n * 说明 : 调用此接口 , 可刷新登录状态\n * - 调用例子 : /login/refresh\n */\nexport function refreshCookie() {\n  return request({\n    url: \"/login/refresh\",\n    method: \"post\",\n  });\n}\n\n/**\n * 退出登录\n * 说明 : 调用此接口 , 可退出登录\n */\nexport function logout() {\n  return request({\n    url: \"/logout\",\n    method: \"post\",\n  });\n}\n","<script>\n  import { onMount, onDestroy } from \"svelte\";\n  import { pop, search } from \"svelte-stack-router\";\n  import md5 from \"crypto-js/md5\";\n  import { LinksLine } from \"svelte-remixicon\";\n  import QrCode from \"svelte-qrcode\";\n\n  import { NavBar, Input, Button } from \"../components/base\";\n\n  import { isHomePageStore, isLoginStore } from \"../store/common\";\n  import { playIsMinStore } from \"../store/play\";\n  import {\n    userInfoStore,\n    userLikeSongIdsStore,\n    userLikeListIdStore,\n  } from \"../store/user\";\n\n  import {\n    loginWithPhone,\n    loginWithEmail,\n    loginQrCodeKey,\n    loginQrCodeCreate,\n    loginQrCodeCheck,\n  } from \"../api/auth\";\n  import {\n    userPlaylist,\n    userLikedSongsIDs,\n    likedArtists,\n    userAccount,\n    sendSmsCode,\n  } from \"../api/user\";\n\n  import { setCookies, Alert, Toast, parseQuery } from \"../utils/common\";\n\n  let { type = \"phone\" } = parseQuery($search);\n\n  let timerLogin = null;\n\n  let phone = \"\";\n  let phone_code = \"\";\n  let phone_password = \"\";\n\n  let email = \"\";\n  let email_password = \"\";\n\n  $: phoneType = \"code\"; //code--短信验证,pwd--密码验证\n  let tiptext =\n    \"您的密码会进行 MD5 加密后再传输到网易云 API。本应用不会传输您的账号数据到任何非网易云音乐官方服务器。\";\n  $: loginType =\n    type === \"qr\" ? \"二维码登录\" : type === \"phone\" ? \"手机号登录\" : \"邮箱登录\";\n  $: qrImg = \"\";\n  $: qrTip = \"请扫码\";\n  $: btnText = \"获取验证码\";\n\n  function isPhone(phone) {\n    //手机号正则\n    let mPattern = /^1[3-9]\\d{9}$/;\n    //返回 true or false\n    return mPattern.test(phone);\n  }\n\n  function loginSuccFun(res) {\n    //登录成功\n    setCookies(res.cookie);\n    isLoginStore.set(true);\n    userInfoStore.set(res);\n    localStorage.setItem(\"isLogin\", true);\n    localStorage.setItem(\"userInfo\", JSON.stringify(res));\n    setTimeout(() => pop(), 100);\n    // userPlaylistFun(res);\n  }\n  //手机号登录\n  async function doPhoneLogin() {\n    if (!isPhone(phone)) {\n      return Toast(\"请输入正确的手机号\");\n    }\n    if (phoneType === \"code\" && phone_code.length != 4) {\n      return Toast(\"请输入四位验证码\");\n    }\n\n    let params = {};\n    if (phoneType === \"code\") {\n      //验证码验证\n      params = {\n        phone,\n        captcha: phone_code,\n        password: \"fakePassword\",\n      };\n    } else {\n      //密码验证\n      params = {\n        phone,\n        md5_password: phone_password,\n        password: \"fakePassword\",\n      };\n    }\n    const res = await loginWithPhone(params);\n    if (res.code === 200) {\n      loginSuccFun(res);\n    } else {\n      Alert(\"登录不成功, 请重新登录。\");\n    }\n  }\n  //邮箱登录\n  async function doEmailLogin() {\n    const res = await loginWithEmail({\n      email,\n      md5_password: email_password,\n      password: \"fakePassword\",\n    });\n    if (res.code === 200) {\n      loginSuccFun(res);\n    } else {\n      Alert(\"登录不成功, 请重新登录。\");\n    }\n  }\n  onMount(() => {\n    isHomePageStore.set(false);\n    playIsMinStore.set(false);\n  });\n  onDestroy(() => {\n    playIsMinStore.set(true);\n  });\n  function set_phone_password(e) {\n    phone_password = md5(e.detail.value).toString();\n  }\n  function set_phone_code(e) {\n    phone_code = e.detail.value.toString();\n  }\n  function set_email_password(e) {\n    email_password = md5(e.detail.value).toString();\n  }\n  function getPhone(e) {\n    phone = e.detail.value;\n  }\n  function set_email_assress(e) {\n    email = e.detail.value;\n  }\n\n  // async function userPlaylistFun(login) {\n  //   //获取用户收藏歌单ID列表,用于判断是否已经收藏\n  //   const res = await userPlaylist({\n  //     uid: login.account.id,\n  //     limit: 10000,\n  //     offset: 0,\n  //   });\n  //   if (res.code === 200) {\n  //     let ids = [];\n  //     for (let i = 0; i < res.playlist.length; i++) {\n  //       ids.push(res.playlist[i].id);\n  //     }\n\n  //     if (\n  //       res.playlist[0].creator.userId === $userInfoStore.account.id &&\n  //       res.playlist[0].name.substr(-5) === \"喜欢的音乐\"\n  //     ) {\n  //       userLikeListIdStore.set(res.playlist[0].id);\n  //       localStorage.setItem(\"userLikeListId\", res.playlist[0].id);\n  //     }\n\n  //     localStorage.setItem(\"usePlayListIds\", JSON.stringify(ids));\n  //     userLikedSongsIDsFun(login);\n  //   } else {\n  //     Alert(\"获取收藏歌单失败\");\n  //   }\n  // }\n  // async function userLikedSongsIDsFun(login) {\n  //   //获取用户喜爱歌曲ID列表,用于判断是否已经收藏\n  //   const res = await userLikedSongsIDs(login.account.id);\n  //   if (res.code === 200) {\n  //     let ids = [];\n  //     for (let i = 0; i < res.ids.length; i++) {\n  //       ids.push(res.ids[i]);\n  //     }\n  //     isLoginStore.set(true);\n  //     localStorage.setItem(\"isLogin\", true);\n  //     userLikeSongIdsStore.set(JSON.stringify(ids));\n  //     localStorage.setItem(\"useLoveSongIds\", JSON.stringify(ids));\n  //     likedArtistsFun();\n  //   } else {\n  //     alert(\"获取喜爱歌曲失败\");\n  //   }\n  // }\n  // //获取收藏的歌手\n  // async function likedArtistsFun() {\n  //   const res = await likedArtists({ limit: 2000 });\n  //   if (res.code === 200) {\n  //     let ids = [];\n  //     for (let i = 0; i < res.data.length; i++) {\n  //       ids.push(res.data[i].id);\n  //     }\n  //     localStorage.setItem(\"useLoveSongerIds\", JSON.stringify(ids));\n  //     setTimeout(() => {\n  //       pop();\n  //     }, 100);\n  //   } else {\n  //     alert(\"获取喜爱歌手失败\");\n  //   }\n  // }\n  async function qrLoginFun() {\n    type = \"qr\";\n    const res = await loginQrCodeKey();\n    if (res.code === 200) {\n      loginQrCodeCreateFun(res.data.unikey);\n    }\n  }\n  async function loginQrCodeCreateFun(key) {\n    const res = await loginQrCodeCreate({\n      key,\n    });\n    if (res.code === 200) {\n      qrImg = res.data.qrurl;\n      timerLogin = setInterval(() => {\n        loginQrCodeCheckFun(key);\n      }, 1000);\n    }\n  }\n  async function loginQrCodeCheckFun(key) {\n    const res = await loginQrCodeCheck(key);\n    if (res.code === 800) {\n      qrTip = res.message;\n    } else if (res.code === 801) {\n      qrTip = res.message;\n    } else if (res.code === 802) {\n      qrTip = res.message;\n    } else if (res.code === 803) {\n      clearInterval(timerLogin);\n      setTimeout(() => {\n        userAccountFun(res.cookie);\n      }, 300);\n    } else {\n      clearInterval(timerLogin);\n    }\n  }\n  async function userAccountFun(cookie) {\n    const res = await userAccount(cookie);\n    if (res.code === 200) {\n      let newres = res;\n      newres.cookie = cookie;\n      loginSuccFun(newres);\n    }\n  }\n  async function sendSmsCodeFun() {\n    if (btnText === \"获取验证码\") {\n      if (!isPhone(phone)) {\n        Toast(\"请输入正确的手机号\");\n      } else {\n        const res = await sendSmsCode(phone);\n        if (res.code === 200) {\n          Toast(\n            \"验证码已发送至\" +\n              phone.substring(phone.length - 4) +\n              \",请注意查收!\",\n            2000\n          );\n          setinter60();\n        }\n      }\n    }\n  }\n  function setinter60() {\n    let time = 59;\n    let myTimer = setInterval(() => {\n      time--;\n      if (time === 0) {\n        clearInterval(myTimer);\n        btnText = \"获取验证码\";\n      } else {\n        btnText = time + \"s 后重发\";\n      }\n    }, 1000);\n  }\n</script>\n\n<NavBar title={loginType} />\n<div class=\"login-page\">\n  <div class=\"desc\">请使用网易云音乐账号登录</div>\n  <div class=\"lead\">\n    <div class=\"netease\">\n      <img src=\"/images/nm_logo.png\" alt=\"\" />\n    </div>\n    <div class=\"arr\">\n      <LinksLine />\n    </div>\n    <div class=\"simple\"><img src=\"/images/sm_logo.png\" alt=\"\" /></div>\n  </div>\n  {#if type === \"qr\"}\n    <div class=\"qr\">\n      <div class=\"qr-tip\">{qrTip}</div>\n      <div class=\"qrcode\">\n        <QrCode value={qrImg} />\n      </div>\n      <div class=\"tip\">\n        直接使用网易云音乐 APP 扫码登录,或截图保存之后使用网易云音乐 APP\n        扫码登录。\n      </div>\n    </div>\n  {/if}\n  {#if type === \"phone\"}\n    <div class=\"phone\">\n      <Input label=\"手机号\" type=\"tel\" maxlength=\"11\" on:setInput={getPhone} />\n      {#if phoneType === \"pwd\"}\n        <Input\n          label=\"密码\"\n          type=\"password\"\n          maxlength=\"40\"\n          bind:phone_password\n          on:setInput={set_phone_password}\n        />\n      {/if}\n      {#if phoneType === \"code\"}\n        <Input\n          label=\"验证码\"\n          type=\"tel\"\n          maxlength=\"4\"\n          bind:phone_code\n          rightBtn={true}\n          {btnText}\n          on:setInput={set_phone_code}\n          on:setBtn={sendSmsCodeFun}\n        />\n      {/if}\n      <div class=\"phone-switch\">\n        {#if phoneType === \"pwd\"}\n          <span\n            on:click={() => {\n              phoneType = \"code\";\n            }}\n          >\n            短信验证\n          </span>{/if}\n        {#if phoneType === \"code\"}\n          <span\n            on:click={() => {\n              phoneType = \"pwd\";\n            }}\n          >\n            密码验证\n          </span>\n        {/if}\n      </div>\n      <div class=\"btn\">\n        <Button on:BtnClick={doPhoneLogin} type=\"primary\">登录</Button>\n      </div>\n      {#if phoneType === \"pwd\"}\n        <div class=\"tip\">{tiptext}</div>\n      {/if}\n    </div>\n  {/if}\n\n  {#if type === \"email\"}\n    <div class=\"email\">\n      <Input\n        label=\"邮箱\"\n        maxlength={30}\n        type=\"text\"\n        on:setInput={set_email_assress}\n      />\n      <Input\n        label=\"密码\"\n        type=\"password\"\n        maxlength=\"40\"\n        bind:email_password\n        on:setInput={set_email_password}\n      />\n      <div class=\"btn\">\n        <Button on:BtnClick={doEmailLogin} type=\"primary\">登录</Button>\n      </div>\n      <div class=\"tip\">{tiptext}</div>\n    </div>\n  {/if}\n\n  <div class=\"type-switch\">\n    {#if type !== \"phone\"}\n      <span\n        on:click={() => {\n          clearInterval(timerLogin);\n          type = \"phone\";\n        }}\n      >\n        手机号登录\n      </span>\n    {/if}\n\n    {#if type !== \"qr\"}\n      <span on:click={qrLoginFun}> 二维码登录 </span>\n    {/if}\n\n    {#if type !== \"email\"}\n      <span\n        on:click={() => {\n          type = \"email\";\n          clearInterval(timerLogin);\n        }}\n      >\n        邮箱登录\n      </span>\n    {/if}\n  </div>\n</div>\n\n<style>\n  .desc {\n    font-size: 12px;\n    text-align: center;\n    color: #666;\n    margin: 20px;\n  }\n  .qr-tip {\n    text-align: center;\n    margin: 20px auto;\n  }\n  .login-page {\n    padding-top: 50px;\n    font-size: 16px;\n  }\n  .btn {\n    margin: 10px auto;\n    width: 80%;\n  }\n  .qr {\n    text-align: center;\n  }\n  .qrcode {\n    margin: auto;\n    width: 200px;\n    height: 200px;\n    background: cornflowerblue;\n  }\n  .tip {\n    width: 80%;\n    text-align: justify;\n    font-size: 12px;\n    line-height: 16px;\n    margin: 20px auto;\n    word-break: break-all;\n  }\n  .lead {\n    text-align: center;\n    align-items: center;\n    margin: 20px auto;\n    width: 50%;\n    display: flex;\n    justify-content: center;\n  }\n  .netease {\n    flex: 1.5;\n  }\n  img {\n    width: 100%;\n  }\n  .arr {\n    color: rgb(139, 139, 139);\n    flex: 1;\n  }\n  .simple {\n    flex: 1.5;\n  }\n  .phone-switch {\n    margin: 20px;\n    text-align: center;\n    color: var(--primary-text-color);\n  }\n  .type-switch {\n    position: fixed;\n    width: 100%;\n    bottom: 40px;\n    text-align: center;\n    color: var(--primary-text-color);\n    padding-bottom: constant(safe-area-inset-bottom);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n\n  .type-switch span + .type-switch span::before {\n    content: \" | \";\n    display: inline-block;\n    width: 1em;\n    height: 1em;\n  }\n</style>\n","<script>\n  import { onMount } from \"svelte\";\n  import { PlayCircleLine } from \"svelte-remixicon\";\n  import { onResume } from \"svelte-stack-router\";\n\n  import { Button, NavBar } from \"../components/base\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import { getSongUrl, getSongDetail } from \"../api/song\";\n\n  import { playListDetailStore, todayListStore } from \"../store/playList\";\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n  import { defaultResumableStore } from \"../store/common\";\n\n  import { Toast } from \"../utils/common\";\n\n  $: songList = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      let songIdList = [];\n      for (let i = 0; i < $todayListStore.length; i++) {\n        songIdList.push($todayListStore[i].id);\n      }\n      getSongDetailFun(songIdList.join(\",\"));\n      getSongUrl(songIdList[0]);\n    }\n  });\n  onMount(() => {\n    let songIdList = [];\n    for (let i = 0; i < $todayListStore.length; i++) {\n      songIdList.push($todayListStore[i].id);\n    }\n    getSongDetailFun(songIdList.join(\",\"));\n    getSongUrl(songIdList[0]);\n  });\n  async function getSongDetailFun(songIds) {\n    const res = await getSongDetail(songIds); //所有获取歌曲详情\n    if (res.code === 200) {\n      playListDetailStore.set(res.songs);\n      songList = res.songs;\n    }\n  }\n  function playListFun(index) {\n    playRepeatModelStore.set(\"repeat\");\n    isFMPlayStore.set(false);\n    localStorage.setItem(\"isFMPlay\", \"0\");\n    currentPlayListStore.set(songList);\n    let ids = [];\n    for (let r = 0; r < songList.length; r++) {\n      ids.push(songList[r].id);\n    }\n    localStorage.setItem(\"localPlayList\", JSON.stringify(ids));\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n</script>\n\n<NavBar title=\"今日推荐歌曲\" />\n<div class=\"play-list\">\n  <div class=\"today-title\">今日推荐歌曲</div>\n  <div class=\"today-desc\">\n    根据你的音乐口味生成 {songList.length} 首 · 每天6:00更新\n  </div>\n  <div class=\"btn\">\n    <div class=\"play\">\n      <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n        <span class=\"icon\">\n          <PlayCircleLine size=\"22\" style=\"vertical-align: middle\" />\n        </span>\n        播放全部\n      </Button>\n    </div>\n  </div>\n  <div>\n    <SongList {songList} />\n  </div>\n</div>\n\n<style>\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .today-title {\n    text-align: center;\n    font-size: 46px;\n    color: var(--primary-text-color);\n    margin: 40px auto;\n    font-weight: bold;\n  }\n  .today-desc {\n    text-align: center;\n    font-size: 12px;\n  }\n\n  .btn {\n    width: 100%;\n    display: flex;\n    margin-bottom: 10px;\n  }\n  .play {\n    padding: 0px 20px 10px 20px;\n    flex: 1;\n  }\n  .play-list {\n    padding-top: 50px;\n    padding-bottom: 70px;\n  }\n</style>\n","<script>\n  import { onMount, onDestroy } from 'svelte';\n  import { onResume } from 'svelte-stack-router';\n  import { PlayCircleLine, ShuffleLine, SearchLine, RefreshLine } from 'svelte-remixicon';\n\n  import { Button, NavBar } from '../components/base';\n  import SongList from '../components/SongList.svelte';\n\n  import { isHomePageStore, isLoadingStore, defaultResumableStore } from '../store/common';\n  import { userInfoStore, userLikeListIdStore } from '../store/user';\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from '../store/play';\n\n  import { getSongUrl, getSongDetail } from '../api/song';\n  import { getPlaylistDetail } from '../api/playlist';\n\n  import { Toast, cutArray, songerListToStr } from '../utils/common';\n\n  let inputDom;\n  $: keywords = '';\n  $: isSearch = false;\n  $: songList = [];\n  $: searchSongList = []; //搜索过滤之后的歌曲列表\n  $: isRefresh = false;\n\n  let rightIcons = [\n    {\n      id: 'SearchLine',\n      icon: SearchLine,\n    },\n  ];\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      songList = [];\n      isSearch = false;\n      searchSongList = [];\n      keywords = '';\n      isHomePageStore.set(false);\n      getPlaylistDetailFun();\n    }\n  });\n  onMount(() => {\n    isHomePageStore.set(false);\n    getPlaylistDetailFun();\n  });\n  onDestroy(() => {\n    isHomePageStore.set(true);\n  });\n  function inputchange(e) {\n    setTimeout(() => {\n      //采用延时进行节流\n      if (!e.target.isNeedPrevent && e.target.oldValue !== e.target.value) {\n        //判断输入是否完成以及值是否变化\n        e.target.oldValue = e.target.value;\n        keywords = e.target.value;\n        searchFun();\n      }\n    }, 100);\n  }\n  //搜索\n  function searchFun() {\n    if (keywords.trim() != '') {\n      // inputDom.blur();\n      searchSongList = songList.filter(\n        item =>\n          item.name.indexOf(keywords) > -1 ||\n          songerListToStr(item.ar).indexOf(keywords) > -1 ||\n          songerListToStr(item.alia, false).indexOf(keywords) > -1\n      );\n    }\n  }\n  //请求歌单详情\n  async function getPlaylistDetailFun() {\n    const res = await getPlaylistDetail($userLikeListIdStore); //获取歌单详情\n    if (res.code === 200) {\n      isLoadingStore.set(true);\n      let songIdList = [];\n      for (let i = 0; i < res.playlist.trackIds.length; i++) {\n        songIdList.push(res.playlist.trackIds[i].id);\n      }\n      let cutSongIdList = cutArray(songIdList);\n      for (let t = 0; t < cutSongIdList.length; t++) {\n        await getSongDetailFun(cutSongIdList[t].join(','), t === cutSongIdList.length - 1);\n      }\n    }\n  }\n  //所有获取歌曲详情\n  async function getSongDetailFun(songIds, last) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      songList = songList.concat(res.songs);\n      if (last) {\n        isRefresh = false;\n      }\n    }\n  }\n  //顺序播放\n  function playListFun(index) {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    currentPlayListStore.set(songList);\n    let ids = [];\n    for (let r = 0; r < songList.length; r++) {\n      ids.push(songList[r].id);\n    }\n    localStorage.setItem('localPlayList', JSON.stringify(ids));\n    currentSongIndexStore.set(index);\n    playRepeatModelStore.set('repeat');\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  //随机播放\n  function playListShuffleFun() {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    currentPlayListStore.set(songList);\n    let ids = [];\n    for (let r = 0; r < songList.length; r++) {\n      ids.push(songList[r].id);\n    }\n    localStorage.setItem('localPlayList', JSON.stringify(ids));\n    let index = Math.floor(Math.random() * ($currentPlayListStore.length - 1));\n    playRepeatModelStore.set('shuffle');\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  function rightClickFun(e) {\n    if (e.detail.id === 'SearchLine' && isSearch) {\n      isSearch = false;\n    } else if (e.detail.id === 'SearchLine' && !isSearch) {\n      isSearch = true;\n      setTimeout(() => {\n        inputDom.focus();\n        inputDom.addEventListener('compositionstart', function (e) {\n          //非直接的文字输入时(键盘输入中文的拼音)\n          e.target.isNeedPrevent = true;\n        });\n        inputDom.addEventListener('compositionend', function (e) {\n          //直接输入文字后(键盘选择真实的汉字)\n          e.target.isNeedPrevent = false;\n        });\n        inputDom.addEventListener('input', inputchange);\n        inputDom.addEventListener('keydown', function (e) {\n          if (e.key === 'Enter') {\n            inputDom.blur();\n            searchFun();\n          }\n        });\n      }, 100);\n    }\n  }\n</script>\n\n<NavBar\n  title={$userInfoStore.profile.nickname + '喜欢的歌曲'}\n  {isRefresh}\n  {rightIcons}\n  on:setRightIconClick={rightClickFun}\n/>\n<div class=\"play-list\">\n  {#if isSearch}\n    <div class=\"input-box\">\n      <form action=\"JavaScript:void 0\">\n        <input bind:this={inputDom} placeholder=\"请输入关键字\" type=\"search\" value={keywords} />\n      </form>\n      <button\n        on:click={() => {\n          inputDom.blur();\n          searchFun();\n        }}\n        style=\"background-color: {keywords === '' ? 'rgb(224, 224, 224)' : 'var(--primary-text-color)'};\n        color:{keywords === '' ? '#666' : '#fff'}\"\n      >\n        搜索\n      </button>\n    </div>\n  {/if}\n  <div class=\"today-title\">我喜欢的音乐</div>\n  <div class=\"today-desc\">\n    共 {songList.length} 首\n    {#if isSearch && keywords != ''}\n      ,其中 <span>{searchSongList.length}</span> 首包含『{keywords}』\n    {/if}\n  </div>\n  {#if isSearch && keywords != ''}\n    <div />\n  {:else}\n    <div class=\"btn\">\n      <div class=\"play\">\n        <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n          <span class=\"icon\">\n            <PlayCircleLine size=\"20\" style=\"vertical-align: middle\" />\n          </span>\n          顺序播放\n        </Button>\n      </div>\n      <div class=\"play\">\n        <Button type=\"primary\" on:BtnClick={playListShuffleFun}>\n          <span class=\"icon\">\n            <ShuffleLine size=\"20\" style=\"vertical-align: middle\" />\n          </span>\n          随机播放\n        </Button>\n      </div>\n    </div>\n  {/if}\n  <div>\n    {#if isSearch && keywords != ''}\n      <SongList songList={searchSongList} />\n    {:else}\n      <SongList {songList} />\n    {/if}\n  </div>\n</div>\n\n<style>\n  .input-box {\n    margin: 10px auto;\n    font-size: 20px;\n    display: flex;\n    padding: 0 20px;\n  }\n  .input-box form {\n    flex: auto;\n  }\n  .input-box form input {\n    width: 100%;\n    margin: 0;\n    padding: 0 5px;\n    border: none;\n    height: 30px;\n    box-sizing: border-box;\n    line-height: 10px;\n    border-radius: 4px;\n    font-size: 14px;\n    outline: none;\n    -webkit-appearance: none;\n  }\n  .input-box input:focus {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box input:active {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box button {\n    border: none;\n    padding: 0 8px;\n    border-radius: 4px;\n    margin-left: 10px;\n    width: 48px;\n    height: 30px;\n    line-height: 30px;\n    font-size: 14px;\n    background-color: rgb(224, 224, 224);\n  }\n  .today-title {\n    text-align: center;\n    font-size: 46px;\n    color: var(--primary-text-color);\n    margin: 20px auto;\n    font-weight: bold;\n  }\n  .today-desc {\n    text-align: center;\n    font-size: 12px;\n    margin-bottom: 10px;\n  }\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .btn {\n    width: 100%;\n    display: flex;\n    margin-bottom: 10px;\n  }\n  .play {\n    padding: 0px 20px 10px 20px;\n    flex: 1;\n  }\n  .play-list {\n    padding-top: 50px;\n    padding-bottom: 70px;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import Lazy from 'svelte-lazy';\n  import { search, onResume } from 'svelte-stack-router';\n\n  import { NavBar } from '../components/base';\n  import MiniPlayListCover from '../components/Album.svelte';\n\n  import { userPlaylist } from '../api/user';\n\n  import { userInfoStore } from '../store/user';\n  import { defaultResumableStore } from '../store/common';\n\n  import { Alert } from '../utils/common';\n\n  $: playList = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      userPlaylistFun();\n    }\n  });\n\n  onMount(() => {\n    userPlaylistFun();\n  });\n  //获取用户收藏歌单ID列表\n  async function userPlaylistFun(login) {\n    const res = await userPlaylist({\n      uid: $userInfoStore.account.id,\n    });\n    if (res.code === 200) {\n      let createListL = [];\n      let collectListL = [];\n      //去除喜欢的音乐\n      if (\n        res.playlist[0].creator.userId === $userInfoStore.account.id &&\n        res.playlist[0].name.substr(-5) === '喜欢的音乐'\n      ) {\n        res.playlist.splice(0, 1);\n      }\n      for (let i = 0; i < res.playlist.length; i++) {\n        if (res.playlist[i].creator.userId === $userInfoStore.account.id) {\n          createListL.push(res.playlist[i]);\n        } else {\n          collectListL.push(res.playlist[i]);\n        }\n      }\n      playList = $search === '?create' ? createListL : collectListL;\n    } else {\n      Alert('获取收藏歌单失败');\n    }\n  }\n</script>\n\n<NavBar title={$search === '?create' ? '创建的歌单' : '收藏的歌单'} />\n\n<div class=\"play-list-page\">\n  {#each playList as play}\n    <Lazy height={180}>\n      <MiniPlayListCover\n        name={play.name}\n        coverImgUrl={play.coverImgUrl}\n        id={play.id}\n        playCount={play.playCount}\n        trackCount={play.trackCount}\n      />\n    </Lazy>\n  {/each}\n</div>\n\n<style>\n  .play-list-page {\n    padding: 60px 20px 70px;\n    font-size: 16px;\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n  }\n  .play-list-page:after {\n    content: '';\n    width: 105px;\n  }\n</style>\n","<script>\n  import { pop, push } from 'svelte-stack-router';\n\n  import { NavBar, Cell, Button } from '../components/base';\n\n  import { logout } from '../api/user';\n\n  import {\n    restoreScrollStore,\n    musicQualityStore,\n    isShowTranslateStore,\n    isLoginStore,\n    isShowCommentStore,\n  } from '../store/common';\n\n  import { Confirm } from '../utils/common';\n\n  let musicQualityArr = ['普通', '较高', '极高', '无损'];\n\n  function switchScrollFun(e) {\n    restoreScrollStore.set(e.detail.cellCheck);\n    localStorage.setItem('restoreScroll', e.detail.cellCheck ? '1' : '0');\n  }\n  function switchCommentFun(e) {\n    isShowCommentStore.set(e.detail.cellCheck ? '1' : '0');\n    localStorage.setItem('isShowComment', e.detail.cellCheck ? '1' : '0');\n  }\n  function brFun() {\n    push('/brSelect');\n  }\n  function translateFun(e) {\n    isShowTranslateStore.set(e.detail.cellCheck);\n    localStorage.setItem('isShowTranslate', e.detail.cellCheck ? '1' : '0');\n  }\n  function logoutFun() {\n    Confirm('确定退出当前账号?', async () => {\n      const res = await logout();\n      if (res.code === 200) {\n        localStorage.clear();\n        isLoginStore.set(false);\n        clearAllCookie();\n        pop();\n      }\n    });\n  }\n  //清除所有cookie函数\n  function clearAllCookie() {\n    let keys = document.cookie.match(/[^ =;]+(?=\\=)/g);\n    if (keys) {\n      for (let i = keys.length; i--; ) document.cookie = keys[i] + '=0;expires=' + new Date(0).toUTCString();\n    }\n  }\n  function aboutFun() {\n    push('/about');\n  }\n  function versionFun() {\n    push('/version');\n  }\n</script>\n\n<NavBar title=\"设置\" />\n\n<div class=\"setting-page\">\n  <!-- 设置 -->\n  <Cell title=\"播放音质\" on:cellClick={brFun} desc={musicQualityArr[Number($musicQualityStore)]} arrow={true} />\n  <Cell\n    title=\"热评\"\n    on:cellClick={switchCommentFun}\n    desc=\"Switch\"\n    cellCheck={$isShowCommentStore === '0' ? false : true}\n  />\n  <Cell title=\"显示歌词翻译\" on:cellClick={translateFun} desc=\"Switch\" cellCheck={$isShowTranslateStore} />\n  <Cell\n    title=\"自动滚动\"\n    titleDesc=\"导航返回上一页后自动滚动到之前的位置\"\n    on:cellClick={switchScrollFun}\n    desc=\"Switch\"\n    cellCheck={$restoreScrollStore}\n  />\n  <Cell title=\"关于\" on:cellClick={aboutFun} arrow={true} />\n  <Cell title=\"版本记录\" on:cellClick={versionFun} arrow={true} />\n  <div class=\"bottom\">\n    <Button on:BtnClick={logoutFun}>退出登录</Button>\n  </div>\n  <div class=\"version\">V 1.0.1</div>\n</div>\n\n<style>\n  .setting-page {\n    padding: 50px 20px 70px;\n    font-size: 16px;\n  }\n  .bottom {\n    margin: 20px auto;\n  }\n  .version {\n    margin: 20px auto;\n    font-size: 12px;\n    text-align: center;\n    color: rgb(141, 141, 141);\n  }\n</style>\n","import request from \"../utils/request\";\n// import { mapTrackPlayableStatus } from '@/utils/common';\n\n/**\n * 搜索\n * 说明 : 调用此接口 , 传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户 , 关键词可以多个 , 以空格隔开 ,\n * 如 \" 周杰伦 搁浅 \"( 不需要登录 ), 搜索获取的 mp3url 不能直接用 , 可通过 /song/url 接口传入歌曲 id 获取具体的播放链接\n * - keywords : 关键词\n * - limit : 返回数量 , 默认为 30\n * - offset : 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0\n * - type: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频, 1018:综合\n * - 调用例子 : /search?keywords=海阔天空 /cloudsearch?keywords=海阔天空(更全)\n * @param {Object} params\n * @param {string} params.keywords\n * @param {number=} params.limit\n * @param {number=} params.offset\n * @param {number=} params.type\n */\nexport function search(params) {\n  return request({\n    url: \"/search\",\n    method: \"get\",\n    params,\n  }).then(data => {\n    // if (data.result?.song !== undefined)\n    //   data.result.song.songs = mapTrackPlayableStatus(data.result.song.songs);\n    return data;\n  });\n}\n\nexport function personalFM() {\n  return request({\n    url: \"/personal_fm\",\n    method: \"get\",\n    params: {\n      timestamp: new Date().getTime(),\n    },\n  });\n}\n\n//说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶\nexport function fmTrash(id) {\n  return request({\n    url: \"/fm_trash\",\n    method: \"post\",\n    params: {\n      timestamp: new Date().getTime(),\n      id,\n    },\n  });\n}\n","<script>\n  import { onMount } from 'svelte';\n  import { DeleteBinLine } from 'svelte-remixicon';\n\n  import { NavBar } from '../components/base';\n  import Songer from '../components/Singer.svelte';\n  import MiniPlayListCover from '../components/Album.svelte';\n  import SongList from '../components/SongList.svelte';\n\n  import { search } from '../api/others';\n  import { getSongDetail } from '../api/song';\n\n  import { ripple, fullWidth } from '../utils/common';\n\n  let inputDom;\n  let keywords = '';\n  let songers = [];\n  $: songs = [];\n  let playLists = [];\n  let typeList = [\n    { index: 0, type: 0, text: '综合' },\n    { index: 1, type: 1, text: '单曲' },\n    { index: 2, type: 100, text: '歌手' },\n    { index: 3, type: 1000, text: '歌单' },\n  ];\n  $: active = 0;\n  $: type = typeList[0].type;\n  $: searchkeywordList = localStorage.getItem('searchkeywords')\n    ? [...new Set(localStorage.getItem('searchkeywords').split('|&&|'))].filter(function (s) {\n        return s && s.trim();\n      })\n    : [];\n  $: searchkeywordList10 =\n    searchkeywordList.length > 10\n      ? searchkeywordList.slice(0, 10).filter(function (s) {\n          return s && s.trim();\n        })\n      : searchkeywordList.filter(function (s) {\n          return s && s.trim();\n        });\n  $: isShowResult = false;\n  let typeDoms;\n\n  onMount(() => {\n    if (typeDoms) ripple(typeDoms, true);\n    inputDom.addEventListener('compositionstart', function (e) {\n      //非直接的文字输入时(键盘输入中文的拼音)\n      e.target.isNeedPrevent = true;\n    });\n    inputDom.addEventListener('compositionend', function (e) {\n      //直接输入文字后(键盘选择真实的汉字)\n      e.target.isNeedPrevent = false;\n    });\n    inputDom.addEventListener('input', inputchange);\n    inputDom.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter') searchFun();\n    });\n  });\n  function inputchange(e) {\n    setTimeout(() => {\n      //采用延时进行节流\n      if (!e.target.isNeedPrevent && e.target.oldValue !== e.target.value) {\n        //判断输入是否完成以及值是否变化\n        e.target.oldValue = e.target.value;\n        keywords = e.target.value;\n      }\n    }, 10);\n  }\n  //搜索\n  function searchFun() {\n    if (keywords.trim() != '') {\n      inputDom.blur();\n      let searchkeywords = localStorage.getItem('searchkeywords') ? localStorage.getItem('searchkeywords') : '';\n      if (searchkeywords.indexOf(keywords) != -1) {\n        //有\n        searchkeywords = `${keywords}|&&|` + searchkeywords.replace(`${keywords}|&&|`, '');\n      } else {\n        searchkeywords = `${keywords}|&&|` + searchkeywords;\n      }\n      searchkeywordList = searchkeywords.split('|&&|');\n      localStorage.setItem('searchkeywords', searchkeywords);\n      if (type === 0) {\n        //搜索综合\n        searchApiFun(typeList[1].type, false);\n        searchApiFun(typeList[2].type, false);\n        searchApiFun(typeList[3].type, false);\n      } else {\n        searchApiFun(type, true);\n      }\n    }\n  }\n  function quickSearchFun(key) {\n    keywords = key;\n    searchFun();\n  }\n  function clearSearchFun() {\n    searchkeywordList10 = [];\n    localStorage.removeItem('searchkeywords');\n  }\n  //开始搜索\n  async function searchApiFun(type, isMore) {\n    const res = await search({ keywords, type, limit: isMore ? 30 : 6 });\n    if (res.code === 200) {\n      isShowResult = true;\n      switch (type) {\n        case 1:\n          let songIdList = [];\n          for (let i = 0; i < res.result.songs.length; i++) {\n            songIdList.push(res.result.songs[i].id);\n          }\n          getSongDetailFun(songIdList.join(','));\n          break;\n        case 100:\n          songers = res.result.artists;\n          break;\n        case 1000:\n          playLists = res.result.playlists;\n          break;\n        default:\n          console.log('未知类型');\n          break;\n      }\n    }\n  }\n  //获取所有歌曲详情\n  async function getSongDetailFun(songIds) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      songs = res.songs;\n    }\n  }\n  //数组去重\n  function uniqe(arr) {\n    for (var i = 0; i < arr.length; i++) {\n      if (arr.indexOf(arr[i]) == i) {\n        temp.push(arr[i]);\n      }\n    }\n    return temp;\n  }\n</script>\n\n<NavBar title=\"搜索\" />\n<div class=\"search-page\">\n  <div class=\"input-box\">\n    <form action=\"JavaScript:void 0\">\n      <input bind:this={inputDom} placeholder=\"请输入关键字\" type=\"search\" value={keywords} />\n    </form>\n    <button\n      on:click={() => searchFun()}\n      style=\"background-color: {keywords === '' ? 'rgb(224, 224, 224)' : 'var(--primary-text-color)'};\n        color:{keywords === '' ? '#666' : '#fff'}\"\n    >\n      搜索\n    </button>\n  </div>\n  <div class=\"searchkeyword\">\n    {#each searchkeywordList10.filter(function (s) {\n      return s && s.trim();\n    }) as item}\n      <span class=\"key-item\" on:click={() => quickSearchFun(item)}>\n        {item}\n      </span>\n    {/each}\n    {#if searchkeywordList10.filter(function (s) {\n      return s && s.trim();\n    }).length > 0}\n      <span class=\"key-item\" on:click={clearSearchFun}>\n        <DeleteBinLine size=\"12\" style=\"vertical-align: middle\" />\n      </span>\n    {/if}\n  </div>\n  <div class=\"type\" bind:this={typeDoms}>\n    {#each typeList as t}\n      <div\n        class=\"type-item\"\n        class:active={active === t.index}\n        on:click={() => {\n          active = t.index;\n          type = t.type;\n          searchFun();\n        }}\n      >\n        {t.text}\n      </div>\n    {/each}\n  </div>\n  <div class=\"active-line\" style=\"left: {20 + ((fullWidth() - 40) / 4) * active}px;\" />\n  {#if isShowResult}\n    <div class=\"result-box\">\n      <!-- 综合 -->\n      <div class=\"result all-box\" style=\"display: {active === 0 ? 'block' : 'none'};\">\n        <div class=\"songer-title\">单曲</div>\n        <div class=\"reault-song\">\n          <div class=\"song-box\">\n            <SongList songList={songs} />\n          </div>\n        </div>\n        <!-- <Divider /> -->\n        <div class=\"songer-title\">歌手</div>\n        <div class=\"reault-songer\">\n          {#each songers as songer}\n            <div class=\"songer-box\">\n              <Songer {songer} coverSize={330} />\n            </div>\n          {/each}\n        </div>\n        <!-- <Divider /> -->\n        <div class=\"songer-title\">歌单</div>\n        <div class=\"reault-play-list\">\n          {#each playLists as play}\n            <div class=\"list-box\">\n              <MiniPlayListCover\n                name={play.name}\n                coverImgUrl={play.coverImgUrl}\n                id={play.id}\n                playCount={play.playCount}\n                trackCount={play.trackCount}\n              />\n            </div>\n          {/each}\n        </div>\n      </div>\n      <!-- 单曲 -->\n      <div class=\"result song-box\" style=\"display: {active === 1 ? 'block' : 'none'};\">\n        <div class=\"reault-song\">\n          <div class=\"song-box\">\n            <SongList songList={songs} />\n          </div>\n        </div>\n      </div>\n      <!--歌手 -->\n      <div class=\"result reault-songer-box\" style=\"display: {active === 2 ? 'block' : 'none'};\">\n        <div class=\"reault-songer\">\n          {#each songers as songer}\n            <Songer {songer} coverSize={250} />\n          {/each}\n        </div>\n      </div>\n      <!-- 歌单 -->\n      <div style=\"display: {active === 3 ? 'block' : 'none'};\">\n        <div class=\"reault-play-list\">\n          {#each playLists as play}\n            <MiniPlayListCover\n              name={play.name}\n              coverImgUrl={play.coverImgUrl}\n              id={play.id}\n              playCount={play.playCount}\n              trackCount={play.trackCount}\n            />\n          {/each}\n        </div>\n      </div>\n    </div>\n  {/if}\n</div>\n\n<style>\n  .searchkeyword {\n    padding: 10px 20px;\n  }\n  .key-item {\n    display: inline-block;\n    font-size: 12px;\n    margin: 4px 8px 4px 0;\n    padding: 4px 8px;\n    border-radius: 4px;\n    background-color: #fff;\n  }\n  .songer-title {\n    margin: 20px auto 10px;\n    font-weight: bold;\n    padding: 0 20px;\n  }\n  .active-line {\n    margin-bottom: 10px;\n    height: 2px;\n    width: 83.75px;\n    background-color: var(--primary-text-color);\n    position: relative;\n    left: 0px;\n    transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n    -webkit-transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n  }\n  .type {\n    display: flex;\n    padding: 0 20px;\n  }\n  .type-item {\n    font-weight: bold;\n    padding: 10px 0 8px;\n    text-align: center;\n    flex: 1;\n  }\n  .active {\n    color: var(--primary-text-color);\n  }\n  .search-page {\n    font-size: 16px;\n    padding: 50px 0px 70px;\n  }\n  .input-box {\n    margin: 10px auto;\n    font-size: 20px;\n    display: flex;\n    padding: 0 20px;\n  }\n  .input-box form {\n    flex: auto;\n  }\n  .input-box form input {\n    width: 100%;\n    margin: 0;\n    padding: 0 5px;\n    border: none;\n    height: 30px;\n    box-sizing: border-box;\n    line-height: 10px;\n    border-radius: 4px;\n    font-size: 14px;\n    outline: none;\n    -webkit-appearance: none;\n  }\n  .input-box input:focus {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box input:active {\n    border: 1px solid var(--primary-text-color);\n  }\n  .input-box button {\n    border: none;\n    padding: 0 8px;\n    border-radius: 4px;\n    margin-left: 10px;\n    width: 48px;\n    height: 30px;\n    line-height: 30px;\n    font-size: 14px;\n    background-color: rgb(224, 224, 224);\n  }\n  .reault-songer {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(3, 100px);\n    padding: 0 20px;\n  }\n  .reault-play-list {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(2, 150px);\n    padding: 0 20px;\n  }\n  .songer-box {\n    padding: 10px 0;\n  }\n</style>\n","<script>\n  import { onMount, afterUpdate } from \"svelte\";\n  import Lazy from \"svelte-lazy\";\n  import { push, onResume, search } from \"svelte-stack-router\";\n  import {\n    PlayCircleLine,\n    ChatHeartFill,\n    ChatHeartLine,\n  } from \"svelte-remixicon\";\n\n  import { NavBar, Title, Button } from \"../components/base\";\n  import SongList from \"../components/SongList.svelte\";\n\n  import {\n    defaultResumableStore,\n    isLoginStore,\n    currentDetailSongerIdStore,\n    coverImgUrlStore,\n    defaultCover,\n  } from \"../store/common\";\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from \"../store/play\";\n\n  import { getSongerDetail, getSongerTop, followAArtist } from \"../api/songer\";\n  import { getSongUrl } from \"../api/song\";\n  import { parseQuery } from \"../utils/common\";\n\n  const { id } = parseQuery($search);\n\n  $: coverImgUrl = defaultCover;\n  $: name = \"--\";\n  $: description = \"暂无描述\";\n  $: mvSize = 0;\n  $: musicSize = 0;\n  $: albumSize = 0;\n  $: hotSongs = [];\n  $: collect = false;\n  $: currentSongerId = id; //当前歌手 ID,用于计算更新页面\n\n  onResume(() => {\n    const { id } = parseQuery($search);\n    currentSongerId = id;\n    if (!$defaultResumableStore) {\n      allMount();\n    }\n  });\n  onMount(() => {\n    allMount();\n  });\n  // afterUpdate(() => {\n  //   if (currentSongerId !== $currentDetailSongerIdStore) {\n  //     allMount();\n  //   }\n  // });\n  function allMount() {\n    getSongerDetailFun();\n    getSongerTopFun();\n    if ($isLoginStore) {\n      const ids = JSON.parse(localStorage.getItem(\"useLoveSongerIds\"));\n      collect = ids.includes($currentDetailSongerIdStore);\n    } else {\n      collect = false;\n    }\n  }\n  async function getSongerDetailFun() {\n    const res = await getSongerDetail(currentSongerId);\n    if (res.code === 200) {\n      name = res.data.artist.name;\n      coverImgUrl = res.data.user\n        ? res.data.user.avatarUrl\n        : res.data.artist.cover;\n      description = res.data.artist.briefDesc;\n      mvSize = res.data.artist.mvSize;\n      musicSize = res.data.artist.musicSize;\n      albumSize = res.data.artist.albumSize;\n    }\n  }\n  async function getSongerTopFun() {\n    const res = await getSongerTop(currentSongerId);\n    if (res.code === 200) {\n      hotSongs = res.songs;\n    }\n  }\n  function toDescFun() {\n    if (description != \"\") {\n      push(\"/songerDesc?\" + $currentDetailSongerIdStore);\n    }\n  }\n  function playListFun(index) {\n    playRepeatModelStore.set(\"repeat\");\n    isFMPlayStore.set(false);\n    localStorage.setItem(\"isFMPlay\", \"0\");\n    currentPlayListStore.set(hotSongs);\n    let ids = [];\n    for (let r = 0; r < hotSongs.length; r++) {\n      ids.push(hotSongs[r].id);\n    }\n    localStorage.setItem(\"localPlayList\", JSON.stringify(ids));\n    currentSongIndexStore.set(index);\n    getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, \"https:\");\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set(\"试听\");\n        } else if (res.data[0].type === \"flac\") {\n          currentSongQualityStore.set(\"FLAC\");\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        currentSongStore.set(song);\n        localStorage.setItem(\"currentSong\", JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(\n          `😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`,\n          2000\n        );\n      }\n    }\n  }\n  async function loveSongerFun() {\n    const res = await followAArtist({\n      id: $currentDetailSongerIdStore,\n      t: collect ? 0 : 1,\n    });\n    if (res.code === 200) {\n      const ids = JSON.parse(localStorage.getItem(\"useLoveSongerIds\"));\n      if (collect) {\n        let i = ids.indexOf(Number($currentDetailSongerIdStore));\n        ids.splice(i, 1);\n      } else {\n        ids.unshift(Number($currentDetailSongerIdStore));\n      }\n      localStorage.setItem(\"useLoveSongerIds\", JSON.stringify(ids));\n      collect = !collect;\n    }\n  }\n</script>\n\n<NavBar title={name} dark={true} />\n<div class=\"page\">\n  <div class=\"cover-box\">\n    <div class=\"cover-bg\">\n      <div class=\"cover\">\n        <Lazy height={140}>\n          <img\n            class=\"img-cover\"\n            src={coverImgUrl.replace(/^http:/, \"https:\") + \"?param=400y400\"}\n            alt=\"\"\n          />\n        </Lazy>\n      </div>\n      <div class=\"info\">\n        <div class=\"name\">{name}</div>\n        <div class=\"song-count\">\n          {musicSize} 首歌 • {albumSize} 张专辑 • {mvSize} 个 MV\n        </div>\n        <div class=\"desc\" on:click={toDescFun}>{description}</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"btn\">\n    <div class=\"play\">\n      <Button type=\"primary\" on:BtnClick={() => playListFun(0)}>\n        <span class=\"icon\">\n          <PlayCircleLine size=\"20\" style=\"vertical-align: middle\" />\n        </span>\n        播放全部\n      </Button>\n    </div>\n    {#if $isLoginStore}\n      <div class=\"random\">\n        <Button\n          type={collect ? \"default\" : \"primary\"}\n          on:BtnClick={loveSongerFun}\n        >\n          <span class=\"icon\">\n            {#if collect}\n              <ChatHeartLine size=\"20\" style=\"vertical-align: middle\" />\n            {:else}\n              <ChatHeartFill size=\"20\" style=\"vertical-align: middle\" />\n            {/if}\n          </span>\n          {collect ? \"取消收藏\" : \"收藏歌手\"}\n        </Button>\n      </div>\n    {/if}\n  </div>\n  <div>\n    <Title\n      title={`热门 ${hotSongs.length} 首`}\n      isShowRight={hotSongs.length === 50}\n      on:TitleClick={() => {\n        coverImgUrlStore.set(coverImgUrl.replace(/^http:/, \"https:\"));\n        push(\"/moreSong?name=\" + name + \"&id=\" + currentSongerId);\n      }}\n    />\n    <SongList songList={hotSongs} />\n  </div>\n</div>\n\n<style>\n  .icon {\n    position: relative;\n    top: -2px;\n  }\n  .btn {\n    width: 100%;\n    display: flex;\n    margin-top: 10px;\n  }\n  .play {\n    padding: 0px 10px 10px 20px;\n    flex: 1;\n  }\n  .random {\n    padding: 0px 20px 10px 20px;\n    flex: 1;\n  }\n  .page {\n    padding: 50px 0 70px;\n    font-size: 16px;\n  }\n  .cover-box {\n    padding: 0 20px;\n  }\n  .cover-bg {\n    font-size: 12px;\n    padding: 20px 0px;\n    display: flex;\n  }\n  .cover {\n    width: 150px;\n    height: 150px;\n    border-radius: 150px;\n    overflow: hidden;\n    flex: 0 0 150px;\n    background-color: #fff;\n  }\n  .img-cover {\n    border-radius: 6px;\n    width: 150px;\n    height: 150px;\n    object-fit: cover;\n  }\n  .info {\n    padding-top: 6px;\n    margin-left: 10px;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n  .name {\n    font-size: 24px;\n    max-width: 192px;\n    font-weight: bold;\n  }\n  .song-count {\n    font-size: 12px;\n  }\n  .desc {\n    padding: 10px 0;\n    font-size: 12px;\n    max-height: 57px;\n    text-align: justify;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: 5;\n    color: rgb(116, 116, 116);\n  }\n</style>\n","<script>\n  import { NavBar, Radio, Tip } from \"../components/base\";\n\n  import { musicQualityStore } from \"../store/common\";\n\n  let radioData = [\n    { text: \"普通\", desc: \"128K\" },\n    { text: \"较高\", desc: \"192K\" },\n    { text: \"极高\", desc: \"320K\" },\n    { text: \"无损\", desc: \"FLAC\" },\n  ];\n  let tipTextList = [\n    \"提示:\",\n    \"1、音质越高相对应所需流量也越高。FLAC 格式对网络要求较高,一首歌曲文件几十 M 甚至超过 100M。\",\n    \"2、一般来说,达到较高音质(192K)非专业设备就已经听不出差距了,如果用的是普通蓝牙耳机,那就更没必要开启高音质了。\",\n    \"3、若当前账号无法播放高音质,或音乐资源无当前音质,将自动匹配下一级别音质。\",\n    \"4、所选音质将在下一次切换歌曲生效。\",\n  ];\n  let active = Number($musicQualityStore);\n\n  function getActiveFun(e) {\n    musicQualityStore.set(e.detail.active.toString());\n    localStorage.setItem(\"musicQuality\", e.detail.active.toString());\n  }\n</script>\n\n<NavBar title=\"播放音质\" />\n<div class=\"br-page\">\n  <Radio {radioData} on:RadioClick={getActiveFun} {active} />\n  <Tip {tipTextList} />\n</div>\n\n<style>\n  .br-page {\n    padding: 50px 20px 70px;\n    font-size: 16px;\n  }\n</style>\n","<script>\n  import { onMount, afterUpdate } from 'svelte';\n  import { ThumbUpLine, ThumbUpFill } from 'svelte-remixicon';\n\n  import { NavBar, Divider, Pagination } from '../components/base';\n\n  import { getHotComment, likeComment } from '../api/song';\n\n  import { currentSongStore } from '../store/play';\n  import { isLoginStore } from '../store/common';\n\n  import { formatTime, Toast, tranNumber, emojiToImg } from '../utils/common';\n\n  $: totalCount = 0;\n  $: hotComments = [];\n  $: currentSongId = 0; //当前歌曲 ID,用于计算更新页面\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  \n  onMount(() => {\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    getHotCommentFun(0);\n  });\n  afterUpdate(() => {\n    if (currentSongId !== $currentSongStore.id) {\n      hotComments = [];\n      offset = 0;\n      hasMore = true;\n      getHotCommentFun(offset);\n    }\n  });\n  async function getHotCommentFun(offset) {\n    currentSongId = $currentSongStore.id;\n    const res = await getHotComment($currentSongStore.id, offset);\n    if (res.code === 200) {\n      totalCount = res.total;\n      hotComments = hotComments.concat(res.hotComments);\n      hasMore = res.hasMore;\n      // 去除云村编辑部的广告\n      hotComments = hotComments.filter(item => item.user.nickname !== '云村评论编辑部');\n      for (let r = 0; r < hotComments.length; r++) {\n        //处理 emoji 表情显示\n        hotComments[r].content = emojiToImg(hotComments[r].content);\n      }\n    }\n  }\n  async function commentClickFun(commentId, liked) {\n    if ($isLoginStore) {\n      const res = await likeComment($currentSongStore.id, commentId, 0, liked ? 0 : 1);\n      if (res.code === 200) {\n        for (let y = 0; y < hotComments.length; y++) {\n          if (hotComments[y].commentId === commentId) {\n            hotComments[y].liked = !liked;\n          }\n        }\n      }\n    } else {\n      Toast('请登录');\n    }\n  }\n</script>\n\n<NavBar title={`热门评论(${totalCount || 0})`} />\n<div class=\"comment-page\">\n  <Pagination\n    bottomHeight={70}\n    {paginationHeight}\n    items={hotComments}\n    let:item\n    let:index\n    {hasMore}\n    on:load={() => {\n      if (hasMore) {\n        offset = hotComments.length;\n        getHotCommentFun(offset);\n      }\n    }}\n  >\n    <div>\n      <div class=\"comment\">\n        <!-- <div class=\"floor\">{index + 1}楼</div> -->\n        <div class=\"top\">\n          <div class=\"user\">\n            <div class=\"cover\">\n              <img src={item.user.avatarUrl.replace(/^http:/, 'https:') + '?param=50y50'} alt=\"\" />\n            </div>\n            <div class=\"info\">\n              <div class=\"name\">\n                {item.user.nickname}\n                {#if item.user.authStatus === 1}\n                  <span class=\"vip\">\n                    <img class=\"authStatus\" src=\"/images/auth.png\" alt=\"\" />\n                  </span>\n                {/if}\n                {#if item.user.vipType !== 0}\n                  <span class=\"vip\">\n                    <img class=\"cvip\" src={`/images/vip/${item.user.vipRights.redVipLevel}.png`} alt=\"\" />\n                  </span>\n                {/if}\n              </div>\n              <div class=\"time\">\n                {formatTime(item.time, 'yyyy-MM-dd hh:mm:ss')}\n              </div>\n            </div>\n          </div>\n          <div\n            class=\"like\"\n            on:click={() => commentClickFun(item.commentId, item.liked)}\n            style=\"color:{item.liked ? 'var(--primary-text-color)' : '#666'}\"\n          >\n            <span class=\"liked-span\">\n              {#if item.liked}\n                <ThumbUpFill size=\"12\" style=\"vertical-align: middle;margin-left:4px;\" />\n              {:else}\n                <ThumbUpLine size=\"12\" style=\"vertical-align: middle;margin-left:4px\" />\n              {/if}\n            </span>{tranNumber(item.likedCount)}\n          </div>\n        </div>\n        <div class=\"content\">\n          {@html item.content}\n          {#if item.beReplied && item.beReplied.length > 0}\n            <div class=\"beReplied\">\n              @ {item.beReplied[0].user.nickname}:{item.beReplied[0].content}\n            </div>\n          {/if}\n        </div>\n      </div>\n      <Divider />\n    </div>\n  </Pagination>\n</div>\n\n<style>\n  .cvip {\n    width: 29.1667px;\n    height: 10px;\n  }\n  .authStatus {\n    width: 10px;\n    height: 10px;\n  }\n  .beReplied {\n    color: #8a8a8a;\n    font-size: 10px;\n    padding: 4px;\n    margin-top: 4px;\n    border-radius: 4px;\n    background-color: #ebebeb;\n  }\n  .comment-page {\n    padding: 50px 10px 70px;\n    font-size: 16px;\n    color: #333333;\n  }\n  .comment {\n    margin: 20px auto;\n  }\n  .top {\n    display: flex;\n    justify-content: space-between;\n  }\n  .cover {\n    width: 30px;\n    height: 30px;\n    border-radius: 15px;\n    overflow: hidden;\n    margin-right: 10px;\n  }\n  .cover img {\n    width: 100%;\n  }\n  .user {\n    display: flex;\n    justify-content: flex-start;\n    font-size: 12px;\n  }\n  .info {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n  .time {\n    font-size: 10px;\n    color: #888;\n  }\n  .like {\n    color: #666;\n    font-size: 12px;\n    line-height: 30px;\n  }\n  .liked-span {\n    position: relative;\n    top: -2px;\n  }\n  .content {\n    text-align: justify;\n    margin-top: 10px;\n  }\n</style>\n","<script>\n  import { onMount } from \"svelte\";\n  import { onResume } from \"svelte-stack-router\";\n\n  import Songer from \"../components/Singer.svelte\";\n  import { NavBar } from \"../components/base\";\n\n  import { defaultResumableStore } from \"../store/common\";\n\n  import { likedArtists } from \"../api/user\";\n\n  $: collectSongers = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      likedArtistsFun();\n    }\n  });\n  onMount(() => {\n    likedArtistsFun();\n  });\n  //获取收藏的歌手\n  async function likedArtistsFun() {\n    const res = await likedArtists({ limit: 2000 });\n    if (res.code === 200) {\n      collectSongers = res.data;\n    }\n  }\n</script>\n\n<NavBar title=\"收藏的歌手\" />\n<div class=\"page\">\n  {#if collectSongers.length > 0}\n    <div class=\"songer-box\">\n      {#each collectSongers as songer}\n        <Songer {songer} coverSize={200} />\n      {/each}\n    </div>\n  {/if}\n</div>\n\n<style>\n  .songer-box {\n    display: grid;\n    justify-content: space-between;\n    grid-template-columns: repeat(4, 75px);\n    padding: 0 20px;\n  }\n  .page {\n    font-size: 16px;\n    padding: 50px 0px 70px;\n  }\n</style>\n","<script>\n  import { onMount } from \"svelte\";\n  import { search, onResume } from \"svelte-stack-router\";\n\n  import { NavBar } from \"../components/base\";\n\n  import { defaultResumableStore } from \"../store/common\";\n\n  import { getSongerDesc } from \"../api/songer\";\n\n  $: briefDesc = \"\";\n  $: introduction = [];\n  $: topicData = [];\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      getSongerDescFun();\n    }\n  });\n\n  onMount(() => {\n    getSongerDescFun();\n  });\n  async function getSongerDescFun() {\n    const res = await getSongerDesc($search.substr(1));\n    if (res.code === 200) {\n      briefDesc = res.briefDesc;\n      introduction = res.introduction;\n      topicData = res.topicData;\n    }\n  }\n</script>\n\n<NavBar title=\"歌手详情\" dark={true} />\n<div class=\"page\">\n  <div class=\"title\">简介</div>\n  <div class=\"text\">{briefDesc}</div>\n  {#each introduction as i}\n    <div class=\"title\">{i.ti}</div>\n    <div class=\"text\">{@html i.txt}</div>\n  {/each}\n</div>\n\n<style>\n  .page {\n    padding: 50px 20px 70px;\n    font-size: 18px;\n    font-weight: bold;\n    text-align: justify;\n  }\n  .title {\n    margin: 20px 0 10px;\n  }\n  .text {\n    font-weight: normal;\n    font-size: 14px;\n    color: rgb(97, 97, 97);\n    white-space: pre-line;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { onResume } from 'svelte-stack-router';\n\n  import { NavBar, Pagination } from '../components/base';\n  import Songer from '../components/Singer.svelte';\n\n  import { defaultResumableStore } from '../store/common';\n\n  import { topArtists } from '../api/songer';\n\n  $: hotSongers = [];\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  let limit = 20;\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      hotSongers = [];\n      hasMore = true;\n      offset = 0;\n      paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n      topArtistsFun();\n    }\n  });\n\n  onMount(() => {\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    topArtistsFun(0);\n  });\n  //热门歌手\n  async function topArtistsFun(offset) {\n    const res = await topArtists(limit, offset);\n    if (res.code === 200) {\n      hotSongers = hotSongers.concat(res.artists);\n      hasMore = res.more;\n    }\n  }\n</script>\n\n<NavBar title={`热门歌手 ${hotSongers.length} 位`} />\n<div class=\"comment-page\">\n  <Pagination\n    bottomHeight={70}\n    {paginationHeight}\n    items={hotSongers}\n    let:item\n    let:index\n    {hasMore}\n    grid={3}\n    on:load={() => {\n      if (hasMore) {\n        offset = hotSongers.length;\n        topArtistsFun(offset);\n      }\n    }}\n  >\n    <Songer songer={item} coverSize={200} />\n  </Pagination>\n</div>\n\n<style>\n  .comment-page {\n    padding: 50px 20px;\n    font-size: 16px;\n    color: #333333;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { onResume, search } from 'svelte-stack-router';\n  import Lazy from 'svelte-lazy';\n\n  import { NavBar, Pagination } from '../components/base';\n  import MiniPlayListCover from '../components/Album.svelte';\n\n  import { defaultResumableStore } from '../store/common';\n\n  import { topPlaylist, highQualityPlaylist } from '../api/playlist';\n\n  import { parseQuery } from '../utils/common';\n\n  $: playList = [];\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  $: searchObj = {};\n  $: before = 0;\n  let limit = 20;\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      playList = [];\n      hasMore = true;\n      offset = 0;\n      paginationHeight = 0;\n      before = 0;\n      searchObj = {};\n      allMount();\n    }\n  });\n  onMount(() => {\n    allMount();\n  });\n  function allMount() {\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    searchObj = parseQuery($search);\n    if (searchObj.type === 'high') {\n      highQualityPlaylistFun(searchObj.cat);\n    } else {\n      topPlaylistFun(searchObj.cat);\n    }\n  }\n  //热门歌单\n  async function topPlaylistFun(cat) {\n    const res = await topPlaylist({ limit, cat: cat === '默认' ? '全部' : cat, offset });\n    if (res.code === 200) {\n      playList = playList.concat(res.playlists);\n      hasMore = res.more;\n    }\n  }\n  //精品歌单\n  async function highQualityPlaylistFun(cat) {\n    const res = await highQualityPlaylist({ limit, cat: cat === '默认' ? '全部' : cat, before });\n    if (res.code === 200) {\n      playList = playList.concat(res.playlists);\n      hasMore = res.more;\n    }\n  }\n</script>\n\n<NavBar\n  title={searchObj.cat === '官方' ? '官方歌单' : `${searchObj.cat} - ${searchObj.type === 'top' ? '精选' : '精品'}歌单`}\n/>\n<div class=\"comment-page\">\n  <Pagination\n    bottomHeight={70}\n    {paginationHeight}\n    items={playList}\n    let:item\n    let:index\n    {hasMore}\n    grid={2}\n    on:load={() => {\n      if (hasMore) {\n        if (searchObj.type === 'high') {\n          before = playList.slice(-1)[0].updateTime;\n          highQualityPlaylistFun(searchObj.cat);\n        } else {\n          offset = playList.length;\n          topPlaylistFun(searchObj.cat);\n        }\n      }\n    }}\n  >\n    <MiniPlayListCover\n      name={item.name}\n      coverImgUrl={item.coverImgUrl}\n      id={item.id}\n      width={150}\n      playCount={item.playCount}\n      trackCount={item.trackCount}\n    />\n  </Pagination>\n</div>\n\n<style>\n  .comment-page {\n    padding: 50px 20px;\n    font-size: 16px;\n    color: #333333;\n  }\n</style>\n","<script>\n  import { onMount } from 'svelte';\n  import { onResume, search } from 'svelte-stack-router';\n\n  import { NavBar, Pagination } from '../components/base';\n  import Song from '../components/Song.svelte';\n\n  import { defaultResumableStore, coverImgUrlStore } from '../store/common';\n  import {\n    currentSongStore,\n    playStatusStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    isFMPlayStore,\n    currentSongQualityStore,\n  } from '../store/play';\n\n  import { getAllSongs } from '../api/songer';\n  import { getSongUrl } from '../api/song';\n\n  import { parseQuery, Toast, fullWidth } from '../utils/common';\n\n  $: songList = [];\n  $: hasMore = true;\n  $: offset = 0;\n  $: paginationHeight = 0;\n  let limit = 20;\n  $: searchObj = {};\n  let typeList = [\n    { index: 0, type: 'hot', text: '最热' },\n    { index: 1, type: 'time', text: '最近' },\n  ];\n  $: active = 0;\n  $: order = typeList[0].type;\n\n  onResume(() => {\n    if (!$defaultResumableStore) {\n      songList = [];\n      hasMore = true;\n      offset = 0;\n      active = 0;\n      order = 'hot';\n      searchObj = parseQuery($search);\n      paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n      getAllSongsFun(0, order);\n    }\n  });\n\n  onMount(() => {\n    searchObj = parseQuery($search);\n    paginationHeight = document.documentElement.clientHeight || document.body.clientHeight - 120;\n    getAllSongsFun(0, order);\n  });\n  //热门歌手\n  async function getAllSongsFun(offset, order) {\n    const res = await getAllSongs(searchObj.id, order, limit, offset);\n    if (res.code === 200) {\n      songList = songList.concat(res.songs);\n      hasMore = res.more;\n    }\n  }\n  function playListFun(index) {\n    isFMPlayStore.set(false);\n    localStorage.setItem('isFMPlay', '0');\n    let newcurrentPlayList = $currentPlayListStore;\n    let newPlayListIds = [];\n    for (let r = 0; r < newcurrentPlayList.length; r++) {\n      newPlayListIds.push(newcurrentPlayList[r].id);\n    }\n    if (newPlayListIds.includes(songList[index].id)) {\n      currentSongIndexStore.set(newPlayListIds.indexOf(songList[index].id));\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n    } else {\n      newcurrentPlayList.splice($currentSongIndexStore + 1, 0, songList[index]);\n      currentPlayListStore.set(newcurrentPlayList);\n      let ids = [];\n      for (let r = 0; r < newcurrentPlayList.length; r++) {\n        ids.push(newcurrentPlayList[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n      currentSongIndexStore.set($currentSongIndexStore + 1);\n      getSongUrlFun($currentPlayListStore[$currentSongIndexStore]);\n    }\n  }\n  async function getSongUrlFun(song) {\n    const res = await getSongUrl(song.id); //获取歌单url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        song.al.picUrl = $coverImgUrlStore;\n        currentSongStore.set(song);\n        localStorage.setItem('currentSong', JSON.stringify(song));\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($currentSongIndexStore !== $currentPlayListStore.length - 1)\n          getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  function getSongClick(event) {\n    playListFun(event.detail.index);\n  }\n</script>\n\n<NavBar title={`${searchObj.name}的全部歌曲`} />\n\n<div class=\"comment-page\">\n  <div class=\"type\">\n    {#each typeList as t}\n      <div\n        class=\"type-item\"\n        class:active={active === t.index}\n        on:click={() => {\n          active = t.index;\n          order = t.type;\n          songList = [];\n          hasMore = true;\n          offset = 0;\n          getAllSongsFun(offset, order);\n        }}\n      >\n        {t.text}\n      </div>\n    {/each}\n  </div>\n  <div class=\"active-line\" style=\"left: {20 + ((fullWidth() - 40) / 2) * active}px;\" />\n  <div style=\"margin-top:40px\">\n    <Pagination\n      bottomHeight={70}\n      {paginationHeight}\n      items={songList}\n      let:item\n      let:index\n      {hasMore}\n      on:load={() => {\n        if (hasMore) {\n          offset = songList.length;\n          getAllSongsFun(offset, order);\n        }\n      }}\n    >\n      <Song song={item} {index} customCoverUrl={$coverImgUrlStore + '?param=100y100'} on:songClick={getSongClick} />\n    </Pagination>\n  </div>\n</div>\n\n<style>\n  .comment-page {\n    padding: 50px 0;\n    font-size: 16px;\n    color: #333333;\n  }\n  .type {\n    background-color: #fff;\n    position: fixed;\n    top: 50px;\n    width: 100%;\n    display: flex;\n    z-index: 50;\n  }\n  .type-item {\n    font-weight: bold;\n    padding: 10px 0 8px;\n    text-align: center;\n    flex: 1;\n  }\n  .active {\n    color: var(--primary-text-color);\n  }\n  .active-line {\n    position: fixed;\n    top: 86px;\n    margin-bottom: 10px;\n    height: 2px;\n    width: 167.5px;\n    background-color: var(--primary-text-color);\n    left: 0px;\n    transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n    -webkit-transition: all 0.3s cubic-bezier(0.18, 0.89, 0.26, 1.19);\n  }\n</style>\n","<script>\n  import md from '../../README.md';\n  import { NavBar } from '../components/base';\n</script>\n\n<NavBar title=\"关于\" />\n<div class=\"about\">\n  <div id=\"markdown\">{@html md}</div>\n</div>\n\n<style>\n  .about {\n    padding: 50px 0px 70px;\n  }\n</style>\n","<script>\n  import md from '../../version.md';\n  import { NavBar } from '../components/base';\n</script>\n\n<NavBar title=\"版本记录\" />\n<div class=\"about\">\n  <div id=\"markdown\">{@html md}</div>\n</div>\n\n<style>\n  .about {\n    padding: 50px 0px 70px;\n  }\n</style>\n","import Home from './pages/Home.svelte';\nimport PlayListDetail from './pages/PlayListDetail.svelte';\nimport Login from './pages/Login.svelte';\nimport TodayListDetail from './pages/TodayListDetail.svelte';\nimport LoveListDetail from './pages/LoveListDetail.svelte';\nimport MyAllPlayList from './pages/MyAllPlayList.svelte';\nimport Setting from './pages/Setting.svelte';\nimport Search from './pages/Search.svelte';\nimport Artist from './pages/Artist.svelte';\nimport BrSelect from './pages/BrSelect.svelte';\nimport MusicComment from './pages/MusicComment.svelte';\nimport AllCollectSongers from './pages/AllCollectSongers.svelte';\nimport SongerDesc from './pages/SongerDesc.svelte';\nimport MoreSonger from './pages/MoreSonger.svelte';\nimport MoreList from './pages/MoreList.svelte';\nimport MoreSong from './pages/MoreSong.svelte';\nimport About from './pages/About.svelte';\nimport Version from './pages/Version.svelte';\n\nconst routes = {\n  '/playlist': PlayListDetail,\n  '/todayListDetail': TodayListDetail,\n  '/loveListDetail': LoveListDetail,\n  '/myAllPlayList': MyAllPlayList,\n  '/login': Login,\n  '/setting': Setting,\n  '/search': Search,\n  '/artist': Artist,\n  '/brSelect': BrSelect,\n  '/comments': MusicComment,\n  '/allCollectSongers': AllCollectSongers,\n  '/songerDesc': SongerDesc,\n  '/moreSonger': MoreSonger,\n  '/moreList': MoreList,\n  '/moreSong': MoreSong,\n  '/about': About,\n  '/version': Version,\n  '*': Home,\n};\n\nexport default routes;\n","<script>\n  import { onMount } from 'svelte';\n  import { StackRouter, slide } from 'svelte-stack-router';\n  import isStandalone from 'is-standalone';\n\n  import Play from './components/Play.svelte';\n  import MiniPlay from './components/MiniPlay.svelte';\n  import Loading from './components/Loading.svelte';\n  import { TabBar } from './components/base';\n\n  import { getSongUrl, personalFM, getSongDetail } from './api/song';\n  import { userPlaylist, userLikedSongsIDs, likedArtists } from './api/user';\n\n  import routes from './routes';\n\n  import {\n    isLoadingStore,\n    isHomePageStore,\n    restoreScrollStore,\n    defaultResumableStore,\n    isLoginStore,\n  } from './store/common';\n  import {\n    currentSongStore,\n    currentPlayListStore,\n    currentSongIndexStore,\n    playIsMaxStore,\n    playIsMinStore,\n    playStatusStore,\n    maxPlayToTopStore,\n    isFMPlayStore,\n    FMPlayStore,\n    FMPlayNextStore,\n    currentTimeStore,\n    mainCoverTypeStore,\n    playRepeatModelStore,\n    currentSongQualityStore,\n  } from './store/play';\n  import { userInfoStore, userLikeSongIdsStore } from './store/user';\n\n  import { timeToMinute, Toast, Alert, Confirm, getUserAgentInfo, getOsInfo } from './utils/common';\n\n  let audioDOM;\n  let audioDOMIsRander = false;\n  let endTime = 0;\n  let currentTime = '0:00';\n  let currentTimeLong = 0;\n\n  window.addEventListener('hashchange', function (event) {\n    if (event.newURL.indexOf('#') < 0 || event.newURL.split('#')[1] === '' || event.newURL.split('#')[1] === '/') {\n      isHomePageStore.set(true);\n    } else {\n      isHomePageStore.set(false);\n    }\n    if (event.oldURL.indexOf('#') > 0 && event.oldURL.split('#')[1] === '/login') {\n      location.reload();\n    }\n  });\n\n  // history.pushState(null, null, location.href);\n  window.addEventListener('popstate', function (event) {\n    if ($playIsMaxStore) {\n      playIsMaxStore.set(false);\n      mainCoverTypeStore.set('cover');\n      maxPlayToTopStore.set(window.screen.height + 'px');\n    }\n  });\n\n  // pushHistory();\n\n  // window.addEventListener(\n  //   \"popstate\",\n  //   function (e) {\n  //     console.log(11, e);\n  //     // $(\".onback\").show();\n  //   },\n  //   false\n  // );\n\n  // function pushHistory() {\n  //   var state = {\n  //     title: \"title\",\n  //     url: \"#\",\n  //   };\n  //   window.history.pushState(state, \"title\", \"#\");\n  // }\n\n  onMount(() => {\n    if ($isLoginStore) {\n      userPlaylistFun($userInfoStore);\n      likedArtistsFun();\n    }\n    // 开启页面重新请求播放列表数据\n    if (localStorage.getItem('localPlayList')) {\n      let localPlayList = JSON.parse(localStorage.getItem('localPlayList'));\n      if (localPlayList.length > 300) {\n        localPlayList = localPlayList.slice(0, 300);\n      }\n      getLocalPlayListFun(localPlayList.join(','));\n    }\n    if (location.href.indexOf('#') < 0 || location.href.split('#')[1] === '' || location.href.split('#')[1] === '/') {\n      isHomePageStore.set(true);\n    } else {\n      isHomePageStore.set(false);\n    }\n    window.audioDOM = audioDOM;\n    window.audioDOM.addEventListener('canplaythrough', function () {\n      // 音频可以播放了\n      audioDOMIsRander = true;\n      endTime = '-' + timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n    });\n    window.audioDOM.addEventListener('timeupdate', function () {\n      currentTimeStore.set(window.audioDOM.currentTime);\n      // 更新与播放进度相关的内容\n      currentTime = timeToMinute(window.audioDOM.currentTime);\n      currentTimeLong = (window.audioDOM.currentTime / window.audioDOM.duration) * 100;\n      endTime = '-' + timeToMinute(window.audioDOM.duration - window.audioDOM.currentTime);\n    });\n    window.audioDOM.addEventListener(\n      'ended',\n      function () {\n        if ($isFMPlayStore) {\n          //私人FM播放\n          mainCoverTypeStore.set('cover');\n          getSongUrlFun($FMPlayNextStore, 'fm');\n        } else {\n          if ($playRepeatModelStore != 'repeatOnce' && $currentSongIndexStore === $currentPlayListStore.length - 1) {\n            Toast('已经是最后一首了', 2000);\n          } else {\n            if ($playRepeatModelStore === 'shuffle') {\n              //随机\n              let index = Math.floor(Math.random() * ($currentPlayListStore.length - 1));\n              if ($mainCoverTypeStore === 'lyric') mainCoverTypeStore.set('cover');\n              getSongUrlFun($currentPlayListStore[index], 'shuffle', index);\n            } else if ($playRepeatModelStore === 'repeatOnce') {\n              //单曲循环\n              if ($mainCoverTypeStore === 'lyric') mainCoverTypeStore.set('cover');\n              getSongUrlFun($currentPlayListStore[$currentSongIndexStore], 'once', $currentSongIndexStore);\n            } else {\n              if ($mainCoverTypeStore === 'lyric') mainCoverTypeStore.set('cover');\n              getSongUrlFun($currentPlayListStore[$currentSongIndexStore + 1]);\n            }\n          }\n        }\n      },\n      false\n    );\n    //解决长时间不播放URL失效问题(暂定30分钟过期)\n    if ((new Date().getTime() - Number(localStorage.getItem('pauseTimes'))) / 1000 / 60 > 30) {\n      window.audioDOM.src = `https://music.163.com/song/media/outer/url?id=${$currentSongStore.id}.mp3`;\n    } else {\n      window.audioDOM.src = $currentSongStore.url;\n    }\n    // window.audioDOM.src = \"https://m8.music.126.net/20210907010112/541ee038536db12045e4a99d565becd8/ymusic/5614/195d/ad51/33fff191fffc2fd5da6c94d71e7777ef.mp3\";\n    window.audioDOM.load(); //解决iOS canplaythrough不生效问题\n  });\n  //获取所有歌曲详情\n  async function getLocalPlayListFun(songIds) {\n    const res = await getSongDetail(songIds);\n    if (res.code === 200) {\n      let songs = res.songs;\n      if (!songIds.split(',').includes($currentSongStore.id.toString())) {\n        songs.unshift($currentSongStore);\n        currentSongIndexStore.set(0);\n      } else {\n        currentSongIndexStore.set(songIds.split(',').indexOf($currentSongStore.id.toString()));\n      }\n      currentPlayListStore.set(songs);\n      let ids = [];\n      for (let r = 0; r < songs.length; r++) {\n        ids.push(songs[r].id);\n      }\n      localStorage.setItem('localPlayList', JSON.stringify(ids));\n    }\n  }\n  //获取收藏的歌手\n  async function likedArtistsFun() {\n    const res = await likedArtists({ limit: 2000 });\n    if (res.code === 200) {\n      let ids = [];\n      for (let i = 0; i < res.data.length; i++) {\n        ids.push(res.data[i].id);\n      }\n      localStorage.setItem('useLoveSongerIds', JSON.stringify(ids));\n    } else {\n      Alert('获取喜爱歌手失败');\n    }\n  }\n  async function getSongUrlFun(song, type, index) {\n    const res = await getSongUrl(song.id); //获取歌曲url\n    if (res.code === 200) {\n      if (res.data[0].url) {\n        song.url = res.data[0].url.replace(/^http:/, 'https:');\n        if (res.data[0].fee === 1 && res.data[0].freeTrialInfo != null) {\n          currentSongQualityStore.set('试听');\n        } else if (res.data[0].type === 'flac') {\n          currentSongQualityStore.set('FLAC');\n        } else {\n          currentSongQualityStore.set(res.data[0].br);\n        }\n        window.audioDOM.src = song.url;\n        window.audioDOM.play();\n        playStatusStore.set(true);\n        if ($isFMPlayStore) {\n          //私人FM播放\n          personalFMFun();\n          FMPlayStore.set(song);\n          currentSongStore.set(song);\n          currentPlayListStore.set([$FMPlayStore]);\n          currentSongIndexStore.set(0);\n          localStorage.setItem('currentSong', JSON.stringify(song));\n        } else {\n          if (type === 'shuffle') {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set(index);\n          } else if (type === 'once') {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set(index);\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          } else {\n            currentSongStore.set(song);\n            localStorage.setItem('currentSong', JSON.stringify(song));\n            currentSongIndexStore.set($currentSongIndexStore + 1);\n            if ($currentSongIndexStore !== $currentPlayListStore.length - 1) {\n              getSongUrl($currentPlayListStore[$currentSongIndexStore + 1].id);\n            }\n          }\n        }\n      } else {\n        Toast(`😂 无法播放「${song.name}」!可能是版权原因......吧!请播放下一首。`, 2000);\n      }\n    }\n  }\n  //私人FM\n  async function personalFMFun() {\n    const res = await personalFM();\n    if (res.code === 200) {\n      res.data[0].al = res.data[0].album;\n      res.data[0].ar = res.data[0].artists;\n      res.data[0].alia = res.data[0].alias;\n      FMPlayNextStore.set(res.data[0]);\n    }\n  }\n  async function userPlaylistFun(login) {\n    //获取用户收藏歌单ID列表,用于判断是否已经收藏\n    const res = await userPlaylist({\n      uid: login.account.id,\n      limit: 10000,\n      offset: 0,\n    });\n    if (res.code === 200) {\n      let ids = [];\n      for (let i = 0; i < res.playlist.length; i++) {\n        ids.push(res.playlist[i].id);\n      }\n      localStorage.setItem('usePlayListIds', JSON.stringify(ids));\n      userLikedSongsIDsFun(login);\n    } else {\n      Alert('获取收藏歌单失败');\n    }\n  }\n  async function userLikedSongsIDsFun(login) {\n    //获取用户喜爱歌曲ID列表,用于判断是否已经收藏\n    const res = await userLikedSongsIDs(login.account.id);\n    if (res.code === 200) {\n      let ids = [];\n      for (let i = 0; i < res.ids.length; i++) {\n        ids.push(res.ids[i]);\n      }\n      userLikeSongIdsStore.set(JSON.stringify(ids));\n      localStorage.setItem('useLoveSongIds', JSON.stringify(ids));\n    } else {\n      Alert('获取喜爱歌曲失败');\n    }\n  }\n</script>\n\n<audio bind:this={audioDOM} src=\"\" />\n\n<StackRouter\n  {routes}\n  restoreScroll={$restoreScrollStore}\n  transitionFn={slide(300)}\n  on:navigation-start={e => {\n    // 0--前进,2--后退,1--替换\n    if (e.detail.navigationType === 0) {\n      defaultResumableStore.set(false);\n    } else if (e.detail.navigationType === 2) {\n      defaultResumableStore.set(true);\n    } else {\n      defaultResumableStore.set(false);\n    }\n  }}\n/>\n\n{#if $playIsMinStore && audioDOMIsRander}\n  <MiniPlay {currentTimeLong} />\n{/if}\n<Play {endTime} {currentTime} {currentTimeLong} />\n<TabBar />\n{#if $isLoadingStore}\n  <Loading />\n{/if}\n\n<style>\n</style>\n","import App from './App.svelte';\n\nconst rootElement = document.documentElement;\nconst clientWidth = rootElement.clientWidth;\nconst vM = 750;\nconst vFontSize = 100;\n\nrootElement.style.fontSize = (vFontSize * clientWidth) / vM + 'px';\nlocalStorage.setItem('fullWidth', clientWidth);\n\nconst app = new App({\n  target: document.body,\n  props: {\n    name: 'world',\n  },\n});\n\nexport default app;\n"],"names":["bind","location","search","get","this","Toast","throttle","linear","require$$0","require$$1","defaults","validators","InterceptorManager","Cancel","Axios","axios","require$$2","require$$3","require$$4","request","undefined","global","require","QrCode","md"],"mappings":";;;;;IAAA,SAAS,IAAI,GAAG,GAAG;IACnB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;IAC1B;IACA,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG;IACvB,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IAID,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,IAAI,OAAO,CAAC,aAAa,GAAG;IAC5B,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,KAAK,CAAC;IACN,CAAC;IACD,SAAS,GAAG,CAAC,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,WAAW,CAAC,KAAK,EAAE;IAC5B,IAAI,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;IACvC,CAAC;IACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,oBAAoB,CAAC;IACzB,SAAS,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE;IAC/B,QAAQ,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK;IACL,IAAI,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,oBAAoB,CAAC,IAAI,CAAC;IACrD,CAAC;IAID,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;IAChE,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC9E,KAAK;IACL,CAAC;IACD,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE;IACxC,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;IACjE,CAAC;IACD,SAAS,eAAe,CAAC,KAAK,EAAE;IAChC,IAAI,IAAI,KAAK,CAAC;IACd,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,SAAS,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,UAAU,EAAE;IACpB,QAAQ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,QAAQ,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACxD,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IAC9B,UAAU,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,UAAU,OAAO,CAAC,GAAG,CAAC;IACtB,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1D,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;IAC7B,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACtC,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;IAC9B,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7C,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,SAAS,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE;IAClG,IAAI,IAAI,YAAY,EAAE;IACtB,QAAQ,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClG,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK;IACL,CAAC;IAKD,SAAS,wBAAwB,CAAC,OAAO,EAAE;IAC3C,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;IACjC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IACzC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,SAAS,sBAAsB,CAAC,KAAK,EAAE;IACvC,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;IACtB,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK;IACzB,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;IACxB,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE;IACzC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;IACxC,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IAyBD,SAAS,gBAAgB,CAAC,aAAa,EAAE;IACzC,IAAI,OAAO,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9F,CAAC;AACD;IACA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAChD,IAAI,GAAG,GAAG,SAAS;IACnB,MAAM,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;IACpC,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,SAAS,GAAG,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAQ7D;IACA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;IAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAC1B,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;IACrB,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAOD;IACA;IACA;IACA;IACA,SAAS,IAAI,CAAC,QAAQ,EAAE;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,IAAI,OAAO;IACX,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI;IACxC,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC;IACV,QAAQ,KAAK,GAAG;IAChB,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS;IACT,KAAK,CAAC;IACN,CAAC;IAuGD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAUD,SAAS,kBAAkB,CAAC,IAAI,EAAE;IAClC,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,QAAQ,CAAC;IACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5E,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC3B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,SAAS,uBAAuB,CAAC,IAAI,EAAE;IACvC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAyBD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACtC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IASD,SAAS,MAAM,CAAC,IAAI,EAAE;IACtB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,SAAS,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE;IAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;IACzB,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAgBD,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,IAAI,OAAO,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,IAAI,CAAC,IAAI,EAAE;IACpB,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IA6BD,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,KAAK;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAsBD,SAAS,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE;IAC9C,IAAI,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;IAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,KAAK;IACL,CAAC;IAiCD,SAAS,QAAQ,CAAC,OAAO,EAAE;IAC3B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IA4HD,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;IACvC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,CAAC;IASD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC;IA6ED,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE;IACrD,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;IAID,MAAM,OAAO,CAAC;IACd,IAAI,WAAW,GAAG;IAClB,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IACrB,YAAY,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9C,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAC5B,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS;IACT,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/C,KAAK;IACL,IAAI,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,GAAG;IACR,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK;IACL,CAAC;AAmCD;IACA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf;IACA,SAAS,IAAI,CAAC,GAAG,EAAE;IACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,IAAI,OAAO,CAAC,EAAE;IACd,QAAQ,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE;IACrE,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;IACvC,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,SAAS,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAClH,IAAI,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IAC1E,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;IAC9B,QAAQ,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,QAAQ,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxF,KAAK;IACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChH,IAAI,MAAM,IAAI,CAAC,CAAC;IAChB,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;IACjC,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI;IACrC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IACxC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,CAAC;IACN,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,IAAI,IAAI,OAAO,EAAE;IACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,MAAM,IAAI,OAAO,CAAC;IAC1B,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,WAAW,EAAE,CAAC;IAC1B,KAAK;IACL,CAAC;IACD,SAAS,WAAW,GAAG;IACvB,IAAI,GAAG,CAAC,MAAM;IACd,QAAQ,IAAI,MAAM;IAClB,YAAY,OAAO;IACnB,QAAQ,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IACnC,YAAY,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACvD,YAAY,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/C,YAAY,OAAO,CAAC,EAAE;IACtB,gBAAgB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzC,YAAY,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC;IACpC,SAAS,CAAC,CAAC;IACX,QAAQ,WAAW,CAAC,KAAK,EAAE,CAAC;IAC5B,KAAK,CAAC,CAAC;IACP,CAAC;AAsED;IACA,IAAI,iBAAiB,CAAC;IACtB,SAAS,qBAAqB,CAAC,SAAS,EAAE;IAC1C,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,CAAC;IACD,SAAS,qBAAqB,GAAG;IACjC,IAAI,IAAI,CAAC,iBAAiB;IAC1B,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5E,IAAI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAID,SAAS,OAAO,CAAC,EAAE,EAAE;IACrB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,SAAS,SAAS,CAAC,EAAE,EAAE;IACvB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,SAAS,qBAAqB,GAAG;IACjC,IAAI,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;IAC7B,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,SAAS,EAAE;IACvB;IACA;IACA,YAAY,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI;IAC5C,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK,CAAC;IACN,CAAC;IAaD;IACA;IACA;IACA,SAAS,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE;IAClC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,SAAS,EAAE;IACnB;IACA,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,KAAK;IACL,CAAC;AACD;IACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,SAAS,eAAe,GAAG;IAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC3B,QAAQ,gBAAgB,GAAG,IAAI,CAAC;IAChC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK;IACL,CAAC;IACD,SAAS,IAAI,GAAG;IAChB,IAAI,eAAe,EAAE,CAAC;IACtB,IAAI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,SAAS,mBAAmB,CAAC,EAAE,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,kBAAkB,CAAC,EAAE,EAAE;IAChC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,SAAS,KAAK,GAAG;IACjB,IAAI,IAAI,QAAQ;IAChB,QAAQ,OAAO;IACf,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,GAAG;IACP;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClD,YAAY,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,YAAY,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,QAAQ,OAAO,iBAAiB,CAAC,MAAM;IACvC,YAAY,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC;IACtC;IACA;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7D,YAAY,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC/C;IACA,gBAAgB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS;IACT,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,KAAK,QAAQ,gBAAgB,CAAC,MAAM,EAAE;IACtC,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;IACnC,QAAQ,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC;IAChC,KAAK;IACL,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IACD,SAAS,MAAM,CAAC,EAAE,EAAE;IACpB,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IACpB,QAAQ,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,KAAK;IACL,CAAC;AACD;IACA,IAAI,OAAO,CAAC;IACZ,SAAS,IAAI,GAAG;IAChB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM;IAC3B,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC;IACX,SAAS,YAAY,GAAG;IACxB,IAAI,MAAM,GAAG;IACb,QAAQ,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,EAAE;IACb,QAAQ,CAAC,EAAE,MAAM;IACjB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IACnB,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;IACxD,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,YAAY,OAAO;IACnB,QAAQ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;IAC5B,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,IAAI,QAAQ,EAAE;IAC1B,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,CAAC;IACD,MAAM,eAAe,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,SAAS,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;IAChD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,IAAI,cAAc,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,OAAO,GAAG;IACvB,QAAQ,IAAI,cAAc;IAC1B,YAAY,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,KAAK;IACL,IAAI,SAAS,EAAE,GAAG;IAClB,QAAQ,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,eAAe,CAAC;IAC7G,QAAQ,IAAI,GAAG;IACf,YAAY,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1F,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,QAAQ,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IACzC,QAAQ,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,QAAQ,OAAO,GAAG,IAAI,CAAC;IACvB,QAAQ,mBAAmB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,QAAQ,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,IAAI,GAAG,IAAI,QAAQ,EAAE;IACrC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,oBAAoB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,oBAAoB,OAAO,EAAE,CAAC;IAC9B,oBAAoB,OAAO,OAAO,GAAG,KAAK,CAAC;IAC3C,iBAAiB;IACjB,gBAAgB,IAAI,GAAG,IAAI,UAAU,EAAE;IACvC,oBAAoB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,UAAU,IAAI,QAAQ,CAAC,CAAC;IACpE,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,OAAO,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO;IACX,QAAQ,KAAK,GAAG;IAChB,YAAY,IAAI,OAAO;IACvB,gBAAgB,OAAO;IACvB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;IACrC,gBAAgB,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,EAAE,EAAE,CAAC;IACrB,aAAa;IACb,SAAS;IACT,QAAQ,UAAU,GAAG;IACrB,YAAY,OAAO,GAAG,KAAK,CAAC;IAC5B,SAAS;IACT,QAAQ,GAAG,GAAG;IACd,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO,EAAE,CAAC;IAC1B,gBAAgB,OAAO,GAAG,KAAK,CAAC;IAChC,aAAa;IACb,SAAS;IACT,KAAK,CAAC;IACN,CAAC;AAoPD;IACA,MAAM,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;IAC9C,MAAM,MAAM;IACZ,MAAM,OAAO,UAAU,KAAK,WAAW;IACvC,UAAU,UAAU;IACpB,UAAU,MAAM,CAAC,CAAC;AAwGlB;IACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,EAAE;IACf,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,oBAAoB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IACzC,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,oBAAoB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,iBAAiB;IACjB,aAAa;IACb,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;IACnC,QAAQ,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC;IAC5B,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,iBAAiB,CAAC,YAAY,EAAE;IACzC,IAAI,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;IACzF,CAAC;AAmJD;IACA,SAASA,MAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;IAC7B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC7C,QAAQ,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,KAAK,EAAE;IACjC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAID,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1E,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,aAAa,EAAE;IACxB;IACA,QAAQ,mBAAmB,CAAC,MAAM;IAClC,YAAY,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzE,YAAY,IAAI,UAAU,EAAE;IAC5B,gBAAgB,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IACnD,aAAa;IACb,iBAAiB;IACjB;IACA;IACA,gBAAgB,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvC,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IACD,SAAS,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD;IACA;IACA,QAAQ,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;IACpB,KAAK;IACL,CAAC;IACD,SAAS,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE;IAClC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;IACtC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,eAAe,EAAE,CAAC;IAC1B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK;IACL,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,SAAS,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAC5G,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC/C,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG;IAC9B,QAAQ,QAAQ,EAAE,IAAI;IACtB,QAAQ,GAAG,EAAE,IAAI;IACjB;IACA,QAAQ,KAAK;IACb,QAAQ,MAAM,EAAE,IAAI;IACpB,QAAQ,SAAS;IACjB,QAAQ,KAAK,EAAE,YAAY,EAAE;IAC7B;IACA,QAAQ,QAAQ,EAAE,EAAE;IACpB,QAAQ,UAAU,EAAE,EAAE;IACtB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,YAAY,EAAE,EAAE;IACxB,QAAQ,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClG;IACA,QAAQ,SAAS,EAAE,YAAY,EAAE;IACjC,QAAQ,KAAK;IACb,QAAQ,UAAU,EAAE,KAAK;IACzB,QAAQ,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI;IACxD,KAAK,CAAC;IACN,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,GAAG,QAAQ;IACrB,UAAU,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK;IACxE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE;IACnE,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,gBAAgB,IAAI,KAAK;IACzB,oBAAoB,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,YAAY,OAAO,GAAG,CAAC;IACvB,SAAS,CAAC;IACV,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B;IACA,IAAI,EAAE,CAAC,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;IAE7B,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,OAAO,CAAC,KAAK;IACzB,YAAY,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1F,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IA8CD;IACA;IACA;IACA,MAAM,eAAe,CAAC;IACtB,IAAI,QAAQ,GAAG;IACf,QAAQ,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE;IACxB,QAAQ,MAAM,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtF,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IAC5B,gBAAgB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC;IACV,KAAK;IACL,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC9C,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IACtC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,KAAK;IACL,CAAC;AACD;IACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;IACpC,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;IAClC,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1C,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAKD,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAgBD,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE;IAC9F,IAAI,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACvG,IAAI,IAAI,mBAAmB;IAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,IAAI,oBAAoB;IAC5B,QAAQ,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,IAAI,YAAY,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,MAAM;IACjB,QAAQ,YAAY,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,YAAY,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE;IACA,QAAQ,YAAY,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC3B,IAAI,YAAY,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAKD,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;IAClC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;IAC/B,QAAQ,OAAO;IACf,IAAI,YAAY,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,SAAS,sBAAsB,CAAC,GAAG,EAAE;IACrC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE;IACzF,QAAQ,IAAI,GAAG,GAAG,gDAAgD,CAAC;IACnE,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;IAC3E,YAAY,GAAG,IAAI,+DAA+D,CAAC;IACnF,SAAS;IACT,QAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAC1C,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC9C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACtC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA,MAAM,kBAAkB,SAAS,eAAe,CAAC;IACjD,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAChE,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,SAAS;IACT,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,QAAQ,GAAG;IACf,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM;IAC9B,YAAY,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC5D,SAAS,CAAC;IACV,KAAK;IACL,IAAI,cAAc,GAAG,GAAG;IACxB,IAAI,aAAa,GAAG,GAAG;IACvB;;ICp9De,mBAAQ,EAAE,GAAG,EAAE,KAAK,EAAE;IACrC,CAAC,IAAI,GAAG,YAAY,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AACvB;IACA,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE;IAC3B,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;IACjB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,OAAO,IAAI,OAAO,CAAC;IACtB,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE;IACxB,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACvE,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAC7D,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxE,GAAG,MAAM;IACT,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;IACxB,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO;IACR,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC;IACzE,EAAE,CAAC;IACH;;ICtBA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;IAChC,IAAI,OAAO;IACX,QAAQ,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;IACnD,KAAK,CAAC;IACN,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;IACvC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;IAC9C,YAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC3D,gBAAgB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;IACtD,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,iBAAiB;IACjB,gBAAgB,IAAI,SAAS,EAAE;IAC/B,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzE,wBAAwB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,qBAAqB;IACrB,oBAAoB,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,SAAS,MAAM,CAAC,EAAE,EAAE;IACxB,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;IAC/C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,QAAQ,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACpC,YAAY,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACtC,SAAS;IACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAQ,OAAO,MAAM;IACrB,YAAY,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACxC,gBAAgB,IAAI,EAAE,CAAC;IACvB,gBAAgB,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC;IACV,KAAK;IACL,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,YAAY,GAAG,MAAM;IAC/B,UAAU,CAAC,MAAM,CAAC;IAClB,UAAU,MAAM,CAAC;IACjB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,KAAK;IAC5C,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;IAC3B,QAAQ,MAAM,IAAI,GAAG,MAAM;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO;IACvB,aAAa;IACb,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa;IACb,iBAAiB;IACjB,gBAAgB,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,aAAa;IACb,SAAS,CAAC;IACV,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;IACzF,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9B,YAAY,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,YAAY,IAAI,MAAM,EAAE;IACxB,gBAAgB,IAAI,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM;IACjB,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC,CAAC;IACZ,QAAQ,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,OAAO,SAAS,IAAI,GAAG;IAC/B,YAAY,OAAO,CAAC,aAAa,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,KAAK,CAAC,CAAC;IACP;;ICpGO,IAAI,mBAAmB,CAAC;IAC/B,CAAC,UAAU,mBAAmB,EAAE;IAChC,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IAClE,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAChE,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IACtE,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,qBAAqB,CAAC;IACjC,CAAC,UAAU,qBAAqB,EAAE;IAClC,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IACtE,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5E,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IACxE,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,IAAI,cAAc,CAAC;IAC1B,CAAC,UAAU,cAAc,EAAE;IAC3B,IAAI,cAAc,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC;IAClF,IAAI,cAAc,CAAC,cAAc,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,sBAAsB,CAAC;IACxF,IAAI,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IACpE,IAAI,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAC9D,CAAC,EAAE,cAAc,KAAK,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,oBAAoB,CAAC;IAChC,CAAC,UAAU,oBAAoB,EAAE;IACjC,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAC5E,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IACtE,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1E,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IACpF,CAAC,EAAE,oBAAoB,KAAK,oBAAoB,GAAG,EAAE,CAAC,CAAC;;ICxBhD,SAAS,cAAc,GAAG;IACjC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,qBAAqB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IACM,SAAS,KAAK,CAAC,EAAE,EAAE;IAC1B,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IACM,SAAS,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE;IACxD,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE;IACrD,QAAQ,OAAO,EAAE,IAAI;IACrB,QAAQ,UAAU,EAAE,IAAI;IACxB,KAAK,CAAC,CAAC,CAAC;IACR;;ICZA;IAGA,SAAS,YAAY,CAAC,OAAO,EAAE;IAC/B,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;IACjC,IAAI,OAAO,QAAQ,CAAC;IACpB,CAAC;IACM,SAAS,yBAAyB,CAAC,QAAQ,EAAE,eAAe,EAAE;IACrE,IAAI,OAAO,OAAO,sBAAsB,KAAK;IAC7C,QAAQ,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC/C,QAAQ,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,QAAQ,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9C,QAAQ,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,QAAQ,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,GAAG,sBAAsB,CAAC;IAC3G,QAAQ,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9H,QAAQ,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClD,QAAQ,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,QAAQ,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACzD,YAAY,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC9G,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACtC,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,YAAY,MAAM,cAAc,EAAE,CAAC;IACnC,YAAY,MAAM,cAAc,EAAE,CAAC;IACnC,YAAY,MAAM,cAAc,EAAE,CAAC;IACnC,SAAS;IACT,QAAQ,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5C,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,cAAc,KAAK,QAAQ,EAAE;IAC3F;IACA;IACA;IACA,YAAY,MAAM,SAAS,GAAG,CAAC,CAAC;IAChC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IACzC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,sBAAsB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE;IAC3E,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;IAC5C,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjI,QAAQ,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,QAAQ,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvD,KAAK,CAAC;IACN,CAAC;IACM,SAAS,KAAK,CAAC,QAAQ,EAAE;IAChC,IAAI,OAAO,yBAAyB,CAAC,QAAQ,EAAE;IAC/C,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,cAAc,GAAG,KAAK,YAAY,CAAC,CAAC;AACpF;AACA;AACA;AACA,KAAK,EAAE,SAAS,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,cAAc,KAAK,cAAc,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC;AACrF;AACA,KAAK,EAAE,WAAW,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,WAAW,CAAC;AACnB;AACA;AACA;AACA,GAAG,CAAC,CAAC;IACL,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,GAAG,KAAK,YAAY,CAAC,CAAC;AAC1F,KAAK,EAAE,WAAW,CAAC;AACnB,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC;AAC3K,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC;AACxK;AACA,GAAG,CAAC,CAAC;IACL,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,YAAY,CAAC,CAAC;AACzE,KAAK,EAAE,SAAS,CAAC;AACjB,2BAA2B,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAClH;AACA;AACA;AACA,KAAK,EAAE,WAAW,CAAC;AACnB,2BAA2B,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC7E;AACA,2BAA2B,EAAE,cAAc,KAAK,cAAc,CAAC,UAAU,GAAG,EAAE,GAAG,GAAG,CAAC;AACrF;AACA,GAAG,CAAC,CAAC;IACL,KAAK,CAAC,CAAC;IACP,CAAC;IACM,SAAS,IAAI,CAAC,QAAQ,EAAE;IAC/B,IAAI,OAAO,yBAAyB,CAAC,QAAQ,EAAE;IAC/C,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,KAAK,YAAY,CAAC,CAAC;AACnF;AACA;AACA;AACA,KAAK,EAAE,SAAS,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,cAAc,KAAK,cAAc,CAAC,UAAU,GAAG,EAAE,GAAG,GAAG,CAAC;AACrF;AACA,KAAK,EAAE,WAAW,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,WAAW,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC,CAAC;IACL,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,GAAG,KAAK,YAAY,CAAC,CAAC;AAC1F,KAAK,EAAE,WAAW,CAAC;AACnB,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC;AAC3K,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC;AACxK;AACA,GAAG,CAAC,CAAC;IACL,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,YAAY,CAAC,CAAC;AACzE,KAAK,EAAE,SAAS,CAAC;AACjB,2BAA2B,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAClH;AACA;AACA;AACA,KAAK,EAAE,WAAW,CAAC;AACnB,2BAA2B,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC7E;AACA,2BAA2B,EAAE,cAAc,KAAK,cAAc,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC;AACrF;AACA,GAAG,CAAC,CAAC;IACL,KAAK,CAAC,CAAC;IACP,CAAC;IACM,SAAS,WAAW,GAAG;IAC9B,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK;IAC3B,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5C,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACjC,KAAK,CAAC;IACN;;IC9IA,MAAM,MAAM,GAAG;IACf,IAAI,gBAAgB,EAAE,IAAI;IAC1B,IAAI,OAAO,EAAE,IAAI;IACjB,IAAI,aAAa,EAAE,IAAI;IACvB,IAAI,MAAM,EAAE,EAAE;IACd,IAAI,UAAU,EAAE,IAAI;IACpB,IAAI,YAAY,EAAE,WAAW,EAAE;IAC/B,IAAI,QAAQ,EAAE,IAAI;IAClB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC;IACqB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;IACtD;IACA,SAAS,WAAW,GAAG;IACvB,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;IACxB,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9F,QAAQ,OAAO,QAAQ,CAAC;IACxB,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnF,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;IACD;IACA,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,KAAK;IACnD,IAAI,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAChC,IAAI,MAAM,cAAc,GAAG,YAAY;IACvC,QAAQ,IAAI,mBAAmB,EAAE;IACjC,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAC1C,QAAQ,IAAI,gBAAgB,KAAK,WAAW,EAAE;IAC9C,YAAY,gBAAgB,GAAG,WAAW,CAAC;IAC3C,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,SAAS;IACT,KAAK,CAAC;IACN,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACxD,IAAI,OAAO,SAAS,IAAI,GAAG;IAC3B,QAAQ,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/D,KAAK,CAAC;IACN,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACO,MAAMC,UAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IACvE;IACA,SAAS,WAAW,CAAC,QAAQ,EAAE;IAC/B,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE;IACpC,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC1D,KAAK;IACL,IAAI,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD;IACA;IACA;IACwB,OAAO,CAACA,UAAQ,EAAE,WAAW,EAAE;IACvD;IACA,SAAS,SAAS,CAAC,QAAQ,EAAE;IAC7B,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE;IACpC,QAAQ,OAAO,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACvD,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;IACD;IACA;IACA;IACO,MAAMC,QAAM,GAAG,OAAO,CAACD,UAAQ,EAAE,SAAS,CAAC,CAAC;IACnD;IACA,IAAI,oBAAoB,CAAC;IACzB,eAAe,mBAAmB,CAAC,QAAQ,EAAE;IAC7C,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;IACf;IACA;IACA,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC;IACpB,IAAI,OAAO,YAAY,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;IAC3D,QAAQ,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,IAAI,YAAY,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;IAC/C,QAAQ,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACxD,KAAK;IACL,CAAC;IACD,SAAS,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;IACzC,IAAI,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,KAAK;IACrD,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,SAAS,GAAG,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/G,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IACjE,CAAC;IACD;IACA,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,SAAS,YAAY,CAAC,KAAK,EAAE;IAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,YAAY,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,eAAe,YAAY,GAAG;IAC9B,IAAI,IAAI,cAAc,EAAE;IACxB,QAAQ,OAAO;IACf,KAAK;IACL,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;IAClC,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IACxC,QAAQ,QAAQ,IAAI,CAAC,IAAI;IACzB,YAAY,KAAK,oBAAoB,CAAC,QAAQ;IAC9C,gBAAgB,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,YAAY,KAAK,oBAAoB,CAAC,KAAK;IAC3C,gBAAgB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,gBAAgB,MAAM;IACtB,YAAY,KAAK,oBAAoB,CAAC,OAAO;IAC7C,gBAAgB,MAAM,OAAO,EAAE,CAAC;IAChC,gBAAgB,MAAM;IACtB,YAAY,KAAK,oBAAoB,CAAC,YAAY;IAClD,gBAAgB,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,gBAAgB,MAAM;IACtB;IACA,SAAS;IACT,KAAK;IACL,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD;IACA,IAAI,oBAAoB,GAAG,IAAI,CAAC;IACzB,SAAS,kBAAkB,CAAC,UAAU,EAAE;IAC/C,IAAI,YAAY,CAAC;IACjB,QAAQ,IAAI,EAAE,oBAAoB,CAAC,YAAY;IAC/C,QAAQ,OAAO,EAAE,UAAU;IAC3B,KAAK,CAAC,CAAC;IACP,CAAC;IACD,SAAS,YAAY,CAAC,UAAU,EAAE;IAClC,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3B,SAAS,OAAO,CAAC,CAAC,GAAG,KAAK;IAC1B,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;IAC3C,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,eAAe,KAAK,MAAM,CAAC,OAAO,EAAE;IAC5C,QAAQ,MAAM,eAAe,GAAG,WAAW,EAAE,CAAC;IAC9C,QAAQ,IAAIE,eAAG,CAAC,SAAS,CAAC,KAAK,eAAe,EAAE;IAChD,YAAY,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL,IAAI,IAAI,mBAAmB,IAAI,MAAM,CAAC,OAAO,EAAE;IAC/C,QAAQ,MAAM,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpF,KAAK;IACL,CAAC;IACM,SAAS,+BAA+B,CAAC,UAAU,EAAE;IAC5D,IAAI,YAAY,CAAC;IACjB,QAAQ,IAAI,EAAE,oBAAoB,CAAC,KAAK;IACxC,QAAQ,OAAO,EAAE,UAAU;IAC3B,KAAK,CAAC,CAAC;IACP,CAAC;IACD,SAAS,KAAK,CAAC,UAAU,EAAE;IAC3B,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IAG7B,IAAI,oBAAoB,GAAGF,UAAQ;IACnC,SAAS,SAAS,CAAC,OAAO,SAAS,KAAK;IACxC;IACA;IACA,QAAQ,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IAYhD,QAAQ,YAAY,CAAC;IACrB,YAAY,IAAI,EAAE,oBAAoB,CAAC,QAAQ;IAC/C,YAAY,OAAO,EAAE;IACrB,gBAAgB,QAAQ,EAAE,SAAS;IACnC,gBAAgB,KAAK,EAAE,YAAY;IACnC,aAAa;IACb,SAAS,CAAC,CAAC;IAEX,KAAK,CAAC,CAAC;IACP,CAAC;IACM,SAAS,iCAAiC,GAAG;IACpD,IAAI,YAAY,CAAC;IACjB,QAAQ,IAAI,EAAE,oBAAoB,CAAC,OAAO;IAC1C,KAAK,CAAC,CAAC;IACP,CAAC;IACD,eAAe,OAAO,GAAG;IACzB,IAAI,oBAAoB,EAAE,CAAC;IAC3B,IAAI,MAAM,YAAY,GAAGE,eAAG,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;IACtC;IACA,QAAQ,IAAI,KAAK,KAAK,gBAAgB,EAAE;IACxC,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;IACjG,gBAAgB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;IACzE,oBAAoB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB;IACjB,aAAa;IACb,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IAClH,gBAAgB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE;IAClE,oBAAoB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB;IACjB,aAAa;IACb,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;IAC/F,gBAAgB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE;IACxE,oBAAoB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC3C,KAAK;IACL;IACA,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAChC,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IAC7B,IAAI,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,eAAe,2BAA2B,CAAC,KAAK,EAAE,QAAQ,EAAE;IAC5D,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;IAClD,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;IACrD,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,gBAAgB;IACrC,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,MAAM,eAAe,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACvG;IACA,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM;IACzC,YAAY,eAAe,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC;IACd,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;IAChC,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE;IACtC,gBAAgB,OAAO;IACvB,oBAAoB,OAAO,EAAE,2BAA2B;IACxD,oBAAoB,MAAM;IAC1B,iBAAiB,CAAC;IAClB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO;IACnB,gBAAgB,OAAO,EAAE,aAAa;IACtC,gBAAgB,MAAM;IACtB,gBAAgB,GAAG;IACnB,aAAa,CAAC;IACd,SAAS;IACT,KAAK;IACL,IAAI,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;IACxE,IAAI,IAAI,KAAK,CAAC;IACd,IAAI,IAAI,cAAc,EAAE;IACxB,QAAQ,mBAAmB,GAAG,cAAc,CAAC,WAAW,CAAC;IACzD,QAAQ,KAAK,GAAG,cAAc,CAAC;IAC/B,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE;IAClD,YAAY,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,YAAY,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/C,SAAS;IACT,KAAK;IACL,SAAS;IACT,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzD,QAAQ,mBAAmB,GAAG;IAC9B,YAAY,SAAS,EAAE,MAAM,CAAC,gBAAgB;IAC9C,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;IACzD,YAAY,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,SAAS;IACT,aAAa,IAAI,eAAe,CAAC,SAAS,EAAE;IAC5C,YAAY,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IAClD,SAAS;IACT,aAAa,IAAI,eAAe,CAAC,iBAAiB,EAAE;IACpD,YAAY,IAAI;IAChB,gBAAgB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAC3E,gBAAgB,SAAS,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC;IACzD;IACA;IACA,gBAAgB,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,GAAG,EAAE;IACxB,gBAAgB,OAAO;IACvB,oBAAoB,OAAO,EAAE,uCAAuC;IACpE,oBAAoB,GAAG;IACvB,iBAAiB,CAAC;IAClB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,OAAO;IACnB,gBAAgB,OAAO,EAAE,uCAAuC;IAChE,gBAAgB,GAAG,EAAE,IAAI,KAAK,CAAC,uCAAuC,CAAC;IACvE,aAAa,CAAC;IACd,SAAS;IACT,QAAQ,KAAK,GAAG;IAChB,YAAY,SAAS;IACrB;IACA,YAAY,iBAAiB,EAAE,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IACvF,YAAY,UAAU;IACtB,YAAY,QAAQ;IACpB,YAAY,UAAU,EAAE,QAAQ;IAChC,YAAY,WAAW,EAAE,mBAAmB;IAC5C,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,EAAE,CAAC;IACjB,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,eAAe,mBAAmB,CAAC,WAAW,EAAE;IAChD,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,IAAI,MAAM,YAAY,GAAGA,eAAG,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;IAChD,IAAI,IAAI,gBAAgB,EAAE;IAC1B,QAAQ,WAAW,CAAC,KAAK,GAAG;IAC5B,YAAY,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;IAC3C,SAAS,CAAC;IACV,QAAQ,MAAM,mBAAmB,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChJ,KAAK;IACL,IAAI,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChH,IAAI,IAAI,SAAS,IAAI,gBAAgB,EAAE;IACvC,QAAQ,QAAQ,gBAAgB,CAAC,OAAO;IACxC,YAAY,KAAK,2BAA2B;IAC5C,gBAAgB,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;IACzG,oBAAoB,GAAG,gBAAgB;IACvC,oBAAoB,QAAQ,EAAE,WAAW,CAAC,QAAQ;IAClD,iBAAiB,CAAC,CAAC;IACnB,gBAAgB,MAAM;IACtB,YAAY;IACZ,gBAAgB,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;IACrG,oBAAoB,GAAG,gBAAgB;IACvC,oBAAoB,QAAQ,EAAE,WAAW,CAAC,QAAQ;IAClD,iBAAiB,CAAC,CAAC;IACnB,gBAAgB,MAAM;IACtB,SAAS;IACT,QAAQ,OAAO;IACf,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,gBAAgB,CAAC;IACxC,IAAI,MAAM,YAAY,GAAG,gBAAgB,CAAC;IAC1C,IAAI,MAAM,yBAAyB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5G,IAAI,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACpD,IAAI,IAAI,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IACxD,IAAI,IAAI,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC;IAC1D,IAAI,IAAI,CAAC,YAAY,EAAE;IACvB,QAAQ,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC;IACnD,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,YAAY,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,EAAE;IAC/D,YAAY,IAAI,yBAAyB,KAAK,CAAC,CAAC,EAAE;IAClD,gBAAgB,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAC9D,aAAa;IACb,iBAAiB;IACjB,gBAAgB,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC;IAC3D,aAAa;IACb,YAAY,IAAI,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE;IACpD,gBAAgB,kBAAkB,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACjE,aAAa;IACb,iBAAiB;IACjB,gBAAgB,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC;IACnE,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,gBAAgB,EAAE;IAC9B,YAAY,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC;IAC9D,SAAS;IACT,aAAa,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,oBAAoB,EAAE;IACrE,YAAY,cAAc,GAAG,cAAc,CAAC,oBAAoB,CAAC;IACjE,SAAS;IACT,aAAa,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,oBAAoB,EAAE;IACrE,YAAY,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC;IACvD,SAAS;IACT,aAAa;IACb,YAAY,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC;IACpD,SAAS;IACT,KAAK;IACL,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE;IACpG,QAAQ,QAAQ,EAAE,WAAW,CAAC,QAAQ;IACtC,QAAQ,cAAc;IACtB,QAAQ,UAAU;IAClB,QAAQ,YAAY;IACpB,QAAQ,gBAAgB;IACxB,QAAQ,kBAAkB;IAC1B,KAAK,CAAC,CAAC;IACP;IACA,IAAI,eAAe,YAAY,GAAG;IAClC,QAAQ,IAAI,YAAY;IACxB,eAAe,kBAAkB,KAAK,qBAAqB,CAAC,IAAI;IAChE,eAAe,YAAY,CAAC,WAAW,CAAC,cAAc;IACtD,eAAe,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;IACnE,YAAY,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE;IAC5E,gBAAgB,MAAM,QAAQ,EAAE,CAAC;IACjC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,eAAe,UAAU,GAAG;IAChC,QAAQ,IAAI,UAAU;IACtB,eAAe,gBAAgB,KAAK,mBAAmB,CAAC,IAAI;IAC5D,eAAe,UAAU,CAAC,WAAW,CAAC,YAAY;IAClD,eAAe,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;IAC/D,YAAY,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE;IACxE,gBAAgB,MAAM,QAAQ,EAAE,CAAC;IACjC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACtD;IACA,IAAI,eAAe,KAAK,GAAG;IAC3B,QAAQ,IAAI,YAAY;IACxB,eAAe,kBAAkB,KAAK,qBAAqB,CAAC,KAAK;IACjE,eAAe,YAAY,CAAC,WAAW,CAAC,OAAO;IAC/C,eAAe,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IAC5D,YAAY,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE;IACrE,gBAAgB,MAAM,QAAQ,EAAE,CAAC;IACjC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,eAAe,MAAM,GAAG;IAC5B,QAAQ,IAAI,UAAU,IAAI,gBAAgB,KAAK,mBAAmB,CAAC,MAAM,EAAE;IAC3E,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5D,YAAY,MAAM,mBAAmB,CAAC,MAAM;IAC5C;IACA,gBAAgB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IAC5C,oBAAoB,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS;IAC1D,iBAAiB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3E,aAAa,CAAC,CAAC;IACf,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;IAC/F,gBAAgB,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE;IACxE,oBAAoB,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3E,IAAI,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC;IACnD,IAAI,IAAI,gBAAgB,KAAK,gBAAgB,EAAE;IAC/C,QAAQ,eAAe,UAAU,GAAG;IACpC,YAAY,IAAI,MAAM,CAAC,UAAU,EAAE;IACnC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;IACrD,oBAAoB,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACpE,iBAAiB;IACjB,gBAAgB,MAAM,MAAM,CAAC,YAAY,CAAC;IAC1C,oBAAoB,cAAc;IAClC,oBAAoB,gBAAgB,EAAE,MAAM,CAAC,UAAU;IACvD,oBAAoB,gBAAgB,EAAE,gBAAgB;IACtD,oBAAoB,kBAAkB,EAAE,gBAAgB;IACxD,oBAAoB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACtE,iBAAiB,CAAC,CAAC;IACnB,gBAAgB,IAAI,gBAAgB,EAAE;IACtC,oBAAoB,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACpE,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC;IAC1B,YAAY,UAAU,EAAE;IACxB,YAAY,KAAK,EAAE;IACnB,YAAY,MAAM,EAAE;IACpB,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA,IAAI,eAAe,SAAS,GAAG;IAC/B,QAAQ,IAAI,UAAU;IACtB,eAAe,gBAAgB,KAAK,mBAAmB,CAAC,IAAI;IAC5D,eAAe,UAAU,CAAC,WAAW,CAAC,WAAW;IACjD,eAAe,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9D,YAAY,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;IACvE,gBAAgB,MAAM,QAAQ,EAAE,CAAC;IACjC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,eAAe,WAAW,GAAG;IACjC,QAAQ,IAAI,YAAY;IACxB,eAAe,kBAAkB,KAAK,qBAAqB,CAAC,IAAI;IAChE,eAAe,YAAY,CAAC,WAAW,CAAC,aAAa;IACrD,eAAe,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;IAClE,YAAY,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,WAAW,CAAC,aAAa,EAAE;IAC3E,gBAAgB,MAAM,QAAQ,EAAE,CAAC;IACjC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,gBAAgB,KAAK,mBAAmB,CAAC,GAAG,EAAE;IACtD,QAAQ,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,KAAK;IACL,IAAI,IAAI,YAAY,IAAI,kBAAkB,KAAK,qBAAqB,CAAC,OAAO,EAAE;IAC9E,QAAQ,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAClD,QAAQ,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,KAAK;IACL,IAAI,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,gBAAgB,GAAG,UAAU,CAAC;IAClC,IAAI,oBAAoB,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;IACvD,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE;IAClG,QAAQ,QAAQ,EAAE,WAAW,CAAC,QAAQ;IACtC,QAAQ,cAAc;IACtB,QAAQ,UAAU;IAClB,QAAQ,YAAY;IACpB,QAAQ,gBAAgB;IACxB,QAAQ,kBAAkB;IAC1B,KAAK,CAAC,CAAC;IACP,CAAC;IAoBD;IACA;IACA;IACA;IACA;IACA;IACO,eAAe,IAAI,CAAC,QAAQ,EAAE;IACrC,IAAI,IAAI,QAAQ,KAAK,WAAW,EAAE,EAAE;IACpC,QAAQ,OAAO;IACf,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,aAAa,EAAE;IAC9B,QAAQ,MAAM,mBAAmB,CAAC,MAAM;IACxC,YAAY,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IACxC,gBAAgB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;IACvG,gBAAgB,MAAM,EAAE;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO;IACrC,iBAAiB;IACjB,aAAa,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;IAChE,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,MAAM,mBAAmB,CAAC,MAAM;IACpC,QAAQ,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC;IACxF,KAAK,CAAC,CAAC;IACP,IAAI,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD;IACA;IACA;IACA;IACO,eAAe,GAAG,CAAC,WAAW,EAAE;IACvC,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,IAAI,MAAM,mBAAmB,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,MAAM,mBAAmB,CAAC,MAAM;IACpC,QAAQ,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IACpC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;IACzC,YAAY,WAAW;IACvB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;IAC5D,KAAK,CAAC,CAAC;IACP,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAkCD;IACA,MAAM,kBAAkB,GAAG,iCAAiC;IAC5D,MAAM,mHAAmH,CAAC;IAC1H;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,QAAQ,EAAE;IACnC,IAAI,IAAI,CAAC,mBAAmB,EAAE;IAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,KAAK;IACL,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;IACvC,QAAQ,mBAAmB,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC1C,KAAK;IACL,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD;;;;;;;;;;;;;;;;;;OChkBA,UAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;WAzCnD,gBAAgB,GAAG,IAAI;WAEvB,OAAO,GAAG,IAAI;WAEd,aAAa,GAAG,IAAI;WAEpB,YAAY,GAAG,IAAI,CAAC,GAAG;WAEvB,MAAM;SAEb,QAAQ,GAAG,qBAAqB;SAChC,UAAU;;KACd,OAAO;MACN,+BAA+B;OAC9B,UAAU;OACV,MAAM;OACN,gBAAgB;OAChB,OAAO;OACP,aAAa;OACb,YAAY;OACZ,QAAQ;;;;KAGV,SAAS;MACR,iCAAiC;;;;;;;;;;;OAiBc,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QATzD,kBAAkB;QACjB,MAAM;QACN,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChDf,CAAC,SAAS,MAAM,EAAE;AAClB;IACA,EAAE,SAAS,YAAY,GAAG;IAC1B,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,GAAG;AACH;IACA,EAAE;IACF,IACI,MAAM,CAAC,OAAO;IAClB,IAAI,OAAO,MAAM,KAAK,WAAW;IACjC,IAAI;IACJ,IAAI,cAAc,GAAG,YAAY,EAAE,CAAC;IACpC,GAAG,MAEM;IACT,IAAI,MAAM,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC;IACzC,GAAG;IACH,CAAC,EAAEC,cAAI,CAAC;;;;;;;;;;;;;;;;;;wBCPD,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA8P;;;;;;;;;;;gDAP1S,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA4F;;;;;;;;;;;gDAPxI,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAmF;;;;;;;;;;;gDAP/H,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAoK;;;;;;;;;;;gDAPhN,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA0M;;;;;;;;;;;gDAPtP,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA+P;;;;;;;;;;;gDAP3S,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA+iB;;;;;;;;;;;gDAP3lB,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAgkB;;;;;;;;;;;gDAP5mB,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA8H;;;;;;;;;;;gDAP1K,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAqK;;;;;;;;;;;gDAPjN,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAoK;;;;;;;;;;;gDAPhN,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA8f;;;;;;;;;;;gDAP1iB,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAwN;;;;;;;;;;;gDAPpQ,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA+O;;;;;;;;;;;gDAP3R,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAyZ;;;;;;;;;;;gDAPrc,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA+L;;;;;;;;;;;gDAP3O,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA2P;;;;;;;;;;;gDAPvS,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAskB;;;;;;;;;;;gDAPlnB,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAuU;;;;;;;;;;;gDAPnX,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA0K;;;;;;;;;;;gDAPtN,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAgD;;;;;;;;;;;gDAP5F,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAsO;;;;;;;;;;;gDAPlR,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA4H;;;;;;;;;;;gDAPxK,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAqG;;;;;;;;;;;gDAPjJ,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAwI;;;;;;;;;;;gDAPpL,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA4K;;;;;;;;;;;gDAPxN,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAiK;;;;;;;;;;;gDAP7M,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAwM;;;;;;;;;;;gDAPpP,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAyN;;;;;;;;;;;gDAPrQ,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAmR;;;;;;;;;;;gDAP/T,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA0P;;;;;;;;;;;gDAPtS,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA2S;;;;;;;;;;;gDAPvV,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAmU;;;;;;;;;;;gDAP/W,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAwI;;;;;;;;;;;gDAPpL,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAA2I;;;;;;;;;;;gDAPvL,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAiK;;;;;;;;;;;gDAP7M,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAyF;;;;;;;;;;;gDAPrI,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAmH;;;;;;;;;;;gDAP/J,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAiQ;;;;;;;;;;;gDAP7S,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBCOb,GAAI;yBACH,GAAI;wBACN,GAAK;;+DACO,GAAW;;sBACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;OAPf,UAWM;OADN,UAA2C;OAAQ,UAAiY;;;;;;;;;;;gDAP7a,GAAI;iDACH,GAAI;iDACN,GAAK;2GACO,GAAW;qDACzB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAbJ,IAAI,GAAG,KAAK;WACZ,KAAK,GAAG,cAAc;kBAC7B,WAAW,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICInB,CAAC,UAAU,OAAO,EAAE;IACrB,CAAC,IAAI,wBAAwB,CAAC;IAK9B,CAAkC;IAClC,EAAE,cAAc,GAAG,OAAO,EAAE,CAAC;IAC7B,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAClC,EAAE;IACF,CAAC,IAAI,CAAC,wBAAwB,EAAE;IAChC,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;IACvC,EAAE,GAAG,CAAC,UAAU,GAAG,YAAY;IAC/B,GAAG,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;IAC/B,GAAG,OAAO,GAAG,CAAC;IACd,GAAG,CAAC;IACJ,EAAE;IACF,CAAC,CAAC,YAAY;IACd,CAAC,SAAS,MAAM,IAAI;IACpB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;IAClB,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpC,GAAG,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IACnC,GAAG,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;IAC/B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI;IACJ,GAAG;IACH,EAAE,OAAO,MAAM,CAAC;IAChB,EAAE;AACF;IACA,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE;IACrB,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAC3D,EAAE;AACF;IACA,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE;IAC3B,EAAE,SAAS,GAAG,GAAG,EAAE;AACnB;IACA,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACxC,IAAI,OAAO;IACX,IAAI;AACJ;IACA,GAAG,UAAU,GAAG,MAAM,CAAC;IACvB,IAAI,IAAI,EAAE,GAAG;IACb,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAChC;IACA,GAAG,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;IAC/C,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IAChF,IAAI;AACJ;IACA;IACA,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;AACnF;IACA,GAAG,IAAI;IACP,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAChC,KAAK,KAAK,GAAG,MAAM,CAAC;IACpB,KAAK;IACL,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;AACjB;IACA,GAAG,KAAK,GAAG,SAAS,CAAC,KAAK;IAC1B,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;IAC/B,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,CAAC,2DAA2D,EAAE,kBAAkB,CAAC,CAAC;AAC/F;IACA,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,KAAK,OAAO,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;IAC5D,KAAK,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAChC;IACA,GAAG,IAAI,qBAAqB,GAAG,EAAE,CAAC;IAClC,GAAG,KAAK,IAAI,aAAa,IAAI,UAAU,EAAE;IACzC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;IACpC,KAAK,SAAS;IACd,KAAK;IACL,IAAI,qBAAqB,IAAI,IAAI,GAAG,aAAa,CAAC;IAClD,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;IAC5C,KAAK,SAAS;IACd,KAAK;AACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,qBAAqB,IAAI,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI;AACJ;IACA,GAAG,QAAQ,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,qBAAqB,EAAE;IACxE,GAAG;AACH;IACA,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;IAC3B,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACxC,IAAI,OAAO;IACX,IAAI;AACJ;IACA,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;IAChB;IACA;IACA,GAAG,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACpE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACb;IACA,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACnC,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C;IACA,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,KAAK,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,KAAK;AACL;IACA,IAAI,IAAI;IACR,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,KAAK,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;IACzD,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;AACrB;IACA,KAAK,IAAI,IAAI,EAAE;IACf,MAAM,IAAI;IACV,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE;IACpB,MAAM;AACN;IACA,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxB;IACA,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE;IACvB,MAAM,MAAM;IACZ,MAAM;IACN,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;IAClB,IAAI;AACJ;IACA,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,EAAE,GAAG,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE;IAC3B,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,KAAK,mBAAmB,CAAC;IAC5C,GAAG,CAAC;IACJ,EAAE,GAAG,CAAC,OAAO,GAAG,UAAU,GAAG,EAAE;IAC/B,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,oBAAoB,CAAC;IAC5C,GAAG,CAAC;IACJ,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE,UAAU,EAAE;IAC1C,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;IACnC,IAAI,OAAO,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,CAAC,CAAC;IACP,GAAG,CAAC;AACJ;IACA,EAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpB;IACA,EAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B;IACA,EAAE,OAAO,GAAG,CAAC;IACb,EAAE;AACF;IACA,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;;;AClKF,gBAAe;IACf,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,CAAC,EAAE,IAAI;IACT,EAAE,CAAC,EAAE,KAAK;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,IAAI;IACV,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,GAAG;IACT,EAAE,EAAE,EAAE,GAAG;IACT,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,EAAE,EAAE,KAAK;IACX,EAAE,CAAC,EAAE,KAAK;IA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CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD;IACA,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD;IACA,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,GAAG,EAAE,CAAC,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AAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IACnF,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,EAAE,GA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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,OAAO;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,GAAG,EAAE;IACX,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtG,QAAQ,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IA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"}
\ No newline at end of file




diff --git a/src/App.svelte b/src/App.svelte
index 49f9ea31490c24258e3a86f6eddb67e64aaec21f..251df70064eaa6e425a88e41d68397bbc734a998 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -183,7 +183,7 @@         ids.push(res.data[i].id);
       }
       localStorage.setItem('useLoveSongerIds', JSON.stringify(ids));
     } else {
-      alert('获取喜爱歌手失败');
+      Alert('获取喜爱歌手失败');
     }
   }
   async function getSongUrlFun(song, type, index) {
@@ -275,7 +275,7 @@       userLikeSongIdsStore.set(JSON.stringify(ids));
       localStorage.setItem('useLoveSongIds', JSON.stringify(ids));
     } else {
   import { onMount } from 'svelte';
-  import isStandalone from 'is-standalone';
+    FMPlayNextStore,
     }
   }
 </script>