From 34f99049860da27bbff87947568aba4dabb84f4e Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 3 Oct 2022 20:46:29 +0200 Subject: [PATCH 01/11] started directus doc --- docs/directus/assets/admin.jpg | Bin 0 -> 44411 bytes .../assets/collection-imbriquee-edition.jpg | Bin 0 -> 46200 bytes docs/directus/assets/collection-imbriquee.jpg | Bin 0 -> 51481 bytes docs/directus/assets/collections-accueil.jpg | Bin 0 -> 78358 bytes docs/directus/assets/collections-asso.jpg | Bin 0 -> 34520 bytes docs/directus/assets/directus-login.jpg | Bin 0 -> 16690 bytes docs/directus/assets/mediatheque.jpg | Bin 0 -> 71106 bytes docs/directus/index.md | 29 +++ package.json | 4 +- yarn.lock | 224 +++++++++--------- 10 files changed, 139 insertions(+), 118 deletions(-) create mode 100644 docs/directus/assets/admin.jpg create mode 100644 docs/directus/assets/collection-imbriquee-edition.jpg create mode 100644 docs/directus/assets/collection-imbriquee.jpg create mode 100644 docs/directus/assets/collections-accueil.jpg create mode 100644 docs/directus/assets/collections-asso.jpg create mode 100644 docs/directus/assets/directus-login.jpg create mode 100644 docs/directus/assets/mediatheque.jpg create mode 100644 docs/directus/index.md diff --git a/docs/directus/assets/admin.jpg b/docs/directus/assets/admin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9218ba91e5018d7d8d3674e14c28a25d408ecf44 GIT binary patch literal 44411 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 literal 0 HcmV?d00001 diff --git a/docs/directus/assets/collection-imbriquee-edition.jpg b/docs/directus/assets/collection-imbriquee-edition.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25f24b1687e008a0da953513e17c40c01e7ffc96 GIT binary patch literal 46200 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/directus/assets/collection-imbriquee.jpg b/docs/directus/assets/collection-imbriquee.jpg new file mode 100644 index 0000000000000000000000000000000000000000..997ad5fc3c7eaf014ba6cfd8630ec7e66ff7f45d GIT binary patch literal 51481 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

(DsNtHY(T?X^onH*X(tHf6GRlNEH z(WVx*PjCy6%+IY)+nZ`wJ~E?h4@u72f$NzvZi?Z1)-+U?e^BY6Y@Cqon>c)3Qd63* zvvny|k$4z8It$kq-70DsK%A@6MLFR3mczcBqrLW03EB|>J6g?A?F&0V+oWnNLTkF` zz#-6QFZ#vBPaAXAN61rRx|unw1|EIB<`cm3QsEZh2tw*?+go%Y05>idDzzebimt^f z_2j<-s#>X=<8*p#8E4KK`oE8Q7{!2XcPYFYoJex$j6;2lE8Fh}p)SUa>K?mJn+eYR zYUEJKtaa*^J?MZtu5${I?fXil(Lcnk5-0D(BE(;fymvY_?mB(WC2H^f7}RratokaI{<=tj$Ii|F-WL}G5KX&~lTmk(L;#xXBlEQ6x;pnO z@fr>>2xDW=8!9K3rInbtPq@CXmJ*ucbjN&ijKux;e7TInoODshgeSEnMG~$v1PUql zWf_lGk{i|lV_$XL+RfgTFUoXS3NqBC^LmVDAl(~m4U)I4+j}6cZ(Dq9b)oT;gH!06 zOp`;Fn$^Ilo)H`|OD9yu6#G&Dm99?Us|hGU%2CU4gp0XwT{8Nw9yU*tzmSs_2{(cxFp6Ahz8N3QZFc>gLH@;}vH& zvGw$M8+Z`l@nt2^9Dh64c2RiuMR*phZP@AtTU}P(dHeXh9oXeeJIRN2f*q+yOgvbcEJT1ao7yg?5}6 z=~GaB{3QN1%J`rcQXQTE!iW>*r znQ$P^_!LYRjjVT_c|iNtQdocQQzn}hzMLpZB5|)I$%bEFBb^u5>jmAK10E)jK{s}7 zb7m@@M@nN_krtNQ$qR2y!r~k7+qVK!>krYVNZyvC;!Bk51{FNu^4J4MFa}S-`h`>D z1_kLRhq&5_Z@8d7sY3W(c*#?7ctDUBhp|Dk(z25a2)PBUMBi(tM5$c+ViB+oPc+GI z_5hiJY;BFS;(0y}(_2BvNoedAF)C3=cV0CE`}ut}_mr zy8Pi7uQSvwDzD>lwmxP%NW9=(}XItWglBtky_RoP54};Nd0G`AwjynYH=LOmYZK<7Xe7+M?xpZPg_HdePLK{ei&*pZb@X>PRn# zOnWk((tna`tR?C_aWQm@)39d^W!F8d)Y7FzB>ajH&%Tm&3wYTWUewwnLJ-Iu7X4)K zT&yYsx6Ko)^|{Qrlv1CwT{W#kCFfJ89>)`Y6?8?7*KgOdQ)~3?zO%3kBXu>t%zREM z+|03*i=hf~j&Dwy8drjNIu^z$K|j|;jh|Hi(kSO?6QT{JMEHA{LO~IevfgX*|Fg%P ztlW2x)cqxBLA^yq+hOZyn~B^z+R23PJ;%#l2V$NSP4WM)U)%x$I3ZVdu#YJsJ{~Jg zY`|oFR~!|Q1@NUH?C9hfPhy#px0GaDRbp=`}*c&rgpc7Zp{V=PXpZ+S4=Lel*> z8zx$fvZ1UU;uI2ZDu?vxlgrCl1Y#p<5C?OI<8fezVD@a`ZUOGPRBZ1+`BVx8D^jC# zUZLH9CzB6rl)OrJ*w!PNDP zB%_KQXx56#-wl>(9#Bc6zT9KnfajzcTK^PkDnG%>b% z1SfcqK(J)_*6QuP?^SJW?O)&9{_9pxSNHAPHGR)L=lo6!DkvHlmh??OXBM*mA62n9 zGJxB+bdNI8`E-xcCIv1O&o0<#0{h2uN7%_@l+h{~l|Lg(GH7JSc z^%$g#2@&j|Z>V+3(6J8v1!!|;w>x1f{P-lG?ULWvDdhO$V|UVP@K`XTsiCk%|KJ*p zt3{;7tI@qbqw0ZD%WsO`fV&sIw_ zlkO-Az=vy(*2TZm%g-CZ_dPzYzMzXb$ldXVP9BrFX305!`0AOm{TJ{lLk($O2E0j5 zWJzyt)sQ*emIe!+6*}7=W3erP0_Jwi&(a|j=x(ntOQQPU^C)$4^zVz!eI|HC1j}v~ zH#YmUOc*a4mKfL;k2J6WJ8^lDS`%^12HG{A=3&Fx$#~C01mtw$T+6JzHT&wECg_{?ygMMEm*P zVhU{uumN}&`qSv<9*c8bnA?;=MpjiS?0%u@AqU~$OHaJX9qfR3LP|_Ye`1g}e1!`^ zsCgVM;x;2+I#;%huNKBAifb#=D7)7LVJgA^+PTmW4Nt3<`$OOF6c1y zm`#6Fz9hNI?D2k}0=X?q3qR%v+H!Br9(=1W;H(0*xFilR)ahC)sRCsyg$1jz-k-1c$sx(~kp$-3ft=y}fI@^vtxec~*n<7^_UBj=T+N${AREHbhHkuLoZ z7KY~S;v@eJiv+x(zg6l|4$s&3x1DZcRszU)Mzbodi#4Oc(o=FvT$=n6ovvavqQiNa^biMua zYWpUCS&uwjnd>;Tt*MS(n(fT_*6^$0=URm zlYaSoK9y);3^b^f=_K$gb6&vbxtXzNR|TScbZnEimVpHkCUDiq&2h+&m)s@-auEE; z;0@P~gkei{ra{Y}g2RO&cp*lJV{)KS=WTMX-FnABcs=fFp96&2__i$<$`xyswkV-@ zVMM(&qvYm=G7jMcGePwn{XSwRHcP#3g9XLu0?tMKMXi?3oG(}|fUBQcZ(zr0^#)$L zYcl*%$2CQ~YvtP|KW)y)gmNFNktOManl@@fFJHrX=L1RaUj@a)0{+>#OI zn0FGE1EYL!n7%LT4pdh?OvTYSBTpNL64;apQZ-2e?D_dX@39j6iH#6-rB!7HQDjZz zHqdc6xKwklQH7J{g=riS-$Zc?^^a-hZm9@tCT-6?qku~09oGz!&xn>8IjrUw8jkhv zLGGH_Bhho`8vtz&Api$n=xxhd@Ip!#a$8Gu`@N%gRswebqRS&Z656h|bA5jD@Yq$k zcV(N_VZ@VP((ZAa-SFBuHnzNVwA8t?h@j`w!t?Mau#gxWW?Hl)U#fjL0MUipjPFjt8)LHq)GXpc^iW z_zuHdC_QA{ZFa!XI#1?Hd)WtH-e~|Sc{zDUd}y4=|%|{={oTO>^%mPR3Slz z`$2##UCQ-OQ$3}eAdlh0(6~?NVVT&XSotS_xb{IH;o(l;+%y)?#F~X_zcsLrqD*g# zm}sbJoAfY(sEs=h?evqe%0#-AKNDKqHti?~pLUIeAJcnT&F^Nrp<$<7D*RrFeRzvc z)j!Y<5rNhECmaVY9#wl(*@v}BR5!1C-k*cfUA;mFiynuZ!rOcVJJ5x$xhvvC=AyaK&u~|wbOl6lG0cNE8>GlWbXjbCZK2oZ|f~%|d^Gvg>iPt8w zi%3zIdS_k@lkq4f(#w9AAXd~VxW_pW%pgu}f>YYSD4Ir?p8hTj4Drl^_l_1Mn}%wg znhYuQ@MoXZ3$B5x=h*Ve9G%(YTwp3KR}mo3Y-?ujci#!dJc+wXHqmFsDO!@HV zTL&ES$q7APQa?#|_czDkoZ0evc3@sGx@?Gokkn_&Z^2DI6BW#Z`R>*WTPvI{B6=hK z^ihiWcB}__J^M17e?p6`rY3TnP7MD{5Sx>dSTv8u2&wXu$~4W$roxz&9XvSX0n@4 zSE;WJfzUp5=lQb5jIeFN2s1PR58eYJIgv#*~0+oysJ|UJzmClnY ztGUpvJ17i6*>F|%J*x&$PymKd5>y;WReM{f2+Mc8tFhD(-Yh>4JbG~|42Eb(?o5xl zHs(g#ZMvsf>7tV6h8qNVqad=ci)Sq6`hvK1)gzBYZMyGW6?q`Au1|v@+K!>oB`<&A z?=~Mut-Pn3k|7ErRx`G$(k4Eo<2Y5dS}nO2Sr?^R;>-ScV&4Kc*Kc1h$x(p8xU-$^ zDs4)V&%XjMa?{>p>O(m$o_ry%v>%l}Iob_m?&QxP!ZjzxV4QLCLR`f$_(#TEo}X4+ zq~R19mQqz_h@AAs<4l{_lYXxIX^)lELeiE1udbDlrBlWhms$Qek9g|o6&zPsEGJLGN6Aqgh(uz6))e_{5xmei5g@W2}ug|#0qj}0D8z0DqL|GaN7 zd8;I~WQi|;2SuCTgVY8HBCgL0AI0#U0o4@*sn^d(@MEs=yqP>&CAH+LYe|NL9#SUV z0-e6b_T{8&0uEls7B{(M_QvSCXgsC}J<4DO1uG3S$BF5`rG9wQ7XHb9(ke1d1BN4EKw5CZ6+Ee9H&_ZgWHCh?hwC#WF6HPkA@sRA>PYI7dWIO zIu&yON)U_-?iuI!Jbo^Y&DuvooT4AfB90oFH(zDve>FEB z9Ulc1w~=G?AiGSdJe!mtY~yoZQzl78qGELUlD}{}b)pI_%tWiNy5XIJwsbb!6xtJm zdtxdJnRr&yP5luqfL>SwRo+kt?TqOR_$Ae)cCanVOmxkqSeD+xQNT-Ll%9neQP+Fc z-{8|*a^JrI-Ony`G(vnb9F`c1>d?aZj08#(B3C=61Kei-6cqrV8|}()?j#34qT6ZJ zXkDmWuxOiAFOQYBZ>LLLg2K{{Kb2o#7+FY+1vIW-Uqzy|`RUcBiE<2w7|h2Hbp3P? zsc&%IH<#YS-uXqVx{T&q{n4L>ZRM46EHrXW)BQfhxzmXl5l09sU`<>$xn5@ap;1{F|%YP4W?Y%(q zI4J7bKvZ;lrk)8=L5-TC4>nKYDi1Vvhc^I&1n&3AE_avI&im&4Kf3FyqUC^O*nJF* zV6O}089;#;kQPd>EGK?A5fW&VMp7uRvTa08j>?z8r#$&7&Abh|+}k>{EU8X>sttKX z?OY9^+FeumB5H&e&M$HJcv@9k78E&v@|{zq-y^mXFZ*3gE`&y7>HgfvcjA!$8wojm z$hqFcv<1O9+=xZG07{JV>_?&Ag(5^@fMjh~g&@7pX6qwH*t62!S}vgA+dlpO^1Cqh-q+EK6*%r z6(bXKao<(=At+KzQ_1%?Y}x8^1rc^K!F#{p9)>j%g3&x@yzY;a+u}V+iOPR;O$=^q znHmvzrD=~7B^1wReedTj*de-Fvlx9avwm>;9cSQP9Y6pHahp8HAzB6LEPXTZch)bJS9VAb)MQ;j_Md4|Q%_2;`4lhP%<0kZzZGVm^B z(LSVVlh@68kehMor-HBpb@P~_xRiw=uGtAi=F#BhUI4b0w(C?Kl}AY?_m^2D|E?^k zo(teAY`eE`Y6>DJ_jEhj*7z((_4#l{Y_B7F7xOXz9`ox6c~qIL>X70voRnQAN9prJ zR$^sELaG*WwyJN|9>dh~`^x5NH5B3|##OT)62Y}ayBMm@|JeQoIs?9LK(buR0rH5j zx7LnadL;5kJ_Lyr$z3*b*2w;@^jz(+53p54+<(udh+$|!zEK%LR24M0B1gp4Sw0rh z0}g>7-iTHXyPxtPvMkE}$N{o2FyxmClp^2eH%x9Wu9zj=zAy^snsi7PY7YDVyND1Ijh5hh%ex zJwssxcTWgTK+Uw16D^_@*jX6 zIWA&HSz8GPf3V0PTr(JRMnYV&XWiud8lPjQ3xL(c*ClCebwqW;68QbTm?T5;P( z5(3Ek;J<*Yx94y2yZ!=tJwcqjO^v}bEGNcZ^6?5Qn6AA@p7lM!ge_8{aGHauO-uqy ztrI7H(CQp6jl_?I%*xeX;WvjV1S_v?Ms$m6KJl7m%V#%JAw5#-Do570CP-Vak~joC zjQi2%Qt)CREyp`-Q884ommXE~YkMaFL7jl2)AJ4z(oZ3tVofUP#0k}lybt#Wpx3O+`Jp5Q_5jiPTVr{==#)idhB#lh(f5?|*x?F;KIT>uVoH<} ztmDPo*Q+WIV#gODonLDcALp9{ZBL4)+p#pP@0P0zYen2>dE%iRd;hK45oqZRU zTswRNT?H2x|61gej*3`YTb@|69BAeRVFAcdMz`LaA1}hc$-_GEqls9oC262do$CsV zs_;%77JCK&ExMA;CSgU@aC!?)ohcOO@@7Z+t@H++vk;?i1u$1N=TLE9k5xQbY%X@9 zM9cp_$49mqi;lHwM1ic|2o}@5k~P%7xNjq!em85lgYjb4g$f3 zeu`Ds7HW>P;FDxz;?O2el5my{V4v)zIv)Z$8a1UMrQ{4j{T<^A=66ah%PMkMD zWBuTXYV#AP;Jil**NZ^70XtJuoaxlLUT9GbGb*ZviSMO-POjAaTc67)4v>pUs~)ec zkT1t6O{b`jh`Sb8Yuk8{nClZidUC4R?|S`_vgh1Hb6#;lX{W4Yfx_959|s#_wR|(q zDpzA|66fM~91ZUy9&W`>$!bg84$SV1y3+o&8mU?#i3?$8o1Z#%ESTHtMx&`R6CN3B zNHz@|pz&N-VJUaEhXE6qvKs;?m7Y{{RJz_N723c=n+r%_ONTED)1@7KFZ-LrIrf?W z7@!ad`H0(*5;bU6b*5%M*rTD-Nbp1QMV%~O|H5Qj7R6&=g0KT!%oE;mGr;EC;0$r2Gw|23nIG z@c)5NjmUxVuLWov9=V)eq&1%E0e11Lff)GDut86ky3}4gT@9Q-ILr=okQ|w0)<9L~ z&5``Wq^HH}G8?YCA{d9g^3-E%8D`Jn=TjHO_V@)*ExS00EVWwP;*nj z5)y+%brGlbfCxawo{S5MQAMfS7PZFdp&{JgTBo1T*R}Y=h%kP*uFmi9jg$VBO&4*Y zk*v(r`mF;)H`Bs!3g(hE%y=|&TDWS&p^gzk9ZGULzS=u2Y70iPU-iw8ry5NmwHezj zv(2-moS2j7ULoe5SK9?jXgOudYPF1No(C8X$61^_Zo~*@1hqKL%&uu#nH9cwps;O4 zbg+w9UqN;v4-99_HT@e)p*YAUjyC#@mPQ@2rh+zM<3$#48YpDg-MP3iChwe?`ojoM zP8!y}ggQoLJ!!Rn?^R?Eb0{to#!i6yZGOO zvQtZR%81<}_xs$e^8uV3Of2sR;>6{W`3H8cx9}D|R1lzQVCmhBlm%A?vBfJ)%V0l+ zg1A4u=d5J04j|7}>BI+4Jv97xo8YUYd%3$s>w*}x=eet~|Q4(tkjJ(MC+ z`jiATv^v~hxv_%fZ}yf?zU#2!?vSW_ZAhb>2g%Zq@G+7~Vqa4=H0Ex`4B*cyTW%{H zZn5lnx-$DD@aXK~26q(lbfiu&yk%0nM{Eac|qLL=f9NV|#6Xh<<(lC^xT zL!J`M)JKVba#Jr#yJ@tr$j`kq)2Uxf)P`3Wfo}Na%fg@iiLhYpLLRC?P4ZiDKaA7IY?+>hxd8Kl#u6Kd?9}(;O>X&r0Wk}25^3CMG`ZlaUgaP9 za|}YlQ80`AxKL11p>mZjMk$-3|D6Vlo%DWK^AYrs z{aGIq!RU4eKF3`VSeZn(6@{O7d3eUuZ8B8nGAdB^Nz2h{7LrwUq)$1b1+t!gH@3#i z>!t1?*!v3@&+)(-C#LJASeWDFGS~CWbwNoNWGkUTc;Ok&;r=`UoBp!=0F4=zFg@HC zne>4_haZi97{o$h?F~)i&P;GAQ0mCy#cca_rVHeHSy${_vo3^|GH9T`z6% z2-qL;el)3&39F9gvN9iae$wW*L2&50)#A{f!_cx74}0BKF>%D>iJ-!8j}l^j0v06Tvo}Ob9w+^ z1e6EBO&4SQ3m|N7jW!QPE0)B|F+dy}p^3dy!!KeOxSC7f=B>I z3)h2Btl9tu?r0n7=2*nE-aUB{T*>X0K=7D*b_K|N}9psA4gbD3Slh##a;FA zKgIgUQQBbU^kq1EVYbzS2{P}3nb?ZOCmjfzQ2qOPVAMO;-OE; z$$OO<0x0Q7SP$6@#2YNPcp;8k#{&0u3%0Y1{_yOFUA$>f5&`p=(PU$Fb@Kt3IsW7~ zjffp?*9zMQXZi%|`sdqlDxLxMpYvUZ{4s<@<(A<+J{3!)9q;!R^$}kDSSa}r^Pq)- znGbQfYC$<6gmBNt`|&`tFoM^O`h~4u(jACt$5)i%hKJe_bAc&lgAQ5T-;^?E7lOXM z?l$ba(H*zV(4*J{DOG>;g9}`{_U>&m{TkD4jM{zT?=bl?kWc*G*?@_KhGKSO5&zN~ zV5Cusrw8#X(kWlYuc*Z<1nx&48Df$_u|WQcS7M9>c5YqlOP@sPv^$=t$+Tv7TRUoW zvEQFpP6I+zoxEG=<6X8Y|e>!cQ@4uG}XJ_9XqruPJ-2feCkY zZO`Ao+Y?4!R_FWf<<}w+XStTyLDk1QZGpsR&oa-GFqK|Sz6HI5LYD@+?*Wt$)9QSm z3?BYuLH8H$gUH-MDAzpSdCN`;RBT3-1QWnjk2SR39c;9#4hLMLnF}9mMZrdofJ9M2 zP!~#M%s)&oc>ok$b&vD40V1dg>^VuLa4ms}#egS^pxSvuu~Tc-@(sKD?^yxmo@Zek zUxn*Thp0QSTT0I8RPbT>lhr(o=?3Yd%c?{);A%nwAt%8PplA@syJ&wZSYi;FgI}~P zT$HFoyjQ!n1h=k(g;hpySfjkXDc<^-keycscRX*C`-{dtJRM7>OeXHHaf6nVF96|w zkw)Z1o>H2}?pa;O^HF0stmQLL2N=wt)41+(a!_S^7ser~KArK!^J3sk^7h1UD zG)Znw76V*6*t%N|Jlgeg)w#Y@YIjUdvEc!yWG+mdNoV@h=g$ zH+3)AqVmMnsuhmTPuIM47y6aP@z19RC-~({)53BVS)CD%Z7V)}Ep`!AB~=sLLOLp*x$DD(EN3K0QzsR=|%7TuthmA#GL8T6NUEcpsu zh~_2)c>u`(L2D`{PO@N$G7o3L{DV5{UqH!;wO&KqnVdzz?~3E7@!YXVksRcgdcCu> zRO@)Z`b?Sr{tJ(u=}*DsX_$y#rIUF-Lj2St7*c>}pA(+MWA~Hc#Xy!DOy2C=ZmD;M zzdln0=tgsXaBD~jAXHvgl}=N~75S|+9H&`Q`PGq}V6ddADcv$xs=0HzKmC9P?!{$? zipZ@>SzWgnyQmsH?*W#fQnGKtFSeW=X#KsWaMA?Q)=@c5M+JEL;3Lf7*muLWy@zRs zf5sV_Lc)0%zVKSC9I}F*ksMa^dvDpB#ylAaO5|gHHFJCHST>{YVSfTXETp99x$j3m zQBHVm%;`E7{0|FS(P~}I~y%7g#|&)QERGa zF5IT>D<%3QMI?RM<5D^*haoi>TbA9Ixx^#y_!^#9mlE_B?uf7eYbf|}2Ne=P-h%gh zj1nFz8=0Q8JK^sU@+L`@#-n@Y<@PNE^y0($ac`p_oHqE`3~AJF+Kb^5mK5GsTCS&J z9-Zgva=xz@&e8Ffg;6k8YOJ$ZS31OXVm8inNsng#>A*eJJoFVMu%GY@hd{$IqRoAO zIgxmqr0Xd^HvV`bKbz@!hqXxa!Guk8)uG?(xGMRb)cHA|#6=2XJ%Mjb8G&~2u@JBf z;?)^vnxXtYjTScP1!v&CkXxweqiqe=rp7LFl!K*(tf$R@3zoV>M=o1TF>~fUpz_GP zmDWF^;jU=AXfJ~Kj{IahbvV2}j`*_W@1-{48^;SFb(|@B^NTcyl`Jsh!9r>S*^7}X7Ukm3N<(JPt%#el; z-ry72(({|GT!(i#IKcO7Z@SK29unTahi~!r3Q=$i*fnl;ll=vB5Bztb)A4@@ozBPm zT_Q<8(pMalV&)qr+2`~SP0wfl0un4HnLhS2nq)q#zQ2=m4e@Wvx@8`2zhw6*h(F{z z=KQ%Z8}k%(36m_^p6Hy}2)l2oAAmen0G8}QPL>cRizX;H7FH&e!$f_Ui-RvhQE!o# z*M?JVxV@WO>MCH*OCi*Til)Ng#RmCRqN^o^wS&k27Jb=$$U>vg)Atl#U@P0TUY9Z#|r7 z!)f{#$gPh~@mmf?rhyLrAtrBUN{u`GXHc(WdbU@;@7{#Ux92uSB#GkRyRHs4W2Rcz zAL{pSFTKe&thOW1a|eWvr%%^P#c>FKQI2NcPDi(;W$z$A)qlYpGs`LcDlAAY%s71v^pES*w zjm#}ET4CJ%rwRK*HTl#fILRil8x{yg{#D zMN*P~JrkH>(`fcf39w22$j?Za!&`r>Xkl=Dr>gG9%Ps~liJ*XMs;16XdqrD(411JR znpDc}O1xMeeeo@mrS|Pk!<Bu#kkc~IKmRBvv{j+v!{t}Vuq;r8iOd(zdOx;%TVWQ;Bgii4d(~(tRszWZc z{EVf#(?uuAepm6sBC7fYpLp%@UF0pcrG2yrU-{SC1B68R!-?@!}Dh z8s&Zf3ZM!5@cbOpCkwWJPS)^szuEn9HOJ#B{@xOph{k)SZfFEW08{v7r63{mF z;){`wYUPnhAp+)=!Hdk~sg8uJo&L%D9D<(S&6_gev5p2j!*jzfaU(DWlU5^YocI)f za|qT%CWuxb+^+*gh=!-teOuSbC>Kc!BFyzC$Pl@a$`{|N*XSWmtW?m2)#lcQw#K}5 zY`E9yX&<&=AVcLaPH1GKtt<#jzfe<6nnC~g=!1D?Rpfxs#D;oDT)+?;J!&+futOAq zLpJbdk3CvSa@6k(-6_gyxi&XUi@RNw<+l1d>Pr2~E5%y86Tv`yIg&nkzX061@ID4ny-<+! zRM->m>+d`#?;K9jO#K_(t?JYs%AMgae0muhG?g4L zTB1(u!$V@{N$fuc!eGGDQEz&Vy;&NG@6BlMGE%ax5@>s&sz+Ix{W8}aq197N!-1W? zZvN3On9M7L2H*Af;WASz>?{CZ_@XyURZQjO!21IqmG;1AcIlvxLeKEg!^2%2(}T@< zPWtmVtU5-$hI>+Ph>fMuD`NR}Dgf-1_njH~atxNtTR!m#$JG$(3hIFA-Q56jI@om{ zW~ndDYZ!yAp}%+cwPOu)v<7jFFq>ECN3sxc+1q)N;T~$K4a2b_)VmwAiFkzryJ**o z;9h)|YvoXxfVT=>giTccxfHs8GhIJH6)){N!m7vbI>5Zme?k4|zsg~X`>l^or?<~j zp2)z@>x!?g^{{@H*ToYxx}11+>%hIc2sjUL1s{_uSM^4|=vXPRB;_7zzs*4IKE8Q- zT3Hbe6a_qe&(>upkNpd#o;q>L9`AP#6p1Ews+`%4?d7&*%m1LcR+nJ@hyBr%#WkX`B-bUR#=S6_i zZ4scA-G-^`)py1G&ka@Ce*s~amJ9ijud3!t7D-Ux^$b2(!B6xB*z4mW$>6{ujSmMa z%s|xMpJOz1<4KuPcN+YdC5-KRZWuM(B+1J6#51^mD|@HR%#WQ}6TPuqPB-r8(}oS! zO+usdb!w=pWmVl@gIaUk)#vcXZOo^h_&vjC6kbP_rXn#LcX1H<21-sE@)P)kMKO-U zQ`*rGy{jiWV)KQnDO@1OFsi#llAaIo^YNQeLl2KYkpY|c_ei7052id!QKyPZ$wGA& zDXM!Er}p8RpKwnoPs(4h>ugRBrt6lE@Rgal{4e9Ahoe?KMd)&4~w zr3|68LBMkm=5TNI#1ahU{wWSvo!qSyvuQ;(#W5>ea$o^B zzfseB_&4$tM^UQ}PxI=8#8&9BZO4}7xk#B5X>qx^avuvHfAGRrCQmf&MNs5aJgI?7 zg_~mWEpLvT*0SXWy{SEJXSDjCoUY=&TuN9i^?bRq+qiCyNVT7QriP4;Y%2AYPHUQ% z(E>%n?xK{8@GUWjNU-KKJvjuVswHR`HEM?VueX!`;mGShn9s4qi{+o<7|xHYe|2y@ zp;b4+s(nhUQr%ACkyyh7>6k%^!2FjTqXI=r?tuqlg|8{s>d}<>U04Mg4vaIjh-g7} z!~d%Q)ASA=^l5RmO44*tY(6d3n8p6%zG{~@@|o|7D($0?lbh#0u;fBg?iZy_N+s7| zRaLP_LGV~|At4hcVP(7uHo3k6=K;EPZxklKYlyR6h_kKpZbT_mvm3WPoH+vEP38#+ z#19}|L0pr>tURk4M8Uw|U?(ndj^Qnj;U#sFDOBo|%PA{rdr)$(y*)9P3D~CyJrb5d z+xglM?cIE{!ox#CqVM~O$r5bC{5^NzWocl0v^`FbgFFg{Cb*$A!CXDaA-0BAFyH^0 z)mDnRa;Pma@VRN}cNYi~8|Y506Q%M<*Jq)QL)|GrJD0Q@hr4YPCL!VN-Ppopxt6^~ z(d!WixF$AN=7T(&h+@5+F2v!Xk+STjopc_XQJlf>f&akO)h0GRPmx}Y%?M;;QH6>) z50O=z*yr8YnH0dmW6l?h70I-UOkg1)sK-}Uj}6W7o>YemBW@3^vWk-rvNVz;@!IvSq$Zt{O)AHOXn`3>p4Qr)10;{;lWhtIU(RN*?|J*z1V-=IZ7+?*U)D z2_^?`1|C0JMzxiIq)uv&!;Lfh?jVQmg?!gs))o z(RM3~;~Mk3^f1y^N&Lp;{p|NLL{VCn=)ziTGze9RLT!cf3tdWbS+XBJ$rw%iSc4%l z$Bm$L4CqnDU&8$BbF_~p#V%~+LO6A>*N`I)hrX67H0L11D~?K{jfXjfupC^FQuMzY z=tQ9s_blNWLCSZL6`t?55b>o0^H<(IqyaNH&;qaHQ>8E+^8q^{*wBmC4E}9d%fUUw zUOoXR>J17x>A~@DA{4 zLIkX8Qy%9U8vATO(_C-VD*(97ZLm#`jc8^+4hmIjsdxIlKU#?Uyz13zerAaFMd+^% zIAKobP20DovbsAKae6hxjJ{E>;hEWbp}P1k^4YCu{1WAKR{D4I$|kRmvgvYkFF2Kf z`$3mMEs?MD08@hLoKPng^*vdUFLF@$N#0UL zv@rUzlyGR}nhuizGvkg}S~#dx-FIMOm`?P6guW0;y-QNI+p5_ias`*Qk}up4lZz)| z`zHCgx_!@UOE3-}!Y$(HYG{A&Hr=l3A;aeJDXyQi6(8m`s>$$yCz@AFEvDOWlB1zL zq^()PESK^7>j!fk@uvM2(hTAzK5=bQ-htTM#>;4Vg)lN;qx+Ah;p%XjGs=nl?wRj= zd54tE>V>>alSRDR;v(ea)IYaEVv4~`aj1gi@*4TUkEkwaby)J&E_(!;z7O9Xn}sGX zUtZ5G%8Y$o)wg(Bxc>z}{-6ACX?0Szkieg)SxDrtQr5Qj|M>L(zNa(fvRdzZ=7$Ma z=>mt{`DY!n4=103m{zTxvN$?^W1L>#n*GzwYFswqoQ+>HKFZPpLm9FzCIZPx1O4O( ziMM1quGa|}KCPJby}n%5i+wI*JuLnOT51rtL32+LcTizCD>__)iXjE=G+ zNfLzCC)cyFvepG?aV`Fu&kr4vHlpYJLbE#LFJ2eb=-LnZWkFQ?INrKHey0zhUD~?- z`WFzPP!}*l-YoNw$hZf7p{o*X7onBl$5}b(Q$@YPLCG}7-=12d(jf$43zkx1^ZD-2 zK%Vf`jjz6s3f=&f}o71^21{Vq@3bE9|O?aChAusr?q-{n?!6(n{ zhgzYu7g2$$&YH6Y!BMSyH#>wWAqkWH1zIK*JFhaOF)Sku>9-$`*Gsk3 zKQ7K;FVYCWZAp3SIIV(vAm%48HxwjRpl~pEyIs+topJN^dhzt@=|z1kx9#ZgdAi;i zQnx9K8JrZw(SYhR$}#F}_xysTMN?F?I$QdVG9myc?N@8$Nr{sWIc_oNP9EWZ<=G+T zLVWd$rJ6>`%N{!u)RU4oeLQcp$dG=!qfgQI$u~R*78~oR4-~W&0|B5uMb&%Q3^~Fj z^cAxSD+q7?wMzaU;_u5sG)*OocAkR)7_zfHiH&4;h4)UU7u)nZ_GnWxo`T1l?3A-` z!uFKFN+(L$i7JxNUvViZ;aGB7s4Ma_jIJm^6zJ6|g3wbpBKRT#5a}$eT-7JAA6Tij#|Mn#RVQ=7a|3O`XH2-gJ$ zm!1%pmsIPMbDP9Y++O}YUE)Y=x>zJd=1=QS-~o0=NdToxp@k^2yDdtt?>SXR@SIea z=a(d?KW*=wl3WKDvmI5+0hb*U#ik^t2W9~ODpXdWcR44P#N;Y zb|8j-KPMLI&{-r%-Y1>4o!=Lp@K{#s+qG= zr1hFu?W-8eiH{ZQ34kQp&e(Uw`^U@R@+Z=V$Ml)dK`(v8MAKYw zbwBxw$Lh~`)gv|7sM-^z*XpRG1kX&SvGQgd$?BKiXtbeuA>HuyDcV&Bmgh}@yLWZ%LKzP!WkgC)zunAH#npe~thY-l z79HXUM}_S9gr~sUa9z3T5WyxS%04T4)zB2DE|9=$?u0P|iShODVi11)je+WC63Jrn z-r;T0-kq#)QBz%Fuqc+6SrUm_l|!HNT#Qhmp*|91TQ|J{rnYEutnK&@dUszME!P*0h5=5XI5t*vpBk26+{Y!f>$k{VojxwF z&{0jnb?>ghOFEIb*Iz^N>4kULHt?*oe#@+I*pWKfYghChatJX41JZ4`jMI-v@v#?V z4Y*bexXlKb#y!J&*|vk2T0`G%%p#N*`PrBgxlEkk&JG{dGHHT zB8?D(E}kpoDlKqDC0uMJ#b4@3b9|~5m9*&u%qf|&A{qb~GeH8P1r;pD9=6y4S9;P{CVi~5hFd+X5zkE=v^MTG=Xp!_C3C6!eBR4SpNbnT^H?_p3cSLI<# zv60O_GS1UKgIZ$xBwm={N!+xXw|2Ti93Mxwsnls~GaG?$@Q9FP_}A)asjs20H4kWK zPnhC0c2nk=6I75I7u%xv`*r!wLaD_2+9m4t=b)RpxRdoEma-)J$s&qvM5*5#@00UH zf0*)%Ed|uoSZB?zp0XnMANPXkYK$FJZi`YuO(nn08ZL%fXQTw!U-Q+F^O;?P(F{r_fV@Kb4wyD=P+%v+; zBsQRm{7ia%j<&3!b0&18C$|}AFwy?#&PREFsO*j?hHHVZ=W0G~mn3JU&500E#Ld-w zUXul(>9yke0Biw5obMzJfRTE_@&{OwSpL@NI-jusSpRspj%HmsO-~3U!ruhz(+L7;A2khH@#FN*Zj(Jo#mGb}ey?u-25+g*M`sq3QzX zHc$n$Bv*FE1a?|WJq^dS9WTr>A1pv~s5hs|A5*xp?UN(=B6t*^J?+~@NTabny2-kb z&JFgU zpAW8j<8e1(%J&H@JslBec>D))m%Hup7m!}-LC|uj5#RC0YLl?zx6A1*v0Ac>OA2_9 zFHZ>LaD>uI-hei}_{v+iosY5)mGEZ=a+gcQXp(K{_1p#HZK?`xzu}W*Yt9vv;y?_V zW9MybfNwH}%?F~h%}EtFu~gG1sIym3T&#fJb^0KpVGckAk6psnEyUgw>WNu1bySem^#w`Y=eX_nk>8qV zd!w==r>~i%eioH|z5{S{RXzmTcU|hkAMo;L4H#S80aByxAKjT@v$!#{}NP1}xBrVazvhxQ_{{sIhjv1ddV1TFS)o0O}W zO-)>ljVL(!RtU^i%~p@r1p|H--mc>SXMkZ=h%wcv2bw{r1@3Hy)C<{%KB5a$ExBbPAL&5fd>j8S8+QL#R$K@f=ylmEDlBg z5QTIVAiy&HwNddE9&CO&!yJbas=^+%;<-HxyerCpElsQCS1NA>dznDYTm1?jDypk7 zs#p%4{W3G*2iu8)V{h_9BE3o(v0nds-&x$(b(K^_h8vvyIs0PpmxK z;*|~-lbF+W;olXgl~cItLPh0REzKELI zhi$?Zpqh)|I#o*OXtI$xZNZ{_eOJ%d%;84(08@~3HN4ExkmW$|z#qNTuSz*(2sI~(5WHKm~ z)%EBL>EBRbGdf8Vz)0YLCiB@Ca>N^dVb?U_rg{3;oJ4t3iML8ln(AQk1J+Hjl~(8V zwj`!&Fq2C+pyOb14f|%!*n0$>n4GekL6tUU920lNi#pL7wahsg@?yGY<1Wou@<*q- z8%+#Al*Jzd>Z70wVnBGcr-NBWofiz+j;TWG_06$2VjbYVY)JGs7~=24T*=bSgR7Ik zG=<^cov7p^YYi#ryha;KeBKAC2LLwo&Fh<)-qQF)`{8?0)OuHN|0;{$;bh}isj_#q zni@g(V$5u$1?A*#WOR%k*B*0tg}BK4GS_9Slb$mRa5oR<_l>9uMoaOw1L1sHIv$mi z{Jdg-%D#T7N}0arj4wW*9)i-c4E-#09wcb6 zK(HYYAn4%k79hC04HhH>NEjq|a7zLNLf&uQbI!$I|Hb*v{dc;$x_a;GE!DfaSNGcM zd7j0x*KCqMoBeATC2c-gne(o|oZxnEzcB_)!hJbeB;Vp}Ruy0) zkHT8AJVAqsiXvzD`UH!5)1}Vx_OHo>2z)(t+BZx6yamDdT9c~pzN#{+_oYVOLTFw& zTx}4xUF7^X|C=6AOo~rjjr>{IJ&DCLuyHP46jhm!(y@ViS|rHhB5^tsrg0rsc|z8I zFWY<_qJW`_(OFJ&vLARbQR8ByiqWdCF+)Tk)yVRU;vV0L>sFx0*U1+I7sIn-FfZvs}2c#*1dns!3 z#U*OIAfiN^nX1kcn{|fB&Kld^?4dDQKmKL<=J3GaL%`kjM+&7Qp5~Bb-4sl8i>`f; zv0(@(Us4+x?79|k*=ZOLkLt$tQ3fr6g0%HGPby_w?@ zCp%vt?2f$_%7!W7-;Xp>xfRKWdixdo(V^;Czv=YVp(3e&@VBhf{`sPL$a_Z)w|&Nq z*??B24|@~uQ~}Yh0m&XPhR+%yG z5~iH8DJQRLj}Ov~OA6%q)>&H=ilTM+D%RIZ5_GHRfN;*rwJ|>zZ`>aUv}P$Fndfwg zn{O}k8)xg|Gw@ek=Q|-1(Ng|Tu|Hi1^2SNMcy4B8zV|4S5EH-5w4mWEcWTL5@p3eh z(DK5c0t6>$dak-Fb-AxT7v~R;VZ=6FT(~@gwar{YsSzAAsWopu#q#aUoUB<^6f;wH z#S7}XUIO>pO~?chn74US1cVb3RBQiseWa%o#pf6EMZ|aJPR#`;ZbuL@P zBxd|5n~P-PIYiSTKd9J=2JJ01?ho~oa9y!NP&2w1J8$|SCw5(2Wh(Iyp=9vv!4x-8 zR*|-tp6%}0*V7UjSk^9(p?U3E4-YTqGWajRrz5$5O!~Pir&_)UJl2?ZL*qyvwYbK* zSr0jN%xItTS5+adtptJ5_`;*vv9MI6+9e~{+Bh0+7>n?K3BEVMG&xbI*6H~+gH$m`w)HUluj_7_Pd#B8_2R*kNL zD@^3$jaMg-S&a#UDZwwaU|kq+)dr;KJe*G4I^2>d-{#$x%6mk@!TYSIY*js#qqU_G zRuu^)TvZR@Gm58Jo@N@vou|VsCI4CWdSjDkX5Il4#FMkP#%c!UXBPdGkO52R;+a`Z_2Vw4VI2q$qE>*7JbES+2cIjK@j4BzW^*0kFpFGRE=@Qo#U-t zipFRihF?e%Zv(I*EtF&r;BX|a0s?>FQvIMuF{wOep)xMdo67qE{Hvua<0j)h2lKGW zXNVTFF#Phd&~`^of9K0NTMie~u6tCy2mNNCri0z~scTREdpv^pc*~G!lk0~V#3srZ z=84OIw{^9+b529+z7U_y{M%^fJX?x!49e!&PZi=#kosA0e4^%Tlrimg+V4UXjO#b=jOmd=V0OY>bAd_0fyyC}6?J z31EhTxGv=bga9@}aj$$;JAbp1wVu|fV)>X`(z#v>#4Cm_BgMv&b z=uwZ?k9h>>9F(4P6MV%uC0Ms(tDq@4D(f_WC}6n628mLI1h8|&HXJAuwep4(8!2F= zmmi1Ft{mUiqY%i2>p?mVw~>{M`_8fDfW+CcDEZ{he8uo0@|uh?(k4|{?Mj0x@QdYL z$WXCKfs}JYm%>Tt{75i-T7@{pyaK9BDk3q#7RW4|1D9vCA#M+)OqL60{u@jE9VZ|* zd{DcHfDRQrcHX?Un;JkTn;M||vebwN`Oa-#2X~<895qR`>+rEE@nNLCClv3a$1OEF z)k%H-8lPF%W-6L3qUH!n(p#1ZnXrctvj+>j3vacuJbnNBnq66U-@RlBM|*+;^)Z7? z&+-07!I{I*$?Dr;l#Kd2 zu7-+>ukuFc^m2v3tP!Ct{6oZbBs0LtEDmD&ZGW)_n~BM+f?vU)u-tfv({d*=-wMZK zP#^~vp_C=4AFm)=ZGE`Bq-!UZu%-Nhv1%J6?(dq2@4O$Y5Rd`mEd(nqc zt-xdz)yZb0MzEJ=(}QFAQoUKs5taa_j6HpLIp67^A(@Ma8w?`kMz{^C7M~q&PF^k^ z*2F6z+mAtqE=ftZ`6v@_(B{9fM?7BsRSi|m9^!@jzSjY0v6_{zijpdfk3+AXt^LGi z?d$jbP!{YkMXJtgyXyXyA!{Z{{vrIzm>TEzPM#;tMqRnLaE85M!;E-6n~90V8!jc| z0SLgI&UM98b|$|s1PgZyY_Lj{j?fV#8obv$s+n5e>4GDMg}b(&@ZgTvwY83;#negJ zP$$xy6#*?>3l~$&z%;(uJtXoE6VS=PqF|%+rEX=0YX9wg$Wn_xVtx-MXg50@W6+bR(pGT zn&aIx`sVkgVzKKT+LsT#5Ra_JCEZ+PMssB|)x3Mu(V2qQR_}`$f$VZbMsvs&=Z5bt z7>1(#M`GsJmoBERTN3jUgtd)%H4%ev4(8vw7d{tRvyuZ@Z?2S zj9aEhBlu2VOtQBtM4#8Q)a(fu{?HDFP^;c*>+3Jj$TeV{JcHG>H`h_J5zxyw(e;6c z+Scj@N&SwGVlKL>9zs_fBRZ)6jD9ju=4j1t7Vf=CRVF?qDeIpg7YPBHNk2d$cPI(f zs*ROeAf+95&!hWqj>4`UhQ4FDGWy_ceZ&D|bf6|Bv3l}wuD$c+YfV$tEHCQ!TZyOZ zPm;e~SEzR`)`0I|D5i)y)Y>SzD9cm?<(@v z08oJU$Z@0Qs9!NrRa}QzWot*9P|96nNvEG2 z^P`v>XE+U;>mIDX#XDAlJt-1e9gkqq*?g{h*fWo>j-H#IXy_M-^bR=-yrRQJ;&iWz<;RG>5(&fIB5+5a5T(GJ1jzKXKyxdm zr?#IFNbUL@`eju)GD@(xtAf`X&0IO~fE+7}&(PCd?t0 z`1}JNh~CY^Ttm32bixe;pzV8T)GF$~ysVD{nHF;PQ#XBW$MMypu{6X)SE1F|IOA)O z(0da1ZhUiJ=cqC-Ug6@yz*nadiRCZuPJ9I>SIGiv?i}G;?pMDiUz6zcMWX{9RPJ2p z5xmZ(vNJg%3y$(;B%#Iw?bH`k8ecXDF{rQ_s1g5Uq2n0cM;{gBpUa8}a?hu}WK48F zTu(n(4$_YXfF_0Tb$Krnm&?Qm_z?I4?x8{oHPhLx{!(Mv{Q1~otZ-p+b0VWp-9I0v zFP60BS1;!{IXjSD{aLewK~Ct_Ex5cbUN|j}(dT2anh`I)pbS=A(z0b~5LmKqOYCj9 zB(^{)#1r;32};@p?&+F~)lUY}!(p&lVl13eu}~7NrmJYwnyXv8e0;F%tm_>1?5hCt zK>N*`Fzp!2%=`Oz9zH74=P6UU!W1UpVod7K|=nhaGeRmWwyt)rQ_wL z<)y=f;NydrEWAuI%g2{2Q1alhlteP{j<~QI7uqFed~g)nqN`DduxTtyXU|f>o(Nw@ z;9NpO(I>s+nFtH`4v* zbBfONp;7WekN9ON6Q1M*yH#O!KEf-Vb_EKyIHPNwiCDff9J=d^*mXN%b)49@D8=7| z*L#&sU-v(Etmpf=4($>^-W-DuwyY~!yWuZ-H3Ik!bX6S9Du&Z>qQTrn?JWigKaLGW zc%=1{a&y?t=o4D7l|Sfx*tI&;@Vb7X0@a?^n<0gP^v$P&Wm@cD%_LH;tQ^O3znmRtjqgsTkDwov(Tq?F@YFzCp^JZA=B6D7*|Ib?&Hk@a3CSQ@+ zFn#MF?1?+DbC>$kTvq5I+YlN2SVe544X=Eq%vi~Qjg^^4)t32bzyedly1eNl70Qj( zb?wQWU==^Xx=fkh1Z)(8peRQ29i;E)o$1B&h;(9zj<`FXb)ewqr|;zsF*xAKvHNr| za$`+Bz!goeJQYse&+fVPdhBi835o^~dK+zPwk<^VT3|X<>#IA&mLc|J&#UNLIDrLs zt)r=}E;}EeQ*=718)Z`F_bVC{iD-4kDVXhMfUe$S z+Uw1>)FdKg<~N3iPGRlTSMMYw53mzmyOa1u&3DU~Ruxh(%~>L3$&e}4>Q2I*V1rXX zo_kX)xOEil9W}txcmIZSovA3dIhe+wq42ocE~VtTTWlmRwh%t_@FLSbLibSRQ)IO& z4t6R-Dyw(0cU`x1-&qx>prw+UDuB_!KBA^sB8I#G!6_1)OxWWbxoy57*}kzD^d0n* z0*gG9$OOIDB+>4^YOl&>a?=;suEl>SyKssUG|^#NfuGLv<7(vP#i2EAZQm#$I1(pIy}0pgU{@KRAUUUc7)So^&i zqySZu^p5NC?G1S5Vu*$O?E@Hf=M-odE@4-#Ih)5j8PSt1PSSc}zyA1A=Buvif?IdA+r170!tg&)9DtLt5vcNzYO0Z9DwKNwoPhX7q*ZzNON+&gCI=zGz4kiZ zB)+V&qyiw%AKMwCHh>)gVkCbR+598vJ2eO3PToFJe+sPD{<p#z_KcjhAAzqTc;F#0^RAFfLO&0k)OUD(X=!g9(oYs!h#Ydi={YMP!W1_^P zLT?{C-(tZMeuakC;=e(#%s<~upxao%NAsu90rkPNU5RNwUxlN#1*Jy)AFQ!lC zPbQ-j63>TfuaOuAUzsC`B`<;r;aZ!Jfrg3u!1X|!uCmJIN!0; zaqj!OgC9E0n4oD~b!e<+MBX|5T%EgCb^xV;?RHxS1P(-WA(j@Ry=D4Hnr<~`N(n<* z-eSZ~YA;TAkLeu8pF36ZGT%P~V5P7Vl4?9i4m2Qh7BKF0?3=A{`4WQh8fF zM@}%07h;*=CZgOv&K&+E#Q?~(kUL>mlGl%>V~)M63E69N-X!i=`tS{wXBY!biEQf8 zn;#-TD5O6<#2IcMtNDh15U+Oq`>n~p z%w~U7KSnG^4vZ1Y!3KhGaq)3LKmaCTVS|An0ECT#O3(&JLC+usNhzdn>)k}oE+DU@ zix?DEE@}MuSh4urE3)V>Gyoq98w*Pga2sTDLx>T5*<)-BnD?bzY=2>#3#7}WHZj5Q zffZx;GyzT`!r}){H+cUPX8H7bn^mWm4VoTg{UrSuXGQ0lJyl&bef0RyOOk()L4@ze zx-ice6Sq`fOSVA2z;4Kq?bp8m8ume70{#Nbe_3y1!uhFldm z6_+?Q;4)8& zo;<5+>mS)Y@pvOc6Pu)bRos}usYSCao>hel-dvT4sjr!e9M3M>|D*k~pl$Dsl)kk|C)K2Dm5SIpa$u!AVjkrT}S4H^) zSG{JA+45tq3!WG|*i4Rq2O{y9Gkq~D{h83CkG@NFGpZ#_@TH)}`K7BLJQb5zP@~=S zfTu<=H;fQd40VrLt2y@DR%KAeR8?VEOGlSEZk&h+AbP4ODXe9+S$(sb+cIt-8w2Tw zk6J{(EB4_Df2KIL$Ccr}Uu<~{RI|Z?k-dYZ($=O;(#V4Zi~&dy2!4TC=~E}6Wc3d* z0tzR1R5d5KM*7qa6G$Bw>1I!lblv91L32H{?(FN-Js~Uuh8(co{)*WpyWYOSy0IM)n1*_fqE^NFEk_gkDQG zYbUsd=lJG_Um4~}N(!3jm-&Gin-%t}+$+Z!?o#4@>U{)rQv1bZU%S=wy^{)hr!!zv z!yOG`HY;cy zB}`ph{2(fBF}1=OJhHVfI-aUoXd?8ZF;PbEbSHBPEk$wJiT`1l4_r1?(eA9(QBhW8!e)=ASSZ4bteE$AytfW}o8Kv0Fl4zsw=SBmh zVvry2UC^s`f8ptrMk`>aZTfjV@SX(|n{*cNLncnbpMQR|Y}NojX4o{EOhmKIML=$i zWt+@{zN3y^9%zIYkuT8ppe9oyA?OWt(nW-ma8A6hSwT-imhEwj@^WDuxQdzf;A}Xwf8~2wwH_C=X*?2_i%h>172p(stvQBXUSDW&dVobNg2!-G?^VF{ zpOx*Hmdx1}^Y^@(-(^q7QTKJLT(PM8n*X5uyXENaiAJ0L2B1`4PO?-xW7fqGLcoeu z<`^sY{cU%U;Q_J+B+jVg#{KK1Q~tC$Tu*%$Y4fg~C1zA3Zc%}Bo}d62pL$ndR;-5Y z{tlr_ZsT_p*Oz3RYgkdPjs=Aay>v>LFBeGA%qnP&l-)BPbxYCnDRE#5;_oxEHfw1P z+AQDzc;FJS`q>?>N71|LCHknmo_&6RE#b7Z=>o0sdI3_3Z}8R|e#pkDnEXm@H-|d9 zReG-%Mi&=YA)$Xc8l?RgM}po?m2c&MytdY?$^-t3jMo_#JgOhn}x=~((r%}Y?k+6$tjHTlE+fo66 zARrdj-)8FXgayWi*pSQX2?#3avI!}ACI7=7VH(H*milXs9(i23$9D4G_BCCdJ;Q%( z@-sv(!K6Ky_h6^5K;vNNUD+p0lZ(od;>L=$G=G-o1P4A088J%aF(d1lverul_i^(& z*nyu`sv<^gbUd=wL01Q4*ulQ2bFOx{+rKJ?Z7Pqo)Yw{SKS;aC{{_f?Ka8?XzDWNP z(p4>LIz?yC=NR9ZA%szj{#WJibM$U&YBJ{12M^NJVd?c}Y8()?2kGUZG8l5B8r6JO z#5|Ewsm^+`x$1-q$mMC0-{q^H28ipy;EmpM>zhZfX!?l0;+!EYC;q<^*8{6}Wg_uY z9NXM4?cc;#h{cyf)$F-Z!fC&r=EoSJFoHpPq7(K5#WBd_4kB`1do6W zhl2W$`CIzE000M%fQW>Qaz6{eKzKmIM!^VZRg@>_|`wwdz>A%r5!6YvT$SGw$=>lb%G2#rzFN-#m13_t~idv zNJaVS6x?^0b9AiQEVaC~@qnVSBYb7>8MDEUm4Z33)Chh@G4jw1N@XCf$ zp%jH7Q{v?cd_EkVXlm;-cwV*#H(l`r=j_&jZE$=}G zgn%!M_R>5o?LCLsD0S%1uA&#H=L!55m4Afb#!j`Uk-Yv?hiD`L=Y#l@&f17x!Oq$c zc9WMc(VB&RRru8@ zn5`*pkp8*9uVFYn7wS&&V!c0hc$k!GOK3AJ(}K_7N?UB8{0eZn+p_#X07DUEOP zSf}#))|EF~!s=@v_Vu61+pN{-CXu$vbN>U^!WIsf&{K)iREBHWF0Vf^{tvM1 zW2pJVXl8BJE7{)!SQz1eHyT&2uslqxs!6k^5;XfQpxQB)W1kGgO;mm&BY1eT;W`0; zg2sTStCAFt*q4B^BHPAxXxy)OPE_PNLyizbMnrGJ5vK(nYUfwwM-<~-FrN8re_#-6Xh-9}X z1EqfPvuxg6I20Gkloha!9penwGZ_pHwiLEgX%yJIG*0_}!0UbapxNEXrJk;8Jpr@A zhi?m+zwv&7U*7q^TBSM=&vJsE4=D~3v%6p!5yy+;DSjd~k z&MYl8qWsgbKzAk4-=>W_4#Yj3Ks9;vl%V+}tssL7A?{C|`aAH~EaD<@HX6Nj!D?MQ zeA6?gYYp0Eal^ji$I<)^i?A|qL;%ZJ8UX)O;SHJtB4hVzo^8cz%4}+Xgi4SYII3TS z0}cBgr?sw$8It*tei%JnnUz-p0Djt4K*awB9r*|C`)BpRP3CXVe0_)VLOazEl62Dk zHmlKCW=iB|M}HX~@euL{0{>%zmoj1W0>GImoBo>xdM>EB|Kj^H)NMKT>Bl!8M`1ej zrPm7-;Pi_MEBm%)2ani>jgIX(4>i7YJjm;zUt0Iu+G9d)M!h()?%+;s>J~sU&ivI~ z=>4gc2dMT^cxZ9`(v2Zcl23S-K{nA9Y69uYwgX~4UdmJ=GH=Ne=M%odzg$YyxrF!n zyLKbSjXkV&@KgB{kN#YR+P9*x?%44I+D~2ccSyDnG^Z8R{wT=ADE;-*uZq7nPFEsc z;b%tbpV9vUChv~K2LN!ZRMOP`R0^j=0YLm|l?V2z_j%cr5o^WtTEdq$lM#o=n78F? zdBt=(rGEJ&zw9(lTHu>@iFXm-$U$hofROE1_~N2Z<$a^{DE`+2GGG2uG--gJW2i>4 z{iH=0@n4?<5m(fXA4Do2uw`nA5Q zsZOg^7H#uZSC?dO4nU^0FDlxNX7~9#smd$)+_ff7S|5;5PsqY|icGV;K2F)?A#oZ! zTS4M@FN3XE^W2rsdmb`;sxfqyN`-hRbtD6|{@?a0PA{Atf=&Y_9*gxa$&oU+3%E6% z!JWV+c=&Wsc8Max`jWR#IjCItbWVmRJYyM3S$6?QMasFjf9f_s8BG9=p1fSy&%;4F zSz>kvgOL$4kP$;l2nV~flkpFLiLVi_@28jd({uFJMP7_BiYdJk6X$89GJ2c(QtDqM z5je3S7AY%+T$9(7Y>mr5W%Z|oQu6!rka<&g6?U@O)K+2*pffG{x0M_|R|4?MwgsDO zHx$kGjY->tR*YQPB^b zIl~Hd_RyGcpuJrCLG@5(@ae~&pW5pE#L!7+ZX-ntmEHY-_~QKd+4)rnjUhzGxAq9; z1|)UY)_&ymfcS5TMHI4EO3Y)`pPG9Qpf{T*fc=$e{?`Pe?+aX<>-ZW{B*QeT!$Y}- zEz!+U8k{LHgq?``ui4Kpf2VmXmWpcB{=kO4L}X;$y@Vw3cM0@>m3Pj>NdY6bkKVR`c}ca2r{Tyv{tDBnm#Z#Btm zkI1`++sWw7&K}m2#Vw9llQ+v+$#4(;>Cc4*;f!=+c*6O}-|gkYruc|dY_3g*uj<-A zko0}dhQ5@}PTJJk*!#jL;{_dkMs#z!K(i{6^Zq4U%I?#tMlgQ|@uw9s2kQLPAG@;T&heo$qNSl* zw>b~bwEfei*q@R;zgY&?{{52HAMEjdzsZpo&3C&pjJ7FQjp5m+D^|HJJ>}5V7+<@n zGJ)TmX_N<9rRJWlU|b0BOj(GHvhx49#^Yh#U~e}3WH*^(Nh=l1hVYSxxy6C625YB! za~db(z-me(R-5})3yp9JcaJ^A`GDr2>A947SZH1wnTkGb@a7V)))9pen`opDV-s}X zCVc?>uI`Tx5~uxcF0&{WtQag*B?lHSJ=R-((?WNh z0px!gM~dr->#Cvlox0gCI}}dL-Sr7UF%ILe$8%M)?r{>}F!16&Pfr=9C>&t<(d1~jiD@v#zE<%*X;2}d^{j~d z%uH%cPaWd>any+D_OV-!Ng|!aX9KbFkc3V@>ZU#eH#BCBy5h@sl$z!Qt-tjXLA(K# z3nK19#ysoca;|l#wmjjU;vy0c8Y6KHERdO2Ocu!rd%R=eN$-(<(*(T-u>9j}OEv5s zIN!Cc*ulLJ>o_-eRB&^hPzJsVP8ip$Ov4e&AUh0FcSIM??P|Z z#%ry{0FTrQ{(W1O|J3W3Q?I8#;>tj@=X_FE-_b*@SoSJYnmU#-=zRa>1G8U_u}9d= z$`x5^s0<0?x@$FKd0%S&Fev15V_($0`TRzCe`8AD|MuoKCYprZHKn$um~X{kz{xc$ zjy!Rqhm2P~lRQ~r5K?0AvOnYhR+eD_808;k(Zf4~&3sb*N$KK}HYnf2#l<5$wcmA$ zHq8+Jvf6yyhtPhdn%thdfNCWCV=uuDyRlh6yNE^CfO+LXv+hsl`ICu{uiJV50-8B< z2;=yG`?1@217Zj9H2F2x3rB}R?!*(8A31T(dF-OYEaR7v(3;KUbIhy1^4sMAzkHyY zC3(Zc$w5lxCSsKLrvU@Q&SVh%9d14)K0l+Abf{I5*B|oudUJTCks84__)))yl5zk~ zJLx1cG3|<#=gbC&;zvqKWKLme0fAYNMxWG0+#-n)A+o_tYq(>DHdpKbTd$PCg_UQb zUR42YS{c?(Ok0S${WbFer><3Wm4>j%D;t4Jo zVHoipmcgQ#s^{0tXLlN6bI0OlqslY8JsAc>hcONd97@$McE4Ac()GwEZk=K!Eir=f zFYO?DilM+^61-ZeM(9AW>068GOMlBalchYKC3I(;8H9c=S3(255?A@kzORY)7MUTR(?TO=2&_nI6e!Fq19T-z$%ap7P4FDx%?d(!D zvxq-8(F^59Q)4&ls-WAo*Q-!q?0=R_)luAZ1>_A`cTf`x<6Iq*#D?h-+zfJY?F^^b zUb#z2a8zg&<=`xwU0#{e))>{`EZz((jgXzf)Q|KUh?0(XFGNNyUi_icfB1cNJN>vN;jvP(tEyDr%+x?wi=^^3rI7SJAeLYH&S1%U$r|u?p5G(l zVa&-}I`eg|W<~mj>`Q-7e%`e}=>F}B8+WZ+43)zQ6KfZ&^$%;Jlj!+iOg?zWCf#_f zY%})|iF?Xjwz%{8iA7HVCr=AYUTQnAvM7(iROT0kZd8u+CF*7xl)6E#%1#m0J45H) zh)#+zgYs1}Oh=QiSU#M;ZNRY0Om?{;s!=SrTT8d+vEt8}oKfgmiqO=GJ{`>{c1PEP zVm(T0bd_Q^Zs9JgojZk1=H<_1R#t74XiE~;+cp{)>xvD3u1huOdU_I^JP{fh^L-mU zDX3lTn%7AGsRKF(8s{`sd%_!wYad8oyfH-Xtd8IDIX}DTCbvQAs2>rG-mhTDS7JDS zF?M8GaLT`3GSIL?c<}f3M;Cx5EcYx%5OWlP3`ZuS;D+|#uAs6s|j{I*Jn zUoqy2ig|<^coQq#Kd&%u6&$Mv6rZr_sS$~3k|x=nPp~u^t2gWEd(kIamH?cuG}5&Wj^8S>^9&n2z6nnbT%Gz5G&iz+UKU;ZoJDJGLtet zTdLmlhXl{z257o|B;}YP*47*zIfJB3@*QoO(q#=>aYqH+>N}d8_Op2eRy;p3jm$Js z)X$2mhwUWYPF6avF>CMH)@U`UNV*d8Yo~n5H}}v!(8vXsxK(7Ffiz?%I(v_MZh5_%)BfHE{Y|g_P%V^G z*cOQgZFwI9KhA;%jzeCAM&|A(!~XqIYX=sWjr_%6i{Vjc%hb?e?Uss5qse+F(DZg} z;XybKm9*Pn2+OIfZ0^R{VHFT}W;-eW%3Xiw zrf29idHsvCtBsYN4_BW39$9YjGJYGUO0(uU!&9R=V{&FJY|-bZ#CMJANBfZ)@rF^n z`9>nVw*6eqe%M_l?}C`VmcNZm3S^)+X&K=E1J zSLO6)7xRuv)akW_Pb`6IA=NQO;e0Sr-aM`jIU$T_(kbCij;cNfK# z>uU^lwuRmzQ9ue7;z->2A@=~uX3bI<;d-P9)C>)JXCqr3$!oiFX?A;gP<7C|5|;RE zkZ{b-o$y;J>^0FL54*`i{=EK=ab}d{t-8EJP=|EXz9Tg)WhU69{KKqk$>W3>hosqC z?k%G1UU0$XJwUO`jOW$@#vKpdDAAFPq{|oViY@P|)rq+WsNKnI@BHHw{C7Fktnvl+ z$?Vkf^{0MO`td@Cygw#zxpXqN#-HGp zb9=@=+Z{%VgJDaN<>#Jth$|DR=zeOrU6RtA6Pq9GT#!0?seQW$kvpE$Y(g${*bQTS z`rPN)anlI|wC!||akCo|uV(|6Tk1+x4TCh$e*iO>bBC7m1c75bhFs90W0%_Dz2#E4 zY}b&0`r|8;L9FhYu(V+^>9d7YbI+*CRZxOR^Pzz{{{Ul*1 zht2uJZ81Fuq{ids3GJG!8Mo6%?F$d-Th&WNZLjT#zuyP7{w|&04mz4nNNbLlI7fhI zH;uevoS2^c5ZQtAiYAv5i(3qr=F|jf?J~;UNTS#?*=Tpcc^-KyJ#@MnvS z(|BNFtYr^=%!Cm+rkD(IZhE-HDrxN5Knu7r(ifq}z`jlT7Lgc^t0ovtGKnKi>gY$C z@xBdLUMJgdkTQhqP2#sK@DgP7}X%|)FCrsW0}AJl09+pbWc?bP4|8ecS=dv zKA%Mi4`Dv{ZmRJ<4OUC>23M2Ytpb}x<836!!~JYNV4Q>9J)v|qWq&-$P%(2C+>awC)C@1%?)QKeJXB_Fj z%WGsQ#bdII%oCF|KKMM57cTJe)Z8F2&Bq_@m{d$)qJGM+jJUmwcOsbt3T0j zIdJ8r*PWiA;Q8=zH%ceV?RpEZrv)#zx8aQ0R+vhm=LM41T z&l@ehwk?yNOl$&d^rOpRpSNA7;f;u?kd=>`)Djcb2IlyK@p*3jY(GwY_*PsHT_c-2 z(H@(U)YK$Bw)Wbb_R0a=U0gTgF61C@-ZOSCLM6J-W@0}>mu$UWMz|acze2>;+5h7&b(ypZsHfYnS&jAon5VrPydzsS+n(9oa%R({pNm7 z+BV73_Jyr4ehjfkh8vqZA=cL%7CEQ?=wYM5m7Wq)utnrHrA+f|6jJtiYHCI%$?%L8 zkIz4nhek$y)hz1A)eY0IjM11KFn(}u!qV3rxq3LUC&$3FKbXcmO%J>&4La0BYdl8vY%F0 zSW65py*3{LWV2f!oHI6!-LnPAAXGDc45G!PA$6(2otil|t;pUb68Yk?)TtHzbYr0g zXKo)wC;u<{zmP@08D5uZ)J*%|XWY*tSWcrk>Rz4-3u%2#JJyR`orm27t)ucGU(e7f z&VG6GCCrgEpMr9xI4Bex(c{jdYF~f4T~*M%>8{!Glp%ulX$e-0s1m2W#%cZ!a6=HC zqicCd87$4pE54cj+CIFoTR%pRL6vTt7t)i|w?xIYU%~SU(X23}w0`Jui}S1trV%GD zIU1YDjNfp?r**rhoaUId`r#=T5hPl}HmRv+E4)q*Pc&}(trVrn4BzAeK}!Ff!)hSa zU|~f}y`6ok^0^~>N)ii60o9N7Db||xtD~M0ltxvPuJda+@U9p9A}H&_+y0k1sBhcR zt-mDw1HhTiVo~#EN;%`_38?Px%JM7hMNGwhCd0YDf9+N)f$tEvIo7#-p7Vlqd&0i= zaz>g1<68QxYr%M-Ktpw2K8L#@ZA4`^HC(ays(6qX3Cjiy?mA^N(0E&0Rkr64J)8||MC%LbL_EIxf`Uo_~IgB zx;WrKUuxPqmNboX!JT%mw$bGxfOEelMz|EL$JsLqeC_O<%m$zmBkem(_2lJlBtV zno}Xk0jek97to|;6ThbFW-)`*50kAsHCwiKX5RC2Za*9q`7C_xD_MJ~UK-+*`UUEJ z<4=b$wr8%G8$5w=nR~_= zV*2){GCt~A56$_nk$~h) z-HLlEkG9`1Rsf&5T`drl0R(}7K3N^f#AJ!YB$^}J)(|lP$mGQE%9JC^vxl;8bDA_N zvNLK0+*sC{J;gX9NL8`)p}`_Aw}`H|FpR|nA;F`UL!lA81VxNR6k*XjrRTLDrPD+v zOjnHjTnf#dC+t#yfiCPET$oAITQ?9fkyIA?ZA^Htzr2hCKrD@-{bT%4^)J zPWFyj;8S=RlCHIF+Yvd7(3cg(jL~COC4FJw!wtiS>xTe1e)w}}nB#>>rfZ8L%7rW_ z$Z+l+kPmf#u}ScOx;peqON>`ttf4q2Oua-e#cVP`Y(?45Wun3SbTYjjtjx$SY^{Pk zYGb80tYp6}x@Ey!fNN`?>=7dTDgeJkBzvBE8`G@rbN<#r zHa#L|^2!l0ZX)>AQVzp?+fdAW(T!x7mlW(A#&536)`v+TNK#-)2%qE_cSE;nInW zv;1_@u8Hq}*mAi?{ZtNy{2%g%IQ|T6Jdt?%=um@76Dfx#3U(nSnTG9+ff z>ZalalOGXXrvkk4jrS}kP@ZmjD%t6k(=W9mggrY~Y&zG2GBpuL8upl2EHK4shsoO1 z5YG1pFqD847RKn!D$w=_-qh9Bt~xAqloHh~ADardsz;;V2_WURu5=z1XD) z6jocH{BJi;5HOVUnN-qBH_mW#(c#Io_?=|*P!S~qo|9$H77srOenMB_FFr(gsVhuf z+jzGFNPC06lsmc;Wcg|#0M+($m~u@5QkYqS1~2-;sQUi0X*j-XecVYuXwjUm;h-Mn z(^Awct>tkJOH}QMWi|DwV5#=Ty?zcH{s?==NV(RfL2hxN4~&q3u**fLj=jtPs{Q?< zx5A>v#+Rm%H`Kd+&Z9Y6UW&v2@Q5dxYwCx?saD*%Ls)t5!ui9v&LLB1`M%zcc5tGp zxAt>D#i!m=T0wXAvrP$du~zj6IvmxCs6#*(qX=LysZZ!>wlHBV-2EJ)wck|PYsH`E z5v(1r3uN>Vhb~D^HI;e-1IiBrwn+|KjmKsi*_L?}la;dvi9@SG2QYppzYVG!)Wl!b zYh9sItoodAzSSc#TIZ)DN;kG3(x?@X0Hs3;d#3YoP9Z+6X;wbnK`nCB1=mlmDXJiG zZkR$+Sih2MQj5Jb8f09#vsJYdVHimok)EM2Z2=AVK7?JF{4~+Hx(Q`L>QvbnU0ubm z872<-2hgpn%;~yaA#0R9!kF_%1x#Y{7eCU#B9^f+gG5 z@}%Ti^lPza2MR7eR*Iw~P(&I>3g(o5g_3DPs3&Kh{8S}C!4H#l&kTm@wKnKd$}-_@ znx?ocI6_;HvHc7oEkaKoR5}8!)+XB3VqC6NFUd=1jnZ5w;CP;${HmU}s(?xB08rU- zs*VzLn|EikhydfPPgud;i%jMtt$%rU5_wb#=6)$#4aZ5BcpY$Zy;l&u)BvN2x|QY< zoJ)?V_LW6a_+GuaafFHGhZ4|S)>d|^td(7k#HKz($n##%$4p>My<3S>BQ;Kpd2i%e zCHo$bGq;v{rZU!p9t0B77Ep>aRnq5-R`;4Mm5%_QtAd(0D{cs!OwUk zj>33-(P2+ZMp5pJAAS#r+V6YkENEtk+xg}VraUbFW%48OPz&`(i@dLiJi5A!*|{aN zZQd?`*8bc^ksMF-B>wV(+k$BHjBp^xWnpp~Za~-i3;0I`2F~s{W&F~28xPDk+bjo` zhzGSCt%!Y=;W8;d-aQ==X9gqoCGfIWR-ews?>y(Fj6~oTvikzSPqB^Hj)R)in>1`N zC8`HLJ8ZCy3*}KP2w<(%uLKS!6dqkwkucFy!S;)4+vx)=X?8T&U#|k+`qLk&q8U-x zY1{+i72pC};hP37fQm^(x-<=HYoir$Fn*+Lq9)vkW;Th)>GvVJd22ZAXPgEMhRq8)sWV91faennxUx|B# zTUYmm-#6r(#Q~dsGiABEcM?>W)>O>sN*7(OPgh?Wu`<(xWm?gixqsu37IGaH)YRZk z=0&s|5xMVXU0sO9 z1yXUK52?JFR~%ozI;560LtGd)0@dfbN%U(j350K|n!Izfnv3clV0G7?2$FNIN|0*s zs=Pt`j8poUdv4*m>X&Zsj?n5|_z$S%p{lFQZOHO{H!^CkUw)74Y3v{n-zrdGNygsV zAyZ7)m1C^021I~P$2vZ#ZrVB35iD+lpL zQ>K>e0@Y={7&k`}?Dm86=UxSfTY~E=F<*ehT}`_NVa_0d$FrEv%-Sesu==>@)MpJP z9L19~!}dnhZ$qqM?C&Zq5WyL+fHve;{O9I!_UiVt*TAs({b=d9Jj)eE8big;rW&;v zvQzT+fVWxqfQqxpG|$8w$d&16hvC6%3xoC+3o}{^FsgMM0n5rc#{rQcmml)J;}X<} z=*j4Ijj84uW(`AUDrlTgj>J;8p_f~@sASU<7_Ifet+3>p0b^yfNlJD&(CDX)$-L?5K+N2iMHt$yd7Yo%7 zSF$cl%lQsVt11CF>PCB^;$OlGUtk5GE^fw4#M%2kikDbh^*ky9+1N)yDQ2)Kn3B0d z(^f|)Lf>)3WS0l$%g--gwtDGOnlEgPi==*79m^ZboKpObIrMT_b^{e%%7PSxRS)v# ziI#q_EC`~{e<)8cBnIOHOo&jeuWrfi0YT}jc>A9BfYjEKS4q510ETY-wUcMm5!Ar zR~l4!29=lu#UTm>yOx!##>L4f(qxG(BG=qE#jz{5{J={0m!srQ?AaX>DnnjQy@a!1 zJJ&c%V9rA)5FJ@IKh?0nxd-Ik1DvJDa^KAl5)ik}+cO?yZ=+4l3t(azBRe|hm|$6R z7dT?)?O=hTmX z%2R4&Q3qHGxVL*0)z9h;^2*cR0}2kcB9Kzg+;_`mm>?v1C9W7%og{&i)Er+RwLMHF z?qE&J%@7IS2yFvMP~Ef@5z|(Px*r&?-np-7uAv8`{*?mgGsz0)YOw=;5|e6+tJ9&; zBtbM005~re22O~6B=l&(>TMfemRQ#z5ELJ^6HW3^B+w@@r(8Y=D%#+nQp&xkJ7A28 z>WhB6+7oj@)pW=Nd+L%sncs$)yUg{>R0${~IWO=-Vs`Rh2ot#%O$T;B8Y}HNhmueQ zZ!+u&*s@2A-fYuXvKE;M*iQqMX>{%qk(qQU!DhycF;(3sx+UTsXKlr? zT45}MuTSNg2Jl{dnL#g(W;Mk|h}&vC_JwI~d-3r56k=8#yw-EaX?Z+|Zq9)ocVT9A z^bTGMj)GY>dxMXc^aOrL-=8!WRY(&##yH_nQIicKETL=?-yy3d5ghx&yXy+=yj zQ0-v*eK98jEc-TEhfc|3vVLyQd}*HM^WDnz0yP2Qb`xxJ9)1sgx@^!no5V4JK+0yb zz?d~}!VFL^`e@WHcyA^#Lvgz~vB*_7hb!d=VBv7louCw?@Zp`XUPAtrx)PjRr8oRd z*iFt>)$|xd@g1vN;!!SveyCW6Np@dlaxLlO`uXxU#+7}LyQYZZw^eLcO5a*NrE4%X zt7Z13!|ix*QAZbgq(U`qXPC=;-E(!ek^oIA{yGHITG!@r?ag(S#S&+We8;L9ExtJ( z!DPs7j`6wDA@e@BP~}hKtxTY|0me7epx}|COK?PyHCPS(c8p(nsNwx1dn@tKEM-JU zd^qBBC~RFL&^y!vt)9Ez2<{siL+sLnOi5hugW znzw=7IJvwb5gIETtH~g)t9TZcZVG;}-2P4WPi|mPvy+2RPP%rO!s@$LsUhr?v7Yx~ z4Edw;qo8fwaEc5Zq9wuN85~#Z_t0CW5Q_pjmdlNR=NU?$`x=NXhJ2cJpJ($y6rT=G zbsrw8W+g|*pjG$RyS=F2KA%~AX2rkHEmod>EqcBmo{%@^8K`86jPqK31xX9UHm3%$ zg16l0<(A07roR?#c*!JH*rpEpHhUeQwIM66t53*)i-V0!9rL{v6GkLX*XnZ*@DokT zz9fT3zqnOCh75daAJ#!4>r6y%`83MBJGTRX(fe4oL~4|7(Z(B3^f1BQ zg;iQ^*GKXIyFe+YG9N5mqR+I2m!%kohrBnt*ibM=Se3Zr@X7l2xntQGMTqweiB(yp zr&|%|8gghekZa{E_(6A(ewSpvu2l?rJ5%{f|Z>+a5@ec_KB79xC-`7fs&f)KqS`k zWlFyE%KkW*qyA>RRP)yIm?wi}N5$i1DOXJWR67jc)cF{PfR4Onl7pAjmJXQ4JwfIK zp~id37E?VjFHlXMa~4%x2*^5nc)EBR?|}5*D7p6H9emZuuAa=Pk(%Q@im$u}JgVHc zP!_AJXMKrfcv2}dsFrvX3=9ogtIGdG^u}g00Y)m~rg?itDl0Hyv*vS(uH_L*0v-ah z6Ui5;>dP&BEkMXvYLJ>auX&|^c$))iULVKEG1D~JJMPq&Qt`Xfb>fCESnsYLRHG`a2b-keC~Ub&E0 zw$0uHL`>#Pko*=8FovJg&rM)ZY6+!2>*m}a{Q%Rp+z!fzF-2=g$$Vd5Yw*!DF~1D< zgk66d8o2-xqY#A}D{{!>4j`=ND>GnPq!$sPOpfQ8)UW&q z8-|G|rysNJ!b{QlY46yxSCbp%eRCaP%uES{?kMh8h7o^C?0>YsKx*%4e0Nk)$w#^H ziRw9&G(;g}*Hx41U*4@mqKO4@?J5!#@m=6*Wc+)G?QZsHuN5Q%Fn!-gd6=!~!b8x*gAqBqP6D*sL4qY#Fq|mRUA?{T>km#{h;g0w} zBolsKwsWo!pQ-xHwRe(aD>5d#X^#nv?LwwfP?5Xl`#G}}$4eTRU|9STDwriOCp2Ii z?OIg5MiiN^usJc{i@SkD-NZDttXt5VrHkfg){ z$NVl>Sf2w>h%?HWo__Z(;T`GMcK>;pEbCodN03uOrv3Y(05J|3GlAALc8yiVSwt~% zwRuq{!~&$8gtCU2A2Rv^9IO1EiF;~y+akp;d|-8q=rFf*&Cl}WAi1Ny=iP>y9&#mi z!bRz!xz?Owc5gdL~7Tv-o4t%7uF23BAR56u(12C=vVy8xCmch*jILV?*wLubMIVPBvQKU z{N|PADg)KjIDIauOt3hnTestV_bEC#kXdV9Fb;A{027Y&k!~|Ma<(5kxp_Cfzlo&j zPjxnq@kad6rZPsL{i?_s1GCd3C`(9w%vtQnFPaWpc{L=@%e+j>R2?Tvp|*kq;VnHKIIl9*m+1IMx1kj6LI2gq8%!vJA1~zZDM#T@lOShsj z<;&ai^aFiR7*@#aE2@{C?N~L|zk7&33m#px8}e5lJ{K(>Hc6p5|$6zU_%j9*A=&S8X?};h+zcIhOtQ+!sRtfs}>C z3vAr^xB~yqcp~jB@3$5_gfJ29D)w^rr0v00DNmhRc99Gn0WniQNEh+b_e^v}KYKeiXi?F^7ab(^S>CH`T^j&Md}eA$se-y{HOFS&Ac6 z)p{=VVa~gg6RyMB#h^u(GkcO#a6v9CrAbSy@oZ;@7gC}sf5`j)SNbJ_?bLERRTjb> z4?UMek;92g28FGrs}_nKExZ=h^(M&-*v?ICo}KosPQ)2~@KV8vcGjrtnTO;=J%dL{ zuS=}R;pAVTM79_hr{TEEM*OGn^IIxf^;qVON;>EE@NHuCp|-v({nl5UlOSByO;FP) zpD~~JG*ye&s=2^WRUg1Q2le3^-3j#&!k#GA0Y+o{*IEdjo{0FxChKWgui0~ zNo6UKf23*1jb<+F(lc$8W$p(TAqySB)7Ox{Wn2?${%$ylaTK*V#?22(&HO?zMsBMv zDN^Jr^yx#ZV0NE_0)^KtrqCrd?mml=KMS7r4Mh>IW5a*8=3=i~PP24-XEI0ls56mj z1a*BXQ!7-VdHxI7@g<~2>xD!6fyTK5$4%6SpNrPnzW!D4Wt8njp!FkTKH3Fy`%okc zldc9@9>x5jajXfq$OYFxf$(>76xr{;R1ekSMOB+Z+qPEwl` zvbvTuKfp`4_BUb+p;7Zm*vM?fe_3t(zV-zUIk(G@`khc4PW|H-@B0n|CWhtuSBoz6 zU4?c6ea%wPAupJU9a&w=YxAgreC?&4i*AF}W@V!Qq4&|I)1Qcd2Vi_jGn@6bTuIOt@8@fA|r z=Q3Nb+OGmcs;qG`YRB>fDF^DIpps{Dll+KrBJ0`p?mpp@vSD2sMIl%XAVVdf{}9?9 zlI!(`$~{2#5`MJfGw5p~z81QMdhq|g9gyp=k91C{d9`|W68I!%o#aDp$b3`r-!scULt(@oa8ki&_ zyGwX8vCr&Wq|8FZxY4uX?6ku$^JL*23IP{IAw1^J^VY~>%9F-7}9*<#H(A@wN;ruO$+&=S1n z^j)y&Rwj46N8Z`tJwV!PAQJ7YKi(q5IR0IHCT9rzR2&o4mpOims$Q@J^b1iBTOv}n z^&`_=i;fywXnHx*R4hSO=QFz?|AS(zRK$IXo(1DbN{*b`rURRS`0LKJP&k=F-)qbP zvO$bvO>96q;Avt6{%$A@1=SZM(MPD091=G2UwR)$yxDBD=VmY>^|Ps96O=_6 z1%+XLys!}le3E}s61HS0k*wga5c-Oh_q(E$uKmQs&~O*w9&4yIxwQsC_`9!k?>u1C zO3}RT5nuRdFyI|>MYJ#pR^TR`o^km2xA1y!g??mU(CcOePCmlaR5qi`m4;5{$4*YqYRFXg{4(xf1Miq{(VSjetJiZe z6rS&u>a>M0)^2u{Fp#$Cl3&`LnXdGAvaJL1s5d;ZXy$O_LytaLk3%KMqrtb)QVM-rAWz0 z0LpmTlNug;-E5q&7iA@CCz996Xjj^-d(%TF)1_BPWG(tx@mo6Vlb#k=5USwXo{i?H zrag90RW2(3Gs`j_oaF$;gK9-_y1bkEJSB`-*~WIfY^F^@8PU7q*Vx6qIl*0(``@df z=UMHW2c2Gw$Ee#ZcQM_*B|95{#QEZ-Q>EB((A7iLYiB6QhjJJO2{ah@?^lY(|2B z(84Nyq=Spxj$XJg2smFV$%x|wS%H2}N`l&7@$*bQ$}Uew0?U~nU&k{SzOFM}%jKR9 zJjZy(B*gL%TJeT-XozmNDQC!>eiM8Jc+F=TTx`i1qKEJXLw>nJz@Q0i3P{6xlhz{W zyBqCL^GU_fZZe2Sf-!;@54%W|!Xocf%^@ly$u_!6rn+kA9gZ=JQ4k&I`{kR!yMi-S zpaR+BT0B7tiRFZ^H63$iP35fEUprPUz#mX};9J^Dj`DLco#9yUu#pW_GIkg$+jg+C zPd2N^smOP%^j>}osv5_Qm(G;b+$(xX%3{pJIuvMZCsDC=xZA6~6~_ppwFlJg#Ej`h zu2v?KnRxXw!sj)Qua)E@y_-)eQwXy1N43$!7Mblf29$N_w>bzBM-e0^L{UgZ&xq(^ zlXC z)RI|Bbwg^YQ(hZVL<)A;LqIBEwu&vY7Bi7~J=ADV*|W-aR1*JGesMW`B3;27>gYM{ zhP_7l1US8kw+*)>&hg?@Ho!%aEhOS-B@9s#Q@v9O_K|REh-gwGYP0y-hQ;YbnH0$K zorG_8?-adCMMJK#dTgHk9*~j0yhEu?In`A>+qOM|Y;K*>YQGa*E7zC`v{Ad&R6lb+&0^ zX_M(7H7Nv^qZ&g3wZkrAL3b1nSH%Olz8XhtGz>m-k14EL$sh4zQhE7SF}Lt>sR!kP zg^kJg>Lu^gh&c~r5AmP-5a<-o7lAfnv1v4@(6?_mTWZX!d1Lgi_ab-qZn@Z|vARNl4EUBWwnPp+R zmx{9+H+^spFRZ1J(pWjIHLJ?}AZhRSzhZ__JU+aM`M%d6et$l ziaUiCha@-@*8%~G6^gsIxVr{#fda*~SSb*+K+)hX#e4GmzxzGc`Esszf89H4P3Fo> z#@4Kn^*r};uM`u4Oj(XQ&d+$N?}XvrZ`u=ipLGqsH2?6Nb%7m?GixBtBVyqG`2mnI z_5)|HZFMLOP_Sn0s~NfN*~>?J|3*oKkjIiMJbI6^e(*?CBXEO zF$fVG&OYw;UA>5BFTSWUpPD--oFUEpumV$6S27cpUIv`uiPn9o~MAoTUvUQa$h`r%fb0Kx|8})9!ye#FE-)OYB;2%Hr>6H6b zvc?LLmmG%S3_L%^HiNTn)Lzq5&r=?jOO~h^GWKr&Z+X_ZKfXjMW4G@#Nd0Il>f391 zM%+ZgYUwGL(yKuU_op*cp>s{8YyzY~M_z8xT1ob~JaZ)HPX}MCL^XN6GSU*$JTDL; z+ClZTaB}wNY|ng|?Gn>B(!|kv`P2K5HSa{+qNZW;3AUsCoYJrmT(8Jv3-$&P%i9Xs zT*?d%0KL4BID4~bZF0wqr{oaMe)!y#LAQir^^JrJh*5H5y4WPyi;uUzm=~5yE|p9^ z8H!K*MS_1y1NMsCxbR#*|FuZ5sByHC4(Ixy>Y&M?hHQNtneodS*oIlPa!fr3!DoHJ z;a7HiHWEGgG9)gf`yBRCLoSY_HFnb}acGu=hhhE2i!bkM9Pe0=!<`Jo<-?JAnS@@T zOkbNSJ+~X@#mp)hOPocQSCp+811e}jc>=@Y4O+jVpSMf03#H8h?C(DDJ0@YCIWJ2v zwZdeFoG}HTKd%~?d-5`URVKTm{eol+z7%U+@aolk%j+NeebSKR3V6J3#9B#t)vF&> zuV6|L)|FO3B zsz_p3_|%YrsCRK=g86w`uQtTrkUfgrf;;|Fd8VIyTAan2B44&g8NCFbQsVi5vB{xo zBd%YSDY5EC!Zp9`_HT_F#md@8s=KsqM}LGe{=_*o+|SRB8PbU-i>FpaoAoqs+6bM% z(UVDh%|lWVDkd{PB&wNi1B1qN!j<2@UC{DDmH|r`F4p0c2VA{BfY5m`;pTh(!b}T^HHh=~5VY6vRAyGI>JwC=Rn3_jCWBfyX@gY8l=JwX z>ZB}&G`q2<8mqSwEhWF*e2ZRx*4m_2XDmQ)vDMwCb)-sh2jcK~ zAuR8%m5QEE8paX(WicdqOgxQM2plu#q1Sj9*|LMe4r8M!ba+aCF8R_YjVqjp6Y~zH z6;Q_nm&_KUhmujyMn}kt(11FPMzjuLsXCl0vYa-=+#{6d@}4@ae4Gp(F+h954u~f;^$MLij&5ZXF?MtJ93JS|QNCxO4mM3>h z-urT5K#87UZDwv}$~+vRdK>uktsE`ODcsq9AgBrSYlf&<7bDkEQ{jsq z2-iEG3O`eNAw9UBuxG$bP8T?nGIklSn2jFsDJ;H%Q~*I2I$&R^p*rxpwvg(XI6DAD zJ>aPgK#&C^a{=yQp}&T%%qJJ~=U#tx1b;k?Y-&x%6mim8q-^_j@DFf=r&_`uRzU?} zei=c>nISU+&cL@6R_YJ*SGMdU6Vd;)_u|urn0xf*U%3a6h@s;NCX8Jsf$nfJwjR>9 z1=Dn!dfT_H@a1%GMEtKRxv{Cu_5^g*EA0N+CO#HkY+wEP-*8xg(iejSNhE)+|ikO?ox^BYhKlbUMV3A-ol8@99s2T6OKGH|8%>Sn0mRN z=xqxg9EBRK#1{p@;t1Ai66+-3Qsb`DSYcV2|cc));66yp>mUacxi3NCa2N%OEtNi-E8s&7E$gzV{)aWuT5g%7ag;;U{JYp zEWMXa=|0W=#Wf(8GKB?`momo@oa{*o&w@|gs0AuY&-iO>gTicoR^5W~O0sKw)+MaU zmS+TE+uUgVz}O?bu%7x^h>$o{GOE4z?qP0J^kMivAdO)YH08KMAK|3X?QE@G9FDCXOmsi-@G;vi`vT&{S#Zo`_7tI|Dv+8z!db!T*$}!!asxO! z0*6yK7Q@t{wf4KeIH5&-$&b8MdR?}0=C*$T<+1ETW9!(V<)l|yk0m}t(3T1}Vl3PW zSN+e|`R4snN`orp^a0=ojzK+{@(a9z3F3n6sjit`j2cCnNdjfo(9KE~a@1y>n(L$h zIA|tJ<34*=KjndJdzb;G59E@MmXG+(>Sg-AN(SVTEjk+AaLvw}u4fRKmTb7(JXiP< zCO$gtZgZ+R{7QvKc$nWRQ#M|D)LSjAXq`Z57&u7w45_veJ4AlZ4pAd6=+_Z80N|(T z#gyYUoND@#CZ=(vO%!#6N~*8ZCJN801*9Z32-99b>0ll9pEU(kV}1XqkVS1Z>2@57 z+Efr2aM929GFgdgN&ca%CmNAiP^3rCh0Sim75R3n=6Fsu;X^{_p46BVEIVkf&e;w< zpnfzyg(H{2#YFm!3bpbGp7!*DJU5vZ2a-G>--B;EKm zw}xdtsFLn*Xs`S*EBi}jA1TSnj-7w~S>_|8r~s;QuNT!En`Z<{aq>1Jf%sM+2r!6% ziK?<7TRltnr%EvH+%1P5;TbY}CC`FTEi0bLK18ur!2cC)yl?OH*AZG*AI$6DbUk%w z461D6+z`u*f#0XJQ1`I9O%l*~P9~J@1=WTxyP4+*N$59HU(h>Vu3_I|WVT2<%aMZh zkwt^ifzuEbIRMworrKLI8X`D+ZmgworYal#53pxBJkBHC$}H=+Uc!i5HelT@j@g^( zmZcTb&uc7eQ@AZzh5hc0y(8_UOnFlx*Kr3?N#g4@ea1JLQVc3Oocj?Ovyj7$Qppk{ z@qDg3*#r%%X_!{IF~;xYTvzjx3()(xbbvgyyJ?qt5`=XG%8)WZKCyRvrd`S*JVhx{ zff4JnM!!z_^ri4z$xvRIvlpdR)Qh)9(3tNM!bH(6^_YaT(|&~vhYx>E^C z9B6~olPhbD9B^b?z^B_1%6xT|cX|x&P{*%SHo8xvNfRmo%_7#g%fFmX717zDUtV1M zJ!p0VR#6xhJs0UTqA$ZQ?k32nD^P;S{VD9}TM9_>g9n-}fNqiu019P1VRCE>M{_q; zcWfzu>__21R*0zAVj?_F=K`oOS3i6iBrU-~Xo2c~i`^RBX|fHN5TOT4ZaeN6xx^_{&sQyhSu{+u8jlVVfR#QmlAq=tHmw_#`>Uiv*duXG^?2adb{q6OsffK+< zP{OJj0;@d6Vx}5OQ17KzE3v+G=NUt6pI{m*RxXl?I;?cF$>@Y{_sLYv$5$wwJ@u9TcEJCToU5dK zCN05#tfQrbOnlS!ZO}kq=GR7n$sP>`9!%?_eU70V9~Z)ju#-d42>>kkd~jkf0M{6rzr zQ^V8FtpnsL7{3!-xUQRPKc~MQ%ab>TM^d0<$xh`a)PoT<6(nZlY$*&bUJ#g zC`ch6nm){xz*~AQY3Y1+a-mwc#*UcKy((~8>y*E>2$2q>*otIHR!vzU(uSxw}iDVozp;y2|OC~ zBTz;_43>w&bb~3Ria1Pn&I>`8z&lZ=N|)=K`ePBy6a_T+Hmf7>c68RO$4lA%!jy`z zAz#5q6JqS*KMVvnSF4B@W8!*wG*)J`3RF+%@Kv(8M%S6-gBK49e?$8_mN-`ij)XeP?dnufbAeEO?) zf3cFtVlm(!qYpyoIyY?RmA7oUTPM&Q~Nq#T5 zF)k>@vkWEimZ;LJqRYvi?p*fLdHJ$rrU=6kD7Zd>>0~XCYymo&x~>(DB0u8BGknf- zycu4M2TnX<0-Ah%r1}eLSS3VqnDI?U0gY3XNj~dTy!T}hfMA^`H_k>waERPF@W9KD z%-c2Mp5}=|aY4cp`i-^Ci$2&_8X~*GUoqj?N`HbM(vytVD2+AnKY*HzP2CcMIXXH< z9#VLRwpgzFXn($G6|N~t?~sX>ERxvCZoS|nSnfzOJss00n#w%pS&^(D+Kr1G%zw5; zE>v+@Ou>3@~UC@QQB~E}8X1n>L9i$7Dk}t(##T#05?M$tpQYzTqS07Z;=ig3kD@RdXiYS(*eyA8F5Ceeo9eWz zOMt#ReeXpnq!OuOppN$wW62c@Ra+F^;U^7cYq@(4!@5IZlGF$a>CvhC`mSM zc{1JNpk%YE|Cl4VL$~HJmk|`^O)FjCPoYi zpZC#1gjopy(>m7KCqZuf97moKAB{HBud@49;@&V+?i@wXmnJ=y`vESKMqBVUOt)I+ zeh{}AEhkNe8wK_h?XzEBqoT&G-AfIFyerbnp<9A-XIKbbv-}O2BdHa2k24fF z*J?eXUx|TYg59{G!kSxe$1b2w;Am?fFZX%PIcu6C=;!RV&b0(P*r3GV;yur_)DNh= zpNpZ))+1|s%!`rvx||+egeE>7e7H8Y_D_w zm5m+xJmSp+fy!69K}gNpU;ZKo5_yUxx=H>4fs73F*bRSz@zuO-JyaAR`Ml3t^w*`L zepKjI>*uJ`F-xYYAp6MW_p9@kH1|NCW8=@D{;spS7j6o)$9gTE8m-=CX3w&fmJ$@- z$YrzH<$N95J2&ano!4ByO<1M~YO#;4%JCb`42b_s)Sl2N0UwVafhaMxo?KVNnHua? zWyTwyC%O3x$W;uGS7)s+B1-n$%D(pszqXDPs5U6wbCy3d z)?T{BTpo^{=6ZSf*`7GKO_~5fZn}$Svt-RB4TkSb-!F`*QA6P8oI0ahskg|FJ{&riKEjpaWshyrD!U;9bUQT8uR(fXv*h+m=vH`@J!;-91>V+ldF zjQKPC)Zao|TQ{?(f#Jg8YIfj3nL2j?;_^+p1KXSQaaxsCy!$lm=8WW$-)F}5F5RQu zt;%G^s6*0)@o8N($v*5_u3PF(3$~9UzsBdW) zW$CWn*{kC(n{_-Yh+F1z2uOU^{No$*gbV`d+Mn!Sx>L1SiC|!qo?_5(%UrM5$X&i+Q6Dy0+7~3!T@y`m2asVYxmDi#O z9f!2};$BDw9SNxCL{U`umzBCZ8cV-2lHH#&>0%lp+G-l!TID(%7KlE$(j>Lsui9_{ z{RX|~tiDkb|CE1#mpv0%zEd?dq5Cn-cx$xtah@y+YTS`QP{cq|Y+LyAFZmHe?R(Q8 zHfTsFMZoO%#>LWo974KjaWb1OE@ zqfM(ZyVNLJR&75J2QeyS;?^I#MA78q?qW9L;@9jFCrhK^e}Ee(}&|KRTSn z#&~b}9jA3-m{>sD>t~+4b*yB38sjf-Zm&g)7W)u=x#Y011u|w6$98FG;cwPNJexlv zcZzE&ua{p^S>vH**DXL;B(eCOd||cXj2S`>s5OeVf_LtDsv`6 zKx>aa7`eHYJI?3$xwacXu9{t<_Sg8QUe=o{CI@D5hTVs>a3R=)dfW3pWZN>PcJ@b( z2BtpCH^az^b7hIr*F%(Ki<;$(gvV+nhJZ&2cJLMqG!{;O!zzDaf;I_kG$BL7Ws}Uw zJ;aV}oJww9PSGs4#7)>3P$IHXwAqqRbfQBRdJ24lnX5mx@|m>m=i|`~+;VhDlc|sB zGCunYX+aAK<_whvYwyPl>!1iCLi*3OLXt3tTWtHEbm1G?yHy6wJ)elk6rxnNICK@iS3IAdEST>mdFF~_tq_X zKS>hLM2jk?$n!LO#(fU|V!xHNrtFX4_mTN?3{ao322N%TT7$$(R?VIPt4K_W=5lvl z6~=qR#8~8(?YmqvY#=#jO#9{p_=}tGuprw9b*9MI1ow7+{5+8LDSB2wRH%!fUftO; zjhC^4CCgmM)q6+UX5$`D$a`A0keOyexiQ?X$R(>H7o#sPRONza4iVCpU|7qGcw2!9 z0}o+TuM|Ai(tmPdWXaNq>`ZjKt7BBqBSb4V`@Q}MhQX4aMwh6jYdJV@cB>u}w2@X- zA@HEbP=9*5(yJf0@QlN;_~>|Hx8zP_t#IbzT0k0aNmv12u9QTH*PXoMLs!VE}6eum2H?Kdbi@@S}-COWwe@{R?z;y~!;V1;5nxu z$?-E*%BUGxbi;g20OMS{1$Nho@vtH%HziaSKt0@D2$YOW9Th!}GNZD7p;AkeG52mu zP*$y$)wm2>5-pH0-a~WYh-*;zcl=Dvoi)~!p(VG)k}FwO4MuWmO zBo|5Pw-I%#`Va7w@JL46`x*iJ{$XK+R%GwUQ~^fW^JH5p81KpZqk(DixW=o@OeQv% z@XZybit7%lXW4c18qalOf800?N4Cyp2a|8d<|%)IOadjWLWJt{O8G@&OsUu~o+zc~ zW5Cr!H@eB5FBBIN3H7B&J}h+7x;^_QQtUdgMpcrs2!kPOYGekxgmKLzfbrho{&9UVF??ad62E@c(%Ryxs8n3+W3}Y zr}%seS7dYlQmi>!Q%t;P5Nt8EFH}{n*+ZXgQ?VyPW3DCO_SOdqpSnAgo-B?GCzb~!gK#~*@z3Ln6?q94q( z6i`mnJoQP_JPrKmfBaNb926C_2u~)o8rJ*WC{I4Lk|Et*SJgPFt7FC(t|4Q^z|J6cML&*Ho@qx|^ zH@|lMjX}li@mCb;4U%7O~3uYuU7TH+<&>Sqnh}?+w)%; zsObNKQ7tbpJ0Uqk?QjU_9(Yk~GCag6_84?@G;|;)>Lqpmk3nWSYuGc3-Q$nC=jI)+yrwp39@DlFM`Mh;7(Z=>#?*tv-qnXoA;3Wy@3-tGzI&eo@7 zMoTwz3xr~!so)XT2O&!o7iM)&f$gH*v8-A`T@P;Rcj^qfs=bWdyZdroTBnhxe}DvE(xLYS zpO5%^(!0^~ahzQb6RFCO#Is?ezym3S8vCUW7v{T6Zrf;6i?M0DJ*W>_v6RB|g`AVP zNI#r-TAH!SS8fXKM!o+4!AH_0$xP%n!Gt8Ai}lFPG}Y9noKJP}UZ z-W(MF0HdtWd|79nFw*zTrLJ?u+MRAH28H5l_n`j(GSQ4=N+%3dX+a#Bv(0sK zs?4JYS3%uZ_aSE zPk&ICZ~?|@R=?RI%^PNUEWg_f$2OSkkLn>uOSgXMe)SJ9N5QmrKpPj?{H|XsiP4Q>i zF#Fw&$GQt@lUMTxilLok_Xf8mY?4Wepnrgi;!lTaUX=d;eK|1Uq1@jXZr=_mWGoF7 zudT{fs*xNoDj;i|l0n+%axpjB!_kR`f5S+(D{FhPNia0ZgFv@Ke|T|obK1OZrZ9(& zT^7p^_3&wrn^)S>1|!$kIqh>dklzS}wNV@wehRJSUY=x5v&b1s zN`2D^s?0gV#AII@oASCw`pTbdGHR~XLe)WQU^K70O46&l-q*o{dlGp+Kqrazi0=Pg zmu2B~yUiP>fr+a~O1v@ps|Nhv^Fn_(3Uv?Ys(dzbGk5n{%8y>v!t0|6eiick!oF4~N3WFNvAK0wI))}n zT6-Pf?FywPWTcyIscl}qP|~Gvx%%?_wCs9Wn9KL&=v-~$apylkkB<$SVto+&{tx}Q z@OtT?vg~J~?{}Y?l5C!4<(idwxqqXmMS1EfHgFn}rh|SD6QzD36`C7fkCBAJ(8lOI zlmcX3%dK;&Jt+)JsJBaAT}MA(-mM)?sT#DSYgj6Yi;h6nR1QjP)!(HQ?Amo=y0bM~ zKI5b!yg1Kw0U4fah!=ZDPvRWubWpr)1Req!qgYqV|CZI*P5cA2YPN`ewHKIgYIQ+S za#Jf8=Xc_3`t%jwGV=dVZcmRn6#IYnZDwu78>Qoa-c|p8Ds3cA&8**?yv9Uto3MVu z#8fKpRu7rRZ#=+wefSTs)0Ovx7Pe;XbKh%be@&%npdtUVOs_KCwScT(Fn+sIe&|Qd zvc-;tK1euMRG_skVl2K@B0mrdNKgRJZXXU>3-lbXHlH!t9j`~fE3f`yZQMhEVy(ul z2=ge#84N?q)jo@*IuK#>CJY6K-VAOd-gyR_V*g!limPbzVLn%Z5J9n{8Y%0 z!8-<>wJN5dE4CXk5b7-4RbupfX`I&T)JoHOS=P>ck)^}uEZex*s4~{?kD~Fo$hYo& zI1_%5WDBP{ryzT~uH4UUup!EAQYv7T`z)?fq`%&akZv15uxu84d^S4SJJp!wW+mWAX6$56`1`^#1`EY5*TOR-FMv3V;6rJ^^`pRwzo=t-S6> zpquMIWmrEm(nLC0HS7ok*K;l$+eT6~tg^Pp=P$A3_g&)7kFwGBm4{D^2Wkk$36Ou6 zw0rfPHSZX8w}Zbu$p(>n1`mKBQ-i^;+DdY8eu4$D;j?nDD_6*!{5t)1c8Fhafo7_n zZa)$WL94kd3DNu~-H6xh(fKUI^R_Dnh6Jy>MTDXhKm7yby^hSTXgV!5)6Sja#hEXC zg8Wey$oV0<=ROEtsz_U|){*hvMPApqG-Hbz2|A;+#O*Az5|M=r+XY$elN3x@v>(g`BhKKI`ryw$G1LBC{ zBqLQKq9!3xcSq4G(!*mj$}`U5!AL%!wfW|NFxuKL#|YUka|qWDLY4u1h;)DPgw-E) zZplSx0;OI?;dSv1`hEtwJ{5chK3Q6{4m?!jO_ZFfxqo+_ig(W3y#+M*CZ7hgYNq}H ze(WFF@d$D6MU3mvoL0Fd+A}{We(<&t)45{)7C#)bSY1&&%9Ua*bU$i{OPK)XA)@1x zq7V@AnZMRo(V-^ybvmnZ+3O2?%G)3qoZC**yPqg-3&3My47#-3W)I_O^c5l_Ch)DF zIQshO`Zy`iDE$I8!uNo|80vQc^qxzY&=sYL?0kl33bm47f8lHC56BE-FM5wdO z&++l*?H*s6wr{fZ6zz$K`n3-1>32KT z_ZgU&K{$DmMbe{#jX)bwfagqL%5YXsv{aKFjqjKZypP^VdTDeehS8AP-BE{OW!V~T z7R1=QvGxJoWtSrnI|_#bZ)!1VDtKuWzyApFYcfp3A|jq+n1F$a|DHJukNg_%c8LK> zwCMTBwDk4f;Gumk=H}V|vk&9N`vSRzmqC}3a-KV9-qFB;OeNgL&6syfB!PA>_Mko3 zJVL8xZ8FP@>=gWl8R8RD9z(OPah0G-u~!IlT?cHEtjI;~qDotb6`HaeLu=<&KaKjO zD@`Zst@cJ6>={sh`Anmt{t02VL~$aJ#H}spG<$P#Q&&D+Xd1Ny?b&6)(4a`VKx+^> zbD{Z=DPhngF6){0{p96AmgeT1F!#wR!=hU4;&;5y>22vB;kIS9wp%gu?`o;s-RdeZ z8J<;`r%3JbE5lT>;{z*rRfD#>_$TC5!b6<4kiK0mE=(M81xq=U@%P>3#cxck-Tz>i zH4Ap#>fK0XgwN;=;ocJC9&W9E7LE!xZ<*;O5fH-C3~QiNn)|)YxgI1NjfIS7jsL>!o5D( zj~lydszc?ac7wh`yNttO%~e!`dg(J9uyfWkS}!U`uRT2bH{rKG^1sEIRV3z`kvY=J zj%JgJQ(%_9j$ZM@&$#*b*_CQ906*_9czcU9-~W+YN6j+3^8Y=n{vSS=Z`*R8I5Dhk z9zsYAPB+)1W%R4=RC%jya-~>yHB-&;@=ZxAD>E9ZuJd(P4cm0%W)p%C5B~rb4nrZK z_@vvnYdJE(%rPI*Z8&rOG`R{C-f1}7aQ_C2|3RU_phv>@M!gta6I&e!4S^wyapbVu+JbqW} zz*{>89f8+)WiBD?lB@esQzf}2cel`zrSAAoAB~_QGpz9*0Qy+__jGE&uj=Oap%$+^ zs8(Ckg16H5O=;_Uj6%Q0axJpeFyrI2o1%r81=>H#yUu^M@FcCZEVDbA$y{EDn(0oG zO9~A;Pl!*y3D)T-Dwm~h_)%XDu@&=cHPHE*T#&2wppLco(`Z(Jp!$1wn~b?Ae_vA? zqJ3P+u2to0`5W_o04;{jZ-u zc$vkHZVzYBl=MGPs~XpyIVFq z=)gxITwpd{`O0XLXU4H)G^0lE;Hp{n&B0Ub&S}l5Hs=4~RCs$iFZav&`1AatESA2! z%*GBq&Tf23N2if4`AY}=9l-4DsMD%md`&6%=`9mNH1*=^&q*oi!~b88=a+W$ZPo7b z)31B&Bci7NS9{|{drXi20AGSWUTdFpjXeHclHe_b&&QPelm9E~N7Cv& zdzWnB$YarU!4i|>|MDDuJ#XJeEosryFVOI%X+oGYQUqP}rNm+8X1F=yAnG`=T`l~= zAoXb*Gl=Csz?%q%ie3yC^JhM5!HUI&*9GTi{{UzQ>KnQul41l!(kN6~Z+iu|&Fq)$ zu?#-bHjnKI2kk!ozllL5)BA|a_U0#krrQ?qPPG5^nxybUNZ|CHWh|O|P|NS%yhrKR zWB#_CUsf00-hFE^K?OV>6!guENT>WCPO*Og+RL~NT~S#d;mU3SK;b{Y3lO7o4Wy;i z3cAnBH5YXE6jXA{IJ^AgLG1$hjx!TtptzIpg8QZYN> z)BaR08a(#0?u!QFp(UeJoI{nx!aWclB=ua48iVw}R@j8kPk9(A%Yt=$Qgo z|G40(ttJIJ5SYFJ8WQ|^V(nAn2<~5+E*1T9$tJxa^dTVWHt;Cr7A)F^njP3=gxdfA z9{E`->F$-KBnE9N6BeobZ72B3Sb6(E0tCx0XQfc|uNMNilL7*<(RCH?uQJh=?11~= z`@oSb(fe<5iK6WrA3l41oV*6>COF+>!HhJeB%|nQRWf<+c==^fb}MsZY1gr3B8`;` zv-@KJK#hFYOPMv_t<|^6R0%~UJpDhyf5+2js9!xD16ZY<0(>8P0PaPzSK9uE;QEPgeoSvp#n0T6+S~WoRP4G_h zX-OcEuz&Nfc~A=-liV4gMOaNLORAP$i~C{c(}$mmAFYBrCeRzX)z9~FK(2%?QWdL& z=%E%lC>h;K$T-RRF@e4-kp7h_o?jOBPsev78A7>v#d#VRM(I$FnyHNF<`kWG-AhA{ z0StFRUORU%w`|FXkhK zk)34iRQXy{Wttv8x1-+B-$?DJ4Jb6M(Q-~i-4{Fy&(GU!Ef)|ICO(M4&N1nYcl`pK zqEb#3vZZy?D}!HKt&p?BhtZTnf}y$>cLW)|Hh~9|o4KnBM?iFOn#Tjus%3h{!lw4g zn99tE=@h2dk;Gw;vNN9O(J9sUls+17oRSSXorXb=?IHsX-9Y(gJgF9smE{TxqDzSJ+V z+e_lXV+-dhjgE%;VC^ImK!n*q16O5{78Zl|>fg4O8y7%6bus5nY)7`}g|Yo@-K|Pc z|A<__efh0&K_uJjT_e-Gv5U;+irHB3iKdN^Ml*jWVKXoMyNRbnYJ!VFE^7bmCC!ol zfrDaVJaU~NapU2M0STN4wCCshD_s8~k;~mjV`zEQn4lbAztvIBNr;P^CnZI2}%|#BYWOCj>YOfuiSKKw$IC;GIugyoWsXM zWSFtXoeX@NoSM^OVa$&ee`B`f&ZAcfZMP1OuYK*a=wZ}c^CGB$>T7Ho} zD?Zegn|nh*4ru*XE2vO;=$DS5S4!p@m)vOU)eT)UFsYbeougZrWur=9wWL<>nyRplnNzGPe!37bXK2xc`D>s#tn65>>c{>Up_ z7CTKZX!pF?S!#9L5v@)V$oWm3!K>*uE!ZFuut1yu)9|9~N?|mZ7WE2bCshxX94|hn zWBqN?x+4|R*zL~DCo~d(@Ns}jF%+x|4haj#Yezrt$ytVN?ydnAP65E9$U&O1IA(oUU83jfW;&rUfKC-21Y^3!5dukE1L z*QzqpGh9KB{CYudK`MShqbJG3UTiU)4kjXN9!$Cfl9f+OSE6(f{@z?Q7UxXeohnE| z(lP4Mf#vfV8EgC<=^E;}`Yrl}rE@b&T71*Fpa0_f<9V%-JWV>*3@uCY)K0Xe0|UOH z|Fmi|t%Ma*9ul|OKv1(Z3TYm`qV!TM)4wn_k3k3eaGEn80>aI&}`{ zFNHJMOJY=8-f@!EDPwz+Rh{5!$>k1;K^mf8J@Hw2x2ba}tLm&88SNVmOit?tvYS*c z)Yp`Iw$&tE2|BOZWLp1}%3KoWs1cbz4tN4ZmBa2W|HeM+D>y%>(nPw-d@mRj>LWRY z`enRKnf3V8LqS#I1kyF_@fHYt4Tg@Lr!LyDIFsutxH!4iZN9tUJk3V&I!L>75=`2V ztx$xF$=&ld{Jj8x7+K(5&sVB^XZ!mFp>;ocJ2f%SLwz{+#PghZKN&8qxRcPj7Aal~ z3`grLngm)fxWxo`$b0=w3m(;@d+$yrK_v9G(k;KDIze&PqaCSJR!u=DAL7CSe!>lJ z3vidndH2F(r9@!LmBKA9pxDLeS@t{lwZ9v)-TPg)#`za{rhC}qFtphEq(s;63R{E3=>gV z>vt-=X`ZX*!l>F1J+%aYtjRYg#{$Y59glGIvY=d^1Fm8CRI;Ek&Xqu$>I3psF;w zQSZoaxEkMzrBSOFBVCb9ON!Qw?mgl4e&@;UYCY@8Q~y=b!=JC2xd$1vXDXUS%_&FCL9Z@cCdzw~4&1T>CMIKr{Y4sdz zy+sU0ThR}B`yWR4Eh=3u$W6>NL=X4UkDF0ruVw@Duy$~Sr?_ABq2^s}w#Ng#zXtz- zK*HpkMctSWkx^OsbuSd^ZIIkLUZUZaMzJF>I*=?^IZ)4azBgbj-h$ZEA)qRAxFm)Us9&Zu?#D%^vm7k1F!LZ`Ms!NH;+;7`WfnsY(ExH&-KIJzx^ z)KSgeXRQ4xcEFz>4X@CV5_exN-}l%MyO|+-x%8e37f@-O=PtU+svK{=mI>*mH^aHkz5YA5&n*18J?WqCns( z@{{8fbvXwJH*nsyleetk_{eRW7>Z)O-Jtp-%xH0b6_Z*oxU)wIbAK70mB#Hq{UTfP zFuZqPGQv%n{vA;bBR0+L0B)NVWnI84y=8rCS1cTlX^W`2^0P^2L0_FeS!!KZM;O(A z(_|$supZjZh-Di%sbtxKW&^T(dJjQDRSJoADAjYVu zKGY5KT&+cAQ0f90+zM*ptuVqL!!8A-7`tPxU1!b+60vTeubpo55Z+VsU`#9J3L|FD zw{pnb`L3`lC$XLyDRiAW9(=N00fi-(zQJ*ec6JDPg1cdxl?N=-`8?94%*j%`$rl*A zZPPPKKPC-?MrS|saFCdEC6AU*IzsH*KHI~Aea>TlWrG@gi~|-%SI->lN$13Kod-Hh zYpymZ%+JejJCq4>zmBtgIH{Ts8aFvesdQPT6l@MS*T6vTQwBxbZ~WF5UrEhQ&u)#6 zV_Q+&_ft|9v!OcRJIKD9aH~}*whfKvtj4Dz+!%#k1iof8*u!8{z5qwZ4T0V{3l06T zvU?i%>3)RJ>T{z&8nOr{H27Jvx6SL8m|jr13&?TD#rWixyhd(VGU&(`?S=*k2yPqg z3#z6Fzl3FcF(_4kNM1-cvwdPkSk!HJ_&-R23*uUdLd^sEyoiTM^mcff?b%*+K4>&4 zSDQDOa%Tn9NJgzZmw4V-so<`wd!6o~#>mIfUD^>nV>S+^bI9V!aD`hA-v6gh0fM(3 zpmoRd^^p`5zuGo6asL6B;m!w^jeOMCtge=!U0^MH@pMEz7S~0tkzY`yoeWO!E6nA%uTW~3^El?bSdvJGmC{Bx8ad#_H9D=(S3dLOt1h>BY z?wz^w-n_YQ=KlG1H=D`MCNsO)bI$jCzaQa1_fqa$9XmcLLNdjH+ulpc{OL3k--%wr z%%G<}5}IN=%9L;8$4x%A2?m&o4%qytQAMR1RaaHXJWj2Yx9dIpGvmXMhB##COl8)U z1|&)Eya`{5wlmuO2lxmOsrV^l&E8F1M^&1T#4Hr0J8qF7JN($C@U4uynXqWKo7!-) zU(IKpvO786>V0+fA!H>wTolq?O_C&(+8QB%TlygiOB}7)=Zle4&7{;csfx`l6fJ!P z8`s?A=?g>XEu9An@rxpxF(LpV3o^1#K$gZCOq$5q{UJ_3eap^1s5}|uA{mrA!)!ot z&#T9JaQZSR@0^6wbI5KQRvQT3u;)C`Cc;Xv7=z{HnpMIv1LKp-p11`I8Q|t2`3Q6E0v93WPs#R z+a6F@_GY%iR(ipdP&o{RT6V^9ZwM-*{ zTcxf)XWt^HYB+t}YPeqD3>g)F?ijP>9rz`s1jAA1-V>Dlk&_8#4ipaS;CzUW>M|To zq>6FK4uSH#cRo9C!IA|4a#Co-1(xv(;6qjVSYJ7(=5O@=t^ zM&Tfke)^LyHv-vYn?hiJZlj35vX=Wuw2%`}>zo9f;4eQQx5+KHuun5! zFwL`pkKUlHg_QKsoupyl^t40q%lx6rHo2UnC!6g~H-p%SfP`=$4&zCw(31=b)umc& z(?|BbYKwhVBS*-Y00~s6lB24m$cHOR>`_! zV1X>7wVBr;^JzlXZ^{W=9%W$B&X>WiYLH5Nn+p2dUZAaa0Q=Vq;W&g&D- zq^RyJ9AgZ#0{YNikMRB-7>cO>Bm*R~Ofb35ZnRv5m=aFQM0pWN=q_G=&Rb(dK$cq< zJuyVPB0PQx;B}wMnxqX;<@OVbU5KGXuA*wT>v_ru>j(@o2&wPj-Tz{|_xjOLSYBCqK=^uiOVy?4RMmii* z2&u%St50OsHN{VI9w<{N@kcZ9GDa>1Z2Jbt6UJrgkCDe=JU2rA(534zJq~mUVkT7XHmuNoW|%NWnc{ku*>}`bAF9geB{3Ru79#w@cji zBclz(6y2C{)(3*T(gd#CSLOVA+GR3sT2FB=^w9H_+p8nzofD(}#`xdg(KYilSH|G@ zLx~RPL#p;zR*xLuCzLlZRvmOeVALN1MaDI27LL(~B}$TyTyke^jg`2^W14zD zkOuSXHb0**NWGj})SbRZf;)N4m+d)?2*_38Pc*M~X@|j=*L!aJ7dZkdC&#+qVIf^* z9hd1@hfKhQ_O~Z}wquF1et(yQJGr(R*Y>WFPD>JG{*@CE)`p0t{6Qou+J@D5p~+-1d{>sV z+30WnFhz8QAwmZ0`|u{U;mF|nAko`rCN_EV{t)Wt%-#;)ru^Sx%BU&k4P#^ z$U}RzdVRt0uEDrZT8&+hawoj2+Cf1C!uIKyQ%HSx=XRbt6Nr`S{WHIbFy_PB6$ibr z__2!Vemi_?Rq?dg{(`%p&DSnsHpx(w=!H9c!CtK*xWoIf(_@Y?D44|Vz}KH49RqJh zErFY;X)2V=Qft7DJWc)Jm9}QM)~xt7fJMxe$XFfzl4;rfTEkCS{Z`@hRvENY)b>)m zn+P^$B(0c0F^V9}wIdDX09e0Y5ml07vFS_&+<@s9AORC7KIzy#EmMvM_4>A9-OIUbR(0*EkqKkVfuKDQZ23na~BMs41uQ+RH`|S9OmI41IGUI z7q^qs{W~nK8zf^RBbjS6)esn1)ZUk2VJ6G`ut+21!ViChXPP6EsGG@(%*ezQAK7|5 z6z+@}MJw@-uqY>S>GyCKgT0%+Su{;t6KmqJcjZcPFdP)d=iYarT{4CPL$hUMDoIsF zL08X;Q3!Pm5g*!}4$-qr495dxYdUuIoHyf1wqNbd!z zCC0aCHBV0GdNCE`mqpJeF_H;}DP~>zXw)vzVbs|6bgYy$&WyjjLuX1}Pa|$CnkE#1 z(%Q@2WmCs_(f!gu7^csDH$$Uza3u4(SoFJ`f!JK6j}}&si|w#CrN(1MUt3lV+xO3e zuBj&=2X8d{Xx*jp0fjMkPvJ6mVThu$%@Ea9ZNNU1CFIY(5mvj!mo`npF1K5%dQ~9r zjVDn4Ii#+~PbkRhmW9KAv9V=QQqz^vJQQK^cJVs%U9wJ5%P`~81gFr5Z0qLcMF6a- zt#lx~!`Ms`x!TcR<$Fa%oCQJ~9PCgqAYSjrLL*a*+G3Nkhs=$5pK2Nl#paK}={uQu zWrvi0nd~=VuAksui64jjD4;hJj*{275CpOd;!e`78y9f@Qp2L}gn0giH_$|Rj1s7? z+tRO`bnXo*eG~{Ze+%&Bu-?GcQNU;;4nAQzn)Ff5o#|>SLpZp_Y>``Imee7b%~>qm}mP#JCn3rcH=Gpr=ZFNn4%Jk~GGC6=mw~swnKvy5%yyQN}4e8Dy5w)$h}# zoPK!%Fm&rV&SYCdE5D4&xj?g!zx0Xkf$QZ(&88D0Tl8*qt~iCZW6{eIbI0*hVM5tl z{P=n1kN->UAZAtPU3Y1U#8{M$n1?SC?Q@PO7pEPi9jOr1Ojz?~IduTFt?rSHg+qMM zC+&N?))=@dqI=zp*C)))Q*tt58gJehh4LX+i>+UpT&p0+TY6st`q%s?QepVKFH+!8 zTZv39E+)&Xk%xY@$5PFD*`h9&TXG3drodz3r|^VFDbY^fgo;86-pUm3N%(LfZWd|> zxy_O~nU61rV<}^VHFMtB$sV6`-Fza^`7@V-tc-FSdo!M+PWS?56nLN=%eqJt(;2S{ z*d=or8F_(pUbo@$=viDvh^fQ^@HZzMix)-TmQQrCoxV~TJ7=laH=%r%LbH6?`4Sq4 z&(d-g<3al(tgyz|BM-;N9A~(_Tnn!J^rrkBS*+B<3Y~@ zQn%TUG@BRpz6SH&I{r(P1)Q`tpv>e5F_3!EsZdBhP47$e8HGa3;3O~}7rcn!j2A0C z)?{h4msYp!t&x*DX_l9hupxQi%4>vo>!0DByx*nzio;x`3CZaP=lO?x0gcquRohuR zX$tMUmF!xS?EE?Q4H$8Udt~Sd@?}WjDxS1*F_$r16d81?SNC+5r8@Tgf^@_;L87Rk z9BC50@Hr5y3~Nm8hp=*En(&WtloYosZHz_V)_Wqs!IG6Vi1srxj=_oUbCZ4yp>Lnv}W4Yo<%kcf_5bOU1|QP;L&t*)|Hy$l~2J$m})@+ zxzZCX!xX(_K?Y?P)ndu7udyW)z6zpgGIYh;Qj5ab*|t3NpHLw?(A4$jFC=m^cM6*S zGY{2!m*$Nx*yJ8FWHhl}oMkAIV3ru}iZx<^BXgl_V>;8qpip=~6Ohjp6O~DFc_qxX zuAr2tQeg6hnfxiH;rb@eB;}7r^B7V`AWhTm+&ZTEGl^d4eM}CWl_usczML!k7246y zj>@!%{To;qdk3Fb@T+s1kkULnCE~m9N*_U&RlIgT)TQr@I}J-%VPQ-0!Q+v^^q`Qd zz8xXGNp_tBvapXu5*N}kGcMRVHo+R>r|^wf9SbNNiR$Mj`k50i)?7434_LBEY?1yR zWZfH0eP|yf3=P)^5$; zuGtn1ymeq1%&se^+=-17lAHFKawS&M`hs&%*lH4;09At3(f36jKbyq#i!wII&*1mg zbl%3)tWPOawq+r_Q~yXw0_mTvRLb)BJ82^#ddr6uob{Sm7&0vsE;x|~Ik6wtNAP9o z%&X!M@lApX4SfYFM^jua8r*(KQ;4Htq=O>#jrJ}U{9=U#PtPcLTWlo;pY&gejMqk% zaGMGr5jiMjo$^`!UNV@zTJNjYGkp(vU}&jTyAl${Vw?*Ht)CE;6yCY?J%^*^0 zwQiEq@q+TqJY}IYPB?adWp@|{T{}Q+>bKZjZVl+62iQJ?keAyphta~q>KAIptMr|U zOeXrdWj{~+Cm7-17D&s4RrVEH-Bo%NQ5=)Rc#FMe+*^|<cefbRa(rt7Wv)dz)4{~V zEqn2AV3Vx%&5LTk^UO0ozB5-=a^lH^98iYbsQ|d1o}ZH!GSv&Yb8^9} zUb7Tc-gcj7P$v5U#m=T)Uxy84c42=B?sarqb`L)tb)Qjhh8td`?fPE&Uhol!SL#&m(JPG(D zR|4htXHo|iyuN$#W*~3<=o>NlH2ta@nAg$%_*|@!dSkKh^#LPo)X>F_#KJ}RZoM=~ z8HyF8n@Kj$%ND;9UCk!BX*pB6ThSpQsw%U1VUe-Q3b&A0x>+K--8UjspZh0whBnnp z)ixZ&4}oQ;)oKnH`6(o#`TQq^XVfum2L+ChL?>468cPbU8PpF`ovdzPu7RRTc}dfB zPebfkghi5VtQ~%46gG&Gx`s6i>b^burmFm0-Jk8>+y0p+L~E~ihkMS+Kf_#KI>tJE zf2LEQ&bh>EyCGfzVRe(F)N)ZTrp9_#^C4+?D&ze~i$EZQi(s?`|5qCZ(y4S`24*pZ zBguE9Z1KmdG3i=RMBs&ck1P9NOixS$d0Kz>I8#I&7MSmFnGQc&>*rw{iOc{zt7suY z@-5_72T8OoJfG@Ep-Wy-1?@|Y&k`L*6guKmRF?PQsdup)hF1p^ANnu3$G|oyD4qr< z85=@N%Idjv{a_MNMO5B#kPu3fnJibZ!*9j3%i^DvcB{w(oW);7W4@0oWF4tGOexu& zm<6b~UC=R#(dI%TAEOop_57}Q(lvPSBk`%Z1!`)*b9-sU;_a1AQn#r6xmGw5T)JGD z8>lYNsP64m7yQ~gAZ0PxfE`S$-fM>Udwm30+yEW%-VW$%NNtTqR>as&DW$U~glEC< zsaw8}Wku8S#TlQ<{gOAzXM<&E!Ce3FLc+5ykRGABkR^(*%r2EewgnV%O%w9usD z*G8RIWx`7>*AG352oveBBkM248((DwV>4R(N2S44S~DU2nWOJa8ZC_;<%D=w_pa6` zCQFC&OHNYY=kGGjbtES>?e%(ATLJNn!SU?6w^u|4-R}U7yuBfXdTE9va~!*s2|D&j zX|ipIrM?P$WKogJ+B?jf(sMx}WnII+5S*$fx0TeBZ0LQjGI=!;O<%nuaK72bfAs=f zrqvY=>9Cgige@1jdvY6_Qt0tYZf3m|rdTr0VW5;iDeFBblI_Mr>V}#V#kDJ28zE0+ssb^gr`S95(~9t#{@&C7 zW+vPmi8V@WC|w3sap>Jkwh!K)EGBgr(5Fk2zI9af9;IE5BB+i<=R|ny4%*FC9U!22 z`zL(P+kL!1ba*Q?o6Bd{4iH1c*8M8lnaDZJ;FHaL8}hWUJ~ot~vcrE^rv3dFU!^P^ z|8-p83N%BS+LFw>Y*(_Na{c8d&HDL56w(>+EqUt^C|Fqo^VNly$UCs8;^#Im!zQEa zfVhcHG83iWb=QYa_I){dz{R^r$k%1v`a4si4DmcrcZSUR{l_tn?uvC-`lYj^b}_R#U>c(u{uq(g=>J$IQDEa6N}p`R)NHwKG0W*O`Bs$A@=%==UcQ%wy}br**~P zO`hD$7#-)5-}DPOT;04#qFqvGYq|&fEc82KJr=*G|2WDsv}FFwvc~-^-CkobwXXBh zxc<}0_&YHQ>yA|t0-#KIQnkh;Sj3BWQa}Gjk|WbOJCkQpD#s&J6dSL;Lx9R&+)C_c zmbMGkC)*&DHD9A&F0OpHr@9J9xH`e>A(tg!AYPyg}W>-cGo|E zl;Ss&+{r#r!~k=h7{e}=gcEOLx*plyi7u0OC+ub-J9|#9*aj`&9lB#?xH=(B4jjEC zMd||EvnR5j@xj&Q`$#j~n*oCdQ{Fm;kRVSM-4);!MS5w~xy)ZKsu*{|=3&!x^Idxc zOTVg0%eG0W)(3*>=^$2Tvovx=Kaoh_)}vl4_=2^*mz1W0JwtwW*9DemzTUCgl^+#{ zR^O%B=R$@3Uunc818Jz@4Np(faW6uE4U43G9s3WFg+NL=xJSYD7)s(smW;?A2O3FY zJ9bx+xS%c-O=6-~i(6U}(DHlh18JLzwEDStD(*O~{kni34M$GkU*P`v}M70A$A^4=ZI zavpWt!CueAD+O#QMMYlLuGY_j<@9krgcgf861GLFzp+d^WO6x$ip)+z+U@_)J=TbP zm^`_K47!tQ?@$}lD~Y@FBzVI))hQ4njcc_VbF=z7ptS6-^WC{%jEjWut$U(3w=Y?M zv+}B@0}YeA=esT7PYQR0d+C#Pb&Ww;ih|r&i?(6&%cql5BX!o~iq_QcNrc86L`(_UQukd*kPfjQ;A*KmI^Oz@0w#X2 zHZq54se|0Yo3(|~jAtE^h#3c}V#^nLGwreeVzZnts_(X=lUG$>y&9L^VN;noY(JsL zY?(Dgo=PCL28=b|Bu9TvrTFS}b{O*`G4dSkWP}0-^-MK~^0LJnj~u&%u;wY{F_C=0 zxuWa*Jrg0%`mWD~W!fbGi?pjqhf{(9)5vvjJkNSbE%&J$HuLsR2z>EJkXKtXIc1{7%}zz)fg^YMLcJYYjJ1U}&TbmDjw=5@`|8X@m@=C=N{Zjvr zKd!vMnvHqWw>@{AVRgaIj?6CK$)7!$63Eg{;*@8mfYzfE{qebR6x#B|jGu!Rl|E?X zX9J?o2+@gq_w4mJ0qF5(cF2}(?vjR{lphYrb7?-aP5@PYr@;*erJyim_3Rj_CNe3A z(~`d}m=Gu7{n5%NY%%;{>(V4uU6_f`>mo2vjfqh4+;ZpEMOxtV@jQ+09F#z}ee0WgL^9ZpAQ|)_H7oX>>qhIhD{cvl zUp@h}t3DtJ4~@P%F}3l(!u=Ar2r{9nvtmsOxJQQp8HPa0i}AR;pDO)z%{5;lT`I0! z?mfqC25< zc!PGmGl7Q|t7INigd zDVj9+EIUK?;_8!$m(oY(&J;&}<9 zsSEPI=^)Qi3ps==8Vy4BVPwVzvog3&gf;I<(B#u#q+*v0ju;z_c$uF;3<%}*Jzik$a&aG5&f_FJXeat#Tdm{$D-Mf>ZgRpA~<(y+^ z*39CG+3%ytzj>XhKv(}0lg=+4z9uiUb|W7W#{)k^QxLwW4C;fgoD&OGfZqpZE-%!G z3|2}3K>uzzWj8Xj`SR1Onjoxw?NpUIey}5 z{tuA(oiP6+v9WXNI#Mpv;$a0}AsN4Epe9?w-#3Yg>&)dT8YjyrlkY*u!8bLfi-~3m zb31~dqNo91D5h4ZV#(A9jjo06;iGb58@8)w?^Q{>1)Z0OU&T8Fp$g?`s|?_<79p$C*-&IY+9 zM&uDP2B0U*H1`jl`n?~aZgqv~-*ZlkxKNf&c&Q;(Ua{VFA3~pfQa94w*BiO(K82mH z7YcCUA41-o6w(eFPwRUAUhk9)sF&x{*2I`6xc zry2iDc(TWo(g&V)tUp|_yl}FCEKe9|46i49ype^MH#2wsF2cz9CCI9knr!h~iJav| z#^Yt(;)L*Grt6Rd@fF?zEj92T;RuAG5PkRP-;Hp)nqo@?&b|2LdUc9}Ea2j=eticC zLV2vk*Qvz^lmqx73XC1W%C^Nr2-Qx1d~CS_{FkW{bAN$E{~DY#~JJu z0PKJR@QF9OUf}xab!R=${fYGPY;WQi<5&L8hb(8VVi-}SC&*qf7=b$~U$-o??``lt zWG~POaf1tW_-FmbeP-2TJFeEN6U)d7dps}Lt~?@(uXHG)njT#&*)&d!uf&t}4SOr|1uXUV z51{Y<4^SQae;4IJL`H!7e~R*4;;4o8(@1_RY@7p{Ub$@lFHs(xm!N-ug?|9P`?vgf zqN9+~a6EklTMk|R%{OHWRTeJ&XyBke>g=_g8DTM~_!4#&#m1ksm&)HkdO4l55|Nh# zOMF;T8M809-cV7VrW2y~_CG5+MHcE37Y_)kea~oMdIFz$Lw@Kk?Jf0i;_c7ZZFmIp zePFHN>uZG4g>Znb5Pk3D0?dgr{A146d_Jy0_Jgs5kFV5^0;C?8Z^X@CP(=Zl2g)OH zM2ITP{EDqK8%Ny2#P%XpvoFW#WnmN=N}?~wAH(MQuRIF)67gRHmw3H7x8nr$`O$h3 z;|<%Q;5QL^c93RArPxPN@M6_SkS=p{44K1z&chuk4sa7!3m%NRRz_vsxUh{ObV;yE zah4j2PN%X-&?`-l>&9!(oYYbB78`Oj9`sJvE<09_D4POgOT9+5-Krn(s(ml1PzOTt zlECts-C2lE(U{zAk`~-u_2$DJOuaV`WrIiqDp+(m6d<4S}EOU*W&yT3ksM83s;|4sc&HeQ-wllsiTc*{%<73O3Owz3?nxw0%3b2hiK_Y?W zCkM==T3}}p1ZI%5{s*AnAITW7b;5EfD$kV@%wnl?x>w^SaT;PJ_BQ8+|C3w>X;^Yv z9i>%6s}*(OreXPt22515vs%$+$3f37P+qSalqat>KiNXSP%mK<{u4a2+Q$RKavciR zf^woAV~vW|sKZgyQnySb;x?ax#OcmM;4u-66KQQ(T9?!vdqp|aMtZcGtC6|+OTDmk4sgUiBmybZW=QkRQU4$edLSM4+@zjI?E41X@FobI~+ zXhvHgORd3AqbTc3a=!Y*z`|a;UxZSY1&s@3yKJf#^VM%fp&wD+fSNMG3FSf7!^=GR z9DY{{CNWS(13=koO~~hhJ^D0g@P=S`ga8yvr;qk{Ix?LgIQ=W104z}dDKo&WIY`xy zVS>R8o1A92i2wuR!es0t+=@#RyaS&yzveu7C)vTdPt^6oq=bq7QE>UOunD51dbt{W z?w4LfV-86V*+y~obC~hi|L%3aZ1fUV^*@$!8KO^8l1Mt>>(~G%y2@^H>fZ1Mj{x>% zBO&A()XtstW=*3OAx=2VXd%vI-@l=wA7dW$x?N?io#KLURq9A}n(pw42I+!>-hvly zekxe^dwd%gC<5{&C51QczKYlMbcC>+zod3d;Yo`53@pI!H0XVW^Xi&?=Q<@Z-n}0>{C#B~OnOxX`w_)HJT= zE~i^(V0zv~qywp4Fek5#Nk=Ye>Cz&1*cA~~x2}oN6nfv_A}8COw8#C76fPY#GIy_M zg}D5g-SVY5L7Pew-i)+jp^@Ew2?+~}+94o(k*`XUzLYe62A0Yrnv-sFT5NuJ5&s96 z*k%);SRD+Whl#tO7VDjvIp)!ya;6+Gp%Y0}De#k!#x=9daZEhv8|Hu5_S>pdbKZ{Q z1^O5^tSawI%4+-r?4`0dR1!4tqE^$Tx9jTD02K>U*Y0#x;}S?#YhhH$z57JRj6C1$ml#1r$`ltufR6m>_8(wOd}hm6qrAXf z$f3{cmYYVu#U|ScStayRAL!&UNW8^;q{Nb3%j_7+QCT6E)AE z)Q|0=pNLP2@F!IpV}cqc`y_|*1PT%}JFX?JRhu8+nZK*YEak`8Z72#7AcE^ONC0Gj z0*Pyx?gheka)~1+0YNjPfMOZxo8bO-byRAF%M$kDN@}q$B|-|XKB5^k=d%H*Ni@G$ zv1UdMJCW*+zwnCj`~g7*@QiR8s%A#cUcBNhmh42@Vke$ubguM*eOs)Ji`6f|(UR`6 z`Vm%XUMNYCM}dZXH!C}btIH%ky|ibqig%9RZW(2`&nk^S0(&>p@oMY3PvrN=_C7_9 zW@h|4A@snxPhOO75wXCYY09b?MQ&P`F0FoI8a5{J@Hk zzJrH|5IY?jT+VyMQgY-M@r-sPf(3&%lSN+T3`(g;@8ERfkhNwR)Hv9|g6h{_1ZFLG zyUV`us6ps><#+E2BC|2zr&94ILtL55rFx&~pQ=n`Q|V7bB&M$)d3Ig~hNVo&O`_o_ zAXjtD=v^ID%5WHPNe@e10pc?wYn|C7J04V;78ELjtO*xy|ORK8(1^0r!~e>9Xwj4HCg6 za*J9xQ_|DI68IMyj}ME!RfiXPqtZfPwn!YRY6@ICQR$ZJ`fEI} z{PQ-AOr`@Nio%xXBo3dfFo}b@nd3X97>6MTJu9Ure9VWVZL=1*S$=Xpz06!gGGJ~S z>wMKp$ZwGR$xhB>>WZL$rAviTO|AW>OosltuyX^GuhktzFf0@G>cjE7B&iO^jyT-~ zC)RlpY5F-Q5x2%$QA4LbwI?D3RZI83sUUJ2Yan3YZ4LFOa<561nVfLSi!=Oi|{?h#?hLuv6QD5TQSUf+tP3+!sTY*>ACq+M@=0x@Y zKXKZ09bilIC6=$$d4-hK%;#ty=mdS2ZjG2StFjcpDQ*{79TKagwi?vIbFmJG+m&R$bT`4B)1l;1}rs+=hYCLuvSkb z!#y3??SPLadO3c}u*ce|ww$;_RmtbW@MrrrQ<%1(b9C&6{qiV#>{1kZOw>fG$q1}`w;i3#Z0CpQ_IK$YVC6i`G3exe zD^WW3H*0w3;Q}op0tyx?O))~i8utwjo72~&^J7#VRyue(zPFE3QZlY+Fjhj?pT85k zcR`X(zo;1|5|rlG;VQg-M!&X}W>a3l3!;3%ofGs6FQZCL{9-rr`~d^QRCFboC$Kiv zE&jbxrLN}I!qi8qp+0ILU=pjngZ8sCDbcr1wPA)zEhmewY0K}0h@BX;WI0D=3sOuY ze?fy8ZkQ93nWWdxE`t~$^SRj2OCGsc7i#L}tBDOO_i5=-kzDB4GR`upQ*M%}-vex8 zxi7AekioEAu+i% z(h&GHSOR=HAOlLiJBw8ZHshHu=^AGR?&1j?Zk^fnOLTuTZVvi-RL*Z-MClwv=MKi+c zrq0IWJ7B?_RWBN)NB9Xu{0=jnnZW;luS3b69IW|SulZktQ6ByQ%-&S5pc2hj9)+H*UsLn0 zy!kb!5RN%zrX{x)$v-vU?F*r9Dp2Lz_QA*RmhIyaHOHK)1%S! z0C}p;qw$dwTX^LszY$-(4ZhUx?$78EAO_sU*4Ik;RDi{(lU5(z{sCU{5%2(IQDShH z8-fTZk`ElDHb&M+k!#Lt-e3QUND=Y)nh~4r1Ik9Wa!etKTHj@bS7X@9_1a!v6d#JT zwb(}mh56mRO>JM2E_;*0{^)W5e(1^5asb9XB|0wvoN* zT}huBd_CfXcyfi!;CHE;HvQD41rX>h;lIn8NTNUXbZa1J(t`TE1C6B(MXp{wOW^U0 z(CxQSedEJ6S|lG}Obdsa47`aGx@cI-gbk3wO2t8_b2vl^BBYZR<)=*)yl9kc3f6qI z-mJOmHJ>%%7R33^8ksjOQm}JHzZKBI^dd+y=pE7P&=N+q+Y+orx1xTr)Cv)lt_Gv5`wsJLE{6r)$pOkt5IxG90NF^QWaH#ZH zj-V#hvgMGVG`$!Zpk+9Ym*kcrJZ;rLHbqA<{!#B=H z*&gFopQfcYKug);ktGUO$gC=AAI-)Er(gzYKA4O=WB<=DC53X1AM_C4I@QlX+}GFJ z{%1Hrt)jzFM9wohs>usz16Bm!ihARWM%N)>oc8rvl|1MgY4 zq^x~9e}9+k|4FPQZ(h}w>Hoh67`apVj6ny%);rm=DJ2hLA#BWuCguGLX-SnkyN+98 z_4H+Ix+-~c6o$h$N{M;w*$GdaXOijy_C6i8h6L&MH{);8(M1};TbtHw-oX4p z?_|Ev$1a1N%6(Qq)V3~zP-qfGswrAULo*TpaP#ha#XGrK#O?*SthFwZwQ z(ElS<{#FNl?4 zMTS3wBO-RZZ*>WeFX(p4G-jRfAfpVTkgTyf;nsq4t!6|dYB0V8l@47`Nc)F=MWA z%UlHW#;Nv}pG6nl(Wm@I@sl#EVmCTqZR)*wJ`kn&#-f0gY{JD9I-91J;dv|ZwHXV% z*N^sIXEL>xzj;O0zeLn$?}wh0ek${66r6Mfq)Gw8F!B95$ZQsfu3mw}q!tMjsP`b; zX`x;uWWN9tXp57$=`*9->q%VZH$N~tqLT+XR6#R*qD$1l z_I1t>CTeG5eM#iwK5=@5E=sx&<5e2_u>DZSulF>e`K-HQJ`xuS`ssa?U!WehVJNAq zudx(jK)OhdJ4#6P_u4%+{W3V&>c2(VsKv5Baqr73THy2j-_72j*Z<=;^KC>{^^YSYT)#sL3KuUc#n7T1G&D#${3gTe_o@HQ@cu80;jioB zyU^Jn!Z#_8eEHyU>zA_skDd94S4OndBD5H!*eki|A%+(ENJg_C9Z@U_-j$ge00p!G zDbv2C4jtYQtCj%@pj+$yts)r)H#$Hs;34b?(?_;X%lR~VM(6A-9KdQ*q5i3CvG&f2}&JgsGFeRIUVih+v<4%6*1D4@_09Qf;jDJ$y8g z5-du^jBk8u;A4-9{_V@`=fqbtUn^=z6()lK^x2adg_Nedb(22}t?9t07^OJOoCKYZgja92sqg0UrpBhQB5A_Mi!lBUuvwkX|6LLKL zUc*BO_<~WanS+JPiPnLj3^y%h@|xB37c(__)lX`rn2&01jcXrGhz7aM`d`1X@4Rttc?T?OPDGv`Q0pj*| zLAso_K!g`&5^RdfS-FkQ)4Pt^erjub#AcJETvfNoxC1Gjjpf(j++&z>SRllndL#;r+C=4ir zU^G~{5m2ip9KhX{1~qAZ;HAGisp^KP>IM+nqOuW7QKv8)Ad5Xvhnj|@wdqxCRrB6N z#O;Ay^hu3>@seZO+{8%}q{vZ@BfT57BTQZ)ZqY@c*+<2<6OC8wh10or^(Syfue2XE zB*8g0wGWkC@FWk#t7p+HBA`fI{cg&VM~I5);N%y!nSzK$VBVx>=2nUs0}!E?i_>n> zRDO`|NZx`*(ae?-x>KMzEDrV=Y}XZcecPl|q2wtme=Ql+)mxej`*cfSpbts7x_d>OQYgSn}srS3|p$o)nZkn&staB-Ue z0}mu4W<|n{r*+F8wSRNq7Rgwh8NhwS2qDa6clJZn-iCvZ1=O3L;!W5nt)aRLc>m&+ z9A7MrB(!0z3Pb6H4ibK7q+8C=!k%2=HEh=+u}6!aE=SdLF%{(8{aKqnG^XZP_{mi% zF3scTz;T7Kwv@wkCpuihW%g4Ru%n8_0OB}Oba@6Yh-D9g$c`Wu?SB_s;jZ)5NTAi1 zEap$PL|xyiKq|`I(&5~dL2nx2nfgLQZM>x}$&v1+M`*Yyr^wIadCbwmMM*C+RRz2< zO!oo82^sh}Ca41xuwy<7?|#Rl4+b8XGg}_8g&Vdw2V!S-2E4PHFmvm^UK{ zX4y!o{(2<2!}x~7Lfe76_=Zi)VhJ^Y&BO81w2f;e2Z0Dlp_kH9t!(x0#W6x`qTPV4 zmJ!}1H4f^5e67j@iIn)stJmzL>OMIaTU64>hnVs-t@g8NH`U)`ie&3jh~D`*tY341D(sGblU=rrcG)W8*bx!i_;5gbbvkk4nWm(f}}K;0N_%)bXpC(tp(&q(9- zuVpPLgm>;qr4z0ZZM_TQn-(2G5?1gWPN4~f-zLY@gvsK5y)!j~Mt5_ib8&uU^8(`X zC-~HA=?9V5QR8?;Ieo%%c-=-soJV5&2UrcI3)QdDko3bUHpYaH!Xlbo-n-c1n9qwG z9k#(zTauFdfkX^H5lOloDx6NlOHx!n{7NI^L}_x06e3WmfV;$U#xtPcB` z$$w$|5(o%$Ym=34syKAPA@nbJ>mOIxp zz6A$u<4G>dPg*cau<3-NQ_w&BI|3P$lNjUE~*yg1gX>jl;Yhf>mUu1OLAy9jw1=)V6OQ05zh7aEw(F@W&5o+EZEHn zM#>ysnzVD()+^_w1cMVNcA*~yS=kL&XuMgfF_NOhN0&m^)xm3rLg{txVP6^Z{{+JI z8<=Y?=scywC)T&4p_VE{+wsus#`B798sU!5{R|i$Q{)G4oA;?FK-GM8TCG;YuJsJS zLWn=UWkuByYWxC58CLSL!+o!0Kv?<%y5Z?a#|;UAQ}WbHB;Bh6$C=9tXU1n@@I+`! zxjPm!33J8Rw^bPovh#3O>Q*f3^COvFv3{*Guo3-QOaB!?+~g>hYyOqBI)@6-Y7ClQtX&u?YV|#q9=dk-vK+r~ z)av^SS`V*8C7{>K1&l-%)8_ICQvm!%n4!)4g$uCUeds9je*)6y1=rUe-iOMjd)E&p3mh4mqgXw_4nm?RLPm2qLveZJo3325MIczSH#KXNp&_AwLG2BkA_HO=yGmcBBoywqekGU@jtm)N zJ!RmkCc3(9(k*kr#j4GJwd326&kR^S(}&Uw#zolGP=e<1d| z)Th=JD*P7O>JwG?P*$sloQXU3JPgS4e0wnO;+L3e_i88Wlg1l)Be9t>+rOO5O-$t{ zF{;0eKLKsAm(jn77?z~AL%Kw#o{A4FiRn9er45SLV=E9ffS0QnOI=ZHYc(ZDLica9 zjMG6z1UH;bh1E?0x5w55;r*4PS2}X#SwSF4sX1Q;qGNusj#mM@>&#&YS(cD4@gSjQ z&X{FLP$O}QPlew-NiJ{4!#pEuOV_zWdu!(6X_2_GcJA-im*~S~2NjaX1p;gT&-eRd zEvcFMxuq5Ixg1G=bCko5CwF!d@F%h2VGGA6IpbL5#-WJ)%%;r9Aic0BC14Omt078Z zjr7q2Cz$vN`j-rf(KUs_3ctWSP}y$N<(rlWiU_;$v1sY#qMUxE8;(c8iskY=-T;_C zusd)LV$%O{3oy_^!*10G$>8BM(iUQxOoh@qCXz{)5He6tV{TM4eGyLI$zSPlZfB*V zhs?$Jfa5bQ^rLE~VnxVy#b&v?pz_cG?=If9n$AL(ML8N;-{MCBcJ?i4R)&}4a~y$% zkw+j4YR;q+sZvIscF0Cz{%8TBt7@bjA}?;_itQZfC;dx9=-cYXD1h@rJLU5sFmf7J zq&yQR$GNt{CX3T9t%;VdouW7w&o(vM8cAy7NGy~s`-4YjZA(3&c3 zxdh2Lt?QJHOUJ^mbr8AqWSUQ6CA*YFi!k8z19L-ygi;s&zO|h!sGU>9EfN$zba2|W zM5LVHsza@iJaz`WV*X>X&=K7_3yZj2(WL6z>93+=vgc1=Hin?iwT$I_Y=ulqo7_S~ zZQ{G(2Px063+-$}cw8byAc-$`{DeRaifkrC( ze%&|Q#yCV{HP$>>j#lVLTUn%3q<0zR>Gx?cP)sS2!KY?D;a<4X^z7ER$nK-Y? zTWiv$czYH(%+io`|LB6Hg}(ooEd=$NbusULY%vG0R+fP&#MY$Yo&me`=ivNjzKpEH zDhQJ=J~!VsxemiOqT@0d5~jHmx7Nzv?^D=Sf`1<&lT^_vfDg$1^ zIBxoxnz=mN1FYgyB}AwHOKHSO*i>L+okCyv1^8s(mUUvnJ#C{sV1p8Bm?>r*WXbI@ z@OHSjXWx|h-hb5G-aK;{_|g8`EI0WyE7+o8fMnG~=N3)5e-pR{@4qx<;2F%ts|M5r z&P62dTKgA1R)!ksI6n8(aTavWCu`)F3nz21AF)G^mjmL*0-q7&Y;Wn0ND4LCQkX&N zPFxIUTkwkLsT6bj=}0;6z+Y)epqvP$ zm;-;f)RMaPFTFKz)G_R%c}s_Axqq)GHi+)4S`#a7UI7w;EO!j*+J=_UX|t7Aqc`S;^~J_cl%XRg_<#-dl~6!# zt{{>GIbZK7EHPs+s%QzRrnm11%!3Zzn5r;tx)ZCH1j`WVns4Rzw0a^!qT$hf!%zWz zOEXNcQ-L1W)PsdSrTsvaI(WMU1g|PP1+eKmBhfU+X!Jp5 zdx;0UQxX;cIl_J*x#7PDDlQyTS> zPzsFih2rl!H=Z0ws~d*H1OUTCe&3hp2@fkp!rb%Dm_ChDykT8rKh&j`R$gEp8U1FNkCN_j{DyHwIpt6+82XJiSb59jfcr1{HI&cMXT!Vi` z#w}!$>08*@KWmAis}7D1x8S%m6*vAX26V_LQtAsk!?$#=CX&1OkbNK9DZlW z7vd?L9?kZ2V~t-5N1zRw!AzO@@ttR9=L@J>Jb~Q+My8G|03d~;`4Sx(edw&%l76qp4_u3 zB<&!_JWZ3A1LiH=Oa81ut8r8kc*VUsoZ|z3%K?L~RWi)#XrsS>2kV$9glHNy0uY_6 zR0dJPz7t<6K~t&W=lRv#Z%%!NQ@#w5^2!A>))5U$R?anB{iR>0sr1HmCAsA1jU%4F zkP%_R6EO8FwPco$WUaGVx<+gs3G}P9G%!*tQ^M|}U4W{MuAB_|wqTeGi=%1zU+l1D zxQA;z3)F6}Q{vS15rd1Qy~?J#=r`UC3RA~WOgJb(wgruX2X%_=@`Pzk-~n)+f!tqN zCQ0}sp=GIoS0+LIt%6Jd%E87%vRxE#((0!8TH*WTo=6(eMrR|3ISP#t1MxcQs}!Nb z(tkyXFuHs@+5EKwhUT4L(b7%8A9XtD6#3so?oDGqEwhsln#p9jg;fUI3D_eeE75l@ zn;;i)RBw#jDvlt~b^6lY(VR}YBK2v(LsyqOt|UG=2=lP1KP0bU=ujMkevWt0bg8zI4RmK#WpfR7&7adIyp2O>l;vUhNqBWHMpLUSXf z2JfA9)l6e5IQ;VWp$fbJZ`4txzb2Y^TDQa~)~MqqyXLd0l5d#nWB=#%>7N7%SoIk* zr^F^C9)56;G{V<4o5f{mNSiq#~0$9+Dn=Xwc5*vte1%xL|cGY*8p2xa5I=Kj_Jm~-Qr6|a2@jly)0O_Bt<=hIg- z{@4w{v}V6;dYh|R4}ix9%iL<TDOd&WJ^jcC!-5#IT$Do(Kz89t0{kJ z@ZkqjvQf&z0dMus!SA%@XIDS0@Httqa92W0kV zHfbsc0=Rp);csthsc;@YzB8x~Qn&$Qeh{2&%UVC(LpMsfgq--5ZP>Fim4KxQk1Z5P z{pdDMFZ+d)N|Kfk7AfJ+Kxe8eK%JrAo7NXn^WNrWbJi!iKPXEPHx*~7Q`HOGLw$YD z>!uF{)XV8Fi38oBH$e_Am}A(D$u1sxy`vTjBj7{OQ*?-2@3zOxV|kucW#$fn?I#2O zJl+h+1hF195c>c-FDWcH3M0_iX8f5QZ@^dLS#z`BTxGhGmM5dUzhqg}(Q(qC$zqgy zbA9|9bi?`lxd7wZ`!D(rbMTid{>nBI$A9L^Q}%+M1Stv28~2A150TPwo9ybQsjxi+i-o@{Wn^IE>lSB=A+$1YFhQF)mz;(BUKJVnanUZg3!h z)D2cKB|O<{HvMd;h?{al6cdFG%aW`MciZw-+l0}yUi6*gteVy>6EfmGZ*&vw_Ch0t zG97}~4qj)?x#k5$3aWXg*;McdJ3nF=mH3>LSfsBKc$5ub8P_1*QmpMSs*V_L)pJ{F z87}+7xkz$)K-D*V;WU+5{>0%UWQ`kCz;7%3(2>h5DQ>Tpa-HDRP<$2EX_y(ws&LWb zdWy=ACd_wDl>N1>Qv3={EUDF!NHO$W{(-inI|qQQac=-n$K{%v^hT z{n7qoVwPIUbMa-I$4G(CX_Ox)C0jE;{HDBVAzjQpf%zX`Am{++0Hc+<-^hCmYix{Dq|y z^ltSb(!najKU1D6Xh`+8j0dg+WR;P=hOe*?#;h-oyn&R`6r4pO7zMko$;sz3(+wBy zDmNuuV6Db1Ar7C3<~LOaXduPb^qLk%Wg{^eM?*V-rZL_T=?as&dSL_ws%1ApY_>u= zv+i1r(-EX(#6PGP+9&sUO-^vYfraR_7iM4dKft$Qfn~?fW*%Dz@n18Lk?Czu_ z&7q_CRQ!xbzx{6U6|Uzq4bZ54sRBhE6K6c*B|hW$O_0qR=+1AG@c6l2Z> z0IviF4xH1rvtEWP_Phr-J+ZlMP9>f}Ec-@8J7GBJF?BeRU9W)HS@}k{l;V>7An7QB znp_VDaq>CN&_Y{e)sZSgvwjw|f#cO^EnNcs@Mkf&ygEe%-R&app{98V)!7`jv~b#S zV@pGbJ<4=YLirc=DBE&-{F0NjY62G9Fg9}LG3xNO*9WCk{2E!>idk~ds1ERx=#Ppe1|-16H9Y+2M0(oOSb_tKCS)-D{bP5v;k7F z`MujkQnq!tF|hhcfLc}WQx%XMy>*@V7iWPyV`DgO8vDq`PPBXktr}wYYyjDQ2pu)r z5D06Vz|O~NWO+9;iviiQ?1vmno$kO!R|b-6beG2>-YUoXeERmByOBH1cBD}= zmVtU$bXrgqGMZcIUQ6X$8p=k);e!AzZnU3NRovz$t_vn61 zddi4hm84e0V^)DwE}IjGf+9*QN!;MSi#W?)n1}P2iB#TP#iOmweb}=hU{1t!BVZa0|Ij;GY z`oq@f>$^ZRHI*B^MXELyw^Tu9o>gG>j>a3ux8-B+8;!mHc@!BM+-w7;;3oCNAfM1I!xjqDR0foKS^v zoG4Yhc?x5=*UVl-;}c`WoI%BxLK38NX#E)7=j4GI!l2@#Sp54{C@x;0SWGp@q6Av1x}~A zo|~K9D-Vxo0Dl*2LpD8d>U6G(S0(cLc$}p89lPPvx3FVM3yj(9JScCGP5U__-A7X} z4Wazvo_tD0;CQ0l3tO8~Gu$_}DJ%4o|NnvCh+*fNEVWNbsuU zx}0koRh1W6o%bBnKJE83Mc#pB+#jo*pGvePJEHpJn`J9JHpKAFk zY6$%)7EZG7ia$uzh>@a}cS;a@2_t{DbU%TM?2+-3kkFp7X#w0uDjR*7+P%rTqPzF4 zr1F%Zyt_=pUQzHyb+H>rzAt@hKk8D*p zpNDGZqAl6JVWb0@FMep3ZbLy(L-nf^z<7V4Y@;a$3izm(YG?vx|Gf;e4Xkkn#Tj19 zr)bfH?(@PL!qDbVl@zpRk=IW z=onw?wA}n{q%>h9Vz|5(KT=-rB_=09hmqL%N!P?br8R8Bos~T#RiM;9eb3m2r7C4z z|AZA&?l~qVatU{y12>BiM)<@6v7*51WW3&6UpHnUJ7G$cWwBi>v}7*te*jUD(55U# z{gAHqcT@+T!lSyD+Z_Soj8$~O9IxMwg;l@iLWs`%Jr^UZUb!2MdYsC6IDi6A3A-@6-UG$S@1=s=ZoKU9* zt#8F^&0=?YaAQur8Rc+D4R6o&*-3(#QYj>J!w*ynYF<-ho+53cFUanFocs^l96UYJ z6Bv_z22IvMIrCIWINq)f*1Ka`L6(2T8a=5C*RD&B-(RHE=FDfiE>0Lyf^MqJnoWh~ zrI5}eM3+RwuS9ZAm#epKbUy$}nGdutOl;d!ePnl#a;FHcK=cckY^0#VHZ5tHK#HXY za))klbK+5H5u$JDef(^O)v;}CM9f6w+UXZGuw?aIH`m!6yu}vYZ`3gt@I~K{xq|lsJMJZBfp#oi9hGDiGw#b#M67o-bXZM81qfKfFH?z zGj>P4v?}=Nd0sP4XXczCB!*8FP6C<(d8xm6=2xz%0{q#4FXnvgD)MP)`uM=s<r1%G!=ZJo!)V zOY=-c&uO212p_SX4zZ+6)#jKda45L0MT?U+*4hx3rwTz0W%;_gnqZkK6N>g#AU+O3 z$H1rI*f;6Gu3F6qw0fU!l-XCDS+IzGq}!ov;v03k-7_PaVEtqd&*4Us z>z*>3>_;etg-FqwrV+p&EzE zI*bTd?=R3@_iz@b9Lp8B`5{(S{4VzXuhHI&*5&jRfp&P!B(9RHL-IdZev=^X^pC+j zaRBU4!~oP{aX{bfmgf0KLATH=%84Mh+-})jn7aQ>)L@RRMeyB?e9WAo(^b@I*ZRu2*NIKkql?#ieT7wfY=4Ijssh&w?30QF_3wn$`j&TifShe3 z-Q<R$oB*=jIDL~eN zPo^x)WEsBvigmEVw4 ztDJOO7!}!#9?oHYV%tggZ)7)pt?Y3E$x~r_WTq%uDmNh5$W!d zYd^AjB`1;W+OXte?zCm_Fjy|g#jQ77C>r<{BA$!p;Bf%6YEizwrC9S?-cX1K5pbDt+WMVeBNLB!y{zy61vdj@0S9_934l-Ymf+W`RRNqYz4L z=Zz(9F}@BsfJvmiT+H(=L98tUd!l429kl&LpzVHzb>`W2xRngB_dslN0UtnTe@DH6US`tAcGwq85+#RJ__Bj2*wzw+!N z9`WZ+**Evvtw^eyHv9d>eUwPD#_(K^urMOe8;;(&aXwDr?3*(&7f>eRh27-SaW|6v zj((*3k+#O`dy~G9*hV*fmmPhm6*ei(bMW!?Ij3%-%Hokw!UDz_-6Eb^PSl%Hj-3T} zDu*-jiVRM~&<%Sjy5K@p;A{~ptqmywgH%GRh=fY@f3OuYmpxPs@WY)ZatOyl*fp$o z`)uB3M=4neq3ZZhfC&(TMskYu#FC?R?_O_xj?o%89oe8^{|pY}y4tFMTqW+*HFw#@up$BLdB*W>ms0oKpeLmjGOzhd@$b#uPcvbyzXZmF8?2WZ_cR6B10y@0aYQ|_{t&KWFLdsbWoRd7O;K|>EU#XL{~p}C8> zmN=Z<949<)a7=MtwChRy8FAt!SmfD>G~85f_$yp&^=n83CbvtvD$3XyDUzncP}|l1 z)GMbm49U?>DS+^seGKm)FltnWg8#}-QGFl#sB`I>fdmuwGoa-ThKB$!R=t~*B+(Y! zDNHL~+n>f#rz?L*J2ZI(Hy4b1Gj|s(& zqnYBsZNsIbc%+t3xvLrt1&}q$U#ewDG+@}`RG;N=u(ld{sipGHI1UHO#v|~^*c)%4 zYD+h2bWH|&8)Slon{uOJEoS!|(K2j~S-fud_=Tye8EpPcTAeX*c{d8~Vuzgl-`Pg0 zKO#2kT(}cw3hakV9Z(q?e5Uljc2E@mzVp)?S?DopJ-*K3k9;W3Y$v=bS6QSKs~yT~ zdo}VG9|>=KjpRw?l{)^7Gy6p0Ekaw)ekG*Sq8y|(QnI!YFypDa624+u%GXjAqL@xJ zinX~HMubxyG&JpsGR|IV4-2Ro{Z1$)#2C5&4TF7=$Zz4L31Nkj?Y$^69jjM9Vhls| z28FN*4@|l_I8NsR*r4JZRN&~MASNpA()QMDmW@FNF?EFXXmcC#M2+2x_*uj;6=xO$ zD}b6ANXqPK7m%Fc;}KehPT!a=(!yL_CUp$isIpr~GIBcq#AN!ox$2@SA}5Jf%g31d^+d;voqAFsSLqH~j<)Urac70LLfYYl(DeTjD<1NNgvvv9?xeMcLYZ);vsgV;p*y*%i z7I*nL{R?H*Jspls#h#AD+t<2w@*Jbj2}qfiX(!L=0DBt$K1j&=HlueWdk*fjr9W}| z^e+{A5$@bEo36m|2i7riSfP5bU$pWJ`_XJ`s(G_*s60XERgtNl^9y+s)-~WOtAt{` z^#Q9=u7|vA#|eHe1ifR5u&{{y2I;oVqVFx#@{^sq^IQ(!znoRxaq>n*9DI=Xw4pSQ zzgG>r4v$*koXKsMianhv&6!S(NmR{|fMz*}#hI9rG2k?uL;df`Hg*73;u!$uFc^Hq;GFc~PPb3d;t1u*27k7v-Fv7<)z%A(&Pxt2rIvp56y zZNzGvw%Kl~yprNdAFh!bllsMmPN>aQn(ITiLNY$p_)_gwd(6c zyCck4E@e30uFnI^i?_2RJQEwNTjlxt+Et4H@v3K ziy(MP2YxhXug@NkKpVQsdYf(9?C=0J?0vG2^0 z>O`dU8)k#5Xml3Wd$&>T#(y7iz)Kfl6f-lZV@*B(M7*4hVVjCMfeaPv6-HGx_2&2M zcS^S&Cvssr3(gpx&wak}ry%Gr{|Bm!{rb!@w`2D<U5{<^>4qZtx5vT32tqhy zTe72HR!FsBL)rP0`94D}s_zfvp6Il^Z76$1!8tpV#eZmF=eh~@mFdq&O0o8rNs1SI zDfG8t$J3#ceTM6GV@-ZXSD7st`c|{+90PPY%(+%e(8{fRd<$#~SokU}`YdK_tHy7Y zZ)t+FyvPki633dz0&lM@qU1|XMJ41jBw}OOay8XsXCc)5nF7*|xD@7Fp=iTEm|956 zt3-@gk);`uqG_etW9uMgSIeX}b92d1+KxvSa*Fh$fe3Msb8edoAqi?p8F4I)x2Ri9 z>|n#5YntD-_5XvZOyfYmYnTC_6{~xUXuoBX@N%ToR%kxM-PKEVfEf3A5-qg1sd?|;1iZpWuFzxB~ z@AYh-u`i4S3SxKtmYpCp6^^rUa}s10GKsDsp&O{_`voaLq+pfDZ>F~;rsNK<^Smg5 zq>C`yH}CyF;0BQk2f_2C);Lk$r#Ja@pu+lM%Q9V`0^>#`mm}Ie&yMn}$XCvn>FF4^ z$Kap8qle6&*3rnKxl;=N)V$EOJ?O=k4@4BCoC2X_DdZ51JCys|6JNH*vK$t$Sae4| z>Kh45(y7*Tc@t6Ap0kKajeOq@|0;_+`&rBY9hrygr7wh;1};9Yv1wm%2ydulwt`S@ z)aLpYaE?7kFf@9v;MEx%Yt_oH?TSLdZjf%id}A+7>PxvO0ea@vxikxYns5+JMZOz8y`OD-mQBlG#qicnP#QKvqPk_f3G+v5&UG7=a`DGWE|(B@$Mo>?ta*Q&&xk^ zQ-h^*b#@+{GcWwh2hO(|Gp89Ye)*^L>ghGcPKmm`>zW^1YN%4&1MPelH%SXK#~b;T zAB)N7I6B9tuM!;XVl|7|nMDKq_Cv}>N0_KlYHfaXEZ)51{!oS{o(*%7Cl3V$Re zsWiQ;_ni9pt9t7>hi5)y!(v+SQi7p%^48R%VglO*R66SkOQtSX;4!q9y{#-bMuxtW zI^QT;aFqI{vbM4HE|Rq1Il{)PPn0y1b!h>le2H?1tiqaQj?)C(WZwu)uJLZ`F2YgO z-(w$Vg+$VSu+-Aed5-d&4!4*mdoLp*iz?F-xBP_VNH~bA^+++Gj~IqA=1GQ}(ts9F za#X)#HAFYDxT!hKM`dzZM{0v?f(6bIHC3^}lgTW%`{`zOfh7xNv-cZoXKG07vqB@> z@3_>Ze2o-(@{^Z(FpzZB!>TfA&jXZ+_@let6N-?Qi50^PF3nvpJ8tZ@8b%9^? zU{)&MNi@XD`ak{wA{poeK`9#rW*6Je`!YCZVyDK;WNYU6TO;iykX^V@dGqeK%IEUK zE>U(@K4?)U1@}l{-9heOhR$B)NM6HU5LEi*h7~^1u9XeUu+$?6eb?T>!^1)V9YC^G zi9|tnTYtVkK2`^(@^5UEg*eQ?FVE3%wXI-2foD2*bNem|?#Qb&3;@qn?7#Q|@`D9YtoV->6q z+b^NZ{>)6WO2cl^VFNRo@L$=#KzMmSFbQZf-Ld>s+L=?EFu^?36_?r?G#p`(NKHkS z+y0k9;%`a6P#iOpzSK~|3YN9Mbov3!A30lfqBhsZ^k$HZP9I%7R+e9?jw!rmv~Y|f z0*Rw?w(59Y^pk9Ai=$}J`IrW3U6QuS-*x*MMCgRAN6rf;($K`h@Zc|RR;b$7TxzCw zQdqcw6^xt?fGaOe57T|NXsd<3Gv)S*=MV)&o$Bap^N^TqcNROV_+H`4>EWiEZ;PEB z6^VVR8Aee9b41hQnR8JdXAXQUi%&8eRulzt;dp3{AYs^oX$* z0hKS(CzsF{HZ{%c>mRXV&$4B|85JUfz7VUAD7^m)t5&Oqoo2Xr^tz5p7Z0)L7d*II zS)>#6s9N5~@xWKy&Ie?OFt5uCNHfZ;mGA85@*z}fG|_kNS=SPGiMaY)b1P5R--v+Z zsE7fOCru&9=dIk3xeh&EWL3{5yvw1nm#ZoR6F9@*8ZnzCzi@*_HSk2HedPx=2x4rt z(T8(l;?OYT+DtNtPT^ELzyY-P>)Zrqls(w}ibV)G00dWAqXBjyFq+C1QQBd`xo(T8 zZQt?3M>W6!%@yULW0^WIIoSq2PjT13?Hx*C*o|Y%FEd^-|NZnv@>L%ZWJDY)jOC5Y zTR{48xZ!q+KGADigRau@v`vlkrU1U_A}x`cR?4|8a!l?BMO_1Cbhj~z;WdgZ@3Ss<4{CWHJ z6r)%$S+n7@GPM99{-ilXdDm97WZ!C^a%&1i=$D$X*`3y~ZT1L0(**X^sxo}C? z=~-#Ie*AGPkB&^axFjb2OljP>p~RmNU$UyAen(*qW|rkFMv_cv3N}0p=O}KdVt5dx z^EZd-&}t?2KFVesyrDJhSGk1UeGWr(Mw9QA>NVKg$Z+#@Iv zQa>`Dv7_|O(2iu&z$vOg%S8?(@F8o{F$pg84n>7GCA%s70yI^34NWcV&q#4Q9}Dy( zb^;NxGFJM4<>bQGlD3o-{9mRJ>yH;*p0fVt$|JPRjd8t z()p2xx=7RGl|HNIr*{zZ-8ykI|NXm}{=Y4Q{SD;si>Ma*xvEe_ zd+qZOh#6==Y}KMEIVwDTmo?JjM0jc2{nffhq?7j+pHPg$0;cGm3dh`#*I^o8hHN^$ zq?(o;c=BDNuyKXqhp(h`$G2xj$iMLg1(^3@!H2_ zX*-v+!4ZwYi~$V{_+0Bh7o$eE3J76o?5H$Z-#48eJ)a;QAoJG>PU(3&7t8&+??bWSSL}Ra5Ohuvc)RYKYeraZqi=L-(B2nWRY9;F&nry zlFN2nOs1*gPm5K=H%t)g*5kaIcHrEm^F0dJrWH^(?UpiQDH)}sVqAr*%e%`ChiOLf zR{Y!xfWu=7{IGK8KaUj3zz6CA4ct|aEj?Z9943>kb@C%nUaeJ~npc85x$G98ZaP8k zmh&6~=l3vVz~an%HpYd41IlZ$IFgO8UQS0Q%Z-E!P*D&rV%T2ajsCL7y^+??uH?tY ze4lE9@Sg#WUQbH6RBIe~;wnD&7*6#ST6z#}`enRj)X(FP#W+;x#!CePqQ^CNbwt*7 zC3e+MlR)-MJ<467wAJs4RnxkekBHxVeefHggSmu$C)p9%iB!1A^c~yA5EuAsNw6SO zlPmMhS!+=p^qYyRoEMDJJge502tap~xxL44;<$9kcbyNg2qQtX?MdDy)PmiNuqLCl z2A4vzs2n20ZULhIOcsrdNQR78#;VFUrMu;`bo4OO4jZ#k zhpO68RfXCuc~rPNZy^H57UEts2G4Z{q8sJIi|Vhd0Ci&ZkctIh`5^e*yg4fDF&Pvi z>?Q47OAxX0SL&pk}cZE#Mchl~_ zVu6j-IB{1%F{qI1?Vw55Z%<219T=eAuMCn*LLW>;fXF^3{PjZpZIP%PF0L$Pye+iD z&}wRuK<8I$Olhof4%670G^m^<65JWulF&Qm}4{GfMgPSKz_HSa@O zl1g?_x+2y^bAKQ2L0l%SVeNs;Hx)?rXo|a3IzK`&LlncJkICXJpN{oOUy4i>M)f^ICX&hrj*_#LXcZW6r!o= zBZ#)h;9Q|HjL4c)(a?*BxhsvD2K&9jU-ViXOlw*>AYzjk6vXJN+SO|*1A5&mK#Wv{ zX!_xYPPc_<*1AG(E(p0VLh?VKbN8`${_FYH6o+hUdO!V-Rd-#r1`HzRg-$c|_PD1xZPgw$~}WN^6w=-C`s;;UVZr z&7)DDin@S&hIPukgp9we?XSj?rdf$HJ@OGu-2D`yIRvrX?Q;4kSj1H2v`Y@yB&3%l zz-jK=f%}5Q_WHCU?@yL40T%8iZNrnJY+9Q5t)&_iVN?-Qf^G6@`^@Cv-1^8ouG2T(jAq$KoYQ|I0 zG0abXOo>@6Io~7rKw|b>mLk}B_9}Br8RYF&?(n!?3Ml*VFPKi5-mEC_lXBY$`5%MI zB@PvJt_aRjW*Hw~aA*sAALRErI)U&yc@4}vjH+&Ew?2ASM|J1%!+C}m>*9@mG5Hvz z{0CVPyY&2UZ>#d6)_YS|%dehCeXV<@_3^_!jky2+o0$LBcE~jV=F-Y8Qsjr+dMetw zXaT0A%gaROESVW;6`wB`N%Hrv!$t6D(j$$U*GCcGXaXi?^X(qBS8SuhZDvAOyzZI5 z>I!Bb|C{nl0K3NFb}%*#V)9o#bm7iq8&zTLOOTOBwQTTVm;EKGAe*itPqO5xzL+K(sHsuYTCR zRnIEmY~4(YGXzn*7|d)@w8?uj$B5ZLbjiA#kN4|9dYvHm^U5Tj6X(FGug7F3kWX-j z+_KWM4Wt_;o+E8pAr!F#R>LV5UZAa4v0+y!iOBp+xeJF()pgK59Zj8KLdN_sgEv*C z&tV~5nvN;p*B?EMXl96HI5|V_C*F;-gMiq8hCCl+`yAjc{k}};@7doLm_Z0 zfaPNW9z+ATu+I2nhU6bGO9sA+a_OYn@c*0;t|P``@`-zKLulU4EJc|qnd>(CBv{^1 zm`rNlnyIh1ldIt<9dKo^-VNqa5t?msAzbBqr>pig%t+~RtoIq-y|E~)G%c^3;k45G zgmN49{4PkL!&m%au4qo!r+%-E@8hG|#tSs_^E0kc*yW0S9QI~AEoJ_`&0J)d4PJyh z!{QQnoJu)b$`Ic&=U!mfuB_cZtj#ihz@!cV9zAeSF#9P4<#Si;1Kf5Sa*dlH_H0X^ z-!%A5P%GfU4%@{c>C)rBJp=3<^Ob|}RYz}miXGT-&?}BMm zx@KlVaT8cAnz{WX%&IxWayPVrUXL1tj<67UtIG5CC;PamZSQjEC-mA;V|J4YTD4k@ zwTIq@nZOISEk?bQjLlZkmI$-lb+!O8l=DXNQq@|2+*FjI@Bddx#Z>Dw*G$H~V-v#} zD|h$)$_7oajEqJ_X*v8jBuPiH2$Q76$`XcwbX#RiT^mSmjJ$OVN<_*($jWhbpmL|7 zQZ=7xyF4Rz@y%nLc|yMF+2_Tv zI=xJKcU%qM73W7H{h0DJ3gk-O$N?l4tb9SA1W;kbu)j|=!pP@;u-G=Xg7D??>#1s( z3rD@oyk&1kuwBXYx^bPtDlq7s(C5l<2!p7!x<~LuA8l4pr>z-%93Y`p3JTu*-uKQs^Ue3ocklUQ@3qf5d#y9G&zb$qIcuKh_&SRY zYlA2R0B-^7^76_)?aS>P+J)9W+h%pR7RFkMuh2)FvP2M{8sL43vYb#PxoUh#htB}s zGfz6dm6ZpIq-F_IHL-qL`qAJW7nbL^NVHG>xhs7$$k;sEG+~n~R;ESmmwm1WN77~3 z*uxqCDHAKadbXi1G1cceE_OIv~4U zkqdTpgYFZ@vztLLOF0KD2D3)vtBl|20b$I&Yd<8Nu=e8MnJ0@cY5bO{=DOXmT&}xI zqd}71E#rqI_X*-wKtQu{5DTODW46Scpd z=GR#t+>oWBTgz0kg38^oRGM(hK8cfh$Am9wmv4J~M?62$s%yAzlRXU=dC$l7$u2B?HhVg*z>AqQzwOt4*L*` zDJ!gbCyrwl~&2Nb2wJvsQLaeDzonuq#~IOkIyy+m4@i z5J$w6PU@y7)mKJ9`VEgU?TlszlN7$38UnZOxzRg*)@{X`yc4^rEZ`zt1@U-VUffrb zr-iapv-9kEqaAZ^X=wCO#)63MW$BbQY}G9@c1(sft6Z9Q2RA?NHyy6izP~3*$!zI% zNaGvYXSzRPX7OTUQ`C;*R!5EK;F4jOWbAEvXZ98s`cDS6Qi=goQmG7)iYJnoOn=JC zfF9ZQXU{vOa7y7>HpP!#28dh=LvpVX zCnw!;tk_!(6=MOQNGn;g2O1ZhGF86EQKsoy#z%Z1lx(kfi=h zGue_P(JC2CD=U=nTtw-8{&ftqadwI@`Lnou4!Ox&)gr`61&MIOugUITZfJJg=xe7O zn9^ur_w+AX0hu806FJX@hRD9Mu-v%w7cfH-scKGwRGK8J8@5JgMmT}Da)-`R+~rod zS4iv6Bb)$=N+W-IdYo4BB7*+{PBdC*f1a?(ao1gKj?T^3AKkU{A^GKM{OyUxBd_YU z%V+4j*P?&ldhfkaqwxqo`u<6GFnhXR+0PuYggdu?f-L^TV6mGEl9wCKJ3B8Ug5Pj> z_jR}U08(@>dtb*XMzj}mJa+iqvp-m|{Ckq!hHy0n_Rn8DD=Z}{1b{G@f97(}C9-}qul)IZK~C~Hvb+}>nbVeaU-$TGCh?mG_X@v?8nb~%h?DBTPx_i+ zWzU#|TbyGYJJuevQumVHK4jhcImy}OYmv&ME5mJ%sXEmymtf3*{y_eY1Qri!w3yKl z8m^{DJw5BcNYnhn7pgbN`OErGeg%-&HD2NyUQzwdCkaI)+M2|HjZO3ELnH40VD>q8 zAhQ2Ez79WM`3tByqx%WCCc@zY?i4$`TOJfcV;c8K!b!19q-CveDxazMYk)1AaC2OhCl$>p$yZWq$7>?DFZoL(mdti4Tl_mw)(@G&syH>e|Q$`xzYe$JhN%Ywi`5k3yBbpg@V{OJI}_o82+$~7Tts8nADutN4b_*rh?D_x#A8hHis z^jX5g!dUN>o~%EIpg-)XdQ$O*R}CO}cYmW9aDlpzfN3<;u&X|Q=ty0wm1~+NB=Xmd zd9DrGkoa@;w;uUJWODrsC8U&p#OEHiSX{~Mgo@|6ulTCRhuoZaB*EIeyl>$$3gnaj z?OY!c{+!_=k-vR}zsPghM$;sOAj^0!PD(><+!8+}Yjx-ah;tZ5P6l)}8%!Od#CjG% zuF@MnZ(4ZK5~fyZ+(`Y!HG+vV_Z!-vk(lQI3Rw8fG(-5@K^DgofOfPkkl%%$L4CRG zzKdk)Ef*a&*bj(heG8lQ3{=`_M5s!Axp{fn0yp7zQH*H0yR08IPP8UdtIg+Osnawh zJRBi{lWxv}tR0ny&nUZG)Us`!Dr^dTSZ@CH5I=njZ78p95SH`VMHL0p={=i_`;}QZ z?&_rwH^EnI@kO>s>mBWL=Q6&l$(QKqT4N@o^i?u90kx+OlI&(?lo+^{i!a1zSHgO} z9wO>3o<3k3iJkCc(qP~FlGS*0VSW3Mymef1UF&R|PnHU5F155L!^m^TciHSgA=j~f zKXuQ+mt2g8c|n0fr(7R}h44Zp)WFB{AfDk%F3k(KTWq#AmPS^^dKK2uFLiRAqvoBP zcs0G>+;nHLY;5IZ`{Tu-%p3M(ku`NUja-^CASpqdKg}uqOP+vWH?&EDAx7n3GRLwL z!44YP71vmKLHAH^JOaXmUV|A}gxLH13fRk1dmR+9Pd1MJHM}P1gmDxB0A{et&;gyxl+x`49b_Rd;3YpEz?|>z! zDz(Jq(7>)vg6nrWgdZhra4{*Jcd}|*7fvmf_r|w8z!*a8hTUdYC{GKeNb_m4pAAHa zjQ5-~Zc`sI#(Yp1*=R1xYhHYCLn^k8{DrL^d+LMVBKPpg1_Do{QJPM4GLwH&R>zdCHV`uQM`p7@9l8#%^#kzXlbS*xfR~V2EJ}Rt;AHtdFNzR zAuTpvS|GqIb8GnK8_f@{8u}4peLli&icWo*aPJIbRm4?1d%NvJ)S9b?g0s9!qEVP- z>&C#xTL}!sskM6VcIN}&t&`%k7q%1yNY+YzZ)IC?Az9fC#)LP_Fs2s7!6Y^S0t}wn z+t2Bo2v0Z5+AgVBoqB!jpt}`N1U@pz!xjt%oaW}Y$%(%fJT_1u{)TsnW2-SRS@g@l z6s+f`S$Fkg@?9@bP_h%>>rmODSpp(xpiiW4moNMlzVU$r8oS;#6lxo!_dAAtEmO#E zBC_VhFa6troX&>H8*%9NZqUHcz3F~(o^bYgv%Ld3Lj?G19+rHSX10^2?>nZd-B<7+ zhNhS1pPT4*#Z+~g`NiCI*4Yg&N;LoK@+?djf$+k9r z4cKw3sC)s2=zj!B7*-l%-*5awRAq~~iA(6R6s+>G;3N2^;-ub{#e}6+bP;S;iUlR# z)d)+rGGtCgQy_8*g21Kr1`L|wiNyQUj>(8Y<|nD=ZzQ6onc{@4uIMp@&`ZJY zWzD_;yn&?zE`iLckuNuS$+$5TlJuwKpNXcFF*cM;yb49-e8q4HTx4J0Q9_OK>WL2Q zUO)nUBTIbg)-;GI<9J zZ@ElN5i?Nzr<((C&;|davZwS9ssMpOS1C+mnUY4rUUpdjk4AO|m5>1oSoYC7k$F&{Hs(^5;28x@O zmm&Uw{FkqZh88z1=%0pCXrFJRM<)y%swiAk{4|b6068n>3uNT$H8RWC)6mqqa6@SP zdFT0bR??gsuQ&YV^j+13bBSVLWf>fQBe~hztdT{(z_|TKm$Toe$D>;dKQf1EKZ!iG zS-8X1R#T_ubJzCqho=9y=l}oi|6%t3+x^1QOONVDM@pu94SqJ{gzCR@*N7ost17-j zCUthZ2LvpA_#SzC;OUgmk=bF_<<^RP4*i}Oa6J8UVc+al!~Kpgn|*w(Axpz^4l1m@ zYv4*p_^bSI=JaVCC9|+`af$w}XpVk!D>nQ%5@%AfOJ7P_C2tFZ?i%Ash*eHXHvJ~Q z!sVMEn!SDfQqYmqN@Dfwo4c4GD~QB5fg zB4|xWIplSW3%#FivH&Z?#v2lwq~jG>UPBhQb8=bFz~+s|?(`Z|kl%$LL}{Jb)an$@ zE-x^RqQPB>idiJ|W{srEFZHS~b+2`eOB;}CX|8!nXI6xzQkE5KB0i-78JwGZ_tv{B zCEGblesI&(&8`LZJi>je$K|tlVTR7>f*SQRJ|VO zP=A}{%=?;urFigi;I`REdD*Uwl8Cr+@I8yl;`pU{fpV6zkWwf;GmXr+f|COBBnCkl zk#W!enp(P+N(@qf90F8CQ!EFV@NgLA-D7>${@IF$dgU?LKsA%* zuJa8oIiXbY{$)#-msYk;*C{pKK|v;h%#fdOrxzLeqvYU1XVjdX%WyVoc3e6Oe<;ng zbT?do!Yq@6nwmB^&8%vccN}n;o@*6Fw<<&~gr6eYF}TJZnxc8?=KU8yTpE6)M0c z-Kl5i=*`J{&`>WdYfC8obsn>un~P(ep`P z^oCDhIH^tttzCoBk|2W# zQ0jbOO%~kmUzSS=?8(^8%H|Upj-fTzxHIY((RP%gRk1Bss&5sjT%hRtx;SMY-jn+x zs-^aw{0`bf>{WUJe$*M2x^Gsc|P#YO{) zh}Sy;l4+U{5c!95N><3o+y;x8;XOrwSCfJ~sRD-b-z3vYUUH??*8no*3UEMPpL zzOL?`r>zO=jVK?AWGv$^mLzGrAKdSO8=^%1A;rU=s!LW*MF zi^}M@s|W7WlVkHVzaiz1uo(DwuG2Pau|avz*}0Key|05?cFst$*KIJvC?8>m}6kWBqP$?S*xTa?O^C|^2n9c z(s0IFsHFV4LCVnhZYQ?7HkWqGnO+&fV)vD4_(lxn+gWktr#Pwbof1tsZio@#t_N*>4CXu&b+dy|o{*&%aoi%kCjkCrv_&`$$h6LBQ4 zM`iI=qa2ryO3$K#gckhNY`|Q{PKpGpNYBeZQz4;!Rq>$l4!yFGw9TrV2Xwy?0D7n5 z#2Z7-cgMZ%j8N9`rE6r?epgPcNKn!6k&EUT4~SxrI(hCtdD8M!Zk#DJDmfLMlqrB0 zP;CELqGtP&T*%Wb&}iFyi6J1+w-smh zkS~?km#3tN(5`$wA->6cCC8)wKf8yKC$Yn&xgFJLt5pH_R*nm=JgwJ4jqe_L;07Zo zFaH95ozjgMJSjoo$az`j(uveK*D}UORk)Js{ibp3>Nt488K~g+kj!zt;COJzvhsxC zmzU9P_qPr>z&_?32GpU+a#U@Pw(!HG8fZ|f66iK$Hn5K;i~1_`3SinCWSW06{t4%TVI(K<`+bqbyzGc4Wkh@@%&uw73;}8ymk?pI-oH)a7=gPk Mb2@!||L^jD0Vd%JfB*mh literal 0 HcmV?d00001 diff --git a/docs/directus/assets/collections-asso.jpg b/docs/directus/assets/collections-asso.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a993657ceb8a7b2910573b7860c7b2fde4a8cce9 GIT binary patch literal 34520 zcmd?R1z26nvMxGtcXyk(y99R&?hxD|!QI_m0)*i19^9Sa!3hvt6Wry^WbJkK+Oqb! z=brtY``&%sd}GvTsnJ!{-Sv;|p1dr+YyePYC1oT5U|;|M7$^c>Rsg{OSWtk2g@cEO zLqbMGM#4ZtMMc9P#KZl6Co?mrxPqvlsDgpIx`CU6TW01o z*ngM7OD_No7J>pQ2Lg;70FDL*fd=-{58wnf5CZIH0Q?>xAfceaVZdO2rv1$NJsl(s z_|H6;mt_DV1Q-Au6#^BMcPS*b3_!Lh+Vwv62sm2?0G>$Vd=i(T3~rVr`$ zX(U8>e$C#biU6IbP<78olI*TPyl-id(jDkSN2gCuXJofer=GFWDE5jwEq<;cfz?m1wZnvBGFDTi@n>tNU%YPI^40vz3+TXC;h8*f1zOVt&vVwXm+`)^U!W^DP{=J-*(E#R%$Z zS;oH4I8b8vW35SqwG*d{kMH~2h^76J5T76vi+B0_a+fA%TX3?2b*`NGkDVTmhmBSn z;Xao724p|@woDG>X9585*YqjpjgCdaf8_SB=$|UV*KSR9alV(O9@m?DSrl z^f=zKd4fn3a`cSN*>HRgg6n;Dy@&anC<)>w;E@(Len^V<&DkqEBepF8fU}Q8k6W># zejyno5G0btfw%Q{7tsc=l=2jsf7Oyd=KUOs!u4L*EZ{pV00gY=zvNleMU{=>SLBwB zHt9fAZnwqB(eYP*=`^VO+Q#s#fUDuPgpw(8>18oy>jNIqD;SaNAPlN$X1yZ|x^c+w zHb~lo3=+~QvVo){3yx)@C+yI4^g<=s)q1~Gyrcd8;-0T)d zZI`Vjm>V;?AYigo@kjmu0Gx61Z{zS+GMI^5Mw5FL;HO4Ja?QQ!Djd82S{~U_zVN_G zQQ6QX^Rw8y!n&!t*PlBk#prH*sPOKb%=Wg1mhMsS@(<9n*?gF%FPII4Nd(*;f7TzJ z8%+kIMOXgExb-;?_+N<3`u#HE|4B3kIJYmz#;!yh*&db8pL%cEVBam7%mlBWMIFz) z$2Iv)AVol%+`2zVB!949qWFBbn)cMgg-WO8-Kka^h}cKKP{tThdQ$)@j##NzDhvQX z^?uMPmH(~!zr6laLjs_FT5+(#^??CT$JfDv?`ci@g4>gaYERN0xwmDkO_3V^9)`gb z#Q9erLbCm6lvJ6>S?7i*U^+-5HfeRK9~ZIjagwv?4*(Ec@4qb~i46i|*gTIq=$=aG z6Q}iz?w4V0$7xLj8B^dB7juMu&Mw|z$_fy}(HuEsO#2+cnNM2id6wQ5X1LuZXyabV zp+iL(ry5T^#cR`w9gFyP1Lhy*FOafgWDs2^SU#yNS!#3LaIJgF<4RmXM|7B^{dVl`Mf^WS{OJCreu7k^R^o!YQd$iC2yM^w zoi7)`jH`8ZHla2*piuz;c=C660Ct1NH0j1?FX&YnbW3d;7<8Ql-e;B0I}J#FUUdSS zGT?>2NkVe+-XX}6*O(6&{Ujt$b*-!gU~60s;b zd%W^_Z$hMsJ@DOZOfVwobL^oY(DuMFXrF^;dP(b>)C}p}=?P06;Fo{^(6mxBGCx9) z=Gkj2U_!0Pp1WV=)wJmv6bWMOjM;FH`K{gcQ(Sh>*NybK2RmvK5?#|>E9Vs$xUEmo zcNgm+zuNFmF8>I-2&d8k;9up;a*ax7Z_IkR_pQ>8?)5IREY-;rNcE$CcBkL^69B-Z zia%%N|4+F7ebO&gVgE7JN!09z@^P_L{@$;lI1$%+=Ni^gx8|9R&G(>3FfnxC{3u( z7Isvqo9+koTM*FPMriN{xrdIz$(VNGU!7Or@NEl1LrqARRw;2DeIp9#&-O!WRH@|v z`1+DuGSe1@=Sf=d2jx#)zT#vRURGzEz+i%k)Za~eu$1{A&v=gxO>GMr-YXdO|EcXj z<$unu0cLC2Q3zio*WLs9P}bb7*d;?gvo0v_4T&f+{Dw}vP61A$rT_#N#?+9kE4C}X zw-pG^vAw>MzE)Fun*!Ogl|B6~j}oJXAdbKFHvqtL56QCL|7QZ2-MEpRBBXvxB%|+_ zp9y~!K%UBlfxe=qih(`~ezUjvUl6?*q<~+F!ai41goOMH$DghVvKCJHe;^tI@LP0p zwEiFpSTg0*>ezJI>I=YVsQ2dpFl+O;?|47qn#$m!Ls;A?GwZuG{ML6%os&`h(kcBO zZv#~OH+SR`Ms>u?n*Xtad}5wWq0ML8K=!Vx+ff(Xe&cZPMdJ7l_U7K`HKgeRa zHkfa9c86qlL-)R;E*DDw*{eY5oQ{pcHGjy5pppHpqr7LDTKGOTFWJfUn)gWW;_S>q za-{b%ZG}p+DvmUXS`P%DfAfyuTEQj%1F;r>q*wX3V0jeX|JO`q?2g3`K>bY!h@XJ{ z5Ays=(t5`_!0--+bHRi7Nfp|1I~}E%yM1zg7J&A>}_cT#Ox48ZAj~(pEE}k&3 zKMZ-^TUl)M!f7qO*9#w<32${DXX*TZG5Yrm%-Frq!zYG< zZN5%boHw)Hee2nA?wfuJ>o*~fuUfs|C$-sUg&#iugp2rKv!v${0$&9gA@Ms@mKSE?SGHX z{eNfoZ&K;+?Ed0+e}DX!_dlJ~41cfo?{QkcbNla(g8a+JUvBl^)x4BxBWEfNH?hfI z0M!5YX8t!VqIUY5tNxwce^ctB5Qbs#VX2nG6~@0V`}~)t69bAuS^6=WYIyqI$kV*` ze?fr06(|>2mbLSKqRjt2E&l}mK^mWn7d?VPz#eXiyHJLHZ2126sR{Dy<8Y}R6_xkJ z0n-=pzoxYR(9%zg{T~ni2|>inIg?+rb??RgApfHvd-B6AcI*RAR)cd_=1@{;d4PQu zo$vT#1U+ufZ;W<>hyOb^`DaUR0H~UVzb=rPq5J705C{! zFfeFHNN6w!NC?n}8)!=d3V;EPj*5m!A!?6B%A$l#CTvI!D zZFzw9LjYi~fV(@A+pJ|rp))~e3H|473AG;*k&?xpm(^~X4Xd8;OW~e`&%A^338dJ2 zaYQQLi}xsA02oc>v8yZ3Mt%p`6#Iu``mdan?>=PmCu2r=d_BDlE~YZ_u&Q!!jW^=L zrf>|mhOUXkRb->_@ehQH$lxK>XVj;5c1>M%&bY7Z~2LGg;i_)p-G|tZI8x`jIun#)3=h zx0=4zcR*5y!v+)phBoGJrIsOQMU~K$j7h|_!N1OvB4qH&e5H4( z0fgOSb~3h0pJhPfJmc&{^GslkcM}xch27(9fxy4v)w}7v_BCK5FT0_DQG8lU7>W($ z93gjlWwX|=Lg9=Q31?{9mS@a6DXRUITl^ehBL!DRseJr2Qef)P!6^diRi7p|9f>wpYZSE*4ZKL~nKv17qtBw)otmJZtrLEbRJ`PA$>B+v6S; zvuHVw`)NnuCF_zC*(5g;7X+o~BP4!&Hxihxt%}r?A{RhSmciX#+AeS(`7jlo)c*p& zFDp2o^ zWnM)`_uVPAgUtq1d|s_G78bUoGp}lcAh)-D7K=fqQ4vELbl_T6Z}LL0FB>n(`m~&g zm8W>n0&kT`=7M(+yojQP$muKj3^>DtX}Oy;lO=L)s`n;siFL8db9(-Z>Wdok@gL5` zm_E5NOdloarWls)iSkKc+7AxrpX_kPq}kz-thA8aW*drs7nlE5DEZH*fr$+#}oDAMnI`2_N-V;E@q% zEFNFQ*&h~9bw0lU5>F4O4@kT6a6%nMM-3}@C9;vwn_d8MEDEoOAS^h{JjhP7uv{-h z3tj*bhE<`jB#Y7W^6IvmP`^0%;tJF)6M8&y`QM|T+>YD9G6Z399Y?M4%H(hC4%Us^VNnGKx;L zG)$QVPs|Ib8RONX>Ulld#vB@dSKs5<-pMrI>_ff%0>~6=lCtx;8z4|7*7*W<% zPBL^7DJh5PSm&N-X%?|=@u;31S%0SCOE)>7eOoSsWfn6TJNMzj*KYi-i+lHR{m;oe zt&Z0c6Zk?A72BvgA-+Fi_lUM!jkLeK=0flIE`Iz1h_&{m9u?Cx@EcC9SyzaA0VIgw z5AaNqhQqd~C~!ywAbDqAkF>itO&rQeIq8&a?yQ32i!jd+Gj|gVMKqV|`-zFamcPXO zLRcLcj@PS(^8%nLaCN5l!m&X0O+LX|m1B##=JuhR?5ElZr?%FF z(K!hTb#--(mhm44$C~u-I~>&2y%q@f1iZf9TnlJjx6}>By`J`-mW+Nq({XsyGD?dc zDXu#3#t6!PJcDUX(SBs1N94Lh0vOvtLPt*SMuB@r7-JF0eL0&)p7(hC@#L`<&f*2| z3F8HDzQ;SZ*42UT)u-4=RJC)ET!u>=`$e*ZTlPc-m@B&zs8W!pu64P4i z%pWow7(<{3^9k_}s9R3OUV_1rD?w5T#U}|!+YBSdqhUa|-wgK^cqK|s5e8riSY*ALnU*Prna6T&mY-dg?@Fv_cvY;^4!-A!FuPF-} zx~f8BickICL5~cna342Y-w8EOCcE0t$tue}i-3uO_eOP8rFtHq>r3cvhI%4-LpdE8 zA+qn=DBwHTcu;ED!-gY$^=8w&J0^Vk6~^mfdUI0PI}f^9-7qg=`mK3Rx38S?Zx zK0Ix}@&&;7wj)Jt#lL!YPG~~L)Q+__5eM$gIeA{OCrCfTyY912gCF9&wjEnu0Qn!4 z)iG{9DpGzbiPQ?tu(C)wA73Wh39c(yr70oFA`oQs=$6| zvl~T<@Rz=cblBBWY_FclefwP=xU?hH-;urFCN%A8KdS>3LCKGqTs}b~lj4#hIcaRW zJ^y8P&dEQ8XIy8Ew0V?Hg@%Aeh{53Q6%S)!cza-tG&IXYl)ge}r3+>0BPooAnnNFe zZH2iPlE5(x;soUd(1>$17z;;SDijLw?G3KHz2v2|;2fhvO@HFBa4=$}OdHhIQ=|#} z#~9O&d}+dz@7R7YnjzAJE+^QC6^%7z)ct`5)a@)eqv@Gt*W9Vs%#^L##}>|dZ3&`4 zQP%dXGyhx6JL4C?$Rb{FpdM5VROyzy?Nrpr_kKgf(7NvvrBs&YxHA2t$_AExPbHl_ zn_UT~U7~e0ZK@Qg20asf?&*PHtoBcVFy&Mc`*KT!<`XMoMro{uVKoK@wyb^*jHqh`pq=DnA{lkdouKZ_YoNMltw9R7&VgJxS%C0oEu>}XUw?2FWb%zrCU{*_Z) zxX1N#b_^HJ;wQ%De$r6A>E}>r35t|B5tqgv6g!oqS`rCZ1(FLcK&b^ur_}=Mb*>7W zg%yJ*cXx?g`7HB|>kvVA-Bgl=^h^PA?RPUuq-7bKq*Hv6`_h(9x7Kd&d9{el%n~ro zhI!QbmsC4Mb$V5!J7o`B0|F|w4Pz@NTv#waYop z|4)+!La3SM7&eesq&lh%slfnLl^#zS9;E1vn!#=yQXZZSV+cEzEZRu*X<)Y=GSzJ_ zITQDLPY=-r#Eb7)PLxv55$6I=U;U&F3@q!K(8E$@WHGXC*my;47WY!<&1oWZ$cmuI zN6EM}C`SlG$Od!u8G*GmsoLfV2(;*sGH)4n$qGjM5X^&3v0cTuG=zf_V?x5iGGi!9 z1yUkdhQNrY5sn^My0LY5r@WD8;Q+O0RoRQRK7K$KpXnx*?eZTnGZFWbFq&D&)t{b7 zEbav-1XQt-FBlds!Qm+)aSmo7F$QaD_>{^k%9EFGrV~fLlj-(&lik-G;(4+f)gPcPLFCOrM>|ALK`+i zQ{2CKO-Ex#_ilh|+0tvFvuf)gHc>}oN;uqY5X&q|VbMW+Aw-B9PE`+|DxqQm+wr0a zm1X~&iJGAoXY&F;e7~jU9U3b0*&B68f?<#W^;InHrf{&~{;LWbU0lp80iEy$6E^># zBKXvfFm3)3EUX`D^ig%DRl=JEnTxb|P>Ljol}O|gN46GRAwbPEO{ zkxo`y?s~jQ;rJsGuhr33U67G$8SFCA*@|ioS@X+Vx9q_oLxd^SUs;9L3L-NTpwwX| z@@#Nc)%!%A?&BNnzfXzKG(7uo^~`IPP1taP=@C`p%mOkOJh2fS0pgvem4NLLP~$Pw zizX5C-UV9>2`>-N%uar^B)6F9I^n>B11A-AF?*AY>b~WQ9WK!kzL6oyyvLW&)j5Pw z;MA~BY2=Lw`1B|=Gb7&asvFm>OJj0MU6)sd-fP{;L>(unECmsRS9^h$EwB)129PQ% zsw}cS&@>x%l;sdSb*#Lvjim%WO81fgn7fc}<_G!wHlU@kD+ieZ zKeO;#D`--{MzP4sRF`MJg_Hk~pfPOQae9s_oLYqjQL}Z`#90ufIzrz|h&gi74J2?V zq=<*1#h&3B<`H-Q9E)(e)tb+1)Phu_G!3F(k_y3ys_-L>6 zy2+oN`M|U=k<4u8N)2KGc$p4~j>fMfVI!|@78c+QmM9)=Dz1^qS{Ho7`Ps2?af!YGG1onBJyfP+3eLd^Q$dWE){2d838@-+HcB9nSZTh2% z--BGEj_w4BeZBc#0CUH_w*R+8zsZ5gz}DyH(h_h;uezeJLoxPmeyXPARIEBeqpZQ=Z2uCN?kCP}| z9ou*djmM;dQ7FR~Y^hBcdt@?fbhHDuDYFjsThi)z4&3d1kTimP9?>RSByk^k4)_AW zxS%9y`WzZ%V9ywGxP-G*sdCu>%km*pX{bjW0}gc>y(7`=aati;H}!GE2e@+zye6B4 z0fTU)rhITho^kv^iiBsn1}l2|w*mZ#Q{7aslXX!)TN8)EDG-b|zc}d={&k)tebcmC0#_4kz|CB3?lGAMfGG9l9F;UykwDH2$>T?=^08(4Iv)%Q zb!jl3QPfsrx$GGw+jWzt6_o0agG$QA@bWgkdF|y$RgX7b=H3p}WJGVVUD`P)DoA+z z6gOPcPhTlaOQ*?(y@nZLWXYpq%B@#SadBFjs2zGcR9qQBrC2OCwAYM3DvjRgi~K-I zUe~W>k{JT{k|B-Nn5uv#Z@HPMy4tfO=K!ql?-Ax%(jYS`tIyIlju7Uo4&+o2uxwOW zGM?9J5NFj@w!YOckJC0)V^a|Ne&*vx-H$REPIAAFr~=(A3pr4FzJt z8S62XveMr4QzZH(rGJJ^2}N3MC-7|(k`)G%d!!jKe-t-9iCJNZPsr`3_a90n=dJN} zoQ31Bo38xn{e2n%k{$|?GCWgE7EZW~Zi=T`QLr;&MNQ2g$d%lwx9aL>EN~-xzwu11 z!1gOtNgLy)CmdmlCb8@9XCgfE)D8M))CmHw1AZ;+G{#Fj0+S)*St;!dJ3H4{pS(K~ zu<4BgNbH{5cn&C}82$UL%BmrG_JCdJO$q8frnK1H(ws6%1)x?5v&V?CshriZ(nUh^CL25VUo*H>qbF@)=X=WQi5(7raVH zOA5c$9UhJL-}Xn~6)|$ip=J>|)=6`~5Z>?#e%SVUXnl_F>|EUPu4Ci!hF*ZHX3>;fsv$)ZR1apiv87)dB#1Ft zjnx>^bIu(#!HSb?9J@CNx9ET6H|^?|cf2Vc0|#W&SCbyEaz?&){_LIUmc*IqNsVEn zt>ICt@gDVcmbsu-i<)XvWp$TxB_!*-mU?b5V{)dW4Z#l>N)@4-8qmwHj?E`u08lBO zLLW}6kB;07P^43J8&Yemix;s=ys=EfB%QxFBD1t-umr%Dq0$+qLW`N`_V!Z5i|C#% z$dDXD^WhHKU)+wi1NTkw@_Vj=YxpTW!$pd)*v(1vC)o1`P<(BmxxjTTOo!7E=)Z@f z4A2kr%oN)8CwmM!yH~H}-9MNloJo)1ogL{>b@zTGDC$9Cp~Y6F`qW7FgWl7c__oc;epx0B8LXGMUk zG%d@gG6QRyK+zpfeoALF3Y&F(GGfM45EA?4^^keyGjw(JozEwN;?;-=({m^2fRvrP zyxNk3XXjdD`qZe#SU|}$Y!-ohMl+hL)jZaU1DkY#9*eOdaC9$icm-yit+2>fN{eW- z$diA+sBsw?86H_-vhAgfpVz34bK^sSHt4doG>gfK!=d^bDyrz`bim jce1BU6~D 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 RPRQQ+u4rtVk-_o!{{hP6h+F^w literal 0 HcmV?d00001 diff --git a/docs/directus/assets/mediatheque.jpg b/docs/directus/assets/mediatheque.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9cc1bd9be3347c700b73f919a2cb6370a89a1e3 GIT binary patch literal 71106 zcmdqI1yml(vMBuF8VK$#!QGwUF5$!7-Q5!i5Zv7f?hZkNOW?y@0t9z=_(}HJ=k9%v z?YrLp-g@iJ^qQ`o)~c?muCAVWo_qcdcr7h1B@O@s0|3BYZou;*AP@lia>2pE!NbG7 zLPA7(g@*F_H3}L&I_ArbPm4!{_Y!C+87Rmo7$`;A85!9{<=+atmDd9T_1qlX($mMm z{#P4#?gF5|LXbgaLx7P2z)`>;P{5vh0PHUV1cw0oIo97VNGNa!Xc#cqpD+KM0|pKO z2?Y)FyZ}Iic&YXp;`K|N0pF-P06s|W+wI&r#6}$e?84jZ)5)*KAX0ZdiiL%KZ}>mN z&aJc3@Adys2&N!v?28Vvh}(t{Oynh@Or*y#>!g!F{uWHXdCTs7l(-% zTx{w1F|%B#<_$tAayomd1#8>9w~4zKAo>0MgQyw%uSNf zf*Igx73357wAqdH61G#y0{YqV+O1>*9Z2vcB~Vd%{t<|@yb4tW=If-)b;q3z`|)2e z@{@|i;p#~oxm&J3eWPuzv^qzf9q{o)L2KXkWIN9+eI>!!GFGK)`oX1n#A7?pW8fd~ z)bQ!osBuv}r>oy5-@m;mkHeLkoCdmx61vrFD7utpHbIiUR=v(fb0+W+r&q>E!#V#ZJsY4+wd<8+DJ*nKz*eb z^Fv~iY+7?#*8lHg`u70X#JLWA#2vXAor}Wc-nLka>@$EBn_FFO)x2HXhvuZYJgT~k zj)OXH*$9J(zEKR}c=RU`aEzK}!*_`B$5QN?vN2u!e+{<7CytI9PtD~NGSId7Z+z1> z-Sw6$I+C316YRREYaaXyO`{aHT)@2Q{hR^Wgf3Aw~iE<^x0FAe)N&Pxs&tlkEsy4*MA z>?U|~9ej5(Y6b-m@OOaox@#A;RtEjnGZr%)`^?a8!Zix5h#=CBqfqIlbr^pAqS88q(h&Fn+&L@&$fnrA zx1E@m1jxWojk>)1U(QojT=~g)j`Q1-iC#5K^L(n=y+|!7D-{BO0j+>kh$lEz{|D~x zzp>*VH4}IORkd=UN)DFo*x#oCykw?C@$aes0O*cuehzf`7uxzy`WxVi8i}!TA_TCu z!o%(BtFA8l??57PNqtE?OwR505!w0vJP)N_rtXGMrP(&j&gJy&*E>F6y>sN{XFwQ> zQW$S!-pV0!M>{Mxz75k3%hXmk!SR+t&d}+n4>R58GBd?2 zd*2Bfx#l%;C(yXQgKXy^DGKxJJqRk>j{B3k-grqH+^#fURA!oV44$SSU6#{4o>8?w zMH%^V2}(qbB9CvJ2VA&6tZlE>@fCEiA{M+$Y9-PVZ*}rwvl?v_&*ISKJj&BWvJ?~n zc@h!dpXna++AYq;U0=wIi?*T5jEm)cp3IEY_Ur)f2tHOf*_Ueuzk40Q1aP+AaJDw{ zB*Y_fF#$o^m$s{se$=~nt(D=YetE5`p6SVpri(yNBLY|UjFmFFnTzYu+jB(nxU62&;9ZcY!}Meu*jaf?!yO`G!X`unmc$VkWgGfi`@>HMO~@ zKgXBzQS8?3CoOkJ7eDPaJ!;G>YPCKCm`{mpPge6c7SBX-Ew6}hu5_@5xR9O!{^2S4@XnJ9=PDhJ zL!*ha3H;!$7&gwj7Bh|>nPJC~U7q&#r8!cJ6t5OZKs-x07oEYxM@89ivzv>c-!AwZs^6A9)G|&@V4Ja(q-D&YD6kAd z@@IkHs65vZ+2OR|o#p4&g4g%%9{Y6UsfllKLincp%5MX)P=F$~^6hb|j_%=Y~K$l;!T$*wF~QlC>QaXaGbOltEMO}q%}pl9>v)f*4;FAROViqqI=V}E*31# zmu6&Go?>8eI&!`UE26-oU*A=GB^@41@pA`8kN3Hq0yF8E4N+*h&37-L@ zi(~K3aPFFHmO&#;l8eYk9a?Iso@%LACop!I|42;+*YE**PXT+GPjvBgjm2?-6~_?_ zSw4H7tK^GY8w)ejsswscTX>`Uv0<-gevBxJ{496rEU&BoFJwP5bM#INK3EgwC11od{BysE=d9myFbkq#lJ6(zwzP}QPT0o zCBzwG{-gOrp0;m?uh4?;7hfTw(q{mj1hLwV@5b3@Za=LKV)d-jtVE-iN5Y=M?1CU! znCFMy2$wIiUAZjUN7+URLBO*7(IN6gruqsYyST(WcK6y{cjxXEXLn1BhDqJwJlh=I z_uJ=DGmJy*6HhPw#QHY)ihp~we()F6yXlAr)QF9Uj{4~u=2BKXeUic7N#A)1b)`Js z;>%i2TdnuG9Z@@nO9vmnIOXNOgb3L$BDLFBcZG3!r+UJ1>!bK>ez6<6i3I#~cl=jJ z$DgDYPQ``t%Yj9hKl$SK3kWCliw@OpY9`Ze6PjXks|itZ-F%D3`C?qJ+T%nWT|3O; z>)W$lpSSUY5MQd%lw0P5?L0Zu9oX>=dwQ}F!dOh34enFSzykiukwj7pXVqk7$(=9;7M(~#lc0h(*^^H7{XSWl za7wxHFggPRJhoY*Rr0|Cw%of856=LDMMqqcvZ8DlCA+Rie%$Wi^ko<*!rOfPWOL zzbProF5}uVDyF~D=9h5-96Dy0N*k<4y}&)*<%oWgnz006aIxco&j>kq)$Oz za0!935e}bWzk?5%h{qMbM?e*&Yeb>nGkzWGg4@YTZ#LP(P|6|7no+=9Nw6UV&`s7PWf1k*g7)*ttsECnzM>gI+3QQ8M zbWDfPZ~K?uoBYWKzr+72hWb}*_h<1#pjlM38M4%9)a?D}+k`Eks;Sxs<|lOJrnaQ% zelr#Qr~tn{SvPS(CcWuvR9ih;d(4@0vyps!^D5>}>s( zV#~%zt>wc;GaeAQX93x}2E%m_-)S+Y$K1| zJhIgG0gr;8SqzV_(dH$sb*Zx~WJevR`PS8`Bd5nQ2={Em|3X1eExqZLHXMnuJ)sxFbCC|lCg#udkjz{aZ z0H2-HMR18nuuZ93qQ_DxBhf_(r;J#Xtk-=z?#?6igoj+8EdBFFxCGT7{2ztkMR@X>*6yQJPrtZXoI9*G;I=$Lw14;E zn{EKMi(^AQ=5$}<3))4PI4C&vZThGU-FI--Y;UJ&-Yv995WvW2wpw5654SbPjOnjXsp9{mnO53yI_PJF0-{OE#_{s1Z3XnN9ui|bgxK1kv&k- z_7#6{^x;B#c9EQ&ASZAC} zwurnMRokICbw;cc$mlcP_-wxzcQCq2#*;gXc*i1%%8}R6;~i;J8>(|Vs~``-N)Ke+ zkLAFbW!)&+BVR^wH2tF_es_znxF&qdv51g#C+oqDg}gM2GziJEBJ^wQCFPdYGvNQ- zRHg~c2D~_5sQydY{M3y(36V=%K*m2dC)7-$a?cVjQ_u4VIGzD@=TYJts}slT9Op-k z#Ti7peA`kZSBr;gMj~TI+*u?S$bttG^(85ddL`DmpwU&EQrvw8YY$xzwTPgxd02V` zru)eSyP1iWiLev2&6BWcXf8OqTm3^oxNGwi`6(Lmn21q+EG~yP?NN z8KTjZb}ksT8p-|9Du*pIP<=G0$f*Q|+|OF<~)Js7q>_y>F+h$=b|B!%WB@0A4at zq4-Z$s=ql+e%EYJKPf2ia1bfH%k(bL<~#lt~7tUekg7#rdi8>t@PEt~w{d|`#~{a@P;za#UTjWprpMxNZ{^G2;F+_`D&n0!qW z0RBX-L4LuNf2Ex%8q(n64`3*EB@iXxN=)7To}orlPvZ~3%%WwG;d#Ujn|m0mxld4{ zp#s#ErrPb8S1}p@dwJ+?xr26r;{ZTib$+yl+QFF4*Wz%OF>1;b)dv8D*n-YbS!cbf z7`fbbFi`2LECC(h(wflB>Vn>_HaCuxCSa;D12olYHb7l1tmra#RnC6VN}4*s~JQ9PbhzeR7*5^u-^YRCC)1(^iptn@}0eSbJ?oLzsuMD*sq(@1jLN;2wK=fIs5 zC0|t8*8Rj{d3If4+&`dpG3y&$;5sOKK@g{w!Ot?!=dxelpVA_4dFa2I6Mg3`_d3oN zE!A_IgxygFkzq&b%RuL^q5egA`Z>!WcUd85_(hr}`%d~qcQbt|9e@9XyN11ftm0d< z;@vYl7{(EQ05Z>o9?#;gV_xN+pu$~n(w#33mliVT^g87-(|PmGBO^0+o8|epM^?8f z_h5go7bS1AFCE5^FOzf-=^0s`*};pr(V1pb^GP@o%a?W4G0rUmDN0;ohY0Wbz#Tc< z{V5Pk4|ErPaGFK($bOq7Fte=XIQsRv+CbqDXR!MlT%iK>+@slAJW*-WQcDL{_?KUJ z{#CQ_WyPmQsACX%F@Nm0exYfu^WG6!m~D1%u@s-Ma5J;8aIh7>gTs5-)g~juSBI5) zvp1E{WvAUG%Z!HSDevMLPpB|8@75i8_-wQMunLi7w!&z>wb(u>=~}G^fOOt9d*8Tv>KvE33%Zqp4)HU+7w<;2 z8<$%N*l4IW%XqkFC#Sc3t|4kQ&!X}{ZgrRVA7?5BY(Z5iyZ6ZZDlJyHP*ztCpdS-bG#YPO=f$MGSUs(vu?=EJCygW$i$lVE){T-7}eTt zT)y@=OcLZYgU}7k>)1ZVS+w|AbN;Q1y5oFjXYUu9{{x249(Jet$?x1%2qu|0b6Dm& z{_olU#0dRw7)ScY1-EpZS!|N%9GTWVW^-?6R%H?h{FLtOI=-74Bw3Y)Zj)6dUcL{bc*H1uhLL=RP^MuqwCdFRoMbEbIMY(>E>Hl zIm1`(+P%>BXv?512rU`SlQ=PiA{Wj)K((@i!ZRyTcmMn48>H=%`(PyA-$E33+MxAu zI1fK)(kE$)p%(AZ!=0_!$9K5LiJ$Zt&_j!Cld^V>&;hr@{ZQ@dZEDuCvCixMh%6P> zd$hZD=#*2*@3oyczB|4DWHoBO=n~N^nWjNPap2D*)#|qVuKa%3w#%hG|NA|qK<)Qh z17|!JpB68W^26mD-Aa``J{nhifoi3%K%>PyJF2+IRi%&HrzulNtwKLB`>Q%2)K8L& z?{2X8>-_MXn&>V?rr+5W>5M;u`eQ-hCV^>p>X4hL$AiFXnr7d!(2HBD^YiplTyWUj zObYPARU*@3-$JztpwYeShTrEib8)^;>kg$_ajwz*^@Yb3@m!n>P`=QLp6|A?Q>$4O zmhv5O=A7=UC!m8**lJ*Sdg%=IJ{*;fD!BQ{+gr^cK*BMXNu}|Wp@ns~O*p8kucnJC z$gHatzbxjzuD`Yrfw2&r%4LMdrm{E0wu`r*7T2P^2BX!9T+g%VVaZ{H;K~r>u`~&R zI35gMR#V4NvZ;GbvAY|oRAmK#OZ7x8Fx7;2t_uy)J6O=eh9)=J3%gqQ=t3Jt^bxCL%?f6eB+kyjRBHSsKiR2Unfy9l0Q^Hxgg$`7yOYxbhZ)DL z$Yu(_(qnQB)~NS2>znv-sz1Oa#M%nSr<219kKG@+17@k}hf?ueSG3Xy>e=0|(R@JOBUHZ`%6o1VAcQA}J@qc*~UY5C+Z^igu1Hd4`z#+k5U?3pD!65)I zpND}%LII%BUZbF*!w_R&Vv(@CRb*mjWn<^CCnXai7Z%s25am=BlTdp3X6)sIG5{DX z;CxT;QDH+);u%o9EehNoL;-T=hD69)O|*XL_*8d7D@U@+edi?mjTD@IG&4i_sBkOq z88Ed0EVQ+GJZVeW6NoIUpKN3&ylu|=@mT|N+bypbHB%~gZ@$90MaVb}0ec~v9id5y`Hs zW;a@gZuoezIif|+4^B%T1YwcQQg$|B4ZkIuJb+NRW=n@?npy7I6`o}yW4Z%!emnYs zfCfu4^1AuhX|*phz9AUs#EzMfA6czmtFFzWBs*sHHE*eaKQXn9C2&G`ae&H6=^3!+ z5Jq)M4lnCx9_^!h?5L7A9Ie5^LJN6~=F%w+yDT3bGFr#y%D%m0ZEJOGEau4>-LsB@ z{RsuwEgnrZ!+t1=-PPYbzObEJ4Ty9+Gf#UQjrEsvPhA=JjA8cwae8Jf!Cl_TT{j@tI?2BbrJO(;btK_WsJIUFR}ZQW6RyxTGj)x zP%zYDS$KSog(H~1;;un%ITYu{8Mk@h$*c6+3gnjW4q7`$YtIV6i3-JRyh)Q^1aFrL zW`NFU46l_D|AZzZn$(4U{#MGIqCL50l@`W>O|+a0r)5l`^$vjs6KVFSfu;onMTJ z!g0+^!3`duJoJ_+qBnMyFH%iPY*YGOP{StQ=VF;n=7D0PuWJW8HLXiW6lH&?!)p-p%CPv1CUz}jC>ixZ67}fv}Qh=wRx*%c&d3WI_x9`BF$DmO~n%{Z7!$x73 z%f?n3$gPiZupn#~ms0Rj3;yWWB9eshMAbgy_1$8~ZDDNh9?tO@aN`P%EWR5W+Qi}_ zP&JWRNk{_reRa=up6ndDCl{+$tbRlaJXStsqVLNLE(eAz73Q>>CW4p}x>$Ab=W)_v z$i+6XoDCJNaYUXdv7J4n{V#13^)VL_a+kKb6ZP?_hN(tRS#UdTV7LOjl#=FjeP0I* z*_3i)#k^o)5ormvHD?f-SLw}@3yq|p0>ZmmDDERBQ%Q;%w!EwkY?Z&mK$oNI@5zXZ z58=2rFkk7rYF5(IwNa1+4P?GJv_*e}q=-66OfDpMmQShKI;|Ipo3ummC;r5j%{)eq zt(8)1wu@GbvgD{j(C-T=Q!b9W1IY&^-kql}W)&&>1)jT^zX5V>7l|u&TTg!}+^V<9 ziH!(WdA2NE-<8G#g$nDU49LhUIZ5qLDzD9*fI3UT%FBqFP(Ww-8eq~hpu39c%B}G- zp|-9gWWpNdgn0DC?vmF!VT~bI?!59DP;joSDDVuB*>!ig{7O1$0dK>Z$@1izMbZ^R zBr}O8wI6(xCLG77{Wykra%_07ptW19`(}~+Q2M6(&fCHt(GjjY2B(6CM_ES>{9LSEvJ1>Fegefiq<64K6IL#WSaQ+j=aFqlT!i#WA9} z3vsb)?jPTK_beGK9s{OzXIpXYPeUgG%%{BGmVN4Pa#I=Dq+sM6LEVZDLM9o zz&8VH`wjp%e5V$+5^l%tlrU7%uG%(o-8fWI(mKnN9#Y&dZ-x7c7dVRZO#_;GP1;@a}SUB?M6hmQB637bokxzJp&}NcFxm9?=wg| zfqCoyP}p5Gg%U@xdc%sykvwT18#Zg)sMt)_DhQMh6bUlLp7E{KGdjQxjs{P+%j1`;vqg#y!4VyM6s6cyq;2@yRTD4-oC^})^wWjgHc{)s4Zt~iXho zqPJ1@x~h-CQY*{6^5X7DXi=4!qsN5FctXFqG30Mv3A1)R6~qc9_geeWc_@~zaxjj!SGo& zTc^xTr>5{;EY;QcKo9&#zgq`iUsxB>>*N2Z1~yhI^*Cm1O#iP8J_3xO2Met2bB%@3 zPh8m$g)=cjXX@~bcJPwmr~^zNaCi*6_?$B2@~s2tPj%(^^;uHFkmWVxjMX4h9R~}8 zNOId$0DpUt&KU7Un>QE*kaa=CFX37k5E^zNN4fn zYFTvGyqF95K>nt_%zaV258kjH8}e~Ik4a8l$?gsOgq%LUKOaoRY1T#8tQ>6g z=NME`6HB~6y{sLkOp%_~Ul|Nwr=#!>53H7PPBRE9b=RyRF?;oq`RwH7WSC3yIeEXw z7>9q2K@_Lq!1(|tOZ!N^9whmh&|Y%TJnMohVE>4d`EEBZK#Q@6c*;S zSE0ejG-pz4C?Wp$a9>Ghi$e!;vY1p~^omhg zb5GxPk9|E{bWLzIy#%%sXf5{&hNMkK#k>)Abq{+8{bf27t*+uk0zvp*64WO2gxW+D z5;dXhi->d=KMAcb0t1LB_+_4Ai&m>-!&;Et8*OFNJXn?~y}Z zhjv`RH347G6KtYeLr}Cuvd%|8db2NHP)=HL{^Mlj2%ne;o??152-|EbHWLcnBQ;VbJJ~v; z#8fVdi{UcTaZ#?u(UO`jsg=E1ez!nIMnnUf@y!XyDx<=+d13o!)I?%){sg}|^6)3XG08ig}f*0kw?VK zx^@M9?TS{*gTWJCNtcw+*iEw>m5*B#o7R&aLjPusCqPhPoHiVq!TMOxN-Fv44E;Wcjr=w`z2{flw`j>eRx z>8iY}wH5=SQRWXT<+|IQ?(IC}%y0ourayo;?!7P!?XaOGA)mBJlrVg-y)O*T$AdxQ zMEw5+A|rO%y=zL6(|iwEL)|J++l<;y?M>T(HrMY(-rjpsuqklvZe$A98g+sG?PtJm zjR8_Ys8volFY)A;wbfNyu!$Ava*9sGW4^JLKF*P^t}OZx7`J~EJ%|~d`&P;nvvjhL zsz;Ec5DlW3QB(kzOBOS3^3ZJVCY2IFdzn3*%>`(+lQZCFgaD0#u*63dWYB7omGf4j z`9vqD;@uHLWE-xNNI#!plfbFktLNPG}O&QqJygoBgUkcc8PS{3G z`gcW_aoAh@xKD)8pF(xs>T&XIr{B0wjSI@nCPi3M-nZ7pS5W}fM>Bq;XYES$!8^q> z*2IQXkMzYrHnN**A>760b)r~;5%={?TkcRQBMB|dR(~`uJ|%56x9AU}!RhG^tR9-- z&0^aH?QRE)Dxs8Kq$(`n4hIK!wCuG`pK3Aa3$2NjuzG&vL-~*=^bAN?_aD$9V$YjQ z0B4?TnPKf5B9ow}(~xT}1D;!gmNkPT;~q;3TSI>+bd)#GEbZI6G@=Z2xP96OX)je0 zVBK4G3~l}hZNiE<+;bC=mXDbS3fCbmrDf0yG!~V`ofcxRf^Ygbx8S^jv|!ed8A7+= zH=#BTWo`1hEpXhND&lB6+)7#J5}laAXyrqA2E=;UUE+HNk)gh~w(XN@;H)!7RF*Bx zopDs`hRWzER-!c?3ahw;%E;G;qWx&L(K1+QI#x#z5mc7J+vekRXujTlRsv}eGeg&m zG8=e2loXCU5_a&}7p$r8VSuTeIEYg}-ONc_f*-4xWbxa_0VC>p4$L1yYI{r>8LqG7 z#+*d$I?__6uV2GPIL+>|b2ilVlF+v0>?1O?PZyx|Jp<^m_NuG4xoAqR3-pzT1AbimDdq;BqP*tTc4XLNyRH5AYPBet20~L4SsB4Y*Qmi0UL!+US_1tHJ7A)abvT|woi?v>EM;BwIQ%cG@U1* z>GQ*6_(GwuCjRxnhfVAP$-v0nQ?OMJpUV}JQn(rr_wUtUD&+TQTX3WC)^zNj6{ zw1RapvlddON+-$3oiHe4HO{da%Q7Q9J^q;cq#se8oY=BXTVh6-1U2lqAENAg#pEUf zjigW~*b2F2DCv`fAB&=zP*8eyJ)Z%(R6`LG8}Sh;qD-4)+Ot05_;$A59WIslCYg$qj2&_Y?7fIy@@cfVj*xMn zdDk-lL4~DoJlv%u~( zgU1K*Hd}xvoRe429D4RR7G#pR%D-7che|eyq!%M~pNG4|oQOFim6@SXo_{~w)y_qP zZ7htUtfhuny~KQ6PaZg~Ojqv4R;5f$qQM_bT{AT567I5pq|QwBPI|IIoqS|?r$FSB z-a67&FXk~aGE#QhQzBGon|aB*?wY`2YQ4CHijU0Y3eBw2!Vx?fp=Z0e?|6$!b9b1n zay?z4Wc6?inJr55Ps<+M>~qp|;H|=V&YuB{GMHjO-?S+aOAK~8UaD^&cH;!y#*C4B zXPT^Vlg5JZSll+H`o*4hibqG;mK~^AtRXuUl1VmA5?TkhlQieA*^JboZ40QU^HONv z@omS%GHi_~*PoYc3uj6~$BY1sbuoxa)r=sc%w$ zEj<(;xkox!E_tHuM%ossGnxDi02}(YO;hPnQaK;0jr1b$8E|$jjm6&!r0m$EcvUzVrK?|wwv@DYyR)D7(0CL+rD~k zhOA_75x)F?yEg*n1K&D1&v0of$CpyWPJT8Np~-SGwqdn%NgKaVVU8m@R^9&NdvVgG zLTL??n&dK4gV9%#lF*Q1;thbbp#`J{SykPe@DWQ3Nqj3of+gqPDfprp8Y8I;Ba)Vd zwgdDKjDwW>_5cEFDl~R3y%*vCZE6RyI`U0?=y73O8ozKx zV#i%NyYT`&M!AfHUXl!$3WT6h{(PdZ2i|saOrbV4$}$LN|-1Z8AWC-A0_ z-pQeldQDJaH=|D`5Vg&)foCw73Pd}7ywsOB^utOuUQ5KtV)a$a&fvSH0QL1ia_Z!1 z#PWGC1aI;8giz(?B3&6f(F4hId$T1mkl+y&gUosu0be}~Xo93HL-#nn~7vJF4osxjStKj$TSw;tt@I$QqPszpG znb8XjQ>BxGt%&gRV0xMS<&jJc#_>g&%%>JM&gk5Bv4DnY=|b% z9~oN*LmO{c_poCO5RDm0aAAblooq=NOZM?5KCzlumw6RU$TNk3ew$MHQ5?3bOlYKa zgrzIS0@~(R16JyWkq{eY*{p@76ZNY{yrHx8CHd8XB=7fksUo3oBQDB32w#|( z-&ljB^x-ojcRzMm=!qXxN+qc}F@?hAtPcvYorIQ-yeFk_(3_>>vIz?NR z60x6scWY(K;I=kI86=JTX1id-?dPE#fu2J(L#3WJWY6*%pT!^q+>K6Ash3H&2`dqC zqR07+IeNiVyEH+lV(q)$L)^gT{V7Af>z)MCg85f=!bOWC8&5Rt8P}kh1kj*;}P!jMA}zW;gHj zDy6Z&nDO!^&gHQd1D;FT^Q+szl^k{9YK z30<*T;6!}YE}bQ1L?}@ouGxujXFTLD#0(SPJ;Ab|{FP|&y9u7IKsPsKOn&0+^x`6tc8ub#;}f%{ zkq{Hua!My+F-)?h}HRid5YE2Zl^3uRr{<*p_ zAV{sI0*^4tYCo6%y;YhPO7*?-g`D4;Mm`xMjq>t^6$~M|2x?_8q0$5m$57Gc5JNWT z1a6Umuw9Xs@?q-DIxcJ(^{>Xoc?j4Qj-<1q&Kp5grQd63_&=T^UluKyhX(|zd|etr zXl6FyA1c{yDOOKrSB=39U{x3X@rfags|33Srh&q#AHCnY@Jin~=)4u7caf~g9qSoD ze#T3tr9%+NL3f{N5m?`1NqdsWNtLZ)Q$FSYN@pE?Ut~rcu^l5T^58=!s53t%)JEU;An8gydi8%a$p*y^kQTqN>C@3U;_L!glF{Tyb@g*x5}sQ zZ>xRcUkoqYX8@?Xs~6A81dTc=-D5;tUWh%CZvt?pEM&qQ(pOApI%J*?S?@^BRUM;s zB=7MIxO7x&Q}RvFY!S+$sGs=Zi0@vV4n98|PWUpZO!++IF$CoqslSGrVBcg-7XcdC?$p}Wn+wAwJoIhmV| zG?H;dm2reu)nVTp@i`@YsmSd3=T%R;qRBp9gMBh>fNZaev*0(*3WOtvU5PO6tbEH) zDd98?I{L5`0rP06q7oUR0dDwqvJ(uWFGl*c1X9B^AL1Ift6OIu{PN?=B$eeQbrb6gB4>-7w7OG5GI9W=U3f*g!BF*nc~Fy*Gbi?MjM><2#9 zaN{a-(pJhzX%qN&D|t~Z@p+CU`C4t-v1E1<7K#BR>7c{v+H_8okNA<&XFimW1%N0E zVNKOyJ)GCT4~#D-NMmfPVV>^O{wDqP^l+I|b(CJpV=0F+Z_WOkG|39{6sLPDfZi;Y zLL-`IKh{n)(VHKp)Sq9ygSXSVxxDIZsV-&VHp?NY0QD9b2pGBq}4ld>m{U>eptLW&8xkmPYiCS zP90&ts{JTlw@?3S52p(O`z@?=4;HiOaN1e=*sq+&jB<7NQ}m{|lT}@$!UY{Us#>fv z#=By<*ASRf{BkvvfSO}s7TRE<-Em*PY-E|0cyO+13=Ab@9Nssw@1}<$;MuzExsdTI z;U1i|edQ7rqp$aVVPw$_Vym zr0=M7w??MB;%87iRkfMYg4)M|*d1eQl3`a|>bF#zeshrI+<_>vlSztiMbhmDZp@Ot zj!Vy##da9_FuGwIleC6UxV9PodJ-cZJmQ{eAF=55PJw(@whPl{nwFw{LP$+l zmXVkU7-cAA^_*iCW7`QS;UANSA$#NMcQMD=lYeT#SpBYd-R&3Pab>k41m)i*taq4<-Z~EXYTh{v1(g zGe{-_cpGJ9Y$WuFw+M`Lq_adkeHsz|5!3Sz8*6}k^7O%18ddb=c&N==?3 zG(_IQxy*n#w*3n?EkoYdk42jR;p1*MoOVK`?&%#wV~%C9B;*fb^$nn%Nyh`jtLy$e)7fJH%-TVr!LC|-Jsw{L9bjOioV;T(8 zZw~NcXT2#5IOx?fcGiZF1u;ejFTY9=_I1fP*9ZQ z%W-u{c}=yoN$8kt5)N$4HzWK=>h>J0?K80~N*eAw_OjepU1qnE=gh=3)uf3KZ_6V? z_Qq3!l34g6zQP81iL-=!@CuUdEc0o%d^yc;*UXwS{I063)~kr}-KdO0Jh_mL89OI} z_|c0_#cE+Q+OZvu;LQk}F@;e)BAYQ=|HcNffvl)QGCcVIfN>8ppAD{KIIQy@goWu1icBvf=DsRD5Cs*|GtK~w!=>sP)L9~W3HPR*| zr(T29k@F5a)ylx8yZ1N^x6#m28;aG!D}->!ewxI`D#Z_l4fgVobPV(`mmlV<4f&|) zE6qMlO`vc09T&G(pE@tDRs3`8g;~fMBzQ!o#up9@#Z8-xItA=6N@Eyg^A`lQ*r%+s zyMF#EmxK|+H$Qfd>p7e_ISY+z)WmRcyqB%dYQ5S39M@2?0>>bv5y>F0<42mK}` zWss`vsJdfSN>EKJGlBev8WJ5jGDr@g6si@-XqN6F?>n_gm*FK~_7*z{K&DI*K$GaA zVMqq$jImVaPYh5~0PNGBSBxdH?I-z-@=d{t)3y1J&RjMRl=SrUgu~QC+nA_tF)RG- zdllrwj+nyPF;3W}vmFw>Ak$t1y0Is?-uu3n&jLLJ>YVe}nF9nOefKv^ejYE-KfSzp z#|T)IxH&(;SK=Dt53}Bb^IQHPkV39(Qm3NqQ%5>=#@NjbdH=Souqb|7;GMlg<0p%a zd%$%T7w1e*&lEd`ql$IbJ>7%LfIkS0bf+P<>xEAB8v<-r2*#a(^qzK0%O_L!586i< zG{Rze263J@dukYntVWCB>AD++$T3ku_=vKUcHfMR)Tye$aI}<#L#mk)bCmx#^SnaE z(kzh-4Pf4ofN3*V#JCPyh0bQSwI_$PUyt&=L>bq*fJYh9hIHVnbIBxzMtOVeUCJ+) zyuOlW1Oe#satvyIPUUe2fy9jem-kP6A^%k>WR-5|W z4&63ucXA3;QH2$ug9@Ikim_x|YM?60d7U~A#m27Vms5UDE8%m#EX?+Pbfpx*i(eJJ zN`V@1cE!OJSG;0m)pKAJuA0=CtX-U_(^^rP)n~Tf6hMwBp`r$B`fCQ%a-wlLN!HCI z)uIeG#$YYr1D>^XUBcZl+!`VY3XcZ^DQ2Z{93tyl2&o>wW88d7%Cs@5VhgZuC?;E& zqg!N&o+JWdOn#n_OJR6Je0#d0ZjZ@!09t#Tg3c0sdiVLwT+dM12elOiDICpL(qjWQ zMTySc(A5kDPFTkSpuwh7(e=Yppr^n#hG)Z9f({lmneH-i5YtW6bVz0R;q`(>kRzFm zfox0m>hZ8#NqtIUOZRdVq{_`nT|is2S9U6cy06C1&Stk&-@Gz;J?eqmOB^s>BrZ<6 z+|P$#(>FzAj1hBUsJs}af>8*H(_-?C{;;>HQ zcb(V{iENjnHg-=_W29qF!Ysuj>nHTf_WcG*3F5lPH z2h`wI__E1}d)mV&AD{5{99FF1%f{sw&OJQnax^sz0OzyDnwbW;Ey!bMb!JVq{9WmL zq14>cnxg&FEw`;%A6#MSmw2pU`vTB-UwwZSev_(hWhW_u|2k|qLr*)R@p5qUTpVNNn zxd`gaNR4X~ZAsCigDb0qTG7J@?wtD+)1j&)G-?T+E7F(}Se?d*edK!%zx=>dG4G?j z)!lW3Pk+?9rZ0@+sVG~2U|@_*1}#93(+bJ4?~xy3(=#dK#7WvJH6EL#QViM1WF#!U z9gcqd9RF!Kwm$h$l+>09kyQ;wWy;#^Dj~KB!*f!4g&sG!i`_+H8l{W%cDgp~%jvWhHZ;mg zf?9~gJ@r4X&IKyes7daWzv(&KSH}Byas!_H#eZ76JDUSdwYojdQnZZU<}Zr4Mt_hn zpXhwU$fwOrx-AJN`;n(ups1&$F>m0I(ctU=4t-m=SItRo&3>-XKEIu+Nutfj;ib;d z%WG|*c389A0;p6&x!G6+suVOG_64VoC{h9>RBpH`?T5uZ7tSUE-mKLY{o)sAs1gZf z?J%f1p|1nmM|!!$M=0;|UwQH8Wp#SiROR#v>CMY7E#Jmx*>Hu&dL=0f_trNg5Y@3D z{dg4!9p8wo!Xl95u7ru)f{Nej5Zi!M6Gz1e-PA%-(^mFRl(^UjLMdh1;Lt5e_OIMq zmA(A;l|U^0vb)G%UHZl<9M`O{-x3xNBWNz79P1E4g%4l2y$wDTAbu1&TkiZi6EH1R z#1it@wP%4TTe|}cDQ-+~vZotMdAj#a_I6M;auCWMT*|t?`3ai!A~rqp4|Q!lBN4n; z$X>z1uHq~%-L50`PNnu9fprKI;mY8KtmVfSJWtjLAu_8AjcsT}&T*~1RkH$8HR9$+ zxg*dn^kmTn=vXoeaphhFVrgkNa*>Rh-ZcM~9961MU0mh;$~JY&gvHvE{1o(hnF_StYOn51iuz!i1*+RmyD^h_Xr79BL$CC6C=d9_;R;~ za^=Tlc5=1TZ3$Q#X;MAJPWjZ9v6e-umpvd*>m^^xF<+h7LZwfy6Va4l0@!iGAsbb= z&?PzLz|e;&JiXaze2xWx#i#ZAgPLRlf$_`tzeV2J!=oEF?{~rdj{(mu4&w+j!f#<@wAIljWEo&wcY93$Km|GT!+w7Q=gBq)1859&YW^noFvS>>!ftp z#c)h(Z_DRO$4?75CW-z{5zLg6#HT9AvKKJe8eEvli9HL9rI%>4EB8ks?P~UPa@KhC z?ya$8LP^1+-g|!}8J*{+vB!f_QyV4VHQG|m!5>$3pbY*b)U-HfoCM3A$&qi>3t7LA za$d;Xm7}c|et9e?c5=wh!_a{u{$;L`fr{-&_!V8jd^1CRX3}d`5sv)g`|{{W@XB1F z9t6ffL#dncnagD(m-as%_?%y>fLEWePolNbE|POqBjeF z5IWfeO-3J;Q}ejS#t-dXkp3XJv$X*unyfVQ^6vt~%bypSZI$$TNz8=d3Q=#X>BgR< zDayYD@FqtmTRY|@1r3a(lk?jvYM8LGKQ?xRa8G;ja+#c-n<<#*TmTUTM}WhHHP*xh zLIC>cEb{$nU#r83BH%nloKQC zHesU;VooGb>6tc;bv)K+`r?k* z1RU`>%6Ov{Uj@Brr;b%>ndX$e*9pC>E$I#?F7w=FMJ-epz@`OlpXSMhXS3^k1k(>DRP-)iq9V zI#I29{`EU1aKB?d2waBI=mJ3^saqGC?0C`?(~_vxa?U*)eXa~LGCEGJhBE3!ICQe> zxbmAPH7l>2479-3B@e<=GNXEHu)T_W_B`v3?-WI@rKKchu3b>6)NBQWlez8!fPassyLu3#n(!Oma?R|06cE%qPT57ni`u>sa*-0dD!S%jk{S4R&+t#>qp&lrvd^%C-*szYta(1=@ zb2DMa6KEAa!^#*KSfzy0Xw+>~4lcE1{)q-9#-qm|^q~H;3O4kDvp5rLX_)zG2u9V)Z7=xqQ*C#YHZox*zFv2u8lzlG_ z6-=*#8rLu&=)2>zmA{=?`RUKjF?_QVu)V$u)%Zp&XcXmJ2cz0bg7LI&!j~S1o5o zN8~}I>d1Ely4d!k=i8hJ=7HA-jl%kADfwUzP!WRXwblZ|^16OAE&lxF;*|@buBI}! zt#o5pB|;d=wBk@LpFoE~fEX5~0r}RVp#aFC#NIP;U&+fe%GrN>?zHxLtB}KhwsZ)E zRSDxeZ6D`{;xspgPD$~x9$tkgN~UfJ?Oxe^`Jih89I9A3+>=U0r?0s5BhzsJ@X;9m z;uVlY_y(Z2B2jSY5(UuL4`_&Cz|oD(q)@KgqiHlH8jDgc-x%mF#Gw7)xm-`6jus0p zmck7zpL{!r@q!4(KDJBLq)6F)?R@KP2ncwFOZzD4|DD4;Mn7Wx{D0+iJ~eqg|FT+} zeSaiF+pv)??X@2sQonfzFK$hUZk9nYV-zima2hI+I89J%)V~cL|E&k?y1Vp z;xnG|StDPX!1-G5l|s#gI$sg-nV^EBn}5+y6EoR@dn9wEmftK?d@MHj7ZFuo|JL`@ zUur6p9S~3kdZoCZTr7Sv{_`KI>W#kP)oya&yG{6~U8346#dLZAfW-C#EAzj8F~06o zD3N#i<^PS|YA7B8SIK~Lsl%9V90!dNhnlP7TmeMd9Hy+UQk2*!c#7h9@9V{!BA+U6ys{l-=j3n2bzBxzKF);y zBa^tUrr(X5_HF-lgK-BWSF*pZB*I?neS9?84ux67-P|t4v;%Z;D4WL^=`#1;7Cbp! zxr6J}h_o}`PmOwWAgYPpk;bf&t6<1>56FF`OCWbQR=v7xI4u-u$;N5TQvtRyW8iXf z70O?Ub8*2AWl2Y1vKYkJi;EVE{^=&Qrax3fLFT1it?DS)e$Biw?kKGjxHg&;zIdML zn6kSy&mHW)5OYvtgW+Z>y0OYB7kGv`UnScepBIc>n=E!MlyHDV(Ay4S)C+elcUnPH zN*4b6b;4m+MdVpRx|CkZn3Jue&)6$EN&|iE^5HlMGN(dGjUldpKsT6~G-`^_T$qch zuN||ErDCDT1fomzc(g?|Jn4DQ*`=63Bx2r@dwao@%iS&87#F^zMLm-7tE~vbndCib z$_f+TEZC2*156W~Uys3?cQp2)C2ieJG>sZ+KWIydWg-g7QA=&IYGAwJN~j^Kb>51q z{b-?5_DQ#+qSD8yGRaAqD^%F6Wlu?p-Dc?=<+OFQw%ZoHt&GIJ63AV!@=5!CbGilQ z%-6$Z0MtLM>-Wzx>u@XJYKEMLS#vcnl_lV|qvm^m9+EN@slqN_W9oX`NoKMCTrfAq zw#3y1v0v4QOS5g2#My6XJ(oO>v)eQ@Rv4FPSGkI9T;|7bVdipE23?g0BK^R(nuttZ zDih9ZPhXl!K=Zd9?`n;(R-p<}GhwQ01B=Uf8)CY$r*L`5adgZfZK?!UA3Dn;kNgh{GCA2Fja{Ifx%57Y9>rXV9^Hn^gTaV9b-3PiwrPiXdaqO));~RvD zgw+ghC=%7abz$l0rx^Q0f4sNc09Iv}Go;QY;o3M!70}31vFeRp+D+$~UQh`jvd@53 zRalO}BD17@0cS0pCYb=2R+$Pe-&zB_*CWXi{ThBo%OcSkUJccGFrVD$AHi_vgMo{u zCnwnvOLqJnxfyf9M(>0e@KKBe3{_-$+DoQaekp`6qSz93k&KZlZ`0FjCDeF=9M?Id z0%H)rP-1dSLJ3#-h7o%Ujz9JsT7Si{nj9cb=2<}OFUACVWtGP(S)xRFaLMgIaa{Kz zsc(;E7Jc4|T#@LT975tZ_atna2E#bcy!1}0u^VMX3XRlQ+kLJG>NM=eUHaPAs-;jRiiJZ>`H#LWLYgC zBfz;v5S%(o5zBXF3c-C3lMVQCC?zIqRz@MHBc+R-!iaICqe`V`gF%b7(tV+#m4q)w z`BFRK+cUz$D;q`;Nouk=Wd=;o7ffbo>2%MMb8(=xG!s_leyKRMeK{5Lq7V>I%U-<&dbmGX!bK+VHBi{=m7<=YkV ziWZO=QfDHso1U0ey0g`%Aojymy`oZ`7*sK9s=PJGvCJb#{gz}NEoH#J0G+rKvWb1q z99f!+AfgDj@G+<1)=Fy%xv&k_`Vnf;K(!U2Bo{GQkP#D}&m=PWk&T5IJA0SY8;yWr zpK%6IS>nWy0YBb0_}mKgC=)C{n!nsZ`z6wGqv7}#Q&F~KtKLqTl4cw+g&|(nb~=q! z1)bbj4TdYPF^-oMvd)i69T<>W?u=t}_w+yT)xRsYehb0x31aHJHu2{+!A|?PQ#0$i zn}U+|4z5!dxk-uJ=9i2};=P~$qpI+~x5|O!{+{`}EIW#&SRIjl_7v z{Pg?JQy;XX7B7t7u)BWVh(MF)j;fUOO4m*DUueQX-T(Zv!Zrb#{MLe4$nehRi01>3 z=*#a>J5ZEgM&^`*${a`&;bvBE4~WdDx*+k73``UOf|G5;MKng;;-A)+ev!t!(EoiV zB~hzfZ4@m2zVhHDN$rMVrgIkJ+ zb2xbKz6rhSRWi4YEca^vr#tY`SH5|y?7{&*HF%D~_(cAo^2_keVrUukC%4&;6#pmo zpT>Tulg}Du-n)Zjcue)+x={6=N?AI9X(S_2?Dd>cVZtq=QF``qFu3Wcro+v38o65;d^1kqkDYLGbNxc?j=K zArIf2t${r_eO_t+I!pa>FWCCmcU?_^rJt5{HF5gXNZ4fCDn6Y~F&O$-CpFlZ;s=J| zszf7vgR{ z#r{Tnm-+{Rc+2O@F+{2%iv8SW6SphAuA;?}V%hn6`AhAKM?Z>#dB8gDg(}bDH|m~M{|yX@U) zBV0TF0m+N8C7VmRS)u9GrC$2W;6xUKSt;uo#}0u0y+GGV7kx`l4AGpE^V#!FhTb_P z@#dSN`u1zoazk|g#{^q_S;Q#6EE6~@LdBA8QAfAaI^43eG5F4j& zEdG9C>g#tZxA(RB!f35aPmdkoLbZxx9ADR@!mGo$Oq%vh2?#Zu;Bn&TyhJ^@+)tv^<;?laz&80j4!o0r;;5T4LR^ z@b(DPE`Z15=)FQQh7GR+wVb%PeDI;m2Z`{_HO`o(830$oRo;B_m5zEE!LLb7mP_&s zRRR-G^eLZzM8$THy!xM;-q)^!0M(|U+jDwRVzSkQhC>2jeb$gbL+XE9q`_MrXExjz zTm3NseALH|vHPPW51sppI9H^XY0bh%c{0cmM6KJod)2=@l9HV}zD+?D0Ch(c?BYQ= z%R~-!1$deCu_E$ZvhCC9!lnsx&EC-~`=v~E$BP>l@N_uy2%XBshD5LGy>SRr^hBlw zgM7)pl$QO5v@Xq^-$!C&SX~`yI@1U=`1@bk4Im#reuz5&>yZ^}_1j@aV z?39a^;h@YqSjp#SUUVcoHY2sWrdDm$cU;1LLhoMNyvjDe?#1;0vS}+0DRI?x08ELO ztqoRC{g-KES@>`6D#A6o)4uie5Pn{|QXW+_fUq+(3x}4TegA`?v!X9tD7F#5?|k>A zCiNVP4s}Fk)0g<7Y&S z%wZZmAUTOCIrZd;YiFd9OU*F0*3PH|bfkZFhhwj0!5+IW!-{P~NBpQoe{gBR=NO4e z9e(6=v)cmzjjCzOp1%9~N}R?kWx~C}{}|5d1^W|a4s%DQL7Hm>#ZW8ZfvFtW0jZ_) zTRlDXnJxRBJDK_S>6+4Tr>AGVrED<-k%nehwRQe_w`s9vaw*rJ?N`(Y_4BS^?;=t0 zcy~C5yoJz=`ev$g)QTlGu{2nH+m#Dv{VL(WddfwrD_Tr#J)yWaE zK^>ou-P>-xduLt2P+dh4NT!ZsJbE7QyfC=ak}4}ig!f`w0_VWm=#GDiS4YA^mvIc2 zcxyv>r$QVZYR2sfIjHb*P9UYr#ph#;CS0dumMDDIU}a&|anTc1-Rflwb{Xn{>AO|| z6OFD4g>Lu!1bQ-(aT2>en=rt2bxyp?oW*!8b@Zdw)a1nwn_DE}_Lh8gEEObahqbyJ zyJMTMZG{BK0A(;B;Y?cTg9h$yGY{xM$wR%+f;eHEhA9cE!YR9NUX{pJcW4AojIdh$ zC&(24*B~=5Giex7!6Sn$U0caT8O8-L2eFwOV^u9r$*!*&D62wJh(7W*Cpx8YLqWDt zn6ZK`nD2`f5PA3G&CIh5U~zfw%-%HL`F^=rY;O6yt59Xi8D|$j%&BAS&_j`PL$x8^ z$BMa9QbJ;=XpgH_~}l4`btz;FvN-3x_7OS}GA4ycl6c@U4Na zmXYbd_lqqDUZqf25UJ?kbUK>>t!lY~#tX>qt-ooVkxMn0ySkmD9!9UUE)zrcx7XBug`A-)1>U%1*2TjGhm1Zu_{MSTUaAwaZcSQu=;k*qhkSK* zp%b527a`dHP*MQUCnhFP`-9NMm7!W&lry%`vrYF48T6Z}BP(J0MGY7E zqo|G%|9KGiW##6$5y3xB8D+xeea8?+eRa6Hbw-DQRhn33s)Y<2)QC6}z$}|BVY-1~ zDVB@xvvR-=6;@KxvtU2nW+V2><>?$Ej2_o6rdeMxYA-l-6CH zL9_mmDBZb-*Lf?yfpENFovB$M&B+`=!gUU%7SxSCv=zKDB{KVL--wbmJvrQ zj0|R^)BwS@SL01VWQvGI>RvoEw4-34N%At93BxDO5(P;3p^n8oVq~wJxMv8^0$FP8U-7wyNCH@{L7jSCwWqtrZF#S z@-wBkk)FMC<$m4_ut^E>*F1ehn{JXEIK!uVxDC@>Unh(c^pI!T@9UkUQ}HQ$HP|9y z19`innC}ANt{w4JWK}%N0IwAv;J`pN8SxIl!nH4rI?SX8QjDu^*l<4kMzu03tkG3f z8A-AM4CApY2v@yR(dhp&u5X9L=TnvikS3I4)q8BW*$!t}M&VhrQb~aufLYiw$0c2iZ<84Vrwz>Zp!x zEk%PhMS-xKyLH^(PmaG%X5-2zihc}m1PLyFff~<=5OSYwVWGbP8(|Nyxi~vf3)rMF z>(3qNX{q`cVhWh(NTBM$Hm8%wR>TEVjaXlUUXE9Sahb!om}Pu5e$+i88+@<^V3EyS|>4v`STy~*7sgN z;BItWz3cO8^-b9N@!f!sI{ipir?@gJ%uK-`X(0xkXGlRl9|z(*zw8n2^uu^$=uV)A z<$Dm%hRo_J13XKTr4AkfqmQCA5@I&S(N7RL?TjaZb*_bs5FEEG_~_Ln17XKUE;Nr! z-r|XY6eul%4F!})CQ&^__8q4C&I0`=OR>ud^tkVJhtjEQcCSGMb0+mit{Cn?Yhfl7 z9_sva~q zGu=ujGEx!rB`|unxU|`>9ZL5}o6Gr1aJ{9D@X{zm-Sff(F$e*+*4n6^v}pwt zlgJ@Fea6j1+23H?iXX9=uQ|9?O7bHRrwI8x*z%budW=2?<%N>d_URK|fdfu7VYoF0 z)Y@Z=hD{B8s*ho^Iy*K%mgv1^OOZ8SnZSgbij4>+zd#u!p)#CI84$2Fgr;1}^tw5? z4{~{X`)Q3EX7e)Z@LO=x;@>=$z)+#38ARrVY2U4W zyNjqwfewly(i&6bputt$S6!ABs4q;3Cw>gg%GXn_M0zMjr*T=wof3R#&R=^FH~xdr z1V^ghkL!ShDbeI{#%{_BRvA;O`7?B(6n zZ#;1(8=uThZ4Q#?F+SoSJ8X}%$(#mE(Ks`Eb?ck;X!iBmY>zVLoDfhcGN!;hUhy*0 zJcv_4^)){89A5IlD3{NJwpBQb7E&9$Df3~chW0nTHFe7>!ZU^(-7}0^``#ZCx<5v; zt6i4yRnQv#BX+Vnm8D!yQzh8*qv)}3;^^7yUjjUT;haAR6iVb}i3H)KU6{WV(}dS2*m=$|De&iHD%{*nJmrGZv zD_z|7Bd?+p@m(??*sggb@zJqUe8+fxmO-$NT(v*rOXPgQC=Ys&uP91ttqQ}HE`Ywc zVE>N9g{YS|VRYicxw4||OGM^bF|1m=E1w0?Txw3cy=xHfRIt=@{pWP^ZH#hDnF~y- zax?|45spS1Md1|c5Huv)oZ&RSXqY48!)|Vnlc-Awd}sw5bDDl*>o*u+un`z-Y3AW7 z{>G&Q7UpYXP7ux4>^kIxYG=1O!s8m}x6;^NuqgT~=Rcu%CUB)qLwp3Je>Pi2#lXTu zLHoNwGhA*HfI>h|$giD>iq9ZtMJJ&1CX7h_wRI_^wQYfsPf%A+-`3MBeGrXU)+VF8 zVt9U+NysuyLD9QxaVLC8#3v&1-x{14FA;8kzr21n4i4Qph(}9(zpI4o{<6+iMIDPh zr96mBR+uYQORq(rxjVXq>3u$iq2Gu4y*~)Jy_7xXFokt3`(lhx6-O7eiH!i!J2FM4vQ=nc_JWG)_Bm!Ah%;!%b+ zZpH~W_LF`sc@Vr}DBUfMrL7@bKX{8-SGJ#SF+n9lO85nnQS0@!SBDU&fiRzkh0ymC z+SkxZ_AzwS#uAo{HvSd_)3o3QB))jvN0$`X^M=7X9&w;U02QchQx2pzfu%U};~su} zEBbFSF6AD2jl7GzMX3qaKxGKU^FgB6wkFEw^a7sT4v&567}M{t|tuo zB2XioNKY)lK2fIss`9&90`>7zB(8D#t?p@KU1MIsCsTj<< z=jCVq#CRK=luiQ~k)OX_03x9&t%JR3egeVH2Kj`70t$jnDZHCiTvI@%Q=p98`cCu$WSjtJ8g8XZGibdUEFQj}t=u`5zb7@&Gq>*F2c2#BZUnb-l-_Y zw@@Xz0EeGG>7TYKv`+8!n%DDNM zLBwsG{DaRlkNL~I+3<=p`g7Sm%FBl({67eruND3vxXIDB7{{sHY3-c~ajB$)N7ZYu zy!Aw`PyMtEdRHE(L$w?hu@)BM?3Mh~DXM!a6lJCvU${3Z|HP%IOr-|?u60PmscU)j zWNJ>J!JpEl1DPBFk~oiyyi}hB#G)tJ4l{Z%_sLW$Tqa5md=Hy94OhKcC{K{Id>&H* zx4J$Ue(7Ig#0ifp)8rv1OH+vG{~p`GLqaq(VW+BXLjRV8Yt>ql!?iM(*`~<_hE8&% z4aF4)FtL#ezm$Kq3L z%{jJ-^l#BhR_+UX&Y6xcw+q5qKezI?V?Ip>Ci9`4HOBVQjp?#jU?#NavYVU+duXo- z1&BUvAEs=nq@=7Y#(s6eO>K2v{Z`AH@-pPtP-dKd3wik-IxkRG9dq zY|_fkP*l_%jn+3%fW0S=fe??|c>~dPv}CH zOu87zLa%M#*m9TNzGTgVXz)e*@!>SckDDBYZ}6XYQMS<*ZjTC}|2ANz)E zWSZ)A(8&IB?B>@uPQ`fKAsU%au&!awn-X+m* zu$i4-D=Q)W7Ul^uRJSf2?!k{$_4A``&0KVM$T^7~!Z&`oIk&=LYW%Fq#G0$V22OQ{_yjucJxCnH@d~CJysn z*OYtCIwnTiX~pr`QhGjw;rM@B_R!_-%#z!H;xnCnI~ATas$vy>#!aj zx*7cyiZopRoqMjU*qh1miV2z^Z(`6vDFqrg5r* zru%=~g{9CLYqL3PZHPqE2W>ONc_7gsYy+ELV4FvIGvI+QLB89i~>*6+zK5zp1 z9|Y&7g5&CV0KHv&@TGf{54G8F{cS*fC4X!jID?~M1_7}?AUd?R87@;-w45*)ko$&T zqwM&8QOwnK9?ehH3J|Lae?}4q?8u8})6WgzVSTnikKY;!kOFcN6CmQ_fHJbllE7?c zt|XrT%u4g6+stCUdJj{L**d^l==u#rWXX}{0N43f_{*xhA1{E559-=KlhF8)ey=<{ zDPT{TJ``H8Ge+-KT6rrzv~X{jc)I9W5eQ8r1fA?U^A4z_t$vH{{jkJi&0C0&HdVdq z96w}eK#`u!`?iC$IA-1W=SOjm*Z9-q3Y+3MciraFCWUgf6yosd)l*kFVl+%Cbu1Bf zI&J=kMWx75dhPh3OC$B5r=I68SDpQ*k(NU>KUILVPUJI({m!kppqO3dVZtgK*r8Wmxd7>+q{zc6W z8Lr2xM4?VWOV=_AW<=Y{lyTHwP|Jm*rlT(Q{ezKfDusIC&%=Bjb+BK&(Tkc06OXjc zFU)TJYDRbsVQPS2(PBnzHK&02vyAfKNKb~Ao*&x9UtRFTWyFFLTsoI%=Kb-(rmPTxam7k^Z{!H8;bXdK+x{N5E$yUG?2+? z0qV16h_VW+@=F&EuSMPt4?3&ZDPY3maZJ3`HG`e;N$c7ViZ0wfZv>#b)?CnDHucPMW;)S zv^(|a#5)t-t=?up5DHQ6h$6iB< zz_09NCL#H?6#J%F9+eUv*A*;d7HjP8&^63Fae;sxjIIh7+@G>HRd;)l@0Rh!R!a z@BA&$2BU=ahp|qe6x`?~A`GbxAa}>SGwWa~d|p1GX~z8ozSG27V43Hx+-%F&wfSN} zdK}MpHs4yu)yZ*gy$zHaR;+B63dg(h}?Nge}1Wn=!(~={I%4WHLTo2NQ4DuvOMei48sxO`FFha47@#=4Q&O`{eUF-q zSVDV$b{v${DW$~Er8zF6V8_MvD#P9NMT_IhDt}+@|M|h2&EQ>2Sg2ZXs(7TsDv>I_ z6gN|$<@^87%3riQKiaQvD=`RcF}n@t(R$cOB_MIZgaiP@4%=gv`uX9l`42uVevL_@lreHFmIjPVPTfHcRSd&u*|Sne zt@Va=OYVc$MBS|_br@(w0Yi{;Br?e{ApJ;ctoJ-7w1D&dbKkeS;Gt{|$v;B9A!f=Lx22qW;pc0z2fzm28?1 zf&p>k8R>y+xDb5vhxz*8ShEhKiI3CpNF4TI`{fH5+@=OLuV^FSfltmq;B`#gP^RTs zv#kN;AB4cySR5GY+=HF=U7yt&Zmb!74e0e!Hsd7gapH#yv;?sy+Ik4SlR*HH+w~`U z-if5Z^tz~xQ3nF{4y9OWszPcJbOte!4Y;rI&?6uwEr64KXN|`Bz&aE@b5l2i*FP-MJz@}sUzFR7)$!VU14y#)_ zU*yaLY>jUlUdbvD;)5Cx|b^1#BV4h}-4N^(Mh?aQmXGI7@J7i}Hn+rXhp|b;i9FA47!V6vyT| zX;d(!)p;}|{0rK^M1iwFchulEUc2v8Fp?~Er=ZvQ-EHSJC;HrxXr`>FJ)BY0x&79_ z_m0>PS-Xv1ho@@f6~IIVpx!>s%2l@7Qu_uQJATA`00HNs>W7n!5vxEw9csrV-OADk zkGe?W*Gi^v(ny$ARLA2Ic_s#jSZdFE`jt~{BK)sggf2RtKHEeYu2RD{1CW>Nm_+_i zn9bbx2<|dK{)52W{)_kV(?!FJ-|9|J7VzQdN^{#=Y;ta2E43l9g43UCowsi4EKX+X z_8l4QeNh-FUYZ^9B_wDoOFBJlQH*f|*r$Z6u*gPAt47V5&Gp)A+M+HKT~^dKFQc*TjYj{f0ns&6An9a==pWD#`wjjU|V=~_DbK-_Ki zU2dhCVjx4M(2(WuwN96;4bsJ^)=fBFYjaQtd^u7wC93+3 zaPEqvxjH@%YGboS%m7okFp2?t<0{-(K#fqrvnnG9)3`3-a0) zk&<19lbGXcMKbA^@B`CNeY5ejNn4rWIK@@Tek;hhmZ#F$ykhR5Gz5f8+*Q>Ki$3=;xN33`; z-#mEaTHN+dqF1UxB+|k_TTMS>E#jG(GLzA(!d(wMk=m^z%AtIqx>fssb`@{0Ti=vs z!H}%)%@ReHQAG-UmO3~qo(P3nE#@1Y>Fb% z#5^R3DJ^griWfC}*CR28dSUoEW7#U$WNF?8lsMS_HuOnE2IG0!_BL;s@}k+Tp-OG3 zOeo=q*tn6D@J0360E8&YZaGVn9Fm&7x9DeCvT7-(dfQM##jgzhR9)z;_@f{B93*R( z3WWSqSUHSlmMJ+t;FB$p1#=AY=jssA3B|}y=j07pS*r2_;{nhH;sec*CSc93H(RPL zc#v(9jXq-`3MDCCv7R{5pvbV{(?qMM!fBn^4?}bg4(JTougO#z?`q!&u&x z$y0U;V5D+ijw`%|Sc%-S%d+SOe|)K!H=>#{9Tku!I>y42=jwMb<;2e>z|J14kyP<~ zzgZ~hUG463F;m#R_(9_Bk=EA9|JhY9BYsIWrSfNE`S7(F4`7~nTvAjC#42V7S9%nD zc~erklga#gGfv@6plY6!Yq+5fp4G5DcHXfIYQ*LQk$N1Uu>Rma4RKetfdm()f7bm* zS#P{m)FfOj*|LF$6eG{4NI48MJ55?|Ee*8`bJ(f{=44>Bjl!|elOOK>iXNmv6>`qD z7Lz2i+2K7M>kKB)O^ z{Qv#MB)|p_1(%l`Dz38^i%9|bO!{*?WW=V2_c84`e$>a}iuosT(($Kl^#@Ms`Ox0% za|6k;KL`Q5YYl!%zi%xdpv#2k{ZH0?+{95r)Ih1~H~+Mq7jf9N=>pq>uc6 z>r(%H5wb*Gz3$ZlV!PE1rg^r9PU*Q-TK2i(|F!6dMRT(vEcDu+P@`a4z*}g1YLQj& zKNSr)p#cCc7De3BnNAOVpKRrr7oZ|TyfJ2*z?YJgsI#m$YA0H8&*z`4du&SKpcwBT z1Ztlz3h(Pou3P^g+${b#%HAq0j^^DL9oz}-5Zv7fgy8NvI5TJ%+}+(hcyNX=$lwy( z2bT;IBxtZ;2@r^UhyS z;f8%*U^wGV*q{;l4(Ax^t(qA=xj#7EL?(L6cEppYJdZ{k-s#vU`4EPU$qDU(gd8U0 zYmd!1cZyTYiC>?Ki&9H;C&_=S&Pbb|c3~bI-PWz^k=ZRm` z?~aDnRid`a_)mp(hE0wBvHPvBF&%Kle->1mAan2596Q?GO5@>>?H*CfJnmg()}!^Q8^U^ z=MMwvqR1$xQ59fHXYbaEqmagQxRiG9Z`ts{m&I4sF`?Vw=a*cYvZk6zJ9G4PmoQ)X zFvRESYcUb~Ow`4M3#scbtFdZPOFoerJq)6Xc>JNaHsLjDO+UiMZpg~E=Ki*i^9_{- ztz^p$4g;(3BvF2tpc67hHRb-@f7xcm>D|q^$(j2d@42v2>EfjIIph%B)n;_zg+GR> zD1zy@VlKgXQT>!wuc=}qQ;t_!|WSSn}b(#C}_BOFVDL_N#t~`l> z8cl=7UY%`IxgA449!$|fgkDUH&N*6uC?KNkJQ08YQjaArcJCZv)l(jM$>wbt7#$FUmK7mL5#nZu#Q9aHkdh{kN8> zeba;UE)v-0Ys+h5#H&Y?jF6FXhn|^w+P@^YW*)YmJ1C&mT78g117x2GiEX7lYpyK- zbMPg{a(NV7kjiZCJ9jqD%y|d)5s@7!CG|TIazBcFQBf!o20 z1W!Td$1_RqCR8n=#a$;BN{;ZSVcWw3ImQRg39TML%himhC;{YZ>0gXoMz5j?hW=K6xq5# zSflHU^&*|qUPrue`HUMWcY zxI|wAw2oDJie44Av9C%zj!b3`Jc1a;X?9gc8DyS~RivF(CuDeSrs|{cF>u%%ZE?!X z$xG!AwhIZls=|@(sYb7RX#Q(_jpM)mVH@xZt{GkV_u;?_;^GjJFKsoC?4d@5)QEnD zb#W`C?p^RpSh|a<tEK_TxX+=DFLUFM#h16!iBfF_*oQOKh=3#dFRO(^7LnV{wqlRm=~~-?QC*U-TDrQ~ z7OAUMHTni3egQ}_|8h+kb8icBzcNwBly~-745-Uk%IBoE1Y0GB5rG#`gJR3e%lVE- zEpqal_Ux_guL7Y+g;w7V6dSeRUafnBa+C0s0J@CM>M|T=}7`#2}q*bSW;cFqJd) zK?cpw7k5TP_+ul@)TnTo#Bxg-wo~3Vn*waa2-`Ir%q<8KA}e4VSZO6A;g>WaWFJ+# z_$k$GJD4dP$)t=(!9QKd&3HpQV?8LI635`qUW@t2dVtQ^?K zw!3;)KFGgO8xRvpN_I9ApQlFxBc(0e&9!9OMwi#OG(g)3tOSbW-q-1>6wnsr_>cOr z{g$btY{_`4A=IuAB(v1vd#a}FrU$isVBY%}qK?NE%DcK|$t*#^>T)?X4#qhJQ*ip_ zY#eIb`E$k))}t=4A|0^FQJ>6>5Z{#rr%;{JhIZD(K4$wiPb&V<4$rv5K_)LGzun44 znS$%ArciJJgoPkj>2Uq&q*8I0BuB){kRt3<97;s>cdG32wj z09~hT@k5FU^Lkpbtb%f)`FBMZ$rv@5EARHx+Tr<+;wGZ+ZqtS!Pu!@1v=Yl^v~3ql z1l3z_0e3N)3D^)C1Ze$U`bdxJiMhDX+z%VTENzY;Bdm{AXJ$7DW2;weYrz$3eGyzA zwx2f3Zu=r?W^JiHg-0AsMKvrrd#@H%T58(R*CM19XL^j)XO4Qk#TdZh9=)@!wL>$t~xTx3H`VM_D}cnUpaJxWS;*j@5w*DkpB%mvGJWPI5969@qM%g^Kh`qkI51VwBvSLj zSk-V~h1$K>FQ<>lQ~ohd01*U>@(cz-8T3rX3j=Zn#$0MEnZjltQ~}3;NN#fC3T~ql z+_Hl`ok}KYdudozw+XWuFtU}T?{iX@XI)zIZbvR0E0L$sf8QUsKbzMrj6iY|gWB&q zVAmt&w=6(QaZg2NWL&i9a4MtikOw{nG9_} z_gex>D7AW31=+Q-F06rc-Ak*^wJpE`_BRNaIFd&!mz|d7^Hb|cCO_xLo;Kw~GvRMV z8$~*!fez>YHI*!RN)M`n3X6?d+rcd^o7GYoEPOOs?Dj`Dn3%^Gdh&HrjaPD&Kl zZhbp1-uvf7%0M2)y8t`ir){P`KEnvim7CHeg;?sjt=@|zko=nwYmP*<{M7Of)wA}7 z7ApRHgGv_HsOjJaU*uQ8)wMyC{{B0+kU0$z-k^drkFiLeIiY-E$yGu!*GPwZLjcNZ zkplFB;(?&P-o)aEi^$aLUxhE5Z|aW8yZI(N6S2n)^iSUSETPW2K^9-3Wh;xzR+&%8 zb-HaPcPyW{?Yh7%^z=v`_>SM>CbdROh}*UUAXB=X+dc~f@6pe$)xe$z>$*vWpCCbX za7lHllkF{~`|U)MIQ<{5Ee{hKVFt$4EHLR>)*}r8UDymy72{W6mQ27)*bLZ-8PU;ePD>ls>h1GT`yHS8( z%q0u^xnW`A;FGWMQZ14NY$Q|mJ*8^hd+vjX$|o>f-@yu)V8ug}4qq4HiKY~fzOTtw zPIeS_-SrgjxPxhV&G@rZvPjbd*pJ~}io6r^)PGRw8BMipg@nG+Cr)__Ls?tlaA>)L z0;Z8I^ho;>%d4@#@m2Q7{iCv4B6_7Jp!NczVL=M^ID}5`7V=zYL=J1_)L*vr`xbqy zn=?tu6x#Cvdi*)nFkW4c(NpJ27tb2ua)tJ-f9^JV!NW~yn+%Mz`r1Iiy1ZVJRc{Bf zqEAfg)a5J1Ey+5YYxaZ|;#E#n#5FbXQw6>}iGHNG?{A|Y3ejc}T&2+2^^n8r>R$DJ zrV=c6Ic_vRWXu-~Hoo>Tw>kbv#DIRm`BvY(2pK3X zWebHGp@iW)AoqZ|&u#!$7e(WY7dcSoA)By?1dXvuxZXxUmJj6ZuECb3YoYQbRaAsY z`?13&%vQCYcVYEu*8;eNjLDN17J?f6&M7_MDA zpcz{I>#=BVky2PWhQxsyGM{K!NP=-Ci@`vCA7!N>i1l{m=VG6DOd@-weTi+ZxZCmk z{cHCmnpt_r15i0R=3;tkx_Ug@oV*u8g;;aND6tle(QL^Fv+| z0FYJU`KErdZ3eNP0(NdL5j_I&v1LzS4@NXAo`VR&!KF8|w_b5Ip{%#ALm9jRG$ zGURnxrAq3!Q;BSwh}TpP&4CqVMnO5G)Rt+CiD>1o8i;&wPsO6b=6FAtk<6Qz7^6!> zZgC-TSP>2iQ_UYNKTwNyi*ea{1*(JbE2tVq**-TfzLBhLXICa+zzc&=v2wU|8si(Q z8D?*yxxI!)y6$#i7?DsEW5xI&bk=|f`VdYDW2=RmNh+(HRL z5Kyvdq|~O$L8Q)jC4B}&bnG0+Ms92WsAnN4`l@Kl2QmPj@#Q}y=kzUAs=dDN$Qafz zD_BPX{@l;$M}61Tw0h3VSDq!tP_?$VcJnu>T%COg_vAQj(OO+pqB-e@GN;`Om8oY8 zDa!JGB4{}&Nz&ul`8HFus*t&5sX(xsx@t_-eP&-THvJz!M+wbBD?MrQLXJwO^;rhd zO`X#IAsUHsVir-RiaGW|{0T$4^QWa6{X#i@eKCj$`iD+bj`^Qv7BBE&NPfFlhhDuE z@vn(TMu0V?il{wzlz-!hvo*~q`9TFI{F1mQ2hu7EZE>sgU&Uj*7ESOtXGJs&`BMh_ z21c)5{=0fVXdj&G1_MbO4=^j2%o0~qj$OwX7)#ysiA?!mvoec-f!@!Y)egX|UUGjE zd=DQ_k6pd30mybiirA&Z389_ZJhiKFX(EU9(wfOP4>9Ul;q!tsy)DwQVA;$thdiEbFGp#4$~~tHatH}wb4mLukCx}Wroy+~ zXsd5UcW4SnjBZraNEf=k2){8GGU%j9wnc?11o#K!=<`qSXE54qRGc@Y-Wvp>G|+rv zDoh+i-?quBTM2LRantTEH@a-F6_tQjHN2NB9cjmi6qj8wSuNhx=48pU9j7@EA9yQ6 z06K^k)`~`do%@pH-Mm6zRQ?0BfaTXBl7n;S1#SSbv?EIp+E3*7_dosqCjE8FSr)1i zY0V{8F8u_lt(i*D4iii6II0f z#VGuIR9dt5#=O<#S{2%$uObI6cw7aVAll3^qRurxT`uL53(F(?ShUu>KAsAM^qg9P zbEM1bVE@ySlAr{- z&X?rjS)&vpF9V{t3h!9tw?Qs>E3e2xVJZ&NtDgg5M#GhboY)CREeQ(SU!0L_F>>qHdsSSq!#a&*iVhTRQb zk{b<(1xvQGo5dfrO@>%BWQtFKV&z|=4lgcvnVeTZ_RXc){jf$d|)mz%3ck_JPkFxm) zPZ^CufM&{wcz&$dRM%`fhKdDT`ujKE_3_KXzu%|Is@{k#q3YZ;THjlo3j?2^qXtXOYwv6Vdsk; z#W0dz_6W>d4=YOkxnT@qSnrkikKd4r8};@SzDtJ5G!UD;9%^u$Ts_HsqM_Y6*g3w; zWapNLoDSvnr$k=u=nn|Yl5?U8%_hYTnrGyyoRO!4C{<-Cki4Y=G}eOlrQDp_lr_?G zpDRCbhuzrWoujEl$csILhW%~t$lk=^-DZZt7m*yH{6a)Lr8&J)KXS{(R&4gZ{v!WB zKPHFT-%BwAOQqhSCJN8-AikzZ^_=H@$-#{l&1HG@O5nm&J0juz|IJZN=2Ai_Q-iv{ zi6WB+%sQ9rZcM{{x6h_b+X_eR)g^td%$NvmH|Bq<@6hoGxrA9ZCJED>$RjAz#MI>X z1q{oKIT@H--%iV_oVmET6b_hMY!Q@HQ*01hG5uM6?+6cZ!yzts-*Mw-Zk%Sd5zQ&C zr?aPRkznciQ^o+jm>pIVAm+R9GwAQQ@7n*}k>^)BmM}FPaOw~Ez^h(X(cpJ{^&^4$ zEzP?_F^(x0-OSbZOwS*iNBg}Fn<&XZCD8o$D}gB&o6OZgruy*z{G;ZPfHt3k1GaJC zd46u_WkB`5A6LYi8Sek`$piTPSJyA{W&UU&!cyt*56xfw**E_H3LB~kMa5>0lPbAJ z*3L?;=F^^Ss{-Q}iyQ)BWIGSgeSg0%hdf^2qOKznhNzfNSrv?MPpmQ@V*8&8(ZTve z==X(hHe4_Ev`$#ZTugoN3OW5w;OQ3B}8eevmXJ1&vC6~HspC53cLBiA~Xh6 zv_!s)8Qg#y-eTbiC7n;rpn~MM$~>7v5LosR+l$DMi9eB2{F`NRRHb)Cq;%rzXPC^d zL-}pJK2$^`_mu>gThyxN_9%;W`xpA%gnf}pE9dfYW;I+&)o=^ps;v5eBAD1eS*8N9 zn8}b?CLwpnxDfb=q=IQ}C?zA#!zmTsX0jlrQo=V7{My}wutGrUCQ`7y-Uih@vCjF8SWLzXzT1QpxyF4?v#dn1q-69M z!j);(LKrzV)*Sl7>h-?um?NEJn`Qv{&DXd~rmT{v04=c$x)^o`r&C0Rm%2^Wz{-Wap;ueDQn!ZCDjO1 z;+10V=6>&sXLyO0dEy}vw<~Ou>&K{3L7)khf1)LJ8&u8}o4!*lZTLJ^GGpW)K)^qM z`kPSbj@te^qP7pH8xD@W`Dn?jsIK9(6<@<*&I?!DMro5zrdlqvlG)OQ2v-Hj7}C^c z;a~Q#t53>j3G?EMEJ4Hkqg0U>6)(Ii-tF4g&s4uAO~MuM`-D7lk+4N8pTe1uUCjZO z2-o$^2H|Zaxm{va0cUwGoHoo@XKfDZ$Zl>O%Osy2D?oA=Ix}O9wpl9}OWn?%2P74r zTlN$?d>v^?yuKs6v=(`e!)iM176B%xymrl+GYM=JRMDBx3jo0n4~<@Fydr#lz(i`) zC+Z6V^#J`g8Ln7qEIgllfVOuatH*G|4`l79=9-Oh1S-lm#>?#)~|e z1=;vUnyWAll$)U8iSt|fPuTqQ^-CkiG&bspcNtP<=O-T_kDOp5ax=L-QVcl~TLRj9 z{VpvFh@3$ECeNX-zel-EHB5vPP1;AU?`yO~48e%!qtu+pa$_MRHlxZ!GgaNQi)Tou zf+CdAV4bQKt3e;+8vi-GWyPO75q>KPAp4y3UF& znyO9{we>Yg7V5`BioLmW^v8~#)XSYDjYoNtK%h)#W!qVA{7}x+Q%4E{Pacv2+sqPC zl5Q}1TQt9Lv^zyAaD42GgC{_WeH@fM?uvZIb30$p2eCSTaC&dEP-T4 zZ=YsR4S56EwOFD*h8LKwFSNF*7Yt77a2*`}HG8o_ewpN@d>BKNePpb5lw+zVP&8&l zt0i=D!+dcqUv@0>*{%O-pqCwAR>JSVEm~Kw zy0q}FY>2;M3f`GaQ~IPh3v<}If_uFX&24f7eng+%MJhA}*a*D%cx6cRso z5(g81#>~Ib&YdVMP&!}V-quct^E}7eY9i|N)$`_rxf9&uQD10=)voluQEQGEVW9W? z#_}-p?6;vOC~vz=d*;>`S?yQ4MUD9bZ5gXKk=sT=`dbaQnXd9|16^aDJ$S}`F-ALn zbdQ8rf$mjD|3Z=ji*rCnu>wuas5$jl5aT$VopLEJZ0;n!%~X3h8RZ63T8m@7ttMZQ zu|G;omdMp%Y+z-(?2NOS;n=6#AOLr=ZJ+V9^&tpPt);czgRT~?Kbw|1-&$R%Jhk8j zg$hc)3=rXG=3JA8hCPmhnX-w0*NJ4p7;fyBE+iVko>~Xh2W3((sn$RC1oQytpdsUS zD5Y>=q0w4i@If1ay=K;1+=cfWZEhlTYX`w&Ga^y8%TnH0oi%>y0KyMrSb!}|`n&WoR)UbRRzbxG+`JX% zxR*S{g*tcQJ3Q1foPUESSvWm_43^FCh4)ScM{^LzE}Fbgtbpfj7AiDP+B7?kq?Zf8 zLkEI$)Rq;vx3nkN9J8y^*H+n@>X^79j_PQd2nFQ;V)BNVPJT32o!Uqcc~72{8|%aD zzu@rMU^GfBF*j*lv>g7c3N56I^ho2JE`L5M(R2nnEB(!&m%^aBft<}kfuJu9TpQWa zMzvKl*;-ko>Q$YkvxumDU={4g8Xae#-8zd_nAOX+kbYY%^a{xzSe3J2YEt%AzqwT>sjbC(+_d)5F$WDkCOzA_`fUn*mMueKDSX!Aa zP>4irmLDSu3D21!2}-;b;eLv`tqDA|nol*3`>~i@h?H_`mmA|bT6LtqhuL4@2Ep4? zje?_KWR<>gSprFpaaOtYnMx{8V+j0L%1&>5kbla^(@Nnu#|V4y`I$@MnEP<42p!DS zi{)bmAEGxCfpC?lO?(cZ3}S`{i?KUwFC$Pa_5IefX5yx}j&W4sVbb?|FRd)KFWXvK z>pP#M*JoE8@VyhlF0i~{_P6cfpdjkxr)FTGrVe)QSBdQ7uM#gm`gV#{IdD%od1JpG zvxfUP5nseOL1H^vV@7IQ zrUl2rC}GK)m83OlW{qES0*|c&UBZd4Z>h-KPDX``h)2>sD)k8b;SbCqXvuJHGS%O$ zC?|IqQ*ZUT!tS(K4X!pMN%&a7zPi{O>xipnqSd=CSIs-=Nmc{&z^r2Xnl>%Iq{qdw zIT4q5+yAOe^6x1>_~OHhSJ)aKU1A9+B}#_$lcqxZlv%_pAI(3J%If=oG_cWW=_eY4 z%(QSkMA7Q$u-TTT45Ps|x4#P+^P1)+b%ZdX{{1 z1{hDZNT5zs+RyUya|@4%I3w5k{sEL%KsqLK_ZXHolJIuNR#aKf6LJwI<2tdCZZ=Wx z@W;csX8G$r>C(A?R2?CJqqu3-WoFu#Jc6O_fjm;~H$`L4E{_4bAg2kZ)fBE*{Q46E^qE;jrk z(DX0R+=h6Sr|2-eWNj*5u8_-EA8znFuh(W4+qWQ>A|*QV#2OVRgWhO`zYDn0eBh18!C!-rX*Av*AFqqzQ#lgj zch>lPN@TfaQIF$__&uVE%v+6O8)?&(JtWAM)z9+5O1@r>rj(dfsZrF*TK#zp%ksTcv1%VQ7UJ5Qv~yP??2c-y1hk455JZ#+mEc zL>g~*@~Dq&HHo2JxbbY8V|^T@Gxy7Q^&me<%#Bp+btZrJg=*bdj^at&^{doA>_%) z)Ed}VxKUBu*(32UfS>*5{>Q5Vw9=+rLaW~RzVH^i3;w{lCR%ujk@&M}6p_xlNo4Op zA>b|wVC7udPciaBL~fhNht`cG_D2Hn0GMAmn-)GbHiwv8%R>+NL@bM4dUxCO#zf+_ zI%nQ3?M1{;M>A8n_I9=CWqWlJ@EqX^Ke0%JX|jKk4^1spfP8=-tnEED`xJ@tL;H5N zKXs0_&d%4Ucs|a3^LzM2J4~0K2mHK~VwOPqpPzwY5=5>p1T7>TnN}&XPE0=cJk1u-Qe2Z)~{uMlQNK&xRiS$ zUyHI%f@Opws>3_=Mfg2XEG*R^x(tsw0j-HF)SB(EJ(XXdIN2<;YpS8!tMQ@QM1_L; z8IUQLxqzy}LYoQamOD>kFna&2-lY^|B;YxR&CB zGRL*c$TZ$HsN#-(a%u<5CaB_iGGR!+tqULkG==dXsYjqavbxp56Mxf28NAY~DKi#= zQ^kH5gk%_qplnsbr7^Yb4fsk7^J2Uuf~*IZ{#Lx&j)gi7cAB`1^M_+W*HL^7I#$hA*S&v=Ly(z9^V z&EntvY$x25>c|QZZqzx}s_?O~z%6{oLSYTa0z+iFovFHGX)(P6I&{$u5g|ksJ%CH{ z?z`}Je{C#XzttuSJP+jBNp`(8TUhqRCOF=l-#?{T+6+`l;gKK?yl==0O_lS6k62>x zc0cPWTpIF_Q=$j#v@EI?8wjr(5i<*)P01U&Nq5wbGA$V(L19RakNQ}8@|aJ4#rW0m zFI?VG8bY`yqy{IWmsf!WZLe&NJT~y9Sb;^WM|Vm94ZQ~T4P`}Uy+u@awA{JeOpta4 zd0Jw_PEmdwO|%qP_HI=Wruk)kYd!N+^~I~-rih@|zA7C50LFd((2UGcBrK>{52}TV z>|GOmqelG&fCc-br90Np5XFh^?- zvEIC!T$Ok>5jr9A>kyj-8Yc$F2%Rf?{XTxSamdws4U0;PdiEgT)zbC#^WeZD-A^xm z+kvx>L7B^)`u%V!u3NzLG~(!P%1}-_E&W}s)Od2|mA)uiv`4`yq$t;Q>2?-}_Pw08 z+O0A*-VUG#PICn_s9kr73sLv#{r!T*g#P%em9t~#zV?rsN*_RPvYRAse-u{pt^bqa zw6Js_13X2C+cdf%olfI65Z$DN!=n`wK$`3chivVJuGR>R?w-rA>33vPqK1Ho_!baV}Toa z2Z2(Hqxj$rc@ol?()wmpAhJPlb^-sK;-67N3-8V+JjO>Rz z*z6uBZK{L+0f>XbVWz%*dsfS)K`e-8P`6>z%N{KomcKJu28XI^NM%4h zez5U$06Uxs{KZJW56)Wjx?4Ng@1xS)&(+8C!7Apb$@AZb{{W0ifsJ(Ai^;jQ$g&MNcG0zuo`lShzk(BKk+;Ntr*61n39a48q|4ZrRn=aph9dZ^?2wwTW5NpufB4$;&on} zi>d#wGFZ6ec}HK!T>mLdytAW#9GwqzEMNcKRi(27ziC(@zW{Dt3d|@C?svvhvQPK*3NiTc(z|+;&C4(Ge}-cGy!yhk z;_-g!2lM|5^jD8UiG5)$-G?aKVK0*h)fj8ga(RB%f^yV z0}_SR{IhCiB7N)C(++tA5<7G>bwvt`pZeBmPSq_zaG|jn&Q+S%@r-uE`V~nEs0fT$i}Gn|3bJ zu7gJm0zpNa?I{85AH9Kw7+E=R=rbAvUwXLSgjn+%x^>j^-h}%f~F$^ zXJU7ZVxV`pmt)-LAFb58Z1!I))4R;h^%#+8)5rZ@ebrON&n|!JZ}d{HT-?BU=>hM$ zmh;`WWt|*UUmst(?s16#+^OKCBCntnXqY%z<}?SNH#Ak{-Haewmb$K6`)>f^Ul( zLrZ;3_%px3bnX?oRA|!!tzco0N3()JiQkiI^LIzev$z0Snuk;CEEgJPQ{3Oi;l@_q zQMo=fQgk*Ehne4X9sKP%T`QZ)#*qyFEGm0#;hnGV!jPH&y9MiIj?}uZ+%^3 zhwk28B4sfluYgq)=C^E81`;qw7n}ELIx+7ZfHi0-BhN;9-L%e**+s^*XM0o7 zx=jQlMkhtogoB3gYd>WKtUqfWozj}&NPQRc&3<iu_;r2s_t=I3Ki$y2X{<`j6o&5^KM}Cz{Vw|J3*;U#dSNr!) z_HAKx4B9SzpTWGosoRqG4tEKyK+VRz!t#68p~%E&(&=zCu~mCLJ{ZSb742@0Tro7k zri)aQ5KZBdy%?%X9jAlZlG)zEIZCs78M$2_?-?R_zA%BA*DRT zK~ZRY&!lDaWY$;32F0AcYln8{FPlkhyR;U9+zJG??CSBmgS=WME-=$-hHJz}=QAhk zyh1+}w(SX7f3+ZP{3W;O+00HO7DDW#R6gQ-y+TQ`8^DN^oGim=m*Tg-@TeRoBr#67 z_ulE1TM+f?LnY;(t+e6eqC9!bkZ4~12QYIEQRX)eRy%suI_aMVb&92dSR&9~b z(?>0vi=^YqWw+wT%xk4w5o}FC%IpTV92g3*9$VGKJ6yv>&B!=gH|rcMTx7#IbLjky z2F=>|E90V;>I)vVb8R|#yvWv!7!j%=p64{E;Vu#iNXB4MWdBsn!v_>MF`DH58C1XR zZG}lbkP3*@EIGq1sfKvs3?A%>;e`UIZ4Vfu!O9gzK9Q%MTMJu z&%G3j)BV+e`~Ja%{LLkdJ7QbjK+q#E_zw#*z}KJ3JJs)H&(!7(fo>(Rg~L!$e)S&V z!9sZTg5@crUZ+KvNBiAFqgkhvYO(1?$mb$_`R{z)hK`OJZfG6unqpv-`5teRvPbpu zN{4Q-N5-eMb7k9CI=UY;k^ub=xM|vR^D&0{jGf=G!a&BiEr`Aju|?uwu_Z~hqjyTP z9dX0yN8RL?f{*TBRHOmLrs{hKaN;cmsuc^|L=}_w z?5PE&wLFvgB!dxb6`tl&H*YOElzy`#^CI(Au5c-~sLGlri?7`u=dJgQ*~#u0L^y`; zI<_a?b3**Pk{2EN=g;s}_T^UJlRon{aH&OQ^DDFReD5qvN2+@gmSb`Ip-#BOs;9hQIdWpXHtKv#5_w`k9p`!Tr z-~!D4tKji7m5wBM{e2&{35Q2I4*1m;zQ%q!BL|tU(JgtBaBYeexwuhBYqWqBCCAnu z&hN$6cT3;<+%|Ou*HQVb2smAP)ESFYc6zZbrx?CXI#^ z!!hfO{b}MUdiGQpr*P|6uaK*cyR){02L~3pTU{taCYFD;R7uUUfMzAxX1!fIf5P^+ zb&Tu1C91{9dEG;?`*F?37-f@7CNpbfh4;=jGH5fhlf8aWULsRX4`hy$=rNcdmuZkSTT8JIhWUweAiC5Yf*JMF(X z;0x0}|4jpb#?nj={R3Ea8J{1G@)!MYcDSq}&3}S+roymUCMOW$D3+9)jxqP&{P84N zMdJT~Jg)TqKiKV)E!JDz*bGvcg4j*cj#ch!fS#}Xk|J$_BF#KA36w*X`ADE#j0flD z=bEWceENkV|GWMrF&#JtZvjI2riz**-?NQ2Fix5B@OI!hi6LBKCO z3%a%7b8zqz3GShR`x@DL{D@uY$Rsa2mk1M}A$1c?=NmSJ%MW)eO4j;Wt@tYCK~z(4 zfd)hGVmxHd*ZE{ah;3Ol6^)df62pj|hdwEfL@@j)PJlHdgeaMCZ>%WK3_Lu{DS%CA zqH6uB3inj_=ak^i=|%yp1{I4%?Dtub-x#=pWQ>w<0h{1BA*Z_okH}T^UHtHjjNOY? z$?`Z#k<86$gD=;1I58yf5$0FqFGfVbn@AA~pLx3scCrEat?#svmA&%i#0R_Bh%7gC zdp&nC^7M_p7H?)Z5}9v28X}y=-Ip+kc5F0T?hHQLq3sg}@srWzk}k!v2&*Fp&3e3H zcLu*?>0mL3&^KPxfqY2knI%te6RrI;uaB^`-ire522$ydR3Pd6QDM2!egl=A5qL_% z_HZ{T{D~f{OWsdBCL>xk7U`CfB9gPDs5z4YsdP_kz!-IBJfaZW&lT|a! zOcuC&kC8u%0;=x^sW1@<5tBObxrqd#0o4T8A2s1>dMfxd_Ky19@7Yg0e|WTXVYv1;J7ezT+(0IsP!zFlGjUTTgYS9j%sm7d+9B>M)g z?_)`#+8CBy%>E#|-Fj?%I!EUgav-M`Gg+Pmbc~}ht*JtM+<4sldCQ;{sz4IcQaiR^ zj>E#i0Zo|$B%!Q76YHEWR3;wtkZ?Cy2B*Nwn~MzwX-i`N>QUaEixTN+W+ja{3%nl6 znmD#l)&&{3xn`_CThqIFHw81#wgYhi1|C9??U0QzYjka|cDbci8*`;%JL3d$;HHMi znvz>>E0Fj)Az_G~LP$6Mxq`zcL{~iWI;xu-wGDjj7LQxUJXSmGD#>Xc^VgK*yW`x~ zuQN4`wP&N&yzZ--gx-W^gb*y+M3~6fv$;->xf59DRy%>oilVz-Fe)EwGZ#aBmO>dm zi_(-v6&0VggWpO8qdVptnK(Cy6f#UY(yQE93*asg97D9ut?L)Ac`d#@{DR3%Ra!>E zDkS6Z5IIC!4>h0yB`V`{^$?k=q#A%`T!rE*{+K;7=+9o^o3U1rL+azm&;tS~g@+Z|Byr1C5kBgZ+Ca7D}4wU1dH}jf2>{ z*tN!~>3wHYd8&}S?C3oygsiMN?DtO0eJP;ciFVijp&-)P7g+M=%AGwW?E_Nu4XY-^8(2ek zbi$inLGQhX&-^R9MpFIAmej}RUOb)yeubLg?`;)MD|MsZ)U=Z?G45Xn0?VTng=PYg z!`p6+pwTy~?bX@4ahpAMRxbrdWjQ=(nphjq-tn8-_IJQAorP|Ay%k!Ic=E@Hkoz6c zRMn}w_BM}L6-9jKu_Q%zCSmhWQ5XByCk5^58kAXLn-yp+kg9^AEHdns zp6tJ6;m0r`!O^%-A$11<)~tcw%SI%i9W4H4)>?nw2xkxxL4-CQ1o~|MiYstQ1NxHVInS>iH@wp)(Y;3 zLY%2HL*05rXvgsMzq=npP9q0OQhOvDc@-2UrX9XueEe%x-2_u6Sp3=JA88~OI}I<{ zPv^=_%d~E((xT0xym6y!)|Qq>U?Lr zKpfP)y3H(hrfMe{e&tB=SWA5~xQ?A!>#P5#vbO+=tLfTB2X}YZ;E>=>aG2meXkc)6 z2^QSl-Q5QmG`M>p!QI`11d_aW^1c84PyOfCtvYAd)a;(_>7Ko(yVvg3Ypv(O-y5jI zj+aEqo`TV0!Tp`zSnpDN=0h=vkWMBI9c~{{+s&6Xd8Kb!Yo{fW9440~ zFwh0?P&m{0@T5futxIz$t(BQkuKv2MIoR$hPd7#yU0C|8(@x!K!7DvkK$}vdO#rqjldlGE7gsXzB%JJT1JDQ;0v3J}i<xzmZPM$*71HFFXPfwK5`r@W|KXD~X`WfULC9n2hOR z?egS^qx-ZQakXT$#d<&VwW>9X){IMAzt~T*tNGfmDtsl12m}Sg@3de92+ceVfow4T zCZP~y1Qq>QC-^c)m2B$O$b{T6!~CXkH*X{uu;-TPPXshhp9%UG4KO1Ti27JdQ(_i3 zW(mT{fF=DsPO8Jg&q`C=a7^n^)6?GM`|K1W+mqu<>R*#3b}0vH-72!_kPl+a2~@a<->KRm${!wQg-~E+rp-nz5u&FOCaMD2(})A0n7#0`xz_~F<@2etr_xX`^2Pukg?(-U;$tt5r(B8tDsd( zmP17^*onLOzBB1!UTzI1gK9U^s0WAJf~Fc8$t)F|#QMKmNJk^+YJl5ts9 z-LAfjm!g>MO5OZ{74=gvd?f)f{gQGqKyb^Gabc4u*G91io`J(HbP!SnM-n)6lpN`G zxfr!<1&WK5zcLv9ylZujQ+V?E>0lP@$diJmDf*;A;t_9-**=pp80~?sUIl=eC0Edg zFGFh)Rr2c$zoaVpKzle#I;KFwKnogAaDpOrR8yV2(X@;ga8l@biGj+4=x|V*v_ig!DX^X;*fuADw8kOkaSi#*;6r~{O}iMsGqNn;{p6$W0` z&l(IH+-8V}mU?pnv(mdU3|V(!(&b-6CJaRLw}Fp8K!v#EyFsjm9j9Csl;AV%{C^Vv z=1IuLB^!lf^wc=0@xSs5Fz5Wv$t9QxoKcBB>a(gCzW>;w1^(2yS`86fzWBaUVE<_6 zFDU_q;Q$J@)odk+ySI|Epz3*&cz>3&r&=id5(~p6Dudw?k-%_?fPe1ZLX6)m$o)q0 zi48z^aBCb(C;b)0<^X))`JFTJBTwsv2~@XLngZ!zejV?HfgPzmB?rW0IwDpVpgGzn z(n5(#7Q?bLzcH}g^G8R#x3xRve^dbdTz}Njg=B@LzI;Wk$_^kQul0?m2tAO!lel;6 zcV(&!7I#ts?;I^I;8i^rLCv{kpDhf=W-Iq=pdMk4=bBLLRfWAQek(+0$4oWB6C=S!;%xY%rcsXfFNmfcGtf+<4xOwR;L`3wu!~9xJy~=z<0qpy&>T4 znyP%$;U3L1epa!1O87_4x-Tu$noQ~0 z<|QRnfA=XZ0^itEf>q8UNLxJl&UVt6bjVFFbwsL7tN%{EGti2v$#W=DEcbZ z|MOAQzJPgROOc3CY{qOyS4h|>P2+^%<~VY|B>DV@!gk>MZxYG|?>f3!Iv#W4 zfmfQRf1tQPDQHCA*vJ2M*9y&)CB7NC@?jYrZHD|9ER3;6CaD^KuzwTrn~kw|ysS;a+s7H6Wkrd2CUe1XE9-UUct4?eP;kz_i+Yl{ zj*b1raV^javXIGE7Opb9wAO!Ouy$8!Nxl_PAmu2eTiis@BvJMr+sB{il)6tg;A#Ii z?~^ zU%Ke6rs|`=eX7TmS1NclSR!22t`9=)Kip{F)o<<4Cp^PaOV|5ElrjEue&yT?D&Cxr z+DR#Azv{ci^s!{quYfqdM>bR?n=07QJH}0&8`}NLQ3mR4SqmK;t#|D@s#86?Pbi>o z_|R5H#q+e)oykB$wbQ^D}e+0`&yXguWgf|a7V)~Yv* z--?q_UiA{`1ew<83_y7jw_E3yyH?kK-#C8!Q+<1P4kx6CVfiGn_t)nN-58qdbACvHk_H3~4&nNln_hvrp?n_@JM;#&zN!lwl&Pvu#u}}`28+K!{ zu)q*Hdy9Ol)sq}>JgXhcpKfY>8x24PLB!uFmWmabhqX-=82zNu0C45-kIYKW732rd zJ{wPHC^ZyhxX95e2j%-+ErkN<*x|-fA z=e>)euAb=dbEZTd2s3pA_(l2#ZbNGTLZ?|EEc&eR&hkZN`RA-!jcV~;onUp<)Yv9{ zY>d@%a6KATi0Im;;=I`}59@OD8V(pG#ed|{KY*%jSl@ieBwzIl_if#?RgOE6B$?zA z`mRr`k<^gmU0rl04p`Hq3hmo4{AzDS%%=$LC#ut|X5Xv)(80FU*VYYT>+PNLgqCmg zu9@EPA>P5lRSEo35N`8u=Ni)ggvKipuhmXQW4%!5iLT<*CwjZsc#pY`esuCG_~7C z`lIROzcvePwZ?rUy<>Z~(fwxHSykY9Bx$to1>BeNJd)^yFQ&}WkU}h=37_O-UwV6! z&7HiPY#m+l=5WKouNJ=3+yaF@WVjpYYtD&k>If#sD63^KUeY_jchWr2==l5yC5u3I z68=Ca9+3&HcUX~4#VjID) zGu0bFW=F@Oj|jeQuS_T`O-y?watdrd?FBf-EwBLgA=j#+WTNmD2v(Zk`b`xl9dxx! z%h@XJ12hY-c)nHS8~+9Vh-0xKPDX`i+}b0>g!o>en8k{qI}sR;$f3w9@C4gX_l?02 z%bWW`9V|?z4@O4FMn$h^)%O9T%F{s1NxAre|9u_tuj~+>dH`y+l8)2$PlOLw77`qY zeSeAxl3D-(xea}O?}rknjQY*j;w1PRsL|XTjzxG&X33l;oML@S{gJ33^f<}IvPw|V zRKDIR#i*BeznhFg%**K)zrdA}yvB-Gpk-m0R%f9#B_Z-@l-@#^>L{*-Tdvw=jw^6t zsFXhZcIMv>`mHvRQ}54LLFWw zdSAaafO{S5ozXosr39+8OSsykJ+#suUc}YXms1hGkn_kJ9nlKZUQ#WJ6^B|~Lh!l1Rtwl~tGs;w`JMmb49hIa=0T6xPM3bwY0bG#EG`9_p?Yo18cZ{}JJkv)aglFw`jfk8P(OE6W-`js5hQkjxGyyPhIOX5xcbv1`+S2eTJzQll2r$GP?do*ew*EW6eN zR97Y=r^l9b@?euwRBO@>Y-(K{-I3nelOeZM^&eFV2~$j5Rvu=beK5#(WBviWt)E2m z^0GIAZ?BVe6C5!!Ze#PPv^hqe!ZVCO+1E1KmdfR{L2lPF`;0zZ7lz=-zuy;CG0T%E z&~$Fah)hC4TxX=%kC(Fhqb|AW@{WX`}k>G zOvzXdk14?2(DPY)TG4EWzqp?6aUrHBm?}vTYcg45iwxPkq70Wvuftz>_Xg0zJO#X4 z@NX^T{O<(kmtfcbJr7oRK$}AEoR*90kLB?hhWOp^f5A#)3XtIW{2+g|5gBwYmxI<% zAbHfkeD?`sB4v4){~NtUL!_xo5t=sGp(R~9X4qoBwnW1`|B%JNVTOFB7HjeA{6&uP zElL*T!->r*gL_izT3FBBvJB?4Y#uW2HLs6FLtGYLmOJ5*vVM{Ob;G8tVfbD|HJr{prf4{Oi%<2qdCG!-Y}J~l*X zn>tzAwm`(fO(V{!H_aHr{er-5F~cABgWa993*V;v_y1JpXVWesxfpqL@NEOnq0XJ< z0YPhg!tann@eaQj`42zJpR-IxZ$?)1r6YEN;w|_$YRr&J%_*1)Rt@}J%P*v>i;0Th zQxrTIE{qgW2%80P1)sQm6pyuKg(LhPB}sZrkAZ8eU<ze^FxsPO&E3RUi((yF}8He5>SRP()wy56d#Aj7DgeRsQ zu9I70kQz(HhrBw2gmq=!Z;}C{ zCM)Z0+fyAjy)YB4Y$FA$n_tF5(6FN=;%KhGbiXsLHohF&wSs1yctn@E850-%Nd&Sb zfZJGK#ca(;8b-_N-ya)6d_`aEQ~pty>O<2*=%G^PMlSV8W1-!u9on1pc6wGTi2)E0 z2JHq@Bi&2Y<#0(zBttszs#F z$GN7K7sw47DPR(0_utnYh%)`HB(_NtyxJR=4!V+u@81~`mcjO87xNev=I;> z!byY1tr5TDe;&$JS$*%m{MJ6AS9_ha+G)#ZX|lXsPtmWQJ{ez|n>1fJhZVxKvxI<4 zt?L=D?C8x}iUbQoVVs{`YIO+X?hP62dXGoO5yd+?kOk9%kF(Fqaw-Zd$3o zh>u(nl|>+Q=86mfGIZxk^1zjz$5}jh>B9nbc%qz)h}|AI-Ry>OnJ6d zK?gLlfVMim3gCCX4}_cFuh?&3+adj=C*X{a2YY5I4li>2S2|Jm_7!xWuu%vwRU7l) zHL}q8fxBdI80UZFsv28jCk<<3kZe}hsee+HAT!tVgLJq|mlO}pUd9I1;X_CO{3}Sb z-K4%R5Txtyp;ni^bl2tTr`U_1{)qQPwQGq0& z=Cx2l$>H@8#^s>O#Lw;5W3+WdoGI%?v~aUWZ)BS`LYV84V`!(?kUF$yF>HQwC)bjt zl*xd9*Iw#7S~|kv2{- zI?;R|(j!4hT0ZKi`$ikjx=EfT?KgGuKLF7IVQz4a8+^V|1|!>&IKIE}655s$9R?RT z`!y7OxPk#MB6!JGqovVyiVgXClD+H(57nhECE8m3L^tA#K0BBNUhGaN~uv*q9A;{wg`38_@ zSs1uo6)Whs%69u2ycI2riD@DBR}FTS>hoYiUC@ZL?SFK(M#?FqRM8vXE| zdEhAPQHpwFu7IZMhf_tS!F`uzMm&zryv#O9E#He@naUkPCfadLx*00twUWCB{pQJw z*7?Q-!t3psavO3I#6ZLHEzh+*Wi$@IU_DJZD7Z+!T!@f@467V(gIjYA3I^j3Bz~f1 za%mVpsX-6zEtg_UHAAN}B@4;u2?v8+e6`@%5M7k&Opn-&nL{%-%S{jyB=yr~sS|i_ zfRLHgn;h%8TOZwZ%jC}(4y*NR_kNAtXVhSWj{n7Uq)SaG>Vb0&ntfp1zZvvWHEBkea?xd4QC6|nk#6F!VG6eGk^f8%1q6>npS z8#W?y-$f<+l}S+!(?{xkjva&uef$Rym&HlhnQ6y(4+jSFCnRo^mJpMC3AK6~DJXMU zt;vVG2WM?s3Id^zNTYjjNeCc~CLCT=4le`E=o2v_6q$gG=w~Me32*08H$}yAdyZ!R z0dSr>Ud8sV^Edk&Wh^g$j`WuRgr$o@0fp)!Ife}QaJNKwOzI!tz65KmP>t>+m^bhQ z53mQmesbM(wogHtgY%UpqG52w>W`7u*`|Mn%1UnyZ&3JNF5^u(3~9It1@}#nFs^8u zH~l2PD47}3(hyjluNv2MK&6E>#gNJ6xc9j4`1m>;P^LcP1wYWPYjgY*23W?bjH3NY zK^i@oTtZLh#7+tzSPGA+Hs3+X=#0`FQ|F`ZiaJVKu!}YMMkv`LL zjq+W=NS5=$6M6Wy?K%?XDiWgOA48wRaP1deF+-bb6B&)d?oQ|jjKq^0uEEQ~G3J|C z*GTS1pV>XD)R}B&oWEqia~&q1zM2z^hN()Q1qJqxZXYz0U0q%66PYm>MzY(~@Gdd( zVT4ya)o=-S=WB-ZEhCYhTEE@vPv-DY-Hr4~x8;_5vsh_!3(;xQL`M|Zx`w|9e9|_A zAx=hl(K(>?1(nkQX(?D)@h$iq^#dxe6BPjHg9KrJdRytRNoClP!Y4m-?l)K& z8^lRXND-DKC|s}P@ei6qGF4Q6fOG*-!0k8=Qv)g@hd=x-{d8-Zge@sHy@`kjYK}ZX33aM>3gq##VCfYq#VcyH z(HEw;1dC)0-k>5R@qPkXw4z~SoU)*e#^zvQS0@XMYRHD|;UXw337~C~FJ1mabXLP% zS$icmUT`7R#++&J5e`ZIk5jLQkXYxXEGHQLL;tn|7%X(Z2O9JV!&gR(0>M8=d zWHf|NQoRM1U%KRX;JS4Q&pJ8#zU1_}3@&Z^Vt!NBsSuxp>mb?J=$LX?Mp3%zVb$u7 zrTII{3gpyex#9EEBlaprqY=Gh(l_E)qxmi>V{)mhDPde1(HGm{AO1M09K%LT1v5)i zXHO&!lPxaQE+_^}N)dwHUhyWnlkrSN`3iYwT7_GeB1(V{$oz?){o*&}=thkKnaa}e zi5j{W8yYP^5%Wa)S6I#1ZQ8(m1Tsy92<#_4tRgBfxVg@FdJL#~eHyIkO z4Y^bs9ktn~*0+D0Nd9`ODJSan>(c-FqxS5iATn5v8&eRkxZ+L1ohRRj8m@z9wGmer zyyUWsW^atPorl)u0fYpR0)`KN2Cl;zKpxg=G7pe~ER}oo{wj-MO#PDM1zTA6W>&Bb zxgw8Nxb3?W3lg!%m8C;O2)4vB{^pL=$j|v5b@u%BWTjZXoQnKmY^EgX5B*hO<~1dDj1lnx+<2 zpoP!eK?&pqon+f%O-k2-Nmz!)p$8ML3kNpJ@l^+RmW?7!L$C!l7gkGKejuzyiT~gx z6w4X!GsAycZZP)}LKK>7tT0>9;PT)0 zVQc^@pkLt4<}pIeu2{$wU_O#~r7Ret;9yZehc=CN1{lKQRdNGN5SQWGj8SGCuYi?R zQ;>Y-2pNsaJuFT$sgs+(WY2%k$DqIvm!UV?Kh4tE1yZncZgZEs0)4?kE_Dss7upd# z7_OM?D6Pr9PN2uSgU%+Vg9S+NBLbY)b~}a4`8f3F6wZUQx&*@?R+m%!-f4_#w`n;! zE_zaI5=(6VFu!Wv$MGMwR1CRDm_Lm+gOfhKupP-G8H>N+UvQBk@o<1As?>MoD5v%` z>Pg*%MJ2|iDd1-#2ygHf8=R`fjf@a3`P_VqW<=j(0nfrue8WT0jY#e8Q+R6f|Blgi7zMmM z9smvzfQW#IjEszmi~s-t-~jLle<|R(aS1e#2&G(U>3KBGl6fW7P2GZt-tlQcnvogY zgF=c+=J};%z%CvsMYsQ9e20gFdk@%O>uXZ`Lvuvq#T`%y;Mv`>jPGBvsv~A6ywKx9 zqv4ap992QT{I~*(e#5!P>AH{3Cv#B6a{b1ALnR&C@~&>yVB6i^$U2^T%kkKJM*ujUfShWGOEB+2*Mx5v8gj>U`oIS(rx2KE?R-BB_LFZ9tmN` zwt{5hog+X3&RbO&2aPf1y*z4yUMr2~F!LN=5ZW8Rpr<^w4H?D+82Gc2VN(wZ zKuIM;YTqiVN1~KaqchPz(cNH~ze|w2{o}BQYH+8?k?L4PEG-Ixo(aR%w5I%$c%pe8 zCJpSL!Moja$dKd2-w#t56YxdcVpC(&eaZGNwYckZMI&tM1(#Q-EWw~O0@@LB zAqH_ayXqa5AivT}A4#2dV_bWNV=rU)R>hfw5*BY6_KdDXOQeGgriC9|$(=__h5Gw! zaIwAHhp~5%9h4n$jR58WY8R{pgA^vURo9V4$cv^ng&f@i zj6}Vfk5D|scjtX6UrydJ4)OvSIV6vfCC|FcV!o$vpK^{sI5B>n9PX(bQhg%FiXZ+7 z$a)+f6|Y#^LA_&();HFZv-FnEzHFa%8G&VI=OO27K{)%=L)3y6Wq1>GlXe3UIW!m+ zyP*ojAexu-o0n-`Waw=lw|TCC4+Zi+fC(U@Q8A_2))LtGW!aZ=hYBr#q&3AZ$zFcI z%Y_*kz;C%$^cWT9U+;D}k+%F{-7*2G1Af6FXx_#FZ$q16Dji~(NqIudhaq`x)h zy#%L-3k5?vz$OGj!bQVpT^dfuw~j`2uO&Pvxh^oTFgF$0zp|hvUo!F=+k=9*zR&Vd&EcVofJ92| zRHQS&I^_3Yw+IWV>_~5uYoorQ1z8(oHS4sOv7*Sbddb78Wzn?~N*b8~a!KPk_wHeG zXAY7vh6}MT#-;>XDPV$N4d=_kdxLAaFT%7U!{C>N$*XVyWf>&?JGig-B%(yGtAUmx z$}(#*1$Sanj5i`*Rk5d$YUl*{bGzWj0Q{6#t8xP*d`{{z{JAwZG8SI@1h=@aTtt3^ z7HJ*t86`vK--{*i;La~~m zm;XBX5NKqE_FeKzOf%o`fHf_48fOdWSJXM6t{4sDki)=m&b&l;&MqXhN=VU+0VmX+E8I$XttiqXryTl{hF*ewU;Tg%}S~H~x>J3e#fy(E8D?n^Dtu z&(nDu{q5lIq9{n$O7}DuO&yBwAa47XvCY8mCH=ZmHs~+Y!ep4uR@U!u$rm_&eHga% zuzVp;$=YG(wR?C@?B?)WxtMlEsZvV;qP}%~zu^L}2+(Km27h*iJ+Sc$DdT9x6KtPj zeqbV|C^tZnsj?IiSH`Sb&iF-%3RRUoZ%~K2q4xG;QRdsFa%o4xFbWRk1mIhCV3`zh zOlS)P0^Sxq_*1=(XzqtPz3?_H<-M>CM)o9Q=aQbkU|S4qlzcPqcO3XOyt&c6{?;5g z(nw7Hfj7y9yT77q46S0K=rOh6n9AtGwMtm4gmPzFPo|Hj57AZ^lzVq?46r8v=k8!f z5G9Iaeu+H}*w218%3t%@ImZ69U8Ee`ae-*G@66eBjjPLm!$hq`8TxTgXqWzIkHLB5 zvtoj?xK(CVhroG~N6tUYiI!hSpkB)h zU=l0nTq4V@TPg;Jw*_be5hOXS4zlg!iS(gDA8A!$w9dkKt0TaULyFg7g@MN?6vrO| zqa)oK!X(@+CWc(w$9*!w&ZA+$rvIXG5P1aHEO|V;!;b#dNr{G7@nJy4Ms$IKH6Wx| zU`;ff#YF(QfOQ`8Lgc~d2Bl6yQIYbi)OG~J>3c@_E){ds_eTV+t{50UtZ!N6Mqq5o zt(EehMU~@6EGN&FzD4FUAzL~9SuQmUNMC``?zZ1_N-@y`$Tlq)a*R~9+H(EV7Qi%U z@g25u$xgJZMS|t)?^{QH$9|6956{euGVf)7k>**Cn1j!>=98tLwl{=9-OKCeQI$r- zC_pcr`{|lMzcdC188Kl_V@3IE9Yxba=(f~f$4)`64ND24tunlK`}OUrV_t>)kh|5a zw!wb2_!Ji=fIuQzp3FE_kMu3^*SG{gTpO+{fU-MmY8HvEd6=(@BqCOHIfb;i!?vk3 zL%2~BmDrJ5AJfZJ+TXNYj`B?dVgYFc<-itdkxGdoZ8%fwPSYi4;zt78N6?O7NlZOF zW;32mI}YOb+Och8@z39xl!@`X7q0dZ!*3USuD1)5K9=2X_r0er&j6ZyWQfi4SEIgL zN})y-$S!Ox7~s9*;Xd1r@xs>i)23MZHr_>njbPd>_v?$Wm*$x$oE?zdcor*{KT#bE z-lp1+B>@aX3@LS@ZAFOuM7c5EjsFzst(9d=0V0UyY01Y{himDN*I_M?8K05PM7qoM_Gccn^73+?H%b<2J-wyV3SYc7t?;g<=-h_6yw$@`G!pa&Ng>*l5B0R^ zS4ly;7Dt1i#FSSsUjj0EYym;lgm$S=6+Olj$yEj1IA`li1C#;1@-z?hbYJZ%Uq*xC zufDPf9XcO31W9XJR`mG7tLJTdIwyB7G>e6#hyc4vf ztx;=&geoKq_gjG05A!cE(}#ImRqyK?%%qM+3vE`<8XtICJ6lOufB*LjwxVxn=?|%@ zVT&mVahC~35=C=D6vOi6D7R!!+EYm)pto1qER-Dl1}QW19za%vn?(AhPBbvzx{9E^ z0$r?L@e{#?7qa#dVls;oFowm)(ZF=a4|o80ICum^L}VNk1O%kNx+6Ru00E{uBH?mt z5b*rf9o02q^jCyL#P9g{C8f1Y-Gh@M47_e0#m)1K;1U^^ppc}2g@5%&gunXZ)^Dww zp~>STi?2+!FO|EI>2uRN+USAR&*FlKtl{uc$WfskzovNZ>!xN~-ilZusSV+ETY4g&oVfav0RYyAp6M zk*t8CzKe5U!H^@r3EaQ~WC=s)C*aRH&SJL)LHytKEawBb%l&f0?hTjfi^JO^1!g)U z@^MO!>FJ}MK}m9^n=Vh6#+F=op_0NDF>9}&OVNzHRpL8VN-OJ6oAa=6y1SBuk`Ku$ z?yOM_Nk99RGLFpgy2)OPe`#w3AyxzC+s=w(lCT(xT3l6%^rIq~gD9(3zl58qnlmbt z)R(4BgLn=x>qHe0ovHi}8q}nmB9PoS4JS z`rHcRu}%&*?uc9tOtqh4tllJrR$QBZeABqa4|e`R96#L&g%_SE6S5jz^XQ!D7aR5n6$u^ zotvycvZ}k9G4c4`u5y!*Xi?e|-1_|k@Y=38DQeL`mWQ?wx#!lqaOvavS*Z8epKC1< zLGz73k-FzDyi>=tzuw)b9zzp|LorCwB^f&l2$!k)F^6M1m#cVr*LfAKj*jGfFc}f} zCgT9~vWxQt>ntM4N*1q%B{qoJS4I5tOM1aOc8BXVn%l9-R!m!JiFvH!{n&oWFW;U2 z9&P#uK-%&Y`?8oP+3YSVAUC+i4ccfo7%6Y7Th=M+q(#D24jzpK*(W+(kq9sfe_ZuC z&3(s-H(HO$;-7JoxF_3|6i!l2jECY0{Zo0I6P+3^8%a`?#)=^Eq+W0Q$Y~lL18Web{hV8eDe7g3?R1yR zj{L4aMmbp!kw=w$ijdxim>RMHZm9wFZz}VL%GniSw!0GXLw<;X^dWV!P*ind)oXJr z0d=wbQ;5wM%>(ywaD20IbX zVDAq!ths;vi(+VG8)Or-Q&~D=nXL=zYSUFbBua)qBxT=cx0)tBVmwi`P1PkLKap7M zjbte#J!E|A)K%~@VxZl2^3K~WmT8^N>ws5a^-Wd+!X`Yttz!^7{^rS z+i&E(Uw(fGx*#``t4lBxyZzyR+!9Zk7*37$jPZ*=UCe3gtld-P+}RZYARA3Dc~vL3 zu4i&MMQb31=a2%Fh-r7JMw|xNUN>lESn-ujKjFQ?E9`e2!oZsp`E*9hs8*PomWg<$ zAnJ&uV8uFB3OvgnGn0ztSp=gIzY^zOa>oC7Kk(rNlf!n1w#EV#_Y~q@V&ul*u!$LX zsywkWEK)>mlVgwtK?Bj5DVByeyC0$M-oKTi8SAXS4kZ2qU>h}$M*IklP-stWq!QkZ|PMZ_{{D68W|e>3?pUkcK+sB8>|rqxhBx{0Q}drHotXg{>@ALue{HzTwi-EFD;vc!|;oysqZ_uiSp(-0+Wl>W=Cj#d52C7 zoB;P-W=zKR-h#!e!8`C~4Vn(SHrAxMo&D!3T%2FD$&6d%^E$7+W$}-Y*h|qgvBalr z$#R&2G2xKqFseX7`>K5Hc*pDr-B_WJul29(eByaXm^AGpWe{slXn+B&)S=AE48%!9 z-;v$M!EZ&m40Gr1hIU>{Qx5wD#k2bpRE&i!0Y1KNCn=TCp|PS1=ShoI3&mC4C)Jpe z3X3Cwd6IRhZf3TWC%T08dQEU9j_UX_im2J)bFtr8gNapLJJ5zedXk}97NOvmO1B;^ zMm@Ye;KN=%VG1lGdwtZFf>y(G~OiRlQEM2;uBC{jL`3{}R4GG#_>T32_y zSpWs|dqm)Z6|gUtyN0^m)<8?~5b61nNGW~6@C8tRRhysUbx}b?d0G!-bzQGQ%*33qs?w8{tzL_v1qp0|fE3AvV-{cj;P@|-neVhRy z#ndA1^V&<9%A4QVur)oER*n%EkGDZ}T=LB=ku&zoP9vz=`5vK7-nUHkT_`40=F`?~ z9%>Sxm^|vLB#sQz3$0#{+k7978mJ0|SFj|DiV0-s4qRw*-nlB;$7i?L$}f0K)HjN% zY(7SCTdQlKTZot)_4|mJPhIVjQQC5wG0UpEV%gC@y;!8X*yIxqnCI3{r0mje%aH@_ z!V!EUPL|I&k7}1%c z=_{hQP-*Qkg~)kid8?>ntdIdaLZ9C9y2FNGbpCIicuHKm!{G3a=U6YY^c)bnN_k`l zppCRI7r7oKWNsJ+Dr4szNYu!-oUxBXM7Z(Bk`-$#a5x6?v6hsQHLJ>ru!%JzPG{`F>G1wP~kf zv&p{eK<5YeXzd<}%>a*YQng?>y@HK~P2pFhL{|+2xq&+W-*2Bau`p&4wqFV&SKo!VwnsMb?rRB;%7c9gxwUv5c%ebD^mq7-w%rPuEn8_>N+i828>Gd*8-);uSFx7l ztUk^B;%sLgC8rroIA0!tAn2Bu?AtTu81di#crRkFM<7oGmK#8k_N0I$)>Q750N63Idzwh4pNa~ zQgbxDgnL!Ih!JCg$OtIx3F*W;#jm8(pMd!m68L>N^5N%%#Y&3Yir{G7`D)WBx@>Z*B+mYa zS6RE%B6v=*c#+0y{Sq(F*FqCFJXCQZ>9{+G7E8q_uBV_*EAVQ2zuUoIU*aY(BH3M} zkq3!Z+o)6umo?c4*ECd5*0|&ShW)?2lQ3XBv@KW5+N2vZb`swLhqKFb$0CdMXB zq$r262Uc>zfY}5Z;!X#%CQr;&#EDFC0!dm~^Wop4+*HV1>3(jJ4vNDPQzby$;& zu4}Tiw|PUWCW1QV6h*$X2%o>!^26lK2BP{K8y3uIACePh}g253KF|NnQkHgzR-&dt(eHHrN?og~0*CdHF0RPFhT(P~!{~ z$0qT5iGJW@Th>#uOaC>^FCAzH+^iI@hKftN?8#T8Y_s7f7#SdW;0#TR!o~b6U!dhb GtN#yYDlY8+ literal 0 HcmV?d00001 diff --git a/docs/directus/index.md b/docs/directus/index.md new file mode 100644 index 0000000..0e28839 --- /dev/null +++ b/docs/directus/index.md @@ -0,0 +1,29 @@ +--- +layout: doc +--- + +# Directus + +Outil de gestion de contenus (CMS). + +## Présentation + +Directus est un outil permettant de gérer des informations stockées dans une base de données. Ici, il va nous permettre d'administrer les contenus d'un site web. + +## Interface + +### Connexion + +L'interface d'administration est accessible via l'URL qui vous a été communiquée. + +![](./assets/directus-login.jpg) + +### Contenus (collections) + +Les contenus sont organisés en "collections". Généralement, une collection représente une page ou un ensemble de pages identiques. + +Exemple de collection de pages identiques. Ici, les champs de contenus sont configurés à l'avance. +![](./assets/collections-asso.jpg) + +Exemple de collection d'une page unique. Chaque nouvel élément créé dans cette collection deviendra une page sur le site. +![](./assets/collections-accueil.jpg) diff --git a/package.json b/package.json index df9a2bf..727b924 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "serve": "vitepress serve docs" }, "devDependencies": { - "vitepress": "1.0.0-alpha.16", - "vue": "^3.2.39" + "vitepress": "1.0.0-alpha.19", + "vue": "^3.2.40" } } diff --git a/yarn.lock b/yarn.lock index cbebeb3..00b3c95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -286,160 +286,160 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-vue@npm:^3.1.0": - version: 3.1.0 - resolution: "@vitejs/plugin-vue@npm:3.1.0" +"@vitejs/plugin-vue@npm:^3.1.2": + version: 3.1.2 + resolution: "@vitejs/plugin-vue@npm:3.1.2" peerDependencies: vite: ^3.0.0 vue: ^3.2.25 - checksum: 351436306090dee709314f71bb52f0b502c284c8f556d4aecbbdfea840b1d35a8af32e78e962df28d3a6034a75c78886448e3371cee320f711dab833f6ada274 + checksum: 1da84ccfc8f31b612ad51dfbbbc39816900346168c1b66a0870ddeddc622d227ac9a1d571a94d9bc63c75e50320fb8b2f7c986a115e0b87140100b0ac35b9fd6 languageName: node linkType: hard -"@vue/compiler-core@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-core@npm:3.2.39" +"@vue/compiler-core@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-core@npm:3.2.40" dependencies: "@babel/parser": ^7.16.4 - "@vue/shared": 3.2.39 + "@vue/shared": 3.2.40 estree-walker: ^2.0.2 source-map: ^0.6.1 - checksum: dd70ed60b14faba2f46a2a99ddf20819db7dff124dd49ec15ba76ea3c6d8311feca4256d4dac8e8316c6670434cbb7c0c6a2cb5f6e97b321ba42ff454102c3be + checksum: 2683bf13ef93701af1ca4850e887c8d4d67e5583b9c426fc2b08b5512df090bc464955f031cca9f52c11cc6ad49f1ab682011fdf3ba0b6c63b5ae8bea4e68c69 languageName: node linkType: hard -"@vue/compiler-dom@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-dom@npm:3.2.39" +"@vue/compiler-dom@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-dom@npm:3.2.40" dependencies: - "@vue/compiler-core": 3.2.39 - "@vue/shared": 3.2.39 - checksum: 505a8f8515f8551795e3a01859d451645e0bd77be2d70d5c48f6edd02ebc255d911230c66ccfc478fd0218ab8a7b69bd99e2c12b406db4889285058f52d13363 + "@vue/compiler-core": 3.2.40 + "@vue/shared": 3.2.40 + checksum: d928a16ebdda9d91a579546d108c9399f8c9a5c9c976196cfefa32f10c0ecb3111233c3291ba05898def85fcfccdc71e3446b977a7cdbc0d47d5d47b0dac75a3 languageName: node linkType: hard -"@vue/compiler-sfc@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-sfc@npm:3.2.39" +"@vue/compiler-sfc@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-sfc@npm:3.2.40" dependencies: "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.39 - "@vue/compiler-dom": 3.2.39 - "@vue/compiler-ssr": 3.2.39 - "@vue/reactivity-transform": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/compiler-core": 3.2.40 + "@vue/compiler-dom": 3.2.40 + "@vue/compiler-ssr": 3.2.40 + "@vue/reactivity-transform": 3.2.40 + "@vue/shared": 3.2.40 estree-walker: ^2.0.2 magic-string: ^0.25.7 postcss: ^8.1.10 source-map: ^0.6.1 - checksum: b82755eec28c03800e38b99603a90b85af03d670558c845f9916650fea5cac8c2eb1511d66aa71e602ca9af8d2795e9f6a16fc867efce8c8694a6ea106f0ac95 + checksum: 96cbfd078ad9c5718afced84a1a46dfed87f61bb30ff50ebb929331470d11e672d6a090ad5766ff1e60a5287b7596be31f925af44b6b1bdf69b6f14e938ae7e2 languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-ssr@npm:3.2.39" +"@vue/compiler-ssr@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-ssr@npm:3.2.40" dependencies: - "@vue/compiler-dom": 3.2.39 - "@vue/shared": 3.2.39 - checksum: 27323a548df3696d38a8b029b55e136fc94195f1a9e12a25161a8d524cc779dbcc5f69db525a8d86f6ed28326f9f8595db5ba94ccaa7c8f127f752be36bffe5f + "@vue/compiler-dom": 3.2.40 + "@vue/shared": 3.2.40 + checksum: 026461fcee54cf9968b1e12c32dada6dcde0a322919aa5a2c2e6e13cff7b6b2bdbc06860796895a8deef03ed1f8000e4320878576c498a1f218a62aa3e1c0bf6 languageName: node linkType: hard -"@vue/devtools-api@npm:^6.2.1": - version: 6.2.1 - resolution: "@vue/devtools-api@npm:6.2.1" - checksum: 34765af0be9b0cc7e3def73b2792b1514e3c348852c5a7503fe07d013f0e907af6c27c0a32c0637dd748caf37c075af8e53ca3220433e0bd34b6f3405f358272 +"@vue/devtools-api@npm:^6.4.2": + version: 6.4.3 + resolution: "@vue/devtools-api@npm:6.4.3" + checksum: 48893be576630267cdb88709bc5006c36b5839d66cec3da1dbe783cfdad82d52c8947c00d848c1d1c41dd66d3fcba3512bfffdeaef87d440e3d58c1c577116e2 languageName: node linkType: hard -"@vue/reactivity-transform@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/reactivity-transform@npm:3.2.39" +"@vue/reactivity-transform@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/reactivity-transform@npm:3.2.40" dependencies: "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/compiler-core": 3.2.40 + "@vue/shared": 3.2.40 estree-walker: ^2.0.2 magic-string: ^0.25.7 - checksum: b609d9367d875bf326ca8f31779407723cad2b2b4a26e7fb8860089c720e1b0bb8d5fe19604e8baff1d9ffc1fdbafb21a43db9063a24ae4ad30cb70b1c712de3 + checksum: b86fc29b52f2460801a3c820370104b734b33cc3a66dbe0ad389a00a62b7a1069121b1ef5dfa50ca3530cbfa98c158743eee0e25af54ca45806f9497757db8c0 languageName: node linkType: hard -"@vue/reactivity@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/reactivity@npm:3.2.39" +"@vue/reactivity@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/reactivity@npm:3.2.40" dependencies: - "@vue/shared": 3.2.39 - checksum: c4d440a53b2196e46129271affdb22182586a8123bc44d082468cd089242023890bccd6eaa1acc72919ea2c1febad979504be737720632afefee6ec6b75370a9 + "@vue/shared": 3.2.40 + checksum: 927d22b424b63a14234810a3b8e4e9127b7238a7cb2fbd749180279048a109348a29fc724fd9d636a6e09b5f4c902f71c789f081d3ab9b4473faedc6a03d7865 languageName: node linkType: hard -"@vue/runtime-core@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/runtime-core@npm:3.2.39" +"@vue/runtime-core@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/runtime-core@npm:3.2.40" dependencies: - "@vue/reactivity": 3.2.39 - "@vue/shared": 3.2.39 - checksum: 13f6b92d70fb3bc8b12caef9eaf9cc1fb3aa1f1bd07e2392013f02d65c74b09d4121e62d149d7f7c316ef2c6b3496c9ec828795286480f08e5f45e910b0f2671 + "@vue/reactivity": 3.2.40 + "@vue/shared": 3.2.40 + checksum: 47c4918c1294a3dc9b50effac8fb0af4ae34476a9bf443774f66cd18230e44b6b6d1cb49657ea5670f04691fc116a1040356492393dd43523b43fd90be81078a languageName: node linkType: hard -"@vue/runtime-dom@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/runtime-dom@npm:3.2.39" +"@vue/runtime-dom@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/runtime-dom@npm:3.2.40" dependencies: - "@vue/runtime-core": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/runtime-core": 3.2.40 + "@vue/shared": 3.2.40 csstype: ^2.6.8 - checksum: 0c47f941148a000ac0cb93add51edb08eca5ae16fa7898dd070300f22e4ba77533c85342f0ceca0cab8637b80b1f92cfab10adb2160e4c6dd4be4a5b27ae1ff3 + checksum: 4615d00cc4e2e19dc3e6e2baf5fa0cbab7d33fbbd7550b42264b6ef2e2ef5b750ef0d0c98591c10fea60d69fc33444ba4824954bce38abfa3473785a58d74c80 languageName: node linkType: hard -"@vue/server-renderer@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/server-renderer@npm:3.2.39" +"@vue/server-renderer@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/server-renderer@npm:3.2.40" dependencies: - "@vue/compiler-ssr": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/compiler-ssr": 3.2.40 + "@vue/shared": 3.2.40 peerDependencies: - vue: 3.2.39 - checksum: ae6ccd08b85ad8c18cae461404ad8c4b3b602c779fe07ab3a69e0a9a4cef274ea8dcd662fa365f3717f67d4ba02a9eac88dd2ebf5194072ae43dd5db99c2cb2c + vue: 3.2.40 + checksum: f9d53aefcace97b9e6d20de2d9bc106112bd0ff0ef849a104996fc1256e994b64e33e91853ba7bc716d4f75a2ade81b57f3fb1482eba07324eb7cedbd0dab96d languageName: node linkType: hard -"@vue/shared@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/shared@npm:3.2.39" - checksum: 0bf9f5b4851b634cfae92c08d64173c2db674bd817424473d28fc58af7c17c54a255f9b3e837d3857e1e62f9092ab1d74b4714237e45c94fcd46f92155ef653f +"@vue/shared@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/shared@npm:3.2.40" + checksum: d91a1e12ffb106a444dcb42c0a54d39f6688f98151dc3b77e8da1e7d3cfd09e1761268d11e7f920f233b43162e727d06f3af4408ef59c53ac2dce9c1d2881511 languageName: node linkType: hard -"@vueuse/core@npm:^9.1.1": - version: 9.2.0 - resolution: "@vueuse/core@npm:9.2.0" +"@vueuse/core@npm:^9.3.0": + version: 9.3.0 + resolution: "@vueuse/core@npm:9.3.0" dependencies: "@types/web-bluetooth": ^0.0.15 - "@vueuse/metadata": 9.2.0 - "@vueuse/shared": 9.2.0 + "@vueuse/metadata": 9.3.0 + "@vueuse/shared": 9.3.0 vue-demi: "*" - checksum: 2ae6ef58ae932fe260911239888405e39e7cf7f9afdd512cc184248d97b66e1ec15a6a54b75835db040e68c35eafefe265071ff1a42b45d220217b8f9974a403 + checksum: 875f9ee7b9a2b88167b32e58ba8677e61369077459643e396c6037e2fd2421a0dd9f7c3bf5de7cff8c68ea6bd10d9b0653bd210f6b15544e3e85c991d9b26870 languageName: node linkType: hard -"@vueuse/metadata@npm:9.2.0": - version: 9.2.0 - resolution: "@vueuse/metadata@npm:9.2.0" - checksum: 99c63f3ba1bf8b4aac9ec226d918906842589a93f3affafb17aaa9c64da433c8747f6fd829ac6a2f313c1d8c6003742ccbedba45d2dcce38da7ea5ff657e63c9 +"@vueuse/metadata@npm:9.3.0": + version: 9.3.0 + resolution: "@vueuse/metadata@npm:9.3.0" + checksum: 94e066f8f51a5a558426656f6240eb3e4c20e46c7f3e28579974a3f48b0c1bd806943f21ef5a43ca668d84ee5cb6bd7cd606fbdb036c4388936e99b9d509ce26 languageName: node linkType: hard -"@vueuse/shared@npm:9.2.0": - version: 9.2.0 - resolution: "@vueuse/shared@npm:9.2.0" +"@vueuse/shared@npm:9.3.0": + version: 9.3.0 + resolution: "@vueuse/shared@npm:9.3.0" dependencies: vue-demi: "*" - checksum: b4d84dbb29e42fce062d8f33a011107d3187f40f1fa8cc83a28bc67c2280f4e33864309b5e70ecd078c5cb3c14106accd696b78c81c3ea6ed896ab5357ebc055 + checksum: c20fcfbbad3a17fa26191823f4022b7dd6f7a6e5ede648466562f3b9f4268fb417cd825ed002e2d74ef8f81971a3ca1691f35b4497676173b62c077b2a17d032 languageName: node linkType: hard @@ -533,7 +533,7 @@ __metadata: languageName: node linkType: hard -"body-scroll-lock@npm:^4.0.0-beta.0": +"body-scroll-lock@npm:4.0.0-beta.0": version: 4.0.0-beta.0 resolution: "body-scroll-lock@npm:4.0.0-beta.0" checksum: 61d40007fddf64ecc69e9e02ed9d96bb895f88d7da65cea7651081110225de48efa44ffc4acd376ed004788e242a9af12059fec728c096774b49365524ea6f46 @@ -1364,13 +1364,6 @@ __metadata: languageName: node linkType: hard -"nprogress@npm:^0.2.0": - version: 0.2.0 - resolution: "nprogress@npm:0.2.0" - checksum: 66b7bec5d563ecf2d1c3d2815e6d5eb74ed815eee8563e0afa63d3f185ab1b9cf2ddd97e1ded263b9995c5019d26d600320e849e50f3747984daa033744619dc - languageName: node - linkType: hard - "once@npm:^1.3.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -1715,9 +1708,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^3.1.0": - version: 3.1.3 - resolution: "vite@npm:3.1.3" +"vite@npm:^3.1.4": + version: 3.1.4 + resolution: "vite@npm:3.1.4" dependencies: esbuild: ^0.15.6 fsevents: ~2.3.2 @@ -1743,7 +1736,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: af13c9820c292792f02d0a25fd46d8557e627b93f95bc05b5f7f1261e9565e9e69fda2df0c0898f248edb811ebcac5400a85a81625ef29749f50b18273439d91 + checksum: f3e532952b896ca7f746de0e51fc8c98ac482b2a5f0b89538ec89ac615f6edbfe45628fe4fbabab4c5fe07f6e4c2e624360af00d8c5c454af31771952b8c6e72 languageName: node linkType: hard @@ -1751,28 +1744,27 @@ __metadata: version: 0.0.0-use.local resolution: "vitepress-starter@workspace:." dependencies: - vitepress: 1.0.0-alpha.16 - vue: ^3.2.39 + vitepress: 1.0.0-alpha.19 + vue: ^3.2.40 languageName: unknown linkType: soft -"vitepress@npm:1.0.0-alpha.16": - version: 1.0.0-alpha.16 - resolution: "vitepress@npm:1.0.0-alpha.16" +"vitepress@npm:1.0.0-alpha.19": + version: 1.0.0-alpha.19 + resolution: "vitepress@npm:1.0.0-alpha.19" dependencies: "@docsearch/css": ^3.2.1 "@docsearch/js": ^3.2.1 - "@vitejs/plugin-vue": ^3.1.0 - "@vue/devtools-api": ^6.2.1 - "@vueuse/core": ^9.1.1 - body-scroll-lock: ^4.0.0-beta.0 - nprogress: ^0.2.0 + "@vitejs/plugin-vue": ^3.1.2 + "@vue/devtools-api": ^6.4.2 + "@vueuse/core": ^9.3.0 + body-scroll-lock: 4.0.0-beta.0 shiki: ^0.11.1 - vite: ^3.1.0 - vue: ^3.2.38 + vite: ^3.1.4 + vue: ^3.2.40 bin: vitepress: bin/vitepress.js - checksum: 232f743b883cba81f076fd122de163a6a6438b235053f978f12e2ce3ed7e3a6c7221c0d3dd36550f99bd404e655d1cf740ff8b78e247d03398d1e205e9b282c0 + checksum: 94dc0a92cb050c283d2a25e7733f20277c74c9bcde3d3c4501ac24a07ed71a7bb22ab4f8613f9f5e9455c18c09a3fa933d5311cdeff9f2e5121504d69c22b195 languageName: node linkType: hard @@ -1806,16 +1798,16 @@ __metadata: languageName: node linkType: hard -"vue@npm:^3.2.38, vue@npm:^3.2.39": - version: 3.2.39 - resolution: "vue@npm:3.2.39" +"vue@npm:^3.2.40": + version: 3.2.40 + resolution: "vue@npm:3.2.40" dependencies: - "@vue/compiler-dom": 3.2.39 - "@vue/compiler-sfc": 3.2.39 - "@vue/runtime-dom": 3.2.39 - "@vue/server-renderer": 3.2.39 - "@vue/shared": 3.2.39 - checksum: f096a3f0a5f72c65d26246ff7989729eda2b996dc30c63fd8cd7ccda07e9c318d478e3e24661ff01e49bcf5fed6f330142fcf29d6ad46c13423f36b3ae1a54cc + "@vue/compiler-dom": 3.2.40 + "@vue/compiler-sfc": 3.2.40 + "@vue/runtime-dom": 3.2.40 + "@vue/server-renderer": 3.2.40 + "@vue/shared": 3.2.40 + checksum: fb5ca87c16e58f24c0088add152ca1ef70ac6d198ec3a60e7904201c31aadefb2c28e361934c42a704742835cdd9c02ab5765f0c29e8335eb13261d7b764b0ee languageName: node linkType: hard From f339dc7c8ea46bbe3528c54a6f75aee947a498bb Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 3 Oct 2022 21:52:19 +0200 Subject: [PATCH 02/11] added fragments + conf --- docs/.vitepress/config.js | 82 ++++++--- docs/dev/fragments/css/01-centrer.md | 59 ++++++ docs/dev/fragments/html/01-titres.md | 30 +++ docs/dev/fragments/html/02-paragraphe.md | 18 ++ docs/dev/fragments/html/04-image.md | 35 ++++ docs/dev/fragments/html/index.md | 7 + package.json | 4 +- yarn.lock | 224 +++++++++++------------ 8 files changed, 317 insertions(+), 142 deletions(-) create mode 100644 docs/dev/fragments/css/01-centrer.md create mode 100644 docs/dev/fragments/html/01-titres.md create mode 100644 docs/dev/fragments/html/02-paragraphe.md create mode 100644 docs/dev/fragments/html/04-image.md create mode 100644 docs/dev/fragments/html/index.md diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index f26e7d4..0febac4 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -10,7 +10,7 @@ export default { { text: "Dev", link: "/dev/", - activeMatch: "/dev/" + activeMatch: "/dev/", // items: [ // { text: "Sommaire", link: "/dev/" }, // { text: "B1", link: "/dev/B1/" }, @@ -19,7 +19,7 @@ export default { // ] }, { text: "Design", link: "/design/", activeMatch: "/design/" }, - { text: "À propos", link: "/a-propos", activeMatch: "/a-propos" } + { text: "À propos", link: "/a-propos", activeMatch: "/a-propos" }, ], sidebar: { // This sidebar gets displayed when user is @@ -31,8 +31,42 @@ export default { { text: "Sommaire", link: "/dev/" }, // /dev/index.md { text: "Documentations", link: "/dev/docs" }, { text: "Outils", link: "/dev/outils" }, - { text: "Les pros", link: "/dev/goat" } - ] + { text: "Les pros", link: "/dev/goat" }, + ], + }, + { + text: "Fragments", + collapsible: true, + collapsed: true, + items: [ + { + text: "HTML", + link: "/dev/fragments/html/", + items: [ + { + text: "Titres", + link: "/dev/fragments/html/01-titres", + }, + { + text: "Paragraphe", + link: "/dev/fragments/html/02-paragraphe", + }, + { + text: "Image", + link: "/dev/fragments/html/04-image", + }, + ], + }, + { + text: "CSS", + items: [ + { + text: "Centrer", + link: "/dev/fragments/css/01-centrer", + }, + ], + }, + ], }, { text: "B1", @@ -40,8 +74,8 @@ export default { collapsed: true, items: [ { text: "Introduction B1", link: "/dev/B1/" }, - { text: "HTML B1", link: "/dev/B1/html" } - ] + { text: "HTML B1", link: "/dev/B1/html" }, + ], }, { text: "B2", @@ -49,8 +83,8 @@ export default { collapsed: true, items: [ { text: "Introduction B2", link: "/dev/B2/" }, - { text: "HTML B2", link: "/dev/B2/html" } - ] + { text: "HTML B2", link: "/dev/B2/html" }, + ], }, { text: "B3", @@ -58,8 +92,8 @@ export default { collapsed: true, items: [ { text: "Introduction B3", link: "/dev/B3/" }, - { text: "HTML B3", link: "/dev/B3/html" } - ] + { text: "HTML B3", link: "/dev/B3/html" }, + ], }, { text: "Code Camp", @@ -67,19 +101,19 @@ export default { collapsed: true, items: [ { text: "Théorie", link: "/dev/code-camp/" }, - { text: "Sujets", link: "/dev/code-camp/sujets" } - ] - } + { text: "Sujets", link: "/dev/code-camp/sujets" }, + ], + }, ], "/design/": [ { text: "Design", items: [ { text: "Index", link: "/design/" }, - { text: "Introduction", link: "/design/introduction" } - ] - } - ] + { text: "Introduction", link: "/design/introduction" }, + ], + }, + ], }, outlineTitle: "Sur cette page", @@ -87,24 +121,24 @@ export default { footer: { message: "Ces contenus sont publiés sous licence Creative Commons", - copyright: "CC BY-SA 4.0" + copyright: "CC BY-SA 4.0", }, docFooter: { prev: "Précédent", - next: "Suivant" - } + next: "Suivant", + }, }, editLink: { pattern: "https://gitlab.com/3_w/docs/-/edit/main/docs/:path", - text: "Proposer des changements sur Gitlab" + text: "Proposer des changements sur Gitlab", }, markdown: { theme: "one-dark-pro", externalLinks: { - target: "_self" - } - } + target: "_self", + }, + }, }; diff --git a/docs/dev/fragments/css/01-centrer.md b/docs/dev/fragments/css/01-centrer.md new file mode 100644 index 0000000..d9c1202 --- /dev/null +++ b/docs/dev/fragments/css/01-centrer.md @@ -0,0 +1,59 @@ +# Centrer des éléments + +Il existe plusieurs méthodes permettant de centrer des éléments en CSS. L'utilisation de l'une ou de l'autre dépend généralement du contexte dans lequel se trouve l'élément à centrer. + +## Description + +Il est possible de centrer horizontalement et verticalement. À la fois dans toute la page ou dans une zone de contenu définie. + +## Exemples + +### Centrer du texte + +```CSS +p { + text-align: center; +} +``` + +### Centrer horizontalement un élément dont la largeur est restreinte + +```CSS +.container { + max-inline-size: 60ch; + margin-inline: auto; +} +``` + +### Centrer horizontalement le contenu d'un élément + +```CSS +.container { + display: flex; /* ou grid */ + justify-content: center; +} +``` + +### Centrer verticalement le contenu d'un élément + +```CSS +.container { + display: flex; /* ou grid */ + align-items: center; +} +``` + +### Centrer horizontalement et verticalement le contenu d'un élément + +```CSS +.container { + display: flex; + align-items: center; + justify-content: center; +} +/* OU */ +.container { + display: grid; + place-content: center; +} +``` diff --git a/docs/dev/fragments/html/01-titres.md b/docs/dev/fragments/html/01-titres.md new file mode 100644 index 0000000..e5a8f5e --- /dev/null +++ b/docs/dev/fragments/html/01-titres.md @@ -0,0 +1,30 @@ +# Titres + +## Description + +Les titres en HTML sont essentiels. Ils servent à structurer le contenu de la page en sections logiques. Tels la table des matières d'un livre, les titres doivent être organisés du plus important au moins important. + +Il existe 6 niveaux de titres, nommés `hX` de 1 à 6: + +- `

` est le titre le plus important de la page. Il est indispensable. Il ne peut y en avoir qu'un seul par page. Il doit permettre d'identifier le contenu de la page. +- `

` +- `

` +- `

` +- `

` +- `
` + +Les titres doivent se succéder de manière logique. Un `h2` doit succéder à un `h1`, un `h3` doit succéder à un `h2` et ainsi de suite. + +On ne peut pas utiliser un `h4` après un `h2` si aucun `h3` n'est présent entre eux. + +## Exemples + +```html +

Titre principal

+

Titre secondaire

+

Sous-titre

+``` + +:::warning Styles et titres +Il est fréquent de voir des titres importants utiliser un niveau inférieur pour des raisons de styles. Ce n'est pas une bonne pratique, il faudra préférer utiliser une classe plutôt que de modifier la structure du document. +::: diff --git a/docs/dev/fragments/html/02-paragraphe.md b/docs/dev/fragments/html/02-paragraphe.md new file mode 100644 index 0000000..da83598 --- /dev/null +++ b/docs/dev/fragments/html/02-paragraphe.md @@ -0,0 +1,18 @@ +# Paragraphe + +## Description + +Un paragraphe est un morceau de texte lambda. Il contient généralement le contenu brut de la page. Il est souhaitable de séparer son contenu en plusieurs paragraphes afin de pouvoir séparer visuellement les différentes parties d'une même section de texte. + +Il est généralement préférable d'utiliser plusieurs paragraphes plutôt que des sauts de ligne à l'intérieur d'un seul énorme paragraphe. + +## Exemples + +```html +

Lorem ipsum dolor sit amet consectetur adipisicing elit. Error, mollitia!

+

+ Ut incidunt voluptas libero natus deleniti cum, quod eum nostrum sit ipsa illo + repellendus in nulla, exercitationem consequatur cupiditate corporis ex + veniam. +

+``` diff --git a/docs/dev/fragments/html/04-image.md b/docs/dev/fragments/html/04-image.md new file mode 100644 index 0000000..dab07f7 --- /dev/null +++ b/docs/dev/fragments/html/04-image.md @@ -0,0 +1,35 @@ +# Image + +## Description + +Afin d'insérer une image dans son document, il convient d'utiliser la balise ``. Cette dernière est particulière car elle n'a pas besoin de balise dite “fermante” + +C'est une balise qui fait partie de la famille des [“Éléments remplacés”.](https://developer.mozilla.org/fr/docs/Web/CSS/Replaced_element) + +Cette balise nécessite deux attributs obligatoires: `src` et `alt` et deux attributs recommandés: `width` et `height`. + +L'attribut `src` nous permet de renseigner la source de l'image. Que ce soit une URL distante ou bien un chemin vers une image locale. + +L'attribut `alt` est à renseigner si l'image est “porteuse de sens”. Si l'image est décorative, l'attribut `alt` doit rester vide mais ne doit pas être supprimé. + +Les attributs `width` et `height` sont à renseigner dans la mesure du possible afin que le navigateur réserve la place nécessaire à l'image au moment du chargement de la page. + +## Exemples + +```html +Économisez 40% avec le code BIENVENUE +``` + +```html + +``` diff --git a/docs/dev/fragments/html/index.md b/docs/dev/fragments/html/index.md new file mode 100644 index 0000000..ad7fc3f --- /dev/null +++ b/docs/dev/fragments/html/index.md @@ -0,0 +1,7 @@ +# Fragments de code + +Dans cette partie, vous trouverez des bouts de code (fragments) HTML. Ces exemples sont accompagnés d'une description rapide et existent afin que vous puissiez constituer votre bibliothèque personnelle d'éléments récurrents. + +## Fragments disponibles + +- [Titres](titres.md) diff --git a/package.json b/package.json index df9a2bf..727b924 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "serve": "vitepress serve docs" }, "devDependencies": { - "vitepress": "1.0.0-alpha.16", - "vue": "^3.2.39" + "vitepress": "1.0.0-alpha.19", + "vue": "^3.2.40" } } diff --git a/yarn.lock b/yarn.lock index cbebeb3..00b3c95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -286,160 +286,160 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-vue@npm:^3.1.0": - version: 3.1.0 - resolution: "@vitejs/plugin-vue@npm:3.1.0" +"@vitejs/plugin-vue@npm:^3.1.2": + version: 3.1.2 + resolution: "@vitejs/plugin-vue@npm:3.1.2" peerDependencies: vite: ^3.0.0 vue: ^3.2.25 - checksum: 351436306090dee709314f71bb52f0b502c284c8f556d4aecbbdfea840b1d35a8af32e78e962df28d3a6034a75c78886448e3371cee320f711dab833f6ada274 + checksum: 1da84ccfc8f31b612ad51dfbbbc39816900346168c1b66a0870ddeddc622d227ac9a1d571a94d9bc63c75e50320fb8b2f7c986a115e0b87140100b0ac35b9fd6 languageName: node linkType: hard -"@vue/compiler-core@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-core@npm:3.2.39" +"@vue/compiler-core@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-core@npm:3.2.40" dependencies: "@babel/parser": ^7.16.4 - "@vue/shared": 3.2.39 + "@vue/shared": 3.2.40 estree-walker: ^2.0.2 source-map: ^0.6.1 - checksum: dd70ed60b14faba2f46a2a99ddf20819db7dff124dd49ec15ba76ea3c6d8311feca4256d4dac8e8316c6670434cbb7c0c6a2cb5f6e97b321ba42ff454102c3be + checksum: 2683bf13ef93701af1ca4850e887c8d4d67e5583b9c426fc2b08b5512df090bc464955f031cca9f52c11cc6ad49f1ab682011fdf3ba0b6c63b5ae8bea4e68c69 languageName: node linkType: hard -"@vue/compiler-dom@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-dom@npm:3.2.39" +"@vue/compiler-dom@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-dom@npm:3.2.40" dependencies: - "@vue/compiler-core": 3.2.39 - "@vue/shared": 3.2.39 - checksum: 505a8f8515f8551795e3a01859d451645e0bd77be2d70d5c48f6edd02ebc255d911230c66ccfc478fd0218ab8a7b69bd99e2c12b406db4889285058f52d13363 + "@vue/compiler-core": 3.2.40 + "@vue/shared": 3.2.40 + checksum: d928a16ebdda9d91a579546d108c9399f8c9a5c9c976196cfefa32f10c0ecb3111233c3291ba05898def85fcfccdc71e3446b977a7cdbc0d47d5d47b0dac75a3 languageName: node linkType: hard -"@vue/compiler-sfc@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-sfc@npm:3.2.39" +"@vue/compiler-sfc@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-sfc@npm:3.2.40" dependencies: "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.39 - "@vue/compiler-dom": 3.2.39 - "@vue/compiler-ssr": 3.2.39 - "@vue/reactivity-transform": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/compiler-core": 3.2.40 + "@vue/compiler-dom": 3.2.40 + "@vue/compiler-ssr": 3.2.40 + "@vue/reactivity-transform": 3.2.40 + "@vue/shared": 3.2.40 estree-walker: ^2.0.2 magic-string: ^0.25.7 postcss: ^8.1.10 source-map: ^0.6.1 - checksum: b82755eec28c03800e38b99603a90b85af03d670558c845f9916650fea5cac8c2eb1511d66aa71e602ca9af8d2795e9f6a16fc867efce8c8694a6ea106f0ac95 + checksum: 96cbfd078ad9c5718afced84a1a46dfed87f61bb30ff50ebb929331470d11e672d6a090ad5766ff1e60a5287b7596be31f925af44b6b1bdf69b6f14e938ae7e2 languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/compiler-ssr@npm:3.2.39" +"@vue/compiler-ssr@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/compiler-ssr@npm:3.2.40" dependencies: - "@vue/compiler-dom": 3.2.39 - "@vue/shared": 3.2.39 - checksum: 27323a548df3696d38a8b029b55e136fc94195f1a9e12a25161a8d524cc779dbcc5f69db525a8d86f6ed28326f9f8595db5ba94ccaa7c8f127f752be36bffe5f + "@vue/compiler-dom": 3.2.40 + "@vue/shared": 3.2.40 + checksum: 026461fcee54cf9968b1e12c32dada6dcde0a322919aa5a2c2e6e13cff7b6b2bdbc06860796895a8deef03ed1f8000e4320878576c498a1f218a62aa3e1c0bf6 languageName: node linkType: hard -"@vue/devtools-api@npm:^6.2.1": - version: 6.2.1 - resolution: "@vue/devtools-api@npm:6.2.1" - checksum: 34765af0be9b0cc7e3def73b2792b1514e3c348852c5a7503fe07d013f0e907af6c27c0a32c0637dd748caf37c075af8e53ca3220433e0bd34b6f3405f358272 +"@vue/devtools-api@npm:^6.4.2": + version: 6.4.3 + resolution: "@vue/devtools-api@npm:6.4.3" + checksum: 48893be576630267cdb88709bc5006c36b5839d66cec3da1dbe783cfdad82d52c8947c00d848c1d1c41dd66d3fcba3512bfffdeaef87d440e3d58c1c577116e2 languageName: node linkType: hard -"@vue/reactivity-transform@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/reactivity-transform@npm:3.2.39" +"@vue/reactivity-transform@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/reactivity-transform@npm:3.2.40" dependencies: "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/compiler-core": 3.2.40 + "@vue/shared": 3.2.40 estree-walker: ^2.0.2 magic-string: ^0.25.7 - checksum: b609d9367d875bf326ca8f31779407723cad2b2b4a26e7fb8860089c720e1b0bb8d5fe19604e8baff1d9ffc1fdbafb21a43db9063a24ae4ad30cb70b1c712de3 + checksum: b86fc29b52f2460801a3c820370104b734b33cc3a66dbe0ad389a00a62b7a1069121b1ef5dfa50ca3530cbfa98c158743eee0e25af54ca45806f9497757db8c0 languageName: node linkType: hard -"@vue/reactivity@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/reactivity@npm:3.2.39" +"@vue/reactivity@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/reactivity@npm:3.2.40" dependencies: - "@vue/shared": 3.2.39 - checksum: c4d440a53b2196e46129271affdb22182586a8123bc44d082468cd089242023890bccd6eaa1acc72919ea2c1febad979504be737720632afefee6ec6b75370a9 + "@vue/shared": 3.2.40 + checksum: 927d22b424b63a14234810a3b8e4e9127b7238a7cb2fbd749180279048a109348a29fc724fd9d636a6e09b5f4c902f71c789f081d3ab9b4473faedc6a03d7865 languageName: node linkType: hard -"@vue/runtime-core@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/runtime-core@npm:3.2.39" +"@vue/runtime-core@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/runtime-core@npm:3.2.40" dependencies: - "@vue/reactivity": 3.2.39 - "@vue/shared": 3.2.39 - checksum: 13f6b92d70fb3bc8b12caef9eaf9cc1fb3aa1f1bd07e2392013f02d65c74b09d4121e62d149d7f7c316ef2c6b3496c9ec828795286480f08e5f45e910b0f2671 + "@vue/reactivity": 3.2.40 + "@vue/shared": 3.2.40 + checksum: 47c4918c1294a3dc9b50effac8fb0af4ae34476a9bf443774f66cd18230e44b6b6d1cb49657ea5670f04691fc116a1040356492393dd43523b43fd90be81078a languageName: node linkType: hard -"@vue/runtime-dom@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/runtime-dom@npm:3.2.39" +"@vue/runtime-dom@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/runtime-dom@npm:3.2.40" dependencies: - "@vue/runtime-core": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/runtime-core": 3.2.40 + "@vue/shared": 3.2.40 csstype: ^2.6.8 - checksum: 0c47f941148a000ac0cb93add51edb08eca5ae16fa7898dd070300f22e4ba77533c85342f0ceca0cab8637b80b1f92cfab10adb2160e4c6dd4be4a5b27ae1ff3 + checksum: 4615d00cc4e2e19dc3e6e2baf5fa0cbab7d33fbbd7550b42264b6ef2e2ef5b750ef0d0c98591c10fea60d69fc33444ba4824954bce38abfa3473785a58d74c80 languageName: node linkType: hard -"@vue/server-renderer@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/server-renderer@npm:3.2.39" +"@vue/server-renderer@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/server-renderer@npm:3.2.40" dependencies: - "@vue/compiler-ssr": 3.2.39 - "@vue/shared": 3.2.39 + "@vue/compiler-ssr": 3.2.40 + "@vue/shared": 3.2.40 peerDependencies: - vue: 3.2.39 - checksum: ae6ccd08b85ad8c18cae461404ad8c4b3b602c779fe07ab3a69e0a9a4cef274ea8dcd662fa365f3717f67d4ba02a9eac88dd2ebf5194072ae43dd5db99c2cb2c + vue: 3.2.40 + checksum: f9d53aefcace97b9e6d20de2d9bc106112bd0ff0ef849a104996fc1256e994b64e33e91853ba7bc716d4f75a2ade81b57f3fb1482eba07324eb7cedbd0dab96d languageName: node linkType: hard -"@vue/shared@npm:3.2.39": - version: 3.2.39 - resolution: "@vue/shared@npm:3.2.39" - checksum: 0bf9f5b4851b634cfae92c08d64173c2db674bd817424473d28fc58af7c17c54a255f9b3e837d3857e1e62f9092ab1d74b4714237e45c94fcd46f92155ef653f +"@vue/shared@npm:3.2.40": + version: 3.2.40 + resolution: "@vue/shared@npm:3.2.40" + checksum: d91a1e12ffb106a444dcb42c0a54d39f6688f98151dc3b77e8da1e7d3cfd09e1761268d11e7f920f233b43162e727d06f3af4408ef59c53ac2dce9c1d2881511 languageName: node linkType: hard -"@vueuse/core@npm:^9.1.1": - version: 9.2.0 - resolution: "@vueuse/core@npm:9.2.0" +"@vueuse/core@npm:^9.3.0": + version: 9.3.0 + resolution: "@vueuse/core@npm:9.3.0" dependencies: "@types/web-bluetooth": ^0.0.15 - "@vueuse/metadata": 9.2.0 - "@vueuse/shared": 9.2.0 + "@vueuse/metadata": 9.3.0 + "@vueuse/shared": 9.3.0 vue-demi: "*" - checksum: 2ae6ef58ae932fe260911239888405e39e7cf7f9afdd512cc184248d97b66e1ec15a6a54b75835db040e68c35eafefe265071ff1a42b45d220217b8f9974a403 + checksum: 875f9ee7b9a2b88167b32e58ba8677e61369077459643e396c6037e2fd2421a0dd9f7c3bf5de7cff8c68ea6bd10d9b0653bd210f6b15544e3e85c991d9b26870 languageName: node linkType: hard -"@vueuse/metadata@npm:9.2.0": - version: 9.2.0 - resolution: "@vueuse/metadata@npm:9.2.0" - checksum: 99c63f3ba1bf8b4aac9ec226d918906842589a93f3affafb17aaa9c64da433c8747f6fd829ac6a2f313c1d8c6003742ccbedba45d2dcce38da7ea5ff657e63c9 +"@vueuse/metadata@npm:9.3.0": + version: 9.3.0 + resolution: "@vueuse/metadata@npm:9.3.0" + checksum: 94e066f8f51a5a558426656f6240eb3e4c20e46c7f3e28579974a3f48b0c1bd806943f21ef5a43ca668d84ee5cb6bd7cd606fbdb036c4388936e99b9d509ce26 languageName: node linkType: hard -"@vueuse/shared@npm:9.2.0": - version: 9.2.0 - resolution: "@vueuse/shared@npm:9.2.0" +"@vueuse/shared@npm:9.3.0": + version: 9.3.0 + resolution: "@vueuse/shared@npm:9.3.0" dependencies: vue-demi: "*" - checksum: b4d84dbb29e42fce062d8f33a011107d3187f40f1fa8cc83a28bc67c2280f4e33864309b5e70ecd078c5cb3c14106accd696b78c81c3ea6ed896ab5357ebc055 + checksum: c20fcfbbad3a17fa26191823f4022b7dd6f7a6e5ede648466562f3b9f4268fb417cd825ed002e2d74ef8f81971a3ca1691f35b4497676173b62c077b2a17d032 languageName: node linkType: hard @@ -533,7 +533,7 @@ __metadata: languageName: node linkType: hard -"body-scroll-lock@npm:^4.0.0-beta.0": +"body-scroll-lock@npm:4.0.0-beta.0": version: 4.0.0-beta.0 resolution: "body-scroll-lock@npm:4.0.0-beta.0" checksum: 61d40007fddf64ecc69e9e02ed9d96bb895f88d7da65cea7651081110225de48efa44ffc4acd376ed004788e242a9af12059fec728c096774b49365524ea6f46 @@ -1364,13 +1364,6 @@ __metadata: languageName: node linkType: hard -"nprogress@npm:^0.2.0": - version: 0.2.0 - resolution: "nprogress@npm:0.2.0" - checksum: 66b7bec5d563ecf2d1c3d2815e6d5eb74ed815eee8563e0afa63d3f185ab1b9cf2ddd97e1ded263b9995c5019d26d600320e849e50f3747984daa033744619dc - languageName: node - linkType: hard - "once@npm:^1.3.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -1715,9 +1708,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^3.1.0": - version: 3.1.3 - resolution: "vite@npm:3.1.3" +"vite@npm:^3.1.4": + version: 3.1.4 + resolution: "vite@npm:3.1.4" dependencies: esbuild: ^0.15.6 fsevents: ~2.3.2 @@ -1743,7 +1736,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: af13c9820c292792f02d0a25fd46d8557e627b93f95bc05b5f7f1261e9565e9e69fda2df0c0898f248edb811ebcac5400a85a81625ef29749f50b18273439d91 + checksum: f3e532952b896ca7f746de0e51fc8c98ac482b2a5f0b89538ec89ac615f6edbfe45628fe4fbabab4c5fe07f6e4c2e624360af00d8c5c454af31771952b8c6e72 languageName: node linkType: hard @@ -1751,28 +1744,27 @@ __metadata: version: 0.0.0-use.local resolution: "vitepress-starter@workspace:." dependencies: - vitepress: 1.0.0-alpha.16 - vue: ^3.2.39 + vitepress: 1.0.0-alpha.19 + vue: ^3.2.40 languageName: unknown linkType: soft -"vitepress@npm:1.0.0-alpha.16": - version: 1.0.0-alpha.16 - resolution: "vitepress@npm:1.0.0-alpha.16" +"vitepress@npm:1.0.0-alpha.19": + version: 1.0.0-alpha.19 + resolution: "vitepress@npm:1.0.0-alpha.19" dependencies: "@docsearch/css": ^3.2.1 "@docsearch/js": ^3.2.1 - "@vitejs/plugin-vue": ^3.1.0 - "@vue/devtools-api": ^6.2.1 - "@vueuse/core": ^9.1.1 - body-scroll-lock: ^4.0.0-beta.0 - nprogress: ^0.2.0 + "@vitejs/plugin-vue": ^3.1.2 + "@vue/devtools-api": ^6.4.2 + "@vueuse/core": ^9.3.0 + body-scroll-lock: 4.0.0-beta.0 shiki: ^0.11.1 - vite: ^3.1.0 - vue: ^3.2.38 + vite: ^3.1.4 + vue: ^3.2.40 bin: vitepress: bin/vitepress.js - checksum: 232f743b883cba81f076fd122de163a6a6438b235053f978f12e2ce3ed7e3a6c7221c0d3dd36550f99bd404e655d1cf740ff8b78e247d03398d1e205e9b282c0 + checksum: 94dc0a92cb050c283d2a25e7733f20277c74c9bcde3d3c4501ac24a07ed71a7bb22ab4f8613f9f5e9455c18c09a3fa933d5311cdeff9f2e5121504d69c22b195 languageName: node linkType: hard @@ -1806,16 +1798,16 @@ __metadata: languageName: node linkType: hard -"vue@npm:^3.2.38, vue@npm:^3.2.39": - version: 3.2.39 - resolution: "vue@npm:3.2.39" +"vue@npm:^3.2.40": + version: 3.2.40 + resolution: "vue@npm:3.2.40" dependencies: - "@vue/compiler-dom": 3.2.39 - "@vue/compiler-sfc": 3.2.39 - "@vue/runtime-dom": 3.2.39 - "@vue/server-renderer": 3.2.39 - "@vue/shared": 3.2.39 - checksum: f096a3f0a5f72c65d26246ff7989729eda2b996dc30c63fd8cd7ccda07e9c318d478e3e24661ff01e49bcf5fed6f330142fcf29d6ad46c13423f36b3ae1a54cc + "@vue/compiler-dom": 3.2.40 + "@vue/compiler-sfc": 3.2.40 + "@vue/runtime-dom": 3.2.40 + "@vue/server-renderer": 3.2.40 + "@vue/shared": 3.2.40 + checksum: fb5ca87c16e58f24c0088add152ca1ef70ac6d198ec3a60e7904201c31aadefb2c28e361934c42a704742835cdd9c02ab5765f0c29e8335eb13261d7b764b0ee languageName: node linkType: hard From 6214c827eb4cc6ef39f7af0d2b27c89262a3fa3b Mon Sep 17 00:00:00 2001 From: Nico Date: Wed, 16 Nov 2022 18:12:05 +0100 Subject: [PATCH 03/11] new content + fixes + dep update --- docs/.vitepress/config.js | 1 + docs/dev/B2/git.md | 89 ++++ docs/dev/fragments/html/01-titres.md | 38 ++ docs/dev/fragments/html/02-paragraphe.md | 14 + docs/dev/fragments/html/04-image.md | 2 +- docs/dev/fragments/html/index.md | 2 +- package.json | 2 +- yarn.lock | 491 ++++++++++++++--------- 8 files changed, 456 insertions(+), 183 deletions(-) create mode 100644 docs/dev/B2/git.md diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index 0febac4..837153b 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -84,6 +84,7 @@ export default { items: [ { text: "Introduction B2", link: "/dev/B2/" }, { text: "HTML B2", link: "/dev/B2/html" }, + { text: "Git", link: "/dev/B2/git" }, ], }, { diff --git a/docs/dev/B2/git.md b/docs/dev/B2/git.md new file mode 100644 index 0000000..56776b7 --- /dev/null +++ b/docs/dev/B2/git.md @@ -0,0 +1,89 @@ +# Versionner avec Git + +[Git](https://git-scm.com/) est un logiciel de [gestion de version](https://fr.wikipedia.org/wiki/Gestion_de_versions). + +## Interfaces et serveurs + +Git permet de stocker et sauvegarder des documents ainsi que leurs versions précédentes sur un serveur prévu à cet effet. Les plus connus sont : + +- [Github](https://github.com/) +- [Gitlab](https://about.gitlab.com/) +- [Bitbucket](https://bitbucket.org/) +- [Gitea](https://gitea.io/) + +Certains de ces services proposent des fonctionnalités avancés de suivi des bugs, d’automatisation des tâches, etc. + +::: info +Les trois premiers proposent un compte gratuit largement suffisant pour un usage classique. +Le dernier est à installer sois-même sur un serveur. +::: + +## Utilisation locale + +### Outils + +Afin de créer et gérer un dépôt de documents (généralement un dossier contenant le code source de notre projet), il est nécessaire d’utiliser un terminal. Il est possible d’utiliser le terminal intégré à son logiciel de développement ou celui de son système d’exploitation : + +- **terminal** sur MacOS et linux +- **powershell** sur Windows + +### Authentification du serveur + +Pour éviter d’avoir à renseigner le mot de passe de son compte github, gitlab, gitea à chaque fois, il est recommandé d’utiliser une clé SSH. Ce protocole permet une authentification en arrière plan de votre machine auprès du serveur. + +Afin de générer une clé, renseignez et validez la commande suivant dans le terminal : + +```bash +ssh-keygen -t ed25519 -C "VOTRE_EMAIL" +``` + +Ne renseignez pas de mot/phrase de passe. Vous devriez recevoir une réponse du terminal contenant la localisation de la clé sur votre ordinateur ainsi qu’une “empreinte” de clé. + +::: details Exemple d’empreinte + +```bash +The key fingerprint is: +SHA256://wlS3vSWCovCYh+Y5LbtlS1Ee4nr0e3mTOmFq7//us test@mail.fr +The key’s randomart image is: ++--[ED25519 256]--+ +| . | +| . . | +| + | +| o o | +| .S.. + . | +| . .o. =. o| +| . .. ...o=*=| +| +o= o+==%o| +| .*oo .BO@E*| ++----[SHA256]-----+ +``` + +::: + +Vous devez ensuite récupérer la clé publique, généralement `id_ed25519.pub`, copier son contenu et le coller dans les paramètres de votre compte github, gitlab, etc. + +### Création d’un dépôt + +Les étapes de création d’un dépôt sont quasiment systématiquement les mêmes : + +1. ouvrir le dossier de travail dans le terminal +2. taper la commande `git init` +3. se rendre sur son serveur git en ligne +4. créer un nouveau dépôt vide depuis l’interface + +### Envoyer des fichiers vers le serveur + +Maintenant que le dépôt est créé, il faut faire le lien entre votre projet local et dépôt sur le serveur. À l’intérieur du dépôt distant vide, vous devriez trouver des commandes fournies par le serveur. Ces commandes peuvent-être copiées/collées dans l’ordre dans le terminal. + +1. ajouter le serveur comme dépôt distant + - `git remote add origin git@github.com:USER/REPO.git` +2. demander à git de suivre tous les fichiers du dossier + - `git add .` +3. ajouter et figer l’état des fichiers suivis avec un commentaire + - `git commit -m "COMMENTAIRE"` +4. envoyer les fichiers sur le serveur + - `git push origin main` + +::: tip +À chaque fois que vous souhaitez envoyer des modifications, répétez les étapes 2 à 4 +::: diff --git a/docs/dev/fragments/html/01-titres.md b/docs/dev/fragments/html/01-titres.md index e5a8f5e..5b6d9cb 100644 --- a/docs/dev/fragments/html/01-titres.md +++ b/docs/dev/fragments/html/01-titres.md @@ -19,12 +19,50 @@ On ne peut pas utiliser un `h4` après un `h2` si aucun `h3` n'est présent entr ## Exemples +### Structure incorrecte + +```html +

Titre principal

+

Titre secondaire

+

Sous-titre

// [!code error] +``` + +### Structure correcte ```html

Titre principal

Titre secondaire

Sous-titre

+

Titre secondaire

+

Sous-titre

+

Sous-titre

+

Titre secondaire

``` +### Structure complexe correcte + +```html +

Sandwich PB&J

+

Les ingrédients

// [!code hl] +

Le frais

// [!code hl] +
    +
  • confiture
  • +
+

Le sec

// [!code hl] +
    +
  • pain
  • +
  • beurre de cacahuette
  • +
+

Les étapes

// [!code hl] +
    +
  1. couper deux tartines de pain
  2. +
  3. étaler la confiture sur une tartine
  4. +
  5. étaler le beurre de cacahuette sur l’autre tartine
  6. +
  7. faire un sandwich
  8. +
+``` + +Il est possible de revenir à un titre de niveau supérieur à n'importe quel moment. + :::warning Styles et titres Il est fréquent de voir des titres importants utiliser un niveau inférieur pour des raisons de styles. Ce n'est pas une bonne pratique, il faudra préférer utiliser une classe plutôt que de modifier la structure du document. ::: diff --git a/docs/dev/fragments/html/02-paragraphe.md b/docs/dev/fragments/html/02-paragraphe.md index da83598..95cd413 100644 --- a/docs/dev/fragments/html/02-paragraphe.md +++ b/docs/dev/fragments/html/02-paragraphe.md @@ -16,3 +16,17 @@ Il est généralement préférable d'utiliser plusieurs paragraphes plutôt que veniam.

``` + +## Mise en forme + +Afin de mettre en forme le contenu d'un paragraphe, il existe plusieurs balises utilisables. Ces balises se comportent “en ligne”, permettant ainsi de cohabiter les unes à côté des autres. + +```html +Permet de mettre du texte en avant et en gras +Permet de mettre du texte en gras +Permet de mettre du texte en italique + + Est une balise sans effet par défaut, utile pour styler un morceau de texte en + CSS + +``` diff --git a/docs/dev/fragments/html/04-image.md b/docs/dev/fragments/html/04-image.md index dab07f7..a31f22e 100644 --- a/docs/dev/fragments/html/04-image.md +++ b/docs/dev/fragments/html/04-image.md @@ -10,7 +10,7 @@ Cette balise nécessite deux attributs obligatoires: `src` et `alt` et deux attr L'attribut `src` nous permet de renseigner la source de l'image. Que ce soit une URL distante ou bien un chemin vers une image locale. -L'attribut `alt` est à renseigner si l'image est “porteuse de sens”. Si l'image est décorative, l'attribut `alt` doit rester vide mais ne doit pas être supprimé. +L'attribut `alt` est à renseigner si l'image est “porteuse de sens”. **Si l'image est décorative, l'attribut `alt` doit rester vide mais ne doit pas être supprimé.** Les attributs `width` et `height` sont à renseigner dans la mesure du possible afin que le navigateur réserve la place nécessaire à l'image au moment du chargement de la page. diff --git a/docs/dev/fragments/html/index.md b/docs/dev/fragments/html/index.md index ad7fc3f..6e1f054 100644 --- a/docs/dev/fragments/html/index.md +++ b/docs/dev/fragments/html/index.md @@ -4,4 +4,4 @@ Dans cette partie, vous trouverez des bouts de code (fragments) HTML. Ces exempl ## Fragments disponibles -- [Titres](titres.md) +- [Titres](01-titres.md) diff --git a/package.json b/package.json index 727b924..d94bd6c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "serve": "vitepress serve docs" }, "devDependencies": { - "vitepress": "1.0.0-alpha.19", + "vitepress": "1.0.0-alpha.29", "vue": "^3.2.40" } } diff --git a/yarn.lock b/yarn.lock index 00b3c95..c0ba2c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,31 +5,31 @@ __metadata: version: 6 cacheKey: 8 -"@algolia/autocomplete-core@npm:1.7.1": - version: 1.7.1 - resolution: "@algolia/autocomplete-core@npm:1.7.1" +"@algolia/autocomplete-core@npm:1.7.2": + version: 1.7.2 + resolution: "@algolia/autocomplete-core@npm:1.7.2" dependencies: - "@algolia/autocomplete-shared": 1.7.1 - checksum: 511176e9c2a9f2e2be62552e48e72dadfcc6638cda4a2990fd3453aed3ce4e7d8ca1bd6a9ccb912430c77734b00a8b836aaad97facc1987157af4ac00f590f4a + "@algolia/autocomplete-shared": 1.7.2 + checksum: 7d3e879ac74f2d3fd6f80a01d6c05bd22264c428030396234112be7628a80d3a7c250613b2d4102f8ef63115be7b96d8d0231bdf8a02aa9b58873500aa61ffcc languageName: node linkType: hard -"@algolia/autocomplete-preset-algolia@npm:1.7.1": - version: 1.7.1 - resolution: "@algolia/autocomplete-preset-algolia@npm:1.7.1" +"@algolia/autocomplete-preset-algolia@npm:1.7.2": + version: 1.7.2 + resolution: "@algolia/autocomplete-preset-algolia@npm:1.7.2" dependencies: - "@algolia/autocomplete-shared": 1.7.1 + "@algolia/autocomplete-shared": 1.7.2 peerDependencies: - "@algolia/client-search": ^4.9.1 - algoliasearch: ^4.9.1 - checksum: cb031d5ed43f2e10f325f6291cfab851cc5622d96ae8ba1913815ead16b7ce2969b0c51f921d54c47195b2200af8ceecf1c587d2580f842c337f1d8e2f6317c2 + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 7120ce1d312dbe6d898a0cecd9b28e45f9162a2fd9208a4c4e2efa77027455ee083c11cb782196374da717e990d6ca362c286ace475db97916e52bd277061d77 languageName: node linkType: hard -"@algolia/autocomplete-shared@npm:1.7.1": - version: 1.7.1 - resolution: "@algolia/autocomplete-shared@npm:1.7.1" - checksum: 0e137f1a470fab9b1bc493284b0be9b83503bda8aa37be9726a8fddf4791dccbd28f9eec399a7c75c1eb3196510dac7be454307fc97fbca2999f3fbc30756c28 +"@algolia/autocomplete-shared@npm:1.7.2": + version: 1.7.2 + resolution: "@algolia/autocomplete-shared@npm:1.7.2" + checksum: 8336cd1e79e56e3901196862ae17896c6e9542e269a05860ab72d869e35f17ab0f40ecbe35d1e34617cc70749d3f8323d09b347c443a7b7b2b126dddb44779aa languageName: node linkType: hard @@ -191,30 +191,30 @@ __metadata: languageName: node linkType: hard -"@docsearch/css@npm:3.2.1, @docsearch/css@npm:^3.2.1": - version: 3.2.1 - resolution: "@docsearch/css@npm:3.2.1" - checksum: ab7a36a34c8eaab9cdf837db2748c71d35903c05a055ebfc5fd74ebc62ed95e39c5778228e1259ab1c9db9229700feaffecd849f58252673555f74f500584e01 +"@docsearch/css@npm:3.3.0, @docsearch/css@npm:^3.3.0": + version: 3.3.0 + resolution: "@docsearch/css@npm:3.3.0" + checksum: 1cbf381fe0b454f933e736d04fe8a2d9f86c375022ef738b44d67a0b4c187b0d8fcb945a1ba5a404059e50e3968d9fe769de22779d071f6189f07c161239892c languageName: node linkType: hard -"@docsearch/js@npm:^3.2.1": - version: 3.2.1 - resolution: "@docsearch/js@npm:3.2.1" +"@docsearch/js@npm:^3.3.0": + version: 3.3.0 + resolution: "@docsearch/js@npm:3.3.0" dependencies: - "@docsearch/react": 3.2.1 + "@docsearch/react": 3.3.0 preact: ^10.0.0 - checksum: 30df5d0eb8083fadbd0e0d1298f4606be2a7b755c31c14fc82632eb12c41e52fd6dd6bac9ee7e03d8839e5f102f0b8bd294aab71196718051735d4d1e7f8f699 + checksum: b612c6e91482419ccde4be30bf8c3fe095066fb0013941a6a3e201df33e108864a0d8fe5728571be6053cbfed32c2e38f86aec9584b365ff1ac2024cb64a7310 languageName: node linkType: hard -"@docsearch/react@npm:3.2.1": - version: 3.2.1 - resolution: "@docsearch/react@npm:3.2.1" +"@docsearch/react@npm:3.3.0": + version: 3.3.0 + resolution: "@docsearch/react@npm:3.3.0" dependencies: - "@algolia/autocomplete-core": 1.7.1 - "@algolia/autocomplete-preset-algolia": 1.7.1 - "@docsearch/css": 3.2.1 + "@algolia/autocomplete-core": 1.7.2 + "@algolia/autocomplete-preset-algolia": 1.7.2 + "@docsearch/css": 3.3.0 algoliasearch: ^4.0.0 peerDependencies: "@types/react": ">= 16.8.0 < 19.0.0" @@ -227,20 +227,20 @@ __metadata: optional: true react-dom: optional: true - checksum: 62e4b45bc1c710ca600e3aee0558259448934678f528199bcb41975671d7df9853f813aca09a126c8c235cef613a36a59c52296fc04c76e6bec88f53e872c580 + checksum: 2bc4aa649fad3ff74e61537e674e658903c01509b2835827943f23895b40b7697476399179d43bc721f7e72044c797d4d793fcdaa394ff4f9fca1389a197a78c languageName: node linkType: hard -"@esbuild/android-arm@npm:0.15.9": - version: 0.15.9 - resolution: "@esbuild/android-arm@npm:0.15.9" +"@esbuild/android-arm@npm:0.15.14": + version: 0.15.14 + resolution: "@esbuild/android-arm@npm:0.15.14" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.15.9": - version: 0.15.9 - resolution: "@esbuild/linux-loong64@npm:0.15.9" +"@esbuild/linux-loong64@npm:0.15.14": + version: 0.15.14 + resolution: "@esbuild/linux-loong64@npm:0.15.14" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -279,20 +279,20 @@ __metadata: languageName: node linkType: hard -"@types/web-bluetooth@npm:^0.0.15": - version: 0.0.15 - resolution: "@types/web-bluetooth@npm:0.0.15" - checksum: 4e3b3b1c0baf6735690ce0c5ffaac53de3dbd16362316cbc5e32970bcb1e1baf16dae0a9f30fe86256ad0ee22a4533423f443835273efc54b15235086ebda85b +"@types/web-bluetooth@npm:^0.0.16": + version: 0.0.16 + resolution: "@types/web-bluetooth@npm:0.0.16" + checksum: f68a630d062202a25c46d48686ebae1cf429dc70b4578fcf13b8357b2db63e4aedfb6f6d752bd388366be46ebd19c1c9de45f8a15c2631bb79e904fdfc454f94 languageName: node linkType: hard -"@vitejs/plugin-vue@npm:^3.1.2": - version: 3.1.2 - resolution: "@vitejs/plugin-vue@npm:3.1.2" +"@vitejs/plugin-vue@npm:^3.2.0": + version: 3.2.0 + resolution: "@vitejs/plugin-vue@npm:3.2.0" peerDependencies: vite: ^3.0.0 vue: ^3.2.25 - checksum: 1da84ccfc8f31b612ad51dfbbbc39816900346168c1b66a0870ddeddc622d227ac9a1d571a94d9bc63c75e50320fb8b2f7c986a115e0b87140100b0ac35b9fd6 + checksum: 64774f770e0e21ce7eb36743d614e3f197a35f5b67b2d3800c61766e649f43dc497bb037738ffafd607eb488064ab132c23766190e7ab557a0b88c0051f7a794 languageName: node linkType: hard @@ -308,6 +308,18 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-core@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/compiler-core@npm:3.2.45" + dependencies: + "@babel/parser": ^7.16.4 + "@vue/shared": 3.2.45 + estree-walker: ^2.0.2 + source-map: ^0.6.1 + checksum: e3c687b24c16c2b320c02ed38960f8bee7dcb88bddb09e60a80d2d4dc004070cbbd4eccbc99cc168d48d753ff60d0b9eefba835e1dec3b7f233a98c89af31c07 + languageName: node + linkType: hard + "@vue/compiler-dom@npm:3.2.40": version: 3.2.40 resolution: "@vue/compiler-dom@npm:3.2.40" @@ -318,6 +330,16 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-dom@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/compiler-dom@npm:3.2.45" + dependencies: + "@vue/compiler-core": 3.2.45 + "@vue/shared": 3.2.45 + checksum: 89115538635f0da9cce615de5488d2759256fa573976a09a049536dbb94e9b5086b46f2f11e743cf0a7b14837161b3191c67611e0493054a5d4c4b96a322c901 + languageName: node + linkType: hard + "@vue/compiler-sfc@npm:3.2.40": version: 3.2.40 resolution: "@vue/compiler-sfc@npm:3.2.40" @@ -336,6 +358,24 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-sfc@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/compiler-sfc@npm:3.2.45" + dependencies: + "@babel/parser": ^7.16.4 + "@vue/compiler-core": 3.2.45 + "@vue/compiler-dom": 3.2.45 + "@vue/compiler-ssr": 3.2.45 + "@vue/reactivity-transform": 3.2.45 + "@vue/shared": 3.2.45 + estree-walker: ^2.0.2 + magic-string: ^0.25.7 + postcss: ^8.1.10 + source-map: ^0.6.1 + checksum: bec375faa0012e953dc0887482cc01d52003ad424b6a8a9c8a2506fd4f0197ad62be22f77ce5691c2306068ae7bc0028399f25399e7d4beee668285d431f4d8f + languageName: node + linkType: hard + "@vue/compiler-ssr@npm:3.2.40": version: 3.2.40 resolution: "@vue/compiler-ssr@npm:3.2.40" @@ -346,10 +386,20 @@ __metadata: languageName: node linkType: hard -"@vue/devtools-api@npm:^6.4.2": - version: 6.4.3 - resolution: "@vue/devtools-api@npm:6.4.3" - checksum: 48893be576630267cdb88709bc5006c36b5839d66cec3da1dbe783cfdad82d52c8947c00d848c1d1c41dd66d3fcba3512bfffdeaef87d440e3d58c1c577116e2 +"@vue/compiler-ssr@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/compiler-ssr@npm:3.2.45" + dependencies: + "@vue/compiler-dom": 3.2.45 + "@vue/shared": 3.2.45 + checksum: 830c475506d2b6d1a6872b3fde1024ef5132f725121fd9c34832c5cefcc8cfddf0dcaa3acc9b2da4754162fccdff48b3275b9ff31415a7793b224c04355dc632 + languageName: node + linkType: hard + +"@vue/devtools-api@npm:^6.4.5": + version: 6.4.5 + resolution: "@vue/devtools-api@npm:6.4.5" + checksum: 40c5adc8788cb283972ce09ba7ce105fa894f4decec9168829cc8e6211462763402442e6c31be76f9da62b0e74ae724971b924571367b4ac89b94dc6894e2d07 languageName: node linkType: hard @@ -366,6 +416,19 @@ __metadata: languageName: node linkType: hard +"@vue/reactivity-transform@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/reactivity-transform@npm:3.2.45" + dependencies: + "@babel/parser": ^7.16.4 + "@vue/compiler-core": 3.2.45 + "@vue/shared": 3.2.45 + estree-walker: ^2.0.2 + magic-string: ^0.25.7 + checksum: 401040818947eb04c782487a7861d3ba20f95c9f3ca14282b3d7624002bfe6000547bb48c561afe87ae6d302143fec71a7e0bc3ed3ae2bfad8a228adf7fd90d6 + languageName: node + linkType: hard + "@vue/reactivity@npm:3.2.40": version: 3.2.40 resolution: "@vue/reactivity@npm:3.2.40" @@ -375,6 +438,15 @@ __metadata: languageName: node linkType: hard +"@vue/reactivity@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/reactivity@npm:3.2.45" + dependencies: + "@vue/shared": 3.2.45 + checksum: 4ba609744a6b4d6235e81afc3f455ae9349c04f54be11c15770139f58ff687b105b06ca78649218fab907fb76048c3dcf34144c677718192ce8b9927eb335f03 + languageName: node + linkType: hard + "@vue/runtime-core@npm:3.2.40": version: 3.2.40 resolution: "@vue/runtime-core@npm:3.2.40" @@ -385,6 +457,16 @@ __metadata: languageName: node linkType: hard +"@vue/runtime-core@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/runtime-core@npm:3.2.45" + dependencies: + "@vue/reactivity": 3.2.45 + "@vue/shared": 3.2.45 + checksum: 0ac376a7602663d51a37b460c1184e2e035649090e53e972c18d24b30f3c47e5d61b921baf2492203f041d9edd864b3e9024a3ecef243b840637b62e9c0169a1 + languageName: node + linkType: hard + "@vue/runtime-dom@npm:3.2.40": version: 3.2.40 resolution: "@vue/runtime-dom@npm:3.2.40" @@ -396,6 +478,17 @@ __metadata: languageName: node linkType: hard +"@vue/runtime-dom@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/runtime-dom@npm:3.2.45" + dependencies: + "@vue/runtime-core": 3.2.45 + "@vue/shared": 3.2.45 + csstype: ^2.6.8 + checksum: c66c71a2fc3921b57a930999b1fb0ea64f1a9d1bc7019984b06f2dbdd93f51b5a328cc60ec5904d1754b9dc1c85653b536db9017ef86616fa4a35f53836a2f9d + languageName: node + linkType: hard + "@vue/server-renderer@npm:3.2.40": version: 3.2.40 resolution: "@vue/server-renderer@npm:3.2.40" @@ -408,6 +501,18 @@ __metadata: languageName: node linkType: hard +"@vue/server-renderer@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/server-renderer@npm:3.2.45" + dependencies: + "@vue/compiler-ssr": 3.2.45 + "@vue/shared": 3.2.45 + peerDependencies: + vue: 3.2.45 + checksum: 062812235c2be41ed699fb7b802cf4fc94618bf4efae7832210431ad16ea1b852056e4fb83f6c17b919bfe87bc8624afcadd973dab3e0965d3cf9875baaf7373 + languageName: node + linkType: hard + "@vue/shared@npm:3.2.40": version: 3.2.40 resolution: "@vue/shared@npm:3.2.40" @@ -415,31 +520,38 @@ __metadata: languageName: node linkType: hard -"@vueuse/core@npm:^9.3.0": - version: 9.3.0 - resolution: "@vueuse/core@npm:9.3.0" - dependencies: - "@types/web-bluetooth": ^0.0.15 - "@vueuse/metadata": 9.3.0 - "@vueuse/shared": 9.3.0 - vue-demi: "*" - checksum: 875f9ee7b9a2b88167b32e58ba8677e61369077459643e396c6037e2fd2421a0dd9f7c3bf5de7cff8c68ea6bd10d9b0653bd210f6b15544e3e85c991d9b26870 +"@vue/shared@npm:3.2.45": + version: 3.2.45 + resolution: "@vue/shared@npm:3.2.45" + checksum: ff3205056caed2a965aa0980e21319515ce13c859a9b269fdab0ee8b3c9f3d8eec7eefdb7fd6c6b47c12acdc7bf23c6c187b6191054221b4a29108139b20c221 languageName: node linkType: hard -"@vueuse/metadata@npm:9.3.0": - version: 9.3.0 - resolution: "@vueuse/metadata@npm:9.3.0" - checksum: 94e066f8f51a5a558426656f6240eb3e4c20e46c7f3e28579974a3f48b0c1bd806943f21ef5a43ca668d84ee5cb6bd7cd606fbdb036c4388936e99b9d509ce26 +"@vueuse/core@npm:^9.4.0": + version: 9.5.0 + resolution: "@vueuse/core@npm:9.5.0" + dependencies: + "@types/web-bluetooth": ^0.0.16 + "@vueuse/metadata": 9.5.0 + "@vueuse/shared": 9.5.0 + vue-demi: "*" + checksum: 55bac9f1c8c5aa4f8f795f4bb9ea61754db6ec2f683081d804a9f474da63d0d3a01e863712583f70db7ab5f1a5bd1d52c40edb4c9addcf497c1b31c4f8fed714 languageName: node linkType: hard -"@vueuse/shared@npm:9.3.0": - version: 9.3.0 - resolution: "@vueuse/shared@npm:9.3.0" +"@vueuse/metadata@npm:9.5.0": + version: 9.5.0 + resolution: "@vueuse/metadata@npm:9.5.0" + checksum: b832754a03682086214ad3f99daf31e78339f7c4d2661a1ffb1565eeceef41435b77780d4c83b4f42299ba037d0a77f6eecd8b6d7a4546aa6b75cb82644bb5bb + languageName: node + linkType: hard + +"@vueuse/shared@npm:9.5.0": + version: 9.5.0 + resolution: "@vueuse/shared@npm:9.5.0" dependencies: vue-demi: "*" - checksum: c20fcfbbad3a17fa26191823f4022b7dd6f7a6e5ede648466562f3b9f4268fb417cd825ed002e2d74ef8f81971a3ca1691f35b4497676173b62c077b2a17d032 + checksum: d7f697a489bdb6d5c590b19b31d59a5754c1b3b11278a2e186aed081a90fe79b434319e9122a470cc3e96637062bf63202adc08919d61e56d7f57c51c3282a48 languageName: node linkType: hard @@ -685,172 +797,172 @@ __metadata: languageName: node linkType: hard -"esbuild-android-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-android-64@npm:0.15.9" +"esbuild-android-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-android-64@npm:0.15.14" conditions: os=android & cpu=x64 languageName: node linkType: hard -"esbuild-android-arm64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-android-arm64@npm:0.15.9" +"esbuild-android-arm64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-android-arm64@npm:0.15.14" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"esbuild-darwin-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-darwin-64@npm:0.15.9" +"esbuild-darwin-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-darwin-64@npm:0.15.14" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"esbuild-darwin-arm64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-darwin-arm64@npm:0.15.9" +"esbuild-darwin-arm64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-darwin-arm64@npm:0.15.14" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"esbuild-freebsd-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-freebsd-64@npm:0.15.9" +"esbuild-freebsd-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-freebsd-64@npm:0.15.14" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"esbuild-freebsd-arm64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-freebsd-arm64@npm:0.15.9" +"esbuild-freebsd-arm64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-freebsd-arm64@npm:0.15.14" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"esbuild-linux-32@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-32@npm:0.15.9" +"esbuild-linux-32@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-32@npm:0.15.14" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"esbuild-linux-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-64@npm:0.15.9" +"esbuild-linux-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-64@npm:0.15.14" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"esbuild-linux-arm64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-arm64@npm:0.15.9" +"esbuild-linux-arm64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-arm64@npm:0.15.14" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"esbuild-linux-arm@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-arm@npm:0.15.9" +"esbuild-linux-arm@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-arm@npm:0.15.14" conditions: os=linux & cpu=arm languageName: node linkType: hard -"esbuild-linux-mips64le@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-mips64le@npm:0.15.9" +"esbuild-linux-mips64le@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-mips64le@npm:0.15.14" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"esbuild-linux-ppc64le@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-ppc64le@npm:0.15.9" +"esbuild-linux-ppc64le@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-ppc64le@npm:0.15.14" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"esbuild-linux-riscv64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-riscv64@npm:0.15.9" +"esbuild-linux-riscv64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-riscv64@npm:0.15.14" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"esbuild-linux-s390x@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-linux-s390x@npm:0.15.9" +"esbuild-linux-s390x@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-linux-s390x@npm:0.15.14" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"esbuild-netbsd-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-netbsd-64@npm:0.15.9" +"esbuild-netbsd-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-netbsd-64@npm:0.15.14" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"esbuild-openbsd-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-openbsd-64@npm:0.15.9" +"esbuild-openbsd-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-openbsd-64@npm:0.15.14" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"esbuild-sunos-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-sunos-64@npm:0.15.9" +"esbuild-sunos-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-sunos-64@npm:0.15.14" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"esbuild-windows-32@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-windows-32@npm:0.15.9" +"esbuild-windows-32@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-windows-32@npm:0.15.14" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"esbuild-windows-64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-windows-64@npm:0.15.9" +"esbuild-windows-64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-windows-64@npm:0.15.14" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"esbuild-windows-arm64@npm:0.15.9": - version: 0.15.9 - resolution: "esbuild-windows-arm64@npm:0.15.9" +"esbuild-windows-arm64@npm:0.15.14": + version: 0.15.14 + resolution: "esbuild-windows-arm64@npm:0.15.14" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"esbuild@npm:^0.15.6": - version: 0.15.9 - resolution: "esbuild@npm:0.15.9" +"esbuild@npm:^0.15.9": + version: 0.15.14 + resolution: "esbuild@npm:0.15.14" dependencies: - "@esbuild/android-arm": 0.15.9 - "@esbuild/linux-loong64": 0.15.9 - esbuild-android-64: 0.15.9 - esbuild-android-arm64: 0.15.9 - esbuild-darwin-64: 0.15.9 - esbuild-darwin-arm64: 0.15.9 - esbuild-freebsd-64: 0.15.9 - esbuild-freebsd-arm64: 0.15.9 - esbuild-linux-32: 0.15.9 - esbuild-linux-64: 0.15.9 - esbuild-linux-arm: 0.15.9 - esbuild-linux-arm64: 0.15.9 - esbuild-linux-mips64le: 0.15.9 - esbuild-linux-ppc64le: 0.15.9 - esbuild-linux-riscv64: 0.15.9 - esbuild-linux-s390x: 0.15.9 - esbuild-netbsd-64: 0.15.9 - esbuild-openbsd-64: 0.15.9 - esbuild-sunos-64: 0.15.9 - esbuild-windows-32: 0.15.9 - esbuild-windows-64: 0.15.9 - esbuild-windows-arm64: 0.15.9 + "@esbuild/android-arm": 0.15.14 + "@esbuild/linux-loong64": 0.15.14 + esbuild-android-64: 0.15.14 + esbuild-android-arm64: 0.15.14 + esbuild-darwin-64: 0.15.14 + esbuild-darwin-arm64: 0.15.14 + esbuild-freebsd-64: 0.15.14 + esbuild-freebsd-arm64: 0.15.14 + esbuild-linux-32: 0.15.14 + esbuild-linux-64: 0.15.14 + esbuild-linux-arm: 0.15.14 + esbuild-linux-arm64: 0.15.14 + esbuild-linux-mips64le: 0.15.14 + esbuild-linux-ppc64le: 0.15.14 + esbuild-linux-riscv64: 0.15.14 + esbuild-linux-s390x: 0.15.14 + esbuild-netbsd-64: 0.15.14 + esbuild-openbsd-64: 0.15.14 + esbuild-sunos-64: 0.15.14 + esbuild-windows-32: 0.15.14 + esbuild-windows-64: 0.15.14 + esbuild-windows-arm64: 0.15.14 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -898,7 +1010,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 33da8cc0c7bd03f1acfafd51812638fd75ae01f95db3737dbc4d94a9f9e9c234df2ffc76c0fa7147f2466c342b7085f835edc93b3a3dac84aaa1cf46ed80b980 + checksum: 3e09ddca1feed3f2242eb433694bf7f3dc9c974434b80bc09323e61fb5ac940afd0217ee8776f187252b134fb967e323f31fb704d8fe81ed9cab1b49aedad249 languageName: node linkType: hard @@ -1414,14 +1526,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.16": - version: 8.4.16 - resolution: "postcss@npm:8.4.16" +"postcss@npm:^8.4.18": + version: 8.4.19 + resolution: "postcss@npm:8.4.19" dependencies: nanoid: ^3.3.4 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 10eee25efd77868036403858577da0cefaf2e0905feeaba5770d5438ccdddba3d01cba8063e96b8aac4c6daa0ed413dd5ae0554a433a3c4db38df1d134cffc1f + checksum: 62782723a385f92b7525f66d29614624de7c5643855423db3a5efd9287e677650300192749adddbbb6734cea9b1d5f5fd4f6ea00ca3f9a95dbbb88f835f5ca64 languageName: node linkType: hard @@ -1504,9 +1616,9 @@ __metadata: languageName: node linkType: hard -"rollup@npm:~2.78.0": - version: 2.78.1 - resolution: "rollup@npm:2.78.1" +"rollup@npm:^2.79.1": + version: 2.79.1 + resolution: "rollup@npm:2.79.1" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -1514,7 +1626,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 9034814383ca5bdb4bea6d499270aeb31cdb0bb884f81b0c6a1d19c63cc973f040e6ee09b7af8a7169dd231c090f4b44ef8b99c4bfdf884aceeb3dcefb8cfa14 + checksum: 6a2bf167b3587d4df709b37d149ad0300692cc5deb510f89ac7bdc77c8738c9546ae3de9322b0968e1ed2b0e984571f5f55aae28fa7de4cfcb1bc5402a4e2be6 languageName: node linkType: hard @@ -1708,35 +1820,41 @@ __metadata: languageName: node linkType: hard -"vite@npm:^3.1.4": - version: 3.1.4 - resolution: "vite@npm:3.1.4" +"vite@npm:^3.2.3": + version: 3.2.4 + resolution: "vite@npm:3.2.4" dependencies: - esbuild: ^0.15.6 + esbuild: ^0.15.9 fsevents: ~2.3.2 - postcss: ^8.4.16 + postcss: ^8.4.18 resolve: ^1.22.1 - rollup: ~2.78.0 + rollup: ^2.79.1 peerDependencies: + "@types/node": ">= 14" less: "*" sass: "*" stylus: "*" + sugarss: "*" terser: ^5.4.0 dependenciesMeta: fsevents: optional: true peerDependenciesMeta: + "@types/node": + optional: true less: optional: true sass: optional: true stylus: optional: true + sugarss: + optional: true terser: optional: true bin: vite: bin/vite.js - checksum: f3e532952b896ca7f746de0e51fc8c98ac482b2a5f0b89538ec89ac615f6edbfe45628fe4fbabab4c5fe07f6e4c2e624360af00d8c5c454af31771952b8c6e72 + checksum: 0f3e8f89c15809bd6bd8dec54b04b7c9b87374314d00928035f9d70190b4b220e8206b5d77a1e4097a5019cebf7862df4fbc11fbbb35c4f75f359999123d2c25 languageName: node linkType: hard @@ -1744,27 +1862,27 @@ __metadata: version: 0.0.0-use.local resolution: "vitepress-starter@workspace:." dependencies: - vitepress: 1.0.0-alpha.19 + vitepress: 1.0.0-alpha.29 vue: ^3.2.40 languageName: unknown linkType: soft -"vitepress@npm:1.0.0-alpha.19": - version: 1.0.0-alpha.19 - resolution: "vitepress@npm:1.0.0-alpha.19" +"vitepress@npm:1.0.0-alpha.29": + version: 1.0.0-alpha.29 + resolution: "vitepress@npm:1.0.0-alpha.29" dependencies: - "@docsearch/css": ^3.2.1 - "@docsearch/js": ^3.2.1 - "@vitejs/plugin-vue": ^3.1.2 - "@vue/devtools-api": ^6.4.2 - "@vueuse/core": ^9.3.0 + "@docsearch/css": ^3.3.0 + "@docsearch/js": ^3.3.0 + "@vitejs/plugin-vue": ^3.2.0 + "@vue/devtools-api": ^6.4.5 + "@vueuse/core": ^9.4.0 body-scroll-lock: 4.0.0-beta.0 shiki: ^0.11.1 - vite: ^3.1.4 - vue: ^3.2.40 + vite: ^3.2.3 + vue: ^3.2.41 bin: vitepress: bin/vitepress.js - checksum: 94dc0a92cb050c283d2a25e7733f20277c74c9bcde3d3c4501ac24a07ed71a7bb22ab4f8613f9f5e9455c18c09a3fa933d5311cdeff9f2e5121504d69c22b195 + checksum: 05f284c8ee3fe80ae6fa9688157ffa14e912ea15ae80f321073f35a1fd0326b859208cb942e6ef8690ef035d8a534b139e0c501223fe63944cda1bd453ac1e09 languageName: node linkType: hard @@ -1811,6 +1929,19 @@ __metadata: languageName: node linkType: hard +"vue@npm:^3.2.41": + version: 3.2.45 + resolution: "vue@npm:3.2.45" + dependencies: + "@vue/compiler-dom": 3.2.45 + "@vue/compiler-sfc": 3.2.45 + "@vue/runtime-dom": 3.2.45 + "@vue/server-renderer": 3.2.45 + "@vue/shared": 3.2.45 + checksum: df60ca80cb9fdce408eccd0c7a4d44720df9855c62e340448650d8048b1edd25da6f3bd99ed7efc19efbe1f3fdcec4ae8067ab10ae50be5bb363d996ad29251a + languageName: node + linkType: hard + "which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" From 7f356d807a5ea76999d4691e4e2ea973c14656e5 Mon Sep 17 00:00:00 2001 From: Nico Date: Tue, 14 Feb 2023 19:30:53 +0100 Subject: [PATCH 04/11] reorganized levels, added content updated dependencies --- .yarnrc.yml | 3 - docs/.vitepress/cache/deps/_metadata.json | 13 + docs/.vitepress/cache/deps/package.json | 1 + docs/.vitepress/cache/deps/vue.js | 9516 ++++++++++++++++++++ docs/.vitepress/cache/deps/vue.js.map | 7 + docs/.vitepress/config.js | 49 +- docs/dev/01-debutant/css.md | 93 + docs/dev/{B1 => 01-debutant}/html.md | 30 +- docs/dev/{B1 => 01-debutant}/index.md | 10 +- docs/dev/{B2 => 02-intermediaire}/git.md | 2 +- docs/dev/02-intermediaire/html.md | 1 + docs/dev/{B2 => 02-intermediaire}/index.md | 20 +- docs/dev/02-intermediaire/javascript.md | 16 + docs/dev/03-avance/html.md | 1 + docs/dev/03-avance/index.md | 22 + docs/dev/B2/html.md | 1 - docs/dev/B2/introduction.md | 1 - docs/dev/B3/html.md | 1 - docs/dev/B3/index.md | 1 - docs/dev/B3/introduction.md | 1 - docs/dev/code-camp/index.md | 24 +- docs/dev/code-camp/sujets.md | 2 +- docs/dev/fragments/base/01-structure.md | 49 + docs/dev/fragments/base/02-robots.md | 15 + docs/dev/fragments/css/00-reset.md | 14 + docs/dev/index.md | 2 +- docs/snippets/css/reset.css | 98 + docs/snippets/html/structure.html | 23 + docs/snippets/robots.txt | 9 + package-lock.json | 1180 +++ package.json | 4 +- yarn.lock | 1977 ---- 32 files changed, 11143 insertions(+), 2043 deletions(-) create mode 100644 docs/.vitepress/cache/deps/_metadata.json create mode 100644 docs/.vitepress/cache/deps/package.json create mode 100644 docs/.vitepress/cache/deps/vue.js create mode 100644 docs/.vitepress/cache/deps/vue.js.map create mode 100644 docs/dev/01-debutant/css.md rename docs/dev/{B1 => 01-debutant}/html.md (67%) rename docs/dev/{B1 => 01-debutant}/index.md (91%) rename docs/dev/{B2 => 02-intermediaire}/git.md (99%) create mode 100644 docs/dev/02-intermediaire/html.md rename docs/dev/{B2 => 02-intermediaire}/index.md (71%) create mode 100644 docs/dev/02-intermediaire/javascript.md create mode 100644 docs/dev/03-avance/html.md create mode 100644 docs/dev/03-avance/index.md delete mode 100644 docs/dev/B2/html.md delete mode 100644 docs/dev/B2/introduction.md delete mode 100644 docs/dev/B3/html.md delete mode 100644 docs/dev/B3/index.md delete mode 100644 docs/dev/B3/introduction.md create mode 100644 docs/dev/fragments/base/01-structure.md create mode 100644 docs/dev/fragments/base/02-robots.md create mode 100644 docs/dev/fragments/css/00-reset.md create mode 100644 docs/snippets/css/reset.css create mode 100644 docs/snippets/html/structure.html create mode 100644 docs/snippets/robots.txt create mode 100644 package-lock.json delete mode 100644 yarn.lock diff --git a/.yarnrc.yml b/.yarnrc.yml index f34f383..e69de29 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +0,0 @@ -plugins: - - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs - spec: "@yarnpkg/plugin-interactive-tools" diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json new file mode 100644 index 0000000..18a01d8 --- /dev/null +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -0,0 +1,13 @@ +{ + "hash": "47151e52", + "browserHash": "b7354247", + "optimized": { + "vue": { + "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "cd8c06e7", + "needsInterop": false + } + }, + "chunks": {} +} \ No newline at end of file diff --git a/docs/.vitepress/cache/deps/package.json b/docs/.vitepress/cache/deps/package.json new file mode 100644 index 0000000..7c34deb --- /dev/null +++ b/docs/.vitepress/cache/deps/package.json @@ -0,0 +1 @@ +{"type":"module"} \ No newline at end of file diff --git a/docs/.vitepress/cache/deps/vue.js b/docs/.vitepress/cache/deps/vue.js new file mode 100644 index 0000000..1708501 --- /dev/null +++ b/docs/.vitepress/cache/deps/vue.js @@ -0,0 +1,9516 @@ +// node_modules/@vue/shared/dist/shared.esm-bundler.js +function makeMap(str, expectsLowerCase) { + const map2 = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map2[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map2[val.toLowerCase()] : (val) => !!map2[val]; +} +var GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"; +var isGloballyWhitelisted = makeMap(GLOBALS_WHITE_LISTED); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value)) { + return value; + } else if (isObject(value)) { + return value; + } +} +var listDelimiterRE = /;(?![^(]*\))/g; +var propertyDelimiterRE = /:([^]+)/; +var styleCommentRE = /\/\*.*?\*\//gs; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} +var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +var isHTMLTag = makeMap(HTML_TAGS); +var isSVGTag = makeMap(SVG_TAGS); +var isVoidTag = makeMap(VOID_TAGS); +var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); +var isBooleanAttr = makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +var isKnownHtmlAttr = makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`); +var isKnownSvgAttr = makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`); +function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} +var toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +var replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +var EMPTY_OBJ = true ? Object.freeze({}) : {}; +var EMPTY_ARR = true ? Object.freeze([]) : []; +var NOOP = () => { +}; +var NO = () => false; +var onRE = /^on[^a-z]/; +var isOn = (key) => onRE.test(key); +var isModelListener = (key) => key.startsWith("onUpdate:"); +var extend = Object.assign; +var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var hasOwn = (val, key) => hasOwnProperty.call(val, key); +var isArray = Array.isArray; +var isMap = (val) => toTypeString(val) === "[object Map]"; +var isSet = (val) => toTypeString(val) === "[object Set]"; +var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +var isFunction = (val) => typeof val === "function"; +var isString = (val) => typeof val === "string"; +var isSymbol = (val) => typeof val === "symbol"; +var isObject = (val) => val !== null && typeof val === "object"; +var isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +var objectToString = Object.prototype.toString; +var toTypeString = (value) => objectToString.call(value); +var toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +var isPlainObject = (val) => toTypeString(val) === "[object Object]"; +var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +var isReservedProp = makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +var isBuiltInDirective = makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"); +var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); +var capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1)); +var toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``); +var hasChanged = (value, oldValue) => !Object.is(value, oldValue); +var invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } +}; +var def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); +}; +var looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +var _globalThis; +var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; + +// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +var activeEffectScope; +var EffectScope = class { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (true) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +}; +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (true) { + warn(`onScopeDispose() is called when there is no active effect scope to be associated with.`); + } +} +var createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; +}; +var wasTracked = (dep) => (dep.w & trackOpBit) > 0; +var newTracked = (dep) => (dep.n & trackOpBit) > 0; +var initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } +}; +var finalizeDepMarkers = (effect2) => { + const { deps } = effect2; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect2); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } +}; +var targetMap = /* @__PURE__ */ new WeakMap(); +var effectTrackDepth = 0; +var trackOpBit = 1; +var maxMarkerBits = 30; +var activeEffect; +var ITERATE_KEY = Symbol(true ? "iterate" : ""); +var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); +var ReactiveEffect = class { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } +}; +function cleanupEffect(effect2) { + const { deps } = effect2; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect2); + } + deps.length = 0; + } +} +function effect(fn, options) { + if (fn.effect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +var shouldTrack = true; +var trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep()); + } + const eventInfo = true ? { effect: activeEffect, target, type, key } : void 0; + trackEffects(dep, eventInfo); + } +} +function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo)); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = true ? { target, type, key, newValue, oldValue, oldTarget } : void 0; + if (deps.length === 1) { + if (deps[0]) { + if (true) { + triggerEffects(deps[0], eventInfo); + } else { + triggerEffects(deps[0]); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + if (true) { + triggerEffects(createDep(effects), eventInfo); + } else { + triggerEffects(createDep(effects)); + } + } +} +function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect2 of effects) { + if (effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + for (const effect2 of effects) { + if (!effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } +} +function triggerEffect(effect2, debuggerEventExtraInfo) { + if (effect2 !== activeEffect || effect2.allowRecurse) { + if (effect2.onTrigger) { + effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + if (effect2.scheduler) { + effect2.scheduler(); + } else { + effect2.run(); + } + } +} +function getDepFromReactive(object, key) { + var _a2; + return (_a2 = targetMap.get(object)) === null || _a2 === void 0 ? void 0 : _a2.get(key); +} +var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); +var builtInSymbols = new Set( + Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +var get$1 = createGetter(); +var shallowGet = createGetter(false, true); +var readonlyGet = createGetter(true); +var shallowReadonlyGet = createGetter(true, true); +var arrayInstrumentations = createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty2(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +function createGetter(isReadonly2 = false, shallow = false) { + return function get2(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + }; +} +var set$1 = createSetter(); +var shallowSet = createSetter(true); +function createSetter(shallow = false) { + return function set2(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + }; +} +function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function has$1(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; +} +function ownKeys(target) { + track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); +} +var mutableHandlers = { + get: get$1, + set: set$1, + deleteProperty, + has: has$1, + ownKeys +}; +var readonlyHandlers = { + get: readonlyGet, + set(target, key) { + if (true) { + warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + }, + deleteProperty(target, key) { + if (true) { + warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + } +}; +var shallowReactiveHandlers = extend({}, mutableHandlers, { + get: shallowGet, + set: shallowSet +}); +var shallowReadonlyHandlers = extend({}, readonlyHandlers, { + get: shallowReadonlyGet +}); +var toShallow = (value) => value; +var getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow3 = false) { + target = target[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +function has(key, isReadonly2 = false) { + const target = this[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow3) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow3) { + return function(...args) { + const target = this[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (true) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this)); + } + return type === "delete" ? false : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + /* TriggerOpTypes.ADD */ + ), + set: createReadonlyMethod( + "set" + /* TriggerOpTypes.SET */ + ), + delete: createReadonlyMethod( + "delete" + /* TriggerOpTypes.DELETE */ + ), + clear: createReadonlyMethod( + "clear" + /* TriggerOpTypes.CLEAR */ + ), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + /* TriggerOpTypes.ADD */ + ), + set: createReadonlyMethod( + "set" + /* TriggerOpTypes.SET */ + ), + delete: createReadonlyMethod( + "delete" + /* TriggerOpTypes.DELETE */ + ), + clear: createReadonlyMethod( + "clear" + /* TriggerOpTypes.CLEAR */ + ), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver); + }; +} +var mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +var shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +var readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +var shallowReadonlyCollectionHandlers = { + get: createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`); + } +} +var reactiveMap = /* @__PURE__ */ new WeakMap(); +var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +var readonlyMap = /* @__PURE__ */ new WeakMap(); +var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function getTargetType(value) { + return value[ + "__v_skip" + /* ReactiveFlags.SKIP */ + ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap); +} +function shallowReactive(target) { + return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap); +} +function readonly(target) { + return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap); +} +function shallowReadonly(target) { + return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (true) { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target[ + "__v_raw" + /* ReactiveFlags.RAW */ + ] && !(isReadonly2 && target[ + "__v_isReactive" + /* ReactiveFlags.IS_REACTIVE */ + ])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]); + } + return !!(value && value[ + "__v_isReactive" + /* ReactiveFlags.IS_REACTIVE */ + ]); +} +function isReadonly(value) { + return !!(value && value[ + "__v_isReadonly" + /* ReactiveFlags.IS_READONLY */ + ]); +} +function isShallow(value) { + return !!(value && value[ + "__v_isShallow" + /* ReactiveFlags.IS_SHALLOW */ + ]); +} +function isProxy(value) { + return isReactive(value) || isReadonly(value); +} +function toRaw(observed) { + const raw = observed && observed[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + def(value, "__v_skip", true); + return value; +} +var toReactive = (value) => isObject(value) ? reactive(value) : value; +var toReadonly = (value) => isObject(value) ? readonly(value) : value; +function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + if (true) { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } else { + trackEffects(ref2.dep || (ref2.dep = createDep())); + } + } +} +function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + if (true) { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } else { + triggerEffects(dep); + } + } +} +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +var RefImpl = class { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } +}; +function triggerRef(ref2) { + triggerRefValue(ref2, true ? ref2.value : void 0); +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +var CustomRefImpl = class { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get2, set: set2 } = factory(() => trackRefValue(this), () => triggerRefValue(this)); + this._get = get2; + this._set = set2; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +}; +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = toRef(object, key); + } + return ret; +} +var ObjectRefImpl = class { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +}; +function toRef(object, key, defaultValue) { + const val = object[key]; + return isRef(val) ? val : new ObjectRefImpl(object, key, defaultValue); +} +var _a$1; +var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this[_a$1] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this[ + "__v_isReadonly" + /* ReactiveFlags.IS_READONLY */ + ] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + trackRefValue(self2); + if (self2._dirty || !self2._cacheable) { + self2._dirty = false; + self2._value = self2.effect.run(); + } + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } +}; +_a$1 = "__v_isReadonly"; +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = true ? () => { + console.warn("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +var _a; +var tick = Promise.resolve(); +_a = "__v_isReadonly"; + +// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +var stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn2(msg, ...args) { + if (false) + return; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling(appWarnHandler, instance, 11, [ + msg + args.join(""), + instance && instance.proxy, + trace.map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`).join("\n"), + trace + ]); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (false) + return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn2(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn2(`${type} is NaN - the duration expression might be incorrect.`); + } +} +var ErrorTypeStrings = { + [ + "sp" + /* LifecycleHooks.SERVER_PREFETCH */ + ]: "serverPrefetch hook", + [ + "bc" + /* LifecycleHooks.BEFORE_CREATE */ + ]: "beforeCreate hook", + [ + "c" + /* LifecycleHooks.CREATED */ + ]: "created hook", + [ + "bm" + /* LifecycleHooks.BEFORE_MOUNT */ + ]: "beforeMount hook", + [ + "m" + /* LifecycleHooks.MOUNTED */ + ]: "mounted hook", + [ + "bu" + /* LifecycleHooks.BEFORE_UPDATE */ + ]: "beforeUpdate hook", + [ + "u" + /* LifecycleHooks.UPDATED */ + ]: "updated", + [ + "bum" + /* LifecycleHooks.BEFORE_UNMOUNT */ + ]: "beforeUnmount hook", + [ + "um" + /* LifecycleHooks.UNMOUNTED */ + ]: "unmounted hook", + [ + "a" + /* LifecycleHooks.ACTIVATED */ + ]: "activated hook", + [ + "da" + /* LifecycleHooks.DEACTIVATED */ + ]: "deactivated hook", + [ + "ec" + /* LifecycleHooks.ERROR_CAPTURED */ + ]: "errorCaptured hook", + [ + "rtc" + /* LifecycleHooks.RENDER_TRACKED */ + ]: "renderTracked hook", + [ + "rtg" + /* LifecycleHooks.RENDER_TRIGGERED */ + ]: "renderTriggered hook", + [ + 0 + /* ErrorCodes.SETUP_FUNCTION */ + ]: "setup function", + [ + 1 + /* ErrorCodes.RENDER_FUNCTION */ + ]: "render function", + [ + 2 + /* ErrorCodes.WATCH_GETTER */ + ]: "watcher getter", + [ + 3 + /* ErrorCodes.WATCH_CALLBACK */ + ]: "watcher callback", + [ + 4 + /* ErrorCodes.WATCH_CLEANUP */ + ]: "watcher cleanup function", + [ + 5 + /* ErrorCodes.NATIVE_EVENT_HANDLER */ + ]: "native event handler", + [ + 6 + /* ErrorCodes.COMPONENT_EVENT_HANDLER */ + ]: "component event handler", + [ + 7 + /* ErrorCodes.VNODE_HOOK */ + ]: "vnode hook", + [ + 8 + /* ErrorCodes.DIRECTIVE_HOOK */ + ]: "directive hook", + [ + 9 + /* ErrorCodes.TRANSITION_HOOK */ + ]: "transition hook", + [ + 10 + /* ErrorCodes.APP_ERROR_HANDLER */ + ]: "app errorHandler", + [ + 11 + /* ErrorCodes.APP_WARN_HANDLER */ + ]: "app warnHandler", + [ + 12 + /* ErrorCodes.FUNCTION_REF */ + ]: "ref function", + [ + 13 + /* ErrorCodes.ASYNC_COMPONENT_LOADER */ + ]: "async component loader", + [ + 14 + /* ErrorCodes.SCHEDULER */ + ]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" +}; +function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = true ? ErrorTypeStrings[type] : type; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + if (true) { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn2(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +var isFlushing = false; +var isFlushPending = false; +var queue = []; +var flushIndex = 0; +var pendingPostFlushCbs = []; +var activePostFlushCbs = null; +var postFlushIndex = 0; +var resolvedPromise = Promise.resolve(); +var currentFlushPromise = null; +var RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJobId = getId(queue[middle]); + middleJobId < id ? start = middle + 1 : end = middle; + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +var getId = (job) => job.id == null ? Infinity : job.id; +var comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling( + job, + null, + 14 + /* ErrorCodes.SCHEDULER */ + ); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn2(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +var isHmrUpdating = false; +var hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (true) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +var map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.update(); + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn("[HMR] Root or manually mounted instance modified. Full reload required."); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete(normalizeClassComponent(instance.type)); + } + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn(`[HMR] Something went wrong during Vue component hot-reload. Full reload required.`); + } + }; +} +var devtools; +var buffer = []; +var devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools) { + devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook(hook, target) { + var _a2, _b; + devtools = hook; + if (devtools) { + devtools.enabled = true; + buffer.forEach(({ event, args }) => devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.userAgent) === null || _b === void 0 ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount", app); +} +var devtoolsComponentAdded = createDevtoolsComponentHook( + "component:added" + /* DevtoolsHooks.COMPONENT_ADDED */ +); +var devtoolsComponentUpdated = createDevtoolsComponentHook( + "component:updated" + /* DevtoolsHooks.COMPONENT_UPDATED */ +); +var _devtoolsComponentRemoved = createDevtoolsComponentHook( + "component:removed" + /* DevtoolsHooks.COMPONENT_REMOVED */ +); +var devtoolsComponentRemoved = (component) => { + if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component); + }; +} +var devtoolsPerfStart = createDevtoolsPerformanceHook( + "perf:start" + /* DevtoolsHooks.PERFORMANCE_START */ +); +var devtoolsPerfEnd = createDevtoolsPerformanceHook( + "perf:end" + /* DevtoolsHooks.PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1("component:emit", component.appContext.app, component, event, params); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + if (true) { + const { emitsOptions, propsOptions: [propsOptions] } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn2(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn2(`Invalid event arguments: event validation failed for event "${event}".`); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + if (true) { + devtoolsComponentEmit(instance, event, args); + } + if (true) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn2(`Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(instance, instance.type)} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".`); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling(handler, instance, 6, args); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling(onceHandler, instance, 6, args); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +var currentRenderingInstance = null; +var currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +var withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (true) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +var accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit: emit2, render: render2, renderCache, data, setupState, ctx, inheritAttrs } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + if (true) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + result = normalizeVNode(render2.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx)); + fallthroughAttrs = attrs; + } else { + const render3 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode(render3.length > 1 ? render3(props, true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit: emit2 + } : { attrs, slots, emit: emit2 }) : render3( + props, + null + /* we know it doesn't need it */ + )); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError( + err, + instance, + 1 + /* ErrorCodes.RENDER_FUNCTION */ + ); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn2(`Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`); + } + if (eventAttrs.length) { + warn2(`Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn2(`Runtime directive used on component with non-element root node. The directives will not function as intended.`); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn2(`Component inside renders non-element root node that cannot be animated.`); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +var getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, void 0]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; +} +var getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +var filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +var isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } +} +var isSuspense = (type) => type.__isSuspense; +var SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals); + } else { + patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren +}; +var Suspense = SuspenseImpl; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + const { p: patch, o: { createElement } } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals); + patch(null, suspense.pendingBranch = vnode.ssContent, hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else { + suspense.pendingId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized); + suspense.resolve(true); + } else { + patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + suspense.pendingId++; + patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +var hasWarned = false; +function createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"](` is an experimental feature and its API will likely change.`); + } + const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove: remove2 } } = rendererInternals; + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } + const suspense = { + vnode, + parent, + parentComponent, + isSVG, + container, + hiddenContainer, + anchor, + deps: 0, + pendingId: 0, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: true, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false) { + if (true) { + if (!resume && !suspense.pendingBranch) { + throw new Error(`suspense.resolve() is called without a pending branch.`); + } + if (suspense.isUnmounted) { + throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`); + } + } + const { vnode: vnode2, activeBranch, pendingBranch, pendingId, effects, parentComponent: parentComponent2, container: container2 } = suspense; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor2, + 0 + /* MoveType.ENTER */ + ); + } + }; + } + let { anchor: anchor2 } = suspense; + if (activeBranch) { + anchor2 = next(activeBranch); + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move( + pendingBranch, + container2, + anchor2, + 0 + /* MoveType.ENTER */ + ); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent2 = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent2) { + if (parent2.pendingBranch) { + parent2.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent2 = parent2.parent; + } + if (!hasUnresolvedAncestor) { + queuePostFlushCb(effects); + } + suspense.effects = []; + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + isSVG2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError( + err, + instance, + 0 + /* ErrorCodes.SETUP_FUNCTION */ + ); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (true) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + isSVG, + optimized + ); + if (placeholder) { + remove2(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (true) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove); + } + if (suspense.pendingBranch) { + unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + document.createElement("div"), + null, + isSVG, + slotScopeIds, + optimized, + rendererInternals, + true + /* hydrating */ + ); + const result = hydrateNode(node, suspense.pendingBranch = vnode.ssContent, parentComponent, suspense, slotScopeIds, optimized); + if (suspense.deps === 0) { + suspense.resolve(); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild) { + warn2(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + const el = vnode.el = branch.el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function provide(key, value) { + if (!currentInstance) { + if (true) { + warn2(`provide() can only be used inside setup().`); + } + } else { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = currentInstance || currentRenderingInstance; + if (instance) { + const provides = instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance.proxy) : defaultValue; + } else if (true) { + warn2(`injection "${String(key)}" not found.`); + } + } else if (true) { + warn2(`inject() can only be used inside setup() or functional components.`); + } +} +function watchEffect(effect2, options) { + return doWatch(effect2, null, options); +} +function watchPostEffect(effect2, options) { + return doWatch(effect2, null, true ? Object.assign(Object.assign({}, options), { flush: "post" }) : { flush: "post" }); +} +function watchSyncEffect(effect2, options) { + return doWatch(effect2, null, true ? Object.assign(Object.assign({}, options), { flush: "sync" }) : { flush: "sync" }); +} +var INITIAL_WATCHER_VALUE = {}; +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn2(`\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + if (!cb) { + if (immediate !== void 0) { + warn2(`watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`); + } + if (deep !== void 0) { + warn2(`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`); + } + } + const warnInvalidSource = (s) => { + warn2(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`); + }; + const instance = getCurrentScope() === (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return traverse(s); + } else if (isFunction(s)) { + return callWithErrorHandling( + s, + instance, + 2 + /* ErrorCodes.WATCH_GETTER */ + ); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling( + source, + instance, + 2 + /* ErrorCodes.WATCH_GETTER */ + ); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling(source, instance, 3, [onCleanup]); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect2.onStop = () => { + callWithErrorHandling( + fn, + instance, + 4 + /* ErrorCodes.WATCH_CLEANUP */ + ); + }; + }; + let ssrCleanup; + if (isInSSRComponentSetup) { + onCleanup = NOOP; + if (!cb) { + getter(); + } else if (immediate) { + callWithAsyncErrorHandling(cb, instance, 3, [ + getter(), + isMultiSource ? [] : void 0, + onCleanup + ]); + } + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else { + return NOOP; + } + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect2.active) { + return; + } + if (cb) { + const newValue = effect2.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect2.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect2 = new ReactiveEffect(getter, scheduler); + if (true) { + effect2.onTrack = onTrack; + effect2.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect2.run(); + } + } else if (flush === "post") { + queuePostRenderEffect(effect2.run.bind(effect2), instance && instance.suspense); + } else { + effect2.run(); + } + const unwatch = () => { + effect2.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect2); + } + }; + if (ssrCleanup) + ssrCleanup.push(unwatch); + return unwatch; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} +function traverse(value, seen) { + if (!isObject(value) || value[ + "__v_skip" + /* ReactiveFlags.SKIP */ + ]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; +} +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +var TransitionHookValidator = [Function, Array]; +var BaseTransitionImpl = { + name: `BaseTransition`, + props: { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn2(" can only be used on a single element or component. Use for lists."); + break; + } + child = c; + hasFound = true; + if (false) + break; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn2(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.update(); + } + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el._leaveCb = () => { + earlyRemove(); + el._leaveCb = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } +}; +var BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance) { + const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook3 = (hook, args) => { + hook && callWithAsyncErrorHandling(hook, instance, 9, args); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook3(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) + done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el._leaveCb) { + el._leaveCb( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) { + leavingVNode.el._leaveCb(); + } + callHook3(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el._enterCb = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook3(cancelHook, [el]); + } else { + callHook3(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el._enterCb = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove2) { + const key2 = String(vnode.key); + if (el._enterCb) { + el._enterCb( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove2(); + } + callHook3(onBeforeLeave, [el]); + let called = false; + const done = el._leaveCb = (cancelled) => { + if (called) + return; + called = true; + remove2(); + if (cancelled) { + callHook3(onLeaveCancelled, [el]); + } else { + callHook3(onAfterLeave, [el]); + } + el._leaveCb = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode; +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) + keyedFragmentCount++; + ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key)); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} +function defineComponent(options) { + return isFunction(options) ? { setup: options, name: options.name } : options; +} +var isAsyncWrapper = (i) => !!i.type.__asyncLoader; +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve2, reject) => { + const userRetry = () => resolve2(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn2(`Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + /* do not throw in dev if user provided error component */ + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error(`Async component timed out after ${timeout}ms.`); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +var KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + if (true) { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch(instance2.vnode, vnode, container, anchor, instance2, parentSuspense, isSVG, vnode.slotScopeIds, optimized); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + if (true) { + warn2(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName(isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +var KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p2) => matches(p2, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (true) { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn2(`${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`); + } +} +var createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) +); +var onBeforeMount = createHook( + "bm" + /* LifecycleHooks.BEFORE_MOUNT */ +); +var onMounted = createHook( + "m" + /* LifecycleHooks.MOUNTED */ +); +var onBeforeUpdate = createHook( + "bu" + /* LifecycleHooks.BEFORE_UPDATE */ +); +var onUpdated = createHook( + "u" + /* LifecycleHooks.UPDATED */ +); +var onBeforeUnmount = createHook( + "bum" + /* LifecycleHooks.BEFORE_UNMOUNT */ +); +var onUnmounted = createHook( + "um" + /* LifecycleHooks.UNMOUNTED */ +); +var onServerPrefetch = createHook( + "sp" + /* LifecycleHooks.SERVER_PREFETCH */ +); +var onRenderTriggered = createHook( + "rtg" + /* LifecycleHooks.RENDER_TRIGGERED */ +); +var onRenderTracked = createHook( + "rtc" + /* LifecycleHooks.RENDER_TRACKED */ +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn2("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + const internalInstance = currentRenderingInstance; + if (internalInstance === null) { + warn2(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(internalInstance) || internalInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +var COMPONENTS = "components"; +var DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +var NULL_DYNAMIC_COMPONENT = Symbol(); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn2(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (true) { + warn2(`resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn2(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i])); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) + res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn2(`SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + /* PatchFlags.BAIL */ + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) + return true; + if (child.type === Comment) + return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn2(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +var getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); +}; +var publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => true ? shallowReadonly(i.props) : i.props, + $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +var isReservedPrefix = (key) => key === "_" || key === "$"; +var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +var PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1: + return setupState[key]; + case 2: + return data[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn2(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`); + } else if (instance === currentRenderingInstance) { + warn2(`Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn2(`Cannot mutate + +``` + +::: diff --git a/docs/dev/03-avance/html.md b/docs/dev/03-avance/html.md new file mode 100644 index 0000000..0413519 --- /dev/null +++ b/docs/dev/03-avance/html.md @@ -0,0 +1 @@ +# HTML – Avancé diff --git a/docs/dev/03-avance/index.md b/docs/dev/03-avance/index.md new file mode 100644 index 0000000..93beb4a --- /dev/null +++ b/docs/dev/03-avance/index.md @@ -0,0 +1,22 @@ +# Avancé – Expertise + +Au cours de votre deuxième année de formation en développement web, vous apprendrez à créer des pages complexes et dynamiques. + +## Programme + +:::info Voici à titre indicatif le programme prévisionnel pour la troisième année. +Les sujets seront tous évoqués mais pas forcément dans l'ordre affiché. +::: + +1. HTML + 1. ARIA +2. CSS + 1. Propriétés logiques + 2. Variables +3. JS avancé (contenus dynamiques) + 1. API Rest + 2. Fetch + 3. Graphql + 4. Opérations CRUD +4. Webapp (node) +5. CI/CD (netlify/vercel) diff --git a/docs/dev/B2/html.md b/docs/dev/B2/html.md deleted file mode 100644 index ca01114..0000000 --- a/docs/dev/B2/html.md +++ /dev/null @@ -1 +0,0 @@ -# HTML B2 \ No newline at end of file diff --git a/docs/dev/B2/introduction.md b/docs/dev/B2/introduction.md deleted file mode 100644 index 2b38a8a..0000000 --- a/docs/dev/B2/introduction.md +++ /dev/null @@ -1 +0,0 @@ -# Intro B2 \ No newline at end of file diff --git a/docs/dev/B3/html.md b/docs/dev/B3/html.md deleted file mode 100644 index ca01114..0000000 --- a/docs/dev/B3/html.md +++ /dev/null @@ -1 +0,0 @@ -# HTML B2 \ No newline at end of file diff --git a/docs/dev/B3/index.md b/docs/dev/B3/index.md deleted file mode 100644 index 0b9a735..0000000 --- a/docs/dev/B3/index.md +++ /dev/null @@ -1 +0,0 @@ -# Frontend B3 \ No newline at end of file diff --git a/docs/dev/B3/introduction.md b/docs/dev/B3/introduction.md deleted file mode 100644 index 4d0a1a5..0000000 --- a/docs/dev/B3/introduction.md +++ /dev/null @@ -1 +0,0 @@ -# Intro B3 \ No newline at end of file diff --git a/docs/dev/code-camp/index.md b/docs/dev/code-camp/index.md index 65edd88..9ea86a9 100644 --- a/docs/dev/code-camp/index.md +++ b/docs/dev/code-camp/index.md @@ -12,7 +12,7 @@ Vous êtes sur le point de commencer une semaine intensive de développement web - **FTP**/SFTP = transfert de fichiers - **HTML** = contenus - **CSS** = styles -- **Javascript** = éléments dynamiques +- **JavaScript** = éléments dynamiques - **Fonts** = polices de caractères ## Configuration et préparation @@ -41,25 +41,27 @@ code-camp/ │ └── icon-guitar.svg └── 03_web/ ├── assets/ - │ ├── css/ - │ │ └── style.css │ ├── fonts/ │ │ └── arial.woff2 │ ├── images/ │ │ └── hero.jpg - │ ├── js/ - │ │ └── main.js │ └── svg/ │ └── icon-guitar.svg + ├── css/ + │ ├── reset.css + │ └── style.css + ├── js/ + │ └── main.js ├── favicon.ico - └── index.html + ├── index.html + └── robots.txt ``` ::: ## HTML -Le HTML (hyper text markup language) est un langage de programmation qui sert à structurer, hiérarchiser et afficher le contenu d'une page web. Il s'écrit avec des balises suivant cette syntaxe : +Le HTML (hyper text markup language) est un langage de programmation qui sert à structurer, hiérarchiser et afficher le contenu d'une page web. Il s'écrit avec des balises suivant cette syntaxe : `<` `nom de la balise` `attributs` `>` `contenu de la balise` `` @@ -128,7 +130,7 @@ Ci-dessous, quelques exemples de balises (listes non exhaustives). ## CSS -Le langage CSS (cascading style sheets) permet d'agir sur le style du document HTML. C'est-à dire toute la partie visuelle du contenu comme par exemple : +Le langage CSS (cascading style sheets) permet d'agir sur le style du document HTML. C'est-à dire toute la partie visuelle du contenu comme par exemple : - la mise en page - les couleurs @@ -137,7 +139,7 @@ Le langage CSS (cascading style sheets) permet d'agir sur - les polices de caractères - etc. -On parle de « règle CSS ». Une règle se construit ainsi : +On parle de “ règle CSS ”. Une règle se construit ainsi : `sélecteur` `{` `propriété` `:` `valeur` `;` `}` @@ -200,7 +202,7 @@ Se référer à [la documentation.](https://developer.mozilla.org/fr/docs/Web/CS ### La cascade du style -Le CSS est régit par un concept appelé la cascade. La cascade est un ensemble de règles de priorité et d'importance. Elles servent à déterminer la règle CSS qui sera appliquée en cas de « conflit » entre plusieurs règles. +Le CSS est régit par un concept appelé la cascade. La cascade est un ensemble de règles de priorité et d'importance. Elles servent à déterminer la règle CSS qui sera appliquée en cas de “ conflit ” entre plusieurs règles. Les deux éléments de la cascade que nous utiliseront le plus ici sont **la spécificité et l'ordre.** @@ -209,7 +211,7 @@ Les deux éléments de la cascade que nous utiliseront le plus ici sont **la sp ## Accessibilité -D'après [Access42 :](https://access42.net/) +D'après [Access42 :](https://access42.net/) > L’accessibilité numérique est un droit fondamental. C’est la possibilité pour toutes et tous d’utiliser les outils informatiques, quelle que soit leur façon d’y accéder. diff --git a/docs/dev/code-camp/sujets.md b/docs/dev/code-camp/sujets.md index 347cf85..f2262d4 100644 --- a/docs/dev/code-camp/sujets.md +++ b/docs/dev/code-camp/sujets.md @@ -8,7 +8,7 @@ En suivant les maquettes fournies ou en imaginant votre propre design, **réalis Le site devra être développé en mobile first et être responsive. -Il devra obligatoirement contenir ces éléments : +Il devra obligatoirement contenir ces éléments : - une photo de l'artiste - un clip vidéo diff --git a/docs/dev/fragments/base/01-structure.md b/docs/dev/fragments/base/01-structure.md new file mode 100644 index 0000000..9077f4b --- /dev/null +++ b/docs/dev/fragments/base/01-structure.md @@ -0,0 +1,49 @@ +# Structure basique d'un dossier web + +Lorsque vous commencez un nouveau projet, aidez-vous de cette structure pour créer les fichiers, dossiers et liens nécessaires. + +## Structure complète + +::: details Afficher la structure + +``` +code-camp/ +├── 00_sources/ +│ ├── fonts/ +│ │ └── arial.ttf +│ └── images/ +│ └── unsplash-concert_crowd.png +├── 01_templates/ +│ ├── index.fig +│ ├── index.sketch +│ └── index.xd +├── 02_export/ +│ ├── images/ +│ │ └── hero.jpg +│ └── icons/ +│ └── icon-guitar.svg +└── 03_web/ // [!code focus] + ├── assets/ // [!code focus] + │ ├── fonts/ // [!code focus] + │ │ └── arial.woff2 // [!code focus] + │ ├── images/ // [!code focus] + │ │ └── hero.jpg // [!code focus] + │ └── svg/ // [!code focus] + │ └── icon-guitar.svg // [!code focus] + ├── css/ // [!code focus] + │ ├── reset.css // [!code focus] + │ └── style.css // [!code focus] + ├── js/ // [!code focus] + │ └── main.js // [!code focus] + ├── favicon.ico // [!code focus] + ├── index.html // [!code focus] + └── robots.txt // [!code focus] +``` + +::: + +## Base HTML + +Exemple d'un fichier HTML contenant les liens vers les fichiers CSS, JS ainsi qu'une image. + +<<< @/snippets/html/structure.html{8,9,16,20} diff --git a/docs/dev/fragments/base/02-robots.md b/docs/dev/fragments/base/02-robots.md new file mode 100644 index 0000000..2619bc0 --- /dev/null +++ b/docs/dev/fragments/base/02-robots.md @@ -0,0 +1,15 @@ +# robots.txt + +Le fichier `robots.txt` est un fichier placé à la racine du dossier web. Il permet de donner des instructions aux moteurs de recherche qui visitent un site. + +Dans sa configuration la plus simple, il permet d'autoriser ou d'interdire l'indexation d'un site par les moteurs de recherche. + +[Documentation plus complète.](http://robots-txt.com/) + +## Autoriser + +<<< @/snippets/robots.txt#allow + +## Interdire + +<<< @/snippets/robots.txt#disallow diff --git a/docs/dev/fragments/css/00-reset.md b/docs/dev/fragments/css/00-reset.md new file mode 100644 index 0000000..0919be0 --- /dev/null +++ b/docs/dev/fragments/css/00-reset.md @@ -0,0 +1,14 @@ +# reset.css + +::: info +Le “ reset CSS ” est une méthode commune de remise à zéro des styles par défaut des différents navigateurs web. Ceci permet de partir d'une base “ saine ” en terme de styles. +::: + +Voici ma version personnelle de ce fichier. Il existe autant de versions que de développeuses et développeurs, chacun adaptant son `reset.css` à ses préférences et/ou habitudes de développement. + +- [le reset de Josh Comeau](https://www.joshwcomeau.com/css/custom-css-reset/) +- [le reset d'Andy Bell](https://andy-bell.co.uk/a-modern-css-reset/) + +J'ai légèrement adaptée le mien depuis la version de [Elly Loel.](https://gist.github.com/EllyLoel/4ff8a6472247e6dd2315fd4038926522) + +<<< @/snippets/css/reset.css diff --git a/docs/dev/index.md b/docs/dev/index.md index 6b9ee59..84ae635 100644 --- a/docs/dev/index.md +++ b/docs/dev/index.md @@ -4,7 +4,7 @@ Bienvenue dans le monde merveilleux du développement web. En commençant par les bases HTML/CSS, nous approfondirons nos connaissances de ces deux langages avant de poursuivre vers le JavaScript. -Nous aborderons l'apprentissage du développement web par le prisme de [l’accessibilité numérique](https://access42.net/decouvrir-accessibilite?lang=fr) et de « [l’amélioration progressive](https://briefs.video/videos/is-progressive-enhancement-dead-yet/) » +Nous aborderons l'apprentissage du développement web par le prisme de [l’accessibilité numérique](https://access42.net/decouvrir-accessibilite?lang=fr) et de “ [l’amélioration progressive](https://briefs.video/videos/is-progressive-enhancement-dead-yet/) ” ## Ressources diff --git a/docs/snippets/css/reset.css b/docs/snippets/css/reset.css new file mode 100644 index 0000000..074cdb8 --- /dev/null +++ b/docs/snippets/css/reset.css @@ -0,0 +1,98 @@ +/* RESET */ +* { + /* Remove default margin on everything */ + margin: 0; + /* Remove default padding on everything */ + padding: 0; + /* Calc `em` based line height, bigger line height for smaller font size and smaller line height for bigger font size: https://kittygiraudel.com/2020/05/18/using-calc-to-figure-out-optimal-line-height/ */ + line-height: calc(0.25rem + 1em + 0.25rem); +} +/* Use a more-intuitive box-sizing model on everything */ +*, +::before, +::after { + box-sizing: border-box; +} +/* Remove border and set sensible defaults for backgrounds, on all elements except fieldset progress and meter */ +*:where(:not(fieldset, progress, meter)) { + border-width: 0; + border-style: solid; + background-origin: border-box; + background-repeat: no-repeat; +} +html { + /* Allow percentage-based heights in the application */ + block-size: 100%; + /* Making sure text size is only controlled by font-size */ + -webkit-text-size-adjust: none; + /* Improve text rendering */ + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} +/* Smooth scrolling for users that don't prefer reduced motion */ +@media (prefers-reduced-motion: no-preference) { + html:focus-within { + scroll-behavior: smooth; + } +} +body { + overflow-x: hidden; + font-family: Arial, sans-serif; + font-weight: normal; + /* Allow percentage-based heights in the application */ + min-block-size: 100%; + /* https://www.sarasoueidan.com/blog/safari-fluid-typography-bug-fix/ */ + -webkit-marquee-increment: 0vw; +} +/* Improve media defaults */ +:where(img, svg, video, canvas, audio, iframe, embed, object) { + display: block; +} +:where(img, svg, video) { + block-size: auto; + max-inline-size: 100%; +} +/* Smaller line height for titles */ +:where(h1, h2, h3) { + line-height: 1.1; +} +/* Avoid text overflows */ +:where(p, h1, h2, h3, h4, h5, h6) { + overflow-wrap: break-word; +} +/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ +:where(ul, ol)[role='list'] { + list-style: none; +} +/* More readable underline style for anchor tags without a class. This could be set on anchor tags globally, but it can cause conflicts. */ +a:not([class]) { + text-decoration-skip-ink: auto; +} +/* Make it clear that interactive elements are interactive */ +:where(a[href], area, button, input, label[for], select, summary, textarea, [tabindex]:not([tabindex*='-'])) { + cursor: pointer; + touch-action: manipulation; +} +:where(input[type='file']) { + cursor: auto; +} +:where(input[type='file'])::-webkit-file-upload-button, +:where(input[type='file'])::file-selector-button { + cursor: pointer; +} + +/* Make sure users can't select button text */ +:where(button, button[type], input[type='button'], input[type='submit'], input[type='reset']), +:where(input[type='file'])::-webkit-file-upload-button, +:where(input[type='file'])::file-selector-button { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + user-select: none; + text-align: center; +} +/* Disabled cursor for disabled buttons */ +:where(button, button[type], input[type='button'], input[type='submit'], input[type='reset'])[disabled] { + cursor: not-allowed; +} +/* END RESET */ \ No newline at end of file diff --git a/docs/snippets/html/structure.html b/docs/snippets/html/structure.html new file mode 100644 index 0000000..5cad76e --- /dev/null +++ b/docs/snippets/html/structure.html @@ -0,0 +1,23 @@ + + + + + + + + + + Base + + + +
+
+ +
+
+ + + + + diff --git a/docs/snippets/robots.txt b/docs/snippets/robots.txt new file mode 100644 index 0000000..abf082b --- /dev/null +++ b/docs/snippets/robots.txt @@ -0,0 +1,9 @@ +// #region allow +User-agent: * +Allow: / +// #endregion allow + +// #region disallow +User-agent: * +Disallow: / +// #endregion disallow \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bb56f23 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1180 @@ +{ + "name": "vitepress-starter", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vitepress-starter", + "devDependencies": { + "vitepress": "1.0.0-alpha.46", + "vue": "^3.2.47" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.4.tgz", + "integrity": "sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-shared": "1.7.4" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.4.tgz", + "integrity": "sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-shared": "1.7.4" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.4.tgz", + "integrity": "sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==", + "dev": true + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.3.tgz", + "integrity": "sha512-hWH1yCxgG3+R/xZIscmUrWAIBnmBFHH5j30fY/+aPkEZWt90wYILfAHIOZ1/Wxhho5SkPfwFmT7ooX2d9JeQBw==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.14.3" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.3.tgz", + "integrity": "sha512-oZJofOoD9FQOwiGTzyRnmzvh3ZP8WVTNPBLH5xU5JNF7drDbRT0ocVT0h/xB2rPHYzOeXRrLaQQBwRT/CKom0Q==", + "dev": true + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.3.tgz", + "integrity": "sha512-ES0hHQnzWjeioLQf5Nq+x1AWdZJ50znNPSH3puB/Y4Xsg4Av1bvLmTJe7SY2uqONaeMTvL0OaVcoVtQgJVw0vg==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.14.3" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.3.tgz", + "integrity": "sha512-PBcPb0+f5Xbh5UfLZNx2Ow589OdP8WYjB4CnvupfYBrl9JyC1sdH4jcq/ri8osO/mCZYjZrQsKAPIqW/gQmizQ==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.14.3", + "@algolia/client-search": "4.14.3", + "@algolia/transporter": "4.14.3" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.3.tgz", + "integrity": "sha512-eAwQq0Hb/aauv9NhCH5Dp3Nm29oFx28sayFN2fdOWemwSeJHIl7TmcsxVlRsO50fsD8CtPcDhtGeD3AIFLNvqw==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.14.3", + "@algolia/client-search": "4.14.3", + "@algolia/requester-common": "4.14.3", + "@algolia/transporter": "4.14.3" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.3.tgz", + "integrity": "sha512-jkPPDZdi63IK64Yg4WccdCsAP4pHxSkr4usplkUZM5C1l1oEpZXsy2c579LQ0rvwCs5JFmwfNG4ahOszidfWPw==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.14.3", + "@algolia/transporter": "4.14.3" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.3.tgz", + "integrity": "sha512-UCX1MtkVNgaOL9f0e22x6tC9e2H3unZQlSUdnVaSKpZ+hdSChXGaRjp2UIT7pxmPqNCyv51F597KEX5WT60jNg==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.14.3", + "@algolia/requester-common": "4.14.3", + "@algolia/transporter": "4.14.3" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.3.tgz", + "integrity": "sha512-I2U7xBx5OPFdPLA8AXKUPPxGY3HDxZ4r7+mlZ8ZpLbI8/ri6fnu6B4z3wcL7sgHhDYMwnAE8Xr0AB0h3Hnkp4A==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.14.3", + "@algolia/requester-common": "4.14.3", + "@algolia/transporter": "4.14.3" + } + }, + "node_modules/@algolia/logger-common": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.3.tgz", + "integrity": "sha512-kUEAZaBt/J3RjYi8MEBT2QEexJR2kAE2mtLmezsmqMQZTV502TkHCxYzTwY2dE7OKcUTxi4OFlMuS4GId9CWPw==", + "dev": true + }, + "node_modules/@algolia/logger-console": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.3.tgz", + "integrity": "sha512-ZWqAlUITktiMN2EiFpQIFCJS10N96A++yrexqC2Z+3hgF/JcKrOxOdT4nSCQoEPvU4Ki9QKbpzbebRDemZt/hw==", + "dev": true, + "dependencies": { + "@algolia/logger-common": "4.14.3" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.3.tgz", + "integrity": "sha512-AZeg2T08WLUPvDncl2XLX2O67W5wIO8MNaT7z5ii5LgBTuk/rU4CikTjCe2xsUleIZeFl++QrPAi4Bdxws6r/Q==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.14.3" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.3.tgz", + "integrity": "sha512-RrRzqNyKFDP7IkTuV3XvYGF9cDPn9h6qEDl595lXva3YUk9YSS8+MGZnnkOMHvjkrSCKfoLeLbm/T4tmoIeclw==", + "dev": true + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.3.tgz", + "integrity": "sha512-O5wnPxtDRPuW2U0EaOz9rMMWdlhwP0J0eSL1Z7TtXF8xnUeeUyNJrdhV5uy2CAp6RbhM1VuC3sOJcIR6Av+vbA==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.14.3" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.3.tgz", + "integrity": "sha512-2qlKlKsnGJ008exFRb5RTeTOqhLZj0bkMCMVskxoqWejs2Q2QtWmsiH98hDfpw0fmnyhzHEt0Z7lqxBYp8bW2w==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.14.3", + "@algolia/logger-common": "4.14.3", + "@algolia/requester-common": "4.14.3" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.3.tgz", + "integrity": "sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==", + "dev": true + }, + "node_modules/@docsearch/js": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.3.3.tgz", + "integrity": "sha512-2xAv2GFuHzzmG0SSZgf8wHX0qZX8n9Y1ZirKUk5Wrdc+vH9CL837x2hZIUdwcPZI9caBA+/CzxsS68O4waYjUQ==", + "dev": true, + "dependencies": { + "@docsearch/react": "3.3.3", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.3.tgz", + "integrity": "sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-core": "1.7.4", + "@algolia/autocomplete-preset-algolia": "1.7.4", + "@docsearch/css": "3.3.3", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", + "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==", + "dev": true + }, + "node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dev": true, + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==", + "dev": true + }, + "node_modules/@vueuse/core": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.12.0.tgz", + "integrity": "sha512-h/Di8Bvf6xRcvS/PvUVheiMYYz3U0tH3X25YxONSaAUBa841ayMwxkuzx/DGUMCW/wHWzD8tRy2zYmOC36r4sg==", + "dev": true, + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.12.0", + "@vueuse/shared": "9.12.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.12.0.tgz", + "integrity": "sha512-9oJ9MM9lFLlmvxXUqsR1wLt1uF7EVbP5iYaHJYqk+G2PbMjY6EXvZeTjbdO89HgoF5cI6z49o2zT/jD9SVoNpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.12.0.tgz", + "integrity": "sha512-TWuJLACQ0BVithVTRbex4Wf1a1VaRuSpVeyEd4vMUWl54PzlE0ciFUshKCXnlLuD0lxIaLK4Ypj3NXYzZh4+SQ==", + "dev": true, + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/algoliasearch": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.3.tgz", + "integrity": "sha512-GZTEuxzfWbP/vr7ZJfGzIl8fOsoxN916Z6FY2Egc9q2TmZ6hvq5KfAxY89pPW01oW/2HDEKA8d30f9iAH9eXYg==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.14.3", + "@algolia/cache-common": "4.14.3", + "@algolia/cache-in-memory": "4.14.3", + "@algolia/client-account": "4.14.3", + "@algolia/client-analytics": "4.14.3", + "@algolia/client-common": "4.14.3", + "@algolia/client-personalization": "4.14.3", + "@algolia/client-search": "4.14.3", + "@algolia/logger-common": "4.14.3", + "@algolia/logger-console": "4.14.3", + "@algolia/requester-browser-xhr": "4.14.3", + "@algolia/requester-common": "4.14.3", + "@algolia/requester-node-http": "4.14.3", + "@algolia/transporter": "4.14.3" + } + }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", + "dev": true + }, + "node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==", + "dev": true + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.15.0.tgz", + "integrity": "sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/shiki": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", + "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", + "dev": true, + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/vite": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.1.tgz", + "integrity": "sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==", + "dev": true, + "dependencies": { + "esbuild": "^0.16.14", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.10.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitepress": { + "version": "1.0.0-alpha.46", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-alpha.46.tgz", + "integrity": "sha512-HiKiHzC0iTPsRsKs8XcsMeMzCpcCt5LWcX9mpDr288Ju+nQf1G8A2+Wm44ZkBsVv4EHxFK4ChmWyZrL1OJUXpg==", + "dev": true, + "dependencies": { + "@docsearch/css": "^3.3.2", + "@docsearch/js": "^3.3.2", + "@vitejs/plugin-vue": "^4.0.0", + "@vue/devtools-api": "^6.5.0", + "@vueuse/core": "^9.12.0", + "body-scroll-lock": "4.0.0-beta.0", + "shiki": "^0.14.0", + "vite": "^4.0.4", + "vue": "^3.2.45" + }, + "bin": { + "vitepress": "bin/vitepress.js" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, + "node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } +} diff --git a/package.json b/package.json index d94bd6c..2c463be 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "serve": "vitepress serve docs" }, "devDependencies": { - "vitepress": "1.0.0-alpha.29", - "vue": "^3.2.40" + "vitepress": "1.0.0-alpha.46", + "vue": "^3.2.47" } } diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index c0ba2c6..0000000 --- a/yarn.lock +++ /dev/null @@ -1,1977 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@algolia/autocomplete-core@npm:1.7.2": - version: 1.7.2 - resolution: "@algolia/autocomplete-core@npm:1.7.2" - dependencies: - "@algolia/autocomplete-shared": 1.7.2 - checksum: 7d3e879ac74f2d3fd6f80a01d6c05bd22264c428030396234112be7628a80d3a7c250613b2d4102f8ef63115be7b96d8d0231bdf8a02aa9b58873500aa61ffcc - languageName: node - linkType: hard - -"@algolia/autocomplete-preset-algolia@npm:1.7.2": - version: 1.7.2 - resolution: "@algolia/autocomplete-preset-algolia@npm:1.7.2" - dependencies: - "@algolia/autocomplete-shared": 1.7.2 - peerDependencies: - "@algolia/client-search": ">= 4.9.1 < 6" - algoliasearch: ">= 4.9.1 < 6" - checksum: 7120ce1d312dbe6d898a0cecd9b28e45f9162a2fd9208a4c4e2efa77027455ee083c11cb782196374da717e990d6ca362c286ace475db97916e52bd277061d77 - languageName: node - linkType: hard - -"@algolia/autocomplete-shared@npm:1.7.2": - version: 1.7.2 - resolution: "@algolia/autocomplete-shared@npm:1.7.2" - checksum: 8336cd1e79e56e3901196862ae17896c6e9542e269a05860ab72d869e35f17ab0f40ecbe35d1e34617cc70749d3f8323d09b347c443a7b7b2b126dddb44779aa - languageName: node - linkType: hard - -"@algolia/cache-browser-local-storage@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/cache-browser-local-storage@npm:4.13.1" - dependencies: - "@algolia/cache-common": 4.13.1 - checksum: ee7674971ab22c34f17cdf06589286695b40efaa7fd9b8f25833735bbd39919f2fe4973ca4de314f639574ae28d087ff43abef50e9e16b2f51b459a451e4c38d - languageName: node - linkType: hard - -"@algolia/cache-common@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/cache-common@npm:4.13.1" - checksum: 0ec5f1344177fbcfa5e2386e3841d7e162f0f9de06a9c3faa31a5f4793153f4d084ec08f22a10645ebce35d5146944f52c59d657c980c19a0bb9079b1f338f47 - languageName: node - linkType: hard - -"@algolia/cache-in-memory@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/cache-in-memory@npm:4.13.1" - dependencies: - "@algolia/cache-common": 4.13.1 - checksum: d1a5935de618d2480bc25f9c563fd45383a024d3f64e44ad35d1eb18b59b7654ec1cfd7dcb1fc7bd391709e85f4cd7f4602f54772ba85d1993520ce48252f22e - languageName: node - linkType: hard - -"@algolia/client-account@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/client-account@npm:4.13.1" - dependencies: - "@algolia/client-common": 4.13.1 - "@algolia/client-search": 4.13.1 - "@algolia/transporter": 4.13.1 - checksum: 3a3fb580c5ef2b57dbcf005a74a56590a87658532d114b4be8c0eb20eb1169d932090b9688eb8690782c71e99650f37896d4e3386b325c292f01f4c0821502c5 - languageName: node - linkType: hard - -"@algolia/client-analytics@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/client-analytics@npm:4.13.1" - dependencies: - "@algolia/client-common": 4.13.1 - "@algolia/client-search": 4.13.1 - "@algolia/requester-common": 4.13.1 - "@algolia/transporter": 4.13.1 - checksum: b593011160d024cddd1871ed70e7ef5231d7e6a7bac94a6b990d81aea6965b51181232b98c64f0eab7a45ab639d43d252b8655f34c8c9b8d1563ab8653da8c9b - languageName: node - linkType: hard - -"@algolia/client-common@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/client-common@npm:4.13.1" - dependencies: - "@algolia/requester-common": 4.13.1 - "@algolia/transporter": 4.13.1 - checksum: 4a3d5a14f4ad95740414419ceb4b2df60ebbc53a25a0ffb2a96e46f34fe797bf82e85c376bb5cdd9456717cd2e3115444dd18aaa238005efe622c0589ec9e9a5 - languageName: node - linkType: hard - -"@algolia/client-personalization@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/client-personalization@npm:4.13.1" - dependencies: - "@algolia/client-common": 4.13.1 - "@algolia/requester-common": 4.13.1 - "@algolia/transporter": 4.13.1 - checksum: 9a318235f54e9e0a9cc5a6b54d84fe2cfd78fdc616172ca9be4ace9519d89ac1c32025f7d365db349b48e23f7e9c2a46da7b24c435584f633e5f55050df340d4 - languageName: node - linkType: hard - -"@algolia/client-search@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/client-search@npm:4.13.1" - dependencies: - "@algolia/client-common": 4.13.1 - "@algolia/requester-common": 4.13.1 - "@algolia/transporter": 4.13.1 - checksum: 44e630b866756ce5ece0c86eaa9f48fe9d4e8faabcc63d3eece851f9496d97e14f2576ea83cdbc154a7af6e11e75ec3671356053026577c7db316a8405d6ebfc - languageName: node - linkType: hard - -"@algolia/logger-common@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/logger-common@npm:4.13.1" - checksum: 7330b794af2e4d648b2e4edcfbdda9ea1c154b2f4107505f6d6b0ec513d90df9e809ef55775c2baccfb909ed894ccc55c626665d44a86a12fb9e9b499eb25d6f - languageName: node - linkType: hard - -"@algolia/logger-console@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/logger-console@npm:4.13.1" - dependencies: - "@algolia/logger-common": 4.13.1 - checksum: c78f50a784196387c3b1577b683acd66f8aa2d37fc022638f0e8d9635f0c003407d7595c4080e46bd47e1d1e635cace396f75b93c71c465bb0cfbd456dc91ad7 - languageName: node - linkType: hard - -"@algolia/requester-browser-xhr@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/requester-browser-xhr@npm:4.13.1" - dependencies: - "@algolia/requester-common": 4.13.1 - checksum: 6ae8e3b03b66410e809aa649b93d6f72fd4520c8f50517b37646b37d80c55ec1f519f2059ecc5a63929ba9ca0ce1ef45cd3a7d20f7abdda4f216a67d93736765 - languageName: node - linkType: hard - -"@algolia/requester-common@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/requester-common@npm:4.13.1" - checksum: 4e8039f7fda7dd8bfb8689bfda9cb7297972e27c329e2b813e8df7390d6dd7ce169907e307b039c57905010d6468e85908830d6be0eeef3664c8fc01fafff957 - languageName: node - linkType: hard - -"@algolia/requester-node-http@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/requester-node-http@npm:4.13.1" - dependencies: - "@algolia/requester-common": 4.13.1 - checksum: d25fe56c4acc5e032a2a1d0b5a85b2cebb58c0a581ed9f862df9e43378e7523948ca9aa377589405efe7bc951b0ea6e0011963d73a8b11a5f0d426123f9bb4ec - languageName: node - linkType: hard - -"@algolia/transporter@npm:4.13.1": - version: 4.13.1 - resolution: "@algolia/transporter@npm:4.13.1" - dependencies: - "@algolia/cache-common": 4.13.1 - "@algolia/logger-common": 4.13.1 - "@algolia/requester-common": 4.13.1 - checksum: c99451f37172ae499bf0aa83d32b1785b63744498c1978c274ddf865ae5a91c05d92570450ebb39ae91a3d4d4593415aaad9c93c4d78229ddc8ba8b42fb0ce3a - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-identifier@npm:7.18.6" - checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.16.4": - version: 7.18.8 - resolution: "@babel/parser@npm:7.18.8" - bin: - parser: ./bin/babel-parser.js - checksum: b8426083f753a000bdb4929cb18c6ce5b68c23759245bf123515bf86cacb9f6e7ff61341a6e0d01a779a9a8a826c86062a0f4db424b88b5b51f67e121985d400 - languageName: node - linkType: hard - -"@babel/types@npm:^7.8.3": - version: 7.18.8 - resolution: "@babel/types@npm:7.18.8" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - to-fast-properties: ^2.0.0 - checksum: a485531faa9ff3b83ea94ba6502321dd66e39202c46d7765e4336cb4aff2ff69ebc77d97b17e21331a8eedde1f5490ce00e8a430c1041fc26854d636e6701919 - languageName: node - linkType: hard - -"@docsearch/css@npm:3.3.0, @docsearch/css@npm:^3.3.0": - version: 3.3.0 - resolution: "@docsearch/css@npm:3.3.0" - checksum: 1cbf381fe0b454f933e736d04fe8a2d9f86c375022ef738b44d67a0b4c187b0d8fcb945a1ba5a404059e50e3968d9fe769de22779d071f6189f07c161239892c - languageName: node - linkType: hard - -"@docsearch/js@npm:^3.3.0": - version: 3.3.0 - resolution: "@docsearch/js@npm:3.3.0" - dependencies: - "@docsearch/react": 3.3.0 - preact: ^10.0.0 - checksum: b612c6e91482419ccde4be30bf8c3fe095066fb0013941a6a3e201df33e108864a0d8fe5728571be6053cbfed32c2e38f86aec9584b365ff1ac2024cb64a7310 - languageName: node - linkType: hard - -"@docsearch/react@npm:3.3.0": - version: 3.3.0 - resolution: "@docsearch/react@npm:3.3.0" - dependencies: - "@algolia/autocomplete-core": 1.7.2 - "@algolia/autocomplete-preset-algolia": 1.7.2 - "@docsearch/css": 3.3.0 - algoliasearch: ^4.0.0 - peerDependencies: - "@types/react": ">= 16.8.0 < 19.0.0" - react: ">= 16.8.0 < 19.0.0" - react-dom: ">= 16.8.0 < 19.0.0" - peerDependenciesMeta: - "@types/react": - optional: true - react: - optional: true - react-dom: - optional: true - checksum: 2bc4aa649fad3ff74e61537e674e658903c01509b2835827943f23895b40b7697476399179d43bc721f7e72044c797d4d793fcdaa394ff4f9fca1389a197a78c - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.15.14": - version: 0.15.14 - resolution: "@esbuild/android-arm@npm:0.15.14" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.15.14": - version: 0.15.14 - resolution: "@esbuild/linux-loong64@npm:0.15.14" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^2.1.0": - version: 2.1.0 - resolution: "@npmcli/fs@npm:2.1.0" - dependencies: - "@gar/promisify": ^1.1.3 - semver: ^7.3.5 - checksum: 6ec6d678af6da49f9dac50cd882d7f661934dd278972ffbaacde40d9eaa2871292d634000a0cca9510f6fc29855fbd4af433e1adbff90a524ec3eaf140f1219b - languageName: node - linkType: hard - -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/move-file@npm:2.0.0" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 1388777b507b0c592d53f41b9d182e1a8de7763bc625fc07999b8edbc22325f074e5b3ec90af79c89d6987fdb2325bc66d59f483258543c14a43661621f841b0 - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - -"@types/web-bluetooth@npm:^0.0.16": - version: 0.0.16 - resolution: "@types/web-bluetooth@npm:0.0.16" - checksum: f68a630d062202a25c46d48686ebae1cf429dc70b4578fcf13b8357b2db63e4aedfb6f6d752bd388366be46ebd19c1c9de45f8a15c2631bb79e904fdfc454f94 - languageName: node - linkType: hard - -"@vitejs/plugin-vue@npm:^3.2.0": - version: 3.2.0 - resolution: "@vitejs/plugin-vue@npm:3.2.0" - peerDependencies: - vite: ^3.0.0 - vue: ^3.2.25 - checksum: 64774f770e0e21ce7eb36743d614e3f197a35f5b67b2d3800c61766e649f43dc497bb037738ffafd607eb488064ab132c23766190e7ab557a0b88c0051f7a794 - languageName: node - linkType: hard - -"@vue/compiler-core@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/compiler-core@npm:3.2.40" - dependencies: - "@babel/parser": ^7.16.4 - "@vue/shared": 3.2.40 - estree-walker: ^2.0.2 - source-map: ^0.6.1 - checksum: 2683bf13ef93701af1ca4850e887c8d4d67e5583b9c426fc2b08b5512df090bc464955f031cca9f52c11cc6ad49f1ab682011fdf3ba0b6c63b5ae8bea4e68c69 - languageName: node - linkType: hard - -"@vue/compiler-core@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/compiler-core@npm:3.2.45" - dependencies: - "@babel/parser": ^7.16.4 - "@vue/shared": 3.2.45 - estree-walker: ^2.0.2 - source-map: ^0.6.1 - checksum: e3c687b24c16c2b320c02ed38960f8bee7dcb88bddb09e60a80d2d4dc004070cbbd4eccbc99cc168d48d753ff60d0b9eefba835e1dec3b7f233a98c89af31c07 - languageName: node - linkType: hard - -"@vue/compiler-dom@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/compiler-dom@npm:3.2.40" - dependencies: - "@vue/compiler-core": 3.2.40 - "@vue/shared": 3.2.40 - checksum: d928a16ebdda9d91a579546d108c9399f8c9a5c9c976196cfefa32f10c0ecb3111233c3291ba05898def85fcfccdc71e3446b977a7cdbc0d47d5d47b0dac75a3 - languageName: node - linkType: hard - -"@vue/compiler-dom@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/compiler-dom@npm:3.2.45" - dependencies: - "@vue/compiler-core": 3.2.45 - "@vue/shared": 3.2.45 - checksum: 89115538635f0da9cce615de5488d2759256fa573976a09a049536dbb94e9b5086b46f2f11e743cf0a7b14837161b3191c67611e0493054a5d4c4b96a322c901 - languageName: node - linkType: hard - -"@vue/compiler-sfc@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/compiler-sfc@npm:3.2.40" - dependencies: - "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.40 - "@vue/compiler-dom": 3.2.40 - "@vue/compiler-ssr": 3.2.40 - "@vue/reactivity-transform": 3.2.40 - "@vue/shared": 3.2.40 - estree-walker: ^2.0.2 - magic-string: ^0.25.7 - postcss: ^8.1.10 - source-map: ^0.6.1 - checksum: 96cbfd078ad9c5718afced84a1a46dfed87f61bb30ff50ebb929331470d11e672d6a090ad5766ff1e60a5287b7596be31f925af44b6b1bdf69b6f14e938ae7e2 - languageName: node - linkType: hard - -"@vue/compiler-sfc@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/compiler-sfc@npm:3.2.45" - dependencies: - "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.45 - "@vue/compiler-dom": 3.2.45 - "@vue/compiler-ssr": 3.2.45 - "@vue/reactivity-transform": 3.2.45 - "@vue/shared": 3.2.45 - estree-walker: ^2.0.2 - magic-string: ^0.25.7 - postcss: ^8.1.10 - source-map: ^0.6.1 - checksum: bec375faa0012e953dc0887482cc01d52003ad424b6a8a9c8a2506fd4f0197ad62be22f77ce5691c2306068ae7bc0028399f25399e7d4beee668285d431f4d8f - languageName: node - linkType: hard - -"@vue/compiler-ssr@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/compiler-ssr@npm:3.2.40" - dependencies: - "@vue/compiler-dom": 3.2.40 - "@vue/shared": 3.2.40 - checksum: 026461fcee54cf9968b1e12c32dada6dcde0a322919aa5a2c2e6e13cff7b6b2bdbc06860796895a8deef03ed1f8000e4320878576c498a1f218a62aa3e1c0bf6 - languageName: node - linkType: hard - -"@vue/compiler-ssr@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/compiler-ssr@npm:3.2.45" - dependencies: - "@vue/compiler-dom": 3.2.45 - "@vue/shared": 3.2.45 - checksum: 830c475506d2b6d1a6872b3fde1024ef5132f725121fd9c34832c5cefcc8cfddf0dcaa3acc9b2da4754162fccdff48b3275b9ff31415a7793b224c04355dc632 - languageName: node - linkType: hard - -"@vue/devtools-api@npm:^6.4.5": - version: 6.4.5 - resolution: "@vue/devtools-api@npm:6.4.5" - checksum: 40c5adc8788cb283972ce09ba7ce105fa894f4decec9168829cc8e6211462763402442e6c31be76f9da62b0e74ae724971b924571367b4ac89b94dc6894e2d07 - languageName: node - linkType: hard - -"@vue/reactivity-transform@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/reactivity-transform@npm:3.2.40" - dependencies: - "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.40 - "@vue/shared": 3.2.40 - estree-walker: ^2.0.2 - magic-string: ^0.25.7 - checksum: b86fc29b52f2460801a3c820370104b734b33cc3a66dbe0ad389a00a62b7a1069121b1ef5dfa50ca3530cbfa98c158743eee0e25af54ca45806f9497757db8c0 - languageName: node - linkType: hard - -"@vue/reactivity-transform@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/reactivity-transform@npm:3.2.45" - dependencies: - "@babel/parser": ^7.16.4 - "@vue/compiler-core": 3.2.45 - "@vue/shared": 3.2.45 - estree-walker: ^2.0.2 - magic-string: ^0.25.7 - checksum: 401040818947eb04c782487a7861d3ba20f95c9f3ca14282b3d7624002bfe6000547bb48c561afe87ae6d302143fec71a7e0bc3ed3ae2bfad8a228adf7fd90d6 - languageName: node - linkType: hard - -"@vue/reactivity@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/reactivity@npm:3.2.40" - dependencies: - "@vue/shared": 3.2.40 - checksum: 927d22b424b63a14234810a3b8e4e9127b7238a7cb2fbd749180279048a109348a29fc724fd9d636a6e09b5f4c902f71c789f081d3ab9b4473faedc6a03d7865 - languageName: node - linkType: hard - -"@vue/reactivity@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/reactivity@npm:3.2.45" - dependencies: - "@vue/shared": 3.2.45 - checksum: 4ba609744a6b4d6235e81afc3f455ae9349c04f54be11c15770139f58ff687b105b06ca78649218fab907fb76048c3dcf34144c677718192ce8b9927eb335f03 - languageName: node - linkType: hard - -"@vue/runtime-core@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/runtime-core@npm:3.2.40" - dependencies: - "@vue/reactivity": 3.2.40 - "@vue/shared": 3.2.40 - checksum: 47c4918c1294a3dc9b50effac8fb0af4ae34476a9bf443774f66cd18230e44b6b6d1cb49657ea5670f04691fc116a1040356492393dd43523b43fd90be81078a - languageName: node - linkType: hard - -"@vue/runtime-core@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/runtime-core@npm:3.2.45" - dependencies: - "@vue/reactivity": 3.2.45 - "@vue/shared": 3.2.45 - checksum: 0ac376a7602663d51a37b460c1184e2e035649090e53e972c18d24b30f3c47e5d61b921baf2492203f041d9edd864b3e9024a3ecef243b840637b62e9c0169a1 - languageName: node - linkType: hard - -"@vue/runtime-dom@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/runtime-dom@npm:3.2.40" - dependencies: - "@vue/runtime-core": 3.2.40 - "@vue/shared": 3.2.40 - csstype: ^2.6.8 - checksum: 4615d00cc4e2e19dc3e6e2baf5fa0cbab7d33fbbd7550b42264b6ef2e2ef5b750ef0d0c98591c10fea60d69fc33444ba4824954bce38abfa3473785a58d74c80 - languageName: node - linkType: hard - -"@vue/runtime-dom@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/runtime-dom@npm:3.2.45" - dependencies: - "@vue/runtime-core": 3.2.45 - "@vue/shared": 3.2.45 - csstype: ^2.6.8 - checksum: c66c71a2fc3921b57a930999b1fb0ea64f1a9d1bc7019984b06f2dbdd93f51b5a328cc60ec5904d1754b9dc1c85653b536db9017ef86616fa4a35f53836a2f9d - languageName: node - linkType: hard - -"@vue/server-renderer@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/server-renderer@npm:3.2.40" - dependencies: - "@vue/compiler-ssr": 3.2.40 - "@vue/shared": 3.2.40 - peerDependencies: - vue: 3.2.40 - checksum: f9d53aefcace97b9e6d20de2d9bc106112bd0ff0ef849a104996fc1256e994b64e33e91853ba7bc716d4f75a2ade81b57f3fb1482eba07324eb7cedbd0dab96d - languageName: node - linkType: hard - -"@vue/server-renderer@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/server-renderer@npm:3.2.45" - dependencies: - "@vue/compiler-ssr": 3.2.45 - "@vue/shared": 3.2.45 - peerDependencies: - vue: 3.2.45 - checksum: 062812235c2be41ed699fb7b802cf4fc94618bf4efae7832210431ad16ea1b852056e4fb83f6c17b919bfe87bc8624afcadd973dab3e0965d3cf9875baaf7373 - languageName: node - linkType: hard - -"@vue/shared@npm:3.2.40": - version: 3.2.40 - resolution: "@vue/shared@npm:3.2.40" - checksum: d91a1e12ffb106a444dcb42c0a54d39f6688f98151dc3b77e8da1e7d3cfd09e1761268d11e7f920f233b43162e727d06f3af4408ef59c53ac2dce9c1d2881511 - languageName: node - linkType: hard - -"@vue/shared@npm:3.2.45": - version: 3.2.45 - resolution: "@vue/shared@npm:3.2.45" - checksum: ff3205056caed2a965aa0980e21319515ce13c859a9b269fdab0ee8b3c9f3d8eec7eefdb7fd6c6b47c12acdc7bf23c6c187b6191054221b4a29108139b20c221 - languageName: node - linkType: hard - -"@vueuse/core@npm:^9.4.0": - version: 9.5.0 - resolution: "@vueuse/core@npm:9.5.0" - dependencies: - "@types/web-bluetooth": ^0.0.16 - "@vueuse/metadata": 9.5.0 - "@vueuse/shared": 9.5.0 - vue-demi: "*" - checksum: 55bac9f1c8c5aa4f8f795f4bb9ea61754db6ec2f683081d804a9f474da63d0d3a01e863712583f70db7ab5f1a5bd1d52c40edb4c9addcf497c1b31c4f8fed714 - languageName: node - linkType: hard - -"@vueuse/metadata@npm:9.5.0": - version: 9.5.0 - resolution: "@vueuse/metadata@npm:9.5.0" - checksum: b832754a03682086214ad3f99daf31e78339f7c4d2661a1ffb1565eeceef41435b77780d4c83b4f42299ba037d0a77f6eecd8b6d7a4546aa6b75cb82644bb5bb - languageName: node - linkType: hard - -"@vueuse/shared@npm:9.5.0": - version: 9.5.0 - resolution: "@vueuse/shared@npm:9.5.0" - dependencies: - vue-demi: "*" - checksum: d7f697a489bdb6d5c590b19b31d59a5754c1b3b11278a2e186aed081a90fe79b434319e9122a470cc3e96637062bf63202adc08919d61e56d7f57c51c3282a48 - languageName: node - linkType: hard - -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 - languageName: node - linkType: hard - -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" - dependencies: - debug: ^4.1.0 - depd: ^1.1.2 - humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"algoliasearch@npm:^4.0.0": - version: 4.13.1 - resolution: "algoliasearch@npm:4.13.1" - dependencies: - "@algolia/cache-browser-local-storage": 4.13.1 - "@algolia/cache-common": 4.13.1 - "@algolia/cache-in-memory": 4.13.1 - "@algolia/client-account": 4.13.1 - "@algolia/client-analytics": 4.13.1 - "@algolia/client-common": 4.13.1 - "@algolia/client-personalization": 4.13.1 - "@algolia/client-search": 4.13.1 - "@algolia/logger-common": 4.13.1 - "@algolia/logger-console": 4.13.1 - "@algolia/requester-browser-xhr": 4.13.1 - "@algolia/requester-common": 4.13.1 - "@algolia/requester-node-http": 4.13.1 - "@algolia/transporter": 4.13.1 - checksum: c2083e7827a5d0d980716f9cc129d5136f6205f46019917b7b23a63eb13ec665c029299d14752c12429903af59a0b6f73393d152a0eec409a2cac3b708e25c2c - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.0 - resolution: "are-we-there-yet@npm:3.0.0" - dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 348edfdd931b0b50868b55402c01c3f64df1d4c229ab6f063539a5025fd6c5f5bb8a0cab409bbed8d75d34762d22aa91b7c20b4204eb8177063158d9ba792981 - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"body-scroll-lock@npm:4.0.0-beta.0": - version: 4.0.0-beta.0 - resolution: "body-scroll-lock@npm:4.0.0-beta.0" - checksum: 61d40007fddf64ecc69e9e02ed9d96bb895f88d7da65cea7651081110225de48efa44ffc4acd376ed004788e242a9af12059fec728c096774b49365524ea6f46 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"cacache@npm:^16.1.0": - version: 16.1.1 - resolution: "cacache@npm:16.1.1" - dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - unique-filename: ^1.1.1 - checksum: 488524617008b793f0249b0c4ea2c330c710ca997921376e15650cc2415a8054491ae2dee9f01382c2015602c0641f3f977faf2fa7361aa33d2637dcfb03907a - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - -"csstype@npm:^2.6.8": - version: 2.6.20 - resolution: "csstype@npm:2.6.20" - checksum: cb5d5ded49c3390909e93b20b285d4a63d0ba5b10294bdfbc4cf911f80e91d6cf367ea671f99f09570762535c14ea7074a2c7fa73f02008203f01328dea8968b - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.3": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd - languageName: node - linkType: hard - -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"esbuild-android-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-android-64@npm:0.15.14" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"esbuild-android-arm64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-android-arm64@npm:0.15.14" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-darwin-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-darwin-64@npm:0.15.14" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"esbuild-darwin-arm64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-darwin-arm64@npm:0.15.14" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-freebsd-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-freebsd-64@npm:0.15.14" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"esbuild-freebsd-arm64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-freebsd-arm64@npm:0.15.14" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-linux-32@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-32@npm:0.15.14" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"esbuild-linux-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-64@npm:0.15.14" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"esbuild-linux-arm64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-arm64@npm:0.15.14" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-linux-arm@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-arm@npm:0.15.14" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"esbuild-linux-mips64le@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-mips64le@npm:0.15.14" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"esbuild-linux-ppc64le@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-ppc64le@npm:0.15.14" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"esbuild-linux-riscv64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-riscv64@npm:0.15.14" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"esbuild-linux-s390x@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-linux-s390x@npm:0.15.14" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"esbuild-netbsd-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-netbsd-64@npm:0.15.14" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"esbuild-openbsd-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-openbsd-64@npm:0.15.14" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"esbuild-sunos-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-sunos-64@npm:0.15.14" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"esbuild-windows-32@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-windows-32@npm:0.15.14" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"esbuild-windows-64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-windows-64@npm:0.15.14" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"esbuild-windows-arm64@npm:0.15.14": - version: 0.15.14 - resolution: "esbuild-windows-arm64@npm:0.15.14" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"esbuild@npm:^0.15.9": - version: 0.15.14 - resolution: "esbuild@npm:0.15.14" - dependencies: - "@esbuild/android-arm": 0.15.14 - "@esbuild/linux-loong64": 0.15.14 - esbuild-android-64: 0.15.14 - esbuild-android-arm64: 0.15.14 - esbuild-darwin-64: 0.15.14 - esbuild-darwin-arm64: 0.15.14 - esbuild-freebsd-64: 0.15.14 - esbuild-freebsd-arm64: 0.15.14 - esbuild-linux-32: 0.15.14 - esbuild-linux-64: 0.15.14 - esbuild-linux-arm: 0.15.14 - esbuild-linux-arm64: 0.15.14 - esbuild-linux-mips64le: 0.15.14 - esbuild-linux-ppc64le: 0.15.14 - esbuild-linux-riscv64: 0.15.14 - esbuild-linux-s390x: 0.15.14 - esbuild-netbsd-64: 0.15.14 - esbuild-openbsd-64: 0.15.14 - esbuild-sunos-64: 0.15.14 - esbuild-windows-32: 0.15.14 - esbuild-windows-64: 0.15.14 - esbuild-windows-arm64: 0.15.14 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/linux-loong64": - optional: true - esbuild-android-64: - optional: true - esbuild-android-arm64: - optional: true - esbuild-darwin-64: - optional: true - esbuild-darwin-arm64: - optional: true - esbuild-freebsd-64: - optional: true - esbuild-freebsd-arm64: - optional: true - esbuild-linux-32: - optional: true - esbuild-linux-64: - optional: true - esbuild-linux-arm: - optional: true - esbuild-linux-arm64: - optional: true - esbuild-linux-mips64le: - optional: true - esbuild-linux-ppc64le: - optional: true - esbuild-linux-riscv64: - optional: true - esbuild-linux-s390x: - optional: true - esbuild-netbsd-64: - optional: true - esbuild-openbsd-64: - optional: true - esbuild-sunos-64: - optional: true - esbuild-windows-32: - optional: true - esbuild-windows-64: - optional: true - esbuild-windows-arm64: - optional: true - bin: - esbuild: bin/esbuild - checksum: 3e09ddca1feed3f2242eb433694bf7f3dc9c974434b80bc09323e61fb5ac940afd0217ee8776f187252b134fb967e323f31fb704d8fe81ed9cab1b49aedad249 - languageName: node - linkType: hard - -"estree-walker@npm:^2.0.2": - version: 2.0.2 - resolution: "estree-walker@npm:2.0.2" - checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" - dependencies: - node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a - languageName: node - linkType: hard - -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d - languageName: node - linkType: hard - -"glob@npm:^7.1.3, glob@npm:^7.1.4": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - -"glob@npm:^8.0.1": - version: 8.0.3 - resolution: "glob@npm:8.0.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.6": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da - languageName: node - linkType: hard - -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 - languageName: node - linkType: hard - -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:^2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"ip@npm:^1.1.5": - version: 1.1.8 - resolution: "ip@npm:1.1.8" - checksum: a2ade53eb339fb0cbe9e69a44caab10d6e3784662285eb5d2677117ee4facc33a64679051c35e0dfdb1a3983a51ce2f5d2cb36446d52e10d01881789b76e28fb - languageName: node - linkType: hard - -"is-core-module@npm:^2.9.0": - version: 2.9.0 - resolution: "is-core-module@npm:2.9.0" - dependencies: - has: ^1.0.3 - checksum: b27034318b4b462f1c8f1dfb1b32baecd651d891a4e2d1922135daeff4141dfced2b82b07aef83ef54275c4a3526aa38da859223664d0868ca24182badb784ce - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"jsonc-parser@npm:^3.0.0": - version: 3.1.0 - resolution: "jsonc-parser@npm:3.1.0" - checksum: 81b00c565c60cb1b400523a918d42ad9c7bb3d9cf34c708bf78d37c8c496ecd670c3ff8828f2f60aa6e6627ef4287982794ddf92261ea71e320973c54b29fb22 - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"lru-cache@npm:^7.7.1": - version: 7.13.1 - resolution: "lru-cache@npm:7.13.1" - checksum: f53c7dd098a7afd6342b23f7182629edff206c7665de79445a7f5455440e768a4d1c6ec52e1a16175580c71535c9437dfb6f6bc22ca1a0e4a7454a97cde87329 - languageName: node - linkType: hard - -"magic-string@npm:^0.25.7": - version: 0.25.9 - resolution: "magic-string@npm:0.25.9" - dependencies: - sourcemap-codec: ^1.4.8 - checksum: 9a0e55a15c7303fc360f9572a71cffba1f61451bc92c5602b1206c9d17f492403bf96f946dfce7483e66822d6b74607262e24392e87b0ac27b786e69a40e9b1a - languageName: node - linkType: hard - -"make-fetch-happen@npm:^10.0.3": - version: 10.1.8 - resolution: "make-fetch-happen@npm:10.1.8" - dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 5fe9fd9da5368a8a4fe9a3ea5b9aa15f1e91c9ab703cd9027a6b33840ecc8a57c182fbe1c767c139330a88c46a448b1f00da5e32065cec373aff2450b3da54ee - languageName: node - linkType: hard - -"minimatch@npm:^3.1.1": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimatch@npm:^5.0.1": - version: 5.1.0 - resolution: "minimatch@npm:5.1.0" - dependencies: - brace-expansion: ^2.0.1 - checksum: 15ce53d31a06361e8b7a629501b5c75491bc2b59712d53e802b1987121d91b433d73fcc5be92974fde66b2b51d8fb28d75a9ae900d249feb792bb1ba2a4f0a90 - languageName: node - linkType: hard - -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" - dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 - languageName: node - linkType: hard - -"minipass-fetch@npm:^2.0.3": - version: 2.1.0 - resolution: "minipass-fetch@npm:2.1.0" - dependencies: - encoding: ^0.1.13 - minipass: ^3.1.6 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: 1334732859a3f7959ed22589bafd9c40384b885aebb5932328071c33f86b3eb181d54c86919675d1825ab5f1c8e4f328878c863873258d113c29d79a4b0c9c9f - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": - version: 3.3.4 - resolution: "minipass@npm:3.3.4" - dependencies: - yallist: ^4.0.0 - checksum: 5d95a7738c54852ba78d484141e850c792e062666a2d0c681a5ac1021275beb7e1acb077e59f9523ff1defb80901aea4e30fac10ded9a20a25d819a42916ef1b - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:^2.0.0": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" - bin: - nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c - languageName: node - linkType: hard - -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 9.1.0 - resolution: "node-gyp@npm:9.1.0" - dependencies: - env-paths: ^2.2.0 - glob: ^7.1.4 - graceful-fs: ^4.2.6 - make-fetch-happen: ^10.0.3 - nopt: ^5.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 - bin: - node-gyp: bin/node-gyp.js - checksum: 1437fa4a879b5b9010604128e8da8609b57c66034262087539ee04a8b764b8436af2be01bab66f8fc729a3adba2dcc21b10a32b9f552696c3fa8cd657d134fc4 - languageName: node - linkType: hard - -"nopt@npm:^5.0.0": - version: 5.0.0 - resolution: "nopt@npm:5.0.0" - dependencies: - abbrev: 1 - bin: - nopt: bin/nopt.js - checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f - languageName: node - linkType: hard - -"npmlog@npm:^6.0.0": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a - languageName: node - linkType: hard - -"once@npm:^1.3.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"postcss@npm:^8.1.10": - version: 8.4.14 - resolution: "postcss@npm:8.4.14" - dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: fe58766ff32e4becf65a7d57678995cfd239df6deed2fe0557f038b47c94e4132e7e5f68b5aa820c13adfec32e523b693efaeb65798efb995ce49ccd83953816 - languageName: node - linkType: hard - -"postcss@npm:^8.4.18": - version: 8.4.19 - resolution: "postcss@npm:8.4.19" - dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 62782723a385f92b7525f66d29614624de7c5643855423db3a5efd9287e677650300192749adddbbb6734cea9b1d5f5fd4f6ea00ca3f9a95dbbb88f835f5ca64 - languageName: node - linkType: hard - -"preact@npm:^10.0.0": - version: 10.10.0 - resolution: "preact@npm:10.10.0" - checksum: ec34f0e7a8677080debb5e7035a749d30a23694a68389e6f577e051e91a1e1014913c56845a615d1f9a4f2cd0321c46faaded4d4a0457c755d637a3a811fd69e - languageName: node - linkType: hard - -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 - languageName: node - linkType: hard - -"resolve@npm:^1.22.1": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.22.1#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - -"rollup@npm:^2.79.1": - version: 2.79.1 - resolution: "rollup@npm:2.79.1" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 6a2bf167b3587d4df709b37d149ad0300692cc5deb510f89ac7bdc77c8738c9546ae3de9322b0968e1ed2b0e984571f5f55aae28fa7de4cfcb1bc5402a4e2be6 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"semver@npm:^7.3.5": - version: 7.3.7 - resolution: "semver@npm:7.3.7" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 - languageName: node - linkType: hard - -"shiki@npm:^0.11.1": - version: 0.11.1 - resolution: "shiki@npm:0.11.1" - dependencies: - jsonc-parser: ^3.0.0 - vscode-oniguruma: ^1.6.1 - vscode-textmate: ^6.0.0 - checksum: 2a4ebc3b466816263fc244ae4f67a4ff96aa74d863b9c5e7e4affc50f37fd6d1a781405de0dbf763b777bc33e49a0d441de7ff3fededb8b01e3b8dbb37e2927d - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" - dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 - languageName: node - linkType: hard - -"socks@npm:^2.6.2": - version: 2.6.2 - resolution: "socks@npm:2.6.2" - dependencies: - ip: ^1.1.5 - smart-buffer: ^4.2.0 - checksum: dd9194293059d737759d5c69273850ad4149f448426249325c4bea0e340d1cf3d266c3b022694b0dcf5d31f759de23657244c481fc1e8322add80b7985c36b5e - languageName: node - linkType: hard - -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c - languageName: node - linkType: hard - -"source-map@npm:^0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - -"sourcemap-codec@npm:^1.4.8": - version: 1.4.8 - resolution: "sourcemap-codec@npm:1.4.8" - checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 - languageName: node - linkType: hard - -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" - dependencies: - minipass: ^3.1.1 - checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb - languageName: node - linkType: hard - -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 - languageName: node - linkType: hard - -"strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.11 - resolution: "tar@npm:6.1.11" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^3.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: ^2.0.0 - checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80 - languageName: node - linkType: hard - -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" - dependencies: - imurmurhash: ^0.1.4 - checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"vite@npm:^3.2.3": - version: 3.2.4 - resolution: "vite@npm:3.2.4" - dependencies: - esbuild: ^0.15.9 - fsevents: ~2.3.2 - postcss: ^8.4.18 - resolve: ^1.22.1 - rollup: ^2.79.1 - peerDependencies: - "@types/node": ">= 14" - less: "*" - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 0f3e8f89c15809bd6bd8dec54b04b7c9b87374314d00928035f9d70190b4b220e8206b5d77a1e4097a5019cebf7862df4fbc11fbbb35c4f75f359999123d2c25 - languageName: node - linkType: hard - -"vitepress-starter@workspace:.": - version: 0.0.0-use.local - resolution: "vitepress-starter@workspace:." - dependencies: - vitepress: 1.0.0-alpha.29 - vue: ^3.2.40 - languageName: unknown - linkType: soft - -"vitepress@npm:1.0.0-alpha.29": - version: 1.0.0-alpha.29 - resolution: "vitepress@npm:1.0.0-alpha.29" - dependencies: - "@docsearch/css": ^3.3.0 - "@docsearch/js": ^3.3.0 - "@vitejs/plugin-vue": ^3.2.0 - "@vue/devtools-api": ^6.4.5 - "@vueuse/core": ^9.4.0 - body-scroll-lock: 4.0.0-beta.0 - shiki: ^0.11.1 - vite: ^3.2.3 - vue: ^3.2.41 - bin: - vitepress: bin/vitepress.js - checksum: 05f284c8ee3fe80ae6fa9688157ffa14e912ea15ae80f321073f35a1fd0326b859208cb942e6ef8690ef035d8a534b139e0c501223fe63944cda1bd453ac1e09 - languageName: node - linkType: hard - -"vscode-oniguruma@npm:^1.6.1": - version: 1.6.2 - resolution: "vscode-oniguruma@npm:1.6.2" - checksum: 6b754acdafd5b68242ea5938bb00a32effc16c77f471d4f0f337d879d0e8e592622998e2441f42d9a7ff799c1593f31c11f26ca8d9bf9917e3ca881d3c1f3e19 - languageName: node - linkType: hard - -"vscode-textmate@npm:^6.0.0": - version: 6.0.0 - resolution: "vscode-textmate@npm:6.0.0" - checksum: ff6f17a406c2906586afc14ef01cb122e33acd35312e815abb5c924347a777c6783ce3fe7db8b83f1760ebf843c669843b9390f905b69c433b3395af28e4b483 - languageName: node - linkType: hard - -"vue-demi@npm:*": - version: 0.13.4 - resolution: "vue-demi@npm:0.13.4" - peerDependencies: - "@vue/composition-api": ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - "@vue/composition-api": - optional: true - bin: - vue-demi-fix: bin/vue-demi-fix.js - vue-demi-switch: bin/vue-demi-switch.js - checksum: f6279d76ea215c3bce362317982fadcb6e6308d1c3461669599af257c166e31b2f377ff4d9b1349d6c82519d5eae5cd804bdc8e53f18d3d189b6d6bfcc5e8298 - languageName: node - linkType: hard - -"vue@npm:^3.2.40": - version: 3.2.40 - resolution: "vue@npm:3.2.40" - dependencies: - "@vue/compiler-dom": 3.2.40 - "@vue/compiler-sfc": 3.2.40 - "@vue/runtime-dom": 3.2.40 - "@vue/server-renderer": 3.2.40 - "@vue/shared": 3.2.40 - checksum: fb5ca87c16e58f24c0088add152ca1ef70ac6d198ec3a60e7904201c31aadefb2c28e361934c42a704742835cdd9c02ab5765f0c29e8335eb13261d7b764b0ee - languageName: node - linkType: hard - -"vue@npm:^3.2.41": - version: 3.2.45 - resolution: "vue@npm:3.2.45" - dependencies: - "@vue/compiler-dom": 3.2.45 - "@vue/compiler-sfc": 3.2.45 - "@vue/runtime-dom": 3.2.45 - "@vue/server-renderer": 3.2.45 - "@vue/shared": 3.2.45 - checksum: df60ca80cb9fdce408eccd0c7a4d44720df9855c62e340448650d8048b1edd25da6f3bd99ed7efc19efbe1f3fdcec4ae8067ab10ae50be5bb363d996ad29251a - languageName: node - linkType: hard - -"which@npm:^2.0.2": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard From a39e858d037b60863feb572881014fe7f4402ad4 Mon Sep 17 00:00:00 2001 From: Nico Date: Tue, 14 Feb 2023 19:36:08 +0100 Subject: [PATCH 05/11] fixed navigation links --- docs/.vitepress/config.js | 2 +- docs/dev/index.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index 2d1d43d..9294a8f 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -18,7 +18,7 @@ export default { // { text: "B3", link: "/dev/B3/" } // ] }, - { text: "Design", link: "/design/", activeMatch: "/design/" }, + // { text: "Design", link: "/design/", activeMatch: "/design/" }, { text: "À propos", link: "/a-propos", activeMatch: "/a-propos" }, ], sidebar: { diff --git a/docs/dev/index.md b/docs/dev/index.md index 84ae635..7377489 100644 --- a/docs/dev/index.md +++ b/docs/dev/index.md @@ -14,7 +14,7 @@ Nous aborderons l'apprentissage du développement web par le prisme de [l’acce ## Niveaux -- [B1 — Découverte et bases](./B1/) -- [B2 — Approfondissement](./B2/) -- [B3 — Expertise web](./B3/) +- [Débutant — Découverte et bases](./01-debutant/) +- [Intermédiaire — Approfondissement](./02-intermediaire/) +- [Avancé — Expertise web](./03-avance/) - [Code Camp — Découverte intensive](./code-camp/) From f99de465d7ec783a5df8a9200e84e100e9f89e08 Mon Sep 17 00:00:00 2001 From: Nico Date: Fri, 17 Feb 2023 19:10:55 +0100 Subject: [PATCH 06/11] email file + img --- docs/.vitepress/config.js | 6 +- docs/design/emails/assets/2col.jpg | Bin 0 -> 16371 bytes docs/design/emails/assets/desktop.jpg | Bin 0 -> 30811 bytes docs/design/emails/assets/mobile.jpg | Bin 0 -> 30775 bytes docs/design/emails/assets/shadow-mobile.jpg | Bin 0 -> 11528 bytes docs/design/emails/index.md | 93 ++++++++++++++++++++ docs/design/index.md | 12 +-- 7 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 docs/design/emails/assets/2col.jpg create mode 100644 docs/design/emails/assets/desktop.jpg create mode 100644 docs/design/emails/assets/mobile.jpg create mode 100644 docs/design/emails/assets/shadow-mobile.jpg create mode 100644 docs/design/emails/index.md diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index 9294a8f..9aa5a19 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -18,7 +18,7 @@ export default { // { text: "B3", link: "/dev/B3/" } // ] }, - // { text: "Design", link: "/design/", activeMatch: "/design/" }, + { text: "Design", link: "/design/", activeMatch: "/design/" }, { text: "À propos", link: "/a-propos", activeMatch: "/a-propos" }, ], sidebar: { @@ -127,8 +127,8 @@ export default { { text: "Design", items: [ - { text: "Index", link: "/design/" }, - { text: "Introduction", link: "/design/introduction" }, + { text: "Introduction", link: "/design/" }, + { text: "Emails", link: "/design/emails/" }, ], }, ], diff --git a/docs/design/emails/assets/2col.jpg b/docs/design/emails/assets/2col.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c135fc7559aa12d94fe32a832b52c2e6d47d48bf GIT binary patch literal 16371 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 WJm>c|Cz^j{313nC|64mN8~zP#l{*gr literal 0 HcmV?d00001 diff --git a/docs/design/emails/index.md b/docs/design/emails/index.md new file mode 100644 index 0000000..b18b7bf --- /dev/null +++ b/docs/design/emails/index.md @@ -0,0 +1,93 @@ +# Designer des emails modernes + +## Contexte + +Gardez à l'esprit que chaque template (photoshop, sketch, figma…) sera converti en code à un moment donné. +Ce guide vise à partager des bonnes pratiques lors de la conception graphique d'e-mails ainsi qu'à préserver la santé mentale des développeurs. + +::: tip +J'ai utilisé Photoshop et Sketch pour concevoir des emails. N'importe quel logiciel de prototypage suffit. + +J'utilise également le [langage MJML](https://mjml.io) pour développer des newsletter car personne ne devrait encore avoir à le faire à la main… plus jamais. +::: + +## Connaissances générales + +Les emails sont l'un des types de contenu internet les moins " avancés ". Ils sont encore développés avec des éléments de type `table` et **l'énorme diversité** des clients de messagerie rend presque impossible une compatibilité à 100 %. + +::: info +Je cherche à obtenir la plus grande compatibilité possible avec les clients de messagerie, donc je n'utiliserai pas de propriété comme les `media-queries` car ils ne sont pas supportés par tous les clients. +::: + +### Le responsive + +Les emails peuvent être responsive, mais nous n'avons que très peu de contrôle sur cet aspect. +Comme les emails font généralement jusqu'à 800px de large, il n'y a que deux versions : une version ordinateur et une version mobile. +Ainsi, ce que vous voyez sur une version sera identique sur l'autre. + +Par exemple, si vous alignez une image à droite sur la version ordinateur en raison d'une disposition en deux colonnes, l'image restera alignée à droite sur la version mobile en une colonne. + +**Ce qui peut être bizarre :** + +![email ordinateur à 2 colonnes, l'image alignée à droite, le texte aligné à gauche](./assets/desktop.jpg) + +![email mobile à 1 colonne, l'image reste alignée à droite et n'est donc pas centrée](./assets/mobile.jpg) + +::: tip +Lorsque nous concevons un produit web, nous avons l'habitude de penser d'abord au mobile (ou alors vous devriez). Le mail, pour une fois, suit la tendance ! +::: + +### Colonnes + +Idéalement, une mise en page en une seule colonne serait la meilleure chose à faire. Mais nous savons que les gens (clients et concepteurs) ont peur des choses simples. Donc j'accepte une mise en page en deux colonnes. + +![](./assets/2col.jpg) + +### Images + +Les images sont beaucoup utilisées dans les mail. Parfois trop. Afin d'être le plus lisible et accessible possible, évitez de mettre du texte sur une image. Si vous devez le faire, ne mettez pas une information clé sur une image. Si le client bloque les images (par défaut sur de nombreux clients), votre email ne contiendra pas les informations nécessaires pour être pertinent. + +Si vous souhaitez utiliser une ombre portée, veillez à la concevoir **à l'intérieur** de vos marges. + +![](./assets/shadow-mobile.jpg) + +### Textes + +Utilisez le plus de vrai texte dans vos emails. Le texte sous forme d'image ne fonctionnera pas bien. + +Utilisez également les polices de caractères du système, telles que Arial, Trebuchet, Verdana, Times… La plupart des clients de messagerie ne peuvent pas afficher les polices personnalisées et vous ne pouvez donc pas prévoir quelle police par défaut sera utilisée. + +::: danger ATTENTION +**NE FAITES PAS** de retours à la ligne forcés. +::: + +Vous pouvez créer un nouveau paragraphe, sans problème, mais vous ne pouvez pas rendre le texte joli. +De plus, les sauts de ligne forcés produisent un glyphe bizarre sur certains clients. + +### Coins arrondis + +À éviter. On peut les faire fonctionner, bien sûr. Mais est-ce vraiment nécessaire ? + +::: details Réponse : +Non. +::: + +Certains clients supportent les coins arrondis, d'autres ne les montrent pas, d'autres, encore, les cassent un peu. + +La seule façon sûre de le faire est d'exporter chaque coin arrondi en tant qu'image et de les placer manuellement autour d'un bloc de couleur. Comme je l'ai dit : évitez. + +::: info +Si vous n'êtes pas sûr de la compatibilité d'une fonctionnalité, vous pouvez consulter son adoption sur [can I email.](https://www.caniemail.com/). +::: + +## Mes recommandations + +::: tip +Je recommande une largeur d'email de 600 pixels avec des marges à gauche et à droite de 30 à 50 pixels. +::: + +C'est arbitraire mais 600 pixels permet un peu plus de compatibilité avec les petits écrans. Il y a moins de chance que la mise en page se casse à cause d'un écran 10 pixels trop petit. + +Si vous devez exporter des images pour votre développeur chéri, exportez autant de `.jpg` que possible avec une qualité maximale de 79 %. Des images de plus petite taille accéléreront le temps de chargement. + +> Allez bon courage maintenant ! diff --git a/docs/design/index.md b/docs/design/index.md index fc4dc4a..9961a8e 100644 --- a/docs/design/index.md +++ b/docs/design/index.md @@ -1,13 +1,3 @@ # Design -cool - -::: info -This is an info box. -::: - -## Introduction - -### definition - -## Getting started \ No newline at end of file +Supports et ressources concernant le design web. From 4c7f31c080cc19e386e9b3441dced9c42e05f7ee Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 27 Mar 2023 17:27:14 +0200 Subject: [PATCH 07/11] update + fix color contrasts + JS content --- .yarnrc.yml | 0 docs/.vitepress/cache/deps/_metadata.json | 8 +- docs/.vitepress/cache/deps/vue.js | 10 +- docs/.vitepress/cache/deps/vue.js.map | 2 +- .../cache/deps_temp_721df3a9/_metadata.json | 13 + .../cache/deps_temp_721df3a9/package.json | 1 + .../cache/deps_temp_721df3a9/vue.js | 9516 +++++++++++++++++ .../cache/deps_temp_721df3a9/vue.js.map | 7 + .../cache/deps_temp_96092671/_metadata.json | 13 + .../cache/deps_temp_96092671/package.json | 1 + .../cache/deps_temp_96092671/vue.js | 9516 +++++++++++++++++ .../cache/deps_temp_96092671/vue.js.map | 7 + docs/.vitepress/theme/custom.css | 26 + docs/dev/02-intermediaire/javascript.md | 91 + docs/snippets/js/DOM-select.js | 22 + docs/snippets/js/variables.js | 22 + package-lock.json | 1180 -- package.json | 2 +- pnpm-lock.yaml | 782 ++ 19 files changed, 20028 insertions(+), 1191 deletions(-) delete mode 100644 .yarnrc.yml create mode 100644 docs/.vitepress/cache/deps_temp_721df3a9/_metadata.json create mode 100644 docs/.vitepress/cache/deps_temp_721df3a9/package.json create mode 100644 docs/.vitepress/cache/deps_temp_721df3a9/vue.js create mode 100644 docs/.vitepress/cache/deps_temp_721df3a9/vue.js.map create mode 100644 docs/.vitepress/cache/deps_temp_96092671/_metadata.json create mode 100644 docs/.vitepress/cache/deps_temp_96092671/package.json create mode 100644 docs/.vitepress/cache/deps_temp_96092671/vue.js create mode 100644 docs/.vitepress/cache/deps_temp_96092671/vue.js.map create mode 100644 docs/snippets/js/DOM-select.js create mode 100644 docs/snippets/js/variables.js delete mode 100644 package-lock.json create mode 100644 pnpm-lock.yaml diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index e69de29..0000000 diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json index 18a01d8..450d436 100644 --- a/docs/.vitepress/cache/deps/_metadata.json +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -1,11 +1,11 @@ { - "hash": "47151e52", - "browserHash": "b7354247", + "hash": "35964354", + "browserHash": "c708b366", "optimized": { "vue": { - "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", + "src": "../../../../node_modules/.pnpm/vue@3.2.47/node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "cd8c06e7", + "fileHash": "84ebdea4", "needsInterop": false } }, diff --git a/docs/.vitepress/cache/deps/vue.js b/docs/.vitepress/cache/deps/vue.js index 1708501..c115735 100644 --- a/docs/.vitepress/cache/deps/vue.js +++ b/docs/.vitepress/cache/deps/vue.js @@ -1,4 +1,4 @@ -// node_modules/@vue/shared/dist/shared.esm-bundler.js +// node_modules/.pnpm/@vue+shared@3.2.47/node_modules/@vue/shared/dist/shared.esm-bundler.js function makeMap(str, expectsLowerCase) { const map2 = /* @__PURE__ */ Object.create(null); const list = str.split(","); @@ -242,7 +242,7 @@ var getGlobalThis = () => { return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); }; -// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +// node_modules/.pnpm/@vue+reactivity@3.2.47/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js function warn(msg, ...args) { console.warn(`[Vue warn] ${msg}`, ...args); } @@ -1349,7 +1349,7 @@ var _a; var tick = Promise.resolve(); _a = "__v_isReadonly"; -// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +// node_modules/.pnpm/@vue+runtime-core@3.2.47/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js var stack = []; function pushWarningContext(vnode) { stack.push(vnode); @@ -7934,7 +7934,7 @@ var ssrUtils = _ssrUtils; var resolveFilter = null; var compatUtils = null; -// node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +// node_modules/.pnpm/@vue+runtime-dom@3.2.47/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js var svgNS = "http://www.w3.org/2000/svg"; var doc = typeof document !== "undefined" ? document : null; var templateContainer = doc && doc.createElement("template"); @@ -9348,7 +9348,7 @@ var initDirectivesForSSR = () => { } }; -// node_modules/vue/dist/vue.runtime.esm-bundler.js +// node_modules/.pnpm/vue@3.2.47/node_modules/vue/dist/vue.runtime.esm-bundler.js function initDev() { { initCustomFormatter(); diff --git a/docs/.vitepress/cache/deps/vue.js.map b/docs/.vitepress/cache/deps/vue.js.map index d688283..6d21219 100644 --- a/docs/.vitepress/cache/deps/vue.js.map +++ b/docs/.vitepress/cache/deps/vue.js.map @@ -1,6 +1,6 @@ { "version": 3, - "sources": ["../../../../node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js", "../../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js", "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js"], + "sources": ["../../../../node_modules/.pnpm/@vue+shared@3.2.47/node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../../node_modules/.pnpm/@vue+reactivity@3.2.47/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../../../node_modules/.pnpm/@vue+runtime-core@3.2.47/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js", "../../../../node_modules/.pnpm/@vue+runtime-dom@3.2.47/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js", "../../../../node_modules/.pnpm/vue@3.2.47/node_modules/vue/dist/vue.runtime.esm-bundler.js"], "sourcesContent": ["/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*.*?\\*\\//gs;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText\n .replace(styleCommentRE, '')\n .split(listDelimiterRE)\n .forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === 'number') {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `