From 083b46a94d99a85f6bf59fe90470cbe54306dd06 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Date: Thu, 13 Mar 2025 14:44:11 +0100 Subject: [PATCH] refs #1702. Updated ogLive sync. Deleted wrong or uninstalled oglives --- .../pxe-images/pxe-images.component.css | 22 +++++++++++- .../pxe-images/pxe-images.component.html | 33 ++++++++++-------- .../ogboot/pxe-images/pxe-images.component.ts | 20 +++++------ .../components/ogboot/pxe/pxe.component.html | 2 +- ogWebconsole/src/assets/images/og_logo.png | Bin 0 -> 16724 bytes ogWebconsole/src/locale/en.json | 6 ++++ ogWebconsole/src/locale/es.json | 6 ++++ 7 files changed, 62 insertions(+), 27 deletions(-) create mode 100644 ogWebconsole/src/assets/images/og_logo.png diff --git a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.css b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.css index a9062b9..c003fd9 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.css +++ b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.css @@ -48,4 +48,24 @@ table { display: flex; justify-content: end; margin-bottom: 30px; -} \ No newline at end of file +} + +.status-active { + background-color: #46c446 !important; + color: white !important; +} + +.status-inactive { + background-color: #e87979 !important; + color: white !important; +} + +.status-installing { + background-color: #f5a623 !important; + color: white !important; +} + +.status-failed { + background-color: #9e9e9e !important; + color: white !important; +} diff --git a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html index bf06c2f..72cce0c 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html +++ b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html @@ -1,3 +1,5 @@ + +
@@ -39,12 +41,13 @@ - {{ 'searchInstalledLabel' | translate }} - {{ 'status' | translate }} + - {{ 'allOption' | translate }} - {{ 'yesOption' | translate }} - {{ 'noOption' | translate }} + {{ 'inactiveOption' | translate }} + {{ 'activeOption' | translate }} + {{ 'failedOption' | translate }} + {{ 'pendingOption' | translate }} @@ -55,7 +58,7 @@ {{ column.header }} - + {{ 'checkCircle' | translate }} @@ -79,13 +82,13 @@ - - {{ column.cell(image) }} + + {{ getStatusLabel(image.status).label }} + *ngIf="column.columnDef !== 'isDefault' && column.columnDef !== 'downloadUrl' && column.columnDef !== 'status' && column.columnDef !== 'name'"> {{ column.cell(image) }} @@ -108,12 +111,12 @@ menu - - - @@ -128,4 +131,4 @@ - \ No newline at end of file + diff --git a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.ts b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.ts index 380504d..29c1ee5 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.ts @@ -50,11 +50,6 @@ export class PXEimagesComponent implements OnInit { header: 'Imagen por defecto', cell: (user: any) => `${user.isDefault}` }, - { - columnDef: 'installed', - header: 'Imagen instalada', - cell: (user: any) => `${user.installed}` - }, { columnDef: 'status', header: 'Estado', @@ -110,13 +105,18 @@ export class PXEimagesComponent implements OnInit { ); } - showInfo(image: any): void { - const dialogRef = this.dialog.open(InfoImageComponent, { - width: '700px', - data: image - }); + getStatusLabel(status: string): { label: string; class: string } { + const statusMap: { [key: string]: { label: string; class: string } } = { + active: { label: 'Instalada', class: 'status-active' }, + inactive: { label: 'Sin instalar', class: 'status-inactive' }, + installing: { label: 'Instalando...', class: 'status-installing' }, + failed: { label: 'Fallido', class: 'status-failed' } + }; + + return statusMap[status] || { label: 'Desconocido', class: 'status-default' }; } + toggleAction(image: any, action: string): void { switch (action) { case 'set-default': diff --git a/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.html b/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.html index ca58141..b16e300 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.html +++ b/ogWebconsole/src/app/components/ogboot/pxe/pxe.component.html @@ -74,4 +74,4 @@ - \ No newline at end of file + diff --git a/ogWebconsole/src/assets/images/og_logo.png b/ogWebconsole/src/assets/images/og_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9beadc38c3e215c35eb7e9dbd5e142ea7a1ae351 GIT binary patch literal 16724 zcmV))K#ISKP)002Q7NklER&d-@9%!M zUiE7|$=;or&CL9fI;YgHyQ`|J?)~aQk-kO$7yd6;!?)}obXa4jHFitvvc?YT=xU|r z)&_ak($Oi``le2*ZzgKPGme+<7t)pkr)gyFd`cZTi4ro$()j5MaN?<(9%k+ogGHI zBuzKct2~{Zoknqp_SN`V@qNLZ2IXlQ7nfJb75AVYlTv8Z%-^kTYE!M~>a-TF+Sl3I zL~Tv=@>|;1g{w87N$ou=+}RF#TJJv)dVxU`ttS`|6&MgZ`FCw&0~582+B#K3>Y9iS z9J@#(C(WjQE&&vtJd&c)M$`ZM)PWqmEwpCqK5FPx4MzF~ZfzS^x)V40Be=1rn)&_% zu?xWL;L`2DUyAPA2M-cgkB?{vQxdqTCLp`a#voEEL zm`I0CU!~IePC@-@tZ9ly(tCKQ> z6;_&yn&_}HRUW8|pu3|>fx=*T&#UmQ2N?PWf;sBvsu+mhb{4m2kphFL3o9TXEjl_n zB!1DL>DbiVDp!9Et3L(Dq>-C{xQN15u53GaVEsyKqe4Fz zF3-AcR{#bQ1X$6}ao>V&V@g+7*FZK(^ag__Hh$N!bg5(e10q=24j?SvD&_+WI@sTT zk)TP6SjY53Y2znPB}Z2ediAc9n$aG9R^O&!R5zG>k?>+6~o?HD`NRrN-`zCv#>2sf7p7Ueq95|tHnz~iCokygwcB+4#$9?ly}%6%hJ^s9-G{36Uw8Y#W5oP#+6!u9)-PS>xqwM}kt4-=q~EvRPxmccNT+ikl-s_5rUEM{6e z)NgaU?SUXxy7h{C2wDgi7{ZVc0EJc&I^Z6RXlb$2&7U*qI<VY3Hu}^z>N~)v|ODXU$ZPzCv#>bhlcg287D2D>`$@Dh5G_FxH)!`Z4$P5mV+< zMVlgYO=G(-0cv1u?rgCq0EW+;{mC^jh8%pt$=NrIw(LD7WulVmyDH+s0)r}Rn%O{Y zW=7k3F^tt`h3{y~&i%A#=^DCl^|pXQzt>KVjvX?Yn{R#r<-)X)36ekf=r=vef&gj_tl>G1J9qpnTtUBRW)9qLa0 zV{&%!pgVW(Q&Uq@kFuaT;6WC?en(Sh&7l<2(@AnmYgQ1=EZa2GFtt^%p4DD=rSHf%HS33`#5^n+0z}Y{FoCBlDDIkg- zzpEuwwXxgE2yRddW2xXpFID)x{ z^DfeWA@1biAI8@9O(9S-m$!1m4)P6*Bqz^63Sc0*GAKunpDro~#M7Vvksv9|V7QV0 zjG|J9lN;CPGba!73yUS6Uc z>*|}0d-Qq)ElqSlZ#Dy=z5yN?QA|QIMaL(}Z!H-b@m*5CXUttdme5G<*|3F_WI%px zgd*SEMayXPr0ItA(|MWi^x$z3rDcwxQ)jP8+O{rR9c;m-4ts;4xk|vma+`EQRP;@G zqj&=@0ny|Z5=Rbx%;ex$N*gzX@h?y~hX)H{sR#?w&WNE+-N zPM++7PFt|b0D}Z;4X@qKr$Meh#xo10q@4_>;R|I1P01 zreHQ)m#*6?499>C25PjEi1J^S*3jy$`^XZPP98x~;_k+zjik>U*!6Yt6hK)bgFRNRx<+@{qr|v47d<-^zftbxD@K| z;3mGm?tMs8z(!gu+fTkBk>np5Eug8as?jYnf{a`66;^+BO`Sm-d~f~cZK5vHvvO$C zv{|%p#X5>f9!6o&@icMj3>lb1dZ>jqrY(Sk`zAK5&Ro1oY1w1MYtuZaZ@1b;-D(sw z@4_ug89s)=)*@>3^MOHB1YD2~YHn2sF5#{@Y|M1(=V~FRpadG?7efO)EaVfOO!VS}PdfHB~fp)7i`SDQnDBs$gFq zd64&WfT5MzTL6YG(U~aV#Kqg>78FmemJ}N5AE%;Ev=A7m)FMe-G#H)jYVbqEE1T7nyG3;;a$p8?fgU*LE z_ns8ehzZju@A4g~S8b<~4y@4)NilozI+{Flu^}x#9~hV0>=;OH zmUJ5I7f&uB$>b84K=E1Qgn-b|st+hIbhkCj7tu(Ju`k`Ymp*e3B?rzkgng^(t00t+&NKrv}mpy5&0fvIt z6_k)MMx+Utj`W{62hfdzVuD#WXVrEFT8gq|Si%H^Cy7YaVAyr)im0_A{0>u zj-VZABLh?>U5{s&20$9rcm2*oG<@Pry7}~-v<>w~2Q8^3+I##GB@P=)d6#YrAK|5G zFd4ywj9y^q>I9w?Dn;CK;-J{!%s@0gg~5<0pn%TJEFE1Z*X3-3L1jKc>B+@|7Q1XdPqkX4uNMny( zejvuEQ$P&41jUI_in`2PzQq8;y6p$Z$;%>OfaGxYXJ*D^N&ZT%T1@5yc5~wdC{Q)? zS8kSk5dTP%FnStGKlXYeQyKV4jI7ZnMX48fphpDkk@d(oA^MRooqgt@4yJhgB zn!gBwyR&!)BM17#iewn#6Tx7Ztc*q}&f%qE z_n)F_PE*BH!ng+PgCWc;kB~$LLmaKxdQ{%OW&3!rXP87kmKeS)?$MK~S%je*6thrs z4^OB5UhK8-Hyl_!e(GisdnY7$w15LZa0pMkH-nOgkEisJlj-Q`t43#SXjLj-1Iq{>0)s{$L^wWlj}1gOX5awtD01dr;ToDM zBHtw_MqD(h7&l5y1$T)^L!(du^t1;rE7*HT7Lo4i&y4o;r+fJYYQBLK7+|?Ov4?fB@ggZ}OPy=Q{(PobO&)p{fMDF=+;p7Z;$jpa* z)ZaZsBoU+#RLDSSGy{Afn!T-9rOeVk}QS3(@wYqs<=miFh z^`l_udWe_jW%c4hN)KVz@*~$^mJ-R*YdzUDgI_M`Ta@JsQ3McGHY?_ho4t&F>fkLs z9`4ut1&gS*mK7R+!^A>k;3p6E2EgK|KbP;!;u}5oQ%6@?vwf#w450_C+Om&9lOPOr z<=*P(jUJvrMHMwv-r7M6H|?SC4e(%tHJUuQw+?WRWX46&TlV04hi-zsPiE274|Jel&gYMoP|^K|ygN z=p*M~8srQ0mn3Ol6_*tiOrGdZKq72seeB(o*7Z~(_5r_j{8cg*FWfzPIGKf{f zKsKBL;A(*#Ks*whLr5FLL9u0 zNE=07ks0LAjQWIK;eM{6WZ|BE?|C)FW=y6*d>X#cT&1I(~|_?b)ML8pouZ zsodKm$T=uQ)Zs@C0n+1PaAHV(^1M}a??o9!4;#`OPC-h$TAaSX@EwM64QrE1~BWlS2n;^APg>JkbzMz%WGL0 z#fao^=3eNDQMf%Lkxn0@pPnRN4v941m_kY|Lb1$ZuSUvs9;qhj{oP#1V2 zuwA@4opW#!(dZ;WK>pc!C4>xtjynNi$h$hx||iJbhy*j@=?gEdj4G3*h?AXZCW zG2|AUN&{Ja1w{>`Lnkf^e^4s;)!KquDT$z`-0>XWvH$-2LLXpY#CSmTaPnk;C1&Q*ku$ex@#-BE8k<3uXtrbAeJMI2g(}$4LtCG{c_*$aYyk(~ z7y$xiTQMGisrXkFjfTn!icS@8B#5OXMpj`*VLapJoqTHxZ9$7|&5#d*!8ces9)|3l zSt6l>0BD0enU-vqz-|a&FK73m)8bKx6z8&9nqgk|{LbeMeSkqNxD>I|t)`Fx2#m;q zxt}`w$N&u7D2&Wu$T%b>nMN|BR;}MmGv_TLzhL&?{VWt1h4F|;@q=NpgZ;7)1C_Nd z$h&s?KKJxcw$`J>GItJ0BAt82!Sz}Xk=;MK|G+?MJ&6>ZM z3JPBt;`Z{5I|i7-UB!XA#3PpATqbJ@p6(FIehQNSlDS>uiHQB@GZ)F{+jqO~f%qP7+{49|4 z27|bUTzOg7pxhxe>FJwtTDW?P7>$US9{>=bDloC6CXM3B&C8cuJ$+;x9}_`)j-8Vp zg?R&%12Cwdh=B3eI2`B^A-aEnX8`%faG4<%7LOj}!63u%aae3R1+nY+ zuB=gJN5RPIdbO19+JomZ2=$4huUtdphYOQnTR^H{f@>%P`pV7w#(D|3!Kf9$058TZ zD3&Ekx{O}>utYq|5(*un&g!0l7Z3zRF;}{Z;qc_b~-^S-WjF zOJS7j&ypaD)ke5X{lkuuIUZJ%Ig@6|>}I2Np^plz8ai6~EFbsp1E4wd27`4ygG^yd z(@CbV@vD-Z;FA|`h)aov!+^w?JbJc|C7K2~dkPqWLqcVKy^^he%s7I0LQL2e*7{(j zFRDCk_CoO-25_%+V%-ZJ?-iCN)8c+nY?uXExMzfrTVOCtgj=34TjPRsH|uK1YA!aX7=Vi zhsBT<$Z!G0ZStNEs8FPEYq+E(lPp7n;Q8awq1iE@hiEHfBkot7$x^+?myH$8s!I`ld z`|_P9w0_4y+Ii?CoxO6$n9z`Bs;W4v1xS zjkII`QJEi@zj71Ze*9eCf6;(ypxk$r^+HPkA|Qf28FtAXy#gsdVz1v9XkQ`MxnN3+C3ewNhiZ>h&en&1%40Gl^lHP0u&ilZC z3(}U3>H1O?=mQJ@ftCt3Fvu%X^Xf9W(qZc%0*ZFE;#dVG@<4nu z7-R*M49K8NB^mrfBH3t*lCghS&JJvu*S9K=!Ch3+rCYB09M?r18VR~@Ir!Y zEFv{TuO*o-U)QNeTc8dw`l}Z(e~Ak80R}4w3?S%eN@9(=ml+Y2XO|I`gQ2J=V|3*) za|iv|&f*+sMj2tzaGL^U{NE!yji%3C$-ToiUXQ&RuS(wZAj*Yn4{6$*Rb+|Eppd8( z8tUOoULjcT;3tM`U}OTV+PKpoUPG&zc>9@P09e}J24eu6cS@W!LIO zJ=2v(M0#aJ!SZdBokHnZqbVRJg}sSLnanzM?j}{&sA=2Q_71I z_XdR#yKEM*s!WH9q(~3xVAgTw@~}L8#@xj+7J)gB2xc&L&1q_Y=wJZ)-LCz+DKb8u zB4U$i@ye|-iio$5Usch?dj<5OTrJ9lqN;4@U~gt3`38j=OscKNax*jWtlzO~4jwhP zw^2(QloK8@5WDzG-5LxmEjrk4v3gtL#jx#z4LOh!zleYVD6ED?xsXh1BOpsEb{$(; zg|~I%x%#%P;)uUsFlZX-sDl2WbwH{E2Bx*Yn>O3XJqA8Hlp4^g0<)O5UeiStC2y&! zvRv+OKPZrS2#?5gI&t+O!5gZrtfHEVasuI-Tk2@`yy@iW=S9OujiSfTUt8@6tk%9j zA@SMtv6D9?j2tguz*ID9cIfySa&q@#w^QvHFR!flFc^@?`WQc<0*o~p009HDqqU9& zUjs`wd`U?Or0M9w$g9%zUpBO3|A;l{vYVNn_yQy(LqY!PP0&5Spd0W7!_Nr@1S?_W zqkP4-G>A@Z#Y#m?lA+s1SV;juK!V5?HkBR=KF}PjIeb~wPW9btceW12#cyfqv`G{g z>_$e#|f%LTSr2#~U^mV$PA%u&-(?c3G2sYZoztVfPk~xwklhFOW88r7#OrJA5gJp z)B1|<3%$Vb;h>Rce>DZWFZQg6sxYn%O=`a(A_h?4nt_pszyn;Un8Z}__79>9SFTEa zECj*Yz_lB;lc#SeEm^fq(odSboMJM@ie!MG2Fo|?+DlGeJ~rY(+*+fqj~Ixg2&|Wc z@gr)51!-!7+Jo7}K&j{VP10Lo?;uG-i*1rluReyoqirekZ{xdGuS3>;SXV#GJw|7( zH+ruH%7vQ6nhPxv5p}y{v#kUL1i0Hsrz6reqZ1Omy=JPaQ!A|iBH@K;pZ@0r!_N_P z%X$PWiaEk46!AyOUpELz%AKt1Pz)VDHkU%QOC|+pivWN$Z&U9d>Xwdu27w)T}e5; zWgou_i_2)%;uRE?oIyd+vE=CKBN8$)E|GQ}IAD~iw(G&ww;8=(IT!>8Y*RG0+LnD| zjsVR8Gq4TrQ%85&w*QD)ZPjL*Lzp^k7Fj~0=-KmE25}D@zd-#Redz9!cd`&??Y6z- zV~M0yo0R0xu3t=X_s)+(O6e3RC1*+o(DsgyG=m)@4uh%NKtb*X?L zC@hASt=>o*w(ce`e+z{~#7SK-sE6`ld}G%XCi2|8{b|hP88mmfH~6c!yP6KP8JC{<(*UkeyS=bFF(X^cj_ zt!Q9GXHvqj5wZ%&(0S~RJSliV!6D(aXYV1l9lGS?7nZ8BCjd*>j-9m0E4Zpz$6 zk{9bZs~ei-q!v^O$LAy_rBGsOnrw+j*^_3@AHUG%|+v96m*_%31mqyr$@s;dH;?mE^++@uKCc#Rhxw`~@MHm*gRQiypH3h+e82i@1En8VU*yqtY_fJ4MvBVlUxZ`ecwB^&jd@qbAR$ z`_En*XGdu;A!12h?v!cdH51tlD`2ZXS%SMfxD5tk*>6Ullnr!pCasP?>CMU)*Kt2J%l%A0# zJG&v&PF=o3!OiktH8w+fM1yFaJ%0t;0b%6s9U}V-a_20j8S|IQ-p6Nb zbV9vi---N?lPdR*hlB7=A+~Kx%mggwo0l>L`N-cC(}6lV!s$-ecnp(r(*(TvmcT zd{Ig(Htd$&?AVo!cSUcj$d?WCwHvld8*#*snO9#q81yhIYzBx!4G7F7jAJ87--B6I zbxNFXW>Jo<@n{et#2ubjR5wuq+Zf({7DoF*dc=AX)5#$6@w1m@j|P^mBM;6wm@{{w zFj;>C`x>!}8Rs-$y#T~Go;Nhw&QqwYX(TsKKiYfXD3w;!lTTn6EnBr&Kmh52?_Ii? z&%leOTlvrF_TwV@Q9nm|@~T|68XP@)O_u6yWp%Rq$QjwI@zAtc84*hW0=fNIB@RYc zHMYx6Y)AsVu5|6DZESe@$-WHS@7#BYJbVM`+*P%84iTyq=WQlsjw9ASG0tP(bJd7 z!QG#GZ?zl&fX%~LO93DRL?p@@N=&QYdh}8x1AwA|0L_hSa@IIjZ*$}~c2oITqQpkP zH_+?DV-jcvgBkZw2NR~upw#RfNsq-a7$d>&R5oC9CeEe?zQ=~*X>*s0?J{ZVJaXaA zk$2{@oTX(D`I`a;yInZC?{T2TnvGix$$)tA%54g=MAN3t>NFMn zk<(U?4|x(YX#CXKk``7pj89|akCa;owFy;%lVTK68)Z5g?_nPx@6#8rMYQ4snH_tM zGic+bmzCFbh*Z!-`W}S~t|qkK)rtFwi{ZXhePB8H~z-PG0QpJyH^(Q`Hsk z0A7qC;C|lnbrckp$N*9&=IlFqiuw(9q6FYClI0Ib;+zQ5GA?+8#l>5cCEc9ljPYz-~Z=^xVL) zlV=4C73c}#`>IN!nEK{6_T5L(=m}E|LLAGxM4t_C6w$4vf<7A=@1dKqaQ69|3gu2& zB4{^8Gdq>^KvH-jNQ3LaVQCXzb>nxqj~3P(zH1g8J9xQ328Jwccwb5tR3exEtUZ$y^0AD&mTM~q(RQ! zw0P|{8sZ&HH(8~iyrZWt3NtTWyJdhBNB&@qBs`0Uh3||x863%2(WsUOB0em9Lpu)~ zld%*WL*(e@NqY|-=>Z0F_*%fA)dZ}1j4lEU@CHiCYpnUznaBt@%xc}Htum5_QN6>* z&r>iPVH0y_89*R-7dUjgT@g1UCzr)^j_UEZ^U2x6j~?XPRFGa?kF+@I2TSkaiUADw z9u@Qe0~qV=AIX+@t*pD8Fm<6Uu9>x94PCucAVim*$P!dbGZU0-?vPKU1?40?r*CN{?7 z?>=}Ur?_3ZdP{)-9*6Z5R1|gR!6P;xGg-vOh&~=OVTSbVcWf0mVmUrb6loJDe#fpI zT&uNP_6Zoa?mEE!dZ?U*h_YlB(faMzB~>(L@+`L8vnhA>GGWHkm#=$(0g@pgB#v(9 ztK)pxV5j*@H&bv_sw}?`i_c&^y^meWYLOHIvTnGh?PBEOo1?}~qO|lZ86T;%j+xAz zw^;7+9#@R2LXr${@uLImW`n8NSq`;x_UaAgPIs$WQY}%6+0)6LvsBay76=VvLv_#b zGa?}{S%oX=3{W6_{?n&4$ib2F&YqE-;(F#%hhIDx`V2ko1xy-YB@wCuVpP?tk+HSw zHW}&F>M5lvkPa^5{$rd)y=mxvSn6|@te1TiI9$ZR zJ5ctGEMBuw^1xcxV8U+<@+77VGoCG8wp!W?w^f4&F^z45@PuLXrm98M4)&m8>;q+* zC&u(pI+%Rs>K%$o86g{a2I9<3HZ1+ZqS<39R)%G#s&g&V2ipiEVq$5_j_uZsJ+RG` z1V;FZz+emJBk{BV!8wOpwr(d!Cl@L%DO0`0YWbtr=<|(`6Fp?+oP~0*N8Xu>l15MC zf}q1kPo|{dqYdjCa~*i58L4~9zN2T@^@^d@TXxHRaZR)A41+sY-K<9IkoLvfaAgdb#uHxfp8onDinH4s}y(QU<$%vt-Q# zo;`Z@O2#V|uUIGdFbttyFlL|+*x0yjj|@6py?IBv5js+f^>`%#8P{>mmhI#n5+!GL zCuL2PQ)=cc+aPty7&A$vi{3f_!}`M2n{rn5)54c(iM_EXMuo2&4CXEB=7TeD-@Z*L zsp&Lx?gFZ*SI5*rVwihaA)`GzXB>|J{jafleov?9{L_`9wvcCjLS7#M!n2GeZ*Kw&zT_0@Uee1lvTsS zm!)#b+IK%5Olx)?q8I!dyUeb#_klbp57%{Dce7^^M2}u5Nrk2RxXxd;h9yp%j1lNL z42k^vZE2khq%ByoTuym`G*#=b+o`Fgp0LVk%Z{BgO}~8IHW^@Axp}{wRq>R)k(C(s zX0QST@HRjPl#QY5iBqOiWvx07f;BK`TZS{t26dIL4ugk0C8Fn6Ft^@za0c!|Akf$%- zQ5t(EnIp$hsdd|+mINoyUZhV3451x+56Zqu#Ph6{LSvF-N*KGwaI&mE^5-z?c5Dp< zD3)*BC3{aXQC8Ee+)W%ofGK5+Bns&2T8t|W{=|ON$usB6GCn*9Fi?+ilV*{JcMz3S zs7bj7{KFA`gH={ga1Wm3lV4CE%~-I=7;#M-xO{Stqb)^(G-MMijBh7hu5IR@f7XNiyBTaZG`mZ?GKY3n_ug zC8PI~It3O7ib6W%v)X_sg6C@)RPa8I96v2g6II!w_G)0sep^Q~9Y1-DoZa0-RUi*$ zT%%J*O3Y#-64L9^ohJf@(z;d}%dV}HyEkpyy}!pPwg~2bSMari0YK1aAW1K1RkL}g zFWr*4e;9Sp*%(pOVjIK9>$fRyL7%m}ZtGrIBy#WJ6CtABnS?Trp3I{uQ)i0tG(0PZ z_3$luE-I)?UG+g*m=ig0^aL$jwu;tm-YyGkQ6GqR^zvN?kK5cfmhaHnh&X=&|1{(Y zOPkIJT5jNDC_Hjg%J-%mg3=O9DC$caXm*0jhl z?}DYPrJ)-6O)WN%;dJ=o(h{nus8T?%dMf(8EOE1*)hHk#C3WLnqJ4 zKowY3@VZQ0V<06eIZGyXFa->vW6}rbD`0jnK4X;8 zBZ_NUY1#T6vW5TyF^a)mRz!fB*yPi0yYGg5Qb+Y-M0FWgjSMV1gByohflSy}s(W?O zyE0*-v$vnjbb|3X-WNp2Jr;xNxF*1{hPLsi^3bYyQfA z{>*zcWdCP7PQL}Tx{Rxi^>sJ^+$uWpUF)6>EhP}e7GWkqowp~E?Bx!tb70jV*&UMmb6O`Zc}u!8G6>XScmFS2Bxy% zu}qo0SdKJ0c;c+68(jx{OV=NBGRUW4VD5+rUke!C7jy%m4jerK#JAT5m$tayl-JAp zL9C31oq%-sCnwmdZ)=*3aGyWgf+n1fny8w&ea3E;2DXP@z=P+wV*MeG`FT@PE~Bam zDd}toddYA*=3sQs)y$G0H>UboU+VgxY_nmizh#d0?dVayDSRWrfXSY9n|6x`c4l{N z!n8SZ>iga!d9?4)Dasf*PL`Nq&VSmh#d4Mc@>OHyjs$xKf1cPo*c0+Ypa2N$nSp0G zt{^32IQa&K$p5DD@bRbAVOezg{3Rn@aXGdC+B3_pex?NWfG`8WzRvcsukeingKiwI zn7co5>LQKLoi5YWamnfIB4&$T#`EHenx6l*$l#?tgTG9)1$%em9}N~=KnsYqJ15@dVkz{u?K_c_2&-XC@>(PA<%7gZ16zL;$Bu2 zb*hH9w&5(N4*9=J`n{P6Dp-m4MXvU-56bFq>1YoI&0JZW(+3~>ib$(=eW^K|KI>tQ zrk@%R8Vp}FeB;1?APwR_LP*VzZZ#-{b$j|ASM2+RtAqtENN?o-0#_CAL3~7$*Pb!9 zfP8&LeS*9>VyQl^dXo&IJ~P^!PJP3qc!U6^M0l+d8jmy>a8<#+&OPh>zVM9$1KjGS zChTxV^Hjh;FU7wsLeL%&w!P_R=3vi+&l6QJfk6QAVWQfXfe0q+F$;Z~JiwrzL2Z~- z1JYpKhWhV#KPMQvZI60_!M?tI*SoLqjRS+BU^#ZSa}TrYI?bkkhH4{FxBO#t07w(( zi$vt@1%@vO3jH7EFm_^o4yj@OM=|@^tp+s1&1%8?zoz6M z6Vv~oK*XkAGa{32w{o^Z~o_`9|}EBpzq>*>ilj5b4O71ve5|t-~^A+ zHniVd4+KrW>gsB_>iTGUnnN!zAYi_rui;7%UKd_ou2(YmteknS!CWzWW+IsXQ;WF_ z5XC$?hTmqUn;D_YD=RBAo*@8i?^`=z9sxCf*W3~C8)cizKt1e1poy&Ot3ht=9H4_f zA5+r@-$gy}&RicbOSa@&+ohRTQ=|SxqW+Gi9q#ovbwHWAT}X%J0XmrLfM9NapJ31x zK|*A#sB3v#$pN0EhHuAldf- zO?dnKn%FwnpZknpZj(Lu%=I(}Gwsa5o`Il=eHrF^dtf5i|6>yb-2u(C)A;~gGi~f? z&)&OZ=QU}+&jz#2=%QzI`jtN=r+PbhtuTK)?OlzfJr1@2B(U&(o?^tLP^``H4I`bm)+g4j)0m_Ie(n zq@+YDW$tZg^tZnCElNyGlzS}>!AN_NZYHL^cr~k#XV0D)>7G7)YKUHQuCer=EAN&E$oH^5YX3u!tIqap94!yvTnVCty{L8;gZ{EByp5458QwTJ8@L;(= za^wj8*MI#N{qFDnF8$r#{T+FGd&>vctXU%!LfT*d^aUW& zzrTFrcYf!0C@U+A{^ei(g?{U|eoM-~a^;E;_Smsw^yh#6=kyQ%@DKD$zw}F#ot-VB zeg6FU^oM`=hZGkVN5A%Kzb57U$)EfQy?F70rcIk>l#A=^*|U4u6vKuMqu=WTXP z`@jD?&6zVt%KO0&en9{DkN+rA`k(&kpQK$Mee@Ci=YReu4IMgE${9CqoX{R^#69Bo zzV|&Td-v|$(usfbH-A&woR*d*<)R$45$QDW5qg2a&(BXPZ0?N+V9@u!|9wFqD(va$ zDbMfTy(>foB99(DDuv^U9zSc=EGcW{%9Vm-yhA#OM>HM{EGQ_TYuBzxr6GY3@Xlhf z2=h*!JSq83pFS;83csVHqlI}O67B(@!-o$W#DUoT(?9)FnmBQy)B|OJN$1X;qsfye zOFA$Hl4bn(@dDbEloS!KK0ZG5?QehEFub$~MlXwriIKd^moJxhU>fd019T8D1QHbi zgom01m;idb!?*9 zd;}sCA`R$ra&nSY%qZxmKmDnwl+e&nVImqecI;RoBp9Uw8WS5ED>@VJ0Fd?T*Gm~- zk~XmLU8F^bjEod!f&u6W0|yS2=Oadp5a2;-p+^A>Kl;&+M7)APC=+P_4*W(wd>c&s zM-P!pOMUfgV=I|>|q<99k3a7wq8217L z2m$dlefo6iRX`>xj!GebIA8+OEMB~rPMta>ViRHug@d6Gk1JNJ5MUwi{rmUDLdWlA z%a%#QVQWBCZrr$0dKKOwj}Fj_&~xx)V32_s02RQX!3Xa|s}@+&C}Yy3Ns=DD0D2j{ z5E5bG!iAE~)zwvcxHed!rjSn?UMTO6|M-uko==`Uk!J{CEF=w>0qKUG2i1wZ2xrfp zmEVDZfnpEs-Md%72z7&WP{tzy$3LK+H{@I#qf+zyR?HV;2Ex0QG`8`}EUKg@GV2+5?ayK*FFcs29X5 z%7nOum`3}xKGhxw>Wnho-QA@;s08#jNEZa;MIFGP?|%2YhWCYzq=62g!mdC%-D}aI z!otF&o}dK)j4*QKNNMxSmoMcW-~qE?bD-ma2cQQ6+J;^~V88$|1|2SOrn28Qr^rIZq9b+BnnGoYp4G8a} z6M``bfArH1A=*srWY6xG=Y&(Cq{v~ z(kRH@+du#^K^#;R`E-LdL;9*H3`;XZ(L3NO0#r~TD9e8Q0L0J(UL`-{K$3z1w9!3erd_6$TF09rHAwGDz`1}5sGpTnjx v1JZsZRR_@3ek?@?