From acf5c2e46085bfbb56f83cb73b98410eca183639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A9=B9=E5=AE=87=E8=88=AA?= <14091325+zhan-yu-hang@user.noreply.gitee.com> Date: Sun, 3 Nov 2024 13:27:39 +0800 Subject: [PATCH] zy --- .../20241028-flex\345\270\203\345\261\200.md" | 385 ++++++++++++++++++ ...210\252\345\233\276 2024-11-03 132444.png" | Bin 0 -> 118418 bytes 2 files changed, 385 insertions(+) create mode 100644 "\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" create mode 100644 "\350\251\271\345\256\207\350\210\252/images/\345\261\217\345\271\225\346\210\252\345\233\276 2024-11-03 132444.png" diff --git "a/\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" "b/\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" new file mode 100644 index 0000000..5780469 --- /dev/null +++ "b/\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" @@ -0,0 +1,385 @@ +## flex布局 + +给父容器加一个 `display: flex`属性 + +子元素们会**在水平方向上,从左至右排列** + +### flex 布局的优势 + +1、**flex 布局的子元素不会脱离文档流** + +2、**flex 是一种现代的布局方式,是 W3C 第一次提供真正用于布局的 CSS 规范**。 flex 非常提供了丰富的属性,非常灵活,让布局的实现更佳多样化,且方便易用。 + +### 概念:弹性盒子、子元素 + +- **弹性盒子**:指的是使用 `display:flex` 或 `display:inline-flex` 声明的**父容器**。 + +- **子元素/弹性元素**:指的是父容器里面的子元素们(父容器被声明为 flex 盒子的情况下)。 + +### 概念:主轴和侧轴 + +- 主轴:flex容器的主轴,默认是水平方向,从左向右。 + +- 侧轴:与主轴垂直的轴称作侧轴,默认是垂直方向,从上往下。 + +PS:主轴和侧轴并不是固定不变的,可以通过 `flex-direction` 更换方向 + +## 弹性盒子 + +### 声明定义 + +使用 `display:flex` 或 `display:inline-flex` 声明一个**父容器**为弹性盒子。此时,这个父容器里的子元素们,会遵循弹性布局。 + +备注:一般是用 `display:flex`这个属性。`display:inline-flex`用得较少。 + +### flex-direction 属性 + +`flex-direction`:用于设置盒子中**子元素**的排列方向。属性值可以是: + +| 属性值 | 描述 | +|:-------------|:-------------| +| row | 从左到右水平排列子元素(默认值) | +|column|从上到下垂直排列子元素| +| row-reverse |从右向左排列子元素 | +|column-reverse|从下到上垂直排列子元素| + +备注:如果我们不给父容器写`flex-direction`这个属性,那么,子元素默认就是从左到右排列的。 + +### flex-wrap 属性 + +`flex-wrap`:控制子元素溢出时的换行处理。 + +### justify-content 属性 + +`justify-content`:控制子元素在主轴上的排列方式。 + +## 弹性元素 + +### justify-content 属性 + +- `justify-content: flex-start;` 设置子元素在**主轴上的对齐方式**。属性值可以是: + - `flex-start` 从主轴的起点对齐(默认值) + - `flex-end` 从主轴的终点对齐 + - `center` 居中对齐 + - `space-around` 在父盒子里平分 + - `space-between` 两端对齐 平分 + +### align-items 属性 + +`align-items`:设置子元素在**侧轴上的对齐方式**。属性值可以是: + - `flex-start` 从侧轴开始的方向对齐 + - `flex-end` 从侧轴结束的方向对齐 + - `baseline` 基线 默认同flex-start + - `center` 中间对齐 + - `stretch` 拉伸 + +### `flex`属性:设置子盒子的权重 + +### 练习 + +效果: + + + +代码: +```html + + + +
+ + +uFot$SM2nx>*mk`mUFG`hA9|cJ&_lVC zMru(C(kZPD^FY>ph@lo4sFZX8x~@PM)9X>_uGz)y3cO#NY?dV3*3nXGNrm#a40cw; zxTcAd6qybJ*WFbTD(#)|JYwY`z@P@cyaBvj2AzT3s+qa~QT zNKwy?%|j7SrYa=fV_{U7E}=r!GV&@_@)!06ii%p8uF}C+L6(j&K_N~Rho`$&cb+At zrEqwX4usrSa|_8sgm7SL9|xvmTqh^8J*^;MB$>IRt2*3x%;kf%<9HhM-p$tNcXdaR z>(DVZu2W%cmGuHLuG@)mBg2Fn5_7fs$R>4*j5XSDP)IOSx}(A$c@7$TyV+(oS8wQd z)UgdFiF*wkDEf$|Bt@u~(%~|K3{`A^w %}{^1|V~wJx=AaU!JauvVjV*6z<#@G(|&BD;MISLz6#ZQInTGbH%;G zOtnd3wCq;79HGqew)JY=F6NoGPqnt;<=d-U-4s oX& zG4`=o?p5*SA56Q_?K99- |H+h<>>l4k?1+W >KVd)DNYKXVaAbAr^Yyem}?x7-EH{7>!(_Yt|PWABTQ7F7;x>W!g_WP+l zhTQQWPNo`OC#1A$yak2wRdR#@?6avc%bEGny*L$+{gv;>1Z-r?A>}9#3iqN=!%)5) z%kRlh5U=-@0hyIJLv$WO=Gno@fp)z+<&q&4RK(?DJM@lzJmT|HE^#HweZucV6QCah z#xjvKNRH$qd1k;vLuGAT5y2l|mV*4T%axOji((#Iope+Wnd$1eVBC)y91IzLww7_T zO$FM5Os5ArIIsDoEM5H5g#J!kY;&=x;TCO5LxS7Z7n;s!$aB{CSwVvfI_5*0TZx*9 zeB$Ri524gMp{TI{8ll1<@Eo&-7&bdOy^}UUwe-f9A1h;LsbaMlUV&_v;56lK-r2F- zUU&pgPf!S9FM4sTNE-9m;HhCV1{caJjPCX1m5Qq}K5YLQL^5~;Q#)N^fXOQ}JN7z3 zUz3VvW8H0J_4=t+zdS>p9ADro+$}(A(I7%Dxl~pdGK%1#f7xg)S$jSsOf?tmSMN&W zY4C6gm}U?4At)~exnBE0Oh7Z(oS;ijR?^u-6qj$RDdNpef|+YWpvi+(RW8*?vTKAQ za6Tqh6Cf!GPxYp4ua0$E#CPFFT~$n710aH<1+v|ODY(N?T95N{j#tU6z@{Db&-F~Ss7H=m2WxZ& zj_srwtyI*bnGz!A`r#si7?EJ)3iV|na4W{y{s-2d3F5o88-Tx=11T5wdCSE|!p7^Y zWjTt(ayN~4v})$loR~aF8>20^#w8mTchmHnK4P&I`Yi ? qRvyqVprolfj!L$?t?|0^>Rr3E-K{-N3@2g_(A=8|N1np0=T zLnUk=blE_p0EVqe-Y{2~Q!aLT(#d8BDFu)UODgi`p=47kWdT*~Zj0^6xCGsPLFt5r z&{h;jm6ITQP|xM^D>JYV)pbG*8*g88k#rwX@nZ^*xrRQVP^8C+p$V9sBSX9WQ%AFa z*>IHe{f{D`&5$6u71cqElfXE(=lM8>G$Lv!>`+7n3fsE*#l&WWk=KpmCisXko11r_ zoERsb%nTAhU^OXmG#QrTwjCU*N{$yy6s&c!lHA$XLjEL6FKE(waRW7O^6vG11nxhM zTF^7=)kN5uOhWa%j>Qrun&=>dz~3aUR|)NU#`Sc`2c-%=$06C{NFG|JyVC=w(K+k8 z(84BT*3)9uF%~-}(cwuwi>+U=+n!Gu?Sq9{1KQxvSy|0gmozj8cTY1urFKLtD;y|L z`|-Z!D0b0U*7CioTpkj#`GiN@jD{sW%r2gf>y&|NLN-l}=CxKv(G__j)BF@-`pN!@ z{1~Ad^nDH+#&BLvcK(1UMf82GW^(O#h%}}iiOc}pK+5uD1*SYosiwXUj`^ZDjMu<_ z#OgHvXfv!ZmMAzKOIsT#uufOvS0CP5Nh9t*8w1A4k2%PH++8B=tm1s^76{;p+N0y| z`lm5S-Jhf*&b9=dtTq!2cIK2k!bJ)7g-OU+*XPLCOcm8y>Oz;OVNwC#Dl%6cw#uT+ zI`w8%F4SKeUwA?yrkzUWQdVuED0_zQR?w*ZG?rX9mn4>t5X*%Nc|DD6N5vy*pYLee zd;^~fS99i#EqLI?oO31rl$(P0h?S!j5=~26Hy64oa$>eKh}t<_x9$Hl-s**Vrnye9 zMWopOQedBJe sI^-FMntOvQ7#vABXsat044QkvbLP0s VJ@v~}-L5Jd|qs{F?K@nbcVk$Mb&q6)(( zR5@e!< LHIxLlQ(AtiRB%z5$MsGwwRe|(ktR~q*m(0azo^iI1D&NB=aBTbO^mOHh{qB; z@GksNDYB0WkOrKi_|}>B$gW#<6f3|w469mv+%oH(dpXE-&8nhM-5lOCcc&AxD5{Wg zVrO7D?RI64O=u&bznkk#mF13}MLKv13+hCA^%;%-3EeE_T*Zi!QGn&^^3+V$y$w!k ztof4^Fb}fS^ =1&t!Fpx6J z@5FB0xRY+CJWt^idKb}l_?x>5l!h)`KNe-5ti$KrjVj%^}$ws{|w@Z~JwKveyF2q`U%ltYnsMw`* z*Xl=9u!;WpIqZ0@O^6Pj@;IKFeD|ccjp1sGTTPZ>W=ze>FtME+TzZtex>zd9g~|*? zh0+d(i`G-l-3ZrQu$d+=R@ RI$hc@Q*;dS3mkUko2V$8 zO;Thn%&dbY`D$3yfbvqGuGNleP%F~+rt1xUB2TW~J;UJlYbQ|piCk%isq3iEGx|QL zevb-n>#x!5tGnzrE$NBxL)cz>PK&o{mSEKHDrc1rj^i#6jvk8#SDuSZ`EA}dQc0bG zqlRxHi*yFK!33fp2_n6?k73XQ#ZN_FX__g`p@#S7%(scGkLa@(`^2CNq{Q#2z?Q+H zuCF*T-wHI&$-a`d9XaJ(h n4i<#!iAE164Afbdh5dc#0 KK~Yb+|G+NKCn-Iby?zHOKZ1A<};I zLK;R1gPo;IuZV@|*Ckg-h4HfL0&QnoUq?KbSoqA#c12;M9f7?oC>6?hmd~Og=+72% z2>*|-caLl8%+|;2p_Oxvm9%wQP-D{8@iu}$kxPIib!_XYj?&gMqjHN96>Wq7yAeW2 zQisv#2%%oeoy68Ebp#?Jmq19QXd)646(v9d0Yb8YkOUG)NOpGiZ|hvo_ngn~Z$4qK zcdhmA_uXqf&$ISu(nEGD#ZC*@WLp)1H<1+|Ii8(Xy)cIjKksX*Z_X?Z{RHo9KR~hU zH=UNwcKkWr`$f9WwX!Ka0PG{VNMb&GRi0AcnV-fMb}sTpn>$PA*5C|3JNh0WCMA~J z-n{t&*_2Pwp;)X$Zvx<}yTS{d%n1<{PXR025~|fKA+_3_(l1ff*g9%;$nAP$p%$r0 ze`$TZR`U(cSmcOxxALoL(^&b>vNju1E4^6>q^Az6n4h_jTleVbkZ^6RDZiXLusWRx zolv{4QLGssqW;E8QWeQ9Te3%_AH$s;h|BgRYnCvI$>$u5uXGjTw}GxUHc X`U3p7?Y2M=w>p8~ z`m7G9PM=NYJ@X{fDjn%H@u~i81G9eYh+62uyd?eAGkwQJWJ(6NAO6+)8T@$^+gXQ5 z#R%n*4T-kt!_AW&(>^@636RgUL)?`*P@p<<9YQ4jN_W#foX9Vk<~$><=x5t^YMt!y zN=={lYJ>;?A(iI)ok?UNq7iD7spu?+=_+?fZHV(8>S)$!7a2);2vgqqqp*?xw;Z8{ zm`fXwXK2OMCL$cK$sTAbapJm{V(BSqoa3X2yidGxqGnG|_6ThAJM4Mo?6Wc?#1+&l zj!vsF#8XRLRf{gPLLyM~kzLiU6P(8t8nJo`g`CIHeP IJNZ6yU`slucRId=b%Hx4=GII|hh;o<@||A`sn1^)Dk4mkS6k|- z4ZOdvs~Y1mj&7W&-qQmX!pjg};#z9eJCaQwd%f({jq&C-a|0aOo>DC8Z7&t>_}M1A zZHR|Sc|b#;&&5^SefUMU=P-pPqi^&a-)HJ^oi#Mw 73I`*H&}u)$XNu;0prPPpoY*#?FsVF*bU5| z9i^E_>-;w;!tt}M-zYWT$A<-G1Wf3_OK!fn1bkzrVFQ?aKzIVeeWPqPg`@Qw0585k zkhP8%Ql5l@Yc^>e)kB(rR$mF3?VdRx_0A-Z`KldPrJaVq=)$-Q>s&d?o)0tv!ySAC zuH}#+#YMh1Quv&Z$v`2;Wd^H;aF0!_i~EeTn;$sg6T)-(!;!ADV)+ZHrlF!c2y8!h zLwtOnbVqi>0YU=YbhM~2>V|l81y$B4v7wmH?suF?o|VruFAC5 Tj) eCY7Ym+giLbwzy>Q}0h z?-9-e!d<2~6G;$=9w*g63j0U41aV^@f?I}h5v>r}S`*bM5N%Md1O*CL_)A}xvD3C? z@N26KocN=43M2YCGSbM*v}w`ntX>yrS_9}Kc;S5UE4O(Fnu`AT(gOX6sm>CjBGzpH z&O3muH&{P@!#?;6XOE&FW#qc}1n?F}DpBSt+3}%Y ~I0)x~9` z5h;7nSgW!J1t@%Cb`@|Eh#$dnar56b;%pXJ#y*{-NEZ?^3Zo8EM-hpv9Z^F9LQ%Fd zGPsZNy<>s*n4q!ju#`vdnIN3lUwQE|!MWBf*i2}Nr {hOi99jYBUV)+#|-Sq$<4k4p> 9C$H9-}JF1=~UsX2h4|*DlMT!>Ha1=gB>q+>Z&;K7; zFZ*xwdi17~(c;WUSL`x;KqaDRtP;l$dhx(IA=`9s!KRCc?eXLCCNK9lPXGjt{?b zzKJvi5>%yE(gSG!`HyF(Mhqtfb05(x|J-j3B&EmgbrQ2=HEP?V0)@_zfBx^O8~Qy& zQQqjA{|3;N@QN1md^QB|#!}6Gv}(M^X4^ju;W>ITZB`bs-sc_OPg#3_eHCIoZg#o` zy+p0j^^4DE%acNk3QbYeR5!B^PK+a==^2zE59x~po~a`_2|~oSG^_WzDIZh!eDj~A zO#U-YV2i#be1NzeT;uQgm}UA<&}Iq5P^&pJ3V5mSsA=pw^P`q|0Jk_~3LA)Ar@>ai z*DwX$<40S_A#FajnP_M&e-~Iv>Q`-$>k5`Ci+-5QXIf?*_py%3Gx(qjM+%Y*zbYgM z8wu9(=nFi`CqE~tJk@AAFsjpqjZW5EaTRp_m$@r}JlwUFuI)f2k7_ytb3RDAF3LIM zan`12+8sMm7P6JugC!XvT8+l?dr{udiy%d~Mu#|g?*u2Xwb;j m96s4$9j0f@bCvK_3&A>KV4)=?h7&Xa7m-#oY z3Kv|YK2Pb!I^s`u6Z@)7 6SGx} zHm+eT@v2h|e>of_Z|9kk4IkrAsFO98v#5b3ka!VJ@WG2i=8n$JGEO-VuvlyQpfu85 z$-qT}q|+)YIa$k%l2ha?zDWU~h0Adl(kxDCg5&Q0{!K&Oc!APg)R(P@!5Z4of~fK* zO*}RNGh3_X07n`O1?C^scpM+d=t$QmqScP-Rw-At}^hmW90L{pqw)j@qCRkT2Wm> zRP=$LueF{uZO15-e$aH2KDpc+qi>%wl%t1?^-w6vol3l@Uoltly-!Tut;H&vtv?WQ zp_E4_i%3rd;s)&s!@XN^r@wc=3`F=$6>j(xFEGP4{Ac$PT448|kf;czOUf3>+cu^S zqaT |=M*`G-_r?Xs_c^kZ@pptIsPC+p@2I~>;u8X(als;~1JOKt^+@?a z*OO`*cFNCEVQ%jX+gIhuCfm?b@KJsr=LzpNgjD!^NETA1B@Nw_czo)e`sOMUhNQ}% znk)0 wV*14%8*rLAfikJW OV;$e^1*Ya6%F+suW zfjCZ0O`#aOU|Sp+9qk1{7gw6@jK4xl89{2zlZ%4+c!wX5x#(4+mj1eyIkbk2Yg>~v zGEWe?;u>(i%Y((IDAzvIe!fw7Jk1cYu1frgHu?F8-*Na6;p&5V({cuMDnV6c!X@{| z-^E P~q c5i_{}FVmA>E@IC#MAp-fkX%Qn z2bB?8`4=9~a6;9=FnV#?H*0e-AD%XY5kpJK=h#*$dMS4^8m~HTiv2a)OJ@CU*w$)t zgvofh eu?a;X0)5eD+jKc|*3Z1;`&M%wwL_{?BcTH} z1XBN6F5Xxd0p6@uPk>w`>?2s7r0N{pG;I3OiVHLEQvL92Yo5OC=8fv;K4RNV=284+ zwjQl(OnSmT`&fe~ip+5sjy_|J5@T`Q~YW0<8hfp BI73kj&i*i?IN)F#4Fvh#TC%U`}FB^YX%cW;02g#tKA!1zUgJETc2<+ z+^Fnr1jx(fqy!r!C#_wPee0o*ry+T>Zj*)=E*dH5ys+q@b$-ZVKIX=kP-|j1PQ%5n zQpZBkef#5Bl_bL&8^x6?bgi@`nKOudMHTPtasZ-KzX4a%q>uHk6>+zc#HB1`G*^%? zvN&72(lZu$qi;NBzDSHY_*iqvXPz*LEB}9-MJYgmf+DpFzGODhCT!2jTNSp(1IENQ z(gwh3o^f@+@KM&Vrd?bT=`4UCK<^KVZ7ZBdD0G<|N(6}jd+?$rQ#x8Vz8DCXvPL60 zBclSXIjiAc(rFu88?^Sv4`;NW&)qrsyWu}-K1YEWm%|lDiZa^7X3x=vld16m;1`<& zn78j#8?w}s6;!l6y)ErlTy7;5+XBYBb|(#NA(Ev*naHoZr&mN#<$VR-lWTWtE;W`r zispq0H5z{SaDy@4L1}i&@BY}iDD*wR@K}zq;)Ej2yS~1gL+bb$hldp==l1W22FZ$k zfw_MZWshNVMK9}*mqX7*jJ6YMcGWQyBYp)XJ Nf ziw tREEWGEzBp;>%jZvLu%o^n)ud}QXZjz`12~{D>33e z)8mM<^2%?wE$+PR4o=x6pZIz-HnYemIlb_7<7jud=I+X2C+j dc?akZym&G qLN2Gnzqd xKI zA*un-yo8J$(FWzLgSPb0iZ;A7rN(g!2opwyw C%0 zmzM-?=f%!TH h*F7keXXyxV$KtOhjXdtPVz}c!aTy!} 67Bc4T0JDXxZ1WxH(RT=%^L`WCMi&rsN( zh9;G=Z1I$>Z>i51+EYUn&7B7ZqzWACl=~5e-S lgZE(~n2rT)^A7oSz$sjtlLYvT#KR zis_XB{NsYv^x1Hp#$0|e1~`Q4BTRm)dC1IK#}9;DT#8G~SJb0AR P8`$_9_&}mC(T#8+y>G?HRgFrpd#F`X*e~sk1@uO^u%rl zR6&{t$_O*C()J&a^3!SQ6!#X2i{`eEatzfM3E+8>;kcv`y`rfN?a2=+Xj?UEzg<88 zVT_TD3%V{ed}Kr5W_Eja*m6aRpOR}u_nbmfp>6?w?%2ks$`kH&rdFB{Tj`YqIwK%L zU8jybSoMqqeAyoAq5KA|Vo$c{Nno0aP{~9eqrj$$sM{u#$C%r}@BBbpHWc3$pg=3_ zmNROcqTC>_ETR0igW}pZ&AN2CQGD)I&SnMxYYgLNl$N^cp9$+NdyYbUQ@xj6sH7T- z0}_gsu%@;fLdVB=|DY=7RC;KsRTHlWf(EN#Cm|3}Jyk{+iixJV{B^+F>Dzj*6L{G7 z@zwsC@irqYO9d^CM|pdX)VWQZ`u#W?mrH*GRC(sBZ^`D+OD=7FGP-p1x;wp0p{q5t z{_zDl9s;-~*>5-M@SdP4uFZ-_k*Z$%3DpPwl5MI& zbCwPTz1Vo+isDE-S~ZQm;o7!=sw#Z7T&u0A?_|--FMqXWdBZXj87=c~=jA gHQNH$ku3)gm{+E?F}I@NA5V#-0-t`M2U!RfaD<$x^T?MGSK)WXpm59Qh~`ljqF zkuh_behIxh7yPmbed#42JyoUp1v7Wiu7~FlCJoO;Tw8se(c8##u)f3l6iu5lq4z(8 zlHx`a%LnT@oz8h8$dH_dyxp+uN0R7awsPr03k8VObm{aNdb_E$o(lcC?QOr0t3H bZB5ndrD}kD_&eoAx-et_O2yQ$?ZZe zkB-}Sl)I|Fza`52^!SYLW?KexWF%o5@>DU>Snz}huF4f%y~4&mcxFlrDlxPLW;v5o zJeh*ovd(akM0F&_N{y38^taS8k1ffoDG>2EcJ bX7pX(* zv`YiIzAFKysO3#Udz(MnizpP=eLfv;z=DTE7y96*n2F#Tn)aD^H28qVb(NZf3lcI< z$QIA+D%Cp}dYQN0#?4};S)ecRuI%2esnD>oL4ivm`Q9xFL55RGLS$140seF>{jP Z_NOV2jg&)EB_L;6f|2^M=*rvqXPJcv=&rfsnXvRK_{va*|N1@j$2JWvlFXijx ztUuCz32a_mF`SPdWhmC0SwZJzZR|DMIF`N8PaIw0Y=qCBGgs3) zf{Mw#Yikp2;fq5)4d&)t{VL+U2r|=BhI-8-2*W9|T`^Dy=yT08=rqK+;_iM4^#K8# z!JMfk{Z!G VD4jexQ&O_>mnb{7BcTVte%A-^Dj%;n4C9L z@uthdXUqtH7(07bdK<2v^3N_+HD^rgP }qp!R`q4) zQ)RfrlV3?y-LROgL6+5^VBHmS_I+ ~v8hSIcJwI9Kl?D9}*9iu6)qw<~|Q1JK!hm(( zj$Wi++A1fgx>BdApzHVthhjA?Hvm0Kes~i+Ghe}LVKs5By?Kr`xygzs+Yjb6!q0}U zttXRGS17ie#P?w%M50=PDS23G Gn!m<^W592(73j#B>my3)UV>SRQRW|-^7{ iH1Tj* AopiY?%0ibtqhn^IsyRty5&H{ff?n8)p3)Uv`4@2=>7{jyfCC zPrSeMcdZq4i1zf$;`u#Ty7y0d+3G4l9DNw4lpH47pSrF>T%rlSGlED B~Ccz z{L|Umc x{vb>_9S@*~vSlupR~z$%eyf?l*KhqL{((dRAq$;8lzVtm z=eo!oV^W>_^Kt1QJGLa&AL#kplS3Dn!ZVz=(x;QPr7DY$`+Kz4LNn$)I2IE_9 z1G!fELC&;ji5pCrKgK -}?h};&r{b)PM)ZA0u!b8xPKgLr0&ysC?( p8%FIdRBUX9f3G}1;H zpuO29p}I}H0d~FF*AK;HCi$j22J9)l_JmP!uwJq*p>A 8l>l4wG+ao?!267Zis6Y)jPN(|ZTIdvl4tM|QLh z8L6LZAvZT!X}yh{#?#w=MpY_v>(%Dpkq-(f&z0 V$2T-c8T|F$sYr$Tf20eNa}>Vy3I=84pFoJUth z%gYEE7o=ziAE7wi`S;JYm=BjOtlg<4?Xj;eS-pZ(?XKO|)s{hel>IFxr^w=PVVEdZ zJkj? W*Ok8 zb?7zE`Xc5@t|T=zY0q2T CpZU!jYDZjI6#=3f;aIq)c#a4EgV{*6jr5DNauJ@@^ z2RY*fYjQDy+t6WMEZou>UrXy5cdr2j;Sl6Q-b7E&0m( V_FE_%Z#!4+wbH?VH%3*8YSS|c}a z~U?1gsLa(FB~ml6%}ndP8(f2F$I%<%~^d99Q`h|mUg zpk~bFZ|#Arw66?P1hLCu5Un?n!tuiTC6bt{N)tjXuv{1=x!K|(K)BBLt|b&zD85qh zj7ke>5K-<3hOa7^*Hq)>woRy`Nt$p`QKwaMei8j#>Qu!q% 3iW-HxYKq3g=^ z|FO??q+ukAo}50>r49~VP$Sx%AcGI?UWX>Zs4jI+fLaqHpX#2qLCD216l2~ODQPLq zQa6~ftNj6G-dj6aTN7AWp;!MUGaoaFL9G_w4w=6rJyny2ye#da`{&ym^VrnfnF86( zpWv%{q{P2Pz7!#3og*WSzGgkL3uj_luik4dUwn-)mfwa}=UE5AyasDwws}E&b0IND z=?ci!3KC@dE8r2NEC&&43-)PcDC+$}5dLPnKYC&W!ncqNcahLVw{WHGb?eV%2avCX zDfAWbOJjb$w^J8qZWka=MecXC h3D&z=u+!M5cUyXePz3jD zRIqqfPl+2)^>dPYT{FHz=ZSM`Y^?b;? Xj&aNY?FF20LlDzp#KW0Bs2jWamoLFr7Hn!@6 z&?)LRS$ueDxj&Bmje8e{c*olZagH*fV#RXpDPV$|Cr-kIZ-iy2N zqpCCU+F@Fa8(?c*yw~dNX3woy2OZtVv??39z0D05>V xJC vN$d7pIC71j1pPHn63E;F<=% zREj+2Q382Gbp*K2xhlb; PQ=}6t_gb0uNhT&voWYz$+cB*=_n(b`4CWi@ zof+g^ZBAW@KN4*J1D<@4DyON46TI_`hsG-W!BVxal%dAdLx=Q*r|do2wvCgA^z;>! zw|e%FD4QD8m4KyVK1TEumGA8_j%#sAQtvoD*;kT_UIeVhOH~65ytD5zJ4YqmDE$MV z1g@6^&B%i=o|8~}e({uWk&4r=zlS2b7f@~pO4qe=`v=JLzrzEYQwr%HS=Err{k*Zb z#$^85_n3W$41H3~91}+ NMa} zQe~QKt45rK$r1wCh82dIh&^@yK2&IEqr3!A=~h_80r0)ffCqo{9Ri_x{99fAWRhe) zl21jx5NoEvgjJq1s!p3h(%`f3*edVXBVEPCc4Y5bXPa6J4xUaBY+^gt`YGZMV8L$J z$kBb-edp)>KgR-ubX>!cnmo;QojSu-`wfB(TMpC{N`k<=zpq8@dX(JFm^+0wQT9X) z(&JGc(HHM@lQvtTaZQ%t2X?^^)_ELyX$_s}DlG7nxK>U5>v{%V?you!y2`-%Q U^<5M}VP{(i}A`@M6FiIkFO z0D7E)--c&}7><+v56ifwz0S329W&tSgFBer= p=I zK*W8`wXotia_2WUKooamTaz5;B5Nug-U0?Gk4st%?3xSAL*+`EAHMX|8I=6Yx}iof z!?5yUi+(ZU4YpRt_PoH2k@`Y3XXjNF8_4GQh;UjK)@5EaT(f;0T3i0l@RChK`t=Z* zF%6>E>r@>wx~jIb4}K+4B8zy frF?Rb2W46P sgnB+itTzcsw z=xJK6$d(mV38mt|VPKu-Bx~LIH{d3Y^6!C6M*#{0+4P9OMfAN%k;!6(QP?W7V`MwB zz?fpfK6SQdG=Ytt 4Sl<`&A%iB`Qf<8795 zU9NTheU)AeUx|jV8$*3($xQ{LAi{0snBeDJcz;<5e1P){L48s!!QczV&KQ$?Zt@}0 zY&Uu0>%QDh2d|90L_q?3ZQcZ~+D-p=p{k1*UdE152yeG^)}yV_T{_M-^#q!}3kAO1 z%7k_IYD85gVd?>LNrLHD(65g}RkDCDJo>cnRw%oB_+NUCgIPFs=AZrV{?s|$70RY9 z4cwIS=^L0W(u|o@y=R{z!C*#eCRBzbX6#@g9i`r$eO7hW@2YfjvR}Es>a0c){za{x z7xVy`^DKAYc6HL+J8er{Mwir3-;2z(v~Hth>*LBoQ?&>brxzD!I)n$M X8kSWLK)`qxGH0=tQu^w_%1?Z0!tRI IyNA-;M@c z&LeCk>X z##+mDj@|W++7e44L9$_A)qIz&l5I=Un#*q2OVI@ibfP}zliUo^4l^>S`9q4-^AsJT zpuA4G8^7?N<3Boj3Npq~4TTx$zV}tM`{Tr)-IZyk(|irh#H8qv2jchiL671LQ$pGW zPqD&D4=y)91F`12NV{u`0wo9U!t*r1ZK3qNymFMU94$9RFHD=t9WYsTeD%(rAO^;C z!HM2DbGceVwR2BTWUVmPpB5(Pblx pJp-x0`Hg%=vgBkrfP71;BroYNTa@qJI=AIM;6CeNL4Knyg1SVb;+g!{S*(to)1I&}-Yz zJqt(eY$3#qNz0?Pr9YBfzl9&=A*DZM>>0@7UbU9lJ7oxSoeTfoRF$UMeRbHN!O}D> zs_C-%A2W-Xv*0yhckJd+gO3az2^qxfPAguv0iI<0q$r}XJlpwYrT=ri8RA;Nf>TL3 z$+-x$=a{DfI`$D8>)Y|Hp8XeAIbP7}=rr-oK|5>2@-NryoG$lwe4@o-vna}{j6Gip zSwC=&dKsE`>&AVXM?#G(F8YCS1TsaYlWr8XT4R5da*-j~%_ZWa0;Tazz+)>?HU-N# zB>k{iJ(tA%bBEOjUb6}!p%|}{yV&vVZGBU j?1fceB6c#;fA;!z%+G2_FI#p}0(c7# z-qov%QN9u3B^2rN8uh *S+ zu4&E|%6UkrKK#E@$mjK`ZK^E (oqEW+mX(1?Ro5 dHTAXJ z_*o5qMgB^tBt) zxx<@6gpRe`KKr?7?*n74_qnhIJ*om_P7Pu*l9zsu*g^!&(+WSAUWWbz_81M^iG) XVQSHsR$}|Y?P>UFXgI$BE2aO z5vCoM+14tGv{FQ5n7rOsiPgpzjs*KH&wodHXCeE^O(6*r-LtkEE4hU2@Qh`7mi@x( z(gv1=`2L&x@D%l%h8AWK-FQ;Bv^WSkv+>*Lh9s8kzF_TU_LU}(u$=O`33}sPHi|2d zW^Ky|ke_#-;o%QSy*^$kU5t$M#^LhP+?R7DG&hyJ#5b16%s&|SVn|Z2l7~y;Sg7 2ym$V@N=IQnqZ H z5{lJ3oRFFcsmNK)2b}juw;080lvKJymLX>+JPu72fYm#Nn%4$O6uC0TNUsRC+mfYl z4Mt>P3wIrDv*s=F%ZSE;NddvhuSGA#-rrb{@|pW=l5DLVk~&(9QiUd78!+g91K6UW zF+HGAv$X>!uO}wtbPl-UEX{=mrxur@jo-}4ahL9r(cEOZw>gAkec@;-$>Hx8ir%%+ zcL({+OnxMI7E6sdtpdZyj{5!5P?XaMxqm1o&&LBw>O}%OJ2wC}ZLCF0)7b?LwxFN2 z(R<4ArCBy~@5Z+-EnfUhhJ7h9rMNiRclq1yNR;Lu#gLlRq9owWhR?Uir-6X;dV4+G zvYPvWm1_z!jXnr+r(9`)TCDlb1Z%}kXIJBp;8AZERv+ppFbXbo#|KU%Um@8C(^EZt zC$UtA1Vs|=2KW0fiZS~AVarWnuk3ZkbMcPCHTcoG{r2%3