From a5ddfbf5b8cdefb5c9b5298ac57f1158663e0d36 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sat, 26 Jan 2019 22:35:07 +0100 Subject: [PATCH 01/18] make sidebar items clickable in whole item area --- templates/widgets/asidenav.lucius | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/widgets/asidenav.lucius b/templates/widgets/asidenav.lucius index 37db31849..f31db35a5 100644 --- a/templates/widgets/asidenav.lucius +++ b/templates/widgets/asidenav.lucius @@ -102,6 +102,7 @@ color: var(--color-lightwhite); min-height: 50px; display: flex; + flex-direction: column; justify-content: flex-start; align-items: center; @@ -154,6 +155,7 @@ .asidenav__link-wrapper { position: relative; display: flex; + flex: 1; align-items: center; padding: 7px 10px; justify-content: flex-start; From deb239033797a01421849664052ec9eff55c8a0d Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sat, 26 Jan 2019 22:37:21 +0100 Subject: [PATCH 02/18] visually more clear pageaction-section and nicer section spacing overall --- templates/default-layout.hamlet | 33 ++++++++++++------------ templates/default-layout.lucius | 22 ++++++++++------ templates/widgets/pageactionprime.lucius | 10 +++---- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet index f9885fac9..ce87d6f71 100644 --- a/templates/default-layout.hamlet +++ b/templates/default-layout.hamlet @@ -17,23 +17,24 @@ $if not isModal
- $maybe headline <- contentHeadline -

- - ^{headline} +
+ $maybe headline <- contentHeadline +

+ + ^{headline} - $if not isModal - - ^{pageactionprime} - - -
- $forall (status, msg) <- mmsgs - $with status2 <- bool status "info" (status == "") -
-
- #{msg} + $if not isModal + + ^{pageactionprime} ^{widget} + + +
+ $forall (status, msg) <- mmsgs + $with status2 <- bool status "info" (status == "") +
+
+ #{msg} diff --git a/templates/default-layout.lucius b/templates/default-layout.lucius index 32c8abac0..b0856707f 100644 --- a/templates/default-layout.lucius +++ b/templates/default-layout.lucius @@ -450,7 +450,7 @@ input[type="button"].btn-info:hover, } ul.list--inline { - + display: inline-block; margin-left: 0; @@ -526,18 +526,24 @@ ul.list--inline { } section { - padding: 0 0 12px; - margin: 0 0 12px; + padding-bottom: 20px; + margin-bottom: 20px; border-bottom: 1px solid #d3d3d3; -} + + section { + margin-top: 20px; + padding-top: 20px; + } -section:last-of-type { - padding: 0; - margin: 0; - border-bottom: none; + section { + border-bottom: none; + } } .pseudonym { font-family: monospace; } + +.headline-one { + margin-bottom: 15px; +} diff --git a/templates/widgets/pageactionprime.lucius b/templates/widgets/pageactionprime.lucius index 9cd08c1db..831bdec11 100644 --- a/templates/widgets/pageactionprime.lucius +++ b/templates/widgets/pageactionprime.lucius @@ -1,10 +1,6 @@ -.page-nav-prime { - margin: 10px 0 20px; - background-color: var(--color-grey-light); -} - .pagenav__list-item { display: inline-block; - padding: 15px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.1); + padding: 7px 10px; + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); + margin: 10px 10px 0 0; } From 1e6e169b1d3be5d4766dbf14af76f4b25b13b394 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sat, 26 Jan 2019 22:41:27 +0100 Subject: [PATCH 03/18] moved alert auto-disappear default delay to variable --- templates/standalone/alerts.julius | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/standalone/alerts.julius b/templates/standalone/alerts.julius index 632661eb5..c8c04dc14 100644 --- a/templates/standalone/alerts.julius +++ b/templates/standalone/alerts.julius @@ -5,6 +5,8 @@ var ALERT_INVISIBLE_CLASS = 'alert--invisible'; var TOGGLER_INVISIBLE_CLASS = 'alerts__toggler--visible'; + var ALERT_AUTO_DISAPPEAR_DELAY = 10; + var alertsShowingToggler = false; window.utils.alerts = function(alertsEl) { @@ -29,7 +31,7 @@ var iconEl = document.createElement('DIV'); var closeEl = document.createElement('DIV'); var dataDecay = alertEl.dataset.decay; - var autoDecay = 10; + var autoDecay = ALERT_AUTO_DISAPPEAR_DELAY; if (dataDecay) { autoDecay = parseInt(dataDecay, 10); } From 3333992b0df8e2907acfda9e4631b40873a803b2 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sat, 26 Jan 2019 22:42:56 +0100 Subject: [PATCH 04/18] less obtrusive alert list opener --- templates/standalone/alerts.lucius | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/standalone/alerts.lucius b/templates/standalone/alerts.lucius index c2479508d..bc5603220 100644 --- a/templates/standalone/alerts.lucius +++ b/templates/standalone/alerts.lucius @@ -48,7 +48,7 @@ align-items: center; justify-content: center; width: 30px; - color: var(--color-lightblack); + color: var(--color-grey); font-size: 30px; transform: translateX(-50%); } From 3c7ba0e8246e62c4b31fb4bb6ebc981ddc0bbc7e Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 27 Jan 2019 18:17:40 +0100 Subject: [PATCH 05/18] preparation for menu for secondary pageactions --- templates/widgets/pageactionprime.hamlet | 35 ++++++++++------- templates/widgets/pageactionprime.julius | 0 templates/widgets/pageactionprime.lucius | 49 ++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 14 deletions(-) create mode 100644 templates/widgets/pageactionprime.julius diff --git a/templates/widgets/pageactionprime.hamlet b/templates/widgets/pageactionprime.hamlet index 624ec8e51..c9dd7dc02 100644 --- a/templates/widgets/pageactionprime.hamlet +++ b/templates/widgets/pageactionprime.hamlet @@ -1,16 +1,23 @@ $newline never $if hasPageActions -
- $forall (MenuItem{menuItemLabel, menuItemType, menuItemModal}, menuIdent, route) <- menuTypes - $case menuItemType - $of PageActionPrime -
- $if menuItemModal -
- _{SomeMessage menuItemLabel} - $of PageActionSecondary -
- $if menuItemModal -
- _{SomeMessage menuItemLabel} - $of _ +
+
+ $forall (MenuItem{menuItemLabel, menuItemType, menuItemModal}, menuIdent, route) <- menuTypes + $case menuItemType + $of PageActionPrime +
+ $if menuItemModal +
+ _{SomeMessage menuItemLabel} + $of _ +
+ Weitere Punkte +
+ $forall (MenuItem{menuItemLabel, menuItemType, menuItemModal}, menuIdent, route) <- menuTypes + $case menuItemType + $of PageActionSecondary +
+ $if menuItemModal +
+ _{SomeMessage menuItemLabel} + $of _ diff --git a/templates/widgets/pageactionprime.julius b/templates/widgets/pageactionprime.julius new file mode 100644 index 000000000..e69de29bb diff --git a/templates/widgets/pageactionprime.lucius b/templates/widgets/pageactionprime.lucius index 831bdec11..8e83f70b2 100644 --- a/templates/widgets/pageactionprime.lucius +++ b/templates/widgets/pageactionprime.lucius @@ -1,6 +1,55 @@ +.pagenav { + display: flex; + justify-content: space-between; +} + +.pagenav-secondary { + float: right; + position: relative; + flex-basis: 50px; + height: 50px; + width: 50px; + overflow: visible; + + &:hover { + .pagenav-secondary__list { + animation: pagenav-fade-in 200ms ease-in-out; + display: block; + } + } +} + +@keyframes pagenav-fade-in { + from { + opacity: 0; + } +} + +.pagenav-secondary__list { + position: absolute; + display: none; + right: 0; + top: 0; + width: 250px; + text-align: right; + padding: 7px 13px; + background-color: white; + box-shadow: 0 0 6px 3px var(--color-grey-light) +} + .pagenav__list-item { + position: relative; display: inline-block; padding: 7px 10px; box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); margin: 10px 10px 0 0; } + +.pagenav__list-item--secondary { + display: block; + margin: 0; + + +.pagenav__list-item--secondary { + margin-top: 10px; + } +} From b143a628257a04e2873eaff0d5084066c830ddbb Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 27 Jan 2019 20:02:57 +0100 Subject: [PATCH 06/18] move page footer out of main-content-body --- templates/default-layout.hamlet | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet index 97b7bb5dc..deed85785 100644 --- a/templates/default-layout.hamlet +++ b/templates/default-layout.hamlet @@ -37,6 +37,6 @@ $if not isModal
#{msg} - - $if not isModal - ^{footer} + + $if not isModal + ^{footer} From 2be59326b898e29b91927438311fb6488f81d250 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 27 Jan 2019 20:10:24 +0100 Subject: [PATCH 07/18] remove accidentally commited files --- TODO | 4 ---- uni2work_abgabe_cards2.png | Bin 73463 -> 0 bytes 2 files changed, 4 deletions(-) delete mode 100644 TODO delete mode 100644 uni2work_abgabe_cards2.png diff --git a/TODO b/TODO deleted file mode 100644 index 7faaca256..000000000 --- a/TODO +++ /dev/null @@ -1,4 +0,0 @@ -TODO: - -- ganz wichtig: vertikales Scrollen in Tabellen angenehmer machen -- übungsblatt abgabe dealines wie in bild uni2work_abgabe-cards diff --git a/uni2work_abgabe_cards2.png b/uni2work_abgabe_cards2.png deleted file mode 100644 index 6d1291eb6548d0fe35af08c84169d23b25727fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73463 zcmZ6yWk6e9(=JR)f#NOhw79#wySux)JEVo;?k>gM-CJCPI|O%k0)&tIe$M-x_dEHK z?7f%G8e21yYlkZ-NFpQPAwWSvAxle%sX#$}Dusgju<#l7{fX*C9qaqgCsz?^wa@P# zzt3i2@AtTF;#zL1juvj7#xCYimJW{g=Jc+nF6QPAu2zn27tlQdP*C5Xq{W2Qys}Q$ zef44<-g>Vz=k(P|rO5V_NRnKcM}NBr0ImCQ@I7iL?3$PNJC+Ag1WhgQn~le_IFLl; zxD!QPM!zSksqmDRKF0(A)(Fp!yE`t>*f)Uue1rb_iw9u6+#PrSbKqTDw2!Xm`0p_L z7StKgetJG}YAM~&=PN3{X!9%U&ix_zm4Q*|>mru~zpvhfbZQC-gCX&5)R)-5vszfWgSG){ zh5D6QWQH`9BiQkhqau4`)^<43B@yIjl6z!ND%||=Pb93R|1-zu?_$9TA87tN=V#^L zyO@GkVm^3d+p}I1v6+pL$%(tN?;}aBrL;@4$fA)+kJRc4U*9hcX-X)+8=Ao;{~vnZ zi7HiM36kN9&l#+LWHY$gp*S=7cTMT;Fg_J58cJ!?J}Dk`I%~mq;!;PCq=&J0B4U1g z*>+amKS}s=(nG%g{Jsz2w!-Md=){Mx&P=QH=9v{r;{zRY%OK`~4#L2*p=rIx& zOR{gq^!@ipDchvoOetc(PRGpXbYSHpmBL$Fu;`HE-nlAY7T>`3h zgAxl{pU0hPzmeqd#Lg$AGE^vpW4GHrfSWGfT;Q#230JEF=l8FpFV}gI?E!-aDctm{ zz;pAPdt0R%{@1~l-x`nyASYH{U^g)eI^rB#DWSwV zFgY%iGAJ**rC_0IB$T6mN2vaT{m(7?F0cNG`IA7GR6i?3UX(SOM&DP1f}@QMk{13L z30>}quvpTq7w4FR2hJ66sGCDJKkz9}$>e6N>bHLj=44;UY(XlihQ(3;1qj%KkAj{| ztN{OtB-Az2A{pxN&^KSHU%T{G*% z9L<#~E%S)SgQcOs_@J4Kqpq<0n5d;s!TIhG`TS@#)weJknfz3Y40jo(11GUyN330d zQ5t@T>n>C7L1##-r+7HJ-4~E^kvUn-_z{t^vw|31V%f>zNGFh;bE&ZyWINeUw=O32 z8@lo`jSIHq5ZMleYVC7iAkR6WldW~A^eCptM-gcy8(t6EOlSlIi`Rg}D@HWSo0wPJ zX@+op9RwM9PeE|(ePLYz`RJpR!fW?Wp=cBd)z^T6s|%y-H%IdYc@q>O%10r$-?t;6 zmUHigxBPeytm?q<0CcMl4&-DSFbJACh7fq5&l-i(sf3DdCvY>}fXeMtZsRfAY7pHac*UzT;cfrr zx)1NJlEI!b+A>c6Tl^SwxVp$h^D7Q>gZkAElDGX^o4dM!ZM9$BXM5G1tK$6DIdRYm z{1PlC7Nmc-Ilp)nf9u1b2QzyWV^5!wZ)&kn;mx>9I6$xx1}5%qo*%MkYo+I9b)g&UPE6M0w?`r~Dg+$3aii7v699w(YNcIl|TL)eyQ7 zT2J)(LfSsd`yszE%mqiGt3JY zQ{q^quV)aDrbVuWJBLC$_o@f)ot7MY?}H-NkV^QRc-I1hv#@}_Yu%|ygXnLrTwrjJ z$_pY8@u6cJMijS&9R~z=E5tQJ_*S9wW$kzq0=o|?>TKKM3`E}ITvF}|HY_HtqR`Gi zuz?-K(ZN;EA*r3V*meX#!?ifFXi5CMTmc?y0N-rU8dTM8KaadT9I zI`^P2&KGC@COO@5W z{h(lYoPq7P&_5K(0UZecvaMKcOQ2dMZunw&77;zz?RNE-e%la|jxQwA49la_CXnX_Rza{lO4bj$J6OQ6E zP<@2XcLmP>%3&R3T^fnG!54woD6c7)o^rmm?ut1Rv@)pqcu;0|wP8uGOvL}UY>JDH zfZyBLQV>iB4pZFEqIzs*@qBCVCdK8uBHHq z4`BxYevbjF`H?PTNNw?(fMJ&2QSqKStfFbgVTT3!MNVTwyXavxm)>jF;c;DBRW19+zM(EZ4^CK^iR3ks~DR!r9&DU9+CTn8Ek9aJbfOmtBBsV%mN^yvlm@Y-^zPSD4C&{&JRcJo?73)E- zKlr7=EIvL?h5AI}XtyL#vl!Jif=G>Z9-q1{Q)JX|306id4o(L1<_WUNq1u$uhqg%Wa_eh9^!+ob&c13P$ot zOi!)3Ucf$vi|%Y(Vz&C&Llks;FMs&BWoLlP7bVU5wl!W^8<=<^jT$t|p8D6F%@J@E z>B%jwC(pm+j#vOD?6^nY`CK#Ip`5;r<>&FS;S5K)7g#3{46hU| zBH1Ehgf!lTAd_ki-gmOF+-jF8X}s&0$96Zm({wx5`K+{ZuM6f(AVLz; z*zUiv282zbvc6O}``u0;*H+5Teyw4BWo48Y$ComSZR+0-Ru}0p+vferywN0$2+nzv z*BP5f;W<^pZS5vJ7C3Lf7Tn)=BAPdtCuRUs%!~+#( zAp#YLC$VhL;a8-diT2vqlDP+7R~?W?zXz7kdw`5nM$XMq6)M7-L2gJ3`Y%TRAaCOA zZ^F~RCLI;?X5V8tOrI3$-0o7onbyXkBpkSgVmF@xM)!#eC;vT10`LRu!??|?+ng4U z=Y`N>*|gmgix&T%!FK3%!=s2MX|#A+PA4+}*+V^j>H0h>XJP}HWkp}j@vi2G;ZL-O9}|#1Z!aj1_nzK{fJ?g$-@?VBJZ@ zZYK(@_NsS)IX;uS%4)}0gDlkGyZ8;kd7}4gU&mCdNd(=YqSy zoJ=)r8^a69K2m(&8-=blD*4T81;sva67(5IvJj)p3bagoiXG#C1<<8Av zoynV#m98N2Ymn2hz1T5H2sc;Gu74+ML!aAP{)S~lB)LeeNG-w1g7ZWZ^>?ZyEgoA_ z&^KC}c^Hta6~*_ch|g!jn(ZPNL~ zYw#GDrv*ihTi4=ZDNUEin?{Q9<5#YJXUIa8(<;G}YOev^=fRWE-ADpyygqr*};;qQd&n|+%0h;Hmu zkrn1g=KXUI^L%tBm;_6hX>=VVVNhH;tVFZr!Dbm?FjS`5b+|W&;R}OjXm@g+I)1WZ z^kJ>jEvIx9YD91O7U0(=-K7r@yh)qchR>^kjCR#TaGO zo!e)Dk^G-Rll=rlk45Dr@xMhrLSxT2fReTda#%C_R<^H}!1+TZI&j2zy269MdzRiV zklhzE(}(9VZR2M^UG7e0%Pb zUo>Cp6|Nsb=-OW$*<#GSE@6~{?M)!R*8WicxK)ZFl!ndUlTG1w@w_>_@68jV*V5+aM&AL6O~(VU<+< z7XA1uf;ekN+Ym$EYR?#6Z+~flqy{WWut3DpfpH%L`1fbP83pD zK`1b0F*`J$bXb&oWsBS6M@yT%sM+w{fe>-jWfm;X1J~dd-|I>Z2eU1 zG3RL?nCR>4Cy*{hTS1rKa=s_?TbK0JJAasOZ1S#73pHbKIK~|BBV8g7uxrB0Q8uBO zZcCHi&?KeWk#1%oGQu2hplHXM3+Yr85hm|Y2o=_8WQE<;*woTiLQu#jn}$9*h&F8#Ren&Mh>zbZXtNa@C=7k&=?aRVjpro2%Rp zioO}k>BoYVos$d?-2=GbN|k-ca7?@VhZ*Uff;T_#Nl*gqhXW;*pvkcSv->PaBh`v0 zmY!bGStL=2`wbYUV0&S@0>h!o!R1U2O=3x<>bZ$$27B z&Erv~LfM_GDhzyNz`k2=N9W_IhJb-<#Z-5Du|WzSay6DaA*PvLciB}tw3#87B+>?( zE9+LS7O9?}ek*=^j%Zm9(&3>3eZF*)qcC)ZltRwv)aM@Nsx{lh#y2R;D*aH-3>@Etc?wOv~g>~w9mNjNp@}#pdiQdn=#7kh5v5&j+-3ffr)~Yk?nQq52 zV?JLRz--~8_ynL_sa$6RH~a2im#i5>tDF3uYzVBqO z(>W=Glfkh@%i}g6#=LFT_O46Ac-R(u?`XO)lDx!QdKP#CF+3!&sKR;NqvQGAJ6c3v z#b+zJ3p(A%`1uu=ApMB}ze>P3&yyD%upZOhV9H%*179JCI&PRLNvOa}VP~y*d6DPM z$7z;%j*Ep^>UTrlrZ*!+*iBBbG+y-8ahtoG89${tuY^-C!yjqB0{VK#Sjk^0$7tXe zjMfVevLf(<+$BM;YrN(1+k{AfKDq{#;q4-D#SL=48i?(p>T%Up;iI7pfiS#!J*}pg zWojFNrV%wMrB<3^NWWt8PjnW7O`_H1zwL39c}9d_D$4m`83iR*S+p-r9Z$4)v2S3A z>r3i@Ir~Uh1L=D{9rR>aO8t}4WlOMb$i05q-CTrD1@<9S)hM$O$~+@P>>m`h3&b+} z)w;?B;4BK@Ohm1v<4ZtUV5Mb&e`bF-K+5ID%)KLa;*|C6Y@`O(#{ukf7%%U(u&)I* zL(WWQM{7xHGTGczcw6lTXL*&Ad3_GgEEw$+wwu+9s>{022m< zzhib?_-C7}u8-XHpFk~-N_d9bN|lG@RPQEjo`{S)tGOyd6bsMKx}Cw1Z8ZTO$sg8@ zY11DvkXgG=6%&PbyiKR527^DEu2* zNuJykb~oo8TFMLP{Q;xi2y{*4!~^S2e~ey&Ux}4Ao=h$qB0jt-2N=w|@1z^cs9A8d z-V%!_YD%H5^o46Fxy`!@Kp%^4Gv;13jlHE^tI)3W2t?l3D3bb&8NS^AkqLAyVNS6$ zysfp?OEGmz^;Rv{tbrwq_onR7!qJAe{=pu>gN36UX*2&b%8Vt!rO)|TCN==s^yTc)Q zkR@EyX1J|RLW0?7cL3Fa*?43%(gb8cOY{j&lFn&Ow@P9AJ+mHLsrv&9mAPJNTKC*n=c%I}(XS zHwdIT-y|9V{tVR<0$Wwe9j@3Juq?p(owGBseTb_2Yt#ZqwF=dRA9V|xicx~k4?qwF zv%ip|ju?9Z?txY_E8(Ih`?j%>|M2JK{uhq78MjBLkgl27W}>RYyY&aQQs(rB6g^Se zs>Sr-W$`g?CvMIS?ZxnMntA{~_6n*~e}6eFLVatq8wbb_N6YCf#B1%2T(T&jYIGC> z9VV{GJBxeY;#ga;+&ANZxyXUivC>tJxrHUTm6R^?lAAZC3}I*}@0RJC{)F5J{Bve> zYA23>6^^OlS{d)fb<8ZEB-U}dqDA{`xf3qiCHODIVtMPNNiGpmn38qiGWuJ~^UdJKO4@DOWKLLTHu4zy zK=k@cvm2RVw?M*yKM+0fg+NW&dLIQ zetq*%a`bl~eg=S3HO|!yPIBkPinkKF1k(T~)Q;q`{cF|rJw1knz0Sl-SZ7f~va{tf z>l3X8hBr~IlYL}r0X2n2F;y73)iqs;L#M{$3;DgQj0xwY>0mXo8__cXG==ZZ@zxMx zW_BGOUp(fJ8u&SVrdha10g;|a+R!DmAu?sR1sN(j2M{cfgEw?CY6v|UPvjlpntF|w z=|jb*+Way}=;?blq&Z(0$Y(osP=24v7; z>`jkK?JJ#$Cr*0|{>%eD6P|iDkUE0KwM01VXkX4IRf{@jsM0s*DMubBLa_~-gmKw& zH$RcL2OP=*{H6Af2hGPptqEYD|6oaEmlNS?X0hxXqA0$P{WPz~SEWkgxi5`BQehnn z7W#>`F6G~Iy5J}oWh|Le#?ccoG2s@UnAS$7?@~8l40u9%SU0%QQd3 z4|ky=eBSjdCY9~6mIR(RpN0?XQqTS18(F^?T@m8n@4K9nl@dl)Q)wQ79?0bF9}cZ~CCr+JkXu>nEdqmU_|VkV8RIRJ4dVH*YST4s z*Hf``Z`ngjnRVD?4tk>0TN3-AKop={eyk<#ViNWCf@5S_kC^9cvM-24=B_f|LJ8pJ z21DH078^xJPR%@BxIZ7MlCAjWpGvd+WwnIZH(37?q?Y&pw2hJZQ z&rDh}voeizPtt;}5cNHf!?`tzA=Py{^{yu|)vSgMs6OoOdDn5=t2KsvZe-Jra=st zQ5%Es?EJP8>B$w`OHY!g%kWS09k^FU!zF;9(AiuXL|(0R)sy~I(8!vF*z~7KA03aq z0$9bW*;e44#gZ{xN@v4v8{u8YgvsSu3dd<0K0!mYSUJpJnIjN;F*IRp8%A9nu<~~p z6MHz;bP+AbD-f9&)`Z1`hICC{CRC*Dt<;(L+t+2#;`cdpbyn~`8 z8+zv>8LDB7d+jG7-XXqJZQ#4u(^%+GXVs&F^4F|^$qJ-{>peOqTWLwhn?SC{BZ)De zIQJ*MIvIXrEAG&0|6BW-Lzkip9MPGV^C#MV==*gZ<6J-`y*+F@RNWd^?r(PfdSK;d ziy+#cGQk}Sw#jwLpQ>*VuO;mMt@HF*y%2~D&|AlQ1iI%Ee($Tq_1}L| zElD~uc52Uo|HdQ|t~~Cb0r1B%r)QJ^ETtcl?+X8Rs?MgQz;$})FYx$tpy0o{4b@M8 z%6KcIWL=|Z=*_f^<-7kf!rtKFcHK1XI}zJVXLVlEJ39SwSR}k&&U~Hf>`O(DKzMv8 zV>SUIv2KP(Yrk95)z+S(U#$Z7NcltaUe8L&iI(VgRaX^&&HdK;rGPP;4Rey0Tr)sW z#;;3)ORZ!4C;hY;_Hv66fE;&vOAi&1l7XUN%C>x9OpHZ1w~~ZzHfh1JM<{ireMjXq zR^Hbygp=CJF{!1smJ@+Ik4fF=JrE7y7@lgRs&TQAN?Vz%I=jiwJ(AyXS%Mfos-`@K zt0B$&4;CQRP3|a1{rWFWo8ZT9Clv9Fw&d35z)xIgqNzI?sqH7#j3-o%cE z!9aPe28TGuglf+L;IZBPrjvaj2-FG_Ud0vc;=AL7QJOyi@D7vNGYWE?6{7+us@ zN?LOI4jaDTx~~tcFh$2J;}gHU+M@RuJ8rqlMyP}wD5z!)eg=us!Bcfx*=W3Yleo^( zo3ARq;MND$-Grb|S)P#^_UpW)QacfCVA-BKne7Nv=TKAWdcJj!I{`JkP^`yS7#%PK z+1@2A$Scw@V1Sf4n=4w-jOj0{9%+U`k7`obLcAf1{aedD34g9&T}$vdL2ByZIpUQj z_^g4EwJLp|6Rf$!>6<9QuU_+;g}yrve(bYW->ChSPxBjGPx?&C{!p{iw?g7Re#)z@ z{g6|^lwVC9jQU;jBM48C>pVTtBb)teds&2hks6HhMT_O>pR{8Rn#^~s$GIjQxMj4| z@UYIiZ{30`3!dR)@{CNvwP|7f*dt>yzC$!;n=s_`h=uW}gO;)5q*{JbE@P`*=P$J% ziyk)+U*2<`Z3Z=Dy*y)Zs?a%K-V7wamn|T=F2t&GS3G?aua!?CW0iX5RGET^yXhdm zLvBZ|j*gl=A8Um>D(f=Fx}MkG$vQ-wL;grbi1padS7)jW?-_d~R*dx2rOPXg>@%(H zLE@)_T-SINcwQK%1r>x zQ!<&N(NCdKgZFnW^#zyP74c6-!L|239_8}317|1R--l^6k!ri&mN(Odcrs# zzt>qj=#SW1ISL83jErFS*0I&IZ06o8nG8?T$rD|P&)k^psXNbWmnY{xAM|AZq8gG+ z6n>u+pf5A`i9J;BXpQGZq~o_@E$J$r{$o$&-(w|gcF8_d+us~y`kS=~&c3hpu~nZ) zKQ~qEfjL~4!`0(HG)jjrDh;=zH7&3AX&E=_IJ>WG5hcF-PHV!s2_tYrH~4Ksx{)Pv zCu4zmB!37h0@my87Mal_%H-@36y9hjBf3Z+Bz@e352N}DH6J`HwsuoA`-6a?3teJE z#iQ=c;Jax(XU;syvRC_~XJU8-!0cpc07-{8G>JNL$@LU#Uf&<*sxPx~Y;9oCFk4*R z4ypbUbU~ywO5D+zem#PCilXyZz3AM33-&_;oC16IhrKPmBM{oMZFV9xxba^7($Ebk`FWF_doss)!siGV5thmh$5~4@78yJFI zI6Mn>KlLV2JNoY2`LN!FQpXddU*XC^M=;dEV-X45UQfO3l6}pEj0`k(zREdY68{Jq zB)Up}yL@ie^=Sq%T{iX4Pys!ZS0B(;W?t~{DJBQ}M%;XSP&c(5f6yhwIBcg%XSP;1 zoP9F+sMY0$abx&kG8dZ7&1Oyy>arN=NAnIWr?sx!TT6C~r7<@C9=e&D zELz)*=#DB__P7Q1H3*tusvd%L3+#&YNDk+L+E`B5$$#SliYx8ox*MlFCyLbDyZdW9 zr#%gI+@QogJKaIg$9#ooG$nr2Hw_4f7qN|Vw9r7y)0z?iD&xB(7$!?H{Z}}qVZ*LS zaKH}YJ*7ZI_wbk4{BE@Zk0F$~g(a7Rb8Cg*VzlQI7mpH@zZHtCdTM&gSzH zF+|ezpGkRhZf;WIxILK8csjOuwASJG&B(rX_*0flf;2BO34^BdGO{D+Bb%uAp!#gw z>F3RHUF0SlYA*K`MXl5s9|)(%#U>fRQ82l=R2)85EHAPe{zYcW4a)>0#FffZCJ>+> zn8of2cdY!&1Zf5nM*IB4YxN*D5LYQ$;%Yfw`f>!(uXa~r{wB)I3Y4kX=u_()C(QAJ)U_}9WU zscW>270w1x=19WRYIR{Z=rj#t%k}Ay6IYN+Eo;8lWG3_ zY1;Ij&y6a3H}_$dv6MKQUyBtd{*3@fpO|DNi;4VderAP!P9K_r<+nZ?O58pg#eTi} z(?65qbH5OWC7%_;zDpEZUwHKh60qD`dKlX}Elyi($}6YIjw+-($8U6`z?H@wxcB#q zEQBt5?y*$3F^6UMDUZHj@-dxOOxE-Ar0d(5_YmWv<@c?tA1?813Mm*vZhmw#m#v$H zy;djXPtW!W1W87l2NluZozf30&>anmOCR2TkD>-U_Y?aWJ%k!RCkP+j#v{>kYlx^3 zn8St}8^d;DQ6Uw{bpE+>k(u&k=4@rC`I%JeQXHQ!7v@x@`d9p`bxSMJ{U;!kLWlTi zqMv`V+B*Y8)IOWD)ESSEpBZThlG?|4(Hz#GmQ%h4^nKGd>$iPYZ=JcYwHy8nXBdz&bIqVb--x`!T)yo{GA9+n@s432<#PFGA~iI-MxXGY)x6)}|EFo&7*{i1((XHw3c070j4M_$ zlJbAsP=Q)RwZT(Bshu|%*3$naJu1}efZQ*z!yjCRN8URAOZaFkk`lZzlzxyZi`IX4 z%g6UlZoZnC)PJ`?<;WuR-{#NXX_EdK^(~$Ezt8ya{_U_`W^$s&_;!)P(NwC@*ZI+u z^gkSg`gi|V7|tgPA&VO0zx6LBp*owlO${Ew(FigBhpqYLnfZURB4U1hNzRV=4`0|I z(ARH_V#f0}X|v_Jym)OLPK@+HzSg*ygybKnE~u5&SV`R+nI2|XN=?*)hgnm@yIlAI z#I6;1TumN>pUFV~S>8+TA5K8OXu_6`SJ54@O@(s!^XyFJGvkg}n-vx&^AM!QR9S&~ zXzBe|OqItH9#5Qi*8obzTge@@*KC-Nx<<( zhhmMi>AXJ~^18kMyWBvoY*}NX4@}w5UYCw)3#L(hTH4+_T=*o}LNRB%0u`ylE+s9; z;A&ul2>R_!n$IYKv0`CToHsU=!`06Ioq;a{Zh7FQf{utoeyzRfPgxPGu&rl;2QTK2 z(gscDhEjzw2m3a{%pWwYhzIxdUXV!5)=ZDo;kdCqw1?4i?=N7)6*Yj3-QT7 z{$?d#|JBqt+Pp?g0{74!l7S5I0N;I-6R4e#cGRiM#k#UJ=T4#wQp?LsG(3(^}4z? zbJgNg$AG1WRgZTPz3#i<8&5ZK#{L|%+4g=D@*b!t_4Q=Yx`CkOPwLaVr?vl$MeO<0 zG;92{n&I1a;K+;VG?({*Ta?c(qw(w+i6Muc8?ecyjR##+t-p4Kw-IzXYivdaqE2mv zEb^(Xa9G8H5Q*l--@awfjVbG`dj{IVm#+ckta#ihW+iF4xa>a5dXzPWs&CjVZBNY+ z%+G&zuo=_wUk(1pB>PQCq18nAzQ2^93^lgn(pu8(9*-a{&DHd=n)Eit%FvG(mUME2)gt zR0S2*g)#72Si5gDnN+#k_?!Idaz`}YAsJD=Q2 z#*%<2NL#dyzWqCEO3>!kp=wIi)$XmUzjmv* z?`!$O-_#GY;F$m=UOX*xXCD*8Zk-wyumAW%ua|c(5k~n-ogd$Yh;MUnPYTLmh@y7y z1cY!_z{EKKxMo_pKax`qW?obXxq1i$wGkEs{AjFi`0!1DFQhU`4r=m3aNy~+1R;2~ zP#+PjNGyF8;;|+zW%2yiU60GFT`LO$w!l=6j=q7jMyXyODOD`qoXY=Nr&+zT)(tan zt8;k))D4df`z}Bda+#RwbYtDOUxQi7lKgb=;A>5#KlF&r8`{(buHz!PP2lMkru;_` z9QVzz$V$RbD1L543+Oe*>mP6~2d#Ket}O;uK`GRg*I}9p3MdZ^YHJfJ&J2fS_CCH_ z+w%w&JREECvX;k+7p|KR`f4@S((i)hdcKf`WWCWY+#NG*PB60_O=Ufg+9_P{jZPNf zD_NLfA_#*0KGAoyn6Lf?DVx)j8O(k>h;dkJ#R(QgED?F;a5#~9J1QvM(TeS$K019n zBSv{`Yf*!yiFJ(|ohilw0 zBa~6!<91J@2?d2yu3z%6JV;qre9^0I3GSSUL4Z$RS}l0jfXt5sAzp`#$S(=l&yG7p z`&?08k+?mN*W=^Hr+RPDi?@WfHXp^|T;;3E%;5?#Agv))>wFuQaQ=t1}8&X{&BQ3ACYUrDV4 zso8=`eUK5MSZ3!@H$CJDp%Cbm2z|LD$_EGMoNHMR+iPHR;qriuUvV-sHrFPj?TRAa zeLfP8fZ}jYf!*^xDg}Tuu|4`!*1fVgNmsgXP3}F;=oSwVSgUZ`!>r+Bx2yUv-06#2 zK%-vU+_ING9pHw)15E$1qsN0LBCl&(%-~B*>1l~ljl6lVRVkgG^Hv3DGM ztSMG)spF@F2#Bepo4yzlDom{TIlUh&wae&jxI}%7jxWTV3=;oz-6K6{!^D-G;8~E< z1`BW?+r6JsJPI%VaXIL4Q{GOfK|p1^y~Ji*F~?<5GZv%b-hR0u2Y09kJyC3_aY3_T9-RqBZU05~SeX)8_sw;E`Ll2r7%*&uc zt*Mqpz%VbNf!R}vSXIeF%YQ;hzJT`tFpRQ)l9*GetC*X}D6{|XTbesLRz!}p`U1h~O|>w;{E{Ca3;4CiI?#tmmK86~LQ zt1If*jFOe}W`XvW5+ zw$|e-H>fDfFhBn>zaDt^>5=4`~p!Wc=X49_bapYzPuO~2#^;)7*90S zTVg%24WxurK-NHR?(1k93F{D&^H#6*F^9F#s|7N5-QACcbn{qNgOsK!t1CJDcS&up z%tLoj-2a08`8qMRbQBh?@g_CxLUS@2p+n|R)pM{!MB&|>X5 z!HX%Ub&G7O;a9nx0|1kc^>ZJVu!sG z&LbK>&W9Er8<+z1i4G+9o|8SCn{BQXv0r`VYz^4L^Di#D*k@A|anL^V>N-K2&fA)S`bv6K1XPb)C z(>*JpvN|0jDEQ3&#$MNHm^iCfFl-Y*zTb6!RI|rHAfU$W=wWQ}oDVz;{v&up6{z+96{t{Luq52H>X!+dU zge{+IEOsN}Xk^Fo^@(`B`)M^#Q&cQID$^ac-6|+GFv1L7-}8s;Kv4lJDqkkSZXHQL&!dl`ICfr*j=H|axh>Mt8c;v0LuQ`DF$5pind9=)YjLc}a0g?Y z2XC^iCBxQ6gDQlyy02!hgI&_YQnm?QT%63J!_%36|LY;$`dP>RDoYMC7t_P1NwYT%=? zj(;Ng$MjNLW;3<89=K>Q)I6^W7kOX3$cJIkFF4_m7Cn9-;CamgbPQKKT?Wg%?e8*_ zEK=0qb|vrr&G>Q{{?=&BO8a1iV|MSdm>dhAHmSDI9WG>)9CQB!1t(5WyjIf!XUe=$6>@!s*5Z;^uE_| zg{hjTrx%2X*z*y`U--3LO|+$0>{ltkerjYref+kAZ1C`Hk5Sc?)n=}aguc$`equnh zq%AjF-agc%hgu`QGxU1s`oyW|vi3@4V~p%dq7y>M-mf2BoD&I+oXI(vyF6E0)LyyP ziKlP(Hh$}?$LAH2vcBrP`LI3!`{#Nzy2+n#yvimnzLLntYIiFig|*XdQGJ0eyn`TE z(os<__i7lRuVCyD5osxVUR<1rR`cx6RkC&x+fgW>;H}AzI5l3ssXm9-WSer#12t}| zrP2_?E?nUuq<~`iF~<2y$_i3Lu)jCZ){8Ed?b~`cj&!B8N6(%$r7zhES4$ffnU4JA zAk6FMvx0_`qi6Sk2f4T&$q1N>;FaE-Azs1*r6~8@7W}ks(~J1G)bJP^|NiE0&OgCw z)RP@eIURY42LS~+Lwrb8#y=jZR`mCpy!4LT6nwh?2p?#?-j!8;KA{; zq8WPXAvwPBY&HEpsNMNViAo(){fKQT^gSc}Jd*v?Xt|6PGLbX9={{)}z?K zaDHlVPnm8VY?j_b2Rf){DdA>unRp!Ac2zBX_6 zjD_y(QkzOhu!tysS&*uE6JSEH_1VL0a}{U|X@J>hr$1uJrwm_oM7zFlt{VDv$|o{* ze#TY6EUKW|J4283=0sw;uR#7-BZSxFUKG#}lC|Q@_0}XP$|slc>jhsfHXQm2cQy2w zolYvcN8T2spw>`1+0z4g*A0cBF6Cm-PB%>^Q6lWsCIlL#3WO{qaw`wTgK{2nY(Non zKFQ_jMyu`zMX;XnkD9ZvCbrT}@9yp@br=w$ne1!@CqNjn<{#qmsv+(*Sy==k9)zYt4<}GwdE@&n+L5@|=ZLp{ z%3Vh8HhyS5T^(G2kcsLd!1en!*8F+5lR6mGZC>mb0$P*OYNen=?g{$dlj3ehWaIGz z)em<_m3SOY5y(pJM9YXjXa?00t9~aY@(K;S5-bEfl9~!+k2Vl1e%xH^MnBcpX40B+ zu0_4eBD{WEUul7c;;b2rdl#d-YkuAt>;MTfZ|cR-x9n^%$G(|7^d%} z>hM}77bh_j)sdwvA5NVzH^=Uj@K=BY($Eu^=X#XiQLN4GX!~s6dM9>7!RHq^g><=HxaJXvFJcj+RE}#xs z{c5wkf|369CD<&l5J5t1AdE)sw+y6yR3h0y*xr>^cD!7Zl>2))oXpu6`eLa*BDyL} zizzzWLIt&wxN(#^p>6%S`LUi=XN0tR<;emCKYP_uubTFIO+-|~LL(iUgR`kLL|k50 z1ufAXCBaIyC7xfX2rny8291%F)b2eq)J>PS5jg@ND`b`zQ)n$Vedi~S_H9G_iC@k) zTWCROi!qNuHUy&R_;s!FzMlO03fX#lRg<2!)?%KG`VLD;EbzwvJ@dh*wPfhm`kiMp zPt)pgm$#a>@u}+n{M*qw(X>1+qP|+D>hH|uJ_&F z{?5gJp8wpei}_59F=iia^x0Y)eZ2>9kFp+Km>C%LzMZ`oJO_w-;E`BJt#ouNzXatz z$(J**CnoFjpFMs$d1&@%e9zy&wJoqh%a;unnq>4E0Yp41ym080-xw2bc+W+dZBg)I zHW~UKWX^$L2geWBiM3RKf1e$k7TB@p8&CQJw6|78xC1D5+UeadGY-5p^)sQh_&X1T z^;7$gLp+{L+x;>DHJ2@a0j`j6^e5iJ$Sy+^@xZ0m5D#3OV2b{GX9oP?2K3BCUKSB%WUB zN7Ex0FNt3fH`_F=%umcM@}L$s3#&JU4GsQO1FD702?&r>nTG39#Jt8Yq9pIR6RA9S zCwE=eI1e-3&YO)$oHp3Q5Cnq15dW{T8QDbt=Hj8^LI2%QpAiy11MiUDmn9`ePrLj- zT<+i9_+WQc?a*5ZB^V^tZ*ig19~8ct#HNZz2pE^&%s4td&8w`863-XNk-c0{x00** zB_^II8FG_ICYK8&LH^&NK#_8FjW)SF28h5`Ex;d+gs7Wn(`rHv%J2?0+o6iLvvp6l zKUnj=br&!jGwYK9R+R=-v<1sL@eh?MbT6#Lw_G5u~tXD+yi64X56vI)!@qk29jn5?V^q>kgLu)16FqYM9|zEtvw1tDe>$9qjJBZne7+6_*XteiF@Ty0L(wL!X7r>de$}wU=LLQLd;9*f(O(BRrbFd?#0An3RrE4q`I5ZV zEeNVZpPl(_&>02vYsdb-qm=uVg5Ahqmr3v(1#aAVQbVxos`ND@3TAhb%4pl$j|&F4 z_Q1kqx)QO#siD@s0AJ0UjoK7aIz(g0!kQxF_V+(g6H3B8>ZyO!FrFsWlBq~iZmKWx z?Qo)f$SCm&6p%XlNf?q_r~(_@GWO){x;RZZ#(N)3uiFbk1q_i@b{7-P#Ql$^<$9Y< zxNtY(t4yXd@B&-5wGB+e>#|(78v+M6^VUgmmtF=8>%?t!H92ZX9ok;oy2jo*+MXTu z-!2IRvt|<+%LWaQSSC~mW`I-VPB~ z*nB#G4B08j>~J1a;RIXP+|rjnHG=|X>?a1$fC18jkQ-nxI1P2(O|j7RCKSk6@Z8$; zo{Hri>Ax-gYZetJ99d3%Be?4Pd2Hi|jbH04C)Id!M$EWCsTo31Ka%@+gBfKRa9}3P zM*tOe;og}22_zjIJQN8~0Rr9XR_(&WvBc!6HNR|Ikch=mbjbgfIzAr|oGV8AqZl@#ZHu;~o?T@f5asDhxW@ilwJAf{Y3P9j1(%r5J$ZuA`DRtDE^{eU&RU{9IEL*PeEaIUDfA?Zh;X%afQF&rZ^(p zQ@@P^!V3^W%A^0CF04vbM*SYAUGa(Qx?{$yuk*!@rh<^y5j$6dBVQlMZ#< z88{h)N66$7MBJ`anO6xor7$`8q^fW2@2t$VLZB|@`-`O%(m$;mKjUa7^uDlpog-EQ zl~6E^-MA_C&W@rtBUS)sYgicJeC{y*j~dF&&?ghTa}YvWD>8nd63ue6SfBHlWvjnY zEO>Up6!Wy3svFbKYBzp^ozDA?-Rk6OP0d8ks~)&$>Fofg&BY8abNMz$jMJJ#L*b8( z2eGE2TFl;iD4CN681)CM``lV2N18#XBvGIYaEgy3M?{7>f!PZZ&Qe(YA^6z)Rk5Ij zVX#Q9R3DjjPIWIq9Shdf!TbQ2g1IQfcS;BE@p;Qe2V|6z*=R4F+}^$T**Rb)NgL1| zWB1+UJl12V=VHnPk7%9%sJgGMg2C|nc)O&G@<&ci_v4G}cC{PxfP*WY!2|+UO2@J- zNf>)y(LHo?8CaFkSq`fGXbF{zSlV~k?RVv?rPeU+a~>iu^JE7D3utW9!;&+ZD|V+? z4@oS$(o{GP5E|)IubH4P49Dq}j{6b2Xr;y7g<{3X%Imds@1aquc zSz%v)l~`Q7?4J{S3^Kd|<0YMxp>sIGnGh{lDP-ycqBgbABdFuYqr$`TGac3A=s3_q zlet*?o=+P=AoXHj*nsE_g=`kK=yt6k58*;*WlWSBL3w1TIh8*go+uH-4e503EtY6v zX}!eAG^z|8FCQZCu<2|uFr^<~iM<)l@C$H1$#~!8hTQXAY;*Z4;rIAJFSmY5+e*|o z2Oh?-=C0T78=Fq_1eb40e}hgiSM*=~8JhJoTXv(}A1&aoj|@*|0y28B4e3qN`*Owp zhTUn-*0(Q9JrEJZK;U5w^=$|7;WH!zdYcnU<$V>v8|>4#{d6O!WpfB#uPetg8v;jT zyjOzid9}J+4E+{4+9*f}@9N`oY?U+zwDRB!&UW3<1%c|+s8cURK_4^rFDLw*iS8H_ zw2k(6dfCc{Xuc|1*L9qyyKE4QZgAKnMcFpU4iuVWo;O5h7Jtb}J@nDwsg0;Fjk@7e zep`95G-qGWV5f%4MpqXii(xMuaa%d7X}?l*xih@cPW7MEf3~ z(1`3-h0)?Z>0{45%>>WATsM(K&BklZmPtT>o{Z&eZ8bDfX3yIfr2#MJIQJjv+s8`#VVqv^y!PD@;^QX@=f7np(BJn!YelGsehGL{ z%RRKSH4TO7tEb-F)sWkdt=Gi3Bw044tD@et9U>wRRXdETKBU3tr1Uq|$*nzX402uA zX(V?BvQx(f&WqUYUlK$beBJ9uvVY+yc4`a_+cT+{jRmMn|3RgmqF?;zd|$6hRJM+E zQcOAH{q(^Z9Zpd*O*eGt6&;GT8BH)U678@TcH(HhqByOm{VuM7Ib|AN7uW4qaTXFP z(IOQOk5>iLpA&k1?W?g`n*Jg38(x|`fovw+GJOBOAq3{*Tp+Ua z%tSwa&aq)$iUDuzSdeulKe+pJidgf4R3f#Go`|rJd@K`3@3o5^(^mn?uTGGzJ_m2? zMGwaf{~%hs!{6>~P@lXTH=i4jX2d|ME}dI>ss6kbKZD>`6F7`qOA57rdlrD>mAQHS z#}6mxE(T9Q5E^sB{W5)ITrz)C*PX6KA2`dadd=^q-11;9lNVa)=82EYgS8OD-Fr_= zql#}IY|}1q#A<`XjisJF16t)-FRFJbq?!=bVSc~D;l>81-7n)&5Bka#_EZ>qFhHLN z7-M%g1+telv<$cm_HlE(+>LP;hvt&$zwxN~Ar5Nmp3n-ICk|+Ycm$WH0#Zj#HD-Gl zC-WX7Y9%141~j&U8!KKEnbA4o!*rz^zVBz&7%kK&mU2-P&)G6!s*ceJA_P;#nQ|=TWmYw*`}$ zyHbR1f|Gpy&-~S$Vf!DE37C4iYH(5&vj@9ae{yCrozJ8!kVD zT(`zbd%Q%evi`j;w(H%I@ZbPirNus1!W$V{6uj=Ela~LN6NsvNEc0`t4o;&sX;Z)S|yM# z5$2D^2Lkc*9?1?g^rQd)t~u9Y0DHvEtd=i3ixc5sjq7q(q9rm3<5)ihz6(fE(c8S! z>)dSm$uUTmh-1?P?$Gi*H1eSa2%bihn6nq9q^z!Ws&!u0VGVZp1$Cny$?wq z*KgE6iBeGvfu{fpWBw_u?p@;Yt+9EEr8A;;qU?nr72ax`rFQxDs~OH`?H>~oM&4@4 zS{aW`X!y;(Od?bcDI+zb(nV!&frE{S3k+Vz*z--5!246_w0png3%qpG{r-|$>{*^5 z_8h7wku*SRCHEXjj!3d{EeUb~8d$Cj1$dG@ zL_Q(MtoADI7jLvNcxg6EPNk(Q2pNbuB$>uP-SF_>b-&(#%TR}c|LivmS6K`1cqd(Y zxWRM$*v_iSO_u)5=XN`t2b{2tW?p|jbWDNTTA#DNZsEa@(U;1hp1%~PigusO2 zj<;EHM!UY7jrT(1JU|XJ$;t|t1WQ31nW7JYPHjInXYEU)*-;*+Ef(tUhU+F0{RQ1# zylH2!B{LTHgwF?ad1a~4_^U>lB1q*L?N#IMB<4#*+G#Y!!SdnL(-#5`GgmiHaGwbLs0(OXo=Olscak@lO zx@&YP-Uvt~Wo5f?NC@LmZgyi$&YqH;D=sDCVOa&r{6jf>2nX=+-8uF~+ME9**oF4m z*qei@T!V zK0hCBaWYWL>YydJ7vJDeu*qfg%niS_6lr0;ei7q{`6LT}Kz-k5vr(E3aY7C;7-87q zgp&Pxg>2Dk7@^Z;;pIJx>7|0}-0H;s@pi>TYeq6ZBin&}z6P%fwv6 z_|E>~34Kr!^}f!pgGvhCbZ-UyFs{YCo~~Gqa*e0g(I}fSscc!3krJJl^MxJ?`dn*y->#8JY0av_*!!8Oy<;C%StZWj5*%cH|H#a* z5Y)FDF~EeSkO-)WZX455BqE580!qM?dV$R`A`v8ImZ7OK?P0p#nEg_{ro|a`2g_=p zl22!Zm6`dH@bh$?&54s@{`W%)i3c}#_kUu#=a!HEEqTJiwbIT~ju_)VYJNH2Bz3RSqM2cAkVz*4~2AcAKM=P(-Mo~|a>rqarI z?HKu9G9{YJ#6JGPG%?e1z!wc{hWaF;c)^4M1nZcPUYuA&Bru-2(zpKjw8fIRD1N!4 z!v73}9J9#!wTRwe4gSiPj0W#vPcq!nIm_oeK>a`;jEne}ra19P_^zTh`Okjv@Qel2 zi#_&cyvxBWpup9YJ%S`_X)o5$6bRqhvH@d_a+V9ux&H0~DkmqJt*v(Rnm-Y^!z&Hn zRVTpygZH~g{zzLKAP4F;c#_>ZpD-;e)Gh@Aq0OExj5YuD46ia|XYv)iu!dUUfT1+6 zvwcnFdw5m(2RG{Lcizdcv7$2Lt8oEByoX<6GaAAxI+k4ik@uB5 zpxe$k_hN9K^G8!WyM3!7EKM}26YVks)^sS}5+xvL5oUWZzjyVS5J8XE9u@c#D6va^ zdw*^lEUfJ;R7Ja>{@LtQ3-D50r~n?p<%G6C>3-3l}Yi^ZF3ZDXFG`X#;s`H1(3&n5OB5jyztAMK7jk|d{ z!f}f8qs-oa1XuZTn><|8P|fx6q<%1Vb%;OfYOl?JWQ0x$bIa`Sa<-e)ZPtVYBbyKz zbTISWue5OHiN45=TVzl!;PwKO_A=44n|OZ3y~@Raj*m55`*Ms_bas6Ag2K}k20Jm@ zgb1N{I^zG{;ufJi$qCe0%sNH$-eX4>oVs?J|eqi>}k}W2H^7MM= z(CW!C((Ah3L4zULk%k51)GWB=WY`KB&2EkIin28qAcRKq$xzvhhCI6CRA`pb1w)hS z05s5K+9jF1i>awa?sD%6VXIh_`8C*pEzMLo&p{_^phk+RY?4`g@jS5gOkk=T+u7(n z@mjgH_ST?;s&l7}Ws7Ul_y_$@E-?M9W|-#HcC?rM*`k^s*p5HMM^b-H=ZWm|&8mUp zz|5CV-9KV(AAu*QtV|WjR{SvZcW4J!t+ZGEdZhj{=ZjWLCLe(LoY%#oH(VZPhc!fNWOoDrQXuDBBv7{)C3M;?4b1rBcuiDQ8zoj)| zenLjM_*lDd&45(dI3FNJ!`MVcr&I& z%-qGpuf77jmW0IkHhn|>Cz`zEwi;lKSKNzIdNMP%tL1o+HrQx=JeQolY+tbb@(6kE z%A|cm)33BKw8J1+kQ;Pv8KK}$&(`)Z>JIYfi+(SgZL25X~l-y z71pT97R9ZA7cIE*cHfpj#y2>cY(Xi_gNyk5@OoH_hBv-Kim0Z&13?UurEokkbxkbc z{KPtJ4d{xuiL3mVOAljzsZL0kBQ2gVSGunAAmMOq0FaSml|>D9qxIHqd7O!PN`bP1;wc*^YIdXg>L>;;EE^|AatQ4G#j`Foq^@Xi2eqyR8pIXu&+~ zI!ATH@GO5F$17H>1w+O$Q)(W3q$A1>kHoR$T~58EU_-8f9&ozvsAhv2Ic`>{rpu5F zvTF5fMeE{>ZK!^anwVK_aa=c`_jT&hdXnEVe?_5KX`f2L=r*}EN}(a#Y<`4@EnhfI zuu>_3;V$i4Vl)-W?xdO8f957s`)u!`u3RTU;y@G|uc71htGF`C#TCCG^c;F)jWjF7 z&*JmVT@7?RX}m!vN+dVNC%J&9IJMdA0&M%qW54RbD}zAK9xxBT#32Y$F?=s5%;ObgHAqo_5F&% zMs)T|L&mP`3}!1a^^x*4Mb3fSOO({pM>$=#`qmm^sDXCknh19#rJmFh&!LD+HfId<#7hq7Zng#@-qhlO$z zW&Q7^mZX+S#`82XgK2euh*5C-bp#n_M;)|U+$4tae!^z-h1uCndi@8#c)t;r+*XN& zQlbOV+g{4_<&MaDh*t$yK5~G`BH^9O%(!2E1TnZg*hqX43Q;F%uI0ua0US9%_47Nu znepk$@!p`iiUB0nH?Z3oABK;S;btE6CYEK90Xo}cYoFmyMo;)~T@{+;D?VPL1B7A! zk@_iR$?QVa)&M0d$wyx!+k?tn9OFG?1zi%tb$u1CxE^vJ(md;>Tx*HD4PZ&^s%je_ zjdw_qFBNDVN3Nm|3cB&y(O?mTV-#;=A;z-AYf9%baqTOvdQify1?QKCus2~V&3f&eYAFT0FBuqY%vT#A*vffyh5BGxf6 zm(5peztbym%5Y)1ccAxGHcs=z(3RGFU%?A$t z;+2pZHRS;>!-U1!sRDfq&o+Q4S7O~!^59FMtk(cd&_5GE+L!d zxj$TKpQGHyoOPc2k$UL%g~E#k_N-??(QQXRPuA#b9oF^xP~~wViH^F@$N}GsZ10QZ z7zVc3MWyI;0U;mt$%4G?n0nIk8?5`?vXmN!B0uI$aM}jXqv!z_%w$hBT*9TyJGPD2 zD#r6hxoAcW!qr$bT-X4qwwKn7A@OsU%8JKfoP+O_2aII{t-)#;r5SuUp}}x0Hq|*( zczaF?PN|)Vr6|^<)bhK|2tlGF%|;l(A0Fp*RL~m=MQqplJzOXQ<;K}2fww}~8lZLl zMdWFG_lcHLrG@YfN3ogK?US3-RbWjmBCEpVN*+ifJs|&);BHaenq+K`jCM-N&+GIQ zZ^;>>y2>F-(gzWRzi9n!&Igazp^IVkREn#Tg(eZ5Hg>@EbE`jqMAxV`)m#mQb^e9c zNTFF+Qrq=2d7rB^mJQ=^Hs>iknhx{?ya<&}g9MM#S4m-9%mj}wAQEcf zsoixGO2=AsIdY8ZO3x&BHKF_O&4RBRhIAGbB|zU-U`~cuHa*B^P1hfGw%!yq-9L@f zMdVGbFGlUAxd75zEBA2K!`Kl_iRi{4ny&_u$DF$+TD188ti-q9O!`R;R=lG~-e^0n z{59PC(M0Re8)_^kdNs;B9!_qC{5ue>D1F#uRT6u@ZDI-|)4AYKe&Nww&@$plyYSb( zU=)fI#?6nhwLne#EOt(5qq4UeaiRxie7;6Vq+AMzwab>vynhGsSU-y4xCvpZlq1R_ z+PB#*fdNbJVT0J{^HQUVD1l-{QO4=fn~0WWZ9dE5dDGTcpADl+E{mm5F2)M(zMOHe zP-*lUDI8|?_>=_yWYcd5mkB+Afzul;9>K|=(+9NDR>1IDn8KoS)&e`X`3Y_6Tr*%) zz#tM>PEVl(+RVEKCA=@gk9J&Gr_wje=61pJ5}w`btW27hA|W;zEVuY9-j?^Y=;3>~38OVvdl9 zvVX^3iA)z;jX`)L@)jkC5%L#B2tzcWrqEYdhl)GffkJhwy3%tbm|l}pWX8g{y zy>`_q`a>R5l0rvemE?tCFBSIteY&m?TyaU%YJam0`=OH6f#<}yJL>)ykEAE(rnb;@ zoMii3n7C`#-g6d|^<6VNS&sS<54yChdw(fI+**oktB~YKzqv zu~QC)1D9{Wz)_GP)7eZEqNr(VDrpCuF>NDmAtRBVX-+c-&r+74BHnWBB}@65GE=$z zWGpNv{eqq9Yp{#iObmsg?V93KqxN4d(S!D^@vt=xEq3!rfgeG+2pL4ulA|=KOA0H) z+J27<9ZQF?FOtJMMEl_C!>8+>jsE(RKnYQ}W*_XVWzKSYJ78?U>QNuha!6fXKoo|5$j=l?c)QFXEa zqW!|gy`|pZy6-qa#f$I^IVT!Y_R0Mi6Ixqc*1N-CG0+t+kTo>4P~Yz-+!lu1A5doJR~ zeB~CdgGBLnC^*k{hb#P>j0?2eySwSdMbUiu99c5w)AB|#)fysVi9|_hf=eVP%U^*zt2* zLu&U)y#9pFUqs7QmORp@$%ZG!>P@VFy$yi@V3`Fu9zRsn)a%lZ0rZ$7~%=iZ?)_Wr}gQw|7sM2tBhdR0RVwUDs#N~ z@K}4oHTL?k6F5GeVIDwcF~(_dt>w*dk)nUuh>tf~nd?cKXctCfd$lC^KH;YH$CLHf z-EzOq*lC}O=DA4UuCqokP-$^Rdy${D-6k1O)ie`B4zXEb@gykiayM zVzh1H!yuZYa@k_;sX_@&Dg{uaU89sG4W>EcFxXa7w0PM;5MHLjcqz%hjRK)^ZM4PM zWl87TtVgTj~?$fcWlIwp&N0$-*V$Bv?IAW(3-WLN$gd(KyXi< zkdq&H$foJf0mULE@JxuCGZz}8ba_nK9JQx5+_;0s68l#V+>H0NA^2G0m7XL+28${7hWIV-?KhY?d60B5~G12Ki(zW-FLc7 z0t9HU(EGm7Bn@#l2le}{iOQw_a6=Q87Wne<^5E51@*! zey85UP{^0bJDXco?z_K=sFA^yq+N+(eC$tli-d&q_&L7NEf~39f2=F*p`Yi9o$FqG zdyqpRoyioIi)T9FTPZ~dkm&|5`g%}zdbs9j>fi2xy5T~a$h*k9bALPvx^Fa;jqt(G zP$sjdB;X6m7{>AMwnfyb5WTStW*icd*|Z(+laJcRQ1No@1#x?-psciO zTiao=$%(82mDyo&GGZ2Bd@?e$f~(XgP)4gR^?${9HaB5T`~+a;-0O0wQ>2qE5`lW}X9 z@zGd|`9l^>f?HGGBp8?0Unp1eX}cPwUjmPS`}ltuh&NJ%Q@Ms35eDy z3DVUVGE5j7tO3k$_|2_uJhLQ|gMf`wPEjpl|1AC8y<N9e&sBVZGtHzP44EV0EHS z;T|OdwLCnPd1kzXuwrW2F!Ok!-anDZDlc05P9UTkFXcVrEiNrRcVRBm%qok(E#a0L zjxj{4(0Z*a1p>6uP$u3y(*l}LUHq%q8H89&k1xML^O(-z8}4&k3WqcCUpi(3UV>y? z19kDna>z3*b(rBKyn;Fo2j}*dj>Z%*`TI`Wa-q$7@ z?#^ctkC@Qyk(%N$wT28vL_4&PRZ!wSOnv)0GTx8({>Au$bs`x8)$-ZtSU8iX#68lBVHRN!SQZ^L{ zwp9X?Ypv)sUqKKhf4s43lnzo zx#qa(Y4e50K?$^m4z)Wk-?oby;6_U5OQVGz|7@vb(+ne@SHh`-1Gh?V(BT1P5v$~*(4)QQy{G|yo z{bjdgQnhz)T8Ru856jwW@s5!G%6R`OESY{7D&oaFuqAWLYL?`7jRgg}G9ShfuE5(9 zW0F;Pe8RoD93=D&8FOVd%nPc8uRr-95rRh!oQcchzM|^iBo4{!|$=GLh%>K zF{>__3)V2l%(xlmr(XwSds0Cgj5f~0JCFo@qZB9^renP40=W8L z)j89L6)r$be>C+QIN|4VU0f+^pg1{cZXLX!yQB}gAeGu*^bXR<(6hNjV|QOQbN=`l zwct@MJMdK1{0=(7qkQd@11(Kn)L{$F_#9BR>d;T;R+c;nlpqwbjC; z_8?*>>1#f7wxkOP3Q!;{Mx)I))QYBB{TIZx*Dp^B(D_uSj5;f<_BCQJI+YzwekKz4 z*7Pb;#n*6kS&z)x97Jz5WyF1UAfrkdd*aDh0oAbM9gnHgxFx?{^>96+;#Sul=XWW9 zbxmaxyDQ$TJ22<{Z9lgtk{iOWj%jO>PIG#G{u!uk45=yDKDOs@_;HIaV@l{&&%%D0 zorI)ziK&Nc6lOqah8)d_E}4TJ+xtLj%owM3LU--v;mnT1>-mGP7mWE4lLL4!HcF=U z60?t6a`h#lSEAMM*|7z^%$u4wXQ`6qp;IT_yIf*-OE+owYYTS0eY+h}<#b|9t(mp! zy|^?tUH)c4{SyAT`-hRz@}jCMqz^4OXLqjJI_ZM-@x9MS@yBa!$h6VI@v%8%5~-gVhqX+Wzc}q}{27YFy&>VqbOt@+483EqV8B|6%*J0&d^-=R`PRlglqs zOE>N-mrGwSx~{qD1e;km`Nmu7hKN_6H>Vw7-UYamUbKANEQg@Y2E&EKnUD6-W2=b7 zR?);7^Ip|2xm|PBsPpqCc1_iWL^oVrCM&k!n0PwRb$~}9;1fXj^DQe($(`Q$T7%GU z@rQiPo$6E|r$nla$is}kUgKcJTT(dwJgD9EM{~UM8b~^6WZ&Zvq31Qsp3I2O!;`(? zeTCRTRzbi|$I0&xwyzp=WBV_h2Lo_uR8Q2^9^|7sY9v=K!X_WYqn#!KWrwC{6&xcG zRnBx(ecjFIf*q#(sBdfWjNiv+dD*H=ctzXJFNJWUdX_>BwIvPhgDCpmJG_TaXB*cy z*jz8hrY0aNQ~73b+xc_d~Ey_5sE# z`ar!r3-t+2ZaA9NiRDI?L>-&dr?VboY&;UE`=PJ;%yA3&`{F8G`BZ6i*Du9&bwAwR zbKj|m{GIFV1z%B?MM`3OI9!__Rhb2OO40-O$;mYHak95V9xUD?6-dGTnBH+txC0G% zpKstz&&!eroIv0aMy$VCrw_0zI4$-Z<599O^T~{q!)9CtY5&I5=c1 zkG|@CvZ7^8A1D93L<Ji_IK9(Ll>qYm8M|`72zDRLHgV<`TBbBJ>o!f{DEHVBnpYN;36O5PLLii>{(9 zV`#43w1l(1uY$|pK7^Njg6CbSnz3CYJ(4uh0BT*j?|kXd=I3|dJ2yt z`MFd4-02MZqTxQ|oyMd;J!ezt3ye&gh)kl4#u#beIwhgVj5Zt zlpI|rw%0dBmUY$w{!=BkMT#VSPO6iKOM?@VPKQL1RJWyw62qUxripB?+PWGUEBA0q zN-RKnkg(9ZE-F;R&Bpp6P;k3q@k)&{66T5+GVUz&1`}dC7HKmzX5T4DHFpENilz+^ zdIRSMyS(6Q4RIxLJQFG>gL)`lCVyHeVodh-1WQ)*ITPj~oidwrq^{K+dpp!Vz7GkG zafBP(x6#_recgQulUKAl7pkwZ)}M7>aN{1VxuY8hKMBXxU5om8(2|bX7hrpK7{^6d zmG_43alB{D7e6^UroJ5k4nm<=+ouAo!}n92({yz)+x^K@wJyKT*0d6_(`zt3pzv!~ zDv9RGb}&9V-tTci>@<~1Ikm1Tss!^J9pp5dlFTW#OX7DJ@&8if(o#!I(aNCyZ8a z!d!I(8}UU%y3}E1dKJ?G!oGtqz%R-A+>`4cyGY_iML#+vrw*=DaI-W79qvllLKaKc ziUyd?HfU41E}#jSO9EL(Ue@76KF~cCL%i~?S2_`nqvtxR&BR#`3V*8~{Lo-67^K9( zpyz!+wOeFws zJ{63(>ZimR= zp7YVy16Vy=EH!KM5fCkI1Xj!rl9SQUtK*~DRfFhcAfib4DM6FGa0HTh- z7+U)7na+moGdfs}^Y{e+&SW`!mXBOi3Ez~Ac+7!2x#^C1a;clzWDQw5sZxE&sMr$J z@6Vy;8pYRq#MsUPxi5Z-BJ1A=0M>NFYZ43CJHz!f- z{o=0F*6Tz3+!(m$lHCP5LNH^mrL)h)dT3$!61Bv_`Qn)TyJ(~L zbrF_`Yr@>?{FG|e&3JpHPsNMtt%t7SfjmxRel8z&{0&UBxR}m1|J>7izz(kUg71!? zHf5gMW-|zM)@dAag8MDlQVbu#<#5zeAVICdI7%8@iQ`=Vfp45?B% z5NF3XLLc~&nS)cvrlS>O?s0(Rio9u*?W4MW;7erKYY1`0P0~$1EFb8+$h}^I_Q9P} z&u>USk-nV|Hz2Q6cKX{iOA|M$g4jn)(~#30;g+^EeT-X739d*xyP;O1M7E2I>fa<5 zOFD#Rh9vhy9RlzqxGugQ`qV1>81rO8HJ*6IdI>@1H7;IeRxaCxfmqrwISPKZQ+&hu z$Z>3?W&Di`7r8K(-z1^I=Tm1J1ffT!6JQDlK;cc(UOwQtK)D<6yC>0QaIIvxS>&Q$<;ad1iXQ!z8( zQ^UyA`gC8hvVQnpK-*z?%*P?7iO9-By{*(?;&?y2d#u%(^5q@iVm7h+4oa~i z`NukqQITmI0cp3A$!W9o;&-6CsO1oQfG-km>^enW%*l3GK%CsBbpc(NjlB_5%^&ZE zz&DM~8nMK)D&^dFigoq3z6SiI62yD0lFbLd*R<(d2s{~yga{hcus!Ui2kx{hBr+_p z)GgnGoUEcZ?V<6H(?l-4X0UR9mZjnswL{zI5!m++I4s{FKkX&bg=?82+IoQD%(fam|O4&SM4vg}` z2zl%|d2%m@WO_Vbu4PJvQ;rZ`9noqW&wm=)Nf|AkJvW}M7?@0@HWxGdZtiJcaZ-Jy z8hvhYxe`=MX&7Ffh%Dc1GU`ORZK@{s4vI16*lm9O7+mZ@)&Num$TO#*)Op$vFn(zt zj?@@RTsJkoC5v zIY}b2#a*x7hZ2p_K3rzmAf{Yl-&#_9?oETU&?M06ugBJzttGF3i%u#bL^bAzYW(Sv zT}Ao-aQBsMbp%_NK(K`11h)iB(BN*t-Q9w_y9al--~txL*`cUhe%xz5%DDU6fkT;^tHsw%3MiUVs1YXOY<;z9F zj!Hr?JFv!akU=iliL@J>5S3uNv_qy3YS?czo1dr_oxDf;C*O7zO)tH%sH_^#R-x}2 zR-t`wIXm?RZcRHe#ABlmXNt_ioIh@*>LAmKh{1fQU7y``8=DG<(Z%2yQI=WpOMQWvgOK!aZf&D3vaHG zZN}N}s&yONNVicqdRslUQ+8Dkl7rih5_9gf1OeVClkV}Euw?{9}VJ-YduIse0Eso^R)Al#EQ%af~V)MI8g}&82q`;*wD~)^wN!7M>FaicsYpuW7h*N36j+;?SUYY4 zo4mptt2VIFXrAGvS8W?p!XA$R4!13X{`-j=>bk0!Ygk^(mq@?fQCs$Pavb#^#Se|v z1vbq)2KMYYHYfbNE$R_UBqyS?vMM9Ov>Qhod8T4~jiHJy51JCA^!vMuzg+DbSW|0k zU?#?mc9iE)6_K3+XA}&`pI(TCe0p?DlGf@GU{FIFMnc7j@Q2~;#Xq%;nzefq z9gYuSx-1!5`TugAXy9kx)qOBX@QE^Awk`fD|+ z$68XwqK(ajIEB>m$$y#KeX>M=5p9-k+gsxzYkYHuh(FmgHR!r8h&s(By6N+tTy=n} zg2veIsyCWk!_M|8laAt8OY+i{;2^lJoUDtK-Tke^!8`VgTbp!T8)By?@*S!4zdyxR zPsg$3an}TxLOg?5$q5Cq9&(})kjQE8l18L=b(;xaSe6eJ?sV4%Et-CcY*w6<-xu+_ zT%UJexAkwCOQWw?5Zr2Ds$Ti*QZTTlRj~!BH(k|#TRIgB1H;R1YkFe!d0;A`BS+6yINLjOV z$Rn{k&|smt1YTiy4n=H3{+JttgRGgSD79?wT^l3vf<}!KG!tq{^iM9Nl|I1LQ(25C zMW|3GcEhjS-l0>9QvGNq6}2@IltDwC)GXOH_8<(BF!d_?M_}>shw*}x{)jM<5Zh48 z+1FKVbkE+llcWyrPSqo)^+#`{FiLa#sy(RbTzk|cXz?ED4)+V-d$_W{q$@T)$GJLT zF3X*d3?Z|ZS_-_3$NgkQN21dSV0e0t`n`1ar{!bj8zs7Z;OU(B1WPtlD?W>x0;cA( zJ~P`>JVleUWFji~KRD;-4YDb^4fcEL)BXH#(Alt`eibsYr0c8^d3x#ImEJYSU&4px z+H1;H8}Bg6R~NGC^J>d9wP?&WZ=wv0CfOb?LOfseAH4s}+SnVPuD;Ql)_XXLZgap8 ze?}+$`{;=7Zgh9I&`wDBS&O+^;zcGk2uiiSl{x6zg4}HPOKqET8WFNT%JtbPn&r}= z8nZZo4cMmz4IWx4s-!cwp_xb2IYG{4kMuc6;|m{V0Yg76CU0L$Pab1(`0jRSWyAiJ5OUdW#{PtrI@cu$#r;o_eVZd!)N3Cx zu74XuD?1$Cqu2z@3CKgMvg{)D{7PR4V&V3zc-pWyvqQw1A^K&Zr%wBis-J_?UMV*p z(&~$5)GT-ZcF{>JV*O&0=HCmvn(P-}<2}x1^c4aw+bTFa2Tv3F;h^)0B(2lRwr=DT zFAdE>3H~CV6*dU+UZ40a0(*?@r%(lmeb#y=lD$Y{1o`4 zwgKy;NuO&66U1n-0T^a32H#yMuD&X~u3Ib5{psKJS?39UhoP-O2XQaD-5QOG%{tdg zq}*l=C>L;dpHKhIy~8s$IY8RI(A>X~w}FA-W4v>G_-JLe$Y_6uM(*})ykv3P@;l)X zVRzW(l7qYN{tFA{jJ6lAVzcLRmL;E#7V119-DwmLZ^felX(r*};Dj#C>6IDO+1oDd zA%h{lW!v6vQX6ELRss#RRz`&TA||1II#yMxPQg84Wbf-J@AF zjj66)%>bW9#kWV@Rb6k8EQy%er)wkZ%@KNjUFj_Z4O0T~s62Oc;NsUYO!M=JFM$&{ z(KDhL|1V*6q1n(~&H3>Z+G2~@AxEU~$c3Td?I#7tsA6Ab2g|(g-j^SwA4~I8DuR>T zpW$~W_{Q@E*m)S5OQGhzVDMqi$1dcF2`PnSJ{B*E<#JwrKLl?PUL4+Ptm$)&cPHB)sHzB?pPib zOSo75?M}D~G90m1lG)Zxw1I8+XHs{`(vMmK?dFG6%?l01v2u!HsS%dOG;>VWA{ua_ z%^tptDeIL_b>2?_27l``T-ylpPDCiZwZ0OIbTcav(qwuh%6X}u2Zrl8l|5IsIWpx; z7O1!wPrWboxW_HC;_kW0*EafVVt+_IjN@d{`mJ?V5VI`9hbX$iIc%Nscd6eGp%|g= zwxW7?(0+pIrf}^JZ(RIp_f%1U8$%M5p<8%1v2K|-n-t-;n=}l zS9@H~y4lf@qQL(l)L@YBPh4Tj>$Ty!rmaw+$~clvHNWTFUB6JfpEl7{$Y!rRR=6&3 z`%31)q^->9?AZPJ5YmqSrQSXahQPfu6|QRMUGe7+SGm{$i%Brd}lNG3dZ~WiB zK_N+{j5SDLr7)WdtE=OxY;M%2x+Mh>Ipu3{>S$_eB3`?$kI_Abyb%z&?vyEe_SgSQ z0z5Axr|tKtMe0Vt!s?yJK5XT^yUoKbixY*PK;~Jub#ELSY6-+RO2ynI zQ^ByH!@s3(-w{8YqawXPh5r29;oS&lxB~XaJC8H;;9h@=UrM+&*s{My`1e*@nolGn zV9(zUjr8VekF_W?bu82ozT;7D z`c7TfdbkOrf4^sK)#Db&ie`NGR!l2Xe`8Mwf>bhxJ3I~L9vt3iXl#QD7oM3{X2aw|^2cfyc3iG9yW zN6wSew9fL(XWY+LjDUTnoA=Ozv2&elO0>Xi9md%!#s!WwBC0Z(Zlr2ia9>*#hy1sC zXV;A+-x9~xc!9z?T;5mceMWEPmKwm-yXRzOu*@T6F~0hfvDG&?L%lZy?2^8QR${PP z>AHo4=U+C-9C@s0hwdC0>DsKwAnQ7-WU{`C#7kz!#1OB{%2j`VUZHg09O;u+iS1G}>kG?eF(h63)c1`Q@@aZXtf8M8_U64y|u47i;SyS)`B<{JD z$6b#4R$&{eyk}i!XyJu8f4@o2&z>{NevbDC0gh|w$E|<|>U3!PO3B`QPBohug^s`t zwFmk$dn83l`_WHygPV6dYH_Fmj*pE7t8r~nRv~r=UzGi+Hz!V!*fe>ESBT1@PsYN| z-iSYOB)ap;-yQh!2-S_+aPZ(Qa7;AoQ)%%(OdTvaUj9zz-qN1`yX3s#YB9ie@7g(? z>+lz{&ged%W3Z}9RdjM?t4>D&9@`{8%tStO`)|8WL#lI137+2j2nG(Ph$wqMLPl4* z3+9s+^WI!-C(VV65A^CVQCuZqx6<=hu-25^*e{2xr!^8A>gt4Zu47ZEDOW_Je-Y_F zduxtpHW}kA_eYxdMr9LJ1hc=PI$peY{!d7Gr*TB5b3V_&ND_^EH}NYK-6lX|SE~Q3 z)$PlH*wRrM3Nx+0(k%>rQ#_J%2MqSf25V_3+EqO7JU4R zkX~~!5*uZ+)RAj{f-!yK_GdmNU6eHo&tdJ4?b$Xas*CJGa$av*R%ey>-FnquI3gEs zsR*C_7i^O@*ZBD9?>f`bmFjh_w*%<8l9bX-o(7+DFeua>#-+~X))ovotRF@G@Qy{c zA)9wTm$=`4KPGHR#Hhw+&Ww8DPTS4o>Vo5?RJ#j|C65YUYp^|1Yb#Qu4HQ7m@Zd^4 zQ7PMyq4~Vze)f-(j4`|hyDr#Jji^d*(rbo#0eSB?%X6`tk;VN zPTL{~4gn#TqYHhbn792s4OD(lsVMg680$J(23;D<*!P)+1|_#YgEMC?+GQH`J?382 z0!^|4?1i4j+I){_zK)2OpW(L`+cvp67RA=+NM$V!GOC^@CPsa`sd&=YDzJ>Jg&cBi zx|FotnHbvOF{ih}9QDNO=+Ppo(%)0hK)i+9yr%p9&~W5ogVfl3{eh~-dGjT4RODd< zH$Jm$BCoEo#&}4>`s<|Vl&|i?PGn~zzZ#KptF@%AX=cKi?!!74?>`ixL+k)R$z=Y>Tmgt-pX+ZbE**HTwyz#Qp_Gy zD5tr>U94Ep5LvQC+8um|hd{E#{%TFw-Xbymr*N%t!L9288ecW?e93Dj-F_`b?xTOT zR_C8g>WaR|V-mR2QyKA3SWmrcspL_T2IE1S;7rwTO|IN0j|Cc~r~kSo>>W(=z8KA! zPTGELSx)$zLo)C1?@J;q*J!=wHSwvUDAFP`$|$Oj{aFiMpQ5wS>rl-Kl6<;yLJ>!f6Rc;_R-N z9%S2L@!jV18!R@Q^nyL1^Kn)=G8*k2bkLtKK@?bA4zMF!KDc)*v>#*GF>V=MXz87Q z-nZpr6*d~l6ye*CZ?HQNNl|)k%nFi9{rLXi9Pz+gvwM;EpQrAw^vP`EMPeqF<+7LF zY%jt*(hsVr@YK%m6*o_<(sY_VoUx2x-clQrryEIZHUUB+_Z5vk!n%?0WHi2+d~xp7 z@F=a#P0bTk$(6xonXae2+^CjZRP7He_puRp?9h}ZcFOl zmCJarB*@|1%H}yIfV&}G=P^R_gLTj5KL2R__{4b(&TFq4Ve}`#g@C)aUhSqLv1>rX z?P;wVc6nTV$<+xGwqb}@>vT#KKT|mE>rGW!R9%EzWGLogY6}~&Zec3vHEdg^FnTTMc@d2U-_NJZt z2=3bh?dB}+hfCEqpi~^OJzu&!I}^*){u(+Lj-tP~#D%S66EB!ud`x*0%G2)QU;}mh zu&TSzg5=FySBv@x_$()H&NoH}B%Q1_!)>%w*WE>4LSI%TlQm_^sx zI;y3GI|7#(Z23A?t}B4cWWwhMi@0?)BsKYPP}VlrU{4XnbspSYED(fbU}$Lj{OAgc zgdhCvS5|p>bage8yu5th&=4sJi5~?x6g@or{gfHA4A&X7^YPMpM|W7Y>1JmqGHnj7PEJU#wOP29a9yN zq@@l4#)l7bs;Z(^rL@r1ayi0GCSzH!6XG>XEeYQewG^6({$y{I-b@>-Gg#+Eiz}qK zbKry*4T0x18^p8z{nZ|Sg`#G+^I;z^j%GzAb9+T>-3gOvn&?gUW_IPS>v1}UmC8On zZob>2sz=7UYQ@vGwo2ZCCW5-6_)z^w?d-R?9qg{`WP zaltvv7E?F@)6^>hDBPuTJWm&^M;p2W zYUI*v)4#FCEyfEE%M7*}??t|KiAe3SXRl+sGQysHx#I9U+5CPI)Esx9b|piheec5L zt+9{HHJ<=CaQq@G5bpZ)eIK>==(d z^a8W85#&R6sw9MHE?s$766b($(pmMZla2L^I5Xl2g~z?&(N>mLX{&52-T!4WDw;WG z9}{1)E{#(&_%VaZC+Dm>H=W}fa3GgQ+s?O;m6hTH%a|A#(Xp|>7qIr{DoCWIr45Wz zlg-qig#rSAnLz}6^GW~a6BGm|g^yoeXKhjbZ#6Ky{zU(7{nV=(D+(?Bcb1H~PII2( z+la(BPCuGBOG2#!Gu(Fa9#%4I^u&0VWZJxI*A+ZGJdanuBP8FACW(d16r4THh$J>Q z1@m}5Ox=2|dfB7qOK1Ffz3Q=ecfNlwW9HGOvRQgQFr;Gc(YAfox&DN)9J0OD06Ir5 z^0ZQ&x{?1lH?$CBk+pU+J3q4+NS4fh`JAbu?U`&V6IF8dRI2vGdo8Gjwy5~@Xyd|b z+v~L}voKMr#o2JISi1bS{0&^0GE<(}@h|9v%_5pqm$|3)1r`Bf6h(TLID9uO=4-P- zff2Q(5S5FhkbB;UmW6X!k`G^ID~BcF9C8}Us9gKsE|pj)IT$;uyRzGycr6sz;hW5i z`;j-8=4wh5?F46Rc$zAblBJ@Mhd!wNl1tU@l^nu>+m=^)rsN@yjcX{OFUnS_Q6NB7 zY;ro%`!`hxJE%mNfX}Z4+}y*1>*jbl$NlEGVA^aXja^?GdYZ_444h)f`+V#7TPk&9 zb5lTB8Iy&Dg~@cH>+cSwzy%f6%L&0X#p0RGVxr6E>H;)0G3UK@dx_Px`4J^H?n-9; zfG5yw&FcGy|F+yqw(aR>$1hd^RWF8ga&1eK10xZ2J1Eww zDC0ivHXrZdW$90))n{iNv@%k5&A5a(op^)VzxG$6?*4Z#fJy`7)!SkmRDLoPRk~UT zZ?fJv#rDvhVtqa<+&a47N()~hn9O2nm7CRvV~3Z+&WwaHr~kJ8$<7R`nCs0er1Vx= zr=K=FJUld+DaKJL(1biRu_o`r zIyuB%W~Vr6tB^6j!G$D@i&G?p#%e!8ylWC>Qe^6?je*kOgaL=NnQeZB z#w7NjMS-UldR>kLc|}D*IXP5B++aQt^X&5S(^gM#3HnDwME!Ur`JWEDj=C8!rL;OI zpT7+6E)e>LM?UhZNLWeJ!rZ|mTI#662lOqP+E>G_vQ}FLm!w0v2ldRcRCdltbInY# zbnF7t^FlSQ;rkvSx}nI=@8eQX$&g#;2^>BF?IS59yOV7Qj8nUuKzWpkwbef!)c#D7l^L;Ff|2+;v?!ZE6Fvt?K z171Z7NF~Z)0AuNP1}1oo(R}_)Oh;EHE)-r}?SO`kZsX|K-P@Z#u+XA2F)_hzPaeo( zxiA&1g^G%*+2%!{qN3vK=SQ=^LPsZaZD|-ivIvAc$}>wK)8VmNL4Uu$+-KfVd3uT@ z;7mMTZc@49`6eJBCL`0kxR{!im1Q>@5fajHVw;|siEN{@Tf#^DRa#CL^=6`~ufaLW z!_uo{9xUu%9kuz#gaj#p#Xz=3_8gNXQE4o6MS|(0i}w+Mjxh(2*mqm-9L|RZ4&3YZ zK3UHnp(%a-zWYK+`H7b|b7@KQ@aSlGg_e>sl-Ya+qWpWiF9VdMn;Wh~A~odq@oXVx zN{s0lFb|Q<&0Ja${u`q2C5W8z`s%^2xU5zd4(UICVgp?g?r%|9>%i^VCSq$;c(}pj zZz%|ixpGJ%BBGt4w;vf8(0F-yrPJ>}u(GOzMU`-1vmAWp{Rb8ix9_}CwaMj74@?p4-|HjJfm>>NdO5-}klFvx`-pqD zSuRu;V*31xli^waH(dk`4INJ<3j-H~f{7UlQh5@sR_SH^j9E>kHHpeRB$e)OqWkgJuU{Sy zM|J0`i*+Y|``dqokMgRw`098+AVN@3P;|W1J-6PJj2o1HviJZ|qF&4JMRuPAIM5XG zYvfVI$s=;0(S3fr0~_-~j^z#N*HA)FtK@!89rz?PAHTbJdFc=@P6k2OeEKc<1RWiH z`-F^vfnjTO=9Bb(j&)|uC!rcKIhMp=Mc@*c>2=^Ox=MKHa$Eh}Zr_x@9@Xk4hZ-Py zZ!I-c8G5mjW@l%!xm|t+253~H6s_|^I9>fWkE~Qod|Fq0)-Ht0!4)eGvxQ*8fdnec zx9alnxj9uodi%pMIkzj9rSIwQBZM(yAv_lEXMTEae|#N;R#%ar&tLHvLZ@Lea&lqJ zdwd_c1rwg9hZ73JOIg^knkQh%XBo3d%s&0wwN;wxc+Lw;6W{H-YJ z<;5c;B$N;t{$>lKEtJh}E4Y32-ntNm%s;SHZ+9g95X@|=|13x>^CA;3fWroZwOe0b z_YVrHvfCC1UIU?JaJ=3bG`L(_P##>&iL=yT+ceYlCB*#fOfxJ>Bxn3*%P?>Ra2YRx zqh-OIY+8gz`^q-i@B!(#3`Sx|44sp-DO61JFy1@({S z(!%)M;9z*K`+W+&q(%ek8e-r`-0s&ur!xc{=j2j4I=;O_KrsB+iFQd8UBp4K(HGO% z)zf45bnnQHCi16_+38SqVsi3sBa9BBQ=i-8_Nzz~A#=ez=```bg_@!?ZESS(P7oRp z7ZPe$Tim0#gvFzBNJPL3%=eDqK1BHjBqAQ_#m$Wk@j5H5;eRg^i-@>P<&y7mD;$T< ztd-!g<)ICPJnpuWAZ{NX&csAH7QY|0xES@QjGUYt7zP?1o_Vxcfp>9F zEmefW$UA6cj**cO*x3!MHA?S24 zt-)1Qj9C&lcD8m#Mq^<=XctT`MoJ(glfQ;2YnN;t)g3Pdk~5aDF7xa3l8k2+G@`9gy&f#3hGR#i4fwA<|7IGLciB zmlZzouTud?QAg!hZ$XVVo>JSx_t7Rd3zh-9fxHohpdY6m4*jiu*&^ znwpd(0-6nQBVc7@WU6XSS6jJ(MGj>UPzRkSl|IBpNAoS#T0$;sC?<#-j`jReDta#% z%Hw&DT}%?9lhve)@cunmQ6JzOc!Jhqhf56#n8>-Ug(hvlP9@WB9g-EHk&%&G?{@Iw zd{gtB_K3o|vW3FlcVX!-wR+--h=_m(qEfP92iX9e307HIX|mGXFz)zjSG-?EpNdB} zy2G|F%WrR8JUl$$-@S`9m(^;p>t0hOLlw-Nukw3~s3jyQ2>o)~%L^eYCDl1RoG>;f z3*NFmJw08!K3e1xqapV8_Lk1%(dt3+ynL|T8~bJ0lU;ZO_2$i>6n)GBgRyr{kD8EU zxgzBUBqSszvnhBD4UI65A|2LJu2tW4S8PJU5j^W=AMrd&#^=jkep4GEUe|vXld-YE# zXLUd7jj5(Uh>eNaW4wy@(M*X38$0`Wy{*37XRTAdPg;0a-XwodInW6SX~R@vVq%03 zI;E1?lE=2GM8%~yLijo8zdy__?yVLf^Ja3iPmcZ*{Jk2Pk(;1Gbxpv}FT4ZPf`b!&4Wo77t6eS9AAJ%7Qs4_>y!hZe53WuaHCq&yIj%cL3DaeKB?U3Ml& zy1L2t|19|1_WK$ErQ+JYhwBQ1_E<`2A(QWWUN8nP2$Kav8qZoyPW{Nilld~6h4~p! ze1(dMsXKKx>)-rPUXXci`Lth>jWc41B=fGqD;)Oa?}ROZo1G(m-80imu3C+bMsaNe zI3h*}{^<%Vu0p;vvn$v3{Mq>+U6L9vh^XNN;A47Dnscul`k`enfEu7-U~nEEjzN$3 zf(j@uB{`AQg02pnzeKJ1hh#2TXe}CvZ`#M@JM<|~Rwrba2Wp&q@jyhG7HkUIl2sor? z;u8^2HggrnI%3MQ_D)Mr7ZaC`?f#-*d0T12)kpb9Xeg@gSPX_Q+&!bC zQ6Lvi{*FNY`0?Wp>EN%JADGN%s9hT{Hp=7+0j&7C+~^obVg;VjkY9JH-qvm_sH@s^ z5}VD2xU{si66N%;YP8azA1#N~R^hi~!s4V1&0LE+mXD8*#mb{p@)Hu+z>AREEk3nY zHG?3JgipM#%vwaK`wtmpHUn~V0&0!qhngB_Po1X5#sO4?{e4sLmi8EsT1vHB!~q@v z|DAPi_juVIo527ci&hij`_NB%KC#f0%*;&wYKe=TVYxy@kT-F!6x`fGAU@|M0Hiwh zTM7^2?q$N^U`7h_)8*Me3oQWQKqs!VgRgG1{Q?|o~c%Vq>CgqFAXxQh8qF@K&s(2MUF z9y~9GS+}1nD=I#clKR)zv+3zM=>29=4nI;s>l-X0_<({!{9w9Nf5v3_4>mr$X@ZoL zv~Sn`U}gmjbZv9fuc(M>e}A96H%jyb9p0fp@eji+49G68PjY81CJ3k6W<*octp1v> zmzo{p^eG}QI)C|rV1p)e>Ea8(+T;0R+0c8p7=`h+{zU>sLOqcAHSYzI^rqKiL>!NV zysVTL(Tuq_i1mx% zbK2sM39$^jTOvWEb2#nn8)x#DC|9}mVj97=d=}{f(OylvOsA~%z2_f`luULL2FH#h z<1oz2gS@a)^|O_rv^EF+6BmU3=2U5ZZAfY41kYp=6nHb_kFsx}9n)St^P}ff!T1j= z%(@>xAV9p~itu#ZMxa08~3zZ05{qCX03;WB^~f+YU(rGM+bw3HThQJj>V z9FR*AUXPV}TY*;8sZ2=eKdJfyk;_dtKMjNG>gwKdhS$;Q>gx*t8bo>ZR|BVA|MB*W z>v~Qfb`UTnWwH(>J-tsL|AiAiId^n8T=hi~a(_Bu1>khEHwx$0@btTuj+pOancbT1op zbpK>qA_IsJCKfw4TcY92PB{?&HAe<~(bi~4NJtvHz3{UJ@23%Letv$Cr7PU7%&eB` zA+hf(xd6K(^^S~)V6K;b1*Ucpn4WE5#A`ds@|=IT03$W5xa>jP-2D|51xPLefX^o@ zC;PKyL}0KC97tq>J`O&7K_I{aTj$Ag*FBw9(Lp63pvhEu170VW96I?Sjjw*T8e7n% zQD+T#Dw0N9QsO+SZL!iCz`Icz9iJw6IIr61v@bqzgwdcKQ+>P|YW_~lS4qfHf{mRc zp-@Fp3!s7Q=c?SuSci!B@bF)oers#x0$Jg5(Yb$i2j@wH5N_|x0?dZn8JOGCXJxu0FV1@a=@w~jTEQC-{ zauV(SE~RUQdiX~V#3NyIS)~9zGJ2O&V!%%B?shY`4FUOt!ok7$oFE=aI6duldUKPM zqf6RONlQDD?EnWjI}$$I--$d4u`@o(Z@WkoWHo*95{OR+r}4APbJwS?iFL ztP&}qGAoVGjd_!_84csANhZuS-{E1>s4H4c#e{{0^`B6t>`S+0ggRvWq>@b_r=gL0 zwlL#TcjJ!ve6qCM>IrAR<6myQ%H#SdBrJTs;(n4`>`wNY1qkxOa^YZM$A5L^0KWE3 zr6fDd8t&bNBPi~g)r`BzpvgN7)ZCgM(n#;SGZ6oflp;U)#PSN=E7vYmgQQ^>m8YC6 zvxld7zB0Cc*usi-I*_S~bXNT<8=1~FQr7kq7#1hZhs*3i3Idqz#f+4nBO?>ptj$TH zHtcEwCKOp(y3|XpT1VK+Pai;Bie^jK)xUAMBOmIY_;^yQ*ZP-lQ*AG(pve=#$A}Y` zBmIZ`f7#)o_CD{YINzNJC?}%~9T1hIE?nLG_s@qk!T(D3vMY2M((V>X-OGYgQg<^imJtfODdyQkRBOHRbJz8sxBH-efP?#n~Z7spCu zO@!6J^{nV$TwMGc3D5v6GNGnX>Uob3JwurB})!-{AH;e;6;fUG(NGH915b21*P4+7yZVWP+!mcQ4I{tRIw_2=vr5xB|8!&e#K+Y&-RRX8Z2rD!srS|;fvPFxdkpA?AJp{ciEx!AYvxP~)0*}@1a!)P}^;6H`XBo{`s4KZ3r!@x_bo)(ZYHHEa2>_0Eh;)T?q-T0#Sw811 zIU+9vV!=y0<&ve%!PA zoo9;&9y^R*tC7pd4liWjUC0Na*`tLIWH;M~^HqasWfSZa9|~uUZ;rWtNN-IK1> z1h@a3E+at4Gj}2UcT+-YmY0{8^l<99BPmAo0=9=r;H@*A4CMEN9b}RC*5J?@7*Ima z-ST*^kR?GE|A>K$OL-H;G%jHJ3bQXh15Wx;AP@yyjnYvl^g)}UL_>gP7W?+i_mPf` zO_1k=RQJy)ddrWE&-v+%zI(4uN5UQwa6;29L^ol$N38WEe3fbD;pwrzRDqt(>Co|{ z>#PV#v^2xMQPHNUDWAzB8DDWKi*5s zTWdI34Acn7z{R)KF#h<+1JoY<7A3-<; zV%dPBpE${M3GmXbo(Me6dYg7)+#H7(gFJb$Af%{`!$a!2-Q8UZ5f{(PaS^+AC(||{ zR9M*`&e;kRxlvW-I2edII5;#o{rq;`{}hZpBl`0E#-Kt04KDCK&Zk*n-`INv2oO?w zR$5lk!R&~N2ICtleKJC1SV(%kyfeHCp#I);5yjK}6(dUKZ<$Q1saD80uvv&$D)Rd@~$Z*4cv6 z@}zxgl+2rri}p885El{^g@VmPlWlB5Og8_RR=k|) zXE(|c4(fPh_RKO0r~lc_;@#X-yvhTi`%Vg9vw`iVZ4=23Dj;Je+Tf1==8g{Z*|u@0?t=~S$Gl8 z7*_wiwXzg_$5^XB|UAn-kZp(3u}B}k-DP*Ar|H>*;@ z2G~{lK=41m0r*WgYBiotXTiHfujLi6rvm`>%c} zmui~I?_Hdot#9?m0q8MU<45XEl^`CsZyJV0XLN0`+^GPTvcJDSuP0fTX&O`raCp6% z4|M=*=;-XEqIPiSh0=3vl@b+=?#*Lz*D>vhBp~sgiTd{@9Xrpv705=*d|L~xo}e25 zf*nn|1ISCj8rOI8!`{hKCOG_?5?i5tRT93Erp1-lf`20 zdnGUFtJV~(piyf=yoyuD4^c4rRKK0^6gpC?6}X!mNKX*fQ`X z*HWS7X9+$=M+=5}wcKORInnTBB=ge^pmHQ`0KB-& z-3CTH20PqOHeJ1jgI4f@o&-+V{pb`px2%ldXvC`B__LDbjIa^$j{4*%g8XgmSo*Ns&hy! zEw%da`<+rg!F_IS?%LLtV2*G^c}-2t-0pp=<#=|0(4sn(e5T*slj{5tH352Jc+g^< z_2%B*=giH-*v!mP9q%V0Wo6}>JC;|qx*~~32Sk?bkT>!QlkaOQ9F~&mRwpdg?OK&* z2+J)Vml_=rKq&?kq$GjmmneV6gg1L95vnh-uQ*Mgy7E+AGHw#8Fsk|9$dj?AnZbk! z_f-vPbwpQ*`h9y}qYos>^RNUUbFHd8Fo%%wl$nw8ChelzKN*F156_o$!U>l zEJOKD`H25h@QfjhG=KOw-`g8BHm3BU?DN;uh3mqYvjhHmTzXPHYVx9bec3xhd3~;d z@`{RI!0k5p{~*cEb0~gusrK@Z`iJGn&LB-(@XoIC_}B3GOfAk;AW+6`7%I&d!|hOc z%GCe)j>7of|M(9t%%#ON^^zSclT%bf6`<^)Ddz#L8}E&Fn6S(X2`IiwYn9NDqbS0F zAsFO^GL`)yr;-wo`{k&86EIo?XMPRFp@RbTnr4FG3hyIO7>m(CKME*Y(eS+ZXKAvc z?53~rlX5aE46P|6Vtl}iO-NB&G{P3TZFVa+0tNLenE$MJZ~?#43#wkAqe8O1Ot9ii zSgTH#qtYqye@oP#XbKza^DB5hih|oJgkNua``_E*X-Ns4O5*+$kdP6^9uRGK)MyKa zX0Gv*X$ZP2a?U7oY1}s7SFrrwI|4~1L*Tv~9u#bB)d);wf_t9AC_O;~1JYC$%WTJk89_n8pPF<4g5xk6L6qxu!h+h( z`&MKSbQZ1KwmV>!hYj+4%@y9q19eTC89-cCLn z784O>$5?gnc1R0Tx6QN_xjjW;mozpG|vmQ z9yc!~G7h!*{(S7Z43hptYeD z+2ZS<1;JuKD+_CRxByL_l#Fb=(b1gbr5RFGMuxF*+@9z)s6)42NC6mSF<dFMT-Gp9p67Pe zAT~_Z;vnPSEpS!WV00@I@U%JHF#z`2+ut7oh^;9Y@@lp>iOJ0S746#kq5DWAX$O~F zfrJHF)J&n`{MB+FQZkC^Jufn|$=C4;{b#(AT5fYkvt>FBsI1#1SorwgR8>C%k=KzS z_7B726wK=JN=qsbzVV)pcQd_N8o59r01OzDROuk4-=H878dYV-DWNua=!9)Lx#otMF{5ogwgSSOq8|@e5?UyPS7$djy`7zYhJ%SXPhMC5rhm{1DFBLv zSk2B}W7+XWVx(mO70!HOm+n~~R)JjF$g>NUDJ8bL!x8mhzS6Vk@n(lWLk+7UBX^4w zlU75M{GZuHWC`?Wro`!EgT+e42m4!-t9K2hi1S#q6c#y8G3zR4F zGu#HgyGlyF2Y(li%e-Kcy4>WP52|Q~%NiHfYQy|(*Nab>5@l5N_4TiY882>#L(c%} zTL9CdVq=RQ%#@h-cl^mKy%QlWkN2?55IrdpdUuXs*8F1LxjQQP6aFt4+m<0-+e+8< zGMVE$=fj2m6vs>kvORVu&$^&NZ%x|y=YTKJZ9GA#byjvj#`4w4>l*^Dzk9|#l?P4S5cnL~TmAWgNvIWnd>39b zT_);lh6tE)KFeVOLIiA<`E0M*d~9e#rebO1)+Av1YXDjR{o{Qi1t}?@jjo{n07T=j zx6)|1i`8c=^H!i2Cpavu$juL|b0LXRQukJcelHXXrjaU<#cb(kP#^^LKhWieSEH+* zppf)LitJY*x4O+^5Q#snPWveDa~IHe)vAss?S#q)4uXRo8^W?2+4k=<(!s z)m~?*!EPv%8KqM8{o7ekS^(z?iP@e z?nXKejYtWIF)0Cy6e2}_ulXC{dxC;&x7Z1Vz0f{Tyu^w=GYpv z@(C~T-^Pb#0pNb3##%$%AjMn-oD=2e!t;VHqIcCxC#alR(J3UUsP~G1V+Tc-Vx%IN zuzD7EdOy`r?;~%WsVoP&I5Hd_IK<-_SPbi*iCuO%)*Q?lnz-Z+tY;@{h_0mP-+)Yq z^xw-=uj^F^wnB?HVi6?#s%f39V40zllC3oyG#7C`8oTQ|)tqp2afzdXS`4CFfEfrV z*-JnWhL^IwQB38>fmZf|E((CE7In@S0^wscfM10$MZOUTxrgX8djr(1*szHR)UjO= zOnT2+K#a?OjPVG7Lf`Qsah3m3Tw?K{6+ZB0*L+M%DaP^8tvM|oJx@$b1k~8byF^PD zC6K*xX@6LUGl%cj0C~SF=>93DJxFV^hL%%pUfSZw5{BS?v$Cvy7BkDe1rNFZB#m+f zMdEQZwRLrXIb#0CtYhMwMB4vR0>K9!NWlapx-%>^GPgY! zg=RIUd*uv?;sa?D5K)i=F;Pc<|1}*88xjNK{_EP(=VbcF)mPPapEC&T6j>sYCbe#S z?$evRFv1FTA0YSU34~I{QiqRhtiBts%~hEi{vqM0>SJP@e#6GPp^cnCcS54Z_O^tp zyt0v6n@*y?!QA3=u8C&Q&pztJugS{K(J$Y=Uc2Zn4<<|?Tz~q5usMBWiND@*uX>_S zFnPt(Yht=I^eXABejC*M*Hf-Ozq4$ZQ}Fdn8wz67*u2)6h1fj_*89@KST5YelUsT4 z22~hbHT1}R%creiMs`I-2{?5PK|dq?WL8lh-ug<&d+8?c?wkb)x2Q^s&upH_I4&goq;B=hC*q`Rm{Oi^lhh<5SG9T#Ou@Q ztyvyFyT46PH`@ni%j*6=)w*`orm4Wrkd_hmORNauA3q(J2ZI%Eai+pzdAnMl^<7q; zhzUGbTo+2W?#H+>zqzWKRKZtZw;UibGc$WBBGSB$lRp5;b=2-Ca-@tIlDRMW`BsmS zkf?yn5~K}4gwqKiMNC3M7}#^cS-@&k_krvYvilajq1~H_c}vLWme2ESJ7>YIFO`k| z&HnC(#FIkn^N%Oo-!~e=D+Yrm_zGHb$4qvAEYbR|vxdIWtU0;3#j>iNC}&= zjVL2^%8UGhI}l#S?{)4SvHB{xoY4u5(o()NA+I}ALK&&!&a&Cyu0LH692H!z|g7M?eycCUvEb&7L})s8*At_eH&q_Ipix#ru7G64@0VsCU!8Bp*=8tvxvC(8? zWFHpX#8r!$7k&bo9ud-b*oMMFhKw~;SX?!_BvM)VgUxI-Hsp5V#p>$%=K15orH7iT zX(-><4+M1{9<@bh2G``|IoL%w6O=;7iMk4^I;I-SM5pApGN}<+#gXTM&Qg6)4qp|L z??#D%Pr{a?las@yRDP6O?vxV6PbZGFC>c@vT(XCTg<BQM7-I*%3OHkayow*62Z|$rA68b@-)0={o}S{AF$BU# zy@Wl%z?K~jsPNj)ia9y4>;9~9K$I&a_3-cjfZO5m@n?0$YKHZ-wY6IBn;Mat65Z;; z&X`btsVoFYL;AH={PFQI0FxKj)}8=CTZ0MwHWyg{1bW?3Bhu5`>mL<`0eT(!FJ7s5 zt0dge$vNDys*sj^i58x&eaAH0jF zZXN4Nv7|)FInWjoTz}s|uJl=VuTBo;x9<3&WI{G>CY^Yyb*TN1?x1%910i)x$jI%q zg|z52k>Co-pJ$HQI4Kl)c{8(W$Wb@3={Vu0B?ha&uSPrUaA+mE z(G|z%@<7bMF+fd(U5G_UZzjW_9%)K94WI6cgA3l9 z3;41`_5K**vp`{NL@sR=7IAT_1J>8M&rQTo#an(I_+lHlEu1-!o7CGr14@UoO?;=_ zJo1>>@F2Ue3r@bfDfbf)~CtN0u$V@7lx+tCpjN3h>J@@ z^6rVWq9MyyIdW7|PE>pj&a-aveO?GWw3o`g05bdq4j+l&4D=7Fz{uh=Ys+M2S#)9x zJvvx(i-#3iwCOJ|213nc?oFr+Ba;G;j8`C#WKo52)+4=}dugdLo{_BkCpkZ{y=wM{ zqgb80)Eir_B?6)d9o)_o3^Ydgh+Le>G?lUVk(fY4=`!Haqa7j8I{IPx<2`L&NPe@R z$2PTMiU2IykAg4V2QQx0%=E)3Gl`sFxP~mZ){C{(^_L#Kw0DDr9o*Mu6MeqZ7mI;0 zK$A)HRU8T9Da0&!a`!eBxA#!7t-+n&2Jc?jMKi+tVCpA6I8pY4xH>6VK0_=myxqZQ z?`FD`9S1AsPW$y6YK|aW^_0_k{4TXw)QhxAZcTZiaq>nCSf3Z=dwRS9y^M#O-NYY` zyWQl6TN~**vjHR!^c>Qz%&PY5mYbi4-A%tpkH){}D9()hN!e@ouqbXpOSaG3TDbZG zl5%y13V~;blMTM<_m|b7G%y|hQt#uJSSk`7VCQ*;j7ySo8X83vs|Ww|13@nyIm?fo zy+e1MAw%JZ9>;Oe7zcVslo}{j4t50=wckAK)=;)9H-~v~| z<#t)+3+;}coGQ#uZL-$VNqQO)R@u1dFeVso|t1@g{yxO>b{ z@VLoTiS;WV0Sc6#=p?DJ$%L>=gxLQ4$84oH)40Q>QAy-$`HAZ6f8tv9Hd15E@rkQe zlz#{#fe8AX2F~2*sQO1BMVS0yiE(^#(q9u683_zy0GL3@=C-d7`fiQ4hI4?3?pY-1 z4FcFNEe6rh&;m7!I#0JohJeUzce)w{q!*A+K=AI}AmV**JPOF`W(j~g0lX2Q3wu=; z`uH8uDWMS&Z}jz3L@XA(FG#@vI&KZq>@KtzEwHe&W5v=b1?iS_)w}KxN!kW>sC$=G z5(-_ilZg6|sHhBq>L*#GM#I!%t6A9hzOfTZ!siHKU|>)#8nc)I#Yfh`r?N6uk=sKF z;5mWsb-w!=?BS``%`lnnA+yfWkc|rO3&j9w5&xVpymqaEw%igU_>9N?#^N?i@7lZ3 zJl%i<;zfp9-oWMBF6*UPd!FJ}gTgyvW`kOSm7jlZCbyH8-#gRlK z5xlQ6ebbwtVGu`g!=OtD?`AjI^hazeE@m9c1)N?r&sF1tjiClglBTMZ*O;C(YVny7 z*aCvR_z8sCVT!)chK9Wmo|y`6ou>8Ao zS6KtubSoHfr|VN|+ZnLCCWGrnP2FJ%^n0Lu9w9#%%0dF%(0G{=N3xlWygaxe##10* z&QsC{zkPQ*n0J4;yEu~#2QQ1=V=<@?0QZWk<$7(dR4I#!90k%wu@X%xa3MbJpELr% z3kx4V82l+J5!W+FIjCYm9!X47LL_b*=$*d{=ro*YK+JRlU24V0E9Z`m4hUQ1UL@%Z zP?z|D&K2;*s2CZEj*bqt2LTr>CNCd8OI{l$5WNLokAssF>&1)55CVQ@ z>g)5pFd)s<6N(Sn-C&4Y*4%p4FzA3Y`ILCvJ9LZlA+Q{_0@>sdFydpyTWRm&hbCw@ zU)lvo3q@RoEuT&R{_Qb~nT0^kLuOR4iSDX;v7){|%Y|#(Ww{dw3eVW~(&Rpx?NccazfWR~J-M3SNk8!cakQqKU zEFBTf9i4^IsR*{rhoo#QIY}HY*Z;}uWs}tq1kGL9WzLvikTg<-Jg`66FI(pWXb191 z^u9J<6px%719F|+UTV;QiHWIPa)5wHCI!|P7ZDl&Rm)Ag2STCY95xrDYDyHKfK&;+hu3+3%JVC*GH=HdiwI>x$;0M&tDMB8q52X1-dJsPE>lc9h zd=+U9`fLHgA1}iH1OkxJXBg?90s`DYJD^T+YmtJ93^vXfUV(aOGWz*Yj+!OO)w$pu zhbZ*i!Uktj3V_#Apw^--Grl|(bMZbu7#ZBGt^0to@rrG`3?^s(UO~;y&SQ`}rl*Ny zznuu=UHk{$ry^jVf%uP6B!E3SIEu6r!l`81_h&%-cwFIkPfws+K?hi`Mc$GBraPN6 zLL!$=?q9uL?gdxbD23?9)jn-W6GVbo-26DN|772@zHX-nfneNaVO(Eq?VNgdZ!@k- z?klQ3ZvAQg7R0%HDUDdQ?T|dSySs;4N6Bgl)Z}cvSb~tqNGXuIR@aChfA_kuzcvMm z^C2x)NGqV*adzw!X0RXt;7PQOgBT>liqjQQ5Y;=wr=5CrS|@^=`cLZzV53 zmKhYu3jr(=1;AJwHgwed`^`7@ckFJVB~)*3^zT;tFE8Cx3=IwUPF{#eQ>=p?AW2)> zVwK}(e_zcZGIwkK&6dT<&dYDJb^iTiny^=Rp}h@d zRnvz(BG3|9)MRgStfz&V{&ZdD%OBi|SIo>@H`Brwvsp^-5Ly8*Y7|Z;4A(ik@7HY{ zc9Z+Q1FcH%*{kCERj_m1(dE4~PPECxs@LU)0mtY%mJYJQB*MMMHIczK$ zYv4l+iWoBYMTENwP#*%qMb5}$4A70)If)DJCchno{Wy|MS{ez;skn1ILsl=18GOB#$ z_0zkc#r_zdxX9oFyp_9Ur*qaliG~(CowFNuodq2aHJ@cauZkU8dE!h zd52|ZQ-jumiG1-aph3gCs4j@wjfhEzjSNCA1fCfbAR^1k%7Q%;-jYzI`wDoNn!b+| z?9{Bi*oDOqtPp{>05JxP#h=w3fVleWmPi528X$Xk%xw3 z7wi2*2dfl^R{pP+DuC3`uCA`GX+D3lUpWOFw7?aqZdo(kJ*=1lO6_)rng3bdkhdbg zB;n!mBuZJ7L&gZ}?l!xJo}NBmGxafqblUANoiD_IX4(ZOoyU`M^;_!9Uy6Ls1|%D@$#oV6 zZ!o(b-k-6B$QLp2(>UhIF-m`nt^dbA|TZJi>e2~KrlcKpKBZ!EfnqT>Ju0PC5zFtn1oe7OK-IdK0O zz(AgcTm zK8d~ri|B>#xWQxzmSb$+PPrD#8hQs*AOzetFF?jxERY9Qz~x%J zQ6XuIy9)0wTt?<3uA?_TK0eiXKFGwPH`n#+vhO~5%Q9+pSAmvI2&1T_UpZHiEY92p zgKf}!mh@TwC?X=F6Yxp>b}3~5c{eCVxC(PqM7#xn@37^L9wjC5??$uBhK{i;t4Sh{3A@U+ME1cy18ty+ z*c_@B+_&+LAA*X=(VXwj`D@5R<@ev1Z^r+q_eG*-x;Iq=iwM;3YAa{>jdhq1064K^ zA(b{>4Bco(v~0WH>0M@BAU2iTuMxe?<1a2XRa_m&-f(~z=+1@R93VtK>~1e%Zjnr% za--W_Pmi@bCSF&@lu2d1wz8rJdBxcn_c+Me1;Lm_Cnecb-GVWcc!rKXuB9DLz)pgU ze8lHOIhUUr-Ql=4FI}q0GnHk~@Dg-szXQ<)^fdh?UjR*rkavr%(hzmp-~h=u;AZq} zYHDf|^fOOEYb9*`uGN~XWMuG^lDK-T9_S?K6jNG()NE;I2UYe~Pr z$Cud3;@V~c8GdIcjaXdp0Dk-nt(~%KSHYyl(sJpzA8FIt6JYgOVjDeyyvWLL1*txz zgo)CpXFUZV>;eltRFG4{WkN$y%83AnH&K^mw^n@&lz433*YC4)bH%fUUJ3|21%*!n zoAKvnc;7812}$_YNFEgfgX{te0|PSXz;(S(L+Cz#=HfcsJ~)W~aJwN|VK>7A`im%q zg-Htv3bY&DD~4j{J^Lr zv_7df;Da7?gw1a&PmqvILDZ9xlN;{-usc}+5_&Q9QF-rl4O1wi1&9wLzP^R~!tn_S zA)q%D6vLynEeS z30PO@c)os(0Q@YU2S?>B9aeDl8NCRTunuN_r5GjC z@mXKNHBOf|04htA2Faku(z$lyai5`MAbE_nL&_zr&;21rsmT@IaU z#Kp&F6&Ird88k3Cw3@45SD=8ZfpQnj_ClIIRW-Ft&7xOn$%%=ujEtA>cPFtRj`z17 zcTkYq6Nvf{3d0cSdLH+>NQh9q)T}rT5}OG>(~CZnz9fRgRJ)@`h!#- zo`UYJ^~Nu)tRMm`S0+a_*+kFKFcL1O0}V1#AQ4FI=J~hqu9=jo4dy0719FJZU%$S% zg93r!LE}lJPXYNmff~?(3|tsEz}|21-hS)=Bjd)K02A|*&)xM>PQ0PBwKF3tD+cH( zQl@{w)BP>Knc-@Os1#Z^Fo;WZQ05;V`Td{L+|^=@+skD{P8QFn>!&z(y><;gg3T)Rh^v##pvwy_U@DJ9jpcx z@8>uzeSe)MJ`5Xa)t+~g7xNU3R>l_rsJB#z180HxVNp~trgQg2jE-w+2EZWj?B^S| zhN*)%k>k{J&r7hr;ay!{>&#B%f++OnO(1tokzFJ;J7m+eXw1fdNN?%n@jIuH?WE~C zJ=-`rnpJ0hGmb=sje3FC<`~i@Oy3f8!jKtlWaJ!XC5`uuO39@BfxwM_HMD*qN(PmE z!lt@5wo2*CeD)E{7xevghAA?DC>7{_I8s?5ImcOg*wDpnA>Edu7bT-hG>-8MY_r_U@)M)&0!jdXL#lOWF{?Ufd z+1bUhL_2JQR>)r%^qcL;dX_G315AYqfVMD9I+f+M;^)L&S}D6F(JtAQk=y8|l4ya! zlAonSBIf0}|W=EBDuwOSCv$IEA z`I6&S%L}7p5{_ObMcKxE(DX?#RTbgrC)?6mJC z@V5_60K?C6nH(k)z?X7=p7Rj+PiK`G{PxFja9Y58Dp@34$FY z;1hm_mM zBo|rgN0?XmYE^s;E~;%?f?%#lS4zH!Dc~Bi`CjAE(I$j!v)&uh3=1zQFviz=5}ZX! zZX>5#Flu46vxL`qZ@cutwwbnqz8vTaKcyTRx%C;MnQ-MI{F0Ou3i#qg?zYy#Fp?&My7F{X=sszGuh5QA z58PRW`Y>8%ai)^Lbp0MC2(KFWSgHk_(30qr-+i3q3)`bsRpPRn`yMH^_A$I}Z`%ug z9`N<>wJEAtNkQSw`}e58DjaP8b~OgTYi%ENOv)#)ApmK9X~hC)IRcH|Bm(cB1*4OG z1~niYut)~@H~de4JaG6YEHbj9egX9D8=r0t!QpTKp@(-BY8F*MCs@4Uf12g(n72p-dNfXa&K`>1g@Q-DOc%>$KMlrl}sRhvBx&xL z6@vl#3=*loWk#Yu_5ck4FW12TS0;=Gmq1yFcQa6Zb6mPs#gVYUiimU1vnh!lluaU-RE|EekO=uW?SFjN`{&i;Ln%U_J*cy z%M&gepmJhc@AJadEvcE_nVQmpbJcG;$Bc>&-orxI?PK%HdDhVq8#+_+o0lBuC}Xf_ zyUx{3;BCJ^qB7ayE1KrH%@At`t}k3b+Lta0cgi_DIVq`FKtw`^Kqx60;}N<#I$i>G z1)WmbW614+?*o7mcyv8EomXWbe_8bkw-U}1}a z6zkDkAjSYzL3#Juz|Wq=s5u;79!*RGZl)UgO1m5a38x+7W)D{~sHCj{!ZWFd`@1uC z@GUw~SQ|fqB<4q~M_0`ksvZ<+9xYMepOfakESojx))BGYV2(f&dY^Q7q{BX)Vx9`6)+p&54WRf z_swpo9EK-mAbLqjN(M-zqnYaU%y+P>d**-4~AmN$sdzN%RrqeE;Do{6UFs)b^hY4B!R7 zwmYibcMFt(HU&>9lGM*s^e$iYesvP-_n(2`3ooG5A;7%0s@{q6=4tF26sJ6s{2}K1 zQ%PML=OpNRW(U}U-odw^U7cmi2)YcujRIj9h-8g{ z>_js?_Ul);Edw0f+t1rcUqy5|{n8<;Z1$Vg&MY^0~7LO`3LPpZ)jc#N97t|RKV&>iix1vZ|7IwN4bCJS?X zKz)R`Ms|4|Mhd4&0AVh*EKR=BQ4p&gSJjno2P(9*)I(H7?+4Cv`-kDp%WT-7@xeK3 z#np(}t-JD1*_$LVMo!bHcSo;?dEoRl^oz)N`pvPgk>9W$tbKvxuaPgHX#i1f`{9RM z2Br1LC!X$7hIO>p5@Gx?lk9Mc+m-$G{#X${B^A>}4rn*zoQ}_B)WhMcsHlJk;$U(g ztFr)ZP}2fH7@SY@&}2#{D0s~?UJ-u#Wp@%s!e0`M$&3XDiy`KH<@ zHBFx2#<&XQq*)Es(14ta)`(FCd-qR{sQ2}lo&DrS|T$~txDO;OP)r=nRjZJGW^ zh=1+2?L*yg%>CunM_;(OjVqffQd`J_O+4HfJFA9PEm!U&PA zQ?l2@k;pRRa7&8xCyR|W!g?aA;z35gtlCn%YYP#}Q#2@S;?X7rMAswz5kr^z474g_ zTmQFHI)MDagYVgsmhDH^UwGwf&Z6DLre^U)`qdAkLrxxMc0T7MG!SFJ0@&%W87>~s zB-NwFy3Dp?q{&_bXOp20m8_vf07&vSFdPG3Jq9eH)6-L%4X{la`1YmQJO_+Du$ux# zamgvG&%LGrrq;IU4jf}ajI|i!E(CZzkkPVYW5d~q$=s$7knUwweAp{dQKQq{DI8Ga z!5w|BFAf}PUYSDWWmL!3Xt%`7&xV20-kvAXim9tc)qwgQHmg7thmrL3T7r?&Cs!4a zVeZz`sQSMfmF?=tAXX(ZA_jduAEx;fJS;mo09``jbGJwGv`B)@V%6$4Yr>y)MsAIR zOVeXw+kG2_Vx1#!c1)sx+c}T~D3u6ZC}T|EvKSJN&~$F#U=;{>ig4iK(UR8-WaZ)D ze|Om&VEPXYv0q2PyiPY^;Gw=W;h7HpdfD&F3UDMFaPn|^oIFzj|=Ze?Oi(;Y0t?y(KG$YCw^ivS_u(}RY#Wuco!sH-qelFtBd#D)n-S@j9%&` z%9z=B9Rpv}uqLky@uIQqi}(C4>)}I{-$?~OyriHY1DEyM1vr<46c-oUY&=ui(rxh( z2BL=;5MDvJAijGB`vOpX;JG4eq~WyKiU1c@($M5g^MllULg@pry+Z+OuH}RC@djKW zXwaJhD0d+64hLzR36LDP>I$!gpFo|LB?Z6}pa~X+j6=IPSwSA2mfbZu-Zw9tzk9Zo zm;ML>x-_)+T%My4o4SgImw3!lr~Y>GxmOtaomaUnslEMEz^O!~A=5v&wIxt=+&f9V zB-~&-xh?b>S<~QCG$Fb2MGz#>^aM&=MrcN zssk5hvtz8IZvz!Ubv`A+KlAhdZYe$g@y5`Q3^c}ozEJQMc9B0U+umZp$%!pC+0B~>kL|JJ31^sO5k9?2D75W7u;ZT7@g{< zJ&OI*$>7mPAV>Y(loCvJgHB|?={e8~mwK@nu^B#}^gX142o+X4Oi^Gi8LwcqyiY8h zGmXl)^hCbrywQMb(l;xzE>BMem4V|cNa4T%fdC$I2>4}y1b?9?J;{qb+{2p^l(NST ze?l3)dv?_L`r)XgG61{RvxjL1>ozNUj_pnAk$Krt$5N^dLI14eS7Di-{VTZp35l&6 z1de`9VyoDleDxGxJ3u+emFr6(40KR!=>#CXlwGc3+Gi+@uI)@6DICp$z!MZX#j)Jg z>_JSjBd+g8L&BtNfXM{h^e+HzJ1qxn(c#5<1hM0Leg7jt`P!7+0bmg?<9hXlNhm9^ zfI_W!G4y#MFp;gT!uFTvEUv7`!(IU@kn71B+o{TLQnKgZW-A<^=_^B-o}@6N-seuh zl!-(9NgS9N@?FR%F`RSFuEgfN_TMiH@!ag^O3yt(vILo1-*$b&82@@{?%9(!z6g#& zvPxYxp><5p*d1m&f|b^(3cLT&q=}ye6)~~@7P3@-4a@uzD(_PDIkW(v^3AU4n81-N(ET%B6vacG|1b0KPM8EUe_X!lk%#z1vO z|GYjN>_j^7#aULcDY{ZZNIK!b%QGAX#r%$*q1y6csaf|0EUYnf3|MgKaM0TdB2@5K zwloEG$XH|C?Tn1htl8>y2o8)XGvrY z*^Vd-!_mNA5Oc}?T7%*s*}X3jH!LbLKFJeTy5$lzoqE4@D5bE>;MZ1a@{#Pa1 zI)Oaj53&=BJN(`c2BT3f3&Rg414TPAK5D!*a}QT^CWZ;Hhuzxc$;JEuM_Bshl-^R8 zaDGRWtmH*UEjIWp82Lp;o7dfGGoI<%DA^NYD z5?gTh|201pJAH~dT#{IXB*F9UN!%s>^$Sse*d_42SHgzvw{#yhQvo#^HY;tu?bo|K z!<00_@KRjgLE&h1n*GyLb1S*?aPh}li-$j0p(FLhdq_b5fuMX-#Gd!1%CXV>`hr=ou522*4Ynz~EgJz9<;VCHS` zz*=a;@@G3!78Ero5)i;Rc|BUy2xv3Q_N0`ubu z#=Ai!@tLs6i@2xrq@Ne{s-2ElFF)?1)bCsnhL(rWTpsJgRB)hOjw`cT?!qSD_kVb~ zQyPBUz;uR^Sm%r|8H!CF;+G$Pjq@hciG;PA9`+~^PI5r8#jjC2-wKwB-JFTblaTpc z85yx}dNH;IwI~zP6^Y!araYJ+=Wew)h&NIlZbu3c&nJ4V#LmyEd3f;CbyHf@wh(}e z59azS7>_IR{nhq|6zDX*nng>%&;|Z-YqCp>a!f#-PD<40Vnl7cGjyLXuAPe%QCXJI zj8i#;=f@{b8o$jlUuc!R$avZESe!`8ZC`}>V7V|dO}~T`dukwXw5EH?V4 zuwZbw==Y##a4O1%$=-p&ki+kHs9WQxIW&R42L`(|{F#l8a19pX&%CN8Zl@ObDoK7U z+~Zwc2>DOMv$ncieEt5i<;AO;)Ash)azzXA4J(hQgxQZao81TD3lfW8s@`tTjo#*( z;9IFDu6Gjz)d5x{@eqcnH;gsbp!DVk<<~h*d~#Nd*C(M=NVc`V?>HCQZ%p+NYC}Hd zrFVC?7>RYIi%sC+J8=mkSzSM-v<%9?|FqcX;CQ&VV|8} zMP|b9thb(BvLN|I^-JIvvlnIv_}-F~N(AkDdx^Uf7vA6fMOau-@6uV#EWtJX-Oft* z1oF|ziqfKS&QOKi#9{|~pG_JZZ2snS-gS`Ej;R4>!LVaVIM`hYl|0}i>D5^w9` zz42YtK7JvOff8ueO*uat8J3U}(ESr1zkJi64!up{4rF=r_eFnD)$6Fpiwq7?3Pc+k z-@m9)3Z#MkthQ}m@{C&3G-)o+BoQ8sKD3#-jdh(tGG5fa;Dv(yKjBJu*|xYcX@) zt$kIQv64S$;;k~O!TrW|+>XY%Z=oz_l?@G|Pk-0c2~Dd(eTR&-Q-5;yPF35Y@rCi; zOrBGd1T`75c=cnAhDg8YObC9YCB$C<5n`Vr5QqZ#`1zoF&MIh@sQd5pUv|WZEr@pA zjUk)%AIwJN!{_Ej)|?3;8QIy7#W*2aj%PN65aRALEix8^GwBvf=}bYnOi$>-pz)O$hx{cJ6don?7sLYIZOCYur%z$q2^rn;90CTJ_3IbIw&B>kEB;mF%Ld zvZ9`~j);_{*T#RlfMZjIm{D?E&-nh4_{4qqoZx&{QGb`j95ag7xK9|R$ICXlQ@?l( z)99>)Y~yDFjmUZ%eF*pbMBYh=b=^^mo-I1=r9VlcZ^Y0u*j647;3H*asiN1RidpkS z=BybXW)$`!m28fnYBbawb`SoZt-@yV_RPB7wBNn|RWte$a_f5iQqchE`l?E@+sk!@ zwWnXgNttOxw&!WM5)KZlSCKjDN>3>9Q2`P8yzf2?K%yX(ptIg7pE%My!e%zSz+E=F zdk$HgTc?okXLz#DnO<(iyUUMyf2^=8c!aB&cG%_JZn+ZYg?*?Q`YJwt#m^XVDgF4> zc=NSGmR92ddGMP91=tH9&{2O z-c#WDd?4v@AVW&}(7B0)k!kiLPSEeC`=bLg&$ingLt(5qHhkWVlGf&^Zxm>dr1`KR zlnrC4H)CHkOluv8zP&;)iMMYb=Upksg(N*ScI;+?=pxKL%`|HLIeF18P%Oyt=xtDy z_`Fe)_{X_1N4##6wWPCPW+KsLUPLY8dLW z&oKTnN;1jtVB-2&|25}@ul2F=bR(`V)1EA|e#gd$k$C0BiT0@~ojY#)vc;ChZKDVR z`GX^A6w8!kmE*4_$uUxv{>Al8Vr>#i$m!p<=uuw<_QDC7Xi43V4{XayeF} zbO;)MRjB@LuJQBitm<#QpW-K>C{`{k%Zy2xsRfK&(CeyGA7_^3!bZaBDaXhqZlyAJ z1onjwttmgd7Wao$XC)bqn{~o+l6@scDv&3I8h()8jf?aj;Abk+gGvbAla?qC_gR;L z=l0m%f|d$4y?_2Vu5_URSx**_HY#q#rceQ$gIo?aP=utVrSWv%{##esn6LN~Yhw7U!R#`=WV2gw*eEt03@uNNCgk zrtIEQATs4r^mq5Xf8^_5xX39?zh@v2zuLUit&zsBC4UD932DqZH%?9c3g0m0laTq7 z6gKSh%tdK&R-qRijq4s0R{hJPeKz{s!r z(}Is)bGyAh>zO0qD`fhzpxALD0s6)CL>J{~Sqcznq;=FCBJLywcgeINp2p;`3Z{)66zta{_x-h4BjjQe8^Gz>Mo4)c;aI%mRj#aGPo)$F)htsY*?Iwy1G>o@NlnC;BB^b_TS;I9F0 zlbMrA^$ul5Es>z+%>bxQ*I-xL&De|ihq!E22B6;&sR>$n`Om)QWcT@b$>HTO+NSe1 zfscqUAr0@Ea*ci1K$F+Fr#ViYR71I2MTM3?v#2++R@hq#tw<@yGLcPB{EIXWYWX(Q zcq~s(&uybJffz2Kylu(JL+26jC?rFIq5>3e*dg2smDYy97v58&b+BW5rOkKSwQ4&s9>C%~AEn z4Qf?=)T-W+JFS(9nUr)&c)nHK|LhozcbM7m7p%r)~`oHmwF!)!7(pIu%VA+D!D&~1P8 z&&Iohjh)ciNoPCDa3z_iC`XuIqRu-sWkQ}U;5axq0I3$Z1H%k`o!SJ^_MHQPUi;1X z&~twHBrX(&@@PZKxFi%xA#o+(^Zp2vB7uqf{20#+-Ve>!g;m}OSOaQZD&rk z-a+Ow^BwAm(Z@5hH!q&Oy+OUmstk_)jroPbxlTVlg`=_AcMaJKYYRg>{&}z6p==naN zIB|!+D$0lFVI4r{M2Uq>Yu?t(*S6a0NSKfV)3c+oWmcf>Pu=M2_);hGN}+9UYhu*N z_y^Qd-RM~yY1=X5Qup+q(xfk%-|4R%vKI5WVNJO3WPbAZ_9zat*- z6aPK&|NRS)8y`6xg!pZqSiQ`y_ThJ^0?qUW0`3#nasQn{zE5;UCq({o*HyAf1kw+^ zGO6@qU9M)0UluiL`NR^c+x#!Q0Y-idrMjj=iD%iBI&N2D^jYG)_SDot^!b@}wu4YW zBXPB>`F~?nsFYG!sI>iLw%+=q{My2c<3h9tq0qs$$m!82s=fa{TIN<>UAgD5^`_@? z@wCCcGS+cdBzz`597D0?Gt!HCo)Yo)qqcpe^7XQV!=AW<^6OJop{a?6Dx$1 z1qj zj~3!Rvw9nILI$tV)AgrYm-^P~5^B`Wb;ISZGVO4VIR(*L16etT@{3zSJRKH77{KC?M|?boZkplK7gN#2&*j$Ff#i;woQSV4+&YB&RT488>jP#*U45B* zTS9jrL`;Qy&i{8QpM`rX9i7-j88_fmyj#Pu^1kx2P3OQTMxShfdL$;c^fvD9fBA2k zY$L}ag9c#)vB<7hjOh8de>;92yG|jtA88xW$bDI8{mcM$dUqgut7CQj$Qea8w=z78 z9DB&bSKK8>(9~z z5Tllv?**DMEDP~;Qs-d8Mp12}6ie<~zGRo%$=L5dp6k5VoDHzJvq-5!_-|O9U9fLG z9$6!W`e}M&@njKaLs)3M!>N*z54ZSHv+zXy@Vb{Pe7v02bVPmqQhVy?(L718(wicY z5z9=JhCQ+(%WUO4ew~6p7koN0-V}taq&`PM3V9wa;K9Q4(fi3gReF0>9Ot3cU@{-M zD0wfwwar-sJaWU27(Vy#6Q6vNL#ZE%2+?qn5W>&`P zbY_g9bUcfej_Dvp-^3-XRWi(RsM3f5gPd46*OFo z8g5zel}D+;f4sYmQxb^pCrW|^?)}cPPuLM$*x~Pa{(<~QgOSmngMR-ETgZQ7czeX@ z-apg4c`5IW;cWU`fZwly>g)jKG~fnnKV#K=vK82}rNw}K*e~cFU+Cf@rjNO6Ku>-U z0fh}|S?FFIuIU*50Q5k^v-*oy*2jUtthSG=(!%Q$ftAPYQL*)Pv;3B5hDZSBrYrCa zaQ_Llvm}=jYHDgORSMmwmKv*%^WAIf8V8U{mD)i+tWQ3a0VyWOS{oAgvWGWTruc2O z*{F-RSK$)DWI8Q4^y`gixEQa^{a9(Ad6ep?96-cE)Lm;9i;%f!3-_s2m=Imo=ZpMYw9)KFPqAyJS}`T zZhlYMet?LTl{F_t@d|aKrhf^sFqORQfMK>8(jrHTceWpL&5@#)d_9G!PXLLyCyZcO z?>Efbq#rGYp%R@{fjoePz)GkIUY^E;Vm$)>n;;?0Zq_GorXwi%dJIaD;6`>Z>9yjt zDe}QxvOx}T$D6oWU@Pt1sKG9-E^zmA@cgXTy8rS`n}MLy>MAZow#znq>3{4uiR}}4_z~=6TlaOAv9YR9opkpapc+B5<4X$!V!OsR-wcgl?F5%62_t?%Sp;5&X-nSdQ*yu2hd z1Z)E;TN1T=qQbhfDQ=pTo$Tz!!g9rW7af!})HkJFE7c9<7*`)~>$f+Sa9ClxI+NTMWDl zk9mHB@b!kT%=5#9n`B%>9YVNJCw4}JF(+NQ`l?hoKk1Q zdl5r;X&yj&pN>I~Jp+%ubs6UxoX`+Vu8&$M0Ap>uu_%7Bb;cQO8~yy2atAv|>XsKA zEm}B?^6#CMsa#ReN#~1q@02bfsz~wqypC_D*Z{cseA(3YAo1K!JFlH&{tT2uNaHnP zUQ!=`K_7Sx4rf353b%yRom)J?(X$oR?4TEGG23|h zV|=Rkr)vjO2lz(Xh`Xk8#%1TTl$6mP6DSXq?KmYCG$tW#U#ciB;hp*%n;zWa?#iI` zv%_eo({BTYw~U# z6f7K$uV#&gj%wNGGPIyfz}DCL^kam#qEA@ZF4oI$;bQz}ZQ7}0Szp51D#6g577W)0 zLU}l0Pzn=$R;uDv86?#-_GTUjXdP#c40FZ{S|*x0yNOwc{5%VP9QWD>^;4F zM!vs927#0;{F~gMfz+!_g>tE0Qx9g!E2cMt_@R^eAW$rTtcR;?@9t&13Bm;=Yp_V$ zQm@?k+joxqUPEov zoR9q+kjg6%*%NU=lfRA=He}e?V2qt0DK2)Wl$s!%Ja$a!niQXo|WoKQR%0y!dUJ8M^9Daj~(c*uK#bC6vyN-W4J4sTU{#P Np;vvrd3Gf%>pvq+J|qAD From a43515deb1d834397f151a30a5107f3e73f327b2 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 27 Jan 2019 20:54:48 +0100 Subject: [PATCH 08/18] add hover-enabled list of secondary page actions --- templates/widgets/asidenav.lucius | 4 +- templates/widgets/navbar.lucius | 2 +- templates/widgets/pageactionprime.hamlet | 4 +- templates/widgets/pageactionprime.lucius | 64 ++++++++++++++++++------ 4 files changed, 55 insertions(+), 19 deletions(-) diff --git a/templates/widgets/asidenav.lucius b/templates/widgets/asidenav.lucius index 63a646e9a..c37796da4 100644 --- a/templates/widgets/asidenav.lucius +++ b/templates/widgets/asidenav.lucius @@ -216,7 +216,7 @@ } /* small list-item-padding for medium to large screens */ -@media (min-width: 1024px) { +@media (min-width: 1025px) { .asidenav__list-item { padding-left: 10px; @@ -297,7 +297,7 @@ } /* TABLET */ -@media (min-width: 425px) and (max-width: 768px) { +@media (min-width: 426px) and (max-width: 768px) { .main__aside { width: var(--asidenav-width-md, 50px); diff --git a/templates/widgets/navbar.lucius b/templates/widgets/navbar.lucius index 71f897af4..89c339c61 100644 --- a/templates/widgets/navbar.lucius +++ b/templates/widgets/navbar.lucius @@ -19,7 +19,7 @@ } } -@media (min-width: 1024px) { +@media (min-width: 1025px) { .navbar-shadow { display: none; diff --git a/templates/widgets/pageactionprime.hamlet b/templates/widgets/pageactionprime.hamlet index c9dd7dc02..dc826db15 100644 --- a/templates/widgets/pageactionprime.hamlet +++ b/templates/widgets/pageactionprime.hamlet @@ -10,8 +10,8 @@ $if hasPageActions
_{SomeMessage menuItemLabel} $of _ +
- Weitere Punkte
$forall (MenuItem{menuItemLabel, menuItemType, menuItemModal}, menuIdent, route) <- menuTypes $case menuItemType @@ -19,5 +19,5 @@ $if hasPageActions
$if menuItemModal
- _{SomeMessage menuItemLabel} + _{SomeMessage menuItemLabel} $of _ diff --git a/templates/widgets/pageactionprime.lucius b/templates/widgets/pageactionprime.lucius index 30d821fd9..3d375e2a6 100644 --- a/templates/widgets/pageactionprime.lucius +++ b/templates/widgets/pageactionprime.lucius @@ -1,16 +1,24 @@ .pagenav { display: flex; justify-content: space-between; + align-items: flex-end; } .pagenav-secondary { - float: right; position: relative; - flex-basis: 50px; - height: 50px; - width: 50px; overflow: visible; + &::after { + content: '\2807'; + display: inline-block; + font-size: 25px; + padding: 4px 5px 2px 10px; + width: 40px; + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); + box-sizing: border-box; + text-align: center; + } + &:hover { .pagenav-secondary__list { animation: pagenav-fade-in 200ms ease-in-out; @@ -32,14 +40,8 @@ top: 0; width: 250px; text-align: right; - padding: 7px 13px; background-color: white; - box-shadow: 0 0 6px 3px var(--color-grey-light) -} - -.page-nav-prime { - margin: 10px 0 20px; - background-color: var(--color-lightwhite); + box-shadow: 0 0 6px 3px var(--color-grey-light); } .pagenav__list-item { @@ -51,10 +53,44 @@ } .pagenav__list-item--secondary { - display: block; + display: flex; margin: 0; + padding: 0; + box-shadow: none; - +.pagenav__list-item--secondary { - margin-top: 10px; + &:hover { + background-color: var(--color-grey-light); + } +} + +.pagenav__link-wrapper--secondary { + flex: 1; + padding: 10px 10px 15px; +} + +@media (max-width: 768px) { + + .pagenav { + flex-direction: column; + } + + .pagenav-secondary { + float: none; + flex-basis: auto; + height: initial; + width: initial; + overflow: visible; + margin-top: 20px; + + &::after { + content: none; + } + } + + .pagenav-secondary__list { + display: block; + position: relative; + width: initial; + text-align: initial; } } From c15572c9fc0c04d3d877085052956e478f1387dc Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 27 Jan 2019 21:00:28 +0100 Subject: [PATCH 09/18] a11y fix for primary page actions --- templates/widgets/pageactionprime.lucius | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/templates/widgets/pageactionprime.lucius b/templates/widgets/pageactionprime.lucius index 3d375e2a6..8f7cb9eca 100644 --- a/templates/widgets/pageactionprime.lucius +++ b/templates/widgets/pageactionprime.lucius @@ -45,25 +45,24 @@ } .pagenav__list-item { + flex: 1; position: relative; - display: inline-block; - padding: 7px 10px; + display: inline-flex; box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); margin: 10px 10px 0 0; } .pagenav__list-item--secondary { display: flex; - margin: 0; - padding: 0; box-shadow: none; + margin: 0; &:hover { background-color: var(--color-grey-light); } } -.pagenav__link-wrapper--secondary { +.pagenav__link-wrapper { flex: 1; padding: 10px 10px 15px; } From 4e17a36933dab64a07ead039b80445112afcbc70 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 27 Jan 2019 21:11:44 +0100 Subject: [PATCH 10/18] responsiveness fix for secondary page actions --- templates/widgets/pageactionprime.lucius | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/templates/widgets/pageactionprime.lucius b/templates/widgets/pageactionprime.lucius index 8f7cb9eca..edd4cbf6f 100644 --- a/templates/widgets/pageactionprime.lucius +++ b/templates/widgets/pageactionprime.lucius @@ -1,17 +1,18 @@ .pagenav { display: flex; justify-content: space-between; - align-items: flex-end; + align-items: flex-start; } .pagenav-secondary { position: relative; overflow: visible; + padding-top: 10px; &::after { content: '\2807'; display: inline-block; - font-size: 25px; + font-size: 31px; padding: 4px 5px 2px 10px; width: 40px; box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); @@ -74,12 +75,8 @@ } .pagenav-secondary { - float: none; - flex-basis: auto; - height: initial; - width: initial; - overflow: visible; margin-top: 20px; + width: 100%; &::after { content: none; From 8ee3d723c70f7531778daac62ae1b0b83020c4b9 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Mon, 28 Jan 2019 13:26:46 +0100 Subject: [PATCH 11/18] Add check to only show secondary pageactions when needed Rename pageactionprime.* -> pageaction.* --- src/Foundation.hs | 21 ++++++++++++------- templates/default-layout.hamlet | 6 +++--- ...geactionprime.hamlet => pageaction.hamlet} | 6 +++--- ...geactionprime.julius => pageaction.julius} | 0 ...geactionprime.lucius => pageaction.lucius} | 0 5 files changed, 19 insertions(+), 14 deletions(-) rename templates/widgets/{pageactionprime.hamlet => pageaction.hamlet} (91%) rename templates/widgets/{pageactionprime.julius => pageaction.julius} (100%) rename templates/widgets/{pageactionprime.lucius => pageaction.lucius} (100%) diff --git a/src/Foundation.hs b/src/Foundation.hs index 94287ba49..aa1c0657d 100644 --- a/src/Foundation.hs +++ b/src/Foundation.hs @@ -253,6 +253,11 @@ uniworxMessages = UniWorXMessages . map SomeMessage data MenuType = NavbarAside | NavbarRight | NavbarSecondary | PageActionPrime | PageActionSecondary | Footer deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic) +instance Universe MenuType +instance Finite MenuType + +makePrisms ''MenuType + data MenuItem = MenuItem { menuItemLabel :: UniWorXMessage , menuItemIcon :: Maybe Text -- currently from: https://fontawesome.com/icons?d=gallery @@ -262,6 +267,8 @@ data MenuItem = MenuItem , menuItemType :: MenuType } +makeLenses_ ''MenuItem + instance RedirectUrl UniWorX MenuItem where toTextUrl MenuItem{..} = toTextUrl menuItemRoute instance HasRoute UniWorX MenuItem where @@ -932,15 +939,13 @@ siteLayout headingOverride widget = do contentHeadline = (toWidget <$> headingOverride) <|> (pageHeading =<< mcurrentRoute) breadcrumbsWgt :: Widget breadcrumbsWgt = $(widgetFile "widgets/breadcrumbs") - pageactionprime :: Widget - pageactionprime = $(widgetFile "widgets/pageactionprime") -- TODO: rename, since it also shows secondary pageActions now + pageaction :: Widget + pageaction = $(widgetFile "widgets/pageaction") -- functions to determine if there are page-actions (primary or secondary) - isPageAction :: MenuType -> Bool - isPageAction PageActionPrime = True - isPageAction PageActionSecondary = True - isPageAction _ = False - hasPageActions :: Bool - hasPageActions = any (isPageAction . menuItemType . view _1) menuTypes + hasPageActions, hasSecondaryPageActions, hasPrimaryPageActions :: Bool + hasPageActions = hasPrimaryPageActions || hasSecondaryPageActions + hasSecondaryPageActions = any (is _PageActionSecondary) $ toListOf (traverse . _1 . _menuItemType) menuTypes + hasPrimaryPageActions = any (is _PageActionPrime) $ toListOf (traverse . _1 . _menuItemType) menuTypes pc <- widgetToPageContent $ do addStylesheetRemote "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800,900|Roboto:300,400,600" diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet index deed85785..bf936affd 100644 --- a/templates/default-layout.hamlet +++ b/templates/default-layout.hamlet @@ -22,9 +22,9 @@ $if not isModal #{snd back} --> ^{headline} - $if not isModal - - ^{pageactionprime} + $if not isModal && hasPageActions + + ^{pageaction} ^{widget} diff --git a/templates/widgets/pageactionprime.hamlet b/templates/widgets/pageaction.hamlet similarity index 91% rename from templates/widgets/pageactionprime.hamlet rename to templates/widgets/pageaction.hamlet index dc826db15..b7dcfc86e 100644 --- a/templates/widgets/pageactionprime.hamlet +++ b/templates/widgets/pageaction.hamlet @@ -1,6 +1,6 @@ $newline never -$if hasPageActions -
+
+ $if hasPrimaryPageActions
$forall (MenuItem{menuItemLabel, menuItemType, menuItemModal}, menuIdent, route) <- menuTypes $case menuItemType @@ -10,7 +10,7 @@ $if hasPageActions
_{SomeMessage menuItemLabel} $of _ - + $if hasSecondaryPageActions
$forall (MenuItem{menuItemLabel, menuItemType, menuItemModal}, menuIdent, route) <- menuTypes diff --git a/templates/widgets/pageactionprime.julius b/templates/widgets/pageaction.julius similarity index 100% rename from templates/widgets/pageactionprime.julius rename to templates/widgets/pageaction.julius diff --git a/templates/widgets/pageactionprime.lucius b/templates/widgets/pageaction.lucius similarity index 100% rename from templates/widgets/pageactionprime.lucius rename to templates/widgets/pageaction.lucius From d41c703684f86c8b9bc1b12b7c7988eea864a45f Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 3 Feb 2019 21:16:53 +0100 Subject: [PATCH 12/18] refined hover effects for page actions --- templates/widgets/pageaction.lucius | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/templates/widgets/pageaction.lucius b/templates/widgets/pageaction.lucius index edd4cbf6f..c09da8162 100644 --- a/templates/widgets/pageaction.lucius +++ b/templates/widgets/pageaction.lucius @@ -22,23 +22,16 @@ &:hover { .pagenav-secondary__list { - animation: pagenav-fade-in 200ms ease-in-out; display: block; } } } -@keyframes pagenav-fade-in { - from { - opacity: 0; - } -} - .pagenav-secondary__list { position: absolute; display: none; right: 0; - top: 0; + top: 10px; width: 250px; text-align: right; background-color: white; @@ -66,6 +59,10 @@ .pagenav__link-wrapper { flex: 1; padding: 10px 10px 15px; + + &:hover { + background-color: var(--color-grey-light); + } } @media (max-width: 768px) { From d217ac881d1038677bb5f66c22304a21de80f856 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 3 Feb 2019 21:22:14 +0100 Subject: [PATCH 13/18] remove margin-top from pageaction-secondaries on small screens --- templates/widgets/pageaction.lucius | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/widgets/pageaction.lucius b/templates/widgets/pageaction.lucius index c09da8162..0e1571490 100644 --- a/templates/widgets/pageaction.lucius +++ b/templates/widgets/pageaction.lucius @@ -72,7 +72,6 @@ } .pagenav-secondary { - margin-top: 20px; width: 100%; &::after { From 572e8a7036c95d76913bb3204d41afff3ce14171 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Mon, 4 Feb 2019 22:15:59 +0100 Subject: [PATCH 14/18] asidenav boxes with dark border between them --- templates/widgets/asidenav.lucius | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/widgets/asidenav.lucius b/templates/widgets/asidenav.lucius index c37796da4..4086d946e 100644 --- a/templates/widgets/asidenav.lucius +++ b/templates/widgets/asidenav.lucius @@ -89,7 +89,7 @@ transition: all .2s ease; padding: 30px 13px 10px; margin: 0; - border-bottom: 1px solid var(--color-lightwhite); + border-bottom: 1px solid var(--color-grey); &.js-show-hide__toggle { From c5193fbb5519a7e45c28e4daafebbe3c71214880 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Fri, 8 Feb 2019 21:45:54 +0100 Subject: [PATCH 15/18] Secondary PageActions right-align even if no Primary PageActions --- templates/widgets/pageaction.lucius | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/widgets/pageaction.lucius b/templates/widgets/pageaction.lucius index 0e1571490..9cda8afc9 100644 --- a/templates/widgets/pageaction.lucius +++ b/templates/widgets/pageaction.lucius @@ -8,6 +8,7 @@ position: relative; overflow: visible; padding-top: 10px; + margin-left: auto; &::after { content: '\2807'; From db780ecf000eff31586ebf16e057d79d7629aa48 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Fri, 8 Feb 2019 21:47:39 +0100 Subject: [PATCH 16/18] less bottom padding for primary pageactions --- templates/widgets/pageaction.lucius | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/widgets/pageaction.lucius b/templates/widgets/pageaction.lucius index 9cda8afc9..c06e9404c 100644 --- a/templates/widgets/pageaction.lucius +++ b/templates/widgets/pageaction.lucius @@ -59,7 +59,7 @@ .pagenav__link-wrapper { flex: 1; - padding: 10px 10px 15px; + padding: 10px 10px 12px; &:hover { background-color: var(--color-grey-light); From b2ffb2f0c32f091849d45d102c4cbf4daeed27cb Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Fri, 8 Feb 2019 22:07:01 +0100 Subject: [PATCH 17/18] make hover menu for SecondaryPageActions not right-aligned --- templates/widgets/pageaction.lucius | 89 ++++++++++++----------------- 1 file changed, 36 insertions(+), 53 deletions(-) diff --git a/templates/widgets/pageaction.lucius b/templates/widgets/pageaction.lucius index c06e9404c..923c8ceee 100644 --- a/templates/widgets/pageaction.lucius +++ b/templates/widgets/pageaction.lucius @@ -1,44 +1,8 @@ .pagenav { display: flex; - justify-content: space-between; align-items: flex-start; } -.pagenav-secondary { - position: relative; - overflow: visible; - padding-top: 10px; - margin-left: auto; - - &::after { - content: '\2807'; - display: inline-block; - font-size: 31px; - padding: 4px 5px 2px 10px; - width: 40px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); - box-sizing: border-box; - text-align: center; - } - - &:hover { - .pagenav-secondary__list { - display: block; - } - } -} - -.pagenav-secondary__list { - position: absolute; - display: none; - right: 0; - top: 10px; - width: 250px; - text-align: right; - background-color: white; - box-shadow: 0 0 6px 3px var(--color-grey-light); -} - .pagenav__list-item { flex: 1; position: relative; @@ -47,16 +11,6 @@ margin: 10px 10px 0 0; } -.pagenav__list-item--secondary { - display: flex; - box-shadow: none; - margin: 0; - - &:hover { - background-color: var(--color-grey-light); - } -} - .pagenav__link-wrapper { flex: 1; padding: 10px 10px 12px; @@ -66,24 +20,53 @@ } } -@media (max-width: 768px) { +@media (max-width: 1024px) { .pagenav { flex-direction: column; } +} +@media (min-width: 1025px) { .pagenav-secondary { - width: 100%; + position: relative; + overflow: visible; + padding-top: 10px; &::after { - content: none; + content: '\2026'; + display: inline-block; + padding: 10px 10px 12px; + width: 40px; + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.6); + box-sizing: border-box; + text-align: center; + } + + &:hover { + .pagenav-secondary__list { + display: block; + } } } .pagenav-secondary__list { - display: block; - position: relative; - width: initial; - text-align: initial; + position: absolute; + display: none; + left: 0; + top: 10px; + width: 250px; + background-color: white; + box-shadow: 0 0 6px 3px var(--color-grey-light); + } + + .pagenav__list-item--secondary { + display: flex; + box-shadow: none; + margin: 0; + + &:hover { + background-color: var(--color-grey-light); + } } } From 8b8f0cd457429cb8b708c71d00b342a92e45aba5 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Fri, 8 Feb 2019 22:28:13 +0100 Subject: [PATCH 18/18] page actions not underlined because buttons already --- templates/widgets/pageaction.lucius | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/widgets/pageaction.lucius b/templates/widgets/pageaction.lucius index 923c8ceee..29977228d 100644 --- a/templates/widgets/pageaction.lucius +++ b/templates/widgets/pageaction.lucius @@ -14,6 +14,7 @@ .pagenav__link-wrapper { flex: 1; padding: 10px 10px 12px; + text-decoration: none !important; &:hover { background-color: var(--color-grey-light);