From 61e213bb77795b9e36bd0f4003c81b269fa59dc4 Mon Sep 17 00:00:00 2001 From: sabine Date: Thu, 7 Dec 2023 09:57:03 +0100 Subject: [PATCH] Integrate pages from CS3110 and Real World OCaml (#1766) * shorten and move old gc tutorial to guides section * code changes to enable integration of third-party docs * add CS3110 documents and CS3110 banner - Memoization - Monads * add RWO pages and RWO banner: - Memory Representation of Values - Understanding the Garbage Collector - Compiler Frontend - Compiler Backend --- data/media/tutorials/cs3110_banner.png | Bin 0 -> 50963 bytes .../language/compiler-frontend/pipeline.png | Bin 0 -> 66786 bytes .../language/garbage-collector/minor_heap.png | Bin 0 -> 19589 bytes .../language/runtime-memory-layout/block.png | Bin 0 -> 18846 bytes .../float_array_layout.png | Bin 0 -> 12567 bytes .../runtime-memory-layout/string_block.png | Bin 0 -> 18488 bytes .../runtime-memory-layout/tuple_layout.png | Bin 0 -> 12046 bytes data/media/tutorials/rwo_banner.png | Bin 0 -> 527903 bytes .../1wf_05_garbage_collection.md} | 96 +- data/tutorials/language/3ds_06_memoization.md | 412 ++++++ data/tutorials/language/3ds_07_monads.md | 822 +++++++++++ .../language/5rt_00_memory_representation.md | 576 ++++++++ .../language/5rt_01_garbage-collector.md | 677 +++++++++ .../language/5rt_02_compiler_frontend.md | 1262 +++++++++++++++++ .../language/5rt_03_compiler_backend.md | 1156 +++++++++++++++ src/ocamlorg_data/data.mli | 9 + .../components/learn_components.eml | 4 +- .../components/learn_sidebar.eml | 40 + .../layouts/learn_layout.eml | 16 +- src/ocamlorg_frontend/pages/is_ocaml_yet.eml | 2 +- src/ocamlorg_frontend/pages/tutorial.eml | 18 +- tool/ood-gen/lib/tutorial.ml | 30 + 22 files changed, 5023 insertions(+), 97 deletions(-) create mode 100644 data/media/tutorials/cs3110_banner.png create mode 100644 data/media/tutorials/language/compiler-frontend/pipeline.png create mode 100644 data/media/tutorials/language/garbage-collector/minor_heap.png create mode 100644 data/media/tutorials/language/runtime-memory-layout/block.png create mode 100644 data/media/tutorials/language/runtime-memory-layout/float_array_layout.png create mode 100644 data/media/tutorials/language/runtime-memory-layout/string_block.png create mode 100644 data/media/tutorials/language/runtime-memory-layout/tuple_layout.png create mode 100644 data/media/tutorials/rwo_banner.png rename data/tutorials/{language/5rt_00_garbage_collection.md => guides/1wf_05_garbage_collection.md} (70%) create mode 100644 data/tutorials/language/3ds_06_memoization.md create mode 100644 data/tutorials/language/3ds_07_monads.md create mode 100644 data/tutorials/language/5rt_00_memory_representation.md create mode 100644 data/tutorials/language/5rt_01_garbage-collector.md create mode 100644 data/tutorials/language/5rt_02_compiler_frontend.md create mode 100644 data/tutorials/language/5rt_03_compiler_backend.md create mode 100644 src/ocamlorg_frontend/components/learn_sidebar.eml diff --git a/data/media/tutorials/cs3110_banner.png b/data/media/tutorials/cs3110_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..bac67375b1620610f0e8ce7cff05b7febcf8a5fe GIT binary patch literal 50963 zcmeFYWmJ{z)-bvV0clZ08VM1lYtf(}At~LpSoEU1K}w{g8p4HXhHTNK^>ZzN_cP7WluM80xF<*8Etmfq66K3~JSp8sS-n8r!yeoW>(qGqJ+_GItq zXTMp{k+VCQ+tzNnASq5&qoCm|#_q~dOV4g|@Y0#>0M{H?f_%*r^KkDegFpqjV8OXS zV-u-h@d;le&SAZR(S@;f%w< zV!oE6gFFS7xsj%TV$?i23z*dBWpkS74l}ylc>HUfuKlI@)gdmX=smYS@2caZ?gnF> z(EUgI4WTFWbo1jbZjG)V=ejX=UFtnv2zodf8t*|mbOah1`Q3`#+ngA#*az0&V0w3t zbDvBj(e0(RUDfmI&ll4hVCu`u1Ect)Xu|sy-&IA?Qc_*Y{y2PHPv@!@tC9cfV9-e|Kb%>;~Vq&*Y-v*bwAMpz*I6&9i75pp`ogt7vI>sd^qAWw?DJqt_6n|_2 zm{hzF3XQ0V8Cvh{@GxWi6rN&h+g-dQ&XDXRE@Ek@#-2Zh;*o*PT&`|X!SRa*Rz9K3 z)bPE6tk!OPi{?!p`#L47K^GBpWKfixwJi=J{fJD$vP?D}(pU5NL^HU)+9{-j>+1ny z-A*MuhW~ha6O^hT%X`^DXq1wv_K{L~QpxVu2(;5HLdnd3=N>U9OsmA9yRb?tV?LC3 z_k3%zF5lDn>ecvAo!QxXR4Q$%)>2MK;=nhWQ;JzOo*1()ORq8Ty!vL#xa12bc-Qz_ z(skc-OMP{=WOr`=rCagHrtZT_od)<|jo^;PuS-jK%yousv&M<1-AIHX7d$r2-e=psUp!3c&jr3Z8ij90 zuA#R1zXR_iuk~u>D9JG-eHU+L=Q3;U*Bh%1{=5NxuM1Ld zKJvZneu{^au2Xg8PS|Ln)MZndj5Kdl^mQ$&%wL}zbA)iLKos(go2nbT!K-$8IN`o8 z$4Z_IqehCv{Mc%DOuJ7YQRr+%M&@=2CDJ+_ue1!h78cEFw;on*QLmQKx)^v`23^^e zvx@t<9m@}kz4P#fCVvs{sR3=_Iad*Jca}rCb@QxhzqhP*A8n;cjRvfLj&2wH_$Kc5 zP=U2M#JX{%lag6&kMQRs?DDTp&e<~V32u1rT{1S?BI^|N}A6xr_#Xl_Upy8J_xX-HIc*IxKEWM9I$%Bom+3zff(w3MZ;aF)Yw!;YFxD z&~-k)WZK2>jllZKSjZN%K|xzcN{3%4 z?b`}ZCK*ue8+v>~#|*Y;H$tR}aK6o$lhB&1)7M&9gOdo9?5yj???G)4Br1}LSC6>t zrsAwzs5jx$Wi-)s(gTgXnnhi`Q14GXP^y-ZH&axo#D_^Oir>?*TH$^3z0YmP3HD?k zP0)|M2gSIHB3WXnzy3=b3TM^bW>^t*=p`D1rgKpS zMXUq4dU087JaNLb5dsoTztDi!0FAx8{p-Be;2yyOsqc?fLqV}#l zSdZ)q!s#m9MIz+n_MMc1O)7Yfe?R^l5Kii(jx{JJQt21sC%z(6z3%hbhNN6hop#KFmC>g&P~CKS9%EssoR+quuU<_rWV>OY#C2 z96OIMLW#))kLaG~rG?2Q$;**^6I?&g{9qYb?lp_s$MT!u&`iEzY1xo7*mg#@QrA>2)^T+W(Al`E zn9J>R6nPIm$a?D@_YBp4RW$VT4)@MWr20-Pk3QPOel%GiT+I}UnEdYgQA5b1`|qp2 z_J5k>#!}V>J^rTCB4EO}rnHvN>NtWk(LzAjzw3*K=)qu7rCmd%+UBrdO~IRnhylfL zd9}g7-h7fB{)mjt^T?gR-|9Xl%XXe*FxC{GA1NWD+I>Nrd*oX*)j~84ljD@&2WaOs zooOh6_1crdvA$hT)H^h}h>KN;RS*)~HuKwpUn66Rd!c&C_(tDze>%h{m;V7l&HmlC zuwJV+J)Dc=VXPM>GcP%k@L`MAvu+dWXnz}}x%(h`K2J±y;(I0eqAP=@w`+J`e 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%0A)D0!8xc@u(*m@UYC0}0x;is|lqc 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 d=bu38e?i;McN|t{{f2=!fpTn literal 0 HcmV?d00001 diff --git a/data/media/tutorials/language/runtime-memory-layout/string_block.png b/data/media/tutorials/language/runtime-memory-layout/string_block.png new file mode 100644 index 0000000000000000000000000000000000000000..72228c7f0bc893ea098a205c4cbb56e71c85bf57 GIT binary patch literal 18488 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 M>%_4h*2r22zo$(xPN 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%0ATZM|63nzYoy!j-== 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≦!1(q%qEtOp%^&o!=UMHTLU`x- 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

AL` zYssMJSW<&^DGgnc2{LPWB~8Q6MFv$I<*oGL-;n4B{(QQ|4@r)s&xiYe$F2;^+%qFr zI*|oI>&}B`PwjZ2ERI8OP1@GHaRAoW#&3)5(z9HVg&X|iklhHa=w6aF&V#u)6ov$R zeE)l`+*lqXup$os4Mh#Z*(|QtHAWE|A#GU-NkxgkjszbexPh3j$2LNX>#Nmh*-|25 zetq`md~?g5O4Y$OR`ks|y0YrRQ!hixdOl%&jR|FIA-CuOoKsF+TLU41gi(r`1@GFm zG5#=*{wW?e44HSy(R8d8cK*3Zic@9dvb4&)>1y8XpB&-+1>XuphxPvnZjO= z+;J|dg#K*6rwvdqrricH{d)rp zglyduuQ3&7-g|HjS16SD9x9TUNO;O67TevOHgW4%56s#R>{$1VM;PgO4Ahtf?YeY5 zh76Xx3-pw_9wtw3-InSK+<$)lp0ONDD;bo}`Z`~WbCEg-@#Nn-F232~GQ0}fNeh10G_M&PI%Sd9c*Va;x{Rv(<%>sOnyV2Z1@UWYv zSE`tt_1o3P1d-m~r`SoEM6dGF%N;FEc-4x^PtN;ja#-{_f z5F|Cl);cD6AOc^m>i)L=^C_C99nHe`gG&w;h0t$;!FGf3Ea>%u-W2Sp`6O;OMwaUA zVnqUybKW^C^$niK6GmtmZXCp=%~r96>598^a3iA}l9`rF+he1f5gTniYJluYfyK&X zASauu%jMf2UP+~jK~9dM!S+9^00I?W!QyD$Mm-J(F3KzL!eDw3giWEGO5O zLv@gq@`yJcH=-Knpn^pL2WG$1p zP{#O|i9B$=UHYC$zh8Rs&h|Ftf~fU1IqjJ%2MlPRF>?(et7>w&SBh=nmU-|X9&_qxD626ZZOW8tH1-bHWAp?WA zR5~^q3;8kRdXolVX5?YQ=TQ4TxXjy->(hPuU(P@HwD)&?InDRmAN17BTdF_lI?x2d z#VTsL2n(QtIZ}KXpV0H-ajU1iL&N3Try=z0KBZI21<0pPak;%^J@JYo-g~>Jyo)t$ zdHbf^yAZK@r9?SoPm;_(h=BPeC#(ex_+8YR4E+-RA**zx<}RCQz;a|;$}zw>C`X=SPtZQZ!nmO)ubwRWT5?- zp#{u!q1Tuc*TkLgPosv%{dKVu7yB7`m$I?lvCXwiWBO{b@!B-8zT|%o!FH=9Dh!zj zl|**DA}@B+I&GJFah=8wJxZ|)R5FOQn2RQ+$OOP@gs1r)dv*M2l6oeUX@LY^;-P&KIA+Q$97Qz2LJ^5uSHIwi--{q zHHZ;t*CPi#whRLya`50x$|pH4=?c3Yxj$mL~Hql+JNga9q%jRo>xbr1dL-gUVjxX_csyB zCg3rE4!*i{|2lZh|E?SPp}+8hp5Ng1E+Wor#2+8RZhXgmO+cK))w!ADzZZyPbE_R> z_kUHPnW9;J@5s2mzvV;XMr!P`Qxq%jw|C!3B35&@2StLOU_sF5V+r-RcaOImmQ*=X zPv7`nGG@21e`#tGW}X|5MiS^cCFeLvnQ0{hW#vjMunYKORzDy zul03ox_X8Iirn8rHhj!BXzjHl_V)bcudF%4Rt+ zpVuCU>?=_WpodUlhPPeLv#CM{mDW6)a1$ZFSN5;$gMG+hK)}EhgpP22p# zaK(H08amWx5I6y#wa;}6UL;&!wL&{pnb~caL*tVw7!9f5?V?zwl2&8{?lP$$ zSEO)`7F6egaNYb1!;;sZ7!C=Y$raNIbB-G^ENGx-RXLfX0np7zm&%~Z{fNJp{@zGN zk{s8{1p*N-q~T)a+sR&4n+q%$fVJe1&DTC9Um%5y(uTpRINu4-YUf|@s{v>Eg`t9j zf&FC2(k%bS3zUjH&e!Or{%X41gjkAmp&Huy(FFF zVSIM>&FH@CEX2jdrFOyjEJiMRhS$Ydg~_&bfkT?GpqC=TlkeaU#>Q*J9egv5Jhff- zE)tXYPx3&Ck#o>v|EYQoa_dbPRZshSf6KK43~NYfYcoPVFvcuvbIU8hP4IVfsnK+V z0!_{8DFf1w+s{!AoMrA?x3lj8(GO^84J0I|EA5e(HB8+&!niw3dRITU zKIFQ0y%|d7MlkUoKE-ME7t;$K+9vfHT+kS5CD7e%m6fw6Nd~VsOVF~Q{(AzHjyFh& z8(snJz3SMCObXl>ls}Inx2lR}i5*6Er4emHccFz+ckW-gn{OvTs?9qBwYrL@L|+E2 zGT73O4pINo|0@5H^HCsK6)R}SR)o14s0>~A8b4P_HP)y4VF%yKP_Zz}{tG?S5|h^k zPwob&$W`D0&k+*WE$VY4%+e-bY4&0@;Wx(lCc8hNwDmo!UO1BT;m+2=)FhRa!RmE* zn^+0w=pLd`_%bSzIkV;+NLHk(D8$l%toU1%qtk*=fJIrserh}$qrU7fY; zOORSe!#Am9g5Y9YvN|bdJQ5wS`=m z%aWXq%(VlDGeQ#|q+umLWt*h5mThB|vPseB%O#1hq?Nv%sa}0nQ7e2Ue`QP{0YJ}Z za=~3O$oz9S6rU)rOXl(=%;C=h5vE-CN>wUK4kiix%Y4)-e#txc{&3V)n(r2?%?0Rz z_s~tGxQO&b#ZHqE$~F|2Eux$KXO|L<&`V*>yZL_r^gs*0*r5~2Lmb8_LJh%_-qC=l z(>WX|NJXI+?IU)_=(ca@Hcm??jQN} zAHVRoU;Y!PG`I5`M1(*6=`Xl>fq7K;u%f9gg)@jiQ+u@57;8Z%3%pWo8OMmPYnrO2 zsTzWhq-NF`AR{7r(;t%4img^}bN#h3F%vn#C%>2Uc9Ctqbhp|z-jXG{`|S`!+)}c( z%YI46g@_1IgmyGZBUT%qC?P5^nVG$mQSlVK)SJRvGeEpHp1;Bn=}94yd#3$XQJUgT zEpwZW?1ded!S-@G7-nDLI;Mb~sw~bWuZ|H+bI>OTj^%M{fEtqtpFh`;29Ld43brr* zJ->EIrDC1|?0G$(JME!-?0aAs&)=}IIWrgJ)It6_Ex)c_I(%){2%9TuZXb%RAi3H@u+FxIArub)Eh8yi!%aqYM7 z-9EWbzU;T{=h-=RFdKT`AsHwShYX6x%5aECGDfaEL_qD<&)wQ$TgW{H#Y8V9FV$%c z#d!{$=1cnNp}2Q+nxwUD9y%|K&#$v{r#B8BjBOY>MRzRBcAR~^wM<^R#}x*hKJHoB z%fPknnF|prPA$u^u|xI#AHuP|)E`5}NEL_Xlc|KpbK5FTDbK0olb6PQT11m?WCR^} z?*oq?pXsL0`xn8aA{m}DH}^LJ#sm}8#fHaoNBlbD_(kysUg-^F;SY_e8kH;FKAw>( z_KnUv1NfdmzWLst#5+TErt-FFnxo-5<9DvGpeG0wkz4^N>y@(5-}PbCo&jGaL0d%H z$uZ54!nhEfo8BQM_P)@#FRRDkzi?<*-tHKkqxS_3|;M z@E&_^>W-p!Gx)WNi0<8$QD`(0+TWz(G?GR+8Q_gp7_E}=(zKovB%*clFcCtN!iZ@N zRvN(}D(y3gVrUxA`f0_=T0VVtC>22qL?K2G2ucgZtRP5ay{@3r6mH&<)U#DYblu{cK z#j}A%!23W`dlVX@P3u_!lums_L`VmiMCzaju|VrNN(G3DYPIG|)9}T>?Z*!+ZWdTu z&^&@x9%C&O z0ss8+D?k5l|3yLBP!l4!xGq;pZ^ULECqUOwh_{0xC{TV$g z(MDsHM(L8c@;F;^zk1^T{vZDrKYaLvjf$CZl-goNSjTBJ6P%sR*CSRarT2ahDM-@iTOc}| zUs*RLz9~l4Lq^Tr8<|IHxAV@h!9N*XcXDtbZ_gEAIe8rlGe&;sA0u@LsyFu^!xW`r zC)4+h7DIB>l=jql4C?Z7ENmVUSvJS8p>;Y!EEhxTsp0SAq>@8~lT&d>0o}j9|EIOi zUIT2ra}B(+$bS9hwJF_tLCb-31m5GZ?u@U8{&Y)#-A!jW*8OpP9Q`@*kZ}P-LU#Wf zAOB8oPbux(IjDR8=U)D{<7i5IsIQK_XKr?tI@C_Ob>MK^X-wUni}%O=p}Okd*1F%v z`tPz|*9yoxR&t7$g8d@}y3eVG@cp!2Vpt!-{`|GCE9l=J%Fj@I31(D|+DHCe@thDa z9%gvn9x6ZY52wGelT6e>v`-Di$Zq?~d;h*p=NOLZUxvc&zh7U5*~sXdcsHGuowDxY zoKUBiz&X|wFPZCy+SyQFO=CrFoa6bCzHF{wGyadx89n{*D5-h>9ddFxz09Wc|D5jmebliE7{PG-9w(sX>DwDRa)EqWHn4VKAd6Z~9G%S}(ilV?3>1dFol&XoXhlZ{`tubi_rhrkJc{wA* zl%Kk;X_^LaJW8M}3WE1MK0L6lDvEN3u?2;5$uJy+rm7L8n6(O5OoMS4_w z5p1g@+8A59o*|@q?euiO@Z)(TN z>jAm%v@8GZt7J~EkA0)#)MtmT?R$zi_Ixe@BNszT&7pLsBAZk_fdD)OQxx#W6v(HL zDo({AMeH#HVVBpb1eh@e@M*@ul-CgQ4A8mC@?#3@{m*@4_5R~i728RE^+&_)$32kS z%xfc0XOHW-F&--aU4!{03;;0vPKS~jk_GnX+!%8WQ2jZ5f9&h>kpz|L#FpK3j_Ggq z*Tt8Xai+$fOU%gDQ?-~f|6Kw@GUfM>;Zod(+Q!bW>^P_N)oF(63D{+*r1kk;ke9T- ztkIdWs?0;25TE(wsE@4W>5`=YcV$e`j*d z?br9%aI$~-JIDmR#3qft(-O;#^t|(w+9B5+Nq)*py#bx-C2+C&KWE}sTn3X^RTs;} z6=%jXQpFgnc@W(_rFKThn5h8kgo;ZjRJGP_l;4Yg(RSVth-l72h`q(YcKB1yhKyK@)|M1zhSmxdp@|L6s^Y1xS?d+^n*|D+hC(eg zp+RZIyezTBj7X%a)`Th|O-u%CCCO8Rbtq>s&ZfKyl(rx&D^wK_EXtJFQWIie_4LHo zuV0A>v-zA)A3pL!af^?E`u>S;zkT7`;{(nW%*zsEEb_2I8%qogtLlkLYv%Jg>fl>sG5p(wWbb{bRtQ>Bk00W&gU#{7ARvtfh!7}Hi&|{s(E;L;{N^-wf0zJ zxUn<*e1=#{P>LX6du_iX%WTLM*WqFVrPNMw$Yy@)=|wl=Lpqv98@<^L9a|4MN~eCV zTjgo8MJS{rPo&6Of>Wvj=>ooTedNv`Lvzhrn|r1jRo?=pl>aH%ueVcVhFtlppGN=L zu{fusKLyhWD9?ZQ<+ko`3ISq@tM1%zV{LoLs5&Ly4r3&VZJDTN_lCkxZ7aEX93$ZD zlM1G`tNnQU^7yI7#av_EDfQGx&f4La(KHvQ?391&*e{bYV$N9K%OML)$-`U3xs1O< zed#3xikA{6r(&9?lDu{?Wlp(NpUQ2&FCo>8VMs?Z9?$vZB(3$)yylSghTh?&F(|fYIpNb zBvc$zu>aAa)Yc_uS4JI4VZRLt$@osY3*Btou|*^Vybn}Wjn?pR54X2B%;xh%ps+w_ zU7aZnCZ%Jo0DTffXN2wCa&POfX_`cmPzs|pt|%~C6Iv2NH#Qlq@!nI_HFaGl?+;OE znt;}ZAdwhT+bN9&od_N=Boal80VKBXyJa0mpS)mbV=&HQ$|C(ai*DOyGCT`w2@nDz z3W=>zI0{NYiJ(c|?34(iBD4#!q_~0*B3hE?5N#9$mEsa0DooV4sIl5&RXXZJx?@Tr zgz!jRHdv=IR-ueg&MeMZioy~J#OP5zkxsNyh)#cKjY3kn)}H7C4#iJ5ACM67O{9KW zQfiA6L9ZGf|NbjgXt?|Ik&kYUbFh9~@$LQ__fHShzTu~z{><(C7Naz)s=?#&O+{Eg z5saoZmZqs$u9vKRjaZEm2+`w112JHnMj1n~m{ZPY+fwR= zhX)=XmsC~Y&Xz13h?=vqmbHSQ6;Y{Vz*oI7qgz5m>76;zE-2oI{_SGekRV_~KA|_a zb;mk&ZMpkX9f4v)j7t$IRC1N7AhyJcO*)%3oRI7I{gRk!{K-`|y`}-+JTAj-_ZSw?bM!toVuDqm^p<6uwRz_ zdqe#qH@-_D#}It3bf%J(atvbqb=eql*Tp&M@5ggUmdTCx(6hM)xl7DxmonT>ovY59 z{7jfaYKvoY)uA*G#eFQl$8c#~;JMMShyAhU6r$u<{9|d3g?lf=l(&fN z`VyXdn;q#RxdgNrr^#Q3hzwnRgu`>yvAJQaE$zp7NUxh~r#O_}p*$YLzW1{!^WV$I zqYI2@7aCJuic@9W_cZ3eH(bm1iYu=8z2OdN5Iu8o&2 zMqa9v8uKV}jI3}dKhP2?PRLeY>DjfnDf#Q*z2C`ezr1(f;qA83*TT?|Fzua9X{F-p z#)D+=k5TYGP}dDlj}fa4))Y8f;!J^3AsOlsw4@_EbWu_inyRX(>xviy#u(=F5@Q_J z+KuwxH%;p;BYBFD7zu4X&Sx_g^ZBN~dGA4`V@5>4ItL>7rXj=tqA|u$RZCXuRof=I z7u&WCrPvsR=XbZb`3zGy?7YCtN=)mGL!*-Wim0?*F`F06 z=QEU=kxpz8Li99sptL1-f4ajh0m1e)ln>zdViMYFEaQ7BzOX&e|uErAHEsx<~h z;T-?+U;YbX6tlY%re5vv8B}9R@ ziYa62=19aN{oqpXKQ!j_KQEn!a}X7;I32Go*9;leUot0jYxOY$?0&pc^p8{W@Y=Fs z4n%g3lzQn#s4LzECKJ`v-tUq4Ub7h-N_wh2;yt$Ksq^HRt!Dq)_mW-TEUrqpE3UZW ziYs0LcG5Y)16PJb9W~+X(f;SN*n5J)B%yM`X?#Y>H91gj zu~mjZP^~FC##Y`<7F7{NQ%9-s8swzYx zG1`qXr7X*qBq3X(MN6J>&Ta0A2<2>sv9@h9LOM!BAyJ58L6R~xYN63K?U&ao9Z8^) zr;N=aMkQsw`*?%9nW3G<6a}WRsMaN__kmaiBzj^9SZ#l+i>H9v|*m zE+3gK=G@%g;tEF$mP!J#dO%s7yi{0C=}Km^8Ko--^K{(E?R)`19Xv5K)Dox##Cu|F zXbeOptk+Avg_?yjET5KCu|^7mDjl^19-E5V*Tm9d<^@%3`1^nS2aN>8S;U%jOv!A< zq9si@TQDyRin|%MbZDc~yP>F-E51EGvHa~T_rLtc{jXnGJw70|0W9-!M(Jiat*IYt zmUX0(0O39;bZyA2P8J+-X%^WAq3KIKS{OL+ho zE7$!xonovXlePEdC8f+x_)8gK$7J_?1Jsb5eoEaRYOANN>!yq;xw{Gv8Q_kM%P$>g z--7Y^(#FCeFBSXg=gv3h&gaxJojOkUi4~{n5~k*@OLJ)a-M=Ps{Fv55AvNej$*j(F6&k6=vaQn_S8@7P@CQ-AG~J&@A~P!Je*6O z_@0<7E4?t@@AaO!>A&_ok>6GoN%x)+RJ!oLAG~%wT`>hRK?Jzg>lN<<_IQvU+VMAM zvd=owVNU@trfi!!P>PJvJqE&NgqbXSNj|Bg%R~1!bnm6p-lY_^-Sbm+Q9gSf$!aTO zY4<-n43R3v6dH%l|J;4A-^VEM1THAQ`0mx)*7616h(nE7H!n#2oRJ)P{~_` z2ohTl5UrOArB!P-Z%GX;@x!6pBQ6wPTVml*%A{jGO!sNqU2G{VfV!KZ<^{?bv~_5k zJXDB}1l2$Y#E_0KFiN9I<%G!Qh!Tl0d9;vp6iC!6#iKQ-RF>(jbULae2=%(*{_6uz ztA@r0L?Wt*pgh*74aq?3MBdML{{AQI<2Db69ODtiuCMT_>Z7u4t;7<+lg!fBiyr|43M_ zsUKH_s>aBJRLirDFAq$69rZSPloj47MDdmX-qQt`c% z*}3pigYFcAKyIAp2s_mXer|N>5AFW%|L%Y0#(8e!5>;MWS7S=L976di$Tc=jA+*1Q z{4{{we%P5=VHK5 z>D1DHr(Pa5W!c>yQ2=J8k)b5)@ez0iH>K*-vtx(L2;`PJQS7ofhv&NWUD$ zU2yhyJctNNx8JFq_SY z(NR?uPftyIB#2NHMarKmP$Y7VF^Pzvtwo2B$PFQRx$uq0i=edHT5e-Ys%UenRib~0 z(FB(W6vo(O=(iSQ3$#uI3)Q*^ZsrCGgEAIv4OXXPJ;W$n_ z#uH*oM1YM~4DAf2Fq<|UNnR|J=tR0`BGtO)@nJ~_5QsEB5VgT6MS-KV4rL2OC2t=g zHYf$Y_J|~}7e(Qq2`raumS4XiDCYAUZa>^`b2~#d0jUMkSfY>V*o&3`5<+BMRm8a? zXoa!{hfdXAq`J4(5)g`}rmkzOPF_hgV9{t1oVB>ZqMSv~9VmrC;Usy}sOp+1;EICM z70F{k6+kXWKpH`4-Q9z82^w6|^`VRAn*!rKGA>d8#?8@^w(nsCx-+L8iEuJeND= z*PP0&PNaJfh2FFwy@I9966v>l;+nQvn(KN<745sf`|G*Yc5CBmY3s<-wzOI6c+@ja zF6CM4hqd(So?i0dJ<=|vzm^2jI|nSa$GwS6*UV8t%P@iWA=XR8~`KWdN`PR>T4f%a-T+VH*OKI{vo1UBc zd^OEub@t!aLet#v$}072Xa0_$>EnH^S04DDplEut9wPd{9nc=BBJ(@usLEw@F7={S z!Pv}asa^|dsVJj$_u68f+ED|ha6Wu;FrEAucC*K?&1l*Ada1$owa_?B0tjbn*4kj{ z?|czqvD#fKN;$P+IlIH7kF}(dI^ycobxyyMlgkAH}+3E?Dj(-S12(0 z5k!pLZUO)JFtEae@DgxNKt6`O zQeg1F=mh@dh?nPQ9F7NgDA-!;_B%X%_<-Gh4;X?I2Y(zvnj&i$c=0$MN4$J_!OPbp z)B!*52aHzmpCb553?&QZ0edp|(Fs10$43_I2FBM>L!U^9k}>)*MEHPWzu&=Hi>D8J z7|VEZ$3Sp7905`6?11ryAF#7S=vxYe0{`MeR0?CkL^wK!Q9P6YAK#}zLwnh$0Xt(c zkO7OrzZ^pwdxgS7yn}tTGzk9~>q z9cq4;_wPMnB22`;C&CG3?UNHK%6X44jk&3Ll?cLtG+`u=a2O#<1$ZhLMlg>*5Bw?d z+6K^jq1B1-+Rwj5$}Jr#ucd$X89>j8y~}B@C$-f2^w#avVz_>7S-K}$$=LU_KIJ+9wdzHULL_+GI_ zW_z^Hp95(#QbWqS*X35Y#hCS;@cdor?z|Gb@3onJn+B+e^xY+DkwV3 zrol4#MNUY6^B*GZvvuwGg_{^9TaW+9l9jvYF0O<2#LB3kRG^Y$zp+i%4LPT6ySAet z$6Azv60_s6j#GorYOymi$6H!B=FHtZ&*c2C?ZPYnZZ|xAtcMJA#K5kY)79z@e`>H$4K6%Y_W3^EpCkFdiI zy4wMRz}Nwn1JS~ggCzxHgowa9kHdJx%Xq|L9O1?h=8r=-0wGHGu-jp049w2L>;~{| zfLI1I!IHsc1jpkMhw%tNq3Ym-pc1GY%m$1=6p_(k^a_E( zi3f<_RA7w3-db2TAsUZi&|n~;htYeC-ouN>o(!xgo;+Z9n4I)%4Gc4!3Py1_s)s!a-~?<11j6W! zcpi^9>K-4SKH-NSe!{2y6O;{(D$~#$oc)xI)igys`O~jIPv%r)go^mHDnLP_m`H0O z_0+CJ1SSSEAk2|`8182UOl0{_qfr`fdf0b&!o7A&-V-f5D|>boz8BnTSKlSOqk5gV zOL}pQ=-3*q;F_JHOUQMEmffkhma9wOzx8@(T-R))rhhKi@AhLwU!;tBnk{0?8n*IG z-+Sb5YfaHoel1)EU0CcJjLyk|7&^jId))$i}=k3RWd8<&^n-L>mmNTsq;-mS*UUZZ+xG+Vk~5JJ9h z=S`F2j3_uWr#rIm=_$7i$7{b|Pw06kphTFG^e4O)XZ%$hqPcvPQ7Viv@FF3K0}+S~ zm{Q~rfJ~%kkwPJ`g9Sn0y@MM)K!6t?x1uw4`vF821d4JMqCyZ63=>QwNmxT*3M3Bo z0`US+xMy?@qjMn|1)Is}LKKeUP?d1}02CfBJdY^6I;a5R9GDdY4{;ZMAcQ~!Bn}V? z(Je-SS`S2ugpW>lC+P?iheIS(9Q}xKbQoVo*kQo1-(lDX5(QfZ4;Ew%V1m%A0IUjQ zh8U%S;l1E+IN)oXpegkTC9=9T1Na+3$8>0#tmEb05lp2aFJ~AHfg^1jmu^`K!m*qlFAVV)*pW z7=HL0u=@y6g8Cz%1d-@qqj=m$eBp_>+40tm&TLzf-+P>zh!Rr_k08qo0;xulm4>J? zG>;)fJQFQc;~c4zoKmd3szMW)MPezE=HA;IK%1SKIFD>}3$^B62KyykLoB`2=(?8f zQU~msF4UT5A{5q~Y&BU}G(~_niH4qW!MuMiftpW2mx*jfn$?%jY$*Bpw(HkMflii zlUki<1byWjJBEDh;s=$k<`2CA5HgCq5UhS z>S}&1>BA=l#OrxxDBi_iqkQ0<^62Ylh$kV0oO?`#BkY~?WptrX_ zw4chYr*ka->r9AHck}D+F~fLk2FqfwPPB}x}>tKwbkdT z8Pr;h70$VEgg`;sIG3?=Sy`&DmMWR*$@jd@B670eEz$C8GcQQUI;xQSqz7!%f z5I7pqW=BHm%Y0nOuciJTh5^oLAOTndhMjhv6DgusJrqv@wg^!n#KAj<;1Ugy54->$ zKYhZ}(^Di!xJZbId8j}I05gnX41;n%*ui437RH7sBA^ucBM?t0_9rvVpK$>v62?(g;OIxZ zjAIILfOLcmlt5q@G8ou`*f(k*r1ME{M(;Xn=5oQeP*-i-{2Fw9oMjRaQ^@Z{K z7YmOcFns*)c>3x806zQ;2m1tfJOW;zO4;}t>RcMHf&uXMuWPHRSb)1M0J=cgxURt{ z5%)v}(T@M~P?%t`ocf$?bW8$~WE1j8Jny<~xF@+|9>A{OQMo$0a*M&BiP@28!TIYG4iUaQaA zGxeaot>i@h7SjO$H`W!)I^}udY>r<`M*yVVR9AbXdY!b1SfLt^`D!hHp{8XW40S|R z0D!0i&-u{FhiV|9wpMkkpLz(=<$b;BN`3K?cMmv^l($xwdqlOUmDw{sFRg)7U9X#O zZi|+6)7qMTX+2d-a|x+s$w8Qx)#^a(alo&Uh04F%=FOnDEX~!mc3mSt^^%p+x@|4L zysl@q5_GE>P4+C*t8~J2TgXz!l{m8 z?HjLE+fH$I@9FzJ=ZE5JUfWi*J$;<}Cfz-|UOt1K+H_j<_WZM^XZ5csPjXnkpU^>8 zujP&NJ`1VN(zK)Uu58#vYFXr8%lB+T*s*m}bY(|vjBQv<%10kUoU znbBocy)C+ol(#SbeSw1md@)`(5`+cV38|vM zd|%KObA_~A@GmK=TgH+mFgF=s2>_E>O|$h|^%?}K^I*O9Oszw;iUwzF1A4+Awl45{ z46!AVq9lvtWf^0td6e+tF^=PEJ(B$Kg+}8C*08=H&0&mz5+;M87tNU73S&Za3B!b! z=L4)|48tD7u*c{|jLzZf=dT!#9xA~NYxlz>Lz0~GDqusfVor>c)*1jd9uHzCl20x3 zm%rk}4}mx`3Lp2a^ob!0gs}pc5grO+0|oHw zufOBV^N1I3;rK`B@C$zW=^yy`%m0a={`%j*!yZRbc=6y#VGr$fCjZH{_85A)Kok__ zNySXM1C=UgeD6?>JsM>7j&*!XPOrC)TN5gP-Xq1%okeBZiA1-OZmIm&&@G5)QCBM4 zQM}xI71*~^sc{hOaR3!M-L(#agjS<|B2qS`?W#wsEJfm2WBGXD19IxUqhCTyS&ZI_3zrc{Vhc`cnuw6jr?))8w1*Ctf+1NSbDZg zoZ4l+tv00AI$evc@^f3*W2|UH4_Tx~R&G&#S>BSJ?u;abj@kc}=f5pGVX1E{5xlPH zg9jdX;Fa*OYd!G50}nj#z$$F(E(u_L(S2g%jHJG;#cpdkTh~iWJ6abP4bcfh09BZ3 zOLb~rAaHabp679PP4&$FO<5i1zr(_+1w90aE$2f*@1iz8tF_GIgvDO4i5C}dgej`V zQeRB@cJ6*!Gj8p|1Stn@M7RxC|5)P@~~E6*i4Zlj5Qc6Lk0?52rztPta$;v5>z7r#aOU0Fz|qQ zB-U{5j7m{4La-47%RD*B%iTcXU!XErYhi~0&U=WH5XAz~*aQF&gvccX@g7PZo&@HD zfqgnc#uvzO#1RHw_wZtH7zzLOyNA;~X!r~4$A4h|m;Zs?kN<+FpZ*($r@umkLw=HE zCUiGP5ge6p3Ur%#7rXi8fizqI=PHKyx9O@7m7*+1=0Lp{@L z*7|xY-`;0kdjIO>P_Y1721|QgE+w_BLwCW!n zc`wNnX)&{Ed-T_G{!4m8B7{%Z7wWpGvvd#)TKjA3-M9p6`Igsf1jrsc^S4CnGxfIV zgE;a)iJtY|w?Lo%*RNY#TK+Y8UW(1N#M|k%2OfCf7SP++S{`^H$3&`Fa+1#9PmLAn z_j310_|m#iuPd)hN@}xFuNG>nQl26bD;gI7Th8~nvYpC8HNVsAT}E}ZhgH4Df}lpI zSSnK_I9|)&&J0ydao790F```f*3#zvc*(AjKO@q6Qp#bq-J-!E9f2d7lPb()AZMl! z{!bO+6;Kb=5aA#MyCICn5nu5YUcwO*A^Jpc_8VhhOo(^^Xoz-@!bBDIEF(qKjQXXa zH2(+DK;8gFJIMSwBit`05H6G$WCjdOFveoH8?fI$;pyoKyWI}F+u`u^1RjQXe1X6? z4?8+Ag|XI9C_zNh{*r#7$o_+>QIBJEw2gPGz zCb>xwI7%W2;_&~lsWf40s?qE}(>Rmn>}0{5bDPGVR@`gMFRK;Gs+WJMf&CgX#e1CV zS`D4~Q2|TyRj-bdJ9X2XP}P0Wr$6;LFk7B~N_XS&=PuIH@vh$03DweH9mO{HDF7m! zh@@Njv>sK`<9xk`Q*r6|!5Y!y5>my|nl-(XmmDc^Z)|Na*t+*#&fiO9;TFd5iHO>< zPAy4QOV63|+?xM-=YSqZTW_A1FBiy!+`zM4tw5X z7zS7yqAKLEX*HZRG1sLqu;oX4z zKfu|a@Zlf-z|X(@3qJh#&*0q;cpeRu_VB!eQ3iQ|k?~s^>?VEb5^hWQFE7xYN7R>j1iklk8H5=4xG9@|a@UY~Qo>?3bcvozUt4 zO_9KAy8qhut@88lOYitC9R4+I<=ay3)-&9aIMh1++zV?&iUbjXbFL}BM21fJ)O7Up z_wjf<+W?Y~&jr`ay|*D$06kunTk8rv&(Pz5zK5fH%RbO@{Tf{3D1J|l%5PoQ*3yUw z+&HG`qW!P1Dcyi78dimIERXhpBr7F>s4PF+-&l@Hmjm|JW5u-uw54nJT>rGRf6KkM zszdGiTU!5Z_1Rmh>k@83D7zO*-wL$JOfliLNdT{ndp>JR+rEA2f8c@FMfdvqPW5=; zf!Bfs&YjfdqJW4p$LO*#V>WEHS0Hz=mxj1fp=(u`n3m5UEMNNEP`EZABtzk?QLE*W zG3c7;6HRqlF?Ob76Ix)5nH<+OvcidM;k5nFob#D%2u?$K=lPv1VjGRNwR!>P;UnL} zV&dK)!pXb8_C9*=gX28@oFa^*K1#AgDi~xwG6T_YLQFtB)**%G^xot7>j*c5$O-_! zAdp%Z8=@XC5!e`v63WQKQ0C?5<61J*=GXI`mZ$O;jsb~2|6o9wM#c~&K@rYWmH6!G z$eNUgb8f1evcaf?BOk#4SQYGn9RQ;Wb&A86XFPxTf>u#w>14Pkaxl{FvJw@CxT_d z4uCZdN9W*u$eWFY#)v0g0jCOIs3g&KIMO36IJFdzK^SIc%@VMy~^$_;M@rB+U!quuxFc< zs(sQSKg5Z)U1WhwH;N>wWE)s3yJo9;%c$9Vmexw&lI--r1Md~oxK4QBed}%yJn%pT zkFoE8?+~`!ot@*vu}BCz!n3p``!{`hFHNCplku%wfY){%U9(dlzrN*UU%J2boWS@? z)c~<%3~Jfc(_?_RmGV&|&Rm*LN!$VAnl`ORiv`-*PB*5BEVCr5CkBm18Azm_r5#Lf zkx~9y*dkL*eIVg@hU92Zfg{qtB+G)>rQt+0`(sLc*L-? zu$HH25W^57H>ghJo|2rCo&~@}sz@Q@b2&OA^&~!kCSJfyB2%OtG77eVTrinoR3TpG z-Sh~i7gd4#@)C~Ma3f@NfENrP7*)tP;^p%feE#EieEodD;Sfj~pFaEm@ebZQ019hu zbTE4y$0NLks1?Q>!FI%ce}vf|;Ecr=`GV*18QzVd3=v2qgCOn(WHtaakVAYtx`hqE zI|vwu(c>`ssUMj``|ozUa7Om=2&fP5EMq#Rg*hD6K{09x#hylNQ)ujSM5noOkPjs| zCs6M&jvk{Ic!@`CI0qO50YM^}X22&nr}%Ps#jbHI8~Tohn=;t{T=i$LTSKsV%q_@_TJWoX=QJ1k#8jhvUTdu1t>&L^F`u=z-Im_7<`}MB zTOw7|^vQ&t@Z+Wa)l=6RdL1gwJC$1V?QlkiXh3b*){g&M!qQO@=jC^_S7SOtN2G>I z`Ah2sQa~H#fa$2RkXg_R^1KT9YLnFEXS!xgQ$3HAvV__@Rnz}_>r^9C)Nrq{ZE2m_ zQhsf$Sd^cIcfIwwdeW6^>{@+V^1r0bnHjs?uKT`(r8RL$>PczWNR+)e*%*-Z=dB!v zTWx%ca){24%2_2)HZ zp;1?(b)7HQ$6MD4HG60N{bU@i@;4Ud3e)yXAv#}E(k}h;9&=@lSoE#u>JlwZ*;|e& z&AR$4G_m(|)d9p;Y*ZjZI-V-Gy= zmT*F<$UhU3f=q;y9p_613RMM^CZpmO!67*{^Xs+GE>cBds6BIPoEF$*gsmBB%KYcV z9mcjw%|bFdO{9GefL7(8M~S%P{L}RvY6_9MoFs+sDn4!!k$MvKmaa473x|PvXINnp9iK?nGMoJos!ZS|3qvS)?5Vyi| zi1-kmM#7kf+vCsK%+pO1fmMb$N0D_hvSh?fiyx;Fht|I z=A!VD94!Ll1V^VB1_5IPL1LQ{*eDE#eoDleBs&J_ob*h3C>W8F{16c!0&x!B3!DT} zg@6EJ2r-m+s_Tv%-~l%R<56Ml2YmSOFZl5v{}(>|^?zdb;h(_#0bUJ`;5Y{`jA1|- zg9#2SuY}PN#@PEO;b*ntJPZrHs8A{Z6bqlEdvHdqi07@)M95*NQrs`rQ0{^r zbBzNg5XZ_gv}!|XomSoxsqY%+QcVx7=>j!lc1fxzjrp~DUFw8bbCTWzJ@P26V~-NF z(NRtv4v_Eyv?Y~B{d=lI@x5voYwic_c&23s%(-zAZO>0jqh7W6rts$p_b?9jFP{VQ{Eab9?blnU zYy0FpKj2bR?bbWg+W)ott|wNU8bH?^-1k7MEPgBU)mueNJ?FN%eS0a|Wr~=OnW~U0x%euVXqON}$ovQ8tIJXnFw< z{=LVOOK|D*_yPu=*0G&W$zvlX1_TO9Lt-Lc^1dE!V=79$uc;C3i z`u~9ka@gEaUQ+@lC7tGl)t0hg3{7j5C02K@A-aoI-6Q-92BMl$-AbxRF4+9uYSAHa zHO<*Qe7XZ<4VMxsZp~WGWu+!p<@dGz4aX~-%1>@sI#Ga_Cj<17va}?BC0StZ_s4(= ztoLa`h-kwxI>GErPr{z>G-tzr2$cL3X+Yz7$izGmx!4eP!!91f6UY(HIXI_K2#jG2 z!+>!dVV<5~hGD8tl8@Z!7NRGZvxP-YsK~Di6mDZtG2N#Cc?DuURbmtiP>6Ox^AQ*7 z23R|QnIImJgU9oiuQ%%)%jKTv3M%arLE)%fyszVRUDCH} zq@-&iwe*x<=5+~5d2e|a*Kmnb;TnhOwaiL$DXj}J` z`&;zWHS&B5^ptZixxBT{qZiGjmdAVfzymkNoP=$6dzd z^(BHuj?w{ol5gVzeCqyS#bwd>qMaSlCjWxA$mdFl0q?QyB zU`eL({!Nie7KtZG#t@vl`L#tunx3=uYYV=mXDWa1dG_xWvqN+Hy<%fPU>K7f;ek_m z;6!}U_%|_>g2UX6;pyoK zA3l7*ZnrxLGhFs-dbi8Zljky#08)A0JYN9Nqk}phpDU09h|b--qyPzk!-&y&99~}V z<@4`2JU_#WhhfIf8W?N9w1dJzNC3Dfd=Z17(hn+P=_s(^6JOGC60FA|;&0KtcHi9n(tFHj0jbtMC31~7n(fw2SF z4q=z#QD8!A!5%%>c)$WW7>M1$DIgvID|R@-kbo6{3Jej{D@G9AxyPxvG(McpLw&~L?+vAc zY>ia0+xq|!ot-_tgg|O-jB3&7ePd!6+eWGg6V3ViSJl!;>KtpJvyZ}jcGugD6!<=>M`oQ6$9WFk*U>LeC};!vBoEM zci828x+5Y^-#Rls)BUZB1rv9;FFe)>QmFgYLn$>%9%XPV9z0RU`F4V+!Q{j&AD`cghdN0W2M{B7 zoU~^EQ+)?a%k!3Gq1pMq__*&HDmq1j5X?vYFf+(7o<|2Fz%YSj1jgX>CJ~TmaGnc5 zYM?|A&(Txpq2OR(h}%)b3!olk6hsWWv#<=P_%PPQo#uwk6x~6TVPN3B;^pOK+A(Yl z!x#%Q7%*8l?;u{naSu)*haJ93A{P0*0^~_86?i z&RQ@toB)UM0B0OjJOt6mNNK!_$AYMWECquNIarJ^qA;F7jvzuH5{Nkf<}2WLUv5=!}W{A`p~DsB z?~#BaaYKoq@wgR;g1is!Jrp#A<5frv^x(nf1C03q!+Qt_79PSL#wv&gs3xP8LNv6U zBD9GmfRsVv!4M3VF&G0w1X6)vz#0Y<;6*0m^F0=zH>YZ7yIW6z_QVB&D2s(M70Qtm z0gk)sRbdfA{HhN!!W?A43Bdty43M#~gN0?r0ES^eNfG#V3NyXSxw26_%Lxf4J(w2P z&#xI%I@K2*A5o9d^YS&lUsKweqrQEzsihAD*sMNhlUIJvJtnpu=|7#P>7;pdx|V;Y zzRjOevn`Knq}sBcJv>=D3BQ~QKQAW`|5_aYb={)8J&_t~DAR_BX7%G{vb#_dwR*_x zR7k6CsAqCrPZxW?C0hdYOs8L{lK|%Ixlm~fMSe_Bu79S>={ah#KbDB$Pz5)()rqJt z%4}L2bdA<|b()N)@rj%oM|PB0BQWIl~v|{YAT<9TUx7?_twWG ziTZqbpBCHFiBOS`Wz6z&J`RNIp-`UI^yzt*=GeSV%W;6R@3k^d+wSC-X`ZOHH?rUE zv##vfe37q{*W^o7&+HFNbA{p4O*OY5wbTe0Yr9OBNMPl)a`Vp;dg{C8V7?slI9#hr zK7REyZOw+aRDSQHtdY-%!W?Tl^v~AvZG8WF**&<8QbanH}LjA%9mF?%>nkReO;Pg2bq94|D z_j+dMzo|CMU(W`BR-`rV>9vKlsO!Kbl)@VKWU61NU#0lPdWfDUrOGvEJTo{pP5ER)3BH zlxv5#AcwVV23gAcTEgbpm<=?`Wa~IXMD24bu(cq%D}t-?^~(PqaSv-^7rMH0Wdf>Y z-65-&`d=S-|FCS%BT5A10=Hy%LiO)*tLT3FZhq0I$K4uT_C zWLjKI<2-Qk&ZRyAvhgB*FtYm;z;x6}`QF53xgt2t2>@gYsh%585}Cso6Z@I~4ec5q z8j7%SIS_#a5CY;(HerIW0SO>VP#6$dFc~NaObTL!B?Vy!{X+&93ewA^$3FX@H(=T!dMLzH!D znlIMZPbErH!TN3U+9bcW?wFWA=e*}OFWd6`y-8{Nj1=uUeRH-`-ennSe3|RJoNwvK zWG?I4w(hOXLHTd3V@h8BX&JSU{MoM;Oa--j&Yd;1k+!L%=KAqOzN*hdIe8?l$Cuv! zb(_V)_%jUv%k$t`UoWB6P}fQnDDzy)pY%LZ=UNfxY3uXQHHONi`X=Ii3)b4|?HN7m zb=WGx~cONsQJw7i39GfMh>jZ~4RTdO-a&i}n6gSGVK+}SFt)l`-F zSP5}6z+9JBTtlXqQM-TPJzW<0v%4ifCUsS*S(^i?@>fycSwTBV$kB#*-afT;;&toa z+T+!uPf}(5(T@A9)91R^v>81aDr@W9+B$u?p5^#)39<6lphX#scBzi?x5m?!=fBQw z(uocov~{j1+iWY(TiZ1$`)^D6w-%|Mez~W9`Fc+M_8zz=p{2PO8vE<*tpy%u%|?cBh)td!(=m&V(3N6cmCptUTJE+J>M z-dhq*YDAPAwf3)(Tb35pbweXg+I5L!aVMSj)e#m26buaTNKR{j0c9lWimJwV1&TyN zk3BaN3@9vq)6oxJC8(wvcJe2~L?RbC@8M!4L_I`3yeO0iYz&OC05L=r&U=jB#iJtv zJ6t3<)Poa&V2p*e7NfjCMWRza{R_u;2o%TX1H5+_ox_U+M?9y<7txV#je)V@?_i|0 z0FJS(3gSg!=sF%=a5z50IR_}gc^~Si1ZE58++=ugF63#LVXehrEUX!VV^|c1K=x$9Yg_i_pXz#80CvW|(Bldw2pM zA$o+wqpK9NF`Onch@RYA8+*dNq5P9HQ`#VpiCoiqPVfV5(Cm}a|8%~l$(XFspg};| zExI;0Fa5oA?H;&C89h#wd*RaOx<$KRm9QoB=q!7#j{6Sm}0I*YzFu6_O*YVuo~1D8lWOS*cEsBjH>`@hGiv{cu!pYPr0 zYiq-$_Fv1VWu9xrQa`Va7cIDEeYury%k!3Px=Jj#aE<*MbMZaKigI3Avhk#2I?C(U zpy&N>eNXayUt3?g7N_lVk8!F!&zcQo$$5SkN7;(3l;yXQYI?@Mi;wAD;As(2E1#uH zmM?ktTWp3c`d>NsrteGo8FkjT6>IN*XtynnB$W0y|9 zLVvkcTh-(@FXNtN-wx;F@Y>kCwsu;wsjppojWyH>3Q|Gq+A#gLmA>WqTidi}P1D}4 z+B~n^1NZ3vxAlJA4zK>MJn+B+O|UIS7gfF6nbJ#2WvwnfiJ(_nGrykyPSn4ocn?rT3}cyy6ET{C z5B{;jyv|5DQrO15Md#tp{zZ_y&{5xA3=nfXrUeq1Hgm`3@O3| zDTZN)WzL}^b0c1Qx1RQUn5U=sd)Q&)y+Xu;IE98~7`7NB9QS}xA)|xGh~uPdMn^g{ zM2pb4U}FLk$Io*avcmvX#W==j6+X~Wm<{YOgk2}`@28Ku-~^r+o&=E)wZnT4KL%0- zi~&Vbh4+3MkBDfBgptc@iX4)5?Wx9S07R20-%9~KrI@UxBcw>lC8;6x@3iYo!x0b6 zVI`!I$ipCj4LFivj4?PO9VvnkT}1@q{Uk3U5+bIkhZ|k!TkofTwVgH$g=HWSj1+U& zM^z0zeU0zP_cv608|bo3rgkMF7{tTK0#6Cb2(l5!A7pf!n$EJO^Q;+5%6!UnYlgYj zyw?`ht>yPPAbQ4tdl+kbj0*X+n$ELixW7d`d(eLT$nuWfYwDI8id*ErhFZVe%K_Sg zUI)OE1Ee(Km%sPaWof9K~^Ht5N-7OCXg^6#Zrl=8Hs@7?G9!qWQ>oQ{L7GF^V( z(wVwQJ^5lWnOo`!yX5a)_RsR#Qrd)EFDP|}S{|ir=hs`M7HC4x&}3QFUwrB zscw~jnJ!CcJyeuJrcG%V^PtkHj1IEUREyPoCrhnvzyH11a)>9iMwD(%lgjHsQ@%YN za0lGwnKsI~RQ?|5!J}axc;JCQC+yb5mMfKO#>yN$#+x3+r)RO;ic5@pwLEGQcex0z zDeJ2Eet&%Gz_aD8_5fgCzq*Z2>j6{c3UV7IUa_ z1t1_Y@tG+csSq_!B?8!{xD>(3tume8PAX6e&V0iJkbwv$l7(T0;YcT-5cZM)jBcFI zwu??vfk0)1j2ejq3SxpWLv(x#R2@_TIRZ)(@qr+C9!C(ut^np>xJ$=2hydOzoOe(W z?1%kY>rCs&5ZU4gOr(m?G)Z34qK^m|p7sDSj>j=Zr3j8*V+^brruHQw7&b_bdQpMO zX|x1l23rFVLnTCEP!SLt7&agR)W>5}6epnvLm24OcQNhszbhIIAPR+Z=V4{bP@~g3 zNdS?F1}1{wl!OU0d<39ILhG&(oI9u`;h&Cu(oAOY3?q*4C73@8ViruGI;a#)Tf4 zY8_X4qEFuA{clCD?61B5E%R?pwp-`wCHcN)u5NAr-nPG{pIU7?Ykk*h(`nTcmg=yS z=h`NhJdcZ`58McW&``I3)NK~Go`1AC&!sYIPUCyDRnL3ZV^gZ-u{8f(iY>xMV`h2 z`LH@wP-6&ArTGwmn%;Es&a{;d5LIicv2M8>2U*F|T)9Rr^T_ksvQw|+bE!_Vg`WOz zslnD*y;R0TYgGc-oKP*tMjGRc~HBz%xAv-y$-6gu_QSs6V*HY ztr{n^&Gfd?U9ldCEO3ULmq9>y>%*>JD1le6ASaM7wFM4V`l4a0=N#&mRg{6~_H z^i0GIQHEgyApx22Y{u9~qL|Cu**z2r?;YShyt*l}f~tgG;Mlw(P_KXl!ib6Qj-QT0 z(7Da&oKO*z-C5uLR*KT{STOD_|`?El&rTr;ECK*if3$agV9iR9;zk8Im)c#xYQp)_&J-utTExgsS?yaF^&bj1WGErAr zL(NhBt(?U{dbY&ovK_1t@@)AttX*6y##LrIialbKr+B~qT(&c7u%MhU!So_$!h zLFDU{`Sb0KmFG5<`<2s!n-Cc;#F>tZYu)#KJ+BwOQ)?uI7X6@<*)34EzPlw(*Z5m4 ze_hY$nXhqvPq)hN(WTnwcS38Vij=yo{M+Ui@?7YD#p!XYZT{T5Voj#XG4M5ss^1FN z`YC$Rs;33}cIA3!eJ`~G_1Hgp?Luv6Ki0fQ|7` zk49NdE`l4E{=VAkf!BmhU&_h;nnAq>HD!G*Z42%(Se5ncb(ZA+w(6R$t?i=7(_L#c zZ*g8EXJ?uJno+d{wfkGXui?@OL~-#Y=b0b35FkmaUbRs926o^M4vuJv>@INMkAdcVZ9~BERok=q1WQ+Twz9=LZ zd%jbxBvdfRC>`-Anb{40o<9*q&O>FqP3;!{vu37QHu}uRe^l;zi?+-+jpZTz)LKHA zWgZlw+6cmtHk^Kq*F(Rb8!K9ge@lzK9;Zs}_a%dJP2bw8?=9x4d(C&f4)B^D)9Vbo z^f`L&%bj&4f#MQE#ZnzwWMK_U?cbZnrMQ;?@RB@R4L6q<%iiky2i$(WR;~}%@=xLa zdmSe&b+~2Pdl~dv4duQ4f6FypuR(L^{V4ywb)Rq5p(lN9{%xI8bD7^7pI`ggzoi4F zWzH+xIRD){F3?qb&xG))0N6Q9j=|Ht>NDDPiapqzo)QJ*Q|VK)_35q)0S-pnLSm+WfaPFVt*`i(_z8P5aQg&S*XQX33>^PNR!6f;VSd)twOt1Rf)LjEXEHY#`eGTC{BGsEU3-?LF|9WD<@ak z(%#Yj)PmRc_1sHOeN_;eBSmz*XOHcR54;oD?IZ!$7>#?%Si-c!xB)%q&t6Lg0G16{ zOAEGq;kC5bcx!_w(fRqOON5HF(|Zf5+aXQwxd1PnBI)~EYx}!_6hs15js%GT%sT*p zhywtyAwUT#1Q5?t8!14s?+74G1PXzOo1OensK#SA6o5)xNEldS@$|HZq$5257-In< zunI=!AzmiM*LwvppVv)95J?U#1o8q~(BL5wjsrOyk2oG(jDBFjY%q}uQY4A2NlK|r zf2Si#66C~LuaN+e>ggd83|mBj7+~#yVHf~SM<_Xr#}U8%`ujw95C~K~l>8jM!-S{} z;&kehTp7>XBJ`VtV-YwrVqsoDrDuN=GEV1?N?;o{S~;CVd`6;RsR5P=YYDmZhS3nQLml|6s>seu%};&Huok6ceeU+(A%Y1J(_oIev}8vc>RRyS7yJ)>nPES=pWcoV=ZXl*`UZWyJ zrijD|V;Dq$XdHX|>;y=}DWX${y0sS09kcrh;W!cl=6Jk=S2(W_@lbLnE4JJyQp$*> zaDSwV%nB*dw3tNxn<&J42r+~NPCZl{L=?wy#PM*1j)CZ4EQ1Vz*g#^W5br&lkH@Td zKz%p~gkpJ#%wdQCW8#q^^Dh0=&eOAj=3`jCfe~&g|Cy)&jK}e8VOOggGXZ1(FhGDR z1=0k9Or;!D6*~3%>B5DX0A@(sA&_Jukt&iLrJc5UeZ&FkPv^gh-w`8JOl9J`9WCw) zMSQ0c1!x8-z!GFw4B$CLs;~lB0+b1!2%h4xI2V{(68mf9SE-aDYdYyJ zLFv#d*DPB)`dfI09OZaYlac&$>G!3-FU7S4h4NWy>(EQlx)yCg?|rTH?wKF&wT8Vl zdi3>s*5{fwsHG`4YOLMcLzKL=Q?+-jzV+O(HP)UwXl`2cSsATqYjwWVQT(m2G}h<8 zmDkF&t(&?CD0X$8$M#GsN$F{OM2GbTdcrhV%GcUEbw&Va zK-nzo>o}n7g&uus>Au?U_3}H$sg6N~CeKkXE{xW$*Xmk(p5@<~s`9Qt2%bt+4##_d z!DQj}1qug46o?4Q5Fz*&DS&~*EC~5TXR@IX&eDm15FFQrIFK6vKxI0|jyX8FopWIV zj?QQi4}qlG#o0OZ3!6Er!SoDKev^YFMH)~I$A%Dv<1s>{3Z5cch!4>W9Q)K5Ks-tV zN#Re$2Sx}m`dB`u#T&&s&Q5$ly+V9=U%d0-SQB_aQ)C3dI}hhPj1C~?=_n7?Ku8f) zc#X%YkcLxEd?E*=_S8u+Hq1~Fi1(qrranI1jY7EJVrDL5YPju$gcApNzSufhcxie+ zljzNh=VXe?=N-cw2`D@t3$qwlb-p(rr%zK&OZTasC;guOHBJ0aK2mr^y zLzv(>9Q6SW*AvytQ#h)Jv|YYi=FeV|Lr?x|#=J|eUusmjB`&E$YddZk5Wl6NriM$( zZ;`=!IDuZ+bS zHC2oy+Ld?q-}<#>8QWSD-C|DfL*w`hpmbJGzm;{?cCyMG3HLO=P+D&-FT)lAVaq>q z&HCZq^U9JuZP_W-iAdfDP8R?GAOJ~3K~&qi?X7JUy|$C3{A=~C=`U;fU!vPztG~Rq z^L2`7^NPCC18sN<cwaa<{v)3>u31#HPGD;jQB46^+SSmjtlWBWyyeu- zm5*|wU5ozlEsVHJhQsojszwL+Hi4n%oVYUWno(;@Y0c5&1S#*kM)7-JNDgZPG>|F? zVF9Bm!BNS9aPe{={PstPJYfhRFdzo31crbqM5(ZbFv3Ad!O8#|B-j4D;4-jmAY`E9 zAvnM}9#fHyYyd@PID=I~6bduIIX6XQ0BOuO91r2uL1hF%LW!h-cR=BJBzWTi4Wy6I z%Zzw>01&SdVw+^K2%J;6aYQ0L#3zYFiaGj2C@>O4pg2lA3Pcz}1XTgC0Zbr?*ug}D zi9#Uo>fpse)I&)^6c59I3cwoMB(GzXA37H3K3RPCK;h(>Wu6$ABb2O zHWN7pC=4Pr%ORy7RYH^s4P-7QK%?C1)U_InF0mhyJe*f%-DvQ@I&R%oHAmzYd8O4c z)3XR_d9I|Zt>s(O@mlh2xz>XolIiS-IXC9CI8U#|YcA|_qCjo!b8CJ3QaQb+LAB>S zDc35uCIY=Cu616tjv;HNUk5-u`036r3`I>pk zJG+)F9ZmVtSysyxIK$G7^Kq_IN}bc^-tH$;bY9WqOxF&ga)_>F4~;AGy46VgWnT zkG39sxk+zrt7%JjH?8NA{@+a7KBqo_uFh>udh^yN6w$vPc;MT@mKWBTdG}bT`{W?4 zpsY*l0xVzDTw>^6!jhA}jN*`X#kYW&yIGXA-|l5_&SCADxLk$gjJ^e~k<-)%`M*4b z;oy36hz6@kLdhYfIRG;z-l1k z;r$4AJObhX2rLl{89;sj=?+8;V3O1h+yy$v(tax;Z7)ayIX-D;*lND zKnUPKK(Ka>#&J9zaWn)SESL>mM8M>5WP+jKnE&u(!59GR;OLJ)3Q<4>p^lN5!2n1D zVZvI)ZU9t0#5<@G0tv}5l|GcClPr@-TYC|0Wf(NF22n0Wlp)Mlu-hp`+>g+wn zahymMX>6Lt=XfpBRicrL<7W&cA_{Pj-#;@nE+!S{<8mV8C_-!;%LdjMur+`+aFONC z@dy_=I#^Zgz_3bC=Y!ECMysH~z&Q`{9&8i?7^I;`mKLR_WBL1M!_>$Lw?;3?wA8zn z>X_?lYlOypZf>o^rRkQ+Xw_9NamZimD7nNTduje#*dhz(=xNhiW9gZ$B~&EcF_+hJ zy^zXJMDcQcQ?<#b;{*;kj=A%E7^JT4`0aAdDt_A;0pxmHUL9ljB+aVSQQIp$my*sG@A zW!Dw$@4&+N)RcCuj9a*$ugSlQR@9O9_0al6XT9{!^^&{d4o#CH4c`)zO7ZB*2VMzw zZSu>Fi#>+M76Wm)Q?51N^8PJcVjyi<3~m`b%f zyf@za&ZJ9`J06L2S|<}YM0_9s%=r596J9<)g(E%;ha)v8xt4=N-}Wq1r)jw_rES!ITc6{eHl-V;0y>`QPWV=KzFVNRrc;ZyzO0QIw;X4d zSD>Y7-^x0u1#fi?_rN(;Ll5-sCaT?AelKwgL-~>c=$3<4kAbPS%WN%=_cXX(gHoP) zR&?i1d8zrB<|jc$7!$&@3Y58D8=X$>_Ox~ zG=j;&u)rD(WD7(1Ur6ZyW(}kYqcBFm7GM$(D=b^=*uV}3`+;CBA)KP&VJt8Vg#BPK z>?|0cK{$X3k({C77!3}`nE(t>*iA9WA;voh(I<%J&*0~cPItQl*(a!Ys4%8eCB#RP z2?I(HV_?LBorN(5PKH1bPy+_Td&S_wPA)qFVxDF-Ujb4MqzVee0z>~ld++@u$&%#v zecU6ns#=VCGxNkgb+;0Gdq?07dq;u>BMF1i`2P|=5dg&*NE&DWjNly>ixY3Pcv_6= zuF8yX{t%H>S=m`tnI*cqd-7}3)74p#p{4sb++EC_Dush!Ld}N9{8JDksA0iy1O$&z zBB8+HOEw!K6Q^c+S3r_$ z5~{MzbGxi0H`B&JSmr;=Z5D|qqS58Zf>06LA^r%Jl0E6;QzKPdvPv*hT&D*$E!R9kX-#)UADA^3xU9i5N{qH6v@IJ@GrajF~Tlv??oclb# z&T-IXk9gb1XA^g=Ja+{{dknZ~xUFaC0Rsly9AsTK)qOW6^#j1Vjbs&WlMrCl-)(u_ z1*_s;b?aL^@Q6sl8 zBfC%LlspIL5(z^})CKZP$a5vjl+#Hd&$39=aE8m0wTuk13^a?@FdUu}`v!+c6`Ts0 z1DD14ohBC_0uF}@qv)lC0FrJlxB$*2li!fp3_lgra-2DGLR8vIk1D$fP%;$UHMmZaS)Zu8{=Hz!X9N;R3Z1I0Ks^3N9Zbqcfb9c4NdqG+6-&b5ezh;>{;Tc%>k>l-ER;NMsd3lB<_0 zOr5k4Qa7u5XPA>GVz`B{C4Q7Su_C&kh)%~R*L_{r@B6rl=v%*= zZZ@yW*Dl!97rN}ZcFotmg}paH`Q7Jc>L!wJUj;(b`da-QRsX#2{&f@T{gAj#7@ekZ%sDC>gK`M&(XIh~xpY1))O3L1h&{J*B)zA(?Bl1*lw2ibO?u zhDVb6KZImmAt)haN%vV2{Zk6z>^v&Z#iF$Z35b-G8i-ai46%UCGMMH#Cy5B)A(U7s z03R(o|g*+FsTyP@f zd5Oy}DGEbH$ef!KH%56*o@F={eCd(!j9f3tB&Wy%DvD{e#vuq{WbuZ*7~ZA}L141_ z5tYk+;f}gb9~r zhKUj^k~OeM7>R@j2Iun$No875s=gu%3m+n&B8V=8 znu{?mk*DJ$xxy^DgdwdLR`t(xFw}|+l*kw~g+t3qtuE6@o$$91Xj(ODVi+20+b})# z#-h!w;@(tWB&!t*($Ktur5VTKcjZE6Xp5VVW8Z-8t5oXhe_d63SzudrbNHqRw(mOj zP4eAGJi}ghz<|S}>zv-#s=V&)_}ucAd3tbFkrxd0RyfZ*`b8EOQzd4Y;sm@R@Yf|SS5(=lioVCg{hl{Zwp)f zZr*xc&nmw?hx@(+m`!ceC*EO`d??hF(9J{sLaC{y?psgwZ%>oR7#eM+lyi zOgR~Q@;t-)S+sQFqAL@mWRyFwfG>qfo=2hq7G0f4h!#2|r0|hUU?Brfv zrWyj0enN7YVh&0tI2T=|;0!!CQ8JekT!y)NT_)wWTH;AW_a9~f3mU6g1fR$YhR0h; z2tJW9K!aeGA-K8a2r6q7$+gU!LxM*nk~ktsBt#-f#g-7kq?${U+m?CZD-uQ3?HYdr z*uuo`{6{5`HBui>mOv`Y6m7Rr<^uKkca@EVisX?V-HvJe#=vY*#|8wmdD9#5yVT;4 z+=Gya6N?)+q&{OcD=1fQaUNs+=(_%O!EIar*6nvzVUwk>u0qvaZ-IB&zZ?pyteJJW z`LnOR{B>GPxGDX*OI!E3Rl2GFcd?AJF5R0fI6hRqZW{rApY#7NX;DAVz%C{o7U9ZB73N?F29R1DRm-s{ktylY?F394}IFdYd$vZeU{T)97gul z{@afKO>5h2#lA=oP0Imw)Ss>DS1a?dr(xZd@OyAF>J6Euy2_O|Sqkbx(AWj5EZfw- zZ}z#nJZ^9De))C4Q1=6_1HCTFv^=|O^WN(Ro8QkHFyI)->W8aM2dzU0R#pib`y5!h z2$1@qE$uczX*0id;r}rN@`pxOrA8lg6+#@M4u_34kQDlh?phPl)r2!@kyueJSXOgA zfsmBbNxy6bglOSl5mr%k(Pc(;n;cMAFjt#ayb6S*?Vr19@J{e9ks(A76u~70evCpy zk{yLmX>73&tz}sH+owE>MTPpzT>LIX>kvvLJ_sI>XmJBEvTRJApWuBN-Gt03r-_>qat%;nUQ4yml>)7RmjX3 zmF1k|fCN+^s38i`qC>jP;XIOqj5ES`M3`jASRwNe3dDi93^YfQ#gNFN2yuGS~|)KeSz zxQ%ey%wyNRav$t-eC(SjyAKl5s(pQzbo!*Ps;z{Vw)Cq$wNA*sDNna`Ub}7izD?`< zF7qcGMrn2vaR{aIq0n`%+O#(8i+tCPmd)2bV(n1Y<*@rF)*gEdY$8Z3(B1~uL6)4K ziS|HZx=A=xnYy>>)o1Gn2>Tkqtk{T5wT zXd49a%&j5_h?7NF(fF=t%-6{zDQ!Jiw73wggk*ssy5b0UgjuQhvW(<|RN%tTP_yLL zLZa)9aukUcxkJR`G@#DoTp-IVk}4!1q2Nqr$^D3sXOQKPr=Ki0Tyh(7mKEG{3s)g? z!hr)-NyG{;6Y{Z=>x43#P}+zPl&mb#*#)6^Md6JZV`g$r9!8095@Px1!h=}uWI`Yk zDqNQ8Iz*yHt-TD7%zJ}F=N3&C5Mmgj#9Hg_ci z)%;u|!BklADVVpV)aQ`y{->`Cx1D6UPeScBq z)|>LP4u{yQbyWmxN_*S(ufne*O0>0gA4SDo5dih+C%3VD74|Xz@1y*i&er?DO+0_C zn&0>B((+K~LsHw7P_u3Ni?nu1Y7dasIdK=FPz-y#f~{-Y=JRSVd`xsvYTh>VIa72g zUzh&apVYA3-m`oBo5S=a6}QFL>^~xk?%AtGU)f`QtyuT&I@$0pdFYBheUA=?~e|JZbxxao}9O)TYMVjXZ>Afi#bJSQ>G z_#9yhA$qMKm=Wg6{YXxT&y3)q)Ih)!#P9^n1d|dZx(^A-b^&H&enF1$TF4WY(i6>Ap}q9OM>$#HDz2G zEg?8noPhU&w=wE6GM5p8$NNALJXQu|25uUO1m1fJKc}TE_y7{iQ~emmC@(oZnF5A7 z$TG-sWjuCdx!^KEH8KUx!zHJA&iMQR<4=rxpMAyYBV~LtW~5WT`8@FK@(l|677xR7 zgy{Cd08~*Ys5($^5)ktQ9|++BkyLXMKm$-9QpQ%5XeA;PqewoOTXhJDa1piPk}OY% zIYKzYs=g+cwB^awhdA)@voXbNw#et)1xfrEyMWG>Ric7eSdi8vwsBlrNbywUj%8s^ z>-?QaM)UZAU|~tnA}p*{4Cscru$W~TM?>{9w^orT6Z1Bxo^1n>o1g#~uy5R^+s9pT z+m*`4Mpt4(g+q{?>uq?O`rd%MfzCIbUn3lnEO#s%Vy);`Pm#EMJRF}?FkrwY9OClY zbz$B7au`by9Cb=*yCk-bRB~I^iU9+<;MgnrfB^#r3>a|Ju|%ram%y)!X|(1ou2-DX~wem$P+VkKV}`kLSCa_HzQxW3KxcOy|L$SVOB>8cOw1@x@gpAQV;rVSKvE=g@2Ft4L<&g#!whc@^A2PYhRTXTil3C0W10%f-131W%Nv44!UiCc;p7Y_ zB`Tm273f|HR0Jo2Q^A|ZJ3}%@=JHqvrN@^Z^8rC{;)td#0);D+zJ7^TQE>(mSp>Wp z)62^Jg$MDd`edmhfOw2(S>xOsBLy2>P>z1j=>AJarxV6w$LZLZJ^O@hua>*+S5~C6}xkRQ-C<*FxjgVjIDt3M*7| zP|W=Dnze&=f53u7RQubKMV9#Y+LwEa(JOMzp)d&DuA*z1SM4ABkR|%u>}`H-+YheV z)2++Hp|Q_CbeHz4eQtMlJ*)J+)x3%*-ltz~V;!UZ{#^jbKsUca-!dIrS+(!^f1C36 zxlOyNZyriff2h9Nwf+y`((+JPcX4CWC6rb5vF)w$W1wq)sm>Ge^ZGgeQ1XXE5%N}D zNZOR%b*%|q+vwPR=@8h*yxx_puzIZ*l5}Mw+S;IxwT)eg6@B`Ng~s`?<9qwUs&(R~ zUjExO-#6v$171foFR!h}HvQx-ohb(l7%*VKfKABODax0WR88$vee>P;y9-ur>e|Q_ zO{^nmtV^%?PVE?v#rv8C1Q9|AcX}gebwz&N)PAxsP?bEGCzKvU5sl6r0uX$OsDdb&COZ;V@d0Ao zn%)tSxdL2Ly+*4ANhvzNId1cxN^u@@rXZf^(<8ZEpo}p}v~XbJmy03`1^b*KQTu-0 zQ>w3)`t9O(Mb2<@2Lp+Gp>F=!(hYjmXu$(2Wxaz8OzSR71e`Ld=8wvXLzSzF`%yJV zkh!T4vl26p4<&?vQO2L(qU(|{!ih3d$E5`9>*q-J66cJQ+>q%@Y$ix~%9m~uQ?E!7 znM7hmCa9ZNGZQ!CJf9*eH~|%#TdYtlKGW2O?ir#pRKcl`Imn!lWyzvP<+?-yPA^hC z^9I0lLFh3IF+s%PWCX4vRm5HsEZ{W0s}gWl%q^jq75Ly$dx^ITycJ01pmYSUv6D)` z#6WGX*k6z}>SPIz5Xf`IIZb4Z$_-1FL|N6E#&OXz{Vu_KMJdaJZ!wzVSHYq~AS1f2 zQH^e1R?XXSAF`N-t2sG_4{&Wk+>t)-xSMLk=uK?+?H`%q0 zx>zx5rnO3W(k(C7FW9|Fd!%*NC)%DhiQEXZOSK8y$lz=4bPFEF!tLMh+KtF}z z`ZMJsoM1JJW9#E=H|gIN_rB+~Z4@Pk=r3*O)n;1j=7~N^^+OOS4xPp}ao+?*dDpP( z=Bh4nZPNzz^xBHw7N_d+THS@*({?dsIb1a-MnZKh2d!~-83$d~<$5~n=C#E>e=eYj7C5~pTRnPk5tKV3ue&1Z8-!60CzSfvNipTEhb(gob?K@X}Zi{P| zydJ7gw2@j@qFJuCfwJOx+jL|WDOPvjHdv34TjXTLIezKc(&v8h-^4ZL_Ti8{V87^;gO)wg z+8CSrsp^{%v~Cap03ZNKL_t(7H%qr}Ba-nNb50c1s8>xw>Y)d#nyPY<|z z$edd^s;f4mt%p((w0;O>c~NWby}E1`nhNVSfgv6!U>lyD=gvi(B`J zEF!?9RZw>|@4F<({PNwN}>vOJPkOr#`oK`LU!;32xuTSalsk!236uP?Pcg%IZJubJV4kMl?(u&8R934E`8 zawNtig3gWtm%cdk+R}A@aj2V`ZCJH_ciD$okB-{z?rD2;QAVvRLwzsN+#7aDYg3w6 z+p+fy&}o0%b^q13pX^((*wvyMESIz1KGom#-+l7gw0hJ`v-TH@HlXo*`ERrC%v|q z_C>(2;<^cEyS90v&)Kz!UCY!)&`Ez$9qX^IHOqNwj_EFYt95;P@%Pm%MP;NdI}eN!Dwti(O=v`#3wSA{sZJb(TMhBm&sd!}hJSapn13Dby0a zI(UP;u|Dcb#O53IXRQu&SB>fBUZoMfzW)kqi*zMN?di4Tt8I^W zHNVzNUeJbP?jc(1zej-%ne)#3?^*{q#_qBov9f=BUFNKPrPsv9^aVQif@5!$J9ds$ z^KpA%R+g*JUTHb~p0baQ;kw4UF22^R?Rn76qw7>xY|zv6M=ay9JL`bg8QH4M+7$uQ z0R$?|jq<8P#=1@NDgng41wbM~oq*CN@VY6i{6h(h>g{l-!_zUasjrx=S$$s<pU3PvTJ!f{{B%C4;K0f0Si87hSuik1o}H%y zbJdoC%EidsQiB<@GN&j`AlZQsNFNzGkI3*i7GR??sg2)LW7~XrlFDc6c?@PS*gy2&z3#l9)3xY2V@1tv*Vpf37kYqW- zOraup3>a`na2wb4n+`LhEX&sCO&nXHd7IExxiR$V!yxVq78Y9qHBc=e7jd+lbDjv}?%A>xfl^;;Z|%Yt7bx0RsjM7%*VK!I0HmT2xqdYi7O& zsy6&Aj!)~o(Qf93<*DFq-)~#EqVPFuV7e&N>Eoms=;d z0eA6$xi6RnN*|a`3xo{k9L{Bk_;iR*CJ%!n1e-sr-!QNDArXOUytkyciiD6p)I+kE zeGcD#^*NyJ=3ofPO2USCs`=EX@S7kijPfLawOC#=2tK60q2j5VWzjv0fe>)`Iq5+W zOcbvQD7aa=Es^R^5_?qYH#P*qITrF%wtysS5b^q2BxA(iMzE4#K3WfuNY4B8C%BCgYkF3s4tO7m{@gn-efj)N!W5L`L9^>^__p zulTI|jQpVkD;V316KA;W;oMS3ojfJt5Y14D7DiOcM5-8L;eyPKn2b-Ng%+n^$@)Uo z9S0m7LZh4R5?6~L?lub^Z$h5e-3Y%4`MW9Ts)Sm%{~hXc8GY-cOZcvF?qlzJo7;5L z4cz71gZ<0c7XSJiiS1YwZq@DN>ps(TxyjrIeb=*X*S{`G>}|?(?3?X<>aCMfujd%w zw@hObn)z${+;@#{>j#^xrNqzOHrDH84{d4h^Y-_3U}JsP&un{6x4TTKn@gvgfIgRl z4k1(Q(^ot9zYe5|wlp^3w(Li`*VFOGb06G<`DYU(2|!fa=J2a??s}I>UDMmLFPrT= zOWtM~!7)+Q|9}Cv0kNwN{dE(XI^vF@2Mo9~$YAw`{mQfYW(bxnqSZh5!8%J7t8OH1 zGP~DSo_z|XR>ilCVDAvA4H*&5wZ#NAg1cLYY(&N-2S+qD| zC=iJi5z#G3kbtU-H?fjp+Cp@D5m;C_h$Mh^W#;mDgZV5Y)EcDTf47~5HY0LCR-0_D z_oZOAWQMQpy*6dQI;aX+?x^(s6`#R^Eb1`+!)sN;$;ASo29Sg}qL?X$AfXa~)$_*{ z!Hg+bt|^#8B2f@3B7!Btg`wsmdBVV0kS)9f#C*z^A(r9o2@rj&o0XUqSctAUj1urb zKn+}~2XV`yh6-#d#<)!Y=)#kD~w3*hXnom46jcwN1gc zY792R^v(As>{5r)_ULtf_T+NW>x9;9!3?pvljmOutXDy6$P3>8^X$2Yu3i-EkN71p@|b!qCS#q#96&2ZO&O%rC7-)#>6Z5zT>%I2GbyS9|`l%HAHBv?M?}H!;Dk{qxl^YWP@BMt- zJLmAhFU=;=jA*vVvCxt>$e3`o2R^5b%QFz9+3z!h9Q!n?gY^2Zp1v`)8{f0EfOh1 zf`gEOLNJd7PY4A*6oe4NRz#3;nv;9uoQ%vvsYdbfbIM=-hBE(zJWM&4g7aLE`{#&8 zfuTw?$Luo2Wsa=+tjc&Y;_UR4QGUwvXH!1?^lN4_&v;zo&`7MXWLd+MHuL8Lu42B{ zUHxM1P?qK&TTj=Em|nMAC)ZWZP5XrI3Xpx}sEY6S?d+WEB!FsDF5T4q;Z4ZLO=#Ob zSV!2F`U2YlH>K>W%CvaiJ)g%Y)3JyZUFL%}<=DC~eZJclj=7$8O|z@3jy^;QRqd>R z?&DJPI{M%0H2TRjn#B0F@n5%MSUq2*gzJNK{cc}p{9`M1H_BeRq~AfIepA+xL*OQm zV*1p1*F1?>r@e9)LdCZAaESijHGiGY6Kmv8*Mn~D1pP@(UCMRH8LAukpnnd!?rFN_ z=ep8=-Eo)KkpTk+3>Yu~){rV%H>(}i#lG8$O+t-Lo5}0k$aGNv-{pHz{Rb@OuC`|#VY~L95kZjU=Yb@!tKCdUM2!XU&Jy9`84w8# zh(vcALL`BRo5w35{YWH;M1e>i2`nKJHYC0OVmv{-pf)2bFR)+~l2Kgb6c+|Tnc;Xz z!Iz(YOsHAfU|zQ%TA%Y2(VUaX86bT1)ia(ydqtj&Q4M6dBH{@q7$cGqr~w@iyGnBL zRXt-d=Blo^PT)UG(*tfJ>g!*dQf44}_Qz09$3>e-=ROu$1`N0k41KRV4t)-8BMffa zKARMaeH4$k5?!0B2O0U!*42@*t}kxg|HD=HAG^jm;P#+v8*jL`uyxv-2o<|pavCsT zz<>b*1`N1q$ks70>(A4@gQe$Jw?*kd+%fTWw`;Z`QZxn8U76_Hnl;=fGxiu(ANt%R zYAfqHL1~||9NV;RT`9gMy2AQHN89qN&Xd?+qV3LbT!_)y*xl z=o%wgb_gMmXYI=8CZVN@dv5VU0!tP!BqZ&tJIra3<-XFqVO76kToYdkl-u%)mgMAsMK-NQ5zmTC%F4o>HT`43og6y-M{cER@rVXpKxjv?VbL zVa`1;q+&VD-%YiF8pxbXk?O88V?kvlqk29|Z%HarVl>!dEwQ9o7Ym4JbODm;OoL#l zZ;Cin6wM&GM3u-KV&HJ(A~2fGH!V%w^!(lwNLuIXXd@`^t2%c*KXf@S9^#C$>HM{+za6qa9@3S- zO~N7CwI8v1f49|dLVsvl->5(D@@!rD+gShDCCx7H9)OqmyKmOmyKda3vaXVqHwhKhrHSj#%Yf^{ zQ2+bGv2`j#Tiz`g^g4tOG`Il+HY4k-P;Whetr%uIjJ|aTh(1J%V+kMnU>%{Qc|-9K z2he6dHXZQ#5G!sY*4+xdBSqXECLkGECWH`OHAo1k<_Jm%hT(Az%ED8655QYcFEA%Vc*^C3tX`j0T?)Acaw)MSvJnK6Hj!|)_Dx=W^=alhyjHnSpBn`!U58Kaeag|V! zp0|XR#@LB`i>e=W$2v;^)$>EHzx&3q(}(uG&2^ZZZ%cm_ZbCgZ6+nH2>epGHcNJX} z4t0U>{&97`a!j`g`#^mTU$2}yF8O*>+Sf()ZdH!9oJDrYPupD4_hLa;bgkFE<=Xdn z=yPMXPuhJh73^zYafrHUq|iCtbtI)emuU7aTez+BX@xF(Dgi=u4BiOqxl_J-*p|?? zYxuTzHjSli=IC|hJJgxxAnRtwE9-q8a-S!z1~>pB)VW2{{!wCvJk?R$*n1D5RrIN3(b+zE))rL-zs%w zO0PR$cRhUXGBLO1^ExN`Lmh%{s!->;Q3=9U3mDv474y&4CeNyb<_QJ}Hn;E)NfUv9VhF*65Fj9! zD4ENXWr&oI)XtU)QRU4f5fnt`Bm@)1ObAr=8LEOv%9kv%C6V|L0Opoq47|=c9&=%P zMP`^2DhxA+kQ0!(6%8{Zh))M(A=<16$?=8<3cPqwFjLe*s-eKt0ulnF?4(A~AX=%I zD|^DC?nUvUk*MK45K!j`!H@vKl;HEZM(K#gcV08d+(yd5Qn*9J!8(q8%kp(c7omFn zd7Z@9#9i&9+u#t2(nI#wRc&`$$ra80&g%T{r(Asq^;dGR=1h6r=sF*CLErQ8zDYw} z2>E?+C<4Sy!*%7qFR5k~S)xxr+te@H$gJC55^3gfmwBQMH?8kfbyc1HHiqY_P`eAs za5HXJy{tkP($6+=Y>Q3g?#}g}E-b8yb6s3FtxvDQrhIlPhs^)G@z}>4cns`w54+8t zrirC}>4DRK-LY|g9ja@|1I`=(~6Awi97m+Cte+x=oL^fjvl&B=T66zxn!xT&r9AeSxh1yFN zl~#`{y3|0F%233N3@Qs1l86_o7>bF`ucvx{i4W7cm5R!Wg=w;Ekt|$@feXoQgjh79 zAy&WU8rK~&ECeigR5gV$%tEx9LWu7R1cAI5Bi<+pv3od4aVm)7#V8FzFtqfjEb2}w zL5sxt07KP*i}hXwQmb>X&*X|wgNBI<~i>N>jgJCFs8W1@ae-bAi&&UL=7UTM3%mpmQ0G+rp{1RS=1ClXY0M(a-<`1`HT5V8DRe zkEjW%kggR63rV5I{5NJRZ-h3D2*v~W^4}}5L|j}EZoc`gU;kc^J(|xJ;=1+dqfoER z|1W2%{=1ps`ny+62QBKT5>PCjS2v}b?}RIsLRROs>mh7ioOPkYwuiAU!j*MtEWf|5 z&KJ+EcEf&MxEQ|y9y2ftIG4rGA!?FE6z>CN=~qX0(_s5Qs$?!hC8sQ=s0d<;3jzc} zDA2LzId>=h4%1-hA&I&1Zb^<>!3z z(R0)pr)MK3;|bGg$%_{+DW*lV{4iFgvu_|MV|_>&JP2r(BbhP1d_gfQ7`dF&$r&0( zSeQk{wggIVgi25EjG_#bWvnB0g31{#Q$$M4JeiK8WrEA2cIUZNMaDRIEE}{CWH{_7@9A-qa{*`j~!D~5;-EeA_*3) zYhcwB9^#ZQk`CyR^q}cGiC3`@1cysxk%e+5ShP+dk|UadXtY3KGt4}SlA|CQmU%oZ zS*rk+Zu-u*nRCZ#bv5!FToD4H^r4d5={%`a8z7B1Bn$`K~QXPE>mDT=t;ecsHg7bW?+K;p= zlQ-TfOnY^qeXqQ>CT-3Bx?>Y`tt+#>^Iz9n(z}kOw*J>Ae0N1@_kPvKtmy4fh&0bT zZFM{+FZRGH^8B`>`a@YC?AQO>^W4YX&nnVNx0~43`q_4JVb(HMTjE>Hk}Y-Kc+@91 zE9bdp`a)--M8v-Lb?fJ}&HcH3Khw1f&+p5$CeyY?EiT$@vTV}FnnnG0Q<1#f&)e$% zYI(cVn@B%WLD%xcakt24C5x%%yZUFa74nx=ad+GQbnek|bzIf?>|N5jisQO;>PtT8 zN~-FWo@}1aYEC@cBev$)>mk&!#c5~x9Mm#q8-I7bIJQ3hmOilZNVT%V&3D^t-@g)_ ztS!TpGzyIBoa^`sOaKxK$KjzQ=;t#p^Soy^-f5E@} z<-aE%Io|v5O}_o@4|(}w%76Lk&-moyFUT^-hky7cqsdcVelz8>-xPfPe8$pMU(E>CAI7I>$n^Y9JC27a*kR$AL;9Sdm;`1UyD26I|5t61-Z?RZoy8a0|f^g2vllDqsPECNh8~YYvi#4Tb}} zj8V0y#v zxo?^5%I96l70vm1lcKmg`ZmDTb5dJg`pkcQ2o;;ou6@yd`C@f^t<&8u>Gx>DNZQ?u zesfy4yssu2^oi$cn11EouD`E)uaBa-kClq9irzlsxKH_4tr=H|AP{8<^~F`v9;OP% zJY08l>ks>w!J5_5oltrF^H0}HMQ#0b_xV3=oMZde>Y_TLF73r^b(8L)5wAwkD(!85 zciVcfHDzi`XI);lJ}b1#9ouA%eM;Hdw_Bgp$IrSHy03D5F3K&kc6C3rl2qAtG;WAE z`s~ze3ARRGK^o)YYFza;s?D>Va#AB<*kT^;^8T)bir$uCgsXi?mOl#3`J<7i#@yeU z^tNLPprIFNA7Aa`zn=Gcj=N)3*iC2eX8u-V-8gB=)K|5GHNM}J{vj*~MKR>nxveeF zhq7SQywtR=-*!QBI$9U5J7nYhvn@L3wa28odz_8)m1Uy z7jx`ONx$h(yUk6d?(bX`>aEIK>)Socze}C7!MJ(a7=S$s7EGAAXznKDdV%Tt2(x?7rc{D~d8B zAA26Y;rOFJd5>@X!2|9;QvUK^{0GK)&bPn)KL6wY^iO&5{E}BM3!Z&*$;ruxKl||? z^X>1x#czJ`3IFnc{ttZisG@E$^ea{(10 zc*BQiMHC)_)mpjp7%j8I0)3%)eU(&Nh+!CoLTBayjRQwuOrL?Wmz&)k0J!`2xaVLWeKK+2g(p|g^`P( z4t$|t4iQi-5jR65x}zuyp)3T+PH`&uVu}S1HbNv?jtHs0J8@*{$g>QykVtd^u`s_q zrK+fN2u2x73O~g;mu~k7Aqc(#<*M1F{_LoB4Y z)Xm4Uw-Bvb5WlZu=^ScTzDYj;v&vOUn+1abheaegsA@6`ouQiH9H?uy=d$>u{+Beq zuTHsQOAdhAF2vqS9K$sAzS3*EEw<`+znjAQN3T6&*ZS$nNa-wq=^9^^hYfMgw>}*r zKDM%?ukx$U9=%)H){)8wY=b_1s&Cl4Y_5KLV%ly3)IMaDZE);4W}n#k7HiLI7R1y5 z03ZNKL_t*d+b$&RGo3!+u5;{Nms^8%vZAYX-@g2}?dc9Rruq_f?;4Ihm#n%lwe&20 zaXlGogUtWih`txSj@hf~bI`u}!A%%{yOgENyX(SiJ5OzDhjnQldkptQA3empY`u=3 z$E~X_>D%H#r#SA?^0S@(;pVsLfB^#r4Csc=q>8Rgu`29sLBB)g?I>CQ#qe-Dn>HcK z&04J6d$w`Y@_AgS3MxwJqp~_!pe#x*rydjG?DUMMPapE=@d<)aOs9yO@$k_JS+2Z# zIi>K=@O(-(`G&IxBOX05p1gUVi&rxy=Z+7){RWq>0xoyFd^KZyGUDmm=ltN0-(x(^ zxPSkrc<*`ZtvC4bpZ|dG{pd|f`-Y$W-Ori6@VLxTmSvI^I0ToJ_h1USX1wwEobP=9 zL*96D#;kbBFMswmzyIAQJbUpKzA!#`|6L5h`zgLuUVi-?vlFsR7>{yhML^6k3sYWA zFHkM8G9$}Rn2bi49}_si2S?#Ana(aanM@ds$BZ;1cqPwH2*F{Ypa?TgN6I+M33)&? zqW}VeX3EKF#=R58Wia!BkVOJWB!%acMMgf#$ecq3j1rH-C=e-7H7qC|M;R8bHjIFH zF!O}qiEb^T#SXm9`+u~-5fBvTGDf2@mDyC0fU4kqh+#F5k8+AB_%h6i6m>#H2r+C3 zfnbK_8KJIV6-`zNA~majL=6^>jk6*|aA0KhOmn+Yj!p=UV)?qE~0qe6{ zAFyw9Cqz}`zX1aV+!Y*K7=E2`ye??&RoX82RL`7qSHg8svhNG8d%GT;RA*NXq&E}8 zHgUj!BjS$E)13)4cdz`_Rjy;_VVKqj3>Yxr`f(Ub71wZ}S$C-IZc`2DDA;dfYHw?u zqKg@-UD($B!e70Cw~Zx^)|l6r)7q{~>zUO1W2Z|rOJ7U-HJ4KmHP@D`F$60A?nO}| zIgBSG9y~lJ%i)`Eo-=)Q0W#zL58mSG)5jFkuMsiSdGe8RdU}sH-+Y(9_^CR_oIN@txG664{OV`FW%|t}KIDi^2u#t;F&QbPFDb)I z!t?@P3NN0|n2hgndUBt9G~%*&Miw;n-9Rv5>I+IS)Ma3vmzQx$ErTHBsOHfILnsMM z38f|L4mm*_hGHTh4$LQl1OyzOfD+w#h&aR|0m012_90rqumJc-OAxW>F2zb_Wpb|o zi5wA$8WxNYgkV#g2rkbt3;1AoUlQk;G)6U9wJ^wi5`t;8A_77gJi(H60(At7t{=Kj z>l!ufc)(*8ErdiZe^kvcu4xZA1X?Xi)IUi2KCQu5_YBK7ALeTM`Rj|=Wtn?%>sob{ z5_XsMtlK-QYinJ8xNgb`B4q#1U8|-F5VP&jqKP}L$ zu5L4qaa*yg`<-www{ksh%XN*hmsP)hXOL~M?q=X!R4lG4)2bWro5LT5)DyQ>yT!ZH zt=t2I-gN%l7HwzbF1Nzhtr>^9{d{bz2HpDf@$$0l?qh*^d)9w%W75A1Zd02cs?B!2 znSZD}EIm86HH|)bxMc^cuKRWATBg=;wsW0ywXC?!UTt$7SZ4)zUw2A3#ah*-vsIr9 ze|^q?`#vwW@wBdUy=&v?Z@WjSe|KHWPuIHISNmUA`fZ4Evh6OiUibJLFkrxdyM(N( zNy9#9J6i7J(A!3&s6SsSOGll8NmsLWHPQ4Ii|a0%;%(fTbiXMV(X87(0-jZ<1PArs z^|boc+48CG5W;{ZAxFI{+3Lf`>jNVywQQ~g&$5gVW{h0M{RgK!dHRrGGd}(JYi1Wy z&QHgD_~H9Jdh`*$|IKrzmjz~EUNJvrl0W8$Kl(nu{`If%VamnjGq4=9=w4(r8iRU_ z5{ND;ilV@*M4iXw1;~uj&+tB=;!sgU4MZ>$B;JfKZN{u9I60m0-iJ^5&iCG-@Rz*( z_B(v^^S|MvkH%o|XFvW2y#3C7vK+qn>>Gamv)}OI#aCRuyg+f+z3X=e_sdr6?~6p}_mV#YM^Qe)A=l7e?>}-b!2! znnl+L4)7KT7Z-R7h#D@3qL^VmV4`HMQY{K5C1towYO(01L$Wc1)K0180s)f%iELna z0)pXE%UZhbZ_(X{y68p48>RQCmY4(89Pf=F(H)PO;Y&}YBo!5cl{hy>Me#ny8Hdhd zE~~5;V1|W|bn4L)x0qE~No0^PSI~E+^-0~AW<>zfq~NV?kwtqLeFP)N7C_!A%&RKS z+i?mtq6?uAzt@0EmPl5rcWQ*TEA~ZFpE2p&gf|vz{drzfzuVUyM&|9c{9YSvraM)) z8Scme={0*mNwZZK%-z;(5T@)y{du*nrI%p6pR%S)e2biQiLZ}UlS7bT_B{@(IdT6u z_BwS~MOm95{B>WOH=T#ODuBDDaR}@~pbULVbs$nn*L8A7D^2^5r}W9|zLoX+zNm4? z{@L|X$bx*+E-z|+?&|*RnB;>)<>3&dzP@qpy-zP9-k46Gz1N}8IrVfd?~EI=9ItKP z7DaX6c%|i8XY{nxx654J`flUVrucUmf7eZV+n0=fZ+nv0UVeNW^dX;aYX5CWEqzHn zedD>V^!JhOZlt2VbL-Yg-B9$r*n8*7KVZP^z?@XEanh3RCew{>LY`f2RJ0K+=IL0s zyjr>`)@81WNpw3{Z~DHgFrZmqeKyry>o$Z%TeOiMwpj@4?cI#C8K$joG{Y}GUyb)* zu;o0y?ptCr!-A*cmxwxY%|JZk$%sd9+~et+kC;v`_|-2z!(STT{m#35>s#-0etw^_ zG+sQPVdj|4;MEIZb}`|dZ@t5#$M?y{9&ZI=QRyv}D+*CG6U0S@EP&xLBDq2&T3x^- z+FuYyup)MBiScBk9A6a7W(6jJd>jaJ!L)e6+uwSN`wvc-oQ}w|jCbFA!W&N}j3#h; z?zs2h6tl0GUIcQ4(+A4;fA}sx{_p;ndr!x>%=phg`3b-M=u_+&h~=E!3;f_m@AJ?8 z*+1p1fB##4|GUo^pPX@edXGoi4&Uo6f&pC7>Vjtap86ll)Y}Klbx=9*D}^RTdL@2 z)k{*}=n!R8sy9Qfdh;-Xiq6Wd&V^bIwpM^gpMKq}`}Xg;X7jM3#&(>W?1ATD3+v1Ya?;qbj^1N>TZ=zTK?-*`h3XAR0eO6s4%lDZ2o(0c` zh-aJlu3LdtN56FY$)CEcD`wR>b+vMFQylB^ux}ijC~?fV50}?v+1B->*&o(JQIqUD zc8K%1yP7_0iq!t^7ok=cUUEJt-h-utgf$J`)QkAVH?ZEtKMIQRk`k4&TVD; z)pz@|n%pnl3fHMD@ABPsqs!d8OIfaqptDah#kHirBKURnjhoX0_l&MbufyhIz<>c8 z(AoXRT~$;`s%C^V6SGT)^W;k9p^j;^4#Ha#pNSTPVO-tpP}vr!3QjW zr^K5FQ&3Q6s0S;JSvlj?#f(or`J7Ka`yD5f$GB|Fz5Az(Cx&Fk$DjP3$wV3D6Us6w z`SX0tsg4+*%y|0FDQ~`ekL(;=W;}Xw&ciqEb6HHd_;Si5%y{(plpp@+Lnf#2{N-n8 zE}Y+c%zyQ#Kj7c}+rK3+<98qbj2F*d@!q%I=Er~W=ls!+{sEtT{(JtnfBnDm_aFT& zlX2ir{?Ye&`>l8R`tz^&>0kdRzW(MV)7d46axyvL;n{u0r(=Q%uPzE+yqIF;4D%%g z1?q}qEy9rCnB-$5bNFyUSzO{&m=#k(C{P4*0^%_df-}eiqDl}?>0hClvLGB8**FJ_ zHXjNP&W#8qU?Ewr(D~s#gfJIl3vrGLiL6$s;XToMMM!EH5xH`quo|h=Wy|KJ%lQrY z`HMdN&VZb#hWF`5xVx*{%|J!KiNfYECs+spT((xLR4IN9VqX!#88`zq2y+5X4D15^ zZd47}JFKI&-i+?%Z)M{w|l!DW&${-QhUJm*e9XlP?jS0nf~$7Z~XOB1YRY64H&S5TQoq@3q~u+2y9-M)w~b zP>J+9iT`R*Z^JokRi%=27Pe zHX~5rGM$gJSrK^g;*t;y)ts~Q2@l>dvXSx2Uwy*KNzVK4eaOklIU+^~C0Rbzu=805Bc$5 ze84~Y^SAiw>ks+qPyUY2fB%ZfndhxPEcxy~HnNXqxPSACa#}Dszt4~UA58vaL zA31*c^NipA_L7TNfCkPU8vpJ8@O?h~?ptJ|oZtTDEB@8L`geT#chAwFy!qZ^zWc+s z8I2vE|NbSv_%C1b{HsguzmfCs@hPM82~wW&)tADnSC<42Ars2-6{RmC4M9c(Z$QAQ zA(Byg!coW6D7~{ z=oUqULYD8A%*h#zUA$@f)+#F*KHYM6h~-4;h6nLroq2@=wm{^>RFS!}?Yew-eXmC`_I>-h zU;3->^S9or+rhG1`?KBRTZKbx$NG|dk9kY9dpdVuvf2SgMU2{94+BYH8ExmKb?e5i zRy}SW$^PbI-{n}du-IlWtXyr5H^PCoBr#JV_W{1FKHdD z+Qy~tc148H)zTf`4qx+8@Y4lzHn{(i* zwd=N6KInoz^5{j_{_*$yZeQq@e!GsQ8E*02e)E0IJ~Q9@Z1GOt@7Bgik9qA5jlTf{ z1`IehGFWVIHVN|&?f^gS;rGCoy!F;Y)Wc+= zWVvv0Y2BLg5R>;}ae|euGDkOF}5QxV*&Wpt&Q< z#)vuuA#;w$PbQq4!K;fG{O*%4c=Mg7+<)+p^Ye4c@-x&G@nlRfgHVphCmHAW&iVci-{VLB_>ndrun#0V41dLoY#L$9KElzn|-q8-aHhz+W8%i&u@SpY9gA5-PS4 z5^tOSijW5y+tN!|dl+;b)qO;OjTEktRDILYMzC0Sjz9LA(g(dSUvv(6?EA;<%BK47 zdboXDB)LiGyRSHQpKhkH%EW#A;mUVS94fzuS*!MszG>f{zJ6Qg*6!{nZcEK~MYPh; zOQYS=tjQK;?Rh17>Qt=F?a?+zkme&g$>hgz#75Y-`Q_o5^~=YJOh4 zx5$@StmFFcU3$^H4_HN@Xb*RrHVA!k+U2OEB7jmBQ_KQLv=~u@8E5xTc3mJ zX1?IN-}yGG_B(7eXi*jdGkTnNGjt^Ur_Bz4N#D;KRq9osW6(e9CNQ zvd@`=9}rd&Z+NqtO|v6JEY3`2BA_<)gp-8DD%c;WxkjfG2M~=Jf20r%#{oGx-KT z%P7hbW+w!jKo}t*N6Aqc5p0ApB6DLvQI~Ume$LaUPk7_WBOX4u&&l~IPu~>YdFO3D z8vmB*tCGgkKcSqo-0Lh z$*Wf{c=pZLeE#{TJbwn$%fMxEiDb&j*(sCE;Y-h~nBjxR%qS6%3@o}~DuV|HAya$+ zZ{Q@5yMPlxO2g3qpS}0`lH*h1cF#QQ z+5Io~bszSeojE-%s;8?@IoI47PAe_WnI`^eOILV25#r6El(>vzqg*)RY z6UUQcmtY~}(O7@#{0B$pc#w_^Ash&KeDH(AAsk2q(j5={$0V9g>yVeiq?u>_g_AZs zY~=12H%R;-$9X;s*D<FG8wtuxNEjVt3xbK}-qCu^f#8H4KSY!WVWJ}1GcS^d(kn{uuEXO@deFpbC~ zvwVKqa%Zvox?}surf>D;qrWZm>u$qzn!LNc2fd#a=OyGmk3O4!{>?C^a=EX^#9`YSse9q%9+=<1sCkLnGj?6{>dS+a5ImXJ~wed-=MyDgXZG62sX^S+!%(*g4IX)t~?I-#z4ovvS>_-v_1L^GyT4ZGe4g++zbC$U@kg+B|>U zpa&TqawU;1y&TV;tNje{Q@H`x0bF-Z9VTk>T)af+wz~=6p4M0}vVRV~GOxe$<3%Fu zU-o=n_WaE;7}^XnRQBu`ohan+C>eJJ?#cV& zh<@D(Rp*ZChU4G+ch?A^#+GUKet-S<-|saJ^cvMq+6kwwcV(Xau3;H*oz3eGEQZvG zV?T$I;wap_gDHpUoF(!M#aVl|bOLD|X|jv*6vFd~;(*91{EAO$LE~J+gKyVZd-#}z zYK0$u_&t`dlvsUznU&QV2Zx7{76^oo_74&6F&}@j#>&-y$MTgMSSL8#Yhr1U+9pu~ zPDV(r5YopP3C@wE4U)74P9oA8m@?Qp)*KySAw8T7z$v0u8|gHj)#y~?3yqQjfh0{} zZ+nxXA8_lnx2P;RHn!WeV#T5iFlj;*@8jYW<6_c6#M0{9RLV6rw-Pq)9TI=faqG%0 z-ng~SA4;FHyHTgqG8iL}fk63!G)xKiV7wL~07&0=}*wT>)t{!aCx1N*q~| z)DkBN^;Q$>3{pU9654T{ByDrGq`C20nJZT+Na3)lq38#^{`w6nv+orK|z~NRCr7IM5ztc@=CyuesPDt_{;ZMS}qeuF(x*cIN@M#n@>L5}rOj$4GyHtol44tAT=8%>P0tgKeBE+q+5+AWK9VABvUH56ly)D@^ME#ibB zjP?m66jTx8pczL*L`V!ufF~7!E+LFUNrUexoPbtal2{)h1->kS>l{C#mBZK=Ya;{> zB_thBs_eS^^LNHq5Y8Q$VYbsu5;q*v9-i$X`C+K$o43?e8 zXKiJFHckwDr+0_ts3g~$xBlPz(zh1p%)oo6ol$3XhoR_+lrs)iW}H`r=!`KL(Ct6j z#GXXo8R<07>7+T)#bA_?Z&YNm(=xM{zcDFkn)d7j7RT#{v-;=oh5evi#aWP*{L@Jz zThR&uN}Y|AG_b6)B@IBDrr8(d#~(E;h3@qn`tQ-4dGh!1{{}srRcQ9)v-WB7%@b#% z2S8q9cmH!jOuDWZZVnvw{r&m9bVi%r^6kyr$+rLJo1Y0WYs2EO4KC+(+K)mW*~8ZK zdD9#9_jKetgy;~o2Rv~O*>IMHeb6J}261fshuqr0~4 zH{JG*$^GdMDX&hnjFSszlRw?&vev8Q$oAdISl66?O5{oQ`zaw^$FUo5t^W&#{MlbN zqv}HpUN1~@{5wk(8T-OncU zc`?WWGF;mper=jKzee>Oaaq;$K||K4W^$2}*c@}r@j_x~?DI1_!Nx=)IP-pvO!OKd z`hP!8b3ncZy>t9bkCNL<77?5H6%$8q@fj&qD7vdCE(-QCDp^Os!#lE?D<>-$XoXRTe)jX~eD+HgG!ju&xa&6?*t zb_yrKDU{Gi0ZD3!B8!q9SFS8`seD%d6KK$Vix%-b91{39xw5)IP)Ydcqc2EJ%IftB zLRyT8aU?jAB0SCQJFg?0$I~ZI`S#v7Y;C^BjVo6v6+NU9_<@hLjx@D66rNwC7?ddb z1w7^9tRzhZ)^(ggQpF%cj0;I@gcEHFB}cg;2ns3IHZZP*aS7IR9LZ7&78Z-VeruI# zwaUSM3n62iE3mv$Vs-T@``b+p_Uo)~Zt=!jt9ZU*VWC91>{BZFcm+k`EF0^49PBr7 zR#2A)n=CI^x%1`<<*H)ynITn*%JKrY z?=G@@^)_K>c=+9YqB!L3JInm_FW=?%8>@s#N}PnGHl*E*`0nF`fBly~a_`%1lppiq zPu^kW>LN-Ni4#SfBS0}s6A6w8>msa4(aJ;V0un`% zn2tm9g<9EMAo`6ey|>PcIsH!d?#ms+P}lg>eYWe|JaGkzp7DMXbDkJDpFsb${=80Z zz&JbK^+#kHCci&l{c?KBuK&)+ymsgC-e*tG=ebwP!|I>jW9IUfVYa%JQfAXp1%S$t zeh0_0ySh*R^`3jv#I&O^Olo-Q-3WIcR|XLx#u?fAb@1MMS&%)yE_3x~ zH71T2QfG`wE4qJNA4aq}Z$omY)*;Uq=kEl=+GLir^7O&yNuUtq=u>^~!BJj&*OLRT zjTV~6c|CQJM{=``O?lhxu<>i4&18yoeqNhGR!lR`S$C^X1EZWnqu-m|xOI`FscajS za+XzwXY#mD^OXECpwhaC!qF z167oP#HeEdy)T~;e)Rt6@)AOfO8!)t=U>(K{p`1q9{=pMu@53r^ctnlrZBdiM(O08 zjE#Q(SWHIScmI0~FTX)f)nU0gRh68bHL}*vndeS*pR;p!Z+epu5At9VS!c@ovO3g< zU}$~!-E)0EbElJI>>DB=+x$1B3Yayib5e4c0oW5d?mL zrNt#`)haeMJbC<#ufKdmt-8REf3(Fq<`XCfYhwv;;SeyW%6`uAnq7Bv{qz2u|IZhl! zrEv)9081Q4Y}H%5ad(xg*8=bjYimy_mnt|bj&{>)I*vDq_5!Y5yGBqbqNJoy5cpn# z=cQ;5wAOfD07_u7I46<9M@t`x#u-VP2&|PjWM?NoEu3g!L<>~H)$3LM;^*&kW8nt1 zN|Bp47w`)fM~ZU-=LAYar5bSc+5%d8Jbk>66N=@PRTh>CtSm2549c`xEw*>+wA(S- zQ!La#tKFnn^0~TNqf+$=VZlPlWh3JVwMfZ4@d=VA8DWBO`G{Fvu z$#s{rB#222jptR$$9+>j@#H-6hy6Yd`JxJBUvN!hu{fy?l4n=@q%xBjnk>dm4_HYmLHs1dxmH_ROcNc^33zuQqF}JdH#PM zI_)ToU$0MRY??MPb5uVV)Tgo#<>#1Vj@e`0*XEdGJap#CcR+u-XqIF@PDe|~#vISe zZ0}@m@^mpWN)Z&xlnNDu^JpGM>}?$owm>7;-U_j)WMz4ot5=utgU49sKzc}3 z02>gueb%4sv$MU&@|Ejo&tYtYNn<1uEj7+soKq-WL#QfFlyJhs35W0;((C*bzCn40 zGzkIFo(Bdn27y8eiIxK2lXx1^G-31ECU@VwOKs5-*@VrFZEmb~jt&8d5(R|wQL;dx zSf*61P_34@bNf1f@zeLY`C5&F2Yw(Z6iYOe0VQz~90F%0CY7WyM4=^#!8wW08l@G2 z2qB`*F( z`xJvKEG?BO6f|KNqXT;siro-JDSP{S{PREln$JJJ&+9i{r&=oV{tp6HZ&bK*>pF+q zJCqdo!Vou`-2dovb~g7A0t&@4yX_TP2Zy*gq8b!<`|cG!c>gAjBAe?WPH3*)c#HI% zTYR;!$zd~Q|KJ{Bt4$%OaO;g_{_1buXZ7Y466;WYh4y~J_Oo5SyZ3-U{`xa^w?dLQ zB`Em3_rYxn)dC0222Y;sQ{Qk{+IW7-(v>nx3ybXTw5abVM3Es)6MRpgv}BT9?Q>*+ zqcg#t8n*|LAv@8Mx;uP?IHtmNu4O&)X;2o%&c)fu4>?l?1{((^A$Mebu6ORvGJkfS z&y-vy0>xl5=5UMz~3(13o@+fQfVM4Be4YSv_}S&)^o%E{#bWO66ZRM1zR!}?ne zH_^;+QDm6B^I!kF!$@wka;9e{%H(XP{qJVEHZ9qCug}_vK1;&K^L&36ed?keu&&Rm zKB_HD+Kw-ZtT!mV^AL@Di)xsj_ac&>@~+47I=+WFmI1_=O^v70;B5I1T<7%vnX`N^ zx;|b;jOrJ&7$36s!@TJXTUX~@d(A5H)(Z!h^9Y+c=C}a7(tUJ}IT&&L$MZt3vGX#+ zxjbiD=R2#pU(p_>Sm!a+U$#&^=f&*Wi9Gt}dj5vfOOpzfGH=8sMEVarqD@)4+zQm*nF17f@GUebJ^&P>tU#_wC z{nvT--RpP~NDVFpg@-47d@sP-l*7gjVG@$sn8ZdTX&WaZ&=IlOXKTMn)J!OqJSxQn zv@RlqBek8#8bbI-_Fe}LOp@~W;U>|~LzHqPVNBy7CSEi+mx71@gTPWO7Fk?c!8(Uf zj(6UDo!hsrQC_yV*s{1(W@%-aovk*Y!6~e@q-lh)DGq^DU8lT2s{+O15}sE=D-Yo$ z##jvCdp@${;b}o3utXxnVvl#}2Z2v*p-i<_piw{I%P+shInC)d{8iAtpi2*S{^ zv)!WIPFeH{RH|MlDuxY-(-zIp(rmVH&Z0d@5GX3u0&yHt-`Hk*Z-ei>bAwW;L{KOp zWq`m(iU1`8BmpMYY;U!>|IH?iUBRRK2i&?FQ7D#JTDk%5A@OckfUuE%Tdy`JA;!YiQ4M>&*pz^z$Ec zSP%KtKYh$^9zVn{NWS;MoBZN0f5__9RsQ^kZ}|MvM?87FLm0;RzCuWOkv6@T9$m_y zaPBAyMR#`&1IQLfhN2@%#qr2JQ$3>3s`{KU6GQck=G1PZkW8R1c;8HY>!RCuFUdm7Gu40mOSO3>-z^_kYRq9 z%(G4lm_=JT?>CKxKp=b066{>Vbs6HXxbi10QX~l5IlclMLZzf>$o;P$(>!dEn1t`aF2BhOr5|J6nAD={FQh1)e-UKntJxLB#sn0qbiG_IKMz z6vZGwNk!O7Fd+yFT3c$>GKGSVrv>Foz=uD2pVt4Cvc3KcC0abbzsbV~>$IB*ng}f{ zID6!^HAo?GslXY5NnvAsmv$?}S%*y}SRa#iqFC58Mo5RXP+O?-)_b?8RI5DrW}ThQ z7B+#^*B#fcuHbo!N-Y4D5(I)Ea3CU#Go(giY=CnbKPck)3TxZ68i%BbLW(k;t|45B zM-Mjn?f-j^^=}SYS+4Q7|L2EXeYcDj1;AlaOArJs)T%5jRuMX-P$-Zj5+NkjYKhun zg<`3QYdF@|cG=#jQ@dW_>a_)Kyk28zr3Apva_`Gc-u~bg-~0X>+x4}2*hI(u-A z=NIYRfOAp1bIg$;^!VjI(#7#SnsrxCm&(z1HRq0`Ebk1*Y$9M}&Eue5uY;b?>!-a8 zMA>m<)m(Jy!NXRl>lQx95eUYfCDjydL-D&{`8IbIYDJpN7p!;G(I z77sbdlIIOUJ&4IZ%&6M`+)1GGY-wdhp8C&nz4N=Ax}9v0QD;NUF6^Y^2emfTcpW8fB5xh?C&;c*Bb~SFvj96bSlyyg+d64R2~way`4jv z^)_MK5VgUi0*OReiA@B~KoVN6tQNTY?keSKncw~E7yRMZ-_ok5eE8EP{`!|cp;#=i zxKhNb5FrDkNU$y@bty(ztdhvUCny!sT9L#dhX;GavA~)DO%Y{0b~hUQ?suQ@^+#*m zdi@3;{PkUy@6-_1!x)1Qf@-xywN|1~@CZsp-hcmnQUlkn)lgcX15myrO=8y9w%K^H z$7>5$SXe1>^UfkmSE@KG*x72Zz1hGyN4X-YE;$yLH1%eKwZ~hmJ=vi7vyh;mSX`{I zP+egEAjM&D#0VL)u;}rlpT0}2yiB=J=B@W{;1@J|2ZuaeU#A(ih($`OQvAT9a(#iN z+gFi$A-*TkX%m-djCB|zF)27BNMp<4e#oQmcKGhzHd{L_-u%Gh%8jd(s}+>?5%`!? z;+*7Qx5bx#dceQ@k1u)f_zA)@-1?6{=Z&|oQmF48@{w<| zmisIS6_Y%lRpu-lz_W5HPs5QoNjc_8E3X55*!45*Y6j^$2I=qTM-~IJE^j!GwA-Tk3SlxhfRxA*?VtR z-*nNW+Ub)zhQB|Iusbfj%QUBqb5dp|>h-V9hUjaP+L$jAd5JKSwt+$Sas~fCs(@kj zH;hm*Nu6BAdYTnx;ndHwmY+rx>q+wRJdyQ#MwP`JbG*7ZnklmSG-sKWIp%l;k?Hsk z=iKp*(oxS`6vhz)`hP!uzUx5GFtP{%>NtG=Xyh@z=TjmwC7(%NzwEs7MjLRl73z7M z3e!`n#1XLqpwrGf?c!u|a+aQFUQIY_F&Mx@N;*OJg&|E-cDD|3riIo%rE(c)A%(>n z!@aMbAY_WC3uskgZ>P?|!6wcsOk6>_MGp23_~cJt@bt;I_%5l9Ty zIE(>jJ+K9u^@RFiO#L9G-Y`UAjBpYy0)+K(#*st`#j?k(H&^frK93%5@o&HSobB~G zVf!{8eDDE_%gbE9xrkFy=g5yV1qX%%>xFnVL-lGvWvPUeny?vD->(zK4wFiRkticD zvE$&N#rAHUa&3V)ao`lr2$I;MG%PMvsMbm-B`5>|KluI+kxH_3MUYU(sTfp59JknA zckDbnB)pqYSuAkljYVopMN9%a8*O%X4sgyQn~dwVUyW`mu3PkHhvq+M?lMw%#ziK7^kqzEZ+!Xt`(qF8}cEG*V2S4()F z#yNpf!4bj2&~6Bx-alY3I^gd2uJX5k_ahb-%P0-TSlaEF&p&<27oVIP^6M!IIr$K%;7Z) zQbm^CkLNX34%5~1wuxc&IH(=Z(!e@?tb9HZO)fje)~|CfWt56Mm~>nmWYfq(j+#b# zS#Z(q_53>2#b8(+<?HEOF7~fT=$}LjUd8BQHZcnzpWz{hPXT@!5Qwr#(g=i?|BI{XY{4cf;eMl-Ox7K`%?@d^AF71EXH$}k1TT0b4o9!VSmoMPRO%foff9m zm&UEl`tN1&i%dIG$Q*OLQkaoHagI4&Wn>~%Kv(&>JW9>;N4}ksSq7mz3*T7`YLhBx zXN zO)*$xsZ?b1QOf`Lf4<>2|G0roDpbp5Y89WrbL?!?Y3%y=x{THy)(L!}5ekGb)DI4M ze1D(HqGfNpMH<$Kn-v;+iru}4{rv;l?Fefno>!z?@d%133rjvXZeGJC^60pVDxPrM zzqdi-pv|2(s=R*tCQ^G4dw8}&sZay&3Bl4KH{Lb;;D=YZ`|eFVU8J?=Xzp0rNrZ6; z5=$Tjm12Q~#VVDh3Vzu~Dv&sYlQ^e{;*fGhvvQ?Eu~cAlbD#C65!wqtRk?c8W8q4P z@}iHD1|o+{J&J`g%h!BX-&n*idqkn7v73@4Ey6ItlQmYazQxM&5`~haScUzAyIi|o zMXM@TuQXU(s_@|HA;ulxL>no<7(=xduvjfp@+w4!fIUw*dETOWMGPkwQe zH{Pvq?b=nY-&mnpPx$PU$2@z|B#so-a)9zIVOqyo&}#9byWvX*ar7T_4Lt+k9Gp6; z~NV3<#S9IV;ySqx}ONc>;v<@G{+nlGynAyZeQuXc=2k*^f3bm)ToVV{c8## z@{lUBk-uGc6IrH*=LE=$#<=4&E`vTl#~gFaF~=OQD)gwy__7)2hV9_$hY$iO^Lw6iMVGg-;sC zC={L!5Yl02vcA5_zx?WV6e|@rHull7#OI%WO*7h|88&FtcX{^gDW84vEv>_S)}L+x z5Jxfh?>|Q4v$NemNKH@(Xx0xnJZNAoEG#Th3>NUL1e4;Nmm{tlDH5{jI$9oO-K`gl(2HO#_~#)C~EVo zfBrR}e*BbTxx&x?>K*>}+S@Fylv!9R0ftt+#lc>aRx3gU0atG>QYsdSwjiuK;!vSg zfgmWLJ%#cmi={<^l1~)JRLV7ySWvDimX=F+8mvoko$xJeZ}0K(A0Dv&xPb{hZ0z{v z>&HC2w}A^SrCLBq74V%$+K5?u^o)c3nAAAhtqA7?+AmNj)hJaK34$s?u|%a>VPUa` z);?k6Xon}|qeX%e3Dz1~;bA8lh_s|6q{85gB26U5Sdaog2q=}x6bn9as@d6Uv9-C2 zbyxWCCvUT|bcJfI#^&Ze-+c3!u$|(01(c^T&Y*n(R=%9ZqRWQvJl%VV?(XZ8pST{H z+km-p7UT6r@BSNxap_NT|2*Gh%;=+XhRx&C!k~x};9O?ho6UI7ymaoxT^tb_3>#T$dHIs?#hx8mA$5;4?YWyXfc(i+PO&k4Ytx@{Kq`Ky1 zsGmITJf+RZ`2%M8R zClJDcbRZ1Y*dt=L1R=qR**H{RARSQ%fm8sdQ@;Qx5UvxoLKu*p_NkOaD}fLOfkdDX z&SGhUa|FJR5Q5aiSOiKdoKPKSoRD~40YplYfR-Lw7doT}o01quY5@Z>b);!T>V>ZF-C&$u|grRq)yS^Z}Qp4-=G5zlS1Gr9(?0Ik3oi%A4HAB00Fi}VCi`Ut0RR$u{C!qQ5K zg{3l4l>4eYUoCh~tQxHw~4A5|u?*Tn-3=B7y>fB2omjTky$8 zPx$CJ4{7Zucsd~sq1BK`R{}h=S4GGQhliHm{@d3)y1#|BfEkV;u!&X>cp95J zoDqOU5aV2kH4)aN0BC8!MqmihdDcB_>Ic+D9k>X~xcyw_j&5mRyFhBCB0l zbn2orexA$+4v?~Q)47iEM~VdNQlwQNC7=*!gcAq{;5vO9hjgwJN60xWNBW2WD>`~f z_nvdvoyG2qrOFMscJg7vbffbjyAy0u<44{+j&h2RPs{eadzv28nO9G)DK*+rJ}LV1 zK5czun2rZ$NgdNL6pxdW_1Q_Bae4DHjO?0K{~cAf{ntjd(P3?1)`q&QPVKyPe_oRN znX5V5<#|ZmdC2?2pW|qK0VkyAL2YgFe2#is$rJn0S?^lginaQr{-_&e&}^CZ*FBHibb zju_+xK0DgGBR%ufLxTmGgb`#{$86k$B}bS=7XNE=omI} z;zU0>e)0JIqcO36t{PTq zS&mz%^hcu@i5%@Xj{zpDp)C(lLrRsYJn}EBv!y@!9nn)~8JW^UWKV)g1}EnLCyy2g zu0yQAbavufP|`yxABSL8$Elw(_FQ5JVL@~Xp<5I}`NyVhhXK{OE@fx=>1>LY9#}|i z3+q}4DN$+(fyNkvrvs#vBqkws5n2d5r7;GgFvcq@lvZ>~sf=lYRG_p(DS_4oAv?}F zAs~+1C}9AJbs8(6of@P7M1eH5>}|JkG|*a7EG}@c+n|2nD3=QqoKI_epZkaVJS%#H zEl{Gu&a-X)^}ju#U5`n^3c}X#qz~5Ta(v$sKNBB~|0dZWZ^x0b-dCm(&qZ-4VA>h(Im{F@*1i+}%ps*6xv^zi&Lf*Mj( z@l+XM%4|KgeD`I8=6;iEtwp)Ch+q+^%0$LtbqTA>9JEvZ@X;E7{@pj&1gM3tB4rH5 zgG6H@hlvf+8VVjX4-a|vaG$Nm2|xRrYe*+~{NO2HeD*od90johOlJq?Y3!nHlosRUm{!2-_JuahR?HMM@9?i^bX$Av$C!oCkPF;UUl+V}(rt zi^8IvL)lI=9GvUOJPICS=@2S}a7Tkvo_V%YTZ2ddgWnl+e>mB1{PoFqn2i3W-sc9t z+nsiY&A*dJlsMg5ddsQTFeF5WfRKkcn+1cS8swFEo&`=Ghw^#k4nrP&a8OjWVKTEg z^oGeCq!SM#R17j!4aW49 zAiKCCzIoewyhuYOXC=*k*YR~-_{sP(Zs zI(($Rtql8qoAF2!II@!rT=Sm2mZzx>%-MkEe?Eaj9?dbXLH>R{ZoM`uJuS~Soo9_U z%=gm&cHVLRc|r88)$-=&yd?R2iDi6lV1Jx~t~~6<0MSz?zh44%El(CMp8S8Y{c4Um zrVX7-k)Lu0$dk6UHnXuzN}0{5KBEpj6$9viXR;crt+i7h1ZN@hvZA}NIL52-+0%m% zq-jbVB{=INq(w-J)($BJX&QqADLteoNfSqs#3V_GRO*Pp;*d&WU5ZH}gaG9kf`WhK zjEhOq2+vb^UVu^_&KcV67^wxw6s*OGgeXkWI-pXnQ7PAm;}CP?&~<>)DY%$4O^}|( z;*+M9WP6Ti_zeclYY-Y(Bus z6d5E)Z7``}XR}GWX|buG7?d%IV&mxnfBOBmv|EO~{RVp*OQS>ULp{Ch1*x2DxOBxzlhcSB_A?2$z%B2dWLKWfmY1Cut2W_I*vRo(=g)O!= z_IdVX2WuoNSC)C>&TU?M?K(+pxcAj#{^zg$%;x46exP{!`?o2m0)F5~O^9^~0*k8xf^i`>H9(3|AfzM;Q}%abqNc#bmNYT=dWAw^iBjnrp0|wW zmC#-Z<<-!#Mxn5X7nDGD##NJAgisU<1^j|SdIB37Qj?&BLbwzmKzp4?32~edMIqK& zf?|<_R-4Vub=KC__!;leY=k^}y2Zl>&uBGc%04IsS_)L4NoAU=rX!=9J2s47g4N9>#}w?J1JQf*8k}}wOuD1|qLD}c$>V^188J#v?>GDo zD$_xZr99=Yl$zM6ILvXJNB8Xw>D(`;S6-ex&LY~%tB%eTlYLE@wZ4ooQy~HM;zb%$ z1|9!2O$WdUa< zak0epo2vwY&y&Xo?C-{y7~<9;K~SMkC{QeE{6LTfm?C3wCh@HN_#BuPTY=H^Ikgwz7<`Cz?H&_XBh zbceVh97o4)q&Pg3zD7}dXuF7T0ZD8TO4AA*?Z{B_G=aBFWD{B~N7Sy9qzP7p2pQo> zi6e`^$McH#et<+$KWy>kr}tTZvWa!j+-;$)q0QZ@(_kZZruShlo^g@AC(k zNYH9U>~8K8NKK%88hbJKKHVUGEn$265b)8uM6(gIvA)N%wOy(UCHA(P?C*p`tOXILX zegBZS)k0h`2<33n5vK`Z)WolZwrMmP#Bs#oVS}CR zeGd0p6oUndehJ|uk&V$xkyzJpzPuR2+NHqpc-p(esBf$l{bQ}@dDl6d?bPil>-T`& z1t)$Re$!Gu9IQxtC`b)(FD-5>1TIh&teXq z#m~M{mAP*;O)ZzR8#T=x^$ucL$NR zo@YH@M0A8+Sy?teLB0)8lgz)}=ZEP6+4R}bx=I!T=^Vq5eW!j__y4HAdZv9GtzGkA z+Wlovo9!o5)3{h7oEmVm)_WxE`C$>Fa~@ z|0<7_-T5f%TKH8it2}s7`pT^Es(=3+b4(kTic~R5X&%NZJ`eH?C!K6gf1=8A{`PsU zjl-Ve3t-Go&U(2#eO85T9C0thIz;gwhggQ=%jUn;_i+o-U$wmk^R75GbjUGC=AO zp=2juq18x=I3r0-3$(*Hjc^h~fRY+VL~0GrYA_PvEJ%Y=j)GQ4$0)@Z>(E|65~dvN zwyE#ek9OHYpaf~y;@hw8b%-BAAgsfLj?e#mpNHRWkR*oYev?YEfbx9yx9j}*w_me< zz0B^;AyH)T{Q~V~#G~(?@u%MxXf_%=eze1rN87}q#nS?u<6y7Jci*nFwYkUkW&;y@ zXjvs}YW6l0%GyyXln8XIl9X+>>>2TnVjGzc%Hx>VrW%>@>g%GlJhzk5jIut^dp2pmFo zI;zEz+JrO>DFhxtQKGcPS%*>{N~`0DDb`xz*bqf&ryWEQ%|=MOX$W)`PX(l@#o7b_ zXKh}4${cjY*VE-T+%zhB{tum~+%^H!qJOk>+)PWkFU$RMz|tlRfI%tPFj5bjE2LV1~)d z`mKZBmr~{;O6N%@tFb;S`bkBj>OIdlU1X@v^Q;rHw8gw6vPtuHT0Uf5)8&bj*pZz* z0>QK~t1*34I-|z!QJBTJo(Hp7|IQ+xS?AQeB*9sH|D@!(X`$BvHOz^4Tz(m4PD<44 ze}5c-BCA7mTA0*(*5i7dC50aS$7y0e8!m#mwX!%YkbLg{3q!_O= zWKFw^UYqjBIn3HjlKaP(Y1R8MXL>*JC(FBe(mB39;P{nc&pUDUSh*~Dm}b8j*7vjO zl;_XK^L1)pHo{0&WYtTa2hs4dkK6r(ib3|FSDsAaMp+rp;*~G2Ip&ySs>n{NfHOM) zMj@{QzIQ?xmM5jMgk<$HnA0 zRmFpLO3slDT6+kgNRtlnASfxWtzO~%@4rX6T;$P%9iBdIlB6j`uY{0-N~OrV@7?8l z@89L&gQvuC#QMfl5GkvxD=aNl36mZExcw1EDpsy6ar5RIT)%#ub~`4C6Ott1*}7(D zvq_S)@qLM}HO_*y24fTABt=^R!UB%eHj$L@WEJguw4;zDju8kvrSO!8(hig(O+vy} z8{av!R0uD@VG&ZJg+h6nG>I^xfzt{tiv)!L=R%}ZD5Y?CG};M~X_J^HT9naRB87)B z7H7aKNEDVZimC6{5oiKGAn-g~qFH;eO`5I)f=aDQu~@)4*x%XblX{bT<&G~p3jz?L%#a- zDdAzn{$3N|Jd)V5x6|a=+AfVo3u_HR7>sEnRY>6bI0T7tXs;7xL||E2sqpW9`6J$W zBc`$MXg6Y>Y}WYn&)Ym*YtU#mK?#(Wlqx>gUt8hBAHByDcc+SgiV7p zM`Mxb97CeD#4mVA<+!$5#Ec{ML{~J@}_-Jn3PBXXV*`YtYxy1YO>dB9s*3B<7X~IU1dd9heY08-7gzv zWvHEm{57qyCl4+v`au?%r^c2U8q~AuU;XpqsQP*l`bysRmTv>hWciqe?vv-cE}E#6 z2U8!ba@JE;ow{SI%~%I^HfxnUB{l87I?QQ0$ZkGttQbWy7gPRyeH77tZ%p zN0KJs3?|WpVMKMIgmac=vw=~_A8!08rD+_!rAF{ErO`1k%9S}t^ z)OaDw7@SEQ1~D`jB_~UV{s%lK}vx$3D^YfKx&Qh1O-ona73*Zo-Uzu3D4IEVR0hD z*#xaMwQ@kgtKys@PE!_Yix}&OD+;+XYk+x)}d|Bhs_ENSjX zd~^Rcd)xoS+S(S)mZRA?z}h0WZ?E!S|Lflp$C4j>_$CXBCDtD7vi9(RB=k_CgiQr$ zn&4bYp{Q6{t#b3tB|iM=yS(}KZJZN4S$jsK-UL7^O_Ex08m-EBx{4GEoWNOuO9gQ| z0#71@LutU-qv#{^F*rN==gKbGq3@|9QUpiNEyro&va=4``DH@;g9YB!k_{gzOHe?BkD= za_W&1J9(J5g^R>RMxV%oyiSCRiWHf*oMw@S<0xl+=ygoavOfFupGn9R^KoHvbjv?4 zv3VS_IyUE+J~{-*)AR38qHd0LO=j{zj_RJ(xSBN*MV9Ety>heQMQQCXvz2BPsdq4G zWR5xJnB%hIMVVFRm?Jy1);iOJ&N^JiojQ4Upk=w2XQ$9OxxF&8A}_0I8pfKe3+?Bz zz;n*!+JSk|N?o@4@A>`MIoI{diQ{KplwBg11s&tF!Z}4y2&gSAAeCl)eVd@5@dKa5 zL$<;Rn|M1^G;ZMJR zLVdr*>gp1A-?&Y!xs`B#L?b;2E21Q1k^Rt>KK}yKkQIWc@xt;B&a`FsVbSPJgkfKv*A7mB45o ze7noP{?peyez-y4`;-eMik^ovj-B=YpS?G2k|a0pJbwWEiX-o=>bk4?KG-D1CPh-m z3?))KlxJ@{WrM%&Jr)byogQ}5AVNVb!CHg zJH}Xv&MZQBC=nnCk;2DUAyHT-iXwJR3#&C=pzu_HB|qY1N~)*;cmClah(4K%?d?R- z7w6v1oJw(U-`bwhtK6AcF2BoH2%eN!QFXko8lS7NYFQf7?jw20DO4hh2C|glk1xKA?li2>(?(6rid2))? znbhGfQzq>Qc7f}A74`q~CeLAVW$H@msw&f5$Nw^i@@dsUm3~qsPfqdnc#78Q-TO$@fZNsyCW;;U*qD=XWgT>#4B7=|M9%vsCxapKT>S$9jR z^Y|wPVoz2Mt%FK7-3oPS$1_hl?(q|Ya;x`w5~BXFe2k-C4vS-7_KKs|i{SiD_S;FU z7)8|XzxQpDEBzR^PIHzz(s9t=|HrYL-$lZCu9wrncY9Y4S4`W<6lV?RohlI3CZJUe zRb@uh!T4NB6_aA$R(YqB4su1xaoM?IgV!f@PV-6Y^rU&14EDBx>rDi$-M`e^a&RiB zt3e2f5E3IK#%9bf%u%a1SXfBNrVXKrqedtW}~>wAWsR>;!QGJpK@ zm$`cV7Kv{2&Aq#P^g+hfY6opRbf&Q~<@TFP;LXvEC7pH~YhrZPB8y{mEJ#fVnL-MK zQW?GwXeq(-kb#E`C7rAVNs4bQz6}s~AQY+1=)^6MDN6ZxUJWUIlu!s#3>gUU!yqqz zn~`K)Jn7?m5lVz$B$-GNLL*FW)HhmSv_x1%W-ZdQcs?j4F+!81hITh20cy1wj5h3c zyCmzIL{WfELZtEVB-qTuqCq4G0(7RifA1;lo6q_9LmyuSG@^)REgI)PG zX$)U{{0*Jf4$GGpXwJ@q5IkRb#8;m`<+ID?I$V!U%|WVe3W8d{c7e+A<5j zSSD!tbXpzme*S&GkZr+ zU?;g-@V5>JGIP+v)|01$<=H=G_MIJR5A0-?J{fI$QTKMS*#Ab4)!}9^8n5xY$}?53 z4>QOOPO#ncIR0^Zm~m%NUpdbESIL7bhB<+I<#`gFW*m;@abl9r8rM3l60S-fk8@PW zIGrAoGS+uH%$X_q26Z}MOWCXmew^X^kjae?5uI^e4spIq77 zMMkxv!9fU7i7eopUjc63GIyrfah024is&Sa-;>&^^Q;YpRm!S3Sl3@(d@<0nqY%&r$NReRh&_?2m z5GlR#*?5U+T!y1DShGsJW z9iclWCyywZ@0=lKv09GJe>f-x3JfF~r8FNi{m5*cyV z;0uX~;lp3w<v06Rg%zJbQbge1+_dXaJW(@nZ9 zL%pe)o%PsQ^||}SbAJDuPr3K`6Iz=wQYx$lV=SI05K`0aw%Oh4u)EVCOH(`#gwR+t z)*7%1Yw~f&3V~8**{d!day_7LKCt(@=xo+Q;?^GM5IsUm`DE#Uq+$EU=%VoDq=Mra zh)!~Um@{z_hN_biDym@As=q@yut)PzW~iQ&uHcGEkZP;ww63UP@H|aJOp(4nDZR?| zy#`l`k0U?loltYys5);rPMbUpCw7(o?;7VtLYdqsGVT^Rdd}PXo|JfZ+8A7^*pE>T z;?pYoUOMNcu20*UR+gUY;-UU$C*9sA-Tp`Ez10X6ZhHl~I_Zkq>9BGy(&@^af5V*E zXDvgnNl_`9A~~*dQZ6NwFft=rR#FP z3P#D>^D;hF!JvQSq7%CEth%+S(;yw5=Qc6SH#QjNJio^jQ%o_%w;5iRWljMF0y&`- zZKt(Tt`NeF(_AG=*U6K$`AYG@{FW(8s=%vvn#O{n^o!uS{pm$O&%rl^JK`)MO%2$P zE7z`Y<@!}TU-5ipgBNStq}ot#M$9eFu)W?PNfW>j1U_-xWqo}WV>CCeU*psIW8$QX z)-jD{4JksB*wSft>2!BV(iYNsDC+1;vbnWJH(o#}O&A6sasq%99ztk*-=ouw+1y&^ z{)79ht!;4Y&L!S_=L+xtF5sPaZ!t3y@#)8(^Q&L|E4!TyGTWfhlw7}Zm8j-n>xS8- z28)*#Sz3_1=&qsTjAnCzKmPfj^6RxY761Ss07*naRMM>`%99wYP@YBG4o@Gg^TB_A z%zysdueiJOn4}X^iv+Xt0YCW34|whS@3MH~8nJ-;5AO2SC!g~5ho7+W#Ur3YP@AVd zTW7Aeh)`X+amMbBAW+Ck$aO%V>AYh6dGX5j7bs648B$PQi6rGC%f!+TBKSdJV{vd$g(awkKp)ng^WK1{NAq+yc*SkEuzlH9AFC>8qks?3<-K4|z&IV7OKIY&4^&?ta zU0%F+0T}#1AvEYrBZNdqfv3EKT@t3400zg(gPkg@6_pC!?*D&rj0@w&SsQQ5$g)R& zUz}Z_s^~xP-PReTltT?Xu14MCl0V!DwMVy9b}>p<#W;7tm|~m|Na;?17H~5U|3z0 z$taipGznedy9VdukA_SG5AED=%zTU@4A>)kHJmQ0j3-r&-*X=~&d>PrT|^P7tBg1@ zl||ofOy`qROfkh2=M&DyfAmjP`&r)o#-{!W{v=i#xvsu&PJ2&LcT-sR9&m)KV&gig z$Q`5R$h9JrvFeNB9QQfZ=K)oeN-tl_j}>5rzzDDcl#qDR$0ixlNQ9}-p6&RjAXS{Y zeT%-w3gMUm2^gL4bTGRxgBR_v-Rkh*(KoEEKV!SS&f?-C^NTee)5dB|mTHnXBkl-R zpS1{rI#;e-NBJLMrN#<_)jnxruyu>_1YxL99{8ak2qjWNtJNmS41O3fGdqjt?|{fK z7K}-d(&9;vG}f#>UE|3&&w2aZ8D4&Mk)QnJ6>i^IBI#J3J!-MGnt%{Ypd?S9ta10tRiqWX{qA*cUA~I=sbNhGUwKGj(Y8xl$9O>mp^wf4 zE2|n~49Yj)fw3OljwbFV`OY4mzz>65PNZGpEG6&^N(!_Eqa{*FR3NdTrrXKD3XBkF znc)eaFlZ7mi?s&GNYf6fmM9{W@Da))WWKk6)er+N_q8dsnj5Qc*4(+1gf~tM>tZX%tB8phsqcsSW5J&{V+I+c@)nEleSOod_BLHFT z{vSpouy~#%@Fd;TlJ9=Aw^~hru?DR*+6u6C?;Kx?u@-?WtgoVBA-{IiAZPb(_J1BV z*Z1xZToniRkDPweAMak8M;uK@v$2$1 zO+m^kE5MI;rv0EEd)!r(gZfw5DmWnop6BoV-oMlL`*8YI>NF49TitRbhx^yv;~buT z|Gi;O)xqmRs6+Yd|K9(&Yn}GO9>h1i&Ghm*%JFg%r~0IfoK@#PMP#SJ_a2oa~<4|Ux&l$Nhz-{TzPtVIi74+$>SPcdvj0M z`FWK&rId$>YJ+m{;JP{Su0AI|uDay2|K4$&_PzE$YL}Rzyq^>{Ct`r=lu(>J#?q@KGN(6{1D_~q5 z0IrjK*Oh{U+sBO)7lJuyL0WsDSj&7aW(2u2P$-1e2}&wu}bzyH5KAnqpor~mb5{K=oc%}dKOEG>pK8iLl2p+2Md@z3An&Kpat?{4wg zXOHQ06W)98HgCWE5_Mtt)ONOgxW zoS_+n)Mh-imKd9XQY2Z1)f(jsd|zXQ#$+08B9!vTY(~-nU*3&!Mi(6)iFzylsb+QyXZG(^@UJxP$7@c5^ zMM?MSa)>nJ31y>(>E3tyvLz9diIYIhKNzd`u=NGM0J?~a`1XJy=E{^ zeesTPRQBB|)%VKC6bGM0j-sM8+(%VcHFFqwVo-;xN~#$4%)xbm*x%Fm;99T!_rI^J zL$xGF1NqyJ)%m@ukvfJu1P;HyYkgHYKHzY@l{q7e-sz%DbSL378=MyueILxjuzB7v zGRnboZpQMw{ky)iM9QP>rC0`+$(y6$#*IAf{yFpEzLAF+-j}MSS6mOSbI?&?h7oXz zpUvgp;d%SfaUpL*$CJUM@=$H1u6x*`Xp8j`SDEUX*P~^3kXBLHQF%P*$1Xc?9Na#` z$tpm9n-+&{SA*9MT_5;8j0EAja(LJ?MQM(@S0r~wI)(S1aUpzEMNwI~*p{lNSJ)0{M%+K-#4DGyr~^aM^_m$7S9{G!1Ad*q$1J&{No zmIoL4QpKKovhnc9lY66?`^%TT%1Lz{=XnaSuV)>}w>Wgonf%iW@1#@p5!DJ=69=-* zdFIozy%dh^gBOaPKfC$QMVWh@7KV<`Wi|%e->N5+_8Gu|qnw93Cr!vnQ@3ZXB~LNM z6k~?-P8D#VSo9l>iwwv`M_LR%cN`3oHp)l_XFULb`vgGiqbo(q;&a`8x~QDW45i<7 zSoSvdE7U{n{>QYq+##^|zM>X2n4evw*;pV9=XvXm4jWs`%+D_ng%NYJbJS|)YbC-ejFEKOnj}q$q5$Q2U=;`j zd#g@_=;@>R5h5S__6y$q!Ry?5X(Gr{%lzUj%S&@83lAPV z=JL%3&02%TOdYE;1fZmcwUSo1P1cb-_;Qth`7a-{zOli}FVFGX8<%+L+A>~Ep=t_M z7u4oGuDyI2D-54}{5gO7xBr#hR-1bCH~jlQdykuUZgTnZHNKEfkRo7iA>ftQmRYzI zvc0>;;!;Sew^>;BdHdaK+`O~Q>goz#e)5nkZ6RfbH8%ef8Y?W#nI><&{R*$X^%`?? zvvjw+eEi{ueDZ0FmFGLmEi7~W#!JjCgjix;tZwq?!3NtKZG?dN`8v&pB25!Ewo-JO zAy8l~X%e%$yN;4``2Gw+d1PruH*O(>B#I)UFhod+*mL|QRuF58wHcl-5klb$iLW9& zDTw0^(psc4NRgmqf;CxwOo@!~y#@{HbmRQEliAr>(%8e=E>fn%Nf(nvU_G?SFfzlK z4yj2OTJ45 z2N&($13i*J|G!bQ3|Gf)&si~w05CXa4jn&jv5{mL!EqGCfRSeys_axznqEZ*!O^g` zuv`bjPim(um-p{~$8qYbuJxQ7&5y1CKS?|3!PO`-NuzyP`#7|!&~f$oaoV%X>OR-q z-zI^R)@fOMuFg3)+W(3i<5k<|Fe1h%;{C9EyAq3XLdEbfr|F<7mm{NhA3XToBU-tq zR~GMJ-MBiU#$RT|J7A1M{uQP+Rwq(9ipI22>rBs;&R8eG&F+;Z??Z2*+I@4neEeDXXFiOePTuf=HpfluXA&;Uc$hevjp)TP)0agf-3lLK|x{Y<^Gx z2#q!gNn%KoE?Zl>T)TFeL~oF#DZUJ`R_A|!5FWl)!&4DLbTL|z#E`@(x}lN6Ly!|I ztg-nn7s4VXNF_;A%?Iz_<$wH-JACi^O%|7CY3~@m`ur(hfBBT1?G8d(mX>Cjn{CqF zNm*OnWM^la#ravTUBAT4Or3N~lcq6R8&n{e3ujqcm}6lfB+Y#4wFo~9u}Tu_4kyTwm`_6Fa3`wok^M4xMfrV`79b_(6z}AsS24-2q{cUWV41R(l<3>j>K*BgJF^ zo>xQSp|z#8(|<;Wp3E*$?V>43?-}A#Aw5Y?UV0CC)y+%r&R_b=zv9m5tm3d%4UBC18}qg#3pbAYVX5DFl;amkR$mkpm2p2@$T{Z^)!NA< z-)UGsyy%OdPCNfa$IqQt`8x?*ly?+DAmmY^+<77&PBFz4Q%o_%6jQjsb3Uik<}02D z4P!;0qgJ>aXTmE)@$nm{wfcmLt3O@y5Cnl!SgrN32^hl+){`(mT%1YZ9;2eC*jo!y zAoebso^g8Lfj5NkOkIO)P1earOEFPoA$6Cmn)X1K;=Yg8(Td#%PS`onP!BMS$-KK%g^&(H4XUsQs`) z2&@ozp2Aqm%IX^T?mlL9-(!7km)GCEN*HNcJ8NuhZqRL~c(TFl z>@q6yusa4tle%|_R4K9;+TAWQ&5T+-A`BYDX--awlP<=j%q=u{^|f1EyLJgFAxTp# z25mYhY4f8n5C|*wuBW8Lq^6AuQi8fb29S2P2*Ql0E(ij}<(HPZapN*qug?OSJFQDB zEY5@Q=*C?Z7G`+wXYbH#&Jg|E7yR?TeTFX@+x5L8+_gQ`Ng1EKCZYL#F z9@5JQ!iY3!5~tfJ>ya5j8pk9_hQ%PI!SlfP1l{&7LMWn0AiTY!Xz(DjWGQ5%WLXBn z(rnJq+bY3Wjm}cE&cGUc-^0>7TE=acpeYV8YRk++^a*S8!%zo|x4GlRV)|Ak9{OWo zhYNZJ;9|Yz(74pc;V3d*_NU{z@*i??o~uLC*-^;R_bdx!0g=WIcqhQ#Np ze@sHB7}S5qv0Bi*?hoG^*2b*0m59Pcc|NKK9<-Ce-33mnvlqR~(QB2WtdIwH0@6WV z+{hKK7&>?&pgn_cU9_+_eFMq}oJp^moxgPa{8* zLRHyOgtKZ_`{@p}l@r&Ga3fToHpbDms@ChU@!r}!=J5q<^HUt)qRFc%rkG-iZ#z6! zL#;p{)bL4Y4}&{OR9O*In*M;H_p~SfRp4p>>Ah1`1L$$`Q}+C68I{f}`d0w&f8SF! z?cO$yRSjC-b?D3xh5_?)vn(wwvbnj%y{{kh$w$voO43c|i0Zewas3L7Mo6cdf|V%c zp_IaCK@w+VnPz@|hOONQtuw66kWwL~x7TknjLn_kS{np{C<^er0AmD6q7NLqdrl-N z6-H}>5O~VNXpd)4H&|U=V{y5`-LIao@_dUV)_6*i3CrTrEc5d-NHo$ay1OwtNodp? zL^X-E8QK_xl%#2l3>3Fszsz6#vOyB3+`QAk4+T#iuCcz-CTL!h z^A_o<6tpBuGb|a(w+JOLX@;>Kq!grSg70};xw63Jmu3k952Fn_vuM)=tC6<1y`qPw zBvxdk+K}otsotfXY_qkK5pS;}6*QVP8qFGuOUu-oGgxcs#x0_HgdaqJhcO98aRbGAXHLhH_K|N}cb`u^yxXLFVe9o7j+~@hDHBuF@ygbX?+$H>AkxqAw zt?gAh?H0llEX*vDrJ6M9U~C8F8N3Lj0_j7i8>0;Xqqd=@U zAXwPm^`cZu9NT3^`C+oZ{Cbu2$KR$79Oje3XoF2}2pzoxNYU>iOlk}sbc__~mB%58 z9@kmYuM<_pqED5wlbJ!}4`nC?j!{eV;_Sqp#Z| zK9%vvVE1rU#Cn-ba&g$YmP;9-%r$Sr(yAIyQND&QGXQ60nd>x-dOq_z23se^<1prN`7 zsv6?Y(y3p?0gz>xbG*kbvti2BMZzTN)Y{w;*V{3=pXa=9q%c!bMHQG#5O@(wiwi6* z&a=L@!S?13n`_%36=5ym#;rN-+`7h%8&`Pr_z?(65Y!2Rh%7U7x-n^*5Y++}7Z+%^ zTEwjc5WU$L2!pjLS(cDx35bm5Op_pp(3z#viT8*x8iYmwN=i}-MjH?wwWvv_owB>r zC5clWJzQaPW0x$;2tt9U6m#=+W@hU6D&^+2o6OZ`2xLIuLsSElB{P~NO=-7Vbdni@ z#satBSfo)C)EkzqjV;zz6SmeYCh?GU5GKVULHGzF&>z%=9lJ}om;?IpSATaTU(p>Y8h?voj^PpA*2sdklB=O+Cl3KDKer+Gc#|f%}QQ< z`wBPSzXU=cJ;l|Vi@fuL+XPVr;{PSfEX$V{`LlobLw^3tpJ2&|J6&{KO=IPV>C}nu* z`Ye9v)9rTId9qC>P6@mW->Z?55&1qsdRU_o!eXt)7>y7HsRR;<@A)~Y!U(d=U`z@) z9+mYShd}Ht6)F$Yqq6k~2-aFKy&WmYj|U+SU`>yJ(IZ;)ZuN|!_Tc;8r>nETSX;WI zM*lco$+;*fom8EKR8cA91jegjhL*#Ib$jSq5uu{@>AX|gDWG3p>ep9KN@gv;-g7F6 zeM9(Qn#U!RjMI5HtPdPFPta>mN6%!R1o6nlDRogu+u&w=c3Fk)N~ox^($vN2xfik* zqU8SJINWz?89zbiI1ZrEV}|=Xj#y_mLXxs;W#ZGGeC$c?|VX|yg{~JZJ8x_~E>&L-3+Ty5u9(Oz| zs{fvDQY7z3$&2$~PqBaF~wv+hWW~b;$FJs(t0GQARAkNH`CDU{Y|kK}|8m6jMxbHt<{nYOP6=1UTw!7&H_} zDJyMN>;h};{_z*1CXPxelycjyT_7CU>XT6}oOcQtgHdH%#_?|ztOX(I8F+*^IR2yG zNi;1ocLYJ5FleBJ!Wu)GCV0x@((*E4G()4F;L95IT9ey%uCemsIay*5*2fy3BuVIY zTf|9=EK6uMXUI~+i>IrAK}e8NAf-T?B;Ucoi>c2@Zr*x{&~LK7zQyiN3u6+b6bNBa zLV)lvCLzso0)kXfiz1@1ju1X^oPsbQG}@-j&G^)t9zi6jMRk7i-cPuCyTRp4HFh_* zsLd(ra}i!QCvY@^2HWc)cfVZWvroTbd8x*a-+P6*W|L<9GEvw-sZB5mS=J^^6O4(l zLSnG!Oe2lJmmWbBQf~xAO^?Kalqo_;TDu*DkVH|y>u=sh>lBNo)oSJCg2kF#R!ZRk z9s&<3J(Lpoet;k5e`Z%wuSYB{&a<>Ui|4`4R+sIqHe1^rUb^g~ltKu|5{otpZ47bJ zVYj;rMv!(pw01YxZf)Sz8_X|6T)jTe(()W&=yp1^+qjv2)RrKHM8=;SmfjQ|S|7Z4$qy~f#|?J}Y`Fuw;HqhQh0e@O38|N;Pqwc&pSN8Qr2O`9{`^gkJhK-5mt4+JWHj;5GmiYca;Vu~r;;Pr?KqaffAQDGRVV(|O06=ALr zLg0Dcku>^Inf)nxA1>R9xkb4j^#lx1$04c=8t40!)6+IopI7uI*M~~tP&;O-tXF`P zDOuKGeQk%&K7P#Vi`|@%C0is}!kj-t+z~u^uuF5MPOTn*0IfYRK1z9{X_vLN6}Gpw zc=e4t)T0^heeo2nW3*`_m7&>ea{2NlZroZXigvkmdx>}6eU05#hm~hrY;JA?DRPe# zptVJ31|dA8(4?8B+wGERojX>AMPP}dfG`X&He+@!WM)<&RZ2HWSeTtdw^Q2dEdr@| z>+L)I;iGlh@vl@G+yDR|07*naR0i{6me7mP=`LS<_7(rv|MA~xL=AjG{`B9y#!ENr z%q#_ndkVY&zg7pElQ%LOqlvL118pG_kQkDd0e@^#GCKjW@Y6Cp6_9-q}@#j zY93)-P-}YBn-MCDdGbY@-~N{uw066^dE+5(zV#}vy>W?GU%SQqdyla)Mur^-cIax2 z3MDVU_A-C^?|#bSl^M2o*GaMsTAfWA(IU$)&GEw@-^Nk$r6hc7A?#n2cFnlN$M$qnQp4*4zd5ABl-voM;HkQM}73h z=|gw-WOGibFklQq97yw_4uieqii}W$dd#RWrD=?~=j;H03Poy9G+wzH<;tD6_E5PF zTjf3(cECRHC* z;yrt^IlFTObqRwLVs@7G@O64B%nOp+f1g3TR)CZiL#$aEKDG}7}~zC2HJ)}s?| z@#OI;UwzsF6Z6_@i@fvhRo-~}6`J#3qQ!HJ&5%ao1t~gi^X%a!X?K$c-#q1qKe?ORCC z5=9CneRLXt^^rn?)quh1eD?(_e6T*&`hdb>X|=mp(WW^ox$eyqgn~}DgElcjf{+=; z#$XdXVX+ACBzOYhNqjHD6AFbuNP)Hr5G*Xu^4gm>+1yz}D226(EHh{uV?|76V&XVP z=vjO{M|VBs{@rJM_VL#&FV7SBAxn!_$x?;30&O!oNt;fRQlE*qeEAYTeD7U6-{bM4 z$2@-ggifc6&USdd@|4V8=hfG4@V)Q9%Kdw5#Ifa-*RS#3&+gFf?DEw;O_If=DPTPi zn*A-dg~6Jf+ajg9NK4<(36468hLxVR2S$_L(H&MCJlAso>|08DI!BKw4xQHq6z z_JMmvj`Sj<=18Za!!8wN*UC_Iq)8cswa!MRBGQAaK2@%dIoY(G(l`!;BdO=Koa)2s zzISVw@$oo@(ov4|y^y$?A5TguDZhSr1@bT=j(b}<`FpvQ-^p;?d4h{9sp1?M=CCZ2 zjjm}I#dQ#-SLZ{sH!`0`;kHY|Bn_3W4%or#gZVm6K3xsxRpO|c2Umhtudk1K=Q5d4 zgr5Cj6sc-b7&e|3z3-&pA}7jh1*c_8adwoI)LKls!ut$9c%Y}^`qim<2QaUM@Vo$3$nuQ`4`eY0t<6^*Hf=D{#HYCo8NxUndN@Y;11f z`!(+0dqf!3=ynr4&nHb&9z1wN5cwn>%l1}>An=jW(&=>B-R^Q}`6d47M?YX^XPd3f zEuKDo%7bqnv+`_>PPa?FUPCIoza_rW2IYHrp1{)@&sQiVkOGX>w05`H-Q6NdVrFX% zZr->~vsq(nYm*Ot_aT4xe||uq1b_WE@A2;UuX6qN6&5cq;)em5PBCdlea2&XzQLu1 z25T>NXt&qd-Pxd4TOx`Aq$f#jMx1t$(xQBe@KTJ|LHHR#=;M14#wyY*18I>eM2Q7v z8<%NqXKZh5v%9^^wU=rvFJ33AN#fYh-igQ(A8QptXr$;71tbU`Y=G8^G&3Y=M!U01 z7-r1O)R~*}(Mgx>?G{#~G-p7{ob;iT!Bgbq6G{GuM2R3LRR|AZ1xaSm-GnF%xq0gf zfB4M9V$c?ZRJ1$W#A%D|t!-AGZgBhNOT2vh4zIlYh=&jE@ySPDFgvq=rxr*%Ayx-i z<6*Ri(fN)cm#)lnW%)8UZd@kmWPJSLUG9GM6stXUI-9)z{_nW{@*Hoz^*Y~s_lNw; zuf8OXGw!@{9ls{|>f^8Z{If6E+S)=`A1Orshelxc4usMeYtc4E?+rVm$XkArPIZjF zburK*Hyr-6)*=}!n!S7b1PSPk$#$R1vS%3XCwAI{WcEoJN75h2RY5`bF7@=2!{HC& zw0-wW2^zNl9R}|o9Y6Y?8HHXcxnO@7a|l=#Hs=wIcJ38j->)Lu|K09i>m@G4q*he9 z#X0zn<8VfnJy+e~aG;m=I9u^Ol<%AT)s{`M$?Y=7DJAOA88=Xu-Heh2|_@15+P!Alzh zRv>Neaq@#8zi%q6{+&#ACz5_O^QRjUoq+`}^r`u|AxsE?Kwxy-#LvUuR?E8S78FY&-{TI;_0drK@B7C?W`JND-jp6h#}|tQa8z-AquJ$}yp zdo6C?dWV;;&oeXU@%(8Uoz0Qz8kzuKT7=3_(!*+tu@>b?qA(x~0*vmmvA)Hnr6uNH zTB11{^5B~lx?PPQD55ArC<_EY4I#6fY+zEdOpzr5qdfwzff5m&c1&hg*`@v=Yyz@32@e@A!;1kx@QtHt>>uWnm zwT(4fU^PLofbXw!?b;GoF3%x@lt29T5g&i>C96-?nW@hbNWtc_ZB`y`qT7O(F3l4) zGHNq|+pjDU28st?KIP#bR?wRkpE!5!0$72~1R#-kSOG@cL+y8*{iJHxi-Y_y4vfJX zjX{IdNNJGPpsYmNyj+dRFk~p{gR-DZUgpLkj71_aHYd1PE3igjP2QG`+1p&m^hRm{ zh`|kq9CO^ucL79xCo33Ni^e%)3*srdR+g7>I8R*K>JXLYsE_~X0XXHmhYdQzdf|Il z8L|{Jkq+z zIW!8rI_;ki4Sw&B--%RSv5&c~Y8OJ0kC_019#Q6?UizK6y*6Fc|N5`zXMv5)D$A`)1wJXdH>TKefM6Sx}`T*{#A~NtTI=0Z7;5i8hSEs@7KUR=WHE; z>pZmziB3wnU#|V_@~Bh2SEdK!V&2XG`o{qdeLCc}G;EPWq|8=w^!rg+QWXENd>(!7 z@R0`YWWZ4l$Rke|ez&%$PZh;iefN{W=ZnL-+KP(HwV1qWaqZSc{oh5W9JUyze@u5F z_l?~FGsH=K#NK4Z;o?6ujvRW@Syd>rLl(9lXY#!$t<(NpZOZaf8taI9It!HP4ui)} zmzHhMC|e<|Q8LJtc-KpR|H?pC#Nai@az8x&4M&koFGJb*KWdJ1>ad`M7+6lhK|%JF zsbYT+Er{l5g*eH({_h3NtLR!``W4$&--8aZSBJIkw(3cx?-p*t89C<|oY58)NB``n z==qZr;dvS#rZ|0E6hGY*Q(PoClPYq%=ANOJ-oQQ3DSJz64jIt)Zk6oxAjN_4w_kDW zb@+azbC?miA7$qh7D3wH;MD*B`GeDBvJbApvWW5TntoZBqRHS%-YaW^ zK%%6=lOel1U4%%8!a6|^f)#9UwOL!+d$K`F zi2$M?U~7GcFaPj}?ruhVJ4P6RrzFB!(%8`2)T}=3@buAkzHE3D})YF)bM10$qc(&yS#Y5Nq1M#sLyld$|Y{zS*EdWxqM}Y znb`<{cFWM(Hh36<(BcIkRYteF#p>z`8*3|QQ%8CdA!3Z}keL=~wu7~nFi>RLpfdqN zqVPZ~(D|ML>o0bxhfS0SXx3-Rk`=Z#S~QzAd^MM!Afi2lv0%G^0UYM0$!iwwO#(i+pyHZ618}kpCt#F2B~`M?ZOsAO7qn z(d=I^J6GeQ-#+Bwy}Ou9GdB~l(5w+iMV4fQf#UY_p#e!dbcml64&+%vx9`-=#BK$1LG zb}NjhrC}>RJMQuCurqQL9JfH;s|#?=Z%-Gbj|&QdVZ7&pwd<9(bMuyZESl4Eudj6cJT=*In{+ z7TBA$?2{vUIU3Z=O66_u*@3WCP^1M8UMqBZPq0soN_$*!L$U5yWf4KuaL2)5{TKDs zs>-}Vzi;#>G1WJ-;kv(o+JA z(^+Tb*)~t^w|VpJ%e?)@tNikpzhG-?m3P1YD$Pcnt@W7A7YUthMWZf}UVFgn554(n@c%+J;_HYErY zaolBda}BBH@cm0zn<1n@V6ZwtsXZsGut2_5fUp@#YCK;L2Z&9B(p*(UJo_;v=H z`sgfWcD6>NaRrlUo;`fQC!c=K_I4L*L$r|~z#5!_bD0y=S=W*4%6hZX;?*g}U>|q1I0O4RzCvYPasziY*ZSkaf;AzU+BIi$0 zot^aEG84~Pm(L4D$%D5Ri3Z1s@vWERa{ra zb`VFRszW{wuJ@GYal};}J^jQb&ME|qs`WHZou&##Ipt3SRUP(4_s^S+ZWPI2pD0{# zuLxyh-+>Jm0XE2 zWs~KzHaHi-El&f+;NJg23^tA_Dxhan&$4W9f|qY&-rGXdn0za9YqQ*0Z}Zhfp7iho zNtR{%lfEdbVXY*IQ?xcDiN@NTaM7sO@H|P9Bxs$Xl%iQ{k|r5C)B9=Vc{-R>_r4oz z3A~7vXB#}Y{}d2JVI3)btcBg(79afX6Mp|eMtjGwy8(VA&?e#0gQxuC|MLOYuI%#s z={mk|v1oqtub;6nyUfbdEyAEi7-+V)VpgBGSYFaJ>T}d~FuCTUA%Y97|aWNC*e37bK*%lg;fc#X@KXRw(hOEeyJJR+icNWC8N z{%`J~Eo6!2um0jk{Osr7qrGV{vEtu;^)apO4xQbQxGljN78d7GUX$&OEjrycX`<1Y zz+{p%1?71t#a8kLP2LY<)hz!$?EeROy=XO5JY#seH?Aa(+Tr& zV0#XD+kdS$h75ns+P(6&Jt~Db;8|F(7>w2A#EM>c305P70eWPMlaEQG#<)`Bj$^p8 z`zIw>Sl8VrD#R=H|8t9T80q5RdU;-49T+D=Z)^6F)oBBHsA`byjX!1a6n*di-6Ir> zeb#5Wo;HloG9D*{yFuR7saqy)5ExQuqmeaE@IjTrkG;!4SgM)KE96$&_sS0&nYSHH!2 z^(8Pg8a&6p{-6IX9^89?&AG(pyurQG`*{D+XZXqg^J~2I#s_%%S%Xzk;=#R#xOjGf zzx#K;fFz0k@?U%xuYBVk9z0m#^N%m__M4yJr$6}}{`~qQG!;4(p--4Kf6KFab03`V0iAl_oN63|LQP=TT-ak4tas$64TtN>a=Z%dqi zUSV@ygSY^xHL44Z>RbbrG{@661q2HSVkpJXOdxiPNCiR-Ng9PDs0QF_g{RLi@cyF@ z@HhYJ2l&!UYdrmIgY8CxQQ*PDm+*t{e;Yskmp{NCKl~Jr-uol|&%gcm_~Nq<@jw1g z{{#M;|MrJC|Kc2P{rL_2;)A#F#pSoq@D@@whJ>dD?wvfuUwr#J_?y4^ukqnK{}G>l zc!B$L51LP~Dp!CKc=G8v9=-Jm{_4Ma1*i84eEj|g`0(AQs5b=)K@iscACD{0$092; zz-W&ZX6Ez_jtsCf9x+3EM}Qa+Ozk~$SAz|Y!tUc^7*fTK)lP7dzo@YEmffCxLEA3o z00_wwW7xO7rU(-^!RhJhaV%oRA#hXb0gM}!=4GCXN2*B0l;id~WkTwE9jlHe-xp8cnM2qwcAc+cdc)0| zgKj=r*Bo z#qfMb0B9NoK!cSAh)pDmq69-52fnbPfr0h<1X4&aGysMWCS;*f45ccYqd-xt%=Kmq zrMgHJev}ITjC!pY7Z)1{vBJHx2PotUk_e5uMAOvJT0!eIO8EeCB_WugY7L1M*5y4k z!X8OdOMq5j)_DH(92ZZYg4G&Q-owfI44-`b1fP8RK7RR2LMhMCR3%oc6#&As&o1#F z|Lzy~hu{4cXZL|Gzx)uTJjK%|72bL4V{9+aEor2}lTWtzKkSaNxt+lMYk9|iq(tM&nv3_`ftrGFXYEvE3YR7< zZ)*4LA&l?y@FJu5S9jb2Gqu}viU2(2An)d`>2EsKSNwcKQpYjcc2~V|%t?66^4*%^ zSWzG5kea{0{t2J=*GpG9SMAz1!~S`Q+H}yGK{P+659uhM!&Ua9UDke6JBD**#WCLX zrmaP%+9GFDN9xY;aGf5rm*nh{POY2&?NcIET>nnq_?*6Xt{HX`6D2KOu21FFU7J6q za2Mp*enOcrMh@DgyxWR>-)CRjTPk^LijZ}kNS;%6%s+KaavjJaH|NyV>56l9;+sIO zzV7mKkus)k6Yi?*{}B5Ap`Kl^V8Ma~F9tG675xx|AM_Ckp zI=6&=K5zg4AOJ~3K~%do>B*}_ii2erL-{UB)tDjR_9>N~o`)$w!W!n-l9<>WnE}=&VgOSc%|Z$ZDI~NKFpL*~z|h)6njj$|i0m;UCRDl* zg(+KAU`87q!x1b1*mRa?AOw_FAd)C#2}uPumlx2yg+>hkhCsk2q!5roL2Ctp0w?7u zcui3CDWF$imLLL3A<#4xm<1$BXwA5IUSV6EgJgsCs=|8p0D{aB9$IUB@Xp70@6jb> zq44m*LkO&)YC^qjaJniW3yo@ff!F`|0sgl631lJg!TaYRKEw8s@cZAqgSyr@Jw3y_ zZ+(XI=MA(jAS3`SOgl0Gte~3;)n<#!XIors8`PD?`ST5)f4;%_(;DYrT%g`o5KLIf z6G$ncm4;RtBnqgS!8IV)=KEB-My(5IU4pR2O4guST`e_1=bZ5SEw6C zqZ#Fy#4F!^fCpbH@$$Cfk9_Emff2@5EVen7u)AQtGzb@BpSW8)N?K)O+W#2Te_xO(# zdAbV;;ih6ruB1LY)gHI4eU9Pi%yA(5BFtr~{_3tU7NZ1EUTFDk6w31`kCk4y^z$gH>rZXrEj>qll+?94ulatc14O4XljvpTNPE~ zx)`2UZLkRSR1g`$!|=Lo*Y*~JrLsqQFqjEVV+asMQKFD5)ZC!1w@{i;mI6wf$P|TG zp(rGTkWfll`J@31S^ADt;RqE)QM9|snx;Wh6I9(mLE+-!8D!a@C}1LDXrS3P5JF&8 z5=a1~2|xh>0g^@M5SAs@0?%;iC^8dfo>S863{hJZMJAs15Fb3mcd&AaZ-Y`#AS1itzMzgC7@1Fu!hi#?PY~8KD)%T zCmX!{$_ijW2!@avRdtEy=jV8Sae?~}PI2$#J|5ir3LZZ>$A=$&jEl?XU}$Jj0fk1b zH_%*x!1&~YC;0uZ-o%%`{1trTYv04!{Q}?k)=PNv%@U74zJL%Vw7LMX0*M-0S71fh zRtir)e~!Aj1h9o5dxXp_lkv9^t&_i-=)r6v19_srUhg7RaQ85bp}X@+=*@O$SvsrFr`+(d*r>71UQ(pOUnMRR3bMLU|ZQk^Qp zBcQJGTl)mG?%LQ`q-48ls-xt#t-r1-0!HrKmrFJo`{rZw+}M0Srw5G5``B|ieJGcl zG?vd;U2>6Qt4dXZ_T7LoY@_7tdgbrZwqyBSm0UfT6*fP;U!pG$0UUQJ^R!7%K?bfM6nHFq?pa2Gpa1gLxc{|(j{6T^!oAb` zQ0gPp^#-4P{5c-I{tRDxb&c=;=mh`W)BE`LI}h;vAASk<&+g%qPcN{!XrQVZXbM0z zsO!(Mxd7gJ{W(59)A-N7{}_Muqi^Cb{_+&R{auYezwsEae(j&3t{ww)fz?Xk^vsN1 zffde9&%ii`C>lUXfLB*FBwjp3NSH42L<<5y`?58cg4HAVlp33}R1a72vZ*gH=he4_RtqLExB#>h-BIJV^8+|A*3w9)OvoO3IepeF<+uR(9(uFMw;srHAfn|sFyLC3Pw%@I0xDSM23>PLoI z`sCff@H?h2KyJ_ce>|j;v~H^YKZV%$UB3B(1q&7|Sg_zav9kvv#vC8R=uSVfzQrJ2 ztemL@Q|=CuE*$_pvhXv7X61KG9E-J^!*&mM!Q6y)8ADRtd`Ex(;e*%bMFI%{Vz*=5 zg{1A8+cht2ne!R|1XRON z)`9DyQn>LWglI_>S~CdJMzUZO01CtD0Nil`AZTsNW`-;XN*B0i^&! z0}{&AL)Q=lNHWKbNFmVZ8qkJRK|-LAE9*G6K4u6&77$cG5&&LFnoKf-H&cpKIE2KUw_?%%tI)%qUJP60Q6e zf_*>CZ636Teb_&E$ZRC`lm!8>JGO;Er0jDhf(5zA6`7cGPNwew%G-5#s9lOT4P%ik zrlMH5^x^gE*!edXp&~U>KrA13EsVZ4QM*}3NK9Yz+dk&ZNbhIqA;@=?mt*a0^2^IB zwft04MaunL>^jDMCsHhe#j)y^J3dnK&v`UGqCpq^VQTCh55wpaaT&IoQ!!=yAMzb< zoBoqi*Rc%=Q}dI%AN!_6)DpPeGvRY%vN+7gFL!MHAIoEET=uU`w^P3k@v_G1aDB4U z%~OZh7v|=4^S6;dsriLOfmnYu-#<-OPHnJBwbP~EOG!WXTy8%ZBUbD)7aanJkdOQ3 z;megVnSGNYR?OKKeQ1WY1EpcCf27K(t7@Ngon|*(!GHcH+iT|#_S>oVJJz?G(t~cB zjugXftp8k{Z{s^HSg>Hhg4>DY<3C`->id6pdQGU{^p)R9WrwKUuM^k#+0EWvoaz9R4c*_1S^%$3{vs}qyfC$B$i8}e0RmJi{yhN>GjQrW&oOP zFA@TzO>c7lW39og55K1@*HLij^3f+XO()FA(+!oj53(8OJ$s&YqiSnpw8wvd7;Ga) zXszHob6i>%>7Oha!5Ji7Gd8@%7*5(TngGfVjWAm3bB|+;3L<}u7 z8n7WyfWVNpt~O6r_D#)QfWcftLxY3{ks&LX>QLJ}B-jSZ=$yv{lb3dv#2O4h>8< zI-prY5I|Hw5TLcOyb*J|bDtStGRKyH01^aZKrlfF2~lcnwl$jV7R`!qc6N%UY4GH; zXL$VS=g_~fIf`1w!&fN%bAg&+Lzd-(EKzKVzU3sl=0 zZ@vCLe)aP|;?39If~sniL=d`!+Mb{k1Xco{e*6?~zVelaDUHV~t zY^_?EkaGkRTODq!e&ddoadaeJH)et5=$$*>JW2W;NjF%99n z?JM)+{XUdmb5&3M{x-KH)nY15tUjLFkFkF1zIXRb{P!uj8P09YY>zVZ^BO)gRrevL zkBEs8Fy`v*^6hLjG1(t4Ys^{e%g-@~ehL9K2BW{Hq>U5s#+_kF#Yft*uOD{hq}w#+ zNiY8QOqKERzH$ub@mQWdQSs2EiWD7iS5nn1thn`6m$*)x`2CTh-}v>Mu4^jc$-jPR zJK?_lDb&GsA__WNQ}C@iBXeI5AImkoK4k&q;QPBZ;NXc+uNuv9q@0QVKlP2~NP@@4 zp={w}^T;ts4Pl-seUaHl-Hgd#q-s0yd}9+pEH_vFoSow~;n4l%P}qmmL2xmW+r;Bv zhGSi7;v*m4{BxtR>-Rl$ueb>#E2j>r-6TV!%F6eyVIgrXNG4U7g|h7ZJ%*G8K$lU^ zj2+JpXdPnCsY+IH)_`@4cKM|CYX%$T*A^S@R0+%iJ!4T0Gq!d5G7r*^?LgUwX*{*7 zB?n{1nmJ4{XrzHxn5eP7@rCdf3XS zQkD=a)sFe1C?Mqt2y4{UQ+)Et6O)gSI4SPq;;F`;K7Aj*tzLuDTYTx^H?Uqk1f#)+ zZ-0&_AN>qPA)qzm@zg<`J;nL?IbMJ54gB`k zf52y-K0zTQs%?$WK7Nk(|NIP3A2SM^LRSSodhZ+`z55(rfAwX2>y>Ze8?U~CC!fA! zh(bhAjY3^1sD?qbLQ&oaNI-D|Vr|Z7rUOvHRV%Hm{fi!n-C?or-L%e(}`(&ZZGMY9xabG2 zL~7fB;GB$c18J9kU*8Jr5bmlC$+}bRk*+Is5l=$rr|+Ed>(l9Sex17SV|)r6r1i^e ze@k{ihPtVrSLpm^R-=a2uw7&Ii|MJ%9jUsz9=7qgaktAed@t#x3Crx)JC2w!Rlx86 zVH*u{NYKB#eAD0;H|0p|6V)ekM8A*v{jL8EU1Y9)ed6!$${!LW`jJWE&xd`hpJ((f zyng8%(6PM2GIG|G=H2~1Fsx@+55KPdxHj$Ft=+7uKqh~mWYo#QF{j7)d+i4IY$&gG z%`15Y;{6`n?Y(5iIDyV+im`-KOSgbi&c4sLKa{ERds=ji)UbHNGY)@&v5VT9!^gPRaN0vKYJa& z{>AHnb-16Mo#FK41O$PveCeBL8ig;OUf`$y?{DzI2k%1FYkczIXHb>Kryo7WzyH5~ ziogErA7foUz+ZmvyZF-|9s!LZy|5N|`uPPOKW+djak6@d2M@lC&C_RSYHQ3|rir7# z`M`|f$}V87vr02VFoQ@y2y--!5CRYqLRg}b6d*99O=BWeHP)#mz)Vn$w#T_>NERTJ zSg%i@p`cXX2syTho+Kv(MoizyKDAS37lZL(5nF6uFRs5$_DAgdJGtpYYt=gILNaaW zoN&?CQp!$szzZPBBmuzJF|;Fy=IjIaRL`>BqnH zjRi5;p+VEU@o-S{0NCdJ11i-)xNXV+bub8!7XCjWq( zF}G{^smB$iAL((MR-viwO9V)nCez)KjSHs1?E21bj+H|oCLev=1i7CJ=5cv7c%NG& z`_oCC3l=Q6F1*Pq#SCr=sA>f%1SDyQg0a0+c@He)iK}p(qNR zpKk%wSglVXg+N^~Ui;JAfGAL|N__DC$EY?8FrknVr7TeEW~^xz?1gUEuZwKJ=;Wzp zfPAM10O~moyPXzY)F_6OC8Q`INI;W0R!3_EVvPbNR^HX(~8bN6;YSWYx zdTNJD@>rcP>JIa^4`gCY&zmEW4DNfIWPAtxm@XMUAJ>oO^{ZXy-?91KuQxOIoH`-F z!vFThsn+cPj*)G;-R(hCq5~k@Et{g7hVL*HZ6by#$H^RFBK5P4l^X4PW6%;y*c3M8Xjaf%Ln#6vZIlXQ5oc~p$a|I`6aXo72d|KgNI=%uX+kq=-GCWbuTB972$CQW znp&BVpjv}<10s#4ZctSXl&(=#HO|h?P!=Vcy21PJKEb<>KEi5MVtsM~Ap{B`0VZrN z8~o!R-@=CP!#phepl|}&u(K4=&0(LGyZu=J#+rLd1P1b-WZH@)e8bWKZ zCTOkO|41`fSZ5VXIQl}Ckg|X*N=T`JVg;oeaLqPEXS_;t;XUWl`9{Stl0hu3`#Y8& z08qpx8!aFGJg4=C)bqDHj2XFd2^C~QB=p{C%77N;1@y@b{`Hi1*au_p>3%AudJelW zVuiUk)I*2A_m5bZf=L%T+J@JF{_!K>`;6y*IDIsgU}5H(p;t9-h?;lWx%OcHOuv!z zSMAh~$(emfKvUlCHhGBoe%R3{JF{$bJ#xZ^r-7XsyxV-6B&IaSx(%|NHM#R8m<~K z*?(6ZN`wK=0>E+J*FRowHf@G(kwer-&NC_1csaKo(O2N%z06mgBMw|AQS~}-9R!M$ zb?mXqPSTS&f9)SWf7{{f@OR;T7A#n>V8QJ`k!}E;X2$jneTSdOLPL9q&>)|RRHB44 zlII|t*mI5AchN9#C14~iK;8alFi)-o-DjUt)KUpJ3lI5b6*M&vBur!qApxqPbPeVP-~xmaWg!3oG);}BX~3)@1fh_| z*`>5X)7bxru_{j>ixUVc(A3KMB^X+12x-U(t>zC0qTNEWhsRmUAJiPZ66YgFB zfQIH8S^=yXb))ggmuwQbBpe31n)I6{PTLbW6dHs44q z1*J4tYCsW4YZK~ODG1Hbpf<`$S(Ye@q9y0ZQb3d|RP`23ZTi}lw_v%S4lqWr%yBFv zIq?uT%EmEG>IjnNWIT$wa;76p4E43Czo&?&odfgwok}S>;L!ORcisYkl$tOiSER00Vov3$bc@L{!7ES9P1aEM^;G1b*@v*Mwzs2{aH?3O0x&$&S}?8 zR!Bu^q?DZZ&nZ9Wn3h9FUpN+Wzx{CtF!K>ULL%TC4*vc3m`<*P{Ca2%_i1qZFYPGL zdryt%B8Si~Q_4+En^KptO+sVWZh}p9s?LWbX@1M%k zv3$EcEbX=6MMV))(#C$j?nyN^P*aVf`IziK zj$F0iIB?EhFkt1WCIIZ_L2KM)Zu=X!?^HNBIYoK)GRm? zkkV+l2D1Xh@TdkKe)NIx`q%`;E2L}#+`BYiR8Sm4>?XH>oajmst}o_{!E2qX)68_Y z4ue;UH8CHnpDehmxJ`QXZNSo=3lLN`pv4N^OtxAjqP?idFy^QVIyEvE5!k zS;v+T5=yZ>JJ}o+;*N3vF<5P(RD&7~q*$As+oS;v2-0xpBQt9g)u5>%B|(scfP`)s zO{Jh34Iv2yNoZl-!5k}6KneyiplSsY#^EXLaU{#>lScpzcZPPt!^RM@{sbXJcifEV zj`-4o%@?%J?DhHtC^d)}=NDf9MFA=Zt5XJ11E~oG11v6~8wK{Z1;zH)E&~7nAOJ~3 zK~(gGskwSeuZTUgBe5PebC>@off4b&4Is*9;Ed&sVOh-Y5hFJvHH!J z12#sgPOodXt_r_J*w4b_yTbBQuJ5DMraGW=2=TjotEoD;d$HqB;^TIFteU#*8u8=$ z*J)|H+K*5!kVR-st%6T}>pdT_3kVU{1@>8gr>{TzeQJ6f=Jk{7jzE!yX#!lB=ON!I z)kbvt;O2vCD&5XMV+d`Cx8@sU^uMFLQ(&l?n`2Y;x}2yYIY^cO2h=5R6vFilBJXs? z>$I!H81a4#sW#OVo$f9oS5~G@m3MahSzOn9%;}VOrF|Fdj%=Uak?OHv!Ggn~0LF~i zHw(Foh}105#0{yr%4aHW>UX?pm|fOz+(>ql$I7vATS9f-RgAUk;JYL? zKLcQG33E0KFEh7&-W2DA9zg>TFvm4?witpCE08b?IjtMisAtVeH!i0lYssS-W5-ia}Ll8l0GIanTg#f@% zssby9&>9lPp|X%Fjsqg&Fd;JE&Od3%{$|rzW2JLUfxPQ5WFIml8b*P-sj%5R2bCp6 zDWOn+?7t;6Dl}jsFrm%IFDE2c_y*vRppfI>4HwU;3uwV&V=Z9su zNFDtnJpfK{vks>_)88o=^WA+fclPfc&rC5L$z(Wg=Fxq#xiJ(YRm6zgQ^cUTI?rK_ zfIpV@Q03>m%Nz-&OBj)>L;$g!>&)M*Tjj~+G*Xl4d1kUMhr%#k`B=jAEEAKG%Qfl! zfz(MYbm~r#!lq<@h^aY!m_D6YVE&EtKkwhXJk$HjE~KUuS(1ue8_FD9HF9LzT|&+{ z0rJ{E!eZT{c-7DWIh?syG@7Gt#0*^XL=$QVpJoxxi~aYd{<0u-dV6a8^#X1p!e&u z-%hr4?33S=^I+F9UPLGU?nv9I(V6dgu)s5ZUKgdJzet#4_bv+4fI4C3pmYP>XfTtB1R)DUejtrnHzvIxbGAJ*2ogd{2q{3M!CXPH zAx@l>FGFcSSB4c7C>O3dx?)B3;hX=87u$uoo2e94EsT8Bp${qo;!3kF& zoPZUe?6aB`baMg7vLy-mIzvdTAfo7z4k-p%r-0+Eyd-5KISNDwhV%8(cYg9U-L1hWKCnCGD(1X|~~aqprf zCb8CF(okAKsTxXa=;i^;&Ta|j8dM7FlOO;RO|3g;xDb$K3C$V=1tAF19AE{l8z_B= zZB;`yXCM*~1W-ZHZs#~_L)_5TmhF3L7aS0dyZ{?}g4(DRJt`XmN^1zEj1!s|q?94d zC=D>6NI)qK)18FvSEe6=*z_R<8!jocY$T zXV@>NzDKTcG&SEa9oagK5(Lrp@zhY&$;5&i;N;J9YK$9n{olj2+f;kZk>z(m^z8Yd zo;O9G&Lv94p1UdUa$}I%oeuB&1>oeLEn-Ceb>l=0p5GTv&zVoy{sSP5*m#$qwMNsV zwSR2>S}=rLzoibsV{As6lKVGt4oCq5qxwQjuTN?IW08aN=Cqr;W>^r%Z5lTV7A#n> zV8Ma~F9KRGL2O51>dplJdGmXE1;X&ZV~8!P$Cb-;s}50Ttei7456koarl_GZhdDWI zsL$D@k)AfyP?57(I|lN~Pc$fivE>b9QGl7zR1H=IAV|Wvh#5=@55M*jUiseFQOa{P zszFmXXjB8ObnEQU9{FOuT|?FqT5Bk!pfrOuw_}M&wvhpJp$%hSJI6D(o5u(?j5EPF zh}mD<6HKH5Mt4LBKup-IF3`xzj2U-wvHe|;-N$SVdNrgeAI9n28Sf3@MA)5FLQ4oW zepa#nlO%z>ZsqD6H%xfWBJPhTkUy3P;5%kiV@9e`nP@s`&mfyo1#=V!gQ1|Uf!P>^ z7}Um8SN7WhjwoS2j+LKH_Z%}|4%cXRV>>6f2DRT1;BRa zCqn_+^h|~X2vBXE8B7HL0bLLX*3+&Xd5Qp*=3ND#n4pR7unwXJN72oMNL zDQFmyjb;U=8ih2%OoLIY3I!EL*HGHX8Q9}4Sc4(Kl0l_JS)AbH9 zD;KJQ+z)c1uT2X8ni+~UeAylUY4RlWulaJcBTmil1nRYe(rsN$WE$6I?M0K0I_ivT z_x7jLDZT5y+$W;J96@kL8VIj_yq{eS+b4z*3A+2?G~>Vj)J~)^BlLg-U}YqM!Q|%s zehSwkd;0IBu1LLiZRKOMvZ8x2TV6l=__t*~8 zYj50!!e`k3;{7G|{_*dUyQ?@Qxi1^Wb8?AC|9N2eT{{9= zzmNGGTGvKehjKC=<%jyB2Y%ak{l)zq%Eu9K_-pWx_YMRBkVO1@_cM$2{hoXt-0RBj zr-|hgUK^%Om6goY$@E!>jI=aThvD^fxf08Btemtlm}gE&uV;EWj6|LyoL28Y8!so+ zbz*gLb3cPbbfS&qErPK+4y{#U+cL~Cl!-}W@h769nvy@44oO`z`ltW5uRnCQr6H+u z40*f%)8}86)3FErZ=#$;naUVn)Aejs3~yW2FrS1=(Mk%|NojKqj4{VQ8vTR2#ZN$wqAp(W~hqEN7V#%8rSKq zCJ?PdFn7kDA1ga7Wc0o__D3@FXY6@d-R5d+(_uc*cGx{q&baO{zV->{^Ktn#UZ<(= zY4VM=)mUEfW(lu#1jvLuV;PK;-8~Q@p{xmAAwygp9CwvSmiJ!Q_yHF5a98`|g8gCk z`9?ZO4xu6)V+-;fbDJM{3o`%yxBbCzni<~n{5dKf(Sy` zG0-|9oDtJ5Dy@>KrB8OSyP@q}r}Poo#m7jywhlC>(6Teu_(sRjkYzLFE@S75v6+Gh z5Y9lsl%iAagtP_lagaKy%^Lc^GQhRB{kVZ&%H9lD;)K?1-c~2HjEL@Dn@9iq6FEMg zGk~;-+aC;oB=yp@?&{Xr+?CztDZ75|evm&W*kN&tBw7}ZF;hhB>Emg=^_PjT;7mdq zW@o6AH3|(kCPD=Pq%{P)o&DMz149fFfG8x2mB4CsVn}aH5SrV?uJLhkEAGfuq^(fj z_}JFXS(QD5B)q!!(nSauv1k~68L>ziejfhr`>7}h8kV>>k*-azO_Y!EdUo&W=A*et z0p^q0wAQ@rJ%N_EvrQl+`t|r}lUE{<70AB6AFW56M_1e1qlqRiFRjBt(!tY~C zY#U(k)_p6YuO`eItlIvD;96Kd)=M2D{Yafe}8r!ZYyUdO8+&L{rZi58y;e{4FU+)$Rp`ayql zOkX~C&kgg7jgv9N+Al`3m;xn6YRZYeU~4jxKF|{=ov1%Lhec%O;jvp(fvNiBR&_qg zMAsHcbtM9Yq=qr4n2n^Eh6!WEPU)OwB!b9mraH?~$(LPG5xqQ;XKDnBxUM-~2TIW? z$6IP7&-6Z>lD54dFUm_+`M$+nGUm2eRM)HXIU_zOa zIeJFcEOY6m(x%=w`KFAs@ilAmoPHI~_sJrTrPmw=`}o;z4N^qf9e(`<3vL67NhSJ* z396h(1v%@_W4zz&0?AYI-9o6h+dQ%eI95H=c2(SrK9GiV#Y~FADt5Xx#uK{t6;j~j zn;Q@cS|=S7j4GnE1=OS@?_Htb|c%d zpeLf*>_j-A>sA%1{hlefO(Sr@f%HxqV{Knf&iG;DLnoCG0#caWs>Zn2IeLlE z?j&Z`AjqgZh!F?I(uH%epDHw9#7GD+!owU%a+*}(x2F}}#H|t9M2@g?R*-L~XY}t4 z>kxe(Yb+Z}=l|`DWijWnuj_<_l<=MBoYA{Fr~3}4(8)B!A#|UfM$#*%@5D28L-d-~ zVLjY;?O!!U{rozHZ87!@W9d`!YirG2y@&4rnc^P%zF{hsDj*imno!JPAHm;RLV zOnOAW=`!|ho3Z>3_5Qg=@K{~a-_ecBDd%o~ERU7hcRU}b|E2Z+oH$)M^&GZCOs?g; z|I|8lSNS~FA4eT<6Zu@%`grUe#x}~hdxwyF`@XlY^UWc*oT+bnNbIYN92==~^e*}C z-L}lZ{2$Y2x@$S&Dy=R#iqf=fAEZr4O5WmsbWFDP6O*S~iEzNkHMSpDOHQn+_f9-@ z&AXM7>vfKSwn?Y!K;+shef~);Ke_plVbh_+c6D84@a@dS;pMdVCqbZ$NU_NyC36lQ z%l9f~-&7s+nEijQy>80r0XGcaz_J!GZ+~790k}e3F}iJcS|MseawA z$|*z9{LX;=%g!|(-8Gn9&jJKC4m)x@1_qOcC{|dXoj^5PJZm0z?NtC&5+o4>1ErQw z3eZ~O;WyR*70_BkD~7ViglI=_umlKIYdnANIqGeNx~j3=RJgpn#O7j)?PiN=TcN2P zd4pSmgflR(R#46`p&4fTJ)>w=kV?WG{^80KM1XXJ2>{Sgd~SD^qH|ViVe_Ikn1o&{ z@RrUL%F!*KC8eFwXX_~X(M5u}t5k|2aM1|FDQ=EOECj&QO?Lk>a}&(B>cJr(FvaddpLf{yyV`2dw>n9#7BStF7ArE^`_3C>FjO8;$2yz6UxqR8SOWwPN z`Ns5oMoN^9F3-f28FeLZ{Kfj!F5icldr@uX%Afk%M{1tejhyz6MgIwZ-=PNR9eozP z&p|pMzP`K}>nPKvIZnmooDre+Me@mOhn!6Yw_~juYp1ES2P!q2P?VqlF1tJzyjWoF zd!GlKt2SL;zUlo+fD^}`$mpx>+GZ9M`3*pzJsZs@D8D@eB9dov`C-X186CT}U>r35 zX#%9CLwYh>1!ruVE-xofB1#?usoigJG2bG@m;!re`C`kI7ybPgELgDMt|5t3ajcyi zol)nw3-CFH>7nN~XGixj#)OPrk43InkPfprPi#AF!plntXd$h$&O4J@m}nImgoaH- z39Yr=4PbUo3n@SaL7;$O6VXAVX?=#034*OdiaqCm2JW4F1*|l5W203x${Z7-G+1>Z z-?!Tu=g&7LGDg*4yRERj++cIL#dfo42^dYIP}Ty4Dgf9%WFu5))__*f%r-o?Mx!?X z7y=TK3J@9Rr8z@EfV5$mux2#dO}n@!G7&A>-R25lrJ(>wElk4&JM!8+7M7U746sCR zu(;i9#@=F`m&}0BokQwCEbZLUbqp1FQL7i+MRbmJBOuzpsZUBU(I4G09t6M;x6HZ7 zMphW!fw1?D&d`#&Sb*ANk*NJ|%JDmf&;b|D!`wUnmHV=)M__=hr=NGPBromIs7nD! z!o0S9C+86HZcMY=7m`W% z?uU{A$LXv4)nnhX_G$myj=3>%kas@-p#sPp|B0lsoO#0#!qbXx^>i<5W?#SWr}k2X zH@hem!v{yo_H$#uHoa>=dYg{TT{i{0j?+AOMgYy1k!JbcEp_{dkG$z-kXcF-aC-Oa zy-xBRJhrI5hW>Wb`uI+I?H+!excql9bK>`J8xNtUnuMS{<=GO{`Prtr^-_OlG8cDm~x-h+O?d4^eK;Z0a=k0jfj${(tnV75Q`qVC@vef>yFX_d5 zB0KF=9d{*G`1f*&C22BwJdYgv(>^j}tZunBg?-vThGVT;Q|fjo!cvaCFUSpjz1JvC zeZQ%@FOWK3^4=>gQibV%^Xb^LizMWlIQROV>aHJl?c}#>&N%7XIwqst_vrsUlj9At zX~xz*A+h`5W%mD>1b0s)Aep5TkQBY~#Ki~Mf z9RoL!K(Xsw?~wCO?UHun`}D~N{Ufyf`!}r}eH=nA7+rQ~Zvpmv_r#%kOxdTj-leNPSjdyKmnoh7~GRfk{FX zXCSFSx(1ViW({IMYXVu{5Hq6$p&$m4FwQU%h9W@(@wfs6ACTwZRlz1*O#YSeX&`ur4N zk{sHd;@UYKZRtd)P@|!yU7-_98wg<{TWDx7 zX=rF@sR0o&cD29Q-xPtG!z+xbxgBL>I{rw;f_cG$+klQZfkEV;_8z(}-I5oqquqC| z6Okn~bZIp^q5=bke&#Lb$B*rZTc%fmNp`NmyyouPD>)_-nbyfjRg_F11up|$Si8yeH1`B6v88#C1GqdQII zyDRKTTv3^Aj8gzeKnhouyVFnTADPp;HRDuHs^dhvr4TEo)1-V48W4ig5r4-UV9N&( zKUQOZgI$_|&XqmZugCJdN*tms#$2zu4{>?lfOLdeSv#0(mg$4;QPoT@3OD_ z$ugFcNE?0$J8!!R#O9;%Vcy=K=%2ZyniNd+g?;TGN#n{oVAC?pDn7X$VPDH3mK@7T ze+XQcT+1!@SoW7WlFXr;-%~ooe4Wj4ereD3CF~(!oX@Gp@AREzGbxc;S69B%|N7s^ z&kqPaYeX36jX9swt-tLnRuE*q+xpC0)TS7%jwu~IEM0#C& z>W8fhhgK%jmr^$L003O1+obYEQUDlp;h@q)QyZhBTTwEEB+yKqM zn!zWg3~`@vrq?)CC03W~GlL+o77xtP9*sg(HP~*p*j`k)Jm2E-a)Zsq7Ij^N zA1lZYbnEnV|2fB)?;zuqwh=u{+YwAZmqh_71mub!Ai#>Cw=n~>F`%00AD%H)#LL?U zIXN6-IgoCCS+L-i!Fi9}c(ud`bG!$eW0QpWn^^%Z8NwX-Ap}9Rek|dHvbC_dV>c*p z;)v*&8gsyLa6jhoH|6u>INfJQLQ49WlXfaUMxR6>gy{X|1-8FyTod;P!1 zu&Yit=Ct0$nYrr>Zj9%L&_@ri(b>{|Gap?um6t@Xb5qkr3$ z6Q=DwkM7=)l)uz*o$OGtsrMPJ9mdE|^G^D??{{0)r^m!?8s9_&DaYau_K~yRJ4PEE z!~SubzSS{61oSqUL>>Fb9@EG82IEg=40|O z`GeT(4rYKPp%z;xZp@?7mL&;-4Tp-_qeciIhG0Nwfl`+^)e^cnfojb0AWhRiD-FF- z(C5mP4rYeZ8g*4+yWL{5-J+^0G6*%gaju(LgT0)OBr07-+zr14c-R z2dkG1@uVec*l)lLXxF|lC!|QUqz;$IL6Ewu;NURF7$jwFEKtX&#DWD!LA%Qyb|Z=H zzHE2sbWZaAF%WJ}lu~x{7!gPaO9HTwb=c3(9xJ4^k>|nd&jif?03ZNKL_t(g8FR?_ zkrQI++`LPqL1ct_Y{as+>&7Q*Ov5&W_t#X?bYevb1p1nL&!Iz{gTLbrNFs9_70`X3 z`CTjBy)juGBeR5mPwirg)nyE+J1X~`SK6IowqAz#*l~>9{0#2_eQiNni(0 zb(p3QBF4UR?3=Ma&?CH1WwjJx&6mI>#m2gfm>OX z`z@#1Yu9m+JBN*>Pwv|UByH*KO4+OYlr~PC)7||PQqy%HRi^D@tD5UCIrZG7{G9xE zt>0AoDLI}pN2R>dzGHe0$1`iCe%Jmp!}lEOTjn`ur^4V`I)?L*pT`Xt#x0V^$q4B< znqQ}or{$g0S<=bA{ng)Gu4!%1e!f9BqG4yJ3=R4iesXV}lBDxc`;SZD{plMQ4iBH; zAL6RW$~ih>QeWMnt>$%(Zv2g{*RKMpK9#xm*{!})GJC;-1q&A3RkV>RZu2gtA^MAp zn>d-}5-N^?o7gT_2_ixvB?QPsj$jQ(R)7s*&IHIpKxl#_-8%mnFywt3>W%ISOTD9=l9qtU1ab={z;YcxtjYh|N`xNy!Af@HhvIdq2ZiY%Mv zwIbJGvS7jW!8t6uA?lL?xplAzL6!`m+GoiUD1@MnEJlEk5<*C{(G}R(1sn-WTatu{ ziZC>Qj1eYWnX%tHQU#n~9OSjvJlgXy%^08)%ONqWo3Cqha*7StnC|w z_H%6cea6RF|M2VQ_pR8oVfxgu3*&Y*h;C+GldBJ3sRnC^cHRMqkC6&T`Y3P_QCxk%}wDWr|D zZ#ao8ryh56N(3o=DEvE=sbRgR`sf@|?HZ|h?ppRCWl+wTJ~WP%e@;70_3<$h(wxjp zmD|@nw;#LwIsG%`JMA+@_a*Yh@|?qUf74tf$+TSN!4XtNx2!pMzDLw+=X4&o{>~x& z9Ro3P-c9kF9CHpLQ$SYxA49%eHA1q;eERk`^VBu>*9A8hcX_T{u;4{S((xbjjPrB@ zdL(zGO<4VOQ}xMGa;A#T(Um+$!r(FE9q)cesAPl-%YMb&>l|9H9@`MG5B76ZQBs#8 zA_!?BNoY2t3gH|Qo)b+<2?!0r3W^n&JCcAiOc_U@i>jcY+Y0zZ1oyi$C^CdL4nRk# z5U^e@0*HmvX2GN&q;{3E$Aon6>y8N_0D=W17v>eX^O_mr1$r$0Lb|HB@Q&s@6xJHd z+Wbunq5=}7UEG))gb7niuayu`)% z1)hHV7hajFGv z(L>OG2*HARqJI&w*{?8}#t=HR;6!~reOCcty8m}g!x)~G&ECIZt{G0nq=eH)D(svu zQVk$E$gArytR-3Rf8hLflg5@*##WwNvDzBb-Eg&p2rKG3c`1ziGrk9tmmn)cZLLgR zFft4FXd~)mK{p1y(aYVl?IkD6y|L53AI`s_Q+QgD80rM}pI)Zn-+iP`iD6j-CpopV zNdLJJ2Q0IVgcO!D0Plp?LwX*qSmk2 z>UrpVjjkpHLQ(X?pO2NH?VQ}Do32By(>?dOskCNz^^Is@A8})6U;VQ;Cr9mHU8IoM zvqv*R&KMNO()#H`j5)5x@*8t5j@9E>ZIMO<8XxP-+#X+)lE2X#IeITd`WlG(qRaa| zR;_-X)2@~|88g>^qP5-I0Tio8a`FAA+qUYjX~#6pV1J@qvFA^NMm zObSMF;*J2BLbOZD@kqo0j{Gsz&ApX>FJX7&%XB~O_3uc^u_vkhCrCVK7tZQlspStV zWIFXA{md}kOXkh^Tv|ENtCz29B$Uw~tdU&io}W%U=QrAaK5c(XDm!bvol}qGJ2ZK> zOBFQik=5Vbr@AA`_v47bgW#t6@urYpnp=E!1n7UT4SS29}n?P3{can zee`z*AT>c?{;XO8Knk}1x=t(Fjz_kCyF2Zo#d8!903jp_(Un)}XSn3g+ZAmgr3vLP z1XydRdlh)Q#j0-b-S2)AfB37G8*DB& z*j{X~-E2`+HJYk{(h6mL0;!9ZH_$G1IV1)U3aspLq4v7AZ_MU**QiP=G-cCU2AiW= zyp^DBmvx~aNkOxXYGR#71lS$;#yPA7;c4kpu{@$o7en4S6*QsH_C4IOGw|h*Dc_`B zL9lGIas7)a=rg1N+M;(}D%rkB=)Ehr0O>N;jrIcd`tdlrHo8va7|U))=|_?9whIXo zSQRU%3k}sMh!sJSKwURrQjmhMy)?wAvXqd81lcG)3<+k5Mw|Ij5Fm)5sR5$~lO>u_ z0U=5V5)dG05?~DzDTthL$shOZ4OQyNt?n*blA3!O0GRu_61TE@qygsID0qD8yJ@X0 ziO<%^z8jG+KMflNM6kzLHErfCmx5YJX#X$ZM@^c7)(W+a4&*yHeTR#%vW*<^rL{!) z|8;L_h$`G3qZM8^@8{jKWocG$ahHURS`r#Fr-&Zi_23&*_pQAf?fa`Bno2(}?-48O zL!(z`Z{hY`6bFd>Xh0xIb@Mtb@i#8z%i$y|1%u3Hw9DVlC<&MrA=-B^zUTLAu~6`jefR`Q)kt{ zQXg|LrVuK^dri|MJ9VX$?fTV}=OySZTg_2*Q|0DkKT^|mu3fKu$7(n&O^gMfR1_lY zTaMJ=&u877Yv7KPNo~{EF=b;8g+q^1mp0{FXsyvSW>MYS91*ldDsr8c*KJ?PB{lAA zSBj09W0Pv;(xuMzb0l3K%qn8L8(Sw#$@MU8x~+6rr`WT@`9J%SB#4+7&3cpYn`V#%LA#FD zB^dv{pD6(OZY}mxn+bZ!NB)Rp9Ay>lf!P5!TGN?)cdybF zXSyKyyXNRW$H!FHUGQQfDN@DQ;_DEL!u0cB3BJSGU*rrIN12Po(d&JKSIofW8*1Hu z#sHjdfc1aI?zQzf!oqT@Ub`Bta*WT{iB_$))um8ti8=;67I@3wR>n}B+ksr^aqvtvf@@H@&v0@k>vltQf-iZz6^&NfLX*Ck{r!G(3`vvsFx z3CYfg*Rh}ZCC0-q-?N4oOTK6nRHLAkhF01beHl>a481jJs;WY@tx;{ZhJ3N9QCAh} zrh!%(qS=}m(v{^!0BIeoY+3NEjcVCC`v5^?$T+^z$pT8578D|EGt*v8184#Scg{Q_ zf^iMo=p_tWHwG&Otr}N2K*BnY2wf589*YKzZrV%C?Csv~lx>m13$1;EJqw;lI$Fm2TxdDPcIY-UbYqHlog>g!~U zOFA_C`OezVY3p>GF$aC818I=%h#xMWnB!s!-5k)qm3@nTo45L(F9&BZD4&M+`bNbe zsWz5R?{D&{JaJRsnDZg35B3a~c^J);hY=*E2qSZ4?DAYZulcb$hACt6Q5~NVM$)wRL z(C`SJqpiteRqBb?9c1yDY~rgy8H{+B~k$c;vKc;tQ4 zSlZNU`+%#$ zGiVYT{UdlV94d#9^HX{3nE%n{pX=4@cG0hI1yaY`O?dB=x#9*?bHVkZIMyJ|F>0kv zWZZM?g$DnrT~3qbC#CA=c_^ce@n@u+lYNYdVxMn6#qwWpdoZPfOiko5Lz^2Hg(x8b z)TjX_OLicDjl;BnfD{EZX=qU!=N@d>MhSq~iz-22CeR9?d+5?xQh+Jg?OHZJ>&phs zRzo)mRaK+fR;V@=w%d&*Rn%yj8r(37T7VTpD-G2&XljL~X`pJ=k~UZ~R1IM37R>g& zV|pzEjV{0}`;KF8q30aK%)qLqHc$H&9zEOlV@TX!jnr zR0_A#z>y`01(-`CSIJhMT&ZTKxD&Yq4UX)pzB=4IXV`){7^7XgbKRTkgm94-%(xXq zkoK4$k^(}?Hu6D7q;S~|iHv;*0Kt)o1~nQi`qLbmDbMxq&CiVt{QvE}+mhtCvL&`0 zWMozM-uu{@u^E|3GLvL_k^cXyWMk6InK`>FGlB$M4**CI0e}u(;*y2cos}63&~d-H zFF4RCnXeWiLZ{N+hwcn+w2a;BYa)(-`#c*(LIcTN{^Ct_WUyY$748a_)alpMY0%iX z8_Ucgo`bfm%hrr#vyv2(0cK4`s{B&Msa$&ZtY>p+I_sUia^jPcN31Emcc?fmInu{k zU7d;baU>ru_bhc%JnoA}rgIM@`S-t5`N~1+fuqJye+E%QiZw!1Jhn*F5PK@f<*_7l z?>@3Y25C7<$JEmJlA7Oh1i<+H)cBgK=QBLz)b!IXI@MkCeo5}5ut(Wmo6bFP1X80czWSLqkJD!#-4zDq>b&jMB!sBvZy}HSlWvc#|HdOP-}|6H7`t zn=%ea;=i+9tSk~6*5S!24ab0pV3=Wy&KfDgzZJTG_~5-f5IR;+?613F7#Nst?uE9> zW{(k56%s)!jj_AI*=Ft49LBxG{=B;j{ttrs2SKqyk01Dxe*ngl5uC-*5jXzOA26fF za2s&@`ogczPkjFMiO*l3`276B?dyth)X={e=ASefEsQoW;|MbvXl=b-fUUO-jlYAr zPxn{lTvLLe82B;Rw6NjHRXMQ%vAsUQpDd@IaJgV2W7zS~6_C%D`}?Aly)S_$Dupvd z`@r_c0JyTY9#=fW8w7GB7hiw&i^!^4YA>>2m8colWn*Of-5?GLZ9)6C~ACoJx%8`3lKLl6`B<{=Wui_N%jSl>Xxkg!NxD z&&BO5HI9@>H@Ub<^UcwuidubEyrzoRLA9u<_bqe!TKU(arth86rls{Sy(Xj<$LERT z?Z-or8>4f5u!ewiH0t`QT&}!L%VpZ|$5rZC2K@4#bosfqPR|&Bo`pH@?~~@=0q@j? z-Wjj92W)6)X!s5gUH|b;m^Tl{%Z-i5sS_E%QdzYs7t3YcyDd&%60P_Shc$36PnDz; zasWW82eE=;pqu&(KxDlzOv)=5(A642=W9mn6(QC|g70I58?N}I!KQ_rK~V8@BM=3| z0Q6XPEDnDB9qXPWKtRtuI@969eBe+0_vtzjqZw=r33%`E-!u9hDx9b(dIO6kvbQrFHF$|+Mj4{y0xN*V2Om|Zg`X3*FX6R8{^2RuV zwf#=9y+>XtvR*wVe-q1-`{c@lJOcv^gzo=cSbHaZFm4f{?-(FYSg=G7PlB1sXd&e} zV3wz#Z5W=5xp|Q#AQ=P02E-a#4`3#c0gTZA84wr>1_T34_u;xWOqTxRjsJdbwZ>2d zBHN$rox5Hso>v?$+lIVN$Ki@|^!-7#bg+UUVi!CoDnTq+GqBVe!zCopc&&7Fez%sP z)ZpYkKuW`^G5+U_1t~&C4N*D%Tq2<~d@qEjf7eJAXBn%c=(?`hwnJm5w5`^7w5SRD zF3?)vpSj_-pU31g3;J~f9uf_U;SZS!5y`3h)dbv#;`o`Lr%&$Eb94Zk|Ul)W$Cj6Z5ZPbsOZ-UnHOa`0MC4)ZxDdP*mx;%93oFB`rG zlI;)3w$r=%=UI+7^iO|dR`fFi{#uaP(*i9`SI$7$p~DaJ6Y;el*7!;@X#&8=1B}0_ z!iV>s7^3*TNYCl&2&68c3!wv{pZs4CUv{L84JwYEeI zV}M@-+~%^;#$X%<+-^5Z$hdytcDrG?4Y>aMFO0(oJ&e$|5qcbMrS*oB}KUQqm2PE+4ebknz0^UJkg5HJSVm4>5H)&8R}@$Xk5)U4%c4_QhY zuBM%?wU3avCP{ZL{+#hyTIbT!-zid;G_IrCPKit-4f`mZq5n7oxpr0S#UX5msdkam z2jo7d`tx30MGn&b7q|bo-)*g1Y5aTSu9d$e{u)x*p8l6B%bGRSBl>?Xj$HcJ))F}q z(Idu;RD64NmPg_h)*wfN<9*kYb)*u~dku~pe`try1FEUf&tlM}6a-;(Spr``@7%<`sU)EUI`_LUa^pj%@|L@NM z=(RK6vb~~U)FXyr!0l>@6@w#L{P%zVC$!Ok23Xru_j=UOqnSNsFav+};D7s=PX24H zr=QsyfGt~1_G%9%PmHi>Q|MgYIw-P+ZKG~;IT3-``VH_Gs_^t1mRKP`#Z4hW<5&wq zpbBGwIO-asdfU_q;S?U0p@Zo<26Eq#?|-iF9kBw&*lx;p1Oe<=W0(Qu+9o^iF%zMJ zV7UQ((`@2trS(-Im$ zOKYmV291;~sZzamUANazCLukP5E}$zxp6tK89-hEsr7gcIm6&yL+jCq*OMvo&zW^X zL{&z`8l(E&a*f-sA3r6sYsx7%9;ecBWW1^OwkX{ng;(o4IqW5Vtj(KJNXFC}Qd2FV zLJ~eC6%^MVmGL*oNd?a=*V?sD+^%wehhlT>XNv*47Hc}XGuAjYGQVS=^4X8G_9z00 zG@e&k-)_|@mk1fD_j2XZblT@&@A%)!eH%*iO)JxeS3}jh{={@NG#rIqy0|)1u_}~^ z&;k-q5;aQ4S!A8^H{5`yi~yn1`uIgF*CbaaF{5;rq`j79-0)twZ`iz~3VPJIeckZ&`GwEVPfNu3uY}uwxj<`;aU3U7#_e{) zFbo)m0pmEr7=s>WGQyH!7!AM>h#BMz*zD@$g3d7u$X(f@K&)(87}&o7FfmNUkR}OQ zGfG(d?>TdoD6PKI8&<(=2^GrCgQ~OiBkEjVCIzK{P7xFl)HF6&HUN_WK>=i4!`tzJ zz#QLyZD5Rw2o?+&wuBaz?9gjF86tOtR3{ep;&6F#l`yIgX<^eu?3Do^SUV2Djn}V%fW6>v$wxqvYD& zVh*e@Vx2)kIeJVE^AxYC_O`W08BiY?-xjPHd1}crN29h4$EYDItr>NXh$kmIHHN14 z5qojgI-yQmAdMTS*(=n^mKl|6%74q6=CJxDuOv&$K4Sb?BT7iZ$M3C`zcl_=9baD^ z&B*^8Y-#@u4X=yVUK`#6Vow#{auQ4|6t^N~UWyjL_Jyph<+EMMYiQU7r8=mtyHi8~ zOOGwgj1d~FFd5mVlg;4iiVQ>UN`PTlczFORD6$q&f&w~c&hs882vD%s1lafhFu^#Z zBQs&-0a|NEeDLpMk^>(f5!6JRu<27!!8H#A%!nI|H7a+O z{9)g-alnx+v@saW2sWd=?n7HI834dNqyO`Qzy0j+r(y7a2KfI1085rI-l*)$(|M|3 zW?cU(dBv~4KJoR}7ry?w;`(*PcpWhg8l)NjVtRWW2$LmLI3fiZOR#{k z=@~kW>*b)vv;oX$gW%i1k{nzYL*IA!=sM5`0dzs9I&>YQ>j-_ zngAW16k0n8CEkE~15xs;_^CJ99*cGg=ywMD|5xijMW*n$KT+pM6VNa)&=cpvMWzT! zS>wIBeOSw)H+-^k_E=}cbYuigBgXD(Vxa&oxdYICp zK#I^QN7^6*sBtRBuueRw!pdZ*pBG>x=+Qvm4943CebX=lg9ip{0ES^SV9yQEh z!wsJUhOYs)uL0xNi1DhSwShL~sryfV<%tBb;kV(jVA~<5YZ$stp+^sOVUW6@S3Ok6 zPzvakg6b4hM~>s@8yP1q+`yv$0N%SzVr}9ck@v#l#+L>8!pn%_@LbCUvp)#6W^`f$ z80oz-o$&N^Voj4edBDsd)kD#}+|ZDUyRef003ZNKL_t)aA~A%2$KQJrS?qBlTtE0V zk`Z1Ll!|A{Lnf`Myx-*k<**?n>)5sTbYOcRH1EoEcuSfq}n${Yl!k%zvoSX;BZ6c00 zHTTu-<>GR!9Y4+@w7s%n=#|r!nsZ8ZT58)VJ$*-H_Sx7{{%i7{ zt@n}c(;m^^_8Oz-cb~6I%dHFc=y8v3EA{e@P3tp<@Oz#0@$x08t^Xs(pJ#$1l77Q$ z;GNpgJLBE@YePdr!#kkgx~P^8$|VI*9XM%NSZrXtAtf-UuE}H}TeYMdPfHen(hK{e zC%cq_cnzs~TT}Mc#!-WF7XV9R&YDs_d~4Ctcz#~On(VDckucoxn`OEC-;Nag`Eqt- zf~lbsL18wOselOOzn_g_ju`>6*HuJW@`g^P*_}Tto;+RnP@XU`rI*RxzflM#2=#zd}QM}zUEF?`)He2tb=aUC&U?RPu?d;^SO zXsw~g5#y*a4kNU-e|xVP<9LG!2oQ_<4E`l1bYnM_X;>6-%ObMZLckkYeF$5?i*dAL z1?BH53F^!KrDl&J#JJK|@MU<3%WR0B(-3@K^mUrs!2H#nxt>!4L>Pp^_m{GitG_fT zDzN8nmVEp77v*%_1qwYFqazD-=sH5z0Yse(>#EZCU7F}hUg}J=a{Z+1yeAy;uh^?E zjGb5sfHIhfPYiqgjbba!$2rw|Sicn1QNM^RCQ77;3OO>x^lbW0MdPc5BATyyVw#A0xwt(h0*oJP5%q2N zoTFln6_U%(%k|$@LP9u?lFMI=wYAmSx>35;2*c%MmeL|!yXBrq(ieZ07-36nRMMlOG~wRLT)57R0F)V`3@>FbgiK#6*g?YQbJKY_SBYfP5rK+#-Mc8zOrVlco%FbtJ=Nj zGZg)$IHm1hI^XWWI~YM~$KEZvsiUzq-h3U;ddkuorjFEDaZoIQoQ^KHCVdp7^>4@O zI#;;v;md9+RFej)KbTu|wh($Ukb&QjR}Mf#+j%cSOadL><$zz@uL1N z6PQotbLy@DXY5mf!Sc$#pxIulLcOx23|5v%fze*?VY7t(Z;T!t2ptrE0On5s3S{hc zAQP!&P~b1Zs5P$FE51Iz@b&8pU%x)>-(OeUt^@Qq;@>|FZi5C~Ut&XG2H4oE8Nk+J zO{0PuE`Yn*gX~~NcEtOz}!It(8gA}A_XV{ zDdjx9xU~oQGM?wOuIn7J0#J$_xx$4paD{3BjoHXQClXAA!3tYwxE5z_NMgu_O29q)!oJIJx7EdB#gnLoDj)Mr9TW4|6TfA z3SSEA3qX&~`;KAjuxJ`0-Q48Iabi&9)gwoM*rI?=8I8lws#EZ@+L}={rzlSmL8SdE zw=VI&*U}_eqpv}#pou*SmD)z?^IH6S5SH1Q3da&zp;Q*RXT}&&{$oSUn&PeRWj8>^ zq>k_>j3-BEk;YL;?#S&x=f8> zl0LAPD3Xi+2=c?8apdg1@fif89CCTd^@-G+n@g8ePgK+PYx*Bh?kihRQ}>d1YunNz zjpuvgs;Sc&NDNb@XZK;2x{I}ROWU8l#!%u_Wkoj`JGJ~m zDGNAjT$RL?+7D-S*A=?;DP&Rn)P3ahJdlVO}DT3D^e_3!FdL7!~|9Z z?g)Uw2Y0ye-|!Fqn_WfmOei2`^tb>97={tIuNyu;Kk@nN6Q94n@axwv+`euYh7rTp zh_C+!7|rg)K49-o@MH|@S%8_*DTNPpfi?za&=|}JHVg#?MIAcTP1k;m`i21-e$(vL z1Bw)gG!ztw6c~)3`j3T20$Oae=ii16ZqNV)@*GhGE*5fso68rB(o>l*nZ>5ik|hij zEBqXPOa^c>{ma2}+fgfs?ukP$irei5!vJ3l_y?owJA9}Q5DY*UsBZR7G4N>HoAO=| z7z7372o^j!ePJl41lL+)bjEnC^;GZEkKsG7HYsH&GrL=Pme);qtj%FLqjukQ0A{j7 z7$%$>89=Yf?)N<^vXh@w#R4*%_;g zVKNB6PZ_)=WmhWW65-+*i1U^DyhQ=Km3)yi{u5bZ*0aj0mQ*7}&DB>@V|~d08jfpc zm1QaaXU6MM)BpUKd?adQ)(|kHSAWzX*B%~GPd=X1-?=aiuYqtbeUuKNT@%=FJkFS_ z-%0^`IP9Dv^Xhe0{Bd2S;%@UwL&NvOIo6kkhK7cQ?}RE+g;YUdPY&O+s8Wilv+nej zo@zKEjy-bZ@9uN|SCo9P;5G8hD;WS@5oalsj%cs1jND1WRC{C3EQp^);ZpA(331Dh zl+!80p5Nq?>M)&Zan^ZHmS9JKu#es8SMMeQu-B{r_NI|34u-if^iLm-oJ=@E0J*FWRA9~V&G7KVPNj=1HH@;Z!71Y6> z0%BM8zCPw3vh^GsJMc{$?#a}zp*)kued9<(G`~0HJy7c92nZ9=0X-BgzqkF2X0If^ z1$5z+9)af|n&*20fsKLDX7)%kU3)UOpIPcm3|b{C2*RZ1=TzQP;fu0)sZ>tMqqz{0 zX-Gl3oRAoU=jWXC7Emgilp#NUCO=h|Cj6uf^EHN|Eo-mbTae!wI2*56uaf+Kcb)I!u)Jcp zm1jdkLqkK1e#>TOja(5bYf1`sK<-k}n?a7mQH!!Wh1+h4$G~r#!r%Tm@K`d#Q3RGp z#PuCeYTK`*0IEsHk*Cgx;!8TpVNtaKr=>v__sYZg*&50%A2ShPuDjW&zs{D}(5FwB0#x4tN`ZQXQFSl?G@JQK6b1}4hz)-Dt1(>uh&(mK zOnydeyXx#!UCs*wyAo$#bgn%S5sa@5PnK}MeLNhH7nCcq*yF=pev-aDAyEUWOhE9zjn>elp~#XcYm}z^V^80&fiy47Tw&BKkE!uo@Vgk1_h8SMaTKKWA0HG-q1CyCv|e9D2XQo{#`-!^ z&%QLJ;+)2W;b*`cymB49OqZ@g+f*UUn%nuk{ddu7w&**bZxq2UZPLSI9}YvPpa zKh}s8aahp=#71m0lFFF)4-4;88A=RiZIyTIl`WRK)9MKoXs560sT+l!X5s^A0YfW z`EB?xgbxjj&ZC9V#(6gY^k{Iq4Y+=N;d&kLU;e*e`1R`wqYd=P7>9B8kTF_<1sm%H zL4Eq`My#RVdeHDh4R;NRw&|VSk188C2;krX5VAf3j2bXb1wT;(W&(;YX#(`m;Qn{V z5MWOvFtd!AB#>6xg-wBif7f8sAtdWa4Zxn@;M$cojDa;q(&+jg3bw3a82ZB-%z0{` zmOR0*#0uM16%2YnexRVdm!yht z-c$*qg#wbKin&|?Uw^jS1vNJPJ*RP!q5PF1o%2$m7HRZ99r-JN>IfBKT=Dn0xv69@ zUt0&J)@k|las{cP4sn{|bsl>XSOpOw)t}b#D#4l}XN!?^i?X;hr{>5Wdkl}I^31I- zOKr`Em)>c<7mqX=KEwOp9-_8%{acc~_T3Q*&{E$D=)J@4Q;YiYNPVQDi z^qw_%X)K8Iyk`uGWj00nc1Zf~8Tx}gd+YC@&p6vq{3s&TYe7y_tb=4suS>)I`^VJJ z9ujV?yhpUD_aUErU#zWBo<*2WKRZ4xqWmwFM2mM@Tit_Jb`8%(BT_Upygp7NRY(+Y zVfa_aI}Khnr_atP`;_tEoyxD_y;0Ssr9lZ5q%Qdqye4`>OOjN6qmRjJ#3B}Fxb|@p z6G$&pF}+6140o*XWB72=>@^8sYm^2E*2{&3Rs#%;PL7)G6z6}^}_WF@tcle?Gbm@%iASjxtB-X11L9@o_ z&HYSM8S#Q#K`>-+)nBgQX(}W8m%@Dc2;;s*l|DcBo@m1^r(Flt_vrY73w}U#K>zU* z9d!Uk7#?sP#)lls8jp(cN(n{6dBPH9Z2QV#ZGDq!2a@-~a1v5Pt)cJ?XstzS zOCozxe~oTL0^SEy>lR=UhU^9iETsn}8)Y_r} zX6rEk?!>$swWfcaw*UZ8ro)H%;RqWviM55Ng1-s+GP-vGW^E0U6VZbJ!;|5&^CSnp6s3|C3c^96y}5h_?sBnwss2IJIjY;oo0RbG^25rGl= zFr^U@3|sPw)&>Ta48sfZy|%M$)CTtCqQJ^RXGtmi4_u= zYipMH`@8WtY6s!Cy@gbfk`+F$J<+iD6l(mw^h$#x)-^dV6>++}_lDHk>QU>flreXY zQ6Yz#Jk`of?d4MKcuSeCt$%YeQ~k4KOy2@#>%}TncWdcelPkd)b()i#I|W%YR@KB` z`;Js*PX5;Z9+yWbyAdnuv1gB!L+yB4b5&33*}KpL#4T4o9v*cy9;K}L z9TwENO?6I5>~YoxWYr+a6{7@A_V3lWhyfx?N??K|IFKVrctVA{o&(Bm7MNx-g&}vb z0`Y=oLAnFnH6F8qOS4H;P+bSO>p84}o^dnU z^Fshq==vT;X=wTaE0=O&PzQ9z76`di5)nSspEiF^9vi^0alZj}N>}woQ2zvsHW-J| z5h`xDT?gE5Hw?GIdc`mXBikP~fEf+U;C@B}Gcb%cVC}9K(Z;38=iio%CsQaQ5R|)4 zC9LoL<5xIaS((QuLK)VGISeBP9)XKO*Ij^)L8L%RL8%Lrx_~Z!bDkG0k)rGS`Nxqf zNGV*p9v|I@BUN0``!Ip$2Gw=wl(IL>(Cp=c7JtvVR{$;?UjG5moi_qU!ckX2}Tx1Mr&sTEazbJa^A| zJ->_KlJ-tZnug?^vkY&kb<~*#-BcW<`BUnBqE@L{k|T-3{~dsgZj5>fdT^Yp6lx*U((KA@pNj@JJg8onD&@l*liC-Lp^ZQsSUVzy6>8(Vv2n3EGRVXT4@!k>-Y@Q6aqry0dgNeBJRk+? zJ1F!pYIN6cSdSQNF&^HY|7^qL>-X{>4B-K~9)e3XJx@SBXey8vd(8s`YZz2w~^)*tuZZ8z#C<6%!QTfU$A zI~7OR$Bw9rR6Iw2R}+62CP!*ah2InZR)zTfy+~c0H3aiV<0xaqp0Q#Jfg*kcNaY(I)lp(O91%WpMQcz z0t|sQK-!fZ7^VZXHW+RrhOYs)&jHt8S6qMHaQnPsypGVL!R;>t{m-?Qa2{$DNSDh6 z9Vzsx$K_xDz`y>l{|SHoCqn-RVHgdR>hR;o1s^{z`1j!hOwJ>RQh-uWq(JVv4N?RU zLFo~_9v7sF*dXQ8rz{U;*^Z{qK^~aV56kysWAHRT5fCyJO7oUY^DHkb6A*Jni3-H5 zApL+f)KQyP4@Fp-IYo5oRA27&y1&Xrf>QnOF&0Wt)BneDTumQf(^!*#DdPP{*aySk z-*xR->#0D3XO~r}J)Pb5Yvn4X4ll1-?-#XYaE4K>L_#^!SpF^s!iMLf8LAo@-UB5P z;VE2ukla=<`}`5z8@KLb3r?(Wz)Aa?M>CTph6(Ar>44VAeKe}lEj20z zK~tOAJzh{sr!^+oQ@a(&i_)1@`bSNifkJuYji^%y7mop!9v`>^!02GTOiX14g6_sC ztnaDQl^HW#!I35IlVoMNe3Cnz?*^aAm_>wX0C3;=k-Lvv^-~CzVi!;FjWV8#o~V4#P;J5LrGMjJpg%%GqL0vmgM$T*JkH6+7;aTuY;5n3DEK7T=v zgS*bez!L=s#>l4fdeXs0wAET|CX^su*-3oKxbr&e^r>j0n22-Un zCzazz45*$n^O5sFa!2`@)0IWHlsB(=Vwu3?c4Y-2slxWpbo>PCVP*b0$Q{KY?Nv9j z_>Z|K_+G}`6O+AdRu$Xd9Z zr;c14srB)ir;pV9yu~|3yatcgpy5yI`jOn)zDSM|w4t^9ABhraCwv~awd@)_A*Zwk zD#f{$Udi(sgzYbthojf(HRK;DspZW5gj9Bltg-i0x%4mvGiS?6LXj&#(mJla<8LT8)lb9q!BO?MwS2<)r!0d}QWnK)ns8l^TJLeBd)CEq@vP2P=1(X++wH;PUYe<{q?^skX7kD5;;b7Q`*ilf<-meTW7)O+`z zuR^}QQ86{QL@b-D5{-VJ-e)4r!F}9eUMaX{%WIr z-16-nT%OY(jn`>I4eyM8*{JI_zNLkOWU)^EJhh}_bIPS~=AP?{36BfW$I6NLWNdMQ zm-f%p1kWz+;JeuOW|&O?03ZNKL_t*ZxZO0QMQX-f<=iK=ZeyHM)aD5lOGDK3*ngne zD3L4u_&Z+NR7G#gg6$kcV};ex3Wlvr_>`hKDcg3TdvoHWCYQp3?mps}b#$D8rLd1Pf%;>_v6qHve zg8;1@uWrgFTjRAYZ~(@Brx?S>VAI7me9wdncK}~3JBD5TaSvrKUUc^ zmrFm|!r zS~l{rw<`8veY!@bsv*ir+Vmcy^?F#TPWPTr@rwQN*~v+jhl$7i;P2WIx@K+h2zjMF z&~a^Jn;hx<9EaHxeGT#Po#3^e{#xM>aTbN@*HaLWNws_JBi6KQnk4^y=J@i%aC|>K z5#s6pyu8S4D$mFFTJ<+H0DXMo=a@x(g|ZH^&aIqVaA19bA$66?%wWCkq-II6QR%5Q zi*VyJaS^HntURxfw{}uvQ9jOK@7vQ6iuzZ^D{k1NNSgi*&d*up^HvM31Cc7vg>i6) zT;PcEths+suGGnmBe~6TO?W{97G8ad<3BMJ1%oWl?`SrTBtbCDxZ!F&e863S!TxFz z0$5E~nkZucGlHPd6X5~^aSzLj{AuGbjx?ebSOaVv`C=R}4jSX2VTKW-^Gb2M-tgc4 zpZ|(+7}0Bj(F$6_UU{Moj2&6(3K3B!Z3s!X6M36HZ8X{; zIA`>s6szte)EI)+!WY4E6+n)Fvu6x6Y)_!22tfYx6!xgaVi>E(v+9-$O38P-d2 zl~9w8_@F`!jv!@7c9yLD2@#Nwz!RLRCL~+Et@Cckm&JYuIqjwJ7gFG2E z>mmrXTExN z{XYY_@_xs%c(?R6G&D3cl+njZ6+bz}3gH^mD2k;Mi}#rB(-glOrtxeeZY~Y;cXf*@ zDf?Sm4dLn29DjlV>!n&K)1P{_=|~$3JQUHC*fml`ja$uzhKBD0B1(9QcuhzQ^?n>v zP%wcTII_RoKWw=Vjs(#wHIdM)G1&gi%mBNw(GWBYMhvjtAjthYT||H>dCVa72S`~b zRCEC@e8B}5OVBWLc*7e1;s5vt*u}$!!3JOr=uu-F2HdU#v>q}1lQI5xo;+XNh5^HE z!0l!|Wemdzqpg>Te|%hU=?NEf`06_JKNzG8K#Z=xfZT7@bugd5vc{aSTon<>8EcdC zk0V;-h}af1wJ5fI`yjy5pn#-=m-){&%! zwRJ=a(y%pUx~Bh#2~S5OjDJmjI4+ckrKNc*&PUCaD(`}tx;ld>+0gKNqhbU0WXRX} zZ2+FoNRIVU?y7Gryb2Efz2wHVQ8z96Q%^|NOR0RAcsH{(pdH4Pa1(OvBTF#9=!+%+Bk zeF7Uj*O7CEs7SdBI%s-k09>d8lLGM^mJNZmh8{lbwIW(W4M0CwFHDwTXT4o$|F`j1 zf&hP4ALziinj3zNpZHJz^MAk}fB%6i5700$3=G2!!vJ*BlbZp7B2;jDqs&$VMMx}M zt5Yee=2tPX@ubo3nOX?Ht~yw3xQ<#+0^N-*{(1O!&HSEPQ>TFn#v@lxsd4aKh%09p%AcM0+VYp4 z+&lxd<790*jwFHAjJ>IOB8Rh1#ID7WDhH_^r=;JIkZoRR4=kytGl+s`olt&uxk}sL zBhw+-1C~%*|HtR|EUm^YckjCB%z5t-1uwKCYqE^ zAS~m&Ckm{=F2@2TH!VpPHKqq5Ys8DW9qb;2&xvG2jqpTctPG2PGxHQljvQfp-ckgV zZ2i5)qA9m9KU-09)}k?$pFNwaoN;pRf^ls_Rh>?pWvUcj6|kc`ishLY(~{96BsU3V zW4*m#B7xn1w|EBtZ*0?R?Xxtmttp6e3I?%ZYi3Vi_E6!d7Yl zH`~Y=;(gb6Go(O~1&|2ft_x5V9zz`hPoi7(< zCpC9rs^{bF`=OnH8Q1PIX{;sW%^}A$%tYD2otamsdSWLew2bFBp8(9 zty)tmLR?kh__5_gbuD6&aS4*KZ_CMh&*O!7w&GD^=-Kh?G2*=%r0wslxNG-x5}8sQxxNUbB3uO@qSKhft?bd0?>58j zBSBQB0y>ifv8vO-a=#{xzlM}2!Csxtp1374&nBY8ao;^VPpSE2EHm~U$Evk`*mv81 zH8eCdd^hx|hw(sOyMZDi`CX|-sKAWUb=-tHPgJEzOX|`S07%u_D!g&iF0`%1YWjPF ztfaBjr!`?jm7wpF&E*c>o&5dt`}#}AeXndIlAq{g;%~RGd<3h%Octs09U|QTZe1qk zh#NKF#9xIN#eJG8%StBmUg}W_I|->~%Z5JuKAuNtA{StjVOO%*ke+JDeZLs5g3s$l zC~}@E{KugDh{AywG$;@;ymuqVk+A+K$ksTKfo8@yc1{mRP#`EMODv!cL<$Oyq|#jh zXxM3l?HtSYY7a1+M+v_Hckf~D=a^(GP^X}Jf?M#IZ zF1YFu>gq2zj%SUh4*GL1?^MavC^6Uu2uF_L!uT|ir3}F8EBNRd7I4(Yy z;*7l-tc{Hl)EL)l2oQrq9!P7jM8_gdQTFsJ6y|L*x}coM!Xsj8vjJ+NveuO(Cfl`f5iVvR8v&8#Ra zDJ@D0kQnR?PBmCHs#PqO*D#g+8H>gWnW-|(DH`mvyuu|`&Pc#q@BQOQw7KedP)(u! zUVEmu#@goY9XCT&P1QJN1i`(fFu7Q8TtiPNA;ka;EZ>3MzwSQ@<|ew}r}~@YE->J( z6|qqSBo0>K{x(Mm07_Y+9|QgZkjayQ^OAw^dMzePt6&ACI`m3m#0bqUZhPT~O@`w+ z7+BH7T%Ry;f24ayx#K(3Kdme zLoA+EC@hGCZN(3Og21(;R*&2~d)k`f1+Z1OR8ny4SSz4v0t!ij!XlQ6?XlQ776#7`Pno_iGIng5~ zRS0E<-Y;?|LqdhC^rVtC#K=#e$RIz}FrN;d-}OnF^HXP2ra;CdJFwkQV4>Qa!=l37 zn%Ux1&v~*Zv+XP1BS)MXj(!V0pPYrnKK0#C^8rX+6LGY`BG0OZ*a(_R&0(j?-vnzc z{i#pxl)rY$U{ygJjsMvb>wx(Bk6ap3>D?MW{$6@2BA)M*>SoU(gqa}WjqT*f6AT#b z+(!^x7zTSz#&k%@`e0C=t7ZUC!SF-*Oe$b#VDi>rW!Ni56anPNQ6ew{BQ(f+(qKn2 z1SVodXEYccG)8DMOw5I8+#mpoK+F@tVIYEGfHdO+wk&Lx4MxKtqoGNIJ8M+-2CH1V zVrF!3SAh8EE`CKzgLU=TCG9Mp1tSSsGhbK8m3sdQr>f!@NjQaAk?rq=xFn}tYm61r z^L3q-UpZ3)c2cwJ7P{Qt{O8=_E3@5S5RDWX)BdhH2%0C#Qxe^=k9}87Jk* z?PZU|nengbW%fX#(@DLvHZQI9*V=xywf~>do^$cv>#}7sw#5G`{qqs1(a|+Dd?$#< ziPi@i8lH;DQ-$ATAF(N|I@QBcqpCbTwF-k&{F0Lx`3=jgR9{1S^W+sHi;yCD9*QE_ zfuYAg-dd(>3sg^%pwKXQC(nQ9tx8Km#Van5);7GanC9<-1gE7T!ZZe*P*7VoG&!TF zSNcx&WTCQDN-8O(Ih8JnJR)nhv$k&EVX1%-j3xux-W`0YtXtdFR-H~9?&$ey`Q3Z8 z)$ax(di$b(mvOG4p`oGS9=#pJ!=HFyuQVn=?$XzWmEC~O1RzotmNxj3$;q3cvLWL| zWt32I3(Zre!D)furPCb=A{Q?qQu^Elo=w!8bw7T;;Vl^o7H<$?Sy-WA%7vWP=(90w zb(3+@dZSj^HJw7|_<13Ti7#G;DBu#ZXkV#kQY7B(mm2Rcf41 zl_k%i_Zo{9?@GfFEez0WYeuQUV!sA+M1-#ElIhwSH;}$QC!J2Yq5LRfMf}`f z6)2HkQfNxTmGBfJ*9JmGoW{F#K9<)nrrKRfPK-T9^)P%Y&RWB+RQ?u7-w)@QBjr9r ziF$UN&nBPLv>&OiBBfKv^{4oH9shl9oJz^rYy3&2Yb|X2IYp>QjVmcRTk%RniWpn+ zxThW;g2eo>6b2z~p)@}+Ni%$&lOuWd&Sdl>>im)8 z-6Q6xY8eNlqv4hCGFGLRN2-)cCHFo@N*bPto_TqvGf|bUF9~C`Tv;LHUyxGhh3=Q7 z;K}F}#Dm$8>OcF?hSa@bgY0*U-grkU*q%Z!M@Bud&{CoY16rFYw@c#`f-LwFkqy>H zdl%SPeP>oc`EUf9PGZmRQpNQjl(AH$7L=P8b)3#w(U?^ke(^5X8wy2oGk^OhN5=T5 zNhuXivh3M&mu5rk+zRc#H2u3Te$jh{fj322m`8{0$i2VCoIIsxWdaGu8NH*0JxU2g z%boOUIt*z5IvT%b+Jo~^0RXu5gA0)!9mvU7=%5^FfsH$f9xB}6%bx&aN6Tefj^ZFd z5#a~_X|EG86n?dYacS@FjbwI8WSbi|CNdGg9ryw_!GBq5NzeFj&ao`<0wA*MkLel{ zaw(uW@6-3wr0n{uua=oDGS6j+(v%{3C?_W{QEjJfYmPoGS@>>G`jwp4aL%0efH9$H zpmy2M8K_Q)GkAW60aAMP39wG8E)mp1ypkb`f{js1kr_Vg0#buVE-yxy$2y|=95zXQ zjtFcajwti4>!vx;|M)Z+W0Gw&MUD%9az^b(DTUX{H1+&Z27po->`_{WP|A`Uk5r8B zeYZyDUZPqYzElq3Rc1A^OY&<-J$1&{eMpVvHR(K~{v|}oEp>l10jp;Ja`gHk6CnQ{ zEwA4zp(&rYU~MPP0Hg%4nqB?ttg*_dThq!3q*A$OwCa4^ueA2{s38Ev&tINgmcVk% zEo(}{XSV%G+KavZ^zLb*jQpDVJK>$$!WnpW{%d3ZUajw&qH!uJ5opJgir?wm$0VoW z?a_xH<~e)c@Tn3?#T-~|k1H34e6qS9fvoL@7lzb16zBIP@$(%Epeg;K45^U^g>fMg zz*yc%AE#lK!&OQhBANT`r98T00pG_bjeq$$cbcYlQ4=q*6YA>hyWZWuG<@p)Gr+#B zCnn>&CMRvv*>a`g$D+uU{8Q9dmUXpGNxC;c?=;LxLy3!YIVN#5MlHe$+sX>{A)l5+ z+>2+KSNHTkiHC@iY>5JM>!$TS9j*p~M@dsZ*|3?^L~W4(w&Q9{1YD#gh$YTVoTeHI zf+uywClphsEs29u6^T3&$c9;@VGbHA>gQ!iSfEZx6Sc*uE`(K?oX$BheJ2Kd&a#^F zUY@q%$Wzj*#_TEzXTAJ6plq#DZ=eEdm9T5iLc?(U{Qg~8n$J49QrlJ}`LB^1pK3k| zXP<^HohpyNPo>AdmwWe)6i}b^YNYa#GC0IzZs3_%Xh4IACbLq?xD)wTl zj7O3=LTs4>B*u)rM({o5cm@HihJf^JLq$wR$n}*tYz{SZ|617EHT0R|eeR@gjf}W# zA8FLsyMM{aSi{~tPveL%ezFl&#qoP1Usem1Ms-`2)InVvE3GA7&1k;XRv+E}AC05x zV@*!Yd=R&vXO@3%uFYeq=eXA~+h^>QERrFRxo%89n$X(tdU*JHR2tpRW_ARr`FF=N zbV}bI%SBdx?b^zSqmwxE`T^yszH z8GD;>j^AQnDan=MC}Lq~2t0Be-7@C+-#PNp7P&R387C$6zqJe+)=^VeF(Ix*tXq?H zMjE%^k!|JG_Oq{wS0ht=7f1+f4=r=b9pSl0NmtS^gUH%Sfb})iR(;5kd#Z+phUcO6 z*@lMKNAD-~HPoCcA(DHlsG-Wq#}p%!%PyQ#Ze&i<6YM?kr3Hy)sWRmGxsPZmH)iz8 z4ORa73<(seJEczQHxY@ImA3xZ!_INWNt3|1g?On?rMHbvcBFNzt>tYQt zp&~99$(r@MqpZ_=9b$!4|8r(?OXU%hcp7AQoAw9Xty4?m>``lk?+mL`&)5GNIpwT% zM?*uyo1%@e4Gm94zaGS*W`S4ZepBkH;ye&?$3>r=vL&_>HpMQ4NnBU z>QVg!&QNgF$lO9cITB%7b0;9?XBBC+Y(!D~4c`lAU1=q3Qo9Hhxs$|11Z~c_D?W_l zJ18i>OFpD{#k}@?pG=qE!<|V~I15J^XB*xV;ng)jnzZvu$dQOzJ8n1=zuWxV(9qCu zHl+K{hK7cQhK7dkgI?lM0Pq`pSy*F?d{I&1-9f5fu=mbO%;;=FA=i zLZjd|&jx8@)KWH8+8*VKn3Ahr@20o*w3<~ANdx0PZw!EAgDZ)%wT0EYc7mfRA1WZU zl~!d_>Lt6CA)I^^tuAG5)E&l}hoQl9xQFtOL zb(+G<%+*uLKrKtk^3?Md87XA;r9|^bL}{Nboom>raS_*o?W)!p?PxSO0Lc3(iIza zVX!w26i#l0pu$q_+j-qd_8L zZH=O{)u0?_DS{3+f>j!o<8-WTGNnpzsZnK3Nk5YnqI|i@V_|G(_e5%_N=!hhaXP0s zP36C4ge3wvQu4<}0f{$@#ow9lbM+%{*ZYh`xpaG}tL1CIy!-Ah{jLH;>X!{hA*qpA zN>bVqZ#kSN_8hDnq`MxNiGNuyYvtt?V5Rj@OZ{G6}9bZ%X?eWaOC**%Gg?tHT$Wf<8Eju<4!S~ z#dmFkN0Avff$#ka))LnCrtiCr)tu1jA3g?yuQmb3TiWGdaIF*~V{kwy&{b;7U`8tUdUkdam_u_7JcTD{~5B}ZUQ0kLX? z7leNVC8wzu000WCNklTC8K)iePhkwpwxC_ofJnI zlh0_IwX&q7mRfmR!)`Iwuch&kO3j$46pxi*JJwoH&%^m6{>&`%ezF#y$KE>464f4n zT${;#ez*Yy+emn8h}%Q>Jbv~}__2D;xWmlox=tjsG(Sn&Lk>p}*!G~70J7(M$vcvD z*YAi&?7z3{i*h(Ry^pHYHgBt|aaP+&;kD`_kJ`MK2zhH`;T|$yEv)^& ze$Vmh^V+MltE0)mNAIc5K-Jo#X@47jV^r^#PfABaLqi$;vlBq1M4JGjv+k)579G*= z+_P1Qr!82dsgN290cL}vNe$9E4c>^-;6Jy8RD;KJ$Ttn=;+eJjY$Yv`8-rz`Q3|=| z)TIcI;`tqb=j+~|o`9!9+!pDax;n!MPc&bL_UhO|6#E_VJLNw`Li2{_6p;8B8I&)HSZ&|LtzwZQIBF5y&;y5k! zr@~~{KP=@h&vAP>_s?qOu0PM!-D{n|l9%agq<0-vN;qy@^IA2k6Baa%4Z9~ z>PQ1?jT|YVKl-6uQ) zd&aX@JIVYAl-6{Q7^7<-Yk%j)U+SN)R95eTcWQq}dQ&)hZSsyFr~k5l=l9@JJ$7B( zuhq618X68j>(UJkPsJ`z6{SVin(H!|e87(q^J$LxS@?JOS*nbn$WFg{UDc9$gMy+Fnu-oHR>k$cCihYEM2WN#Vy)ho z&D~m!f`3D@Y|gkKS?iopCb>MW z96d`BD!j~^TuSS|MsCiKRy#I|(j`Qy?QMBK_g(2Tu)qDJ-jDm)nd{7&b?lZhUhA)7 zi5c=uN@h(t#p7S;-I}pS`h4sDKlSX)xn?aLseI+a9c7T0mfhI|KuLK#617BX$y#>S zsjZKJXAxkwu4%JQGmwe;Q

q#zHB9y%#+Nz=HS>HPBQA$AZ}-GJf1YX2C7IE5(QlSBvDeJrId)F zQfmG?R91Cew|N6JOHIVTGOUIRqFNhBQto>&>F0vTgLjIi8l!=^UflTj@hb;(FE z%a}i>(ss;Ay;?=p5sIxxDrssAD$-MZ5+%#o5cese@gX!l%x(93ES+kUoR3o6#$b4o z!9m9Tl~W&kkQyu3+6?nN>T$4KCvQn7nn@O`3BW|GI0`k&@G#c9c`hCsjD3TG%%zP7 z0Fk=OzN9aP3jRlJPFG`?Co)Os>Rnp6{@9z}+A=$1T(sm9d0#E9IZJEMypc^dr}^i` znB?=j^sDu?Vk%vd@LR*>l(li5aol_bF1MOwITs z9Xov8Ns!wA?;%;#V2?pN)o#NuzFc$jOYL})YNxfjlUUxnkR*U|n%3r{IQ&}JRNd5& z1xj(nIAi`lqpqw?`@A+#YZNZeb7fgenRT9GCD@XewK_A#tgb&pdGc}L`20(WDs}BN z-zSfaCl6^cG1BwH+FGnAlkdG;u7y7$%$cZZcW0%QfxC)L+sp|n(7kV2v((JDd)B0> zH<|Yvx{o4**2Wb-+p=HTyQU!kUi+4!;Xk=6JqEF>*kY!?hi%|o$mU54sXg-~L{;5t zx8VqE@>G%9jE9S?vy}A`x!=Vo`pVe4U}|V+Xn03FnpJ+E0Eq1L4Gr%OiD4z~kKyOO z?`3P0G^gY3p|ut(YfmA|2n}P;R)97%oPlv1?~D#alq3fH&V4`;q3ioBks?G*In|6m zQf2nx?lC&`b-E6+DEj_A`*9~T%f&ihu**ch+tN^4F3ymYEL zl+VZ;*1|Nz@?RZmC%{stk0m&o0DTr}415x=INuq+YrfA!eEK$QW8pq3Zl~`w{~Us# zJmNzcsj{d!#VZY)Iw}2V0@}O4muqU>5ECofxbhx2`T$hT$#bd9+KXdXRd~ZhK7cQ zS3#AhirmRS>BP9lC|^>PyrOHz?}%r4sAvnXhK7ct-PG=lJ60f0@e(6Gg>p2p;2lm= zmhx=B%PSgRktF%d_E(E{IVl+So%Qxo-xjic)c?(CC0t6u7x%w>TAuBKR_^7aM)`Hb zT0JLQA~P30b#hvYl#wv0*sjf!IHU|U`Iq9%arG6(mS;gJwb&ci91i#nAVBN~J3B5H zzL(0Bgp-obYQ{e)wit|_g;H9>GTb^AH9QA;ML%){GWl8s_?tbKWm2V+^M#d(K39`7?U-i z5#%oU#R}jjD|OdS|ApnCwHC{j=KtC2zgHV)UL8jhu%w37?=o)1=(=w4IXuN5k3p%v z`ik?w}2Io&wIO+ZqDSQ773K?^_|Fu(c%7n)Igj zllO5h=ZzGZ;@#$rbH=py$$z+~U&AZb>m$5XG&D3cG&D3cyaWD!k>Nl_`F6+j00000 LNkvXXu0mjfonQV= literal 0 HcmV?d00001 diff --git a/data/tutorials/language/5rt_00_garbage_collection.md b/data/tutorials/guides/1wf_05_garbage_collection.md similarity index 70% rename from data/tutorials/language/5rt_00_garbage_collection.md rename to data/tutorials/guides/1wf_05_garbage_collection.md index 567c305fc7..daef9035e1 100644 --- a/data/tutorials/language/5rt_00_garbage_collection.md +++ b/data/tutorials/guides/1wf_05_garbage_collection.md @@ -1,98 +1,16 @@ --- id: garbage-collection -title: Garbage Collection +title: How to Work with the Garbage Collector description: > - OCaml is a garbage collected language, meaning you don't have to worry about allocating and freeing memory. -category: "Runtime" + How to use the Gc module in OCaml and how to write your own finalisers. +category: "Guides" --- -# Garbage Collection - -## Garbage Collection, Reference Counting, and Explicit Allocation - -As with all modern languages, OCaml provides a garbage collector so that -you don't need to explicitly allocate and free memory as in C/C++. - -The OCaml garbage collector is a modern hybrid generational/incremental -collector which outperforms hand-allocation in most cases. - -Why would garbage collection be faster than explicit memory allocation -as in C? It's often assumed that calling `free` costs nothing. In fact -`free` is an expensive operation which involves navigating over the -complex data structures used by the memory allocator. If your program -calls `free` intermittently, then all of that code and data needs to be -loaded into the cache, displacing your program code and data each time -you `free` a single memory allocation. A collection strategy which frees -multiple memory areas in one go (such as either a pool allocator or a -GC) pays this penalty only once for multiple allocations (thus the cost -per allocation is greatly reduced). - -GCs also move memory areas around and compact the heap. This makes -allocation easier, hence faster, and a smart GC can be written to -interact well with the L1 and L2 caches. - -Of course none of this precludes writing a very fast hand-allocator, but -it's considerably harder work than most programmers realise. - -OCaml's garbage collector has two heaps, the **minor heap** and the -**major heap**. This recognises a general principle: most objects are -small and allocated frequently and then immediately freed. These objects -go into the minor heap first, which is GC'd frequently. Only some -objects are long lasting. These objects get promoted from the minor heap -to the major heap after some time, and the major heap is only collected -infrequently. - -The OCaml GC is synchronous. It doesn't run in a separate thread, and it -can only get called during an allocation request. - -### GC vs. Reference Counting -Python has a form of garbage collection, but it -[mostly uses](https://devguide.python.org/internals/garbage-collector/) a -simple scheme called -[reference counting](https://en.wikipedia.org/wiki/Reference_counting). -Simply put, each Python object keeps a count of the number of other -objects pointing to (referencing) itself. When the count falls to zero, -nothing is pointing at this object, so the object can be freed. - -Reference counting is automatic memory management, but it is not considered -a full-fledged garbage collection by computer scientists. Yet it does have one -big practical advantage over full garbage collectors. With reference counting, -you can avoid many explicit calls to `close`/`closedir` in code. +# How to Work with the Garbage Collector - -```ocaml -let read_file filename = - let chan = open_in filename in - (* read from chan *) in -List.iter read_file files -``` - -Calls to `read_file` open the file but don't close it. Because OCaml -uses a full garbage collector, `chan` isn't collected until some time -later when the minor heap becomes full. In addition, **OCaml will not -close the channel when it collects the handle's memory**, so this -program would eventually run out of file descriptors. - -You need to be aware of this when writing OCaml code that uses files, -directories, or any other heavyweight object with complex finalisation. - -To be fair to full garbage collection, let's mention the -disadvantages of reference counting schemes: - -* Each object needs to store a reference count. Basically, there's - a word overhead for every object. Programs use more memory and are - consequently slower because they are more likely to fill up the - cache or spill into swap. -* Reference counting is expensive. Every time you manipulate pointers - to an object, you need to update and check the reference count. - Pointer manipulation is frequent, so this slows your program and - bloats the code size of compiled code. -* They cannot collect so-called circular or self-referential - structures. I've programmed in many languages over the years and - can't recall ever having created one of these. In addition to - reference counting, Python has a dedicated garbage collector to - address this. -* Graph algorithms, of course, violate the previous assumption. +In [Understanding the Garbage Collector](/docs/garbage-collector), discussed how Garbage Collection in OCaml works. +In this tutorial, we look at how to use the `Gc` module and how to write your own finalisers. +At the end of the tutorial, we give some exercises you might try in order to develop a better understanding. ## The `Gc` Module The `Gc` module contains some useful functions for querying and calling diff --git a/data/tutorials/language/3ds_06_memoization.md b/data/tutorials/language/3ds_06_memoization.md new file mode 100644 index 0000000000..006f407ee0 --- /dev/null +++ b/data/tutorials/language/3ds_06_memoization.md @@ -0,0 +1,412 @@ +--- +id: memoization +title: Memoization +description: > + Memoization, adapted from OCaml Programming: Correct + Efficient + Beautiful +category: "Data Structures" +external_tutorial: + tag: "CS3110" + banner: + image: "tutorials/cs3110_banner.png" + url: https://cs3110.github.io/textbook/cover.html + alt: "Ocaml Programming: Correct + Efficient + Beautiful" + contribute_link: + url: https://github.com/cs3110/textbook/blob/main/src/chapters/ds/memoization.md + description: "You are encouraged to contribute to the original sources of this page at the CS3110 GitHub repository." +--- + +# Memoization + +Memoization is a powerful technique for speeding up simple recursive +algorithms, without having to change the way the algorithm works. This is done +by "remembering" the results of a computation, so that previously computed results +never have to be recomputed. We'll illustrate the principle using +imperative data structures, e.g. arrays and hash tables. + +The following is an excerpt of the page ["Memoization"](https://cs3110.github.io/textbook/chapters/ds/memoization.html) from the book [OCaml Programming: Correct + Efficient + Beautiful](https://cs3110.github.io/textbook/cover.html), reproduced here with permission. + +## Fibonacci + +Let's again consider the problem of computing the nth Fibonacci number. +The naive recursive implementation takes exponential time, because of the +recomputation of the same Fibonacci numbers over and over again: + +```ocaml +let rec fib n = if n < 2 then 1 else fib (n - 1) + fib (n - 2) +``` + +

+ +**Note:** To be precise, its running time turns out to be O(pⁿ), where p is the +golden ratio, (1 + √5)/2. +
+ +If we record Fibonacci numbers as they are computed, we can avoid this redundant +work. The idea is that whenever we compute `f n`, we store it in a table indexed +by `n`. In this case the indexing keys are integers, so we can use implement +this table using an array: + +```ocaml +let fibm n = + let memo : int option array = Array.make (n + 1) None in + let rec f_mem n = + match memo.(n) with + | Some result -> (* computed already *) result + | None -> + let result = + if n < 2 then 1 else f_mem (n - 1) + f_mem (n - 2) + in + (* record in table *) + memo.(n) <- Some result; + result + in + f_mem n +``` + +The function `f_mem` defined inside `fibm` contains the original recursive +algorithm, except before doing that calculation it first checks if the result +has already been computed and stored in the table in which case it simply +returns the result. + +How do we analyze the running time of this function? The time spent in a single +call to `f_mem` is O(1) if we exclude the time spent in any recursive calls +that it happens to make. Now we look for a way to bound the total number of +recursive calls by finding some measure of the progress that is being made. + +A good choice of progress measure, not only here but also for many uses of +memoization, is the number of nonempty entries in the table (i.e. entries that +contain `Some n` rather than `None`). Each time `f_mem` makes the two recursive +calls it also increases the number of nonempty entries by one (filling in a +formerly empty entry in the table with a new value). Since the table has only +`n` entries, there can thus only be a total of O(`n`) calls to `f_mem`, for a +total running time of O(`n`) (because we established above that each call takes +O(1) time). This speedup from memoization thus reduces the running time from +exponential to linear, a huge change---e.g., for `n`=4 the speedup from +memoization is more than a factor of a million! + +The key to being able to apply memoization is that there are common sub-problems +which are being solved repeatedly. Thus we are able to use some extra storage to +save on repeated computation. + +Although this code uses imperative constructs (specifically, array update), the +side effects are not visible outside the function `fibm`. So from a client's +perspective, `fibm` is functional. There's no need to mention the imperative +implementation (i.e., the benign side effects) that are used internally. + +## Memoization Using Higher-order Functions + +Now that we've seen an example of memoizing one function, let's use higher-order +functions to memoize any function. First, consider the case of memoizing a +non-recursive function `f`. In that case we simply need to create a hash table +that stores the corresponding value for each argument that `f` is called with +(and to memoize multi-argument functions we can use currying and uncurrying to +convert to a single argument function). + +```ocaml +let memo f = + let h = Hashtbl.create 11 in + fun x -> + try Hashtbl.find h x + with Not_found -> + let y = f x in + Hashtbl.add h x y; + y +``` + +For recursive functions, however, the recursive call structure needs to be +modified. This can be abstracted out independent of the function that is being +memoized: + +```ocaml +let memo_rec f = + let h = Hashtbl.create 16 in + let rec g x = + try Hashtbl.find h x + with Not_found -> + let y = f g x in + Hashtbl.add h x y; + y + in + g +``` + +Now we can slightly rewrite the original `fib` function above using this general +memoization technique: + +```ocaml +let fib_memo = + let rec fib self n = + if n < 2 then 1 else self (n - 1) + self (n - 2) + in + memo_rec fib +``` + +## Just for Fun: Party Optimization + +Suppose we want to throw a party for a company whose org chart is a binary tree. +Each employee has an associated โ€œfun valueโ€ and we want the set of invited +employees to have a maximum total fun value. However, no employee is fun if his +superior is invited, so we never invite two employees who are connected in the +org chart. (The less fun name for this problem is the maximum weight independent +set in a tree.) For an org chart with `n` employees, there are 2ⁿ possible +invitation lists, so the naive algorithm that compares the fun of every valid +invitation list takes exponential time. + +We can use memoization to turn this into a linear-time algorithm. We start by +defining a variant type to represent the employees. The int at each node is the +fun. + +```ocaml +type tree = Empty | Node of int * tree * tree +``` + +Now, how can we solve this recursively? One important observation is that in any +tree, the optimal invitation list that doesn't include the root node will be the +union of optimal invitation lists for the left and right subtrees. And the +optimal invitation list that does include the root node will be the union of +optimal invitation lists for the left and right children that do not include +their respective root nodes. So it seems useful to have functions that optimize +the invite lists for the case where the root node is required to be invited, and +for the case where the root node is excluded. We'll call these two functions +party_in and party_out. Then the result of party is just the maximum of these +two functions: + +```ocaml +module Unmemoized = struct + type tree = + | Empty + | Node of int * tree * tree + + (* Returns optimum fun for t. *) + let rec party t = max (party_in t) (party_out t) + + (* Returns optimum fun for t assuming the root node of t + * is included. *) + and party_in t = + match t with + | Empty -> 0 + | Node (v, left, right) -> v + party_out left + party_out right + + (* Returns optimum fun for t assuming the root node of t + * is excluded. *) + and party_out t = + match t with + | Empty -> 0 + | Node (v, left, right) -> party left + party right +end +``` + +This code has exponential running time. But notice that there are only `n` +possible distinct calls to party. If we change the code to memoize the results +of these calls, the performance will be linear in `n`. Here is a version that +memoizes the result of party and also computes the actual invitation lists. +Notice that this code memoizes results directly in the tree. + +```ocaml +module Memoized = struct + (* This version memoizes the optimal fun value for each tree node. It + also remembers the best invite list. Each tree node has the name of + the employee as a string. *) + type tree = + | Empty + | Node of + int * string * tree * tree * (int * string list) option ref + + let rec party t : int * string list = + match t with + | Empty -> (0, []) + | Node (_, name, left, right, memo) -> ( + match !memo with + | Some result -> result + | None -> + let infun, innames = party_in t in + let outfun, outnames = party_out t in + let result = + if infun > outfun then (infun, innames) + else (outfun, outnames) + in + memo := Some result; + result) + + and party_in t = + match t with + | Empty -> (0, []) + | Node (v, name, l, r, _) -> + let lfun, lnames = party_out l and rfun, rnames = party_out r in + (v + lfun + rfun, name :: lnames @ rnames) + + and party_out t = + match t with + | Empty -> (0, []) + | Node (_, _, l, r, _) -> + let lfun, lnames = party l and rfun, rnames = party r in + (lfun + rfun, lnames @ rnames) +end +``` + +Why was memoization so effective for solving this problem? As with the Fibonacci +algorithm, we had the overlapping sub-problems property, in which the naive +recursive implementation called the function party many times with the same +arguments. Memoization saves all those calls. Further, the party optimization +problem has the property of optimal substructure, meaning that the optimal +answer to a problem is computed from optimal answers to sub-problems. Not all +optimization problems have this property. The key to using memoization +effectively for optimization problems is to figure out how to write a recursive +function that implements the algorithm and has two properties. Sometimes this +requires thinking carefully. + + diff --git a/data/tutorials/language/3ds_07_monads.md b/data/tutorials/language/3ds_07_monads.md new file mode 100644 index 0000000000..cc05d8473c --- /dev/null +++ b/data/tutorials/language/3ds_07_monads.md @@ -0,0 +1,822 @@ +--- +id: monads +title: Monads +description: > + Monads, adapted from OCaml Programming: Correct + Efficient + Beautiful +category: "Data Structures" +external_tutorial: + tag: "CS3110" + banner: + image: "tutorials/cs3110_banner.png" + url: https://cs3110.github.io/textbook/cover.html + alt: "Ocaml Programming: Correct + Efficient + Beautiful" + contribute_link: + url: https://github.com/cs3110/textbook/blob/main/src/chapters/ds/monads.md + description: "You are encouraged to contribute to the original sources of this page at the CS3110 GitHub repository." +--- + +This is an excerpt of the page ["Monads"](https://cs3110.github.io/textbook/chapters/ds/monads.html) from the book [OCaml Programming: Correct + Efficient + Beautiful](https://cs3110.github.io/textbook/cover.html), reproduced here with permission. + +# Monads + +A *monad* is more of a design pattern than a data structure. That is, there are +many data structures that, if you look at them in the right way, turn out to be +monads. + +The name "monad" comes from the mathematical field of *category theory*, which +studies abstractions of mathematical structures. If you ever take a PhD level +class on programming language theory, you will likely encounter that idea in +more detail. Here, though, we will omit most of the mathematical theory and +concentrate on code. + +Monads became popular in the programming world through their use in Haskell, a +functional programming language that is even more pure than OCaml—that is, +Haskell avoids side effects and imperative features even more than OCaml. But no +practical language can do without side effects. After all, printing to the +screen is a side effect. So Haskell set out to control the use of side effects +through the monad design pattern. Since then, monads have become recognized as +useful in other functional programming languages, and are even starting to +appear in imperative languages. + +Monads are used to model *computations*. Think of a computation as being like a +function, which maps an input to an output, but as also doing "something more." +The something more is an effect that the function has as a result of being +computed. For example, the effect might involve printing to the screen. Monads +provide an abstraction of effects, and help to make sure that effects happen in +a controlled order. + +## The Monad Signature + +For our purposes, a monad is a structure that satisfies two properties. First, +it must match the following signature: + +```ocaml +module type Monad = sig + type 'a t + val return : 'a -> 'a t + val bind : 'a t -> ('a -> 'b t) -> 'b t +end +``` + +Second, a monad must obey what are called the *monad laws*. We will return to +those much later, after we have studied the `return` and `bind` operations. + +Think of a monad as being like a box that contains some value. The value has +type `'a`, and the box that contains it is of type `'a t`. We have previously +used a similar box metaphor for both options and promises. That was no accident: +options and promises are both examples of monads, as we will see in detail, +below. + +**Return.** The `return` operation metaphorically puts a value into a box. You +can see that in its type: the input is of type `'a`, and the output is of type +`'a t`. + +In terms of computations, `return` is intended to have some kind of trivial +effect. For example, if the monad represents computations whose side effect is +printing to the screen, the trivial effect would be to not print anything. + +**Bind.** The `bind` operation metaphorically takes as input: + +* a boxed value, which has type `'a t`, and + +* a function that itself takes an *unboxed* value of type `'a` as input and + returns a *boxed* value of type `'b t` as output. + +The `bind` applies its second argument to the first. That requires taking the +`'a` value out of its box, applying the function to it, and returning the +result. + +In terms of computations, `bind` is intended to sequence effects one after +another. Continuing the running example of printing, sequencing would mean first +printing one string, then another, and `bind` would be making sure that the +printing happens in the correct order. + +The usual notation for `bind` is as an infix operator written `>>=` and still +pronounced "bind". So let's revise our signature for monads: + +```ocaml +module type Monad = sig + type 'a t + val return : 'a -> 'a t + val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t +end +``` + +All of the above is likely to feel very abstract upon first reading. It will +help to see some concrete examples of monads. Once you understand several `>>=` +and `return` operations, the design pattern itself should make more sense. + +So the next few sections look at several different examples of code in which +monads can be discovered. Because monads are a design pattern, they aren't +always obvious; it can take some study to tease out where the monad operations +are being used. + +## The Maybe Monad + +As we've seen before, sometimes functions are partial: there is no good output +they can produce for some inputs. For example, the function +`max_list : int list -> int` doesn't necessarily have a good output value to +return for the empty list. One possibility is to raise an exception. Another +possibility is to change the return type to be `int option`, and use `None` to +represent the function's inability to produce an output. In other words, *maybe* +the function produces an output, or *maybe* it is unable to do so hence returns +`None`. + +As another example, consider the built-in OCaml integer division function +`( / ) : int -> int -> int`. If its second argument is zero, it raises an +exception. Another possibility, though, would be to change its type to be +`( / ) : int -> int -> int option`, and return `None` whenever the divisor is +zero. + +Both of those examples involved changing the output type of a partial function +to be an option, thus making the function total. That's a nice way to program, +until you start trying to combine many functions together. For example, because +all the integer operations—addition, subtraction, division, +multiplication, negation, etc.—expect an `int` (or two) as input, you can +form large expressions out of them. But as soon as you change the output type of +division to be an option, you lose that *compositionality*. + +Here's some code to make that idea concrete: + +```ocaml +(* works fine *) +let x = 1 + (4 / 2) +``` + +```ocaml +let div (x:int) (y:int) : int option = + if y = 0 then None else Some (x / y) + +let ( / ) = div + +(* won't type check *) +let x = 1 + (4 / 2) +``` + +The problem is that we can't add an `int` to an `int option`: the addition +operator expects its second input to be of type `int`, but the new division +operator returns a value of type `int option`. + +One possibility would be to re-code all the existing operators to +accept `int option` as input. For example, + +```ocaml +let plus_opt (x:int option) (y:int option) : int option = + match x,y with + | None, _ | _, None -> None + | Some a, Some b -> Some (Stdlib.( + ) a b) + +let ( + ) = plus_opt + +let minus_opt (x:int option) (y:int option) : int option = + match x,y with + | None, _ | _, None -> None + | Some a, Some b -> Some (Stdlib.( - ) a b) + +let ( - ) = minus_opt + +let mult_opt (x:int option) (y:int option) : int option = + match x,y with + | None, _ | _, None -> None + | Some a, Some b -> Some (Stdlib.( * ) a b) + +let ( * ) = mult_opt + +let div_opt (x:int option) (y:int option) : int option = + match x,y with + | None, _ | _, None -> None + | Some a, Some b -> + if b=0 then None else Some (Stdlib.( / ) a b) + +let ( / ) = div_opt +``` + +```ocaml +(* does type check *) +let x = Some 1 + (Some 4 / Some 2) +``` + +But that's a tremendous amount of code duplication. We ought to apply the +Abstraction Principle and deduplicate. Three of the four operators can be +handled by abstracting a function that just does some pattern matching to +propagate `None`: + +```ocaml +let propagate_none (op : int -> int -> int) (x : int option) (y : int option) = + match x, y with + | None, _ | _, None -> None + | Some a, Some b -> Some (op a b) + +let ( + ) = propagate_none Stdlib.( + ) +let ( - ) = propagate_none Stdlib.( - ) +let ( * ) = propagate_none Stdlib.( * ) +``` + +Unfortunately, division is harder to deduplicate. We can't just pass +`Stdlib.( / )` to `propagate_none`, because neither of those functions will +check to see whether the divisor is zero. It would be nice if we could pass our +function `div : int -> int -> int option` to `propagate_none`, but the return +type of `div` makes that impossible. + +So, let's rewrite `propagate_none` to accept an operator of the same type as +`div`, which makes it easy to implement division: + +```ocaml +let propagate_none + (op : int -> int -> int option) (x : int option) (y : int option) += + match x, y with + | None, _ | _, None -> None + | Some a, Some b -> op a b + +let ( / ) = propagate_none div +``` + +Implementing the other three operations requires a little more work, because +their return type is `int` not `int option`. We need to wrap their return value +with `Some`: + +```ocaml +let wrap_output (op : int -> int -> int) (x : int) (y : int) : int option = + Some (op x y) + +let ( + ) = propagate_none (wrap_output Stdlib.( + )) +let ( - ) = propagate_none (wrap_output Stdlib.( - )) +let ( * ) = propagate_none (wrap_output Stdlib.( * )) +``` + +Finally, we could re-implement `div` to use `wrap_output`: + +```ocaml +let div (x : int) (y : int) : int option = + if y = 0 then None else wrap_output Stdlib.( / ) x y + +let ( / ) = propagate_none div +``` + +**Where's the Monad?** The work we just did was to take functions on integers +and transform them into functions on values that maybe are integers, but maybe +are not—that is, values that are either `Some i` where `i` is an integer, +or are `None`. We can think of these "upgraded" functions as computations that +*may have the effect of producing nothing*. They produce metaphorical boxes, and +those boxes may be full of something, or contain nothing. + +There were two fundamental ideas in the code we just wrote, which correspond to +the monad operations of `return` and `bind`. + +The first (which admittedly seems trivial) was upgrading a value from `int` to +`int option` by wrapping it with `Some`. That's what the body of `wrap_output` +does. We could expose that idea even more clearly by defining the following +function: + +```ocaml +let return (x : int) : int option = Some x +``` +This function has the *trivial effect* of putting a value into the metaphorical +box. + +The second idea was factoring out code to handle all the pattern matching +against `None`. We had to upgrade functions whose inputs were of type `int` to +instead accept inputs of type `int option`. Here's that idea expressed as its +own function: + +```ocaml +let bind (x : int option) (op : int -> int option) : int option = + match x with + | None -> None + | Some a -> op a + +let ( >>= ) = bind +``` + +The `bind` function can be understood as doing the core work of upgrading `op` +from a function that accepts an `int` as input to a function that accepts an +`int option` as input. In fact, we could even write a function that does that +upgrading for us using `bind`: + +```ocaml +let upgrade : (int -> int option) -> (int option -> int option) = + fun (op : int -> int option) (x : int option) -> (x >>= op) +``` + +All those type annotations are intended to help the reader understand +the function. Of course, it could be written much more simply as: + +```ocaml +let upgrade op x = x >>= op +``` + +Using just the `return` and `>>=` functions, we could re-implement the +arithmetic operations from above: + +```ocaml +let ( + ) (x : int option) (y : int option) : int option = + x >>= fun a -> + y >>= fun b -> + return (Stdlib.( + ) a b) + +let ( - ) (x : int option) (y : int option) : int option = + x >>= fun a -> + y >>= fun b -> + return (Stdlib.( - ) a b) + +let ( * ) (x : int option) (y : int option) : int option = + x >>= fun a -> + y >>= fun b -> + return (Stdlib.( * ) a b) + +let ( / ) (x : int option) (y : int option) : int option = + x >>= fun a -> + y >>= fun b -> + if b = 0 then None else return (Stdlib.( / ) a b) +``` + +Recall, from our discussion of the bind operator in Lwt, that the syntax above +should be parsed by your eye as + +* take `x` and extract from it the value `a`, +* then take `y` and extract from it `b`, +* then use `a` and `b` to construct a return value. + +Of course, there's still a fair amount of duplication going on there. We can +de-duplicate by using the same techniques as we did before: + +```ocaml +let upgrade_binary op x y = + x >>= fun a -> + y >>= fun b -> + op a b + +let return_binary op x y = return (op x y) + +let ( + ) = upgrade_binary (return_binary Stdlib.( + )) +let ( - ) = upgrade_binary (return_binary Stdlib.( - )) +let ( * ) = upgrade_binary (return_binary Stdlib.( * )) +let ( / ) = upgrade_binary div +``` + +**The Maybe Monad.** The monad we just discovered goes by several names: the +*maybe monad* (as in, "maybe there's a value, maybe not"), the *error monad* (as +in, "either there's a value or an error", and error is represented by +`None`—though some authors would want an error monad to be able to +represent multiple kinds of errors rather than just collapse them all to +`None`), and the *option monad* (which is obvious). + +Here's an implementation of the monad signature for the maybe monad: + +```ocaml +module Maybe : Monad = struct + type 'a t = 'a option + + let return x = Some x + + let (>>=) m f = + match m with + | None -> None + | Some x -> f x +end +``` + +These are the same implementations of `return` and `>>=` as we invented above, +but without the type annotations to force them to work only on integers. Indeed, +we never needed those annotations; they just helped make the code above a little +clearer. + +In practice the `return` function here is quite trivial and not really +necessary. But the `>>=` operator can be used to replace a lot of boilerplate +pattern matching, as we saw in the final implementation of the arithmetic +operators above. There's just a single pattern match, which is inside of `>>=`. +Compare that to the original implementations of `plus_opt`, etc., which had many +pattern matches. + +The result is we get code that (once you understand how to read the bind +operator) is easier to read and easier to maintain. + +Now that we're done playing with integer operators, we should restore +their original meaning for the rest of this file: + +```ocaml +let ( + ) = Stdlib.( + ) +let ( - ) = Stdlib.( - ) +let ( * ) = Stdlib.( * ) +let ( / ) = Stdlib.( / ) +``` + +## Example: The Writer Monad + +When trying to diagnose faults in a system, it's often the case that a *log* of +what functions have been called, as well as what their inputs and outputs were, +would be helpful. + +Imagine that we had two functions we wanted to debug, both of type `int -> int`. +For example: + +```ocaml +let inc x = x + 1 +let dec x = x - 1 +``` + +(Ok, those are really simple functions; we probably don't need any help +debugging them. But imagine they compute something far more complicated, like +encryptions or decryptions of integers.) + +One way to keep a log of function calls would be to augment each function to +return a pair: the integer value the function would normally return, as well as +a string containing a log message. For example: + +```ocaml +let inc_log x = (x + 1, Printf.sprintf "Called inc on %i; " x) +let dec_log x = (x - 1, Printf.sprintf "Called dec on %i; " x) +``` + +But that changes the return type of both functions, which makes it hard to +*compose* the functions. Previously, we could have written code such as + +```ocaml +let id x = dec (inc x) +``` + +or even better + +```ocaml +let id x = x |> inc |> dec +``` + +or even better still, using the *composition operator* `>>`, + +```ocaml +let ( >> ) f g x = x |> f |> g +let id = inc >> dec +``` + +and that would have worked just fine. But trying to do the same thing with the +loggable versions of the functions produces a type-checking error: + +```ocaml +let id = inc_log >> dec_log +``` + +That's because `inc_log x` would be a pair, but `dec_log` expects simply an +integer as input. + +We could code up an upgraded version of `dec_log` that is able to take a pair as +input: + +```ocaml +let dec_log_upgraded (x, s) = + (x - 1, Printf.sprintf "%s; Called dec on %i; " s x) + +let id x = x |> inc_log |> dec_log_upgraded +``` + +That works fine, but we also will need to code up a similar upgraded version of +`f_log` if we ever want to call them in reverse order, e.g., +`let id = dec_log >> inc_log`. So we have to write: + +```ocaml +let inc_log_upgraded (x, s) = + (x + 1, Printf.sprintf "%s; Called inc on %i; " s x) + +let id = dec_log >> inc_log_upgraded +``` + +And at this point we've duplicated far too much code. The implementations of +`inc` and `dec` are duplicated inside both `inc_log` and `dec_log`, as well as +inside both upgraded versions of the functions. And both the upgrades duplicate +the code for concatenating log messages together. The more functions we want to +make loggable, the worse this duplication is going to become! + +So, let's start over, and factor out a couple helper functions. The first helper +calls a function and produces a log message: + +```ocaml +let log (name : string) (f : int -> int) : int -> int * string = + fun x -> (f x, Printf.sprintf "Called %s on %i; " name x) +``` +The second helper produces a logging function of type +`'a * string -> 'b * string` out of a non-loggable function: + +```ocaml +let loggable (name : string) (f : int -> int) : int * string -> int * string = + fun (x, s1) -> + let (y, s2) = log name f x in + (y, s1 ^ s2) +``` + +Using those helpers, we can implement the logging versions of our functions +without any duplication of code involving pairs or pattern matching or string +concatenation: + +```ocaml +let inc' : int * string -> int * string = + loggable "inc" inc + +let dec' : int * string -> int * string = + loggable "dec" dec + +let id' : int * string -> int * string = + inc' >> dec' +``` + +Here's an example usage: + +```ocaml +id' (5, "") +``` + +Notice how it's inconvenient to call our loggable functions on integers, since +we have to pair the integer with a string. So let's write one more function to +help with that by pairing an integer with the *empty* log: + +```ocaml +let e x = (x, "") +``` + +And now we can write `id' (e 5)` instead of `id' (5, "")`. + +**Where's the Monad?** The work we just did was to take functions on integers +and transform them into functions on integers paired with log messages. We can +think of these "upgraded" functions as computations that log. They produce +metaphorical boxes, and those boxes contain function outputs as well as log +messages. + +There were two fundamental ideas in the code we just wrote, which correspond to +the monad operations of `return` and `bind`. + +The first was upgrading a value from `int` to `int * string` by pairing it with +the empty string. That's what `e` does. We could rename it `return`: + +```ocaml +let return (x : int) : int * string = (x, "") +``` +This function has the *trivial effect* of putting a value into the metaphorical +box along with the empty log message. + +The second idea was factoring out code to handle pattern matching against pairs +and string concatenation. Here's that idea expressed as its own function: + +```ocaml +let ( >>= ) (m : int * string) (f : int -> int * string) : int * string = + let (x, s1) = m in + let (y, s2) = f x in + (y, s1 ^ s2) +``` + +Using `>>=`, we can re-implement `loggable`, such that no pairs +or pattern matching are ever used in its body: + +```ocaml +let loggable (name : string) (f : int -> int) : int * string -> int * string = + fun m -> + m >>= fun x -> + log name f x +``` + +**The Writer Monad.** The monad we just discovered is usually called the *writer +monad* (as in, "additionally writing to a log or string"). Here's an +implementation of the monad signature for it: + +```ocaml +module Writer : Monad = struct + type 'a t = 'a * string + + let return x = (x, "") + + let ( >>= ) m f = + let (x, s1) = m in + let (y, s2) = f x in + (y, s1 ^ s2) +end +``` + +As we saw with the maybe monad, these are the same implementations of `return` +and `>>=` as we invented above, but without the type annotations to force them +to work only on integers. Indeed, we never needed those annotations; they just +helped make the code above a little clearer. + +It's debatable which version of `loggable` is easier to read. Certainly you need +to be comfortable with the monadic style of programming to appreciate the +version of it that uses `>>=`. But if you were developing a much larger code +base (i.e., with more functions involving paired strings than just `loggable`), +using the `>>=` operator is likely to be a good choice: it means the code you +write can concentrate on the `'a` in the type `'a Writer.t` instead of on the +strings. In other words, the writer monad will take care of the strings for you, +as long as you use `return` and `>>=`. + +## Example: The Lwt Monad + +By now, it's probably obvious that the Lwt promises library that we discussed is +also a monad. The type `'a Lwt.t` of promises has a `return` and `bind` +operation of the right types to be a monad: + +```ocaml +val return : 'a -> 'a t +val bind : 'a t -> ('a -> 'b t) -> 'b t +``` + +And `Lwt.Infix.( >>= )` is a synonym for `Lwt.bind`, so the library does provide +an infix bind operator. + +Now we start to see some of the great power of the monad design pattern. The +implementation of `'a t` and `return` that we saw before involves creating +references, but those references are completely hidden behind the monadic +interface. Moreover, we know that `bind` involves registering callbacks, but +that functionality (which as you might imagine involves maintaining collections +of callbacks) is entirely encapsulated. + +Metaphorically, as we discussed before, the box involved here is one that starts +out empty but eventually will be filled with a value of type `'a`. The +"something more" in these computations is that values are being produced +asynchronously, rather than immediately. + +## Monad Laws + +Every data structure has not just a signature, but some expected behavior. For +example, a stack has a push and a pop operation, and we expect those operations +to satisfy certain algebraic laws. We saw those for stacks when we studied +equational specification: + +* `peek (push x s) = x` +* `pop (push x empty) = empty` +* etc. + +A monad, though, is not just a single data structure. It's a design pattern for +data structures. So it's impossible to write specifications of `return` and +`>>=` for monads in general: the specifications would need to discuss the +particular monad, like the writer monad or the Lwt monad. + +On the other hand, it turns out that we can write down some laws that ought to +hold of any monad. The reason for that goes back to one of the intuitions we +gave about monads, namely, that they represent computations that have effects. +Consider Lwt, for example. We might register a callback C on promise X with +`bind`. That produces a new promise Y, on which we could register another +callback D. We expect a sequential ordering on those callbacks: C must run +before D, because Y cannot be resolved before X. + +That notion of *sequential order* is part of what the monad laws stipulate. We +will state those laws below. But first, let's pause to consider sequential order +in imperative languages. + +**Sequential Order.* In languages like Java and C, there is a semicolon that +imposes a sequential order on statements, e.g.: + +```java +System.out.println(x); +x++; +System.out.println(x); +``` + +First `x` is printed, then incremented, then printed again. The effects that +those statements have must occur in that sequential order. + +Let's imagine a hypothetical statement that causes no effect whatsoever. For +example, `assert true` causes nothing to happen in Java. (Some compilers will +completely ignore it and not even produce bytecode for it.) In most assembly +languages, there is likewise a "no op" instruction whose mnemonic is usually +`NOP` that also causes nothing to happen. (Technically, some clock cycles would +elapse. But there wouldn't be any changes to registers or memory.) In the theory +of programming languages, statements like this are usually called `skip`, as in, +"skip over me because I don't do anything interesting." + +Here are two laws that should hold of `skip` and semicolon: + +* `skip; s;` should behave the same as just `s;`. + +* `s; skip;` should behave the same as just `s;`. + +In other words, you can remove any occurrences of `skip`, because it has no +effects. Mathematically, we say that `skip` is a *left identity* (the first law) +and a *right identity* (the second law) of semicolon. + +Imperative languages also usually have a way of grouping statements together +into blocks. In Java and C, this is usually done with curly braces. Here is a +law that should hold of blocks and semicolon: + +* `{s1; s2;} s3;` should behave the same as `s1; {s2; s3;}`. + +In other words, the order is always `s1` then `s2` then `s3`, regardless of +whether you group the first two statements into a block or the second two into a +block. So you could even remove the braces and just write `s1; s2; s3;`, which +is what we normally do anyway. Mathematically, we say that semicolon is +*associative.* + +**Sequential Order with the Monad Laws.** The three laws above embody exactly +the same intuition as the monad laws, which we will now state. The monad laws +are just a bit more abstract hence harder to understand at first. + +Suppose that we have any monad, which as usual must have the following +signature: + +```ocaml +module type Monad = sig + type 'a t + val return : 'a -> 'a t + val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t +end +``` + +The three monad laws are as follows: + +* **Law 1:** `return x >>= f` behaves the same as `f x`. + +* **Law 2:** `m >>= return` behaves the same as `m`. + +* **Law 3:** `(m >>= f) >>= g` behaves the same as `m >>= (fun x -> f x >>= g)`. + +Here, "behaves the same as" means that the two expressions will both evaluate to +the same value, or they will both go into an infinite loop, or they will both +raise the same exception. + +These laws are mathematically saying the same things as the laws for `skip`, +semicolon, and braces that we saw above: `return` is a left and right identity +of `>>=`, and `>>=` is associative. Let's look at each law in more detail. + +*Law 1* says that having the trivial effect on a value, then binding a function +on it, is the same as just calling the function on the value. Consider the maybe +monad: `return x` would be `Some x`, and `>>= f` would extract `x` and apply `f` +to it. Or consider the Lwt monad: `return x` would be a promise that is already +resolved with `x`, and `>>= f` would register `f` as a callback to run on `x`. + +*Law 2* says that binding on the trivial effect is the same as just not having +the effect. Consider the maybe monad: `m >>= return` would depend upon whether +`m` is `Some x` or `None`. In the former case, binding would extract `x`, and +`return` would just re-wrap it with `Some`. In the latter case, binding would +just return `None`. Similarly, with Lwt, binding on `m` would register `return` +as a callback to be run on the contents of `m` after it is resolved, and +`return` would just take those contents and put them back into an already +resolved promise. + +*Law 3* says that bind sequences effects correctly, but it's harder to see it in +this law than it was in the version above with semicolon and braces. Law 3 would +be clearer if we could rewrite it as + +>`(m >>= f) >>= g` behaves the same as `m >>= (f >>= g)`. + +But the problem is that doesn't type check: `f >>= g` doesn't have the right +type to be on the right-hand side of `>>=`. So we have to insert an extra +anonymous function `fun x -> ...` to make the types correct. + +## Composition and Monad Laws + +There is another monad operator called `compose` that can be used to compose +monadic functions. For example, suppose you have a monad with type `'a t`, and +two functions: + +* `f : 'a -> 'b t` +* `g : 'b -> 'c t` + +The composition of those functions would be + +* `compose f g : 'a -> 'c t` + +That is, the composition would take a value of type `'a`, apply `f` to it, extract +the `'b` out of the result, apply `g` to it, and return that value. + +We can code up `compose` using `>>=`; we don't need to know anything more about +the inner workings of the monad: + +```ocaml +let compose f g x = + f x >>= fun y -> + g y + +let ( >=> ) = compose +``` + +As the last line suggests, `compose` can be expressed as infix operator written +`>=>`. + +Returning to our example of the maybe monad with a safe division operator, +imagine that we have increment and decrement functions: + +```ocaml +let inc (x : int) : int option = Some (x + 1) +let dec (x : int) : int option = Some (x - 1) +let ( >>= ) x op = + match x with + | None -> None + | Some a -> op a +``` + +The monadic compose operator would enable us to compose those two into +an identity function without having to write any additional code: + +```ocaml +let ( >=> ) f g x = + f x >>= fun y -> + g y + +let id : int -> int option = inc >=> dec +``` + +Using the compose operator, there is a much cleaner formulation of the monad +laws: + +* **Law 1:** `return >=> f` behaves the same as `f`. + +* **Law 2:** `f >=> return` behaves the same as `f`. + +* **Law 3:** `(f >=> g) >=> h` behaves the same as `f >=> (g >=> h)`. + +In that formulation, it becomes immediately clear that `return` is a left and +right identity, and that composition is associative. diff --git a/data/tutorials/language/5rt_00_memory_representation.md b/data/tutorials/language/5rt_00_memory_representation.md new file mode 100644 index 0000000000..7ab8ce15f9 --- /dev/null +++ b/data/tutorials/language/5rt_00_memory_representation.md @@ -0,0 +1,576 @@ +--- +id: memory-representation +title: Memory Representation of Values +description: > + Memory Representation of Values, excerpt from Real World OCaml +category: "Runtime & Compiler" +external_tutorial: + tag: "RWO" + banner: + image: "tutorials/rwo_banner.png" + url: https://dev.realworldocaml.org/ + alt: "Real World OCaml" + contribute_link: + url: https://github.com/realworldocaml/book/blob/master/book/runtime-memory-layout/README.md + description: "You are encouraged to contribute to the original sources of this page at the Real World OCaml GitHub repository." +--- + +This is an adaptation of the chapter [Memory Representation of Values](https://dev.realworldocaml.org/runtime-memory-layout.html) from the book [Real World OCaml](https://dev.realworldocaml.org/), reproduced here with permission. + +# Memory Representation of Values + +This document covers the precise mapping from OCaml types to runtime values +and walks you through them via the toplevel. The internal runtime representation of OCaml +values in memory is relevant + +* when you want to interface with +code written in other programming languages, e.g. C, Rust, and others, +* when using various external system tools that operate on OCaml binaries, +such as profiling tools and debuggers + +The OCaml toolchain is very predictable. The compiler minimizes the +amount of optimization magic that it performs, and relies instead on its +straightforward execution model for good performance. With some experience, +you can know rather precisely where a block of performance-critical OCaml +code is spending its time. + +At the end of this document, you will be able to translate between OCaml +values and their memory representation. + +**Prerequisites:** [Basic Data Types and Pattern Matching](/docs/basic-data-types) + +## OCaml Types Disappear at Runtime + +The OCaml compiler runs through several phases during the compilation +process. The first phase is syntax checking, during which source files are +parsed into abstract syntax trees (ASTs). The next stage is a *type checking* +pass over the AST. In a validly typed program, a function cannot be applied +with an unexpected type. For example, the `print_endline` function must +receive a single `string` argument, and an `int` will result in a type error. + +Since OCaml verifies these properties at compile time, it doesn't need to +keep track of as much information at runtime. Thus, later stages of the +compiler can discard and simplify the type declarations to a much more +minimal subset that's actually required to distinguish polymorphic values at +runtime. This is a major performance win versus something like a Java or .NET +method call, where the runtime must look up the concrete instance of the +object and dispatch the method call. Those languages amortize some of the +cost via "Just-in-Time" dynamic patching, but OCaml prefers runtime +simplicity instead. + +We'll explain this compilation pipeline in more detail in +[The Compiler Frontend: Parsing And Type Checking](/docs/compiler-frontend){data-type=xref} +and +[The Compiler Backend: Byte Code And Native Code](/docs/compiler-backend){data-type=xref}. +--> + + +We'll cover how these values are +managed by the runtime later on in +[Understanding The Garbage Collector](/docs/garbage-collector){data-type=xref}. + +## OCaml Blocks and Values + +A running OCaml program uses blocks of memory (i.e., contiguous sequences of +words in RAM) to represent values such as tuples, records, closures, or +arrays. An OCaml program implicitly allocates a block of memory when such a +value is created: + +```ocaml env=simple_record +# type t = { foo: int; bar: int };; +type t = { foo : int; bar : int; } +# let x = { foo = 13; bar = 14 };; +val x : t = {foo = 13; bar = 14} +``` + +The type declaration `t` doesn't take up any memory at runtime, but the +subsequent `let` binding allocates a new block of memory with two words of +available space. One word holds the `foo` field, and the other word holds the +`bar` field. The OCaml compiler translates such an expression into an +explicit allocation for the block from OCaml's runtime system. + +OCaml uses a uniform memory representation in which every OCaml variable is +stored as a *value*. An OCaml value is a single memory word that is either an +immediate integer or a pointer to some other memory. The OCaml runtime tracks +all values so that it can free them when they are no longer needed. It thus +needs to be able to distinguish between integer and pointer values, since it +scans pointers to find further values but doesn't follow integers that don't +point to anything meaningful beyond their immediate value. + +### Distinguishing Integers and Pointers at Runtime {#distinguishing-integer-and-pointers-at-runtime} + +Wrapping primitive types (such as integers) inside another data +structure that records extra metadata about the value is known as +*boxing*. Values are boxed in order to make it easier for the garbage +collector (GC) to do its job, but at the expense of an extra level of +indirection to access the data within the boxed value. + +OCaml values don't all have to be boxed at runtime. Instead, values +use a single tag bit per word to distinguish integers and pointers at +runtime. The value is an integer if the lowest bit of the block word +is nonzero, and a pointer if the lowest bit of the block word is +zero. Several OCaml types map onto this integer representation, +including `bool`, `int`, the empty list, and `unit`. Some types, like +variants, sometimes use this integer representation and sometimes +don't. In particular, for variants, constant constructors, i.e., +constructors with no arguments like `None`, are represented as +integers, but constructors like `Some` that carry associated values +are boxed. + +This representation means that integers are unboxed runtime values in OCaml +so that they can be stored directly without having to allocate a wrapper +block. They can be passed directly to other function calls in registers and +are generally the cheapest and fastest values to use in OCaml. + +A value is treated as a memory pointer if its lowest bit is zero. A pointer +value can still be stored unmodified despite this, since pointers are +guaranteed to be word-aligned (with the bottom bits always being zero). + +The only problem that remains with this memory representation is +distinguishing between pointers to OCaml values (which should be followed by +the GC) and pointers into the system heap to C values (which shouldn't be +followed). + +The mechanism for this is simple, since the runtime system keeps track of the +heap blocks it has allocated for OCaml values. If the pointer is inside a +heap chunk that is marked as being managed by the OCaml runtime, it is +assumed to point to an OCaml value. If it points outside the OCaml runtime +area, it is treated as an opaque C pointer to some other system resource. + +#### Some History About OCaml's Word-Aligned Pointers + +The alert reader may be wondering how OCaml can guarantee that all of its +pointers are word-aligned. In the old days, when RISC chips such as Sparc, +MIPS, and Alpha were commonplace, unaligned memory accesses were forbidden by +the instruction set architecture and would result in a CPU exception that +terminated the program. Thus, all pointers were historically rounded off to +the architecture word size (usually 32 or 64 bits). + +Modern CISC processors such as the Intel x86 do support unaligned memory +accesses, but the chip still runs faster if accesses are word-aligned. OCaml +therefore simply mandates that all pointers be word-aligned, which guarantees +that the bottom few bits of any valid pointer will be zero. Setting the +bottom bit to a nonzero value is a simple way to mark an integer, at the cost +of losing that single bit of precision. + +An even more alert reader will be wondering about the performance +implications are for integer arithmetic using this tagged representation. +Since the bottom bit is set, any operation on the integer has to shift the +bottom bit right to recover the "native" value. The native code OCaml +compiler generates efficient x86 assembly code in this case, taking advantage +of modern processor instructions to hide the extra shifts where possible. +Addition is a single `LEA` x86 instruction, subtraction can be two +instructions, and multiplication is only a few more. + + +## Blocks and Values + +An OCaml *block* is the basic unit of allocation on the heap. A block +consists of a one-word header (either 32 or 64 bits depending on the CPU +architecture) followed by variable-length data that is either opaque bytes or +an array of *fields*. The header has a multipurpose tag byte that defines +whether to interpret the subsequent data as opaque bytes or OCaml fields. + +The GC never inspects opaque bytes. If the tag indicates an array of OCaml +fields are present, their contents are all treated as more valid OCaml +values. The GC always inspects fields and follows them as part of the +collection process described earlier. + + ![Memory representation of a block](/media/tutorials/language/runtime-memory-layout/block.png "Memory representation of a block") + +The `size` field records the length of the block in memory words. This is 22 +bits on 32-bit platforms, which is the reason OCaml strings are limited to 16 +MB on that architecture. If you need bigger strings, either switch to a +64-bit host, or use the `Bigarray` module. + +The 2-bit `color` field is used by the GC to keep track of its state during +mark-and-sweep collection. +We'll come back to this field in +[Understanding The Garbage Collector](/docs/garbage-collector){data-type=xref}. +This tag isn't exposed to OCaml source code in any case. + +A block's tag byte is multipurpose, and indicates whether the data array +represents opaque bytes or fields. If a block's tag is greater than or equal +to `No_scan_tag` (251), then the block's data are all opaque bytes, and are +not scanned by the collector. The most common such block is the `string` +type, which we describe in more detail later in this chapter. + +The exact representation of values inside a block depends on their static +OCaml type. All OCaml types are distilled down into `values`, and summarized below. + +- `int` or `char` are stored directly as a value, shifted left by 1 + bit, with the least significant bit set to 1. + +- `unit`, `[]`, `false` are all stored as OCaml `int` 0. + +- `true` is stored as OCaml `int` 1. + +- `Foo | Bar` variants are stored as ascending OCaml `int`s, starting + from 0. + +- `Foo | Bar of int` variants with parameters are boxed, while + variants with no parameters are unboxed. + +- Polymorphic variants with parameters are boxed with an extra + header word to store the value, as compared to normal variants. + Polymorphic variants with no parameters are unboxed. + +- Floating-point numbers are stored as a block with a single field + containing the double-precision float. + +- Strings are word-aligned byte arrays with an explicit length. + +- `[1; 2; 3]` lists are stored as `1::2::3::[]` where `[]` is an int, + and `h::t` a block with tag 0 and two parameters. + +- Tuples, records, and arrays are stored as a C array of + values. Arrays can be variable size, but tuples and records are + fixed-size. + +- Records or arrays that are all float use a special tag for unboxed + arrays of floats, or records that only have `float` fields. + +### Integers, Characters, and Other Basic Types + +Many basic types are efficiently stored as unboxed integers at runtime. The +native `int` type is the most obvious, although it drops a single bit of +precision due to the tag bit. Other atomic types such as `unit` and the empty +list `[]` value are stored as constant integers. Boolean values have a value +of `1` and `0` for `true` and `false`, respectively. + +These basic types such as empty lists and `unit` are very efficient to use, +since integers are never allocated on the heap. They can be passed directly +in registers and not appear on the stack if you don't have too many +parameters to your functions. Modern architectures such as `x86_64` have a +lot of spare registers to further improve the efficiency of using unboxed +integers. + + +## Tuples, Records, and Arrays + +![](/media/tutorials/language/runtime-memory-layout/tuple_layout.png "Tuple Layout") + + +Tuples, records, and arrays are all represented identically at runtime as a +block with tag `0`. Tuples and records have constant sizes determined at +compile time, whereas arrays can be of variable length. While arrays are +restricted to containing a single type of element in the OCaml type system, +this is not required by the memory representation. + +You can check the difference between a block and a direct integer yourself +using the `Obj` module, which exposes the internal representation of values +to OCaml code: + +```ocaml env=reprs +# Obj.is_block (Obj.repr (1,2,3));; +- : bool = true +# Obj.is_block (Obj.repr 1);; +- : bool = false +``` + +The `Obj.repr` function retrieves the runtime representation of any OCaml +value. `Obj.is_block` checks the bottom bit to determine if the value is a +block header or an unboxed integer. + +### Floating-Point Numbers and Arrays + +Floating-point numbers in OCaml are always stored as full, double-precision +values. Individual floating-point values are stored as a block with a single +field that contains the number. This block has the `Double_tag` set, which +signals to the collector that the floating-point value is not to be scanned: + +```ocaml env=reprs +# Obj.tag (Obj.repr 1.0);; +- : int = 253 +# Obj.double_tag;; +- : int = 253 +``` + +Since each floating-point value is boxed in a separate memory block, +it can be inefficient to handle large arrays of floats in comparison +to unboxed integers. OCaml therefore special-cases records or arrays +that contain *only* `float` types. These are stored in a block that +contains the floats packed directly in the data section, with +`Double_array_tag` set to signal to the collector that the contents +are not OCaml values. + + +![](/media/tutorials/language/runtime-memory-layout/float_array_layout.png "Float array layout") + +First, let's check that float arrays do in fact have a different tag number +from normal floating-point values: + +```ocaml env=reprs +# Obj.double_tag;; +- : int = 253 +# Obj.double_array_tag;; +- : int = 254 +``` + +This tells us that float arrays have a tag value of 254. Now let's test some +sample values using the `Obj.tag` function to check that the allocated block +has the expected runtime tag, and also use `Obj.double_field` to retrieve a +float from within the block: + +```ocaml env=reprs +# Obj.tag (Obj.repr [| 1.0; 2.0; 3.0 |]);; +- : int = 254 +# Obj.tag (Obj.repr (1.0, 2.0, 3.0) );; +- : int = 0 +# Obj.double_field (Obj.repr [| 1.1; 2.2; 3.3 |]) 1;; +- : float = 2.2 +# Obj.double_field (Obj.repr 1.234) 0;; +- : float = 1.234 +``` + +The first thing we tested was that a float array has the correct unboxed +float array tag value (254). However, the next line tests a tuple of +floating-point values instead, which are *not* optimized in the same way and +have the normal tuple tag value (0). + +Only records and arrays can have the float array optimization, and for +records, every single field must be a float. + + +## Variants and Lists + +Basic variant types with no extra parameters for any of their branches are +simply stored as an OCaml integer, starting with `0` for the first option and +in ascending order: + +```ocaml env=reprs +# type t = Apple | Orange | Pear;; +type t = Apple | Orange | Pear +# ((Obj.magic (Obj.repr Apple)) : int);; +- : int = 0 +# ((Obj.magic (Obj.repr Pear)) : int);; +- : int = 2 +# Obj.is_block (Obj.repr Apple);; +- : bool = false +``` + +`Obj.magic` unsafely forces a type cast between any two OCaml types; in this +example, the `int` type hint retrieves the runtime integer value. The +`Obj.is_block` confirms that the value isn't a more complex block, but just +an OCaml `int`. + +Variants that have parameters are a little more complex. They are +stored as blocks, with the value *tags* ascending from 0 (counting from +leftmost variants with parameters). The parameters are stored as words in the +block: + +```ocaml env=reprs +# type t = Apple | Orange of int | Pear of string | Kiwi;; +type t = Apple | Orange of int | Pear of string | Kiwi +# Obj.is_block (Obj.repr (Orange 1234));; +- : bool = true +# Obj.tag (Obj.repr (Orange 1234));; +- : int = 0 +# Obj.tag (Obj.repr (Pear "xyz"));; +- : int = 1 +# (Obj.magic (Obj.field (Obj.repr (Orange 1234)) 0) : int);; +- : int = 1234 +# (Obj.magic (Obj.field (Obj.repr (Pear "xyz")) 0) : string);; +- : string = "xyz" +``` + +In the preceding example, the `Apple` and `Kiwi` values are still stored as +normal OCaml integers with values `0` and `1`, respectively. The `Orange` and +`Pear` values both have parameters and are stored as blocks whose tags ascend +from `0` (and so `Pear` has a tag of `1`, as the use of `Obj.tag` verifies). +Finally, the parameters are fields that contain OCaml values within the +block, and `Obj.field` can be used to retrieve them. + +Lists are stored with a representation that is exactly the same as if the +list was written as a variant type with `Nil` and `Cons`. The empty list +`[]` is an integer `0`, and subsequent blocks have tag `0` and two +parameters: a block with the current value, and a pointer to the rest of the +list. + +### Obj Module Considered Harmful + +`Obj` is an undocumented module that exposes the internals of the OCaml +compiler and runtime. It is very useful for examining and understanding how +your code will behave at runtime but should *never* be used for production +code unless you understand the implications. The module bypasses the OCaml +type system, making memory corruption and segmentation faults possible. + +Some theorem provers such as Coq do output code that uses `Obj` internally, +but the external module signatures never expose it. Unless you too have a +machine proof of correctness to accompany your use of `Obj`, stay away from +it except for debugging! + +Due to this encoding, there is a limit around 240 variants with parameters +that applies to each type definition, but the only limit on the number of +variants without parameters is the size of the native integer (either 31 or +63 bits). This limit arises because of the size of the tag byte, and that +some of the high-numbered tags are reserved. + +## Polymorphic Variants {#polymorphic-variants-1} + + +Polymorphic variants are more flexible than normal variants when writing code +but are slightly less efficient at runtime. This is because there isn't as +much static compile-time information available to optimize their memory +layout. + +A polymorphic variant without any parameters is stored as an unboxed integer +and so only takes up one word of memory, just like a normal variant. This +integer value is determined by applying a hash function to the *name* of the +variant. The hash function is exposed via the `compiler-libs` package that +reveals some of the internals of the OCaml compiler: + +```ocaml env=reprs +# #require "ocaml-compiler-libs.common";; +# Btype.hash_variant "Foo";; +- : int = 3505894 +# (Obj.magic (Obj.repr `Foo) : int);; +- : int = 3505894 +``` + +The hash function is designed to give the same results on 32-bit and 64-bit +architectures, so the memory representation is stable across different CPUs +and host types. + +Polymorphic variants use more memory space than normal variants when +parameters are included in the data type constructors. Normal variants use +the tag byte to encode the variant value and save the fields for the +contents, but this single byte is insufficient to encode the hashed value for +polymorphic variants. They must allocate a new block (with tag `0`) and store +the value in there instead. Polymorphic variants with constructors thus use +one word of memory more than normal variant constructors. + +Another inefficiency over normal variants is when a polymorphic variant +constructor has more than one parameter. Normal variants hold parameters as a +single flat block with multiple fields for each entry, but polymorphic +variants must adopt a more flexible uniform memory representation, since they +may be reused in a different context across compilation units. They allocate +a tuple block for the parameters that is pointed to from the argument field +of the variant. There are thus three additional words for such variants, +along with an extra memory indirection due to the tuple. + +The extra space usage is generally not significant in a typical application, +and polymorphic variants offer a great deal more flexibility than normal +variants. However, if you're writing code that demands high performance or +must run within tight memory bounds, the runtime layout is at least very +predictable. The OCaml compiler never switches memory representation due to +optimization passes. This lets you predict the precise runtime layout by +referring to these guidelines and your source code. + +## String Values + +OCaml `string`s (and their mutable cousins, `bytes`) are standard +OCaml blocks with the header size defining the size of the string in +machine words. The `String_tag` (252) is higher than the +`No_scan_tag`, indicating that the contents of the block are opaque to +the collector. The block contents are the contents of the string, with +padding bytes to align the block on a word boundary. + +![](/media/tutorials/language/runtime-memory-layout/string_block.png "String block layout") + +On a 32-bit machine, the padding is calculated based on the modulo of the +string length and word size to ensure the result is word-aligned. A 64-bit +machine extends the potential padding up to 7 bytes instead of 3. +Given a string length modulo 4: + +- `0` has padding `00 00 00 03` +- `1` has padding `00 00 02` +- `2` has padding `00 01` +- `3` has padding `00` + +This string representation is a clever way to ensure that the contents +are always zero-terminated by the padding word and to still compute +its length efficiently without scanning the whole string. The +following formula is used: + +``` +number_of_words_in_block * sizeof(word) - last_byte_of_block - 1 +``` + +The guaranteed `NULL` termination comes in handy when passing a string to C, +but is not relied upon to compute the length from OCaml code. OCaml strings +can thus contain `NULL` bytes at any point within the string. + +Care should be taken that any C library functions that receive these buffers +can also cope with arbitrary bytes within the buffer contents and are not +expecting C strings. For instance, the C `memcopy` or `memmove` standard +library functions can operate on arbitrary data, but `strlen` or `strcpy` +both require a `NULL`-terminated buffer, and neither has a mechanism for +encoding a `NULL` value within its contents. + +## Custom Heap Blocks + +OCaml supports *custom* heap blocks via a `Custom_tag` that lets the runtime +perform user-defined operations over OCaml values. A custom block lives in +the OCaml heap like an ordinary block and can be of whatever size the user +desires. The `Custom_tag` (255) is higher than `No_scan_tag` and so isn't +scanned by the GC. + +The first word of the data within the custom block is a C pointer to a +`struct` of custom operations. The custom block cannot have pointers to OCaml +blocks and is opaque to the GC: + +``` +struct custom_operations { + char *identifier; + void (*finalize)(value v); + int (*compare)(value v1, value v2); + intnat (*hash)(value v); + void (*serialize)(value v, + /*out*/ uintnat * wsize_32 /*size in bytes*/, + /*out*/ uintnat * wsize_64 /*size in bytes*/); + uintnat (*deserialize)(void * dst); + int (*compare_ext)(value v1, value v2); +}; +``` + +The custom operations specify how the runtime should perform polymorphic +comparison, hashing and binary marshaling. They also optionally contain a +*finalizer* that the runtime calls just before the block is +garbage-collected. This finalizer has nothing to do with ordinary OCaml +finalizers (as created by `Gc.finalize` and explained in +[Understanding The Garbage Collector](/docs/garbage-collector){data-type=xref}). +They are instead used to call C cleanup functions such as `free`. + +### Managing External Memory with Bigarray + +A common use of custom blocks is to manage external system memory directly +from within OCaml. The Bigarray interface was originally intended to exchange +data with Fortran code, and maps a block of system memory as a +multidimensional array that can be accessed from OCaml. Bigarray operations +work directly on the external memory without requiring it to be copied into +the OCaml heap (which is a potentially expensive operation for large arrays). + +Bigarray sees a lot of use beyond just scientific computing, and several Core +libraries use it for general-purpose I/O: + +`Iobuf` +: The `Iobuf` module maps I/O buffers as a one-dimensional array of bytes. It + provides a sliding window interface that lets consumer processes read from + the buffer while it's being filled by producers. This lets OCaml use I/O + buffers that have been externally allocated by the operating system without + any extra data copying. + +`Bigstring` +: The `Bigstring` module provides a `String`-like interface that uses + `Bigarray` internally. The `Bigbuffer` collects these into extensible + string buffers that can operate entirely on external system memory. + +The [Lacaml](http://mmottl.github.io/lacaml/) library isn't part of Core but +provides the recommended interfaces to the widely used BLAS and LAPACK +mathematical Fortran libraries. These allow developers to write +high-performance numerical code for applications that require linear algebra. +It supports large vectors and matrices, but with static typing safety of +OCaml to make it easier to write safe algorithms. + +## Conclusion + +We covered the precise mapping from OCaml types to their internal runtime +representation in memory, which should enable you to better understand the +output of various debugging and profiling tools, as well as how to +integrate your OCaml code with code from other languages. + +Other recommended tutorials: + +1. [Understanding the Garbage Collector](/docs/garbage-collector) +1. [Calling C Libraries](/docs/calling-c-libraries) \ No newline at end of file diff --git a/data/tutorials/language/5rt_01_garbage-collector.md b/data/tutorials/language/5rt_01_garbage-collector.md new file mode 100644 index 0000000000..26fe1976c2 --- /dev/null +++ b/data/tutorials/language/5rt_01_garbage-collector.md @@ -0,0 +1,677 @@ +--- +id: garbage-collector +title: Understanding the Garbage Collector +description: > + Understanding the Garbage Collector, excerpt from Real World OCaml +category: "Runtime & Compiler" +external_tutorial: + tag: "RWO" + banner: + image: "tutorials/rwo_banner.png" + url: https://dev.realworldocaml.org/ + alt: "Real World OCaml" + contribute_link: + url: https://github.com/realworldocaml/book/blob/master/book/garbage-collector/README.md + description: "You are encouraged to contribute to the original sources of this page at the Real World OCaml GitHub repository." +--- + +This is an adaptation of the chapter [Understanding the Garbage Collector](https://dev.realworldocaml.org/garbage-collector.html) from the book [Real World OCaml](https://dev.realworldocaml.org/), reproduced here with permission. + + +# Understanding the Garbage Collector + +*This chapter includes contributions from Stephen Weeks and Sadiq Jaffer.* + +We've described the runtime format of individual OCaml variables earlier, in +[Memory Representation Of Values](/docs/runtime-memory-layoutl#memory-representation-of-values){data-type=xref}. +When you execute your program, OCaml manages the lifecycle of these variables +by regularly scanning allocated values and freeing them when they're no +longer needed. This in turn means that your applications don't need to +manually implement memory management, and it greatly reduces the likelihood +of memory leaks creeping into your code. + +The OCaml runtime is a C library that provides routines that can be called +from running OCaml programs. The runtime manages a *heap*, which is a +collection of memory regions that it obtains from the operating system. The +runtime uses this memory to hold *heap blocks* that it fills up with OCaml +values in response to allocation requests by the OCaml program. + +## Mark and Sweep Garbage Collection + +When there isn't enough memory available to satisfy an allocation request +from the pool of allocated heap blocks, the runtime system invokes the +garbage collector (GC). An OCaml program can't explicitly free a value when +it is done with it. Instead, the GC regularly determines which values are +*live* and which values are *dead*, i.e., no longer in use. Dead values are +collected and their memory made available for reuse by the application. + +The GC doesn't keep constant track of values as they are allocated and used. +Instead, it regularly scans them by starting from a set of *root* values that +the application always has access to (such as the stack). The GC maintains a +directed graph in which heap blocks are nodes, and there is an edge from heap +block `b1` to heap block `b2` if some field of `b1` is a pointer to `b2`. + +All blocks reachable from the roots by following edges in the graph must be +retained, and unreachable blocks can be reused by the application. The +algorithm used by OCaml to perform this heap traversal is commonly known as +*mark and sweep* garbage collection, and we'll explain it further now. + +## Generational Garbage Collection + +The usual OCaml programming style involves allocating many small +values that are used for a short period of time and then never +accessed again. OCaml takes advantage of this fact to improve +performance by using a *generational* GC. + +A generational GC maintains separate memory regions to hold blocks based on +how long the blocks have been live. OCaml's heap is split into two such +regions: + +- A small, fixed-size *minor heap* where most blocks are initially allocated + +- A larger, variable-size *major heap* for blocks that have been live longer + +A typical functional programming style means that young blocks tend to +die young and old blocks tend to stay around for longer than young +ones. This is often referred to as the *generational +hypothesis*. + +OCaml uses different memory layouts and garbage-collection algorithms for the +major and minor heaps to account for this generational difference. We'll +explain how they differ in more detail next. + +
+ +#### The Gc Module and OCAMLRUNPARAM + +OCaml provides several mechanisms to query and alter the behavior of +the runtime system. The `Gc` module provides this functionality from +within OCaml code, and we'll frequently refer to it in the rest of the +chapter. As with several other standard library modules, Core alters +the `Gc` interface from the standard OCaml library. We'll assume that +you've opened `Core` in our explanations. + +You can also control the behavior of OCaml programs by setting the +`OCAMLRUNPARAM` environment variable before launching your application. This +lets you set GC parameters without recompiling, for example to benchmark the +effects of different settings. The format of `OCAMLRUNPARAM` is documented in +the +[OCaml manual](https://ocaml.org/manual/runtime.html). +
+ +## The Fast Minor Heap + +The minor heap is where most of your short-lived values are held. It consists +of one contiguous chunk of virtual memory containing a sequence of OCaml +blocks. If there is space, allocating a new block is a fast, constant-time +operation that requires just a couple of CPU instructions. + +To garbage-collect the minor heap, OCaml uses *copying collection* to +move all live blocks in the minor heap to the major heap. This takes +work proportional to the number of live blocks in the minor heap, +which is typically small according to the generational hypothesis. In +general, the garbage collector *stops the world* (that is, halts the +application) while it runs, which is why it's so important that it +complete quickly to let the application resume running with minimal +interruption. + +### Allocating on the Minor Heap + +The minor heap is a contiguous chunk of virtual memory that is usually a few +megabytes in size so that it can be scanned quickly. + +![](/media/tutorials/language/garbage-collector/minor_heap.png "Minor GC heap") + +The runtime stores the boundaries of the minor heap in two pointers that +delimit the start and end of the heap region (`caml_young_start` and +`caml_young_end`, but we will drop the `caml_young` prefix for brevity). The +`base` is the memory address returned by the system `malloc`, and `start` is +aligned against the next nearest word boundary from `base` to make it easier +to store OCaml values. + +In a fresh minor heap, the `limit` equals the `start`, and the current +`ptr` will equal the `end`. `ptr` decreases as blocks are allocated until it +reaches `limit`, at which point a minor garbage collection is triggered. + +Allocating a block in the minor heap just requires `ptr` to be decremented by +the size of the block (including the header) and a check that it's not less +than `limit`. If there isn't enough space left for the block without +decrementing past `limit`, a minor garbage collection is triggered. This is a +very fast check (with no branching) on most CPU architectures. + +#### Understanding Allocation + +You may wonder why `limit` is required at all, since it always seems +to equal `start`. It's because the easiest way for the runtime to +schedule a minor heap collection is by setting `limit` to equal +`end`. The next allocation will never have enough space after this is +done and will always trigger a garbage collection. There are various +internal reasons for such early collections, such as handling pending +UNIX signals, but they don't ordinarily matter for application code. + +It is possible to write loops or recurse in a way that may take a long time +to do an allocation - if at all. To ensure that UNIX signals and other +internal bookkeeping that require interrupting the running OCaml program +still happen the compiler introduces *poll points* into generated native code. + +These poll points check `ptr` against `limit` and developers should expect +them to be placed at the start of every function and the back edge of loops. +The compiler includes a dataflow pass that removes all but the minimum set +of points necessary to ensure these checks happen in a bounded amount of time. + +
+ +#### Setting the Size of the Minor Heap + +The default minor heap size in OCaml is normally 2 MB on 64-bit platforms, +but this is increased to 8 MB if you use Core (which generally prefers +default settings that improve performance, but at the cost of a bigger memory +profile). This setting can be overridden via the `s=` argument to +`OCAMLRUNPARAM`. You can change it after the program has started by calling +the `Gc.set` function: + + +```ocaml env=tune +# open Core;; +# let c = Gc.get ();; +val c : Gc.Control.t = + {Core.Gc.Control.minor_heap_size = 262144; major_heap_increment = 15; + space_overhead = 120; verbose = 0; max_overhead = 500; + stack_limit = 1048576; allocation_policy = 2; window_size = 1; + custom_major_ratio = 44; custom_minor_ratio = 100; + custom_minor_max_size = 8192} +# Gc.tune ~minor_heap_size:(262144 * 2) ();; +- : unit = () +``` + +Changing the GC size dynamically will trigger an immediate minor heap +collection. Note that Core increases the default minor heap size from the +standard OCaml installation quite significantly, and you'll want to reduce +this if running in very memory-constrained environments. +
+ +## The Long-Lived Major Heap + +The major heap is where the bulk of the longer-lived and larger values in +your program are stored. It consists of any number of noncontiguous chunks of +virtual memory, each containing live blocks interspersed with regions of free +memory. The runtime system maintains a free-list data structure that indexes +all the free memory that it has allocated, and uses it to satisfy allocation +requests for OCaml blocks. + +The major heap is typically much larger than the minor heap and can scale to +gigabytes in size. It is cleaned via a mark-and-sweep garbage collection +algorithm that operates in several phases: + +- The *mark* phase scans the block graph and marks all live blocks by setting + a bit in the tag of the block header (known as the *color* tag). + +- The *sweep* phase sequentially scans the heap chunks and identifies dead + blocks that weren't marked earlier. + +- The *compact* phase relocates live blocks into a freshly allocated heap to + eliminate gaps in the free list. This prevents the fragmentation of heap + blocks in long-running programs and normally occurs much less frequently + than the mark and sweep phases. + +A major garbage collection must also stop the world to ensure that blocks can +be moved around without this being observed by the live application. The +mark-and-sweep phases run incrementally over slices of the heap to avoid +pausing the application for long periods +of time, and also precede each slice with a fast minor collection. Only the +compaction phase touches all the memory in one go, and is a relatively rare +operation. + +### Allocating on the Major Heap + +The major heap consists of a singly linked list of contiguous memory chunks +sorted in increasing order of virtual address. Each chunk is a single memory +region allocated via *malloc(3)* and consists of a header and data area which +contains OCaml heap chunks. A heap chunk header contains: + +- The *malloc*ed virtual address of the memory region containing the chunk + +- The size in bytes of the data area + +- An allocation size in bytes used during heap compaction to merge small + blocks to defragment the heap + +- A link to the next heap chunk in the list + +- A pointer to the start and end of the range of blocks that may contain + unexamined fields and need to be scanned later. Only used after mark stack + overflow. + +Each chunk's data area starts on a page boundary, and its size is a multiple +of the page size (4 KB). It contains a contiguous sequence of heap blocks +that can be as small as one or two 4 KB pages, but are usually allocated in 1 +MB chunks (or 512 KB on 32-bit architectures). + +#### Controlling the Major Heap Increment + +The `Gc` module uses the `major_heap_increment` value to control the +major heap growth. This defines the number of words to add to the +major heap per expansion and is the only memory allocation operation +that the operating system observes from the OCaml runtime after +initial startup (since the minor is fixed in size). + +Allocating an OCaml value on the major heap first checks the free list +of blocks for a suitable region to place it. If there isn't enough +room on the free list, the runtime expands the major heap by +allocating a fresh heap chunk that will be large enough. That chunk is +then added to the free list, and the free list is checked again (and +this time will definitely succeed). + +Older versions of OCaml required setting a fixed number of bytes for +the major heap increment. That was a value that was tricky to get +right: too small of a value could lead to lots of smaller heap chunks +spread across different regions of virtual memory that require more +housekeeping in the OCaml runtime to keep track of them; too large of +a value can waste memory for programs with small heaps. + +You can use `Gc.tune` to set that value, but the values are a little +counter-intuitive, for backwards-compatibility reasons. Values under +1000 are interpreted as percentages, and the default is 15%. Values +1000 and over are treated as a raw number of bytes. But most of the +time, you won't set the value at all. + +### Memory Allocation Strategies + +The major heap does its best to manage memory allocation as efficiently as +possible and relies on heap compaction to ensure that memory stays contiguous +and unfragmented. The default allocation policy normally works fine for most +applications, but it's worth bearing in mind that there are other options, +too. + +The free list of blocks is always checked first when allocating a new block +in the major heap. The default free list search is called +*best-fit allocation*, with alternatives *next-fit* and *first-fit* algorithms +also available. + +#### Best-Fit Allocation + +The best-fit allocator is a combination of two strategies. The first, +size-segregated free lists, is based on the observation that nearly all +major heap allocations in OCaml are small (consider list elements and tuples +which are only a couple of machine words). Best fit keeps separate free lists +for sizes up to and including 16 words which gives a fast path for most +allocations. Allocations for these sizes can be serviced from their segregated +free lists or, if they are empty, from the next size with a space. + +The second strategy, for larger allocations, is the use of a specialized data +structure known as a _splay tree_ for the free list. This is a type of search +tree that adapts to recent access patterns. For our use this means that the +most commonly requested allocation sizes are the quickest to access. + +Small allocations, when there are no larger sizes available in the segregated +free lists, and large allocations greater than sixteen words are serviced from +the main free list. The free list is queried for the smallest block that is +at least as large as the allocation requested. + +Best-fit allocation is the default allocation mechanism. It represents a good +trade-off between the allocation cost (in terms of CPU work) and heap +fragmentation. + +#### Next-Fit Allocation + +Next-fit allocation keeps a pointer to the block in the free list that was +most recently used to satisfy a request. When a new request comes in, the +allocator searches from the next block to the end of the free list, and then +from the beginning of the free list up to that block. + +Next-fit allocation is quite a cheap +allocation mechanism, since the same heap chunk can be reused across +allocation requests until it runs out. This in turn means that there is good +memory locality to use CPU caches better. The big downside of next-fit is +that since most allocations are small, large blocks at the start of the +free list become heavily fragmented. + +#### First-Fit Allocation + +If your program allocates values of many varied sizes, you may sometimes find +that your free list becomes fragmented. In this situation, the GC is forced +to perform an expensive compaction despite there being free chunks, since +none of the chunks alone are big enough to satisfy the request. + +First-fit allocation focuses on reducing memory fragmentation (and hence the +number of compactions), but at the expense of slower memory allocation. Every +allocation scans the free list from the beginning for a suitable free chunk, +instead of reusing the most recent heap chunk as the next-fit allocator does. + +For some workloads that need more real-time behavior under load, the +reduction in the frequency of heap compaction will outweigh the extra +allocation cost. + +#### Controlling the Heap Allocation Policy + +You can set the heap allocation policy by calling `Gc.tune`: + +```ocaml env=main +# Gc.tune ~allocation_policy:First_fit ();; +- : unit = () +``` + +The same behavior can be controlled via an environment variable by +setting `OCAMLRUNPARAM` to `a=0` for next-fit, `a=1` for first-fit, or +`a=2` for best-fit. + +### Marking and Scanning the Heap + +The marking process can take a long time to run over the complete major heap +and has to pause the main application while it's active. It therefore runs +incrementally by marking the heap in *slices*. Each value in the heap has a +2-bit *color* field in its header that is used to store information about +whether the value has been marked so that the GC can resume easily between +slices. + +- Blue: On the free list and not currently in use +- White (during marking): Not reached yet, but possibly reachable +- White (during sweeping): Unreachable and can be freed +- Black: Reachable, and its fields have been scanned + +The color tags in the value headers store most of the state of the marking +process, allowing it to be paused and resumed later. On allocation, all heap +values are initially given the color white indicating they are possibly +reachable but haven't been scanned yet. The GC and application alternate +between marking a slice of the major heap and actually getting on with +executing the program logic. The OCaml runtime calculates a sensible value +for the size of each major heap slice based on the rate of allocation and +available memory. + +The marking process starts with a set of *root* values that are always live +(such as the application stack and globals). These root values have their +color set to black and are pushed on to a specialized data structure known as +the _mark_ stack. Marking proceeds by popping a value from the stack and +examining its fields. Any fields containing white-colored blocks are changed +to black and pushed onto the mark stack. + +This process is repeated until the mark stack is empty and there are no further +values to mark. There's one important edge case in this process, though. The +mark stack can only grow to a certain size, after which the GC can no longer +recurse into intermediate values since it has nowhere to store them while it +follows their fields. This is known as mark stack *overflow* and a process +called _pruning_ begins. Pruning empties the mark stack entirely, summarizing +the addresses of each block as start and end ranges in each heap chunk header. + +Later in the marking process when the mark stack is empty it is replenished by +*redarkening* the heap. This starts at the first heap chunk (by address) that +has blocks needing redarkening (i.e were removed from the mark stack during + a prune) and entries from the redarkening range are added to the mark stack + until it is a quarter full. The emptying and replenishing cycle continues +until there are no heap chunks with ranges left to redarken. + +#### Controlling Major Heap Collections + +You can trigger a single slice of the major GC via the `major_slice` call. +This performs a minor collection first, and then a single slice. The size of +the slice is normally automatically computed by the GC to an appropriate +value and returns this value so that you can modify it in future calls if +necessary: + +```ocaml env=tune +# Gc.major_slice 0;; +- : int = 0 +# Gc.full_major ();; +- : unit = () +``` + +The `space_overhead` setting controls how aggressive the GC is about setting +the slice size to a large size. This represents the proportion of memory used +for live data that will be "wasted" because the GC doesn't immediately +collect unreachable blocks. Core defaults this to `100` to reflect a typical +system that isn't overly memory-constrained. Set this even higher if you have +lots of memory, or lower to cause the GC to work harder and collect blocks +faster at the expense of using more CPU time. + +### Heap Compaction + +After a certain number of major GC cycles have completed, the heap may begin +to be fragmented due to values being deallocated out of order from how they +were allocated. This makes it harder for the GC to find a contiguous block of +memory for fresh allocations, which in turn would require the heap to be +grown unnecessarily. + +The heap compaction cycle avoids this by relocating all the values in the +major heap into a fresh heap that places them all contiguously in memory +again. A naive implementation of the algorithm would require extra memory to +store the new heap, but OCaml performs the compaction in place within the +existing heap. + +
+ +#### Controlling Frequency of Compactions + +The `max_overhead` setting in the `Gc` module defines the connection between +free memory and allocated memory after which compaction is activated. + +A value of `0` triggers a compaction after every major garbage collection +cycle, whereas the maximum value of `1000000` disables heap compaction +completely. The default settings should be fine unless you have unusual +allocation patterns that are causing a higher-than-usual rate of compactions: +
+ +```ocaml env=tune +# Gc.tune ~max_overhead:0 ();; +- : unit = () +``` + +### Intergenerational Pointers {#inter-generational-pointers} + +One complexity of generational collection arises from the fact that minor +heap sweeps are much more frequent than major heap collections. In order to +know which blocks in the minor heap are live, the collector must track which +minor-heap blocks are directly pointed to by major-heap blocks. Without this +information, each minor collection would also require scanning the much +larger major heap. + +OCaml maintains a set of such *intergenerational pointers* to avoid this +dependency between a major and minor heap collection. The compiler introduces +a write barrier to update this so-called *remembered set* whenever a +major-heap block is modified to point at a minor-heap block. + +#### The Mutable Write Barrier + +The write barrier can have profound implications for the structure of your +code. It's one of the reasons using immutable data structures and allocating +a fresh copy with changes can sometimes be faster than mutating a record in +place. + +The OCaml compiler keeps track of any mutable types and adds a call to the +runtime `caml_modify` function before making the change. This checks the +location of the target write and the value it's being changed to, and ensures +that the remembered set is consistent. Although the write barrier is +reasonably efficient, it can sometimes be slower than simply allocating a +fresh value on the fast minor heap and doing some extra minor collections. + +Let's see this for ourselves with a simple test program. You'll need to +install the Core benchmarking suite via `opam install core_bench` before you +compile this code: + +```ocaml file=examples/barrier_bench/barrier_bench.ml +open Core +open Core_bench + +module Mutable = struct + type t = + { mutable iters : int + ; mutable count : float + } + + let rec test t = + if t.iters = 0 + then () + else ( + t.iters <- t.iters - 1; + t.count <- t.count +. 1.0; + test t) +end + +module Immutable = struct + type t = + { iters : int + ; count : float + } + + let rec test t = + if t.iters = 0 + then () + else test { iters = t.iters - 1; count = t.count +. 1.0 } +end + +let () = + let iters = 1_000_000 in + let count = 0.0 in + let tests = + [ Bench.Test.create ~name:"mutable" (fun () -> + Mutable.test { iters; count }) + ; Bench.Test.create ~name:"immutable" (fun () -> + Immutable.test { iters; count }) + ] + in + Bench.make_command tests |> Command_unix.run +``` + +This program defines a type `t1` that is mutable and `t2` that is immutable. +The benchmark loop iterates over both fields and increments a counter. +Compile and execute this with some extra options to show the amount of +garbage collection occurring: + +```sh dir=examples/barrier_bench,non-deterministic=command +$ dune exec -- ./barrier_bench.exe -ascii alloc -quota 1 +Estimated testing time 2s (2 benchmarks x 1s). Change using '-quota'. + + Name Time/Run mWd/Run mjWd/Run Prom/Run Percentage + ----------- ---------- --------- ---------- ---------- ------------ + mutable 5.06ms 2.00Mw 20.61w 20.61w 100.00% + immutable 3.95ms 5.00Mw 95.64w 95.64w 77.98% + +``` + +There is a space/time trade-off here. The mutable version takes longer +to complete than the immutable one but allocates many fewer minor-heap +words than the immutable version. Minor allocation in OCaml is very +fast, and so it is often better to use immutable data structures in +preference to the more conventional mutable versions. On the other +hand, if you only rarely mutate a value, it can be faster to take the +write-barrier hit and not allocate at all. + +The only way to know for sure is to benchmark your program under real-world +scenarios using `Core_bench` and experiment with the trade-offs. The +command-line benchmark binaries have a number of useful options that affect +garbage collection behavior and the output format: + +```sh dir=examples/barrier_bench +$ dune exec -- ./barrier_bench.exe -help +Benchmark for mutable, immutable + + barrier_bench.exe [COLUMN ...] + +Columns that can be specified are: + time - Number of nano secs taken. + cycles - Number of CPU cycles (RDTSC) taken. + alloc - Allocation of major, minor and promoted words. + gc - Show major and minor collections per 1000 runs. + percentage - Relative execution time as a percentage. + speedup - Relative execution cost as a speedup. + samples - Number of samples collected for profiling. +... +``` + +## Attaching Finalizer Functions to Values + +OCaml's automatic memory management guarantees that a value will eventually +be freed when it's no longer in use, either via the GC sweeping it or the +program terminating. It's sometimes useful to run extra code just before a +value is freed by the GC, for example, to check that a file descriptor has +been closed, or that a log message is recorded. + +
+ +#### What Values Can Be Finalized? + +Various values cannot have finalizers attached since they aren't +heap-allocated. Some examples of values that are not heap-allocated are +integers, constant constructors, Booleans, the empty array, the empty list, +and the unit value. The exact list of what is heap-allocated or not is +implementation-dependent, which is why Core provides the `Heap_block` module +to explicitly check before attaching the finalizer. + +Some constant values can be heap-allocated but never deallocated during the +lifetime of the program, for example, a list of integer constants. +`Heap_block` explicitly checks to see if the value is in the major or minor +heap, and rejects most constant values. Compiler optimizations may also +duplicate some immutable values such as floating-point values in arrays. +These may be finalized while another duplicate copy is being used by the +program. +
+ +Core provides a `Heap_block` module that dynamically checks if a given +value is suitable for finalizing. Core keeps the functions for +registering finalizers in the `Core.Gc.Expert` module. Finalizers +can run at any time in any thread, so they can be pretty hard to reason +about in multi-threaded contexts. +Async, which we discussed in [Concurrent Programming with +Async](https://dev.realworldocaml.org/concurrent-programming.html#concurrent-programming-with-async){data-type=xref}, +shadows the `Gc` module with its own module that contains a function, +`Gc.add_finalizer`, which is concurrency-safe. In particular, +finalizers are scheduled in their own Async job, and care is taken by +Async to capture exceptions and raise them to the appropriate monitor +for error-handling. + +Let's explore this with a small example that finalizes values of +different types, all of which are heap-allocated. + +```ocaml file=examples/finalizer/finalizer.ml +open Core +open Async + +let attach_finalizer n v = + match Heap_block.create v with + | None -> printf "%20s: FAIL\n%!" n + | Some hb -> + let final _ = printf "%20s: OK\n%!" n in + Gc.add_finalizer hb final + +type t = { foo : bool } + +let main () = + attach_finalizer "allocated variant" (`Foo (Random.bool ())); + attach_finalizer "allocated string" (Bytes.create 4); + attach_finalizer "allocated record" { foo = Random.bool () }; + Gc.compact (); + return () + +let () = + Command.async + ~summary:"Testing finalizers" + (Command.Param.return main) + |> Command_unix.run +``` + +Building and running this should show the following output: + +```sh dir=examples/finalizer +$ dune exec -- ./finalizer.exe + allocated record: OK + allocated string: OK + allocated variant: OK +``` + +The GC calls the finalization functions in the order of the deallocation. If +several values become unreachable during the same GC cycle, the finalization +functions will be called in the reverse order of the corresponding calls to +`add_finalizer`. Each call to `add_finalizer` adds to the set of functions, +which are run when the value becomes unreachable. You can have many +finalizers all pointing to the same heap block if you wish. + +After a garbage collection determines that a heap block `b` is unreachable, +it removes from the set of finalizers all the functions associated with +`b`, and serially applies each of those functions to `b`. Thus, every +finalizer function attached to `b` will run at most once. However, program +termination will not cause all the finalizers to be run before the runtime +exits. + +The finalizer can use all features of OCaml, including assignments that make +the value reachable again and thus prevent it from being garbage-collected. +It can also loop forever, which will cause other finalizers to be interleaved +with it. diff --git a/data/tutorials/language/5rt_02_compiler_frontend.md b/data/tutorials/language/5rt_02_compiler_frontend.md new file mode 100644 index 0000000000..db24728c18 --- /dev/null +++ b/data/tutorials/language/5rt_02_compiler_frontend.md @@ -0,0 +1,1262 @@ +--- +id: compiler-frontend +title: Compiler Frontend +description: > + The Compiler Frontend: Parsing and Type Checking, excerpt from Real World OCaml +category: "Runtime & Compiler" +external_tutorial: + tag: "RWO" + banner: + image: "tutorials/rwo_banner.png" + url: https://dev.realworldocaml.org/ + alt: "Real World OCaml" + contribute_link: + url: https://github.com/realworldocaml/book/blob/master/book/compiler-frontend/README.md + description: "You are encouraged to contribute to the original sources of this page at the Real World OCaml GitHub repository." +--- + +This is an adaptation of the chapter [The Compiler Frontend: Parsing and Type Checking](https://dev.realworldocaml.org/compiler-frontend.html) from the book [Real World OCaml](https://dev.realworldocaml.org/), reproduced here with permission. + +# The Compiler Frontend: Parsing and Type Checking + +Compiling source code into executable programs involves a fairly +complex set of libraries, linkers, and assemblers. While Dune mostly +hides this complexity from you, it's still useful to understand how +these pieces work so that you can debug performance problems, or come +up with solutions for unusual situations that aren't well handled by +existing tools. + +OCaml has a strong emphasis on static type safety and rejects source +code that doesn't meet its requirements as early as possible. The +compiler does this by running the source code through a series of +checks and transformations. Each stage performs its job (e.g., type +checking, optimization, or code generation) and discards some +information from the previous stage. The final native code output is +low-level assembly code that doesn't know anything about the OCaml +modules or objects that the compiler started with. + +In this chapter, we'll cover the following topics: + +- An overview of the compiler codebase and the compilation pipeline, + and what each stage represents +- Parsing, which goes from raw text to the abstract syntax tree +- PPX's, which further transform the AST +- Type-checking, including module resolution + +The details of the remainder of the compilation process, which gets +all the way to executable code comes next, in [The Compiler Backend: +Byte Code And Native +Code](/docs/compiler-backend#the-compiler-backend-byte-code-and-native-code){data-type=xref}. + +## An Overview of the Toolchain + +The OCaml tools accept textual source code as input, using the filename +extensions `.ml` and `.mli` for modules and signatures, respectively. We +assume you've built a few OCaml programs already by this +point. + +Each source file represents a *compilation unit* that is built separately. +The compiler generates intermediate files with different filename extensions +to use as it advances through the compilation stages. The linker takes a +collection of compiled units and produces a standalone executable or library +archive that can be reused by other applications. + +The overall compilation pipeline looks like this: + +![](/media/tutorials/language/compiler-frontend/pipeline.png "Compilation pipeline") + +Notice that the pipeline branches toward the end. OCaml has multiple compiler +backends that reuse the early stages of compilation but produce very +different final outputs. The *bytecode* can be run by a portable interpreter +and can even be transformed into JavaScript (via +[js_of_ocaml](http://ocsigen.org/js_of_ocaml)) or C source code (via +[OCamlCC](https://github.com/ocaml-bytes/ocamlcc)). The *native code* +compiler generates specialized executable binaries suitable for +high-performance applications. + +### Obtaining the Compiler Source Code + +Although it's not necessary to understand the examples, you may find it +useful to have a copy of the OCaml source tree checked out while you read +through this chapter. The source code is available at the Git repository +with all the history and development branches included, browsable online +at [GitHub](https://github.com/ocaml/ocaml). + +The source tree is split up into subdirectories. The core compiler consists +of: + +`asmcomp/` +: Native-code compiler that converts OCaml into high performance native code executables. + +`bytecomp/` +: Bytecode compiler that converts OCaml into an interpreted executable format. + +`driver/` +: Command-line interfaces for the compiler tools. + +`file_formats/` +: Serializer and deserializers for on-disk files used by the compiler driver. + +`lambda/` +: The lambda conversion pass. + +`middle_end/` +: The clambda, closure and flambda passes. + +`parsing/` +: The OCaml lexer, parser, and libraries for manipulating them. + +`runtime/` +: The runtime library with the garbage collector. + +`typing/` +: The static type checking implementation and type definitions. + +A number of tools and scripts are also built alongside the core compiler: + +`debugger/` +: The interactive bytecode debugger. + +`toplevel/` +: Interactive top-level console. + +`stdlib/` +: The compiler standard library, including the `Pervasives` module. + +`otherlibs/` +: Optional libraries such as the Unix and graphics modules. + +`tools/` +: Command-line utilities such as `ocamldep` that are installed with the + compiler. + +`testsuite/` +: Regression tests for the core compiler. + +We'll go through each of the compilation stages now and explain how they will +be useful to you during day-to-day OCaml development. + +## Parsing Source Code + +When a source file is passed to the OCaml compiler, its first task is to +parse the text into a more structured abstract syntax tree (AST). The parsing +logic is implemented in OCaml itself using the techniques described in +[Parsing With Ocamllex And Menhir](https://dev.realworldocaml.org/parsing-with-ocamllex-and-menhir.html#parsing-with-ocamllex-and-menhir){data-type=xref}. +The lexer and parser rules can be found in the `parsing` directory in the +source distribution. + +### Syntax Errors + +The OCaml parser's goal is to output a well-formed AST data structure +to the next phase of compilation, and so it fails on any source code +that doesn't match basic syntactic requirements. The compiler emits a +*syntax error* in this situation, with a pointer to the filename and +line and character number that's as close to the error as +possible. + +Here's an example syntax error that we obtain by performing a module +assignment as a statement instead of as a `let` binding: + +```ocaml file=examples/front-end/broken_module.ml +let () = + module MyString = String; + () +``` + +The code results in a syntax error when compiled: + +```sh dir=examples/front-end +$ ocamlc -c broken_module.ml +File "broken_module.ml", line 2, characters 2-8: +2 | module MyString = String; + ^^^^^^ +Error: Syntax error +[2] +``` + +The correct version of this source code creates the `MyString` module +correctly via a local open, and compiles successfully: + +```ocaml file=examples/front-end/fixed_module.ml +let () = + let module MyString = String in + () +``` + +The syntax error points to the line and character number of the first token +that couldn't be parsed. In the broken example, the `module` keyword isn't a +valid token at that point in parsing, so the error location information is +correct. + +### Generating Documentation from Interfaces + +Whitespace and source code comments are removed during parsing and aren't +significant in determining the semantics of the program. However, other tools +in the OCaml distribution can interpret comments for their own ends. + +OCaml uses specially formatted comments in the source code to +generate documentation bundles. These comments are combined with the function +definitions and signatures, and output as structured documentation in a +variety of formats. Tools such as `odoc` and `ocamldoc` can generate +HTML pages, LaTeX and PDF documents, UNIX +manual pages, and even module dependency graphs that can be viewed using +[Graphviz](http://www.graphviz.org). + +Here's a sample of some source code that's been annotated with docstring +comments: + +```ocaml file=examples/front-end/doc.ml +(** The first special comment of the file is the comment associated + with the whole module. *) + +(** Comment for exception My_exception. *) +exception My_exception of (int -> int) * int + +(** Comment for type [weather] *) +type weather = + | Rain of int (** The comment for constructor Rain *) + | Sun (** The comment for constructor Sun *) + +(** Find the current weather for a country + @author Anil Madhavapeddy + @param location The country to get the weather for. +*) +let what_is_the_weather_in location = + match location with + | `Cambridge -> Rain 100 + | `New_york -> Rain 20 + | `California -> Sun +``` + +The docstrings are distinguished by beginning with the double +asterisk. There are formatting conventions for the contents of the comment to +mark metadata. For instance, the `@tag` fields mark specific properties such +as the author of that section of code. + +There are two main tools used to manipulate docstring comments: the `ocamldoc` +tool that is supplied with the compiler, and the `odoc` tool that is developed +outside the compiler but is intended to be the long-term replacement. +Try compiling the HTML documentation and UNIX man pages by running `ocamldoc` +over the source file: + +``` +$ mkdir -p html man/man3 +$ ocamldoc -html -d html doc.ml +$ ocamldoc -man -d man/man3 doc.ml +$ man -M man Doc +``` + +You should now have HTML files inside the `html/` +directory and also be able to view the UNIX manual pages held in +`man/man3`. There are quite a few comment formats and +options to control the output for the various backends. Refer to the +[OCaml manual](https://ocaml.org/manual/native.html) +for the complete list. + +You can also use `odoc` to generate complete snapshots of your project via +integration with dune, as described in ["Generating Documentation"](/docs/generating-documentation){data-type=xref}. + +## Preprocessing with ppx + +One powerful feature in OCaml is a facility to extend the standard language via +_extension points_. These represent placeholders in the OCaml syntax tree and are +ignored by the standard compiler tooling, beyond being delimited and stored in +the abstract syntax tree alongside the normal parsed source code. They are +intended to be expanded by external tools that select extension nodes that can +interpret them. The external tools can choose to generate further OCaml code +by transforming the input syntax tree, thus forming the basis of an extensible +preprocessor for the language. + +There are two primary forms of extension points in OCaml: _attributes_ and +_extension nodes_. Let's first run through some examples of what they look +like, and then see how to use them in your own code. + +### Extension Attributes + +Attributes supply additional information that is attached to a node in the OCaml +syntax tree, and subsequently interpreted and expanded by external tools. + +The basic form of an attribute is the `[@ ... ]` syntax. The number of `@` symbols +defines which part of the syntax tree the attribute is bound to: + +- a single `[@` binds using a postfix notation to algebraic categories such as expressions or individual constructors in type definitions. +- a double `[@@` binds to blocks of code, such as module definitions, type declarations or class fields. +- a triple `[@@@` appears as a standalone entry in a module implementation or + signature, and are not tied to any specific source code node. + +The OCaml compiler has some useful builtin attributes that we can use to +illustrate their use without requiring any external tools. Let's first look +at the use of the standalone attribute `@@@warning` to toggle an OCaml +compiler warning. + + +```ocaml env=main +# module Abc = struct + + [@@@warning "+non-unit-statement"] + let a = Sys.get_argv (); () + + [@@@warning "-non-unit-statement"] + let b = Sys.get_argv (); () + end;; +Line 4, characters 11-26: +Warning 10 [non-unit-statement]: this expression should have type unit. +module Abc : sig val a : unit val b : unit end +``` + +The warning in our example is taken from the [compiler manual +page](https://ocaml.org/manual/native.html). This warning emits a +message if the expression in a sequence doesn't have type `unit`. The +`@@@warning` nodes in the module implementation cause the compiler to +change its behavior within the scope of that structure only. + +An annotation can also be more narrowly attached to a block of code. For example, +a module implementation can be annotated with `@@deprecated` to indicate that it +should not be used in new code: + +```ocaml env=main +# module Planets = struct + let earth = true + let pluto = true + end [@@deprecated "Sorry, Pluto is no longer a planet. Use the Planets2016 module instead."];; +module Planets : sig val earth : bool val pluto : bool end +# module Planets2016 = struct + let earth = true + let pluto = false + end;; +module Planets2016 : sig val earth : bool val pluto : bool end +``` + +In this example, the `@@deprecated` annotation is only attached to the +`Planets` module, and the human-readable argument string redirects developers +to the newer code. Now if we try to use the value that has been marked as +deprecated, the compiler will issue a warning. + +```ocaml env=main +# let is_pluto_a_planet = Planets.pluto;; +Line 1, characters 25-38: +Alert deprecated: module Planets +Sorry, Pluto is no longer a planet. Use the Planets2016 module instead. +val is_pluto_a_planet : bool = true +# let is_pluto_a_planet = Planets2016.pluto;; +val is_pluto_a_planet : bool = false +``` + +Finally, an attribute can also be attached to an individual expression. In the +next example, the `@warn_on_literal_pattern` attribute indicates that the +argument to the type constructor should not be pattern matched upon with a +constant literal. + +```ocaml env=main +# type program_result = + | Error of string [@warn_on_literal_pattern] + | Exit_code of int;; +type program_result = Error of string | Exit_code of int +# let exit_with = function + | Error "It blew up" -> 1 + | Exit_code code -> code + | Error _ -> 100;; +Line 2, characters 11-23: +Warning 52 [fragile-literal-pattern]: Code should not depend on the actual values of +this constructor's arguments. They are only for information +and may change in future versions. (See manual section 11.5) +val exit_with : program_result -> int = +``` + +### Commonly Used Extension Attributes + +We have already used extension points in [Data Serialization With S +Expressions](https://dev.realworldocaml.org/data-serialization.html#data-serialization-with-s-expressions){data-type=xref} +to generate boilerplate code for handling s-expressions. These are +introduced by a third-party library using the `(preprocess)` directive +in a dune file, for example: + +``` +(library + (name hello_world) + (libraries core) + (preprocess (pps ppx_jane)) +``` + +This allows you to take advantage of a community of syntax augmentation. +There are also a number of builtin attributes +in the core OCaml compiler. Some are performance oriented and give directives to the compiler, +whereas others will activate usage warnings. The full list is available in the [attributes section](https://ocaml.org/manual/attributes.html) of the OCaml manual. + + +### Extension Nodes + +While extension points are useful for annotating existing source +code, we also need a mechanism to store generic placeholders +within the OCaml AST for code generation. OCaml provides this +facility via the *extension node* syntax. + +The general syntax for an extension node is `[%id expr]`, where +`id` is an identifier for a particular extension node rewriter +and `expr` is the payload for the rewriter to parse. An infix +form is also available when the payload is of the same kind of syntax. +For example `let%foo bar = 1` is equivalent to `[%foo let bar = 1]`. + +We've already seen extension nodes in use via the Core syntax extensions +earlier in the book, where they act as syntactic sugar for error +handling (`let%bind`), for command-line parsing (`let%map`) or +inline testing (`let%expect_test`). Extension nodes are introduced +via dune rules in the same fashion as extension attributes, via the +`(preprocess)` attribute. + + +## Static Type Checking + +After obtaining a valid abstract syntax tree, the compiler has to verify that +the code obeys the rules of the OCaml type system. Code that is syntactically +correct but misuses values is rejected with an explanation of the problem. + +Although type checking is done in a single pass in OCaml, it actually +consists of three distinct steps that happen simultaneously: + +automatic type inference +: An algorithm that calculates types for a module without requiring manual + type annotations + +module system +: Combines software components with explicit knowledge of their type + signatures + +explicit subtyping +: Checks for objects and polymorphic variants + +Automatic type inference lets you write succinct code for a particular task +and have the compiler ensure that your use of variables is locally +consistent. + +Type inference doesn't scale to very large codebases that depend on separate +compilation of files. A small change in one module may ripple through +thousands of other files and libraries and require all of them to be +recompiled. The module system solves this by providing the facility to +combine and manipulate explicit type signatures for modules within a large +project, and also to reuse them via functors and first-class +modules. + +Subtyping in OCaml objects is always an explicit operation (via the `:>` +operator). This means that it doesn't complicate the core type inference +engine and can be tested as a separate concern. + +### Displaying Inferred Types from the Compiler + +We've already seen how you can explore type inference directly from the +toplevel. It's also possible to generate type signatures for an entire file +by asking the compiler to do the work for you. Create a file with a single +type definition and value: + +```ocaml file=examples/front-end/typedef.ml +type t = Foo | Bar +let v = Foo +``` + +Now run the compiler with the `-i` flag to infer the type signature for that +file. This runs the type checker but doesn't compile the code any further +after displaying the interface to the standard output: + +```sh dir=examples/front-end +$ ocamlc -i typedef.ml +type t = Foo | Bar +val v : t +``` + +The output is the default signature for the module that represents the input +file. It's often useful to redirect this output to an `mli` file to give you +a starting signature to edit the external interface without having to type it +all in by hand. + +The compiler stores a compiled version of the interface as a `cmi` file. This +interface is either obtained from compiling an `mli` signature file for a +module, or by the inferred type if there is only an `ml` implementation +present. + +The compiler makes sure that your `ml` and `mli` files have compatible +signatures. The type checker throws an immediate error if this isn't +the case. For example, if you have this as your `ml` file: + +```ocaml file=examples/front-end/conflicting_interface.ml +type t = Foo +``` + +\noindent +and this as your `mli`: + +```ocaml file=examples/front-end/conflicting_interface.mli +type t = Bar +``` + +\noindent +then, when you try to build, you'll get this error: + +```sh dir=examples/front-end +$ ocamlc -c conflicting_interface.mli conflicting_interface.ml +File "conflicting_interface.ml", line 1: +Error: The implementation conflicting_interface.ml + does not match the interface conflicting_interface.cmi: + Type declarations do not match: + type t = Foo + is not included in + type t = Bar + Constructors have different names, Foo and Bar. + File "conflicting_interface.mli", line 1, characters 0-12: + Expected declaration + File "conflicting_interface.ml", line 1, characters 0-12: + Actual declaration +[2] +``` + +
+ +#### Which Comes First: The ml or the mli? + +There are two schools of thought on which order OCaml code should be +written in. It's very easy to begin writing code by starting with an +`ml` file and using the type inference to guide you as you build up +your functions. The `mli` file can then be generated as described, and +the exported functions documented. + +If you're writing code that spans multiple files, it's sometimes easier to +start by writing all the `mli` signatures and checking that they type-check +against one another. Once the signatures are in place, you can write the +implementations with the confidence that they'll all glue together correctly, +with no cyclic dependencies among the modules. + +As with any such stylistic debate, you should experiment with which system +works best for you. Everyone agrees on one thing though: no matter in what +order you write them, production code should always explicitly define an +`mli` file for every `ml` file in the project. It's also perfectly fine to +have an `mli` file without a corresponding `ml` file if you're only declaring +signatures (such as module types). + +Signature files provide a place to write succinct documentation and to +abstract internal details that shouldn't be exported. Maintaining separate +signature files also speeds up incremental compilation in larger code bases, +since recompiling a `mli` signature is much faster than a full compilation of +the implementation to native code. +
+ + +### Type Inference {#type-inference-1} + +Type inference is the process of determining the appropriate types for +expressions based on their use. It's a feature that's partially present in +many other languages such as Haskell and Scala, but OCaml embeds it as a +fundamental feature throughout the core language. + +OCaml type inference is based on the Hindley-Milner algorithm, which is +notable for its ability to infer the most general type for an expression +without requiring any explicit type annotations. The algorithm can deduce +multiple types for an expression and has the notion of a *principal type* +that is the most general choice from the possible inferences. Manual type +annotations can specialize the type explicitly, but the automatic inference +selects the most general type unless told otherwise. + +OCaml does have some language extensions that strain the limits of principal +type inference, but by and large, most programs you write will never +*require* annotations (although they sometimes help the compiler produce +better error messages). + +#### Adding Type Annotations to Find Errors + +It's often said that the hardest part of writing OCaml code is getting past +the type checkerโ€”but once the code does compile, it works correctly the +first time! This is an exaggeration of course, but it can certainly feel true +when moving from a dynamically typed language. The OCaml static type system +protects you from certain classes of bugs such as memory errors and +abstraction violations by rejecting your program at compilation time rather +than by generating an error at runtime. Learning how to navigate the type +checker's compile-time feedback is key to building robust libraries and +applications that take full advantage of these static checks. + +There are a couple of tricks to make it easier to quickly locate type errors +in your code. The first is to introduce manual type annotations to narrow +down the source of your error more accurately. These annotations shouldn't +actually change your types and can be removed once your code is correct. +However, they act as anchors to locate errors while you're still writing your +code. + +Manual type annotations are particularly useful if you use lots of +polymorphic variants or objects. Type inference with row polymorphism can +generate some very large signatures, and errors tend to propagate more widely +than if you are using more explicitly typed variants or classes. + + + +For instance, consider this broken example that expresses some simple +algebraic operations over integers: + +```ocaml file=examples/front-end/broken_poly.ml +let rec algebra = + function + | `Add (x,y) -> (algebra x) + (algebra y) + | `Sub (x,y) -> (algebra x) - (algebra y) + | `Mul (x,y) -> (algebra x) * (algebra y) + | `Num x -> x + +let _ = + algebra ( + `Add ( + (`Num 0), + (`Sub ( + (`Num 1), + (`Mul ( + (`Nu 3),(`Num 2) + )) + )) + )) +``` + +There's a single character typo in the code so that it uses `Nu` instead of +`Num`. The resulting type error is impressive: + +```sh dir=examples/front-end +$ ocamlc -c broken_poly.ml +File "broken_poly.ml", lines 9-18, characters 10-6: + 9 | ..........( +10 | `Add ( +11 | (`Num 0), +12 | (`Sub ( +13 | (`Num 1), +14 | (`Mul ( +15 | (`Nu 3),(`Num 2) +16 | )) +17 | )) +18 | )) +Error: This expression has type + [> `Add of + ([< `Add of 'a * 'a + | `Mul of 'a * 'a + | `Num of int + | `Sub of 'a * 'a + > `Num ] + as 'a) * + [> `Sub of 'a * [> `Mul of [> `Nu of int ] * [> `Num of int ] ] + ] ] + but an expression was expected of type + [< `Add of 'a * 'a | `Mul of 'a * 'a | `Num of int | `Sub of 'a * 'a + > `Num ] + as 'a + The second variant type does not allow tag(s) `Nu +[2] +``` + +The type error is perfectly accurate, but rather verbose and with a line +number that doesn't point to the exact location of the incorrect variant +name. The best the compiler can do is to point you in the general direction +of the `algebra` function application. + +This is because the type checker doesn't have enough information to match the +inferred type of the `algebra` definition to its application a few lines +down. It calculates types for both expressions separately, and when they +don't match up, outputs the difference as best it can. + +Let's see what happens with an explicit type annotation to help the compiler +out: + +```ocaml file=examples/front-end/broken_poly_with_annot.ml +type t = [ + | `Add of t * t + | `Sub of t * t + | `Mul of t * t + | `Num of int +] + +let rec algebra (x:t) = + match x with + | `Add (x,y) -> (algebra x) + (algebra y) + | `Sub (x,y) -> (algebra x) - (algebra y) + | `Mul (x,y) -> (algebra x) * (algebra y) + | `Num x -> x + +let _ = + algebra ( + `Add ( + (`Num 0), + (`Sub ( + (`Num 1), + (`Mul ( + (`Nu 3),(`Num 2) + )) + )) + )) +``` + +This code contains exactly the same error as before, but we've added a closed +type definition of the polymorphic variants, and a type annotation to the +`algebra` definition. The compiler error we get is much more useful now: + +```sh dir=examples/front-end +$ ocamlc -i broken_poly_with_annot.ml +File "broken_poly_with_annot.ml", line 22, characters 14-21: +22 | (`Nu 3),(`Num 2) + ^^^^^^^ +Error: This expression has type [> `Nu of int ] + but an expression was expected of type t + The second variant type does not allow tag(s) `Nu +[2] +``` + +This error points directly to the correct line number that contains the typo. +Once you fix the problem, you can remove the manual annotations if you prefer +more succinct code. You can also leave the annotations there, of course, to +help with future refactoring and debugging. + +#### Enforcing Principal Typing + +The compiler also has a stricter *principal type checking* mode that is +activated via the `-principal` flag. This +warns about risky uses of type information to ensure that the type inference +has one principal result. A type is considered risky if the success or +failure of type inference depends on the order in which subexpressions are +typed. + +The principality check only affects a few language features: + +- Polymorphic methods for objects + +- Permuting the order of labeled arguments in a function from their type + definition + +- Discarding optional labeled arguments + +- Generalized algebraic data types (GADTs) present from OCaml 4.0 onward + +- Automatic disambiguation of record field and constructor names (since OCaml + 4.1) + +Here's an example of principality warnings when used with record +disambiguation. + +```ocaml file=examples/front-end/non_principal.ml +type s = { foo: int; bar: unit } +type t = { foo: int } + +let f x = + x.bar; + x.foo +``` + +Inferring the signature with `-principal` will show you a new warning: + +```sh dir=examples/front-end +$ ocamlc -i -principal non_principal.ml +File "non_principal.ml", line 6, characters 4-7: +6 | x.foo + ^^^ +Warning 18 [not-principal]: this type-based field disambiguation is not principal. +type s = { foo : int; bar : unit; } +type t = { foo : int; } +val f : s -> int +``` + +This example isn't principal, since the inferred type for `x.foo` is guided +by the inferred type of `x.bar`, whereas principal typing requires that each +subexpression's type can be calculated independently. If the `x.bar` use is +removed from the definition of `f`, its argument would be of type `t` and not +`type s`. + +You can fix this either by permuting the order of the type declarations, or +by adding an explicit type annotation: + +```ocaml file=examples/front-end/principal.ml +type s = { foo: int; bar: unit } +type t = { foo: int } + +let f (x:s) = + x.bar; + x.foo +``` + +There is now no ambiguity about the inferred types, since we've explicitly +given the argument a type, and the order of inference of the subexpressions +no longer matters. + +```sh dir=examples/front-end +$ ocamlc -i -principal principal.ml +type s = { foo : int; bar : unit; } +type t = { foo : int; } +val f : s -> int +``` + +The `dune` equivalent is to add the flag `-principal` to your build description. + +```ocaml file=examples/front-end/dune +(executable + (name principal) + (flags :standard -principal) + (modules principal)) + +(executable + (name non_principal) + (flags :standard -principal) + (modules non_principal)) +``` + +The `:standard` directive will include all the default flags, and then +`-principal` will be appended after those in the compiler build flags. + +```sh dir=examples/front-end/ +$ dune build principal.exe +$ dune build non_principal.exe +File "non_principal.ml", line 6, characters 4-7: +6 | x.foo + ^^^ +Error (warning 18 [not-principal]): this type-based field disambiguation is not principal. +[1] +``` + +Ideally, all code should systematically use `-principal`. It reduces variance +in type inference and enforces the notion of a single known type. However, +there are drawbacks to this mode: type inference is slower, and the `cmi` +files become larger. This is generally only a problem if you extensively use +objects, which usually have larger type signatures to cover all their +methods. + +If compiling in principal mode works, it is guaranteed that the program will +pass type checking in non-principal mode, too. Bear in mind that the `cmi` +files generated in principal mode differ from the default mode. Try to ensure +that you compile your whole project with it activated. Getting the files mixed +up won't let you violate type safety, but it can result in the type checker +failing unexpectedly very occasionally. In this case, just recompile with a +clean source tree. + + +### Modules and Separate Compilation + +The OCaml module system enables smaller components to be reused effectively +in large projects while still retaining all the benefits of static type +safety. We covered the basics of using modules earlier in +[Files Modules And Programs](https://dev.realworldocaml.org/files-modules-and-programs.html#files-modules-and-programs){data-type=xref}. +The module language that operates over these signatures also extends to +functors and first-class modules, described in +[Functors](https://dev.realworldocaml.org/functors.html#functors){data-type=xref} and +[First Class Modules](https://dev.realworldocaml.org/first-class-modules.html#first-class-modules){data-type=xref}, +respectively. + +This section discusses how the compiler implements them in more detail. +Modules are essential for larger projects that consist of many source files +(also known as *compilation units*). It's impractical to recompile every +single source file when changing just one or two files, and the module system +minimizes such recompilation while still encouraging code reuse. + +#### The Mapping Between Files and Modules + +Individual compilation units provide a convenient way to break up a big +module hierarchy into a collection of files. The relationship between files +and modules can be explained directly in terms of the module system. + +Create a file called `alice.ml` with the following contents: + +```ocaml file=examples/front-end/alice.ml +let friends = [ Bob.name ] +``` + +and a corresponding signature file: + +```ocaml file=examples/front-end/alice.mli +val friends : Bob.t list +``` + +These two files produce essentially the same result as the following +code. + +```ocaml file=examples/front-end/alice_combined.ml +module Alice : sig + val friends : Bob.t list +end = struct + let friends = [ Bob.name ] +end +``` + +#### Defining a Module Search Path + +In the preceding example, `Alice` also has a reference to another module +`Bob`. For the overall type of `Alice` to be valid, the compiler also needs +to check that the `Bob` module contains at least a `Bob.name` value and +defines a `Bob.t` type. + +The type checker resolves such module references into concrete structures and +signatures in order to unify types across module boundaries. It does this by +searching a list of directories for a compiled interface file matching that +module's name. For example, it will look for `alice.cmi` and `bob.cmi` on the +search path and use the first ones it encounters as the interfaces for +`Alice` and `Bob`. + +The module search path is set by adding `-I` flags to the compiler +command line with the directory containing the `cmi` files as the +argument. Manually specifying these flags gets complex when you have +lots of libraries, and is the reason why tools like `dune` and +`ocamlfind` exist. They both automate the process of turning +third-party package names and build descriptions into command-line +flags that are passed to the compiler command line. + +By default, only the current directory and the OCaml standard library +will be searched for `cmi` files. The `Stdlib` module from the +standard library will also be opened by default in every compilation +unit. The standard library location is obtained by running `ocamlc +-where` and can be overridden by setting the `CAMLLIB` environment +variable. Needless to say, don't override the default path unless you +have a good reason to (such as setting up a cross-compilation +environment). + +
+ +#### Inspecting Compilation Units with ocamlobjinfo + +For separate compilation to be sound, we need to ensure that all the +`cmi` files used to type-check a module are the same across compilation runs. +If they vary, this raises the possibility of two modules checking different +type signatures for a common module with the same name. This in turn lets the +program completely violate the static type system and can lead to memory +corruption and crashes. + +OCaml guards against this by recording a MD5 checksum in every `cmi`. Let's +examine our earlier `typedef.ml` more closely: + +```sh dir=examples/front-end,non-deterministic +$ ocamlc -c typedef.ml +$ ocamlobjinfo typedef.cmi +File typedef.cmi +Unit name: Typedef +Interfaces imported: + cdd43318ee9dd1b187513a4341737717 Typedef + 9b04ecdc97e5102c1d342892ef7ad9a2 Pervasives + 79ae8c0eb753af6b441fe05456c7970b CamlinternalFormatBasics +``` + +`ocamlobjinfo` examines the compiled interface and displays what other +compilation units it depends on. In this case, we don't use any external +modules other than `Pervasives`. Every module depends on `Pervasives` by +default, unless you use the `-nopervasives` flag (this is an advanced use +case, and you shouldn't normally need it). + +The long alphanumeric identifier beside each module name is a hash calculated +from all the types and values exported from that compilation unit. It's used +during type-checking and linking to ensure that all of the compilation units +have been compiled consistently against one another. A difference in the +hashes means that a compilation unit with the same module name may have +conflicting type signatures in different modules. The compiler will reject +such programs with an error similar to this: + +``` +$ ocamlc -c foo.ml +File "foo.ml", line 1, characters 0-1: +Error: The files /home/build/bar.cmi + and /usr/lib/ocaml/map.cmi make inconsistent assumptions + over interface Map +``` + +This hash check is very conservative, but ensures that separate compilation +remains type-safe all the way up to the final link phase. Your build system +should ensure that you never see the preceding error messages, but if you do +run into it, just clean out your intermediate files and recompile from +scratch. +
+ + +### Wrapping Libraries with Module Aliases + +The module-to-file mapping described so far rigidly enforces a 1:1 mapping +between a top-level module and a file. It's often convenient to split larger +modules into separate files to make editing easier, but still compile them +all into a single OCaml module. + +Dune provides a very convenient way of doing this for libraries via +automatically generating a toplevel _module alias_ file that places all the +files in a given library as submodules within the toplevel module for +that library. This is known as _wrapping_ the library, and works as follows. + +Let's define a simple library with two files `a.ml` and `b.ml` that each define +a single value. + +```ocaml file=examples/packing/A.ml +let v = "hello" +``` + +```ocaml file=examples/packing/B.ml +let w = 42 +``` + +The dune file defines a library called `hello` that includes these two modules. + +```ocaml file=examples/packing/dune +(library + (name hello) + (modules a b)) +(executable + (name test) + (libraries hello) + (modules test)) +``` + +If we now build this library, we can look at how dune assembles the modules +into a `Hello` library. + +```sh dir=examples/packing +$ dune build +$ cat _build/default/hello.ml-gen +(** @canonical Hello.A *) +module A = Hello__A + + +(** @canonical Hello.B *) +module B = Hello__B +``` + +Dune has generated a `hello.ml` file which forms the toplevel module exposed +by the library. It has also renamed the individual modules into internal +mangled names such as `Hello__A`, and assigned those internal modules as +aliases within the generated `hello.ml` file. This then allows a user +of this library to access the values as `Hello.A`. For example, our test +executable contains this: + +```ocaml file=examples/packing/test.ml +let v = Hello.A.v +let w = Hello.B.w +``` + +One nice aspect about this module alias scheme is that a single toplevel +module provides a central place to write documentation about how to use +all the submodules exposed by the library. We can manually add a `hello.ml` +and `hello.mli` to our library that does exactly this. First add the +`hello` module to the dune file: + +```ocaml file=examples/packing-with-doc/dune +(library + (name hello) + (modules a b hello)) +(executable + (name test) + (libraries hello) + (modules test)) +``` + +Then the `hello.ml` file contains the module aliases (and any other code +you might want to add to the toplevel module). + +```ocaml file=examples/packing-with-doc/hello.ml +module A = A +module B = B +``` + +Finally, the `hello.mli` interface file can reference all the submodules +and include documentation strings: + +```ocaml file=examples/packing-with-doc/hello.mli +(** Documentation for module A *) +module A : sig + (** [v] is Hello *) + val v : string +end + +(** Documentation for module B *) +module B : sig + (** [w] is 42 *) + val w : int +end +``` + +If you want to disable this behavior of dune and deliberately include +multiple toplevel modules, you can add `(wrapped false)` to your libraries +stanza. However, this is discouraged in general due to the increased likelihood +of linking clashes when you have a lot of library dependencies, since every +module that is linked into an executable must have a unique name in OCaml. + +### Shorter Module Paths in Type Errors + +Core uses the OCaml module system quite extensively to provide a complete +replacement standard library. It collects these modules into a single +`Std` module, which provides a single module that needs to be opened to +import the replacement modules and functions. + +There's one downside to this approach: type errors suddenly get much more +verbose. We can see this if you run the vanilla OCaml toplevel (not `utop`). + +``` +$ ocaml +# List.map print_endline "";; +Error: This expression has type string but an expression was expected of type + string list +``` + +This type error without `Core` has a straightforward type error. When we +switch to Core, though, it gets more verbose: + +``` +$ ocaml +# open Core;; +# List.map ~f:print_endline "";; +Error: This expression has type string but an expression was expected of type + 'a Core.List.t = 'a list +``` + +The default `List` module in OCaml is overridden by `Core.List`. The compiler +does its best to show the type equivalence, but at the cost of a more verbose +error message. + +The compiler can remedy this via a so-called short paths heuristic. This +causes the compiler to search all the type aliases for the shortest module +path and use that as the preferred output type. The option is activated by +passing `-short-paths` to the compiler, and works on the toplevel, too. + +``` +$ ocaml -short-paths +# open Core;; +# List.map ~f:print_endline "foo";; +Error: This expression has type string but an expression was expected of type + 'a list +``` + +The `utop` enhanced toplevel activates short paths by default, which is why +we have not had to do this before in our interactive examples. However, the +compiler doesn't default to the short path heuristic, since there are some +situations where the type aliasing information is useful to know, and it +would be lost in the error if the shortest module path is always picked. + +You'll need to choose for yourself if you prefer short paths or the default +behavior in your own projects, and pass the `-short-paths` flag to the +compiler if you need + + +## The Typed Syntax Tree + +When the type checking process has successfully completed, it is combined +with the AST to form a *typed abstract syntax tree*. This contains precise +location information for every token in the input file, and decorates each +token with concrete type information. + +The compiler can output this as compiled `cmt` and `cmti` files that contain +the typed AST for the implementation and signatures of a compilation unit. +This is activated by passing the `-bin-annot` flag to the compiler. + +The `cmt` files are particularly useful for IDE tools to match up OCaml +source code at a specific location to the inferred or external types. +For example, the `merlin` and `ocaml-lsp-server` opam packages both use +this information to provide you with tooltips and docstrings within your +editor, as described in [OCaml Platform](/docs/set-up-editor){data-type=xref}. + +### Examining the Typed Syntax Tree Directly + +The compiler has a couple of advanced flags that can dump the raw output of +the internal AST representation. You can't depend on these flags to give the +same output across compiler revisions, but they are a useful learning +tool. + +We'll use our toy `typedef.ml` again: + +```ocaml file=examples/front-end/typedef.ml +type t = Foo | Bar +let v = Foo +``` + +Let's first look at the untyped syntax tree that's generated from the parsing +phase: + +```sh dir=examples/front-end +$ ocamlc -dparsetree typedef.ml 2>&1 +[ + structure_item (typedef.ml[1,0+0]..[1,0+18]) + Pstr_type Rec + [ + type_declaration "t" (typedef.ml[1,0+5]..[1,0+6]) (typedef.ml[1,0+0]..[1,0+18]) + ptype_params = + [] + ptype_cstrs = + [] + ptype_kind = + Ptype_variant + [ + (typedef.ml[1,0+9]..[1,0+12]) + "Foo" (typedef.ml[1,0+9]..[1,0+12]) + [] + None + (typedef.ml[1,0+13]..[1,0+18]) + "Bar" (typedef.ml[1,0+15]..[1,0+18]) + [] + None + ] + ptype_private = Public + ptype_manifest = + None + ] + structure_item (typedef.ml[2,19+0]..[2,19+11]) + Pstr_value Nonrec + [ + + pattern (typedef.ml[2,19+4]..[2,19+5]) + Ppat_var "v" (typedef.ml[2,19+4]..[2,19+5]) + expression (typedef.ml[2,19+8]..[2,19+11]) + Pexp_construct "Foo" (typedef.ml[2,19+8]..[2,19+11]) + None + ] +] + +``` + +This is rather a lot of output for a simple two-line program, but it shows +just how much structure the OCaml parser generates even from a small source +file. + +Each portion of the AST is decorated with the precise location information +(including the filename and character location of the token). This code +hasn't been type checked yet, so the raw tokens are all included. + +The typed AST that is normally output as a compiled `cmt` file can be +displayed in a more developer-readable form via the `-dtypedtree` option: + +```sh dir=examples/front-end +$ ocamlc -dtypedtree typedef.ml 2>&1 +[ + structure_item (typedef.ml[1,0+0]..typedef.ml[1,0+18]) + Tstr_type Rec + [ + type_declaration t/267 (typedef.ml[1,0+0]..typedef.ml[1,0+18]) + ptype_params = + [] + ptype_cstrs = + [] + ptype_kind = + Ttype_variant + [ + (typedef.ml[1,0+9]..typedef.ml[1,0+12]) + Foo/268 + [] + None + (typedef.ml[1,0+13]..typedef.ml[1,0+18]) + Bar/269 + [] + None + ] + ptype_private = Public + ptype_manifest = + None + ] + structure_item (typedef.ml[2,19+0]..typedef.ml[2,19+11]) + Tstr_value Nonrec + [ + + pattern (typedef.ml[2,19+4]..typedef.ml[2,19+5]) + Tpat_var "v/270" + expression (typedef.ml[2,19+8]..typedef.ml[2,19+11]) + Texp_construct "Foo" + [] + ] +] + +``` + +The typed AST is more explicit than the untyped syntax tree. For instance, +the type declaration has been given a unique name (`t/1008`), as has the +`v` value (`v/1011`). + +You'll rarely need to look at this raw output from the compiler unless you're +building IDE tools, or are hacking on extensions to the +core compiler itself. However, it's useful to know that this intermediate +form exists before we delve further into the code generation process next, in +[The Compiler Backend: Byte Code And Native Code](/docs/compiler-backend#the-compiler-backend-byte-code-and-native-code){data-type=xref}. diff --git a/data/tutorials/language/5rt_03_compiler_backend.md b/data/tutorials/language/5rt_03_compiler_backend.md new file mode 100644 index 0000000000..06a2a5b2a5 --- /dev/null +++ b/data/tutorials/language/5rt_03_compiler_backend.md @@ -0,0 +1,1156 @@ +--- +id: compiler-backend +title: Compiler Backend +description: > + The Compiler Backend, excerpt from Real World OCaml +category: "Runtime & Compiler" +external_tutorial: + tag: "RWO" + banner: + image: "tutorials/rwo_banner.png" + url: https://dev.realworldocaml.org/ + alt: "Real World OCaml" + contribute_link: + url: https://github.com/realworldocaml/book/blob/master/book/compiler-backend/README.md + description: "You are encouraged to contribute to the original sources of this page at the Real World OCaml GitHub repository." +--- + +This is an adaptation of the chapter [The Compiler Backend: Bytecode and Native code](https://dev.realworldocaml.org/compiler-backend.html) from the book [Real World OCaml](https://dev.realworldocaml.org/), reproduced here with permission. + + +# The Compiler Backend: Bytecode and Native code {#the-compiler-backend-byte-code-and-native-code} + +Once OCaml has passed the type checking stage, it can stop emitting syntax +and type errors and begin the process of compiling the well-formed modules +into executable code. + +In this chapter, we'll cover the following topics: + +- The untyped intermediate lambda code where pattern matching is optimized + +- The bytecode `ocamlc` compiler and `ocamlrun` interpreter + +- The native code `ocamlopt` code generator, and debugging and profiling + native code + +## The Untyped Lambda Form + +The first code generation phase eliminates all the static type information +into a simpler intermediate *lambda form*. The lambda form discards +higher-level constructs such as modules and objects and replaces them with +simpler values such as records and function pointers. Pattern matches are +also analyzed and compiled into highly optimized automata. + +The lambda form is the key stage that discards the OCaml type +information and maps the source code to the runtime memory model +described in [Memory Representation Of +Values](/docs/runtime-memory-layout#memory-representation-of-values){data-type=xref}. +This stage also performs some optimizations, most notably converting +pattern-match statements into more optimized but low-level statements. + +### Pattern Matching Optimization + +The compiler dumps the lambda form in an s-expression syntax if you add the +`-dlambda` directive to the command line. +Let's use this to learn more about how the OCaml pattern-matching engine +works by building three different pattern matches and comparing their lambda +forms. + +Let's start by creating a straightforward exhaustive pattern match using four +normal variants: + +```ocaml file=examples/back-end/pattern_monomorphic_large.ml +type t = | Alice | Bob | Charlie | David + +let test v = + match v with + | Alice -> 100 + | Bob -> 101 + | Charlie -> 102 + | David -> 103 +``` + +The lambda output for this code looks like this: + +```sh dir=examples/back-end +$ ocamlc -dlambda -c pattern_monomorphic_large.ml 2>&1 +(setglobal Pattern_monomorphic_large! + (let + (test/272 = + (function v/274[int] : int + (switch* v/274 + case int 0: 100 + case int 1: 101 + case int 2: 102 + case int 3: 103))) + (makeblock 0 test/272))) +``` + +It's not important to understand every detail of this internal form, and it +is explicitly undocumented since it can change across compiler revisions. +Despite these caveats, some interesting points emerge from reading it: + +- There are no mentions of modules or types any more. Global values + are created via `setglobal`, and OCaml values are constructed by + `makeblock`. The blocks are the runtime values you should remember + from [Memory Representation Of + Values](/docs/runtime-memory-layout#memory-representation-of-values){data-type=xref}. + +- The pattern match has turned into a switch case that jumps to the + right case depending on the header tag of `v`. Recall that variants + without parameters are stored in memory as integers in the order in + which they appear. The pattern-matching engine knows this and has + transformed the pattern into an efficient jump table. + +- Values are addressed by a unique name that distinguishes shadowed values by + appending a number (e.g., `v/1014`). The type safety checks in the earlier + phase ensure that these low-level accesses never violate runtime memory + safety, so this layer doesn't do any dynamic checks. Unwise use of unsafe + features such as the `Obj.magic` module can still easily induce crashes at + this level. + +The compiler computes a jump table in order to handle all four cases. If we +drop the number of variants to just two, then there's no need for the +complexity of computing this table: + +```ocaml file=examples/back-end/pattern_monomorphic_small.ml +type t = | Alice | Bob + +let test v = + match v with + | Alice -> 100 + | Bob -> 101 +``` + +The lambda output for this code is now quite different: + +```sh dir=examples/back-end +$ ocamlc -dlambda -c pattern_monomorphic_small.ml 2>&1 +(setglobal Pattern_monomorphic_small! + (let (test/270 = (function v/272[int] : int (if v/272 101 100))) + (makeblock 0 test/270))) +``` + +The compiler emits simpler conditional jumps rather than setting up a +jump table, since it statically determines that the range of possible +variants is small enough. Finally, let's consider code that's +essentially the same as our first pattern match example, but with +polymorphic variants instead of normal variants: + +```ocaml file=examples/back-end/pattern_polymorphic.ml +let test v = + match v with + | `Alice -> 100 + | `Bob -> 101 + | `Charlie -> 102 + | `David -> 103 +``` + +The lambda form for this also reflects the runtime representation of +polymorphic variants: + +```sh dir=examples/back-end +$ ocamlc -dlambda -c pattern_polymorphic.ml 2>&1 +(setglobal Pattern_polymorphic! + (let + (test/267 = + (function v/269[int] : int + (if (>= v/269 482771474) (if (>= v/269 884917024) 100 102) + (if (>= v/269 3306965) 101 103)))) + (makeblock 0 test/267))) +``` + +We mentioned in [Variants](https://dev.realworldocaml.org/variants.html#variants){data-type=xref} that +pattern matching over polymorphic variants is slightly less efficient, and it +should be clearer why this is the case now. Polymorphic variants have a +runtime value that's calculated by hashing the variant name, and so the +compiler can't use a jump table as it does for normal variants. Instead, it +creates a decision tree that compares the hash values against the input +variable in as few comparisons as possible. + +Pattern matching is an important part of OCaml programming. You'll often +encounter deeply nested pattern matches over complex data structures in real +code. A good paper that describes the fundamental algorithms implemented in +OCaml is +["Optimizing pattern matching"](http://dl.acm.org/citation.cfm?id=507641) by +Fabrice Le Fessant and Luc Maranget. + +The paper describes the backtracking algorithm used in classical pattern +matching compilation, and also several OCaml-specific optimizations, such as +the use of exhaustiveness information and control flow optimizations via +static exceptions. +It's not essential that you understand all of this just to use pattern +matching, of course, but it'll give you insight as to why pattern +matching is such an efficient language construct in OCaml. + + +### Benchmarking Pattern Matching + +Let's benchmark these three pattern-matching techniques to quantify their +runtime costs more accurately. The `Core_bench` module runs the tests +thousands of times and also calculates statistical variance of the results. +You'll need to `opam install core_bench` to get the library: + +```ocaml file=examples/back-end/bench_patterns/bench_patterns.ml +open Core +open Core_bench + +module Monomorphic = struct + type t = + | Alice + | Bob + | Charlie + | David + + let bench () = + let convert v = + match v with + | Alice -> 100 + | Bob -> 101 + | Charlie -> 102 + | David -> 103 + in + List.iter + ~f:(fun v -> ignore (convert v)) + [ Alice; Bob; Charlie; David ] +end + +module Monomorphic_small = struct + type t = + | Alice + | Bob + + let bench () = + let convert v = + match v with + | Alice -> 100 + | Bob -> 101 + in + List.iter + ~f:(fun v -> ignore (convert v)) + [ Alice; Bob; Alice; Bob ] +end + +module Polymorphic = struct + type t = + [ `Alice + | `Bob + | `Charlie + | `David + ] + + let bench () = + let convert v = + match v with + | `Alice -> 100 + | `Bob -> 101 + | `Charlie -> 102 + | `David -> 103 + in + List.iter + ~f:(fun v -> ignore (convert v)) + [ `Alice; `Bob; `Alice; `Bob ] +end + +let benchmarks = + [ "Monomorphic large pattern", Monomorphic.bench + ; "Monomorphic small pattern", Monomorphic_small.bench + ; "Polymorphic large pattern", Polymorphic.bench + ] + +let () = + List.map benchmarks ~f:(fun (name, test) -> + Bench.Test.create ~name test) + |> Bench.make_command + |> Command_unix.run +``` + +Building and executing this example will run for around 30 seconds by +default, and you'll see the results summarized in a neat table: + +```sh dir=examples/back-end/bench_patterns,non-deterministic=command +$ dune exec -- ./bench_patterns.exe -ascii -quota 0.25 +Estimated testing time 750ms (3 benchmarks x 250ms). Change using '-quota'. + + Name Time/Run Percentage + --------------------------- ---------- ------------ + Monomorphic large pattern 6.54ns 67.89% + Monomorphic small pattern 9.63ns 100.00% + Polymorphic large pattern 9.63ns 99.97% + +``` + +These results confirm the performance hypothesis that we obtained earlier by +inspecting the lambda code. The shortest running time comes from the small +conditional pattern match, and polymorphic variant pattern matching is the +slowest. There isn't a hugely significant difference in these examples, but +you can use the same techniques to peer into the innards of your own source +code and narrow down any performance hotspots. + +The lambda form is primarily a stepping stone to the bytecode executable +format that we'll cover next. It's often easier to look at the textual output +from this stage than to wade through the native assembly code from compiled +executables. + + +## Generating Portable Bytecode + +After the lambda form has been generated, we are very close to having +executable code. The OCaml toolchain branches into two separate compilers at +this point. We'll describe the bytecode compiler first, which consists of two +pieces: + +`ocamlc` +: Compiles files into a bytecode that is a close mapping to the lambda form + +`ocamlrun` +: A portable interpreter that executes the bytecode + +The big advantage of using bytecode is simplicity, portability, and +compilation speed. The mapping from the lambda form to bytecode is +straightforward, and this results in predictable (but slow) execution speed. + +The bytecode interpreter implements a stack-based virtual machine. The OCaml +stack and an associated accumulator store values that consist of: + +long +: Values that correspond to an OCaml `int` type + +block +: Values that contain the block header and a memory address with the data + fields that contain further OCaml values indexed by an integer + +code offset +: Values that are relative to the starting code address + +The interpreter virtual machine only has seven registers in total: +- program counter, +- stack, exception and argument pointers, +- accumulator, +- environment and global data. + +You can display the bytecode instructions in +textual form via `-dinstr`. Try this on one of our earlier pattern-matching +examples: + +```sh dir=examples/back-end +$ ocamlc -dinstr pattern_monomorphic_small.ml 2>&1 + branch L2 +L1: acc 0 + branchifnot L3 + const 101 + return 1 +L3: const 100 + return 1 +L2: closure L1, 0 + push + acc 0 + makeblock 1, 0 + pop 1 + setglobal Pattern_monomorphic_small! + +``` + +The preceding bytecode has been simplified from the lambda form into a set of +simple instructions that are executed serially by the interpreter. + +There are around 140 instructions in total, but most are just minor variants +of commonly encountered operations (e.g., function application at a specific +arity). You can find full details +[online](http://cadmium.x9c.fr/distrib/caml-instructions.pdf). + +
+ +#### Where Did the Bytecode Instruction Set Come From? + +The bytecode interpreter is much slower than compiled native code, but is +still remarkably performant for an interpreter without a JIT compiler. Its +efficiency can be traced back to Xavier Leroy's ground-breaking work in 1990, +["The ZINC experiment: An Economical Implementation of the ML Language".](http://hal.inria.fr/docs/00/07/00/49/PS/RT-0117.ps) + +This paper laid the theoretical basis for the implementation of an +instruction set for a strictly evaluated functional language such as OCaml. +The bytecode interpreter in modern OCaml is still based on the ZINC model. +The native code compiler uses a different model since it uses CPU registers +for function calls instead of always passing arguments on the stack, as the +bytecode interpreter does. + +Understanding the reasoning behind the different implementations of the +bytecode interpreter and the native compiler is a very useful exercise for +any budding language hacker. +
+ + +### Compiling and Linking Bytecode + +The `ocamlc` command compiles individual `ml` files into bytecode files that +have a `cmo` extension. The compiled bytecode files are matched with the +associated `cmi` interface, which contains the type signature exported to +other compilation units. + +A typical OCaml library consists of multiple source files, and hence multiple +`cmo` files that all need to be passed as command-line arguments to use the +library from other code. The compiler can combine these multiple files into a +more convenient single archive file by using the `-a` flag. Bytecode archives +are denoted by the `cma` extension. + +The individual objects in the library are linked as regular `cmo` files in +the order specified when the library file was built. If an object file within +the library isn't referenced elsewhere in the program, then it isn't included +in the final binary unless the `-linkall` flag forces its inclusion. This +behavior is analogous to how C handles object files and archives (`.o` and +`.a`, respectively). + +The bytecode files are then linked together with the OCaml standard library +to produce an executable program. The order in which `.cmo` arguments are +presented on the command line defines the order in which compilation units +are initialized at runtime. Remember that OCaml has no single `main` function +like C, so this link order is more important than in C programs. + +### Executing Bytecode + +The bytecode runtime comprises three parts: the bytecode interpreter, GC, and +a set of C functions that implement the primitive operations. The bytecode +contains instructions to call these C functions when required. + +The OCaml linker produces bytecode that targets the standard OCaml runtime by +default, and so needs to know about any C functions that are referenced from +other libraries that aren't loaded by default. + +Information about these extra libraries can be specified while linking a +bytecode archive: + +``` +$ ocamlc -a -o mylib.cma a.cmo b.cmo -dllib -lmylib + +``` + +The `dllib` flag embeds the arguments in the archive file. Any subsequent +packages linking this archive will also include the extra C linking +directive. This in turn lets the interpreter dynamically load the external +library symbols when it executes the bytecode. + +You can also generate a complete standalone executable that bundles the +`ocamlrun` interpreter with the bytecode in a single binary. This is known as +a *custom runtime* mode and is built as follows: + +``` +$ ocamlc -a -o mylib.cma -custom a.cmo b.cmo -cclib -lmylib + +``` + +The custom mode is the most similar mode to native code compilation, as both +generate standalone executables. There are quite a few other options +available for compiling bytecode (notably with shared libraries or building +custom runtimes). Full details can be found in the +[OCaml](https://ocaml.org/manual/comp.html#s%3Acomp-options). + +Dune can build a self-contained bytecode executable if you specify the +`byte_complete` mode in the executable rule. For example, this `dune` +file will generate a `prog.bc.exe` target: + +```scheme +(executable + (name prog) + (modules prog) + (modes byte byte_complete)) +``` + +### Embedding OCaml Bytecode in C + +A consequence of using the bytecode compiler is that the final link phase +must be performed by `ocamlc`. However, you might sometimes want to embed +your OCaml code inside an existing C application. OCaml also supports this +mode of operation via the `-output-obj` directive. + +This mode causes `ocamlc` to output an object file containing the bytecode +for the OCaml part of the program, as well as a `caml_startup` function. All +of the OCaml modules are linked into this object file as bytecode, just as +they would be for an executable. + +This object file can then be linked with C code using the standard C +compiler, needing only the bytecode runtime library (which is installed as +`libcamlrun.a`). Creating an executable just requires you to link the runtime +library with the bytecode object file. Here's an example to show how it all +fits together. + +Create two OCaml source files that contain a single print line: + +```ocaml file=examples/back-end-embed/embed_me1.ml +let () = print_endline "hello embedded world 1" +``` + + + +```ocaml file=examples/back-end-embed/embed_me2.ml +let () = print_endline "hello embedded world 2" +``` + +Next, create a C file to be your main entry point: + +``` +#include +#include +#include +#include +#include + +int +main (int argc, char **argv) +{ + printf("Before calling OCaml\n"); + fflush(stdout); + caml_startup (argv); + printf("After calling OCaml\n"); + return 0; +} +``` + +Now compile the OCaml files into a standalone object file: + +```sh dir=examples/back-end-embed +$ rm -f embed_out.c +$ ocamlc -output-obj -o embed_out.o embed_me1.ml embed_me2.ml +``` + +After this point, you no longer need the OCaml compiler, as `embed_out.o` has +all of the OCaml code compiled and linked into a single object file. Compile +an output binary using `gcc` to test this out: + +``` +$ gcc -fPIC -Wall -I`ocamlc -where` -L`ocamlc -where` -ltermcap -lm -ldl \ + -o finalbc.native main.c embed_out.o -lcamlrun +$ ./finalbc.native +Before calling OCaml +hello embedded world 1 +hello embedded world 2 +After calling OCaml +``` + +You can inspect the commands that `ocamlc` is invoking by adding `-verbose` +to the command line to help figure out the GCC command line if you get stuck. +You can even obtain the C source code to the `-output-obj` result by +specifying a `.c` output file extension instead of the `.o` we used earlier: + +```sh dir=examples/back-end-embed +$ ocamlc -output-obj -o embed_out.c embed_me1.ml embed_me2.ml +``` + +Embedding OCaml code like this lets you write OCaml that interfaces with any +environment that works with a C compiler. You can even cross back from the C +code into OCaml by using the `Callback` module to register named entry points +in the OCaml code. This is explained in detail in the +[interfacing with C](https://ocaml.org/manual/intfc.html) +section of the OCaml manual. + +## Compiling Fast Native Code + +The native code compiler is ultimately the tool that most production OCaml +code goes through. It compiles the lambda form into fast native code +executables, with cross-module inlining and additional optimization passes +that the bytecode interpreter doesn't perform. Care is taken to ensure +compatibility with the bytecode runtime, so the same code should run +identically when compiled with either toolchain. + +The `ocamlopt` command is the frontend to the native code compiler and has a +very similar interface to `ocamlc`. It also accepts `ml` and `mli` files, but +compiles them to: + +- A `.o` file containing native object code + +- A `.cmx` file containing extra information for linking and cross-module + optimization + +- A `.cmi` compiled interface file that is the same as the bytecode compiler + +When the compiler links modules together into an executable, it uses the +contents of the `cmx` files to perform cross-module inlining across +compilation units. This can be a significant speedup for standard library +functions that are frequently used outside of their module. + +Collections of `.cmx` and `.o` files can also be linked into a `.cmxa` +archive by passing the `-a` flag to the compiler. However, unlike the +bytecode version, you must keep the individual `cmx` files in the +compiler search path so that they are available for cross-module +inlining. If you don't do this, the compilation will still succeed, +but you will have missed out on an important optimization and have +slower binaries. + +### Inspecting Assembly Output + +The native code compiler generates assembly language that is then passed to +the system assembler for compiling into object files. You can get `ocamlopt` +to output the assembly by passing the `-S` flag to the compiler command +line. + +The assembly code is highly architecture-specific, so the following +discussion assumes an Intel or AMD 64-bit platform. We've generated the +example code using `-inline 20` and `-nodynlink` since it's best to generate +assembly code with the full optimizations that the compiler supports. Even +though these optimizations make the code a bit harder to read, it will give +you a more accurate picture of what executes on the CPU. Don't forget that +you can use the lambda code from earlier to get a slightly higher-level +picture of the code if you get lost in the more verbose assembly. + +#### The Impact of Polymorphic Comparison + +We warned you in [Maps And Hash +Tables](https://dev.realworldocaml.org/maps-and-hashtables.html#maps-and-hash-tables){data-type=xref} +that using polymorphic comparison is both convenient and +perilous. Let's look at precisely what the difference is at the +assembly language level now. + +First let's create a comparison function where we've explicitly annotated the +types, so the compiler knows that only integers are being compared: + +```ocaml file=examples/back-end/compare_mono.ml +let cmp (a:int) (b:int) = + if a > b then a else b +``` + +Now compile this into assembly and read the resulting `compare_mono.S` file. + +```sh dir=examples/back-end,skip +$ ocamlopt -S compare_mono.ml +``` + +This file extension may be lowercase on some platforms such as Linux. +If you've never seen assembly language before, then the contents may be +rather scary. While you'll need to learn x86 assembly to fully understand it, +we'll try to give you some basic instructions to spot patterns in this +section. The excerpt of the implementation of the `cmp` function can be found +below: + +``` +_camlCompare_mono__cmp_1008: + .cfi_startproc +.L101: + cmpq %rbx, %rax + jle .L100 + ret + .align 2 +.L100: + movq %rbx, %rax + ret + .cfi_endproc +``` + +The `_camlCompare_mono__cmp_1008` is an assembly label that has been computed +from the module name (`Compare_mono`) and the function name (`cmp_1008`). The +numeric suffix for the function name comes straight from the lambda form +(which you can inspect using `-dlambda`, but in this case isn't necessary). + +The arguments to `cmp` are passed in the `%rbx` and `%rax` registers, and +compared using the `jle` "jump if less than or equal" instruction. This +requires both the arguments to be immediate integers to work. Now let's see +what happens if our OCaml code omits the type annotations and is a +polymorphic comparison instead: + +```ocaml file=examples/back-end/compare_poly.ml +let cmp a b = + if a > b then a else b +``` + +Compiling this code with `-S` results in a significantly more complex +assembly output for the same function: + +``` +_camlCompare_poly__cmp_1008: + .cfi_startproc + subq $24, %rsp + .cfi_adjust_cfa_offset 24 +.L101: + movq %rax, 8(%rsp) + movq %rbx, 0(%rsp) + movq %rax, %rdi + movq %rbx, %rsi + leaq _caml_greaterthan(%rip), %rax + call _caml_c_call +.L102: + leaq _caml_young_ptr(%rip), %r11 + movq (%r11), %r15 + cmpq $1, %rax + je .L100 + movq 8(%rsp), %rax + addq $24, %rsp + .cfi_adjust_cfa_offset -24 + ret + .cfi_adjust_cfa_offset 24 + .align 2 +.L100: + movq 0(%rsp), %rax + addq $24, %rsp + .cfi_adjust_cfa_offset -24 + ret + .cfi_adjust_cfa_offset 24 + .cfi_endproc +``` + +The `.cfi` directives are assembler hints that contain Call Frame Information +that lets the debugger provide more sensible backtraces, and they have no +effect on runtime performance. Notice that the rest of the implementation is +no longer a simple register comparison. Instead, the arguments are pushed on +the stack (the `%rsp` register), and a C function call is invoked by placing +a pointer to `caml_greaterthan` in `%rax` and jumping to `caml_c_call`. + +OCaml on x86_64 architectures caches the location of the minor heap in the +`%r15` register since it's so frequently referenced in OCaml functions. The +minor heap pointer can also be changed by the C code that's being called +(e.g., when it allocates OCaml values), and so `%r15` is restored after +returning from the `caml_greaterthan` call. Finally, the return value of the +comparison is popped from the stack and returned. + +#### Benchmarking Polymorphic Comparison + +You don't have to fully understand the intricacies of assembly language to +see that this polymorphic comparison is much heavier than the simple +monomorphic integer comparison from earlier. Let's confirm this hypothesis +again by writing a quick `Core_bench` test with both functions: + +```ocaml file=examples/back-end/bench_poly_and_mono/bench_poly_and_mono.ml +open Core +open Core_bench + +let polymorphic_compare () = + let cmp a b = Stdlib.(if a > b then a else b) in + for i = 0 to 1000 do + ignore(cmp 0 i) + done + +let monomorphic_compare () = + let cmp (a:int) (b:int) = Stdlib.(if a > b then a else b) in + for i = 0 to 1000 do + ignore(cmp 0 i) + done + +let tests = + [ "Polymorphic comparison", polymorphic_compare; + "Monomorphic comparison", monomorphic_compare ] + +let () = + List.map tests ~f:(fun (name,test) -> Bench.Test.create ~name test) + |> Bench.make_command + |> Command_unix.run +``` + +Running this shows quite a significant runtime difference between the two: + +```sh dir=examples/back-end/bench_poly_and_mono,non-deterministic=command +$ dune exec -- ./bench_poly_and_mono.exe -ascii -quota 1 +Estimated testing time 2s (2 benchmarks x 1s). Change using '-quota'. + + Name Time/Run Percentage + ------------------------ ------------ ------------ + Polymorphic comparison 4_050.20ns 100.00% + Monomorphic comparison 471.75ns 11.65% + +``` + +We see that the polymorphic comparison is close to 10 times slower! These +results shouldn't be taken too seriously, as this is a very narrow test that, +like all such microbenchmarks, isn't representative of more complex +codebases. However, if you're building numerical code that runs many +iterations in a tight inner loop, it's worth manually peering at the produced +assembly code to see if you can hand-optimize it. + +
+ +#### Accessing Stdlib Modules from Within Core + +In the benchmark above comparing polymorphic and monomorphic +comparison, you may have noticed that we prepended the comparison +functions with `Stdlib`. This is because the Core module explicitly +redefines the `>` and `<` and `=` operators to be specialized for +operating over `int` types, as explained in [Maps and +Hashtables](https://dev.realworldocaml.org/maps-and-hashtables.html#the-polymorphic-comparator){data-type=xref}. +You can always recover any of the OCaml standard library functions by +accessing them through the `Stdlib` module, as we did in our +benchmark. +
+ + +### Debugging Native Code Binaries + +The native code compiler builds executables that can be debugged using +conventional system debuggers such as GNU `gdb`. You need to compile your +libraries with the `-g` option to add the debug information to the output, +just as you need to with C compilers. + +Extra debugging information is inserted into the output assembly when the +library is compiled in debug mode. These include the CFI stubs you will have +noticed in the profiling output earlier (`.cfi_start_proc` and +`.cfi_end_proc` to delimit an OCaml function call, for example). + +#### Understanding Name Mangling + +So how do you refer to OCaml functions in an interactive debugger like +`gdb`? The first thing you need to know is how OCaml function names compile +down to symbol names in the compiled object files, a procedure generally +called *name mangling*. + +Each OCaml source file is compiled into a native object file that must export +a unique set of symbols to comply with the C binary interface. This means +that any OCaml values that may be used by another compilation unit need to be +mapped onto a symbol name. This mapping has to account for OCaml language +features such as nested modules, anonymous functions, and variable names that +shadow one another. + +The conversion follows some straightforward rules for named variables and +functions: + +- The symbol is prefixed by `caml` and the local module name, with dots + replaced by underscores. + +- This is followed by a double `__` suffix and the variable name. + +- The variable name is also suffixed by a `_` and a number. This is the + result of the lambda compilation, which replaces each variable name with a + unique value within the module. You can determine this number by examining + the `-dlambda` output from `ocamlopt`. + +Anonymous functions are hard to predict without inspecting intermediate +compiler output. If you need to debug them, it's usually easier to modify the +source code to let-bind the anonymous function to a variable name. + +#### Interactive Breakpoints with the GNU Debugger + +Let's see name mangling in action with some interactive debugging using GNU +`gdb`. + +Let's write a mutually recursive function that selects alternating values +from a list. This isn't tail-recursive, so our stack size will grow as we +single-step through the execution: + +```ocaml file=examples/back-end/alternate_list/alternate_list.ml +open Core + +let rec take = + function + |[] -> [] + |hd::tl -> hd :: (skip tl) +and skip = + function + |[] -> [] + |_::tl -> take tl + +let () = + take [1;2;3;4;5;6;7;8;9] + |> List.map ~f:string_of_int + |> String.concat ~sep:"," + |> print_endline +``` + +Compile and run this with debugging symbols. You should see the following +output: + +```scheme file=examples/back-end/alternate_list/dune +(executable + (name alternate_list) + (libraries core)) +``` + + + +```sh dir=examples/back-end/alternate_list +$ dune build alternate_list.exe +$ ./_build/default/alternate_list.exe -ascii -quota 1 +1,3,5,7,9 +``` + +Now we can run this interactively within `gdb`: + +``` +$ gdb ./alternate_list.native +GNU gdb (GDB) 7.4.1-debian +Copyright (C) 2012 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. Type "show copying" +and "show warranty" for details. +This GDB was configured as "x86_64-linux-gnu". +For bug reporting instructions, please see: +... +Reading symbols from /home/avsm/alternate_list.native...done. +(gdb) +``` + +The `gdb` prompt lets you enter debug directives. Let's set the program to +break just before the first call to `take`: + +``` +(gdb) break camlAlternate_list__take_69242 +Breakpoint 1 at 0x5658d0: file alternate_list.ml, line 5. +``` + +We used the C symbol name by following the name mangling rules defined +earlier. A convenient way to figure out the full name is by tab completion. +Just type in a portion of the name and press the key to see a list of +possible completions. + +Once you've set the breakpoint, start the program executing: + +``` +(gdb) run +Starting program: /home/avsm/alternate_list.native +[Thread debugging using libthread_db enabled] +Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". + +Breakpoint 1, camlAlternate_list__take_69242 () at alternate_list.ml:5 +4 function +``` + +The binary has run until the first `take` invocation and stopped, +waiting for further instructions. GDB has lots of features, so let's +continue the program and check the backtrace after a couple of +recursions: + +``` +(gdb) cont +Continuing. + +Breakpoint 1, camlAlternate_list__take_69242 () at alternate_list.ml:5 +4 function +(gdb) cont +Continuing. + +Breakpoint 1, camlAlternate_list__take_69242 () at alternate_list.ml:5 +4 function +(gdb) bt +#0 camlAlternate_list__take_69242 () at alternate_list.ml:4 +#1 0x00000000005658e7 in camlAlternate_list__take_69242 () at alternate_list.ml:6 +#2 0x00000000005658e7 in camlAlternate_list__take_69242 () at alternate_list.ml:6 +#3 0x00000000005659f7 in camlAlternate_list__entry () at alternate_list.ml:14 +#4 0x0000000000560029 in caml_program () +#5 0x000000000080984a in caml_start_program () +#6 0x00000000008099a0 in ?? () +#7 0x0000000000000000 in ?? () +(gdb) clear camlAlternate_list__take_69242 +Deleted breakpoint 1 +(gdb) cont +Continuing. +1,3,5,7,9 +[Inferior 1 (process 3546) exited normally] +``` + +The `cont` command resumes execution after a breakpoint has paused it, +`bt` displays a stack backtrace, and `clear` deletes the breakpoint so the +application can execute until completion. GDB has a host of other features we +won't cover here, but you can view more guidelines via Mark Shinwell's talk +on +["Real-world debugging in OCaml."](http://www.youtube.com/watch?v=NF2WpWnB-nk%3C) + +One very useful feature of OCaml native code is that C and OCaml share the +same stack. This means that GDB backtraces can give you a combined view of +what's going on in your program *and* runtime library. This includes any +calls to C libraries or even callbacks into OCaml from the C layer if you're +in an environment which embeds the OCaml runtime as a library. + + +### Profiling Native Code + +The recording and analysis of where your application spends its execution +time is known as *performance profiling*. OCaml native code binaries can be +profiled just like any other C binary, by using the name mangling described +earlier to map between OCaml variable names and the profiler output. + +Most profiling tools benefit from having some instrumentation included in the +binary. OCaml supports two such tools: + +- GNU `gprof`, to measure execution time and call graphs + +- The [Perf](https://perf.wiki.kernel.org/) profiling framework in modern + versions of Linux + +Note that many other tools that operate on native binaries, such as Valgrind, +will work just fine with OCaml as long as the program is linked with the +`-g` flag to embed debugging symbols. + +#### Gprof + +`gprof` produces an execution profile of an OCaml program by recording a call +graph of which functions call one another, and recording the time these calls +take during the program execution. + +Getting precise information out of `gprof` requires passing the `-p` flag to +the native code compiler when compiling *and* linking the binary. This +generates extra code that records profile information to a file called +`gmon.out` when the program is executed. This profile information can then be +examined using `gprof`. + +#### Perf + +Perf is a more modern alternative to `gprof` that doesn't require you to +instrument the binary. Instead, it uses hardware counters and debug +information within the binary to record information accurately. + +Run Perf on a compiled binary to record information first. We'll use our +write barrier benchmark from earlier, which measures memory allocation versus +in-place modification: + +``` +$ perf record -g ./barrier_bench.native +Estimated testing time 20s (change using -quota SECS). + + Name Time (ns) Time 95ci Percentage + ---- --------- --------- ---------- + mutable 7_306_219 7_250_234-7_372_469 96.83 + immutable 7_545_126 7_537_837-7_551_193 100.00 + +[ perf record: Woken up 11 times to write data ] +[ perf record: Captured and wrote 2.722 MB perf.data (~118926 samples) ] +perf record -g ./barrier.native +Estimated testing time 20s (change using -quota SECS). + + Name Time (ns) Time 95ci Percentage + ---- --------- --------- ---------- + mutable 7_306_219 7_250_234-7_372_469 96.83 + immutable 7_545_126 7_537_837-7_551_193 100.00 + +[ perf record: Woken up 11 times to write data ] +[ perf record: Captured and wrote 2.722 MB perf.data (~118926 samples) ] +``` + +When this completes, you can interactively explore the results: + +``` +$ perf report -g ++ 48.86% barrier.native barrier.native [.] camlBarrier__test_immutable_69282 ++ 30.22% barrier.native barrier.native [.] camlBarrier__test_mutable_69279 ++ 20.22% barrier.native barrier.native [.] caml_modify +``` + +This trace broadly reflects the results of the benchmark itself. The mutable +benchmark consists of the combination of the call to `test_mutable` and the +`caml_modify` write barrier function in the runtime. This adds up to slightly +over half the execution time of the application. + +Perf has a growing collection of other commands that let you archive these +runs and compare them against each other. You can read more on the +[home page](http://perf.wiki.kernel.org). + +
+ +#### Using the Frame Pointer to Get More Accurate Traces + +Although Perf doesn't require adding in explicit probes to the binary, it +does need to understand how to unwind function calls so that the kernel can +accurately record the function backtrace for every event. +Since Linux 3.9 the kernel has had support for using DWARF debug information +to parse the program stack, which is emitted when the `-g` flag is passed +to the OCaml compiler. For even more accurate stack parsing, we need +the compiler to fall back to using the same conventions as C for +function calls. On 64-bit Intel systems, this means that a special register +known as the *frame pointer* is used to record function call history. +Using the frame pointer in this fashion means a slowdown (typically around +3-5%) since it's no longer available for general-purpose use. + +OCaml thus +makes the frame pointer an optional feature that can be used to improve the +resolution of Perf traces. +opam provides a compiler switch that compiles OCaml with the frame pointer +activated: + +```sh skip +$ opam switch create 4.13+fp ocaml-variants.4.13.1+options ocaml-option-fp +``` + +Using the frame pointer changes the OCaml calling convention, but opam takes +care of recompiling all your libraries with the new interface. +
+ + +### Embedding Native Code in C + +The native code compiler normally links a complete executable, but can also +output a standalone native object file just as the bytecode compiler can. +This object file has no further dependencies on OCaml except for the runtime +library. + +The native code runtime is a different library from the bytecode one, and is +installed as `libasmrun.a` in the OCaml standard library directory. + +Try this custom linking by using the same source files from the bytecode +embedding example earlier in this chapter: + +``` +$ ocamlopt -output-obj -o embed_native.o embed_me1.ml embed_me2.ml +$ gcc -Wall -I `ocamlc -where` -o final.native embed_native.o main.c \ + -L `ocamlc -where` -lasmrun -ltermcap -lm -ldl +$ ./final.native +Before calling OCaml +hello embedded world 1 +hello embedded world 2 +After calling OCaml +``` + +The `embed_native.o` is a standalone object file that has no further +references to OCaml code beyond the runtime library, just as with the +bytecode runtime. Do remember that the link order of the libraries is +significant in modern GNU toolchains (especially as used in Ubuntu 11.10 and +later) that resolve symbols from left to right in a single +pass. + +
+ +#### Activating the Debug Runtime + +Despite your best efforts, it is easy to introduce a bug into some +components, such as C bindings, that causes heap invariants to be violated. +OCaml includes a `libasmrund.a` variant of the runtime library which is +compiled with extra debugging checks that perform extra memory integrity +checks during every garbage collection cycle. Running these extra checks will +abort the program nearer the point of corruption and help isolate the bug in +the C code. + +To use the debug library, just link your program with the +`-runtime-variant d` flag: +
+ +```sh dir=examples/back-end-embed,non-deterministic=output +$ ocamlopt -runtime-variant d -verbose -o hello.native hello.ml ++ as -o 'hello.o' '/tmp/build_cd0b96_dune/camlasmd3c336.s' ++ as -o '/tmp/build_cd0b96_dune/camlstartup9d55d0.o' '/tmp/build_cd0b96_dune/camlstartup2b2cd3.s' ++ gcc -O2 -fno-strict-aliasing -fwrapv -pthread -Wall -Wdeclaration-after-statement -fno-common -fexcess-precision=standard -fno-tree-vrp -ffunction-sections -Wl,-E -o 'hello.native' '-L/home/yminsky/.opam/rwo-4.13.1/lib/ocaml' '/tmp/build_cd0b96_dune/camlstartup9d55d0.o' '/home/yminsky/.opam/rwo-4.13.1/lib/ocaml/std_exit.o' 'hello.o' '/home/yminsky/.opam/rwo-4.13.1/lib/ocaml/stdlib.a' '/home/yminsky/.opam/rwo-4.13.1/lib/ocaml/libasmrund.a' -lm -ldl +$ ./hello.native +### OCaml runtime: debug mode ### +Initial minor heap size: 256k words +Initial major heap size: 992k bytes +Initial space overhead: 120% +Initial max overhead: 500% +Initial heap increment: 15% +Initial allocation policy: 2 +Initial smoothing window: 1 +Hello OCaml World! +``` + +## Summarizing the File Extensions + +We've seen how the compiler uses intermediate files to store various stages +of the compilation toolchain. Here's a cheat sheet of all them in one place. + +- `.ml` are source files for compilation unit module implementations. +- `.mli` are source files for compilation unit module interfaces. If + missing, generated from the `.ml` file. +- `.cmi` are compiled module interface from a corresponding `.mli` + source file. +- `.cmo` are compiled bytecode object file of the module + implementation. +- `.cma` are a library of bytecode object files packed into a single + file. +- `.o` are C source files that have been compiled into native object + files by the system `cc`. +- `.cmt` are the typed abstract syntax tree for module + implementations. +- `.cmti` are the typed abstract syntax tree for module interfaces. +- `.annot` are old-style annotation file for displaying `typed`, + superseded by `cmt` files. + +The native code compiler also generates some additional files. + +- `.o` are compiled native object files of the module implementation. +- `.cmx` contains extra information for linking and cross-module + optimization of the object file. +- `.cmxa` and `.a` are libraries of `cmx` and `o` units, stored in the + `cmxa` and `a` files respectively. These files are always needed + together. +- `.S` or `.s` are the assembly language output if `-S` is specified. diff --git a/src/ocamlorg_data/data.mli b/src/ocamlorg_data/data.mli index 79727750ea..c9c9837a82 100644 --- a/src/ocamlorg_data/data.mli +++ b/src/ocamlorg_data/data.mli @@ -211,6 +211,14 @@ module Tutorial : sig end type toc = { title : string; href : string; children : toc list } + type contribute_link = { url : string; description : string } + type banner = { image : string; url : string; alt : string } + + type external_tutorial = { + tag : string; + banner : banner; + contribute_link : contribute_link; + } type t = { title : string; @@ -219,6 +227,7 @@ module Tutorial : sig description : string; section : Section.t; category : string; + external_tutorial : external_tutorial option; body_md : string; toc : toc list; body_html : string; diff --git a/src/ocamlorg_frontend/components/learn_components.eml b/src/ocamlorg_frontend/components/learn_components.eml index c3b23950de..0bba641747 100644 --- a/src/ocamlorg_frontend/components/learn_components.eml +++ b/src/ocamlorg_frontend/components/learn_components.eml @@ -189,11 +189,11 @@ let tool_card ~img_src ~title ~text ~url = <%s! Icons.arrow_right_circle "h-5 w-5" %>
-let contribute_footer ~href = +let contribute_footer ~href ~description =

Help Improve Our Documentation

-

All OCaml docs are open source. See something that's wrong or unclear? Submit a pull request.

+

<%s description %>

t.tag) tutorial.external_tutorial) in + let tutorial_sidebar_links_by_category category = + tutorials |> List.filter (fun (x : Data.Tutorial.t) -> x.category = category) |> List.map render_tutorial |> String.concat "\n" + in + let categories = + let unique lst = + let rec unique' acc = function + | [] -> List.rev acc + | h::t -> unique' (if List.mem h acc then acc else h :: acc) t + in + unique' [] lst + in + tutorials |> List.map (fun (tutorial : Data.Tutorial.t) -> tutorial.category) |> unique + in + <% if section = Platform then ( %> + <%s! Learn_layout.sidebar_link_group "Platform" + (tutorial_sidebar_links_by_category "platform") + ~extra_html:( + (render_tutorial_link ~title:"Overview" ~slug:"platform" ~tag:None)) %> + <% ); %> + + <% categories |> List.iter (fun category -> %> + <%s! Learn_layout.sidebar_link_group category + (tutorial_sidebar_links_by_category category) %> + <% ); %> + + <% if section = Guides then ( %> + <%s! Learn_layout.sidebar_link_group "Is OCaml Yet" + (tutorial_sidebar_links_by_category "is-ocaml-yet") + ~extra_html:( + (render_tutorial_link ~title:"Is OCaml web yet?" ~slug:"is-ocaml-web-yet") ~tag:None) %> + <% ); %> diff --git a/src/ocamlorg_frontend/layouts/learn_layout.eml b/src/ocamlorg_frontend/layouts/learn_layout.eml index d795422538..d46af2c989 100644 --- a/src/ocamlorg_frontend/layouts/learn_layout.eml +++ b/src/ocamlorg_frontend/layouts/learn_layout.eml @@ -80,8 +80,16 @@ let sidebar ~tutorials ~(section: section) = - let sidebar_link ~title ~href ~current = + let sidebar_link ~title ~href ~current ~tag = + let render_tag tag = match tag with + | None -> "" + | Some t -> + + <%s t %> + + in + <%s! render_tag tag %> <%s title %> in @@ -95,7 +103,7 @@ let sidebar let render_tutorial_link ~title ~slug = sidebar_link ~title ~href:(Url.tutorial slug) ~current:(current_tutorial = Some (slug)) in - let render_tutorial (tutorial : Data.Tutorial.t) = render_tutorial_link ~title:tutorial.title ~slug:tutorial.slug in + let render_tutorial (tutorial : Data.Tutorial.t) = render_tutorial_link ~title:tutorial.title ~slug:tutorial.slug ~tag:(Option.map (fun (et: Data.Tutorial.external_tutorial) -> et.tag) tutorial.external_tutorial) in let tutorial_sidebar_links_by_category category = tutorials |> List.filter (fun (x : Data.Tutorial.t) -> x.category = category) |> List.map render_tutorial |> String.concat "\n" in @@ -113,7 +121,7 @@ let sidebar <%s! sidebar_link_group "Platform" (tutorial_sidebar_links_by_category "platform") ~extra_html:( - (render_tutorial_link ~title:"Overview" ~slug:"platform")) %> + (render_tutorial_link ~title:"Overview" ~slug:"platform" ~tag:None)) %> <% ); %> <% categories |> List.iter (fun category -> %> @@ -125,7 +133,7 @@ let sidebar <%s! sidebar_link_group "Is OCaml Yet" (tutorial_sidebar_links_by_category "is-ocaml-yet") ~extra_html:( - (render_tutorial_link ~title:"Is OCaml web yet?" ~slug:"is-ocaml-web-yet")) %> + (render_tutorial_link ~title:"Is OCaml web yet?" ~slug:"is-ocaml-web-yet" ~tag:None)) %> <% ); %> let single_column_layout diff --git a/src/ocamlorg_frontend/pages/is_ocaml_yet.eml b/src/ocamlorg_frontend/pages/is_ocaml_yet.eml index ad9346e766..db615c3dac 100644 --- a/src/ocamlorg_frontend/pages/is_ocaml_yet.eml +++ b/src/ocamlorg_frontend/pages/is_ocaml_yet.eml @@ -80,5 +80,5 @@ Learn_layout.three_column_layout <% ); %>
- <%s! Learn_components.contribute_footer ~href:("https://github.com/ocaml/ocaml.org/tree/main/data/is_ocaml_yet/"^ meta.id ^ ".md") %> + <%s! Learn_components.contribute_footer ~href:("https://github.com/ocaml/ocaml.org/tree/main/data/is_ocaml_yet/"^ meta.id ^ ".md") ~description:"All OCaml docs are open source. See something that's wrong or unclear? Submit a pull request." %>
diff --git a/src/ocamlorg_frontend/pages/tutorial.eml b/src/ocamlorg_frontend/pages/tutorial.eml index d65170768a..908365a518 100644 --- a/src/ocamlorg_frontend/pages/tutorial.eml +++ b/src/ocamlorg_frontend/pages/tutorial.eml @@ -43,6 +43,21 @@ let render ~related_exercises ~canonical = +let href, description = match tutorial.external_tutorial with + | None -> + "https://github.com/ocaml/ocaml.org/blob/"^ Commit.hash ^"/data/"^ tutorial.fpath, + "All OCaml docs are open source. See something that's wrong or unclear? Submit a pull request." + | Some external_tutorial -> + external_tutorial.contribute_link.url, + external_tutorial.contribute_link.description +in +let render_external_tutorial_banner (opt_external_tutorial : Data.Tutorial.external_tutorial option) = match opt_external_tutorial with + | None -> "" + | Some external_tutorial -> + + <%s external_tutorial.banner.alt %> + +in Learn_layout.three_column_layout ~title:(Printf.sprintf "%s ยท OCaml Documentation" tutorial.title) ~description:tutorial.description @@ -52,7 +67,8 @@ Learn_layout.three_column_layout ~right_sidebar_html:(Some(right_sidebar tutorial)) ~current:(of_tutorial_section tutorial.section) @@
+ <%s! render_external_tutorial_banner tutorial.external_tutorial %> <%s! tutorial.body_html %> <%s! render_related_exercises related_exercises %> - <%s! Learn_components.contribute_footer ~href:("https://github.com/ocaml/ocaml.org/blob/"^ Commit.hash ^"/data/"^ tutorial.fpath) %> + <%s! Learn_components.contribute_footer ~href ~description %>
diff --git a/tool/ood-gen/lib/tutorial.ml b/tool/ood-gen/lib/tutorial.ml index fe41549889..cc4c407316 100644 --- a/tool/ood-gen/lib/tutorial.ml +++ b/tool/ood-gen/lib/tutorial.ml @@ -13,11 +13,25 @@ end type toc = { title : string; href : string; children : toc list } [@@deriving show { with_path = false }] +type contribute_link = { url : string; description : string } +[@@deriving of_yaml, show { with_path = false }] + +type banner = { image : string; url : string; alt : string } +[@@deriving of_yaml, show { with_path = false }] + +type external_tutorial = { + tag : string; + contribute_link : contribute_link; + banner : banner; +} +[@@deriving of_yaml, show { with_path = false }] + type metadata = { id : string; title : string; description : string; category : string; + external_tutorial : external_tutorial option; } [@@deriving of_yaml] @@ -28,6 +42,7 @@ type t = { description : string; section : Section.t; category : string; + external_tutorial : external_tutorial option; toc : toc list; body_md : string; body_html : string; @@ -122,6 +137,20 @@ type toc = ; href : string ; children : toc list } +type contribute_link = + { url : string + ; description : string + } +type banner = + { image : string + ; url : string + ; alt : string + } +type external_tutorial = + { tag : string + ; banner : banner + ; contribute_link : contribute_link + } type t = { title : string ; fpath : string @@ -129,6 +158,7 @@ type t = ; description : string ; section : Section.t ; category : string + ; external_tutorial : external_tutorial option ; body_md : string ; toc : toc list ; body_html : string