From fa0a597530563d53e42b52cda5c88f303cba0f8b Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Thu, 5 Oct 2023 17:23:11 -0500 Subject: [PATCH] fix: add build status favicons based on system theme (#10089) --- .../pages/WorkspacePage/WorkspaceReadyPage.tsx | 12 ++++++++++-- ...{favicon-error.png => favicon-error-dark.png} | Bin ...{favicon-error.svg => favicon-error-dark.svg} | 0 site/static/favicons/favicon-error-light.png | Bin 0 -> 2547 bytes site/static/favicons/favicon-error-light.svg | 4 ++++ ...icon-running.png => favicon-running-dark.png} | Bin ...icon-running.svg => favicon-running-dark.svg} | 0 site/static/favicons/favicon-running-light.png | Bin 0 -> 2516 bytes site/static/favicons/favicon-running-light.svg | 4 ++++ ...icon-success.png => favicon-success-dark.png} | Bin ...icon-success.svg => favicon-success-dark.svg} | 0 site/static/favicons/favicon-success-light.png | Bin 0 -> 2481 bytes site/static/favicons/favicon-success-light.svg | 4 ++++ ...icon-warning.png => favicon-warning-dark.png} | Bin ...icon-warning.svg => favicon-warning-dark.svg} | 0 site/static/favicons/favicon-warning-light.png | Bin 0 -> 2459 bytes site/static/favicons/favicon-warning-light.svg | 4 ++++ 17 files changed, 26 insertions(+), 2 deletions(-) rename site/static/favicons/{favicon-error.png => favicon-error-dark.png} (100%) rename site/static/favicons/{favicon-error.svg => favicon-error-dark.svg} (100%) create mode 100644 site/static/favicons/favicon-error-light.png create mode 100644 site/static/favicons/favicon-error-light.svg rename site/static/favicons/{favicon-running.png => favicon-running-dark.png} (100%) rename site/static/favicons/{favicon-running.svg => favicon-running-dark.svg} (100%) create mode 100644 site/static/favicons/favicon-running-light.png create mode 100644 site/static/favicons/favicon-running-light.svg rename site/static/favicons/{favicon-success.png => favicon-success-dark.png} (100%) rename site/static/favicons/{favicon-success.svg => favicon-success-dark.svg} (100%) create mode 100644 site/static/favicons/favicon-success-light.png create mode 100644 site/static/favicons/favicon-success-light.svg rename site/static/favicons/{favicon-warning.png => favicon-warning-dark.png} (100%) rename site/static/favicons/{favicon-warning.svg => favicon-warning-dark.svg} (100%) create mode 100644 site/static/favicons/favicon-warning-light.png create mode 100644 site/static/favicons/favicon-warning-light.svg diff --git a/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx b/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx index 53ef8a1ecc..a30169a46a 100644 --- a/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx @@ -98,6 +98,14 @@ export const WorkspaceReadyPage = ({ ...templateVersion(workspace.template_active_version_id), enabled: workspace.outdated, }); + const systemTheme = useState(() => { + if (typeof window.matchMedia === "undefined") { + // Default to dark mode! + return "dark"; + } + const isDark = window.matchMedia("(prefers-color-scheme: dark)"); + return isDark ? "dark" : "light"; + }); const buildLogs = useWorkspaceBuildLogs(workspace.latest_build.id); const shouldDisplayBuildLogs = @@ -124,12 +132,12 @@ export const WorkspaceReadyPage = ({ diff --git a/site/static/favicons/favicon-error.png b/site/static/favicons/favicon-error-dark.png similarity index 100% rename from site/static/favicons/favicon-error.png rename to site/static/favicons/favicon-error-dark.png diff --git a/site/static/favicons/favicon-error.svg b/site/static/favicons/favicon-error-dark.svg similarity index 100% rename from site/static/favicons/favicon-error.svg rename to site/static/favicons/favicon-error-dark.svg diff --git a/site/static/favicons/favicon-error-light.png b/site/static/favicons/favicon-error-light.png new file mode 100644 index 0000000000000000000000000000000000000000..4905ae236cc995dec165562cf5349b16bada6fa6 GIT binary patch literal 2547 zcmVPx;tw}^dRCt{2onL5N#}&rEv#V_?$;NVMX$^%cO(B60Drak@3U$1eA6u{srR|$# zN|F0e>`*9qsufEAgi>3Aw4^1ig@XOtj0k1|-?ySE~RP^}nkCsv`%Nb?4=L_fWA0LJpRr40-K zm?P5SFuUnz%gHTr z;_#+_H{Oqj9Lnhq&!6Nmhl%^5t+&{2^nI;b-q%9jcBcZ#3CkN__Fd2hBu`u3TdNrI zHag**YQv0(teRd-a>=$~H?fk$P!XAgdQGHGw~0C%f5}7aO;A@FBSJNWGPdEhqhyPS zEXH5;5EZzKV>}{6u!s!2`>qnz7KewRBj~o_H-OIUsm-zj1^|4n-G=yz@1iaPI1lAe z%-VRiI~lJ<6_FXJ$WSJboQ8_>q|KCw*m~lr;kBr3Age5jdDu^{Qe&r!dIH(>)J*1| zrtD}@_3++xgegrI;(br0O4vRMwe-|T+HOV_Dne5QFdsZ+&!EchJx+4LHP}v-AMACq z8ZB3$Ow0AIr;jv#d1fw~1 zu2UMSFkK!EJnf6HmiV1~#(a9{R&vcLrrMHe!(5*BMnZ?AtBhEo;gFV5I}AG5yg>43 zl-+ILNlul^>r=YpqKNFzt8$Xd06v|tn8TZ=YFF1bgHh?LpaIweIS| z5Odm)tjV+PR@;n3Qx2;5anc^J znI)3v=)S+l#O5(ao70PN)9sWL6Hr%qXiu^EGPD9W%l>d zz{q>2eL&wRmpC#^NYzkTo?&zmKqV%d-RiiRDD)|!Q)!jggqym2QxASXf5sG}hb1zi zL~;r4$<8;?d=KZc{xcI7rJ)*PmJI7Nj;c@v5XKO_J~;@pK>IxOp&_mrjQTz+h&kj# z$GY92+fcPk<;|tCoJI4Ym&_=0kZMjo!R zfWMKry6axgU*yd<-%s0yW}=$*(y-M)vv#n&j~^*~2f&vBdAjj)(SL86hYX3R_7wrv z`ZiD-J@6KRKNi;Ozv#bwwEAA5qYj%b&AMywZ4sutW>OaCpHt+!~xoI zbJJS!?kfTrX?MK>e6d!%`-;tHwu!3Gp^aJ&x{2)fl6uA3=O0{vxH1p!Th@`q&^x^Zvk8PCjR{+H{%XNnM5OscL zSM}PzqAu&EDa~=Fyd`3z#53?kPyi70vKarxzTG4$puV0mwRKezUr4L0)G)X|FHUDk zk;eCqR`LH6(4w5Wmb=;RSISSWi#(BmjfoJEC+=6uPd-w;@ph|gx=qvu6__m{zJM0f zv-Lv3+wYjuw*92l@4IdIwWXyuPZ9ry-UbrAlIFXpSuYy2EMEwtIbj|!#x~zY&2-H+ zW~IqnQ4wRC*P`kmi0c6z2`i_+qDlvgs+mAW--#9lfqU()GcCLqRS%KvKXQ(UjN0T% zjBVbF3IKWo)rqvrjmfn4SJW8WIzm+7e_vv-A9hE!#?ksHIPq81INLfZ_@GybDmun{ z40bunb`XmYd_A-BlfdYtzm5{MffhH@Wx!IsKD%Bl{y57zTq)J-kyE{n8GhT%Bh?#k zlf0F;9a|xJD=O{_1W_Xq;Lmy6uoW=~$OKU%DAv~}L67FE#67M*_*vX#LDUF(tBcD3 zvpgfh5>D;DyzpM!RYBAk`qv6SBG~qb)>a7I>A!#HhbGqsQDcxRSMCV;?Y!+ko!^o- zZhc^KX%N+bU6-!^7Uavh89=_gd+yrrOfUC3o6si+NNw~$RYaa|Z^ism|D|hR5+L!J z4}mQRK&(IbD!_N!S1bSCzgGB$ji5jf)r#Gh7vAe%t$&upt6A4Y^0ofe`r~rt${pL! zhT+$dwIiP&Ckj7D`gy?{0*v>+e)ZR`1%#gJNdN2Cf7w&7KSlC2fd5HcAh{0UH$Cr~h$QuRLf8TfM`qf+w4g>;$Kp+qZ1OfrS_%G7S#LM%!R3!ia002ov JPDHLkV1hbS=y?DD literal 0 HcmV?d00001 diff --git a/site/static/favicons/favicon-error-light.svg b/site/static/favicons/favicon-error-light.svg new file mode 100644 index 0000000000..7737cfd357 --- /dev/null +++ b/site/static/favicons/favicon-error-light.svg @@ -0,0 +1,4 @@ + + + + diff --git a/site/static/favicons/favicon-running.png b/site/static/favicons/favicon-running-dark.png similarity index 100% rename from site/static/favicons/favicon-running.png rename to site/static/favicons/favicon-running-dark.png diff --git a/site/static/favicons/favicon-running.svg b/site/static/favicons/favicon-running-dark.svg similarity index 100% rename from site/static/favicons/favicon-running.svg rename to site/static/favicons/favicon-running-dark.svg diff --git a/site/static/favicons/favicon-running-light.png b/site/static/favicons/favicon-running-light.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd57da4d814ad515acdb8bec87b6c3abecebead GIT binary patch literal 2516 zcmV;_2`l!AP)Px;j!8s8RCt{2ol$6ANg2og-$`OklVZ9cx*(W!eNYzJbQc!8*v&0IDzt*A4+~9p zH>Ud_Z4qRjY!-2K5qA?ZTw_;moROAh~Bzbz50gRPxOA8nR zuuRhGUfV`g0GHAHec7oj*!0-85S8RvC}*e}SulOawuPtw&X;XKi44Q=mE*mr$$O=H zyurqtF}c`#Q30GR+W-$3CaLXDw1cQ8$~M3gv>)zXmsaG(KWLSI*P^xnS6LJ*FrQu(Mz@PP4mUm3$^287 zt`;>J-aC#krRhMt@2OM?+b5uwp6W^4jfkNlG%}+$uj_^kS}091m)R|k&L0XTxdHl$>?y(puS5YQr058zmObZzNN4%v{Nl< zzK&~^{cl>2Zn<9cRI1)N?YNpT02Pv7(+K3RqH#Df?fO6++V73YgBM#jXg(rn&8bVB z(oluz%4pyPUxYQp@8mO<(?jp4)SP0fEtw`PmuYV*v`D&g#0E8oG)L_)Y+>^?k|)ya zZuw4fs$5>5(j8Yt72zJ-#uk37c@W%{3wghG0?gpwKwsF&C#3*^7V%VqT95;!WX_54hGqjJ@HX_%QgDQTUw+HNI zjpVDe-`}HS^O&X0#l^U3cS?#5g+!OALXW0QaS)5$pPCi$jZriBO1VgfOCqSC#fn{3i3)El0%dibJa`M3+h(>N^k-rrfGwxYL^q;_z{(x#ZoLA4KW(tLTyluf1!I;L4p=F>{|_fkj8 zd#8CoUn`e5HB3m=P%h6fx&ok*k`8Qs@AEzxk8q+s6X_QjxqOSwQuW9@`Z^1(}pNkfrV??tD%V|1j z(k4?>UbOQy*hJht9(&#bO?n9FC^f_YfxINc@BmD5p}3 zeJP^J(4xB%aU}@qp2Pvmb&Q?KFlM~g+36g6?6afD8kCNc~mT2(F39 zUu)#s+tJ|f|M;A|U$hO4MAhx3VXHyHvDvK$BjI-dd{uVvg}W2QyEBlxGm#O2i~v9+ zf&<*b=v?(r0{&))(a*0=4*a7Cd-8}{+D>U-I5xZWU{A#Fk(?AkzfBn;cnpxoBJjJT zbJYtq%1`o&+elR1l!~t1YOq^O0R1^b0sw&Ip*RZ#gpKFhwIsP=sTXKj0D8Y1Wy!8t_LA3Q$GKASSaPI3c|&hvpmsm6euc3+#E9+YZ) zbe<2GezK9MI=j7YnpV{ARF>KM5mtXKB2TueP7!(XK&^VEvP`4hiH$_nae%sSZhE8o znm~@Wyk3zn;YRf}laK5ZH93biZ8_*V-0vmzipt#9X^2dgW`M|KWo}D*$Zz&et)THR zyaKiU*)@k`eEDMa6Oep~Wko>nmC8c(lRDQn9IF%2>M0ZT@Ko&iQL0Y1P3({_Lgb?^ z$~Hj+{n*9}(1_xB{r#y_8<%u5FD{8lp{qqtUA+BJgq<4zdWtO97819m51)z02mhIN zT_;UxPO;!E5fOII!xKS)dT-6%q1Q>G0_y823tU&_7mF*aAS8RirIUu=-Nd+e0$Q3= z*K{{qW%fUxL$v*8i@M!Y>-&5>dEhV2{_Mq(I}WHoZwc`nnoZB5ZGXRGPTBV3rhjgs zDL#_o&3icX-Xqm_@Lg2biw4chr)bRyOMy(a&393quGyxpGzt6_HN!TqMNNVrwg+_N zgC2{TVVl>YCQQN6ccP`kJFTy?7`zuX86sPMvkEi*0+Rc`$taeu%*_QI@N2N;kVVO*ec&C+m8M4owT?w5JXLf^1HH4*ax$} zLoSG##!k;P0H5ZocXoRD)2xevs42wH_pgIa&xkOCn7R7Qq4%;b3!-Ll`{2M!AWMj7 z?SRcN{&ET!4_45z`J)24t&c*P#}nE z#MNgGy;tSHX8~StUmNGEwSkAEbhnC`pTA~7cty%J9x z{Cg4h1W^lS^z{#qO0D({l21TzSRjXSZ}ZkB$V~$8L*&hxM8CTF+`+fYv^Nk41OkCT eAP@)yJmdf1L$?@z$q1 + + + diff --git a/site/static/favicons/favicon-success.png b/site/static/favicons/favicon-success-dark.png similarity index 100% rename from site/static/favicons/favicon-success.png rename to site/static/favicons/favicon-success-dark.png diff --git a/site/static/favicons/favicon-success.svg b/site/static/favicons/favicon-success-dark.svg similarity index 100% rename from site/static/favicons/favicon-success.svg rename to site/static/favicons/favicon-success-dark.svg diff --git a/site/static/favicons/favicon-success-light.png b/site/static/favicons/favicon-success-light.png new file mode 100644 index 0000000000000000000000000000000000000000..45ee20c2ef0593d532638c2a7a526e1657c10d60 GIT binary patch literal 2481 zcmV;i2~PHjP)Px;Ye_^wRCt{2ol%HY#~H_ebKNCMpjiW@4HUXIg{FkkH4h~r+ zYD7b!k<{^Z-J|(5lUE4xSQsSCYlfU?K%$#%XIrr}TK-hK9o%zoE&&>Jen{VbqBoc{4B9TZW5{X12kw_#Gi9{liNF)-8 zL?UYhQ?&tkkTeQx1IB?-U<4TJa`{Wfn5kab)<%-L{Am%GOMY$wO=HY#Z>*{zlEx*? z$d8^2n%L^Y4M|5OjZ|T4B}f{PbjGux`bpH4;*N*b*(mY`$|QMuXMoA7ZRr6cz>K7z zd+i%hf%9~KUk)l~LV9dph$`s_))`uhobi3f_Jydx(W(uokWoBeIkguxd9SP;Z?H3m zeJ-xOsKCyu4X6R5lAQgCeh_s>)dtiA=ZAZ!Oe^x@^K{}#TM22Iop*_YhI#vFAOF(NbzC}S11c9eWE#>{13 zbr0i&i{m^Zq%cPb-u*y{>Px^w&=(Ba@Ef5&dupfbfDz#9y*8w-)LqmC;2hSWxZva2 zu4QU1sxjs)HZoKSlFneGJVkTd7~|`S7e=i`?Ez(FQOx2$y()~gF6wT|>8Yj6KV4bV zq9()pz!9f314!+As%*mc4(!rXJ88QUO>Bgw3Cu=Mxn{`b_wJH(H8j{Rn;%^3WHouN zLb;Y(yPhiPFfc{FfcXg4vz?UG#BRB8c3zUvVV6gJ=ZrB`EyC9qNn^^l6qbc^s-^tb zaf7n|ed}>8w-!BBws#&Yxtd8}T++830{L@v4o9Y4A8DiTy)k*H#nuh^j|fh4>Pn|H zvSGR^8u(0Ig!QD}$!Dsjhu%-6ImNPDGJTk-(%w`QkaSfNH{>{^mDCQS0XAQiv?I;# zp6?`=&E>6Ay5pQNW^+}QOIiTFn6sFPl~cAV-l^vUKX)BCj!llMtUEsn8+Pa97#T{2vtt2u+)#!2!pS}6;hy#>W%!k}jn#*0EMVuNK8<(W7;_|` z{xNI}_#uyvUBKG6vVq!%ZCo!iVw5~kO~O-hCVV1hP9#0#u)<@toyaxikc}Vb?Ex#9 zm-L##_xHHiJQ-+naWQU%os!~0A<-q-(4+636&L0u`NW1@?G0VT$S*vhZxqoYAqL7m&F5tws`kIvGCtER(OzZM@6e`sUt8g# zs{ANW*YpzE_jcONcb$wYY?ANGc?EdTDkcyUCaTI8bWvRzMQ+1WRu4a0vi(YI^b%IZ zEI0a#D*F_cP1iWA+}__=qV}S$sUTl2b&F7gb&dt|jHWdhjF3XIyc5SW+WO zlI96dcD_dEJ)8^4zq46U8rdOc-myOCsETX=VUqOq$x++_?Xx6@hJ4zUBOoO(PU_GU5U6D1udV%0n2raozF1lz1BJC9J<11TgyyHJPACCVHB|m0K>cy^Mbz` z!@IZF^Y)ut__$~rI*IDqOXF69guPdIWO$iFh;O!*`5M4IlaISUk6{>V|GNG*9K6Jz zfZr_*Gktn1|183uJfc>%Q@Sqfy}~2IOZ<>!_5mA$@<{X89wiFZO5@X5v`pv(GE{FYkrh!DcdHN8oXp+eHmqYvVj&a z;t<8F_4lWG&Qs4BV+vg@dVZEot!4gV4C{(4HwU+5_|o(Q|4O@Pkft=dRPdGv-Qj4B z1O?cDvUkZ1lBi(6p0coYRl!q5l~o{__cutx?@F57JpnDvsq4C%?fDrVlXyR%?$R-a zub!OXgKmGX#gRKDFpk?2;tO<{p0!%+%$ep@8m$&PfuD8z`=AZKzI6BIO)ZCBi%DNe ztGlRWFB)_$-{3YUtcXMm-jYqqH?O^TwHLJ|ZCJ)k2m^%XVafvdHs2~(8xooHzY zZuh#*qNu&7$q?E5Bj-$d)TUB0Y^%Mf0Lccb-9?w1k!fFFQ8R4o3sK?IFEQAR-;u3Z z45X-i6?{lmiN=!{?@s)3l>HEM7`|It`FT+KR>{5+wM`;!smp+k1{WlLT4o)gG#cqs zy_yEX>cN4_d|==!Rok%=!JntM^H|z7ee+JO1o4NeO}HPU?0`%ZHHB7#V|ALZ3T`)s z`9;=sQPdPpO|W28>KPGU7;*f>RzAwQE{d8#<3V1QdLPkRh4|#w1N_A0(kN;MC!XRH zV1LziVEF!9&+s3YOQWa`Oh3!75U*5bfOzHg?flyH@;Ie&MVNz^X=2#g(`v=MB z47tyIh}@4sjbXlx_*<{46#RYNgM80NP>7;>abhbUEj`4SB~F!InRsLQGd!BS)4hnp zZy*O|*hh=ki_Qy{xI=?|(-XWIT1M=tflN>EOBo(Vyn*;%-tq)Xz*{mro<~rKJ+%-H z&G3bmcu}y&d*6-tuMDTx8D2dx!9R+yCyH7y2b(<29lj%Y64;1gBX>7%EgD#q_}Cc! vct`x^)U&)>p}CPrBoc{4B9TZWQaAn&HO7ctSP5=800000NkvXXu0mjfk0{XW literal 0 HcmV?d00001 diff --git a/site/static/favicons/favicon-success-light.svg b/site/static/favicons/favicon-success-light.svg new file mode 100644 index 0000000000..45254597e3 --- /dev/null +++ b/site/static/favicons/favicon-success-light.svg @@ -0,0 +1,4 @@ + + + + diff --git a/site/static/favicons/favicon-warning.png b/site/static/favicons/favicon-warning-dark.png similarity index 100% rename from site/static/favicons/favicon-warning.png rename to site/static/favicons/favicon-warning-dark.png diff --git a/site/static/favicons/favicon-warning.svg b/site/static/favicons/favicon-warning-dark.svg similarity index 100% rename from site/static/favicons/favicon-warning.svg rename to site/static/favicons/favicon-warning-dark.svg diff --git a/site/static/favicons/favicon-warning-light.png b/site/static/favicons/favicon-warning-light.png new file mode 100644 index 0000000000000000000000000000000000000000..240a4629b9bad0225e31c86466251b8fda646a7e GIT binary patch literal 2459 zcmV;M31s$(P)Px;RY^oaRCt{2ok46|M;XWepA$#z0dOi6h=hboIe;our)LbSF7D4>F!6B0s-gG<(tDtUe2QdPt`l?n-O08yl%+ATtj5@-J$ zW)?Q~?t3%yX7*K0UQHR0Wb<+1i)B_%U=|c`EJ?Pgd{usX$Qcj{=EjECL$Z%u_{7H zR!FYXj;;%;ZM9*W9IW_D#>$D&d?yTWc!Zo2~h!@FWZ0;8HMF5Cwfu!du4FE z!SD9Wx81g=P z;hk#3vWV=MUQBY!wqaY?E@G&NEI_>`ywh)@uH;{G4~GlX0OG9WVmm(QX?OE3u1O2XGO}p;)o; zYzLXBMHP`{sK`(dNG?G|d3>`dBDS8mH=-7`3xvv|*ns`?${T|&>S=`OsX^wSrVO;G zdU)?U(v+qTiN2>&C2XIBT6$_GZMUNa6``pC*hrpoWKiYzo+5e8HP}v-9~^bE8ZB3$ zOv{a~r;?N+<|9y^?JUU})Rqfl=S7bWr!4BbC?aJo!p95AF&0}2%fmR;lJ@Jk zPTBvq^_Z3$MNg&boeP1hnFUZG`4xje{wCUoBeSkgG@<+6m?A{6b%XXJg3+A1)F};B zn68WlUW!FnOX5yGV>vx^FQw)bQ*Ft#VZBUyGoeG$RUo!$IHUz?hfxQcuaP{NWp~$i zl2hgK#+2^3DI!P9s+?pUz^4lqGu}F7E90Gd$?1Yi*$BVH-C>MvU|WRfBs<&bUp)%n02>&eAp-0<2D<*7_w22Ly+UvTAQCw82#tI=ONqP;r(QT8J zDc9(sL8(TSBBNX}8>oiaZ67V-Vj$Jie2MCzYW}>M^O;&edzn|iL7NtRZMloe@KK@ZuTX0p(yh%WjnuMO9A`KBKHi2jTzMh{D7M2X}U+>@QJ zqx~Mvy8c~=j6pe-M(j%w)kBNv zO2p+PXn3>(R_GWzn_1{$tS907;F4dMhuz5qf`7Wd3R1Y-ckAOHvehrsHIKLWS{x$`qQ ze)U}+_7oAdw4Ktiz_p1ZXdHST4a`Aszgr%OJO{3M9Np1nxCLX}eBQ=Pe30|4V8QeTlyDz8@3hoI$W<`jKziD=+_G=c)Ew+h$N(z}pUWhi3?%mxLWg4ru+v5Ojd(V%nrq|uzP93<1W*hLMxW}CCp z6tAd~ZCli$>L7^g0Ubq&S5#z=B2kN~nMa`SM9V~QtLt@oB6?Bv5Lv>JbCMagDVJ>9 zq8Aka^aiTazRS(bv?t;fHOID|5Eb~}mlzy{-I1+%WNe>cyrSmV)>FX;y-HNkG2R*2 zIZ;)t86f*C1Xl z%>d$MIllTE)5{}W+K&$sg6eb)f-iNqVpK7?`iuw)pZSp3gKE^>uY&w*7pwgnu=@=g zL4hQy6*5)5iI2bgS&$dP*T&cI;6EN#?{quT@aqVx({mtx>OC)*xC_CYOs@XYwTRSH z9g)e^pF`vkfUkkL?V-p!Ab$msM~Vmvq@L;pUYYz9 + + +