From 2f33cf9aba497c1c6979284f3e9f58395c5b5d30 Mon Sep 17 00:00:00 2001 From: maximus Date: Wed, 29 Jul 2026 15:27:00 +0200 Subject: [PATCH] first commit --- .gitignore | 26 + Bonnes Pratiques de Développement.V2.pdf | Bin 0 -> 161411 bytes README.md | 75 + eslint.config.js | 22 + index.html | 13 + package.json | 38 + pnpm-lock.yaml | 2151 ++++++++++++++++++++++ pnpm-workspace.yaml | 3 + public/favicon.svg | 1 + public/icons.svg | 24 + src/App.css | 0 src/App.tsx | 24 + src/assets/hero.png | Bin 0 -> 13057 bytes src/assets/react.svg | 1 + src/assets/vite.svg | 1 + src/components/ui/Badge.tsx | 42 + src/components/ui/Button.tsx | 78 + src/components/ui/Card.tsx | 26 + src/components/ui/Checkbox.tsx | 47 + src/components/ui/Input.tsx | 58 + src/components/ui/Navbar.tsx | 62 + src/components/ui/Radio.tsx | 49 + src/components/ui/Sidebar.tsx | 100 + src/components/ui/Switch.tsx | 51 + src/components/ui/ThemeToggle.tsx | 52 + src/hooks/useTheme.ts | 42 + src/index.css | 14 + src/main.tsx | 10 + src/pages/ServerDashboardMockup.tsx | 41 + src/pages/UiShowcase.tsx | 203 ++ src/pages/Welcome.tsx | 79 + src/services/pocketbase.ts | 7 + src/utils/utils.ts | 6 + tsconfig.app.json | 40 + tsconfig.json | 7 + tsconfig.node.json | 23 + vite.config.ts | 28 + 37 files changed, 3444 insertions(+) create mode 100644 .gitignore create mode 100644 Bonnes Pratiques de Développement.V2.pdf create mode 100644 README.md create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 public/favicon.svg create mode 100644 public/icons.svg create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/assets/hero.png create mode 100644 src/assets/react.svg create mode 100644 src/assets/vite.svg create mode 100644 src/components/ui/Badge.tsx create mode 100644 src/components/ui/Button.tsx create mode 100644 src/components/ui/Card.tsx create mode 100644 src/components/ui/Checkbox.tsx create mode 100644 src/components/ui/Input.tsx create mode 100644 src/components/ui/Navbar.tsx create mode 100644 src/components/ui/Radio.tsx create mode 100644 src/components/ui/Sidebar.tsx create mode 100644 src/components/ui/Switch.tsx create mode 100644 src/components/ui/ThemeToggle.tsx create mode 100644 src/hooks/useTheme.ts create mode 100644 src/index.css create mode 100644 src/main.tsx create mode 100644 src/pages/ServerDashboardMockup.tsx create mode 100644 src/pages/UiShowcase.tsx create mode 100644 src/pages/Welcome.tsx create mode 100644 src/services/pocketbase.ts create mode 100644 src/utils/utils.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c3d27f --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local +.env +.env.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/Bonnes Pratiques de Développement.V2.pdf b/Bonnes Pratiques de Développement.V2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1cc8fac4dab565d66834bf250af63280a2c68aa0 GIT binary patch literal 161411 zcma&MV{m3s(>5C0HYT=nCllMYZF^!(Y}>YNTNB$(?j#dU{LMV?^VNG!)%kID)!N;A z_jPsm>e{Q;s@hGVC@Rjt!pIIsv3PmD5642nOyXc{4advNq-y1AYevE=E+#I{%*@Wp z%*^>$a*F+Ta4<6i*qE9BzGnWbG6VkES^i4)zmof}{HOmlaQ;7Vod0ZppZ{^#|LS7@ zaGd}1j#K2X{Ocd^&)47a563C`U->uYKfnKYY(oEy`H%OH|9^e{<^Ly_e|h}l{*BN1 zH^2YOWBrT&kNqG1pY1RAUrfN?VE@to&FjB0*#Gi4{yYA|`O9Tv<%eTZbapUxGcj`} zp;oc6GGh8$ITAY-4ptHg2M3G4r4n^8aUoGQvo|$!Hgl%o=ZE{N{;MV1|JKyRh=c`> zNm!1AN#4QP&dBzEL7e{!5)t|b`X8vQ2njPBldSZA?iwU4jBNjN0pOVAWJy^5+Ej!{ zT%Fy_{=dC){jXPXD_hsUsWXY&8o8Q@nwdD5{^iJ;*;}|;l5laba`5w$xVSo-8QH=8 z$iCJ)k0tML`rK7eVq#`-V*UXV40*Dqbsh#Hvw@AW@(V0@lG;x3~mZ>)%J@@t@RQ`u_h=Rb!?}s)jNp1hvQ&aO3Pr~o^BMdx1NiYt=ouLAfC=x9zRu@RpNfEfgW7O9H*WR~0d;4q!yPRK_Dw08`ell1B^|*Iy;DrcKOFruq42>l5+hh(q0N952 zJzrQ5`SJOQvR|!Lk$AT>E5ycgw?Mf|rr(VqH9mue~5n#*0$8 z9O^`+tkWdmvQjQ=#s64m$CZp=KCTPaaQ8!b z)BsmudN6+NEhy}rSMS27`|);mSL)AIwJeWDj}s z?t_Et+z-)UnqzSR`ArfwYxDiYyf3%f8-l0hglIi$h}g+np@TA+>TLAS76(89H#ffk zQXOM_+H9w$D4is2e&YzBzW+FX3^ZHP#PlF^pnnPAvA1zkXWd_h?efYWwMUPERF;x! zLAc^L2Nv*516wip}d=*=Lp>iXcr*F^h8snqr*faucR4&5Qzb^U#mi1741fO?=Or zj|e}dU`A$`TL7ZLPBig)v)L`5!8VceIdp3wtJIjnxSqey!vkCb9Y3t*` zD4GwI6k*lpqHkI+X$4#6UWY{i0u7x7Oaj9hK!2X2-Gy~qB#aN zn3eT9ss5Se)d@#-p-@rjcDK;Caz&ZF7+5F1-+Pcfy6}VdtP@E~9Svi;;qhe5ZA3Xj zdRP#QQrhBeZFOP5zh9^&4HkYbn{x?V*TN`d*HnPBaLKCv&YIt<;hS$}NO9=qiJ~^$ zk(g(99*_6;9|LDuCN4EN*O*6F6a3Sk%)K^Kdd0e^q%!X-TX-t(uM4^yPu%_BX@!Dt~|39wIZtdCj%o zt1e4YsYNiu-B|6I=;u$NY)3c{r!jo27!ldhCbz_$_r=?!`L|vP=%LC*g-#m{CK3HC zBcuFIggd@M`I0g&eF>C%v+M&iaHhq4qlR^MfHOQaP?G{z2Qxfs8uQ>~^{bZ1@$=WZ z&>sDdda&{XY!EfB9;1H8*JB!1{m+*=1%F%rb1-rbR4oVpA%lHQ=cwM3deQK}c(G1! z|3HHzH5Q!TcZH+%%EzTR;)0#|CD;e*B<&1JsK!_fMhw>2zc&=yF^SiowIXp9n^F(i zn6GRw>#^KMn*ff3I?@F&>9}S=ei?QKH7Re9t@e@8*rrEf89hUoNCpj;&|x+|f}^k9 zUJM6PKTA?^^b&fCnsht%(^m^I=3bjA6hdhUajX=pj(B*bd3%&}!xcptcMXTzB%l-K zZI`ER4vxRlX8nO^S)2Yu(gD#=JJn%M&!ICA)qILe%&?KP2R|u3;_pTmH{Pg8F=j|d zBP1~eh3GbPWn8bF09i-cs~@H7@qTD4#f>kINe@Y2$%2z|wl`Zx60sztWxU9tswiM4 zku&67rz*a#emgO)R|;>l@;{d^(p-Cgl@*xPyaqL~7wFZ}j)vx8P*cxtq9nsHQ#4_( zpv_H{^pCR`)OBA1+TR4G-4f?*nX}8GDWQxOn#W|aY1;<%|P-KS%W6=f9WoOnkg^@W1cIiJkz~gNp`cdSU zTYYl`P}j4QZZL)TVp2<)*H(K53OThC9DB(#j@RKow~_@r(z~*j`qQd zj;|~0<24(=nk3C2guuyV+r}!wp*|Dm1G|l(Xx3@r%LXiPg$GOBjvU^bPs_K&p`nxf zz*Ori))%@Bz+$($t+zH}XAiH4?k_FSMnE60BL;W!t(AFmU(jI^nE9!KR*;9E-wsUb z5O6J-e_C}oD~;1GE9)Ll>e1D7buWeWbiiyZbWZ9!aDa&w4=+0Ag!d1&{5)f{H#Pve zPlp|Xu-GuaS^ui$68VK846n6lpxa&sWoGc%%`@5r@9W-#ZUAFET~4BWxRkV)tQpNy z6M}T7G{DH^M>fekq_o>FQezM)B!;h+n#zlOlZ9qluoawkUwR=lGI~LlK)d4PU20V) zSfe>MDy#QU?Y+ktt3U>`2YT}kqwipL^+sAl4mmRsi9uDtjTx@3jXwz~Ox$G~=P+}~ zWgsxh{9M=~s=l%$EFEihEkaJMTbgqH6K6nqm+f}zZLbE9R_WzGh=^pjHK)(F=jVFh z+kFm{UKE06q$Ri0_X_^hVRxQt*GfHJX7n!kin-X@Nx%%ucgpo%2vPucJUd(m9pHNA zM(k6e8co3ZFL{Z zn*_Fzjz4B%KbsaJ$UY@1SS}o|jnIjY;#F_xtzbMh^%0Zdn@#WTN^IwwcJ0rUDEUkh zL3{mW=3@|`{>IkQGYfv#GWz+)!2fmb?_s$2>pbu4qpa`q&*|68>G}5Qje!42X23hJ zD+#gJv2P}hu(uPopk{Ca4#=T^IRl&WFs zS|sj^QpZmC7xmk~Xz9AZlq?EIy$}n*NX^)7-Ak1HGKv{WaiY%1aPV6)mv#ys-i7Ci zIE9d+deNIsN3(?rlZaBRj~v%N|JLH**oQ0zk6l>{7^_fiw$P$#CMKLZ^~BCaA86%( zA6ZA&&y(`3Mn8d|g}22(5C;*{Q0hc8W~wzX@CW2?u!gnr$IYH45XB>jixM(sZ={qu zJ{WXEz)%Bg5U~b70Sdth32J)0Z}5h;iJE_!8TH3o`V=Q5=G~l8ucimy75yE74*2p@`){_Y_J_RmJub?8)J9V5~(Fv)?$H`YnkIyYL+`6SI)6^;g{7 z8L5vA_ldRHypU$QbDT2@)b_16(jaXpbApVtJ8z&~K-eeV+Np;~I9xmiCz^+auYOq^ z38XNMDJE`}Q(R^fsgUXs7ZHN)lqwy=q4`JW+}IcErW>-|X!7=k!$5=}%}Dm47W_b> z-4FHp1`L{YoiO++^{=sLt+=G+?{fHkN|!0d<7r(BV|q)g__2GdKj_$g#>d=RZrt0{+~Sx;2^Qta`FzmO zJs_pHx^0}Pgz8!$c$_*q{9@~x)nGc;sRQl1yf`7e4YQynvr0cj{i933V?!z;x`$CB zM7RH|kh|&n6nblj{*#9EMvI&Ru+mWQWs+F_r0#jq+Iz_NQlh`Y&B2)VJi%N1R*$$lNg=P-F zoW8SXR%ZNbks1YqbMqzqLKyB6+nxDpU(skq;fWJO1~atpb4NJ|x)-;P|*FCPLnr~Nm;=Yq$N@$q5Tn*Htkn#;2ERU2cd15&lcrF8g2cMyPaDLe* zub%~$dl6GZiS))B@jpb~eb{tXbv(!*gHe)Vf*#y3ukPyvBTyn+Iq&Ot11zswbg)M4 z2&k~b6kUm5HwPwxDvvWvz)P?GBvlgFP?)?@6^4Es2C6=^bM=>J^IP3TZwWH!wk^+4 z7ktSW)zM7QX=O{2s7U9_6DJqTT8~TF)j19Kx4EL(Vk6s@Cy1=lcGK!1^{mE5hi7JX z4#}TyVTvx%Ep%(mTFV4Q+CVdonjJ8_IK1^L$otrerYc7HfloiJ+Rr==iL#Xw4U_i! zW@N8HtupUH_=LE-pBndG(NtGw2jNuR7~FyfM=U=dv3I;VZ_1nWr0s0&*sm5_7i72w zqXh%Ut#AjX;Yo>-7tYuXt z=MmG^1Dob;ANYK~1C$9#kkq_4(6oR8k(IDKT|$2sh)qF-Vqo^cx-kWM$((`NeGPu2i4(E z4DVN+7%jan#U3c9FchkhOVI!)hN`IGaEV(ncG<9JwP7q5Wy{hKKHV%zAjPhzkM&ex zp5v|5%!){vPivBL;ruH4wJ)EgWwbXL*`B!q5-?xG^Wi6vZKIKqkj01xg5`yflbtvc)T zqqt^Y&qr|h`jhFkIIEp;#PwwJ+RX=*p@t2p*9rfAZO>64#ujLYSew1eCZbns%S%(! zqeasX(p25IKeFEEWUKO=OB;P%IGM3RA2&RVA2fa@Fie(q1!Wb~hF~$ae5)(0e7dub zO^eRUuM$RA(?Sf({0`=W@ibER(L7Z5LuM*4rl`HZc5ZJP6EN~>hPG05G*hDL;KAu=}ty641zpt7j^Zx*}KFf^0Qr zH)Vz);i5+BR)q6Ft-p~d9dr05K^7fi%K2YJilxrWcc(SW|4tbBtx6i%QT-^ ze}%_mQoe-a8im-FWY)BZF=f8;JY-tYDOxIDP(BfSFlU;D&g#mwmym5dL65=@sBfWi! zS}6SyTpjm4a#-AF932|=K)x%NtG>UCOJgNAMW4&eaMG2omeU{xH1x+O+c+I~88ca4 zQ3VDmYmM^SJxs|eCbq6zeXUo&3Xwo`C^A2N0I$Cr7Ln#R1BS}s<5?ABmuu2n2B>wQ zZV;F?C*R$a6*-h|z-dB3XiwcAo74w?VWB1^@Yk9G&jCGE_H!KICt7%`Q1895lT9zC z)vL}48*-K#7n1czV#?sNbQz3O6*jQ);;B-?EC8vD$+x^YMS8 zPjj1lD!t>u(?+2Vk>}z{h+4%MCgvvEWh^R!SaAIre`y~P$+%M4(>xhZ>Xjcel5gZ{ z?qc1a2%e#lHYw(|b8!ctYP7U|5{W#Bqc&YD(v!G67sdx9>(XhbdN(8`?C9xX=N^Do z=ps!JZhJWJGf(~UQIArN1c8pdsJkc^vPz`FPj350Y^o@qxtb#MQg5Y)pFCyN;~y=w zzA}Ou>`bcE#S`2Cv&V-Z)TPbWgHfC(8Y81yeLmZ)2Uy5fZA}%lCEu;ukI76L#iH-v z)Xiw=poT&bu5j2FF5UgLg_zj6X9b`GqRvKdW|aIgm{vhe0>P|lIPJkhyW41tE(9SL zE+zQb<_`#x7>6`Dth{h=_iiq;Bb%L$XVZ9dTKP$Lr)CGyg@L;p2L{B1X$d8^h+)Od zPqywD?=kDxhrhgG-JMGEgw^LwIu|!qlX;n~;IA{i ziSYs^K5N-D;W--ZWRN$v*?rB?RIUihvdmcUcLI29-_%)&q)x93Z5ks>reBzq#KK|e zKGvII%OBy4IQ5H4rdL7GW)MijlOxz>QInUx8`6u-hK94EB^#fwXa!qD2e4RQu6S|# zP}7Mbh5F=hGBKja*b)|52!}zrc7|Tryd0StjV%<6bjD?(v&fZDXg(`hRVNx0bBzzu zm7^Hj+fD7?Qew>qsLQwEeO8Z_j@4(!2rmR`&%oeLfN3paV52&tk&Wxq0R65vy3cw| zha^?wSDUSl5i*zZ3CNx{N7*4U987g{uS?HDtLVyHDo)+_Q9r19}Kf%nQMHnY7d ztexN4amLuy$jPb>Q{8=8u>c#Fw1s&VYmZ(~S)t4p@lkmIDUTIB3FY#WCE=r9Bn;>% zb3L5vT*}y0*h6qWg1AQl0^ja>!AN7h%`!gy6g8nsx;~5-$NXT^y~%KHyVgLVVo96R z*+FjIZ-h3t)thTWZ;kLdkDtTM_KHQakpt6owIN7Nsr2cdW){D>)2==^1|*+Y$Gz(* zb9Iisd*9UMZPV$$_^sG~G@EQ_yxm#1F|%Gfnh}FVD>1}pXmd^}36K|S?1yb3nM4vd zqP)=J7fnCuHVUI9;6>Y2J*?h@rPpXsv$yuQ6Qhxen$m@5wWw4G*QO)FH71`YQrR21 zg#N-bCD-{3#f{Ghq_DJs^ywSq`3b#|Ty4vV-P`5F3;nAbCXroXiB=^5C9z??COOlb zjWbdyz7W-09={i2e42x=6Qv`r&WTv<%vIA3ZWKm|Z%ivw5|=ekMP5ek!I&?UO`ZZ@ zD${Kt`{}o_U6>}D{M5(#Ozt%$dADd(RNl(O7B2WX_@Ocnw3d0rcTxkt z;6g$pDvcbzZ!C$J^r7Unv>b3k?aco@!IvYi?{3E>lw+LQFIc^D;MkZr#>UhW(dPv84Hp>zvTGOr7!wm|L(dEg2D)j#`PC@T2n&} zAkxj&>m}oQT6;EhYb8#ZwPD6BEEY0OE1Q;fCCSlbHYH(iZZF_W-k?40+)d(hU_2%s!_ic2OUbAqB~f6EXGW4`VJwi)|c>dXXjf!oHwg;7|9N>CF=LzC7jr6;47UQ;(Ph z`|o0XUv~b%7eLCj&!IM!`@lvF_JHmY81tHnl*A%6qZ%>$49^Gw8JCt%^(wxq#k;!e9%TZ76penox@=ljNRv(Cc{-&(Lb3=$rEQd;rW8xu_?k!>U3fN?0oWniDtN^4Y18ga`r9Uh8!|!k4!0Jq z4`O`^;|V;UH;R_9AJQn(Q<@9bkhZ`{lIR4`O>p>=yFkk9d zbMJkGxfG`hJ^?zz*FNX~pZ9ICdb^xN+gd|LLZog{+_${LhPRO>4Ua{O)@~`a&`@_= zvnVgA^&*2XPp00kYuIB^;T zt)E3J&z&xV)H22TTp##WO;sms=Z+0O*O6Y(-!TY56QUNg0UngUY8>w4 z9Mgu(XIk+BW2QICSME_o6fe`dlFv`bU#qgaIYq%A*S_Z(35uJrXP0(W2ZS(KHDH{( zXI&xxeybRJ&Lw8{89`{LflY7em(nFzcrQ$4bwstCZ+QHkbmepu5K;QdPV^jK%+;i%F3`k3PLX7Ca>k$TYh3k_yOCAlk(psfQ# z??IHSl-1#GX~VF3llS=qF`*hn_2zw`A`AKOkn|z+Kdl2p|JynsK{&d(dwag!)zq*i-igTnP%P(Hi^^&tS%=V z)#l$V(tvu5kp*4$E{W^x_0jfsm&W@ak6mleQkUpqs689H_3ZBBl>1}t-+s>XVn^beMl4NetW%nc?kRRw3ws2fK^#pH26H+zS;e7Too=*nTfB# zELVGhU}*6QqLf@Y_#E0?p;=B!b=iEn*;Igd1SZYCv8lbKJ?3+WdCT#9jqUh9FI;Z+ zeU|z2`rgm1_PzXx+s*lPzUd&~^L&@1*_6nN;#5gRzlY2N52~kca~QNT{+ado````P zz@Vomv;ky!`p+K@vnlCDBaGsdEXNH#*aNWzF_nzxU@w0L?;~gMz^4X%}2Ns!D?=w*bmIkIVtk>Rn&OotSI=&F%Heo7E3+v__{Dyg0Q2(Z^H2>2M-k_=W3F~=ta{KPqKez?hkv}@9g+foYGofVf1MTK+n zUP61xG{AtO#6X$z8PAg{ZYrRCTGqhH1>ZQG-XXan3JcKnP_;mHbZF@MCBs-cfMG-q zBMF4Y>4p-oGv2{sIAb%5=gVuhZZ{y~b!>YX+g`rwa&EO)3l^`e-6YT^Fgd*Qxsz9a zH>oahxS!@WJ5@CxieX_^`bV|Gb=l!-xk<;Ws=4>*CY~LIeYI|&RwmK8frg3nX^DiQ zwwN*=S01x-gR~K~F6)R?0Y-Vn@eaiaP&0$C#9?Ld5%!D_3s5$dlI>)5XF92fZ{khO z*@On4;j6hUt2n*>c`y_HzS_t0@v;+X8?O+uacMoOrZ++V+NQ1@24n3%97LL^00 zoH_)4ltFA(k;0}%1!_V0lnqqcDzMB?oy4}qRpI00+&!1`Y@;?;=(_F5dQ~P;WvV}& zWggDHe;Hv$K1xz1RNFXyOS$+u4bF75xMy?h(X5@b=H}y8uFvXuEHmY2MY_uK3a%W7hNOdx&&F@Xni&P_KQLlW9aUJ_E*&9(7-5!{kE zwE6(@_99uDOY;h!KrTP~W}?@}%PYJNKZ2Sxfbpm{!4vb+5F3(K_RzxkwcRV;YH|7y z?s2BaEniVVUx#Aytv}ZN*nnWiiP;;xqcg=nW!A%bqDqlgG0_W!tXHXYtn{_8en!qM z=9gk)ndGXKTE8!Ij}%jEe}=~oiAWRVVg(sIPw+(B_S|ytHfHA3;U2PVepx!k&z$oa z(5kl8%emVJBmpr4QC>NN~OJjOnX+t1SBDc7eaHnNxz=;CqYMh{taOSQ-xhn ze2s)tsyP%#og@IxeNQY;LwRgpwRiNOQfV=*ybnER=XG|PgD@L2u~~WZXRm8hAQ8?h zc8Zl3vJu>d=;GvTki;L0YGSSC&Sf<0I!4HL<7;uI522Y(2c{-YLiY0hM4Ut6m2ik4 z(Q6bHHdm0BgsAg?dh)Da*X zaAMHa>w*qUf6)QJZ9G(|?5|Zgn*5HIy;$GL$XlZRlh{S`{&7qcat~_;gj6uw2|J>N z7tlbjKqaqDKd=uh4Mgr3cQNwIJV(edIX|cu? z;mTdE<%BO9q9!2peIVzE1LUaJzw3Bo;XY!ej|+1%5*1_q)Yhoe4lc(I%8pmgC(|Xx z9%a;Lv0sl;9Fyr6R+Xld(ZFEoGtX}nbtvhU!t z!qSHF`sEjSN~;Etuf$n$h&0JMB#oESpc|#Qus~#W1B55jk2?Oz@ciALI zNV)uOTKCLNcge1C@{0qn$9s&inTZ3$P2?!QWat~Wy`h?E70BZ9+o?wGKFE+$d4yKN)3RclL7JPNkBcunbc zZ7qK2RMgqU5R&Qej#a-B>KE)ZZ>m=dyP7|TO1V*!YkJDOCn^G&vsOB6D&;uE@K)%| z>oipL&7XKTfBQ-3xU6;KBvs?QJumWM9xe@1E7lGky{uEcxBvN%xz~{7S~2QP43#J~_(-F!gRHYF5Ph6!9Xh@Cklg z#Vt;;{1hrgB-KIu$ z(Y~jg&fJYyJECGDBMj@+ooIOc(Z1%@%(7`zM&00YtdxqTgz=2UAA628m>c4VJ2xBl zwpLTv00{S3(J&w;Cvk5TBeqwMX0gX*xi1X1tsl0W_xE>0V?UqkyT{7j@S+S2O+eis z>*?8Ye?#oLb$+)WcijMJ2}u(d@>#;(WU~KAbX;xkr7=9Xd)!e3yVNG0F3~QQDeU2* zXGyEH1PEA+Gr9CE*>ABX)~a8FH2GRA@IM@P{`}R3T9+OA}319%s^yCl}m52vSpoe+QX2v3mt zTde^zC^b&FHc1XkGP{#&hYB2_OM_#`qSfM7hVSs_-Bv0+PcXI&VF;J|>HWhf>zYR@ ztUskH2^VUwW-rd5)>2Hf+^OBduq@)uO-d)_75K74-$5$}So{y3>o7Ihw}$ry5}_te$t5qU2C19RTf)U#zxVF{?SYcbuc%x~#BMI(sn zY)9%btH%ZWjw=4sGz+f21GB1Zzf)(M!R%{~LR(zAYqgOp1XWrQg0=&%wN9c&hty>m zvP>8%Z%jifJI5xPcMtA_JXV<5CmI6JF)iT$CqNa&{ltc?=XSLkkrz zpw2@a9+kJv06zH+UG|cuhKnYAn4*~AcD;KDIN2^6-Tg8a{g~((5R9l~J5{^n$yv ztQz8CNY#*Z8*4yLwk{8_^RJ#}>;a8D%`wXN>2P&!oPgPVZKGN2EuCjdMx6)R=-ZzA z$TLYsGBD1A*>`^V@6@b0uKj(Kgj^(2&{zEM_?Qr~y5jxuLvrT*i85({K+v(%frUNb z=4{I+KUcv3tpPi(P&OjK>Rs+^5A*brxO3bd+t42cWUUN~e$xJ)fr_wVifzl3lB|f) z_uIY87iQ*?b?#&ikS#ao)`>G?P$8y$?g*b{uY(&FaWkc}@$kM^DAbmz=3N#K zO~E39xAkl8M!dK4+kGa4bf7l1Ga$>NJwkJs56)Xbtss$C#nV2nTuL!3^Vv_}@ywb% zYG-yyFe8@+vT2nEM>>&l`vV7g`?2!(mLh-a$Uy(wIc${{Hblo0jZqpYKV0P+17!o; zdd6I*q`Kch#zDy&CFB}y`tv-Hkx>k*XAbLCdJZFI7huILw?qN-t0&e&?uDM3YeMf1 z6~QW6szd}=pci2+Fn%uQhxs{ER?Mua{)j#@{VazSU;UA-=HbZ*wq+esxkXW|eeFkP zncZd84S3Z4gQxMGu!$>DL7ZW38utt#3rPllAF8@zD*ZcJz`Zd_j_Ist88_IdH8Q#u z<$e8I7KtsM5G{i}h6}yMjw6jwew{G}LdR-8@`v^e|C)g2!@g$A++;ILrsy$6zOYPV zO7+J6-3R@NCz#QytKMQ;^m0{;cxn(a1)Q9FwpQ)FiL4tr=;w}#?M34Pfke#YpLjU@ zxaIqE^MoxEC)2G4tJ>mFO>{Vj^i&A7Wy?Mfo$0Au_eZh1`~Yv2F>760iYDm`(z7(g zVK}*RQPWx7?5IV(J?motSQFdN>etY~S$C64qku~VB=y~aTVyet9cJiKT!4h>Xps^a z^XdlA#vtMZnAnnYOi?2nN`Wy)z_1A7@X(U3M4GPSm+>lncf9x5@`WY^_(JG_uCn+u zk5AuO&&=NOT%0MB#L=2mleG#1vp07c#7S_D7B`ZPAX4i}xzH5;8k2RkdSA9QAkXpl zTIWEzJ{x6pzM2ExBzQE{s<1vrsTo3=z4&=0vknxU1aAsTt9iYZ@;EoH_BmpcE7-ol zz1cicdHO2iukz$92vM`HMt4hj1^ZmAn=H4*3Aq{c=BU#@%JNVckl)nlPEk`ojDh#n z>T`#rYdnQ-mGL?(cGQ*66oGgyJD|f~=6}APXE+n$(5h^n} z8EKKRN-aX=E?+kZ8VX|7Jnf7X>%XhJMo++`TWxKCCbW24KHNorjfv9+~SW@!Wf7e zBqP7EEPBI7Sfte}l$h8{U0s4Y&Ztq%QfY$E5C(#zvOQD|F2oMZ@sR3VDVz&3(sEZV z9gPP1H&Y~Jq=VAp&Wtjk9;$3ra@9xX3&J2ojcJ90ueA?T;n5HIj}N!K+J~d2Is1{e zCOrQ?_Voz*z)F&$@F+AGHZ_s%KcwG+j561M1RTw=E-3Cc9YJKz_S}6h4 zPDxI>W}Gt~&@Kfdlx*NKEY&|WnNq4#%L{sXM%kBoR=)znl{Jf zJ|3Fw-BHkV7G~Ui#66#!yMl)hJO+Q!RezV;Yp=xXvtF2OSNCwA(z#nbw0v)8HAZO7 zSSLa43O{8?-p|soQRzhRf`zH|PO*9FyT~%eyL(WTlHpj-{U9Wh)xlJzB z`>Rq6=)O}{mO4CRN0FPU)(yQA(_SgJpw229Ge;xso{fRxO`iyuTzafeO{vh(W3GO# z>)i8A@~GxHl!F6XeorrIg!UV6g*ojTD&dYw*rZH)ROG3B#T3LeF`Z!+ zW8B@y?Le*gA@iZ5sVAEeiKy26zEmq$W$i~xpy6eqZD?XCPlw&2FEcH#71?V4k0i+W z&SID*)Y4;K9!Lg!Xd|3IgOg)X4`f|4WZ%lP{0smROAK4*CBPqf-fYYdCoJ~+V&5Z^ zg&JKe@8mbd}cnP2Kf;Z+D^~z7Yr$=dTQ-{Ct!v=V3wMS^%tJt6^PMH>%h8O1huwznp zFJ$t`%K8`%$(e?>=sJ>|v1Y3Us`H@46#V^}Xv@AJW}~R;Z20Tr#K>ZMtEsDm+n{=F zdF8x}aW3SSAZudAo>Jo!LI%!^Bkl>mQxtR;`<%Ufkj}h&3QZYmekxJQl!<|HiIqX& z=Y>qSN~*5d)(n~N!Zt3N$pmkF_Q9K_?!~?p<<9ZXBG0@`&u__OY=*69hsrZ`Zid;r z9I?0^Ds(;@ITA22?U&Ztk0^-= z*2nh1!E$xB_gX|zO>u;@yK4E+C2iuPkENqsP3yLa1Tr@WMrpONTX$m9u*wDBkXW@e zyc7zZYdU-PKyf)_HX)%aFL&&ZxoJq}%hP&B6+i~IVCQ>Y8?Glntv{?Aslq?A>K+@e<cX%Ji9(9Rs!EriD5u}dLsM#l z0j}{1Nk&onIy6p?Gh-}mN91=se%s*zK`T^C=Id8$ceg>L$N=;?T{-tU( zeT+q2^?vKlXS}`xol0GGZ(b9inGC%Kn}gvNSWeD4tJV(=I^IRIPN=DGMv!JG%CVbe zvWUfMvkr62Q;ApM2*vFds63?J1jCC*Wk9o|lEE%WPaks|hm;>xlTitbU~tT!C;Ge& z8GFwN3fJeNjM9T4;>#ozA!*DL5V$RAb*;2*)uC5s6>!k+==WaCLU!j)@s^EZQ}t&W zDCy#wp1iGbf#&FpIyD1Euo&w|xgu*)vP{yEC=x&+JtXgEh;ZGh!&L@O88hysLL9DeZEBD{wIZ7EN>}3d#M?BxW|mr9=@L`3 zvBFU^UR5ox3ERHmZ)}9k1Mg0@wh)C*7Gb!9a!U_0VW;mfXkX%59V@hY$J=VU#Mr0n zGqSJE=9k3?6~{#DFO`qUnWW(ec~6dIogl88hw-0gT+Z*1WbuC*xDLmtDm%&P7;#EKjY7369)B_q24M}3je$ijcgrgk9l&iU zGp%|Mao>2c^@=J_*(NT|_@=w;#%(rqB9&iK+ERh71T|sYOSjIR#3vkUm>%hY9hRu` z1Qq|JiTP>#U;(d9kJ(tt@B=dhwbJx)?Cr6X80Kd2D%{~#&1B+ohX*TZbs+#$ebJSq zl6R|=6udfIw(X&DYN(G3WU7BMM&fLKEaE!G08WcY)nI3?A2Mu~J=7#ticT)J zAyU+AOSB&Zhr#68DZ>udmW+?%!w%{v!1G7pD#3`QNeb6R0ox@1^T|+iO7ld52>WJ; zZS!}zH~6Y{MOA!6j_?emUkd6ksPVboU=U6cCzh8;}!>? z1CKyRSk@*Mju0W*7%7rtd+mE{GFNOe(iNavJpnGto~nuiodmXGOyq^6+`Kd^lUh2C zbtw7L@x%Oc6pk*L+rA`Bd$Tb{j2^~43fk(U<$1s>v)o}HP7`{gG%5qeMOA=mSDB?F z^VW~I5Ef@Ucb8$`n@`?omrjJlx$^sxU%7O69xLVrViYbGmJv&6>bj$Q+m3pmF;@i* z*^_7Gm{lx@b`-pYis|Nz0E~-)uEHu8yu@B7l5Thop_V*K!PUO{{7rtZ=5Z1VFtN7k z1?Fb4kV*Bk3sg?-!ru0EcWRvRBEwQb(&v0fM#L$Fv`@}Ge`G^<ZevDLBF$%<{9-sf(Qu`j;6`U5qp>V2L$OPWTgCzHl_ zO(m4@jUJa+8Umg3ZoVR(HF$+k=b`QGN?xNCPUcBu6AF3am3-R5LN{tSDq7pV7ZVA) zLBoYjdl+<4+0PL)*oLj>SK97nD0nehBW@{XKRwstjGc2#P1kNlecu_4X5GyF;H!jl zYqh$VG5&8vG$-msu=N_75diUG$Jhc<-I8l?lCn=j`|?$@5XJ21S>ySa8^#-$!XnPl zy8f@254lug^+vvHz=S%)v<)5D(ESyv)+?X*eZgTX@7S7tY$GG$yu}fNjNM4|sOC!f z`Xf^clBW+R-HJ<&qMNLc)v88{P_>pC{j<))0ZQNFNkvZeFrZR|ghQMbHa4P7-lZNC zGTwC=I>tVW~8V}O<)p9*i|3}fI_xnc*gW!27eW&l&+x=_jt4y20!ZB8z0M|Dp z1$diax}oRi>z&^D6k2Wi+{n&b_d5=SL5C5do43GJrSTHxcM=LlZMIh+!dzG`a# zM+8YJStLjabZIaRMo?lFoc;)%8i@(gGBPO>@vo9Ucya>h5rBed8ubv&6+OJ5WZx)W zjc`zmOjJS!N;4SUE3h|7M4<}mosdbu?Gm7*!n5`=@N)JnoE2Z>7YO?;!k{L)y`xPSl|ur@;*{L#n0P_M>z7Jf67Vpo&e&up67)!j7(%HI zc8oMEcOC7S9nLyU{~v6>n3sP|2H!429OXp1KB$>RR)Hyo7I`tCYIf3a*&4d&9+~zo z8jEN`B2Z>o3}hrg>8M*&q`t9V)%evs7G_>xXXG0rD|o&toWfG$YfpN%rr@Ydpi^R* zWsiFDD@recS$MZ=A7(Rd$LKh_i2uAO@sbm&GFd%LdphA@Mq#3oR$HHTGyJ@61)>44 z*vEcnlwt*2BEgM-k`A`q zGUH216B~)u{_wp!HOT3GXc zi1*rc!j-mLTW9{@whpoE#3=$zQ$gsSe|JTW2|IiB-+FS`u{hT+pX#1Ximp0u=Iezf zv2H7AeeG(V9u|7amNn=&Mzk+cG8gIrd4l|dr)7(K83_=L#xK4?*>Do&ot7%V72V^P z`*cFJ5J49I8#E;c0f;=Vzj|ijam$-?HwWu+oIX4E{~?&C$JzJ;<%G{=P6`@!6x%jC zjc+T@hueqjn`ea+c%QN;h1fwscV*+sE#yatyHk|QPKJV^W7 z8-jC7H!X*ZOiyCJ#RCVLiY$6Osdc4oR=2wzruvy?h>#<`e%D5kMm@?4Yo7Q6-8{O; z(bzkqwr-AsUc;`7ROP|y_6WX)(lEFvHS%>S;PX{*_urYZJ@@^xEBHND-v6;H$lxgG z|MHSZmHr1wP*3hD;5$)-mD?biP!IL{!8dpslVO0i=R;Q+&;}i+1ZZP|0-z72bt(Zo zrrg9&c@-f&vp)_Tt#+ocR!6w3@sa5&H7AAc=&MvcgcM~#7U6SLGe10rG`f@|Jj&bL zh}fT<@-Y3<&WlwUo|tknp_LX~a(*%)F(eZ5|LxQr^jZbAp->r5R+vDe_B2${BsX$c zfYeCtw*`4*ml{Yv5J~TJKy`XJ@_c1DDwcj9c8JyVT{+O&aiqSUy@x;3_+6| zMnd%Z=MaaxF{Yz&oi9vv^)_pS#$Dr#LiFswWcobYn2mZhw@ZCXGSUuy-d;|K1=Yo$ zl%UX|asE{NLM?z1l4^fSDv-ogW9wKcOtVvS)@NDBvVOyZWmgQ?kI^+#uq3i)LBlib zGp@F^aB9ne!8<&Mbz3OtrwVG@x5Wc#pqXmeq0c`n;4_n8uE7XWNB^>ru?1+)e>GO~ zhO?~4{sNE(($E!AHYd)IDULtSx2`yyM;0?+V)?i5F%%qABpm!ROpP1)#!C#PF zIJD-;I!G0yl%Kv3i=g`mLeJ#bom><*UCpvHiH{3cyEC3Nm`DIps-%hiXv{V9B!9c~_De_C;_;JI zb_d>X|28AA^e#&lJ8P)*5xJ5@r6Y|ju9$pkXXcm6$V)&DM;+r_l z7VFWjS4JRupq;S3v(%jQrd-VyM``{ScKl`5H7Q2YkJA{q4i-kgb6>`-F_9#z#6ZZ8 zQ$(A!-7{9)Hb^L|l%&Spy{{SPp!AF{Px7uVb#TP7Mfil@h7b*o-{OL;QP{1{GGIb{ z|2t&g-_+eV%LPm0_Xt>Pmapkf3)~Rb4v5it_O#I+Gbvpby*Q@!3HDjFd@@%4Gls04;fS^) zuKSh_C25}AGFSgpaIm7FhSVovUz5JA@QScw>?OD-q1+(;e~kvePe}NP+N9 zuHJ9Ff1tI&Y3TB1!GU5_{?v7O@!^L0XWM?FY99oU>|-mgL7>hXVaT&k{Zi>l)Bc^m zvTlg&*?*|CJ>W3+(Na2?SPk+DECPBui)M50z4o;Ptlq@3JFn>KO>o!QC21q3Ye4yr zK?=lGhCpk_=td6v700lHV&1vro?Yu}7k9q{-%aH! z{cbbqTi3TQk83#6vzWhl(+-xGVa8VL;Tx7uzD{V2FM?b+uof@sB~@ z&4>r*btlh8>=+sD0KkQjEs#L!8hsXwYO9{{m~bd9U}|(b$c>^LZ{cndX7eFMvkJQ`d1_T zj9LuXURrU1{1)f6PZ<5^+5MR?W(?)#A5~`(d4C8y#)Y1y$Y>wbrQG|qQS9G-2DHo4 z-I!;hq30`kPd?_>)1$cY3)so2hG8?;ZJD6-1po4Rn8`AL?k zx-qr^t%XmYXL^?40(F?YC7$HJ{GpZ*-VuG9MFVDhtGNc?IPIu3bZ#*#szX?NEofE_ zj+K#Snk}`Dr;bf7soqUeFJ|@kjRLZ=R-OunX>@-nlz11eTdYVbkE>SM$-b&LBrmG_ zr$S-W%RXgMeH$q0Q<#X1gUAo!te_DKkuWU7UNWjn$VCb<6QCnL3BwPlpe|S8SzeEP zO@M!Y`qyKBjO_Q}IniEB(DDgL^2iG@yS5e{OK*s)ZYNf5*^=a&4xn#rx;(ncW@L}a zjVOj@5Eh(KdKGon@r%kl$sV3<;JA!0C!NXr3A;j7f=9`=&b&^<3yWCTs4-#*l=!+P zcbFHxWU21to+I~u|K<+<`(xs0eqeS1r>Wpi9_#If@jHLCg1aP^2{cMILV=>kH#=5N zgL{AXF2VM>a+e+2G0AzOi0XRuyWeB35@YUC?xJoU?oik<+JnsDSDLRyd81_y4m2{k$U)&=_ zI&&+iewqgb zia~MEt`rPpbWrALhRj^pmXsM;bHyikI^&sVX^AyQwOpAiu%4 z1IWukl34-$@@u34?CcO8?vu^n;Udmmnxkxou{Mh2=&}XAmuZXe zdXZ(ASfXipWK!rYN`El-VweH=vT9xhlFhp$Pq`!;ew%pZ8;{#eD*aTGxT6HcypdqJi>#p<0 z>uXiO@j)2tD!NlE>Rgt=<4mqw!5D)w!^*b7m^&M0izTtiCFPlBJdzH`GlM*Gv=-R8 zaz`{MDOTm)nR9%3){OSnbN9c?0LJR%6Zn&njfIboW=)P0GW%uWVaZ?G%_zgwlqUmd zJ7pamZ?ktXS0ods{(~+-g{YnaaFXS5_r*GOKOkXqX+X>*-+)?6Ebi?1Pdw{qkZEF` z(suTHwWZvxm8lPAGJosH&WPU4%d?!=8C98DkF=~~j%EC~bta#Nl8?H8*m=RK+^U~o z@oUbP!^=P?FtF6WM+7sQeq_r&41N;Dx^WiB3L`sLn=aeZ>^u?;FMXYO?a1%aU0nh+ zt1caSrj~5Z zCV@!+q)n%I2qvjIbUGM&F5OP(YS7EfK0+o=988WcZegROtFC_OAs9p?XtmKpco_;%2Oj-!3S0* zlXBRqIdQCVd)c8ZPt3{=PZOwMu+&Kj(;P9QTi6o_Pm(t+r$4@?gq0O2^~g=5Tg&t@6D^tCp;hDEY53A!Gl-r%9Ooim| z$XRm8x=^0OyVvC5 zXtOvaDs#EXy+&qvi)wzK5x)UOABbOt0LdRvinXV+jSiyQgs9-%&ICe9n02EdM50!m zY_Vi}lBw(07yF~`H=sHQQ)+51`v?2Xo>^K8h)bgG8#P`>DKqF!O6Ym`Xf|I2RH0k_ z*xqO4dXk)LdA!Wj&K9q`i-04^sLfu^J1aVPR44p&AR|byI@ij>Wyha(*C==2bOOrW z-u@^-4zd#e-oqlp3f=6KfaNTTI9QQ1N`AUtZp;L|7M+iu6uLoClTrxW;84H=s-{kg z)SzY3v>Aews%6qEjoit~s1*X%b-2*_^k#mlBa3qwQjHI9bcTna{X7?zZXMc@<{gS% zbWk0jLEWuW{0)RwQs!^dJE`fi;opDBy0gPys)zRzNg$1@SqV~lV^C17=^ZBxefs%X z6oiT7=9LBvpztLXn*}K(1t!CENqIR-ETt$^wI*p-?-%8jcDwj2El)s6ZAj9DLuo-l zlDRcEm&Q32Y1(iFhKaMn>9;pZpcuSUI=0f_mvggsQe<~aSo6CBxh>{vo}>w0|kaOadxyVzlce(Q_)PMV;bH)0EwK?i5T7)ZkP}VY3 zYD3pwJ(^wpA+*0~=)RjGuxWUEg!tmxbL}=tkXWUw79&LMa#_tR^C1fvi(7%a%U@Xv z4w=N}mbvm5HfGr7;?VnZ!&Ly^H8~(4=j$L%$1{dU_7AGC=%@X^2UTlNs+1g9s!N+j zM+RNK-xdv=6^)i3;WF7>p`u&=kmokmf95v*I|?r2Mx{_lX2+L88>Uy8)n@5Pgui8b zOx|GskUE0uIm8)zM2c{g7eiY}aUX}5du9uximp_qj{K7sTzt|Zs49jEh)0_y|8myu zN5MVkTx8G9?72hm>+v<^9*I1Qqv&xR!P}o!6DC1zWG5zS_7In%kZUZXAJ9(ZQT0^8 zbDpH%0)OMBAUN^Z)(Lc?PDaKT;WcSntgyWfqrY9W)wrzDC>-o5Uk!a^_Ox!4@=SzP z^<|(VgEosA!1JgxKE~L~0p#9P>wbX74Icd!D$p)VCmP!#BoT>TW+BRtvLF&_pm_%d zbz*IsOQe&4M@_NSy#ARUC}QvxGM6STQQ0N+39sp@S)sUY}vtwB~2T4G^c;f4M zjA&PAHj43|FbxZUGI6>r$hT-wBD+Xy{{DQZh--Rl-%v!31>hEYx9mgI_`Gp%aQwc# z+y1%xb@jO$&=ETI{Ez;;`9he4IR2ej5b4rW5S;Qa0)b+j__DX~WfMsRJ0d07)DjRR zyHy=hns~Y&ry6PiQW{C}@(nR|qD|c&_fu6531Gl6gLH+UvfC>RkmTMOm z`hq?eDuh-_{&NVR57iKW+DsqTKKK2>nf~3AF9Fhdx%`Ndd(>K@tzGY z4p?ZbIFESoe>ZYf#D?qlm)eAaD2r`*5Btd}1Bm?h-YC8J2p@miKSUCpih&m|4gI5K zv4<7izsnIRTIB)QkZ5_1Otj>P!n8*(7TS7HL^L_k;g-ca6mnA*HM3R=Il;8|Piwf1?FQZ?ZXkJuo0#$izs6N6jQt>TVR$-f3@y-7YdI|J?sJmbqKZfW zgLfunH~>H3xLz&Ig@btz_~)!GDG0)bDjAEfE^ji;Xl#=4=z)GoVISwH$1^=N1>%vM zBosYByZlm1k-q(tp`NwAj804(b!48-C=SgHI|eCk?0Dxz5V94)iip&gwkid~VhZb= z>$Lxa!pZer&my1TVu2f4c$`{7uboahFo~?q;HF~sf!!01VP})um)v2oozmSWUy^7U zxxi{A{v6AP8WtRer!r| zpK3Hh#mbD3-r3cMhY-Kh2F@%R3Y^>O-8_R&8>R`MdS|<2b{z&Z0vr3? zU0|CnS)i4%|0UjgIr*V^`5hG*Yr#%owwalaa%G{HbyOGsTM@()RhUYOe&27BFo-zU#xvIKy+{A10Zph$~YNs8X*?|JS!W8EH^ zxKv`Ob*_g54tjAI5^fFeLXN~(Gze^UO4!mbP!e=$`Qyb+Nyl!zQdgI5bP_&Slf(@t z(!Zj#PV>2rB4FRIck;79p53V9t#-d$Q~TR;1NswENXS$@e=GG-Rf2QNzQ6glx?_Zj zr9F1qX^RtMu#lDBGNcI$&NA{~>*=%n^EVrNlcs1cO(Qdtohu2gxdURMUbg~ox}OZ* zMd>U!3q@vW6v@rh$zckmtPRo`F_G(b)!OVjER!m1l5BuZGh#4GRyuttjZ=QiPR#Qj528!)XI$-T-N$$fSdnqYYc%F z)S64c`T~2={_LqwncfX7^g6c4#MKeemGO?JeV*lJ`JQz<&(md=aZ6I?wM$?!upSAI z~;GjXfM_dx`1!S zO+U`^wau&IH_bECu`V31Iuv!6FUIZh2tJdgBztg)3d6rfK|6@66q+Fd)%c#NA7ile zV6CEqY3)Y`61Ybw(ei7zDj`KdqHFjIhy1f3uuE}p&XeXNa^2cJT?T`ZqfNX?f!$@) zft4-vY^#+n2c$T8p)BZVMzy50y2cm z1T|7><%{BOL%~BaE5AUVfMwHrup%x2Hi<-0Y7;yww1f>-pif$hA=^Qgm(*+oRLfuA z_zdg{qoS}cNIBRXE_O2OtHFflS?Pn3NnI3ZV5RR`mKliIj4fOWlnX!QGQaHpa7s1= zb@MFNtdIi6M8nAXb0og+DjQI>c2wX+=m|r8f5~i5I8e-qqFxq+62bg8O!su>bcZ=S z{lhM^J&q{z%wOH-P~zbU1=m(PMhoVtHnqUi>=CqPU)6BzQfr&X(6+7j#l4}1FH~eE z8$}&$L20l(>eA8$f}IHcl1bfVlBQ*M-LAYE{b@I%4IR{_L}-Zar0q9pT!$pK+T;fh zmbAja9F4BKqN2>*nU~1#)0v5}3Gfk=jC}@16IyQVh;dVc8NwUY;Bo3YJd9lTAB(KTgYVFNoej-(nYN$Y3fC%J+f?- zhSG4xtR7==6wDT$Ae*NU=i1w0v0XG)>m0l~GB|C}HyTKB+I!6;%(-qC5X5txZ1}(@ ze3!unr`}4THY=0EQrt)DPVrq%5dIHeNbp9!4fAUDizKtcVaSnm9Z=YmI|p?^dz)cN zs>k^$@}p-3vmgUCLX?nGANJMU3);?je3Eo6GfiFRcP2YOh%l+aq#8_n%Ivv{1n#P? z{HFX3_$QkfS|6+a+cDLX+``S-Ut@aH*~mJ2Ios(;7pSSD6taWdYF81Pt@udH#73$T za~l+xLyEYv@`(+8%?^V3(kF*K#&ES+yi}1zi)#n@3|Zdu5Kp1r!7P%rb3TI_rQ1(l zs=V;DtCl=CjH%ed9m5MP%!rLtdT&2Ja2fc207v2eo_{RrZ{yH_Z>Y35E-Zp~9^n$l zlF+1P5T^D%!5ari*X=BKC!U>k6MCCj3yZh?IeD)%tfd#*BOT#G|A$6G8excU6NFah zX;u|K`CGV1(;ZXU5%yA4FaKyX<2bAcXl)l29FEw;u>YJ*MFY*q1k^afNwivLJ?yY7xGzf~6uZDRK9068J`1J7Z;3%)MfkfD-zn9hs1c)bUzrxo;b-6!Y2|}%{p|C(m-rRZd_%W6ED?f z?ZBoa5)Dc+@u!UURYWBNSGar#%cuIWBS!j{DOSTW=Q}S`TqyYRzUh)0LaaUg!Hd{% zm6ks?mdjuB-8cBTgYmD)uc+1Dm=tW}&CIa5Q9T;$ZD^zS@^OxqMbK~$GFx(IAmqdh)7Flp?iLgyq@*CwnY9C{ zD;u~cZVCkljua!yduWa5&!odZdC%$<^Nb!v4AFSA_akrOy;Fk4qekW4Oi{s~SHp|d zy}J8uZIzuTi5xm|W@CM#Qx^$h=ut4!$Li0TX1qD$<5<9k{6ISb7o1DS=7ofhij=ey$hN;ZLZqvPY!bNTr}OFYt@f_K=!+ zUy4&QB%evVt1rBR!*~K+fl&`po_ek8Lio!xsMTjKb3S`y7zmquu79PNp}I<_P@!#9 zIU(e0q3^W`=Nd|B1Jicbp`~XyP-z1pE(>ePs;+?9tV`0wX_0^ZwAs8u4rF2EWi)br zPI+vJHtcU3pQv~y|@v^Ss|!%D@W|-UE;^k;_WLe%UOJ!p}$Jm z;VZuGACBcJdB|}phN+6)QZ)nNAv!Vs2r_kr^W(Pd;i$Eb%EegJ!E#f<j*oPbzVw zDs~GMA>`W6s37nOq?+VyMkpHDmm=Z;K|}`JIrG;YIPj1)OWi6}{Vs5K_*Xsqs}Hns z>P*M+)_b2+RfcG|>TKw72sVcQ%T~;*fSCo|Es%rt;HiX9ud- z(TdpBwnR36vN>8Ova(&4{=(CmZSqnHANCr;>DkR<`M~YGUVTVH!xMO13Ab5Ks+}|K zAXVRToY~w4t+6QUJQ9gJdpHwylk$@ot{+v3_+zZ`j`ZS;9}8~En9qfZzA)o{dgBiz z!9p&|tp_|djDhbpoQK8nR&))5*XNkYh3_r*0>i{z$I&D`Yk-%ZqA-CkAQ5ALTaReW zD384XX?$dwt`Ul0kuPKZ`V%^-t|vUh!lB zHXMa)P3=USM$I3^6(Ul@7vH@%phO_;xNQ&Ws}B%tU=9ZPrB3ahl@v)Tcu!UtZx47H5n{1FW*!D(u^SHWBg8+ zccuESj_KaopI748MF{Zx?qTkZ_wjQ5Zu2;D9lY&j>#UB!$F9Ntp~&(4*aQ(e#p&^c zwE4x_zyvirBy2;pBkZWb`7n$kd32%5c9YlL{3dVV3z5lOfUrYY5QJp7_KJ?q<_LNB zsqU|l%G!})Si+zw?;FOViP8&!0Ob&%SN^?y@SALLU7e!0{n6E`!>9XmkYD9z<30$4 zEJRau=0BFhryOQwlORt6VpZOaD5}x{STExi}C#Nl0ehWT$W;CzhQ2K_!` zdXs%eDX4gS$%)b^Czf;i<#T*_QdZoX;Sh)SuI}r*0=g-ou2YI5!-MMPIB+=>>kH+T zc>P?=zh4gJpGfg6=EcW#BrRzO`s@95>zw5(hgW%#>M62DE6v5AOL`odq9jG9`{=$H z-uBR1JZrYg{2G1Z%-ajw<5!)hZFo7At?$G0JRt)0E)3tnu~@C@saY6B0R;^hvjjV@n7UkD^) z#q@xUW-o?HiAc}inZY2S=?F}IIN9K=W@QL@B_^t?%)B-B8kABk{$S3cK{{<5@0A9* z-fyfjxNjoSXFIDN?PukW%Py^5tyH20@$lpHdt_Seo5pGEcB+7EbIm20{x zH5NaXw}(#}8_U5U~&9y$<85HyOC&H=(qv*#<_( z7>QI&96$Bcqa}OVB>uP0EM3U)T0tmol!#6VbN0OJdl;M>(9UEPPLdeGI|pQnemr6Z zpt#V`WwW-|AI`U_*2oNwI@7!{np?S6*;sbgiz{kBt6rvn zqWA*etL{l)D|t@5_+gEEjmB*S7ZyY%Ei5`b6q+V2=SC~wjt|g!%;`{rNxX&ISFeM{ zsQde5`_%D6)mSpKZy&P(op!@_fnwsto7U%m8UOSG|N&$&Q-gta%76L z(e0o${wFEXs=Yq@daJ>SRwc9Hjeh2Z~JAX>%b^u^BqtIHmX4=z5;Db9lck{<2SY)ALQ0$h7^2D`QdMO2jOeJ4kn)&MnS zo=nmkO|zy`tFw&A%@*SeWY-c#+vwt|3f@z;Df!N|{k(Sy9X$b^o~1w1IT!*phWj_o zD8W`|r<(KK255jh9@#mn-__}3lRM?o5jlz(8-g=VK+>ZGEhedtmHWjpTW2gUdD-RM z(B+WRfgQAv$_oAJ#d3+H3g`UjtzJ`gQ-V!&a%METF{tPVJe%9E?33j+ER!*Ltu2=C8mgy2GxG9!1+; zwzb_Vz>Z8jR1bzF%E_%S80AC9;AFut=BY0GPmOs}`e;Rt`)c_^P&0|us>~P) zeTj3O_ZaS>!=P<=>hcv^0lXkF(A1hZzZa1!!uBA~z4(@g38xltVq5Rdct_MAFr8@8 zZ=F;WG?^XGoq|)}YaGNVb+LSz2XiB|`)8Q#jZU0v75gCoSUzCN{n%sDA@`3mZ zM+PIDoF{*lEAuaubtP>eOeWXX{s7k;L83rv$q)06JoRjTt9i;`_&0&QT`&MZC>oRY z)Vm8{GM4Q|ZP2z_jwiscY6>)SJ(iE)L`Kcx6Uz;816F&-7o6^%O4R3Y0FbmL+QS^t z;IU$H{6urDKvs74T*+uEevXoCs=No309;QzX*w!Lct_EIp-rwdY0h##8`0xaUx_9z;eUEJsvLot&`{OK^I#GcFuSBP<_U$G}u&T#v= z`Ezf2^d0SfwaUMccA{yHUb@`lHz4o#4>(|MIbw5q!O+!0zj{E_s^Q#VbscTn z8h?gZ5l8;nbAs{JObB5qOx#Hg&-Q40+(0HR1^bb<`r=a;j(?Vu1l8&lwY93C8Rajf zBY2CcW1c`02*8}r(;x$Zmg3mJa?PdoShl9^( zh8;6TSz!pd?LJ#IFlzB^ToCEms`mMi7+J^S{^A>~`=t&?omwfmoUl!tnn9Nc$|rVL z7egw>@wit^lLNF!?2ENd!CtXF{Z}m$7y|xcrlOz@|noSU9TdndJ_Om z)?K(;tDSYC@ZpN96*2Zz|B}JDk2!bNPc+J^qfsC8X-LcUF8jv<h3Q<7BetCC%V*JAS{e!aV(lC}-$fWwTf93s9Bu;SCbF zw`y;A5YuXd3Y_OcGP4J>$OrI#qb+;XpduaHN^|^0_}J1{@{ahbRsftH3pqV)GP6ko zO}G(Z^;qH`jDZI$Pm6UY%rto-R%Az|oX3ZlpLh}5q0K>#5HlTYV)zSh46UNW#hFOW zn^uLj32w(tY(H!rJd||&VOfJMwATqqEQ07ZE`GRjh4DAY@Eb|Z!4M!dxHL6Qw&=~$ zF7Xbh=)wO5R7>}1nVQ=N<6pG&unVN>UT&E1WEu1$X6V}1GN z^Qxd>fA)O8e`7%R*Yw_6T~3d`*Jrce_h)X3F~f@PvTnr2>JpXqvDvji{?n{7 zv1m?eOv0@}0{`D3yrE(dhF>2y?NHF(9}kb;|JH#KAJ6>(?jJ}<0pEv15r((>zrH=k z=g8i`cpfAAzrXg8koq%)q1}j4iD#UMAr`?(PRYOVsE73YJ%hgY`w@x$F&3}DRYSz9 z8{pDmdO6f|12wWIRstgS-sB|yogzIgQMxgS6t0#=nzEhvO-n2sGAT+u9oj*i`8Z0# z8@6VebVrO8HbjqNPcQ=Sb{Il*$X;N;v3YKaM)X23_w0*b&``{%)fQR`DutHG4^Gm0li`mnIPHQdnkRt&km`uX( zw`}cY^5cNmix?>g783*lo{+KOMi{uVsLJjyk3899iA$xo|t`R<_}s<{dGBh29+ z)3~Bh(L;maM$uB*EQ>0&5KI2%JE66Td9 zbtIt{RAqM64!J<2r?-?3JD|@}W$ma{rfAX(8o7(q_vuz7?1l`{I*6$~$SW;{ZmH3Q z7N?-;yXK9F-Fthbh?An9irk+Qg<+KO+@obp2X~58CCt{!RJ11X)1CT?b&fJ2NU4D1 z2-7I2MWGlY%!Qj`bfb1Glp$Dx<)V*&`GR0a<0Ybcp?=}Zyg-80PEdPO;k}Tw*)x!c z5&20DB@ES)&(_n-Gxyo$c0URk#D=tUi`1|e-5MR>#AepTtt5fDxEZ`J={&YU z?bdEeNC?3QSaHe_(;`zE26EZm$@H0ALBf9pi8x(Q#{(YBlqubY^!&YM@=j`@=#V@6ezmlPGrtI49!r5Suz{#UlTiX^S;cB40^0} zhqW0(DyB(eC%=Kc2{+F2E;=+J%TApD{^fX+(F6gy{qRfZcb1Ik5 zH#mWG60mn<6~1GE&;0VW?7)Uv&`{!#Li`|9vCeFWU$2eD5jIivJ6o)kqEqLS!@`7` zwjkDxGddjK*@qz~QG3y9+oxy?J!|Q_mm{CA<5Z@|qAL(>kXTTLDGFu1wzLG(K-u&& ziCWk!U3Qzp4|bb7QdF>@d!yi<$jxDX-#H{6UyAbG1?piSBe|WW11}W$PU00~Xbz4} zb1(rc;!HYy5A(I0U5U`wYzF3y8*sNCGVw%T9lCFsPf%hv&{RufHm{L3g}crCw8k9{ z&23Rg0f;Xrm{e8BHKU%Qv|96<#@Fw6^+22_cs$<8ZN7IhnK+(h?{?E(&ppj%9`EKi zVVO5@d!bt~C80s4CN&%?BFBE)(DT)2VIXL1Ds{CNJ;cpdF+@pvt|2|2ZMD{!9{1D5 zEdPJZy$3wifAl|2WRL94&6eU`*CyFn2^Gq`w(Oark}Z2hR%VDo$;jShld|_pR6-fy z_r9aLjZZ$G|L_0({eBPQzUO(L*E!GgJm)p;y%#I-An%t1xL@&cGdH)Cqp6|{~KA79~KI3>-gp>lk;c(6dL@*cN*i^;6| z?0XIw=j5!RUh8J+S0Co=bngX3wn#sTq_CPfo{<1eRT%7b$7{mo+1A&p62jH|T(8wV zvN2LA;ON+FPcK0U(L3|xi_z=%r%t44xvSoQF;E=CzqeGzacY>{vGWv#z}B%67OhZB zpDcarE6gyrI@lY5B5RlEo2MuH@Sfrs<247o3@|IX^zbR@{&ig!|93}QudH0~W*_Ur zxSPp%Brb&jI#lY{{L)Y)?h^3&F}Sn&4~H#vH4aU{rGn&DQ%e*2d_0x3ia9X zZm*tI!SV=an$LRF*tJ3YuF-$lV_@vno;|_EXkqMQ@eU=W)DsKUW_aYWDnhnj`>{2E zFZ?cl(Wqs@Hc2=h{b|<4LN15rOedMkKJBiLoK_7SDYwwh+_rER;eVKXRD#Jt z+-;;*v6nU|zuaOel?P_=V4=MoUwT6Gb40h%c9rZya&U}Tp;wNGL=-7#B?5Mfi>#aD zqFSr{wpbHIy9-^U7v4Jgymy?A1D@$8D@O7Gj&l;`!;lgl1EzRU9suf29Ci^DsK zsq}QbO7?X=*4b)W1x#Khnqy9HUM{3(*4d2NoEQ;YROiB)W>vZhjAe=nMQq^y~ z%S!uHe;Hyas%P7xKMIS+l?r>ITPOMDR1X=g`nBz;F@M`M{k5=XMkO9o1-Sae1dk1x zM;wTjGd`vzvM=hI7w6|((O8t4?_wA8EDga;Pt>N4H$KBkaw*`>>h0Y(lY8^Ct)vfb zZ!gx~`jS&vdr*6uS*k{|wyIZC^VW`QoAciEQS)cE$!ALvK7C%l;M+M5ZcUkLe*SE= z{r&4Zownod@_ZD5)ObR?>=9|p3Rd_R9x%Xga0~b>T`TRNS!3NX&YI>V>tQM>rB_lq zL`!eYF@)7!#@Kv9m8+OWtM%T0sq6wvodQv7oh#q-yeqG?JFoa+p6S_t7YIG>bKzRm zph%$g$bS4)PYY|e3v~7rf%33h{)-!R1FRdmQec^Ley*SD^lY$a>-~aaR;4EUQw;(P z6ASvU_OS08e+It#n$%M`aJW9zZFHe6^;CENMop1Z@!WCnqtEhF0&KRJ&&JczFid4> zZrB48r#vl3;;WDP3Y2E-MKWLRJE}n_GGkvHLw9AUbYcE8*?6hJIoqxfbDOUW&x97E zA~`7xY|njY9-q#Ue8RzhB85nw`KDxmB}4i0Qt3pz$e)H2;R|W5HdKcdy*5Q>jTd1#fb?hh@7+s7%l{S(^JovJ5#F=QY=*Urr6E19f zFs+KqOKsy9mKO5ww_3Aw$2;_Vi7)D5o#cboWJSMy*>rU^ZIAqZnfZ=p=|Gk<^v!xZ z70Ja=HP2b+^l|6;O3~@<{=S!w;;@OhW?8f=7T0!_pj~9kQ5IK@wX2=D7%#SZQNzuv zT0728V=FW=`AaJ#p?XQY4;Px|0Oh26AxkjnF=0fqq^Q$?t;uebuK)2}(ppg0#sT~K z%vE0e_t{ZanOQ1jzEfjhstr+0FPwo+p8Id}g5w3#4Q&$d2-Q9#DCTOJxO12B!_97v z7edxAr7&Gq9`%dKOLOwnG2X4{h^g03609d%r5u%#gVqG*(df%?(|aIR5r@g+gIw05CfE2A z@eq==*oEG-S!*COv1uv8x}=4zDNudbnj_&8f{jp4MR9~hNDyX z_vl@jZDe3K?-bM&zPMsTbUCvD>ls#0NwCG07ea4?Wne)ni!1%iZw*yO38}yK5r2$) zc=<%&=nen)__Ubd;zO?Zc`T*_DG`+3bK3y<4I zKbNKUys4{6N!(W1z?&GqfxSTZLD4Ued93+u{Dky}tg8WMmxLNkX*c$y8fR|?w6@SO z$I@G*=*I9p3B4G+KolComEj#Vymn8SK`yrJ>)q2nnRd*|>RY1tLoNZtSj7_eWXeeD zz{LtK0yugxkcW%l>*R_ZAx7o8g9*$=Iq~5<`-wa>FOvdNjRN$Wz8t6dAjfwr;W*8v zh*P<{j=SW+c<0lPL@mkjUoKNm8sGEZ{bbPjRJX%!<;Cu(gJNSgfq0-;Ra*}08Liua zPb$c^MkqtwP4w^ktZ}}lc~BU+nWW=njuQ|(v`3rCs(NEItJx~8Zx9Ar+)?B#c@c3^qw5ue!RdF3)%_pCBwF544OcmwxMT()N^)Mhsy7#? zL-%S9vP)b8_IyB(W7)h+x!F<1UU@yLKY9h<=>ARrq=y<>1*--nRDBO6ijpqIR~w97 zi-`8>v4$|7X8-g=ka510rZXTZG3r)T@yX3o?wc+OokI5D!uglBam>*E(un8VQ8|=h z$g*+ zGs%~059F8K3vWo)TB&F4Tx&|uynI0ZK6_&aM1#p!f|L;<5uR z<=U|D1&(gxny!L?abk@^RVkf_bNwS@gML9tpG-{*BRwI~=Y00tXS8+2@prh^9#yo2 z`RwC!hXhIZ?zht~WVhXtxxM}v5=>+$R~LT7kT!1ZL$p1=A1-fv;q9+?Xev#rn@z@Z zK8M+-(aF)$FTi9zK^ETV_Q3YH-f$X;hi0$1lh3}GF?kYve+3dpH5oylnN&6&f)spMK-OYfq7XsO3m-PtH%s5bT_Ohve$GrBsV6D_EG5c)6-rBJ~*x7 zoSBf!X5M=0GX1Lo+fWPDZkYOl^k=89iZLf%3|Dv9w);PQd^T^{6)p0CO_uwoANV6VO=(=FFVCg=J8A)YTAS#u$F!wdc;^BL@wd z%4R-Tb@CHAn8x0nH41q5F2ac9_P%7>^gzyNParStw2xpzn&wpuuBA)WWDl*!0~KO1 zr-|y;ZTxy`j_7h_;VypM7Q!gPC0mUvY7wh_N-#oVa)+wr{xR*>8tJ$(CO&k7#X)OF zstIKZPny_~@=XM%CA(OdQ}IgxH7iE%?sEm7Ws{IM4I@SFjG8Y#3mubIVtZ_G8O!{Q zX0f&s7fc~k^X+FLB5_#X2vusDyFmgsj~Cc^zBkjKM2!)TBJ{FY*ph3!t2Iw@?3Krm z=3SDD?0By%6nx_RnAJ2gq)qn-&Qsdnrl#8AOO2&7&UW%NFI0=ak8A07t)+nRta;T=iEgwajO zaN5xQnCGvFztkGmn>u56V#rF&QsJB)ip zj@OJTA9E>ox?2(z-}~HzJDW>7_aN;xxHqV0PE2#|Ng!Q;BSA|MP-_YYY?s~M+vov6 zB4Tu~_2K+M`N90{+eB|#D`&}AZjI)gZ{!wciAYnWNgbmnzt10t<2UzFrkz5v_WsHD z$E#z`3(Mh!$8Kq9JtB<-2i$_OFO74AimBQ0bSho3A~4t6m66$`f2v&%+T>!-J8K_A zD$U1yHIDY&xG7r%*PHw2?U}37k6zBY&%`q1ZGS(9+G)o)k2Dn{4$Qi5OoE*|cb=U^ z5c33C#1>Y=z2)7vvfgth`JZ3!e=7OHyfdMk9x9)Fp>C}Bt(3v)mLSUp_oVt-31;pQ zvaILschsW$?H5Uj^WTD8d-1|4{NJjWlep@|+o-TcFO{TTu{r;7<7i5KhvZ_^Y%E3C z=XZQNY436*@KuO*!VO6_D*1Km?NywKwDw8gE{r{YVR=4SUTV8;s8M+|Ae5ryLk z$?4d!HdzN3{To^@hsl+*^3@xa)RQ{X&(@aCy}XjKz-@Q0jedKYJmYJQim;ZC9u`jImK0mSX_HXViqwH^ z@~8Ogq}uPPwzYiT@U?SK=CEIzFm7*{qWMUE)LpNcfh(AM`znpDo65eZR~e6XLe$hp z*1J4X$FOxqhHcf;n>{UD)Q^ZaDjG)0wjb5%Gang#KBi(WKaJD8<9^wh>x)C>r|>eX z8G(#GA@;0~Jf${f{i~y2;dPCdxx&bo}#G z$7Sve`I>FK<89Zj`?-g&TbkX{GnaG1KCg5Ut2f6zo=#0%tALY5+3}{{YUmSouF99i zLv8eNrd@4UVl&jA_~pJ!WLHRG*E|zH_LZH*{%S`txl4?<`0IOd9FnWNyuNa#4HeTk zs#2vFKDLM9aKyS=U|I}kGx3NJ#=G-wsJ{k3#yjoS`-#lDBzLL9^^$Dz99G`=vV&9S zyXpdEsi8eSoJ^nlz#Q*UC=~O0dq}+qPfDfD=h1P&O06s2mlUA{IsM!|PFFD>=Dk^= z+-#GL6^J`ej~^|EU#%=@|KJ)Gedk?*h8rJf)NfR-4jNiTxMNyGzvpQPr8W)lp_7Wm zBCs=7?zN81dzA5<)%)K5gVsJ;FYbtLU#Xmcq;pG21*1w*jD}f?+>1o2VHzYGOmFZE zTxsp&M8g!PD6m{jS$pcEDgCZwCb6GXwowacQ&_uxznOo%NXc?lV^vZkWZ+Ukown@g zNsWOvHmN(&jkqO?0!17$C!F8E?G(wwT45j+qrdy*^n+r;UAoG*seJL7?s_z_z1sCQ zWaqB*-X%D;^Yq>#ZFc^sPne5}__XBAkxoLP^Ja=`8joK)Ty4Y?z)V~UGIJ6rJ@rzG zogM%A=F1J-g0KfkgIxo(5>oeXGG3%u0E;Y(f67&P!ZuVH{?IAF>lMQu?rpvrgY_)y z(|P%X&rd$MeLL6vWZDP=C`2c}Qm$RX`1)80Ggr5RCDDfmtE}-;r_#12&bVHpm@|9w z#r<49>BO~7nYOb=N&7_H2U&OW$nTK)wvVUQ3p%hlpGca$Wag`2dDDeT zsw7HoLD^x)!~u4rJ4uhvxqbHA2n+FgnsJq4WRo@1M~BBJW}uVvPUaxa!DrL;?i0m3 zud|jZJy_2QRiyfpQf5YrKEZoMcs*|bqwBthyF}jd*sI$z@2B)!wV(pE#p3I$l^l3t zcJZFi5_rnh`aCsx!gDMaEWc?v&^$3TicB3`zB-RBR3tUwVgYdva1U)#@_i=;D)?3S3*Ky9~OxrCUTt zyKe=llh(($GiToXAlc0=ea*_ywM8QJab@Q~_wWm`UOUToPt%X}yzcUj&SZJ1=ojzr z`uMzrd^?`7iTvqmu}+<1JY1JApMa=LJm%uF?*l!5Y7v(4>C4lK_|b{UvlLRp*jEKX zJNF+2j`Q9y(s>!%>5@7geAmPF?5zBaa>4|i^B-q)s;OR$zrGNWn6@rAu-ZJ_(UId? z?GVHE3QX{1b2_OyWtY24v8Z@ABvRI4t(|QP6Z&)nf~SFzy2gGr zUD~GBmp#2$_C`mAC*cvhUi)+SS9<*zFPpkNE8pSJ1;s|lp5rcX;v3AUlJ@@ec#vF) zPDK4vq}PkHmnjW9ibu_G*8Ga7@T?3ruC_!q5hy>Mh%{oIN&mtjDSlS$d2V=~eja#e zF{sRJXVarvW1YO*!V^FF31#y>IAN7(g}Wi;G_`&HdQYkNZK_8XhHvb~zjV84C#3CA zHWJ3Q=++w&!^loC@Kl^J?>$CV9^qiY^XIFjmc-?bvwrgHJj3>ellxwub5o6~3YvYZ z=+(%X6rgf#+Huc@$Cksgjs1M59`sqPc16EsD|9^(s5#ai^6>Srk><;LtIdvt4Yc{2 z4XW#ls%5FH6s2}AK+^fgsF_s@KX@MB3}YQM-7Dh$+^%Hp!bM>)u+UAJJFoO~ZB@`7 z_?AeQsmgb8dqSMH+-%s>&tI!nRZR091&ywRsLR=!#Tal1Ta8xDY!vV*?0(K~60r~+ zGIWR_I!h8$?^t996<`!o6SPeg-GepLy+5fwm!Tz@%ZfW=fjvls!|Xiu0;p z2OVLTq}22<^gQj^wD)|}rc|eo%`>IZtmuvHXy}R?iAyW*dW|Bsut`&?6z&M@9+zHE z*+ARtp6)4*g!#NTNu-Nh7tYLf@d|g$)t_LP*NL@d?{bbh#c_5e_Wt}_-_~-doov(7 zR$6Y)J=s3z4P!Dl$}5jQc(hH#Zg!E)6xE2S;k@f8?P}Xu0LOSnvv&6eXTQEFm?^|c=P`7tDQ&`YCZQ;8JT&k5))zKds$C3InYzusFr=lm$^ZJV8 zEPZ+1TI>p-lm<1r`!0Kv4S{m`DVNl(j?M;YOK~bN9f79hJ*a}kp9ofe)^K4_rvrSn z{G8mF?Q>EB_$wm}MTOwprm^7%z6awn|R6My!7>Fi7~G%f~hDM~exVj|<0+ zuTs~Tlu}naWhU`zKYWBQ^+fT*Y^S%d$f^SA+{aZxdWckfZN~8l1?ZEQ=%-IupHWS)%LTR5pjlwfw$n$o|^EVFQA$3)Fk z;Brn|(?Fiqr@^p{(dMK4h4o2JhTgK(W=tan><$XjmE6S-FFi=9lx*SUtVvP4mbji0 zUE%PFd0Tfk!Cv4B@0y!^K0oj!cH-O7{LjaMKH~=;u^SALb016TY_7eGad9J+spIfq z5W6;PQrJ?a$Eg)>6CX2k&yJdz=|0PLVnADX$nwVO2v*q5w={g+3JTg{YAdzJEk-R| zvHEdS6(J=ena}H)>x}VEa9an!bt8pQJfOSyH zwm&>+>)1v0htFt4FZ-UpUjN}v1QjgA%<{_7H4qN8hClUkQUoKJ4RoxD=<`q*O zUzX`nh>LHZ2_AScB_gaJ?8y^L+IBs>wJchOk1odF7HebIXxoI*SI{|O)X-c#Q;|pi z3e$8TrJ_HZ{z3Zj)Z`){v)r%^{gB;DS6sALL|E`7Gb<Dn;B`%(s{>D| zD%_@Anx^6I$Kp=R;OcGVf2~!bfA!1U$47t`oF)mZ!=Jc>&&G5?!}qgV_!?QIen)t z9qi8LgasK6t2cqp9aw6du9{^bDJraa|D>?6=EcFM^qBFkuJOjbfE(p1C(;WD)7kjJ zuZ{grHSC7^CDRB*epxm@DgOv3tdzZqBT*(p|0oA10Yw<=8DII<69EdRLI+%8bq&I0 z>9}H_-U>gq_z3Sfo1j9pi7a4kbFG3#` zg}mk=W4|uq+o(-@@}2UK)hZ*Cx=w|hI)RN^LT1zMCQtAscTEKzZhA|@787%S1NL*Q zDvM)8Jog?EnYuREB$_7-mXw|`I~Qj_)WE;S=02@*fHmwpzGsTz_NAm^(TSb=wD)~n$4H(lJkYSx!8w&?Kv&Ky`=DH5rFQmd)0L8A<+kxbBsbLjXDTOa z4_0?}mOsx<9(WzR8;CgAA2)DdDbw4m+D=M(5|Lk6YIaYhd&(SCf9vaVjWnzI7nu&G zD#v>?9FqneA>>0dCKWVCZyh0o6q~zs7|`1(kUrf7bfL{|HxyrfYNeyOZC&i9G9SBs{x)9Eh;r=RbW(}X z)MMQ8!$F=r=9%ZS2<0(ejWt|VG&QRC4m~MEf0KIMD@?Jb@=_R%u|iy58|-SUFy_;g z+qyX??}^prPxxka;zZ$cqoI|d%TkFLr(EneM< zVKfOK(x%#aBK5fx_Skp%=3VOrD(_IA(D1(Vbz}D@;@Gb)h5I(es@%&+v6Jj+aI29R zaX!s>>#;41zIHI~)Cm>~=TBmt73^*DX{$r+$#k4fChoel{yY!Qy6=n?b?m36v=A&d zjBDiG^vpo!d5JI z?Un@R=B+y;xUA1k;4kZEWuIMPyg74k4?ouh)?`C7FQT(C<=n09>1e?+UG^jFUH)8Q6zOdCPmFOzb@9I=+~rTD>eLbkt*eu4(B)RWo{57$U%zrGxM zneI7VgW!>s3C2^MW~T|F8w2yqvdCUP;<09Hv$g@xm<%fJT72!eWJiZfa8>=Qh1*j4 z`d-)!w^PD-MJ-1k3q`*Q-PFyR^IO$f?9M*MTpwRt&YG)Hb1DDYRB+vr>mJ$0LX6TB z&{%m{cw>!jC?&g0NyaGA2EuY?nMCG$3P&5cGlmA$TGH-xJ{hc3V$X`}hBYR!wMtiCBRCOeGWl{~L^$U1oD_squ zoTkX1IY<+zN8Xf62$>(QdZw?g-kWbZi4oXwzB9#0(Ts!hVXOE#x8_W>Pbuv;6_42m zof#iBxg@6MD0>tfvoS}eaj`e9xL!hbRY}S2JPsvi{ugyG1MbOiKla$3J2L@3t2>ZS zxespBkzDujdSoO31t(&Z%MqrImqt7!0y#If$l$%QnsGNtPa~{TNOw!aw?>tL`(k(2bFJ<;o@b@!UMt5ZR;Tu)dJz=St&Kie( zQI8Owm9wz9acfq*MAvaS{!D?!M=xhx2=QPJ?Q_e8W#Z5uB zRq$%0uVCSID#)i7t?blseQ!o@=B^+;ehqm=5dTGU4_6SsvK?@tEb3Jb^{Q+@z^~xpdiH`V%+(xz>scrW zUY}|a@Shb13B$LfqzL#G9qe7DG$014*yt}Y-^i9q1=Krmh zq7ur_-WC2AEroN+Z!L9!ClfayLx>RYt6H16fb0U=~jNcmMA6q)?wBj{nCMhJoaaP)T}Xg)%m{t1u2XmU{r?jtBFyQzW@ zPlXpys2T=(n3IuOph_eFZr`;)_wiwH`%Mdklpk6M{wx0qqDmWdEzm$Bc$jYyP5F}$ zAv8@6gX^zN(L?C21wuSs3ms}`UrYB#%w7bj7H|!!dQ}DKA$<*kA{hdyD4IaQ!vrGR zhmwbGBsAy>{zhQG0!ALLl^}{BRY8cSq5($mU%^)J53m(MvoiejUt#;J7Kma5O~Ai` zt>7PED~cxMP}u&e#jmhEj0b*mF~a-+SP@ zqUIvP$!OL<_y$dlLmA=MI7a#hgftKcp#VBD2>mPU3jG1Q5H#jToc|Z*MFb8|mVgkC zMf0-ozv5isKX5JtjrtMi|BD)k$D*roSPUV&ER3phe)2LJ_an~#Cp8f0Mf37uwDwyl zBOL@n8VH0`5G|C2{}pJQm%&hjARzyeO3XWL~taA$+KH z5J7~d1_Hf5%qwzO5Fyn-@axaS20=?3!iPl;GM0a+fp{#sH4bC8-@J@;5C~xaEf7Kh z^jH@8SLhY_6ME4S5#s#eUKT;|zA6auShRMD97b{o^NOHQ@{^a*5(nb^e^LX1UNkQs z1{0(j2!j3D%K~VLL*%f?L3$a@8VK~Fsc{&y{pMw)gFr|Ffe;Fydl^xq{naoq6I)=! z^G9b0Udqtn9u{?f z5rf8R2siu$_#9=T;@Wdabpyhng!?M9YOZjC~Ke>#9t0$U26M5) zBIchZp=A}Z!-C~6E=S7>VuuBb5-=wGgZY5u^26uo{QLBNO67phHvl7r?ftw34N{kHlZ`*=f|h6@hztH|AwpLlCU;H#sOPf16eXV(Z(4 zM+^!%GH$fEftEF+l}Xc$64bSone z|5s^$sF+bq0>lQgN`@e9hb|X#82ckEhF&>*4-vG?2!R|HYDn^jASY{nu{>ICg#13+ z_sekV-vps&M+o{`Z2vf1{8vfnyp2%$Z?^xnoh$$^hXDx4?95+Ycc+&&_4qKDE=VmoeGG+Vd3+8q4cA1=xlfBX~e{LQ+ zyBs=!_g6{i+#v8Tq5emm^Z+b4#kJ41awYLSsvauK#xy^l)t&~ELR1)_q5v5L zAO!NYKnUOhFUXEQ0yn@OqJ9J+MvSyjLpdNsFCQ2LK;}-&Va9%|s^ zn>~>>L!1UC=n#Dx)TAzI4ito#`UK9w8C454YX(A0mH~Un#v&(KfJKIgON5b@L5|6T zgpuw*j!C12a6yQXTfl$Fr=z_2?+19kHw!Uaj4;hNcOzB!{|OOD^^kp56fl06^!x0+ z-ggWj`k-*^ASy%P6@>+4M+3kRQae;h4D6%Mf5#Zo#=le~0H%|v^0#E^oBPUo(rs9ZGknuiVBK~U@#P5 z8UY314-5ti0^1_MhAwk=WDCk6k0WHrBkzIBQh+}f?VJE`fuJz*T4A_;zv=+L7q|v-4*op2 zuD~_$`vibz19Kb%{PN~5z#?d*7x;BAUjc~-@QH~ELIEBS5{B?W1%S^z27!Uq$*48Q z5G3gUOTQFANQ44jhcBLnAZZBQu;`T@!m!)|d>~+zvpbM(tR3uKKxXD3bq726qH7S( zpH&eQ6cqq40*oObRRKWqXI+pa4yfsD?hfdJssoUkA?G^KG(#Nt$>rQoK9H<~y*;ov zT*DdWYVG6(Y-yRpOkF{oAize}mi8bGn5(O~Gobc&U6G{l&1}LV!Xm&VEMQ?iz!z|H z{8?2bseV@#A>^A8kyG{Ps=`C%Csn_p6Yj}x=!AP3K!5_Uk3a$3>u`jkybebg@Cz0K z?tx#2Kpuc35fRija32C0aHIqG2%-Mq_aIOVzXvWGIF675{6nA#ejGRke8t+lHw zaNs8ukqPpfkA(pk0R9sM*h4_*FP20l%P;%g~7D0sz{5*na;UNWoCOm9V&p^lo zjtR;jL*$f9PAqUMBT^D@>|5IVs~!klzNaZvRrU>ZBEo{g0MiRV zp?@b9R1e_0nGsy_-OPvr2R)kMx#K4T!kIT=5~%iK?Rr$O-Hx^ z;pFE5r$&8lH3v&;dvt}7z1?r-<3mx4fXE+78eL&jz@X^wH!H#~{mF{os0E;oZ-D^^ zDS}#n@COcmuh$U3hG#$k+~2bx0Ad8d;ei9E2sBV5vLigh0`d?P0{nvm9T9Bb0t8;m z!H>b82@f220HNwT^d;wgY4%ZABP^rXxUfI+}_gF3IYN?LQ_ltZWddh_yzGR z+5+!_ls7j83IhUuDG4Ktv@5MYhWA2+d zyOPF)jLnhY2pq@kYYR&N_4&!wLupBl`g>%g5k7hIewj~`##JW%xC|qS(DD-z!n?R0 z1x_++cQaTG&35)Ka>)#BE-oJIk4-M_)qb$dAGkDlsb~Gwy5#1o3ztrhGabWl!akHM9YfyM5ctxpV9=dK;OR;@-X~M{2xMb{M6i^SJlA|WY*I-&aps^H!m}Bwme18*Sapwj&olEi zHlKYa=!U7IyOBZi-Umj>(Pkx1*u@ujE0PuFmy`DQjB$9Gxp&1`(RDecZX zb?YdGFA)K65X}3|yHCVk!6ym=j#8c=aO4DC>dOK7_|y|Aa^`GP+`;H?8}fMdXlsA> zLwv49yYe*gv!=UVb8@y71?HR^mv!{r$u`#clU$B(RJd3e;_PMII~p&25XC9~p}&J~ zyYz|&mtI-CQC|iJWEM19!FfDkbqH63dkm{e z;6ezid<=~QUb3T)v_CGkA+~g+59P6}oi^D1Fl?bG*|?EWM2-6Q#kpF4Dbs zw?Vpo3RqA3FvF{{PA~X-2V$5dcwJ62#S37?J<8qcm>j;A5QNj&NbWiXlZ=S?NEhGi z*C9>v2~5^GYDexXMl;I#d{y<2#(?jYCrcy$;7!4%` z&D0yL>qmI)8QU(jS+TT1iCPoxRAKPn#rec~M2WUduddaBn6FW?WQuhTM#=p>k!iTDX*nA-~E^b z-?tHNw|&A{DNSetWLhtF3ccO4A$(p=8J|8Fs#j#}J>c~$C8SfB)0DZpRsW=P(sdzR zyN4G;z_`z%&Vbbm+7yo_h-FkQ1bs?04c5bBDGR_?;7fKH=9p@1tMV~kPD-#0z<WaL-NRnODd|%gQ{)YkdR9gJ1>cUFdIYR)B^S^e@XTL0xw&U{)wXW^AZ~#2fl!Y` zvt=KvRLE$vb-A3Vcjd{rg!T?=4twg6V*;b%-jjO5Q`&2nzqT}`1W4dmjq#{AzHPvq zyW2A(?34&oDw8J9*{f=N$Pjs|WLj_sIZLBS!csJ?pBo9NC zdVy&Sdnyv+r;Zr;epsSO*$G?zu2{f5_GBZ*&o0UW|7k|1D7}xLX>CnoJTN-481dkM zRW-Yq@Ida4eO>qg&&UBkwu_`K2H_huVx0&^O}CdHU*7%HA3c)+^FO+My+UkQ?wJ6z ze?V5w=f%Cm=wwPIwU4_q)lST1%g*8}!uhPK)SAYzplhyHYR{P4t-|r>(u+;kx7>0S zBFsvXHF_EQ^fuZOVqmP|tv10+Tyg=x?)3v~y7z%ZEP?Eg4E-Nf>ECo!idcC>_*PTk zrk0#i#F!S%)mLoQ7Ppe`8<{RJxuv%lgZXvdoaO3#JiwN9nT3h&nbrH3z*lZxuP}So zb%o(kifLCzvqk=6;fppM9STh>SI5=9vIXBy-|uS_xzH9~HP#m;oonyP4!PJW7F4v+ zcj_4%1(#6h6IB8nhIMDQEO%`y3+!}FGM#XIpDWMq2W1Ph-tSskFBjC!cIaL;yzX+b zxpRSWccpjb9vv~+>;AS;$3^+C=`VtAx7Yiz@B<=JM*^t0UUL@5Wl}7>{pvjblIlj5 zr&eR|a~Wn4Va~bvg?UA*orHxrQ`YHwNv#X>ug~{c3d%2Sh7prF-!wIR(#!U zC72j5Xq0v~wl}wTERII7Y$>YlB_5{{*$NSM!)Pcow&FY99AQ77sO2mTQ&odc7W~@k zH5t5+0xz0KCo-MRx?zP){74u~09dGy> z;yG5Q=fo$2N#?A`p*Dag=vwb=EBKyf%{uGn8e;wG8Jn$^+-=OhR{2*8#d}VfLbPA` zoid`mj%d9S?JVw`J6nRu$JXegUL!T1^)9CTS)tkH1vXin#}CAB&a1prb~BYVP1Je9 zNYUR~U~4!`E;M2p;3`z&%y83Ns_3bk>$-8EV%TbaG^?q-eQ0i%OZ&&Fu`bF?;lQ@A z7~#P7unP}GY%gH$wd4_}#P*IXXoe*X0B7h+-%1ai%x+cPj_WSeIKRv#;;J=VpfW;@ zGtzaX{v^22QUSm7>8&(7*s;#L{rdugCv9wPJAKQU+84GlqWy{3v0Ccup~5|)ZSOo( z&fqAi9EcqgUpqDdx-5T|W}EqzmnwNXI2i|X(i=vx`{q^PJ^r zn$`Y@g5m6&vXscjn({m5@XK<#>h;2=#>`+S?pF@?3Q6 zAyw)WZv|e2t|~}f?e!xpK4wEE!&PdE%iQ?RgYdM+0}o|#v6N2svS|Lil!{fGu zo|ixk52obs-nO+IDQMKL@-rAZC!Y}`D-fkG&Bt*qYBGkIKK((z1NP-|?Jb!l3aH8H zVwTXgmN!b$7?#HP_hz-nBKU0UCqL5HH0g+{T-1_Ti1t+W+lV}$CmYy{UlKQ={H8B( z*u$OIQ;VBQ5ub*j(odwBq3M!V2&F`+l)K)_^iW4jW=n^$BP%8yt?%`6`ut*&^Tzy! zjkl_NZ#(WDr<$V_NJ*Akh!%Ect4NVl+gCBt`AqAY{;-B-IdnxCpvCK%c*wkAz^?nJ9Ti*-3v{) z&0#YaW?-su=B3$#pVD2!TvNVk8M#kRng(@+DVP|v;Ivsak&oRyGbLr)K)q5&=z)K` z@z%x^-dZ#UezaP&+=+Htt@ABW&)SFt0`=vzBaLDvBP-i)&h^X{>f@Z~J1!Xbx|gTK zzdQX+AJqo+3xE6c(YNaxZZ9G}_ZQxO;IB)<(4uZSFg(0MF8tt>amSF`incrNXr24B z>Xl==k(&fhr)aeN{Ts-q%Nnp6sHe@>h}KMiAE`C`Vm+_RlAO%XG*s)NZF!3Hjj#89 zB5h}lQ>MsH%F@X$oYRh0d#dcc#Pt}50w#B2T)Mi!xt|c^kLNh8Jr~K)PC0YjC_S;c zO@C%?bA_DxJcYk#xHUc@nKvIuLPKT$?mYF&t#gyiuF+-I5g!Ga?z~ZgDpN8W#|QEE zf`kd^bmgw~GnrAA_MQ+An`o4t;3A#5sUOtgBvBDr0%Lp2(b#?|EBRz={;Sr9k?%Cj z$Ic$jh#Y8x={L+cJqI%^e*JnP{^E?C7v-++)UhY*VnH+Nf-}dfRQLTp1Y3C#oT2TO zC&V5L-E}%${>G-^ovylo5-VAo!oBe!*^}NE?df<<*2BC4Bbrua1Hc4elI8{c+s8;~ z=M|azwz(U9b-gP@sf=cBuC$tZ^j0O_DK26qRLHHDS8KJ^_opf!45Ix)`-WbJHhxAS zW7acTwT6qygIKdunku!?MK^5EjOvBs@@Z-N+_PR-2D z@O6Oo!{0fI7&e@7^wSMix0p8f3UvrlQ#?*q!7W340!&R@9whvWTkL3cIH@V41VGU-k`vL20_!IX_+U~stDdwm5m!Pr_|nymm%^v z1B6>6l(wLV9x`MM-7yXvU-HEw$s|>Wy4PDX`Vz!D5!pjO*V!@3F-o>TJjg7+dV4@W zAD`I5ytNg|5{Xf}cA7lO*sJG53H>A+esIe*CB?ce5*{Ui8o3kEVIR_tH*b-MYlVF{ z=4as*c)T~vfy~F=%U6&HQX?ZS+al5?ow!CU&?QRvwnc>YF3~K58QXy9T}CrHBepl8 z>ydU|VP12zMwu8DEpNExQ`dw7?mLkYgtBofraNJC&{{Cc@C48qr4uQ%=y0DcUZXmp zVdCYl5=(Cc6IBW0cOrO6yg#bwzs8}M*1tv0rfKbU=PHp%jWq407Mk38yjid!EX#@Z zxrKhXr?Bf1EM$7^Ehaw%(c>aA9@&{w9RYjm||uX+VIi4JZN%{nEn z(Q!_>&O+7XtAVZbiLKa4WuY68qqCugYRw**G?s~Lf@*>{oTxeJs=waKU*n;NG;dK3 zbZyzH2}v~*sX?V=D7pot>cuR)_~=8=_l7FYnwA*9Sc6#1*v^`E3d{~$2}rdtCYySN zt~)+iBkLBKt*{c7n){L$M(TuVLB}#9+X?JmD*|>Q3$!dV^yw8KC%rtwA?|q%h?1yrS{LtE2zA@XXkjW|PS%a_CwE`2(A3C?}3m_BCr^^RD zXlh#v!>)bAg&Ky8hF=oS zQDW9kGRQNu>?7CL2@eK_kGQjTwoO-ngMQCj^gL*pTJ*M{?}a8BIL92S{PFg!s{Few z#)92il9n27%$~EY$7;DHY0{#%#$|ejxf#dwOvaGaN~^G>*-EQB@UM|X(srd${p;{h zVCyl+MBS{#S8QPhhct$i76uP;1K=NlUZ}`N!BX17S^lA`RpGTWnzL?_zPW4SsY0`h zMO_}mJ*Jgw^oDgLvqDutt)V(=(R3dgW?S;N7*fH8&GxPgg(jq_f`-i<9xsPNbUv08 z(|E4Y%u-d|t)(xV5`x}h>Y**1B9^qN^110T;c;|#&1a2ZqKUAj!-J5Yo`2S^%B(8% zT2aT4Z*9_A<&fQq4C!ZD&yUQ8!v71EKx)7C;2(I!*o^~bd=Pt$-FP3b8oTiUUN?5* zkQsl7H;ljGBkVK&hL5q|*o9BRr+@J;KK-!i(?2(T`sb!k|J?NHpPN4YbJM4PZu<1kO`ra` z>C=1vP{PH+=fe|BHS4uK)P- z|Iu~&QFEPs)Lf?@HP`7!&2{=wbDe(lXV>Zf@#+6JuG0_v$EW{4uulJvPydDM^vzS- zYaHw$Y+?`b2PD};(Ah)iU=M*I%pU5J97W+Md#KCfHPcRCPSG}_n?2Myyx1(yyS=D= zC)iZ<8pusx8?l;g z#9FoyPq2-!KxG^8F53u$Z3JTvvimy6XyGVZ*C`jfYP@V62*PX~cC&Rb*g7!iY#lbS zb@+UsL@>J9{auQkH-Ep0mBj7`fs5S_mEDhac0V?;`>~td4-uEL`>~eY4};wghPCWI zY-0C;visP*ovNnRSlJ)2oc#fm{SGcdpc&olH(jc!o8NZ1;)=pGD!T&{*&U#WuyN>S z<3MpKyA{jXt)NCXtMAMkW~#8h%jzsrYgD!hI$MQywh9a#Y!!%k9cHUc_*GqTK2HAH zPM6!nTiRJz(x2&46N)C*c-iG3Y!15wA!uwFy9BAw*erGlQlPP!Y&IMwpW!Z-TGU>n zvT6`k&Ehc>8mnPG6hUKkEPx~vY+{4u;zZ*N%_@c+y^-O{n8f#}#r(bhD#;hn{R#TFxU5cYrGDlXI5P>4`JJ61wcpqUy(38z!(eP=winE`LJNr8`)*DN1fvLJ~)4?NsbV zk1>CL*BIT*$GhY)mdsL3#iX#*&Uh_Sqp?)ekTnqc0^P%vMEBCycz5$(cFgp}fpphE z`nUen=%#!62L*kFr#&^v^nDPVOW(m-`aUS#L7zq;H2NluaxUn8x((IP=sp_7Y-n^F zjiMMD-QF2|PK(lLSMWJLFz@bk__(n2>CT*jfsB?ukntxCWIVp2nsoXUeGj|ljXpy8lf)X`GLZg-?&Ky;AEjGS0gZNbIynoGPKhU* zIxRf;b0_+*CKhNr>7VIF1fbD}J2L`Wls?#%k*2wJ&{7b(jxOj-(L6O)dM{}pN1)LT z?Bgjs^uEq=PGn8zPF>qZ*U&ZLgz|8DI4``O6{Z*F6|QG`x}K+(>+AIzmHrAM*3wlV zbQN8Na_ICX6w;dzrZ-^?y{S_ukJR+h1>kZ~w9^IXFmugx0b0!*=mMz6YY&^bYI;2; z(Cb05hAzVzx*Th0JJ!&vAz%$%f;Dt0*3c`lhF)csEWjGN5NqgSFtpNTXr;^1O54$D zVzkmFXr)WhO0Pt#iNRZLr3=w&Vl>lbXr{~2Oxw|HVl>kwXr@ciOs_<(5ED&|FkOZ)U5+qqN7%#&((T5=|U8m7&=`B zoi2w?+o78nI$Z*tE`?67gl=N!bOCg_5W0z>(q&NTa;UT&s)?b}B~a;7sPsyxCI;^t zl`e#8V)W2u=%LHeL)+0~V)W1@=%Gu|L$5@SiP1wBpocC*4_&;O?Wy@IU4}h$Irh+Y z>@iXH&?VSImtqgS5_?RPJ#+!~(1qADAUanBH-v7w4Bd1&x@kMQP26s}1l@Egy6KhZ zHgUOWb<>6DHgO|#86tE!BD5V56C*;GAVQZSLa#)`#E8%Zh|q3;&89L~4bkKHm zm>3;&2|DOfbkHl&VPbHj?Vt6KV-rb}^+nJz)OnJz|#nJ$EGrVF6Sq*E(*)%a*BCeTuxOG|MnEyY?|icPc>Pta0G zW^Okv#k;f=1}zN_5nR#)X|1$LdO{L6Nj(yESteN4S~gjpu!x&1Jr=6hBvFUyM@vDl z+KiXeQhZKJ`6NP1QEld`X$dCK5>Q%7OKAx$3A=ms&$G$yZ1O}l*_2IIXOkL*o=ODM z)9EOu1R7}w+cQRL`!Ysqs{(I#t6=~23|Q=6gf=5Ghqkk-V};R%NGb zm#wlaTVz3|GGuSm=n3cWwL!@CZ64}nUG&KMk;b5^u{Q` z)P^WAc+vGq{29&71lQk^v<-wLUVlqtBNBXzsuQX`Bi)r_>V6_>9*A>(3<)P@QzCcP zPics3NNJ1|@r;quSRc8XKf$?;x~OAx-8SmvNn^t{p_RHuPv+%9Yh7bwedM4C2Aw)b z*KI>4PZ}Gx$)liiFzE6q4i+Wp{csu7#o>ZHX>8bLbs)op%dk33IDv4u&HMDxb(?kF zgh>bXnK1j(aRSUX(twQ7b(=FXOsJ4f8aNbb2&2Prk%V&q2{9yK;>^JWdgc(dvn8*_ePm@_JebPZd$>}mc`Y;$PzoaWHz z=E$l=a}y%%Gj)CQvV{Xr%VspsoHduHEps9ZLv!jP%R+Vf=3!6&MD^3WdRVA#GoBtj zwPEwq;W>4k!@|Qxhg#|yyQ-@iYEEkFrsHijRQ&|8Do(6{w^d#96V)}mx|+9D!`rIi zZB>V>&9+9*<90u>VY7@;jkPoS(=KYWdTJY*lY)(-d}`}RZqVCK2_`H{+Ae@R2wP5L z#2y+IafC*hRe3deHM~lIS>@zUJ`YqSEITEbw4FRSP^E@OMckoL7*s7dP<^CyQhg*i zWqJcQl}Nbdr~9mp2eUc>qvzF)o>$k_*0#Vr7ql%n5fW`b85aChSh#Ru8;=&|v;p;z z>?!q;vPsh$HcQgzNVvJK5%rP$!7|3ovdxMzI%;$`*EQyho>xZ}@aA|fhvd}GXb4+j zfkZnj9TMeRg#}%Kl%h)?ql>YeF6R3h-hqJ}oySFnr#ca5PXL52HbJ~chuYXlG8C3dl#kLJlZ8OR9VpFO8(7{FZ3`BfNc}|muZ~AQh6M|A%;#+Q`-5-WY%+i1Mg$-;fxk*AFa}G1IR2KX zEXk6^B1_By$tppDBuSENl?EP#5-gHMk_1U&keH3viIN~$tR@LF45s{5NE7R%*H3>8 z<~w`;hQK%>yItW8@wOE%n`Fwy*^@XEgR;r8ELmikNsz2Ef5u3bWZB;T$}J$6(Elo% zbX+#+|AcG~hm})2E}IO2OE@UoKwFBUD6(u-1PQWD;ZIH}vZ6SYL5@sO1z8p#33jds z(IUu_P41V2E9b{%W%*}>_;<-Ba6&GJjZ@@2*aT680+CDDA8=eYo6Tlb>^4D$;;_LA zo7HMlxLV90%3M@YQ3S|>oh!m3i;7~Cr9qhnAx%B~j1c0#OEykOb=i4CoCo`lvT^nl z&cuLC+3a?^&1$y`3ak!0Y~WWmmu-+E#j02p(P|Z-2u`cjYPBe$RdJXk`U(7>kj?FO zaEkr1SuC)^!X^Ak*&P2Qn|qLB%fHAbDVG11Y?gnQY@AS>+sS3)?Kwq@1vXPQTYot2 z0~}7L(_wcxL>ugG2Y(`w2dcW#_LyWM_VHkZrgaynF}Xothi-|%-i9ZpBQbAXa$ci0_v z$>9)T7vs3tGQV=!`{m$z`>|P0_P>-(`gh632_^VFoFeDJZINX-!JV7gEe^-=w%l&F zTXn^`B?nybZm4jpF1PAe2Pnx7m&4_dT`ma@DV{4ramX%5oWn8rHH1M((=-2!5GVN4 zUldFymK5-Eio89qMNyzak!7==TrSsf{}$)1lNgUU#K(E!i;J_uV@-~Wi;Hu3Y;o>Hk9*J-2O)VEdVWTT6a48f3RX@is3mgQI1dRwA=^M( zet&}B=MDH354kAMiT^0XzKm^gtjGQ2ow; zKj`-l+TtLjX#+na#0hi7FA8=}C_g8}dxzUh(B^U>2`+~NoV`FGaNKum!C+8JPSfoH zB&X}p5Y$q1Ek_%mfWIF=(tmNe6WKW_iIWZJSH09s~er%SLJ!vvOF%0^i zUm6^oP*Fh!*B0N)rPWTg0q*LoQ#2Q^dOX$mKM}9(;UgrhNdBiw4k0AEC>!z zawluaTC!V9bt2iBo2qGAT(UbgDKj}~&=v`YfGf_a%pLuQ(unO2-OK*^IDObw=bfd$o03G?7D3NB7)czG_jJg&=ZXIvbHAWl`G_XqxcBQp%m&d$yZ zQAlU zGb^{5GEX9Zkt;Di9@+h&|DFnf(z3F$qWs}y@!80)E<+K@it@{fPAwXsl$f2Lou8eU zpC6Cx_}cvZ{QQ*c#QdRE*%=uF5QC81JhK03GCwh#FjxGd5YGusnJ|*~4!4;qZ*npU zk?i+_vzMQrf82LhR#jD%7uQtz^HF?i70OXnUQ$&)p?rW+a(;1saei`fu^;*V(~FCX zi}n2E;(}56d8Qly1|hj;=3j9dG>Cr=C(ISUDEK*{8E1_K0>}k0%BN{4gBA#YvsYYP zeB5_ej~X>ii!Y=1CuK%Dk{>7wThzC zi-(zV02qV>z{&C^e=?jfSNx(7;DlzMThFys0AOrFFo@v@CMSclS5Z-M{97}l$BrFa zJ7WCU8k#fXaFh!M%CNNyZ4V#J8dir|Q{i4~=Twm1k0 zfRp_%JLrVD;unQvlMppOhR64c3=&3dp(JLJqO>|32T_PISS2AwkSJTk7-c(21{4w@ z2}sCMk5=_njaQFUjq9sIbyZ)LdaSCiYFJ^=9dxG$-9i2luwy#wJ{A`719YLAe`T(f zZDw=C?GRzZh2fGF;tJbQ@u*F(h!)!%agJ?~xX5OK$cV*el_iltV74Q&%pmKkwZK|! zW!5NJ8n!ZBGv5nmBuek>vahS<{519UHT9voO6_&~D~a1vS;@~~h2*mNajY~L&x*}> zT`4KbKf)unnYh3GHuiac%r!9GcvD<2?!^$~qk_=zOp>&p=k`b&Zygk&*J_y*7lLIL!j>N=-P)IK*D6FV(IEo5Fi7dAw zIlzPrJ%up%z$_I7Aw4BIkmyiKhqlC#(o-!qVnbkf#@(u~z(;*ia$VSA&Ar>DYU&!b zLlx90Ne#P-?si!F;udk_B?Q7~CuYQ2)>T$i*Tz*d_SAoCM zx1-E5(?QyaPthDa!C^mHlCl0ekxc~o(hFjaAu@H^p6jl&AjM4Hm2 zj7*Cqq-SQ7mXwue@VL0h7w@%5ab@Lxi$(JJNO@UlNk(XhCEn|27E8R>S6oz9F0S8j zRa@h8D`TInyzs#X>d$!XuaCce!M!h~1!5T$dchri8D~tLG`jYT@X(g##j{5(8QZmg z#Dx>j_}${WZ+UM@9OU*R*pTp zt)z~JLtA-VlCKAe^rD|MRc`>E&UXR~L=REn_j#<;L>%Qsy5v8Hn zq(kJ(k4TWvp2uP@$IklfkFf{uK96%!8=FMKCMTzb6EbP0^?Z81^)C7Veb6Z>vI@RQ zS2<6B($CWt`77~mJLkr8fjL5Y`wpJWOx#FTT0&W|&lB&JC>uScZg}!}H$8FJ1EcC6 zicRW#{M&aIen$R83f_pNe*5z0u_Lh`I45UfuP{w`6*i0wC(2Br;>;UR?^+U;|F;y)=t_9$knms zd&yNqB3H$(jeQrpmbYC)R?vC00}MssU?B+;O3DGIGMyDNfz^pBbQFRiQCN2oZ|-2z zIQ4@j6!bO?D~xjo-8D3etRRW8L!8=e0C|Wcf*~y&Pb*-h87^oh1p$e|`HN08mSKg( z?x6cN{_zYG+vqb6(Nn~|V5kVEfRNKD^HR#cE5%?XpU{BFK0%^zo5{zKalPZ!qvLu} zT~%GRLd?&(O8v{QLWvX;MlReNyERe#^m{Mo={|sEh}}>yEv#Hfm(o>~Q6Wl(cAYB{ zF-p&QR8~X+yMi600ThHbg&iUUP0)piAP9-p?c@Q{fqvGj#&JJwHhQF~w~~+QV9;%m zO3Tv9i&;kO(C=QpgwVo+LTJrsBklPcI0wamU>CcQLaM{(K9aCCur28Y;n{>e340Rv z1mxPJ+T_}lX^D3WcO+~O)+fuBfQ~Fnd0?zin^2or8<5iy(h}1G%$Ffd6K+hnC+VK# zdr~$eZ%C0nNKsStlwm20Qm#u`lk$3soWg$=^m*e;QmATorSQ(9T>D`#@Lvu+z7j;~ zypUHl=CkY+EiQ+wFsE3vPS6P0~FADIAxfacn#E~bg8d!Oo8_7Se_`BhcpxV`t~ z%s*IN)tA#Wzsl{YB<|vzCjOHmQjG3ScO~bc(`6=Mr&=kTsOpyp8R)+k8}+b1|k*st=86Ro3tl1QR|WRO-LhYfgImH z|6;NaiP?jF(c9k{<9d%Y^|~tyng%+ANBnYrFZaUk$^n&ftqv>X>O)gpx{uE$ruL+A z-*GjLq{T)2n{JZN7w<)ANZL4}Ixd@Z*5b=1m(^>RUEXlo*z;_$zNCwvzGC-P=kHy1 zSL}mVo{fD^t`E+=qv>=)YqVYl=;h(+)T=|YxctmACQ1CB=>&o~r9W!NnaNwnG= z66|(|BTD`p4lu#Xn82uAa4-iItdPQvZpR)6bL=2l{6ooP%U1rYoZXHnY1ksJwh}Av z2#+eQm7b886mV73<&@Gy=XP=i8EcN}gY(s+P2-L3sWf%yspRfO zxJvzt%jFt0-8}mU`#Ae9`#W|K{YKk_rktQVSW1fB#ql9GaTB_%??HOyr(3ti4#zf; z%%kl7W9NJm+fP%;*D)Ii&NdDSrQ&*|5H&nhcIx(W&uGtSiNAIH!FiYGO{d~<$9aP8 zkmq`j2!S}PcDuvlc1LMP*ynV3olb|x>gDrrn6Qat4WTES*Q2I&B{}R-Iz8;rtOZtT z<%Vco@8!m4^ZH73Z=pBrW!@;+81}l|np&XJ0<~J5pfZ(%s=Tc@m&+-*)E;Ty9zO~D zi9et@qa+yiI2MzgdqBcii%oojNZq@QoI2npxp5vGuO2ls++C`sw@{BZfV@ii;5Ml`NqlX=jrJ`=W6TORi|SqWRz&dZ_QS+;e8` zAi})Wu@?=HD^kwAboH7QD=rMuA7bBqR}eeA|B+uk^(H9JG7bsZVmJH<;j!>37uXic zE9AQp9}pjq|K!{dx6QfL{a9SLdv}~8UMzFhsY`s1&{xzwUTFt*gF+xuf=5l#lV}oG zVXDVhlC<9C(1Ha)8srKKuCG=|SlOc(3R9wFLf0lj2v^n+O(+nkz+r^-@gmuW#i{!y z*oi%mp0Ll8n09<<4-D*nCwrvnXw&@OocYzgIrF(eVqh#cp^1nY=FlxGF7lW|7H$>A zMLuFK7yHMx;EEl#POWWRs?NJ7@59m$qHtc3`Mq(EoNB@>=h^%tL+!y0y>ACC(f16 zw|>Z6r&|bL5HqWy2$DjG4#^8h7DW(r(c%?Fi);-CQbt(z`{bfad0#78hs%phw{?hLkw=}9rsmy-i88R-`C2l{qlIndud{22NAkGxGn|JJTu`gV`IGfCMUY`Ada8wYK zV7y|<$_=LbJX-vOcv=|0DW1m1dqYFgJ#n(`O(&p9nXQ&~3$@f|Wp1()J6{$lwi0`k z-W(1V=7;kq<~QfJ=C|js$?wRQ_58won(rN=Lys$rqj6EXsw;2Ul)=SdU)4CZY5vii z{>j+fxAW7ShRr2WywTp7QW?*eL;;?(Z;s=upvJ1cs=*O`TvsmsP?=S)XygMtE?AUG z`O1b*$rg)b5rf2CTvT4h2X|&hh`ECU7a5^D>FIyoxMKRH=iacU>E1=B$KH=QNY+yi zXPC4j#JvdM_3-!`l$*Ra`PSk$mS>e$*{im%nUbz#*|Qu&y+eHq z#f8cZqAbNpet(?bKa^&(bWzF@e=FXlJkS1W6RXJtLdj&6{}YA7pyo={ols(?R!0e< zWO~@2kSEB_u+vlGtUuR9Cb)f zPMfH?xmm_}(p{>Yn7N5N#(taRQibE%gG3J&25Hdk(V?q_Dpk1^>OX0P$4!t+IiGMd z^83u~D1Ye966!aik(Ap_W=80Cn(}D#)zRj>^7F=BJM)iydr8(iSC)@Gx2o!*DI*^d zw|hQ-(Fxz4P;iOtCrV^?VAZ%IRp#>H zpNExbba$pyiczDzGhik^4l5?ARaNHRGCnwP-XT;U`-t}R>8x1X{%vf>H?jHOfZ#4b zxK7*-1($`ZWl^w*>5?uN%1_Ae%0hv>My9fiei0PNQnh7*g<2*vP(lN`tqVv%f)&i9p2+}DbzT`ZM;^70%Q$Hb&#PQJ<$46VXFVDq5h@NHOrx5v zGaAr`6b_+75;HrjWbm#TA9cZHYfl<=TzK_JFJIghRP~R(gE`fFqf*s3KZkD^2L>Q1 z4Z1BtXh<3@E%B6>73;#l7>rjv{FYZKtES7EVrw7yAhzM5?rpccLfoV{H}F53wIkE7=ZW&K23Fecm5VR|L_@ zsA5eQJewHdkBy2VB~+4S8)Q+|ExXMn$*S;>uw$a5*}+;J?GDOKwZqZv5FFIj-`U-K zFKwFZ!jlK!WxT`9n*-*QS*4nNZrUp|?UnUU13dXBdmS{1*uK7<;`Y8L zXwCOy=+%9EJ;whx&K7Yy7%nx(L03^piO3yBDBVoM)n0!I#IQI~Y!`b(Q4^cRR`IYX zw2Ooi${{TL90 zj6-afxE&r$52wwOA8^pA%6ZB>$2@hOdx?6JDp|+cu6E@~3V*-CqZ7(i>uL3pLND>! zKG&?oni$tNpu%yz=P>l<{R@Vc_!dWe1~ysvz0bu3mcw_Zzc z7OqupwyvR4gKZAIKsaBSYh6UI5TrU}J;*1hU7yruqc3NQ?{n<_Z#_pdowL~nE!qRe?$d4^&ggs`{ZFU-^ z6=4qn!e=*?AUtJi35qnn*dvZE2OqcUk@>wjIcn8sYE>Xn?VH~>zbcTR_T}V!rdFv3 z=kpz_Ify;}%9Gc-18dv3DGl2o8$FwCI$y{(nZX<-ImnsM&4v*3=4+6+ZzVg3l}Kb~ ztT*;f>_F`A;`U<+?8EQJ2-p0ujGrL_P1UP+RfOsT{afl@`1nZP9$xWqz{Ww&{Ub5%GoY@29nwy{=QyN!0( zx^1+7{*sjeqC5>dr%WkPica!z))RbOP7e2SgKjP-r{6o6cl_b0tXz@LgV)%q)@hejDk2RN+=*ZVPWIk5J!b}*$ zu9w%y9df69kXio1cFS+dOlJjh2|GoeApe@Jl{?rbIl`WhZT%as;?fctE;ct_Jz+;d zQ3=&~Bza4vsBu?V3Fep3slojIZQ7Vry@XCp)k|b5NePtsrCgdRokEMH@iZ*WpwlG9 zOOvE=bhPw4X`}Qa-A_NHhotYQEt6(Rr%RVhH%bpt3-^$h{rJMkpeZ!Mv;^)$i2FB0 zrwt@7_D0`kar?16w)gunZ0E5$zGCF-sBgvX;1ByO4yRkhZQgAO>{OAQFTO5Pk2~Gr zbRtRRD-joD-@mL8eOgLkN^?qUN_&c!qPkA>ZpkMv6OXSF2bLs1t`v*id>K5j*$9Oa zX>rluUgHk(7I98qwqfR7<1cvr$@?}fsy%0HX@|Jo7kp>ais(FdeBT?wQ?cg!nKcvV zI;^1Pyt`A}j(7y|ZTOl>*J-Y^qzh~p*f%H-I6FdHo%!P9OE40l4MnJ zd!1gFS1ogvxlVO0bY7wEwc0LME>B#Pa-(u%;teSl#phM*F6R{ILg#hP+nx72MW^nt zdmRqD%O3CW`~FvB-vS<0b*{a>wb#DyJ+tS2%VjRfOp*Z-$PO?NnT=q$L?FmT20Ie1 z1fx|Lss-CB@y121cm)J3*jk~*zhc5ALH$i_k7)b%k>jmmwbC9G)aF2YQp8I3oM-Jl z0c`)C=a9^-S(7lCz1FwB^?u*`eru{dnitx=JH6QJMbQ`?F4f`iA;Cez;}lXg6{~MY zQaic5Tt9b&Biy>(WQ9ULNoconS3d}vz)>OFlSl+x>4!;ML8^M z=PKmsfR3@ollS`ro)|Lqxtvm+|WE{ zdey!Y?4dcozUwEyD;vLdkNGFa?#ac5wllM<7F{~?Dut!H(9Gf|(Ix6xQd)=O%s;|3!in;)TSW@jDZLjQ=sgrKLKxDqfYysCuGRYE`Gk zrzCDrmnLpgzZ>76-WPvH+NJJ}dqhc8xj2^yNg>rA=i>=UB@kE`G(u5*c@UNdcLZ_p z5MGKR#ePExXDTBQ8R=!vbfC*|MmVa|gk~GG!$YtW_Ch}h@Sns8XEXw2WStm1RSZDD z@C5WgE1yb+M^&bFYI`-TwZbWvJ%OQ-Z5=qkug4JMdub>G?-pVL&8FOFrPkd zw=2`f-GPj~WG%23FCOcOlut_Z7LSzL|LFE);=RRV-JVRMxA=OuoA! zbJFKd8V)6+M%9cIq&ExXUHCUleE23v6V#@7Q=(Oxp-zdnB%YCe8kej*vK_RY&wi$? zuO@x$1$fL;V%SeC%cAk?Oo)betlRkTC70`c|JlB7&8eS)7XrNbp6B-4@0?LTVm$19 zJe%bNYU#o?0HpMe~b$!Q8FWrB~2R8yx z`x=1|>9aCiD~&|G*gzWCHgSd6B|aqb9I&{WFqlVz7zl*P8oJNGNJHZIC^R5?1PSfB z7)KjkfxGZSnBb5w^lWKX<}P|38{>0UbTrgFm~Xyp>D1#TpG1K$7iycd&8{uJZT?-_LI3Z3 zA9H6oSydE3n6LJTiX2tnpkTrR`H{9rdxTjL>5AZJq#?31(jOraz)=(pHH7*@Oo%#y z@V^B41C}$ez_BOh@&>Fa8{6cHxikk(#A$fl^eEKGo{itXqbm$G4R^lx^EZ#);Vowm zo%`ga@r!R-w&~|g`kZN=eScH#nr#d2I72zmB0}tZ_7LL0(SsNeXoTyg5kr?TKRiM2 z7v6<;@lkS=Whua0&2ENG_zALw-9c3yGFLB95ZNxQ0zQQNTrEm+Gte~dO8SXt7)Jql z0T9QW&n7ax_*z5ekiZgxF<|x(zJ{IzLrq&Iu!eMzkH|4XNH55Sw1(+oK4OkBgl^UQ z-5Hqy<`BpT(>!7W0EGC9@`!`^bbc_OPX`Ciqp5+fW2p;Bp}$A7F~WXP)#o#S@)kg_ zNI#T@G|I<-A}YZ0&>&2PZ^JT}F!W#Sp|5^PF8O;4wO1Y?{(g$ep=h|%Oqz?zjWR(T z$VPaA&h-|%dcqSd_&VHnhnmFR;t4~fdDKw2TvvvBi1t|O4|D!;r-&bgRV=MX`EZz0pa>a{;uj-5xd z1u)Tg%0(j5T(Vdqd)R0AJ>t{y@8NBpyI0-&HPsJF?lyU&4^*}@ima-bFh%V zm${FM{>(UXzOIYM& zo)I{iFanDJi!2fahKXX)i?PUZvK&RMmzF=VEQ7HiiZWt*;l+cT;qmEQE6x7*2w{~u z1TWH(;{6_iJITRUSvLiOj<6<=SSv@FLq(*07@oze-# z33mJIgQ829#)_`89~R2ka({Sc zWO~_*>fdW0xx}%dme7^Sj?l8?+THR7rLsf8l?oIUPz;A(SHg32(AyE92dQgrtc@)Rz()a?6Ic>h9$*5Y z#?HyZxt>`AgN1=S&EBQ$-f?S(OQ+K`8Iw+1XvxC7Y1<;Y>&u~#8yI%rRmJ{;k#c>0 z)pb=kpUzQM$K}p24$a=q3wdfDsj*b+=JzpPe;`J2jg{A-*k;_=aW-QKH1@C*Z6aF6d*t6PZ(H6vAFdwzS=G2jQ!l@)QIqkXMs0m8 zx8b1K`@p@ImyHVvEiK*a7yqEOtU6jY_p*uRo9;2eRP)4zW0K>lmLiPS6;G1KteC3| zJ=urc#k0m}IWsOYErQ((xrNd~|H5Fd>ZS#}~R5EH^HDxgBE#Z1yk53f;R1?r+pusmyzccFRKz)Eh0q_3 zxr>}Rcg}ykv(w$_zdd+cXfxidysEt#{GIl0@Kf$n;Zx72zO$TXyl1>`rhBHpC74q> z6@G$yoPS)9S;ek$u4C6aH-vV(clrC=2mGSLve1Z5+x>2@?r2o$GocFIYMm}!Jp=?v z_!h(Ml93UN=*Vz;b=3F}02~591m9vr13b`YA%^Nz`aq4%aeyNn;bY!Vc+unwe0hG> zKzeW>O;gSJ<7u1cIi612KB+Lwln?7DsnM0Vax&Wd-0{showu*Kv8}@g-t^#aKQ%uG z|G+CB<3Ep?H~-`h$<+{&sxOAuQW#1bd8V}hYNbs+>J-ghlReq}n{46a5i5<&SiuqA;pwQ{D#ptza*Ju)j1Wqsw(1;ru1E%09%vH{u zH&?x|c40bKf1~rP>#WB;QEl{3tZ5w4s!sK{)=V97S{VvR4=SL@iYnJBYRcgc_(rNq zz)ylzbOr3UR)A&b4wq#lJ+flAHFfp^NL1VHXx&~2qAy}?{7YEsa4MZC+Bl?D=Az%N|^R z{nEQzQsaFUG5_eq)!UxkzwsTAA^d+HKR4~gLpL<{J?Ox9|MbbHe)yA}Pa;5%AVhNP zA>>EhM%oFLkf9T)T?&`F{s3Qs$g_U73NLb9?_vS4$Ln%?7%v7V9n^A$7bVH-ll%zD zQc@6&XqEn)2t^UZaM04^#;f#)f;)qFMeuYGp9(?{d6RzX`V42ZO5f>&(?0Np0$F?D z3oFwl61lK4eWuj2qdl!TJCLD82ozokRssU$fdYgI>~qCjR1gy9IQkIwtbgg6?Q_b_ z6VbVswA|cio?s6ReY|7(iuD_Z9>$}0EpD2+VeQbL*+bN}E$z0&EAnVn9}+2(=#sLA z*e2pGaj)1f9uZH8Y^B&Pt`T>NdqtMvc*GLMNi~3!KV(oI1L9bYClcn9V2NDCSd~sf zLg~6LTu0Vgo)^eZDCAeBhecP9+M+9R0El_+tC=ME)%yt02875Gi_QHn8Y6tzqq;0s z#JD{)Qs)_s@o*`zgL_VTS$a+Ujr6`G&12dbtnxvzg}YMt4#yr4KOzI<9Qhl^&gN$e z9o+5Y0kVy3XSZ@&`K^LfN!(nTq}e*Ij;|By)mGBVN*u?Fk|;>5Br+V4S;EmGA6XW7 ziIF6k^x~V0Fk3HVDtX|Ss#s1!7XnJNhm`F1N)Ve~cSt)^2o4Mm&{%gkm25Li!tL6x zhU-Y^rM=cI#!50O8r`Cmd7FK;!z$jj0YWeX7MqX5z2?80f4iGKbnXm%$Nc`#)$rj4 z^Vwk~zBQZkESA`)rE|%)vAB!f%l5NJ*i$w&yoTM$?xjRH71?7Z3AP7`Rp}^1{%O`q z^HdVSQuS5mz@tDGP*%S=t(7T~an>EN)5}lbcdTb5qKwO6e(M!XW$P#DaM(q zOm(Fgl!~SrQpFTWg=+r89-Q$kS$c=~@Yof$YFV+OL&q zx-CK46Z6sdC}2fN0l&4BQ|FiRg;jkAF!%R&Y-(uv(Kl}WQBApdqC7Qs;`O7<6BXI9 zldm6Xo*>DGe>#7`g856nF?GvO4lnuPsOIVSZ!$4%*|vB@%RNsFowGS?k|UFlAMG%L zyeHsUEL<;;UIMzHYg2`(&QCR#vs{~tcc`2q%YY;dNk6h&8-gOO68IOcO_Gy}gO0DN zD(5|%0;d&FzV6|yk@_bmXD^IllpFh+OS1;40{ckLJW(|_Gvk)Dc>>t`-^y>DQ;92{ zT{^z)o^G>}B)9LIa{WEuqkip*;z_cVOhPIOq0PqhlW;=#!t;fX9L6VE><+OZ5$Cjp zo`wEga5LV*Z4ovrz2ZCg_v{DaJIV?61b0%^b_u`1|Bw5n@T$VzDs15H5g3rxn zk(cn^3?FWftcc)D3CAA*?mqMIslS-Nyr;PPhr4(0+`fA^z25uH zZ;{Ppl2xs})fhG2Gu?yTI+IZ|9z8OZnW4_`OpSaQ5owG&9Jid|zl;cgxQpXizbtD` z$8bFBs&zP=Nlmi?75N_{+F1k5+EBB0{GVc4Yj2|aJ&kEEic_e*(MK&Em4aFts$970 z`+;lx`3-%5&2xQ=HqJ3mfd9dcYwue7&1LIJa(ml#<{!)<^Ne}4Wx>#=OkdBQCwq4N zh{h^cncpJUl1YdjEbyc;&fSc4RrfZRguMfNWJ}lR9b;nKwrx8TTOHfBZBK05wkEcd zi6)pB6V4>J=e+N8&iU?l?|VD_+g-b=R$pwH1x>C9O#cU{AmKw_!RABtL zgl;7)PmdVOK)gNkxVawUioKRwBR^Jrn0J&!FjJ z^)2wMAE3*|e0=6pf4=TG$Fat5><{-=KBL1V$+MDuv-;)>(yWLs)`q_&V;;bs+=bxgk@#oSYWLy)=|;JIG}=|@SF zWd?q0o|UBg1;+$W47BwMVY*m~U#0du^OmRDf3gh{FWH50U1see6|cPQq%Oz(>j>Qs z8Rz>r)$Dgp>$|z>eqv#S(G+pA6eR-x(bE$>JyB^$y`T}yC(P^P=-%-)FA$Zw15hbC|2jC^JUufCMKu;=sT|yT2G>X9k@eNqJnkO9DPGpPo%=m4+x-+U zXlLqUDs&$l8vq}q`r)tB?g4=n`4Xok`h;he=3Po8co)*I9NDVwP&2k7*`QaCxa69L z;wZDxhBD6#_CsnQGFmGHN{4KOUj7=rxy?YMNk^>YHA>0bjfvpS<;-<+awpBVqExJm zZvli>IZgo|1lnJEYEi?m}n1RDt7kh|-P>?Tm z4)HrpAW`3UI275~_wX_NMuYCsSj*267?(unl{HOoBw0Q5glwdR4gSTSOb!`t8Ge}D z8jgO8cWLY>LPZ5GHx$R>a~TygD_kk^`j7Eyw-`7^q>Qr(S_doeMMQl^TfLklt-Tc)@*ASH5 zEpj=U`0&md-d_TMLB}hnCc&WI} zd7TvnkHkdAuEjvx$KgP^9z_#TyrMLNU4f5#Hn25t4YWYJL%o8_7hp-ZBb}Blg!r~> z{>B_GoG|WHOHdM^Z@haPseonu8t4?7FM@e&g(K{f*)=bs2>~%QD7@_nX zW8;kOoVdkguvPQJ7H!uGDuE%F`(*WS{$u6Mb-W-#laW$}Tx{f~kz?OGx7-827wwc_ zN!PcYO7F8*zCRgmUV#I}0810Gbo2!{kvkiJg?@BF`lX?!VE4dk*pP6AVr0?)J-J#r zx272Oj+Z(Wv}Dr;io)sh8& zZYD!cnh=*pTxOY^G-W775j_e;@X*Md_h{mgYAQq(35|P+7FlWPf+aqmjIGGh4ZAz9 zkeFVWMvD4{wNq=0taij|ira;^Q*VnRPjq~;$GXQz@gm=(#VMO}jsT-SC4pw2xM4Ee zh4y>wbE&H&&Pzf~i!A7P}BtJF%klO~KC{pEon-r){KCpc6n9cO0$$r#7 zeGSjr_l~jXR;O*`_7R?$2p7%g*{PkkupCz2Ns#v$57%%1{zj8ksIg!84cP>H;)~Cq z+cPnD{s+SIw7{_;(iPd)!n2Ny-9B%kYaE@xKtdA9&Dx)BqaFR>0dac_zC^wt*Ei+r z8hgX!6Dy8~^PT|SqrEprIwlH|nS?M{U%2U`_6dv5<{mADWZ&G96xc;{R^3+$6vm9> zlpI%rP8l79cDaNkgA&7Miyii+b_n_e;X-E+(T-)|-!I6?Rk>|5T49hv#C40=Mp=y|OVMB8AIvw6% zmS#b7)d222pyO^-6HwL($(h-`>qA7vY~l~1UdH`!%{TF&}vQiJnRI%{X*@W zfP?yn%}whYb{1(1vWiMOYs6L4ryZ%EnmA)H;jUHwS7E6n#?=v^OL=V!Os8KEEs zywT}sEfl=Vc$=mEXRd(n^maGgrSs>P>JY(3kZd$D1P>K0V$&n+${l8W@oAWwp7 ze(W@)0_hzsV$pFqL$zegg%%ky9MFbMNGX?DN|k7U@erjlIK&hrl}c4T$`mc}zC-^2 z>w|=q4t{|Wh|CJ{{!U{P<6(`P%$ZC8kz(nbs_0G9`#BYt!veNoX|QCbDX2T0||DqF9$b!tv`#mrV*xRjuG%27((*C z4WHBfz!}IV=zy_(#IIHa70}phTwk%)dMB44BZc@aEW&*P7#@{aEZ9*IboqX z4>jO7`}V*d*o<^uk*=fJH?Ky&*+ce*saSOOSY40;Q@9WgM--D6e_-jV*zzzjgo>C! zm}XN}&LaNinDSfHRf4PVW6nlFMC#PaK>%B9^u}SUcvbh8si8y|J>FSlAvYZ@T@!|U z7`?*ha=6YiPwFv|SMx?uV;-lqyy=E#RLHZgHK8BPF(Vf4%peFM$lba3wR% zC(L*SU5x3ckC{d92UTp9i=|fSVmDaRV^`UufU*#g#ntKi&WLp2giTOA4vIHJLEk;x z!~y)^^qHBqq0weQX&qS3wi=uJGoa1)aq-E%PI}% zAQM1Xjsn1OT;E=F!PpzeTab}n{CAO`v`T;rcIE>>1X7EUf6 zE+GAfi;)YcJT77&XAH>M0qW{sDQ030ZnnRGc7I?e|J3-W?Y~p{K#l*w2y$=$*AYm@ z0j>ZKvF_g@`ousEC=h1&PtQP}p)MyUCnJ!L0pxcB2`<3V{slVwd))uj{kxZcH4lX5 z{w>4(_t^iD0ha&W`oCxVPwqeR|498)%EQja$j#0Lq<#LKr~e1~sr%0i|7qZV&ih*n z{~Gc?vj0pDsP2EX_qQ6jxp{z##mvH~PYhffplSaj%FO{(@qdc{CH#Nt@Smo+{%-o8 zyuVZWe=eGTtqkxS$ZclxM7-?CBCEW@0mtR;!i3%2R?v$R( zIGg;knO#fy#c*5`=x08=)DWv4KG+ASUQY7p%EiTc^j&9520#&Gw$~l=av7dXp6aAv z;aZ9Z+fL51X9xq}S}|y;tUSBgvMrRu!zRE8m_nuRaF%nsQl4KwBUArw-^M`JTlc&dSIv5)ON_ zO)c3d&LVLedR9a{Mm>hjqd)pX8C5*U&*<(b_R{E(W>fW-PxvFcgGqvg`AI8iY|r*X z6UrRRWVefvuU0m5mzm|}fJ^g*CDz*AFEDDl`sDw=ga5zyy1$*)A8!Tpu>TJqCt(ky z*!*!xe|s_p>Hqk5Qy}T=&6Vex0cZ zXCci$D5sPye|fLihDn47Om<3%mRsBTxoR2s3Ob#&$=v4js}`;w;!Xo3e#;_%smb#- zerh{#4?5E7@dfzp9lZWG1~UbS*WH(xlid3u2?Y<(K1pFg4+FV#<7WVbGy;g*?gmya z56fkezVHD+%F7bXi&B3e4+MHZF61%VlJ?W zynxvzxV2u^J(xXYFE0zGtQ}+4RCe%5jzA?x#i_8E?_{f-fjMBpeC^+JI{UQ2zd?=I z2C~x|EO*6zH(?N-J${MFnAOi|cDUdqzGn)2NdSSs7TyN|z=OdEukOJu@2x2b7Zzcw zg5E0M6Ojao1|rgDO#Ol-4rHx)Q(LZnKE8Ee)cBcth`oABLy2ApqcXLa&Q>tfXL+_U zf6S2UgW2-pGN<+F@*>^rMD)#ovZSTkcB_go)2jYuF%dAIa_z&!l^-#eK-6@WJ>Gp> z$*cu}{U(bZiebt@j$P7S!Ww8=BD!yuBa;gim1UOXj0{Q-4fU|%bkU(YPJ+l_(cV(- z14g47p7h9lO$-&OY(;l16Y0&cmhbW56zKR zgd!Sp*Wog6I#$?c(EJD4{SP;`(zLl2@Pfeq=gARr3vk^F^x_mNX&qgBTqClGKJ-! zmVg;b`aUWBn4Tp!>`4LSeFMmeF(Es;=vxpw0vZd}y(8hQBwYHt>V;2VL_r}s1$Jc6 zJTuO{+lCNhEn!RpdW_q4u$ce{{o)jVcX?yF4*}j?@51&6X z93R57AE^BnD-aFD+n5kznN*6GRWo6>c0?^JfCVCW(A_zS5IGIYH3kPYg7(PUh}>cD zJpvHYI0hDebFgmELTpe>nBOl99GkG)4A9hoqiKUvHojy|0^oVqN)B=5TdD)lO9aZfzMgTA{ERHRPxLVWi z3iCIX%u6YREu_Z!pFQ98(&2;L3X*4}IIXgdaOvumro&TW zUF2tuvtR3K(_Q7d%!W%PvG|b7!f<0i>#j_T|-HgyI{iL z!T2i;Ma{!|lMl3j&b!g*W!nCat{?SKL^ZeYZ#H@a{{H$lJ6LXp%k8Vzr=5sT`WJ82 zB)tH~VJo37#*6N&*NnAyG^e;zL8rBeyN~hu*Ce!uYBSTR39}Etnza?&VhMwEhJOS* z%j6Tng;=29$nX{91zFyl*eh(H=^V5tazYZMC;Zk8IuDo-;kdc$9@9-BX#Y@Y2f-AH z3GaLGISUFJNg-%^3j1o1@irXjlQEWWX82Siq``p&(cvdOx{E<)Jvh21X8glO7_KDM zb+61IkCAHSC{;&B%oNVm348PQrng%VPPhPoJ~J6XGYek#y2ax81p~S<)assMkC;7& zy*U2TeE7^zeIvRD>8-iRzISFx~ z`SiH{y6EIrYTR`5hDKYg9_o=W%i&zhaY|cJ)PRBP5mExcQ!|;g7^vb9#_2$eY4`k& zo0$j0H@2Y!ezik#`XQoQdIM6FJE|_}Ch1ZYy{^p5Fg$P;$fX-T*FEq%jNTjr#d_pC z6sacObw>vK{oXjCL;YmM=&#(YX~zo^5B2~Wc#;kY;0}8P_@t;TXn2h%aiL$)onbpe^%U(%pOT=z zij{=)h#QbbOpG7F-BG-x2M15GhlE>U&J>|^r5Xr3l=l~PpV_~n{!V=tyMfgfm8ZtC z4y6PnHHd35)?jMD;e~mOx;nK_l&Dmy>Co+v2~Z1=3Q!OvF-)pMVH-SOap}M4Lw7Co z7WvqD_;^73U=fy(5P*g%g}_>hz+oPU){KIC;`>B~Jc&{~y(K=r`0(`1l~G?*b4k|W4@=jN>Po~=>{uR2DDmTGR6)+DoGlNqM49u((!z+Hb*;8@Bmx*nNr^(9l%u!N}y znTx}Jz&^s0pWh|M+6cuwZh{mc(*B4tj zt^+*xAjOr@PkB8O&J3+*C!j4-*^0o0eCJrYEA>3Db`tw*!Rk z298xKCn8%}l5sTRnW0yAB4sx1-VDhro)KA71?vn1g9yx$<11zG(HKXGc8A=1PG8V{ zgD(4i;7!Fd`Hn&WQ!GY;G}>3+oRBF;g7gMDr=(@-KG9`vP}K=hR!ENn#_ce^c|;T}W68V1(qw1$R^)UgbZ2<3 zsQNxV{-DWXzn&rT_ntt)Wpo==d=XNVrtD4YheALnhH|;VsScTE2Q55_io-6c&jr)! zEXcw}JEXm#(bliEA~TuubK{&mQIV)obyBf;McI-d-|Sjt8Ws+igiMToJOT5Os&WBA%|Ia>)JBjo#$b`9}d z)0_AWvgQ<$3D0LN-GzCy_%ftJ9h8dFl?hB;r&gE}xj9ix&~BJe2_q0cbZ>_xDP?-W zXe*%$qTSj4rd}md!-`+w(XXAu(TQ_J{nup&YUYQa1gdkG0nNdE1goz|KKhAi6 zVZHZSA48vwG`hJv;H zcLTRA72V0{YQloQ1jRnE_s^X>b>|?i*f;A;Qx=OPQ79KcK$4M?Sy)A#)`Vim#S-dI z9428hpxC{L4Aq3L7EwqN&ZW#h`!T>?dd_;rq;ucrb05;odJ<77x8g3NV_K4t>KJQ^ ziOVIQq2ZG09F&Dir=*`QpEdIK>Xg?aB$YXKGzc$AKA&(|!m`TYC1HEL|4Jh>=Rn6y z{AsT0SK?n+*#L5`aQrIW+t~mDYiN4weSjzF8vH5=Z}1t=fQcC^T_S}mNxn#m&;tca zVj(`2Gx7`@M~2Hfv|lz93{ja+z(W=!tv^J#q^(qsm6CXl7HtsQ7T6BOWqA(QR^P)? zc@V43GLRyi{k|j?h_m;yTwsW8X4McI-V33X6%=e8B6(jn`~UPqs_7*u(S&s>|D*tE|Pza%PmDfShL>DHX**GwP--Lr_#) z62wg9fu%i$#%$drjEf~{7^DfR3nhEJRwDE2oK7VokRA6Pnp!N`l4eLMVlKfeBp_H? zN+mI?+z&zZ!hMEk4ZFA~M`he7?k`A0D(feD%z#}sJ_QFi`*~5?w6ThU=2|e;K|V3P zY;g2_DA+NR?m65P-vS*o6wM9|SJer@!nB3V0N+M-UYp;-$06S0)11}$%vrae2DzTr zeBm{W0IXQc^<15|KG`vnBJ%YIxsN?6OJ38T$nyzPgyg^CltNZ~TTvQUv6PrMf7rKrIJ`=k-a`=VqKr?^k4%Dp|8oqPe) zFNf6EUt69PHQ0D~C>9?>q$w~Z3z$9%#V$3W{A}2{=&HAy86^Ojw~W?e2`g_8Z}SsY z-bx;Z2bP5DYn$fnXH`j3!Oo-;d3$*!fliuYDsOxfNu-_S<>e763&7yS#Dq4TW_+wA zndYp{MzX1$g*ZD$lQWxNv|y|AZKQTDIIxxNM4&O7sEX!tg5lCw=UWH!H%2eIX> zvna1%+=2@Bp#^=({Qbz{b8U&+5l>a9^ERSbDnD5vY`|O|6UsL7 zRg6i1=4ihl5t{a>b(~c!J4}zH*-x4}51kY*Cr{<=MpOh`q%odDWSA7V!!S794lJOK zLv`=-rW#2kT`2KpC@~>c@H!>LZ8CBwJdB8dCR(r-IfPRJ@`y+tndzq>cZL$gIgCZe zu*9)^S{OlJ#^(VDB8X53qG(8>F<8NAbYCrsXUBxSked73REc0DO&CF2G+*wblMzV6 zw_3B?l0BP#5hPA}{%*B|wvr;Yte>ahRtlAl7olqFjw;c1j?s2|1!~U9`n1yw(qXeX zi=2d6HKkh-K9EcXs67Q*^qwN8OATnj$g8k~+V4EiNH5%HDG~DQ6`7ibw!F0f->NqKMP(2Yo#eq&vZK zXk|I1143`)ty7VUGU!_#0hlj@CD3Pl4+P$Ugn_wzamKHl)@NIpGT+7o9_(z39S&Vy zIniG^{qSi0Vz#IVT)NWxAZ5Q5Ifwwi+5p)KMDDMYFn%e0U)z=hF4I;@v)xEFw#7o7 zygiuw_5JKW0G|lKVM?V8Yen8HhfS ziagzwSGY2%bz$M|#N4_vnJ@He$v=sX(RU%moC&rp_-QFT0SI;?Aa=&3aCV^6u0kX| zM2ne(i{F$)pGXv+0Q@`9;C_|*F=5HB9zHFM?AvmNC38a&$U71*h4zts!ubosCujLT zZ+KoUAW(|<&e$#ok;Ajk*g*U+Y5kyR{V+!#<`PfyIZgS*fN`Ad!9^nN#aMR2b-EA^ zPdTScwi=@CL*&~RY94t=P8`{GqI02$#kX!73EwfFaF7kLqovM2)5h80OF$zr#My*I zr0*8*pq1X9Zt}?;;z})KI{C4id@*z26od!Hv4JI0hBF7E#-Wb{)9}fvDb~2M=JeB?XP7%3hQj7wA>`Y*Pn zvd5G(wtP=)vt2Apn)FN#-}+3u6oTU20N~DdW$yu;HmJNg@*xzbhdV(chz)S! zj@jcvEtxps?iQGpW-bNuPj4m~W=CToFzU1WvhM`Zog&s0@!cTqfTE1LLYprTtSflj zL^!!ZTc06Lm+&>@UJabMLSyfM;#|+uBiAf8=9(8~nir;<11M*PFxcVpm*^+F-2}@4 zO7uS}4-UOYqkU)v;>S-ByTpW+5tbbJRS_y!+*%rFg)c-{87G2UPz~O>cg~o(lSjIM z5236XY6I}?OSqQQC&VM`u3$A=Kgifp$vs-6+QY+rCYX@XVMR-Dm6Jn|D@CgbnWP2= zhDBiJrI1NWFM}!z$s60H;6!yJqN z>86lIZHb{3FNqa{uSMX3S%e?S}-TQEc$%5&MHKKnZ%EX<7I}MWz z?i!#;lVKGyD5z1#O>>eBQ>j9y22hlk(&9vK?Xg!tWe*xNHu!aC9t?K}Dw|Il`KpX3Dsk${WAg#`1{C;b)`Epe}`;!P2Nm zq0X{kvvo2mW8kHzt&fPC*~*LJ1n3-ki`v`Es*R$$N+cUOnAD&K+Y_g=_q9IvuQpoZQvSyEw+aJac zo8Lk5uoeN>Uht5zaJk@yC$PvU?_2>|Vya7-akm|yuWy8bIKcG&ZR)cUT6@+p4XP<1>=83>354+JH}$q;;*YYf1AW*f2RtKI~jtyZIV=f7k8(aBOINoIxzAzD?&aR6RUVK#{bAy#CL2NWTY0ZQFh=fF_>|X`GfTxUn2_BxG#&te0MvNO# zqCDlq&RLD*Ndp!$#VxU^p?fCT#25E^kOzCi7@eB89Jm433alObysDLLp59L z8F+)#@Ox%@^UY3vDhc>C)=_1OYz}N0D5GM3aAIGi5suhQwTjq^qfc<0RMunCL43Ec6`*X8S_W5FZKj9GkB9 z!ejiPk@PNfJ@?JO4M8KlVfuTnb4iCJ_{F%EG&&>(xjrI*@y?1vy+MgUtP3G8HipYT zB88$De+Xl;KO%`2G}b4@F~8yROc)!IMbkfGIHLdz0U%8qniFEFeqp`@}mJN%M4^d7C9Ir$!qDQ^-mijz4eIB3h>_?a1cX@e>=W@(*@8;xy!JhS}p z#nPO}1XR(22tZ=qnBbHiKPL(IhJCUJ|A;a>YWs+SdFIJ-+w;j$5-743B)*7Cy> z=eQZkkr1;1$x#rq3CR%@v+2o+WY+llkThp_cYKsPqc=g$)t3gd@yQ7Xv-!!1C%s{~ zLv-BE(k#M>BE50AZEQGgL}ZA`&v zc6|V)H-@+`sW-Mes?d?s8>4R16NC7-J0Ryt=I${71P8@uZTaE}m(Cz1*2z6%H zMhxlA9yf3`M$k^s8Vw$fRCN~DdyF-v&^L111BiQ?9Z3WO^=`gg_U6!zNE(gcS`jN3 zAXlT-kDOP-3>S94pxT?-orHk@q&o!Np4}aCXbis`zivps91nSh+)9XW{l$D`^mYq# zW%_nY?f>=hkcHrbu;2LYmfL^kku0ct!@p*H=R%?7knoX`(}=(aji4i;Hz@8I!G|E* z^%umIMLk&*^!oXF?6;=1Mu~CVTVfxA&j%!rxbJ}x8#d3y@$LI4kGO4z%D|k^@pT)| zPyH740BAysw;Og;TcY>apBL)<#fKIPvj(Gv4MCTqE~iF5jc9lq2K)&MwoC>CXtqr5 zBwrs7By7!n8g<8+0B~C|8MowHKf!2(JlDA6iN&{Jk3V#8%eA|73+Nee zKlHmW{=@q-?Y<>3FlIU+BM6Ai*ob+CsBh4Jrh5b))W&nyr`-41E=-vATzbX~22cn- z5bB$;ZXkD!nD(wcQ+fl7dEZeT8c&?y9hy&WF%TP0ZaEMea-X4h0erUzh)ucAnAgCA z;<&zNfkq?zoPK9coWFYm088JN>|T9@n$99zv;9w@Ie#bGFCm?A{+>s&eeDKj|LSJIcggm@ z`4G*1ANwH5?tALz{Qc+s_VBU!;J^70(E9nKUg6LC%2AclZ5celsdWwTRvK3U&uODBG)k0OqRl0dLfuT zn;SFY%Q7(})?!GVIcS25V1nsy)Fjj(Bv@sW$wiNXA3mL< zE|7IH6*8^PU9o>i{TQ{}6Z-XC=#n3$V8EK=R#G||4A{If`snpf(r9LEBMxWg%-CRC zwdo$uVr3TG+Gyo{sRcbI*#v`BgWkw!(<2D+I<&*6rI_y@(B3Qq_FU)QEZ9b<E2QK;1`2#FCT%HMg#G5lG?5s` zC+@R#`jhmP9Jl?IoRFc#I~p*KoIeb2p%LfZm+k(}U-w3#RXQC8ro|}7g1x6p!_U12 zYRwzQEZOwtgGQV>Ubp7W3$|_9agudd#is1Iv62gx$dDmM9N2MV2EEh*-V1a&xC(zX z{I1`-{=xRsm^aCrWpKaYPO{{Ibm|kic5>fZ4EdmGaIq#+@@<5-Q|62$ENX1iEE7&# zmjO2eo_OCoHUg{Z(uW??_{{G^PEa8P>wcY8BoQifdUJcgn}taLp}b?KtsYbK27L8; zHC8iXj!3c*=dfAprmaTI4sCXgc{hf}dJSgvidm~xhrx8yS6kL>vt}9exFT!T?3pGR zR-Ddo(+Ryq4t3lJ!mqq9e%2q|OD{x~Sk+-%Dh|i6AZ+}EXT1IFXqafNzW--7n z(gBSFCaoKnoYmGTGn_HQPc-wa{ZWY}+Qxo5{1pS8Q3bF`8{Tfx!Zc z!A2LmsY@hP6OQ^q50BrSvIFy>JpOw!7aIRPnVOro+#VFkYK$sVX6!<2^wBDC3nlb* z+nX)*2(i{~{3eOkE_|hZB|F6Kxw=h^zH&CL&Mfq7g=B`NE%Vk5c+63A_e=&%aQHTZ z!<7HheZ21Y+djzi>q-;acbNw)eD?v+aoA*YDanBuJV4Xderl{F8@y!5U>&#xGj>7M zgd^{cefjVqt5&XiJ{)34Zq*cuBR9czMibs8kn2*ne%WN3()-Jxc*dx`i=ML@MY476 z`9ISd(-Pv$`u)bU7PZ;=vy7IHA%JC~@3eK-7%PPd2L8HLoAo+}` zLnj_T!qF=gKf;bZr%wL5f~oIE-pUG9)|%=eRkYCxGKWuD7f>rd8g=X_GoOi_{rZjn z*sIcqf`wqQA;bB%%7G~G1fXH1pn)q|X5}L>HZQ>@*mCL`vE#)l5^#qsz+}K>jUV27 zZCeQz|8O#Y-V2&Lyz^pD7@zT@Dc{&vB0x+TuB5I?-go83H(xnzd9&T-V|B?r#Za7a zjwp6$JAd-o zIrA?bKA*lBhU;HDd@}c|$0{E_W9ISsdElBwpvUCiy;+QP9knEPDx}JkhgONjDJPc-`QE)gKNrHi|9L_OF^41ri=TRiw27a-27$BA4%I8j@#Jh5#Wih z2d8s`QFr98aQpJau{W^En8H@tsYr|##DNW8_ZsEi)d~hF5I@& z)!|Oeh+}RVF1&EG;>JHvG#@~LDS-rQ6CN;@ZHC`_;$5^2YKatLm;sfdtaq zqIekPei#O&z5<#-D%FBvWN1g&Wq#amFPNet)&wL*P3B13l%=zv9jkU|w>@}wK6Zq( zjg8LEjs0JGK9cSY%vc)}Gl(bVn&PB@t3#;VK_f|KOC)ohTAbCPX(Q&-=>`k)qcV#U zzWpNymKnvgvcuG)K8U)ufRn`1nm>kaH4_zLiHR)n03icsa+3&lCF;qJ&}p7A1-(*Q zl?8N3>Pcx~B%PfvFP%w4zCPx48aWAiMhyegHGJxFzR80+lq8aQbWtB`#6)h~f=|e&LcrGd`I;!!s z6q9y~jp~=)U3yK$4lTHd-W%s!bZ0=9_`_da{yz8UBZU4X;V6Xk=iXb$ov*w8zOkMk z0gCM+i}9_>{OF{3IXyic_H)*FN5CYhQgrm7MIr@H0 z7NKxdh%0=&qo|6EK`5GKv5*+ zY$$4YAqDjM;i_*dO@D5)%%;f95MqjnEh^KNgoEu>`%SFyZsDRE(nzJ{8D|4Hi%ZJN zLC1w+=Rd+V;_Bp>aCJD#5XF?aTDt5{t%k!joD8ez)igBJG}2irrY~vS6By{|@X%>x zndtBhw6w5AE5HWkuQe|Szxu(NeUz~UY*&xIV||8H#D^!EHVhQ_1tC*Cl*2ZDGnl5Y z9_Fpdof9L>ja&hoE(91hKeol{S^}ZI(8KaV(Bf;AOtEsp!p~vJwYj=#JX~QA_5G@< z#j2|5N!t4MWxh_}BZaJbxD~kE)_Vg%fKX`giqHRL!=ZiH5&qmD|cb*VpWTHxDP+Z=z`J_a3wPjJCktW4g~| zvN`QIMurX(lQ`rQ8*8^Umb=8wwkqV25Xt1(LTq>S043^h+?1Vl^O7<0Ey5?Q%aB;; zNa9r`)OKE|B=)J~Z!ae0RZ=D#Cf(M{by_Y8nh4f5%ebv&)n$^kB#0Jn93SxXB#oJJ z)J*pa9=wgx|LHx?_# z9Tdv*;8lekEizdl+rQza68PIlyPIap({R9V(TRJlY2{m)0&UTwo72x(?=39 z+4fCRiX(tQHhH&O#K*EvsEp7i-i=TL=_yRgE1=ZzGg4W@ruvflVFhE|S(P>;#wep| zzJbBfNzm_nBO_QVdxHZPiODIw{kw*0`MrGB&*CsXL!u)Xn0f$B&)t@YJb}(P7ZrZH zOLkV%O{Ow|$6we7m;Qjw&B~oQdA~}Y~&a1e0T2JKf+DpCW3QuZxj!$Yj za-D^SzP_(w&CL{JPqXVpUpZ-Ov_6b?Hbk6 zwT9A)>eUn%-?-v3B9~>rbWeXz6eQT)gguTVm+;#=`}Eie=Ie_3C#$ugsahqcdK_Jn ztPWtRgu#1D`FPo+CK#qPcah^Jv`K_nCM(8n-S-L_QkPh%tCyB~dA-Ou>u$p(Y!SpD z;9GKL%Tq)aBQS}GC+i$YR#vzrd56iaFdUgrl+fDOr;W*IN>`IB%U1h8Litg$CtUJ( zm8c4A=BOCde+odZR8HU==S^@gdbGsS^kk5-UIYBDe`y##t2VHwi)LuoFRS)6it2wa zdj7gE8$-uOm7J1BHZfZKNJhnLw{OJEU7~`+KZIhOnT{GSA6MF=OqudXpEh(b|>||Q@xYt5+ao#z%j0{ z%9yLG@1C94jC9%Won?uphNa0}&BsZdESL*UA`)HNY9w%Sc~nIx`*bw7r63V(nf+Lb zt~KwBgSL)SJYC(F3e01cN+;9qT(}d#NYmTEFe^1k&?Uu46V%?vrRwq~)9$K+U2rqd z&>^|7_Wpk0QO|RJ`)#gn>-TxQGB91=>lQzN@0gO%Dp2RPHirRAS>!w!Ogp zaWy6Xep^?egot=w2?g`8$9(8o5MoF;}Z)yKA6ObJo}IaG?E zzfT!!+pR`bU^QwpYZG@jhFq4wmpAombj<`|TB65l54Zbkil#v-A3G{p;}z`ZWZ;vA z&0O7mew9|=H){h<5#4OYfjdg=afG2OmMv9ab0iJGmju9MlA92>$#U%Fn#c&MWXso+ zFU}FW^{Eg&v}$>8t+wr17iipdCnW6>czu3MP~8ZvEMWwhDA}`fW$7OO^b(-GJZR># zvAi196y)){xVnNpBKCUvI%A`$81Q|oj!WqLy(s&GD6xY%yN~uVh-hu}GbdUzO^9ix zc*=rtb2Xv_C)$sb>r^%3Pf+zrPza{H`@5DJzwXF`G~EZx<;{T8-a zwa@TkJDZYqm2u**cGxy0>`}Jw>lnHY4hmx!@%gWgs_rw=3}^)1UDS8S!Z&Q7Ft&3X z=nPrRwxhEZ^O~xt76J=en_f-D2d$5l8o5C zV|`9Dra0HyI`(!)`reFY3N^+{8ixd__R3y9Mez67%#)MqdPI@f=4}6?@TF7rj&b9% zLZj~VaTkqqvLCv~O~=uRlf-xKkn${^w1Y|Mredf16&)@LVi((X$C?WK`to04ZceJ+ zN~zl-)hibAO$iU3Ls6c%`Sg;|^!$(pF=2{9VdaI~m@${M@uTjAZ7EMmW8N?0$?@*% zm#i5NA`vT9X!)Z{)8=1d)Vw~a#e|vUty10jd?9E`FM~?Hkmg&N4lsq@H-p|cg$7ta zAC^boId={9487+lu+o|f5$yAhx;X3jjhU{&&&9Sx;aJdEe6i@BeauPYq&p<_4)X1L zF@AG?K{Ts<&G}I1`n+qg>+t!ynz5eYTE;NhZ(*=|X58b!epjYX!-O9nN6na=x$2eh zy<)b|Lpjg|TQdT`%K)D`EJ#~!As;bw)7&qjYPBkh+lODwc*`I0SrFTC^3MI+3qxrwr z2%OJ47;3aT&h`2*b(!6ZWf;89i)9#kJG1SGiL*W|e8KD5$llr6;Unz+UjT+cdB5Wc z^6Tzje13$?CksDYa2+4z?*Q~$X**1KGu~iI)m+CWy@k-RDb)%c3*3`AOT2=vqIVj^ zM@3?UEK$KI5ep?dO?p?DcrSwJ8+dk5x6MehPvQ=Jcm?#~Wz&aOk{yYs@xjwOLiEv+ zZjs_vJNLD=$8B7eL^LTbQ7O&5h18I1k(&5RQvIky^Ag>sLTxQKiQIo`MssST7K?== z4p~;pD=I3>=(ioi_e}o9q2guYCBrTa{eINWnIPOX6cuSZg4Dkm3j0VOAqKvj=+lkQ z6;9|W`lL#-qZ{;jm6{Dkhidh^T=EnvA2SYzPJ9+Os;WH28gxrRK7xFlAsFPj!GKMb zrvxp$wZSCa8n;lB&!>e{2c=rb;jAv+yNlypDCR>XR?G3zrF{C)z5*>yC)Ep#8|@C- zTh76_+3BKFf^MG1Ww%q4FVz6b$NHynz2|?bG(IDFdAu~euz1A~X^6a4+9q#Ro;5rd zP)@QmSti@gvdpnv?7Y}@z4J-u`|0mz97(rqGe6;?8EQbyRD-JgM|K1XI|u_i0wX&T zPY;?@gDme1q`L!wbVDFrAk>f^5UfEpN$=k<&OsbW;@`+y0AA${gj!6!6V=o^QB8cJ z>ekHE>e~YlK3U0DdL=Zdq$+N4Y^Z_X`Bu|a zQ`_0&I_S%1?etFNa(Z74@z8S&C9vfaWd;8^2zklXgxBY6RYxf(UJl6Q|llQM^ z8OUegRQ7@Bm9`^BIyMP@-Na~urUS}0YIHozy&k!bh&sG<@=XlSvUgW;cy3&1p#sgN9qzU?aqnx2bL={6E)NNqL9G;t~Da5ly4><3>*~Ac?^|tFu?d&R!Ke`)skZb*8pR zqne*j5v@(>WmS4vl|ELbHL9EKC_z+>(rA($eS+T=U0vu;lB)K!J%l^9VB6#7J{!Hd zAW3fR86DiaRFC!A0CEnIM;yCeL`?=ReW)|qpzTHXE8zCST? zwg1lLiK{NX*L^p=@Uq!gU2~1L@!5Ipb7uakDENn)w|9T}0pBg81EMNz;omAEPi%&T zeG`9__m5T92aayS`B%Q{rWjM^T*s1b&Sf1NQ>IHJ*gOs*# zxw6_$`D8F#-Ge|?s!@URoB2I7$qsMg_t1^DB)L)7_osXf=Ih2$KCNri4^(~GP>zFBnY*zDK!&6#v%A8&;=gRt#!EAL(su$h7$Pr%8SFtc40g8{3J zK=CKpC;H}6Cv=O&7Z+}E_^fhP7k53aJ{{vmCXW{>>w8ss%9!+vGFN7j`EB{>g0Vy@F>hf9A+UpS)n)QHU9O!ryW8e++w9gPy+7{a6^Yx{*{IECk9$Z@ zrJk^hWDhq*N#c(?c=a4JRemV7N)^?gF)DuDsQ3x|s-OCMjf#J@=6sTr!%o(~N~+pz z8-L2UgpM~Z$C;OA?hAD_AJ+S!*->5Gtahr0mm7*=(q-z?(3c>6^&v}|W3eB-NbiUC zMpklN{IIg3tP~!%B1f{KQ~uz&^X#iS9=mbcjRPLKnZD8W#JFp2*-i}0ZaVsxF4Cs1 zyy5Bl?rI-b>!p8twEO%S-N#;j_Lla8+@fp-$aP{=KN+uzYoY{MF;clk6l#bpnrKZi zYC-v)?p{NWZ?~iqwY8mU>KGw)lE4oV%F8^PckS9GH0|2;-S2ko0!?|5x@;S+jTg6? zuQuOi{*C#FS%R5FO_ipRrm3d6rj4dUCdF*BDZEUjMwTU;Xnw@RJeP=AdnyU_xq&5Q36?JDt!SSMx~st`cKz}}KGPTDkT^u-FUy@Cx3tk! zA{8kS6p3!7)A`$0>GXCfPPUNokjVJB2am{)Xo659Bi*1$L^@C5rK=w_pQ;|K8QY1p z;`GkW&Q5=NPcNj-2?#0Yf8vnu$_4Tr6P~A6cDHOGwWMZ4_nExai@GN$uS&0C6sF;; z_%t!BYTj@-r`%d*8(}-i-w+;|J@TYcQzzRl&a-)Q@<`N}pBc?7Pp_!1&zb6P$~-MR zHE-%kO;hLk=jNQ5cYgZCnM<>;^=Jdce$f07 zGU(kMwN?4qu`R@i2)#RQ)XGVDTI00T5lZve&MrP9n>&x{=f|BW?(A%??W{fAsdm;j zAMSLfmH@qrQs;d9gim+Be3fNF>LjnS!dX6uW=FC_>Tx^8GA+BZOqRt+R(3W&6|8h3 zTq^QIBz;ciMhU-Z7}Y1Ojf&R~zjs2@gA0E1#nNeaS7&Wl9n8xtpStwgN4g)|^-1?- zuf9rd`;y4yjK+;+Uw1$Jw*%eRcYj?!dCtY;PbB^|xnXI`3!7daF~x1|_Fgr)>e3~n zm$$^1ER6qV%xUvqzw#bZyY95+Uv{HBN`u>a`W#7?y5pL^{2?gQ`c%+F0Dr(AzW{WZ^@xnk|`)h_~+bpcY7v;_)mG?N?s zuY0%S-|2*rJ3~DyO^Oh?_4IwelaR&Kexirzo77>2LFQQGev2Nb`octbe7L?lG3l1r ztGl0io>|}1m`u7H9UE=Be4SQwn%L~BzTSV)(L-=gP3FYWcoX+6`94V2cSiD*Vzoq_ zXP9rCrLGWGtItW#$lKK;s@Whlk*RdNI^Ud7|8Dua_3t*LXc4WVO)#5`k|vuzVb+gwid< z3_{Ftr$xhDMVL5V+%3K%3adpTCJBj~$6K~5?^uM@7GmLX)voMT=oLzvLY3R>`(8_# zyR@UtOO7@#@pr17>1k?bC;YWF>7BKQYxt>KCqHxQeFVnC)bqva>gDRwPure;dbyMe z2bPdA3G<{eiQt6kjUA$0FeqEt5&p=NuR~2_DPM{HHAF}mi3t38nZOSl1zPqpZG8KY zu3z5!2Kn2aBeMc!(w1*Vk|(GM5>D~8ye@c^~Z&-{jXD~lM zFAsstASE;u3_4)&Ct0_Chrf5V_b1u0xYc5pa=0`XmzEQ?1h_PdiOaC?5tz#*SkenJgOuMC)OX!M z6Xy zWm53H+gsCB`PuRG-A9L`B%_Qa3@bi)~NB9RWi;YG|xHRSQMk8TIxU^EYVbMr< zEsZ|-eCwI>u3a^)?N2v$-$sUBS#|Q5kyqW_y`P+OdbED};K^%l?0!tz(zJQ*>Ax+@ zeX?!d`dI^oi4O0XV^3O?_w72xQgznIi5KY}@R{sG>3nGqGV%Gw*>qthB`KZiZT%=d zlT#W>t+TNh%QD+=P3CIcB|RcMVBIWqSf91Ngu|JC&ve+FnU2g%AzvQg$PZ|tQP!#M zX`ZQR^QE&gFLB=Byi2&#c30p*azB00@v6-QH_}zNnlAD~-Sz?1xGNKwGBt7KQRp--H=hIc^i)sd9uyE2~;k7iR1!vDl9o5I0brqbd9^;QV z`SEgXr$g`PSge_!^~GXjDe>ux1}z`t%q}Yx`Ln`Emdw`_zQ+?go*LS{-i^M&hfy|4T8Tefz8yz)uD ze%}p9)1@u2Ba@`Xomz<08&dPZp$6?R_FKX~b! z=Ssg6b_Q!szo7K`?k7v7r_Ue%+=Ow{KYrrF|7nF&TfRpK4<{gNWWWuILai)I65)6l zd{wE{h%AA$wOLM1I+HsssU{7k#tdFT3G*Ct1tm=RKPU%9`6pUJKk3|xOjd?sNs%3o(d_5-5G)H>n^f|KvCABi)ssQ~3Pvd5U}Y*avJ& zaUT4ZNzWB80{wGY`6J;);SG|ebKF=w5D&5?P4p|WpE_J)BS|@7mL|2Jl!jnm7keoc z!?ivxRVyl#W}4EC)s@s(T}h3wk}UYCjY*D6vSiZ|L?!m&FGVY*0#Cey^M_VSJG?hr zy}pSy)!>lT;E>hekkw?8DpgU{s0fv-(aeSCo}g-GTLoMxg|68a4hCRXRfjtZtQZH? zz3t?|zMXoFJB@FMCt`_cf)n+Ol@4a=GIE;FG^8U&O^Sp}e~Q{pz@Lk5GDFW^?L-?N{8k>#Eem4U~Q3#)Fet_p`LPclDYV=~sUD7F{!N z@!-FVUA2Dp{9EVV@yPDdKh~e$No|Wt^xLLzM-bG-%S8XDl&R8T?6$BH2RUaNuKDOL~)^1zK4)3!JF# zu6zM#P_X5++wFGBZnqokl>PWFc4XJCqA2VvKEcj8GK2LOXA??ZCWPKB>?9nmccTn{ z4~H$25IMq@4wgT|;Ua_O&s-brcL9Dbhbc&{cWrL*t_{ep8|tsA^{$ba7XfNDtXxvqC~OuuE=dWwmuwRa7a9JYD^ zAjF-!`Um6r@-8rI2_>E7kGS*ElKsH7ma&V)wd_jq4&x46R8VUSXrMF(X>5S6H5H{Q zdP-IFlwr|RGOGIJqPZO>Dcj%Cb-89fedMdq@O1Ju793?iJ$k= z4A@iE4daulnEj!mQ+u54)uA|G75cm(0maf~RRHk=+3pI(0L+sK9d^4NKo9w(&C;q1 zPhHWxYtfIs`lHwArpQy*PhE2(_vx|d;LlgQ2kY_yLWDD5T{6F0%hh-0Wo1&6+96I* zXR2p&w{yScq;=}s+}kQAf-Xcuqgl9zze{+A|3ns4o_6qW@eq^U>nctv$0eZ|EWg*U z=N-7W-$~`<%9V#}4PJ-(oe{Bst9i}kySi@ca6+&I{;+c1a+-LP)wM9XLAWXose6zHjzVdX04Y%Dr1 z{D5@ZN_{jhkBa7b_*Wm#3xnnNwukb3eJC%&SZhvRt`FpSH;{+1-Wjt3a5E)RwLH4AZl9;EqIGh3wr-1ukn^A|qV3LYoW|Dqb@T?}VEx@{XU>Ezf zu=B{@pM&rB5Fw%|>?9T!c6GT`Gp6)1Y^wmeTt4jSeA#E%xcmQg06GE$jhmsTJMgez z>YPF-lNHTJWQD1kh-=@fEc_$eap7A8VkDK{<}siMpfo2CIDl=@Jv3zP*)s$XU^eSb zDX9`V>LgT%BDNg1JhlS1pp4uG=mB0M_HrUxE575%3PhMhM9>jPgkf znb-(AN2pIDvP>CQcsJ8H)8m zp(_jKX^FGmVa`tW6fx+ytwK^Bq~qL>uBZrYc|ew$boHAws_kTF5g*mI3Q0CdwXG(Y z42P>*EQ-mLUXnCdS=1V2XYEJ|ON8|TCk(Qu`fV@;qQJ2#bVZ7&rvU>xROpJ0xVf)D zBHi7{mLC2uW*tCmXu}N%4Q;q#_qeg-I0W=VqL+^nx%?Jk<+l(4>e-?%=-JYYO2jDt z;{~4z_f{ffZ*EWJeWOws9oycS_l@tw?zYi+->6CiEW2oRUxD-$Xkig7{dPM=L*WUX zG-Wr~w1L_W(MEdi*if{Co=1h3N@r~@EfjVh{q!5N=6#Dhc4P+si=!R<-lIuaUEd}| zr~}V~{-6>smj}!Hw_!X?tD0MKL=UlE4&Z|t=*f)Zl9C*dB$-JZCo4Q-iX`(K8Z4kK zs+%p`<0^PpQWS-%1tAREfr7U*2h0ECW^jEJk{V5F^Ry+}Ds82NK5zFShMmuE;Bkhl`kpKA-J#n#IjP&A*B6Z& z3wHa|#R~^ycSfEYEDvp;k(b@^UUz(6s*fV$ZF@8?)sOeOaBqXhgVP%Fk}r^#e15on zXuCfz`D(mwO)hP6H&u{b>uXs2M1Qv2IK<=D=j9xDkukKWARbYup<{^)uS zzu=3)PAHp24!X6=?3Dr5WAy~iwayLjnqF)Ad?Xz4yiKQSGo8RB*p4C13|jU!2C@;5 zlaYodgPAcJhFFdzV>B6~v50{ihk?^);KpJ6Up>_?df(BJ`^RyRuFtdA(Q_O2S3PUJ zKs;CiDB~=ZvhCFPVMKzp+&BBu`xgDR^lIr2dfgAcTR45(t))AKojzyT_RC%>6^qYu z^q!j*-x4$c1A3GY;W=R^iI93W$xS($k2(_)=hR&!UslH}NVbx(1(u))ZtD(c8ugXRD1cVanbuzaw;zA0zJ?V6^XRk@m#t20>sU4Ko+d)$e6k2^7Z+&$Ha z<>5~n2>Xp0kru>Q|~YzG@dpG&HcWQOv|V1N!twAwrQKX;>1}h7E(nA zm`_4PQ9|KZv^I?9wTE2|xj~qOaG0d(Q7j@6)AY%;RoSSm%0}(5y~i2C(wJh-Fkfy6C=01^M!l zTu@N5S%`7w+mONJ5txKwZs~|WSZ+v8P-WN5o7N=TnS_LdKGfa5@_TM9nz!qtd8a;_ z_qmC@RUgP(^>ulxet79F8UYK3Lt%ddH-b?Bz(W#z4(noK5V9tY&mBtD?=l<-PZ@*QOZk%&vsgI7k^`42ERJ@XF@4RN_CCEcu zT>gmvv+xEP%YO1AX{yldGF84^8Y4^4i&!uLQEX$_8r1-RUhPyop((wIY6q#ZCm$z3 zFl;Hd7jhT!Yq+&MpKj{l@`1roa?KFW9&VXLCk!fU&TvK|2nQNGqp5As&@~np5^rhMgW2Nt+ zz_Q3S+O@{D<_*@Bjcd}kb9ZTX8h4prvu%mq=uH%4OzLS!@|X1H5gG)d>t zC3F?tNJTnGx46F1@R9J*@l5PAq}qPoC&u*wJ~3&bE#R;Ee5|(xzIGkFXG?5+3i0L? zuErFSky06lW*peG;mJ;Q89KvpI_FGStXPzzzyy@zRc*z8@TBFowW>oWYF7 zpWSf9GYjS|KB;u+{N)$l`02kq_Sx;iPV>2^w>+AkNZ($#{@UA*e&?s9zduZWYhC`e zv!|??HvQs;@cG%!$Ch33qovD#d9&~Cuit#`-1hdB%_nVJcjfDA)_x2tYb+uBPK@Ke z=SD@;UlO(=B0ADP!*xVNbfhoAb!_Mftd{2h=oJNC8Dwkv(E+1$hnS?SjicNkrQ2u) z1KaOvs2}Bua{RRFZvAIfOF~S!0`;O&gm;v;KRnX&!X&ZczQTu~2fZ!x1WX3`6v33u z{G}THu2Nhuo_p@d-+`}E{s=L_0M%VJV=m+u%CE|NXt06~=J=E38T@JTI`au(zbWa2 z*+82Wl|Xgp2vnsqP(@+_8CJCn*|25E5Lg28nL7qOr9v`9lc9Mbwj{JFv_8azzQn*l zT(@ers<@4))olbj74BPQ8&T0bRIA&FI=qdjg&>%R$F~s=FPLo=Do{?v(m3E{yJSg$ zw%Y;bp|b$wAf{vUOLi?S9ewjZN=H`hn)%!fZ*3QL9(&>4(y_&Z!otxe;%Xv zvPT$WaF3l7<_T=9uteA>3<(DXK^SCr^lM9=^4z^XpuWSu2rzm`cULTWAkzK0bk|Bm zKQRBCgNxymWN%?3x$!Y?*+b9Vrh@Tm)E8p|3y+U&2}h&6c9= zp6}L9*(t@J{hHn|rmlW8z2}wUE@9`<->zSE_0@a};-XPPq;+6@vg=!m6^@Ou0NeX#uI0KhK- zus0EiX(1WA#mPkSWP+V{CPYppGwoBInURI$Yw=~b1Xu$Kj+zW5tsDMe*CZ7>oD1|yEHD78T+ z5DYrDZkkEU4p^4$D7qX83Z`x8gb6`i;3Ad@2L{NDQ5JC=+a_`>9FAG1D0Dta5}nQ` zK{}tfM4g8(v1lEH+Ox%6(6hw`sdZE!Xm~Q3UeL3p^|*{yunOP&a~AgN zuHZtx%($_1b-|16p7@ud?S4;S{Z4p7r@x&xP~fRh`rXoXKYhP3Hc_SFPkueOAu;;H zAD1qFsq~8`DI6%hD(pPg{owt7Zsgu8#!7$r``rWF^G9azg?p0AW*&WvR5akJ!cOAn zk}ndgg4&pf+F*7Nl9xa*z1toG7u2Dr^8}9wh4+FH>pjaq%+Ph)j~lERhel~gV=YdL ze%0H;3jbdX>g9e2dhqwfZv7 z1b&h{NrQKsC7;O`5c=Occ6hL#SN|IrVf%F@zw5)4=o)fT-R zHy`vYkuZbEDq{#{fLLX-l~q&_;S?Dv3OvVYmgP5nhCwaMupPf&qeNkb#_4`lqoT$9 zit6_#y&?r1GmNCp1$3QL6@}v%^Bab)6S*x&gW+&2sk=JU2kCh`lIlivNafT)I=Jn; zibfuERdK+z=2@>>oHa<#bJZk?27$sh3*Jg8oUl|j2q&xx zVEN|rdDDc2&?WC4dGQv)?nS6=Jv3lgq|s^90DOt&DL8DAc-{g2N<8oPF8pA5|MqxZ zu8-%T2F2C{KygEET_W#y6M4=}@GdohAJvsxD|4 zH2}eD^$72ra*wPVp2pUsUdU?KLjvT9+Bi_~nUWiAF=S*}c(MHz4#8UPc zjmjjBKS>!Zf7I`UVX1xO`kZi%k2>KT2aN()NCa2m@7$9jsT|)NN#&dj-y*lFZ9e`I zdWm?6_MXUtSi|W^qNs?RqUylBNvc{vRW*?l6%KSu2=3*Qj0PB^qOOUQV}xphEb1z% zs&I@E**C}{uA(bvxaxY9se^QzYiOFDB-|Nu*}W*!+gycG5~#u!u7;+$m-GpCxo4oW z$ace5k#n>n!3sYB1Z%i_2v&F()MLO@DhKi=vhoeqZUG60(AxksL(8{&ch8paf}Sl2 zAQ;NJqVqe;hX_|bgiLpIrzqkS3Wk>Iqaeudy$}Tm;y4BViv~%`J}y@_JE{1KztGgY z=~KQ!6aQJ7f~j!+h#GpU;JHe6V0l!_Lj3 zGv!$dr^=dAwFP`S@flRB)n!?z6&dL+c6Ap$T4mhLexIitqm)-vURKpiO)A%{($7?? zCMh4FlvkUzM2&*AMrqye!m8BGc4boyh7-bQ@5;={7e`q_MIqGx;>V zTccXcM~NWLCs6~uqdC^0*@wC;_7O}u~!#yPYrP2 zUwYbe&mEI421d}`rR6Mwe&!4}%X3-EEJ4f?$>A82#OHY-O(B*8ULY`)z%hJQ{!XQ| z3(!-lwOpzMFTb4%HrVaKyXn{7e!H|>nt%UiZ{H7d*i>3h2k?`+-7qg?CDGzomQY6& z1j?T0xwHh4e^ObxxxE)Kf;#`p1psI#R(p{^`>4uYMK2*CPHI`YT}<;m8tK<0giqIp&&n z4)Fi}a1;WqLvAb-&CR3pIOcNm2;&$b)S`@TV1x{^1zYLu+#p-h&!T+ai?j{%Tn~Bl z!6H;h!KxIv5*oO6`m1kz^k4ilGy+KPY32QVf}c#9Nhf>C9iF5~u=e+_*r_OuafuJQ(&FcTblPeh+--X49ad3W^n=3fWj zZI-8nXf4<=Hu#*5bDT)s0d~b)=+%YmBH2-`xjdgAbt*q=)LHVP>_zhO>^gme{;K|& z@mbdH%=sv9wKe9#<5Pjic`aA8u$DxduiJO8?-5_wCp_ZY?E9OK0}sGctUk;~_fi7hwwVZFA zKQhkd@z(){fb7^Qy+lMkm`*i+VW;>oAh(!|6zU8{%DU==`*y;%aMrS$th&bz-;3!~pu^=r)TU8Q+H(H!65Bg5b6e z-yd4BSM(v!jm$D}+{EMTBFL=v5V365D)iwdP&hD*F<>+!`@si*E9}d5A1G!qV{*i6 z`#dnQnmh@-SBU%HC{FZo`k=9b}9Y=wNOafx|(=HkakFVR2M?5!);MUz6C*%lZpbepblx;am{ zNO-5_zxgAUZUue3$VfaPN>mLdd|IT6fI|Y>Fniriqi{Fw(Ws@l+7fNO#(QjC4Oa{# z@L|XX*bLY?SY-xzr5ZFykVJ+MNY(-T^?))DeX*Ccdww_P zl>MUNszMja46ilPTT!2rlMJ~aei zk4BJYiBx+Ut)1C<0V6WYhu zvYYKPg_;@NE9sT6M>K889+~<}){oxN*vRv;s);;@gSFU?j*jfDVd*|N!^EIWv zmEQUeec#C&$h`7??f^fT#OU8&B;oQww;n_LID!hcCbpJ0rt%0(D(Ab& zq^3rJ#I_0!&vX)+6iM(J^#vsv228>MlXMs`sQAHpC0tmqz4?lVPVX*^hkpQF%~W(+ zmze6G8eZUE5MJV668;wZ7Wc2lNZ^u>9^~D zVw|u3Jo5_kCX+KM=*|q(@tQ}LkX2+O*+lk|gG8wuSy=s!36l=PD<%je%8J?OlTk0% z#}W1Q9tZB7do#*Xqn53slu$}tUv^3_b?gcc}3 z3kR~<)rWxgwz^84wexLOVV_mlhoC<#czNHT#loP!h+WAJs{;F2>8b05n!i2&PU(ME ze|+b2f2i9Wz3H4go_YM%6fg?GG8YpD7xWjAkrG`{lEAHVU|uCEeCW|a4H?|b<$ z^kw&YmGMT}$QjcNp(D_dIGdfRo)K7(xR@;!mMIqomL!Ji-V}c0e>eJp|AWBa!heo_ zfVw4ASC@@}Lh6Zuc9O=hMq^B966-K}*mPq?;MBy~>RHCc#s}g@p(FH=&!R!jr&(|Y zk|x23>p$r3}q%-o0~U6(|`+$p!u+J!8<)Rq*csz z?W^GF@b9>)0iH{$I@w*F%B*(=xm+f&zF{pjuA zz31p-k5KNe`KK`7kr~YS<qsKVdbxs7P>$IJ0A?B<4Gdqh}<}cP@*a zpSW7QI(V2Jj#wl_O(Pth7lM!l7fP5LtxXoQEIyu4C9;z}1FNK}*@s-5DvMHjzdyli zVc2NCP+SMiny_mOmj8gk3@D9)-_od(P!Xa~np$&P3~I#cz+O&ga&X-NW>6ii3&Gy7 z7~Uwh{#;RJdNc(tV2c#56R%i+c9Q7jim7Syh`r^l> zztO-SenWlq*nV~EZ5Q5Ce22}~C!TfZ^-t5Y!jBEmI?7RT(+ijk>UU zqpsm&y%h+d8R3I^SkGis1w{C?!h8r+m=9pZW9LIOLI8)^fmZork?0TTPLd*rsY^Ii%hf>Cr)h9jMFUj3N-c=$ZBx% z+My`pg!b`a3DtBE$}Vhu5RCKn?^} zE0uDZFgTWuMD~QK6?Vf*!t2BQC|A>2?rvrbtp`AC`@&YFPpEM@0(?luQR*Nxh7YsZic$r#5HQh zKvv9p_;fP?pX}9yfcwQ>GnyT>HU;WAJLmW^?W+XqkDGs06^+aHFjQLDS1Goz&x?EZ zkwRY>628!vXc8OhAvXoYqN7S?_m5E37j4$YPhES%9T6X0x8?T-FaOooesJv*%YMJ< z-#>Zyi5sqe>bYyLerjQCetP`Ub2_)&O}pNGh|+r=T7PWCKVHB3`&{dVk6-yQ ztlABPaF7uep!dH>Lgk_UU>E>_z2I+(y=lIKo6hYtfRDJ>4Tht+ux#sgfDecDS#L`v-IMa&TJ|S0D=#WA~xZ#FeOxtV5HUJZ=fCp=10v}rQN(`Qdxd%AW zN&qGrc^4X1aZ@Wr-41U@lJ6W0n78C6DQyRd@52QWT zqt!kkcMxjnCCMJL7Yf6ck5q}uN8B)K3(vKX;mZtjACGu`0AZ*e7`h#Ef-~ohAktyQ zuL@79Z#dJn`bdQ_<@o@BOroCfi9RXq6ZJSXWHU|)0E#!0EYt}D8n;)k$8NB3>cybF zVc^E0bvbh?rJaC>~RxxkFcfaQtW2<9p zV9N_>;UvCYxLpv!vLHx2&v?O4sG%_~p!2q%NjRjL>X2%pl(5Z>0U8L0W4dmnRdu6A z>$GlduEqiV-|d7UtfT{=V-3gjvRa*(}_MLhkzxe2;-Lsd1j=X~q?jM*V^vZT`(1+<@!?{pA zm=)u2VU4J9Rjqf0=A3wzc#guE#@~g*BBxaI`aSk)rK+5l#Ec!}h$H*8m%B=3j+pdg zpypt|(*%K=g9A=e&JpkqjHe!SZ*`h-BF_uF*s09qg|s+YU8r8gU8%mq{YjLb5NU&$ zki1E!V5qk&@`g*gVb~tfk!B|UWQxKljsX0h9|`~8q}y{A))kX zUahD!@r2qFQcr|gn$nGgc9Xe;0Rzh&hl&}+3hFYlUV`fr5FxRbpo0y?AjMu1)r~)< zW?nQ>pirJF#u||7`VIrB?ojr?a6q)X3n;6CS7Qs)m9PS{C3neP9JZBci_xRdI^|Z5 zDG>uW>xDjuS|FWO8C8>4A-8>N z2rln!wJ=#}tL5F&@$!OJO;`XYA3n-?m#1YHdbhU_LOU`0a<*%X z+(k~SM8Y9j=yTX zsMrvTTI!xO-I(5#X6bM^=1Xt1sm&vJ6G7kxqag_11YjcV zN*y`YYcqs!aO<%#4q{i6B1Ql?wBXi8z5$h811h_QG~Gie0Gq6ifXd@g<<)#a<>5|B zLKTbjSk-quN3Tsw)m-e08`&8YAe#M9`nn(38>7lhKAf84cBlR*%o95Us>s4LunR`59>T zpeF<25MZN=y&5`88ZB#7n-c-GH440%$iWC(71Pl%WtxPYCth z;Q`yOq>X;5GoyaanXyMWGhPe@nem@@j^>1|!y|b!o_li$9h?&$7|zSabg%9M$32{o zXe+9$N-8H>8C&$lsi`^@fq|L~eXxn5U{nHZBcx)(_pW?*$)ocub)a?StTj*anFlvd zUp0ID4aGI=_RB9j<-T7Qv98Rt@_xRFpG*uAr7v#}Vu4n_S1VEkZMNTC2E8ag;7Dpz zpDE6g&k`5O7mLefIcH6BCWSg8)2$w-Cp0~>SXiu_VHKQ0=#0o^!ez=*>oVuE(9+0N zG^mJzaV~eJaHe{$ekr$1Sf*a8tKkGM*$GV>$;tLG=m5B`eso0}GV74*YfR_HN|Z>Jl!PSj@*yuTK^pgdoW|i9mjOr_r*VjW zRGkB#=O{E1-3P!JR+ECl+ED)*r2}EeivB=t31!#CUg9>UbD)?QaB-@|xV<`PWLyk@ z%1RmWk&xSF6_TRQ)EA!K)udgfpvH04bze;PV@ylQQ@>f6k#m@;N8%oRh z6hE0bq?SJ5uGOv4*2z|n#djySBw1auMQ^AX9~@sZrDj!fV^W?Jo)kYVd|G^we6GGY zyg0r>Ua2p)E(@=W4<+9Syc>Bp_D1c#z`okO$#OE(z-O&&u!Emu&EQY7&apnw{#;YC zG~3685)ddALkXWoe9@{vM5_W3t)w7N>5Vq-QK_Z6>JoLm$|q4Qk|-ijUe@D2sgWwv zzUnCq=O%kWQx#;p16lWLslT1ISAq~;_`wTBqzU=*XlOMEYK;hjS|(04%jQzyAtH1x`+BGkfmJ2_;YySLu$`3tOI(ql%lZr>V$6wq1i{Jd>=f4GQ zFsrnj+sjWT7D>>n-Agr=Wv!8uSP#2K7rTSq(VpnW+D)}W&Yz2S*G}_Ki!bmmh+pWx zFutUAeeIj#Z=4UskM&O?Rtu}wv%x&;&`)JE^mEv9_O|}}$e%(VM?Z`oVoZnCnfx7Gcj?oN*IjPh^*)QZNzrG!ga$ zW6T4s%@E86s58_A`1As5xV4q4|0B-Uh~A}byq%C zTF&H?=Fl-z+ElvbiLW1-%02hmYd`+!n{WLTEalq>VXyF$iA~;fXSeyO#nT2p$4})K z@E7rGc~P-tMOF;Itr&!psfG)Ys7mujnacG^KlQWv6Anr6hU=f>g8vvUVBp##wo(z5 zSr`rX!$1tXJW%C>XufPyozZ6<%0C5`*?_ z-fJ$Saf;>I!XzzQP#D3^bXL zjMmsPq46Abk+w9mw0UjA+Q#*b-&DV?-`D)$sQbr0u0E|l*7SIDf95Bd5dIbz;reO^ zzi=g0*y~h&Z{<1Asr;zQbD&cL^kSzre~#Rg)>S^1%mjIDOic_z9QDyr7$A;zN9RV* zi*Am-9u>`KUG$3R`%%6wdT*3Pf5>`CkPt8S=my~F7L;AE=pM>E{v7zAflv-(l2E*a z(lLu`F0ElTiJ%0fMvc9>SwjdZRnpxkM^|x*d_J##T7NE|K5UN?YMG;q|T6G-K?* z>s!4{73>_^4)4+$!*7skYRxSfKQx|ok6%BYjfe1RBf+myIUfUL14F6Uf$xRVQU~8H ziBgzsG;wz^@w=PJigG*RW>Do}*^Wwl14DHWDWph0uQU`Lkbx9y2cb zD9uuw3ZtbstqmmOB;{*}lllfjms`|0ZEjLjG0VqEguMk+T+OpDngn-u8{FO9-95Ow zySoMV;O-6s!QI_8xO)g1oI5$^-0%Cpb?8AyLWevIvA$iy;Sr5 zal@wX?Nq8adpX!Au<+1?@oku)=PVX^6KwqL`>^6k$HQ`tRX|5eriZ@A+Y-U4L-)<^ z4ONO}f0I50LB5f#!a6Pgwz)v-Y*5U5|8FkYE%VSN)wKnZLWP^oQq4DPWd&aU;4a>Zfqg- zRJK@s-rK5Z5RIDJE~!~cbe>Q;rT6GFdra!woN>53=9pA&na1gk#!;JKZW}xWx=nWR*EPZ1aSb&m{$wi72=avZAL_*!ZK^ z-epF2vIB_W3K86eMjM?>O=l3wbEHGb;j^R&q`E=(90=Gz=XAs{D^CS@ie{MXxz#>w z9gKDKbyV6B&wNK=ram|^&(9G}ES-t{UgFYb@j%Vp1}fI!*Kp2xnI^>{Y$6I|LtUgU zWe8E5@$3_rUTt#!2l1ALb+ts@6?OV#{(D@`VI6@1Hb5Ifl#_Ge(7BWGXfqaprCryW ztWib1aV85kIy4a@$*`NjM^+sl$I3h;+sn<^J>K&v`ui~8?f`emGHcN~e zI4y|%dRs!z%OZ=OEau?~owB&@h0)A5FilHLnV4K)6mqEeoCAI#?5Y0QP1RbJdtNsy zSm#BrL?DN>;F)d1d!(zuOD>KqYve$#D~yd6hh33pQOmT{80z0r4T;S>u7v8PXWyDa5_{4ca}y4crg$UJqzPg{7u$n@K*H6sY< z@1DoO^vB?($Zq=)+~<8-fnZ&l2z)&&0lqL@Qux2i97BG$-mX?Ac*B(;?sizsHYU&Z zD{$=GlJtq%(BXnNtP^3Vveod4KWOI)dL(Qn)u zyfIHr(LoP7`%dH`Y982pLr=pyC9v||KGk<6>_9mEP1t1id^I0GrCn`WX3?`i&_hzs zBo51Mh;cZzob-1n7Q6WESe*E)u8_>AQ_b*-)VxYn_Whw$1e>(L7-wu2b^E++n`D;t zbd#dXH2aLBhK%fCbdJrSP05d&=sg9Oj@#`$Kgyo~J|?DZWB7HafW?6C0!Rf#t#Fit5YOGghyN zRUlazXcZZlXFsJAn<2{k5L2_(X!xOyY2^|C;+ps1d$fwh6dwpms4 zxJziit0x+0`_iN4ivo^1iEs!>R?TYu^|6u7PZ3%(N%`fK)u-*&YeGbqr&!;T@#*r; z^oujQ58~~l6=a(CO(CcO&`F9*_f5NS*x`!J@~l89amYXQsnd;9ESmZ^Xkbi>fT}AXr_Y=`kEOw3$zzmwp4#+&#k`; zr5V~rqd}e~ub&uw>_*Qb#!U;TQHe!`bsHBTu_+VZ99qp{ESZ|T^o$0FH=6Gf-R&C8 zd~b(aFu#EQ~o>Xspr4x%8cUG7ydZh1vY*UB(dF{#3aIz~!B|D#fpZ7oVbab{D z$lpkFp&_VN)0%~BZTvbIqoPyUk(?GV-sU zNB9QpuwYjVy-Q^==8Ofn^1aLPTq3p#iW@nU49jvc_PJfw^-nzKzlKFFuL(*;r=H6- zLH`D03y6FA^bz=4e`PR5Y$S!BZRHdq3QKka^dJMJ(I|QybMX68~4O&n77r#U* zXMNPBazorEEA0dbyUcL*>@Ri|g=2C{-eH}EOjXV*ydyE1@YcnWN5avVN5WMu1ZUaS z8|5oiM^A;$MOBFNkBFMtl(i!+w59FcWFDkdd9qa8OWlNX-}{LjOya~5zY=|oK=dU( z^pa~xA+)z)f`D{>35x+L7Ew5jPblmpLw6&EvuJe_g zJiY9`qH~WTd?J#ezZ`OSXP2TFH^M05Ds+^0MNHn?=5$w3fP;dWX7gixp7Uh$s++aq zj@hQPWX3!$XWqZ580#Y>x4B#`P)|@jbLK5|CIMULbUDKlS>sbfC!m?wR(|8e$i;1) zZjbN=afJ*x+H3 zxMHjf$MDT!mjmmH6D{G}b*_&V$u>UM#74Dq?QZ6z97p_=)~rg<|$o`C)Ls z;JIC&)#c0_^N;FT5{twDWyiM0jUGPF*w*RR;cgB`yWbr93@?PogdaIU5sPI_L|+-# zc){|@i6GwBskHMT#v^}Lo`k<@lT2qVOzOx_#~=pyAvxSyO9u72XO`Np#TB74;QoGD zh{JWnUs{ycQM9oZT2K=#Mz<#E{4D(yX8F4(cOPmn(4s?%`-W%ToUF1m=HvjG06ema`d>kwH_xDV8ow^m^h;AWKx+)e ze2sVz--Vw8Yxw5&$%pJqoTa+!Vd4gQ!lq1|{|x3fX#H5?(=nZI(;|`r}lQnA7QO=!>w9$6&>(ebhVC}(NpMKwsVJ@$MT%7C56Vh{cTAI_nZ(4xJ&G` zwie(uu4}a(jrX9Vk`YoE_)DBF?kx^wumtVcIfpef*?nEEcWE8E{Rwou?kuv(=(Ilp zH{_uIP~;H{JQrQMwyKm$qB=pYRk667cru#23F;2P9G@I$9|&AJD^|%LYJY8rr=c-kj${qlVLQ)8mCP;Khb{TIkflA@-4f;;UC;n<`&gCs7^}z zkbkF7HC*~tAI!}$9`w4$xd}^8jz`Tq*V)s#;ypo|eYFdX@U@BbCN0T=$&sxEnDr+@ z53d)N{(UG0*Xtf%VTw`E$QVuLQU#5zk#;Zap?M89d0O6z^&M%tDnze3m|9-1(@_U* zYBZ4FyNGh&>wMo$Edf&$6KGMwYqxm%Peh$tA02r)-~+>p$KY)gepDWO^U*TX#yyfI z!l4!*#iC)>2?9#35Rrz%(`ps%r)r=1!((PxN!!N!UVLq&RGif@Hk*pr?csdf(L`9LNO8#z^*UL~Hwo<)1id<00V0o! zCgdD+MT=JH{@WV)WR{th=3L2NY9o3>QI{{omaIH^U*IVgmPQB4$K0WJ# z8QeL^TF0Re4}g3dO#BqsIZDU3-P%&-7&8|6r?q3sjQp4^c4n95!FJhFtLe3{3C4p% z)#<7%&pxU@lT@;~f?4!tE?0#vJky;grm}AeGn%rJrFFWz-jhfHFZ*{*Fxw6NSOIDJ z&MSPQWfXQLPqysu&sha$rv@+byeljxdb{|G{!>sY@0y%-PtLnXOjZSpQl+ZRjCPNz zW5qL`TaofI#aUmHvzu1gDxSQ?6;bmjZ%@3(Pi~aApK)`$7TtW&AN-8aFV3jI{bHmA zC?XLM2%!10o1Y`1bsY6!X}6q=i^ z?lzoF&oEj_cw62cMlvc0wi`s!d|U2jb8ex@EgI)uwKh`8#JoQ<9*a8BBk#qUY6wbO z@W}T!Ox7yi9)3$z+gcpU3L@hi#cT&{?%V)PKIfR{p{t$d)*9W^*Kq5Yz`Yn25wZ;T zj(Cs?2wuRsLzK2D$C}ZskB5ALZvrsQS5+2Jx|t>|C2#$T=W6Aie^6&CslU`hjZH zIXnF@s4aVRh|-)HKeZKXT(UNWCSzNmesdKE!YZ4M`XKvkBhCK$gaALksWa04ZoTv= z;73v((aq~;;BU~^E`V>`AE9rUdV4lXUtU(b6#l1R@<{9^k#ZDEslrssMp zulwdFgy=)awm<&a-1SWTOQ@b0Sy}sM;bKQ^CKJ3-m0VJhG*1>|<>tcU#}ZR&541~T z<DiuBXf8hL|s8jz|@T~PDjaa!qDQw zP*&xXN>)KNov%}FCG!siCG+i^ZKPG(x?M$Tg|;J^oEpg=Pz1El1+ZrJrY^3|W=3{@ zDF$tXbails{jaiuksYW;MELIyt+2C| zk*&NMsK(aF!Uezv%P8z(VrK6O;AUcHVButC19AR#@Rvo;!pzLT&CJHc0n4cBYG$Va zU}Iwq^jP{~ldL#K9Aw zL(jp%#=y?b#K{GqXJuhy;AG-tVg;};F);y{nLs0Rv2(L>>HW8agq5us3xJt}17w_v zfWW`ja{b?|{co9nZ3YScMMVXcQN+l_>@Obwr|qh4#;*Sbm#DPZ-xhzdV*!~YEvDum zDJ>>%h-*39lNl1v~o7&QSpOaL8Db|#Q|OaK;6P6jSk5Nsftm7R@&n~RB! z6Tr^S!NAPU!pim^6cd1hgM)#an}wMhz|74A@(3q4CxDfem4OL_C-Z+&T-*%I98AoA zk^8s*e_Q^``-jp4bqQek&*50O0j&QIaTd@B0Cp}`kcuGBgOmm6Ff)OC&dkce$?_k% z{i`J>3kyh(zgqrF{aeey%mlI=)ER*D9}NC&_aB4ENYPz3((4najW05`{f z1<-%{7UVIVe?9%*f%*>$pip7r05G#~{l~b>oFE_lgPk6Ll?7DhWa46AI$xaxej4u$%IwB~c3W zqp)_W#BjWXE)G4qk52T-%jjpQI2E!@;`I_tlJzL_c;F>)R>dbFzNqjPOmTg$FuH7x zT*6F#t8t*6&~e(!c8|nxg4@F9$}>du7vn3KBpmK0Z;^ja~nrQ`g_H_&+ADzbW&767%1T44Odx-&43a=#W9vzZv(RL`^UCzh^E} zBYW4sY25{ss5t&k8Y-a3QgcwZxB440pb6q{O#SD~!udBw|3{twjwfbNTIApWO>_TW zF~`iz#=-TUQFrMBrnug?84tUdNjO;llBcY99y>uLOERyn_@Ub`lKki_CBb~=O-G^`8 z9#PpYX{vvg`Q4^_6gC-zK5;<{$y)!%qVDs5@GGn{BiCI+> z(o#LJNw3||`<8!%s1q?E?vtmt|Lr{Hse~1g5W}aPo@%f6$phLKi_bThfs@u+_2sc8 z`wD@&<1aee7R~T@4tAd}bUt62e?q;>uMc8^gxUBW`-q#G4v#>khHgkAR98SsEE*18 zzyIlcVuTM0MToQ90(AH=Qr_$D5vOo4Xd#d95=H3)fwrcix!u+GDr7VEIowENF6Ih0 z;x{Ezc4@?Ie>`Wo>Q?`Zz`QXwYvj)Q+!sE*FN5}*b)HGT&Et78`eQrrc~e@6N+b_0 zRU`R+R;aE`M>WPZiR8falzp<$y(=8|2TO@s0kB?(5trM0(GvNwLHSlKOIK0Xn90umLwVnzrfI*oLOeVfWi2zgxL52L+?YY^ z7)jPr69xuRT1*oh4i*YJ^edvAlf1|$OL3jfytn;4!Ue_co&W`~_vkpuM`34w|5=+8 z_9O}IF{HLL1Mcpmp83hy$=TQ9F5#7G#rY3ve<~!LaPqj2@Q`8VVWRyAD}hf06fV)@ zuz|9U28D8ly$)z*uxQH^v!AC zFFk>xTjW7d<^N-)~436R?W<6bT{3{N*8-wHFc>r&n4*P3cOL_#-0 zu@RATfb%nW>?;hX_HRmb)X2+`qSmPNf-nL`6Gn<%jpjHm!%(ax%OUqu@>9D9@(R+l zAQA|6>OSrOuRJb*H^UB;PLGjajsEj3)>E3|R5m>E+LU2UNV;nc=Ua6f5 zcvh@k@xM}o=S@%jt&-u}BnU|vlMJqe6}@JD=04>5P4@GwMqfamheHa0Cq&X65C>

r;pvRz4`bK^BrNc_a0in%rdcD@(>Cg`Fu*+xHET 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 J?3y^${{jBNnu-7b literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..c300135 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + + // Remove tseslint.configs.recommended and replace with this + tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + tseslint.configs.stylisticTypeChecked, + + // Other configs... + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) + +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + // Enable lint rules for React + reactX.configs['recommended-typescript'], + // Enable lint rules for React DOM + reactDom.configs.recommended, + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) + +``` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..ef614d2 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,22 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs.flat.recommended, + reactRefresh.configs.vite, + ], + languageOptions: { + globals: globals.browser, + }, + }, +]) diff --git a/index.html b/index.html new file mode 100644 index 0000000..3c0d501 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + daniels-cv + + +

+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..ca03c17 --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "daniels-cv", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@tailwindcss/vite": "^4.3.3", + "clsx": "^2.1.1", + "lucide-react": "^1.27.0", + "pocketbase": "^0.27.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router-dom": "^7.18.2", + "tailwind-merge": "^3.6.0", + "tailwindcss": "^4.3.3" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@tailwindcss/forms": "^0.5.11", + "@types/node": "^24.13.2", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.3", + "eslint": "^10.6.0", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-react-refresh": "^0.5.3", + "globals": "^17.7.0", + "typescript": "~6.0.2", + "typescript-eslint": "^8.62.0", + "vite": "^8.1.1" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0e07a95 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2151 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@tailwindcss/vite': + specifier: ^4.3.3 + version: 4.3.3(vite@8.1.5(@types/node@24.13.3)(jiti@2.7.0)) + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^1.27.0 + version: 1.27.0(react@19.2.8) + pocketbase: + specifier: ^0.27.0 + version: 0.27.0 + react: + specifier: ^19.2.7 + version: 19.2.8 + react-dom: + specifier: ^19.2.7 + version: 19.2.8(react@19.2.8) + react-router-dom: + specifier: ^7.18.2 + version: 7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + tailwind-merge: + specifier: ^3.6.0 + version: 3.6.0 + tailwindcss: + specifier: ^4.3.3 + version: 4.3.3 + devDependencies: + '@eslint/js': + specifier: ^10.0.1 + version: 10.0.1(eslint@10.8.0(jiti@2.7.0)) + '@tailwindcss/forms': + specifier: ^0.5.11 + version: 0.5.11(tailwindcss@4.3.3) + '@types/node': + specifier: ^24.13.2 + version: 24.13.3 + '@types/react': + specifier: ^19.2.17 + version: 19.2.17 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.17) + '@vitejs/plugin-react': + specifier: ^6.0.3 + version: 6.0.4(vite@8.1.5(@types/node@24.13.3)(jiti@2.7.0)) + eslint: + specifier: ^10.6.0 + version: 10.8.0(jiti@2.7.0) + eslint-plugin-react-hooks: + specifier: ^7.1.1 + version: 7.1.1(eslint@10.8.0(jiti@2.7.0)) + eslint-plugin-react-refresh: + specifier: ^0.5.3 + version: 0.5.3(eslint@10.8.0(jiti@2.7.0)) + globals: + specifier: ^17.7.0 + version: 17.8.0 + typescript: + specifier: ~6.0.2 + version: 6.0.3 + typescript-eslint: + specifier: ^8.62.0 + version: 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + vite: + specifier: ^8.1.1 + version: 8.1.5(@types/node@24.13.3)(jiti@2.7.0) + +packages: + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + + '@emnapi/core@1.11.1': + resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + + '@emnapi/runtime@1.11.1': + resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + + '@emnapi/wasi-threads@1.2.2': + resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/config-helpers@0.7.0': + resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.7.2': + resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@oxc-project/types@0.139.0': + resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} + + '@rolldown/binding-android-arm64@1.1.5': + resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.1.5': + resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.1.5': + resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.1.5': + resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.1.5': + resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.1.5': + resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.1.5': + resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.1.5': + resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.1.5': + resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.1.5': + resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.1.5': + resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.1.5': + resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.1.5': + resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.1.5': + resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + + '@tailwindcss/forms@0.5.11': + resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + + '@tailwindcss/node@4.3.3': + resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==} + + '@tailwindcss/oxide-android-arm64@4.3.3': + resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.3.3': + resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.3.3': + resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.3.3': + resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3': + resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.3': + resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.3': + resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.3': + resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.3.3': + resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.3': + resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.3': + resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.3': + resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.3': + resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.3.3': + resolution: {integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} + + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.17': + resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} + + '@typescript-eslint/eslint-plugin@8.65.0': + resolution: {integrity: sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.65.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.65.0': + resolution: {integrity: sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.65.0': + resolution: {integrity: sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.65.0': + resolution: {integrity: sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.65.0': + resolution: {integrity: sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.65.0': + resolution: {integrity: sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.65.0': + resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.65.0': + resolution: {integrity: sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.65.0': + resolution: {integrity: sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.65.0': + resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitejs/plugin-react@6.0.4': + resolution: {integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 + babel-plugin-react-compiler: ^1.0.0 + vite: ^8.0.0 + peerDependenciesMeta: + '@rolldown/plugin-babel': + optional: true + babel-plugin-react-compiler: + optional: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + baseline-browser-mapping@2.11.5: + resolution: {integrity: sha512-xJo6a6YZnwZfnyGmQKWMbVOcii7XRibjOskRh+WJ9UHQoX16xrQrcIgAMQOzfvs8XiLMx6ih/fsLPF73iY2D1A==} + engines: {node: '>=6.0.0'} + hasBin: true + + brace-expansion@5.0.8: + resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + engines: {node: 20 || >=22} + + browserslist@4.28.7: + resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + caniuse-lite@1.0.30001806: + resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + electron-to-chromium@1.5.397: + resolution: {integrity: sha512-khGTy9U9x02KEtsKM8vx5A62BsRmcOsIgDpWr1ImE32Ax8GxHGPHZf+Eu9H8zOOyHJnB0jTbseyTHbq2XCT8yw==} + + enhanced-resolve@5.24.3: + resolution: {integrity: sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==} + engines: {node: '>=10.13.0'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-react-hooks@7.1.1: + resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-react-refresh@0.5.3: + resolution: {integrity: sha512-5EMmLCV98Pi4o/f/3DP/v/tNqLHMIc9I8LKClNDWhZ9JTho89/kQcitCXQBMG7sAfVRK0Ie3T2EDOzp1YXYiVA==} + peerDependencies: + eslint: ^9 || ^10 + + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.8.0: + resolution: {integrity: sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.3: + resolution: {integrity: sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@17.8.0: + resolution: {integrity: sha512-Zz/LMDZScFmkakeL2cTHzf+PbWKdpU3uclqkZT7TjDG58j5WPt0PpA+n9uPI24fZtlw07q0OtEi84K+umsRzqQ==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} + engines: {node: '>= 4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-android-arm64@1.33.0: + resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-arm64@1.33.0: + resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-darwin-x64@1.33.0: + resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-freebsd-x64@1.33.0: + resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm-gnueabihf@1.33.0: + resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-gnu@1.33.0: + resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-arm64-musl@1.33.0: + resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-gnu@1.33.0: + resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-musl@1.33.0: + resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-arm64-msvc@1.33.0: + resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss-win32-x64-msvc@1.33.0: + resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lightningcss@1.33.0: + resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} + engines: {node: '>= 12.0.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lucide-react@1.27.0: + resolution: {integrity: sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-releases@2.0.51: + resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==} + engines: {node: '>=18'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + pocketbase@0.27.0: + resolution: {integrity: sha512-K5N6d93UP/BNMbMnlZ6BUfy9VPCIvLyqhJFOsNI8OsZwzvKWEAfyD36boi5K4ECIOl5HMlo0TzuaeGdKpMwizQ==} + + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + react-dom@19.2.8: + resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} + peerDependencies: + react: ^19.2.8 + + react-router-dom@7.18.2: + resolution: {integrity: sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + + react-router@7.18.2: + resolution: {integrity: sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + + react@19.2.8: + resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} + engines: {node: '>=0.10.0'} + + rolldown@1.1.5: + resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + tailwind-merge@3.6.0: + resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} + + tailwindcss@4.3.3: + resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.65.0: + resolution: {integrity: sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + vite@8.1.5: + resolution: {integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.3.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + +snapshots: + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.7': {} + + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.7': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.7 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/traverse@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@emnapi/core@1.11.1': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.10.1(eslint@10.8.0(jiti@2.7.0))': + dependencies: + eslint: 10.8.0(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.23.5': + dependencies: + '@eslint/object-schema': 3.0.5 + debug: 4.4.3 + minimatch: 10.2.6 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.7.0': + dependencies: + '@eslint/core': 1.2.1 + + '@eslint/core@1.2.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/js@10.0.1(eslint@10.8.0(jiti@2.7.0))': + optionalDependencies: + eslint: 10.8.0(jiti@2.7.0) + + '@eslint/object-schema@3.0.5': {} + + '@eslint/plugin-kit@0.7.2': + dependencies: + '@eslint/core': 1.2.1 + levn: 0.4.1 + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.3 + optional: true + + '@oxc-project/types@0.139.0': {} + + '@rolldown/binding-android-arm64@1.1.5': + optional: true + + '@rolldown/binding-darwin-arm64@1.1.5': + optional: true + + '@rolldown/binding-darwin-x64@1.1.5': + optional: true + + '@rolldown/binding-freebsd-x64@1.1.5': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.1.5': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.1.5': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.1.5': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.1.5': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.1.5': + optional: true + + '@rolldown/binding-linux-x64-musl@1.1.5': + optional: true + + '@rolldown/binding-openharmony-arm64@1.1.5': + optional: true + + '@rolldown/binding-wasm32-wasi@1.1.5': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.1.5': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.1.5': + optional: true + + '@rolldown/pluginutils@1.0.1': {} + + '@tailwindcss/forms@0.5.11(tailwindcss@4.3.3)': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 4.3.3 + + '@tailwindcss/node@4.3.3': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.24.3 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.3 + + '@tailwindcss/oxide-android-arm64@4.3.3': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.3': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.3': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.3': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.3': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.3': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.3': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.3': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.3': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.3': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.3': + optional: true + + '@tailwindcss/oxide@4.3.3': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.3 + '@tailwindcss/oxide-darwin-arm64': 4.3.3 + '@tailwindcss/oxide-darwin-x64': 4.3.3 + '@tailwindcss/oxide-freebsd-x64': 4.3.3 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.3 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.3 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.3 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.3 + '@tailwindcss/oxide-linux-x64-musl': 4.3.3 + '@tailwindcss/oxide-wasm32-wasi': 4.3.3 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 + + '@tailwindcss/vite@4.3.3(vite@8.1.5(@types/node@24.13.3)(jiti@2.7.0))': + dependencies: + '@tailwindcss/node': 4.3.3 + '@tailwindcss/oxide': 4.3.3 + tailwindcss: 4.3.3 + vite: 8.1.5(@types/node@24.13.3)(jiti@2.7.0) + + '@tybys/wasm-util@0.10.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/esrecurse@4.3.1': {} + + '@types/estree@1.0.9': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@24.13.3': + dependencies: + undici-types: 7.18.2 + + '@types/react-dom@19.2.3(@types/react@19.2.17)': + dependencies: + '@types/react': 19.2.17 + + '@types/react@19.2.17': + dependencies: + csstype: 3.2.3 + + '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/type-utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.65.0 + eslint: 10.8.0(jiti@2.7.0) + ignore: 7.0.6 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.65.0 + debug: 4.4.3 + eslint: 10.8.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.65.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3) + '@typescript-eslint/types': 8.65.0 + debug: 4.4.3 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.65.0': + dependencies: + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 + + '@typescript-eslint/tsconfig-utils@8.65.0(typescript@6.0.3)': + dependencies: + typescript: 6.0.3 + + '@typescript-eslint/type-utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + debug: 4.4.3 + eslint: 10.8.0(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.65.0': {} + + '@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/project-service': 8.65.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3) + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 + debug: 4.4.3 + minimatch: 10.2.6 + semver: 7.8.5 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + eslint: 10.8.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.65.0': + dependencies: + '@typescript-eslint/types': 8.65.0 + eslint-visitor-keys: 5.0.1 + + '@vitejs/plugin-react@6.0.4(vite@8.1.5(@types/node@24.13.3)(jiti@2.7.0))': + dependencies: + '@rolldown/pluginutils': 1.0.1 + vite: 8.1.5(@types/node@24.13.3)(jiti@2.7.0) + + acorn-jsx@5.3.2(acorn@8.18.0): + dependencies: + acorn: 8.18.0 + + acorn@8.18.0: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + balanced-match@4.0.4: {} + + baseline-browser-mapping@2.11.5: {} + + brace-expansion@5.0.8: + dependencies: + balanced-match: 4.0.4 + + browserslist@4.28.7: + dependencies: + baseline-browser-mapping: 2.11.5 + caniuse-lite: 1.0.30001806 + electron-to-chromium: 1.5.397 + node-releases: 2.0.51 + update-browserslist-db: 1.2.3(browserslist@4.28.7) + + caniuse-lite@1.0.30001806: {} + + clsx@2.1.1: {} + + convert-source-map@2.0.0: {} + + cookie@1.1.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + detect-libc@2.1.2: {} + + electron-to-chromium@1.5.397: {} + + enhanced-resolve@5.24.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-plugin-react-hooks@7.1.1(eslint@10.8.0(jiti@2.7.0)): + dependencies: + '@babel/core': 7.29.7 + '@babel/parser': 7.29.7 + eslint: 10.8.0(jiti@2.7.0) + hermes-parser: 0.25.1 + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-refresh@0.5.3(eslint@10.8.0(jiti@2.7.0)): + dependencies: + eslint: 10.8.0(jiti@2.7.0) + + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.9 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.8.0(jiti@2.7.0): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.7.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.2 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.6 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.7.0 + transitivePeerDependencies: + - supports-color + + espree@11.2.0: + dependencies: + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.3 + keyv: 4.5.4 + + flatted@3.4.3: {} + + fsevents@2.3.3: + optional: true + + gensync@1.0.0-beta.2: {} + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@17.8.0: {} + + graceful-fs@4.2.11: {} + + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + + ignore@5.3.2: {} + + ignore@7.0.6: {} + + imurmurhash@0.1.4: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + isexe@2.0.0: {} + + jiti@2.7.0: {} + + js-tokens@4.0.0: {} + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-android-arm64@1.33.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.33.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.33.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.33.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.33.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.33.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.33.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.33.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.33.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.33.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.33.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + lightningcss@1.33.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.33.0 + lightningcss-darwin-arm64: 1.33.0 + lightningcss-darwin-x64: 1.33.0 + lightningcss-freebsd-x64: 1.33.0 + lightningcss-linux-arm-gnueabihf: 1.33.0 + lightningcss-linux-arm64-gnu: 1.33.0 + lightningcss-linux-arm64-musl: 1.33.0 + lightningcss-linux-x64-gnu: 1.33.0 + lightningcss-linux-x64-musl: 1.33.0 + lightningcss-win32-arm64-msvc: 1.33.0 + lightningcss-win32-x64-msvc: 1.33.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lucide-react@1.27.0(react@19.2.8): + dependencies: + react: 19.2.8 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + mini-svg-data-uri@1.4.4: {} + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.8 + + ms@2.1.3: {} + + nanoid@3.3.16: {} + + natural-compare@1.4.0: {} + + node-releases@2.0.51: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.5: {} + + pocketbase@0.27.0: {} + + postcss@8.5.23: + dependencies: + nanoid: 3.3.16 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + punycode@2.3.1: {} + + react-dom@19.2.8(react@19.2.8): + dependencies: + react: 19.2.8 + scheduler: 0.27.0 + + react-router-dom@7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + react: 19.2.8 + react-dom: 19.2.8(react@19.2.8) + react-router: 7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + + react-router@7.18.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + dependencies: + cookie: 1.1.1 + react: 19.2.8 + set-cookie-parser: 2.7.2 + optionalDependencies: + react-dom: 19.2.8(react@19.2.8) + + react@19.2.8: {} + + rolldown@1.1.5: + dependencies: + '@oxc-project/types': 0.139.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.1.5 + '@rolldown/binding-darwin-arm64': 1.1.5 + '@rolldown/binding-darwin-x64': 1.1.5 + '@rolldown/binding-freebsd-x64': 1.1.5 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 + '@rolldown/binding-linux-arm64-gnu': 1.1.5 + '@rolldown/binding-linux-arm64-musl': 1.1.5 + '@rolldown/binding-linux-ppc64-gnu': 1.1.5 + '@rolldown/binding-linux-s390x-gnu': 1.1.5 + '@rolldown/binding-linux-x64-gnu': 1.1.5 + '@rolldown/binding-linux-x64-musl': 1.1.5 + '@rolldown/binding-openharmony-arm64': 1.1.5 + '@rolldown/binding-wasm32-wasi': 1.1.5 + '@rolldown/binding-win32-arm64-msvc': 1.1.5 + '@rolldown/binding-win32-x64-msvc': 1.1.5 + + scheduler@0.27.0: {} + + semver@6.3.1: {} + + semver@7.8.5: {} + + set-cookie-parser@2.7.2: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + source-map-js@1.2.1: {} + + tailwind-merge@3.6.0: {} + + tailwindcss@4.3.3: {} + + tapable@2.3.3: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + ts-api-utils@2.5.0(typescript@6.0.3): + dependencies: + typescript: 6.0.3 + + tslib@2.8.1: + optional: true + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.8.0(jiti@2.7.0) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + typescript@6.0.3: {} + + undici-types@7.18.2: {} + + update-browserslist-db@1.2.3(browserslist@4.28.7): + dependencies: + browserslist: 4.28.7 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + vite@8.1.5(@types/node@24.13.3)(jiti@2.7.0): + dependencies: + lightningcss: 1.33.0 + picomatch: 4.0.5 + postcss: 8.5.23 + rolldown: 1.1.5 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 24.13.3 + fsevents: 2.3.3 + jiti: 2.7.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + yallist@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-validation-error@4.0.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + + zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..c773c71 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +minimumReleaseAgeExclude: + - react-router-dom@7.18.2 + - react-router@7.18.2 diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons.svg b/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..e69de29 diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..027062b --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,24 @@ +import '@/App.css' +import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; +import Welcome from '@pages/Welcome' +import ServerDashboardMockup from '@pages/ServerDashboardMockup'; +import UiShowcase from '@pages/UiShowcase'; + +function App() { + + return ( + + + {/* Route par défaut (Page d'accueil) */} + } /> + } /> + } /> + + {/* Catch-all : Redirige vers l'accueil si l'URL n'existe pas (Erreur 404) */} + } /> + + + ) +} + +export default App diff --git a/src/assets/hero.png b/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..02251f4b956c55af2d76fd0788124d7eee2b45eb GIT binary patch literal 13057 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 P00000NkvXXu0mjft=yBf literal 0 HcmV?d00001 diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/vite.svg b/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/src/components/ui/Badge.tsx b/src/components/ui/Badge.tsx new file mode 100644 index 0000000..9d82367 --- /dev/null +++ b/src/components/ui/Badge.tsx @@ -0,0 +1,42 @@ +import { HTMLAttributes } from "react"; +import { cn } from "@utils/utils"; + +interface BadgeProps extends HTMLAttributes { + variant?: "default" | "success" | "warning" | "danger" | "info"; +} + +export function Badge({ + className, + variant = "default", + children, + ...props +}: BadgeProps) { + + // Petites ombres bombées (3px au lieu de 6px) + const lightSmallExtrude = "shadow-[3px_3px_6px_#c5c5c5,-3px_-3px_6px_#ffffff]"; + const darkSmallExtrude = "dark:shadow-[3px_3px_6px_#121926,-3px_-3px_6px_#2a3850]"; + + const variants = { + default: "text-slate-600 dark:text-slate-400", + success: "text-emerald-600 dark:text-emerald-400", + warning: "text-amber-600 dark:text-amber-400", + danger: "text-rose-600 dark:text-rose-400", + info: "text-blue-600 dark:text-blue-400", + }; + + return ( + + {children} + + ); +} \ No newline at end of file diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx new file mode 100644 index 0000000..bb98f85 --- /dev/null +++ b/src/components/ui/Button.tsx @@ -0,0 +1,78 @@ +import { ButtonHTMLAttributes } from "react"; +import { Loader2 } from "lucide-react"; +import { cn } from "@utils/utils"; + +interface ButtonProps extends ButtonHTMLAttributes { + variant?: "primary" | "secondary" | "danger" | "success"; + size?: "sm" | "md" | "lg"; + isLoading?: boolean; +} + +export function Button({ + className, + variant = "primary", + size = "md", + isLoading = false, + children, + disabled, + ...props +}: ButtonProps) { + + // --- OMBRES NEUMORPHIC CALCULÉES SUR MESURE --- + + // ☀️ LIGHT (#e8e8e8) : Ombre foncée (#c5c5c5) et reflet clair (#ffffff) + const lightShadow = "shadow-[6px_6px_12px_#c5c5c5,-6px_-6px_12px_#ffffff]"; + const lightActive = "active:shadow-[4px_4px_12px_#c5c5c5,-4px_-4px_12px_#ffffff]"; + + // 🌙 DARK (#1e293b) : Ombre foncée (#121926) et reflet clair (#2a3850) + const darkShadow = "dark:shadow-[6px_6px_12px_#121926,-6px_-6px_12px_#2a3850]"; + const darkActive = "dark:active:shadow-[4px_4px_12px_#121926,-4px_-4px_12px_#2a3850]"; + + // --- TEXTES --- + const variants = { + primary: "text-[#090909] dark:text-white font-bold", + secondary: "text-slate-500 dark:text-slate-400 font-bold", + danger: "text-rose-600 dark:text-rose-400 font-bold", + success: "text-emerald-600 dark:text-emerald-400 font-bold", + }; + + // --- TAILLES --- + const sizes = { + sm: "px-5 py-2 text-sm rounded-md", + md: "px-[1.7em] py-[0.7em] text-[18px] rounded-[0.5em]", + lg: "px-10 py-4 text-xl rounded-xl", + }; + + return ( + + ); +} \ No newline at end of file diff --git a/src/components/ui/Card.tsx b/src/components/ui/Card.tsx new file mode 100644 index 0000000..0465505 --- /dev/null +++ b/src/components/ui/Card.tsx @@ -0,0 +1,26 @@ +import { HTMLAttributes } from "react"; +import { cn } from "@utils/utils"; + +interface CardProps extends HTMLAttributes {} + +export function Card({ className, children, ...props }: CardProps) { + + // Ombres larges calculées pour #e8e8e8 et #1e293b + const lightShadow = "shadow-[8px_8px_16px_#c5c5c5,-8px_-8px_16px_#ffffff]"; + const darkShadow = "dark:shadow-[8px_8px_16px_#121926,-8px_-8px_16px_#2a3850]"; + + return ( +
+ {children} +
+ ); +} \ No newline at end of file diff --git a/src/components/ui/Checkbox.tsx b/src/components/ui/Checkbox.tsx new file mode 100644 index 0000000..2ecb58a --- /dev/null +++ b/src/components/ui/Checkbox.tsx @@ -0,0 +1,47 @@ +import { InputHTMLAttributes } from "react"; +import { Check } from "lucide-react"; +import { cn } from "@utils/utils"; + +interface CheckboxProps extends Omit, 'type'> { + label?: string; +} + +export function Checkbox({ className, label, checked, ...props }: CheckboxProps) { + + // Ombres (Creusé) + const lightInset = "shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff]"; + const darkInset = "dark:shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + return ( + + ); +} \ No newline at end of file diff --git a/src/components/ui/Input.tsx b/src/components/ui/Input.tsx new file mode 100644 index 0000000..65a13d1 --- /dev/null +++ b/src/components/ui/Input.tsx @@ -0,0 +1,58 @@ +import { InputHTMLAttributes } from "react"; +import { cn } from "@utils/utils"; + +export interface InputProps extends InputHTMLAttributes { + label?: string; + error?: string; +} + +export function Input({ + className, + type = "text", + label, + error, + ref, + ...props +}: InputProps) { + + // Ombres internes (Creusées) + const lightInset = "shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff]"; + const darkInset = "dark:shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + // Ombres au clic (Focus) - Légèrement plus intenses + const lightFocus = "focus:shadow-[inset_6px_6px_10px_#c5c5c5,inset_-6px_-6px_10px_#ffffff]"; + const darkFocus = "dark:focus:shadow-[inset_6px_6px_10px_#121926,inset_-6px_-6px_10px_#2a3850]"; + + return ( +
+ {label && ( + + )} + + + + {error && ( + + {error} + + )} +
+ ); +} \ No newline at end of file diff --git a/src/components/ui/Navbar.tsx b/src/components/ui/Navbar.tsx new file mode 100644 index 0000000..cecf80d --- /dev/null +++ b/src/components/ui/Navbar.tsx @@ -0,0 +1,62 @@ +import { useState } from "react"; +import { Home, Server, ShieldCheck, Settings } from "lucide-react"; +import { cn } from "@utils/utils"; +import { Button } from "@ui/Button"; +import { Card } from "@ui/Card"; + +export function Navbar({ className }: { className?: string }) { + const [activeTab, setActiveTab] = useState("dashboard"); + + const navItems = [ + { id: "dashboard", label: "Tableau de bord", icon: Home }, + { id: "nodes", label: "Serveurs", icon: Server }, + { id: "security", label: "Sécurité", icon: ShieldCheck }, + { id: "settings", label: "Paramètres", icon: Settings }, + ]; + + // Les ombres pour le bouton ACTIF (Creusé / Inset) + // Le "!" force Tailwind à écraser l'ombre bombée par défaut du + ); + })} + + + ); +} \ No newline at end of file diff --git a/src/components/ui/Radio.tsx b/src/components/ui/Radio.tsx new file mode 100644 index 0000000..67db45e --- /dev/null +++ b/src/components/ui/Radio.tsx @@ -0,0 +1,49 @@ +import { InputHTMLAttributes } from "react"; +import { cn } from "@utils/utils"; + +interface RadioProps extends Omit, 'type'> { + label?: string; +} + +export function Radio({ className, label, checked, ...props }: RadioProps) { + + // Cercle extérieur (Creusé) + const lightInset = "shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff]"; + const darkInset = "dark:shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + // Bille intérieure (Bombée) + const lightExtrude = "shadow-[2px_2px_4px_#c5c5c5,-2px_-2px_4px_#ffffff]"; + const darkExtrude = "dark:shadow-[2px_2px_4px_#121926,-2px_-2px_4px_#2a3850]"; + + return ( + + ); +} \ No newline at end of file diff --git a/src/components/ui/Sidebar.tsx b/src/components/ui/Sidebar.tsx new file mode 100644 index 0000000..fa67fcb --- /dev/null +++ b/src/components/ui/Sidebar.tsx @@ -0,0 +1,100 @@ +import { useState } from "react"; +import { Home, Server, ShieldCheck, Activity, Settings, LogOut, Shield } from "lucide-react"; +import { cn } from "@utils/utils"; +import { Button } from "@ui/Button"; +import { Card } from "@ui/Card"; + +export function Sidebar({ className }: { className?: string }) { + // État local (à remplacer par votre routeur plus tard) + const [activeTab, setActiveTab] = useState("dashboard"); + + const navItems = [ + { id: "dashboard", label: "Tableau de bord", icon: Home }, + { id: "nodes", label: "Serveurs", icon: Server }, + { id: "security", label: "Sécurité", icon: ShieldCheck }, + { id: "metrics", label: "Télémétrie", icon: Activity }, + ]; + + // Ombres du "Plateau" (La Carte de contour) - Plus larges (8px) + const cardLightShadow = "shadow-[8px_8px_16px_#c5c5c5,-8px_-8px_16px_#ffffff]"; + const cardDarkShadow = "dark:shadow-[8px_8px_16px_#121926,-8px_-8px_16px_#2a3850]"; + + // Ombres du bouton ACTIF (Creusé / Inset) + const insetLight = "!shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff]"; + const insetDark = "dark:!shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + return ( + + {/* 1. HEADER / LOGO */} +
+ {/* Petit logo creusé pour le style */} +
+ +
+
+

AEGIS

+ by GISE +
+
+ + {/* 2. NAVIGATION PRINCIPALE */} + + + {/* 3. FOOTER (Paramètres / Déconnexion) */} +
+ + + {/* Bouton de déconnexion (Style Danger) */} + +
+
+ ); +} \ No newline at end of file diff --git a/src/components/ui/Switch.tsx b/src/components/ui/Switch.tsx new file mode 100644 index 0000000..bf40bf4 --- /dev/null +++ b/src/components/ui/Switch.tsx @@ -0,0 +1,51 @@ +import { InputHTMLAttributes } from "react"; +import { cn } from "@utils/utils"; + +interface SwitchProps extends Omit, 'type'> { + label?: string; +} + +export function Switch({ className, label, checked, ...props }: SwitchProps) { + + // Ombres du rail (Creusé) + const lightInset = "shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff]"; + const darkInset = "dark:shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + // Ombres du bouton (Bombé) + const lightExtrude = "shadow-[3px_3px_6px_#c5c5c5,-3px_-3px_6px_#ffffff]"; + const darkExtrude = "dark:shadow-[3px_3px_6px_#121926,-3px_-3px_6px_#2a3850]"; + + return ( + + ); +} \ No newline at end of file diff --git a/src/components/ui/ThemeToggle.tsx b/src/components/ui/ThemeToggle.tsx new file mode 100644 index 0000000..6e5dfb4 --- /dev/null +++ b/src/components/ui/ThemeToggle.tsx @@ -0,0 +1,52 @@ +import { Sun, Moon } from "lucide-react"; +import { cn } from "@utils/utils"; + +interface ThemeToggleProps { + isDark: boolean; + toggleTheme: () => void; +} + +export function ThemeToggle({ isDark, toggleTheme }: ThemeToggleProps) { + + const lightInset = "shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff]"; + const darkInset = "dark:shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + const lightExtrude = "shadow-[3px_3px_6px_#c5c5c5,-3px_-3px_6px_#ffffff]"; + const darkExtrude = "dark:shadow-[3px_3px_6px_#121926,-3px_-3px_6px_#2a3850]"; + + return ( + + ); +} \ No newline at end of file diff --git a/src/hooks/useTheme.ts b/src/hooks/useTheme.ts new file mode 100644 index 0000000..83093a6 --- /dev/null +++ b/src/hooks/useTheme.ts @@ -0,0 +1,42 @@ +import { useState, useEffect } from 'react'; + +type Theme = 'light' | 'dark'; + +export function useTheme() { + // Initialisation de l'état avec une fonction pour ne lire le localStorage qu'une seule fois + const [theme, setTheme] = useState(() => { + // 1. On vérifie si un choix a déjà été sauvegardé + const storedTheme = localStorage.getItem('theme'); + if (storedTheme === 'dark' || storedTheme === 'light') { + return storedTheme; + } + + // 2. Sinon, on vérifie la préférence système de l'utilisateur + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { + return 'dark'; + } + + // 3. Par défaut, mode clair + return 'light'; + }); + + // À chaque fois que 'theme' change, on met à jour le HTML et on sauvegarde + useEffect(() => { + const root = window.document.documentElement; + + if (theme === 'dark') { + root.classList.add('dark'); + } else { + root.classList.remove('dark'); + } + + localStorage.setItem('theme', theme); + }, [theme]); + + // Fonction utilitaire pour basculer facilement + const toggleTheme = () => { + setTheme((prevTheme) => (prevTheme === 'dark' ? 'light' : 'dark')); + }; + + return { theme, isDark: theme === 'dark', toggleTheme, setTheme }; +} \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..6f83543 --- /dev/null +++ b/src/index.css @@ -0,0 +1,14 @@ +@import "tailwindcss"; +@plugin "@tailwindcss/forms"; + +@variant dark (&:where(.dark, .dark *)); + +@theme { + --color-gise-blue: #2563eb; +} + +@layer base { + html { + scroll-behavior: smooth; + } +} \ No newline at end of file diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..bef5202 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/src/pages/ServerDashboardMockup.tsx b/src/pages/ServerDashboardMockup.tsx new file mode 100644 index 0000000..75c29e1 --- /dev/null +++ b/src/pages/ServerDashboardMockup.tsx @@ -0,0 +1,41 @@ +import { Card } from "@ui/Card"; +import { Button } from "@ui/Button"; +import { Badge } from "@ui/Badge"; +import { Input } from "@ui/Input"; +import { Server, Save } from "lucide-react"; + +export default function ServerDashboardMockup() { + return ( + + {/* En-tête avec Badge */} +
+
+
+ +
+
+

Proxmox VE

+

Node-01 (Estinnes)

+
+
+ En ligne +
+ + {/* Formulaire avec Input */} +
+ + +
+ + {/* Actions avec Buttons */} +
+ + +
+
+ ); +} \ No newline at end of file diff --git a/src/pages/UiShowcase.tsx b/src/pages/UiShowcase.tsx new file mode 100644 index 0000000..ef33302 --- /dev/null +++ b/src/pages/UiShowcase.tsx @@ -0,0 +1,203 @@ +import { + Component, Layers, MousePointer2, TextCursorInput, + Server, ShieldCheck, Mail, Lock, ArrowRight, TrendingUp, + Sun, Moon +} from 'lucide-react'; +import { Button } from '@ui/Button'; +import { Badge } from '@ui/Badge'; +import { Card } from '@ui/Card'; +import { Input } from '@ui/Input'; +import { Switch } from '@ui/Switch'; +import { Checkbox } from '@ui/Checkbox'; +import { Radio } from '@ui/Radio'; +import { ThemeToggle } from '@ui/ThemeToggle'; +import { Navbar } from '@ui/Navbar'; +import { Sidebar } from '@ui/Sidebar'; +import { ToggleRight } from 'lucide-react'; +import { useTheme } from '@hooks/useTheme'; + +export default function UiShowcase() { + + // Utilisation ultra-propre du Hook + const { isDark, toggleTheme } = useTheme(); + + const neuSmallExtrude = "shadow-[3px_3px_6px_#c5c5c5,-3px_-3px_6px_#ffffff] dark:shadow-[3px_3px_6px_#121926,-3px_-3px_6px_#2a3850]"; + const neuInset = "shadow-[inset_4px_4px_8px_#c5c5c5,inset_-4px_-4px_8px_#ffffff] dark:shadow-[inset_4px_4px_8px_#121926,inset_-4px_-4px_8px_#2a3850]"; + + return ( +
+ + {/* 2. LA ZONE DE CONTENU (Prend l'espace restant et scrolle si nécessaire) */} +
+ +
+ {/* HEADER DU CONTENU */} +
+
+

+ Tableau de bord +

+

+ Vue d'ensemble de l'infrastructure GISE. +

+
+ + {/* Le bouton Thème reste en haut à droite */} + +
+ +
+ +
+ + {/* SECTION 1 : COMPOSANTS PRIMITIFS */} +
+ +
+ {/* BADGES */} +
+

+ Badges +

+
+ Standard + Information + Opérationnel + Maintenance + Critique +
+
+ + {/* BUTTONS */} +
+

+ Buttons (Cliquez !) +

+
+ + + + +
+
+
+ +
+

+ Inputs (Forms) +

+ + + + + +
+
+ + {/* SECTION 2 : WIDGETS COMPLEXES */} +
+

Widgets & Assemblages

+ +
+ + {/* WIDGET 1 : METRIC / KPI */} + +
+
+ +
+ + +12% + +
+
+

Menaces bloquées

+

24k

+
+
+ + {/* WIDGET 2 : SERVER STATUS */} + +
+
+
+ +
+
+

Node-01

+

Proxmox Cluster

+
+
+ UP +
+ +
+ + +
+
+ + {/* WIDGET 3 : QUICK AUTH FORM */} + +
+

Accès AEGIS

+

Authentification requise.

+
+
+
+ + +
+
+ + +
+
+ +
+ +
+

+ Toggles & Controls +

+ + + + {/* Groupe Switch */} +
+ + +
+ +
+ + {/* Groupe Checkbox */} +
+ + +
+ +
+ + {/* Groupe Radio */} +
+ + +
+ +
+
+ +
+
+ + + +
+
+
+ ); +} \ No newline at end of file diff --git a/src/pages/Welcome.tsx b/src/pages/Welcome.tsx new file mode 100644 index 0000000..547d49e --- /dev/null +++ b/src/pages/Welcome.tsx @@ -0,0 +1,79 @@ +import { useState } from 'react'; +import { Rocket, Zap, ShieldCheck, Database, LayoutTemplate } from 'lucide-react'; +import { cn } from '@utils/utils'; + +export default function Welcome() { + const [clickCount, setClickCount] = useState(0); + + // Exemple de données pour générer la grille de fonctionnalités + const stackFeatures = [ + { icon: Zap, title: "Vite + React 19", desc: "Compilation ultra-rapide et rendu optimisé.", color: "text-amber-500", bg: "bg-amber-500/10" }, + { icon: LayoutTemplate, title: "Tailwind CSS v4", desc: "Stylisation utilitaire avec support natif du mode sombre.", color: "text-blue-500", bg: "bg-blue-500/10" }, + { icon: Database, title: "PocketBase Ready", desc: "Backend embarqué prêt à l'emploi (Auth, DB, Storage).", color: "text-emerald-500", bg: "bg-emerald-500/10" }, + { icon: ShieldCheck, title: "Architecture Clean", desc: "Dossiers modulaires, composants réutilisables et alias '@/'.", color: "text-indigo-500", bg: "bg-indigo-500/10" }, + ]; + + return ( +
+ + {/* Container Principal avec effet Glass */} +
+ + {/* Décors lumineux en arrière-plan du conteneur */} +
+
+ +
+ + {/* En-tête */} +
+
+ +
+

+ Template Master +

+

+ Votre environnement de développement est parfaitement configuré. Commencez à construire votre prochaine application web sécurisée. +

+
+ + {/* Grille de la Stack Technique */} +
+ {stackFeatures.map((feature, index) => { + const Icon = feature.icon; + return ( +
+
+ +
+
+

{feature.title}

+

{feature.desc}

+
+
+ ); + })} +
+ + {/* Test d'interactivité (State & Tailwind Utils) */} +
+ +

+ Éditez src/pages/Welcome.tsx pour commencer. +

+
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/src/services/pocketbase.ts b/src/services/pocketbase.ts new file mode 100644 index 0000000..ecc72b1 --- /dev/null +++ b/src/services/pocketbase.ts @@ -0,0 +1,7 @@ +import PocketBase from 'pocketbase'; + +// L'URL de votre serveur PocketBase (stockée dans le .env pour la sécurité) +const PB_URL = import.meta.env.VITE_PB_URL; + +// On exporte l'instance pour l'utiliser dans toute l'application +export const pb = new PocketBase(PB_URL); \ No newline at end of file diff --git a/src/utils/utils.ts b/src/utils/utils.ts new file mode 100644 index 0000000..daab5de --- /dev/null +++ b/src/utils/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} \ No newline at end of file diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..3a32213 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023", "DOM"], + "module": "esnext", + "types": ["vite/client"], + "allowArbitraryExtensions": true, + "skipLibCheck": true, + + "paths": { + "@components/*": ["./src/components/*"], + "@ui/*": ["./src/components/ui/*"], + "@common/*": ["./src/components/common/*"], + "@pages/*": ["./src/pages/*"], + "@hooks/*": ["./src/hooks/*"], + "@layouts/*": ["./src/layouts/*"], + "@features/*": ["./src/features/*"], + "@services/*": ["./src/services/*"], + "@utils/*": ["./src/utils/*"], + "@assets/*": ["./src/assets/*"], + "@types/*": ["./src/types/*"], + }, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": false, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "noUnusedLocals": false, + "noUnusedParameters": false, + "erasableSyntaxOnly": false, + "noFallthroughCasesInSwitch": false + }, + "include": ["src"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..8455dcb --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023"], + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "module": "nodenext", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..7c89f9f --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,28 @@ +import { defineConfig } from 'vite' +import tailwindcss from '@tailwindcss/vite' +import react from '@vitejs/plugin-react' +import path from 'path' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + react(), + tailwindcss(), + ], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + '@components': path.resolve(__dirname, './src/components'), + '@ui': path.resolve(__dirname, './src/components/ui'), + '@common': path.resolve(__dirname, './src/components/common'), + '@pages': path.resolve(__dirname, './src/pages'), + '@hooks': path.resolve(__dirname, './src/hooks'), + '@layouts': path.resolve(__dirname, './src/layouts'), + '@features': path.resolve(__dirname, './src/features'), + '@services': path.resolve(__dirname, './src/services'), + '@utils': path.resolve(__dirname, './src/utils'), + '@assets': path.resolve(__dirname, './src/assets'), + '@types': path.resolve(__dirname, './src/types'), + } + } +})