From 64648488cacb0b1887be4c10754d0751610ae8fa Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 7 Mar 2021 21:52:54 -0600 Subject: [PATCH] cleaned up code relating to overloaded procedures --- bin/onyx | Bin 348400 -> 348512 bytes include/onyxastnodes.h | 3 + src/onyxastnodes.c | 10 +++- src/onyxchecker.c | 110 ++----------------------------------- src/onyxentities.c | 2 - src/onyxparser.c | 2 - src/onyxutils.c | 121 ++++++++++++++++++++++++++++++++++++++++- 7 files changed, 135 insertions(+), 113 deletions(-) diff --git a/bin/onyx b/bin/onyx index 7e78bd707d604bdd9e6d4336f8158b9eb5efc68f..8aa4189de856ccd4f443ae3c6bf309084a9db09d 100755 GIT binary patch delta 80956 zcmZ@>2V7Lg^S@m{LBvCfbU5)8upp=?sHY&HhoWNayzx&@^8(qj`9ZhK zB~P&Aaib8FBOYQhlwN0h(E4i^YlA%&@)rE8Qt)n4sGFO|8%wJbrD|QJzNq!Gw7pWQcCa)b zwcJuGm#VER9YXB{OKm}^+Nsh@H#asZ!_GZ`vs5Y6(=G0p1@*+ulGAh90?#c4e`$eV zDFrVt&G)R$)=P&x-B{I(tDfVm*c7Rq??LusMn%8d-b|nIvJo-XA;X~C;o^9(1yhB- z(;J@a4bir8yWttFzjNj+BBO7IH;g~3EOqYGlwb0be(m%ZU(`_=(Akd%I!QA+H{(fL zrBj{tKGmI=N^f+vUu~@lJsDc4PdyrvzQakH)nz{K z>zCovbu6nG^NTX z?cI_mxn&IPUDMj`_y{X>?a+2a#?r*3z;f&Dm`Zf;eL2Zzwp-=!N$9}vT#lS)1&_OWqh~oTSyrKkb)xtq5_cqyW|FPQW%-#O%-b zu%Zd$*8Qc1t1efu-z$i#(|T}~D$3Y8FbbUno-c?pG!M+X`lYZ?KD9@xw>pq#?~!_~ z_Tx+UNGYp*_|!epAFHeI?t7#oDC+N#WB}dvNM+af@Pge^wKcx{%5JIonkrn{Ee%`a z&*$!z=Av%&ZfWzHD*ml@n>%d}L!@-LDC+&>z$infz&y{-=(EOd={4Gx*)6%R_2G}Q zqy}rN@WWYBkG1~JQ?it{=@Jm*j8io7pIOrUwRN4tE%2#eT7eJBk}j|9?R-4bjBhN$ zf14@At?S|3*#eI*!k>{TWv%Pz{Ct-ge>5gXq2rqg`mR#gdN1cqmbxBAw65=x64!Tg zZfb$w{%C14a+j35et>h%PBX0~MYP`SRA}|w;Nv{qQfDk`v&~$$VuP1+Q%l|WqIM&9 zO1T?AZ-<%Qwhxwm-tCa|8+$r;w!q~g_>3J&KmTm>a(1!QH7=@)-XVS5*v)xuhMCr( zBKV~YY4E0=&J8SZDzNl1FhimBbd#_1%kAbiZHwAyGBSMs+{1bQF4DCvt@+z6Qqb04 z{kv~b(9$--6%&_Z;rHJZ*6{Jj&yu)Exu@u^mcDBA2LU(x-XbV%#k|otIciaNHg};;#W-> zJNHFd@#f2Pl4Cs9aDeixPHT!Kqc_}^-Iiw1q2`R&9wpsA z{D8|#GL9eFZSBx=in7%8h9mNKQ!-|ssKI#pa%uO;VO$<0RXcTwhwPEQoEpYoCriWr zy1+j-lA`|Zz}GgC=_ zcBiXxhlUxUr+c%Ms7_HGqdLSH-gIoQH#WD`8$Rj{Eo}A1GJ3JRVe?cm#?b|OqgA}& zZLHy~0xb`y-Z);?8%Mv;8?HqeD>&QIFA~y70=+oHHr$QR(Z-luEAPn7*qc>d2 zdxCehU!3MtelKGh$3V3pU!882$TsbEYMnmtgl%z9%z zbXo5R_`zroB|pzYyTXCNYQHprrYf2!Md*5CC3u$a`@_K~^QP;CM>%i5wDU}Ka~C{Y zu)-V_6cCQl+R7Vu3aMFZV<8IYr*(`m5_7D(pQ!k$2Pn+V4Ab+Fg2ZzM6j9 zHpnF+Klw(SaWYJ7JuPC0r)ao)s+cyD&mjj0Z}?s@x2`+!EEbhNL~s%~2hhKegQL80 zpVat6IvUa(ABbivzwX5jy-?7K|*=R#HYAOB~iR#bXgn{;CX zrNE1RDG!#4{*G$!FVMXDjv!Flg0_1)h~b;Ue)1MW*9{m7G38A7x{jhc=nXI944?Fd z4;}R|S;nw?2&sXX2K@H2?hhrz(i^bOkLZmy|De*C;4U9~BgU=F%s?QP>#jE(#-h)A zwo=Nyc*4D&!R&UHKn%h=g=2;_vadnfdP(asxH6=#j*(L*tGFH|>^kt$sc;Aa|0O|SNIu#Zxy)P7=M za&9YW^VMqJ`goNpe~sBLMonvNt86DhU1wu3*cFIiu2Uhzkb!p%fc7#_>*`%B%gH{^q^NOV1nhg^|PU$5+c(NDp- zghIYMoT)IG(RxFyX51iSN2rfOUVW+Jjb?oPWvSzhYEE~nlpM+OUnSFx1s)rwDr%B; zO?Y`@EDThnM&HP0n5)$2W>wF9O`yH4Y!vNXT1U~|4JhQJ-%CH<^meM?Uy|kwlGfd9 z&V4IOFK+sBUy>Ye)#K}Yq~^D3`h5scsf0k_3q!N>9wOvJceX+ipanZM()?Sle8xg) z-K}uGq?&Z^Rws9DePuzx9y~AdW>LNKPKQbfx2rl$3Mtw3+6B_g+bwwT1u6HoFRySx zdU3l-J#g)o#fkIJ}B{BnfVF*bR6edi%%cU@H|01=$(<5O~8zKMaa^6Fs&Pg4+ zhh}4m9VzmAx(TQ^ws1$)1GyuNoMkwV6+?bpZ;URX({+E5KHjNZI}nY;w$0Yk0O|%2 zeD}ZG{3}VV?%v^dy`@_BeE7YerTBY8T`G78C4C$ldLJv#4lnYBQ_`t>0nzqn3kze7 z0|KK`KUt~Mf5#}}jIkkc#$=5iod^REbi=&17okpI!m@?{nbsJH$grxPxBy7$)%$KhH ztL45vKi_wCbenIMecqoU{`haGRQ3M2lzAk$+2?Ao`>!op@_ZbUIj&+CSgd34^k&as?_NN!8M2}MkXv4E#(-c%_OZmoTWN# z6_91g>p_@DV;E0Zpwg3dY_2rqK|rhjr#5|VaZOq)hSYBeL}YSUTpvqDWEa43lj_Qn znSer093owR(4yiBS7p(z6a^Oc#I91^hl5>%%+Ts649%?d#_u%pt@hH^hgIAoye!f# zp~%s5r2L2VT{n(Z>|FqOFIu>x?WOvUsyfYgFEJnTA(J%Xk*|}X6nMT#`u))lo~_3z zbS8jK2sElf3&A6lB}^{`$#s1OJ1fkhW+0wq)*kbt+|`?r4dgPrK!)$yQ#X1NyGFa*cHBgs?h&oEv45_>qr-$hmVf}KCi`jlb538 zKRUo-7nkge{gF^1wMo2zZBW5;zEG!?qT8PD5ceIn1fAHWx{3z}F zpyvfyQkjo>zBx-u_}G|_&XVSQtk1); zr(aKMYjif`rhcfbPD3QEO8wxWPCE%MQw#i(>%|#6YvK$S^Q$4c(kC_(j2;$@dWnvW zs#MuEwV;A}W&~m~GpFa0uf!RfLv$fn6-Urfj1lhhGu&qzyckEjr@x!xWNHJE`qqKsuR7Ik_PJm=Zq4^%7-1616b zv15qX=1f*{2d2jKn=|tO6Wzds-WV4s7`X*TZeyFZr?Z(6Zf0ah888x{FfvsT6H^xs zCdB4SKBMfg@o@Z=fOOX6ty1h$j7k-899~x4`ncgZ)WAi)cv{IR>rEZBns~!IeNK!v zMI-3RH+~Ve9X3RG*z`)Gb7RjyCB1T2ydb@T%*YXBOY&_+#sLWfR zr%E_xjx(Bo-QpIm*I0ps{gp`F_Se@itEM`=PZ?E;s0fcS$lu~b?AFnNu{E|C_d?&r z8{W&K(v(FKu9&|SP#h6EbUTN^K;`lVVy(|ZA~Z1G@KEmms~HvB6$Lv5*hW=e1aOoj z02HRk+5Be>|7^V<2sF73b5B_(GU(tkFBbFmbq{Y2bc>H>Y7w5#H@rAwCt*WAe^eae z7ZkExoUm0wJ+ZPq(0?%j)e>Eco{NboC0heGah_1#h{FbJPjp*a8o*9gh$3*nkx~ONi!ei7lMC90)AVZcn zA7hI(_HmC*zn^ptgVCgh+a*=dN7x*$Wvxo8fFb7Z#o)k>D*qK8Fm$xLU$o~-K~mB& z-q;0kb#wUI7_EE0vqfdN;2NBXrWOh@jS>sgsj~z(hCA_wTk!^OEyQpn&dB2p9S{Hu zLwV|$P*GGE0fC9!snoh?;|)E4VFZRgSLg+@8u3Qj@5X#m9HYf<`@Ps?Jjg*E7F3+! zD)OER4FtRKhX2gFjy6_SkQm3VuS7I)<_C)w4~K)Zj8ZWBL;3s&i&A6e+L#)DESd_z z#}K4zFcCQ^ks(4XMeQ(c;~>f@u*(H`1HUSzS#|U5(F3AM^P4hz_3Z9ph z$8tyRH>nc-G60y#CmO{p$ov$vC~lQ@7a?{kg;)x2ei2@ysW)VhFwo8KOKl~>I*%te-lPT)75twWvgF#A)P{iI7@A}jU5WA<|Gy#^QyjE_1 zQLtTJt2a*2$PYI|{HaYL`=-#Py!QA5xVwV5=aCsPHNqqLdVZELN_m$+P(B+6^DcrL zeQHj)Yz2B^Hp)2kH2Vp|^PYJr@93a6)9`;T&|PolTfz06VumZBkk1|?2On0Y+U%bM z{a8%%g2cU&K1r% z-@HfMZ3i@yF24{;b4yQKeOObz|2)0)VQ#EC+4(ZRl(h5aP$>s~Ipke4YsVyYoUujt zyGT6QM5VU1c8oH%2sG)RrvB%ko^c%JMC>3_8?xkzXc2CCQKxN!YR8+ZinDUVVH`qS zKp>$`TL`G}y8`iO#3RY=60zRbfheu@}+jMh={h?T7AfEBM)2FEF~ z{}g)d%Rg7$#fIY$R`Bi`__GHYFeRdd@zQO7tq3Ut zg*@^Ljq_vGYt~l`X7Q*oC{ARwjJiHRQ=&FwSWnTy{Ro}*WBw^ek@moRs%Kh38H8Jp zer*A~!Xl103=k=&M|c$HSd=D~Z;L>LW2S_UsUK|AGiJkFrOFkt{M0kT@eJu=AB+uf zen%xcmX36Y078@it}z4C2AY8(`V;{@)WM8;qImlyW?Sz2+(?bQ@DPPmW^Uzvhn-U7^f$Gu%qpk!t0s6(t}4bWG$l3MQJv-kqI%;G zi0z)s)ApOKYWuH)O3)a2oT0NukV%ultrDPLR32DzO=B~cC}U@=4~P0rRx0%_mx}3! zlPX2MYhmrEPM-&EF%k8^g^14LYCstBK{zN#B}6!@3_M2}+Xh;;F8x2j5E>4{7FNGR zpDHsC?Wm#P4TdBOI@_%wH++ET4!uxBcNm3iS|M~GR&X&3 zjR($)Hx9tW;=+M4vtql3T;7l0^2g=Pkip;~E>Flf2KnQ6$R9&c4p_`^J^718U|)(0 zHk4laGuM=7r;1`QIini}SNy=~UxfoD^KBWh<7-~R9QPSge7L6+TPqZ1v_{NWUKwaR z9*RQIA3l_9?LWjE7+a(@8_lzX!sG>^U6!MG^21Z=_&~&PSFt)$8)A}j#lw#RbR18` z$TxmflKj!Z#hEiZf)?2Ey%+q+mG%nF>8(y*pisd?uZ9gQn&?G%Rwmk{D+8|0lk9Rq zOjNxS2{`By{T6pjT}pIz7#>6pYgSlDMlF*AUOrW3_!WwHBQhmJ_6tMQ-d0@Ac_e(M z-hgDv82YU$(^j0a+pN;{p&*!5zlU_DDr?SXt|qr?ta0^41tmv0WMJ`8_QRB?7C0qW zl35N-uEu=%JSLJvTF(+_=0nm*j3%mRa-s@2HFjn0{MG<^QH{BJUp_3DoER?j{x9*2 zAk7?;B^OZT0OraU4xsP=wzFbNz8IcvGzt;vB-Exa0nE?I?|n&5m-eUHfoyoy%1uDb zAAJCDaZGen?g%6KO(vOdXifyAS4;F!-Dw;w zLvdbT_K_S4y($cUr0_Wcg*?8VRKGCZeuJWQxIYuMR5BGdwoeqE*oaNehd-nXg~8s{ z%~}cj{RgIYvdSZAUH(C+sk^-F@&aEL)mYb3Nrh{K4>LfVa=ZYTMucE*Xn2kj(@EkM z0XD<#@#2K;x!4c8V{NH$xVB(1i*fRa6&AdQ7CTEQ<1KmewgoR)Bd$71!Hn&%xcV%YF13)4Z5MBN0nqx}ocb=}m1s6+PDA!U$@Qrpl#ufSLv<~*z}f03 zgrYbWM6hn&u*Mnk;tl7-Cf}s{;blpYd-g28Fk-%#ZMtkF_%Lta@4Vp35y9OapO@^qR(CpU%_8jm z;cFFz*}aHdZJ4g|wS$6dXw>(MEE=;Yf2*8UPl3A2tt(&B6%<=~4n zunY@u3V2qspWa<*X&Dx6-xB!HI|S=QPs=brdyPT>;>sj)E6X$$dfrwvr56f$NKJ|@ z%et#)E2a(>PJ|$SL|e+TO7?>QR5<*ykaEkiAS>w!m$p52;ZHh?zC5X>EvxN#cAsEO z>@tl%YUIR)G|ZO8IgST39?r}*PEahjkdE52=8paft~inr1K+WLJndLb&#~C!m=9`1 z)F)cGr#A6OK9N6{vIAKSzI-n|4Markw}8|^th%d}a?0UqjUwKZs273S)bZ3Nhz;a{ zA8A(*tIgN$p+`Y1+}`0AF$AQeI?SW$)mgktnTf(|Cw~W@4t*3&-%Oxc)mboKl|_3* zS^hCSuFh)MyGhFE!{rJRX=*SZ`=)a(fckSuUjv<;o)XYc8Bkxg2FbnmZYwmJ}p1m-4i8O`=hR1mqO$=sLc$0UuESRNv z{{&y0*S?678Ocnk*IkON%{p-XTUuC~h4TYDD7QB2&MQBlS|O|jci%x{Ls)HxnIkl3zc|8tQx)wHD)&~$3rod__Gg~ z!JUo9w$@Z7l=b05@+du&1zW8zYfZaCnZH#U9>fqcWhddMuK!*g{W4Idvxmhp`|Yd!4$5u?9T;IsF{Q z>hgn6C?|}Cy8MC-sfcGWvT+rV+6|GXZ>I9~*&UvpLC@+lw?KmN&U*zDY2G28c#7A5 z@u~!l(M6g1%D1Ri12)j=F0-bE4KT*v^XXUvR*y@Y=wk!S=Yc1r31?dG!P^T9^LLq3 zdrIyKlWv~RCReCWI5b&(lQP3uYkno4%0#g5_@*1wErJC&G#U-Lo2~QK8^WVbuzUKK zB9v!;kz+%&Yosy{%*Kb5Rq!mk`rmNDPRaXw zBzwfAPBCX)U~BHJRTi&Co-mDeHfGJ$^8vsmH&{GaE$uWar-Njk@21*1*0s7dD#bL^ z$E7!MHV3olF4u-FNzYawk?u)o7%oqmO51fTn!mq7?{zGjUtCSQo3I%ntyfzVRP4~= zj7{YmQ$+V;HAUi1o#@Eb>2(zKwYmKtjcUqP+1)*+jPKqt@{VLNe9{%_7s-}8ygVwv z;&>_S*->(gg7zN1MD?Orq?0?AOPsNZymgYfT(_HM0B(PLg=MroC(+p`$a0wifN&d3 zqW4j-spTe-wi#>S{hyMZ(EWTw=~_Y|{~>OL*vaR-`{}9CB z+scl|nU+sYz4G2jzB5k18_8F82sxOe9m@%w>7X*wIR|NUb5_?r?{|TLIBx1V+T5Hq zDZfkshy%>}<8ZiD*S@a;fC?3i#VJ=U?;zzJqRhq#Sri;q()#>tCDL2Eg;H9u0FQ@D zl(CMrQ?fbc0|cz*QDX@g{Wbilf$p|o4IDc_pT0$=Urs8~I_dP-4Xn?lo_c1iwra6i z54R~xrhc**ReMc-HVjOAab-0%$6cPfm@34vMr{&tmjWrJcg@@)lj@~IPor()O*Y5R zDt>2VE?22D^;%of(G01x*g))9f6yC;X%P3c-Afb)73_P4 zZpN|d{N^6AYss4Npfl9EC9C53_jP!-^JUDQO^Nw*l~Ks|E6}W#Ov~q7rL8UDOE)i~ zJ1to&o_CdMwPN)u)Ig{MW2GoUheB#whgIU8uhPs`thM(Q%w7JRB5PFq%G2hf^r97u z_FR7j_71*Nv66bzB(1I4TD3b$t>c-yZva9hg|x`!3D>@6HySj@%RITpACwvo`yYIj zj>fa+j#n3&B`ZO)A@Z=%bfh)Y)_jnvZ0gcGq7#v~7{Ej{JXuL944G4Wx}1-aa~oE@ zX&O{wVb3r?58_aXT80(!e>(e{T{EaV&z}F?d1VugFqwI7pM)unVD$7g!h< zX(kbs%cn*P#EzQ$9ZH4+Dvaf?o3u;O-O0OXT3c4dUKR=@bT?%rZE4G@x@4IFxCp8= zhm~!s|lrF}QlD52cT5u{6i)A{8D{gA+#*xyj19MBjug7zk`Mm`G_0MxtI2%+9$ zC-YnWHbuYf*N}5N*mn6M4QdU;996 z+ns61{W}B*KV77e-?1={31vZComn^~?zn8-k&hmuTO247TwC$K6D0VS1sT zw#>g+AR_iFqL=lEb;-!v;@kN z8qyCPS%UMA0>RddFc#0UM?<>U5!?2&5#-Z}{Zh73gu*iYeUZ6SZYS2%vzB=;7>ojg z4B4$gYca@U;S|)F&Ea9;w7WBt_=^YBrVGJCo}+=oahkX;#3FL0eL_yucG_L z8-N2AH=+yk>;scvx=zVu+{`9>!? z-;-5Inc*a=;*kO?p2tcrKsII=s!BkU{wp5P%B@P*|Ngo}eT~xf7vOKc1;nyF>W7x- zzyN(JhLB&e6axo8mZ<-$biK$G%R5U$n;}akkNQBjd$FfH;RE5Dg9cs=ZbALTWMk^; z;@P5~?(*r{r0K)bty?7VL(lJ>btL4BED;HqGY1vDZ& zX}U)R{m7g8{tF~JRwFLonIR+J)9Aj4GA~}H^?jLFr5)F;RL5<$;IB&lTVTU7^?y&- z`m)OWa}Is(iw>)tBCmd|s=o1ME0yKmKW<7sgUHNg87Am12!Q*0C`6iJ#S09^kRv~S zf`ojbI59BkzFZO`J1$pxPe1iTsBrEQZR*Ebx~+L9c*NN~u87Na8lioKa_Bp9NMzN^ z4M3%M|NNGs5}AKl4-knq1|lmx+EzBa6*Li}f#g$P zrTb0-x#C-@)t?3U1S-3S<8q|HOPy$|O7a1RP6FkhH}rjf7U=RX(uMLL_?jUqD@aU@ z$@T0a`m;Zx-TiNf4Pb$G&R4~lU0tqHodK*`l{fa#UPy0Kd7&x7+*syRcj}5FoWHKn z!~v{oOnh}9n$ooMfU?J8bpn?P;ow7o7;P81RU?5Aqa8023ta>(Qs7SozIf5g-5SyT z0W82S)J(X}6>=HKLK?0M66>dfR=+z$pc-|LFkzS#8HJf6IbA`CwpIES86)H9KzUw6 znlcdXxJnTHH4wphNJFYH2pd^jI~qF(d&_|lv~Cbf;BNxx!ys72PvO*TFdJZXv1}o2 z7!0rB_kwN@#*}`1PF6!$JN|1m>NEs?KC1!E7=kzfTbk`d*eLhzWlAj~2Kz3%KBtJG zY*b3EY=j;VU`+^8+(+nSKEbMI2J213wZiJ(@)5!bt80b=@Q)eL;45IC8PM!2V51o@ z=_}wjGeG(ZFaXdJR5yHuj5nird<6^=0Hf~3IU!4x*u5Jb3)$k`>^hK`6O*ZuCu`~Z zVQd_?*3#o)5aW_6^xbe+$X-uq*>Kh~I_ZEI=UH*#>AAeZOOQoVd`qBQZ2Cn&pOk|~ zYyDX)=&6FH-q<@F>8AzzMf$0hX+K4dfC2b-AIDLH9PUdqMzA0|Th!vUj4x%4V8JPu z6o!*=JoYZBwK}u4i?JgDJYAZ(QI;}3-5TXhpL#4rUZdbgivzgi)j;g|qe5;jz+`en4e@7T&$g@BI`S!;pNCX~0P4>Q&YZZzSL*UC_7Qf_!MfNEYhx&RdLM z;WGJmpkyQd#2{{a)9sN=)6YQ}Q&A!#Z?nKQ>2l0S%kY-h4t5x^qud_4WH#V&hC|}R zqcWet^E|mxY4{9S{@BoydCHZ{r+L(O6e8F-4XqxXn%6ClX7N}rj$hmQmuh?O!xtFuQPx^Bfg@RzJ0AWeFq!Ftlje#} z%cE1AjnDm5veUNahUF~{11$~rCNrlxZfGd~2FHvkvKP<6r5Zo`PwBO$rSX|ebFbcG zVLR5$p~$fq^6WXqhP)O-EH1Y}AYd6Xg59yqEhxS?`k+$i0bkKuXVM{oUcNYbKq>S` z1x3_H>>@S}=zp7vG4lvRFV4)`ujs$;q9~vT&sNY~AUPMUytWkjAfQ9!E|$R$-en&A z%5khwd<TQVj8tt`Oi}5BY+O!Yc0aBww(uxO|&N725v~1*}+#(%IJ~rt#-( ziULm3I>s5SwRsFyR+!~hZ>a7h79TUh`CA8FfBK&t427JEkF2`6gCc8Tzsn7u}?zrp1?oSnFUtSE95*v!%??v)J++mVufaEYU`5WT7 z5F;&4{@_cCXwBrOZb6o&;uKtbDU*j>kA=z#(Xy(U%0ltHJEatv2_?yR79&$zICSMA zjQko{B^W(#cAVEs!#!cyO^wQ zpxZ3o5Z%;=Xhiu;5fP$1m9l+CbX8s;8p9kEeAlr8-_%jx6KThOc+UIXk=muO9gYpG zg)-@u;dUypm+vRnsjPPS0%ekp!5@y@PYF|5T~~4IFUIb*;yrt+MH|=P{q*Zp78ktu zd8tt+K_YU;D`Em;aGORX>%~oV>?eFO_mO%UYhEsA6UPDdDYOGCsXuBNmh*fGJ zSQB5%8XjYAH?00%Wu0sJ+ALCi;0$;)?G;en6cqT@ z$>iD=ZSzz@+=(r$^;Rux)w>+kyBrSeu~Plynze_jrLxUjpHG)kae}dPBe67=%*#B< z9G}MUrG8vFTAj`=@~*>a(hOv88w{uAq6`{N$3H%>H1Z^!-fc!s!vsoXLjr8jmtx&tzp;+1`+{{P_Vf1G0*FLny!iDvO6uyaC%) z8bU(_yw?MoXTY|`Wi{P2Ai{XEir6f$xq21VoW-i~nm#bWj%Q%wH5FBm6UA6@k#rYw8{uF!7J%+Bf7O6M30TwH7{F1 z4zrQZEto^KXM;@N6_hX=?W(Pyv9m#kub`y@E-$BS0sk_99*XkS04i@n`&P@Twh5{7 z2Ft03c=udRDJIkp96+m0II@ZyK!2Oi-@E?wSd>@$lkFUokNQ)!IiMf9jM~ltUlo?o zxH;(O)l&L(4%+WnN(aRI;eK>my#Ke9Z03UA^+c*U7wx4)YAMQPi8L7Sipfj4D!-w! z8pM{Q&+W`V=CU@7kNcgT&0{qy@mpW8O-sHcZmR=9ePA?`Pv6W8na`@1=Sw?MkKZBt zp-LG}cYkNj+QOFt`Jq0bG)@xW3K4CtY z)@N^!XXtcVk#aPkOzU{o>`i&1?@RUlWTQpZ~Xl zKylA0%(^G7Sci;*ek;9O$3hz=Z#5&{yjlvee-GIIoD0I3U@M6)J(9jtzTY=CGVeDg z9jAWlSsT7&3vFM|`tiSKQKbzyFlle378_U~A90Mn-@tb9ok!`*cBZA)8(Br(s|NMi z$a?U-bLhZEHj~p4YO#s^!r2kJxe2@c&4(%EPt0*t5KaCQ2bqNdbns8?rS=Ap)n=B; zI~}5}h0KMPY=(rb57D*Ftcg$mHV~yD+CA@Q?Ax&MgMFQ>+7k{tD6h|^uq{YG49uqS zTcDUJZD{EhR;QeOw(y3}vk!#R)Gf@1YunHV!1>mL6ugynwM$o3tw0t`z@6J9k=7xOLK5Cf3 zTJkRYXhsJ6nKzh0o;$FPSL~(6JCOD8Y(;51U`FcirFA=S_&Hz(z2CvK)ek|7p`qEB zFJBQk8FgwDh(F}AU>t`4*+Ok><^NVv>`oTS2kxQqJ6V+7k(CPDja$&+o$Mq(mrABx z%-5OuLM~|Fm}m6{Po}UnsdQi$^K(8U_RvbjS>!fRF)@{1?1J4pnMJOdOj|xW4O(Tu zuY=fhjiuO3)YN-ILo=b5Yp2r8Oq?Ix`m?O-UYVT(Fk}i`*?gnu2 z6#8p7i?OSfCWH|doJQ_@um-kXq$Z+lIGOtI!R%VyB;y`7ouAo3>b)$954k|;dvS8; zyMwa#vNe2c1`XcFYWY0M5Uvu3IwfM1zr+T7$r9SW4=3&Cwp022IDjyoqs0Ae7B4(Y z&-b$*{Jpl9^6~f3>YKrlKW?Mc1FT=rdn_xVVCI~?V+ zP=$k7EW2_k{2&x;crHyp$YS}Vgn@>frUQpqAAaCZ(i~=gaNj>E`!M{;+&}60Vdh*?)fHZ%Zr?v7};yQBc0VB@xa#)^4wu+kMBvW?(G<}OykhKP_n0Z&rvxkvCv}(TO+=1F)x}Qk5SSo$UNZ~{c#G%DSMAn-M?4^ zSEtn_r#63+T)2u-{z6~6RkZvsn5S+gdV|uv)le*pL~F}67W3tAQ&^*s)bnpPm`g(` z=WjNJ(~8U%|FANQ&s|P!Ps3C;T~13+vzC?Hk18f#g(+~{96;qnNxq*=<<5YyrpsvQ z8Me@>L774d&qWYadns+ng>`&2oId5k{H*^YGwdub-CJp_al&~Ht8nD+H2NIt#VhTv^w{!GSw7qeZ|yUV?-u+jk%fIX2AkT5H|mr&L7EX?uo05NOPxZ>GE>nJBJ zp`qt7^BDt3IuG@$x`cM0XW#Sfi>c-Xw%4xX5JfvX4WSnon5W%6VYN(QlLwIVMX1=q zJ=EnQ8_omw(D94N=%)TgA1|`8-2OKja|t(h4i(a$mtg!H7SY*DShXI7)bTRj2mC7D zgK6z$oZ@}|g+2@5exk}(5U%wdK&C6KlkUHTmi1-0@^x_;bM}DTgH(6JHVm?*6#X7ai?X3v-EDAXZ9z6~j{E(s}fDCix4iuJ?JM$T& zyBsH+KTyMq_CP@&lvB!C-} zE(YJ!%C|?-+{bA5b3Wa8%pzSA@FjeXN}S<9)AAzVRArx$6q*kd``$DqAN~wJYHL1R z*z;6+p3mym_54m8V~O;>JD!w9U(7ei8-?e_alO$o^+T292Kc7xL>ub(1VTUJNQ<9< zkjqNC_5|vAV!GK3SAUAY!Zwx0K1Focrgi47r;M?(4dTJBW*QxMhQr;Bt*G^LHi)-r zMZ2D30$QeI{_=uZGafUAetXHrxW4!zE*kjK$(6rYqzUru!MM&n;j6rz+dYYku$W-#D#hI^O zvlYz0Km-fOQR2g@Y}^pJleZFwAVudBrm!7lIPH4NI`MZgRN)=#RW-K-Xo+k$#P~O! zi~RRv;a1GFdoH5+?_eli{z{+Uv5h?DSK9C%p;h{L`tLpa3kfAUUH}JwU@U3=Lz%RY ze*BMZ;qAv#jSsAYU9!C*i?R0f6Yd$8bzgv0XY5QpRqF=+Jv;95fE#C$lUXpb-^d}-N~hp{lST+T!*c! zn@!uScmQ{qP1me=3YU!3-I_Pz&4Y8A{RYsaa(omY z6hcqS@o_#~YYW@-9AAfr$e+l3n0VCusluJwG|is7^7FOnS9|Ww1N+l1dp?Dq4yO9$ zd4Jw4k(QL_ag{rV7R?+!K@$c*h_EGq%Jj+dbSmQju^pUFwH^2e-o78^XDaPegPh$|LC%M`BOk&m z_Ms7uJW*Y~w~{L|i)4$QZaV_Ael4=C$bGn9Eefc}>s6gUMR<`8+61$D8Fjfe&E5!w z*$T)br_j`jJke!H3t^VOo=)ZHaXFUWSL8GJsL7P##H;e~p0q}k?PU7Li6`+!Jt^9m z&*zhBWL|RSv5dFVl8-BQ+h$u!9oG+tMwm9AVL zF`)|VRe3w{K^H!x`z)4|(X~H-aYk{yT$lG8b7l;CED8gDe(Ysqv6;1LSS3?iiC5plG z7q7_&X=tq%?-)F_L#gF)5(ATmmWK8eP_2%td-H8PG>vY0b2p7DPa(;aVla}sdGgyV z@TTM(b>%9Pix2nbWzs0zhqvO3G?ebctJ%fjrnpc=nRfU<4^H~hO&{KZ7x+;%UtWv< z*N{5;@nSfaW&tW9{ch(+_o|`^yA+GIzDV!CXUOEt`oe3n%Ml{MVtJ2vcpHPhl#^svFi&@3PxJ6 z!hjhT0hn~JJe1EnXhIcOKWlf|T7}o)KVGBzRk)VVcB67y-d!`yt>o7ZkGesx@Bv@m zd|{AI)}wSSugl{-XpffHxBE0ynR*8g`cDg1U$~QRRbJh0l^ML>o!V99RT`{w7ta5% z`~n|`;JbOtWleKdRnBi&a>DZ$nUm<}Thhj=T*qZkdR!GItDzUotHy^qe!vGK5a>sx zaCHIO0kDEED^aZgKE*N43?5oZk!tiU+8e>Fx1 zxHBdPGJ}D^uQTAR5#Ku7OmN9u9mF}aOLi7?Z8|yA*6Q59LLI!yt^**dkrSv~U$P95+Sn{y@FQWHiY zP>{*7ajls7xhAj9_y9Ep1w*SxsA)(r58|`z=$Bw#1K)?yp5fj7%3Pn|>gMBcJIT?pkv9BwPYjw0I&_SCWtU(IXT)5|(MvE8zBig1^s zkT>~>=@jP{Is@KA&*Aqy#LqyD`kN#8Nzs1js(R0 zFy6qC*$P?e&Ye*>I)8?0)aOgB%9Z7W-}0?trDaxxUmU8=bGlGK176c^`Dq1l#cAr% zfYpnGX;MZpp9 zrf$cm1@d23wK=E35xk03A3V&7;B`H_TjTJnuApaft-b9li;b;0U5|isINp&08}g7E z+WMt#&?vztT%-XFwt6de9$Dxxe3yvZ#M&u8%R-w-)uk zcznU_Ne{Z+ly|VIh|$-N;!D91 zQShmM_NMt!ya(^?M$e;oW6$}R*dlhWsuXtap^$^zD7G1IZ*_%nTHK6Jwo1c;S2Rzu zionCq(LBJa5#yQrqIm_zoodkEF+9xsdUdhg#2t8*VK5Hyx?sC>Jt+>hri_Y{Pb^>J zRRtK3F%I~Y-zvyaVGpY$cFI+!3$Z-b>j=J}E`b0$s32?zG9x6GMnGJpAhZn1{G~bf zU|hYMwzS}}Rs}7-kg1!M8&%Nr?|6?a>Zj*J`P5HzTF+B?jR0yNhrl{TO=nPgN>#t$ zS4(08@$<~*a#Z+TPC*ot#jctakj7{lh_8NDuj3!ckI z5W=Q9-19BfZ^J{hmCSYL-{AktAaE;)_Yxhah10Ay2oU$Zp{zF0_+Q`9BT@E$LzUX{ zI^{jkG*5hJDu1w}4sCgJUjH2}Y0JI%hS#*aEgzw+^jaBQTYSff9uiQL9^BFT)G`5s zxME8K6L=%dN82xjG586lC{rwc&RABbiO;gd-OkiwOrB!g z(lbZNBT(Rjc=Ta%9rp@jz8{9&8)4}bZSC;`q^MKBqNsMTNmt5#p+W6U9pVwzcCPRzKk3pLV>lcFYq+tRXKgq8ldOONj1nJ*xE`MCJaHdVB|=KYu~< zzT@@P+h0Ir-61leEPY?lMF6d$%6y>;?RhZIenm~%^Lf02H|4fRtasImY&yVu4)&t4 z9T32e7($0S@XFpFe)v)-ewCz!dz7KGixQQ##j1e;>hO}jbl~A$YdpUcDhpB!!tktU zS?0(lPiof@PCm?&)_25~X7dZm?Z{KTUOs~8kiw2E%G_NM065605j3(B@5MC{bQ=5d zirG!kk>X+T>3NPE6-li-^C;fNo#u6h-4Ao8^__V~e#>oP7rY*GBabdTq52p%%#$G+ z`O%ylahV%&P8VCF%^e(ln-W-@p#?Jc(T)b!GpkAJ!h;)66!E(;Y!V7w1j8?Gm^#B+ zC*jNFmyurzW7U~0s=){r?GIa{1JUWy%_Ts%dJY+cY`h#J4LEdy1wVz!a~K_hn~x8D)L2F-+zYZ zcHj>&c%6Chv+#>`u#ArPSQV9g&0LRst7^|Wu~jmK4Kvs0qKUlsJ!SNT9lGv7R{b!r z<_`30Kc2wd@6+Rc{1#soL8lVAFWAUa*9#2I|!# zuOMze^nk+pBhyq%!S~}q3ZjNP+@`JlxnIRv;6vcvGan}2T1PH+p??+h=_S#J-=tOp;ffF5p-}^Q zKR)ITogaueZ{8vb9t2O-cv0r`L2$Hu-~}oe%Iop1=P7s?_bb=-8Dxn7<Jd7ul zd;8S)n^bND@9T9oSFC@0@o8EA zVJ8FtamHYOT*yX7&(ohSjNoUu;RdZ9iH+TfKsr7WwrS=pYA_0+@z8$Me-!V=gEbU7 z7C)YFX%z3wM_s4dqq$c^9TB;jT#eTuK4Vx-C5{zeH|TBgeg{?gj|}2mjCd%1NxSq2Af4t6pN0EdOiYSB-BQnYq zF(G6oyCM5BmKeKuXT(S%1}|e9`@Uq&60+~a*w-w>Z8F5zRrmjV-Fx5E9W$TLXFi|* z_t)d`>UmzT^E&6e&g(4q-1ENo+_$-<=`m<0+#1TiyU~*2qJ$Xv3ndK~?ga~6Mq-eD5kp^$6kg`$OJUT9 zW7(jUJd($Wjo5+yTQDdU3s>BS*Yc2$U*_D#;P=pD@`8@++*%%uV$zz&yn%;L9YHN( z4yae}#5vYhZO~QrLlzh&2RLZm1G!kY>yUO1lM*6J#&Na%^IOMJ`bg9>;x##p5_QC? zV%)5iY49j4*B`wi8ii|X#bR`96ebEBU8al@CBl2W%I%Ew>2fQBDD6GJtyRw`y|3Q8 z6!-(9Z1+}ehFf}$>+8P`Aiuwzg)_i!)5y`{I}zwczmFE-mCKalW&F?>yoQVG*z#3NO*=W{%2^sQMtBryKSfyWDhH+AZup0~hEAc4V{p@Fdl{vsvnu7?5(~=m zlPM-r)GaysfZBb=FvJwS`2((q*nRbspS#e_NKwL0nXJZJ#ZY!6M*N+UG-#~oUl~u) zSZNjc0X-!!Cb>p(Bh;}t3Vk?<3%#es;&lX@al*6GCJ2LZ4Y$?A-be&>FR0JXsgB*h zHseGEbNI6?bi+sZolD++o#(|Tcy|iFv0BTGEip&s`G~=DsQiQx$N1gIQkusML)oma z`ayPvHp&>hA07?RoH+nt?E?{~CL(mKq55C|=fGD9{48V}e2m_Y6Rv)Ep4ctW+P}%MM$WK@ zyKq$~$sIAhIFDmDog|G7JhoWF1n^d+1he zQ1Bzhm5x#Q38HoJ=O}k#c9R_;q0z1x`z6Dl-xD&1+|BJ5j6>1B=g@giW|= z#VLUCY;lU3Bo>Jl#mMakT$=I}qdq?%`MzQl&p4+T?PMHSj8cDq-V-N^nv850IZ?`F zWZSqX*~W-D;%pIG9E0?eijW)w{rXPiI0abDiF_HK6ru1bSm)O%Mn6o!Z&Nc1)6FTu z$ElQ~_Iq}43>qLDmtq?{+F3pp_s=hrX-O<5_cKfAKrCj7{G;ebEH0wgM&eOW(M~)n zM7^g9x1hb7xeNJk1ZX$UwF=;RQ8wqzRx@uXG#aHYB+!!^A`~3k$5#Fvn@lKi>k&FN zRWz=ZAMV^eR+~wGOHy5nXOgVshNpQUjU+bhvFTp0P>4sczMr*Z1T~7oo#}TY*rwt% zB~BC*>rc_rI1woZ+L7BdQN75^O{#$p0h)pR^HaBJxQ(i@k2XxhU2616Iynu#y}6hA zO&6Vucnyap-x}-=;C7DnaUV`Mri(5m#YT0sNPs4B-*{?EB>dDhPoc1QTxh>mXnwpH zC9Y;uu^FOaQTIE!t}U0-7s!rxXy6Rdz;odwhoYR@BW;J~L4- z_xaR)rWh{;BjV9aQM+1o+}nr5x}~4|xK@X2?eIV|%*@9S_qCo`H0~yw{U}PBA07E{ zAA-;3#QGG3n)=?XdbVe*|Le5^pUi1>GfO$D?TzqZoiT^f+x7ZzY&pKH^<4`-WMWS+ zmX8WHveo;^qw)>pjSYKGezgKW)up@%uKUZ-QanX;Ma(`gH=HaRVx8J6#`|ah+Xzkl zmB1BXv>#Hovy(Y}%pq)JPFo4~<4<`wGo3%{H6dPY3GL#2k*`Eo^wmp z7)@uZ`Y`$<`NmGA$5N$ssD-l}ms4?=?* zq<5dS2*Kq}dDL~>bDX0pcgdiFvqcrxZb*O^O>EY}dNu?X8&jUNB+M9c+k@10HrB~4 zyV1GXxGR3Kl-|u2%}TUwkIHpF`{7LBR(Ng!Cw@frrSPAGGYy|33YDCJV~BH}&}L)e zL~%Ba=g^WlqJ(+oc56O%TG{5Y6UOQwKYpmTl3N;X>G;D$6HgSJm>(YHm2W6Kf|DdX z)rAUPVCUuPX_LAUJFzYX0e*qNO7yDutDSAKvxG%E}cRjuSe z{1nRh@qV*q`_o@=XD)hn7Vb~+xF$}>#XNU>7WE=g!|vCaih?$%pGJ#GxY{YDd80{o zPNSoED$MS*#{MePTf(mQT|60z*xfRD%oSd()@$rUS-r$wjz`oeHC%9FEZ?uk`rrFj zwe3Ct*FZUaC$Facov;(4&TQEAK|2-zi;*eEWzmwkBC_G@E$HRBT{!iD=EC$z+S@mQ zIJ6sY^tNt;L;t$J2##y4o#Wghn2*(~I<6PDS%r!-&D>ns>VbOMtZxH-G}o6usy7R= zdIV3QZM5MhQKIAylv*QMFZW|3%D3-R>QAD$c>_+1h3$&~+EnU+&6l(o^)=ckv^J`6 zM-Io4)@iuyQimNkFZ25?{2e)fc`T`NwUOKb4TLE-ts5`*KORo`H7tT5+Q}U>d>%$^ z)%!GKo^UE#d@HhuIgH+cwv6<2lk-5JEo1IsgnDkFqw|ED`SLxz=beEG*jBOU0<_<0 z+|}xStf#@@3y_lgk+%P)^(DD2Y8-rw>uQxY206;Tk|2mHupbk`Zf|XlaM-{u_U{jn zMeii)Jzw}&zB*0qWHo+OJIe9&n>;JQT~?*6tCwXvPBU0lqp+@&eIYxIUm(3&rO}3Vnr+@!}`i$uHH-9|&kXE7GUe{>z2 z($lchf#V5bPQFE|Ir#yYh}6j^FQ@(fAw6CsCYHV5Lydm`2*T}b3xN-s_E=! zon?rIKLgwHM>w0ryyVXtW~wh?<^EI%o=nC^op`Q4fZyD3JhI6Hzg=TVDyg65TI69zcGt~ul>Dv8I!k^OEQfnz&t8=loQYYAWDS6|4Nh2Z2JeozJH z&$>Vn2VnD%!j-GW?{!Z`MhDluG`20yFm?{E`&+?jLvUHaF33|id=FH{X9@Uqh{o#v zQ!qZ#;ai!XkHsPF@8q;<>QovX$eUTnolS7mu7_QY;Io*QBGU*|>k}t0 z7FQ(kjZ9saW35|YH;rE|>N*Pa;^5fX30%uKo8`OcbpWzci8qGMe%EKV?1TsELyn&SH0gK()krw zYU4?CX(jID=53%_D@9e0DpovWsK4a;^02^hs#t;KTyw0sL=#tH=jt;&cfV3>5jfjw z*($NGWXB!oo>#G^#a)ZCQtiUF+&vF%pfRg)8}a@vZCx#Dh^zO>al0r%%4*!L#onjz zZNiDZTq8dBJ%#Iju7?{M<*xiXV?1{Qx#xP?wFXmw!##3bi=TIDt|hOvqLEiAthcbC zX5uH>uq4UELOHnm7<(+FWUJg!ckj@`wZhB&>$^x%FBn^srtyyy1tV`W7DqYqn0bdD zuf^`G!(DP*hui00QmNTGZ1^lor7`QoaR2!*Fo$|1wr2v->ChxqYuv!$ld+KtY%yLi zkgVlFxphNtQ?>P?a`!M^3-X0qH`@t$q*X^>(|=a_qo89$TYLmI3CVY3F0kl5z6HI! zAN8;-!_F;gBG=4a(4kwjXT2yo9$RTA04@(^OhKqU7Oq#brEG+5D z1@zYnsI){a;Cn9M_f^ztqreFgi8OnoC|~hH3v9pPRtz=5moIs%Iv&?bJi{M@i76;< z1bXmO`Ah=c-H2_s<+liL<=z+7x013+bQPU$Qnv)$vfkW6TM}?9`rrm#PY~^DblAef z9!FMT+z*SA^W$=rtAmZo-NDlLQ1{JZvE44-1VTf)(cm+}oBXy2Tf32}43jwBwUJ6v z?=51i2>yv4ZV{!6+AdO;4%pJh2TWCxi=LnoTT#6l3G~fY5#~F8m!asXnD}!H>@mi8 zUL?pqODS!u2oPT`p(@+(D_v(CB)JWJd`m1vZWB$#t1H@Ay1NbAz8h7hh3I^R!nY%` zupW72yKpgoi;G0AsvkrCIm&Nlh)ASfipiFDuco29MB}1L|32R}{@Jx@*d;1?su^R#gfHj%zw zMK|_fcW7A(;Sid7qE`yFOA@{!b0y78Lj3du+Mk3S{t7Dz2jrA3>7HOP#Q`gPbcFl~ z)NrpDAlaYGqP;Vv&+PGF?lCJjct<{cmY(kwKa2Ov>BoK87@D<_cJD*hBQDXSePW>K zeTGeOrJ?&p(RznAWZ~C%I7)r5`?7iv0_LY}7+RL;BYCUjP}{Uv~Vz=)su_k~A+nEzeO_-gh+o{lHT))U@X4Vg#!sFWW=0$yhO-I)%rxG2#mx5I+ddQ#9v*m@B58B=3XxDb?j9Ej=j4 zi=R$V`9t{Wy6y>@$aw8I{mMA%I5j#f{K}nLZSY=b?%}^~H7z?V%9($F9(w^^R3GnC z2h9*;;xrygos81Y&@JS~MyV~Y)4h#S{_2KY(kN|^hkvEH7*9=)U{c*YiZ&dkS9ik@XpV_XYlX- z^5Xqe`V1z+u>I8U40dLV?WZp?gbSH(V=wOp$Iw1bQrE82K5fzur6rF<&Ae(4cG<_N z>f~+7-TC%jNjt*U1RF`$$wMfmb8i*&efU;5yD%qk=pl@O3g@ z^4=^JrTt4J8wx!jnJDC{@O1G#nWgN1x^Khn;JR-LMn7cJ_|xgQ%9lP#@mEpoZ(Hf& zRnc6`-%9S+u=n}k81=h`m0s2sI&clXu5y%$Tt}Pkosih-I*y~ZtGhXuKi1s9J{Fb? z&u)kWv8Nj?yNMq1>n3u&BkI!h8Ip}yftSJV=Ik#0Hc{9uEF?;9qUET(IP&c}I+BVStXlUmv0eXlnm5B~QHrQz=kgiUQQy-8-<{66W}h*a@6Mt5sxp*Eo6d-$G+4&N zicgnunz~|}inS;{McCMlT4qVi3p|GwoVcDU`;gf23Kk&B17S<+(=hq{vXs)(;EU*` zYIgQbmg+g+8xl159Y$oqJHozzokfg|wg+TASE`iH?UJQV#p1`g)>c)F@xHfn#pgH1hvIG~$J#6%`_;Kt zRNtlLjCYq$85Me>yX44Votc*XE}EPBx570wnOoR7Z3k??qxS7(XjV+MJOq zqf*BB3Am!?DCqq-gQX$Qxs<4PV+zhnK0t$>;Q5J}&`~$!ELGz3sd%$7Z6Oc3T4eVW zUvw*F%xUlS+$D`Ql=S!-M#!&5X%RdQAfGcz18+gP%P4J`3h6RUT8KNmc1iCHN6B$x z>A+LrP~~6W3|$0W8(AYq9>l$pG)DBq%t(}g(y*Q&q#D>)keG(KCUY* zeu4h}T~~Vg0(V??4+;1-A<)G&}LMbP$_NRl!~ z%e=rVQM7*L5xFf*Ux!usVeFn`L$AfmEaf!TdOLb!sc;83znB_IsvGP6cSA7^-0ni* zukhqq<#4ipje*j6Hif^&@u(K z%XdMxe6;z+0rc(-9&L^Lk!rjZ??wDfs`d_3^;a{g|2xbR#c|fdJ4~(TXVCBOP{`C7 zRP#L^Hu9c9)80exc|4td54}VcYv;kzCo(>ZT1}RmsbeOdms`Gq@@2v6<)^cCZnP^) z+!7V0Y0S=Sye~E`jsg@cBAvR@bp=<2kyB}RYpKlao)R8opE`T7)IeO1Wqp@9cJHwk}+g z2f{lORgF1$5uU7tsVy@#bY>$n*Q2$3Y;3_y(3wumcBUSro!OgD>LwPBr?UAa9I8s*d8Bf*K0g$0MrlbUdoUAqrUNt8 zbY?R%SInB4Z2>S*I@5)jN;-o#QEFLVpc%Hvxqt)0W3+G&4tr?fJqU|4W9gZL)LIN5 zt7X}@AcSRfCb^(wFA|>9*@99Xkr=7nRg`s<{6v>XO+CsH>b5#_#Zii~?n!s^qtMZX zBwy=%TKG~SC~Y0BrSK{YrjyQ0V8%vgt~0Z7l%`gr2$;4yGnpAHow>uznvt4XZ6`2a z=}a6m??-4c513i5GxdssX+DAm7e!TH4c9c%SopKf1Qe4R+O6@yH9yXONSUv&iSVdl&rdgdbeiU}>LimTLLlpmyxy(Cw>oN^v7&+}MwC=JcgI@6OG zca?FceWj(E)~D%i3Am?78MtSd7VgL4(pvZc!s1weEh}d?FcCU4h?x>PbCj8b-)d^E zWx;%_Geeni(wS4t?CnSRv`cHztDmMmsvLv`bta`8nr2F0t!a9?qiNjwYHIu4VbuwG zRvOk8^FVlr79POiQd;;h!s2jmEkUXBUQSr`>M^LhrWR2NYR)=y zjF|)7w3yPB!Qf$2wb_O-Q$%M@Gn3R+i*c_4rl-z~X2wBh&NGu3uBmx?feF_cGc$HN za~X{F7TR19o~&9G;f`w9;Q@|IPIEcMD`%U>7infySp7$5ZQl5`D&~#(owclksv)-^ zota+^HQoP>R#WflNYnZoO>Ihbrd(TW9nEI$lZC$vgK7@Cgs~U5@KzOnirnbz~(3y>3 ztglnqdZ?65fYi;pHHV9nIRGn(^k!QAF9MKamd-Q_1moX~#s{LXhfOt&w=A5lGocN@ z_%`LMraP@^Ak`Fin`mm;95Y2{S~mpqna-?d=4P;_CIx|+s52dysirfVnYr?%re@m+ zj<2ON>l(rF*BWavc^X6Qd!6})nJPN7tufL}ZltNT{Ss-aHli6{qAHhzG@)HE)Xh2* z9*nN)<3Xc>rB32eL#?a63zn)||44Tm!e=2(;6FbtybNLSYXdEtcg#%FnO04~)X|yM z%%lctY6=*--w2Ls(+rk94A8`Ho58Z!0PdQI34sf1=`rg*b(4*3To zlz@=9T3^c~ZwoNvb*6I*$wkyGofz3dx@9f8`)M=Iuuzm!&`;A(35EX7dKy!)6_~C% zGme>jI&+Dct)FXZUSEOfq%#w~!US@qt~P-^wrdhhM~McIuj8F z=azS-m@uimxL!wdZr;|I2PV}a-_}xq6jVpufA*n-){?C-)!`*|JyE9sy>5*K@B3o( zbsMRC@i0g2cA!81jLzpI^5^uvaG>dJq%Xu1A6|5)2p1n(+7=z_axHybA8-}h0Cw%9 zBEqpCm2M~bh`zP>?!lc#LRfgsJ3Q+X;ig15D-n*kpPAuK3)@M4=I@+x-}9t(TZDVg zc)6odJ{F&o%5m3Q&lulrMXvZ##`vbIa>c(dqL$0AVCeUpw{t7p&=fw#ugzV+9%KAi zd~Pa-f%A>=L%3oef2AIy#?zJdQfcwpo?f??>Wd$0($o%;Cw1u{6)tt7@F#Cgkx^>3uJ!l@dy?27xvYgMU!H_2Dq z&YV}3g|%&PPuis_b?Jh5kE&Ftt5hd%Am5ok^imlr7>>Qq)n0TyT&h5R;gYlHqcf4r zczS7Rf3LzC^~HuNoXk%Qs-l%ys|v@f#k{SosqU++6{GHSMO9{-{6(M|=}jBDNd*L6 zl28pgRw;);F&d*8)J%^lz@`?cM4P*#%yXXfw7c|7+^onyI`Gz?zI(Q$BDwZNA>BSk zP<&6+tD-8XD;`%M$6l72Z&VpS5mA9!^g@-qE6_B?jPjgqU9r79%PUaz-l+eu@@h(o z>W%E`s2Vv6&h+3UYV8lG!Mb9S2W9kuvB5asrKjYp{dQodN1k=pBIDhuT3;C4%3ZCA z=9R)KQ&(Imm&4efRK`zq)P<@;T+7jtekkKkS-R6tGMmRe$HT*;wcl051MWQjUt<$p zKKdIv?0M^4gCr>>?7(9;0*;_Q2#7Mro7dkWM#B7xNz1s1H&+9f{GGlJ?61h`WCf z>(a76LE79XJ+c7OI!0-o(~y?6&Z27lr9jsb>rj=~uPqN*{>G19#f<0b*__%(Q~OIT z%tK~aS*350zqK;d(G`=B+}bGR4_(S%7^QaeA+2PTn%6>F#3*&ZhfdP_}d4w^x7$#%6t5MqdAf(NV(y==r^)X7* z&p=wnD6P-_u`^0tm+yo44;)9HYtr(<^MvxPY#KZeCLS}!PGLuFHcD3=hIGDBIuXBD z%M*>#Kh8lq$S9pX57PEVsVjeTRc>e$yRjFmW>eWgFtNBXcHm0HS{tQP*o)~|hRTj& zFJ3ZAAF&tr8>Msbld`1Os~ zd84#U3Zw;%(keK+OMaVasHE#ceC=DlZxk2CLlW|tOd1~n6BCWGCVUZ7USgEmo`*En zD0SHl=`f>o+6_p%7^Pl36*MtQT{qxnSN_Z>F0u_$*G#H07$)X5#*W1IO66zo4YhUr z1=1Tv=_GEYBSz`xHzD0*ls@N%{>dmc7sBYoh57_ujN4s9dl+-}Ep__MdmGbl`v;lo z&)Ur&Aay5WYVWy_Ha1F^9)r}|C@s!Yc1feu^%gg|$tYg19nvT7D13< z8pQ>82p%*_WB5my^+u^HdvT6Yx`@3PWt5uOi~WpJ*GhOhR1PzW`!0vH{#$Y!ijL-K zj2*EDv4xG&RorI^0mPiz2FOsn2bjlF_GGWW#~0^#Qc5(BgQus3zmk)L~AY}>#DD*>~PexxH0xe zz9d^4rStisp8m>E{0VmNC8PA|EJ*horS|N&(z&8tnUyL&=@PU6&>L@s-oiX;(bi_6=N-yxZ@G?rT^SCHxl-lyz#L6f=g4)QxJvUhBdXQ(v zi$?KDo{0B7r})t@akVkF^i0IgG)hbH(lOE~ox|6PUPkF|ZjMl+v^O`y=SHdPHC}#r z7{x7k0pswT0>;3^H_r_93gDH}J)`tFce>L?X*=$|JB-p77a?72l=g{-bc#{xn#Oa& zP@}jdFJL-9qYO4N*ciKwS4uUFQuRvWVw4`_Ce34%j^k@xMuws4`?;a78>Ox_k{~{8 z6tCpw$N4>rBVpoPW9(e+2HzW{O?mF=Z52N@u zo^)C~oih#=`Who|@^CL_lukPgsl8G9g0Dxfo*3$Qk1v_2MyZJ>ijzjE>qNecY%_|} zd3CYq2_>+JlZ~;VJdX@9N@sC9cQQ&l^HsO8QCfl9+1n`X$OF2hQR;ez2eip3ZomWj z$?p_yhKW~yH~3%`59otNsV@)c^+xG-9?)})(jVB1QAX(z9?<=aQrBBNpu>#fhCHC_ z|4xokl2eeUF?KZ%=)y*6Dtj^Wv7tJzc|bpWOnsuHSt2<%2LV6QY~p9I6NAIU2;tvB9@;|d^cH|W-aEXBu<$k zC5i_5u>j0*yK*_L`vC0GaLL(+AT$ z{y?(2#(3Aakh&YCZBPZdz-c`kP-d$5WlI{3@b*a%K8B2|+M`_D+ zsiE`hUfMI5-obHSda8R>`~~+Vg{eTiRNEouvie3Q-b#8T-?~h#;_(2#FYd7Usb23` zKMy+48jrrOjmNLA>)+Fy8F)0Q&wEOmDd`W;dg{Ul@5p7QR3|@gGY7@s>(NV9fuHE{ zjylYg!i9Lpsp^Y^Zz*%8G*|fkLUVpZkL$mVp8tpq*s|BC>MV4!uiwzOvrtOGH?(P% z6d=yLrf0M8Lypx2sy174FZce6!R`6p=W3Q4SLnOh_-P4e@m!fLH55xR)SaE8Vb;0L{&xmT|M^Zj9{3QjGR8^eoNh3(AYj1B* z^QOmypP7!oU@Lv7%3O?>?_aQ~<*DmjskBF`nTTdtu{RU1fCM45 z?jkLli=Vje{z13qqQ(pVpt3*Vu^C?KsTNUaZ^@em^}!}|$v#d{SlYmpy-Wbxid;%BF{~rNh_ol<)XPSb~lX=wmz<;>hBcF z%dq9GXBoah%hK&KIjocd#ej#@Y9%V>`H-_Nsx|tKmC`j)^;ep)O7g8b;YjYn(t5&b z{L1;QL7qNC_S{IXR!J|#fw%PgYINtAw^V+ORK>3UeXYxTYSYbkYos8tVm4mul)e>n z?@@)d7|^xu(Ui4Pg!t+pWv-PriL!fW!#Ye$Yf`D`dZ~~2B9+YRaVblENoVmBojCB4 zeqS$D;S=2EjqGM z3K8}8QISnjxgwOPy;j^w;TImqy2&dODR>ipOANY2qc>sV$C>(@H%Y$c?ilX5u5Emn z8l2P2D7VRd^{HZvkLIrM5?`a1Q&+%QaRshzKqr2y-D0}_tajoG%g~AMB08Qw!`UR} zMQiGlAT<_?GAJQI8Z74DAotC;U+>TM7)%U9rC?$yqx=G!aA_Ge z*&;P;6*U=`l~|wg40y-gRy_dgShNQoS+a7&ML%Ma?=l^n$NM$;6KJDe~cY_ zjRLpgcik@6s0(A@H5v;vyCaq5ylwwp{0dU6PjB^2q*)#q{n`Q3a@JM0H(Hh8O@;cp z0>35*{W@UPBVLXLynzH?gt^D+{>3eF=oHbD9Ow9HTKwxt)@G|+*!1E|{+NWa_yb=G49>1D1Xu5&my zWXo8e@3h#V9Q!&AK6F&G^zW$3eL69~F8uav@$@rXW`kpsJh(2}(Ijz2o6d(>&iCoz zHmQ+#wwS7Jmr9D+&8f+Dsi#;OND12|ClS1gj&8@aH~upD??B%>@f%ItftBdY06M%w z!eiQ(SY8g_*Ta=WZc1|!rSf7%8tqM#CKQRh$kpO=y6_#7NSwgh@i+QmcgKkv6AoGjcfTNqY^83yFpF$TrRlqHvG%!5Cw57# z#L^4ovRkSxO*xW9ZhP=-N(v5L+AVpt9D;$%rx(=3W9&`vc)Vu_zEKr`#%&*^HeUxo z2*00zcP98yN_j>SdpgLY9eR_Gs^e3efzOybvYFC$ORgn$%-3~7py(WU)Rc$wkoPB1 znLSv~AGt|&_eh;Z`SbMC9;t4{e0YaEZ966ub)gXwJIt+lY%e!n;$=+W3pL({JR8X=>Kz=S zW$Ao35Y{F+oH`>9J4a3S;tBOC=P3RVZdbPL#bN@lf~riBeOT*7oTV1~Fdq$`K?n9p zPNfrZ-3yA1<$;9{wz;JxY|xC}zLZOvtC{@_wnW*if4SlO+%F%rNf8I7qQSH_Q%MuJE9e!^FU5Pyjra1wCHT6THlkwp@aW<%dB`D`xKBdom=(_a z!3w&MX~KjIgskO4d+E$UsklcnMkgOZmGeQPT6k$(JzbvP>5?xek?kR=n)M`lwihF; z{UON*Uzk(Fn-59lD>cTL*0f_W4Z{ri1zt`}`}z3?ZwJNTjqH|dNI4{x^gV<~ockQ{ zCu2|klBwV!7dM>f6mbkT;yvo%59Y@0p;m`64~$rn*!!@Q*IL|OMG;5v`1hez6njMa z#<|BTLtA-gp{-i1nsXGbT5T1#YKb~UR3$!0UA<$uoHm9Rif5+t^iZHQp?#)k?UOG? zZJ!qa`RsIxKqif{kvKSR&rYP451vuOS2?^x4UY+y<8VPx55tI71AFFj?8p>VlbfVt z+P5k6%TcLX@%%%1B(C>}f|M_FcwVfi@}2dM0mGfh>zGuiPRoOt`Y{Y~J`-UV&TN#c z9Qr65pv#Iwwhxy^RblO6@;)yW71BY9JtmbebQ1>Se#;N@8lP0L_aGfOCRGXZKFrt1 zhfTWImuG7l;kw3flo}XYtV!H(yo~--?#*n}IFnVuXcxFeEk~UrkJ-xUC^)d-j^TU^ zhJ5=F1ss>0iuoeD5OgF#N%T&ZMa#@&haYaM{qc+Fe2dc+~k>Xc;K zcU*EVv}0v1tLXqeIxYp8duU>dsg00DP^`%#Bqkd<2E`ndKZ6A47U68lhr!)Pn($Ez z+ZaC&*(-Ot0)I;PK3T0vZ8mH=jBL_ zJT1AF8jBn)hCRd8YaiB>sxN9KYrcrvOV+31i|@2dER_!1N0m=Y)e0VF|8du5qZ0R1 z@6(w42kfWKr{R$UOaJTOE~Qu7WUbAFq^TE4Ju^TX4P7+|r(}l(?Gu z#_r*%5f$M#4;|$|lmTsDby0X!E{8e<$8P0;Y&l3p9+*NAXCxnUZydM82e5R1!{@AB zTVnAF)|yA<-N-*E<{cIve5qUyuHX(FM2v8N>dr{Km5+9El$U7fECqhgcA@V1FoW>3 zibJq|4(=X_H(*&i1gGKjL8ba5QDIBx@YOp2h*l2&mIjxAf z=Vb^%M*D6nAlk!QK-A#)UoP9Th)x`NDO#AX7C;=a8B|l zkDek|+`Vf}Ww^;hT6H=|`@IKf!G02fZ+k~_i390{P` zp7qD+`j1ijv{XzeISdNUtzU`t&ANUP>tnjo_1&=@VVS5N%8p2gH>y8enfOq+$2(}| zFH*U3bCHXs-`MX!xVw5>`cN#Lu_$$u`z)c$zeu&i98ti>=>rX+b?Cm^VT5I#dW^iZ zY4jf3X6Xx;K8R0oVKGnDz9#QWr0|QF0iCc8&(WP;Zl{=wQuV-#^Kyx|qabugnd^(2 zmJ>Paw+5<~NdUc4y+TafuFi+uYjBob(Ed9`#TdboNF#MlF>Uc#!74T-1f` zhs%YRW{aik6yQon=$>D^gT`HwoC78yAAR;n|0$R0r;*i1bDzkk5p6Noat&R*O*PjX z#?{o#J-!v@I%7|pkDBnS!RE+AwX7|cv}P;gdU%AV6~Tg2erUEVrvE5d`dwh#kU0Mz z^WZk3O_P|*`YCpSIK>Vp_eDeebx5Tw-k_52j6 zPxQ4l*_sklY)ozGV`AbP56fe&PBRp5aTdC4^P}zIfEi~iawdCT8T_~5NHa3*bxJF27VtEv77F6RIddEEr9jsZW_k)@ z`90{o0Xbkv?*U@{&w-(!e`QoJ==6t&n9M_wFekB)`OzrUqLhR%%b4$pLMMX{0d)fv z(e-oY@gIcExeB)w(gro;!nh_$AP*E|G3+G_$q(5HAk!TXr@H_h8I%ojf|0CW85jWi zYlG1K9N7j+PIz}=xx=4n)?dg!rTZVt%%3Q5+dnKY8hITCG4?2=RpbG}FF>Bivk%Zn zX4}7rFe?79_&2$YF#pM-zba@o60U}^jN|o8j)UI`>I8~}%t(HJA^)g{<2ODs|9#l& zUlwR6gWI1CNCLSaG2?7qW)D6SVK=1k91Q(j7{`BOn5=<1;U=d zK0qTySmfqUL>iU<7ks#-Ktp-vf0en61aCl$WA((&$jlaGDvFu|jr8~vGNX>poBx#f zFBJb)@8-W>V6J>lJE8siqZX%;!3s+z;3Gi^6|$7$pt+z_9XXtntUPn`IphAVu-TB| zUnO$W3kvv$1xD%RFv_3+oy?X1BiA-3|NnP*X9bM^e^SUu7`ht7*j_i9JvSM26CMhy z_>mrizX`cT)?bg)&^b$40Ks}t5EOfWwt-H2Ccbkum9#e7SIJTy-~~&@oMEFZC!bT# zlI|a(IalF1GqDuNxEjXI1x-en>8g%0WX_-j9}QXV3Era5Jcn7vVb*1mK`ftK8N-7! zT!;*E7Qix2#Kdw-fffTe150L%7Cpwv7Rpf|r#BMoT{Y_woRAfAWxyFhW}!G3nG90( zAa|+`{Yo13#~wR}Wu52nCD3Z<4MKZ|ao#!NSg&TSEX7(4aBsG7MmOw$Vp z{6t2ac@m7}0yrP$nZhAs;xHS+R7&Sr27R+K4T5zwkPw2jY8qNH;>@lfp84}tvGA*l zTKoRz)G0?A4qM2{7gOS_9Fd%PC*Qb5rkde;hD&RvVhJruHb;JJ^pYb>8y<0ecq82bH zplM=-@}{qZx#Blio3{Bh{o3)<^1ss0DR10GOZ)I|@`t|pFAL9^+5al6bVfVFpm^Xy zU}7iC94$I!DLeF<9_jGcHSVqJ41mr{&}>ixUB9%BISuX89vv*lU;T(I#dVN@%tpcg zF>n5pMgO-3nE&jO|5F3d{{K%s@c*LyebEtXg1kWHApC0zssM5Wl>|9~96+`p0m?*^ zyaHu_egi!K-3DC+T>za19R*$Nk2`x%U=B(`c$>~I*KyXzcyli0oC%HL2S^kR8u~Hu zzn#{Y*GC@h|B?Ck!aZPs8%{|)Jsh6ExsHrE>ExI!<>9E@vYhd`!e&F_T#^4UE^u^~ zG9QLHfduGt7<31+XwVjxBi~UtW|Ps(|16YW7hWIxQT7rEYUJQ8y8jMl>iPYRuK7dZ zf1~tY>r6uhF3!bP(;O_aXKQ3Xj}h%}5imwWmR>3o|=OWBaIU%bC!l2wvZ)`@nbl#MRn8Byynb{aDh%eE`1EM%>Htg z;s@Eq>$t5n#97k(H;A&$%3(d@(@7>?SY(z;~0~mYs}-{<@=kF zctIL!`s=4@sI19Dbo?v5e=0ZsUBXBh=Aj!F_BTfUT^>`}@Q3J(pasb51?VQI(<3z3 z1GN9e2k2m*phzgNyo-*X()sUY=1&(M4XeF$qdFn{PYRmFhNGq~Ak6H027&k&V-0exY{0J56}X{F>k>a(3|!2W17PVCq1SMpPO!*&%DP< z_BC#6L5tsD@9PyV&j<%2JQ5TS@&)e*>IvOiAQOng_1|ge1hfTZzRgljfF2-^)GXXD zfck(q9G|J-8>EXuI0EFIiKetgU|2RP0_p?`0Zj$X0!4%Ta!`MSPk<6Y@u0<^ojNA# zGL|!?fOaXEyg>ay3qTh^Q$dlS2Z(==ZPo(oA$SUbFYqex4agH=MrU2dawc2we)woo z5GVu`2I>Ur4{`z7=O8bHGo);#4?ggB70BUGgndD7pq*w2cIuQ0d~B1gc;!LHKn^=0 zoC!S4@*H#%;hl){!54t)fqnpW#n%E^HXHZ=RNO9GX$*S6dEi5EF8PoLC=%2I-~5aO zne7qL2{a3I8gvs0N*2vlBJjc0Ptjt?6F?cDJ`UN6Gd=?oQ7BtU1%(#QR^p4GX88VV zGB6xEtRDrP7sa!c3iwWZX;3jx0g%Z#+pN4tgi8*3gmAnQTm*6iakvjC6yye4jEpT5 z1->YZ4a4VjUm)xO+y-J?ugh4@Gz)wge2Dira3^RrNG@hZyC7hTLX(k^h2B6`-UaRg z*@H6i;owd>y67^NGxY~WltFDlQJ_%JWF6lCcY-|KvX!~Os~|@Hb-GKpVSW22R{Fw} zHxFgxH3cVnH!^uziy;xzp)m&L7LRPDZaFx(e75o$6bwGY9S9kdRgN(8eL<0}VRG1i zPJREJ&is!u`X_~dI*s}7YtiP<7Ap-Q^Ufi6ML1s${!<0LHhAlS&Yv%&2lnaMFf8$G zuxX2pIpr(({%e#3ibwdrp?1jQILHtAJkEg}wnxECnFur8)X1zVb5&eGEDUI)(OIB{ zEV56bMJKB5$8;t=k5B36mZ4p83*ZT4WFbrDIdwSm{~4JLnOO?#(+-A#oIx2d=yYdL z7kDW=Td4(%1oin2@&6^6|Jw{W{p5dWgy(Qfn8Cv_r$k~NiPmcKW*p`pG>iS}Y$fIA zY-PEQ9PY1&7p%m@xK@jw3Yq;H#I4eJ*8BGf1^t!s3ltKG7XvRYM&?T~D}#~{4gql* zFQ5tJu@16j=+%g~O7<=XaaW#KQ`O8X>S6pv%pO+egZ7;*!B;UVG=Wh+P0Fnykb z2kzqHnV7AVP0v=|Uc`m=LAJ7eFVe`_3Y|cj+u2I=W_b43Y^CE>T=VWg_W&-KeePk* zpN8NjGT)Z11YXEivUX=HcaEYEyo)jnR2mco>zQIVKnJgJb-sl!=|0O=?xQx{ zozGS-qp;PxP}qBT>u>%a3889Xx&I3EKZ0+)y3{ z)Q8It!fjRH_9bt#m8bB;cfVyT>-JkK*il%yke$X8rxPgA~2Ju_a56l-~*+_Vx91M7be()_ka1s5WGAx`654ga9 zFnGWV2GoWJ)}bT0!vh1+@qR;_XTb}%VZdIrZC#`{A=A&{fnjLMXQ)sXYPlN*Y=_|i zFkmT~HD*h;avp{@PeJ>)M>|%42MWP83(!W{u=;y6K?!(bHku^-8r%*Kw1?{-z<|c^ z%6S+t86C7U`o{O@KeyqrmAlbzKqt}Rs-lJ!P>DX(6qQElI7ml}Jg%BqQ?Lk(IKhy> z82_($Li(ZAHJYg77#&r)8O%>P1)m5{|Afqv>A!=^kiJh7MVTA?XEL+!%_ky0rTo8= zb*n;qULu(z^W3~UEX0QLu_0Hc7Zz*#`Y ze3{B>U;r=)7!FJU#seP!6M%1k$w2!8NC$KSTII*%l0a`@Ffahv377$#T!0^Lwa-)* zKo9}E2uucM0#ksF_)eQ!0VD*51A71?fFps)z^NSXfSLj0fys;okq^D?X|eP!xK=WZ+_81~7@`#qex6PVG8I3@ z@|k$J7lDWhNWfSTE(9h3Zvs<+Z-C*RnTlsoc%l+q545TbgMf>HZy2k<;9`jPMw>psEKDc(W#?=-axC*GL_}P(9iI2=V^|pg*J9Zg?!N2fT_S#=6%t2C6J&l zJORuAo(4wLgKIH5l7U{p3}65-$}dw11G?3RtC!j(WTU<5E2=r{y@0+G2&>4Y_F>pOF zc?t^jM1^9JFEACj%@gB4ek#UkB}7cexCExmKvMvtW}+!7Lp}=z0#j$hmB6S)Ft7^r z7Q-;0_gWb41w()dz|eK*?ZA}H=!8|RtgP@RK~Oaqv>W+VM|t~UFfif}3^98n;uvPC z8pz-z6lx;DDU5Gm=s9Enj7WitKSNC}pk~12U(jcO5f?L+44~CjbgEh~5V#x|kcv*~ z1H6a)YQw<$r~ohlxEvVpE1Ccp`UvBHbsbomjvD!*ZQi0LK(}{rEimCdTv`_eWWseo zM_?zQH!uRYSV8XwCIeG|87BNX_c_w%!-gd=B0u&WfvNV`$OKvyz`isv6lh-$@ddKX ziW>qM5Cj0N9Pp?M&>Pr?6@Zbz#U-#g33M!p-z9(vrLdpq2R&EpxB^3gQ-M*y)xcz6 z5-=5*0?hEm_OL(F)kQhLWMCN3@pCh_RS^jP96P5R0o)06^TTdBFdiraz5TI;TOacJ zNC?aTMl*ha8Un)uQ8S=-18mWL0mFk}IB;IlPtDdulrSs(&k z5dlo-g@S?M!?B&)05uwkf*YcsiQs|pvB)S0Z5W3FfXRg2R$OjF7o+CD1bm?JF)&~q z3~Y>ofpdY2fys>Pv3m6>4t6ZYwYxSPPf{3V2TlgM<;7i)nH3Q5{t5*b z<*hL!EXLbqsG&1%=z+<=KEQ~Q*pUEQmBM{I^T41m7y#@KbaTa~H_)myb~#$Z)xa=d zGB5(@T?Q3mIq)Vhzzz3iPHj+NIk*DoT^=nhBgK|hG5hC8yE}>0j9RXoh&dk46X%+ zw}xSzA#aO&JYaG=-2VX+zQO%D(7U@CJBeKo=!G@`rc8tD!;vr^H3i1cM3XRI8n-uH zVMtX)Sr2sdSCmX(N_|BM=mrc_lxSc?L#(}lsf`rH)E$Pkz|98GI~41DpyStyavB)k z18evmFvtmk5Cq(YD$3-ZC=i%JfqhIBOW3}DuT+OGtb+17GI)S6yIaN6ctqPAM>IZT zJi=6jlKYsvtb^$HKBh87FJ``1MzK2nIN3!|0F~`)D&p^#^Iv4{9okI;Of1AMh0XJaujAOSy_20?-g`<^^c8nfovr8 z{T5C>j;MEflqWD0QQK(Yw=hbk6M&-j)|m<>DfN$inFNhsvg>cE2(xQ2jHLDq2{gXH zsfg=(=;Kn4`z!~?2_nM57C~oF4-+~UZSHR>Wo@D}{Y}M7*o#cf-9ZkH;m~t}Rsys< zD2t>05bX|;6{0)q(W!_IqpAZ;#o??*17KwY4ITiGtfn;#sdRUMshRafsyfhA&)S*# z4m6c=^)h8Dn746<=a67ME}w&KV1BhXgyrGhuw)=SA4%H>n%u4X&^3l0lr_-wrOnMe zSd&wYJ?NLIvrL6(z#zoM(~LpL`T?C8WGe2OnI9`DE$dWkaZ1gb-MB3;Mg&<$z`zGo zH3D@WNlh4BsAq)fGx+u=aIP)|aj*d=Z{XlKRfxvyEN`&Uz)(8Rnto(6*yL{GTqsky zPu5dSP80|p-wo`^u$p29BcIcSGZn1!bf5QDeeMNzs2%sT1A|S~t-a~lU{gypQs5AP zH_aFV;bJ;41eHO3hnT(w*Xldd7x3YX@6@ij;yZZMgKm9iDrFN~DpMInOGd&Mj(Fj^ z=-gW$M;rGFH+ycF0YlLbB5C$e(-;&{Xc(Fzn!W*uH!iexn5n7tV|qCZjSxkkz7vBTWstYmQX=eilO?DlrP} zSBv~dnI8GyzmmITzJ)zr;bZsb?5zr0Sv`OZ4p9HNn>j(2N?k{*-7Ic28gD3_8Lbvp zXbiIVBcCy*Z>_Cp$rw{_YmC}R#Lc4Sk#IyjZH_e6D|)yE?vC^a#`*2e(1!TI%$MDRDV9A8RUOeV7KYvP>~!(fC%hnK>sq1J2bYG*g?W z)w!Up+Aq0~!$|H%g~ma1IaM8J`mBH-q%OrUQ?$xdR?^^TQ<26&4xW>20v)_3YmGeACIJhmnGn*>dIit{| zws`N7O?0KkQKr#(c0%UTo{mPDn%ddosubBC)0$cZ@)~cdm9HISojPPH#qo;rI+J^1 z+<4P5Yr7C!IVN|`RBmV&zK97XzdXw!bL>J}CYZ|QIgRkhF8^OwX9Aa1mH+?q;NcNa z888Ozm;0#HG-gDRWH0y)wn6(y~A^m(&8cFXj@MW9FdY7M4t5Q=^p? zn7?vt8MI}x90Rj51Nnc>{eG_h^1NPp&V7Hr=X;iW?m6e4=K#>$Zeus@CTzOiy)f$bAaX$hNg(&tIEd@j<9$H`Mq+OfeekuIAc zXP>kagXyiXUQCkF3vHjsRY+$@V3ED6(I|ApIb0UsTT_QWRPGv?yvX*9`EzRs_t(_r zMY%?_mt~7=kLXgs9y9UF4g|lkEkWK}VjD{JB71FY6^s)?Sa=?+sT&h5?=P~=|8Pre z%EI7)*d9;R9}t^W@8va1F=#X7x}~;zVsb?6>+p7zX>AlSMY4TRR*x6%#?`51kv&=TNw={@& zLMrCjru7Cl$ds~Wwq2mVe6`G88yt{~nl6xL%k7LtpUC~1@>+QpPcBNG8M<>NTXQSnlCH8?vZYZ6Gcpfj^hn<)# zCClxTG3&9jNLYi@n|iWihixwRJZ(P?u4<1xO}_Me#&!xGLb@nlraogIiXLz^_MGc$ z>RLq{!(8qE=FA*cnahxzdgdo2WKPQYlpO2Ww%7P!&6xBQcWHH z05aFixiO_+i+9)59cUy|i);%yvmc$gWVLM@-SB#2q7Ky5O_$6EAyllkR|iLc^*SII zSEKaJNawsEgVxxjPH!Sz{05Hn(6=tQ_!w9b7^XlkxX1Z4*uFPp#Tt8SQjbo?eEJrC zW}EsD#6!Toc}vc&v4eu^kv{Z}^b@qM25J1Vl}&<&?K&($`^x1A(%GYsK3{>e2l{Y3 zlq@id^9#J1dRvo-aBP&T&tmXi;Qpo(&!brnHV|xvv&9^^Fygk@aK!l7xW1aF6#7=^ zQBFs2e%yh|X0Q}vyxornzXU7;?BSVVT|s;v?DP@Ym~U@S9s=t_pVicjbGlbh#GP&; zbd8=2t;OdOyB3Y!hxC;H$mq4Ud(t_ii*dl>Z=_u#qf#-yRmzUFwppikNS8wogS!xi ze?7ozz%U_s!FBo&u&5JqcCEd&em>HNf31<5pS3Lqm*QeF4p^`W@q#O$9Be$;ZH{=W zLc}euqR#ngX!+0vISm2zGo}kR{xvo7!n5}JE4$*t)Z$k+aMg7V2Z9a3uY&&mS=+Sj zcw7`*tf^b;at?^ih**Ff*}w)~H{?KTS63rfud`|O%W?50E*@TIuL+tPP$wf>)?sX4 zhjfpC99f5HG|TY_X|~>W54uyT^AR$9Jx1nvq)%JfxZchPW?^T(xrsE}0A7l8hvqVN zgY6ltLHbaFY}$ZMAJPpxNzOW(e58w7NS}?EzH5*k7?MpJ!3TE7Xl*BFHridy4($3B z-!IcJ1yS4|QP~^h<>%~uF*!)j>Q-Afu92Hn+sNPoJ0T_x!{X04ugQy)KAZ3?eN!UQTy{qmkyMTg?3GF)s5(*;nH)HeWY3SOTS*aJ7JX6t|zpS^3Eo-elpUf z_ekvXc14o83De^E+B!@EUT{0UCSc{`<<;kHa-UvEAA|n0Q@y?HFigY||Bi``!`J0lQNbTb@1 zRa-YK(p!gR&Q{wxcpk9DGqQ239X>iejQgF3!ynYl1y}3wVYCu#q5}wy%?@K_TY>Kj z{$?010~@ijR^Mm5aXrr4h;)GcR%laJ%Iz;=d>uu)YNb5#qU{oF*cU6pDoqbSI=o80 zb$l+;lUGUdHniXn(!E5cZo@cA=!bIG%4^%~jObjX&#kMidr1y#!}4?I-*LyzfrX!w zXa8>B3BK7M&(C(bugLaGYKXyfetT`*8q~!FHz|a`7VMCJ72&s{WFg(87-v-hPxjil z0L<*HtsAY#WBFi1z>fch6@ew}!gp?e!^*(MgZa$9U^8DL4jvHJ#W$}Sw7{?@Pt za54-r8ob~#$6>Brby?_;x84$6UX3F$!XwT~1cn6NdEB>nY|Np2v1i$UTa>1IoeGuN_ciZCVDzGoh zaaJvPuOaWwJ@%%UA$TOVR^aDc>dEm^%&N`zV%u2;IN+#E+-tiG!n|W@aGj4c;tj5M zy-99pY{J5NgJVNa*m^ewVml0tP3a%oqkn7|Xn0I)0vd@|6)Zpc$n_eE$M7TBwAT)b zS%!4}F;rIH2_*4l`&@9u?HFyJ$!jm;MPmWdAsjg4k8z{sYf9{OjnK!Y9Jt-d+Pe8t zy~4eUFR_u{<_#O`jC%b8-X=FRz?*Md+<^z_3w&oA*<1+YUkcc&FJw@O?T+<^;~p#v zUoDg2Rrn&>_Xn)F{DfXD`!eDD|JXm^S+Tj`|Qg>cbHst zN-pff?%W+9pTkM_AKeU^pJd{zsKYX( z2jaWy59$lbKVG$+gP(%U{zcA04<`Hx?YtnJ_S-@A-MMt>#ahYUk9)rl7pLpV`}^@g z*gs>Y2})8amixI#AL=A4N-^D*A>AZJJ}R}h#x(p38iupucbB?lxh;MruKj!POTem9 zx$qAdceoP{-<3YEp~q$;-S886`Ze%Uq!)iGM_k(6g#q^;Y4$qO1CTDLl##F7?lCz? zA3b@o4u9UG&oYe8{jb|L!NY*xd@Cnm5R4ju+jCl4m0{yC5b0ju%jhyYI=Kkx4yLXS z_3$@acerQHEnJ77O)({(m)Y)tpdE?lBvz8%u>GQkAiXcPt}b$SVZSe|8)~JgfW^?az}}ksl_H$HU|Nm#y>c zv&~Nw+WLY!$VPZTBh!aGWuttSPlW`^<-&G0reG{N0=U03j`@*ni>o3`XR|5U!|59;U!@{|uHrrLIj$oNKj zA|9O1@|v-{<+Lk1srmCFRoF@%_pS1oG0OLnhiU_|yV_nKkz?efSHM_ld=@XiRpYeA z+gZRZXrEW{@iOBqDq?2HCKu<-EIER>UUu%sYPp^n{t?s+87;KrN|fkAIeGC}z0PA7 z4?>Lt=*jYy+LQ4ro6l%pP^(}}w8r22{ET-k*+1E9vg2B5<|fP>MW?ys{+sGn=&rCT z7S@>d3H6nSY2S`~Iovw?Eb`{$9cW*yJlSx3nTOF@m!XUWZ~&V=lKC?}dKlzI*?&fM z*QwLeOEv0pP3UIL)RZ>yNI^NLSAJJcH|5f`n*`PHkp|>bJ9j;%^ zM&*0RuOu%czm_e+-s%Ew$8C_^a1Gt9l?XB0UCdVXoVxpvd=hzif%1DaG7n0dUv2Z` zWt3B%SAG*qDEF*ul?X!3Dy7&dP^LKTJ$jw&eM_KI0e++rbF69quWTu0=`)_X2 z0&-Zd`Lr+IqlTZ8FDK7+>kz`%97l!9JDQwVRhY{P?_&mhQ$t>&R37r<@O!iNTwO*I$2E|88U8LSyoR@6;ZD_QDI-DDP;BH))13 z9Qijw@TR{J+A>zx^p(6?)b}p>3m2#`S>2imo7BAdbF82|Cw*DU3Z^UIQcQi#>AWQ zQNNdSR|g`SXV1ZqiZC$2ThVXB7NEv%-N46XE(~GjV)Bd%Z5~GtzQ(Ke8B4UiOV}S@ zkej*6?`0uBDIaNa#w*!Jp%K=%c+9h*AGE{}c}s9tq40g`c?NlkXP;yiUp6uJT3sF4 zJaDJXLn|{UF>}?On)wOV?lBgY!%5vQY$@&IZdSwpv9NsKPnm+z9E@AMVzOVQoN`#@ z!OZq9d1#Dwf`1Tog4~3)m>k-lCa-*7K{2_-tn2!qYMKIeooVcGBh4cs<5SzyDCcQ4 z!lf5(A}?@TXoLwA(j-0tJ#~*vN0c~+R&if?M&=-U>J}+<@*>FbSc@zFt#>D^zKlo( z7^1}YXq-Dp+fah0xp2a>O8vo?IjlRWYND}Ub9Ku7K*1K4jWZ$V z^?J$~8S0gjvgs`+Ag2wcY`9~-K(BX^r{AsF0`!_iUVN{D1lrG&zL6+x4doQ>!-rGe zA=4peAMoWT)hl=9=HKL%FX@!gkNfVge0#oIj-tDt$;he6BCdX$8+}F{Y(* zyr-}iFr|5+qZ3x{jJN`yq^1UOFMg8L1XT1cI?6qu6&i`oci|!Mc&xEmopn~b)O^|( z(?4&Wd78W`PxJ59$ZQ}_;fT1%?%e|p|NTs5iWb1x!yIOYV$KiPYk1)}cpT=!9yR*3 z5o6G_sgL_n&1_km)u#Kp41=8A7<+oxUs(?--$%JMdFT8NUz0zRH*xx`1IzCt<7H6o4K{zhK8 zM(Z_*d>6UFpW<|(2fO(oc`m1mv9y2HEjbZ?Fq64-5u49Edm}GIMaCyqF>~1(m1ol_ zjxABg#HM(^@t#Na-Ia9GUINjO`%o^QtNaeiLnIY)+9b+hcUplEuj9`wBroFt8^CPq zz+DfQUDm@zlIKc$opQlttJeo|z?D`>uNjlno&P#;iadRx)*^znsE-!_*S4xT%0FZ+ z5~NKGN^1w%RVG}mgVBFFy2&ue-TE_kB{%B+hcctc2Q}gigJ3P@(!0;TIfo9+?QWcc?;zwh6yknXe_)$>%7?6)1m*azHYj+#HX*YkD}OUJrAKwv#+3-$1!+waPCucbXi4oHhxv zTU`sdy3&bxgxTWQ6x6{BD}8rdMcS|_h0-Ptr4{+vCaZZNvmKCOPCiaKmy5=2l)sgE zPCoDF{#1E$-s@=D>EvXLC~tss>TJQ>UFC$6`$Kl?vN^$VOgUZR;~|fO;#ykCSCSCr zY0?*R>U=s6UG{XYAW#2Z?F-r90xw%&j}$uR?&slL)j~W(dyG~1w^Tr$@B`%(?rr|U zvZFD|y?ght4vgjGZOO|xBHEMR;B!7C{s8L-9`g27!z8mY>XS*s%Bh+&LxKa4o5zmodgR8(@UzqvY7ykT^N}j^I?r)5G%TBmUbl-+_*~5#L3@=N4pQIeiTee!xWQGOI z5WZe3n#cO)N@`Q|&Wn^Y?pH?_=x;xHT$K9hNPYy|Jwv9u&ZD@CUieP(;4ZO-*{aI* z)=r?@P!2e`ZA)!cE(hgM%3Y<}Rc09FoXhsxndAkrTKP^KF|)y4=T)9l5Td(9GOQU& zTfuCmTDkw=7Ro#)Z>OBaBaoHMT`D`Be28-Heai2m+(u3~IgJl=&N$_rDSssK%`pzX zV(zMYm8VkvkvwOY0{7{U3k_Ro&*Y5ICJs?-LgZoIhil2ZkjHTVEFkZvyrZeSRc{<$ z?u`4+t{YI5d_C*R3=^aR^-Y^aIfrXA*9wzOp4Cg;ZDF=&$io#1t|NcWdzDMu4LJ_O z_w~4)MNByPb;mt7cqvtgcB?oYo*r>IR!LrL<*IG(7 zRq%!=r}=bNts}B|J#bvXRV=$Zc`a1jkTB_d}7y0;7T-V8)dUyhyQCYv`_FGVj~KfVyv_LNoGQer$NH&hq9O>Dvb8yU z?jSGc0o5(!85nd?rY7sanfmZ0r6ST_c z8{w&`8kq}{3OTz`TYc=zWpCjvz}++u$6bc|T;7H5)WSl zC7008H05%z6^<<)r%}#jd&)eic1_qwIg7LV&-A@h+O&pzfO6 z(=L?H$UMktzxuhkk?}Y1@$Iw&iYKZ)F1?UUUiPkD`*#DIYq;z7C(0?0s=PoWlS!Wb zs{-B)GZj49+mSAjz9H0SB@N@cXa^7D*xE`SzO0`6$U{-u!H)*DfP+#9cZtU!dpjqd zdxTk^Z>7S?zc6>!AGNeRjqoXSpbg}!F&DVpAx_HvBGF4yoje$_8zfcSes`qvJ0%lx z+WnMs3zYNzn7Kaxukx|Xwv;@MXCiaS^W^~CMQ(Aj>#E_e_=fJMO%eRT`8IjM1Ddm^ zM&={(^tIZ&`I^mKAkSG-(lI%*ef^UAu8FLUip`uc>A?pkOr14z%(!V;b4o^biR>EJ zdd7sTX)|Vxd2njx*eMgn%$hdlfy`OsCXbo+(1aONre%&VS>7*lN@UxK_f8$J%Dq!3 zT@uHPoipZ=(~|SIMa~YaEQ_dLl9d*jQ7>Xbwj3D}*(t_9*_&J;F+(F4;^+GEhDLUd zA2Hc_&G6%ll8T{`*%6K0Z);)8ZOr84NDsxfmzYzwl@zB(CPY6pP+?n% J9~{~G{{b=wIZ^-s delta 82044 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 S)!96_QGbT5DCaR}%l`$Cs$p;d diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 7303159b..827072bb 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -1159,6 +1159,7 @@ AstNode* make_symbol(bh_allocator a, OnyxToken* sym); void arguments_initialize(Arguments* args); b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg); void arguments_ensure_length(Arguments* args, u32 count); +void arguments_copy(Arguments* dest, Arguments* src); void arguments_clone(Arguments* dest, Arguments* src); void arguments_deep_clone(bh_allocator a, Arguments* dest, Arguments* src); void arguments_remove_baked(Arguments* args); @@ -1175,6 +1176,8 @@ AstFunction* polymorphic_proc_solidify(AstPolyProc* pp, bh_arr(AstPolySolution) AstNode* polymorphic_proc_try_solidify(AstPolyProc* pp, bh_arr(AstPolySolution) slns, OnyxToken* tkn); AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual); +AstTyped* find_matching_overload_by_arguments(bh_arr(AstTyped *) overloads, Arguments* args); +void report_unable_to_match_overload(AstCall* call); AstStructType* polymorphic_struct_lookup(AstPolyStructType* ps_type, bh_arr(AstPolySolution) slns, OnyxFilePos pos); diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index f1204715..52c7ecc7 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -762,7 +762,15 @@ void arguments_ensure_length(Arguments* args, u32 count) { bh_arr_set_length(args->values, bh_max(count, (u32) bh_arr_length(args->values))); } -// In clone, the named_values are not copied. This is used in match_overloaded_function since it doesn't need them to be copied. +void arguments_copy(Arguments* dest, Arguments* src) { + dest->named_values = src->named_values; + + arguments_ensure_length(dest, bh_arr_length(src->values)); + bh_arr_each(AstTyped*, arg, dest->values) *arg = NULL; + fori (i, 0, bh_arr_length(src->values)) dest->values[i] = src->values[i]; +} + +// In clone, the named_values are not copied. This is used in find_matching_overload_by_arguments since it doesn't need them to be copied. void arguments_clone(Arguments* dest, Arguments* src) { dest->named_values = src->named_values; dest->values = bh_arr_copy(global_heap_allocator, src->values); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 3b3b23c6..12898e2b 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -307,99 +307,6 @@ CheckStatus check_switch(AstSwitch* switchnode) { return 0; } -static AstTyped* match_overloaded_function(Arguments* args, bh_arr(AstTyped *) overloads) { - bh_arr_each(AstTyped *, node, overloads) { - AstFunction* overload = NULL; - if ((*node)->kind == Ast_Kind_Function) { - overload = (AstFunction *) *node; - } - else if ((*node)->kind == Ast_Kind_Polymorphic_Proc) { - overload = polymorphic_proc_build_only_header((AstPolyProc *) *node, PPLM_By_Arguments, args); - } - - if (overload == NULL) continue; - - Arguments* args_to_use = args; - if (args->named_values != NULL && bh_arr_length(args->named_values) > 0) { - args_to_use = bh_alloc_item(global_scratch_allocator, Arguments); - - arguments_clone(args_to_use, args); - arguments_ensure_length(args_to_use, bh_arr_length(args->values) + bh_arr_length(args->named_values)); - - b32 values_place_correctly = fill_in_arguments(args_to_use, (AstNode *) overload, NULL); - - if (!values_place_correctly) goto no_match; - } - - fill_in_type((AstTyped *) overload); - - TypeFunction* ol_type = &overload->type->Function; - if (bh_arr_length(args_to_use->values) < (i32) ol_type->needed_param_count) continue; - - i32 param_left = ol_type->param_count; - Type** param_type = ol_type->params; - bh_arr_each(AstTyped*, arg, args_to_use->values) { - if (param_left == 0) goto no_match; - param_left--; - - fill_in_type(*arg); - - Type* type_to_match = *param_type; - if ((*param_type)->kind == Type_Kind_VarArgs) - type_to_match = (*param_type)->VarArgs.ptr_to_data->Pointer.elem; - - AstTyped** value = arg; - if ((*arg)->kind == Ast_Kind_Argument) - value = &((AstArgument *) *arg)->value; - - if (!type_check_or_auto_cast(value, type_to_match)) goto no_match; - - param_type++; - } - - return (AstTyped *) *node; - -no_match: - if (args->named_values != NULL && bh_arr_length(args->named_values) > 0) { - bh_arr_free(args_to_use->values); - } - - continue; - } - - return NULL; -} - -static void report_unable_to_match_overload(AstCall* call) { - char* arg_str = bh_alloc(global_scratch_allocator, 1024); - arg_str[0] = '\0'; - - bh_arr_each(AstTyped *, arg, call->args.values) { - strncat(arg_str, node_get_type_name(*arg), 1023); - - if (arg != &bh_arr_last(call->args.values)) - strncat(arg_str, ", ", 1023); - } - - if (bh_arr_length(call->args.named_values) > 0) { - bh_arr_each(AstNamedValue *, named_value, call->args.named_values) { - token_toggle_end((*named_value)->token); - strncat(arg_str, (*named_value)->token->text, 1023); - token_toggle_end((*named_value)->token); - - strncat(arg_str, "=", 1023); - strncat(arg_str, node_get_type_name((*named_value)->value), 1023); // CHECK: this might say 'unknown'. - - if (named_value != &bh_arr_last(call->args.named_values)) - strncat(arg_str, ", ", 1023); - } - } - - onyx_report_error(call->token->pos, "unable to match overloaded function with provided argument types: (%s)", arg_str); - - bh_free(global_scratch_allocator, arg_str); -} - CheckStatus check_arguments(Arguments* args) { bh_arr_each(AstTyped *, actual, args->values) CHECK(expression, actual); @@ -451,12 +358,10 @@ CheckStatus check_call(AstCall* call) { // 1. Ensure the callee is not a symbol // 2. Check the callee expression (since it could be a variable or a field access, etc) // 3. Check all arguments - // * Cannot pass overloaded functions - // * Cannot pass a non-simple struct + // * Cannot pass overloaded functions (ROBUSTNESS) // 4. If callee is an overloaded function, use the argument types to determine which overload is used. // 5. If callee is polymorphic, use the arguments type to generate a polymorphic function. - // 6. If an argument is polymorphic, generate the correct polymorphic function. - // 7. Fill in default arguments + // 7. Fill in arguments // 8. If callee is an intrinsic, turn call into an Intrinsic_Call node // 9. Check types of formal and actual params against each other, handling varargs @@ -464,7 +369,7 @@ CheckStatus check_call(AstCall* call) { check_arguments(&call->args); if (call->callee->kind == Ast_Kind_Overloaded_Function) { - call->callee = match_overloaded_function(&call->args, ((AstOverloadedFunction *) call->callee)->overloads); + call->callee = find_matching_overload_by_arguments(((AstOverloadedFunction *) call->callee)->overloads, &call->args); if (call->callee == NULL) { report_unable_to_match_overload(call); return Check_Error; @@ -716,13 +621,6 @@ CheckStatus check_binop_assignment(AstBinaryOp* binop, b32 assignment_is_ok) { return Check_Error; } - // CLEANUP: This seems like it should be here. But I don't know where - // or what the right place is for it. - // if (binop->right->type == NULL) { - // onyx_report_error(binop->right->token->pos, "Unable to resolve type for this expression."); - // return Check_Error; - // } - binop->type = &basic_types[Basic_Kind_Void]; return Check_Success; @@ -803,7 +701,7 @@ static AstCall* binaryop_try_operator_overload(AstBinaryOp* binop) { bh_arr_push(args.values, binop->left); bh_arr_push(args.values, binop->right); - AstTyped* overload = match_overloaded_function(&args, operator_overloads[binop->operation]); + AstTyped* overload = find_matching_overload_by_arguments(operator_overloads[binop->operation], &args); if (overload == NULL) { bh_arr_free(args.values); return NULL; diff --git a/src/onyxentities.c b/src/onyxentities.c index bf3e88c4..d415b62d 100644 --- a/src/onyxentities.c +++ b/src/onyxentities.c @@ -68,7 +68,6 @@ void entity_heap_init(EntityHeap* entities) { bh_arena_init(&entities->entity_arena, global_heap_allocator, 32 * 1024); } -// nocheckin // Allocates the entity in the entity heap. Don't quite feel this is necessary... Entity* entity_heap_register(EntityHeap* entities, Entity e) { bh_allocator alloc = bh_arena_allocator(&entities->entity_arena); @@ -254,7 +253,6 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s } case Ast_Kind_Use_Package: { - // nocheckin ent.state = Entity_State_Comptime_Resolve_Symbols; ent.type = Entity_Type_Use_Package; ent.use_package = (AstUsePackage *) node; diff --git a/src/onyxparser.c b/src/onyxparser.c index e3e8f70f..7e53af02 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -26,8 +26,6 @@ void submit_entity_in_scope(OnyxParser* parser, AstNode* node, Scope* scope, Pac } else { bh_arr(Entity *) *entity_array = bh_arr_last(parser->alternate_entity_placement_stack); - - // nocheckin This should also be able to place them in the false entities add_entities_for_node(entity_array, node, scope, package); } } diff --git a/src/onyxutils.c b/src/onyxutils.c index f176a1b2..91de1ac0 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -211,7 +211,7 @@ void scope_clear(Scope* scope) { // -// Polymorphic things +// Polymorphic Procedures // static void ensure_polyproc_cache_is_created(AstPolyProc* pp) { if (pp->concrete_funcs == NULL) { @@ -913,6 +913,123 @@ AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupM return solidified_func.func; } +// +// Overloaded Procedures +// + +// +// @Cleanup: Everything having to do with overload resolving! +// Things that need to be available: +// * A copy of the arguments list that can be mutated +// - The named_values do not need to be copied, because they are not modified when fill_in_arguments happens. +// - Only values needs to have a copy available +// - This copy needs to be reset after checking every option +// +// Steps needed to check if an overload option is "the one": +// 1. Figure out what the overload is +// a. If polymorphic, generate the header for the procedure only +// 2. Place the arguments in the copy, according to the overload option +// 3. Ensure the option has a type filled out +// 4. For each argument +// a. Ensure it has a place to go (not too many arguments) +// b. Ensure it has a type +// c. Ensure the types match (currently there could be a problem if an option is attempted and doesn't work all the way that polymorphic procedures as arguments could still be solidified) +// +// Additional features that this needs to account for: +// * Resolving an overload from a list of parameter types +// * Resolving an overload from a TypeFunction (so an overloaded procedure can be passed as a parameter) +// + +AstTyped* find_matching_overload_by_arguments(bh_arr(AstTyped *) overloads, Arguments* param_args) { + Arguments args; + arguments_clone(&args, param_args); + arguments_ensure_length(&args, bh_arr_length(args.values) + bh_arr_length(args.named_values)); + + AstTyped *matched_overload = NULL; + + bh_arr_each(AstTyped *, node, overloads) { + arguments_copy(&args, param_args); + + AstFunction* overload = NULL; + switch ((*node)->kind) { + case Ast_Kind_Function: overload = (AstFunction *) *node; break; + case Ast_Kind_Polymorphic_Proc: overload = polymorphic_proc_build_only_header((AstPolyProc *) *node, PPLM_By_Arguments, param_args); break; + } + + // NOTE: Overload is not something that is known to be overloadable. + if (overload == NULL) continue; + if (overload->kind != Ast_Kind_Function) continue; + + // NOTE: If the arguments cannot be placed successfully in the parameters list + if (!fill_in_arguments(&args, (AstNode *) overload, NULL)) continue; + + TypeFunction* ol_type = &overload->type->Function; + if (bh_arr_length(args.values) < (i32) ol_type->needed_param_count) continue; + + b32 all_arguments_work = 1; + fori (i, 0, bh_arr_length(args.values)) { + if (i >= ol_type->param_count) { + all_arguments_work = 0; + break; + } + + Type* type_to_match = ol_type->params[i]; + AstTyped** value = &args.values[i]; + + if (type_to_match->kind == Type_Kind_VarArgs) type_to_match = type_to_match->VarArgs.ptr_to_data->Pointer.elem; + if ((*value)->kind == Ast_Kind_Argument) value = &((AstArgument *) *value)->value; + + if (!type_check_or_auto_cast(value, type_to_match)) { + all_arguments_work = 0; + break; + } + } + + if (all_arguments_work) { + matched_overload = *node; + break; + } + } + + bh_arr_free(args.values); + return matched_overload; +} + +void report_unable_to_match_overload(AstCall* call) { + char* arg_str = bh_alloc(global_scratch_allocator, 1024); + arg_str[0] = '\0'; + + bh_arr_each(AstTyped *, arg, call->args.values) { + strncat(arg_str, node_get_type_name(*arg), 1023); + + if (arg != &bh_arr_last(call->args.values)) + strncat(arg_str, ", ", 1023); + } + + if (bh_arr_length(call->args.named_values) > 0) { + bh_arr_each(AstNamedValue *, named_value, call->args.named_values) { + token_toggle_end((*named_value)->token); + strncat(arg_str, (*named_value)->token->text, 1023); + token_toggle_end((*named_value)->token); + + strncat(arg_str, "=", 1023); + strncat(arg_str, node_get_type_name((*named_value)->value), 1023); // CHECK: this might say 'unknown'. + + if (named_value != &bh_arr_last(call->args.named_values)) + strncat(arg_str, ", ", 1023); + } + } + + onyx_report_error(call->token->pos, "unable to match overloaded function with provided argument types: (%s)", arg_str); + + bh_free(global_scratch_allocator, arg_str); +} + + + +// +// Polymorphic Structures +// char* build_poly_struct_name(AstPolyStructType* ps_type, Type* cs_type) { char name_buf[256]; fori (i, 0, 256) name_buf[i] = 0; @@ -1042,7 +1159,7 @@ AstStructType* polymorphic_struct_lookup(AstPolyStructType* ps_type, bh_arr(AstP entity_bring_to_state(&struct_default_entity, Entity_State_Code_Gen); if (onyx_has_errors()) { - onyx_report_error(pos, "Error in creating polymoprhic struct instantiation here."); + onyx_report_error(pos, "Error in creating polymorphic struct instantiation here."); bh_table_put(AstStructType *, ps_type->concrete_structs, unique_key, NULL); return NULL; } -- 2.25.1