From 90f4c41ad76506ca0d49ad18d428155e1a4550f6 Mon Sep 17 00:00:00 2001 From: Ludovic Malot Date: Thu, 10 Oct 2024 01:43:34 +0800 Subject: [PATCH] feat: weapon and other shenanigan (#505) * feat: weapon and other shenanigan * fix: rm console.log * fix: NaN --- bun.lockb | Bin 411313 -> 431971 bytes package.json | 1 + pnpm-lock.yaml | 507 +++++++++++++++- .../AchievementCategoryCard.svelte | 4 +- .../achievement/AchievementList.svelte | 2 +- .../character-tab-table/StatTable.svelte | 2 +- .../tables/weapon-tab-table/StatTable.svelte | 63 ++ .../tables/weapon-tab-table/index.ts | 28 + .../tables/weapon-tab-table/table.svelte | 15 + src/lib/components/ui/card/CardLevel.svelte | 4 - src/lib/components/ui/card/CharCard.svelte | 2 +- .../components/ui/card/UserWeaponCard.svelte | 56 ++ src/lib/components/ui/card/WeapCard.svelte | 31 + .../ui/character-tabs/character-tabs.svelte | 2 +- .../ui/character-tabs/weapon-tabs.svelte | 37 ++ .../components/ui/progress/progress.svelte | 6 +- src/lib/locales/EN.json | 11 +- src/lib/services/backend/data.ts | 2 +- src/lib/types/index/weapon.ts | 1 + src/routes/+page.svelte | 2 +- src/routes/achievement/+page.svelte | 42 +- src/routes/characters/+page.svelte | 17 +- src/routes/characters/[slug]/+page.ts | 2 - src/routes/settings/firstlogin/+page.svelte | 1 - src/routes/weapons/+page.svelte | 559 ++++++++++++++++++ src/routes/weapons/[slug]/+page.svelte | 104 ++++ src/routes/weapons/[slug]/+page.ts | 14 + vite.config.js | 15 + 28 files changed, 1498 insertions(+), 32 deletions(-) create mode 100644 src/lib/components/tables/weapon-tab-table/StatTable.svelte create mode 100644 src/lib/components/tables/weapon-tab-table/index.ts create mode 100644 src/lib/components/tables/weapon-tab-table/table.svelte delete mode 100644 src/lib/components/ui/card/CardLevel.svelte create mode 100644 src/lib/components/ui/card/UserWeaponCard.svelte create mode 100644 src/lib/components/ui/card/WeapCard.svelte create mode 100644 src/lib/components/ui/character-tabs/weapon-tabs.svelte create mode 100644 src/routes/weapons/+page.svelte create mode 100644 src/routes/weapons/[slug]/+page.svelte create mode 100644 src/routes/weapons/[slug]/+page.ts diff --git a/bun.lockb b/bun.lockb index 3fc786bc7932e346de4ecab80b52e6bc3d9ba1b4..e85dc32ed71536c3375b8ce1273b18f16f30fdf5 100755 GIT binary patch delta 85047 zcmeEvXIKu;#ReR@eZTWv-!J>xnY-@0(o;`8Rb4%;?&isM4>neq+MsTa zC+p6SUgVs;{?9K{Y>NLfcg~zYbT>_R1h)}2OFc4jDk=J1uKGE0PTR+fHuHa7J^U?n672~E|B;i z&`SZ&14{r80gD57a9j&4Rv*GbN&sg7ivTBZ3^xu+4viLsu*5{Cqy(dJtz1=XnEr<( z2qjT!oyfX-k1A9#9}HgvUK)HYY%c?x0#0U(2I9Yrq|ko-Li2n?F)=QBuu&KV>l~mD1yVcFKq?m*niw}ERuJ~WYE;Rn!t>*!B2uZ{V&G+k zbRlCRZ!iN$mM3$JN_6TU9oJ9TSC%zA5IS|>h1ozd!(@0ju3MF7hWASd4KpSRLOM8= zKLR9!Y~T(WSO71t4zvaYJp{@yH56k^=x=Ny2qr@+$Zs_^!8QmIa@;i_O;C*rY~qU8 zGXI1{#tn=L4^4r`CuEHfFGpz|(rY$lo+t&R3Cl-d z5kBO2mSYx>wwV<`>Sh|pG>%amyKwa4=)}>EV<8}g>HEeirf1w`iHtKGcLU3yz#5JU z$I%=UIVQwKM<>T){ptk)L71@=2(M?1<~$lm`(}G!Wnf((t)?QtD!>=6r1umuP9TA} z$yfzM++~adBCax`IJN~+1NAvC1*DF0UDyU~+OSO=>^0dke<<%nfD*{{)gJo%vr(TW&%K|_3VZ(k1B)=V!OBb;T%|7mT1tKd{_AvpEM#@Nb<1$%iT5SUo<6@g*)~}%)S(`VCVM0VW)-Vo!Cm@hZUID4W#$(u>vLvt? zxFwME`@Ebombq>skm_B5PV;&V22mJp8prs6#PB!-mQZxUzlNU(PA zKsg~kIW{#cF5LJI85B4VIPM3M<=cSNVN!H>5<*0{F^M&_209s-7@9)oO(7*FIxI3Y zA#owsMP1vm}jSYk|!9g-LtA0-GQkY5E}&4@vQI_NQlH5dX;Bk>280~&x5Flj0? z>;#a4Cp0lNHf&&2Qgh_fi0bolIL{|0rA8a0XjHgNhsA#$`{=mWl^Qmk??ML*Rx2!! zS+tG^Qe;JhCMG#0CqxYeC(ne%gb#E|94z#UN=kG}juK1{EeA0Lv}2r@DOV^_IenhO z92Rbjz!DOKU~uX#5#EUhKRlb|mzu*Im=v1e6afz^;8d<(XoArxE>Tbs8G&=Tqw&}j z8j~XUa{drV6VtC*sA~QVaQGuV;{p=Y&}1}74vJ5Xp?-z9*f6YLK^T${8XupEnV8Q) zCL0D(xr_yj#{jLt?H4kKCmLf08?mC-qFgEHCWB4wZ(GFtBQ2)#2(75tNMiz=v>F+z zh0)ZlAoNR)h@gg|j7Fobc{8Eu5@u)xl%tu&L&T6+ig$f<{)P;pIi&oBJ?F6i1^<01yDRZFHV*I!U{-=iiM1l-B%JB-28s5qI6wcdn zjKWS&S7Y!BD7OSiA(hN|2+$T>1GE9!ah^=iHmH|mjG-A77Hx$8$&yzanPmm%A{21K zJ$x2)3HcvZvynUmlIu49#&kS(#`PN@2ou4pLpL2P|8@KLd-o`_g^heNJU~+&9hV*+ znh29jtMAvXtb>t2nu>ouY^~VFTptx15gpY(GASa_33pdK8*XO}(ncB)6>W?Jr}{mC zG{77fPM+EVB>h)l4dAf!o$P*)vWqov7)WzpA4nBlfK(wki;cJ}ICJj$MW<@sFNg9WhnT@LP@W7A0LN6OXSg9j1~lab z4xj>c7=;FCBnwc1JkklAf=SP@4$m(MtN{HJ%Gm<%1F6GHKr$3Dl3?s_OgRWn{X`|I z$1Y(zcyU_)>yV&TFak&}i3L)S^#f9n_yegS4_UCqna z2hzkeyw3cS38V<&!%P=GLLhVgIo|*3hl)&eP!;9f(J(oD0Q)sfm<&#l6bp0!mbuLg zIeL+ug#(~dJ<~5PsiDzudwPQ(@$<9R>|^;YO7 z-4O{JBpLwUykHHV0+PNISO+))Nc&k|AQ>_{Ul5uAn}OE{mH^U7pFd}YEdGlP=pZ=N zp9-Y%(;f*zL!jmx8(`9Rtk6mjs(oh-wFgo|QK^aD~5R^|;2L<5xn<{2~C6TBYy zX>c-dDX=ck4m#CO1t$aEKVdExba-zCkn;?Tm;)e#PLQ!yP=;0%V`+;OYAVx+btp}_L)N+jG^~wXOogMe_cm_-X zdQf>_0Py`iK^JC}i+#=X)Ngv)H{I1Iifp;*9YocTYCtu}Om9T1`|3Pzgvb|5lZuDgQDr&-NYMA)cWCt?#QGKi3e|<#-6(8u}6-Z8R?( zMRnQW*W1CcPYA2Y45w$&BxATRjh8c>6bB?aslVKZCiGXIKdRLd)#cl&HbZA%al~K7 zB_t$ZRR7qx1S31H&=zY<#Pcrrjyf#g^lV^yCcxu>6WvUXU_`XOk5w1d9WVuk6a$au zc)cDo{5+8Q=>okduq{wMA$lQE1VVi$Hd0Ih&45r1ob-|$?SRxkxX~Ez6qP9Gc)f_I z*l;KO_*J?gYq$`{c&F&NFg&OOab`{u3N>Q+#>7F%#)MP>9!^(X{Ld*cxqdS`D1#11 z0gD6cG+}5OSzqWhQj;Mjk6oxDs=-CjzNx5OgIpaQ=E z)u}*`QHPy@v^6KTV4jHplHLPI4S6D;VrQX_agzbjRpnByRVFQkj3a9r>0^R2m zuz#3-Y#)OaMa>M>vk)}>NdL~2hngEh(~tO}oVRpmGaVOeRDW$c#d#OxQ+pvEYQO0j zkI)d=dmTs_1OL&WF~t}bikYs6fl#cM08)7kkjk50S9~-u{sKr5VLG~-48Si$QDIII zv8KaIWOCxbRBZ0TcQj58YSEH)V0!6gdZ$$lI^~z-`A<>4JoqJ!{P|iq-imcx3rNSZ z-o9+2j-i}tD0_(}6!l|kK>!w|o1N*dZMw_(}g)+)0OGQgampvNHM*v*@}D`aCMZYbDwE< zo6(I8WE4l!^YZH;QN86CMR{6rW4Ix!gUKP-j_rG}h$sT2ko=4c+5=pBGLO~;l7}jA zEW$A#+Np4Zpf6}-3=GdE3@x>Ow%iSr%iL+-}mXfyETh`Tj8m-v~JNdF6&x_#NG89b@vM(&yojAuIPaG4#(6`WhyPxMrEd2+MR1ytZGg-zri>5rd8Xqw00T)n{7k;-`VJRaNUY3Rg`y++QBvCv9oFxFF-#b*}a<>FK#mY}VHt+IaZbF~0kU zjcpnoKV^~nS z!7kS;pDFsP+0+Xi_iw-FaA(^V`%_^N-6p@P5Zu1i=u*9+qeqGJ-yBYhpa1*mOAea* zy#rspir-(svC!^5eedRWm{G#>mfXH^H95n{cI#@VQWo<5M&q`|H@4Mmo!WGDVcAo^ zT7IM7CI9C3#H!+H$2F^qR-U?bwtHWVctOrH7&L-~?CR+uc9By(4U*1M5IP|$L?yGS z=q%@X8pPMKi8}6VXR9MdU z_7Ht!mzD-;OkqLrREv3CbG8C;V|BcBlE#WLt(@tllRUthAx|S8@Yab5a;lF(+$m?_ zJ5SETcN5vAl|f9DQ}Ml0&T3_ltP$W;1NARD%PzhK@i#dY-{0jdeCy>re8}fwW=oy41dMuC$1Ys~YY%2gd17@rueCwj1B=j2&bjU;r?xR@uYtMB?p}JajGWiT zAbDd6d!dF_?R6v=wOvT|YNL~mfwclFDQChD&E>qd2JJFzvJrCHalIsAlOXFwS@hM3 zt>mnB25AB`<~g$M6qvVK!plpiEso8_jcRIJBh^Sw^U_PHNOeRBOSShCVAMMsOYySo zAj?==&S2SiXDg5vtQsco1Q;2jk;T?JNsC>Yn58;|_F!ZJrZU9Yif4(k*FMZrM}xLB z_8nI_%||b_MXDJJ!rv2}>BSeD7;5nn7@4J2Tdab+Ax#V>4Z+q!&I&Y0v$&=qM@i>7 zQ>RXK}yAMGX~VeSTVu7XstN+m2$Tml5{ztMv2g^9R*nT(Bz~1$dK$z&a%xXFx*E$VOpcZ= zg3;7Tv3S@H@2#_g0a?ApXPx9y6K^2EnCVl%$N^{*!#cwmN@Bs-;&IShcJGCS+s7a+1|ySD z60W)d#v+th`P$~acLJmS)aa5HgVDeQb%{L$qy8lMK%h>lR)?`dGNwi93r0Pt6D!V@ zvqBBp3(&mfuh=ds%P##4Qirpg#Qkz!xIts-B)b|tM1MKesP4M> z4wUooy-Rk9phb|1Z-bnL@3C@Tgh4uh?kOtRMvzy)V5{gRXZ1H|-J4>!lymy)wG)wQ zr>1@{NL9ynz_hr6)NZ8OsO7ZH5z%TYpddA~Aa%PS<%ng(%EhRuv=}$b0_kf(s+A7G z$V@3nT_{M|U>qzr1Suc2+>(OSqk>c&7gKJGDFyFk#Tc|V^?0Kq=fvo>Ef6-r^4C~5 zOC*@|45=VB)7>3^nnF#@MJh^7Ss-3Q)l@iAEcXCX{Z*~D0dM)#)MTXksHqnPskVqi zR%10%EVnRjH^FMTzDRYW6z;BhgACFOaM($EP&e!n-dHGfr;>IcH2^x+{yt}`mZtSX zi+!-{lBnKn@m*Zb!grjUmx$m(WKo=BtH%!eR8CDYNHtoqO$f2oUx$q_FUcUTlU8e3N) zwwA*M>;QJVk6`sxufYY{Y5^!Ie~r*fospttF34V2oUK3*ghWu~EEw%7g1W~P!AXLa zutxT3rIR{=A<$@(J?d-)LU&7bHx~EGS;Gy|7ibs;G~7XO9&kxBXp=i&yP(^bb{SIb zY0uZbMXH5*SE$vIb*@$S?GQP2gh84HjbZ?kgjP<=dC=?v3pO1i-9l5-4bl>5WDYFA z-g6y{#w4ou5$jIu?tr{Y&Q>5;NHnIdI%yIZ#RaQ&5{yh%ZyZwnAU1k7s7N_A(;#Na zS(yfnRcARr(?d$@%+5+`0ckH70v(m<{_&MFY@V12w=QgCl6sy@;0${q?tZJm{N$WW zy=W(AjWpo6n>W&+UD8z$TFN;i_2NT0b(8_O`>at0ZA>@vRn92AxJ-5#ZIH@#XL}~Q zOLYgMjUI;^?6|YRuuyP=AbW0r@!JKCDP`rsFrTYi3Z>HjV zv79y5AXV?l`ar9JI&FV2#7($foFk`>Gf3xoE-XO6lx&OkvHBTS@dQ(IC2_wS_3iJeVASvh7`O1(3EZmqv*rE$*7YafzeE%HQcFY z^kK(F92;;KE7aF?Bd2=pIKxDsqlU|yE6#Se~ zT)pdB_k$H`cm^QFqXR9i1j9~1_iZev7hpKT1nH%^VFfxSHysT3>^6GwfSmWMfes^6 z3}Q1mb&5es3TMuO`*Eb-Cg(wW0}Xc^Ixw}?X{#F%)at>gC#9g{hS^f5xonh&dV6SX zBh;0%#?1-|%C%5Ld(oK~`AvOX(VhVFQNBu|n^k{aN?pyZz^D}L$7s^QXaTdE<5n=X z(&@bW0IUh};N4K2R4x)*7#QXO3v#HOB^#t2&?xk=YXs@=5au$&pbd@^gf8;eUV80$ zq&(%Xsd~{t&YNM7j04O9N?HR(w%f>=*j4U+&AiK;lNFH%4bg?`6sm_=~PlkE;ekHriHApq%O}p2DPC7AE z&VsfK8m&@HJG2L~%RGbVC8y3aNGlV}LPuknDCf`fkcK6)h=p(cblMzZat>~S-;pY4 zMlvL^eGH|#>a^pC$zK!o(ov*XDeT#rLdkOW0uQNuGP4>dvp}6VL3UYakoH5P0KiBh zbkYYfwp(~5>LkCxrUmMSr8g2x4L0=vxf`qn>ZxI*c{`XMI<$3$sDX)x!ahjR#HiW0 zyQVHSNROdW1K2X!=x~nAgVs4k5O72x=eE*mCxhXkw2fXmMk%#EZ75PC%Y7Jnx zg}@h+k)lyz-wtxN0`Xx@VF6YisxH9uZdOQmK*ot2akd(ab|ZEo&jn*EJ9CS()iBeO zAH~veFftYcz=3>U0V8uhfl-re#}6HDsz-T?!0ICp@q_25Q()Ac8YfcqG-fVtq}VgV zz+91s<%MUf1z^-BCK6`e1f#K_UN@cOFoHeJv%DCvj;4}gj_k6EcJEYtBVJb-r1*4` zn-5IKv)*b0mS5^>M0N(7F{}rS=vOd4?^wJ8pY}9k+#UtS zwkWUPbkZy^ca$ulPRS)+QvF3ia+t_ABDJ2T!$f(gkB2lCqAx1oc0iAboUvnz^&~cX ztfLSxPn1+y=~ZB4QXvda#HR`B*CMBseux}0;a_r;Mny%*YO*QHX%p@PMl(}L?Rgp) ztq#m4qT&QEiTK>1lM4UJB8xq1>%pj``ZQQP5sczT0~=6xZauO=yBcbwy6j6$VPn7) z;T9eaMym%5D{?Uy-6G%~XZKI)CU;xuLpRuv8$ zL16B3T2H++6)9SYs;{&ssg!#2)l6saY;k17%B~OA7^RA;9tZ)WI9Klq(mXJV=c4MA zU*)Wb%1X-xw!!YUU=2}{-J^a3YtLF~sndP~>!@1Veg?CYZFpnAd}a5pdd=w>a{gKm zjm1pa74fE@DGvpV09)^&{XUb8#WAo-Mm>^pMU&q|kwgEv(`kHc%YSvE+lnXxl)@VPjehMvlV< zfV_*NY@}zKbTNYouZ3(LlQTzt1nVi-~udT5Zm1TDvMPrfTQPtMj62zHg?FXb9$nJCWQnh7l zR@52R^j#)r@A8o5K%}9mKGWUEG!x8|wTE>NIbe90hB>sc-v{$nOHw=uYfXCy>S^7;eC4$LZdQ~iXzn;zy8>2r zT|r*3vlYnSSu6jAy#u3IRre=NmGyG=K7-YIc28uMod@ex&~W_?xEm5v#Kt(TgLN&) zyJ5;x?}$w{(jJZHWhtCeD8&}zdN3LrMta-XY7;vMs9TV>6PR93OU0=ODHdIHlQ;rK zYe&6FOW(oBji}SX+3Gho<5)p>l-UWUKJaMYBGrucW3A(6L5P*pTIx0OW;y$ihjbMJ z#W)+D!xrWo_31=A5Ui29jn6}h%*0B=E^!--CLcRU7oFCAs~XQ!^imK~jaXZqb=rks z{&LzGH%lb&NQL(UHMWsO_~l2_dz+kn)I-_?fqF;iV?%xpM&rbiM=#a4GloZP1V}m< z^~pxPkLU3S-7dQx_t3Q1ArC$7A*JkKQv{D7dN1#g^C6bmiQje9>NtmJX6%%+PkKnB zcA0`0{b?@ll3h=ENH$rfZG`TU{lI8pu-_jRgRyPv08F}3z-S97n{CQN%xV+C@C#(1 zUV4cX#Ryx4t#-q~sxPJ?r8-x804dxh`sk(7d)VC)rsM7r2L`>fUbAnHJoK!G);b5- z^qZ{|i4-%7mc&XhnjQEJT|WWClE9h0!CrPEf}XC^%-b*LpToM_&lZDfkEB1qoQw&; ztsxPNHJiCgCv67nT+pn;LAX_Ib{JB$)L0Amz&e?jHsX*v!>#nvVoI56OE?MZ2ySUXfQ+t>a0YH_m4a4LoiyYEF2mgVehOk6Zp9&8I0B%^Xe&LYM@pq!VClCWuu%X0qFB7)B1p#)O&GW`W_vfEjs$^y>Diod|~WEgp(aAw|97RDjz?>62(d^+NzstTv5e z2^brzS2nielXAY7hqmo0+GM}tRm&8l$W5&An_!*PX>vMUFu>u?mLUFWpU05ut=dT= zbv#4odDx;!J0oY`@Q}_xV2;2MU1NP#9(vP5@;+;N`*R>nr%603ySDO>)ytb{E-Ta1O*Qi~#dTK`QVFYrtJC{lYh(96+Iax-I9l9dT6&m>`Ok;I^9-> z|CgI353 zukmMo(5cF_Gr@53?x@$^M5?P=t??T<|G9@|#v9r7g-7ioZ}E#gmB%IGQ-~6{KD`mt zKSeWaxuKn_96mz6Yp|6@p)iezt-Wlp!Kw#(zQbRgQd3`%>P;!B=X-Xy!Fs{e)cAn1 zYE25wxnKhr!yUd;E~2C$Z$H?Gf;|6^Y!We?Fr738jKV-r#QHdZfEkFXzqx$^3jBLJ&Dv9 zHM8Rv{F@YN>LgMuz@7h6p8+xO?MMZwW*u0i(^`EsH8~t9wZ5kQH#z&ghj#rp@*k~} zsozbp^bDz?suqsvU`<~{O10F&TNGveJ$LPDQG}hSX;Dcd%DZ#jwc|A+A6H=uQ5YiU z$Y-XQJA3Stwt(RakmiNEUiQ#LDhayQ#70pNa1-H9ruz%?z8(ysdc63BBC&=puaa@ z{nWCZijuisU$|K!5vCgHP)y|WHW4W`uCz~)8m?9_78iwNwcHJ)GE{AP2~n7?rfQTl z`ENQ>c*zHkI(HH_NhW1?&$jB7|i& zWLM66H!EBCrNB#ZU})^UnvhH(iU4;6x@`rW$}wWQjMUi?@Y8AVE7%~UoY)Pitc`RwUdUYNc@@EE(I*1 ziYWLMFb)2IZgVia-^U%LPc_x!IM81}s*8GKuUTE>KcJ8$GFUUUJe}CDfVBq0Q6)qt zRmPvorh6;9mBfO1feFfiTB5U9Lm6r%dPv0`nPs@+;%9|!VC@TPtN^1MDSq<6ZuJSw zP0gb-d{g{cZW<}t#z8L@%ma-5u(}?sh01WRmF|OiGKL+nK`qvU`qP(o0vKK;;)b># zDY}KRbN^>BUI(X)z}k$dZv=l#=5RDv^YHBU6*+aJ1!o4r-M;zc%lb83dT=McyupTPsE)l2Ud4PitI!w z%*9mB;IBi@Rv_dqn1dlW)Ms5{2w=fr!mQ5*qj{l%_>)m!>dYz!%HclL$TSRbhe{|5ed7sZG_oj=ut0j^@CT-bp8BVe z$~I;}ird$3I&BD;`d(RDhm?rZo%zBjeaJ z_7kvzr6bulHBC8MlRANgP(5`4ZUUoq&X}f|sQxKA#{9sj2b}LQQ)9vYUaGgiIuz8a z*WA2bJQxKP#*a`~3+Bxj9ytrQP+aXWmXY{F@N7MwYUdsM9&a!Mqg?(qNsD2mj*((8K5igI#}h0zc+d`ifSzKtkaEBhqvVYJ46zxkEAm)y6?SJO84CoXXaK{uF%yiU z3-!?R^@2R|qrHd84$6xJqqT+kL%o$?gTbgj*5(#4zImaQ7hp6# zw&<#Po43*fjBH^&OyUf$Gw_tS*IUW2fw}D8l3B>=Z|4lN-$$ph@KLfIMGs9gA0;0s zjrL(>v6tXi|4U#LDePxrk5-JaA7iG2kyR*(L+HflEYnkeFR-3y%UXT!^$u(}7~&6kL))3p>me|{MPh_s zz-Yy&bFOU|0NLcWKW?VXb&o!Wsc2Flv*YOn;7jNNnj1sJX$+T!MZ3p_+yM#NCiM=?fC?ok1z}D?}%yKgWYXd$-!W>MpUNF z0`pSbo1(p*ELz|{%-&2eW)a>PTwQoB0;M+o6TgV0=%29s9s&R<Sqmy#M!ok>H9^8kW2Go&gmiAFx z-9*+UMeaWp-npRuK0-fbmQ0^ zNX4<(RlOIGE<$P!Lsu_z)Itg4I-w;#{W&Krj87~+)K478ctKDGx{FdeiG%Q=i;y}= z#E0}GeCQ&iMpN)9kI%38P`Ro2&}EKPZU#Oy2n8Ry{u{&s<^`z1IrvZm3-F-^7UM(L zV)dJ$sN{s;IqgM=XcbKIGM@J%q(Lmlhj0ZiM@W6G;@libUqia$)Eg5-)z%Zm^&`|m z-;57c+lmiegj8=EKBVv9d?%1DLejJFp>o;y&}EKR;0N)yxzr3K)PjdN9#&QS+b=+B z=qNrk!}tkRz08q(cpe|>=mN)!K)QZ}g`i(ka|x|k2RFDtXrYAk;f}e(WpgBZ?s455 zssH=<5I*4fgjD_!=Y-V%b9~6|SNKqQ{9>kFgrvVSIR**!BBX-vIet)8K_H|GpSb>+ z>x87^Mrkc!~^{}rbHziQ~;X{QVZkirMRG5w#y z{})~YhKx}S!TeJ~f-nV0JC@A(d|*-VRa{>Oq`BSzr0YjW`J0eW!L|iRBRn5U$^n$3#9h%^YRaPIYQc+pL722 zAhq)ne@|cS_!X~cj^u!M(8-`&p8uat1R%v?Y(n^SW4aI^t{dg z1gVNUuSZBj@!*KR7pmIYlIIgrvK79loG*~Z(nf=KBb3pOzBp1)1#(VE$so=N=|0?p z>%D+9DG{7U0_pk@YLtNfqJwhFkFTU?UY3xIis2XwtPDPh^T|NEXUagjeuR`Ylb4^x z%Mnt*&Eeb(y{R2FgBo7M3lNeai#h)hQr1#@X_N*2{EV=Y7yoyVoW7Q-1J~n=y4%2U zBZ;^ON#6uicT28sF+0;*(g%Pv-eVlk0P&x2j=nfj$LGPR z-X$Q8N5W$u-J)}OxxW!RB31Z^49fe=F&{|!7ZU#qBtt~>LWW7y+y8(Rb)`^_nk>W1 zmq|y0InsORO)k;=Pq-5g1G=lVY|UCkiN47_1aAaQTbTLST);LEum5nMk)s@IyAYs1SC z(o}T>Qhq0{6RQ7KL6Dlji)Nsua(jSSt27nqNfg+JvXz*DSSvJxQJ~aZ91#Br3H0?3 zBqvrB3KRlw zKq==v$-rD99LfHV;Dnzzeg@L`{{m9^Z(RQlq>GU9>Hp9`^(=|}7}=wZc>!vpFt6|< zqz0{!Pvwg8a)hK8^T96H>NL+baQW^#t|iWhB;CJJ#@0%3rHjM=Gc;>50E_J2gH9uTl(Ti$qx9U{7zga zB;Ex`?WK1`q5%@4fYjl5o-u*rL?B&+RACb5gp{0$FRC{aNcpokDja76$zyXlp9iFi z5CcmWmhg`u#fA9C=(YUC6D2Y3_H&81c|r^ z>7Xo}M1mSP&G9UdI=%qJf5H{cuK}r{>zv=>c!%SCj*oz}VZH=XyRU&%?+uVHLgH_M zmK6WFT=>ZG6ObzAah?yP%N$Ai#&tq!@HQ4L5-jjHU`pwngXf47Mwe4;eWEo4FX++RKUPFAvNI1IU#W` zj^11+B)uh&+VkT&A$8muNUNv==Ybr9wD3RDLU(*o1HnW%QbQr&WKdtO|0mc9^|tVK zw*twK?LabQH*aq@{m*LXB7r*E3#5(@ay-iO2`T>s*UtdS;Ilw#@G_7tLh9%$=jKS| zf9JXh(hULsbX;;bySM$Wq?$!JmkSC4AKYezGK{5>`|@&xRL_s2KgZVUlLj(cbD<58E_0+22XLK`8fp)u4mxt3 zka#D~&5`PNfll|_5MHhiFPBaUYOpWQ=m#X1MgS?;2LkCLq;kxtdy_f;5mLi*kWUTH=eUTMH%BsjIdtl9C6EkX z#c?&)*Q(qg2&!G1t>0ar2N7>-wH@gm*iNU zmoJ}gN|+&y)Q)p=q|m4go${;l{2w71SdEu+R-=7{p?f*;QyB$u`3oRB&Q;26ktbEJm5asA&x@>~zz zUT>iKjL?TSKu89Ja&C?^vVJ^2oFgRlO}+;ua1l~{PkiY8PJ4XlA|$;d5nP1C=?rO6 z3SU28=i`nJKhR}{O$r3^*3Z}Z>T7+9&4aXT=t4qWbB8z{CJ`4Q`Rph@wCk9^#s^h7 zErp-2^Wg+q+CN|C|2uEb;i&)d_5aV;`9ELhV@3UZollG9zkj_?JM_=j`Q!y$|ITav zpRe=bsGqO%*)99$>-?Xu^Xaud9pB7f-?Xu^VMS# zz22vvK7PK=r?>cY{d}GO^L0KC1$w^tzuOy#Mueelz@4 z2zo_|>)(H!zjN*|{6Eb+mz-#@S{=8oz9Y25 z{*#XO;v(BUF-uyW$a)emPx;YUjB8aQAmE-Anq`Tu^S_>M|KRyNai7cepZmRqHyP zoO^Vhi)Ut0_*U{8kp3R0>9UL)`gBE;mAQr~n>%KfdQ|$sl3CSv-gZ6HtnDS{e z&gDQibqsl4x4k(k+* zu45wd0{m;VXyEkl))D!9^0TyDhu<%hacsG~x3|UFu8BAC&khwhc&GWOGlzPGmgqd^ z>#K^ZAJ!c1l6<4a^&w9lFW9kOQVD~pOABH za_=cglWw2TOp%q_WibCu?3P*2KC>pL`>ZLMqV2Z-QE^_stt;W?q)Ld6W9|KA8|{y=rT_THUK3 zu6QZ#{**V5f-X8$ynSeAgEGPIde`sqWZScEcKg%)eI3WPU$%2@qb;k;jT#^Ds&$i! zN5=1Nz-;o(XA)oS>?bxy4anZT%mUbbngjr>-WIJY@X?m>K+p{ezhQINAUZr>K zF^YRxnD@Es0k?q2T)}ql=efJ{e|c0@H)wr}s~g@<&z(@{+KtDb>$>zSTxr4mC2O~L z{`BY9`p*(>eT?bwB=r7*Pk-fE?wf*t(WJn<9CP!=d`TH=udO|1<_KN#;`K=@f605* z{cTdtgh~zO^{TLc@ae(h>J|P{`A<9jx7HT}Hl>`qza?>gx#?>zOkX~(_Q9QQyYDG4 zVP3m>-_NzSE+uCMzdpES!0VL}&yFn`Xg!SQ&yM55}aHLOYnfXz3&>FIy3u=WuFEs zyL{_keMNPHYq#b5H`nu6xNzmwHeElylzKF1`n~4}8(onrtCoMMd1=0|t8S^b_a7Z> z?%rsScjcl=KzVqx%-acXyoZ!1KQ?Wfv2@c}VuL9CCA+G+xw{g^pV-&v#Oljw+R6*P zt6V#Es(6c(4j=ATJ+ae1z`Cq$`QU7!e;WPce+Aw=WNzKtu6Kgpo{HJi;Ld}g&g)7v znHthzyp3C<1GxvouWuPT*C961#yJ1xF}o|T*DV=eWcHnaW5u^j@wjs4LC)eAA5SlE zHYi`oysO<#mx&oyX77cneHPvCQrzv?qO$we=pVhg{jSs6$lpH{`hCz4TUXD8m%r`J z?HF8m&DVRYa-aNuJ^gtZ+1pz?HD{oic}L96>sC0V&{K=EuX2}s+VABs?D5kBRR%1o zGq>HBqurj@SpIHs)vgmJVdR_PFD}gN|LN5;WrGbi zupI$o9@$Uu6GHOjq%%uwRz}~hSAF*MBX3R>T~ReXwUPD6$@NcHdswSw>YiG*6~`px zIz5Vf)njViqZKZ{Jhr3v$;W2q9TSxaO|XGQ+F}FqTDp0x-{fjeE3Iz~-s6{;wz@>^ z`1wE-6{;Dj@p%C8}_uX zg>gWytH&HSq{zQ)*>^5~2-ecYzsdoEbtqVfUX7iUv!#~hez_ugZ6$3so^m!%@O7k(YEaP6(d>+2tDKRKmq(CjPy&*dhKoA>^Xq%HG8 z_uOk#%P32o(52Af3(q`@J$dtcV5nEI9P#M0+I>5^`(5%hGw+PKc?&j-8Z>uhQt_qT zZXN5kb*!h`pycDDR#kWq+h#;$>YQH&w{dW_oUvn>oncY`Rf|67A6+->_w(A%n}5kY zdFJZ;;GIiW&DP_NKWb7-q?$984k=>Ng(bw7pU3A$RIelFBC8stopFTkM z>CsNx`HFo-nCCd>Q0-0Pg;FCAoz*r!zrWh7HlOE>KlEJR&`@joLB0RP8Mj-VsClCE zj*8XtA7uuP{LQUb`IoWhe75!JxOUL5*Nzl5Gw*`AdF?kB8@RX!=LYue;-caNL_LkD*sairJ&v_+k_y#LtB=Gv2)HOe)4=|5%W zxZ_dt3q^*%Xt`>zyleJ^exrM2^f5Ef^bbIg2Q9n#hdGS(^>FZ9HaDrssP0e74cI9x z8|$&D`t(b0G^r2Mca6OBIcM`*yUV|(q&eASooG9%@&5H6G~rALm8oUUj#a*|Tx2-DyHEW3M$g_T)WC`(wu=*L%$(tH$12Ie5?MN;|)9 z$Petl^u!)tpYoR{mza~&dApf;_;)4>F3aeem3@k@>ss@q@y`028?rK@j@o<~R=n=W ztz$d9sC&vHc=x0gTc6F1wmYBQy}mrW<;KE0!cNxeK2VqX-tFS(Qp;wHSDfr&-j!G7 z*F1hSbkDbK2d7lqFsf1H(%_hoYAxDNKRq_svF6pRjr&U8TUIjEa`2FM9ScpFZgF?K zYw7DH4sDI-{#SPWVigoK^L{rs&%x*7@t~GX#!qTCLtJ!P+ijNSd;jryT@Dwun43I3 z=+A|X4Xa8NpLWi!&!DfKhb@a%eEv&~UkyF{rZ`164lmbNp5d(ACi6OUuc4`FTRfui z?cQGV>g~2ac5Bbx$DOua9d~w%%g3E=6GFRIOV0?pxwlrw{7-BB@7OKjRPRj5}ecv_)P4a>IoDjayd z&ah5)Wi3aJzMlB0>Fh(c!)NIF?+q(4?0eRr8Je$8puFD)XaDla#lZ#y~c@P|3SXQyzFUh>lrFuA>X_v9L+bU-(L)N=T3nw2- zuIKArZhY&Kfj5o0>*qdNv*ng<`!7ez`rG%t^YVpt`QnqR)VFYXoZW7-l;ewks_)bxYuNqgd{1Cn2^*JZM`gf|gdp+#opo(@`ldd}+ zc;e~nQm^Z_b4M#2pVOqX&y7pRCbw4>RDpS8H_p1^(`I?utiA^g-44C${o!;uLz(R9 z$<-{BQxi2-IEj*H1XwvvFoeOx$au1+W7j0>xKNg#vFI0e~HI5x%bS? zD>v!$!7g{F6|?eKomh0n?PdorS}z*Ywv$z{S>3;P?N{oJeBJ4wORHeJRFC#OGa`CU z$g7`le%G`5ZHqQsm|f^YcxtW^P!;Co`YV6g4XqVDSG%XpV$Z;N8B15$)|O9{3OzKX zOxgK{!t-|bYgTzwiL9~y`sF)E?Vhz{cAXOQONF1lWMf-LuJPrWnR%vvV1_2x^5nGf zTS7M^CznV$8~Z8gT}q}y8Ee*7>Upcb8++V+5%=x#=x42_NFgH%|6=p*QD(C; z6>Pl*{+aYOJnKu=+Y@u@U$m&36dJMpPIAN84P7>W+FxyjnR$=Qy*Kn)xAwO$+J=w# zG`qpz0pqVc2=#gOhppGR%nbLvi8r=wGz`79zen-nW2DE78c zv>IiAEtFlPoFS#KMyX&2C9(mOG&?AgMmb4}Z9^zd6`&N=C_^hiIZn!LQi^Mox)q_M zG=eg@B9xLEjFK29!GR z4=J{;P@Ej0)PsKnPXzwx1R=lxVURM%0O1-5Ur9(*T6;nm7X)F0Cxm1rj|At=5JJ2l z3{lp2L3lz!ac>BzO0YMC*%E z8^VUR5N0ZQBslkh5Yi5UqO55L;Ry-F10c*%f&(DT?h7G@gn5e89)f=;gqZda7ARRH zd?vxZ1B69NR0jyF`$0HE!V<-~ zl*~>LB8?Cpk+4Q-90b8O0>aE72{AYqusQ~UV^0VNltDcqbdQB_g@i*&)m{*+ z;vkIf1>uNtfrMQoG!KDrOvwy^5E&2Q5eX-h#=Rlf4uUYVH-uBlJra(S(5erFGs?6+ z5K-jZ;Qgf5{FE-6bwA&g6cpzR0YiW1llf^#y2?IirJ zh+z<(kYEgha9!C?x~D?8Lc#;3YJUh;Lm`ar58;t=frMQoG>?Svr;-^7A#xamMJra(S&}smLm&&vO5K_`0RE)K#MB{U9#|1S`ZknmM09S`C2 z|6%T}*sWL-6I<*STg+>>Uc0-y;~is% zaPK4cdA|4i{`mMgTzii-SIt#(t-a6MBzkuT@l*Dah#v+bR}aidW-IC019MWN;b1P1 zv9glvJ;9_I0cJ!`FxFObmdsW%0lmPawvwT}z;qZ1=02IUR^l50#%UCo=@DSkTge?V zhsjjz4JLz?Oz91#-)J!J$z-&Wa(%$$9Rp@bA24=S@`lVMG9i7zWVVupeZh<#3&y%1 zm@HOOw;!0GabPx+akLUke=v{8g!KpGY$Y4W#Eu7(WdIl#D``CdOqB^>4w7-Rl1u}^ zd?M3(AQ*Qm*+(XRBA8r*z<5GGgTOSJ1m*&n9MI2TFli=(88H}4F6f8MRx$xYz~q5` zhJfi11Li)Ne9%uM7^f*9M9jlc?T<)=4F^$F){}@85Lrfm zC@!HRKvanZaganwu^S2E6N%m*%-EYV{?beIF;K8dR0GZuu?ToBX8f~YRHNgO6oaU6)65;G1&zj@fk ztz0?0SqUWzXT6(+jR+ca%z5qj z9mO{f3^@7u!s#1!xo_P1a60*dyq5kxwz_6J`1N{JMpNmpud}6ZRc~;_=T_|tX7kFG zv0>jF@1Hx)cImp(>-5ty)B8GyjlH&T`uFpl{)|1E`gKCx!~>z1*ZvI7-g|<$#o872o<|uKa+w5b5JR3E2NdLU&n>jrW^tR3%lHca} z^mQG!j9Xm2=MUT6?IMu z7(}iqAVQ_b6cCM;fVe=Sjd)H4k!C4~5mP~g$r%z`Nd!y-(O#mbf#|Rd#C;MS#b-JQ zr+5(4r-SG$w@Dl(QE>){E)p{XM8D-A-jnDiWd%gu6(E)fh#vBq#3d3Tu^@WMf>;ov zSAwvf38J^unF%6j6^P9w`iglLh({#CW`XE0>q*3}29aeph=CG18$^{gAP$lkEOv81 zd?L|%4v0wEOCo+Ph+K0)L`#pkAR4U$ae>4z@tg-D&3X_c=7AU?XGm-%5fBGrltjmY z=&%9AeG+5DXFdq0jUcAa2Qf}=lQ>MG;sOv8BxV7Kew#qNCoxINE(DQxGl(S%LBz;w z5|=eHJ}fY1#OftMg62R&92*=(C_mq0MoQ@8iQ#_nkJ&s#*Pfon-J9 z^omA#GM64ctfimZ)n0vGyx4xicl_4MYu(3fte3cJ!gssk(f)UHRgO;M@MX``{`F7H zd0x%)%dyuFZiO^(^4_2D#d{lfFN}Sl=~8DgN*$DdQnwu1yxxoLKC5o*c@q)+{(kqu z*BdUZa&zmDkG*$UJ2+Rge z#{e8Mm!+uu*|KdZh$`DaxGe)QS2`{O@rlF<5^>@j4e1D>AxIAnw=o7lUO48R)E+_V!{d#%j7bN4!b~ij9Cf7X*Y=HBvwk%RUi(N zn7azZYI#he-yRS(SA$q9uUCV}n+PIg4T$x!U=4^%B&^qh*eG?@f*8FQ#AXtk#k>wg z&^{1h>p&#PdJ>OFWLXbln}n_h5xXD6K@vN}ZUcxa2SD`R0AiQyCGm+wu8kn}NRN#m z;tztjKw__WZUWKh5Qq_*Kj)M43;*?a~1|sh<5UaO=I3u4)Tq4nYJBV|# zd^?EI$3bM+0pfx*-T@-$1c+TE{*tsiK|CVSWhaQsvW-OSNf2(kKwOoMyFgSq1>yvW z>*Bl{#3vGicZ0YoM@Yn<22p4ah}+VC4~Rx*KwJkAd^h<>u>7OTk?dlxxBNIDEt{pJeA?mtS^XX4~3Qe*}*D7zo8IML^8rGc=d#F*Xw+jkS z3~OPLA7?C%5|D_L?n`tcQrdbJDcvXWP<-}+=x`3i^t~V+%WV=)=Rs852jZ#3>;rL_ z#CsCYrR;tX{Vsr5vLD1tc}*hkMGzqeK)jX(2S8jRVSNz9Td8x<($M@)meYAJ=0k8k zNMkx5Wj&owlJ-wHpCy#e7uiPVtJoce^G!O^`7V3u{1E3OaDGY;I2My4M~_$uK zKML2P$N;)likzjZD3bpeTx&&!(oLnv6}qVv@jVVVjUr>|rd8w)-E@i+I{`PnB2(!8 zp~w@u85AjZ60VIRv*>12OMH4QEfFjZ3z>jgRdIpbq7=~$piYBH@}SWaV{^m&PW*|ebvFCJPJD$5?dwJ2$S z6+vEqw49=FhQ~uqCMU#a9)|PP#C*q6K0~Ko-MR)K+BZli9ToCX&25H=@U{`Xz|S48 z^UJhieY;^vqbZfbg*D-mGfXCY!y@VqTvzh$s#YcHt0j$7w|Pk_ToDVkL$Gznu3i$F z-Rd2)l@R;QvMwF3Ji|IMO+8h;;GIG{t7`w1lk!?l7`e3?IkmA!UZu5Ctb_i-F|y17 zwv<@nPQAiYwF)ZrL2Co5 z=dXAYY;3H`rM7LVmQY5)ld2hbuXT4m|yprqjNk+xQNcp)j1xmR!ryS>6{Jj z@u4sEFHYxpP#F&xw5P*L? z!J7$F*$hh2H9F^l>nMPKJlUIat^h_8Rc?dMx#7MouKBl#CwH=R7_v=aI=LAxYtS8N zsdGH>n{pmNGo3Sj=IaTr5jfT^fAUMY>;RA8M~gP?*0~(G{>EJ4Z;#GJs!aqp{7cly zT)5_!82HB%y%`~!O>dpsr*nD0Me5vsaJ5TvzE!Cb0@)3gM|SP<{p1%bvbWbmjc*m&siaT zhQUN;G7g)&pbPS-FXN=Ui#q2A&Q@=%f9V`v?>6*Ln1| zbw%fju>4ze@~Tb-fiq5Pyry$S!OhU+u7hKy*$rcL?j|_=iXV!M%+x_!ENkuM50lYWOpw zN%OKEPz8;Ujn<-b^>NK(7ujg7z%gtHufg%pT9<2p>o~;Czf|DV?%NPI3qZ0Z^QZAl zq!D18*qK(3uravRXh>|JJOQ7HGyxWXV*|~gb1>IT3w17|9$zzXv%s;@+Ui_$mVdTR z+UaBq2%HDll6h=CGt&~dpmRJqpIj@TF~YKS+v{8?u6LkSvms~Exz@OL;M_?U91GtD za8WtbzcWadq%AO17vyx#M8beoI_Ii$?ZBNvp1NE| zTz|tg|FV-q`f5w%2?cE3Ip8ugY^n7a3;uF}<7GHN&9H&yWnj2n0BVL@KAr1|YkmNU zjV!;;b;C8k!oW$_0G;axZjT;epw9IN$5YN( z4Mp?_2jKcXK&=(iBO6;4*LpxC&eYt^+rKo4_sLHgE^H3)}eO9$oB)nfi6H--Xkm< zHQNx|OccQO!fGD{j0VO4V}Wr1Pa{tR_5%EJVrc;1vo=)*+Cb^BEhAN1vK?+(0<8cS zfOaE~H1h-efdC*7;J2@67k&qR06zh?czzp-W?(m=E0{MY#0MA0d1Y86rLUt0c4%h2}4ZtQ~Gq43n0JZ|ON2dcb00ClwWe67! zU}4=x{eEv#+;GyN6*L!^2gCtKfTO@M;5e`y*afTtRs(B+CBQ6z=cIQ4Xt2^i-47f9 z4yTe?AFWE^q1EM&R!t+rpyO%)%~hJGG)HNE(%htZc^IHYc?{qR;S@m2@f>g-pv6d| zo<=;4b{gq4%4vhs=BAB(1E5`f3%Cu?p1up*V+Y%V3(n@8a*CoYhTy&-Pz|UK)C7V7 zK1Ou~+<MYQ{2($y*1I>Z9Ky9D|kOoN4 z-kkxUY5Ekn2k2l%s+(*S?JaTfRi zt^NcWp=&h;c;0p}PzxvrL{`9m6#<_7T@>IEzz$$1z^@_j6FHSq!yu&@O0)9@61ff(gl7T39q<6Q z1FL{IU_P)MGBoDr11Eq}zXh`Xo4$1Dj+q$4;Xy~XmZn3_W&IE z2_z?6(C*I)aMfZ1a8<%Z2)_+x4RCp60=UHbhU%xqOOw1dP#&lNlmSWr#et%LKi~*B z0ro%^zyaXFkeh*NKqqz{cYyZzTSRJx%U_H)1?mFzfciiP&;a1+^fc2;0y%*f2r~(h zZUzCvgg;I9f+#3INc96)hJwCQOcM9QDqkd5 zAzXB*XR*P3fP^0bPk>6ubunNi0`TL~{MmdffXCx61HYVpz-V9$Pz8lqiE!J1qDZt6 za1`JdXMVyp!QBd%U%;XXkF`Xkx=^Tvo7zAfpaIYjXaqC?ngY#$RzN7w8fXiI0UdyF zpbO9y=mvBLdH_9vUO)uU8|Vx42L=EGfkD7vHo_se;OE$)fM{SSFbt>)d_ktUiMSfz zmo-iz_oslY95Abes82V&<8*s)kVi}xZ{DQh^P_J7~tk2KNk88;jDmC@DD@v6a-QMlfdOb z965oHNaruOM}VV1bI3;WBRhZM;xMoiNCegZ>ww8X46q9_N0Hb`;52Xs;7Yaw&f%0mq$iQdCBR}JH^BA2Eno+{Mdld~m+?6O z1=xc7t-w-X4KlMf694g&FI?9z29^LHkq|k$w}D%_%gDHfZvZp|3ISfg0F)>Z?gri? z;lh9qkRJETkqPb_r33CGo`=9=J-%CTBeO$r6@*G7cewy28jr-e?B-X|ngC6KBLKgz zlmIt5{~7WO^A6w=oJ(#lu}cA5LGv3TWpG^@;77?mfGZ2PN)cReeRHdkx^#|wj?&!+ zVAiST9j(;cxV{O{1mrM%4eoiM4sZ%!gQST`Q)`cvU>mR%*ahqaC<{K) zl!%L4z)gS_9W6LoaOw$dp;l@G% zT;vDx0lcQmLB|`Y47G28dmBiNNNI9$E?5uH1Zxej2XP)~1#k-BCImMl>H>c7s|mL% zPz5Lllm$uyWq{%|-Ix$pe5HVrKoG!%Q4t^j2n75AKY;a5dGd6L;=0Q?7}f}5$T55| zUB(DQmzju6NvJYBD*+XO@<0Wk2EYlf8W0TB0cr!a0Cp|bHD*G!O1K5n00;pZ0W@|S z!!_DPOI){L{c}0UsgwYrPC^`bIMucRIsv_azCcHy56}+i3bY4$13iK6KwE(Fl%q_T zejSL!JK&n~0l4n+i%0!aurtu@7nzhmI5-MZhA;v$aYMcbt|@0^l!-Gl^d}zykYmEk zAg>n!3xGkae+HZn!~ydFBN3K#E-)LI1uz3MfmnbUVC2b5MNJ4W5SRf>2POg2fM{S8 zFcqLyn5ij1Bvm&Vm!(D}lAZ8h~2~7lC!S=1^K( z?~WYJHi6rSU*;-#A}`>QUYugL;F{jBw@e3deHyq3oCD4RiNFD1H?SSp20VrAR=Di# z32=7-JAoa55yvT9?+5k)djZD7@Cb`7GyR4H!35}1h!NyR0*Bxp2L9CVnZR-2C~yQg z2Alv+0!BPA^h_}9OlQCuaWW$;@Ogk4*~zJcrDh=Pv(Xw*0B$sz0hrP1BZKeI!Z+Y6@CEn`d;*>V zkAX)VIv(QUE^r5+npquG=RN(}P$?VQeQ-W-DMNpT;Wbsydm}unfK~bgpg-@Q>DQEb z0X$dlQU4VD2z&tE18;#>z)Ro_@EUjrP$qdq|GYL5O3D3+@bqJPY-0?+CDOQnYX!Bb zB(701|fRQJUm>eTv z!}}-C2Ki5pi5lERgk#%a<25+LWurE(;YO;7v$ZE9|5kFN-k2c{M1~v(6W((yAjfOU zux}eO$>j}>z00`X!v4=d2Ep!UTpKP&u8YZJjCy3aJin38r*p~cnSI@e?{6;aKY0o1 z$VD6a_HWX@r2{RKM z!Hh6QCJmPbF|PkdH}Y2r7`c%%4lc>nZ19FmHTYKrssOayxyw@!E)k3C+CVL!Bf$Or z=|FdYe%!VYU@9&RS>c*~T>#Fy^pC+cBOM8FaEXFj5`05kPsVjW zpfAt?TnV5Lt|tK#fu6v4;3#-5C7Gd6j{nVoaR684W8sbgMgt82=C(di52y=pNjM5_ z2*8XD0GK(Bj-7FxQs$TrGsnlu$uk(q9QFd3yB@%=oZ*^J?3g+3@Nsvq5%9ZAH382I zPz%j*-3n*{v;>$*BXgZ_%?ySCZ2-tenp)$cEzlll2Xp`&5m`7~Cd}(@aG9~La9be} zu2XvBIzq=FxI+Lwn;8gDEByiTyr(-9hz5oM!+{Y%1nZx%qvN!7&VF*!b9{$kzvE@SgR;Muvatlc%}3n4{m5OMbl& z1QS>QaBFEkTy8Jq1B^`4-^e(vA3khl?hhd>uhzN^Fc0L^T{3` z#ZuN0t^<%ozbEI4YZrhI`}ok05C6#Lgv*!pJOS>#tA+N0hX-zQ0NDXn0fpIC=(3cy zjp2d6a6fCY%C3wx`z1`wt}L>ceQ*$zGCi%ig};|i5icKKIh{)x>ckzy^q4_BHa|a` z)8nDZf~fc>wR0Z3Tj)YYR8Kd{PwT#0X5K775f!fhcvAYhJ=ag>YJljz#0*^Rb? z$K_YEQ6vEQ7%O`q5HJq{Hb`krnAm)uaMlw7h{nrLTh-dZC$*Bba@Sk4E~!CTQWK8( z%!?!rNuIn)OLHk1l~)NdkCp2nU8X_fR8Y~Z!JW?7<-LheeqKH-(>$@uhfph|M_I+u z%HOm_*5_9o6vVe*TEZuQotjy3{S=jc)1Fn)2J?E|SmX}_T_cbzA1hwG{YeinySL{>y zvx?*7b|=MN%!QPq_#t5NLWpLCbSs49R3GY?ce1mP5^TPgklstNGUG&qjD;alK?dRs zWgJ6rvjm)m^3o4^N1UPJeHDL~JqS)kr<;5G%J9^8{SX7{o_Q-PXMB~KmNX9H z;iotSL^^1KCEq5lKWd8uR9GXb;6eDX;7TLk`X^GYI0&Brt$2>o#Sf}W=cKjTac!rq z-+AQ-yMiwSP?=d}0R*7p9e&7{S_yteic-Q~$!d0#hW<*;-$cO}P+g`=vd14$#f()ypcP~$A7n3YB3LC9U!S!QZ@i-jFa90TB%+&VLyQpAlCyBfmVwyX;2srMIo)8 z{roaH^n;#Pf2>5$3x9iHU%k}(yE$7#J)1P2=rClUCV>JtN%|cYQ2r_?&%PhndnnSC^hIP)@Z2soR?WDM#jSq$Zik>YgJJ9UtClx`qgvf~jBGqx`lH>6YeDeJ~Mm8fsnwsj5Rz zO>G?XGX_U>%&TdPkx7H2-bqp(3$@WxK9^M7Tv8qo^^sK@_FPgP9`&Ivwv-a=GP97T z-}BYtdzUKRG9L;Oh$2DZ2x+Mdp@9*YWhy@=!p| zlvey)is60+_q4qC6MP758YN5_c9o}8;DyM#Zl&!QS5VcfH1m#R3(gA8Q{7c z&$T>0eYVNA<`H_VH>7hH#Y?QpVm5m!CCj36R2!itewV(7cNt|&SEYd2N!-h!yoKdd zSH)ABlvAF#Oe?I_a!lbS6LN1ZS=8Pf4JI>^iIbM)p_P@mWvY%d3iiLg`uh`mbAH-# z_6c#@p6{A3;qL4ad})0Zzkb&m#yB?*+(efF7N zRL=d_QYOhKL~2$<+#Pj+{F(A%lDNAdNno% zfRhm5pj@}q=>o29cFU3k?&&@m94kDYx2DgZNj_i1trFt4g|W$?;jI?_ycn|$L#(0W z+)@VuFtj>XLS4O=INsSxk6%S zUj@!?$yEj2=l?&JbWBxbXRs`o4QsPyb;a6cWI1glh{^H3biMBLFqd)C$AE9r&3Yg2 z$uhG#4BEmnp&BON!g95m((V5`j+@n$Zkd16%O$ji;t6Y)om}SBP&(io4(pnVU%(<* zC7e<(+7#`YDNFUL$ROqe&Tn7KYdv{}ZB$vm=4&d#M1my+KTIZFFb24URnW?I@7eaO zi5}n2sAXf({=Rm|pLT9VZPwAo4wv7I9SCECOla-a;^VvXLCUr2gjv4nqW4_rHVM)HvA+`Ncbh!QT9+yZLyg>wXn+|4U;Bn+@$Yw5^~r* zNs>My8ET=yKGUOnP&QYZ_vI@bND}y6Q`REQFHI5DB^V8sIjMhR&w^3!qO&Fi4VOs} zz^PDZw?-4 zN^$c3+xKZB8wk*# zLhXjb$Br4f=Vv`@^MiItNd!sFx@r=t^AZPk;_j!+hT~$}K+As5IiA_dJsMsOp?v&Q ztH)hVQ6O(aZPL5G{Bo-|jmmbiV7T;AEjUd;TSNSU7rQhA(}yUha7qn#R?OZqsTrISlCc3qV8%62DyFT{TpN4i zWMuY^Jr7HvhPb;Xp$!q@x!mloI7m!GrHJcq);U}`Vv53oFZ{6Lgc0jI0~Hg; zMld=mN%=+?X%6B9Q>8yvYBw7xerbEO)aHtN;?fwRA0?o%Qqz?iqSW!e$l%-EZtiHI zYEab^qQv9sxU z3Q_rK#@sYn071-%JK+2-Nxf>cB=f_*acQbJr=1$6)xcaSiQ9m+xMjC0v}dzh`vOr| z{VoN=PSe(}P(;TrVW$3pwmYVbm>*&>@6vq^$+)Ia?MS)Y6sk?W(cmB@n<-gJ26e>d z9HQveCoDVyfu7E|-M-j_8BVt5HSpn3W!p(B)+DFu85}0Qc&xT0b%a&xHrlLqP-k;K zDbO5gRFsy@(Y!)BYc12UbN?j|@-F-f12^V)E(=vTZ!Tt&uBypbhHWB+TOjQHaIM@O zdae2SCF9DDXqv2UwcWRAp+vhxcG1ec@$l@Yg{QX6hR6fG)GUq0x7ncS5OHpa)$R?n zaaQirQi*YShHQI=tYc-$h}xg{>WVtBsrm|$wUomu zD-5Z0g&g(T=0jimv$a0d(^G*mwD?>GM`#gs7+CK~{{1Df8-iS@5veh7ffpI3Of`E+ z=62Y*Tq_;hL0==~OgohCqFA@bEMhl6OQczj(5JGpcPeZbt1;kNg4CnHJP2^%yLZu& z!M&?Yz>W#GW%zeb7PMCigk{q=!Bx`wWbcUj#l0#mHzwgp##2vq)nL4;?-Fxn6?y#H%Am>thDKjO#ct- z(qo-bS^xLzQvc79S|11)AK@|ganK~JGr9YPdeGLT=FHMR9D{Q)nH`SSk$mx4;D23r zw*QwUCyiLFHH&M*(touZ+@*9k6!>@3v$~kZ#ypd#|wM~od!qZtG+LaRCqoCJ{V8=9OlSyt+_8LW36NkEZ+@2 zJ{U#Nzc0XtJwNkKuT`r<=iE|bQ@6*p79Dv<4_Z7&md=&ldwzpJ5jL4X(+l{p7jC=eVqnT($pvlzYdU!4~P#T}d0+rdO|C5&gr%(!cPZe5Q8dW+Z}|)U-#$`oeH8wR&75H!) zb!4T)fusDwx%J4&JrdD1hZh@{uj8uR1AGRJf*0EXnsgWVu(lVsZ8>;hjc%Mg=!1qk z1U??{nQ^;Zol{k^-hq#9Om*$sE3|t@4D7Bup5)Bz{{lW(RHCJtx`*O;JcP})Z{-pX z&)$5>S0qxKUFRV>)@i0HSF4A%ze$tZ+Y8MbuXTj>3&Rv+5-Rl6*azr4=C zD-*mH=f5$och!8f8dz2&bQeA}*#|XO*7oZ)FhNa7-NJjL`#f8;*n4ixZ+J|qDivYO zW3?)>b3Q0er-LrS$47hW(wC*dUuvc5;H?uQOK{1B0gg{H(<2bGAYtcopP0CYwWsI1 zO=#CXp$ParV0q&3{MPwknn9&BO#a1agE`0Mdpf|re&cKJQrnwLm1K0jrih;Y>I`43 z-R&HgW^Nu{J}IH!X+hSUS6m|1{ov_?v|=4uTWWjT`X$g=XtJP3{7c@Avj;1!ncX*N z&|j&M7&piLd`(xzYq5D*PL_C+ycv*3? z|DB+eYK}#RO?4$rWXkm&+N*!pHk~_0oLn8|yQt9au}Fda4rxbB*4jv|zWL(<&aBnO zIB!fXru^NsT;Xsly{9m1#&&wNcs5QY_G-*1RZ&iS|Iz?^0us)gwOZyHugeMnjr zQCw^JV&g9@5=+dQE7gvctvDO7J)(#G=1CG)$S73>gki57VcRS`e7G4IMAp?Vp*>vk zOZnka1B}B=?$v?8-RJyu{2YR6Gq;2mQC#!~N?2_2v5{rKR9SZ%+TS-!$!ZxhRc;JZ zoSf!P)mG9?UH;tCFW|=$J#k+-nM-kzCEb)lX$&h%Y8S*>@rJzbhDGjkBundGeb(!2 zIWk@PbyxCRU!RV-L1L;YS+k+-Pne;N5D%8EPZ;dE$r+KeO+p*$`q$ZYCImQI-+10B z_thHaPzdlzCaPxX46*N_RIqHCAx(NH9+ui7gL)`6ER98u_E6fn&K51|%@=Cdh??Zt z6d^g3VG^nyD>Zs5PL_~ZY1dP!;TjXGskg)DK~YNS%^cdOUW~hQV&xi);C)ZDq;8^SWam3kXX}|GZ4(bFWOzJp%E&{1#jgwY=l`Phv^2W*JK1dkq z`9v>WJyM}B+L0!w>S$VD=w`?qEmwKWiz^M-T7dT-x8UAYV6|6tcb%~KO&mdI&H7?Kv_zUVT^HUNChWfB#M zeW9H3n!z6#V*6^=gzSse7}PfoUG57e`URJU58hRPU2JL-FE5Z4*Zv4gnDPSH40lztpxUbw<0bn*D18GYID#B5l`0};eK;*&AMK@`UGdU=AnIv-RMx!4XyH|UL!S&_!Dbki%X4X8UWDdZ&ha852AV$-sJhSLj@ zd=@O176|K_00}nP755X{#$;J(Ns>6UT)dddh2`=CuIocxGE?QMQ|BzOxt1jPVY%F5 zTuU+Ruz@YBGrnjo`}{+bB=l;x7;zf+hMPhOT~p4#5tE)fqhb9@LFXkn3cbllCM8#| zf?sm~i2V1F%vdAyq7+|zisDQZrh&LM@+=BUc(F!nk{_F1tX5@rL>5#y#{e|RaqGk* z8qI3WI&F5bog8;&@ur7iYO_)$@I0t%G*q5xgN%lx<;)n_8LdR&nYG zNm@Ug9@sT@%^yi&C&Gsf?clK|n}@Wl(Id&{4;eQUJBTU2|FC3}Bo1Xa-z+wmyeu6y zOWt8fzSm}H#(TpBKNQf;5)LfmK1|~?W;ShY8Al_4;gHH)s=dE&}q(gAe z;D%~mU^k%LTjlgr^&J!YtorKqcfqYPe;SgrAAu??x>dYK zAc+cF<;OURBqeGj(huG)bABVPN9NjUyEfmyN*FzPW}5p!NhRL9U9ye( z&vgD)xC`55K4pwVj4Z-^k(}4_D#b=4NB@Y}wdqc+;r0Bn^2^0L<8$d*z)WLA4^2#- ztYmSAQc|uVLrqZZA7h}{y(k%n*bA!*?H4tqXNLZThk`mLgE2CAYj31+9 zO{qFy#v1W=*)7)?|A^h%K>aG}Snd3|KhM(RN4Dqh7Td9i-)L1^AjuYfG=5aZOV*XI zC*|bOZfOBY*Q=1=kbY&@UMGi>uZ>24zGrAwPyJt7-K*Vl3vmTn_Gs<$dE0xBKa3t& zLsuu-g&lmj9B&bPtKQ=}dCRIk*tWo;S8K7Zc_HBdiHyp;J1u=(4Z8%kQK>!BdK|iz zQ6*Y)b26GY+nS>_MovZPFTb1KXiIvncl**VYrRKmjE9!G?vZxm zF%=Eb({>thc;@a#%kL)Xa~gcoA`biWIjr{1H1y${eUgx?Qf}Gs~YYZsh75CB$f?W4wd93%#z^qEp*NC4tgS}@H=~C9%2vt2ni=hbT2b#WnyG;8(ks@;S#l(&MEgp z&l{6x9U;Lv(K=Ja*7>t584V8A zHxNF|*{eSsJ9RkwrKTPh#UGm}T@lvu_a<4x@*q)Ok=KWc-&Ye>i+K5ZpR|h68Z-JJ zy460dLQO^A^;uYX99NIJs*SjgLxPPt%fx=3KQ5oRktE@_UlJ#wBqjE1I!=G5_><~W zV=|}`G?7d-;lr+C71DR?gBh;au~uV8_nWpyY?yv?NU$-?pP4SuecSk#x&(5nrJseZ z5XG|j5cn)ww(pU4b- z{JY+@ayz-&!(3ta%T?2J{(;ihGOOKBwUD$Nt1Cof@K0e#M=_Jtfi7&>eL~vJG;Bs^ zn2zRIn47hCU|oOns;9nR>v&3P&qA%botELVlosiHPHR)xpQq*7EG*b;XKLe>=heb3 z^0e@Lhz#p5N9a$vHG5EM&Q=`LHanvYO!uVAY^>#;hHC2qzb&5A*IAZ)#bYtPsDu3f zdM3UDa{4pzLSi)saU4J#9LRsYdS7x5MD%yHrTZKuQ@WOCwKu{Jot5!(@H}73iRI2& zN#t!|S+E%oVd~Dt`^Vj}htHw?g=CnkI0qIyr)99(=AXB2G`kgo(iHLX^~Zc#5p97`114-y(}Z&}nau2SG9(Ue{5gqAgqv_q$}ECJ zkm=C58S_=qv*#q!JnXyNJ133iDaBkLo!6|MTnCrd%j43C+rMfCf=pHyWX(Jb?zt{# z(^Ogel^wILZNLdaUq}2~=H(m0TB0w?&dqQaUKDR+%yrjA?aj<$+s4)Znx*XqBef!? zD;K3JC5<8+Iw##1!scEVr}$gc+&lflF$$@BY5^VGikMQ)miEf5HM)J_%d%y@;_DK9 zS!@1};>TvZcrlf+pAU&7Swj)OX|voZ$0Xx;N^4gY_qSDOs!ujvRWeHz^ zwOM+JTY#lclRTPTbEeUX(^cQa-Dd+-XJxH|^ddS~75)4BUrthNA%=^j605o~wCj2Z z%@0q_qFP*jkWqHSyj09Y|O<& zLy!0dr$tbVpI$+}-py}H3ntR(rVM(3`kuTPdyuN`on8N#pso2l;^AmzWXkK`xde}AX^zex!_LC6B!!vBAAaei(rEWGeo%V zGp$SSla4cca3>DCDQGo*F?Zz$(sSJk3C1yK%B;HCk6c`(hlK%j^{%wojZ#_PlNw7Q zS>T>}8d6lJG$lJOdScxvDQ9)=Nfae|K*AGoHEJ@f!B+F;r%7>5xhLIsBCh@SVZWX3m;XSfIhzchAXA-((v@KcL4vVY+P?N<(A&LyOsJ283*f`@ zMvhK@dzjMqvEft1bnv0*4lia8D?6+Z_cQf$?HB&C)k>^ev={i-MG)M@tCu5OaVdH8t1Cr7_K zW$pGznO&&`kV;>BOypX7KIW)1z@qk}B z3omhp-cl*=*fteLYz}T=+yLGxp<pK2Mn{WEOd$lU|@cuN=Q2%kI%yyk7=sn<#^Ym($M z`Kc6KiLC8|1haPTP^78f?ko?JB%VH%R*(p^d8Spkb@^l7(QzjxB}w?hry#<<+;#kJ zmkzDD_o1iT>Y1!z*ddT$vHr@CI?IEZ@!C+KHqwRgVY<8fx7)OFMfpofVUInNZ_L>% zNHFhiAzKo5R6o);Ny72Dc&}2NA}c=EnsMdX6YAFbdVN%qL?`&u*Q)0?YSIBRxEBWfA)-1a29aEou2&-F$-`~na z#;&~A@?O;bclAl=k73?x0zhVS2RUFUz(y4CfT_dne_w9ye|=ld{NZTwwOf7L6sYA*cU%P6cx zuS1LFhjiVCzNOE_$x`+JZQL5t|FFI-*?-Eb&FXR>_@{W#+K%`swfDl+%cI%|JVPx0H*MAmHHQMyVT~anZv>}ArxRH=lOd}QDbV-)V z@1*piCX-_Q2mXF&Ved+L3ejz*WKsPtLEXYiCWSh(x5fa9j+?wG8#Y-o$=}46%$FJe zufxKxwxcZ*e>DzWYyYwo(*szN77J=_jpb$#+pk)2`s(5zIn&pr|4i_oQo2E!j7~v4 z$t2W*r)=XUsr5JdGuEIkDc5*XcqU|YihrbU(XDcwcKPiPuNusMkIt%zjahE*RveA^ zem|JFq`VwRitjhYGh)@N_g|Zb(fE>&hsN4c4{tz_l4(G-kLRkW%7Yv{1Y}yZ8x*}Ea}zPzHvb#y77st{vKFUH&G7b-JbvY(;3%v?q>B7P3qu*eY@v- zQO;rx!g3YHi7C6g%s;HyyYRX=q_|Q#eEj5-thHOKJCA>bgY8<=X`^xmV}bhW_%6o!mTz4zC^O;Ti%t zJ~AwvF->dtn2me|jTRo_Lia7fU2ojo(>?wV7V@#Q|$A=B!o`*i(W^i$1F zbzM}ws_%&p_mn{hi=QR&NEbe-(BFS^O}YMJJSFioYI=dE{6JWj^@u$a((P5Fb4aW5 zLq{Z)Kzo(kvfoo`oPZsB5rW*my5Z@ZDP2h$i&g}_Z2H7gq99?xMqjftkot~I=$^9O9v&k0AE|!z9iIHmHNxW>=F9!xF8FN%|lc6V-C;wJ6 zSXH2X=`~~4PGHD}DF5HrQMjj+g3ba{u8BX9O}=eoKkmw%kmCoJpg{aJBDReF=Nd7q zr;|8XW6w^n8!Ewu>iWIvSzb-`S-741KWjhm-?VR5cYqpXt#Zcw^+q&!qh3DclpANT zl2zY+akf0qB?ZsoEtNL8Wx!cwmL+>0aX6Rcjd#@A;x;fSFTQ*YwXF1PwD8M_pE>pT zklTvzVRL`>srB`inbY{ghcA)B=UiSnjIxkPCdJE~^N8wn0XdDh0xuWP`g7-!(?<6=ckNF| z>Tjr}?31yOWV?Vxs&gT;y6u{1^Kg0PjcvIVg9j&k%AUQDghRqou#n8ZfE;TfoLsXb zL^>2PXhxxFp8GRFnM3rU-H=FCSQ`}@)HxO$YP*T~(ceh7D=gVBLcgiJrTay+fZyg% z9UcB&G4kpnHp%r?;SO!)^VMqLZ2AYS2Tm=tS5=Pst6W_vmdgdC$zOldH@mwe{)Iz~ zaCp%r>|6ZiyN8UAVpy+j|!G4}7h zlr*fX19l1%hWh@sF<%9yJS(Lz-XouSnyHv)3{2VXpzicJ=)cYsjf~mpKYw-kEI>1< zngnVs{Fuj_J6*!Qu(0~Nza4zoE9Td0;=C*M1C#E9eDn&G8dp&5aA(1F{mrBR^NbJc z&@C)iAvv#z)V`|Zx2z~4gRUyY^j_ndf~Jv#UhThcQR>`grSMR%8fNY3j|{t}6ow_U z@tRUINA99#b*B_>)Q5M5+D_e#_O9X34BK==^oKo*B*%69T(yGqxQ-vgHIyZAERTxH zmFs9?my3zb4QN?=(b>uMelblE%f>tp%N?4xG8Dm|6(E;yib=B@7*8I^q#Jl>`J2a1 zJdFi{BW3+9OtahMI^ zT0zjIGbGr1%eE|CSy?$-dkCQRI4z3*p0(_9`zAIJ^pq{-ONzrSjESxu+7{pLx*hjh zew>?(LhFxxkCoIWkrCr}Wb3x);W%9#=*7)T$&g#W&y@bN4qXq`l-h7IlfAOkN(4S^(-fcqUe(;XY>O?bMQWv z=5g+7!AFlHwBEEWWn|86j8`^gw3=NqW8O1sk5+swOV6lF8999$4Oj1R+DUQFmW<`4 z?j1Cd?B!)7+<=4VARH=cecr!$r_y?snswD+3M{V;B8&SKs9d=I^^EY*2Tk?-9-Pm1 zSEkH+027|z1;U@w#tr-(Z)k()t=?yx&O-h=o|W-cEnmy zR7T2C|Mr<7e(;ADp*}O@V{PrJVGE0YRk?LmBB+YEm4)K|=Ocn#DOOpzZPjl-inurhno@sWgA;9QXf5mhu|d=7hpxwa%|_VmHRR+&w43;v;`#_9gZAs~ zzzBR3h~{gBcNsUYJhF!iSj=vG4|XJcY~l0aY^xj-$KZo8zkFr{%e+Tuq)T;)oA2Y@ z)7m&~Pm<6xDo-9ML-7OUE|2k=!edCY(U)w0y6vD*ooLJ8#2dcM{~kVEEUoRh^1|`V zyB+9*ZU)mpsUv%*OhWlp+*=MlOY-SvYuIe zZhrjxi+}}1pF||ZoxZ-ds+@Z;_p2~#{6(v%(q6gHMY0qG5{qy7*+h1)KsobH&#t_XKn^pVFn5vzX4a>ZI8Dp)StydEn@BT zQhq+i9Fnp|^zvGUH}c&*8cVj9|EG{^jg6{^!Y=Gg zu^4DeAN0B1E-kfj+HPCg@(`rK#K0eFK;X8NI;A~jEYbm5iy8o=HBhzwt&CRJ?DHgb7tn8Gj|_zaJfE0 z1ULAd*Z+>6sqe!NtSLmwp4&@6<;cvXR%RS{a@Ml^v$Oec5q4jtOJOe}Qad(8?<|Es zQQn-n%(C~)z-t+AHm*A%?B%ZgNRh31FP3|H^_Fc7X-&;Cm~{4wJk44<$8v$n12d5C*9yl=f5YvW8`drCZ;KA+wU~puP2{=ZW53ADs65rKZa|)A%jsR!EA#eT z+p*QgU#V(3>(4xwNWc#4#`Omr;^a2;-w=Ig-$V|ppm8z}+AXrm67JySSvX{oev1rp zG7qwExjjYG)?0tTdhW65Z0o*@U;f%`P5s%fw;LyIya5SAkn3&~MgmrPCXP@;7Y(!u2; zqztdd-@hde{U8++*X)HIQm2eoNF6FC+$Pxm7AbQZD2LDACbR#$ee_Lc1LEM5{*4omuq&xIFIEO{Blf^x2hJF|Eh8@Eq#=$Wjq4-N3+HXq@O*d`R0-CByF+)akq#)n( zp0HxdMobFGHUgJD!Yl#PqG}wZD(Y!OFM%`F;RK|+UJn+IW|aaOBy9uYgL*Zs}hm*kZdZ^I8*RmwXR4}zFj2=H+7c| ziTGv>!lO#_E4ge^iYCjqI3ZG87cP+^BTkr)*TA7fTq2q z$UTh#hIh0L8P`r#*2=tr62#uL=xSLv6fJ7>ge9{lgkfV@XR{Hkmt@9cvd!YWup2&T zhRk^S3PRr<;;FKQwv4AAT$xcq*gKO}jqfo~*JCjJ;uXHSKq}z)E;1Rvlh`+%PJ#Rc zsdlws>s(E4lw)y44AsN;N66!4;_^J#t3k}6{EqUpdhQh#zbl(~O0CC$rprS( z&RAd`iQba*CL+YKr40WDDpJZsQD%WFdASA5NPNNaaKXhbe3Yji(QoIL5nrjpMNsSD z7+!XURS8m&C8|B3(klCa!Q7`~pQ$v8iqs=(5;=U5RXG9`)&rgm4bYoID%$SrunvF4 zCjSG0t3aw+M@0fQ93>OkLZna;J*-1AK%|kOa%9-qeLDjWp@Z$j zCyv>nz+i?IwgNBCnc?9q+z+mq#O)I?kGP@uXX4G3`$IsB-~lZMVf|)O(U9W!aVJX= zY%)S3&i_`CUSw5@+wHtTi%B;dE?|CW50WXlb`=EdHdPRT)q_+)d?o1|g~~L;@cW!5 z=)a4lXzLCWlEu>*2c%LP567w;yAlew)_#P(JW~0nf)WM&su2zyB;E-jRqH?rC(Q2$ zDG$TEPay<07m!?6gK%BAR6q(~5b#)qqa=TfzaHxpV!CZC#MgxEMJT>Ek!B_r>?S=f zC|W~~!i6{)mkh*7V+s7TniTUSQVafkQUV1DvJPt7=(yy$1kv2dlY5A(AbIZy8CZx} zX24B9aQTxP2p#7le!ikGyO2&!?x*y84(y*rys(ne9Qd@5mRs!ALNxeiFDjafsAnOn`GPMD1-Q LnMuV@pUL|V!yG@@ delta 72603 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 diff --git a/package.json b/package.json index 0aec0f3a..78a84f5d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "cmdk-sv": "^0.0.18", "d3-scale": "^4.0.2", "d3-shape": "^3.2.0", + "dvalin-data": "^1.0.3", "formsnap": "^1.0.1", "i18next": "^23.15.2", "layerchart": "^0.52.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4eb93e06..be3918a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,9 @@ importers: d3-shape: specifier: ^3.2.0 version: 3.2.0 + dvalin-data: + specifier: ^1.0.3 + version: 1.0.3 formsnap: specifier: ^1.0.1 version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.19.1(@sveltejs/kit@2.6.3(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@20.11.30)(sass@1.79.4)(terser@5.30.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@20.11.30)(sass@1.79.4)(terser@5.30.0)))(@types/json-schema@7.0.15)(svelte@4.2.19)) @@ -1512,12 +1515,19 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ansi-escapes@7.0.0: resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} engines: {node: '>=18'} @@ -1578,6 +1588,9 @@ packages: async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} @@ -1749,6 +1762,10 @@ packages: code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + codsen-utils@1.6.4: + resolution: {integrity: sha512-PDyvQ5f2PValmqZZIJATimcokDt4JjIev8cKbZgEOoZm+U1IJDYuLeTcxZPQdep99R/X0RIlQ6ReQgPOVnPbNw==} + engines: {node: '>=14.18.0'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1772,6 +1789,10 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -1870,6 +1891,10 @@ packages: engines: {node: '>=4'} hasBin: true + cssstyle@4.1.0: + resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} + engines: {node: '>=18'} + culori@4.0.1: resolution: {integrity: sha512-LSnjA6HuIUOlkfKVbzi2OlToZE8OjFi667JWN9qNymXVXzGDmvuP60SSgC+e92sd7B7158f7Fy3Mb6rXS5EDPw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1981,6 +2006,10 @@ packages: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} @@ -2011,6 +2040,9 @@ packages: supports-color: optional: true + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decode-bmp@0.2.1: resolution: {integrity: sha512-NiOaGe+GN0KJqi2STf24hfMkFitDUaIoUU3eKvP/wAbLe8o6FuW5n/x7MHPR0HKvBokp6MQY/j7w8lewEeVCIA==} engines: {node: '>=8.6.0'} @@ -2048,6 +2080,10 @@ packages: delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2069,6 +2105,10 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} + dvalin-data@1.0.3: + resolution: {integrity: sha512-oc9OPK3MRl198hSYct9YiEq0Qn62eCijAaNFyBgjtmFPwMolHQGfGLxtoUPJuehNm5f/Xr2w47BEtjx5+pFx6w==} + engines: {bun: ^1.1.18, npm: please-use-bun, pnpm: please-use-bun, yarn: please-use-bun} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2103,6 +2143,10 @@ packages: resolution: {integrity: sha512-NEpDCw9hrvBW+hVEOK4T7v0jFJ++KgtPl4jKFwsZVfG1XhS0dCrSb3VMb9gPAd7VAdW52VT1EnaNiU2vM8C0og==} engines: {node: '>=10.2.0'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -2289,6 +2333,9 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.2: + resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} + fastq@1.17.0: resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==} @@ -2354,6 +2401,10 @@ packages: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + formsnap@1.0.1: resolution: {integrity: sha512-TvU9CoLSiacW1c7wXhLiyVpyy/LBfG0CEFDbs3M3jrsxBSrkTpsuhbQ8JYKY3CNCmIhZlgxCH+Vqr7RBF9G53w==} peerDependencies: @@ -2436,6 +2487,15 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -2501,6 +2561,21 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -2513,6 +2588,10 @@ packages: i18next@23.15.2: resolution: {integrity: sha512-zcPSWzCvw6uKnuYHIqs4W7hTuB9e3AFcSdZgvCWoPXIZsBjBd4djN2/2uOHIB+1DFFkQnMBXvhNg7J3WyCuywQ==} + i@0.3.7: + resolution: {integrity: sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==} + engines: {node: '>=0.4'} + ico-endec@0.1.6: resolution: {integrity: sha512-ZdLU38ZoED3g1j3iEyzcQj+wAkY2xfWNkymszfJPoxucIUhK7NayQ+/C4Kv0nDFMIsbtbEHldv3V8PU494/ueQ==} @@ -2655,6 +2734,9 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -2707,6 +2789,13 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.2: + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} + engines: {node: 20 || >=22} + jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} engines: {node: '>=10'} @@ -2730,6 +2819,15 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsdom@25.0.1: + resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -2899,6 +2997,10 @@ packages: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} + lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2954,6 +3056,10 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2972,6 +3078,10 @@ packages: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -3048,6 +3158,9 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + nwsapi@2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -3098,6 +3211,9 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -3106,6 +3222,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3133,6 +3252,14 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + path-source@0.1.3: resolution: {integrity: sha512-dWRHm5mIw5kw0cs3QZLNmpUWty48f5+5v9nWD2dw3Y0Hf+s01Ag8iJEWV0Sm0kocE8kK27DrIowha03e1YR+Qw==} @@ -3313,6 +3440,22 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + ranges-apply@7.0.16: + resolution: {integrity: sha512-4rGJHOyA7qatiMDg3vcETkc/TVBPU86/xZRTXff6o7a2neYLmj0EXUUAlhLVuiWAzTPHDPHOQxtk8EDrIF4ohg==} + engines: {node: '>=14.18.0'} + + ranges-merge@9.0.15: + resolution: {integrity: sha512-hvt4hx0FKIaVfjd1oKx0poL57ljxdL2KHC6bXBrAdsx2iCsH+x7nO/5J0k2veM/isnOcFZKp0ZKkiCjCtzy74Q==} + engines: {node: '>=14.18.0'} + + ranges-push@7.0.15: + resolution: {integrity: sha512-gXpBYQ5Umf3uG6jkJnw5ddok2Xfo5p22rAJBLrqzNKa7qkj3q5AOCoxfRPXEHUVaJutfXc9K9eGXdIzdyQKPkw==} + engines: {node: '>=14.18.0'} + + ranges-sort@6.0.11: + resolution: {integrity: sha512-fhNEG0vGi7bESitNNqNBAfYPdl2efB+1paFlI8BQDCNkruERKuuhG8LkQClDIVqUJLkrmKuOSPQ3xZHqVnVo3Q==} + engines: {node: '>=14.18.0'} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -3418,6 +3561,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -3439,6 +3585,10 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -3447,6 +3597,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3573,6 +3727,22 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} + string-collapse-leading-whitespace@7.0.7: + resolution: {integrity: sha512-jF9eynJoE6ezTCdYI8Qb02/ij/DlU9ItG93Dty4SWfJeLFrotOr+wH9IRiWHTqO3mjCyqBWEiU3uSTIbxYbAEQ==} + engines: {node: '>=14.18.0'} + + string-left-right@6.0.17: + resolution: {integrity: sha512-nuyIV4D4ivnwT64E0TudmCRg52NfkumuEUilyoOrHb/Z2wEOF5I+9SI6P+veFKqWKZfGpAs6OqKe4nAjujARyw==} + engines: {node: '>=14.18.0'} + + string-strip-html@13.4.8: + resolution: {integrity: sha512-vlcRAtx5DN6zXGUx3EYGFg0/JOQWM65mqLgDaBHviQPP+ovUFzqZ30iQ+674JHWr9wNgnzFGxx9TGipPZMnZXg==} + engines: {node: '>=14.18.0'} + + string-trim-spaces-only@5.0.10: + resolution: {integrity: sha512-MhmjE5jNqb1Ylo+BARPRlsdChGLrnPpAUWrT1VOxo9WhWwKVUU6CbZTfjwKaQPYTGS/wsX/4Zek88FM2rEb5iA==} + engines: {node: '>=14.18.0'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -3778,6 +3948,9 @@ packages: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x || >=5.0.0-next.51 + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.9.1: resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3852,6 +4025,9 @@ packages: tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} @@ -3863,6 +4039,13 @@ packages: resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} engines: {node: '>=12.0.0'} + tldts-core@6.1.50: + resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==} + + tldts@6.1.50: + resolution: {integrity: sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==} + hasBin: true + to-data-view@1.1.0: resolution: {integrity: sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==} @@ -3885,9 +4068,17 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@5.0.0: + resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + engines: {node: '>=16'} + tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + ts-algebra@2.0.0: resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} @@ -3904,6 +4095,11 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-json-schema-generator@2.3.0: + resolution: {integrity: sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==} + engines: {node: '>=18.0.0'} + hasBin: true + tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} @@ -4086,12 +4282,32 @@ packages: vite: optional: true + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + web-vitals@4.2.1: resolution: {integrity: sha512-U6bAxeudnhDqcXNl50JC4hLlqox9DZnngxfISZm3DMZnonW35xtJOVUc091L+DOY+6hVZVpKXoiCP0RiT6339Q==} webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} + whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -4196,6 +4412,25 @@ packages: utf-8-validate: optional: true + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xmlhttprequest-ssl@2.1.1: resolution: {integrity: sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==} engines: {node: '>=0.4.0'} @@ -4256,9 +4491,9 @@ snapshots: '@antfu/utils@0.7.7': {} - '@apideck/better-ajv-errors@0.3.6(ajv@8.12.0)': + '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)': dependencies: - ajv: 8.12.0 + ajv: 8.17.1 json-schema: 0.4.0 jsonpointer: 5.0.1 leven: 3.1.0 @@ -5723,6 +5958,12 @@ snapshots: acorn@8.12.1: {} + agent-base@7.1.1: + dependencies: + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5737,6 +5978,13 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ansi-escapes@7.0.0: dependencies: environment: 1.1.0 @@ -5798,6 +6046,8 @@ snapshots: async@3.2.5: {} + asynckit@0.4.0: {} + at-least-node@1.0.0: {} autoprefixer@10.4.20(postcss@8.4.47): @@ -6003,6 +6253,10 @@ snapshots: estree-walker: 3.0.3 periscopic: 3.1.0 + codsen-utils@1.6.4: + dependencies: + rfdc: 1.4.1 + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -6027,6 +6281,10 @@ snapshots: colorette@2.0.20: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + commander@12.1.0: {} commander@2.20.3: {} @@ -6109,6 +6367,10 @@ snapshots: cssesc@3.0.0: {} + cssstyle@4.1.0: + dependencies: + rrweb-cssom: 0.7.1 + culori@4.0.1: {} d3-array@2.12.1: @@ -6213,6 +6475,11 @@ snapshots: dargs@8.1.0: {} + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -6242,6 +6509,8 @@ snapshots: dependencies: ms: 2.1.2 + decimal.js@10.4.3: {} + decode-bmp@0.2.1: dependencies: '@canvas/image-data': 1.0.0 @@ -6281,6 +6550,8 @@ snapshots: dependencies: robust-predicates: 3.0.2 + delayed-stream@1.0.0: {} + dequal@2.0.3: {} detect-libc@2.0.2: {} @@ -6295,6 +6566,20 @@ snapshots: dependencies: is-obj: 2.0.0 + dvalin-data@1.0.3: + dependencies: + ajv: 8.17.1 + glob: 11.0.0 + i: 0.3.7 + jsdom: 25.0.1 + string-strip-html: 13.4.8 + ts-json-schema-generator: 2.3.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + eastasianwidth@0.2.0: {} ejs@3.1.9: @@ -6344,6 +6629,8 @@ snapshots: - supports-color - utf-8-validate + entities@4.5.0: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -6624,6 +6911,8 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-uri@3.0.2: {} + fastq@1.17.0: dependencies: reusify: 1.0.4 @@ -6687,6 +6976,12 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.19.1(@sveltejs/kit@2.6.3(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@20.11.30)(sass@1.79.4)(terser@5.30.0)))(svelte@4.2.19)(vite@5.4.8(@types/node@20.11.30)(sass@1.79.4)(terser@5.30.0)))(@types/json-schema@7.0.15)(svelte@4.2.19)): dependencies: nanoid: 5.0.6 @@ -6768,6 +7063,24 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 + glob@10.4.5: + dependencies: + foreground-child: 3.1.1 + jackspeak: 3.4.3 + minimatch: 9.0.4 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.1.1 + jackspeak: 4.0.2 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -6823,6 +7136,26 @@ snapshots: dependencies: function-bind: 1.1.2 + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + + html-entities@2.5.2: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.1 + debug: 4.3.6 + transitivePeerDependencies: + - supports-color + human-signals@5.0.0: {} husky@9.1.6: {} @@ -6831,6 +7164,8 @@ snapshots: dependencies: '@babel/runtime': 7.24.1 + i@0.3.7: {} + ico-endec@0.1.6: {} iconv-lite@0.6.3: @@ -6945,6 +7280,8 @@ snapshots: is-obj@2.0.0: {} + is-potential-custom-element-name@1.0.1: {} + is-reference@3.0.2: dependencies: '@types/estree': 1.0.6 @@ -6994,6 +7331,16 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.0.2: + dependencies: + '@isaacs/cliui': 8.0.2 + jake@10.8.7: dependencies: async: 3.2.5 @@ -7024,6 +7371,34 @@ snapshots: dependencies: argparse: 2.0.1 + jsdom@25.0.1: + dependencies: + cssstyle: 4.1.0 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.13 + parse5: 7.1.2 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.0.0 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsesc@0.5.0: {} jsesc@2.5.2: {} @@ -7205,6 +7580,8 @@ snapshots: lru-cache@10.2.0: {} + lru-cache@11.0.1: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -7248,6 +7625,10 @@ snapshots: mimic-response@3.1.0: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -7264,6 +7645,8 @@ snapshots: minipass@7.0.4: {} + minipass@7.1.2: {} + mkdirp-classic@0.5.3: {} mlly@1.6.1: @@ -7320,6 +7703,8 @@ snapshots: dependencies: path-key: 4.0.0 + nwsapi@2.2.13: {} + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -7372,6 +7757,8 @@ snapshots: dependencies: p-limit: 4.0.0 + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -7383,6 +7770,10 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse5@7.1.2: + dependencies: + entities: 4.5.0 + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -7400,6 +7791,16 @@ snapshots: lru-cache: 10.2.0 minipass: 7.0.4 + path-scurry@1.11.1: + dependencies: + lru-cache: 10.2.0 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.1 + minipass: 7.1.2 + path-source@0.1.3: dependencies: array-source: 0.0.4 @@ -7553,6 +7954,25 @@ snapshots: dependencies: safe-buffer: 5.2.1 + ranges-apply@7.0.16: + dependencies: + ranges-merge: 9.0.15 + tiny-invariant: 1.3.3 + + ranges-merge@9.0.15: + dependencies: + ranges-push: 7.0.15 + ranges-sort: 6.0.11 + + ranges-push@7.0.15: + dependencies: + codsen-utils: 1.6.4 + ranges-sort: 6.0.11 + string-collapse-leading-whitespace: 7.0.7 + string-trim-spaces-only: 5.0.10 + + ranges-sort@6.0.11: {} + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -7676,6 +8096,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.21.2 fsevents: 2.3.3 + rrweb-cssom@0.7.1: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -7701,6 +8123,8 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 + safe-stable-stringify@2.5.0: {} + safer-buffer@2.1.2: {} sass@1.79.4: @@ -7709,6 +8133,10 @@ snapshots: immutable: 4.3.5 source-map-js: 1.2.1 + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + semver@6.3.1: {} semver@7.6.2: {} @@ -7877,6 +8305,25 @@ snapshots: string-argv@0.3.2: {} + string-collapse-leading-whitespace@7.0.7: {} + + string-left-right@6.0.17: + dependencies: + codsen-utils: 1.6.4 + rfdc: 1.4.1 + + string-strip-html@13.4.8: + dependencies: + '@types/lodash-es': 4.17.12 + codsen-utils: 1.6.4 + html-entities: 2.5.2 + lodash-es: 4.17.21 + ranges-apply: 7.0.16 + ranges-push: 7.0.15 + string-left-right: 6.0.17 + + string-trim-spaces-only@5.0.10: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -8154,6 +8601,8 @@ snapshots: transitivePeerDependencies: - '@types/json-schema' + symbol-tree@3.2.4: {} + synckit@0.9.1: dependencies: '@pkgr/core': 0.1.1 @@ -8264,6 +8713,8 @@ snapshots: globalyzer: 0.1.0 globrex: 0.1.2 + tiny-invariant@1.3.3: {} + tinyexec@0.3.0: {} tinyglobby@0.2.0: @@ -8276,6 +8727,12 @@ snapshots: fdir: 6.4.0(picomatch@4.0.2) picomatch: 4.0.2 + tldts-core@6.1.50: {} + + tldts@6.1.50: + dependencies: + tldts-core: 6.1.50 + to-data-view@1.1.0: {} to-fast-properties@2.0.0: {} @@ -8293,10 +8750,18 @@ snapshots: totalist@3.0.1: {} + tough-cookie@5.0.0: + dependencies: + tldts: 6.1.50 + tr46@1.0.1: dependencies: punycode: 2.3.1 + tr46@5.0.0: + dependencies: + punycode: 2.3.1 + ts-algebra@2.0.0: optional: true @@ -8308,6 +8773,17 @@ snapshots: ts-interface-checker@0.1.13: {} + ts-json-schema-generator@2.3.0: + dependencies: + '@types/json-schema': 7.0.15 + commander: 12.1.0 + glob: 10.4.5 + json5: 2.2.3 + normalize-path: 3.0.0 + safe-stable-stringify: 2.5.0 + tslib: 2.7.0 + typescript: 5.6.2 + tslib@2.4.0: optional: true @@ -8473,10 +8949,27 @@ snapshots: optionalDependencies: vite: 5.4.8(@types/node@20.11.30)(sass@1.79.4)(terser@5.30.0) + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + web-vitals@4.2.1: {} webidl-conversions@4.0.2: {} + webidl-conversions@7.0.0: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@14.0.0: + dependencies: + tr46: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 @@ -8514,7 +9007,7 @@ snapshots: workbox-build@7.0.0: dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) '@babel/core': 7.24.3 '@babel/preset-env': 7.24.3(@babel/core@7.24.3) '@babel/runtime': 7.24.1 @@ -8522,7 +9015,7 @@ snapshots: '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.12.0 + ajv: 8.17.1 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 @@ -8640,6 +9133,12 @@ snapshots: ws@8.17.1: {} + ws@8.18.0: {} + + xml-name-validator@5.0.0: {} + + xmlchars@2.2.0: {} + xmlhttprequest-ssl@2.1.1: {} y18n@5.0.8: {} diff --git a/src/lib/components/achievement/AchievementCategoryCard.svelte b/src/lib/components/achievement/AchievementCategoryCard.svelte index 7361f550..c8cf12a9 100644 --- a/src/lib/components/achievement/AchievementCategoryCard.svelte +++ b/src/lib/components/achievement/AchievementCategoryCard.svelte @@ -50,12 +50,12 @@ {:else} -
+
{name}
-
+
{name} diff --git a/src/lib/components/achievement/AchievementList.svelte b/src/lib/components/achievement/AchievementList.svelte index e586c4fa..5524a972 100644 --- a/src/lib/components/achievement/AchievementList.svelte +++ b/src/lib/components/achievement/AchievementList.svelte @@ -138,7 +138,7 @@ {achievement.desc}
{#if achievement.hidden === 'Yes'} - Hidden {achievement.hidden} + Hidden {/if} {#if achievement.type} {achievement.type} diff --git a/src/lib/components/tables/character-tab-table/StatTable.svelte b/src/lib/components/tables/character-tab-table/StatTable.svelte index b0cfd8e4..85ecce91 100644 --- a/src/lib/components/tables/character-tab-table/StatTable.svelte +++ b/src/lib/components/tables/character-tab-table/StatTable.svelte @@ -1,6 +1,6 @@ diff --git a/src/lib/components/tables/weapon-tab-table/StatTable.svelte b/src/lib/components/tables/weapon-tab-table/StatTable.svelte new file mode 100644 index 00000000..1754be12 --- /dev/null +++ b/src/lib/components/tables/weapon-tab-table/StatTable.svelte @@ -0,0 +1,63 @@ + + + + + + Asc + Level + {#each Object.values(stats) as value} + {#if typeof value === 'string'} + + {value.replace('Base ', '')} + + {/if} + {/each} + + + + {#each ascensions as ascension, j} + + +
+

+ {ascension.ascension} +

+
+
+ +
+

+ {ascension.level} +

+
+
+ +
+

+ {stats.levels[j * 2].primary} +

+

+ {stats.levels[j * 2 + 1].primary} +

+
+
+ +
+

+ {stats.levels[j * 2].secondary} +

+

+ {stats.levels[j * 2 + 1].secondary} +

+
+
+
+ {/each} +
+
diff --git a/src/lib/components/tables/weapon-tab-table/index.ts b/src/lib/components/tables/weapon-tab-table/index.ts new file mode 100644 index 00000000..cf211b59 --- /dev/null +++ b/src/lib/components/tables/weapon-tab-table/index.ts @@ -0,0 +1,28 @@ +import Root from './table.svelte'; +import Body from '../../ui/table/table-body.svelte'; +import Caption from '../../ui/table/table-caption.svelte'; +import Cell from '../../ui/table/table-cell.svelte'; +import Footer from '../../ui/table/table-footer.svelte'; +import Head from '../../ui/table/table-head.svelte'; +import Header from '../../ui/table/table-header.svelte'; +import Row from '../../ui/table/table-row.svelte'; + +export { + Root, + Body, + Caption, + Cell, + Footer, + Head, + Header, + Row, + // + Root as Table, + Body as TableBody, + Caption as TableCaption, + Cell as TableCell, + Footer as TableFooter, + Head as TableHead, + Header as TableHeader, + Row as TableRow +}; diff --git a/src/lib/components/tables/weapon-tab-table/table.svelte b/src/lib/components/tables/weapon-tab-table/table.svelte new file mode 100644 index 00000000..57b16d91 --- /dev/null +++ b/src/lib/components/tables/weapon-tab-table/table.svelte @@ -0,0 +1,15 @@ + + +
+ + +
+
diff --git a/src/lib/components/ui/card/CardLevel.svelte b/src/lib/components/ui/card/CardLevel.svelte deleted file mode 100644 index 419e7a05..00000000 --- a/src/lib/components/ui/card/CardLevel.svelte +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/src/lib/components/ui/card/CharCard.svelte b/src/lib/components/ui/card/CharCard.svelte index 1e4c752a..e17c0deb 100644 --- a/src/lib/components/ui/card/CharCard.svelte +++ b/src/lib/components/ui/card/CharCard.svelte @@ -15,7 +15,7 @@
+ import Text from '$lib/components/typography/Text.svelte'; + import S3Service from '$lib/services/s3'; + + export let name: string; + export let img: string; + export let type: string; + export let level: number; + export let ascencion: number; + export let refinement: number; + export let rarity: number; + export let location: string; + + +
+ {#if location !== ''} +
+ {location} +
+ {/if} + +
+

+ {refinement} +

+
+ +
+ {name} +
+ +
+ + Lv. {level} + +
+ +
+ + {name} + + +
+
diff --git a/src/lib/components/ui/card/WeapCard.svelte b/src/lib/components/ui/card/WeapCard.svelte new file mode 100644 index 00000000..dcc2fd23 --- /dev/null +++ b/src/lib/components/ui/card/WeapCard.svelte @@ -0,0 +1,31 @@ + + +
+
+ {name} + {count} +
+
+ + {name} + + + +
+
diff --git a/src/lib/components/ui/character-tabs/character-tabs.svelte b/src/lib/components/ui/character-tabs/character-tabs.svelte index 918d4447..447e5845 100644 --- a/src/lib/components/ui/character-tabs/character-tabs.svelte +++ b/src/lib/components/ui/character-tabs/character-tabs.svelte @@ -1,6 +1,6 @@ + + + + {$i18n.t('weapons.detailed.tab.stats.title')} + + {$i18n.t('weapons.detailed.tab.refinement.title')} + + + + + + + + + + {#each weaponData.refinements as refinement} + + {weaponData.passive}. {refinement.refinement} + {refinement.desc} + + {/each} + + diff --git a/src/lib/components/ui/progress/progress.svelte b/src/lib/components/ui/progress/progress.svelte index 7440dcd6..be9de3d8 100644 --- a/src/lib/components/ui/progress/progress.svelte +++ b/src/lib/components/ui/progress/progress.svelte @@ -7,7 +7,8 @@ export let max: $$Props['max'] = 100; export let value: $$Props['value'] = undefined; export { className as class }; - const percent = Math.round(((value ?? 0) / (max ?? 1)) * 100); + const percent = Math.round(((Number(value) ?? 0) / (Number(max) ?? 1)) * 100); + console.log(percent);

- {value}/{max} ({percent}%) + {value}/{max} + {`(${percent}%)`}

diff --git a/src/lib/locales/EN.json b/src/lib/locales/EN.json index 2119328e..50e11e60 100644 --- a/src/lib/locales/EN.json +++ b/src/lib/locales/EN.json @@ -175,10 +175,16 @@ "action.reset_filters": "Reset Filters", "filter.element": "Element", "filter.weapon": "Weapon", - "filter.rarity": "Rarity", - "filter.owned": "Owned", + "sort.rarity": "Rarity", "sort.name": "Name", + "sort.count": "Count", + "sort.owned": "Owned", "sort.date": "Date", + "weapons.overview.title": "Weapons", + "weapons.detailed.tab.refinement.title": "Refinement", + "weapons.detailed.tab.stats.title": "Stats", + "weapons.detailed.tab.materials.title": "Materials", + "weapons.title.inventory": "In your inventory", "sort.constellation": "Constellation", "achievement.title": "Achievements", "achievement.filter.all": "No filter", @@ -187,6 +193,7 @@ "achievement.filter.hidden": "Hidden", "achievement.more_info": "More info", "achievement.unachieved": "Show unachieved first", + "rarity": "Rarity", "language.DE": "Deutsch", "language.EN": "English", "language.ES": "EspaƱol", diff --git a/src/lib/services/backend/data.ts b/src/lib/services/backend/data.ts index 69634902..0217259e 100644 --- a/src/lib/services/backend/data.ts +++ b/src/lib/services/backend/data.ts @@ -7,7 +7,7 @@ import { backendFetch } from '$lib/services/backend/index'; import type { CharacterIndex } from '$lib/types/index/character'; import type { WeaponIndex } from '$lib/types/index/weapon'; import type { Character } from '$lib/types/data/Character'; -import type { Weapon } from '$lib/types/data/Weapon'; +import type { Weapon } from 'dvalin-data'; import type { mergedAchievements } from '$lib/types/achievement'; type FetchCharacterDataIndexResponse = CharacterIndex; diff --git a/src/lib/types/index/weapon.ts b/src/lib/types/index/weapon.ts index c60454f3..4ef3f553 100644 --- a/src/lib/types/index/weapon.ts +++ b/src/lib/types/index/weapon.ts @@ -4,5 +4,6 @@ export type WeaponIndex = { [key in WeaponKey]: { name: string; rarity: number; + type: string; }; }; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 81a5bf1c..28ca651b 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -17,7 +17,7 @@ import { Input } from '$lib/components/ui/input'; import { mdiPencil, mdiImport, mdiAccount, mdiSwordCross, mdiTrashCanOutline } from '@mdi/js'; - import CharCard from '$lib/components/ui/card/CharCard.svelte'; + import CharCard from '$lib/components/ui/card/WeapCard.svelte'; import type { Elements } from '$lib/types/elements'; import type { WeaponTypes } from '$lib/types/weapon'; import { onMount } from 'svelte'; diff --git a/src/routes/achievement/+page.svelte b/src/routes/achievement/+page.svelte index 697bdf64..360fc7c1 100644 --- a/src/routes/achievement/+page.svelte +++ b/src/routes/achievement/+page.svelte @@ -20,6 +20,7 @@ import Icon from '$lib/components/ui/icon/icon.svelte'; import * as Tabs from '$lib/components/ui/tabs'; import Badge from '$lib/components/ui/badge/badge.svelte'; + import Progress from '$lib/components/ui/progress/progress.svelte'; const lang = $i18n.language; const backend = BackendService.getInstance(); @@ -38,10 +39,34 @@ let selectedCategory: string | null = null; $userProfile.achievements; + const customSortAchievements = (achievements: { + [category: string]: + | (mergedAchievements & { + image?: string; + }) + | undefined; + }) => { + const priorityItems = ['WondersOfTheWorld', 'MemoriesOfTheHeart']; + + return Object.entries(achievements).sort(([categoryA], [categoryB]) => { + const indexA = priorityItems.indexOf(categoryA); + const indexB = priorityItems.indexOf(categoryB); + + if (indexA !== -1 && indexB !== -1) { + return indexA - indexB; + } else if (indexA !== -1) { + return -1; + } else if (indexB !== -1) { + return 1; + } else { + return categoryA.localeCompare(categoryB); + } + }); + }; + async function fetchAchievementsAndImages() { if ($categoriesQuery.isSuccess && $categoriesQuery.data) { - const sortedCategories = ['WondersOfTheWorld', 'MemoriesOfTheHeart']; - sortedCategories.push(...$categoriesQuery.data.sort((a, b) => a.localeCompare(b))); + const sortedCategories = $categoriesQuery.data.sort((a, b) => a.localeCompare(b)); const categoryPromises = sortedCategories.map(async (category) => { const query = backend.data.fetchAchievements(lang, category); $achievementsQueries[category] = query; @@ -82,6 +107,7 @@ }); await Promise.all(categoryPromises); + $achievements = Object.fromEntries(customSortAchievements($achievements)); isLoading = false; } } @@ -117,7 +143,6 @@ function handleFilterChange(filterType: string, value: any) { selectedFilters[filterType as 'hidden' | 'type' | 'version'] = value; - console.log(selectedFilters); } $: filteredAchievements = @@ -195,9 +220,20 @@ }, [] as string[]) .sort((a, b) => parseInt(a) - parseInt(b)); } + + $: totalAchievements = Object.values($achievements).reduce( + (acc, category) => (category ? acc + category.achievements.length : acc), + 0 + ); + $: totalAchieved = Object.values($achievements).reduce( + (acc, category) => + category ? acc + category.achievements.filter((a) => a.achieved).length : acc, + 0 + ); +
{#if selectedCategory} diff --git a/src/routes/characters/+page.svelte b/src/routes/characters/+page.svelte index 80089586..e44b501f 100644 --- a/src/routes/characters/+page.svelte +++ b/src/routes/characters/+page.svelte @@ -257,7 +257,8 @@ class="flex hover:bg-tertiary gap-2" on:click={() => setSortStore('Rarity')} > - Rarity + + {$i18n.t('sort.rarity')} setSortStore('Name')} > - Name + + {$i18n.t('sort.name')} setSortStore('Date')} > - Date + + {$i18n.t('sort.date')} setSortStore('Rarity')} > - Rarity + + {$i18n.t('sort.rarity')} setSortStore('Constellation')} > - Constellation + + {$i18n.t('sort.constellation')} @@ -609,7 +614,7 @@ -
+
{#each $sortedCharacterStore as character} { const data = { ...user, config }; - console.log(data); await $createProfileMutation.mutateAsync(data, { onError: (error) => { toast.error($i18n.t('profile.create.error', { error: error.message })); diff --git a/src/routes/weapons/+page.svelte b/src/routes/weapons/+page.svelte new file mode 100644 index 00000000..014e3c71 --- /dev/null +++ b/src/routes/weapons/+page.svelte @@ -0,0 +1,559 @@ + + + + + + + + + + + {$i18n.t('action.sort_by', { + sortFN: $i18n.t(`sort.${$sortStore.sortFn.toLowerCase()}`) + })} + + + + setSortStore('Name')} + > + + {$i18n.t('sort.name')} + + setSortStore('Count')} + > + + {$i18n.t('sort.count')} + + setSortStore('Rarity')} + > + + {$i18n.t('sort.rarity')} + + + + setSortStore('Name')} + > + + {$i18n.t('sort.name')} + + setSortStore('Count')} + > + + {$i18n.t('sort.count')} + + setSortStore('Rarity')} + > + + {$i18n.t('sort.rarity')} + + + + + + + + {$i18n.t('action.filter_by')} + + + + resetFilters()} + > + {$i18n.t('action.reset_filters')} + + + + {$i18n.t('filter.weapon')} + + + {#each weapons as { name, icon }} + { + setFilterStore('weapon', name); + toggleChecked(name); + }} + > + + + + + {/each} + + + + + + {$i18n.t('filter.rarity')} + + + { + setFilterStore('rarity', 5); + toggleChecked('rarity5'); + }} + > + + + + + { + setFilterStore('rarity', 4); + toggleChecked('rarity4'); + }} + > + + + + + { + setFilterStore('rarity', 3); + toggleChecked('rarity3'); + }} + > + + + + + + + + + + Ownership + + + { + setFilterStore('owned', true); + toggleChecked('owned'); + }} + class="gap-2" + > + + + + + { + setFilterStore('owned', false); + toggleChecked('notowned'); + }} + class="gap-2" + > + + + + + + + +
+ resetFilters()} + > + Reset Filters + + + +
+
+ Element +
+
+ + +
+
+ Weapon +
+
+ {#each weapons as { name, icon }} + + {/each} +
+
+ + +
+
+ Rarity +
+
+ + +
+
+ + +
+
+ Ownership +
+
+ + +
+
+
+
+
+
+
+ {#each $sortedWeaponStore as weapon} + + {/each} +
+
diff --git a/src/routes/weapons/[slug]/+page.svelte b/src/routes/weapons/[slug]/+page.svelte new file mode 100644 index 00000000..6ac3b345 --- /dev/null +++ b/src/routes/weapons/[slug]/+page.svelte @@ -0,0 +1,104 @@ + + + + {#if $fetchWeaponData.status === 'success'} +
+
+ + {$fetchWeaponData.data.name} +
+ + + {$fetchWeaponData.data.name} Card +
+ {#each { length: $fetchWeaponData.data.rarity } as _} + + {/each} +
+
+ +
+ + {$fetchWeaponData.data.type} + + + + {$fetchWeaponData.data.description} + + +
+
+ {$i18n.t('weapons.title.inventory')} +
+ {#each ownedWeapon as weapon} + + + {/each} +
+ {/if} +
diff --git a/src/routes/weapons/[slug]/+page.ts b/src/routes/weapons/[slug]/+page.ts new file mode 100644 index 00000000..6fd944bb --- /dev/null +++ b/src/routes/weapons/[slug]/+page.ts @@ -0,0 +1,14 @@ +import type { PageLoadEvent } from '../../weapons/[slug]/$types'; + +/** @type {import('./$types').PageLoad} */ +export async function load({ params, parent, fetch }: PageLoadEvent) { + const { queryClient, backend } = await parent(); + const key = params.slug; + + await queryClient.prefetchQuery({ + queryKey: ['fetchWeaponData', key], + queryFn: async () => (await fetch(backend.data.getWeaponDataUrl(key))).json() + }); + + return { weaponKey: key }; +} diff --git a/vite.config.js b/vite.config.js index 833e3cca..4496a614 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,12 +1,27 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; import { SvelteKitPWA } from '@vite-pwa/sveltekit'; +import { resolve } from 'path'; export default defineConfig({ preview: { host: true, port: 8080 }, + optimizeDeps: { + exclude: ['dvalin-data'] + }, + build: { + commonjsOptions: { + include: [/node_modules/] + } + }, + resolve: { + alias: { + 'dvalin-data': resolve(__dirname, 'node_modules/dvalin-data/dist/types') + } + }, + plugins: [ sveltekit(), SvelteKitPWA({