From ce5b5163467b4129bf124f50d269167bf3948440 Mon Sep 17 00:00:00 2001 From: sdiehl Date: Thu, 6 Feb 2020 12:18:58 +0000 Subject: [PATCH] Write more --- img/.gitignore | 2 ++ img/Makefile | 10 ++++++++++ img/errors.png | Bin 4912 -> 0 bytes img/fork.png | Bin 6893 -> 0 bytes img/hm.png | Bin 9365 -> 0 bytes img/matrix.png | Bin 28536 -> 0 bytes tutorial.md | 16 ++++++++-------- 7 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 img/.gitignore create mode 100644 img/Makefile delete mode 100644 img/errors.png delete mode 100644 img/fork.png delete mode 100644 img/hm.png delete mode 100644 img/matrix.png diff --git a/img/.gitignore b/img/.gitignore new file mode 100644 index 0000000..9d73a93 --- /dev/null +++ b/img/.gitignore @@ -0,0 +1,2 @@ +*.eps +*.ps diff --git a/img/Makefile b/img/Makefile new file mode 100644 index 0000000..359657e --- /dev/null +++ b/img/Makefile @@ -0,0 +1,10 @@ +SRC=$(wildcard *.dot) +OUT=$(SRC:.dot=.png) + +%.png : %.dot + dot -Tpng -Gdpi=300 $< -o $@ + +all: $(OUT) + +clean: + rm -f $(OUT) diff --git a/img/errors.png b/img/errors.png deleted file mode 100644 index 748f68380d2632257d89085d578d6755a646c423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4912 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

os+m<8wB|BFG%0_DlNxb zA02$&PvP#V_D!y06B8z{QwQC?A;l6W_XXi_h7vyOV$lFQ#7Kl zU>?X!>Qj&qiXZRZV}N_(r656qhA83hoNA9lN}lmHNEY5)c!2n=X=V1c`wIs0l0(l2 z1Q$7&(P*P&r!y91EDopdb^J8c2RqBRFfNhC7mL!27fGcrfIFG2e=1Fg(|&axSGr;~ zTa#VBpje?w<4;ZZWXF$XKYChEr_-9og<`Q%(!wL|mCc z8TwX+5=|;46AE6__=S~N>^wuskDJx-cNrb96lw`DhEU*!#};`Qmhb?`;IN;OE2H1@l3vl z9@47DTYd0Ov-Gkuwy+0o?n}%bZW_R#Z?|b0G8k150BD80sF5M7lZCOxZ`*;oVAMQb zpc~Wos(6Zl6gy{-sIC%V8c#Hbo&wi>V(`YOaB>n!p=e~eC=Hcp;4ZAQ1(*gz3EQWo zr&pBn2^Bb0YWl~rnz5qu4Pfhx9bU%S7&K`;XriPo@jn^2A?}hY_g;f~SvrUcxokT4 z>@x~#nZ`i5%#ic>%Tz3u(8>GVH!ZMwrAFSW-y zxen)7aYiOjNJsy>okruN`Z4n2%*_Fcf(4VxYSU@bEI?G@Av&oVUAw$-y1(|Wlc8+ti#G@P4 zeTSP1sI)6!tA0S@O;u%9r{1C6vq1T0j67iod*kVp>8~RcXyxR(hTi7SPtAZ0-k6~S{;Sg-!u8X#y7Amdd1 zpA(|{bA>I9r%hz}>R&bU=ix@4S)f Stw#EP1<=tl)U1ZvWBv~ks^vBS diff --git a/img/hm.png b/img/hm.png deleted file mode 100644 index f9af0eada117dfb5392c5dc0e5af5a2b26c60a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9365 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 diff --git a/img/matrix.png b/img/matrix.png deleted file mode 100644 index 1a6227360e971a0cea076dc890cd9d6bbb3108e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28536 zcmcHgWmFz*6E%n;3GM`U5AJTk-66QULkQfs1oz+$!QBb&?gV#tceiPtcg{NB`El0# z8dd{MLpOa%?b=nfD^yWl0uc@u4h#$oQA$!&84L^}0XQFofdalZt>G2|-#$4BOR2&D zAD%EKA;8bD4w9NqU|>j;AD`ek=M*o%MVy~v8b4L+&3=Lmf0%-SKp+N7J8LInLkCj^ z`yb|MXMDI|V8mcjqC%>!=_jk8WYyWn&dc+rX>$+bBvVay#$TV|F{}LA3}!?T6MNAj z_sr3ZrBrRI2Sg)NExve2sj8xgedfi6mvdj$t-oJAbUJ^0bxbn!$S_QF5SXZ)V0Bvd zC^#AAEevyP@F8A=wj7L`TjQ{HytdumqbH>KS3giH>y;BaJ^y+b07|pR<+Q&<@T+Ij z6FY(@a+$wdHhW03Ph&dwr={2mbxkO~?;Uq;$Y5ey%UAp&rWF4s8x8{h5@(1#bjjeK z^EE8ztF(P_p0X0~yDwsgtO=?#z$M`DDu|W-xTN$Ye?nEc_~TMo&P|Fm4aR?0;{{Zt z^8fq8uqktzV%7g{S9+4ANci9F(pmqpaU>P!9c zgzhTQ4Ztg{F5EMiz>gsF_=;(6)EYi->=yJkeZ}uFROqGzGiWausOhk4tkec2!L7rf!K#!5dCvkcoE>y2e zs9W1I$hQYEg)E4dt+}PxoeBH>G{aw+%x4<7g{Oo38Si^<^6W2|wDmi(C=g&| z2f3a@(T-_bEi^J(>1f#-%{bqU8s4>?Kr6Bq2t0+fJ zasG-iF?S9-uU>O}%ZuZ_NEWl>rl0+cOYL^-=VG1k-|~jGCC{k3*S~h&QB`*9*HB<4 zMHe4cu9GX)6M(6|eG1Zh!qRawCX-v~wxV*Ik`2;%VoF{8{OuGJesQ{l-M|7W*y}h) zE1?D_cD%{n$$Sl#6oxgB88N(2IPYXO_zKpZgUDw0$U!J}8aEZ_vs`Gc`SEW}^|5C2 zSXMMdhIpeDFS_Ld@T|eA8daLPN_{L>o^*Fy#-%!rs`|$>Gi9DO%_YvB;pX~VZQ7JN zTr_uF?#gJF_{BAB^W=E>e{?urb5=8aSDh_?OMd#B1+hWMLOq`Uv76&xRc2BfX54b@#?21Ycm-f_{>=|`fbOhvBJpy3nPv2-`$vd^{afpv6wsNDukWKe zX&?4l!x*Ned^m_d`cGc~w|wN*BfA;Ss$Czy=^U3&AS(Zm-{;b77*jB`<0maxC>b)P z<4%_&gWCKHg?5n!50USTzx>%`H2BA$m2w!}*%Ow$>$Y;^;~6~Jrd~4mEGftR$hLKg z&a4+6*l$Y(C>7Pd;2a{EW%c@*zcEBn924RoDZlJ_N%BYVdl4_zGDL%7{x`w~^+d}T zeU;_|W?as4u+G$Y`SBt3fhJM@=|)HH+hYOy>aj!~-<_d>9L-Zl8nycbMz_>&V&E`B zXDJ=gvZw!HgY?UZ#BBJa(&dn+)!TEXo5VD>>(lM?+EkEoEZZH7azVO9l)*e3u!vvU zc%lg=UZ7UBvCh$425Wbx(NY`u))}ovcJiMAN}jH{AB4hm;-Xgim5Wr*LBpUQ+%$HZOCn6w=LQ9)gqF+ z6Aii5VTwKO?PyZRI&SJ_dUmRU|L;3#Grtgq>170;S$`t7T=@w#)&y(#7kDN9eL@yg z!@p!bLam>zVP_MKWeEPARZso9kFbH(X?mqC{)vbiX{|UfV<^p!FGZ69DG|%E+pB>k z_uqb*IXLGS7I2MKw8b%?r10NcX;h$$H>fbptn(nS@A>mk{wy?H4=pYAC@~@WM8Cue z6~lM9(59jMpE2DzmlV{b7?`5|Efok`;e^n05x9T0%Qzk+9Pga22v?hQr{ABkzQnL4 zR#lGz?c=)ec@bz1=tWrn!zPdYcE~{^;DvgArv?TyCVaNYnX{PT$k6oPmU~7^Q017e z+LU367<@HwW>&=l9qVM@P83dUNgMrZ^2s@vU54RQ<&?AYR(T$1RvF~pO|@fZrTx#j zvlXUxq`|6U_P4+=Z{o70qR#V)JQ92(KMXBkU{PY{guADgJD40pTL zTB@6tN^@~9>k$@QwJOmF~2A+Gq28p#%0%*$9c0r*5kR{f0HOu7y9wi&Xkq1lzR2S`-$9}3FVkLLN6mj)O?(hmuA@FKJQsW z{>DFt_}?7`ssFP;rT-t^H|L7=O)0)j1jZ4I0OSm7;6kklO&6zZw`~1+Spk;hlOp5_ zS-#D*pw5SH&jtA8q7Oa-moM_tqB(RBm^!!u49QuatP6xkwdZrLX=fDI#{^N(eDJO3 zq+R7<4_@AHFpgg?(3sE~4JzZU1j)yCN5>;T+`xS0h}{CLGygO7?tUju=c8~)?zS!= zFr}vJe?Exo(r@KAuosx0sj6@!I>I46fheqjCfhbgPB$RL@&9fzB0sjI}+=N4hGWdzcq8i{ynqTnkn)jrH zLoRg*7-gee>UUvCel&Z30p_*sV}wdP$`B^?4I(hi;xL!gipX?edf--pD1tB~1r1Ka zmfvzwNXz3~M|=fAbt*8-=tWRyE$T0rcAxcZrGI60dD={XjRc|`2cpb#ggfP-7%^9& zyTWK7#lw?~ALrQ!q6>S%Jfw|3LlmJ4pL`M4S&<@b#Y~dc?kf+`E3s zL&?eAH{?-VJi&GHqnC?*Jc=@+2H1PT2Ya{7rH19f)>s^G&jMdJq~z+!kB7{Q=k7EZ z75XLc~~kLeSIB_k2c`J5_(<$mX%rn%t3}ajv4)`#n;2H<2LV)FiZoA z5$Xl>#t&jmX>JHf2ze+Z$nUTu{UFDT(o`cs=ycx{a=?;%18|F`<-~O%-Ng`DP`X)| z&}Fn(Zdx(qL&0(8CPzw`tnjLKObnzHlq%)cSHT0A;<{i+dL=h3H_)het;g=As6pVI za3qNk@PR1$Qq+Q$OITloTcc921*YX&ubHfQ%^@Vfv+BdFd&(xC-G~UMsXIIJ;_0o9 z^Wx9pNf@B@Ag%n;^5OxUu?JItCzwE?k_i=I;XmZ6@W6G7w>)y&xY8@LzGOOPj_IZ1DLyBxRo-FMpM_) z!wYZ5U8og<;W(`K{!MYVMIy-(#CloR_1k_x!?{(pZX_X&w${4e{}Lep9Cz9Lxxr;Z8oEC&EF&Fa413Qn98#V9 z*Vr7=DK8$Q9O;qwLhm@BhMRg9S~!Ht*9V5ApH0S94@>}E*hGeUL@UF^PGtpdRPr0`&@W@?!{6VaRv;sCGjLa;B&j=4g*}n*{WV*biwl;f z*1=d)sp88kaDZ(IZUa^U{iJ%uGBR+UEt6tZ|*A&4q?S=IXnFB6os>2|!0 zIkaOpMb!EJ2>R5aFL8yjZ3-(eWaZJi z?k3(9tEJ-s`~k$f%m`lM8>&1URZ>p{4q@@0^j(IR=~+=eo4VNM3c~EygKMqrKDa#_ zMZ`OX@C@X@lqxNCfP>NazN=>`w*1Bx(pHi&Qle!=soJj+zix)8;!jI2#xNvN;BO%* zKa&gv?mV567Qh>Qqgxv9>{NVbSNUAn_pTQ+&-wuZ7#em!nGl$d3AX7nJQ{3&U~B%= z2>((=_GAaw|XN(w}=z-nh1W#RS=bXl-OaUI*+7&jbbzRrOzO?=or?LYvsFv;Sl$9aB0oe_K`deQfc zzIm{4z2sM}P;+wS)FjLIthntj5F!yY;IP+U>1xvahH_9N7#Ob%M^eIUeUj>d+NcJ@ ztRdaR>&J`i#58PI$!5E}I^%_=NSgm*Uy7}k{P))?MjTPKa0t2|$hXDMDL8}yt7=`{O3UUnPc3$I z8R`Zj`AH|cX~#IfPg-*{?Fi|sHhLr1%yE-%N6Z^~)Vmoi=+aE+*3_mk@mH)`b8{}H zhltlpxIj30Up=#k6jyE=1L#$x(PH8O>3Ab*-w~66Y7XBi zOziMFSAFKEYnhSNQO`Z}h7w7y-|5M^-=e6eGA9FwZtvjo4yxe94g#9B$@8z}Q1`0i zobmXrtC32_kjg=!R6YtRdTsRXF9xKH8UGP)XjyAq+qHykUyM_mb#p;~46#L!7-KQr zSGz>jy|Y>(3qSjLF+1J@=QsX86irfX-V8%Y?*ReR&-SEqIBl)C6WUqHAUe$0z0AeR z!fnen!I>ialN*hmZEKgzRQ^)lym(||q?tz$G-)DCR zTfj>shZ-q2ng5Qm)yPC5_9sDIs~$nqX_&QQbAPrkn38S$L;hn~z}ppHrUt~;dPB%! zgH$BP_4u`{Nz;)*X}`=LO0>WM&Ym`mZLtA!sSz@F?qtqdNB5tj zw(Eu9flz}kz+yVI(GsT<1Wsf|)WeaQ8iHj=DYA*QXXlCGgpn!3WXo0RVJ!ALpH0=}<4tW;k9npp(83)gVc>7moUjk4}9kKE!N}Ydfk^{T( zK?78{gqc|=I<<>St&C}ji8hT<+~mm)PZ8gI@Tn0|7-&9!Ys|1H-kWOcx?R3td}ho( z6_bocmeJ#=&-Qm9bViwLJ#ocsP=KK2MA7++3MONQdp2#>+wg6b7)_^9o)6;OBa76Z zDb)&gC0+@8TR^;^Qczov_w^21~yW>9yyn!gzO!I{24sN~PTPz0Dic4&l&qkx| zg(}QxXN(Y0V9l?FB>6gPY;KPuorl696v~=~f_xCr6LKA3 zD6xOUtB(OPep4_>s%I$(y3>+e#+2i^NMWFu=Ws0Md7rb`_#b~!wrn;GNCH|O*+i73 zi5yI)@k3dCSKq3YvIe8qT>3tPe5YgBhnGdmsAe|K!JgLi|$^Zu}OyxX&ys ztw|fe1>@BHu$U}&hsXS^smGX4hav3B3{CE=J)L)`!mN(QgYp1dg;9%n-|a&Ad%fJ( zOz;!H+wT&K$P?U^ia)ne3)(!fG(;1k)korB)+6Cq9AL1M)>#I#U##-reFMfKvzp7; zG=1J!fEu1(D|4>Kf*mGXK))h?l;xSxiF^zWFhC=`%;1|RSX(}oi=KggTC09u;amEz%YCI$K9VP0zjC#05CN_ z$l^oGEjazDn10xkaK-Ynn|q*t!XL|LTuo^mUIfu{O7n*(E}Ame0lh zSQT3k-)rC-HzK*Ds{P%C(oUhDCbcJX9`h7Da%bn}L0wlK@~@u&%z|2qD|!)>8XVaS zWp(xj?cT)wZGgjwNy=%WGga^(-#1Q}x5ktptTnO9qOOJ;yohFT<%&nk4xLNM#djDI zBxr^{ov2G-jVe-CfPBy$tkPrRta5DLt1q)5U>nf9(qBPNfY<*Q8)F4FsEFOx*t)Jt z0-KcE=LIlqTl8TwvK82lERimoauFf zdev0fpQ<;qx6l3*vxxjJv)%z!_La+ioSY?VeIj27fMq5V4ima@v-R0T4ggT z#K<4;m|j*LjV1e%=z!@-qj(2%^eq3y^C=z+FaxCTM;7jB-eS@a>!+G4J#H2ttg{2? zpOEV{1qn|9#D}r9JovNpI!J)4A#6I=T`8^b2}5&M9+p!chR%zpZ4uD=2yIc5XlP{2 zv`jKdax1FW$rE7w5@Q3Dw2}XntNozUJPfE$o$d{kp{-^s-e*9OYDU#;cJyI6thkprXujQE&{>5kYq6cf z_LaI8;8T-u`CB7<4uh%%Iu4chb-YeY|GGg`4MP^AJ-_a<8EN>yW%lC1$3uC0Ba7**^(J6g)-bjnCgTib&_+=PUd`t4}+P9n$) zSUoN|%Q?FAl0x~i(MgPJw3k@)8Ro{mrW!k!ZE;0*?uaDWSLnMefV&A#8-E```#;*#W7mAWxaGvY*3BvT$HzBeRP?bs1;6MoeU*g`XCR z8#x1iAoeDGjV*;6#d7H^UQA>}T7+wtfdk z%pQ}a`3xdizO{!?>PqtZ&fElO@S6*txgkr6#)eFK;8Nd35GUlJlyVL7)0)Ff8Q&6u zrOw~&K-yvwgg~tdUyDH--D-UMR1PMfos&tyA7{Bk9$q*20Km-jp25FQz{M~p_P;E*mMRO+yb?5& zt#MEgc%C4!6_Fw8K8Hq>QL^23iX>#jxUEIyrA=KFxz0vh~GUE{l2Ns^& zkhuDKl8ud|HS0yTf9|^WVcsm{+ii!2R;UuKR@y4KeVsRaxf1j4(I(O&DMn7rP?q#W zPyHuQm%h*Bh;!>`NRO?)hp@#gi|=h`vhy?SuA1XOO@%m4e4%a;Fw+ma?%4A=bX%5* zroc2rfE3=Whz?IwY@CMT`IX(yFTd*RfJH<<=}IV~t3$5Es5ZF3dtUyAR#>VmYW^px zAm*y{x^1@Moqw{Zc>bn_ru?qm9IY;%yeBq=rYAok_2%IYVSGrIUD?|yrlEsFLhBkj z_D5gS4F4_E0nZw8NB8rlx&~ApSs7;SP|G1=Dd69lu5_NpKAmO!OB45k)L>EB)`(q0 zmxul!QB)}M&~vReH&<2>PyK_JiKA?>l@Fn*53SH9T)pG_-odo? zKy|b-;^{AKhigJ}0ufqCWp84-*zk_=5Z6(mMg2i!6Hqk8kkS8RcPjx@T*ifr2YFl= z&R#;5!Y5NvFREX&=6`b?DFXFU!c}YaS*yQ3ZfmRVEzSqT{Et{po|9o8>`dP)YojC* z00s?|Qg%Q&@INg;FcRru&U6*hP~>+QDBfVuHnRsT9}n0#0=y2()v zSPnH_B1fA@33OO$5om%I&_dmdDtxh7$!2w{3#^T(I+AOyv4@}Hr1nubl zFyvhy^o|!&p9~&TsI_XScJT&B*jBeOmpQFA6WB%(ZT)mOKFCz)ytt~6Ui(_SRqj7f zx7bj#)*}c%yts9_U1O0RpD@gL1#MuNFd%lC_FYCQ76+t1e;}}V(RrpNkXs=HZ%bb% ziY5&{-h&KN@OoI%e-?ojO*K#lWD8t1O$eo#B>aQJX-Q%8ZEsMf?AqXt|9R!w=SlGyUSn^Oig!7fd(7jNsV}VW7mf z&A5m*%Qcoj|Hj)jOd2ADXm9b%Ak$bhYJ`_ix!jKgfBsgBbm*yQqAw=?pXgp5PXkJZ3N1#YN! zb=qQ|Jwc^#@QWc%!@ZX||5Yf3^)s_OR1QK{hE6iZTiefD1~3&qg9EXnfb3@VEh-RQlFk|s zR7>XrmZ{Mhxn|E(+4-@Tlr1J@hS}S4#HZ18refnPxsdRQ=B8qwomm#sZD&xX&YKef z#Qo&6Vl}Q`Yze?iwE{lItp2%&|M5eQqiotIU*~`AweoHrb>y5w9elw7)8?tib>}n# zMHQ_3m7^p59OPK^w(n^IMU1V>>Pj!;J=j7-sjC>b$9O_S?CTv0M>C5ETwOX-GyFeU zSPlxG(mwB`|71^P%?>a9Ne}25fEufm;EN4QL6&tt4qxUN@@vEsyNn}J#9JBkhl0a! z`v=|GLhC+2_)`lavZAnRXX{@7{qdR?bkcTblNc&CvVt}3tIeJ_e z_9IyM;cuwuw6CH8pwDJ}ZY~-mag`@KjAZ+jPF>!olQ?nX8IBFzm(NrC5{)^mpI3Ah zo~7i_=-la0TM)T$SyVoExcwUl4c5jHY~5#fU$2~RIt{w$;9=|ANbRW#rqj zwz1W%GO9JNDY1YJ`p(bTL9}(n&0iYobrnf`op}|PFvsy-BN%$`+3nyFtVt8M&64Zw zq=iX+{kZ2ij=XWH-*vl(7=t~w;eE?!OY-_L)h#5U+MMI!MjISR(-g$ENB$vsln}zP zPgIRLt=gVkrp&FxQfFqT@GA}40b`=z_WK*Dx5ikx88CXLR`-DDPvsJSDX+=Sjl@gg zXAnGq`Q*=6T^lddR)kZD80hAz4V$GtA9q@{X=~osPERN(FSp&$1D$hQv)e%VWv|P& z&r@ynTYZoCpNzfpeYg?suM~dkk%MAj(BxDbuy}N(CHq$|iA|!iOE&Z=mO&J(wpmhy zycD16Cq=3w331P3Z&KJf;eXUN3pfxN4UKokX84g&sz{vce^grmiN_E5_8@`@9jx2q z5r>eElIGT6B4Z*yEm5B6{j3B53{n)p*|X%||Xnn&Pt z6r0HizT`9tCVa>N+msaSaXn7DM^5D4HlYH4f4@B;n>CI{oa)={E*NAjn_df0cx`Z7 zK6y9vkFx7bVZHw}CXFteWwe{2;E||$1hw*(msL9c*XfOpcbdV*qPiomd*i$ky6F~< zN@YNU>vkz~UTgi{#urjt+x4J-3(SxQY9WcHX$t)-p^r*z7Fd#Ta3$T#2L-2b#BR1ZihH6 z*;HyjlFaq8*%Wh6!jgZwL#UMr`%nN?_nh zt0rpDai@sCs#LZBDXE3JPf0%sogA1p<8i?24sPV;X|1af$0#1QF+H=q!ef5<6KwVViquk&lod<6l&iFhy>oxDn?-M@T0+$Zm6bTQB6`jr}bw#(u zUm$G0!~C^Et0+#whWe6tS7Eo?zTP-EbnxIzPsc7PheqD4O&FJzTWw@JA%1HC@x3Fa z*Y{`Fov!UjT0%wj-MUmBIb6HOVhgIs#HbVK$u%n7YIm@hemW)r&)IvW#Hl~xZ1(GZ z3x4a5jj!pc{Zl1(X|=3rEIuOA^{%g;8cGt`jDxnhErJfts=wmY3!?ffLOEbHoF*{T zP?!+BnYq$DcqRFGS^4Qh<7$*A0}SLumWeP8=2V;MF$ov6M)zlL8|iRsYm}S5GQw+f zqL1ZH$8kCP;_L^zG&jX_%=Vgb+wiGqj1Ti5+lBX2Lr!t=Iy$mj1Ty+=GZ=24{pfh~UKATKJLE=q3k@b}6$bO2V zA|1&UPrJ|Eg=s*acMKMLT}q5ljb-2t-)N?v5n#*ePr@=HNEYknrV?i#@7ktsy|xTV zed2dEV5Dd12s!3&JC>N&gn&|1wE8_MU+d}~_NTSkoH@`J{E%S4X^DiQ+WtLFmp^kZ zj24)-iIEGwNd5OZ4?!?AI^1zPq`{Z=wVvJ5hRgF<8Z)y32T`qitbWNltt!x^h@Gu} z(tLPnqp1mDz24h_%wJ93az6x_AtZZWTRlNH2Htr@yg{Z0f2?pCR|{*$nJrbQ9+-`{ z@|K6Xl1%C$*mx-6mFD8#4NJxRYV3eE^TbOz)!*eiok3@42f3w=O@XI0zXJz#Ty*~1 zfI_jx9Yoi#FjS_amudyU*LA7KfeDrebC78MV!Oz9_~LoJgKC7~C_2o|bZ>*AJ3n)D zPa;MTdAf`2HyNp;Yfmy36k;IPbF=J?p^4q)_5eO3aD(3-owO}*SkxY5fy4Nvzrz#b zY*C`$WL#%`%HG0tQx{F18+U&aIu|QxTk`^zy+KfZiC$f_{O-1*G$Y+1KiJWn)1jaF z`A8jd_q>aCcx!->Zw-j%+e}YI1=3)gviB9*|`EuWT%j`M2_M$XUgBO$xt$?87SZhdtTA47(if8o2#9wB4P^4YcfY+s35MgGM?Fz#Wvh5eGJuc zh>aZ98Y-4p*0|At5a=N1=jM>w?UWVLHC`UADUoL(2d%$qtt(qFJzF8CLJ__2`zbwE zyV1d7MzWVjZ_fc zm7j#j!63=VL;w{mf+W*BiuKJ?1H<2hOZ*hmCuK8|S<>M6St-91IKSTf_2erlPzIDE z;zx#I>#fm2k@~C$>1k4#C~cGNErC|j#rpT$)X@0R?9B8vtK1d{Kl+wGm4d`fKe;Zb z1fSXG{k)8eu@&zO2P99PeQ6H6kpqN*xUy}nTJUd;eMfvIMv~;sWGMkRDJpX?g{(BS zq}o#|zsox=0={X`TPWdDucp5rt1Sc}b;qKBMlN+)M{!w`eca;0`t$9T+j&q+9C zw%3sx@esv7efwazez@F6zKmVl*4sWF z>%@u^iQh@7i%~%ND$NrEH3o;nS!XREwM#mS?1xc$qV*%EZpT!@v;YwZtk_x~2;D6y z64PbDgqOqql^$0`4o8cJU;-2ssP3IUb?Tvfr%gOT_+`zJHg+ec@7smA979Mnmwtc< z_w<<6YO_{c`x2NZ*|6c$W*fC8;G$*IZlu67)sGnc;Cda0g2gUJU01rYaja%Y*hIqN zUt(08BmM(0WXg!Di>KE!mqLOg+Coa#`l|HmPzFL=LAIJ#e>kVAv7)ce!Hr%&mnV{V zIkA*Zkgt04HkCrb%~+pbwZpm14WQ-`R#^uxw}*Mq$}#&zix0hIf5qt(X5=T_;%Bs* z8;sW+xlh@A|DjDW_#s<2t-Qdp&$)Z0DRRPPN3-_DqF5Nu!FZio1JJu2w64eyD zVNR{xcHz=;`PW7M7xa&*OTn2vUPlNf#3A>u6V;KpXesL)T6q)EN-ELpjM8Lp%P|je znlt=QXwE)982hLyFz0mr4JREMPPGn%UWzkYqx@sz+#S~rw^?540zLinrQLi_(!QUg z$$!VAr0t!9AN~rTsB&8M5@^>hWOXSD^vJq(Iv}?uA6iLTxs1 z#BSHvc>Z3CNz!O?0Y#g-PfLHP+tt&W;;9+#!{1v^Iq*L1~|M;X1)hveuuYg(39Hk z5bSN(p#@8yri^iT8ZAQ3V?M&IjwA@OHTh{3xxCF~!B@=r265i4VClK3>y*+jLK*A2 z=cwexM}=>;`^dZca+(0v;lVXJ39aR}?e{5)hlxkO5}>rHlmzyN6CExwF*(%+nj!Xc zM>>vC8Q}^I_m*g%3n8P@jZUi=Ev#}j2C3%+X2}Uzy1Fk~6Qc*VlkmCw!Uo_8?MK2u z=8RWE0GL9?qAx|X3IJP_nu8XIbuMS;pnhbyRN$ueq%2wz=oCBQxUfd$hZhp`xo);2Wz z1|cWAh#}{|9tQON^bPZISmq{g@~G*LT3H_(lrIHUTpgYd>NVG0bx&1v9_q=y)SwR;f7H^Jnc*An1Y-C`x^9r)-mZVJKbIW!U?-C{bdvn_{hLgLI z^bZK1jDOzT3WKtTcSqd1DT%3rbu$&{jp0{MbE{iB;Fjrpe{8p`r#}he#ScwDncf{f zwPd7b^cNG5FF@y$J19!eSGHkjz}4+XNLKkHkI@)kIs|^H$riQNEl#VF3F}xg2zkY`d zZKDdaowVBuc^VNLqd{A=TbyM;ne>u|WNWIQwwIHidWS9<~^^TRdD0z<|;#&RSIv{0H~qEVKD zGy<5}G{3-7(@kJE>tKd+H5+)47ocFl6c3mLsB&#Y^~PXVKj9No$15WJo-w#&TY#(% zpEkHWiJCXK@286@dM4dv+4!yTIV8I>u5f`rYq z{AFmT+o1`nRMR!{q4a(GUQj%L9| zqLR7LsIQDr2do0Zqjjpi(K{D-1(GdeNGao}t+3ZCnr!c^e9N%T1Qtq0*2cnC)bNAb zUFH?+OFvn>(3~Drp{Bh(Wmlapm*MP29#hKKB~gVgjG3H|z8LjSrouPM}%B1Ood z&^Nx-qjx|Ix*4v4Wo!2jkV?(KK!3yDSQF{&*`sOlspA zo!D6#xTqJ;TMpmQ>qObf$=nWCKH_SdC5L6$J}~ZyRj=f4{U$>Mf=|P#;r6AUi(W}> z#p#T|@`9|BSVf+a#_;!gvs^XGwu*rEthWJngNcUZ>&bp$u-aK)-}qol<<>9Z#Hmai z(=&1dxE$j`gB`u3NQ20}i*ld}RAD`=@UMp9x74Wx^HV7HL)gxalY#Y6$q0X>GC2ZV zzR_)AgO6x-E`tTd6IuOAE(^4*4K9G79a+tTCo#Uw6jx4znpvufgeLp$I1I*mIb}P5 z`%B#jRn#A&({Rsr+g$i!U!#{fV3&R4rNDy|u4_f37dCj;t1}V|>I&7*MV4;M0vizc zLP*NB(&S^Kg>%Ud$r|AJV)oqsEN6ArpgHM09}V4okHUQ||DUz}Kev`4&H%eDG6+$h zgbhA4H&>8X-PI#Ttg^)V+J6oZ!)P?>vS>L1alngd2z?+_uxypXf(h;1SGj~Xz@^Ei zB@|P`+TN8{+}G51$)t`A$A963B)BW;y}_vHQLiJk#O896h+(pkR;^f0)l(9&=;63o zg0ktku2KjY|K^dUfAtR@yy7{rHVQ3usBQFN)RAH`r%cJC z*qg6>w6@Z6hyrJFOw39t*BH=>g*)ftcUIn$!i#(VTM9R`0OaY>oj1 z*&i`h;p0xl&v?bJE~wNh3caZ)uR_~hL=7lw?eLpF4YJtaWL$pEv0XfnBX?kLJi!x? zH);u-3v}$XP4w8ToBqxq;j&9jXgyh*#Y+72%TrZzK+L~p>4eqy+zM~;-0zWQB zR*SbX{6E=nSBn#3%UWYvorrw6l=9-mu&}v>ics1_=8blxO&tc6{!lk3Bg`g} zZ*|qb5hL5>`y8yF&m|qr>7nqWk7oYISZd3o> z)3YqyXeerzmUor%>qmQ;rG?YD|8}s0gY-|cZW`SO>|5)^Sf;CuBC3R2h1MXSKC3bj zXu}zfe-B5bu?%Vc*B9+_jl>i>j)l=6L3qbUd}!FQ%z9vVf8^!MhBvB)zJIr$Ya$_c z+kwIo%vh}@suft>*hBn06LiBNWooRke!0GfxIv8CitX`dROx~ja#XWj2=6VJPUU%W*b3K1lGz|Pid!aX?7w=OKD z7DUfu7oUg(bM1D~e#o~a*7+-dkEZVAsP8LXkMZUatu+MLbLO_k1o^auUMGu4HeaZM zc@ohVZuWs3<+H-PY|aa&=omN~@4Sg*5*yw#-5m{o=f5M0>6NmlIWx4+jzs!gUw7-S z>Yq9WGj@6b<%jmk;QY9K9&!qhEd!|uHorIBDYf^t0Nt5MknS5->Z%mbXHp*h9(#mg zALn+Xkc-yCZA%&j*+DoIY zoDnDhVW?JY7oc3To6Op+-s1$xT@%+@lxz$#Kiv;!D>bEGmrRwKzFPw#&WlP7xv6~f zO`azMCWIqGkCdSOwSLEct^sWzS}Dwgly_dDN{e@&{pM#curd$Ylyn3?M&hO$4x)L% z19PCVGZou%pHe%ty}d@?XLAp=RPN>3)EG;I*T(16DG9}UIuq<%@$ASOZNs>Ej;<~5 zfqN~G(6!bEeb3{Aa)e8fE#R5-wEXT9!Mn;tls2*6a(-ek$R~(0Fh6yiG{Y|abj4p) z*^0HD@7g62&)}YZ(=*F-)h>&&?-~aeb4Dv8_m%mgKYNNG%0T z%b$JaNOn;o(}qLzb`pA?cRiUUrXn&8Z~Y!8uGx4+g@oyinNwHdk);V#rCxr_e*Xzu zXj@~(oUCx5m&#lnHRd#9P+yl#`x~MuxT^RcdmroR>oS@1{b2m9i^@>IL zShekdviiRbdaDLPmWUnLe7;@swRfzGR+~?oP55b(F7B%Ui1?xKT`BuI*XFi9|h}#%XRFIjNE~8&>#r0)dys~4AuGM=c=8u{qu?|yLn~kz~+P?BRU%d zm-yfXodfE>h!z*-THYfUi;@VoZXmV3u<;>U#EZW9l?2hp4Vb?I$m=Zb~e>OpZ4%tofA$284;w0S82gusROE0 z*xX6~=e%5?GJm?t-gEKXgw&pzHRxx&?2`gY#Kz|+-nDjKAct=TPXoD}|79W9;j|(4 z$zqG(Ganf9Eo3xzUd&>{eh|VV?8ZsBH3`egOS3qKcb%9iiE(MdtjWCk+S|V>!`wC87*1R zl$;9LLU40^=_c2@ak=X%Ra}p{!bHx$LA`qEckEUJA+cq*5_x3Qm@o^VofZNlWM#~p z*ie9WnG{V&1G@e+Yk{DP>17iQT3;Y(FrL}=9fZ%Z(9V>?>pgo_Yq~3b?NiXQ>KTBt z!bY0ZA&V`Z*mio{GL6-ldn_yaV|yC0z4E%MeR7~t6l)*BX4#yrWNf{ZF5phcfHnSId|!wRunm#cT}%73zM}pRlm^ur+u~!pDPmg*aR}tKxt8bJ*ErS1KqYF*Qoq`ytq5B*p&|V=4cHGD&A_NoBPk^Yo7eguJ>O+ zzYfav=5kp4fkUAk_WH#`=uM@MZW#Nn2&T1@}1|8YFO$+vM{l{t~D^ z>#c5dU5ZrQ|HZ6VgHXNgvz8PA`W9imTI^We<@oPbz-LyT*|H;fN2@R+d#@GxojuRn zBP4dMPv>e*zUxu})`?S0PoytCeJ|qXe6LqJG-O9f1zJ-*n{+-~tO?iOK{k+NwASO@ zW?Yj6Iy*P$HDrdt2jZAtSBeG}$~Sk#fNqaYM}u{Bml?Lk{dqH^8ZY(beO_K&hv|GT zyiY&HR1otUZlQm~(G#*3x4NIY04XbJND_#kuCg*!JACet_LqBAuSclOCpf706Qq~E zv}cF>s6}x^lE*M7OV>O4RwDX=B70E{y1dsjw1@Y*Gv3znEBB3u``N0Uw(SMSt&`tF zk{Ymh!j|xX!oo|!Ut2~KiE<GbdBVjV8jJ)Yu>2B-J;F4jJsGVu4Y>wcL%>K1#ui)_k?LlTF+LvuYV zx6Sft(_r_*^05mi0)g{X=7)`ywjCR$*I{0zP&0W1Ipah-ealx)p`^0K|D;0H!A$Sx z>ODq3oH)>M$y!|4fs9tSwolV!I(lYyqDW%@@LC3^^rfO52CP_K6G0^nSJtNS(|k@J ztWMmXx8#j1AnJU!VgG{5ZkPs}if1wUP`4L`d`r;mQ1vs|U&}!F@e6_%jW^et(u~Ce ze1ThtQ0TEvWtOSQ+WzVHV=X7|x}6^_M00X%F9Vn6SNA<76}`%Q+g_)>`9(?{P?(US zHDCo}Q|iZTy7-aAk$^6!`%M4H7n@EZ^Y6F|k7{Bht-b>J)!0zhA^+Caa|~6&i93WB zvW%!z>Az%+^(vYsbrs;9Ep=8~2UnxPU3{A9{dC_{@xAy_?whoP!u-0>ewyJJl|RSE zAt6LyDvBhl*qQl?U81a9&zV=@G;V^C3{2k_G% z0r<+Al9RZVrZ9*?265*v57v1*j&(ctPKQ*E%Xl5$znN_;##VY3?S~F;>5I|4&TWhg zr&i~I)Jb^$hv9=)Y{iPV=aD>1mr}>z!OnHrGFrX1IxDe3NdQ7u`*gGhln-M%7lq}B zaU?KmbNPSEF~TA++I(`ylGD_(UvR*ueQLIAY4VuEk$`^4s>zZKyckYr{4D9 z4GJll4I+`j^EC<{g9gq$aUAT>zQJ$~^s<)nFk1+2z$?!ZpC;#f8BSW`SJxEVjC z&Gm2fg#{=$KKwKP*l5SdLdMt1N!{IAGj(iWY?&3Tg!HIFP5^#*3?me&DgEVZnZHd* zwl&{j!%;yfEqPWmci<<#GwT5#gZBep7P?IJSUsN!KhzR}=8uMCSYjxN8$*qAXF{KU z8ys9Nq_!m7(45&Rv2#V`1tr?YCe3@&W%7ue02Ysr&h0I~@QWEApRBGMFTPM=(swV* z$Rpxkot^@moa{serC8QCj3egpQ*TK%bf@ex{rj)x`}=`37=5~0-KjnoH8qOM(OJ8# z%Ox#}r*nXM;ajFHPN(se4|7z@wyho&S1exIay%nf+hDqg^a*MgDO~qLlcxL8PGbzE zK-tFCmL=wJcwDjayt2WzcL+^t7h5}s1fN{ym4qN><#)dH28cWrUv`hGD^b`g3&dHKi10$Jttm4}n zO1ux~DwIX~@-G-PmMBiwf?QT?dEOivA}0hXmdIasZg#jRT644nZlbWjuHTZ0)jxIW z9~W{+mHza}=?yiH2w@;^N^iP{_(P(N(FPCuB)WU_o6D)LX~I>!IEQiH zTfzI^^$sEjyBz!_cY!~B$$_qi(yWQ|gi_b1Q&s1%G)vF2gF|SW=W>jO6s{S-Of>&Y zd!B8wYhT!yg@wp@KdgK2a-o&UYX*;%suX?gAtSuka87*UvnbTFdwrWOV60|LZfmyp zKjeez?Ty>qrcKky$49a%ets}#V}DnUtw01*l^U((W@tx;x@PlL8Ftc~cZb;4R*f-g z!m!nZ_@KXz_l%8qZB-5KwiqQJQX~8WMmoowsDgBqey-+fb)<={yMiI!g<+WFf?>h; zxqc-0(D8tsMil)*U8>{a9uOb92pMuETm$fL)d>!jmbN0eT7;koJC@%)Zt4}I=D?di z4@@B^cXgmwk7X~xrR1FXm%pYumM3}>sRJEVmY$TS(`>XRP*fb=p=*G}ri9Gi9M0&M?#DEM;N5&fr7_RPw$ham?oS!t2?1|gO1L(*R@C!FfnQ3Cz{R<2l! zzvdKV2X=&&!y6D`qRl)hW_`kZSsqHIcdm~l&PF%MMW;g;-AD|i~B8#4ctegm>iQbhA z?OA5zh5hhPf3)wXQC)N)|1RN6Yk-}hGWn4?PIN;9ZPb=pZg#vQPXhVUn%Cp15q%g6 zm|ZhZioECfl;3*YC`mH%>m{5qxD~ZFn@2>VX_8>Zvh4 ze%z|M0!+#g)lE}2{atc`r>H+>{$=S2y|gg^(Jnub&*#*Loqnr4nbBg&iJEyhx&d+> z`q`uhPGAU`T5VOgzK>u+UfO_l0wd*^PT-_*J!cQ;WG}#TPBW9}O8p1s>|s9Wmr>Qa zh`wsFKq<>Ady|tEnz+bc^;MRMqo&pEh}Quwny=Z<3QKUGB*Vxv_3Mw0HNGU@)-$V` z8gFmMTQ&Y=!e`!Pxv8Jax%eH%$qCp1*_GZb9p6OW_&#_yo$KUqnYtMd3;}lPWN`TT z*Sya$(f&+DoR-1@XJHB!?8Z%P-E&zt-aE!zppLDjTW_n#h-fwBL#_l+VdEDc7of32 z&m=g(uQ9>rdWQ5&gJ+S%5JH?7|H59L$S}att@$GLS`5e8yY1l|ZH*fCV zq`1rkN^tu_PGixj{Gqf|%ga3GUY;OeE>ZO@G8A$?UHTV7$nMB+`tpjnAU>HDUP;ZBf!EjI-uIUOLTzY z*P@3^+qglWnV`0z=Oi|9Lv>e4YHm=-z`NT$MD6Jg9-Wpt#A?=?4-kKyQdJ(dHx%i( zS=hYh%BMfKzuK-kcWrCUK^TBm0BEyga1~~X%7$;ok)s#hAQ-gow|)@TGRDqCXtq9R zX>Tp`@mf$6*=EX~x;d@h?28>?uG#l#O=9V+}a+Wve zgbk5F7Aq2%`@A&vj&p+KNbtN2Dy_MdGQHRzXvB&d*IZDDz5?%!K)8Af1{lq|JL{-V z1N!}Q>>{wUMwy@Zi^2{?I-2QM2&I}Qtt~VpN`|l%5 z#a!El;ODUGJE~&XR&oCY(%gQR|N3~Rsww)fxYnnM@RsSBY?+kUU?Y-d4u#p4wENkw z$B57cH=TEMlfY)vJ%X_=Tt{UwEFw3(XNn2BVC%|_VHTj;ccKaY^h|;Ri>7B#$>QjB+JHzKCv?P;!z zSysSQ=N!>{K5K`m!wA0aG@sibt8TIj7^RYV4<4KEE%lMarDEam{Gjw{4aw+ z6*a~8Z1P}eEu4T(c_hW_$M@HB(eD$?81La>SAtF*dMz{wW?j6H_nZ6EO%b$$V^?#% z4noz=ClqV-+e7P+%#O_T?@7J;1LMZfOuK65%k_8APo9-s8|FsvjN{%5&WHxflNeP> z@IWN)vzUEE3@xuW!JsI=EPkWf@VA0v2Gty&Z~h~a6hnxedt{-%hJhCOWA=$2;NUhw z?_(K@O+uo-hX%Qv!12jZKSWTE3eg*?$z-GQJsaNK`M1|)q1EH=1L{>+mw!l7BJUOM zycgIWdA0D>@BWPel7z`Nn}K#Ck2HkJ z6};>*x`b<}7S)0Vj=v5(oChwZXq3(UBASu7XIIoP*x4QRMfWe#+p~(FBc1D=bv8_c z7oXy0<~Wzl|c0Z#5&-l9dL`=heRjkw@Z^A)aJl$xs&nnOs;8*S91FkkcU|< zrwb#^`vF55r$a*YfKfCw|?h}K&)X494B8*D@UhY-35Wk zbC{(0&7~E$w)91qR@~fE2Je|=F9kTs}j}F9dd^!6#7#7i-h99 z^K~cjrJ*PfXp0Gw`DGxsiTi0=bmO<{%!{~Z;npk%K0|dJ%}G9+A&N>sL$rCQ$tN#r zP8vMPG2iV4meoVl#>L1xjl}EdTKGl^AF+_xr0~KwZLlxaRH)PLGH25|A5GHn9j7t8 znrU3Zhz+TmS|?5m!%5IgZG%OQxeN~t3xRwX$_jCl@{y|g#Z0Sb-WW=?tpjD)tFF~H zI(=NUX6eeO_*47&q ztW~^m&z?QSt~>XvH6^KSMyR?u>!RnUUFE1`VF|t^=Ocxv{mVk1cyL)(Bl;JA7B6NUTjNVkZq~&f#Vq4T?jz@>Shs2TDmVzd=ASMQkev4B z&=O7i{-#0Zc1_sMZ8xIlmZAz^SRVrQRxQ8pn0LBa6V|acxn(`FZ;Fi*EI2S(Ui7Bh zIzmKoVQ@xWx=h}g9~>V`K9`y(FGnUZ#*A)`_uN+tZpE!~bRG-PjE&MqQ$mChLt&?m zC9})6I*~uBskO{jr)Ls180Jopj>NVm7sHg~od0w_Sf5Eb&~bYf_zPAQ=!DDqU12(3 zXBms1%g=Q#^s805jA31v7!u;5!1s>VWvBK>T#hixs#Q2>-8-m;7&couMLGMFMHe2swD*qldmDX%xhd6nn4OQWjc zm=Ra;=kzklP)^lROMZ(sPcHuhN&diD(3iES~`xi1m1 zybRQvU4S0No%;eVhN%a+t&`*buZ&!lZ&Zqghv?Qp}VI(z+vyRbJyQ#jv1zgsrBLc zE9b%vg45V)c(ZO*bIq0=9$H7$>#>VrpK_%lZ8MAt6Y#?P+=V9Xo>QA8Xs>+DhniRd zHtwFS3vPDIM#$mt@OL_>Ttue*6u!B$0f{@0F>u`NF>twER4!k9lDr=3X;5{1y)>2S zxV5D~(9CXKT#Wd0e85YGa$b}yQ7;FMrHNS4F}%4(d8^8!{I7zGsZ3jjyK`=PhrI&4 zZ&cMItN~f5F&T3Tt+g6cQ~>$hBxX+WFJwH!3}-{tZBnGTXF@6!d9+Qnv4Qr4R-L!$ z(2u9fzci}{F$eZz-^hl(l#v&cZ+Gm?lD7JMI7c1V5B}y#7 zb}O|i!gG^zq|Ez%vBrF&+h(v8aPE3|3P~*G$55)mpr#aN_>D@WCUcZn-6QD zZeNZjBv04<1GHxq+---^N}YO{#Gw6_=?5y9o^zWz;8zP$NK_8m2QuRO5FXbB$tEwl!ZsN z*ko(-`F}0eUVO6m_|tS(DU&z%7eb#(`vZBG!NaUCu|7Z2WIbrvQI3m+F0h*h?wGt={~O}K6qW+tn{dq`vB$Cbej@{*{1rxE zZ)6CMIE7jY5a|*P|qEKGYrV8$8yebBr5+_ z0;3LBzaU|>-ejh1cOT6v&Z*j`nL zkv6eF0~TvtC5bP`qMzx#O{BljtMDdB?^D`fWPK{dY=+EW!nEHV863?~g7&JB5I%H0 z%yKpunO*54^+H0+C{m9}$fAj}vpEvp0fOIP>ocL^^v>FOucyQwmK5u1#C7L}8Vg6Lw>QFoA zz09#JxD4mKXeLaK_@Og_JP;!De&LN8&+JLj5~bQ@5r5oxOp;k!U`YF6X&VqWE&|%K z^_`x`3hW4?!^~1hT_KZxA^Ee2)B;h#Rl)lF_L{*AlMq6ufr0vEpgl2ejHbDGpq7Pm zlXJ$4^ij#|7nx(qZORlu6*P6f1hQW&mQ_#IT55MJ4G*@cVPbEHR&3gBdi>8+8aM-^phrEFLU|Is(#ESy!yhuBMt2tr;2gM* z>7v+es_-|PM6GG-Wr=J6UqY;XX>nscGAoeMyD&lpiBB;zU#5+DdFi~*9AuzW^oe!W zuPwuP;pK~m7A!&g(xn}nwAet9nf!a~3D6Y!q2)j{QpY)SqlltBC=0)T{NWrB6+jb149#Sml>M`tKJz4@A^RSnV#JH?s(}P%m<<_3U;ji72XBq^H zy_ZrAK>L`<&zA8$1U(nD5U?>{bwA!=whgKtSedrx>8Y-2d%)Z!aI7sKQd7RSYAcZe zpoq<>om3-i@P46Gv}8f5t%KPmCBglMBAOV7*^KmU7{kx0HdeD-AZt-{ph4mesfEz{ zkFb}%;fLIyR#~=ro9xnJ>ir)QoFQ^twuEOsA7Dd0AC^-Js-d;fbE*`tkE-5HJH9VR z4>&5WTE+Rs97^%dO6{qAQXpmm5b)K4jtvJeCxTfx3epR$bi_BqB^F`n?g##AB7p*>W^#!me}0tzI3c{E8>idTC9!vi8 z*trD%K`ax(Iv#?)r5%$Q{|+@8@6BEvsdA;!lD0zt?b}5@W?QUhYCVGHq-TEA?JZ$1 zWzrcP)$R%0my|63DW+)!97tu!u)_w6VwtM=3x5q3UA~;bPX1C_%pIj5Eh9A<=yT?QOeMD!R_lGsi6xb)%N2?|QL3tk%A!N)g7k#0n$ab~lB^H{j(tt-(Nh z9K`9132k9YMTF#GN-S}}UA!3c%Y)xVa+kDN5FMqA=>}G!(9B|=Homrick^41=A_U3 zi{ew~AD*M?pVb8;9NX&Kr_x_q5YdN;O7DOCGYL~F>flb*0z_%%G(XQPSSF2G87-x7 z<0khQlC>)}j0Z-TJtOE3PN_HyWREe45NIPtSyb=D%e_L-H=5fw$XdG!^D|$I*JfcO z6lJBr&BD_KXL4=j@i$!Zyyl|Iou8mkarwqV=gWG&I>Os~3T271E`97~GzPW?^y${x z8X1&+$L`kOr@plC%8#dt7&-G5m#6C~7cEyB>+nD2#^`P40j>HG+zo4K?VFwM6M*(O z=Wd@Rp{0K%UQWcItAP~9rxNnJ4+TCCnb!gBg+neeJni88w;|{e^GwZ~jA>kW}-ypA-s%pE)+SEB#RnG)$xx|L|-ooW?<1l-q8^(k}?e-eON%tIpA{ z;%B>gT5yFQtoi&f_HCf~JM1T}<1S$&LRZ(2gVaYz^q3ETwyF&2OHUsTb zX-Us9hXJRM)Yvq!Q1|8){5>sDL0 zLE_HbSi}bA?R_&{aacRHx7NJ-Sx{ub!SVRJl^_rANH_6}orlYIi!4U%G=LxY?%7u zp&qC_k|RL59bJqdj{pVKfOj4+t!4u;qm^q>QEGL`zm`s;p-2SEj72 zRVHQ+6S^){HBOLDw|Y@q+;lFj8Ha1!xFj2;CuyCc^m2@$i@eZ!$AY58fiC3jQje}8vsA%_I9q! z*trP%qGsL#L9D5z?5e_I}^;&d-QXmQv)a94ge*kQ?;%XmQZN^*RP zit=CG&6~gzZu7rIZd3TLpb~%_Ww82pQ!U`FPE;{5dr~v&?p2=_$XFLLzo4>D-O;lH z*?L}^=}M@}Ca1nKdCpIT!US3AoOE^1n~{5aaY@LG1})wPa_fN-Blz9U3ul=?Z- zIk6^Ru{a`K-#^$V&%BpvtP*9pd?Hg7oi^o!)Iys~kk85zQ)d0bo<%0+bXd3+^mUG5 zNF$g>AZNf_ygcmU8B~;=uiKWKlAuYmIxa%cv4_Mw{MB-KTFn}cTBW|m_YM(;2#>mj zU!(=G|2EP-W3y4w2;ZS6P71mzK|R^kOrN^Qa4t#@AKBUpQk@gox*gS!5}}__%N1#= zj~Ae&E2jFIb0VIWkmokqIM3PsD>-9^%%RNQHN5)qKjhhsJ_jZBMDmkmz zg2g?{ogw))?`99e4|8c#oL}y8CGXxbJ}vY8-%~0Z&2QMQEAr8~!{xU&Y~7%mv<1*c z+N9RYl4J}{T8VU2LJ3w)CcZOpR%cc4_OAJ$kqfd=k+9Kzoy`Qh@-XMbS6FvGBM0B4 zTi>aBNGOB9N^N>shF4W)ZE8Oc#Mey-8xk9|*xWs4_>VuO&TlZk;!amqo^PoS7CkYcwU^BKDY4 zULMm1cBKhlGuM%q{%PjO; z|Dc()r0B!AvP3QyE2;I(wuuhZ@eJX~I_#CPf9HbBL z8lYh`ymq(k8CdRHPM_|n-Css^e4sZ zy$HwGM`KMYoRkvOzRAtHC|1T9X+}@`?_vw?=%+pQ^7klKUd1Y$=h_7k)&2K#M07#l zS3$*|Eo;}|m%>|R<39f5pZx-PVygwR|D>ppGBQ;xAYnYht<|W2?MMShx`?a3e(~9v zPyyg&s(OkI+eLoH-FO8rpOP#4olXQC25(u?%{YGDNsnkRpnCLv5R?J|g~C(Z|S z3@SlkP;z3btUbW?{@utc9OwRUJU@_@nfmf-?h2;AlK*7=&h?_5VmcphY;RGdeuzJf zQ2qQ}z5AQ4_LBW7!{U^;sMt$#R@UGzQZWJ(0NWcH z@v3U72!IrdgHU7W<2*aPXh{Dgw7G_u7b2gXZCI0HIi5x{Jvm7ZJ|kP*(;v4XR#)fE zpmXq#%H*;@K~PWgz||6?>s9X`P;y2}pK+W59|H#qsRl-j+8>w4 zKRndQKVCH;jA5@aJ^B`0tM^6>b}mrS+2o|GK};l&2tt7!G{Bcb}fgybLl zu~a5?A8638*im(}A^xP-3nSTzl?2Kau4A3jKSP>X^@KziOiaZW zcbg?2NC$?$D%ZH_zKDi~2czgR5*gmq|J?cOY1ww+ZW7S0xfKKBK0tD z>S}%rwl9O_L9QwwN`haSku}3>bL;LA;hoqaR?(DlhFqf~ke4D6fSp3AAvNN}X-D5HOA0Gj(Zy8NjACMUvA!w!;ky_Zf& z{Ye-0ua>!jM=dVFCtPO zv6_}B6^NHa9GGt~@Iv`}G{qCb%U5YP29%ue-z7~5RCbK{7iSZEOVp6ce!J^YZ^dx{S19=4 zh5v-&vW~Ia9LyJg5mTxOPqhIw)c@{x42Vx_m&=Pd9Q_CCM9j~>pz?!evM-?o$ILn} zB;jl01y1#ct{H}i+s?eeI#G|PyFY|;+s7`SAc>&nv6!A8<~xt8v82%=?suAzE2{KQw4^DrBd*gDa`+}g`;Yh0 z^MZFMJAnFULSNIJL)7!^Rg~d?E0IZTt`_-UC8`u#{7922D#c!G_XEUzRCMPrgx5vN z2JbZ7mXE>Fd2sGYi^G3QDu~yrQN2F)S81;Ym!3|cj7lJT{&0Frko)2I2+!OUE=oYZ zCs9`2%h_ANGj4B=yipqzPCCPvw(bH+N -![](img/class.png) - +![](img/class.png){ width=250px } Instance Search --------------- @@ -9741,7 +9739,9 @@ class Fractional a => Floating a class (RealFrac a, Floating a) => RealFloat a ``` -![](img/numerics.png) +

+![](img/numerics.png){ width=250px } +
Conversions between concrete numeric types ( from : left column, to : top row ) is accomplished with several generic functions. @@ -10198,7 +10198,7 @@ definition graph. So for example we can construct a simple graph: -![](img/graph1.png) +![](img/graph1.png){ width=100px } ```haskell ex1 :: [(String, String, [String])] @@ -10220,7 +10220,7 @@ sc1 = scc' (fromList ex1) Or with two strongly connected subgraphs: -![](img/graph2.png) +![](img/graph2.png){ width=250px } ```haskell ex2 :: [(String, String, [String])] @@ -10281,7 +10281,7 @@ x = G.insEdges edges gr nodes = zip [0,1 ..] [2,3,4,1] ``` -![](img/graphviz.png) +![](img/graphviz.png){ width=100px } DList ----- @@ -10732,7 +10732,7 @@ fork :: Par () -> Par () spawn :: NFData a => Par a -> Par (IVar a) ``` -![](img/par.png) +![](img/par.png){ width=250px } ~~~~ {.haskell include="src/22-concurrency/par.hs"} ~~~~