From 95cf797b6f6adc98b49ed5e212a2fd45014bf858 Mon Sep 17 00:00:00 2001 From: ac-jorellanaf <31940280+ac-jorellanaf@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:25:38 +0000 Subject: [PATCH 01/12] Added icons (Material and FA Brands) Added some additional styling to header and footer links. Footer links remain to be wrapped in a button of some sort, but angular material limits button sizes, so custom CSS code needs adding. --- .vscode/settings.json | 3 +- package.json | 2 +- src/app/app.component.ts | 18 +- .../site-footer/site-footer.component.html | 67 +- .../site-footer/site-footer.component.scss | 13 +- .../site-footer/site-footer.component.ts | 4 +- .../site-header/site-header.component.html | 19 +- .../site-header/site-header.component.scss | 22 + .../site-header/site-header.component.ts | 18 +- .../MaterialSymbolsOutlined.woff2 | Bin 0 -> 3363900 bytes .../MaterialSymbolsRounded.woff2 | Bin 0 -> 4580224 bytes .../MaterialSymbolsSharp.woff2 | Bin 0 -> 2968664 bytes src/assets/fonts/fa-brands-400.ttf | Bin 0 -> 210736 bytes src/assets/fonts/fa-brands-400.woff2 | Bin 0 -> 118724 bytes src/assets/scss/fontawesome.scss | 10276 ++++++++++++++++ src/assets/scss/fontawesome_brands.scss | 2145 ++++ src/assets/scss/material_symbols.scss | 57 + src/styles.scss | 22 +- 18 files changed, 12615 insertions(+), 51 deletions(-) create mode 100644 src/app/portal/features/site-header/site-header.component.scss create mode 100644 src/assets/fonts/MaterialSymbols/MaterialSymbolsOutlined.woff2 create mode 100644 src/assets/fonts/MaterialSymbols/MaterialSymbolsRounded.woff2 create mode 100644 src/assets/fonts/MaterialSymbols/MaterialSymbolsSharp.woff2 create mode 100644 src/assets/fonts/fa-brands-400.ttf create mode 100644 src/assets/fonts/fa-brands-400.woff2 create mode 100644 src/assets/scss/fontawesome.scss create mode 100644 src/assets/scss/fontawesome_brands.scss create mode 100644 src/assets/scss/material_symbols.scss diff --git a/.vscode/settings.json b/.vscode/settings.json index 9ace906..a4fa9cd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,7 @@ { "window.title": "Data Portal - ${dirty}${activeEditorShort}${separator}${rootName}${separator}${profileName}${separator}${appName}", - "cSpell.words": ["devcontainer", "devkit", "metldata"], + "cSpell.words": ["devcontainer", "devkit", "metldata", "ghga"], + "cSpell.language": "en-GB,de", "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "[javascript]": { diff --git a/package.json b/package.json index e8f1829..42260af 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@angular/compiler": "19.0.0-rc.3", "@angular/core": "19.0.0-rc.3", "@angular/forms": "19.0.0-rc.3", - "@angular/material": "19.0.0-rc.3", + "@angular/material": "^19.0.0", "@angular/platform-browser": "19.0.0-rc.3", "@angular/platform-browser-dynamic": "19.0.0-rc.3", "@angular/router": "19.0.0-rc.3", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index e23ece9..d1839a2 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,4 +1,5 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { MatIconRegistry } from '@angular/material/icon'; import { RouterOutlet } from '@angular/router'; import { SiteFooterComponent } from '@app/portal/features/site-footer/site-footer.component'; import { SiteHeaderComponent } from '@app/portal/features/site-header/site-header.component'; @@ -11,4 +12,17 @@ import { SiteHeaderComponent } from '@app/portal/features/site-header/site-heade imports: [RouterOutlet, SiteHeaderComponent, SiteFooterComponent], templateUrl: './app.component.html', }) -export class AppComponent {} +export class AppComponent implements OnInit { + /** + * Creating new instance of MatIconRegistry + * @param matIconReg + */ + constructor(private matIconReg: MatIconRegistry) {} + + /** + * Run on App component initialisation + */ + ngOnInit(): void { + this.matIconReg.setDefaultFontSetClass('material-symbols-outlined'); + } +} diff --git a/src/app/portal/features/site-footer/site-footer.component.html b/src/app/portal/features/site-footer/site-footer.component.html index 488b7c0..1bfab51 100644 --- a/src/app/portal/features/site-footer/site-footer.component.html +++ b/src/app/portal/features/site-footer/site-footer.component.html @@ -1,28 +1,45 @@ - -
©{{ year }} GHGA. All Rights Reserved.
-- Imprint | - Data Protection - | - Terms of Use -
+©{{ year }} GHGA. All Rights Reserved.
++ Imprint | + Data Protection + | + Terms of Use +
+!b{^2mCmtDT%NIQ0< zA)}G&s?g6p@sw!`pWcHC5X&nFMjvn&U_c|)9sSfu63&_lmgu(SJjkI_-O7@ zOB>RJDLp;CPQW>K<1J&G3L-*H)?|$PrMLUF2C83ufH%$HixhA1y?TYvq%&0WCcVT` z2HAS_jiPVX&0!)L%_5%bB+b7Q=PV*_U~N0_0Kz^*7gmI%4KHH77dgV&))jXi$l`*B zx6j`+dt(J_BgC?bgxdHQ{oJSBrrXrl-$V{ZDlnoaEYw%yI(T6CV-uF~oLKE~uNDC` zelA)78HqKh9MVgGerq)ecbn-zB)Q5ghxM>Ydx;DHByxJ40^RQzl{^N0MSR(Xwwb|Z zq=_mkHA3-(s0R6dYjD%Xa{SEZWXLGu&t%b)`&Ho4WZ*O~*JZVosQ2Rw{hKJlbHBkz zA+8bLf=acKNv_?;z)NZonm<7@$t1v#^4$4JO;} U&yld$^aw~;>941>BLsoizAE( zMsKQ%XFHl?ErlCBBSd6X*WV8boEsY0i%&!RAYyFDJlL>;gFwM@G1ws{m=<{hFxZu0 z2E>|LINt`0+n8m;h==|(^8jYWO)(G@foPxB^3}V?j0L6Yx%94Q2ek`d$<9EyYIrH< zry6 a?91cKNGpd$VmR}blu9T|A;xtZ^FGPTC@gN%6t%*E8 z6=ag0a5%4nbk9;3y}uX3arufQV!Gb&6+d8* ?^ax5Zlrh~%5$*|PL%1QQy8VMa`$NXJOg@E0 zxpi9FA)19QOKr3-?tMcV0<2m(b++ci#d%|Dz{kA}seqD20=ICs$1GB)-S6Z{B%+Lr z{ndfT3`jijVMlkD$R(qh1pAj;Vhnc(kDXVaHkfoG=_7h|$DD*u2R>xqFJdU&y#PLp zGRDHxn_lR7dhGyyk4Vm1C=*te#ZKQ#L}(UslP7*=lNTIo?dCu>%CNj_yas3ZjjVzG zWU2IGdnLC_d jOLBOhK(g*eiPozE?qtvIn^lmrnEN|`39^q3G;PPc z=)OLbew1uc#7s3-=V>m>bRN3X^^Q_&dX-UC-i5bTZEH7yk%|SqkYRGjE~4el(-)7% z7&Pj35Rp-`REw8oUp|fcCYOv(p5Ivh!|s>I=$t&q{8~&C-w_`Al0Gba-NC?faALLK z CgT6jlfZzA4avBU^yf7Od;}PPZXH(xR@3NnuA12=`~-HZ3Sl85D!_h_5139 z1Z;fv6YibH;H5&|L?xk=A}cX>D03^?87bvh5aZ38DGCWep2uvC*5f@Pmf+M&+Q|Xk zRl`CM=Tm|hE1fM`)Oql@Bam{6mo{xA(1Mkmh*F9RZlz2FTA9+0NxrqFBjtuev!j12 z2%l!2w;&o{-Qixhor*8Cej*`{X>%J+qYfT)1mf`F3qu(go(rlWaYBP`H_u8`q4FFg z2#xv2*phCGo__Lgx|bdk9Q62*UME8&z;t)keheS;8dU|!b&)LYRn zqv4e zD=jJqIoa9bOFNm>@QTIq7zm<&JbTlf9B-=2)ol~oMhbJ;R$kRzMWSm~d~(K=P>))? z?45gsuV#w^#{%&ndQ?FmE~j2m1ebEd+O#^gXkEFOKD}jl%i+q2n{RM2`oQ_NR;jMF zroD?3-L9cs5R6WVPM_kXF7fHy^>XsHqot9HS3^fj+*qy4>s+(A?kP$6zLPZ4_^Vx= z`C{%-uyBsZAbgi`` UAk?v;<49Ii-syMV z^2?fj?f!iW 0{iTx7c|D z6j(0YF_>HA?GpA0-aq#1s@&_tmT!{PMTx2;tl?X1T|Su(EBN|USbBXjEIuO<{@@1p z;(tHP>;kk@62G?1Jnx{KvVqh3uNqoFBJz2%5nu`Ey*foC2qL!p&%06(^xg`zfk@}f z1-RF9d7u?wMWom`q9f2 44(#%=~5tA>K4#CU6pcu5ux>HJuM%R-6Ngv#I%K z N22+jEHTP4 GD(1XFM5pVI@E30 zXr)2Rg6diTb8M##xm+<1iX0VqEWJazh^^X;tcrz-k IJ#bMPscN%?o5- z2$anEU_KeXU@+8A1oRmE(StcX!d#M;P5jkr3WKxq>{lv1=p!t4ORSvc{UkILNEmwq zAJGF4a`U&0t^>>g*EJ2o%Y1kp0~Z|9dI~Z= (iflyX*`4bX*#7~G|bBJG{$?I$qhIoiq)>(WrQEP52nhne_ zBbT~M17Z&`@#!+BBeb0kwP&yiSl(FxJ+zC(m7!_veZ#3sepPpsPF4NYBQjOVT_xRw z8wO{xrKhE-nOh*!jbHrQcM5YRmW2d!1{SRKa?bfDW$(oVT9#_9m_L$DT=6`se+3B{ z855a^traBgmagW0h%N8&R|oQE7-2*GizzjC*HQ^67m4a-i^ir?5i%p&FLJL1PH#kb zA VwhI=a^7=wC W0UG#{$7 Z(}C Wp60ddf?CxH(uKFJqf_5eZ^Nz_qODv>&r(-a$oMC- z9rd#dZFi87pV_}bzt`N?Is4Zj(Qba0d%5k;Hda3HMNK9tt;ZrlE@^NyCulCfx@RBi z)K*SGSrj7Dl@uTO)XN@mi;JAJ;KK)7*{EpJ?W#i3>&ADLpE43BUeM>ltqL3STo}ig z_oNz&)N4zHl?lDeoC2O)z5d2=_Jt7IvTZ9StX+fj%bcf&{X%cva7I&KGh1A4)0E0d z-`$A^nElLA8TE>S4}3e_mKNe5W`5_R1MBe=_oRs8(5mts4H$1MFSubiAz4~z0aoy5 zKp_PzC31Ri24F66L(5)}QrnRiJJMUNs7Rk>JYMu+4aLCSJ+&%XCFT5X*ul;rQuSi? zQ-MM2d@>9VXAdcqKsr_9hLws&K+Fqbd8D FES_%~TEG^VW<3myCuC9_gb<{$uSXO+6YBdfcAwO){ zAHWUs{BIEU0u^x;^+`#N=I wzqK%ZWN?1;V$ 9R7u$N3)?cQ7b*ztcA`7An) zksr8e-#@p91wkuOcsqZo$;}DGEx`N<1wgNYIWYsHRY}8ed5~pR8sEDy|L+H9;DiHD zrC1^@j!VO5lHco4=^T=%iuniw6N1~*mogWdVM$Ip%JWBRW@u3`5Z|jk4}ja*h2{E_ zIT#0{jee^U+)y`0!r_PeW*rgvLgBmG$;iAy#E8{*I8YKRj^;VJpcyF>B>#9%+~`W9 zBU9giFtZ0VV3czeVlIQekWDCzU(VRTqy&TelS|C?wM_70nPS{MYaV*8C9?MjE0#Tk zNQcc4?b_Kg3csiBwQRlE<`imzT@A#wFk6#bU-2blQy0^&6?R`GT!9$s=6^`Uikm@R z#TY}2QivBWDTaItp%qcaKwqC%r) ze>KXF%wh~JB#aL^)<^ocFc(B$p?84~_LF_DANd9J{$+PY9 m>|*DA<7QM(M6-g zhUm_T^AGf;KH|-v7;ODjK>mJJElt$nHvI9Ff3|{g_qf^p?ITPIU*~;L9`t_m6przj z%z@L9a-n~;l1q-Toz=`|3O#huLgjXeeO9i7R6hLc4g2tqzvwrj<{a~Fg!dH$B9xMs zlvGy!N^9=7JUvO*|4skVCf2e-|FjMM%O+BIjBy1wfjVFBx01l8z29|_-k;T<=`9KI zek3K|^X@WmQJ6o!y61C)ZgZJ)oa6}mbxBU#z-pG&7uSgq?)F7=?Bdrotld)T!Nm9T zy|*u -|YQWeen)?{@d{W|LSkgjiF7J z<$f_E&i7>K^p^hq|AqO#|GvNH2VU_9{_zuj h_ Dc8Htm>?9 ztuAaRX)LEzR$|UGg{EfB67uSFH?FsZizlwuh7RU EwZAw)tsm{h3e>WO}njj zNkl{0Nvz=8#Sna#QTvkEY7_O;P)S*DHV(_DS3RhgbE&A_S6af$-zG@Y1{G!iUDI}W z{gVToV0iqrq qDc6WM}U>pFRw#qnja#`ixzddTTE>d==~0N?cOT zhm7#T3O8 ypmyE!>M^NmMqimH>1jJ2 zx$J%T)$T3f%nQUsB?-fa+8O~xGm@W>2YgCCZ#Et*YLN9=)CTCv*YpIUXWV_+a;Mx> z7w~s6w7Ev|#E!&3`oh|(qrD2jRb+j_o(|!>bm~I09MXzeUrg{UQFp@k3VcsaL;#&X z0}ayou|fLU&)q)t?#`9T3xl`b5gz0ZXlj|MjGYfjW kCRrFf}CZ89zQf6jkV8oNuAk*JI`rIdH!d`v1gQ^o%!=hG0RWJLqO)QU9& z9F1tyqx!`W3Gk{UUoTVI0rlI3E{V24h)SP+$1Pjna7uRbbgHZw*fM?#@zpmv?LKa? zJL=-7ry9JEhDwZzIdA+rjdO#wPluzQDm{3Nx@8dLk8K=yCUAu{gEC7YA7=6J$_np@ z*Y(H|A N~hS9n>0t zX9V>#Xn!2Ze9huz=P6uZq{#0+mr18`R3&~Et3C#GE4IQNg%E*2BtD-vjI0;jXW{@I zlp<1sJMQ{o1L>unk?#OnDQeP5weO|A7KjGgu?tquRFS|924gaT4CT2}7}l+Bh0OQR z8C_vjEY%0j-R)G^1tdyk_(55m_6+I_Q9wRJEw;M~Zl_vsdjq1Uq7HZp?#A2|VesMw zHd+|V&XbN OY4Rsef9@ mNsBJm?L-MsGDv8_q+43&U#i2n z?A0P%LFt9m+Xc&ahMC&3X#dPcB(4$3kJU^-89Q{vA@(-YIhX0PvasU|Rj!v9scs!s zu3G6|QFQ^m_KSYqH5s);y5M`v$foj|xNewMyT)9xT$Nbf)elQFv6_jfUp(xqPI>a! zU0rCTI_}>RRMjwE#BlXMs}pa3^?irNf+~6u42ww@7nIR$sosk ?z)W-iva6V+tz zvz-PFd9i!b7WIu*U>Y955eZ-`*uRXno2jRoa*D~PC$&N eDA-!R}pePv2G~V~B$sA@|!VL D;Nho`Dl%R)`VLCte?S=)v58Nm1 zMjiYHc53e?BFqc?Yo`rd63H5x^6GsBQ759yUITnLAuwmqGDPV8uE1_d;$~uvo%sQa zqu`whg?ebc$4bMgDzh&GS&bKn_X3)kLFj8pM~2hc1Y!7UgiEoYwDU?J6b6pzlaZp* zRA)CB2Oxj c`?3&rd$ShgO;I;GtPB1RNglf4i`I92*X5~ zN5DQCE+XW1t@0%i3YT^#7!Q%kX#L`$poW-X5yP#^#nr_>LyHGWKUFyItcVs5{TbG* z)^Jm8HrFl{)C1QenNJI}A#gfdFk7C1Y8AigDg*BBLWo5G3ynrS_b;>qN(eO<1KI$M z4hEX@MtWq$rs6kOtX3!j9U@6toEnUJw!>sRh9ir8Wd)PnE8L)2A4|~+{}O;-8sa&P z)6S1=1>Erb`AxhLvMV^=TvX&EsIYu{NDKZS&lq-pWS%8>6C?#*!6JXeukergYkVnh z#Czaf@V0o%JO;PPEpU&y>s$?YmTZxCWR%<@4J3~<;M6#2&K_rtqvFgGUqpq76CuJz zEE42f4P&s6W6MK>p+&K*s=Eq`uHN~%i$^XVa)@(gOhQOv5Tc!3I KQEPU9T zC`oX`DTzxw0}TzJM^lO9)ih~Pmla0B QrprXnY%2XE$k#|``LigON{zp*L} z_M`oi!Usa{S5FP@Wb9F3cYo#cVvEt=2Q09zx9SWZ|Hf6CvduW3G5<9Bsj7+P@))oq zh9fqlH%E}7wiIZU8z0$lJ0BvH;>`Uq)||y GM_Q%ujZ`h0v2onK #Dr{4eY+T{E9$0y#G#3)AP z_b)V`ZX{qK_2Ebd@hRO#$nkwMpiL?sa3F4HeYgEtO4l($w`eVjeD#~IL+B#=6Hk!= z`mpk8GTj&J?bE*>vEf30g2p2hAhe*vbD@<#`9}ZM6gkh7RG2yH%El$uQtu|AMSd61 zi#pCe$2Z5Oxd+Oi#1i6Nut5p4wn7t2F(%lc>!@CErhf0RRXnYFwGpj0+Hj }j!Z{C2H$*tu3b99=6F4z869m)FV(=hw;(r?1ZndnB80`I>}UpQ8Hq9lvD^;_|~p zc&@iFDOMVL=!1W{?^qqX`)LD@LVWrG34zvE_j86kV-j_g6ae#4qa*`x%j(xYnBgvy zyeffytO4;JIL#29yYrEHWlA#K%^%o^3)Iljkii5tF>oTq6q2gkN#_WfmDVu5H!QZq z446nCn>~o}hC%7qT|htH$bH#;Pi;7#RnAg?r^k%&{n}~6y>{FPuAMUc&13-U6}Pso zyfogI6YqPH(bgV^+CK*{?y6%5=s}6pO~^_3*qYY{e{vHDypI~r2ARx`ExD-G1AJS7 z(DDq!{tgt2@AthMvI5; d9ma}54)|Y-{ z1EScOIsxnBh#u0BgUcjX>SpoMRj;8NBWC1aeugb;5o`Xs;%hxfGr_3U(Nc9fJBQq}Uvu7W}>Z)NFi9RlPFbo`fv4J>H9 ztNotHXhB&Dw?KY0gnOg@ih6|Ru@xZHg@38p?Fc`e{tN)qlBtJ1V9dO`hJH5G8I)^h zFJ^57jV{Z&z-)gp3jyd<42~-4Ts^SF&=5}aZmkEY(rWO#NeH~O@$M2}_!X!WbFaM;)PD9HiX z0I0XPK|Ci0E;NP#l}%)D=sBU{j7Y4q5zof=g^C{ JBsWz}8ER^Rq(Hyz5xDa@zkD z$0Jh-)DX<2B_Uug7E HQx?&eKcYwdedB3r(_T^6mI}Usqj9~oj zf^d))5NybRDV#gtl;3e71GlK)bSJkl$8*7s>}UO~p|b?G!t`2}&39lIX5ghnX23tX z1WGC&bZslA4+t$GzX6@*mt})f^;!()(F2=!h;5)yd`c+W&IR24UaAmC^&D!QXKu4~ z9gbEGGQ7v1{&aUaU(NioPbeZdP>cuQ(_~m658#!bUOxWY0y6xzsU-U*Odu2OP{7Vn zi6KoDF_#>?aAbcMW^fIcMo+*ooN37W7|o4IA>Y}0ZR%MWR_iBMGl(9n-_|g8T uBu?`I7yV#~BuL<7|f9j|2c;aWFE- zvG Ais^z(#3Ut+WbR9} zQ&wgGgc=0nJrKru`c&vxRNxI;uj{j(9tpVtCz!6DgY1}Q`cvNGRQrGm)ldq%4bZ~H z6RTjOLBwB5Pp#Gxj3y3n?)@pY_LPJ5UbP1cp^vX1TJS7D)O5Uj+dP6usA{Ul>%z~A zQDxA{jc9)HXavq(qD_d*!z7fwi=?uJDK uH|!%_3vM&FB>`)8<2{N>;%JQ(}*X zv~6oq(`JI7k)a$2mg*4uE>5(lF8p*cD^yeYWvvXRBedJjRF&Sku);F+&8#iL1~Dg! zRHwqR=Du{%?jvjQ!SL$cbEm`96JA5V0=)Jk!IBD3@_tv#d#ut&trt_j`e8)R)RwP6 zi+WZ-y|ZdRyqD}q)fPS()6uvNoPu~m{9t;*hFVf-N!wOTCYos#93K8OlyH*u{KjC~ z&wRMoy9loT0eKzc+JpyD_>YtUpM0MGVj%`WNq7z4uavI02lxG;QN}*q{^iKjt-76@ z+WmnNd9JH3sEGGvYPRr{V1q8*Eo=>}JxOqYa0~#=g$gT?w1TLzC@xQgt;6!RnZa2b zw2O~NF0@s}iu#h~vgV50mvhFaMh7N_r9_e1O8@)X?M>xNUkEFrCM%-yl76r5U`%-U zE=Bewp}!41Vr6BB2ITS}j|WpWIbYMOaqsIC>S3(=f4uHX?oCi8)!uU$Z~XKbY0#c+ zRCShPMtCQt$C%3B^ZCf?m6DxbSTkPq5evqJ!Ppc}Vl|#AKd0iTdnmtV|F8x_W2sQG z6Wj4CK7UXjyNdYRFsTteG^<&^s=2`4mMl!IOJ2wR`IUn7L?(2Pg|;QtE>^BkS^8?9 zV&CX#X&JSOli<*>%I(kh03ZK7tB!h5xLP^C6ps>uWo3zSR~LwH!@y$H9pB-3SI%sF zA(-i8U4sW8>v(RX;lY@Y{b6V4nscE+BOHv=kaje7ziUGIlke@>#TT*mk2^foA)*EJ z%(JD1)}HW#5{ym0{Wf`o2)OiSFy-%89W`HWBPy{zlOZ7U>j$ru+5zhB#zsIK+X+CT z6S1ZOYLsnOfm)wVqy@4s_3Ts+0wk*N|1G0N(jZ4R(>}MxQ@4dW9{0gXQb`7kaBc(c zrO3W)g}`IPi2a_cKp2Ho6B!fxAwTt0mHwMonNVfvy>d(7r2=sqJdVa}DFXT|stO45 z>rAiv{}4m$RFjod)oxD#iVJOSkM-63P64;Aa8gdfeim%g>en6z+D`vS<}G;Y$IfQL zTilQDxvv-uK-9W0ciJ6DTX=z=yLS?uy2@oXtn@UJuy9ysr;e=
FGH6D`GND>;+5d?8vwn@@O3$wSHb59S$uV{!F) zV=481V@dV;a-wW9GBRxl!4puc*LWs*kb559qjuP+Q%*CXDuD`grU)^JA*8DTC|A8! z$O#B07}Rl+`dgUL(Nj)(8wEPYdt?%k_7o9mBYUC20(8`(4kL!fn92m~4UCo^)tG;O zQ+yo&q0PlHIe)$)%Ra)BE0>jZHhpNLc6Ey_>)7LptfUv&@2L^Ty(-DhGDVl$>c`qN zo*?9wwd#|w+al$I*-9~{bX>GJ@zG<(vM2HW*Brw+I0K6X3&V$$20G_914iHNE=pBv z?^b}X2={OCDYKnOu0;!Yf`uoOQ-}GR@Snnt-ZKOA#51PgssI<8ufXu)=I us^3KI)~&Wr(H(^y|*|Cg~0b6c4npMk66rz~I@t3?|hz9SnL1Jhz@w z85!vB6h 4cUiLc_xIvys*_yh^>o+zL<9A%Bh1Fk6k&%YMr2>p{%1;=TJtgoF+#k>U=LT zJlg?Rr{DM9&65ZGOT@|tpL&5B#2}+tnUP>Rkrl#3U{^Gr1AYs)-)b`r)m2kf71>^) z40!HSr?_|Zy%lbW+Pj0#1h&ksI>V&{WgCv8c>MQv(1Rlsc+bT`kVqj=&>=)tz8hST zg!g=aE+M>3e|&}VFr=601uC#&FAPJam*n91v|kMn!LSlF{q#CGPZ-&nHG#_T6J#Y{ zveH}w>;i-f923&^)+#M;nR*%vSUuo(HvX+b?R{2!T>|_4caRu@nrQIrHnhaLB0`VR zi|2_RQ+{U0WCgUt2D4PQ9&m`VvV_RhtNzlbfJ#Q>_d*n5TgoKy0QS#>3LxY>o(_K3 zY(T~$`y1Afa-L^0pfQE(&sdxZd^ptc(2uP%{xg7V&jv_thpBLxS=l>6zSEoOI|NeF z<6sWoCU{p@Ns5LsT-PW9(9-Ve3SeyBje-Doe%)XVrDq9W$6~N_%kiwgLWK DlCBnWmoZ$g0ss2&V3JU=d}nQTNsC}OWe zDZ!A%<)Do=WHz4u!Nz>*H+kUVUrI9$)<=C!4UgX*#ElXaMco+IgWa8MNLfS@vzY(Q zx)_J%*fvZ))IwOb&9Cc#a!aLozA_=m0Bu}RW5yE_Uis+?h0|oh3R;3yiO=!okQakR z2qunx7J#{eV)p)hib{v?n*^`~96FM0hnAgX;|}Q>wOT6Lc+{tcW z=U@{0tk@eGqSTik`NflO_-0~xnz-oXw*c(U1>}k0 c {neD9jx&}s7XGT4?9L#~Z=I#{^ZjsjcS!X1Z1;h-IV+zmE#0wC8*RZE6iN$Iz! z%wDeLVPv 73Q6qBM!nQ&|Dl&TBh_sg7fk98DuH819{rOk==^9^g|Vl4JM@E^kJjmjr7j2`Gox z5JaSo8=($=?8F>=%*#RNxo8EIMD6WQ*3C3=YL`FzUBnVrE%)UwB)%hQ)=IBZ#!|&P z<2?tFgp|US4bAlalgNGj!+RWX=lIZ&1Q^-uKMdF{-)sP=isY~~o{Xcy6*jfWmx!3k zG_BMkD>F@y5MJMRfaz}xW+F%8Q2HN{HT)SUNgo&rQ>Y-$`qi=w>O}Mwr&{Cf`_%a? zdFu&)YIzR^#EO~S=n*S|qGHUG25{MIuvkHl2$gGl^|^vzF5Ho*i#8s>HUabNGN{be zD-&H-McEg=eMrRJ(=*#y3z0lRC;dqM5?M60{|JEhEU`D>ZV^2a!Q4zC;Q?E$x_4py zIzx_CJZ@<3?(V9%)Tsw!Y3Pd<;Ds^@i}oXrH8YQNH!K i1 ztGhF }LARZvwSg5zWpVXxj~KuNmp3>cwfF|3GAFf7L2(VI zTZ1YZ(RJps?53ernA~PaH47KYi4~8)NjT&7 ssYeytSNDFAJ~4~e7|i*5|45vVDLVGW0OQ samN}xt!K&VU zA4L-E?lFD!oX=lfvkyv1)2nwr+HFcN?JH?DYf7wiU!4k{u&+otZz}ww{;K@4_Cs;R zd-qs)2E`S@^aPhS-_j?Wj_ZYVG^;p_F~1Nz`lYJ+>Q}!V>FO}Oq0Yskt9Cc-;wn<9 zC2d~aYgS{LDwAsuS*tmI*8k6Edm`shWU|HfnjiXjva>gm3_yQRjNXC}xLpn3 ^HYA+ fz4 z_or`NK6&}{;j3p3_is|oRI{V8*Ns)hZFOax>dR>zh7z+S$Ao4iMC2$bhIl`|H97f} ztG$JvxY=78dDGq!YmII-1hTqRmJ`=A?J9DT!kQEX;z%*vvuI=-FKA>u2EiMi?8<%b zXN6Y4XZ~l?U!AU22 _ z*LyImlEJyd5K3j m;?K3^fw!n z8B&o5=*}&25%l1BacQ$v;HvJC8h0vg%&G?qfghpc5c2k2N+qUU_Ld}G8xIA8tdy1g zh PS~~$igPlTVhX@|Aw@g3MBhf% z222m|?bTjKmd|$QHSomgDD(mBcSOfAWx&OLy9cth?{H^Bv2yz5O)SLY{d*TSDKwUs z2xGCSYfNPAtP?M+B7S3