From 2f33ad0e0aa3d1f4a949025597bf1ea36256831f Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sun, 24 Apr 2022 21:36:41 +0200 Subject: [PATCH] Rename soft linebreak to justified linebreak --- src/eval/mod.rs | 2 +- src/library/text/par.rs | 4 ++-- src/model/content.rs | 10 +++++----- src/syntax/ast.rs | 6 +++--- src/syntax/mod.rs | 8 ++++---- tests/ref/text/linebreak.png | Bin 18653 -> 18957 bytes tests/typ/text/linebreak.typ | 11 +++++++---- 7 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/eval/mod.rs b/src/eval/mod.rs index 2839baff6..4a820a840 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -101,7 +101,7 @@ impl Eval for MarkupNode { Ok(match self { Self::Space => Content::Space, Self::Parbreak => Content::Parbreak, - Self::Linebreak(soft) => Content::Linebreak(*soft), + Self::Linebreak(justified) => Content::Linebreak(*justified), Self::Text(text) => Content::Text(text.clone()), Self::Quote(double) => Content::Quote(*double), Self::Strong(strong) => strong.eval(ctx, scp)?, diff --git a/src/library/text/par.rs b/src/library/text/par.rs index 17fcea75e..4694993ec 100644 --- a/src/library/text/par.rs +++ b/src/library/text/par.rs @@ -168,8 +168,8 @@ pub struct LinebreakNode; #[node] impl LinebreakNode { fn construct(_: &mut Context, args: &mut Args) -> TypResult { - let soft = args.named("soft")?.unwrap_or(false); - Ok(Content::Linebreak(soft)) + let justified = args.named("justified")?.unwrap_or(false); + Ok(Content::Linebreak(justified)) } } diff --git a/src/model/content.rs b/src/model/content.rs index 03153684d..4077f6963 100644 --- a/src/model/content.rs +++ b/src/model/content.rs @@ -39,8 +39,8 @@ use crate::util::EcoString; pub enum Content { /// A word space. Space, - /// A forced line break. If soft (`true`), the preceding line can still be - /// justified, if hard (`false`) not. + /// A forced line break. If `true`, the preceding line can still be + /// justified, if `false` not. Linebreak(bool), /// Horizontal spacing. Horizontal(Spacing), @@ -234,7 +234,7 @@ impl Debug for Content { fn fmt(&self, f: &mut Formatter) -> fmt::Result { match self { Self::Space => f.pad("Space"), - Self::Linebreak(soft) => write!(f, "Linebreak({soft})"), + Self::Linebreak(justified) => write!(f, "Linebreak({justified})"), Self::Horizontal(kind) => write!(f, "Horizontal({kind:?})"), Self::Text(text) => write!(f, "Text({text:?})"), Self::Quote(double) => write!(f, "Quote({double})"), @@ -397,8 +397,8 @@ impl<'a> Builder<'a> { Content::Space => { self.par.weak(ParChild::Text(' '.into()), 0, styles); } - Content::Linebreak(soft) => { - let c = if *soft { '\u{2028}' } else { '\n' }; + Content::Linebreak(justified) => { + let c = if *justified { '\u{2028}' } else { '\n' }; self.par.destructive(ParChild::Text(c.into()), styles); } Content::Horizontal(kind) => { diff --git a/src/syntax/ast.rs b/src/syntax/ast.rs index 82bb7d563..5232b1f15 100644 --- a/src/syntax/ast.rs +++ b/src/syntax/ast.rs @@ -62,7 +62,7 @@ impl Markup { self.0.children().filter_map(|node| match node.kind() { NodeKind::Space(2 ..) => Some(MarkupNode::Parbreak), NodeKind::Space(_) => Some(MarkupNode::Space), - NodeKind::Linebreak(s) => Some(MarkupNode::Linebreak(*s)), + NodeKind::Linebreak(j) => Some(MarkupNode::Linebreak(*j)), NodeKind::Text(s) => Some(MarkupNode::Text(s.clone())), NodeKind::Escape(c) => Some(MarkupNode::Text((*c).into())), NodeKind::NonBreakingSpace => Some(MarkupNode::Text('\u{00A0}'.into())), @@ -88,8 +88,8 @@ impl Markup { pub enum MarkupNode { /// Whitespace containing less than two newlines. Space, - /// A forced line break. If soft (`\`, `true`), the preceding line can still - /// be justified, if hard (`\+`, `false`) not. + /// A forced line break. If `true` (`\`), the preceding line can still be + /// justified, if `false` (`\+`) not. Linebreak(bool), /// A paragraph break: Two or more newlines. Parbreak, diff --git a/src/syntax/mod.rs b/src/syntax/mod.rs index 00bcb376c..2272b3e03 100644 --- a/src/syntax/mod.rs +++ b/src/syntax/mod.rs @@ -588,8 +588,8 @@ pub enum NodeKind { Space(usize), /// A consecutive non-markup string. Text(EcoString), - /// A forced line break. If soft (`\`, `true`), the preceding line can still - /// be justified, if hard (`\+`, `false`) not. + /// A forced line break. If `true` (`\`), the preceding line can still be + /// justified, if `false` (`\+`) not. Linebreak(bool), /// A non-breaking space: `~`. NonBreakingSpace, @@ -867,8 +867,8 @@ impl NodeKind { Self::Markup(_) => "markup", Self::Space(2 ..) => "paragraph break", Self::Space(_) => "space", - Self::Linebreak(false) => "hard linebreak", - Self::Linebreak(true) => "soft linebreak", + Self::Linebreak(false) => "linebreak", + Self::Linebreak(true) => "justified linebreak", Self::Text(_) => "text", Self::NonBreakingSpace => "non-breaking space", Self::Shy => "soft hyphen", diff --git a/tests/ref/text/linebreak.png b/tests/ref/text/linebreak.png index 4a691d72a47ec21d9dbc78cab2db69fc6577d72c..1a3f49dfcd0dc7a11081bf06116fac71e754d0d7 100644 GIT binary patch literal 18957 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 Uqb=YX;{X5v07*qoM6N<$f}I~fSpWb4 literal 18653 zcmbTdbzGZWur8Ve3myu^ol>B#WfD|b1uEmPGTX2UKTHM{;_44g~ z_CDLr`Q3Zxuh%lKtjt=^JkQK`Wknfm3{ngL0D%2oR#F8303rhbNSWa00{~3@RbK!= zHut^cJ2ki2{RLMq#VIPp$(i6-?1N-C_NJvbqHi)+Ff)?jJN4*cv4qLYtJr5n*Wxy}r zsQpyV7XOCv@=XS}+mJX7Bl5Q_2!X%2G8p6Cf7yXQy~s8;KU@FdQP0gDUM5BtM0=fY zxW8hWv7}EqqQ~>WCqV+Q?)vTy7s7l0@bJJ*{Yu}v#oA3AN0ht_-LOki5ME!VAR83* zV*PGU3ic~YVEGolC~=t_l7~zIRMB``7ZU2#ySnUNq^sZHfVVZK=h<>|=t&|x_U_}Y zH*gCB^E`GiPyW`t3<>7i3RhR!{N19eTr=|Rh%G1gXtp8YA@?L{Adq*4%vs`a-C zbyw12K1<^FySOG6isC;3$E7V+P}#}HsJ0}7TXEl^Kj&wZyM9_X-Vs*B3~rahA-{?=FM%{REw|3Ls5gqyJCL>*3QdYfZSF~qJ&iJz>PVK7D}xQGrz`M^ zpjemWO(bA*HzJ_@kWjCTKCh%|;ZMbvf2(u<%g}c2MVcNmFRy#+zx>qPhc#oeN z;iWx}$#OCl(Ar~ui*oLEJvTUA1t+GsWqO#wJ=?t}tSm4p*g0>?!qxA!A5`1( z0vQ^AJ9;WMH5d*D2>ETTC@$X|(=0HEagpCWdolYEf2fO2*a1f&6%=^VGn1a?tlHWa z0u+F9BF+zLrz>6(N&Dje%6oq`xPk0V7TK#=cFnyU#IyG>nCm`w#_0;y&5|t*S&#GDfpR1a7lTo))AdeDo;&LEn&j?}BlAlJXBV%8!Di0-NjeKN9l4o!B=NQUD<~b5p@l zzqADtYh4y`kb`?7GU|SyAZYi-O9zKIITQnd!!P>`aI$OnM5gy0(Y&PYJUO&4gNAT0 zRT`hlB!tN)oWdBIT7`S@6v|)4cz%gM`0S*9aNs{cPhx%@qgT5vv7KbaP5!k6$#8uE zZ3}Y>RdmP~GTJbSCR(!uNVLqQ>33z1x(y{qReSRi^KAW%X{vHN4?@^|K6tqt+h0iZ zh7t<<;+WY@xXRvOw}i26>l~jtn+e=a^c?8QR`H&QD{nyk)oFkm4QLO|`8CLd<5okK z5+{qgdR7a^l`jBz^wmMhnjHgJuR7EZs9_RU0_8W@)XI+|Vkt}j)gGYu28TpfVju?) zaU$Wy=n3RJ^`z_cawqT z6ixI2>;VH93sxkA+9-F1sU35-8kA2>9m84-w=X$Q5v6h8#3~e%MjzzYDWA_S z(G_qRlK&DRV*+`9pnWxZc)QFMr z9+eU?AuI3;Rzc$YQD9AVoRyz@=Xr}y)%+JNuOM`jY72)Df%8xBe#?Xmlv3&Ba{S4m zQnxAobXtB=Du4B#aX`P=Z~H@n>$+&i+Sz}&9Tu7O8PcL3Iy9w`uo6~k>Xi5>aN?JE zU!GbUu^pX!)LD4z;NA+VU$Lu12yC%8cGTFXPn)FZv1|Q#RTg)z2j4rPfY&75tDJ~`p$RI>-#@wy73urv^0l=@_b1_I+(yy)i=8hQSVU2J2U4mvy(YNi zk=dJ@San^lS6-3h84iPR2In)8Uac3cWe&fa3#p#MsjyWhU?Vr-^(LI%jX^F zei=AhnM)`1X~_an=PyXa7Bmc zKRqZD>m7rkYd=;XDjLkESn?=*iGSt#s9pdcJ!I(4aO6NqyR>JQV*5475lK&e`G5VQ zgbfS~@@#l~JGVw_fpP=wfa}^|RdTpS{Rtuh2cKhVmHP84X+IstI0_1cz$rBaYjpg%EfEA032z4 z#7dNEV)8A$L^M3O&ocZpgu8}I0wypd3Yhn;C1YG;I#uY_M8S&Ww@OuVIBE3G)ZR;% z4%~$DgSFTq+9I0!`GYy$`MAE?zh7D!g06*C>aQ1?Pg<5Hlaji;&i#HtGkVj0b!gQX zPq|NUl@Cz~B1}+`J9?W>VoN#pJDcF|%sV-Y8GE4;*D?=Av~$j0y|(1@)!M_L1qF4A z(xQ6p{{mkA1=e)72WR~Y*7;Y^BWGH6Nbx^ooqxUDHw@xU%d^SrwMnD^6RE{T!fn<# z4)eBL(XWl{Fw8)MDWREH-rFCDu%EAFUX2}ZxsTDa!|hAj2s)caMl_|LCxv^qO(Y+8 zZ|}8C9k(A^)?N#2i)9Xh^qP^tVWRf-e)EELABL`_Y?IwkYQ2#oF1AlLN|;l{ z&Ipm@7u!@miYiKKVMb7A04?q29cu(1%QWX^LHt*M?$i2c6CL9BckkDd071Ax(g|7TPV6MJJF#zG9N&(1mn)-IKrsXGmwBo_XTNfj_OzBr#>R=j4Vj2@(4kdGKH98p} zrc;Fa+1%*2vrAE^TSlaDNs_H@x4~qC>0k*dqs`EquA=W(xN@p6o#N+j$}0jTV-LVz zQ!XND>>4P?15Ya@Hi=2B52|2Kh9^1?5B+b@w_GCPRc+EFt(3wGq-@h)MV_C;;iwyd z+<3tWKcI!!{?UCt@0V&238Yb*;|pxg95hY)7^s!)`Hn3_28m1SBjhu6E zK3_+*EG>yj`ci@q6n?$K3Ex?*vhXBr48Y5_Y15(>L>6UA0dJqx07Ywso{B#+b7&l* zY=0&(p2xQZmBf%4kOLzkOYE4ux#{2la>9uj#yXH5BnQzKP*T0zp1%9`<9< ze8BotRp_IM-}%m1F_u86O!}jY%)ta?JWsG({hkkNa^Jm0f!K!5+Db`&1Qum!F}MIp zO=t#AGlsk_kN`(lhk+Rc)ftz+JdK0XqPnWZ8>pqZ3|Ry`&bNQ($dso*M!}AY5vWZo zzP583_e|g&)%2jm>f-&+JDE~l{pl|Q7V($N=kXm<9r$1A)^b^QeuUZTG_p~2N;h`H z?B@?#8&m5PywKs2U7_RV8|=zsBu05aVThc}IJhZ>+ zkYq-ipc-JnUkYwowNpM;rUee0(8Qq`XN*N)@1P@KV#5c?zr5wlAxOex#DO2+6O)=% zER1&l1xgI~HGWC>o!&AZRIJ;b0=aH5;;AT`T)-cv3U+qG5WiL1D%+fce*hOqBRM$^ z1|NrR65D5we+<-mK$jH7dbER(bPMk%QVP9@lTl&_s!tRX?cQ;FsbA z!8C(BitTx^CG^WYx0^dRCqOHww3X#kR+&c#$x5zGBMO;s|Ano?4_&{3AdSBkT260j z-VodKVZzS~M?*Jl$Fn7_4B1H9pKyMgCIdSR`Lw-0rP%OisV>3>q~S8QHw-qE`YdD4 zCJSdM)|q<0HyPinFZ?j7N<%j_J9|e)q@L*4tGX_C^LrL4M|aNYIu$%pFkz6Za9x}d z$8}U81K@T{VrO!Tal2j;qFuEWWm1G!eww3Z zyu)haGtH3-$tERObdPd@0e3Br&Mrm7V>spfvyEhG#a{P18s@@6_nsp1PZ*ubZ?CPp zFS@)p(w=aUyDA@2=uYlhROGbTjxS2spsqVlRgs(@BQx9=h{*2l!EGc6%2%R=dNq#&V1sm^%HgRB*oVEYUNj--UiWCp@M8PmVl{G+ zQi5^rW@8TS1a1b|f%dVy`lF!_1C^~r3;^VBfc?|G+o5D0cr7!~q`;fs%kt*X$`3QP zox*qgSnu$a=caU}2QPFy#BXWD4Y|ZHf$J&t`_@YNVq35EL1O+Tu`5VGq*1F4f%sB} zX7GN7ODO(E7x*IK^2t~ogJX%~cCjVC!h{0)CoMyjjRdl~d9i=tiB;hqXBLj2x2NX7 zTV770oai#dSScw3+G|Wv28IsQ<(&;!x++j)=SXH0MG$figa5X`Lcg8yUj3ewL-{;6 zK_)64}ikZNk~U)AjBTWh}0V=eVJ-&w3o6aym92>tz9PmH9R7pD@4 zN1LEQM2r5M|7c0s449;(;BhDpgL((V!YN#~a9sawypYOUb3dKi_0_RI-!Z3 zKveFmPUGtxy&Ah{lSeI75=ZPhgl#nGIuC@~3m^}EBM(?$s;0#NBRp_lt^TSk zCGDg{663=|KHUi_JTmRF17}WS*_5B{8+Rk7YcNey;0CXN`3zIWA3q1rrcw2BhCp7o0TIny46oK-?d1<>x($Q7smijYc&n z8G^wN3iiQ+V=Oeg9xb+_AzH=rYE3(YJ$Cg@TyM8PG$zi0A|16aqpbg;r=^mR3fKr6 z_x7nS#v4ZnN1c5C){cb~F=(N@OZQJY$UmA{nYs|np*9Z^pw9DzueGdm0OGV+W93{{@X%Hqu1h;U$eLuxD`DAWd>&r!rm0-?I zOYG4tzM-bV8m>!kS}p#CAqGI(eFZqc8gn}?LFqF4NkU`haUnjbk@5j7)cr?O{EL}I zf18cuwL}Rw^?qGRy~)_)_hg8PXbq#j>>QO!33g&ozV$3yoi<$cfoDK__`~1;miHieE@MTr@4_Z6d^GUqKBk$2QXN zpc_%(_PGrqIF`2=_H&o4TC%}*3NuUpk@0xSdV|05PcUR-8|gR}OxsiUHcE#HACxI5 z1DrEN&aNu|$By2eAGz()K!^QSejLEmCx)yN$dsbx&2lz$eedUs9&F17l^96yyh9wBQuoYa8u}hV;oNN`kXXLrY1pBg0(xuxx^SMeCbRu@^5DZH z-R+bm)G`5*l)T#uphn!EU=ThmK^>4Us1H;W8Ua#zr_1z{-T@=x9UZAXj{Pt_^6G9e_*qmP0f6nzotN<39xpkYdWm>g3Jg{)!rA*gKp6?iuu zZI-^B_IU490{aXKr((H@1b+%)L)HxNU}V}$VPal`W0GB&9%Pr)x9{c0$FuuHj1LC* z4O>;|ZQ?Ep;F;;h%wiXV$s+P&-zuO!Upe+W+o)776x30-tN!;D=RYvKaPqMKPbpEV_?M*1(Tg7*kq^TnO^;!Tb4h{e)o=anZhI`g zEAFsGer6+mE#}!#DmzVuLZXo>@}C%CYa10p?U62g1AFF9$>S#!5Q2BbD#>j@*YoiS zpN78wYAO_v{q8H`0=+e8pZldex*#aG6h6O+ao>PE` zJb0Jo4uyh~`o40gf*WOF^bzdsC?vn|c|u-!uk=i_Dqf7(P-H^hFt|LwR9Q0atzF5i z>TsP?b#$gM2o*iZfv>3+TA`&bFP9sqa!U%)5h?(jPxgHFgtttnPMaIf!j-F}g}<+* z_7zAZG1YbM6bUJSs}@*ee4{0v|Kuf~Xb0Ej1C6vTjE-&3nK$ITV}Qn`)5y8RvC8IF za16lGU^6QG(*f>I=uRH{dHn|kvGRfj;IDqp-$|19{3p1`Lni>_f?D+NH-aFVC+VUg z-#p{ASCM2_@DMgks?XwDEKM21uqfo?Vh#$bcP9MEL(9WpuRREwVN>pXCN=V4jx-#f z{#(9UB-sw$cJ@o0@C0-5BqqL&L%xkup;-}h<8m!OQBA|gBglVcst1EP^!GQ|Z62~l z=6t+ffap`I)ySX3Bmqeb3Fc5h42C)%T{qG_Bkh-+sQa2OKbpyp3PUHpK~VzNg7)3l z;_X1=yAOcOs}V2_)Edw3OA?yVGCtnu5Xofw;}gyQNN9)svUTcDbLAm3^52G3ZS`qX zO`&sl8vmwWCiuhn5`v>PP~4i~jo0bi`-yZz43tzXg!9;>Yu}gC3F-6&F^RCk%hKD5O{vM8ds%2lD4ZOP!;5VhIJEEk635Dm#a0%@uDHhJ zT8IWV%aurWTwfKb4_s$4EBoUeMV!tD8w2v zB=G(tNXvo%9-YJo_*zwXlW3^_7~8Wn^7O~9a0T7=d_E(V?Xw;H#sy`!Njm~fBlKfL zhWn@LesTJcev>O8Zl=z9|4pG?^il2B=T1YMzNnUZmU7Sit}J$`DyajG6p=7t#9TyGDFYSs=W&s)VU zo+^$Gjj^KBVod-rNHPGXP+>tt&<~6GQ2n7bC>?H=%gn3gU~&{X-u%m7@Z)+js%sf; z6r&;m=udJ~NLo5>kjcooN2`J1(qA4%gPQE4MxB`&L&9r#^8Wm*6Q&4vmIB2)A!L`B@5FMRd`*)+D80*^(o<=I8uog70 z;&^&g5iYviKTK};#3r}H|3c?J%yg{aoAQ0l2>T_>&l26|x8{J373Beo3&jA8huKlUI8TLN@x|t>Jo3O4^TNPH zj$~-k-s|JUMsmf-Ca2HPHE_T^s^!qBPEwY|T+HNQ`jjuITJqRZ!0az1-H|}x9Po34 z@EB$_8Lv6!SzdnsCJFG{WMOLMt5u6xKEj9pWB0DYwS#1DVN`qF>bRPDd(kNOkpA3GDU5j)=l z#A6m;!{Z2lKuJRVvtjK5Y9HL*WyR+Qd*|@k;fdRqu|iVrkPwD{DDfTQ9A{_wWi$4Z zy6{fjJ^rz#U`SYFzmPUVK>IY-ufMmb&~)+$>Gc(~)Dj+0{`129z$+A}6K*!Y62u`;Dka z4_L*wf1b>>9t;thoGajqr=>1bgkzGmC+6U>?Vysp-rTK2JZ!40pUEE&)FxIo*#m4R z{|>%rZgX-^waue4kR1_b=F_`ic$NYGv%q^iNoVc6bn8`YJ^pHomNyL9#={{;# zjjc1LKnXINfYlN!(~=SgO;~J>!+Hiab6TMOO{-siBPsi=Z}?vmo^9RfZxU0aSJcY) z7;c_j);oz3xIv8o)ozzBmJg6DF9nzosiABLYX4aw&^S-3o_v8Lg8)CfkQtiRt5iO< zcOkW#Jm_`}SX>mc@ltW*>3qf!;sR!G49O313zt8c(R%~z%w^2`_TG}NR1tp`Z(#Gn zX6o;fElk;}FTJ}Wx&*fLWMS4}JHF{8g&ml*p#$}aCOYv=^k!F-aeQ8KJ2G~<0$8o> zlJS}Z^w37taW-H{07;!YVx?%Nc#1Od)!DPRhXgn8`^?VB2K|!oXw&pSlemt|kav2~ zAXC?o^4~utVJCtsx$(Fx1h#LnjAJMAGcjcud|{Wp9p!dj)(kZxY)C=Oatb}H46TFE zhg$$$n*X%PM-hfg2FXtu(GGukLf-#*=nIv}+muB9@5=3eQs_ImA^$GpKW|tJ|7{KU zpTOS#ijV$4u!Y5N@ws;!DW)*H8K-NmIoAi93C{@+;&0YmVRIr9 zZXyo3F9i1ILhLdVFFw$oZ9BJcwWm-Fx$lDDy*(pXfIxEJaL(@^>XGgTosT>pn!btJ_}R& z{c8D=E$gFBY6X-Wl#+1oItM5EU}|ekJf!KjVL}GA>eB5J8`SNk?J`3~?x#D_&E)nS zl^G2TOh%zQ;4=4mdiuaJNN~G_Du-Bf4hm5~g1IXRkJWhOPWE0EfPGN%u z-Z&e0yE*3G$1M-nvX~dZJRCaIra5ku$Cxmi_6<5Fw-^owQxWjf{bBq12U7VVHj{O! zsWb%}h~zB^P>1nKrF8f$nuyudiE(SH$yMmjW19O{KR@>wtxc$$$0<9lzQkIf+93TGx7Y6Fe574o~USrWk?ubzG&{Op!0>s9C=L6)gmCx&4ONFu6k}_z9}8> z>h7(awi6JtARQvyiccnFZCrFnZa>@+*K%ZlFTYb)R?bE;{s^Siod#=P0HAJ2%uL>$ zuz()t2q<%q93ao|@btz|(Ug+%F3GH+QfK&v;k9OPbIiqkZndjIEV_Bs>`{Av>h+{+ z(W{N8&C(<7lt~#%k3Bp+{lK51(tm#!{d*zDCp5T(b4Z=f9-f>!84sqdt-Nzz1~Y>$`!5I4TY$=yDj z>_K#|6pMCEZ1UW(va<>&JDe^+rmv6}Pl|UD@xyIwq4x z9?MSP$-cQD?o_EH4KA)fXN6{!T`b%9{<-_GMP(&U%pQ0r1{0k0*?Zk;S9xLs1wSdv zMJ7k{V$Q#wwLpeS@-h@KNBv@Gk6YA*(J9J1+%u{8?!C8aJW+No`k6uhpI5~!hym}T zi;h)V(*e)rP0_jIpapoY+hI)&PWMHKe4cO4r`Qf!LIUsWL{MzRuEn?7J zFReLL73k{Xd{oUAU;WTVY)UNSrXPtDAVDS3Kz99?{Ryy->vnE5@M3wsL9y!!bZoCu zz}7DEL1LN!k}v}C?;)6yQ~aSPY(F_sB(5EL)d{4ECXAq9qt+(?=wnQLy-DUC!Tkl06>k8}weK8b5t-O$hAWM5KT zzefec%clq7eK!^vFKxBb%a0*>pdVTlYugD zMr~I5ihdmUH#2@GFOt7GtC0kfc_~Djc3EvA%*e(=;t+UZ+CrWOL4~i{a=p@}^D@8w zKFIs_egM43JHk(iiQP|1W2egPFTZ9LD4Un_w|{{_g6u75L2_?eMT+vXIecK13PxeF z6N@KWtpL(6lO{$!hWgk^|2#0eg-NDfCM`1UzmA>B+lfoZqup-?*02yie1dE6p(7B( zVD%Wk4u?b%t za!G2$!f}R|za35C#apcT$3JqaK960!Qg){~LI~+As)pD;sZ4JO*SE(Rh7*RC0+I)} zcdFxI>ntgq-Jhyh{dd(q{?8!&e@W`t@PdCA+gItu_4%0p8$SOJ;(L@Mr0tQ-llr<1 zFDLim3V=Z{LJ8J=t|LSXCjBR8d7=@AuShj{;#Q5V*ehH=_Vsl*pUuH%u#LBLV2XJ~3 z*8v$B^9(adkST8;$KY?)ClSEBXn@E!8|G#U)ZDiB@C90A70fTqNFwt_?fYdiOZtuo zEo(pG=+3-TcN6f7_FVh&!Ubn7wp|07vREzf(8e2ZaV1{aTy5}c=d5{Ta~2(uS5>9L zag;Q+IeI^pc&M@dE+V^xI7Fb#mazPEjZtE<`Y6Y+K>PgVF5X$GQP4`F!7ied?j}fDE^Ivc*f!JR}z57&^G^fh*4fa2o;LY=Wi_|*lT)*#$PZa-%q@EDoDeC zs_Jt4d(t7sRA#3#ao4%LSM{w^L@|xiS`cq4G38QK*wWl$!3FDevIjVAC5lI<5SxBH zarU*R*jeNVe&H1I3-g=#UwrpVrK2^rpgAx%smkv`twb$XXTc zN$Os?z8GRT^t=O=jR3xETDA;UZ+~Wak~L*~QXKgJhFV(S{@r{LmK`Q^3?Q?Q>ypa8HWULF>w5xU6I37YeF^h=Q{HSt3$ zlghVA)yP$jtDLqF8oMF$9o83(cD&r!w0q!H%8SDSw^bd4(5g+wa6$@T z>U;rg_}i_c#ouhh=2}#w@kMtLW%O?aq^X=T51UbM6Mwn>US;YYq^K4NLA{Bh3Wq`L;T+oeS%J1|B3;NiL=rwpNGWh z2(h$F^R$yzD;G(Q$HUv175y9fIy%{XJ_XyiNWW%wOQr2ERKWsfc5uu!Av8(A{oBx? zvpSHcj1##hCG0p;$cvxTDKdZEc{6L zB!t9R%2%7+2;He}HF8vB5&%a_Q_|soOLC}iG;0^1t+ifL_Au3g4$pkXk9p2-v3Q)Z zD+v~iVEN~LQu~C!f-~KzpVZ8|3ShcVfRf*YHrup<-DFe0q#C9MOdFB4Sbbaz;|$e4 zAiHeUGoC3f(!7SFx{Rw_0iEhnj?@OEu>f@gDC)U?9J6E(QUBIZ^#MFF-}1Q`PVE2o zji6@M_YXj6h2>u=Xr{OHIB=rB5UXwkE&U1glQN0JGY%m~ZBeBoN$|F~XT54{>40o( zBw-bQQ+jnhP#C2*fAA{pgog^JSM#T!Rp4tp-I>)F*0E+XM`H5gl|`;bsd-f0&3}X8 z3WNcVcOu532&_t!l-X{O+ayXu!2_iVC2-xw7z!RgN3GaPHpc!9SnDCtVod~kj3gch zX<=~ee1&TnebWNYt!u%OSCOF%WFo3P7O+c~?{@jd!t|i5LS~r31V7iaRRyouAjibY zJ?H!J5+$Sn?=xl5+xAPDp9-OSYgosB zNWMjMIgq;7WbEsI3RC_o*C8BWa*EyxF#&p*>wag;*{v8 zY8L6J9EM`6ee+z6Q25u$c)J}FMSMeLZGheG&9TC3c(KL-U{;uHC9DS*Q0nWie4tES z+w<#*GTV8tal-O@b`suU!{(D&4N%D)6+=a!$B;|t>#2C| zM=N;gp>AKZ{1pIJUPQdPV397PQ{N1PYfNcrEP3BPxMsh{hZ!yqIhL2!*8FswuL-2V z`4MHO;u}d1Z#V+|T)?dKvzI&olpt zclkf;M0G(F?=lRQ*4NN+1y0>d%g2DnzuIqPBxnKt_X784AR~n-!6n<#MsP=!Yc!#H z?i9*Yq*zT|J8~LZM)B8bFO(|)g_EzPr0%uO||xO3(4 zj`I7jjvohpXx~}l&-}6->>{KfL$IMLZs^W#g(@=eo|O=a7D^1m;04Aw)DJx03hKX& zu3Yfy!;1odiKN(e7Lsh8rR#csG@XoG;@AxMJt{I4?(xehtl}>g;tikW$db28-(9Px zp~*s)k|C?SNDkLbr<`!-K(+L2lMr-26DlC&>XQ1EhgTH1(B^cJpDyh0J|IHCCJ?*5 zw+$O?U3Eq-{3B#Td>D+b&LR|fH(%K;(r+f)q()GHAvS5X3_psM<~P= z{U1N9F3Y*}cpU*t7al)e;q0Qy{ZB=l|Mt=0^+fOf>09|%<}0KisLA@7w*0S6EB||- zSHvW*Z-ugM%n_Tj1(`Zkj$K>2Yj|VMGq@dBg`t=PC@n?6obHqYpRCBfGn?tdr(=qu zE$Qjiqa!ispW~~mt1*+ER>z^vwc3ODOjXAV7NzJ&{gi`|6a?4uM6{65-W}6W+)}hMFU2o^u&U)_n zjZ4yEQ2eb4BHBvz&`(fyUyIveP9&cEz6e?Qt!cspAE?rw+>gldSy`))zv7**!IgbA zJ}24>gBS{3{kHZL_~YP)3?V|vvPyi}>9O3jj}+8>gaC4O!IzUTUb(CJbKLME6dSRO zviQhtLBn{S#`R!1Tg!T(yE^n|`DMh(F79Qg4@|FgIV}lm|7A5-28Ez@9^`c&C@k6) zs4;laOWQ$9>=G)K-Xm8fA|Cg2XB!cb!ayfbiyWd6{<<+%K}#Ch5YJY8+hnkb0|lp! z{b>DXY)6G|+*r;|^Z{N>u}}oYVqNJnH$?H}z(Yp$!u*FR^wu6Ed~w6ZqkqZ?BPm2s4*~v~$HVV*a_{w0u(<() z6P|A}`f9TE%LhK0Y5D@tRY^t!#8ilT?Pbm;hW$WY0Le<=LOp=)4oX%mY4lu<3l{%0 zWgP)g&FZh|8nT>X;vTwwAS1wTxF;4*D}$clPvk%#_mLKuE?Ce!{Y1Ye=D zw?g|cytlHlQZ!&Tza{p@cSM(N=`EJtI12IRhyxz&(J=vHOm4Q$ZJK{f>vA^%bhRMg z_n8~sx7s^mPMEBIFNy#v9M!nH9(`tW=4Kh-!1EOqMRO@qD>uF_cf_r-x!(g*Z2Squ zo4WKVTsSABlk~MS8b{67ciJDL_^|9=nY=Z)~j zCfEO=5AEN5*%2CBEY$q5aun{WKB=Eqo^xE^gA&v80mzA5zCSmwV4ugJ!ML}cOKU6k ztsrJg{jM+d-aZzAJ-dxyCpwj6S?Ok21DXJ@lxMvkDbRXZM8x1F&F@LHtgqZbnZS@F z)r6^mM{sZ4_EH-c$k{Ou8uRd{*V(Ull|kU;c`%YH#Ui#2hN;x_z&o+~8%wg(7Kf~* zG|dkaF1Ev0Vq{#;h4jRnECM9groq>I+rMVCdoWQ^L_B!m#;eHptfTjqsepGT%-5k- zPWa+rim;c=6!WZ-eVQ|mxxJlvHIom5o-V{ii3Z1L%}rN zwVD#suRkN~iEu(Fj>8qwfHWVEPNPL}dPDf?zuzbydVOQBnE%R8{@eTd&0S2HGsdmY zf=af9pMFKVvUl(t?dEoD%!RYu_C>jyz;>yi_{i9M7h=>6OH(L7(=^o{Ai(D19{&{1 z51bWf=_D=dx9BZ=a3DmOJU7?8zHaeIgL)hEAH#ABLWIb*M z3vY%>!jPz;X($b^?+uwdaZeXD+_7IzciTalt0kdMp7BTRxyFSp5tHTq2tLh1RB8g!2dE^{`#vFGTvcZW5e0-!(BZguc}>Wz3{LsKnXa-Oi^^Wgx?b`0@z z+>Z!LceoIaKEPv6-?tU){Y{Dhngv0dfV_#v);jfo=vbj0%$#ataz2jAmz!v^jTNFz zC9oxf@jnHL1qjJM)iC#7-XP_-adisn+WE@aG$Nvsf zTBQF$Qkiz~3MuzPbL6LOo=5y}2#f#ok;V8Y{eWv>Y_w9hIlR#UCcAz6em-!)bM9EX zBVsNMf+K%*ys=&0ZlG*81TJ4*+xiTtPCzt9c)}eTd_Qvm99@vi8GOj>NvVa8F%VQ% z6W)@YTVs2*G#r7jev4{;1q; zaE1>!550Sg`wBme@>!5E^uY$_kcSe*95VRjmkC*$@e}7e7waO7>FqnT?`+@S`1qq6 zr;*2Nd__WtRubfE3At_5VE`Vv!XypaJZ2g6%3g)OB*-i4GAS*y1m57=%V3r0v}D=0 znXsupv(a;1Y zUMhB#-7i8X^umb_+IuZINzYmLJF~6AJt2%fC@rnVb?4lg9~>-kkJBZ{J7Nr6 z7T1bot0c=;Ol%4{riV5XcD0^Hyf1HI7)D8=t&>pQ3j%Cdf#!c-i>vTJGoIxPX4Y}n z1|Rb$a7_BYGBLH*;U$pEfgONvU#AGH)d6Q7PXzcTVL0sgeKs=e&CBJOY){u5Ez}CS zjK3zBQ1&5N$2?iscdqjbo-l?U$uGMYkb;wmy$cWTXpej@N>Nz-l_FW@A1B_cQ2L5@ z)RdYCf2_R;9^pBIQ>G%_7 z7=SoTPE1G^?Q7>?7Ek z+lhG;B`gy(PBjB?2(u87Lp+0v#tAQkTG6di>lp5wmegzsB<^ zq<|)O)(Kz~-0}I*GAX#N*#j>gC$alWx1%i6d z5kcSlXs=p_dZ=AMGe5RKn59n@I9QFSDxeLk6u_Bx+P0N$u$`ljwcrXHnrsDnTyRfW ztS4cddpjflzmb!bnwnH?N|692AuoyRZT+j~B(lC=Ti%>|NKK^EGV~|NoAcwDP8Spk z+HL(*!sIcy`UH0yYsr~Zc(dx&7ltsJ@wqv_<$?tE*9{TX5e5u9=l3TR^IzGrH&eRv z!W9%#eb}he?}4+4+{4W$mFd6unz6{s7W=+@j+bnntH&GuNap;+q`5^;n##Y` zbhCf6eQUb$;{%mF_sZL{8@t?38IDUlUc6Vf=Ci-{3hf$HH*&R3>#kU&Zuv(Ge4l4U zBF1)&3(leljc@-(9nl2QSv$<0dlmD{Lq(WX_HysudFAo3S0B)~`?NW5r;nOV1hId2 z7XwhDETJ&Y9&7jH_)`hQevFeW@Es)S=#i7i%;-UB9@ zM+&t&6wa=Py3!f)y_Xr_$;~t<2=KbmIOQ4&*L~9FGM){*6#}PfYVytASDkPvx8DjN zF7=}t(Zc9@2-ZG=NmQyWJB6)6j<!EQ^?sKLvi2w0Bppe zRxYI|a#Qyfj|>Tqbtm!bf1VcK3Cw)Dd%`q+KV+LepK(u0ytwIz%Sp0X)EQWNv51vs zlNYhi=BYLZS&ZrJO*K?!MSEmIMZ)$uqhU-y4cBqAAcXcutzYV^XLte~L$G%Dj#}}w z7!-lmuTHC_SzCCH1ZlgaP_M>+VnOSsXPyQ04g`#5tRJrPGc-Q^hgS>k3`FtfqSyx+ zTs4IoHFfKXu+Ll(QcA4SZ$Yc?bJzDTM0#Uf?KT%uA1KJshl8wtce(w5g&>m1D&#M4$i458_0V^% zr5cVU$4+I&DfmF2f*&~M_g=$9NwbDoQAmpbAZcw#-Om&@`s6k9z%uRy7X(H*DH^;D zP>z9LLxyE9FZ2k6paSCDm0;GDltzUtsKhI{YJlOmmr-nO%;@ON7(8)_&n9+{xGv?G zts41TH1j%k;FBepjm1a9sg4+jr+G)^i32gB8@&XEu2>pAR5UmZK>BNMg8pZODlW{3 zgxK=}ZY_VoDcb*uEBS+CiE~h3Q_m0N@eQH{VRqoXJeUT4lZ_YBGrT!yFE-*XM+XlE zdZ69bowfcskNe4Y>O*Z;+q++1qYZanB`^$82ZXuUxhcc9koLi?)-q05lR@<{DuXX% z6SEJxeu_>WEW1Todx6RciX0b?T;-{-BYXU z7ALi;aF7+YarYYTz5F(nr3~?OhXb^ymL+xqCqs~1ApzRtmhZJ~iW0d=(1^JVyH0Jr zUKRR%`MGTavnFn(scZLh!XILt1=|yv8by6FBbN~6El!jY-a&;`Zh&0@m>mEiFqLr| z8EOM$>*B)b3E_5(m)Lf0ufXL1tO>npx|VznaMwq)RfbK4cglCZgOsLv$6 z`wx8Ij*u_LEzEC(P|`Yh*|z!Kk!GN`>eWrDvEGTmA(6b$ao!gYIbh|c=^kOVb_6EL zkKH~U#iEK0B0gp9uY^+ zhWE5B=6qMT)o~9m>)r!ywAU2^^qmMWDO9%|B9j0%>COSAaegvrPA$OYf$p+zk$whX z9@k!%>p1gx_21#{zVSZ;pX!cT{5ASeh5f`XtRCTYtcI^g3l%^3EE9JzPfH^Q#FB*HfLZTH;MhybToP&>{63~f~d=73?w zy=-uI`nk(s1v6b)5b{ALdeH!nGLP?)$Yds}1(o z#nN!^#_guN@|aL)D1<^oVgAeUX_gAxg};pX^Rz!MwBE0>dj+uR1A9|0Ef_s6y%sVj zib000u)_!&=E^|^gTY|93~*#Y+?4$QWlP7tm}UY#Op)P+4`83c46t|h*t7zG(}o|9 zy_B%L=9fmukvWhfj6wZ$qEj{SvAWxo;cnw??HQF?5N>Ac5+#*>+BI3K`>I=FzUM6UuT2-S%y;SrhR6ro(&OE=YTc2o-? z91uPcSpdZN+Yz*Ju7*$+DYc#f+nf!IVEQDjlRV-K!K}95^*Y{b<;lW}!yFLuLh4idL#Lj&8{xcX;DU@72gw|64t7i4u(iMUS-9mBIcsNAgsL!~*E3&k8CJz8x5?Ww zo}H?mbsgIFn6<%*@Izp5+WIN(aWq0Gl(O&_LpZEIZ2beVNx=H{F)=X_Emfc0g}^?& zN;CJ6{xHHvz8s#@~$qcTH`p%=g=geJz!<32`$Q zQf4zQgAm)^axh^NtO(lQU}kBFocfQizQ`Woo(u5JtgykqK?L*CE}l{qFw(LxAh+wN zi@!kxfXX_44WT4j6$AxAK~NAB1O-7sP!JRZ1wlbj5EKLj;o%XKP(leMlu$wmC6rL2 anfM>Jf?9f_bZCeG0000