From b8d0c3468cd42654fcc6df5cdfc44e99fb76092f Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Tue, 18 Jun 2024 16:18:40 +0200 Subject: [PATCH] added separators --- gallery/example1.pdf | Bin 43464 -> 30091 bytes gallery/example1.typ | 11 +++++++++++ src/diagram.typ | 11 +++++++---- src/renderer.typ | 31 +++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/gallery/example1.pdf b/gallery/example1.pdf index a3c2da1acec91e6ec4021cc6b0f67f725dd63724..d58715e09cf11392306662111e7aa3c9a4fb06c8 100644 GIT binary patch delta 15881 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 GlKMZpUuL5K delta 28098 zcmagF1xz2o*Y}IN6nD2${D*sShvM$;?y^vzxVuBK;_fcR-QC^Y<@S00uie}?x!E&2 z`#CdnGTBUKvy=0UI0YY?g@~1e5muD_p{WojpZ!0dZkiZbxJdsQD+t8M$xByLa_E&su_UE;#UCVWd7H4e21-GNEFbg{avXTfFVfE#J@}@4Q zm|%o=@RyL<_NKByp7S08_>#)r+ur@JL--R3jxnJ4PM`U$sLgksH^>VTQp($k4|bV0 zKfqz{NgwX`l7{lay{y$vhk#Lxf!suf;DoNMP3_)K%m)=?>F2{tQG+!M%%%rNuketq z1qMl-oA2dH&&#G{kPqVbg)e%|NgGl~LAWR!HyWfuJ)7*_wHe4O zx$o;)XNkQUY6H~?3%6>p!u(ynrqjBfJF_Y;wlNv$1*l4Q+f&tz-*^JKAPYlaL435F_-jT#>V;5mPv zDcK*rhzl!6DNlv2VMJ&Dn`xF)$c=xkKKCC&rOskPHBVI)Ijcncih)x26Bl+>Rh6>z zN*>iJt#Z9WKe-Nl{#;@e67?MQuBuM^sA{i@;04gB>?!>zp>WX#8M(afDcM4nB|G?@P$NWKki%o_t(6mI{)RAB(vzaYm2P}OAz0iXVQ!K|FIPlaGs`K&?$q@NQvq$qs`$kI;Z8{Hd7jr9Tjb?K40$XntZJQkf9n;oV zBO8{mm7Z+(iucnS+jxD;eT%47_?_lYOIL_}_Q;>EPj%aM6fTrrqC{x`OFX|4o00&? z-DG0+yE zyz4J8_8BEOnuF5`f#)OQA?Go=6@s(@@GeeI*5rFm@{?nEP0v;)cQ2nbwsT)l=eAiUs4?9uiVW6wnVF6zwAFz*lxW zmm-onK@&kEK{H_DBmO<)fn*i%N<#`~$GhWEvjBPYJ6b5ga01_9j4$LLtsZkzZlyQ+ zAuD17An;-h9~~G?s@=?gh-+7KbPR z<-=Q!axg)|25)yyr~_SsA8${yyAp#rxPl-*k2S%Mp{KrG)F{CE?c>^a*FAcZ#m{?d zy_+{+5wgnf39u*Gc-lrLQ3Eud^L%Yg&K8Yn1_f}vfiuCu4T9I_r8eWs$akBw^BT@U zKc0t#8VuvAn0JS>zcn}m*+kxEXHQEB#@+*NG3)$|&Swubs{@TOzP{xaW1MQt$(+f& z$*jrz2Sm4#EdyqerqQO6nuAIMk;c78=J^2Od*6{gAOUc{L`*kHbg{lH9W_ai5O&z# zZA|m$>yvbt-W^QmP0QueiSvr%M5@JLM~Y{10|#qqF_V#*+@1$1=5~V4t7+`!2iXGd zFNL%2IWK#2CCYupex4^d#eRM#>&lmzUiWkP#Sb|v&L`Q*?l~)tR;MKy@)ZK}z{!g; zo%}qIT`HjJQ);kx9+wl{E>LS~VnAt5d6V+$=XuHG4j8<2KSk87Gr9OK+%Hz4(muiw6l^g$VTACZconU99$F< z2Alv)qwF~Y?9b#Ocqhyf_*V!Y3b-VHUNBV1Qm{>!H_Ryr4@72&X6P%HE#>ZY|1NL= z$m;nUn=coznKYtHp@gRmS6JQS{-WIrq?C}%MOO%<&{z0dH2%S0kyN<~;HNF%EFr+Q z>DFrO=MPwLW4s@OSG-$~WP?6P8jHa+@KRBWLLM-l$Xh&Hp{zZI(ae+W_a(;J}xE~T&c4!khY(=uW|7OJ7p+BnsC&5jE zzaYdX%8de8uC5O_w}}xv*k@-YzBKODVjRVVQfBvbNIdivxCDJ6CgeB&K*mBXSTq;f z2AK)U~!lQ$^Y33L&#v>`1R(GGQdBCdSb8^@#aVr8Qbte zxaGO^8rucs&lff2d=ItdyS2qsBw3Eu-6KQiVPJaeiSL<*B0g7_d~EOreUrw6nKF%LXn*6Ge;Y8>a0v@mEBgN64p4kWbMsteLseTYUu zkK|u33Jl^G=CM%NL?Hxr3ydd@r+ndkYWozHwh5@7_+QbwF}g2>qIuk=sDz^3h9*#! zrE)h>mY2zR;cM&qlFzRk(M`-hS-@%&iA7O9tpHT6mxh>QQlTQ0Kos<|e#04|7seY( zBFd>P$pxXG?_4u3v0F?;@F$n!_p+P&oZ-3&z!$c5(@Rw8?(-!Pt14%j!<5FH*#CmU9(HhIlp3JSw1Y8PwxQm5PiNV*Jn19 zuYEK*ihxV(wznX|jLg?PwL1UFr!TlaJ_bk;0Vc{VjzQMg=%hW>dzBf}$wnjw#a$VpW20u<572 ztu;p#VDLJAp&2GkGl6m3rtB7Jr;IR3AdHu}krbdM4epl+mt>(OD=dgiOh8ZyQw~Wh zNS}+<0!7TlEf-{uks+HfT2kH)`8Z)&k|Rp8wxrj`1{Wmhh^$ER9+O54896a%3RhBO zK>u+Z@kYao{@y)n^c<=F&Ki}ve~2x@%ekW z-16DvlX2$5w|mfzk>xb}1u5lU01-P%)P#mTuktL;*dz^ZJE})KKolmjILdqoR6G5o zyIVI<{Omg5E+zPkuqlKRZ$5-wn^?}#2?%RP(nN&}f2-AegJU^UALejkipsy0v(Y{!JH`58YaC&&Y!sZ06o9c zryR%=l{JMm=@|Xvv$|&~Wo`SmK?TL!Cw;3M#AuW*W^2U^E9C_DdfJboB93|e`Rwwi z2wb(fjmoEeO`Hum-k z4;bp+-VQcM6D{xJ+70?pUtrk%fEqKQj7^PQ9th-$iz?%(R%mRfOHR+cE!#wV*N1Am2~y|=F~s75rxJQ@ZXCg-?;;~Rq*kmP0M{}XeU$BH zhO66GSNJYk=bWu8cr2M6Jd%Tk7*~BDfj73EA_MYN0xP(O6Cz&Bg?uiNhP-pAY(g8< zsf$&XuI1GEGx<-3b(|-EG0=kAX)(K>l4Fokcpjf0Mv-yq{EYb9cB54xMuz|%nvmhz z{5&rYs!Zl+*I1Gbv?}Nukgh`vq`oqndN#i@58l8%8fNduUGzbW=65qDXRL>aB}=rS z5@-_d3eeZ^E%+|=-*7c;ZoR+`Mh`AIS|s?_Xl94jXbK=3*YUv{*ZJ@an0bQ!6@-7~ z+rNT8VAk?CYMPuU3E!b6p$6p>yM8$lw6^lb(m^|18g7UMG;QwOXq$Pwm1_5t%tNcK zw1(S^LaZ7Ce3c-CWVWLs^7IdB;MJ929{pI`B6hQ`6Qxz09iP!}dUs7El~K)rp$W;~he zHIsX*H4OeP}>}Y1>Q*B>y{%il; zey;F|H_cIn!NU8eIuzA2{05nrZ-aC{w ziAz2K!@FUQhIiqZ*no_<{M`O6xOiha$Ry&5B_<&etilP7jQh#vv-v-VX(vbRWDK@? zg-9rhi^cH2bPTdB2GCNOTgjtORIvd(NmeEN&*R+AHnHfYqp z@BNV7=RvS|E>h({cErYkSQ%5+7FE76Uas+rBvuB!h*|A0s32V~nGDOWDCff|SAaSK z{$a7YQGm3eoI%8_rV**c*cMNzf2nHa=NsycMf|RM4RN?XTMaR8t^a*@tl0vj$Ozt` zIUr;wO@v(lPp!ZE&_+WuGhp|&+`Yn1533PE{dH|`$1HC3GOfHLb={(&YMxomJM33Y z>0-{<%h((MlF4i#gYa+G{0ZylFSW zMJ?^?HLlul;%dRC?Qutbm-bTh0;UNjY*&f6<&{eo7^)>PwUIGu`L9O}0caN<1^{=g zKb1E2fN1;vFg@(y zQYZ5t0WpOtTO*;}%6hr$c~fXbe{s<`*-B}i5cml0JnZt+?^{ULtU5on(WUr%!SfAneeh!Kb}3>N=D>W| zjgfsO{?HWDJrd}j99$b6S}XM;!LlU75*^Djx)l0rM~?8cCylQhRWK2zV^ZfT}|nruXN5Wvs$`A`~9X%C)a5FYnil&s-~ zAWH?kbT_;GVCApPC!mVtc@8li%THVJEj@rdE;+!UCgdu!`&zgOO$Gn!Ach?oS`b`b zFR2NSt(B6GY&|_ZaUhL2g0o`WWI@XS*EDqROmlxwdk`1gq?OCwE9tOPsa6(cBQpz= zVr0yL4(eOBU9l_nN#rVRTahPuRBgNKb$Ug7Jr6f~bpa?n8TcflF4g)HG~^E1RLZh( zsA3*zu(d}h^`(GNQ(AJ&uQJI`*fvZhl-uir#g=KA^MkAly#%Yp^7qs#sI1rV z@7YuKO)SpjC)n_G_?&K)U%1M%qkCI}n9~@g$i(K%*Bc3jHQp83TIO z`If30)sMaD2C47L%| zj1G@G27dqH@=eL%@smGd^Qi8N8D#XCXOY2Aj7~llkm8Mm@_iGgc#CJA3?l9w6|3%H zMkNem_E*Qo+@VD~>K$HDwysyFl2?F3q@y32aN-{@dXp2_l<98NFY?W7!FpT3Jc{%mVH^9@@ihtjic zrBNQ@^YVTlhh)e14yq;VH29+u>trgVkBUDih%PVUK9iax-d$MKn*-_^>5+c6YgXbx z{RTjtZ+n6!zc1_m>?SFsq@fx}b+k$mpA}s;{UPb%7m3O!At@_~nMFt#jY}l)y^@JD zZdU-V9iOY-Zy7P?vPkMWS$+jvr>T?O$=3EsCPu*t|S!P-O43bUwh?VhJ;X6b(<_uG2ln#vijqRt@#J+VhzjPZJ!)C^7bTrb~co) zflWQxM`ozPt-w_7Kdjm*v+|px2ZD*AeQFp>yHUMRQAsH?C1XErTeeAaMkxV(XIybR zUdaEBj(iKwX4(;6!!|O7l~!RqcnZja;b00;Mes{25hA+<9K(LkAMZD>;FK+lve_&a z<>|)vr&3G3dN)`1;)$onrrIcc>-2oy;hBuci0G+d4#3~jkqXu8K1aSoN|IlBQIVJ4 zK~@-&tN6=39-zw|VdA-e_Uv1GHrj}hH7HE!GAPxWU9SkqY4~CZb;dk}asb>uwO|Ou zk74D3(4fv_;MKm{fcx&W1S^v?ssDB8kB?9NLV!gK1ADS}Cca##HxQ*m(i~KX|Msmg zVH$S4C6{TEor5Ihk7e$RdX4ENafV!&a?Yc!bROwpYS2uc^T#u*`v!e_%oz^btLndH z=pN9>a}!0=F(v|S+4ssFfC0e4B4R_!pHcpn`XZNw-kxDtsi>UJYz4Y@Hbt2I8WNVF zDVglOZ)V}2+)qm1-md7adN)>jv(x)?DK&MeV40<6db@^^*FOLE>`8%5L$gO-D8n4C zaW1?D%Nf2sy74TMG95fhU%QV8=_Vl>2AT!NfeiPe)XWdvo>>>^Z+oghuc{`KQ&fzbHLJG0qvAnNbE4WTXn2j}sj;p~!yZdZGxbVoiIz%evyg=ya4QBZu=%0Su~bukd0GDW@`n*gbPrSIXM#lC z2r4LJ>}F{aXYX$+EnSEk@eS6~wMVYf#UHT8-4>jcJ;`sB^OLSXa0CVdzJT*-OX>)r zpEtufcUJ;GNdAhY-HUGX#B#yqd9BeE>*`oa!#f(+X9-A*ClNT#17%I=;WS4z=;&F% z^(l68O-hQzJwN4U{gjJ0NtckNt_x#X2&7(y146kDfB*7$wPy1(Y%3*XWBD;%?eJR> z_np_a`vS9Hj4Bv-=3YjjrzjD+<-CGJEO5Y1wBD%fj%@fKZ^+p}U2+qRS+K+(mti)V z-QMe%8}KAP6>y;Zq28buAKl1ClH-87nPclsZ$I0URu-)z@m#(zGITY!1H0%KJJ+K4 zWMbXj@DA6Inb6tIB)&5Gda>%+k8Y8@nV9*-GxEV?gJ3h zAvVs(kc9|4-y4apSROQpbXF;tW?SxE%anu1*sUQ0%pacnQ0Lqb$Qee;i!aw?5u2~} zxY}4%GrRICQ?p(6pL`>*sfsF;v=korw_M;IRoq&X`g#-4>+rSQVNjqp9QPAtmB;a- z>U97B$86wZAMD{}+k>g0_S=jc_Ya9&pZ4ybkx-Jl-~n;_J;+F~UNvOK6`nypE7)u; zBflUa+gU_pJ*4Jo8@8g9jE!e1j*rI(!osF8z^mr}*!RM_tb;Q!Yh?v9!#C5xHafOk z!=dk3#6(TxG~8y}F5cJQueaZ-2TTvz(MQMwY!W5Ol2Uh+&*=Ncbk!tJQ#**U6SE5E z0zC}G+#r11;iv+ZX{&f=s?Us*G;DcE7tx7O`wi@+Y!Ke=jb^Mn{$Tn;!>^%(IlQCJ%$e{^@)Vrth7kdWpZT=B{r^TMqJ02+@ zG)r@)=|1nCSN+eVP5Z$l%|?L}P)66*laO*B2>J2Yh?q{FzI6*V)En8Mb(vr{LXf&$ zXjK;4^QFWYqi#k;p0(zWl-|Ex(mWVfG?RqBz5XRw`drn?Q?qtH+pdXVoU!e|vl;@5 zM(@wEfsjDN!ZzUKtNhm>a^W3YbWaqZqkD7`72dDSTbVg0k~^L2@1P^`G&@YDNd5)E z_zRzZHXOY#RnlS_U9{uYc*huuQQ&)%DR%>W7 zsm-?(lQ!BSrTCLN(*XkNVyh3cr9x?^()J+MP?$yt^xlu~jB^tjT=H-X2?`FNY#rZR zIoGb{LFb&FCf+zY za-A4Mr1<>vPz6hclf}+l|M0`XTlqP!J9$I|IZJ}mTbeE>Ic1q&Cxmq%6ElHi!_8>1 zmHXitdVgH(lGB}!n5*r!@sLt#`o4wk zG!vSmKR@xYkf!7yI!_mfX}PhIk%4MI&}qM!hAsN?UuqpB>5( z*6AG|4`c+3U#|37X?hHL)r1U4YU{9JT;r6-WWo=R16p4eA?@wHE$kZlNK$3|u~(Jv zqwdctFnA+07tbUR2T7I?>;4UN80WV_^iz56hha^&fHmO4Y5B48VWQ>RiZ!T@K~puh z*{{b!jPUZY>*{6>9FNI*|E=R*hug$qYEg}Eb*|IuE5zZ6r`itcXkRcaE9GD0QQ^Z= zkQNhhQ7@CIrJ~lPXnN=YA_Z};rhQl1>xLGyBNquf1bn&VCc5E&UC^3XSgT(}vZtF< zrxY>-VX(vV216UBEQow@vBZMhMt*}(!4<~uB3^Km4B5UI@idAl9elos{?y?~e{b7_ zIUVZu#p!JX`>Ri0$y5^~A2)xRaR>~=1QIzxP8>O~x76)kM=vC&zW6qjWw8@&^DRq- zvL@(y7$wX6QbbA8EJ;M%1xh=_g?1HzHDmDsGU|mz$wp3Chkgfg6O)KT&uWaxoDqRB z`Z=q5)>_+r*vVYrpq)`7Qv)J{F?@yH({o@lEa}bGq^1!^^-+%#MR*X;YUAv{{Sr-$oj+SS(!Iqs~xEQx_}WW?zB`0;F= zk2Kw;x3P9&)kj_9ybn6?85wm4f=6xQ3pxwSbJ?A}A7gFP+vZI0t&Rt>J195_@H?so zZQ@%JhKFIXCn6&{9=8Gm4vSOkG#bMgFZBQqYbD1mO|{HI+pknLCZP{}BAm<45Ff$F z@V^h1f6lv}#yF>AxOT!9ZfQeHl}P`@Pw+h3QV^UE&&9GtX2n+tjr<^*Bmnl68M2_m z99?F0nPB)Yr{WjL#&3B}IqVx-(rd(swWc1iq)x^rTE&YwbhhM)|5!gwC-GOX(rp1b zU%Q5K0)7`%3}5vzgoZ?u+eJ|h_v@LOe*42+^`|6*(OJdFN2Qi~*^o7;Z~I7*XamvE zzDLozzEQaDOS|d1T-CY2biHlgHK+K|#cc9Tz(DlsvbX7oA`6<5mz7KPpG>c1xrD^$8t81c|wr$XSjMcGSDfgF6t^~`d9dI4SSedTi>vo zNa#CW%zeHpHX>J`R>?S$x4+6uFdalwO6bj+)cXw+hQASvlL(DX}&-YCJ_1zzM6*zj=P{X0n z!|7o4P5fc-D?fp>kS(`G`sL;Z4=MGD`R5uZA0M68s>}Z2E&=b?ouy`vcD{m^6{De} zvx$9ywAcK1YhpV`>QVTTJAQMZr)6Lkn^7o_ZMz%ZiV-nEIn&czpWquBbqPKE3&sWI z(TJHJvP&(iqc0Yl#Y2FGS#QO^wOU=YT4N&w>I@4VGs`l<)&E+#kLGkxlvb!(=qBNn zna)NR5@xX&jw0J3fitZ%{$xs9TUk7FP(G5qG5Z6Li+_(**P&1OUjG&dUf(5gwEzBj zJ3Lkz4n==xv*9_{oy^#Nj^zQ>l#qvOcqkehmpxet5X4VDWqYa=p4 z;3A(@*9*_ra3ihAQM3pFo#{r3*W_!vjh@6`oO~pYi};3cn7CGjV^S{DjcTfD!goGc zFZ$`UIcdr(SerOy2G0N{nytQ;edQ|$?d?%zJWXQMPGv8qCGE@D0&O-MXL#od^ZJ(= z$)ur+ft7qy4LV$sX0a=!X>l)F`5kba2Fg|jOyX&Mhm?$8NuwC+LKhk3+vH3K>1NT5 z@+o?Uk$Czj+l+3jzu{O^i7ZPeB78H{k$3xEl>=HTho0uJ<{k&^wSSuSCD=9mN-I!aJ8=}~#1@+TC6jk<|muBbdRk%uq;L;MO(8reir_4v5 zn>*hZABrYMBZ>hViMZ)QH6vp^&ug=iVykPOq=T^((|5lU0hJY;$8ov4#t8&P zL|F2NWZ2G{l6+qFn2ilxD%oV)_G;vc(WH`V>i02HpEr>{iQKw?_YNU6J;*6gd5Z^V zG4z%xc37|dd*6xms5AniQ!RfQinnlNT1U;oM4e?G6E+aePQ_vL_X?^8OGVH<%ZJtf zJ#!vUJguZgBH^&dNx?3g*csWSu-hjV0>URAT%R<$j;D0|A<1bI9kE_C zkit4sYK6ARh9qDfDd znHg!FV6W978O-9dlkzJfmCD=`HM@t6JLqmPTMSO6r>C<9luqhAXQ_8Fdo%$MUoryZ zjVLc|_BAD~0nXT#6q-~;dL2WFe>%nld{;azNA0R|TU2n2O z1V{;24-H+D`xcmz&ZZnD+QzwBMN^eraZV^5**ME!=%sW1)sCT(^Q2 z*!n1_6R_K+8=C%iCcCkfjL}muk4?(PR5iDuAha{XILE|)uMC+FhtxOy1E+f;2ZNYm zUet%2CRj_iCLNZx5H2y*q&iBfPN>f`lK}S?4KkzCby4zlTmS=Lp;E|%{t%(@@Ide z4y1~xA0g=G(YXXyPGPkQ|G!}I^IuXlj&9Atzm|^;vHHuV(Lkfx4`l1!n$NUf^so=D zE&?9dJXvb8K8IOFv0?i71(XQxY)d1Ox(Qw1xdIPh9Kl_&VI3iBW=;c}C3}x2NE!1c zx?mhJt^$SlfXITG;-4N|SD$b@Xa)Wsw4oC5_!B*TcS6jD=wfT(r1DbfR}NneB@3>M zz8p$LT#0|dkxUmt-holF{)4nbo@Ta$-%mByA{d(CFG$qiCmFWgK}swy-G4+%ETk6h z9Oyy$-1=m)8$M59r-HBU@>oftQ`4$`yivf$pg-MZ1e|LXZj`ZA9ACPRs#l!rR?Jms z^8c~XSf6dvvpm-Avihz$TYR^DogPJ}#-x0*@c8gez3P}?ZK0lw6 z6Yu@>d!R!%u!G-Aa zz&Zzd#XRrfcvc{ye$wb6Euq5qp!qt^8{R(MJH__sQVTF#)3I+<`mHn4gHE-$d#jV@ zYkm0wE^ZXSiHahi5zI1Tm=?|$7$jn0kBRR)ILxtHScjqUJpbObiCUneuSCn zjh)Gm2$K`O;nkVJ?ad+((*q9G#ycw34YxzH?@B47==~8x2_1pf=#Z}uW@te z=B@s%Ulu7ZMWHFAmVmq`{@cQX^O)*%I9F{YqSme!K1YuE9IJq&8aqY!But%7H?Y=k z2cQPEAnbQof3Ns`qr?_N-dy3r3?^sqx`Ix|n~_ zjgA+()9v+JvUF1OO>k{LYD3M591)5n3zT@#!D?3-8AyValHGb%zWPb)v5mRL3C)!L z6Gvf(+aJ*bgAFoy+p>$ggKjzlQMxuR1!@&YLrJ!{=TEIVBq8il1=JQoJ(4y{+! zl`-mp&gMbzdhIGlw=d1=3HG0f*#h@z@x!08=6vDw%`-Aup3I?Fd!tH`4<(-`*P_xb z1rz;M#2E41g({!(#{4z<{2x0m+v+jHo6qyc=x_782?1<)z>9w35za@`)ZOT0<-Z*- z_NnI-<~jNFO3&@W@h1PEu`h9B`lCJwCs77Vuwnk2-$vsCiJ*+)!3zb>*nNb$d;Rlm z!aLr1mhXQhzW7aS>=)N1ue82rRy@FSM;_`Z1WD9Qri%JBlAwVi>(Z?isU0eJU3@b1 zmppN+#D+hi!IK(=eG+PPF%vGixv+$UC1n+b=tNDe4Aoqf4egxe?CtCmczF{4?=5kk zwh2FYK>!Cch>@9{`JZa$-}S$Mos|850}Bf&3+Vqqc2X9O|Bak1q@4dpD<>Q2Kl@*S zxL8R4+5bjXQm+3!Ru@4aA%c%r=l?o&1X5BaaT`N(XHphc7G_S)|7LqT7hz$04^nLg zc6KgCcJBXD^)Rq6|^CkrPdCnqZ#8z~Djh>MXG#LSvN%1^|`$ zZ2#0i#6ryf5deYyBLHF+{%?^Fi0i*4Kg|D;{D8RsL*oBw6ZwxEi1|Mxn(zS21kcX$ z-^3x75DUkXAPjGxAR>eX&BDyZ%K1OkLGT8cVjK3Z>W^cT2}lXC4wJHzNW%`Y=<;ao z=)(Szl1AwAsHrB@l<_7;X2PP$&^U40E?8e&)%o(vVJ}*7p{7;aO?6Rq7LDVOhdr+H za-=aK`7hPySzAojeP1_TA37f8l0GW|b@lgCK;2aWo&1ZitO#!PwsgvHiO#4!D~d!yPg@!Vo+slG%RQ&_<~*%@BSdoS2i}oW6SOW- zq2wBRFX1d(5qItX*k8>ncs_GaeHIFb`h7(!XbQ>*lMUt5+kh`A*OK{^{r1;H(q!(h zVjyL>QfNWQCUr5dn6S73m6A@{A=R=de26QpRk%Y)r<#SXY*7Ao{=d`dTzF*k9T>?V zThU1t4v5QQ%IrrO7)Uj>=@Oc6*>5@?LKaw^=sZEQzjepZZu^&a1g=qc%652n z^#4xwC+u+Ep{L6nDx=!|E;|x$P1_Lpl#G#zC_tbkU8m(IeV1QhB8u0G+lZAPm8uoX zrelg<942t}(rsrHN+|^hO6!h`jt-8nPpn*p))CgN){$FXTeV%9PA?Yu%e{5ne?0!W zs6R%ZWs>DgUC7`_Z%lPdz2I0k_v)Urd5N;jIrcxUevTBY@7GkKhh*T8DcTnv-N(+^ z*BV6_)f!b!Hm`WEz*|^eKsa?el|Ri|@Gg(h%BjAn6EOB&_F4j7Y8u90g6|XW>lxVZOGFRb4=%43-bKDe@1R%mR~QLEqEy6@iwG||f^a@sE*h4w z%e|gUU?X$-h7R6dk-MR8lnqR7n8TI5#eS>)p6ZsI0!?&Mxe%TDT~eXqRpp2=~L zs^m%;Wglf7ivw>m!R zpB7oubMI&y_RaEEJ;;^SHq$aQyY)BIt}A;kI?zsc=LB*tJZhBB+B==K57)C|-24{s z)B;cN*a-y)P@E?fhZwi3rx<0yO9^aP-kPzieU%Za>hVy}};5-oY$= zQhSlSW4ud$OTjP5DD*B|pP8L;o*A7voyn-xBqonZ!Wkm=43sa9IIZo{O+kKT`t_c2 z>Q||q-v-pgym$S4uL^lzbbQ@3Td`~nSp}Mo6=(fs=?(;YK46vr|G!3#+5;MljfvXn z&F`1>XLabOq^G#nX$>PUtV^GE|FlW`3mprP3n}GQnww32M(=Z8GcO%cOEAlrtFqdT z{T~rFWwze`a(g!Fd~IG=7V^IQMS3--O-Mpa;sfkHy{P`Im7ghTkv}NZ7q7s&F9VoO zKuyP7XOAE2nc$ZPcW!DfC&GqkhUm@Sk4at>UIG92u-PrbJ;DRoz;~M7kFu;&!%yBU zfbc?=;`p$5GqaPl`t{Ol)6WrVnc(-@w2Y>AvI^VqDVRu>|BC7sGUHedv z0g@$X`aT*i#2=j=C!61is=M+$E$Z?;MQ+EdKOd{RrZi_-YHk;^+IR)e`SKUaMh!k^ z$3C_fu5Pz|w~KofegQasbt3wrz3|;>{$am!J5tC?5$QtaM{A{40SL74 zZ-V*q#PZ67Q$iRKv4YKlZ$!BBWP~w9c14UuH1i^3=@PM>ew~qN58>Aa{R;l|3nm06 z80MFf2yNcp52YbO(61d~;n4bj>&8NGePiQ8@3rmxvi`H=J?7lLzRJF<##i;#^?Y?X3B)=0AQQFk8ExX}3T zAGGG&VfECusIa zhP`4uQt=g^qt@JPHd0%+1i*b@x}W9w@W8KV{V)Pt)4A@@w@#-ItVlb5x^=?XAfHTs_d&M( zG6h9=DDOpNfOW+=y%QaQZFXb}e32h|<>=En}_uTiN@+lsI#_GNlUj>7+xGl^8cei3I@CHW(0|?LUz$OwgN%@ieqmNiEav-}C>=v0V3AeI7K0E65QAKv;9x$|9Q9KnNbgd|7Mx(D zZBQAZ6x%uzkM0iyoEm5>GV9*z4dn8DNlfu9X>TdVzVJ7V>y z7TssIRtw*MqGoK-Q1|CRk#LYb$iA`(GWY1q!uo$gGh_sMBnwdXBYm<_s8K!r5u5wY zk@xpC0NO3-708pD_J58t1v4OZXfM&&;>A9oIOE>nrcdj>9s|KR_mUnt8@_cXXfr4`^U6 zG&y2zuvbtHnF;09X;^nIl8I_ZGvQCO+gYRGxOJW7e*>|+nur&SdS3*>qlBw0Dj+We7{@qvH3SsE&Y(niAkTk#} zm2@kN*WUNw9?Gri3=p0_U#>ZWkAx86G1GSdQ4{Mal=yLk9{KJGC6|8Y`(*ZRhi(AV zQE|SQ-H+Ia`>Cj(I;C4gI;es_s#9n~1^EdgJe0p^d+ovO<00P-*}5r0@*B-CTIX&C zVL#MSpxk9Fzw(0#RBndY|0?=edaylhkUBD^|~{5MJby8ni(3Lr4!a{*4V z{K}C0PAR@cFkVlEL>vti#V2HeM9*^*d++Qk$oNNShi*eh{tCz2b~_sF5NkVp*WB(XQ^QR3V2&GC})!>PjTQMd*3TvzuWbJ>W8FI_V6H097(IV zb44IKv$(X_n5#Pv!LP6&ow6W1F98okF7FR;u-97f7gwKuAt!qf9F0Diy9YCeSmg&; zACzg{*5I@79VQ%5APwx9NzJaDL^GctjQlUTC9Dm=7!F0j-WL4{&vZ(J);uk?C*{w; z9j_Q@oGLJC`-R*NIgod@WaN();kkFJ54rG2mMC^(S%2}ehxTm*nM(2a0Bk6ZNzwLV z$GI3WZ&@f=#eLM*p&>3$sysL1d`3J(E&oqpUjbCdvb7r|xC9UG5F9oecXxMpx3F>D zL4pO}*})~j-Q9w_YtZ0MaF@rq_tjtTp7U<~U8`oMzSTXer>CoXR?qros9xpSP2BJ` z+_Xnhu-&YQq6GDhg3Q0UlBd};#JeZjf#%J#qojYMwSy^19KK(12|Vx7W@ zWmluOBpe%E?ML?T7|%uxcBVb6`@tejl{SRG1W#XaGjOTILo0&xmI%Q$Cc%+aXuBc# zYo@!tt4IXtz46bSnW*>N=HzaaB2DdZ7{6oypOj-F5)w`~6LiNT8sFc2Mv(4VmED?1 z$oPpx{m~6W`luzR8puv%EKL~~*TpyH%|w}lWs`$tA-!M?yoOFjFi<}(AJ6`bXd6Y( za;Nr;0Wa9B#4p7xTZfLfBn&T~!cbd!N^tXRv5TLKh!MSCuSnrWj~;MJi5OOVKNk@| z%c%iJecfk$YsPuaO?~dmd9KMx9LK52*~imuEPVtSjcBqSu#seS48sIU&{4b3w;I4v zkL8RGtiOu1KjhF`?X~=z@-5s$yv-x=>-blX0W)=I}U!Dg;h+y#%r;d#B)l zNzskd*~tj67)k%lW0?_}NE*m9&F9=i7)uI5NdyR`cMYAeF^{E+96V9%n!jM3y2sMh_Xp1;Gf98%wg%CH+RV!$^?_4FVHo z@*#wlbc6IsiF&!8M(950M&Lq*Wx>b{v{sfFDGECYca|`EvaIwv@l1nSmRNdK<(O z7Pt%f={cUYPk&hO{>9pHwq+0$kQ$g9$lMghIUKVZ4l?! z+^3f~vn-`81CYQf4goAUwG}B)^Oo8~f>)eh)ULrhK{wKsEqIZ13&RYZPaGB-YlGuF z*yAmV6Gm(Phr*-)<=g3{kS-XrQeD~A&PTl5Xk)R8 z@8l>Bv;{MgBGd*_;$Q+u$za+!mJ!OYVz0!qW_h!w+T?jWMd2zredZ&&tRQQ?C$byQ zkDdfc$?^2P*iEXep(D_}mM5tue;Oi+*)>vQZ&u4JKWn~G>082}La~wD zD8Q*|&MJ*>u*DN@OS2p>*z=s&U3}N~g&?7&N8Svl@%R(>lRKDbqbyN(3u0MzN^?th z52c~7_@hjzvhPtXDHYU+cR|L%verWXP<=PVgnC4HBHR$AS8+ty>xZ4h#IpYJ%-^oC z)ih4f5mSltC}AqS|9Q3Bg78GI_X3J)LGrl4vMR5#T+@GO#VCvVJLz<4M3$&`1y;0O=xoJfsI zFML&q<6H8Y(Ah~O#}nj8&hDDV4=OnZzc<0@bl};x|4>2fPVM82E5GNAlJ&cm`4^qu z0!6|V0#zix9N<%rO!QO(LFRiNX<5*@ypGWIoW*%U%_*1-LGqnviOICI5#T(Jr6ucx z6;!~Wrea$iix$Nb)YFI~2cZucO2M&!&qz*96r4z5RZfo=jN~pisBT{uF{gh3~3YH7f|T&)URKQDp4O8WHa07Zp4s6Gdq*TEZLa`;l(PSiO52 zYt|wiPQo*^Lk;pQy)y{?dXtYR0dj=ZzrI%gs+M+Ix|c)<~SG3=C4Eg{j1*>4$rptd5-) ziQ|UA<3**kxpE_wHEcJPtOa#`l}1rnyu?ts3(ZYGa{tSd1WXYMtiT;=ZH-P9V^4lU z(a+#pC07G?xNDT=(a0`x1eX&qyKBMcsO}M0ICmPbZZ%)m()V1;a{G^7%l_C`OOQbb zB#&PGQa_*dfC>6`X(dtA9sC$Ka`J`*!R(DBJ&P)r)0{<#1lu z9KS-p(C+|xK`+APTg$Gu$3}zn>%hdM^#;5y#JpCnY9l}RdpaV+-MZf4W3WddQ!Jg! zfe3|jjmOWOK=+H&khws%Xz#$U4(#o#BNMdrOE$3pu-}ItQWs~N;mJg5ap{)nZULZP zyX9*Ytc+OqdC8JbX;pYjSl#5nik&MX2XVea{_MMFIr1CqGt)Tb?xQIq{Jw8%LA15KRWqeSF(Zy zY!?|?MY9@y&Rc)1NE<8Vk7YwO@@O*DpZ6VaDQ1hl+mSgIJes9 zx*6jz@5J{|%o^yhFZg)7<#wfTHS5z=bR&FwI?zHMke$)ST}Yd#WFO4JrveVa-q_m- zbWPL1yk6qF{M>j>v zx_oi(?N1M+q0UyRG=<0c(+*DPc@z{FRU8TCLl$ww`I^fCf7dBU$B<@;+O%_&Yp%|W zoAw2gSb^KPdsDe2YB&0Jep{rPpxMuJwAN~Oayunw6})*QFtvf1rp*`T5D0>IErJta zol4HgNTx`QhI7)ENH2^dx2@AF&@T3P2mW>+@N7NdY;M=?y+PS88@pP^z55+E_JFO7uVuvJ zawbPBgmKsMnaSI)JS5 z{L#i0h0je#HA;7=?~Iq9HV2GHd85MPS7W@ADx&{gUY>`ZKWl90as)-wDMZFb^eB2_ z!%?1t1t}v3j&AZ2VSoKLt=#iGX@XSh}{~% z&tpN7-*=+Z$c@DQmNv(7iTWMs+K}H)+^J+4eC%|+q@Twte%p~Y|1s!Epb3c;J4BVJ zli_}tx)I*r06uAuVjYT9PTd{KM%@_1+hc|WUY5;|pv4lb0yp2v!t*3B8sH7m2CA!k zgCM9YeT!#&q*11%mVHYY=}AHu!cV5lC;h>au@7GE&4j3bkA!_Baob%k#wKUbc07^h z=dbRQD5nDC`s6#z-Lqd3&Mb*4OT^4r?Rp|mqOU#;VGFCnjO{UHtA{%X^?eO-=IUce z2LI`ACVOVij5h>7orfLJYKd7%_R3lnskLGtqJmo}d-XCT!Q2>=2S3)WmaT7lu#7yWS z5Tzs^$}GK6xaVy{aK2ESxH7{iLP0nzu(a|KbJw%5{<*fGx?Xb0!+d5ncX#UT3&zCw zA&h-BOa4IT*Y`Nq|1^(?c@CkAw#vNk=zmG3@6U3x8YLn#74ms@E$xLwzkD9je(~z5 zILEXskF`}>9~W9iv~SW*`Z10<{6cM04Apehx4s{mZKBdS@ZZ3FQ^m zff|ZqZC}fdoG_VhDx!d|cVvh`?C8}w_s_fHpCl@h!lQ^xzoB*M^6?^(2L;%=N^aunP3iFBIlt7jE_D4a&MILgj&_Qv-KLJAK2nNFWoY{%Hy@kR741SM*02 z2UyWV-gd6=+;#VS4j~4pL5OJMgu&KF2xJW=kCIJX5)o`k%eqI)D}u!m1;?@5R*5*(T` z52>(>;);*W$uji|?q#{1X zu9wy89Yi%SnL;^!o?bIj)KM7}_RV7y=m~^v40CRA#!-if5#Zk1fU4NT`agG@FOq%t z59&}EbDHD^rW11;8o&PgQC zp+a7#w&{rJYRpt_yeu)&$mP-3u$SzMC>=IlHSF#0Y8RFT0a+CZi1vB@mdFJ{#BFbF zFQ_&bq75%cI>AESHt#%%X6GzAcq*g&G1B_ICwW;Uz&FKhO+&j((tK$#E!Y!Tgg!%o zGG@XB{kL9jN*t|~U&i;bl-(L*-&;v@5|H4X3d{*0I&t(tK><4-Q@ET_o6x4u3?Z~} zZrOU`n;(*1SbN_3!#}V@TBW1btLs_jrYQ_;rS$FAXn}3cjALqkL_i5wm1sGCD8yjq zzcd*!C4ufxRq9 zR?4%^6VwoI`V*NjggfM3rYA}kUDb~@wNf{Cp|P5f&1=Gt8=(m8nE40l#O=i08O|+7 zICG_@u7Mqd)g~lbnhd3_e+^gK8}}4|8c%!`zDpr(b{L?H!ty0JIAdmb7<90kuPn0~ z5V*2ERB7*=>5gpXfEvpbT58!d`u`ju?YjAT>(0cwQ9bL;^y;}hNpF7OKgk*-B`Vun zY-8b#dC(9G?Ve(FdbDWPKN;$7*X~^N3O4d-xdD%@TwE>$Fdq9nyWb4d38}#9<7amE z&s`JFuas=tIE^0!?(X}93Cxe-1t`poU9J?Y?d?kpuPnBxjZar3Wlh)Bm}Vbp{x~Lo zE{DkBfEU{e99%-`{3XY4+TNJxKuS3PIczM){`>0%Z|n7clPo?Kkrw|UHWym^Q>T^6 zO9qZkS4{SgNvJA)X%=?rMGsgleojFDQT<5$#PiW_US_qZxGC(H4}ep=AxLsuv`d~9*${KsM@KfZleH9v$_i1$XCxjaD5!eIll?f%RW8!&FUCfU;dnUNY+I7|Jc zF=9d8Ux>=a#GMtWk^X62X;?u6#ctX9Zj%b zB^gk6QunX~)i*dgYv_Pz&l^5xfc`_?^N=Zy`^o!3KD*Odp4+wx9fk+y;EJ9tm<3(r^c}|KM*|)qr+f_v0iJG7=LXRA$GiT;4-Jt(CzO z4Od)i!Ry84ZxS`q;1qV5?3P)B;PZR>lhzXomODoJX(w7EI48E@J)S8>-c9(XXdSc& ziTdTk7Yn{CUM83%TKEL<^Bvr;2r&VEsC!0O3RTQ4+4vJhmZ)O zUJaADcNbshZx`T{0##2ek{MN0i_YOiCw1lx*mTR6y4&O}GI+WwbG(dQZLy!fTERUN z;s088A5kUC3$uFHqu_4ZR$yLagA6ahJa^Y}-Y@b;x9yww6zrGwRQW#e%!r_subNqk zx<0VY(O6k7Gts0NHwkxiH0v9WlIzyjjn#GSo$aJi=2VS*Q%N~xvtO`zw#|tejiM<~ z6W-CXtx-1CK_(WhDEY6Czk1)^`Rom|jj$whvUGe51K?etd>Q&0{P^q6ib7wzr$AbE zdlw2Yuep#1*=%sz*awP%1AoCb0E9Y9<0sQGe(=e=D$D5wo}>q-W9NA*%e{ukkl8B2 z{pxz`+Naf}b@3z%ee-?!$HrUQJ5K9wO&mpN8P0j7G&cIHN9l=r&V6QBlB{aC@roaj ziR4!extrXrmBoSpTpgvgr8I0d+{DARoH>=Y+|!fkU3Pp{cT%5+z%zmoiJWy5Dx2s( zw(z&M#yy#)LDst?15C%pq3B;Crpqw6&7_UZjOCPr3>a9(hDU9XE|X0XlMMP~#BU}f zVQhFB3M+wss`>VQHtu1w4~z)5!^01Bf}7GgSpzA1tlWp9mKSUy1E3 zCH$V7qE^Y%e|C4Pm`!|R=q*hOt8=*d;gK+**Ncp$+XIncDRCv?a(D`{mAED0TVUI; z|3EOzH~Dwuf!`EUi{S*Ps?g`|sUM7gYJ~K%mpI^_=M^AK!-9<*uQ3Yu!gSYEV;Gds zXT@l6dZ!~+!wwFq3|u8FOAeS|4D#4s(A!0YJc|#k+Ecev-Y@;U<{XprAPr>IBgV=o zsi5MeO_c~4!d6~J?L35Z%p{IsIib2dyWxBy*ErSbC?i=Yio5 zmQP%Kn`mCK{CIh;jpky}6nWp|^uzuQ)4msJ+V&sK`xQ6!{-U>_e(S|5ef}$_W`BDa zAt*~gnsUb-zrynl;=Kp{lL|C2Z;Gvd5&~wp6se!aF+B^FSE&tM8^Ta98OhE9??6S? zltnJ4RJ4ff$r-~n7lpsp7hT?}FBVUA92fKp6Ec%O1O)<;$yStKil^eV?kB^G&Se;% z*r9=y8PD5Kns;oB0pKrcfg;dnAKCyH6rtcWYK^@X#(>>p?>kaxJE_W=`hJ$?J$R>& z=5EyNG7fIf4BB3m(caFW6lj!JQFJ*Ay~KmImrf;V-fxgbo>M~Gv!`~o?h&EFh`!@_ z6E-+|oi^9Qh+6j}K}_2=*V8uI3W(PQgNWt1h}C&dc9(Y0lO<(?`keulB6qgbHj#<7 zkU0qBQ%2JBoI)1+q|o4{D^xfiY@L-CSA2;DeWpt}(cbUIOxX(WpA1*5z3ZfD@_`Rv zj}-n04txA5?+Zp~Q^~t2z9fU5H2YPy4lDe5uG4GxV}Ghkd1lO9&6^Ua8pvR5qfR(! z71CHOnp)!A$0+Tv5Ljt<>S#5}Tl#IVbUp1ZwfQaoh>F22NHUaQVp zO_y#ECp2)|Q;NUN$8GMF<;k(ANpcRJ;?A3lk#i4`pD%IGkasamqggAQs*}4!fR?N6 zvnA#ab$rNsRbAD&&yMR1m1y2yK;848&x(0WikJLQ?jrXTdEyXckcG(N0#*DGX09nL zx-k9QL^}!td)0j|#xk%@QAfGvwM&6V9raeTy1qd0T%r3uuWy}vN&jRq`Cj5vt$Lm? z)K^Pi%^Aw1sjoZ&YJ&P|HtXhn(e#}a&+&&w8t>=nw2HI!k8U%#e^2Pj*)5pxVazC* z;*&recI%r2K))5&O6Db%<@PeN$bbLLn89K>P@|<^nKecv#s(fGr!nD=+}WiYz6;qK zX%#zHgpU1OL1W8^ZP|aYTczMfC!MC7TrQFWIRi$Wuxe^HbBp+%wuhFZf6 z6G?JzA`GNF*oC!pq$h}T>Pyy_E~V47JZSJ(c(nk1HB$xk^K#fhnna`w$_X;X?xFHV zj7ooGrV$jO)8~7qfip$wG97`{5_z7q67?0i@(6XKKfv0hj#@=hdEMDdW{jjLC1|9I z;f3y%@`y$56d%yil@W8T2jKFjW^ilLQ^hn!YDN04RK5=;XO<$Yuhesa3&zk*QoO zSDds1Pxq67sV9n&XVnZrslXLlaj(cTAXc-Vx_m?q@<;=noHVpgBGDV#hn|hVIa{KM zIK>Yg`tZum;Jt^#o1|3!4*UKc-~)%ocd66z6{_gxmxB1o7Z(E5J90@Yw#3)y;|~cm zG>~!r_Ye_&#t%Fc>=f!oe+ATPx@bAuS-4nQQE>461)>NGqgXjxx|rLepm6X&68L{Y z9ASiNVg-<3Ac5u>31ldca={G*0Q+B=A@A&|Y8r*2;2?cYn2-)+#2Q^OM-m9XGiCxA z0_2wwEi3?#X#5%JuMlCtYcw(>&{zT%z){m}91e&7`pN&l?7iw^@l36Ccb6~qg~W&Z+cwceUvj?Rz2RBt=M z9C_Z^oNaKiOV&5C8n-sR^>j0Mto%^fybSBrhcsHci6qTeuZyR%28RC>M*%*%C*Io8 zt&KgdQE_xNBw>j_1@s${6JwG<(EvNQ*`yl9v(;uB{$btlXl zd%ru8pSiWoM@bQIx4UpReB-_&LNm_s^rB`cM<+6gXM)nZDs`vo>huK~x6S>RA)~I}@-ypV^InR?m{ zliAPqW@#e*^G=~m0Wo+d+^#+#m9{of+{8_>(H7}rG64h0W|74ynp{sI0mtNNh?i@4 zIftNyx@+w!Z@>Hy+xI54(KwD!-k91&OJgoOo3mEN*m;L;^Ko=9bw9hS)J`gp4>25c zSoontruY*RqJ1G)y3DR<0^i_i48@e@ri-C7cT=4y3RKUjY6!Ny1SV_wW;b!*Rw2iV z`z28`f59lKZ@uV5nMX#8Q(IHZ+cg@UpEq>$;$NNyvA|QWOjNQAYckp8$&5`{d(KfuB`UApgXiwDlr$5`q=1}IlM3SafmCaIlZ zYaK!AZRN&(>Dv5ZowKb$wud+`@o0EE=T`R}70(x_a}B@(T?0(RH%2wmjNP=6>}SdC z?b>QK%ouG~R0C`5R~kTWk}$Qqb9!iDcUBRD1c#5{^3Wf~KhL&@j(`N%*?U##t-GSr)4Bv5}AF zdnrNypL-sxz*VPYmAyoNt+~CPr66~^xL~^(VZ5KR3cP(@%N5i7e2W#ORVIb z#GH-7jp0+kz3K@KX*dW5WHMe~8E%RgpWp2A3b0K*7Ag2Z$qc!9Q2N2Zp3vwVfA-1~ z4{#T)OiL+jR+k2)K(XDzs;fcdzDq}6%e>csewSQLvB$F2X>{Fnd<8ICfFWRGwA*8YrNq%9AP+u)s=&EK;dL;h-(%!3Dml?O2NtzpwV3>FtH9`^g7j39{U@WdGX z#Upe3_8PLy`JRBX5wpT;3{fF=(-8lwh46buJ6d%$-~7lE(N3*Tcy|Gg4ai*p1Rp*DZD6J>!#dc zwXy;#cQ!jZz#HQPXrU51?-R-t_p|skggIljc$t%Zk7A0}gj$s^%G?0HhhB+Qmd-Zo}zO zM_HZggIabf9<-Cm;wLUNUR)J$qDVPP9L=%)q7-2xo$q$}U0Oz4?#@6G*wRJFpj_s= zm6+$?sNpv-ljp@H{+rC64FGks#9nW8j}5_#9VISDjZfd-9vJ1iezwJ zl~cJ$Y{t-v@xfJrZU(^tB^S}%s=`9TZ$bi5?134a6TlJX+0T4B(4151ClAx~YS_gj z{1YeVPinPqC*HE3tUp>~n0Z?^aCrL3M&w79r@p7nt#0T&7QrmExC>=snRt6Bq>^f4 zai+i=s2D{0rKI$b>RHOfD`RQWq_@S+Cn!sQ9f~}Za{YGr@f+~E1vnOgGhmG_?lFbuDWni_cN;`<0!LsCbib|IbAxeb6_vVS(1(T}-OVvF}Tse@N z7)C@qdt6jNHS<1kvN;_>>&o8M9RZsQ&fnv84cwwc={tiKk>w&!if@2BYon(h6tmy) z2!xyD;P;PFU5YYug!v*nRwO(MB6^Z1qGEuq)&Doq^46H}62V8~@ya>-`ejiH~ zQpsX5hc*#%9>~^J)6eenvXI1cPwZVHi|(7oa;mD`kKKltUOO?f_b^9&xg_aMbETfTC4q?QCSPhno-Qi5>tU%7(!$XXA+s@ej{x;=L_m1TC`6ECuX@+4<;?Xapy z>($-MYETe*aW^vpPf{u>cfZ_D>rsX%uhF7ZnMvG_MAqf+P1JSO<>yqw;9ZqMWyI2E z_w{0ZpW10q80=k!7ii^I%xBh$ErzUOpWLW^w;l_QR)P7FY612*-&W%M$w$yzxkA!X zvnzz*7GrbBUdInyNRX2>3>Rd;Neqsi7YIRfCc%B(v+FbbzmLZN?ixX7QCN6(UVb3t z(?^bfAJly;#pePkvb&1$a=YnT>hpMeh|6i1@oIWOyjgRoUL6b0I$vYZx>2VlEUD_|G(P_2{BOochxJmQy9g~-3;XJ4YIOE Q0Rnhl>6f&$QYzB_2VejCUjP6A diff --git a/gallery/example1.typ b/gallery/example1.typ index 902d151..9849119 100644 --- a/gallery/example1.typ +++ b/gallery/example1.typ @@ -42,4 +42,15 @@ Alice <-- Bob: Another authentication Response }) _seq("Alice", "Bob", comment: "Log attack end") }) +}) + +#chronos.diagram({ + import "/src/diagram.typ": * + _sep("Initialization") + _seq("Alice", "Bob", comment: "Authentication Request") + _seq("Bob", "Alice", comment: "Authentication Response", dashed: true) + + _sep("Repetition") + _seq("Alice", "Bob", comment: "Another authentication Request") + _seq("Bob", "Alice", comment: "another authentication Response", dashed: true) }) \ No newline at end of file diff --git a/src/diagram.typ b/src/diagram.typ index bbc9ea2..605d1de 100644 --- a/src/diagram.typ +++ b/src/diagram.typ @@ -48,11 +48,17 @@ ),) } +#let _sep(name) = { + return (( + type: "sep", + name: name + ),) +} + #let diagram(elements) = { let participants = () let elmts = elements let i = 0 - let a = elmts.len() while i < elmts.len() { let elmt = elmts.at(i) if elmt.type == "grp" { @@ -67,9 +73,6 @@ } i += 1 } - let b = elmts.len() - [#a / #b] - [#elmts.map(e => e.type)] for elmt in elmts { if elmt.type == "par" { diff --git a/src/renderer.typ b/src/renderer.typ index ab67726..50268a2 100644 --- a/src/renderer.typ +++ b/src/renderer.typ @@ -169,6 +169,37 @@ draw-group(x0, x1, start-y, y, group) y -= Y-SPACE + + } else if elmt.type == "sep" { + let x0 = x-pos.first() - 20 + let x1 = x-pos.last() + 20 + let m = measure( + box( + elmt.name, + inset: (left: 3pt, right: 3pt, top: 5pt, bottom: 5pt) + ) + ) + let w = m.width / 1pt + let h = m.height / 1pt + let cx = (x0 + x1) / 2 + let xl = cx - w / 2 + let xr = cx + w / 2 + + y -= h / 2 + draw.line((x0, y), (xl, y)) + draw.line((xr, y), (x1, y)) + y -= 3 + draw.line((x0, y), (xl, y)) + draw.line((xr, y), (x1, y)) + draw.content( + ((x0 + x1) / 2, y + 1.5), + elmt.name, + anchor: "center", + padding: (5pt, 3pt), + frame: "rect" + ) + y -= h / 2 + y -= Y-SPACE } }