From ef46ac9beb7f7f8a3ab73e609521d9dc246031ff Mon Sep 17 00:00:00 2001 From: Ernie Pasveer Date: Thu, 14 Aug 2025 18:43:29 -0500 Subject: [PATCH] Add Cobol test program. --- tests/hellocobol/.gitignore | 2 + tests/hellocobol/Makefile | 16 + tests/hellocobol/hellocobol | Bin 0 -> 80656 bytes tests/hellocobol/hellocobol.c | 215 ++++++++++ tests/hellocobol/hellocobol.c.h | 31 ++ tests/hellocobol/hellocobol.c.l.h | 33 ++ tests/hellocobol/hellocobol.cob | 6 + tests/hellocobol/hellocobol_if | Bin 0 -> 90920 bytes tests/hellocobol/hellocobol_if.c | 452 ++++++++++++++++++++ tests/hellocobol/hellocobol_if.c.h | 49 +++ tests/hellocobol/hellocobol_if.c.l.h | 44 ++ tests/hellocobol/hellocobol_if.cob | 79 ++++ tests/hellocobol/hellocobol_variables | Bin 0 -> 84720 bytes tests/hellocobol/hellocobol_variables.c | 258 +++++++++++ tests/hellocobol/hellocobol_variables.c.h | 65 +++ tests/hellocobol/hellocobol_variables.c.l.h | 49 +++ tests/hellocobol/hellocobol_variables.cob | 37 ++ 17 files changed, 1336 insertions(+) create mode 100644 tests/hellocobol/.gitignore create mode 100644 tests/hellocobol/Makefile create mode 100755 tests/hellocobol/hellocobol create mode 100644 tests/hellocobol/hellocobol.c create mode 100644 tests/hellocobol/hellocobol.c.h create mode 100644 tests/hellocobol/hellocobol.c.l.h create mode 100644 tests/hellocobol/hellocobol.cob create mode 100755 tests/hellocobol/hellocobol_if create mode 100644 tests/hellocobol/hellocobol_if.c create mode 100644 tests/hellocobol/hellocobol_if.c.h create mode 100644 tests/hellocobol/hellocobol_if.c.l.h create mode 100644 tests/hellocobol/hellocobol_if.cob create mode 100755 tests/hellocobol/hellocobol_variables create mode 100644 tests/hellocobol/hellocobol_variables.c create mode 100644 tests/hellocobol/hellocobol_variables.c.h create mode 100644 tests/hellocobol/hellocobol_variables.c.l.h create mode 100644 tests/hellocobol/hellocobol_variables.cob diff --git a/tests/hellocobol/.gitignore b/tests/hellocobol/.gitignore new file mode 100644 index 0000000..e35ebf5 --- /dev/null +++ b/tests/hellocobol/.gitignore @@ -0,0 +1,2 @@ +helloworld +*.i diff --git a/tests/hellocobol/Makefile b/tests/hellocobol/Makefile new file mode 100644 index 0000000..cd1c3a8 --- /dev/null +++ b/tests/hellocobol/Makefile @@ -0,0 +1,16 @@ +.PHONY: all +all: hellocobol hellocobol_variables hellocobol_if + +hellocobol: hellocobol.cob + cobc -x -g -o hellocobol hellocobol.cob + +hellocobol_variables: hellocobol_variables.cob + cobc -x -g -o hellocobol_variables hellocobol_variables.cob + +hellocobol_if: hellocobol_if.cob + cobc -x -g -o hellocobol_if hellocobol_if.cob + +.PHONY: clean +clean: + rm -f hellocobol hellocobol.o *.i + diff --git a/tests/hellocobol/hellocobol b/tests/hellocobol/hellocobol new file mode 100755 index 0000000000000000000000000000000000000000..456632cc711a1e7d4d96f4b62839e3927816267b GIT binary patch literal 80656 zcmeFa3wUH#btZaBRVAsr`XRgB?snVYqF}R6sjCmvmGCXogFoX$AE(zod1cuxYGh}QslVKc^5HgboVMt;FlK_DP z^1%21*V_A>Q>9Y7?VEe=H{V$P+;#Ro`|PvN-fOS-TKj=qexNQAaqM5zxy4~Anb4YB z&5fs%L7Q8hZYSZ~>a;k`PCf3&@V{+W{d=YkH}PkG8@1>}@yq8vYVKG6US-o=U=Ax&$m_ne#eYsKL^G?^Bk-B+(*rGA2rX}-zM{%{k7l6 zZ{z=8H2152UEJfJEB`u9^>fdd=c<4EO?&&xckr+9muqt`=6&Plxx063Kh?iCYqev4 z?fY)SbDWop{WH_)Oqlm=wGQXaciUgP?nf6FPIYCDF3zmIY z41wd~I|v(tqf<`ZdFKh%+2`$jmU*9lth39_>&r};_n)47-*aEz`@MTV@%^WN>9X}p z|7!c`fA~IbJD1@9{rI2jbt(Sm-!}d6;c_R+{EQv=e;@w89RF{}|9qCy%rWf3|J8qd zKmRx;JGUHH11rs+*_O^8Q{IbTJGZt?_?Lazce2kn-}b?XTZ}cc&i3)zZGB&Py7;A~ z&;E~h-rtw|!*B1n@jZ$3ssH{zKX&4OJn_}nO<#4-13!CzxXNtDj%nqW;+}>VJNV`n4_U-?T;jN4BV++oJxDwy6J&E$Uk^p-s+} z&Ug|HLVsVx^}$ftUiM1+tDN^%wI4M7tW?z>LA_g}|D&kC6mPb8-@fYr>My~auNi

T4TyeE{dZD~lT%8>0 zTU;&`CudGA7WH1uJG0BDytUPt*&_N`T60(|7uUSmnbK@=QHt|3Ycq>padmZhRm!tx zinI54XN#-lh2@geEG^HiFBZMii_53jvV^xw{X%I$dz@P+uPn}-lgiTaiu{(>mRG#h z^%6c~c4NkyUntEiF5HKqdcaGw=Bt)w7T5rvh*!>@xyPHISy*(~VEGg=Rfg9~yy}u# zz4C^~@W|Xk$y+ZM=kWX-K0$j#;Z(V7uZtzzE%L52m>=%#^V01d8UHf4O1F1%g(9K< zqM_@UT-Swav}M$3k~QVCj`PWPyc_5u=8T%U%N7=Z)}qcGro4V&0cfwznMIj@mY!NV z)bQst z&CsRdiBP?z3B2*eP`!nH);}GpZ(@b{`)a5j6BhiL@er3A5-0Z>L-k?4rYTg?fprC(B%#XCIgH1j})jACvMcS>_ZzdtS=DEOY9fU6JyQEOW}9 zy<5s@mN`|=j!XHMu5+CE$558P)c+iQ^!Hvf^yt@z9{k34#wT;BCsMyN^!DSg!GNCI z`v{tTf4+V9)elKqejn~_Lx)3ekJs_1=Z9;1F)agV$Z6U3+}CzreV&cKV1Cj5k9qU$ zonPip%a4a1{m#(m|K=4#pZ{TWDDvdc@BMh~GIX%hbkO+R*XDO$-5)&vce`KykLQp7 z8{Br*k4z0cc>J5!;&SNGzg*if^w#6^sDGvfpY_Zf{&_OKgmUE7c(?z4KL6~!xLLpo zx{v;7Zs@JC>zk#E{_FOqo_P4VjaLl4eeJr&>}OEve3t)U%$@A`u^&J896qY}8P40# zTPLsEKR0ybGI@IU!`ER60Rrw_UwH7jZ|{C6g5rbE{r&ETeu$-h@c2J-l)E4L0SfrK zzeb7Ev;D!1yPe$+|7X-b75@sG;7{KBt;dJnK6zae+WrRHK04m`;PKC}!P+|NK7y+U zZ@oM6%;)}v1Bt%}<)_ZS4Y%VUO&IO~-u}!RdGqZ%-{Rsk2ydU`Kfi_l^%c+jo<4l1 z|8TuN{3En`rXM%odb|twp7|YIntAAa2ks5M{bi5w=g~iZrX*eTUx%%5YjWt(_{-5A z%h14|x5v*(tHCB*uIc6ep+`Lz#ec>ih8`Vk<{eBbE|Wt~4UThcsQT(bxjX&T;N7fw zYH;q8PG{t)!850ytwU*1D_8jQsEs`N$Q$+NC-vt+ z{5VfO@{pDu)}J?NH6pAo_i{O8Se1! zDQSZ*be{F_HNVBHXC6coS;}X>j7id~FXHN%1Gqu#AuI9BI%klWV|<#G&+M>|J@Zun z*`rTAa{?9UPw)-f;X3>m0k-XEPeDpJQ(RnJ1|?ozY{$P^bh7KG-DJj1C)1s7s^`XJ z_l@ZeXNWCZ-Fuf;7w4`CcZTc2xr7kwMQ!}yJHlJI9`g2;UnPGqAga^;SO#>XNJ zO{^zxwSqp(G_&~@?HvdEQ`(>ZM}4=mt7%}@{#Wi!+}n8GdBuU74tHE9-LT(&{NIRv zi4^Uhi;Gv`|7TJE`Z`=>cQrj&*S{-SSJ=L*DZ8sNn~-;($E{v0vd9+wyP8IKHHy6S zUeq5)J;%&v@dWO&@Y3H)Gw{+3yfgzZ&A>}D@X`#tGy^Zqz)Lgm(hR&b1OI!>fYp;) zy{Oe0T79V1e;RSn`A0J?wp?#6Y?(S-{_W5oXWA(DY`tcfgdb z{#N8R)Y>xn*8`&6MNjzG&WXZFQK<=0U4-TsGsiy2kzHIoh?tf2LdK z8KYmN2+F_j=#MY=TAe8EZu}EX9)4~8kof@n9j?JvkSD=xS8U7 zYOZ^>J2O91ES{R5FP=)y&L&gEVme*y?n#}>q>7!hnPT$Qp^s|CwZeujRJA=T)Ko4B z*LCn`2q3$%h2H;FEVG4}%KJCV^WXLF+x=#3mUh3{{Zjd~;sp<`(j(5;vsZu%VlkDRY7;HS&K8FkjtItG6a zyf^Y+@b8WXFhI8FKYb4jh|SYewB|&AnN^1`Kf<5J_%*PM;+YXV6P-s@^uV4${(Kz…`C$DJ^h+lK* zd0fYL#J?Zg#u3&3A1wZTY}ecH>(u`yOaGvySpAbM{ZLDdPD7c+AH|~7N@1K2;iqv4 z|9lt!Z%gB!D2H+yy}R<5pTuWyufBg5 zN8=#`LC4L&$P&I=K^S+(@viiX&JBn?KTE7o*yofn} zjGJcSKY&+q;_0+g_lqb*_9bpad0W)lXrnr@u@2NaFUS8eXBXcXp>dgipE6zOTEAyE zTM!ZA4Yy;oAA1$d7}q*ZH7x$LdA#oDV3m)5W#4gh71dRa>YB&;Q5A2DDm=s{*g%0I zs$dXRFsL^pBZE@_}`fV+*z{A_tR?yG3TLFLDw*3L-dHc3EKaLgJ zw&y+g+HEJX5<9oO2_6Ewwv_-xyPX)WIW7Xg_FsA}9*#}LnuhV}#3xaT-5zTYAWJ+5 z0FRxF2|UFxalAPli@qE!V{E?tR=lAp_NrLZC;0H+V`Q;c$1cTSQM&I_D7{8Yb%_tc zXdCllO^dh{OWXqRjoq#H>UXXz%sR1|*nV~b=xw|mzdL%-b?j6udKU_@U&lY&|K%?D zro`rBO*F0~{^l{%pN=I`^0GJJ!(wM*m-1F)BF|?RV*49VYC?xxsD{Qbu-oU*N$j<; z=oi`TPTa=|bAN3A;R$}qW3fh$y{`g3V(*A;8<*aj-hk3OW4pQhjfoj7Ozd4++TrYa zXN(j0f!OYk%q}nG(=0rJ-=?qPAO6n@4!@!Czp$E+#=cnn4gBu-8H_6Su~?K} zv;FfAgOiATDc1C>z?+F9O}O=6WBXWe62HokJRRHpX_Oih&+xl{FSh%=xYd++JHRXU zWi9Pb-1UBxeqT#&qKlvN2eC_kfEP3;dLKmT54Ds`N8`{z6M@iC@}4>FcpZ&eulbf%{PU zM(h&8$Nhp&^v1;N z(RJ)wTKdVvZ}g({Z7n^RI5L3J-)QNf#Jg@l>2J04aN;`bn%H-=^rl4PBPe}WOOGV} zoZt6%T6%Nhr}*~oYw6KMPb*44(9&BHU%w5de~Ml5UonGkO?)2cF7_|_?QctrbB%ti zv-?=$OI#HvF01n1#JMvlMYQyI;>53`RHvnnCVu+gqZHNBClWvPZj@qL`b^>t{D!!e zo=6n$N2y**UrhYmJt#G3>FLA|Z$hb2OJ7ZVYZ|5PTKZbzyX+;QrDp)abx{H~;iaJw zpN@YC0}YLY$~|1HKgZ`?b{rRg^e;S&hj+xI`VjAI|G}yQoB1{IrU&W);n7#2!NK@W z_U9yinO}NsTyR=rf=eH}PD?uy?;AkrdM!02-t&tn-Jqq*5}*DMN{6(xKk?8npwt`} zjBr)rRYYzrde2Rq=NcT2@8rvyojrW*PvcU?+u-c@2MjKDBp&@9NBVy3qBqC7<4qgD z0f}W$gji2pcAt|deF~);;|8bw&QX+Z(m85Moc}ONH*0Bs;$D`HYspPq{%MqMiC@Al zn-d@6K7B=eJJAYuCa_%WRxNcWS_w(nxa`wg6JI1==+%2eiBuO#eR09Bk@|v;-gwxP5jAcP#V)xIq}b2+}pIYmiWfW*G1}ge;d%znD{uCq^{ne5Qe&#=cqB?%jU?Bg2DjYzd@=jqUslR@)$f z*h9G9dq1{O{S|vyzb$$z*i`;W)8Dd98=ct4+4MgGKzqk9~CERx>C zu>r>9Z||D`iFJv+=oORyW&;a**>T;j%h>U@=y_Yad^2h<*~O2jd&l%%a#wYGce3lc zcier=Lm+~6`}aJ7;(tePe~kaH>HRS3u8=xvyXYBlO~)ka4qW;q+9gqL$N&3Id1a`cP$kfkza`(?0O8p|2F!tsXv$nD-d}k`lq)1Q=FE! zMF)54a|i#=M^T=Ne%ai=ZV_*b+#R%k4D%9=1?2+PH5&KJ*MAoue9m;{U;Ke~?nK@h zeJ}3a@MAQ3HNJ&By>n>Xyo+%2CERX~Oa&9!9GS%YHAilXB%31>(Z7pKHAki+NvGxO z<|zW_q32A2aQu(93%iq?Lsy#t5%QZcmv{ran~bE`G5(ndwy1OHX49IT4QlIPuQ@Gt zs-EDBPnovd25-=|b!GHFxh?t)6!|A(cUtZ=#SuRCdQ)&v_>evpNjWX=Hr4Oo#ukQw z5MmgdhQ=F!OZM=euh`ljJBL4vEgWeTP_~cnk@uqd{X5Xnkq?_*xeesYp^kYkmMwC% zJXP(&9C<%q@7|9MAGta~Fnb8gbRPe^AO8*3?dKl*Jj%a`{||lA^v+#*77yYLx=NGy znRHq{XYO;%E&tIJICoClPc}Oa|2M+>AAs9yjJ%@((gEt0Kd1744%d?`!0!G zx;wh-%3as*+Jntj*X~4jz2b`Dy{rZhVoRarB@x_BuvHVNcinYPB5@0fxPLjC-vik?_w>pb+;G#neV^tkUK9QzQ+IH?-{mFP zh1Ui}_`soHKA88ee_158XCm^M-UQz?owy@$Qbu({+)3>*-5q-LCnMN8DS_+exBMjB z3HQIF7jxBu8xC(c&f#F#Rf9fap9W&_Ck4}e=!&X_ZJfoMuPE)}hO7a_;KjiLQk zME+^lPX6Ev9Q+??Z$DZ-SDq`bl#e1P%InHFjs#h>7kC@HvCgV-qsJrBruN=zZyCAn z+T*F{jkPM6jzE4V&KWeK$Y;s((+zpzo9(-&6w&2oyvezfh2Sgoo$d@ufHmzNOkgS!9$ zEc0BE>k1gCcv_yt-PyL4)uJ{rP_c~Gxa9n`ohi;BP^e9TT7YA|IJ36CDqw|1w$!$^ zuvA1$pgalZ-MKO%bWj2`@lH^h#j6OCSVaUKoo<_3UPsuGwk)r$pW?lG4jY#YGBl;R znbp&{#z$C~X3qp~yob-27s(U2_Plv)7H zudS}nu6aSl?DFzG3q@~X*_&T4&91>t=D&j5X&C`YOFEYM#pM~N{FP-43@!QDvSd>5=9jUd<`;@{;ohoibyJuJi)*i4 zTB*90;mK!v9`1Ul*5|#o8IDTkvAl4aL0@KExI`N>{Nl!JafNfzjwL4O`4w#o%eKym zb5mRKCYp}aN7kT2h)#cR@7~Mz?%8uW^nB6iRgri-tUtIJkJd*MuZ%a;M;hm~ZaSVg z5syT_M8yp2NRK|K15gJ?V9%aCdqeMgcYGV__phPVNW5Vml#9EgAATSbKd>hrje!67YrJ`1eFXLB=6w$| zUW&SJIiGF(>!9{sTKiq+v+-E;RUgB!Zi+NM9=`_t?%_awCB8Fy9bRx5A3^z-sp?hx$g5=FY}CG5IVan7a1w&ay& zfKTt!=Tqr!T#$xKPbEHHLTG1s7A;C15hNq7-M&=nU&Ge#woQ2hV-u6Z19y0Zv8jo^ zoZGgvwq7b8KV2*pR~KecoLQYcb6g|D-L}(i+gREK`ItKn@`ypS&EvPb2Yd)Z$%`oB zTgo%1L5qu}(`#prCsDOtx_6;8*S5xZ)H2F5<#VOkGpoy`<@It~^-V0y>^*I>i!~kQQbZ z+lm{-+0d$TF?G>Tf?VniC5B|?LR=-F&FAU7-sR;*%X3u)uU0+U>wL#c4el$p=`msZE83->5XPbJr7Uv)>wAZ zJBd+v_&+y+YR_EdhbJfVIWITbKg{ON$bdI6;PvMQvQzmp^-u2wta-rCa2+`_7R@F*@0hKDhcE8yb>hDWn`e-tfd+F}rI$4=%ZYJNoz`xu{`=pV)=BLsLD__6uQzq~Wh*YDj9 z$mz=T0vm9aPxcLECj>U|2myn$gNXdq@|w2_Q2|W~ll^_NCIJ5asqy@9AEwhiln&vB z{v6hRL_Q6m)ZUfpO!f41cBHzy)0tzLF2n<-yEDnoo{o;LR8J<=)15B1WqLYO16`R7 zydmG;o5yGO4^K368?_R9FSoe7cI6sv0NMZtewsoy2_;tZbaAa%I@=7-H!iJ~TomyH zKoX5)Q2I!7TURQR<}FO{0H%C$!VNE%hp9yhg5u1)=e4vrBn@Ym7v>BK81A3$cDbE6 z*vd_oWVMfgynAPWZ`VsqK!7DS{j4TWw1$)lmhO5h`kZ^i4d&t&H))10L$P~kV4NSI=(=Z0M!adGafhY2!?1X> zm^KJT_h8~qEzg~6hRlc2S~QP)3-=Tk&vE>?(RK^zC4tmiSzC2)IgXZ<)yVPC;=Te? zzYY%UUcK$!=pJsiQ{#dQSalEc9hFa_!y`usDT;!L==yU&j0F9DZ!kAm013lVh{P$N zCs%j?8K7jd0CV<@jew{LD(&x6R0;&{$> zGc5&x0UNeJ{N4fLH4Erm1v@yqur#x%5I~xh?{7Zay3u;B^*(&c*>;N1?s0dc)jiwJ z3>UaQ$7_NpuJ3DgZ#XNEgn7WGT9Xf0=aqDMa(HrRY-*AlXm|v~P%3k`0kp#8Kt7-^ zOOlw)lW^SO_2tJ3K$%1h0>uPKuh5sx=bGmUb@Ny=j-l(UCer7%1=>WvQf z_HJ%2DBHck_4h_)b1c;OSOMe}6DUk9Ca*ArskVdy-UWOVvpYFe@G>1r=tjrzjbo!Z zH`9R!R@OIz-|U&zivYoUR~Mj&*bIYO?*rj7@}~H3*y>gSAwh8V40a;?c`Kk3Hx7rO z(|^~IBUnj&M&~ix*Ox04yh84_DX;{?SU2K#BC8t2Rgi724>WypD1>uck%wib9LBsZ z5Llk{KDd5arLh5SKs8mUXZ;k(i8}M9})V7d+oLER6Z{#PoT3>a8h=s#>atFq`C|h z>}v1qOlFc7{wp5I3;;x=LrXGz7OEMPsspSF1d=t7e4`S9VyIMf%$y6KN8rMqK*|qG zRY~bFaczEC=yIDYd=EAkK9o%?aq8$6+62ZPd?-|>YW-Ga5Kps-QU8#0*inTRZg{8c)V`iAch|V6O|tx9GV0^;yhMxgQ<=d zrv!m1j4hJKyuy_3EnuA~aHwwbn4^laX7C=^1zK>Wgm3Lt0IXn&dfHRn9i5q;u2ko- zo}N@XmFnzDCOeOHf*U%P%yb{?$#isqDN6Mc602YhGVNM%2@)zaaBK5th-$(k%p3!= zJT3@(bQt(IbIjc3JWP(A%tAaH#N0rP03$)J7wlpPAEq)M(f!zfcOrL(H<2A31n6b7 zg)ZjFA@IVkcAEuV1D{c`ketfJIdA}=W*{S6`^vp43ns!Mpm2Dyz}@L~aLa{MvY=~7 z1qHPT5Em%B>?$J=bz=jE2ZXg8%jZ1+SB+Kd$Z#NL6~a3#mG0ynNEQlXz!D(}G49Q+ zFReI*Tn-c%f{YM&4`^+PI@5W1eQ)7pb{y<8=3o>Xesr?=?2Ir}1f_Mf+b^5ndJYIp4gA=DV=%oJ!wC- zr|uWqk?lr0y5$!4MRpW)V>^0r-xlu2_Vi-ryRskK6JS91l##Q!y$HMmDh6BpSSjVr z&rjviP;n5cqrpRzstI<2BuBD^6K=C#q<9Z#^UG8L43A9}!gT|~6NQRKd5i+v>Gmub zRZs({cA&@Ury9aaUIEoXYBfMV7#olnp)l*XKuh7$>~~OJMIF8nlB|_UMPaHM3w)9{ z3_U@v&+AHdcJ>ILEnf~E(OT$YWUL?9T5)H9MjaCM{v1#@5LwPmcXm2N(&H20%pn&VHJFdlfPsYYdSOiu z?&2%LvrLG=D+wb;LZ;Z>(UndiXe`r_N~M!M9i7RpH2ynw4D;8KP95t^cO@ydcccd> zd=pqKL!ALsQ5WfrL0ExO@T8l`s3xIQEY3mMg2aDfHH5gf0&^oW^U32%U3&A`QJ`EY z)WYYYAn^g;&=)NJW?edgXAF}#lAY`u%2A~>#u*V#m>d;I9H+{2E2!Jlct157H7H3M zT1c+^tbi?KMPCAv-B76!OJhb2(b>e5q7%p$-bS~uR2$86t>7D)sa;Tpi#JIw$Z&0h zasJuXxmNHmRs^YR`Hv?|JzHT%XD0>=;K(SA*etHGT_v5MOdBAE%z<+?hqb^K$FG1TVN;)V}t5VC7cC*E;I&cEIH7_?-QyVC1G{~Vo zn@g>r>cza?0=Qkk5WvfzI*+)ncX)76m|-xLqg2MCJvcZ*&CD!?1=@+$*2`$BC|NaS zA_}|^;e`8T9Lj<0V9wVF9F$yK2hla5np7dg(LgyWpi2$&%FOD_5{F=!B6&S_d^fdp z_&42|>I8dwtg|PXIhF*s)p0BZrnI~3Sn)_lxA3Hp{lzi>R*}3Wne3C)gNwGhQ{GjX zOjKnIYK=t3Xe}8j17Nv4#&dmCenWfY6|w^WoNRuI z6UV1WfdeL;iZDDzUDR-44Aw=b4{FE}Fv@vY2;GC%FD|Y_7FUA_NYxYvJ&}dIFzw{~ zq3If*POFlqdH$~CtI2nEyDd=J06fTvl9!#oEA?tqV@9spC#CLO_G-HCYeGabt-24Z zA#BDsw^Gy9T55$5QJh&4{O2zgCkazlOLxhqFt!^o!L@D!P^s8tE8*w0`QcCvTHJgb zA6TQ=HOHX}h0?M4CtOjN8WkfTOLT7#0${rg^p2=)xyhwNihEduA$$iFJLZdSa&;6K z>1=83CKvdhI1<;==t3jBNuP0{n!U+wgAxJ{wYUpV`BrGUpk9)(9XTSj!A#`w<1UD0 zi+c+5de2Rm$O}(Ko4%{X1!}Ks3Du5Jk>_2Cs^?scfKaog{<(UQP?kqz?hR!nh_rz2 zD4n%)8mb^11jQ1s?eOvP8{PRzki*mg=444)-4ZTzwvw8M0yDKB)>))JUC z`T!G!$%)A^3XO*J8WEy=1`cQei69R4d+r?@gAr{M9VXLL3}EUo-!pom))5z?OmIK>oGR$Q`&zIN+rEP8X1%J2{w>6I8j$WYRjJ+{p5& z*AhR00>C^9; zS3qNR5_#F`z^ureg8mx7DK;uNpM=C4IKLRvRe5%`NLfTV7vls8<>4ZPLfO~ifJpVf zRjSISnmG$iEA6`YRNrQ;Z! z3PvG?Pr@)_^o~hoq77J8WVtV(6&b6MEYMXtX^OfMGPPzL5S2HU7S+jXg~|5eoePg( z6^|v!J=b51x1LJEcjhL>stsnMrVd-cf~H)3<351>=k-BL)9Jjntj7bWf_#hP^A;-Ep zlj#)bT6bqhvLgwtb~**a3e^R)^7A8&2xgSG{bMIbLB+Vf@^#o!>XIR55FPT`+Bpo@ za-!41hi*{d!E$pzo8VnH0+kwo1Rw2k6r#3Ky3~8ec(wow?nZ{ZJRqHo71k+^<}n3y z9GRYk_Y%ym!TN}a5_qp4UO3OYLgB_-Bk@cNPBI`G7qtQj2rj}i1l`gWjvmIAq2MBK zDCEYo6VP8=+<0v37KhR)5Hmnqtw#YdPIq>}quDDjudf1Ji8ClV()vTy8x?Ql_w%`F zk&_BWAtT-+AuKuqU6A6@PF*ihY@)tOAF{F0z8t#ib?-fc_qfeaxX5%<#2=+?mMb*1 z*^kN1$hl5Jm?Dwf}ld+KQ#*HE$*~hz@IYyNM@_Rbu3@2 z8SEHg>1C2W z1csXlnX1K*#sQEZaD=et2}f_r0Z(t1Do}hX0|kkpa;*a8Cs+ zDPcIF%ZJB|Vc>H{Od&kLd0;AVi8YwRxbD&u6|~TDfMR%6|2SYs?Y+|wP`b3~-h-ml zK48$ju_JV(K#a*%LU~6`D%B#Q>gymF-ox!VQ>N=YO2pyf^dk(6U&0-+#k@F9g)$Jf z9k6;J$)|E{UHt>N0i;j;l*RX(y(BE7vIeT-(^0U0+=-mS)d+<#S6oe8Ez|(d7aZg)0Rzm}NjMElTPVWgMae@Ia|x zJR;nPBclO=im7^mY5{0~)#I4{rU3=y+w7WVyxuX8JXotd*c4S8>B1f;Kp39q_EZnd zPO#3wV+S@TXiGN#72A#tRHOeuDyu{(#4u`4QIw*CqEE#5#MsaNj-y4lo|l-gK`^nn_4^ysi`_MX(rvTLh15@IfQR#H>e9uvluFq9?JzV%P^(??+)y@(Zdd#{b=wleA z=opQlBwR|!z&wix9Gn^lE6;KX`W4CwGfQ)D`c;1e!^whO%JmJ6)naDRzatKzcv2|D zU~W`g@C)#S7a`kprBV-d4~3f24k;V90q`kLqcg0UgqRE=uHobmm{w!mr(t)CNEJ7g z26nOr8=OH$r+HzF3MYo)%*MczLOMWdiV6;84zX4RN1B-2L&xYKzgfTKf_72aB~de+ zOSA$eHq=t~51Gia3EvS$cXm~nU}$@cj{4{=}K1TGI_ z=*o8l9ItAv$Ww>(x8g3re^eGwU+9iw9#jno;-QNRXH?cC|28LXTow~x{-j_ z^hO7qfYROA%w5z;rMtU3d%9CJZNL*V(~S_7E?8t}-lh`}&_;0sF>{byi9zfMl~ti6 zBI@_F_dMTU4uK|_esYt>c^{B`@LwS{vzlLx*D=(Z{bM7ba~}Lkn5qIVQPVEtL(YXK zI-L>L#4=(omZ2~SkBNLP1G!q|2N-Rul-qw*vo?2)z22*afr#lMxlB> zu;{=qmXT)0ag;&+1&T8K# zaG>b2O6DHO<`8NLw91Gu>_~XQ;$N8SQ3sy{vGmF{?h{#(w}We!n2_Wj59l|9XEKIB z0IJ*!RegYk(fsp5gAWEE&%$4WMLd z1ZIQbQTSKZSRuHevs+mKYri92?Ii2bJ4I?o4?sx9gOfup`3_M$A>?;v^&FH`h*~qY z6xEUWLXZ&$fFH35xV7Xy7TXt+uwnRW<0CVY8yTCp!@;*m%&v_O7mZLsxfdCw8*n*= zuoX{aLjy<^Fl4MLst<%OAkXL(#H&Kipcjm-K~pk*q2LUk zJd!U!SOt`npvt~erSb>ZGFZLv;sy%P+KVf)o>^SsWV2HUH-%)>XNkIOL)biokK#6= zhbLhK=|>hdzRoYnny7hZ;k250eQo^ca&BVeCgZ?*c zsT!280RG}YEPcilP6g4;K9u=R!(1Ngq}pvbM9bx5XfM#gg_Z#7D&@Wm5$c{U49l({ zLo$L0D>&dm%Ed0UQEwy+?xB=w53Sat+XTZQzyMZ7;mn{z=g?KE7fY-q20&wiO#8^} ziM_(YIY^@H?la3Y$WZeIM_Y9jzCAlJoJFi0Xg&>>h;p7Bw#IAlP}m;B7%rt=I7GrX zmzStj^%gY<;1+UiJ)O{P;bS14QFmpc+664D^}S}YU|{vVTvF}uWdU=YItDLm23lo0 z5NmY|jwDdYc6aq4*7sNn&MiG+0yHu=PZ^Z zMdHYK?MO1X5;KxHu&*kQBY_vH1{%Phvo??T%2~vS!mU$2Or_092uu^$*#dnugQ!ST z)9BufC^Fc$ySljPV0AY}cVck6-3wE_#xkQDKiMv-RlEN=p+cyqMo)~=D$fDp;S-PG`aHoM|8xnqRPo)eCACyEbG4bM z4$$?5Sa=el5&|+fB}O?ngn-DcgCfBku&v;YS5CpN8gh!Cs0D0A01|-@1@y%-Yf2Dv2OZ*_hh4NTz3lN)KIrzLWGZ~&apBuntOG$#5v^ZK-ES<{?Ow^s>BA89( z2`d_!SW`vYH9{qzdk=+HQ2q!AR%H$Z38T;~2yzJ*RJ0WmuE5jcwxz5atG>@NDdDsX zdnEqGcZhaiTBQk6AdvKIEVsWcFhPZY>O|DVoHRW zheAMVs0OT=t`nLlSN&IgTU^LA`ND!#D(24U1z^fH^G5lZA~n<55KzR+fy_mKsjc2V zB+<@Gs*(SN!Ve_3Nf3BoQ=MSn{(l;B@DqdvY>-(f6Ct$*IbH-&tx4p@O%j+OZ7L%V zY;Xde#a$+f_}?}bp#uCa7>b})c@gn&^a4E(;r=;4dqy=GPTrekR6ESiVqD<%@QqOc z8V_-7KwOpwRYgA3+s1-n)s2kc+{&j-vKATZAVx#Hq3mpsqDq(r3ZP&O;J>QOI5c6P z5B=cktta#`JYJa%F1ZzTbY{? z^%5$I1&Y#QD6-Sg5Yj@QeyP6@BJ`jgpa_-g#4}dx7QqG7lQ<^}bcqMa+^9rg9sxrx zjz)Nl#KlB;kO(59-RkL*ID7|W$8a_3!-;~BOAw+~R~v)w0RO7QVmW9n38%`}8{Thl z0?rDx^pIjA4c@5!lpISfW>oJY%N}kUfelzzz{+R3l{v!)_Cxm_@Wj6UMka-jp*bQn zdEL~7Koiq1KqK08>yXFk@9x8E2xul$-g4T)ZwC4~lH|PT=vqk97_4k)oa?B$LY#KF z%wQ_u9%Waz7p0ni0bzp(SWMke@0Hk+39_90);DY=k|+JQO77TCfG=yXne@ zj^N7Ys)Gog^W7Euk;7vE-UkE2Ou{3b^!b5}ULQ>Fi^UDs8(@xN%6-&TA&nd~eDJ}g zLM!-W@tF^OGijl}7S@+n_@=pq^2#C(^HF9(4Ud8PTLxXhylAp7yq>IAc1jwkh12LU z^3a~qty!#`G$U5bxawYWT3n>z9LZKR(PY;U&ogaJ~d^coRB-~Inis+MY1H-~}Pq!6$%WF$(CjaZP zf1UiV$mCL)0QNZ2yG~VCx@|SvT{uA6!KNEgd=s+)7d%Eqz@Uc-4>^+t{SuUkJM z*1+wnfzgV=xd7AVR5LrmGzZ7!ZoxRnz%R zbT&!kVCZCyAmR@{39N_ggl<uDPT=M)YIl;v)Q{Jew>Yl2ydU0RCgm%f{8H3Ik0B)`DZZv;K#AK+aF~&8 zvVAZNz}Z%{j>h@~eA{;dPaEbP!C?Wyv`%UI3+ttfX%4GrRCLC|#C%y?9-$G8jj13J z{j$JDK1I||b{MYqs$5_sQ`i9kDnmv!GWl#i+dn~>0ih$96dFFQfI}Dj(gg&Zjj(`& z0DzIutgz@$%RF!>X*Ls}@fx#WfFuYgV}LewGJ*<8$^m}kXn1x;T=3xsdJj`Iz=1P6H2pb(s;{LNb*}X7Uw> zI$*q*b@IG)^FlZa7ah@A>Kem<0!D_UN>sUtXn=+}2mpkuPwxP> zoADtJd_dH9qr!*0!qWrl`@p-r!aJnW2Sj~IjN^IO2ZX~HLmC1G$RTf1$@p>87w=ea zEJaz;F<_aFj9a0MLE1?PO=(`isS0cJt!_uFYaALwAx)SKK_c_WVt z^sz2ZLa?7CYcaV^Wudkn15{}MP^{IE%4QNM&P(&KaP814RbU^WK6uY zTUbiOCqus|`w)Ty1Vd|Z@H9F#pm-Xrs+<6K6CWBLC2poiO4}{9Xrb{GP~TO3fV0TO zvDz~GU8485;a19swj<9{2Dt#?u9!}zyN|&Yz6Zf19bKJ>Bf(z=p(O|>(UdG)I3vYz zMT~nRy%9j@#Pp}>R4rLE&OhPw9SDdN6DBue6(okNPxOfoNxhUAM1O`1Aj6RQ2f06} zvZXc}jyUT1fdyrqteXI&FFY^`9)S#HO-w8}&5nr{zElrBo}gftT&CuQ;#2+ z;3LU;ZeI)AB6}6OCnQa2o)}ODr>DJa@33_jME-&l_ZGH^CMN*ypqplPlwmQl?~SEi z^pk;z>?>{fCgJ_CsN>*aHTR=fPRuy4fFp1&86vf>VH=<=AxJN!HV~L7koE+3#MWWc zI0^4;BDoEtUzRV;_4f56r}0R(Z-{ZlhFy9db#OpcL+W5()P6x}%0y>xAX3wu3rPBG z+l3s~0+O1&^9>Pb$Uy?ze71P95W( zN#{(Eu)9E-;Tw!Y9xMq~X+Z7i;*g2ksjiCK_9iHG?R-3-)5bf~peSo-re;poP<2!R z-<(Y8dv(*2Lj>bbvwN4?7%KP7aA7>3)hu;WP9AAgVOLdx=35FVwHG#b^?Uty&rmnXe6D2I##7P&Z}1)(s(suvOIg-%KG5d`XC z5-^rM-86=U=NG%!s6PvY5knJ`2tdfh`{S# z1~RX@7fFuELtTgDVdGjuKGkX;BoLc7)w8XN$**GZ?e?V1#V96DmO5gppM&x7C_tSC zr!D$1(xa{FoD`p4sSy>xp7eDK=+ou%4lF=g zrUNo^kErLYZYHBD_HCV{best5a3+i>>I$d?ztxXqVb*`Z0$Io^WprqxOq4B1UmO}$ zgIdiy&MlnA33h}GU)>F|4jxF;+9MOos6^L^?+aApi&mZvz?<8h)5Wtlg4cn_7!#(v zGPog|gLOB!tPEoZ4uhZV`vS-uQo$AEwnh`kjo<{sYStc5%mT~=L)aeBCW_hzDf|x} zWwflXGA-1M@W!D@XoS2ek{ZelWMgDjp+bWOPGefp(N#bva%n-%(`+S7!&WZ7ZXLmx zMRdt8u|DZYeu3BUdy$2X2vB)3C5JKq3W{4;O;uQB8afl<$$ku1AsR<;lAx-Ru+k_i zY`8SpV>S2+^B|g&t(kC>wJoDS;%9B!lENqv*@D7AN~}#`K(;~@24-Y?OkW7IN_rIW z(huPkhu1;iG!>Ppu(VDPugJqdcn#-fO!5b4*yYf=AJw3>3QrwtXg(>Ik z%)%m1n=(*g=vLny$e)DGui*hAgZSW%k5a2b4^3XGL8~G(6*vHdh8_l+IC$pGLXr#& zaxC9X4|1fZ7j$gHrPA&psL>79H5!kwW~HXaL$EG(g6={Rb=`(7?xCXQK_8^`y zatU@Fr~vT1)y=cCY0e;)Fr1MoiRhF!&ty_U+U!+8*?2?@tpiraNDLrnF^P}~9H4T- zcpeGU4_<%daQorK#kqqR73*Hzg*0^0HMp#}gYHi}y zB_#UvPR-3Pu9wA)B_w|PXauJ+VM5FR1ON0I;|rt}5ffNcF~Nx1Hk3jVW(uxQ%?_dx zvjKIMGg^)qx7|$v2}th1q=qTvBjh1F(D~vN6C7417z2W#Ih{ZfScJ3G`gxv=*E&uv zRBWm?d+_umPqkR*w1glA_6{6}3_Aua<#SlMFf^zYI(!=g3=C~#5{w`dBnQ2CVI-iC zVu6FY2sR9_0^QuG=tgxj$aab>HqWb_kwhh7^^Eb04yq7Iitiw14>K%C4z5IlN`Nj^ zV(V)9PLaWqa`IF^R5rX%rTZkM9XOGjm{l?*e^m z6gr~60TroOd(jgz?Mkrj$}EO_Yw;c|6c!|yD@k~XX@Fc!9OQCF1RJ3(yQCik`DjdT zZN0DwDuqX!B$wB`a1*&frec}knSgS9A(zR152NVBv7knfQ)MexTj*JC@KBLMhKOH{ z=|)FOBaY0dp-;x?cR~+qF$!(j>2ZWnht+s}gFJ}zyD76ozzhrw z0}$a!#GG72CpH@_w9lJyu*v4;xlEB58p&vGFeECZWdtzj0z!zv{2sAlz*aX%6RT$7}flZFlB-OlPJzg#+ zMdvF5yW%1{lh(jF#m#IqLYP%mdjTFoF|eIF2}*x5Fol^j;|P9khD&7xr^Oja)}R)v z#n&}2&AhgCX#plqQLhFBk~{#=1sLWEOc};Zi0>uit7l2R$aBp`B}2T1p`_t1f+G|7 zou&egbgk}voE0&Qt6f(Jvup^S314#MU#EC#c8(G~1NZ`v3RLsY%Qpl~b$9cmTHzsO zP|X|mm_Huvx4|J9f$+spY)$wKt6x~(>L)?L5w9>r%c@D5DaAFg((Cy!DxMpSob2j~ zLscnr;4yf&2h*S@H)y!)^G-y#af{<4Fa2UtMA;u?PhdF%1JRA2bP`7#Kq-?E!d&Rp8)hq>rAj>@G{mo7=IdyJr}KbA8e>9ju`AUgEO_yN=P?Fyugv-g-B2k?67&3 z*Vnj*@FOT@ohuOdC`-fx=BZGiPJe&rLPzcC7GQ6)NACz@rhe;f%FW`k9MrLUZ$j?oKRf3Eqe4_X@XmUOACs9dP zL+$A=0vC%=dStl^;H7lBNzzsOV1WAyLsV*q5g(V%y38m~$h$bq2&tr1OKU_M<$?qS zTge}aG(N7nb3SJHk_y2GVKctikJf|KcS znDctcTPiNiuAHO0ASpngGuC<`12|q4lz=k{8=fAe4u!y6v2|_cv>b)mI*UU>sZwuo zS%pvFZHW$D^vcX-E>i=$nrVw> zl5MV(Jr5o3H%xoo>K~M@YELNJr5;$7m@}L^*Jwml(jg+MIv||z)sLfhCZ>=h3`f2Y zj;vY2ZU;CG>%mk6ZMaBu(q$iVw;t9aE_`bXIA~arIxp2L&TLcihB@Q(@Nw| zS8r&>$kc$VBq<*ivkD*_36gk*1}#CVt8%P;i|miS5P=I&Z#kBTVt!>}PRo?qUrk*Y zAkh4#crfl;P9!*1k`cfYyqjb<>t@89j3N+PXtN$Bi(!Wa5nrp!o&?MKso9=a9mPis ze)b=#5aGm^q)L($1sy=Z2=o`9>Iwr7JZh~5g*;G@RbTcUM8WBhp$=1RFJ0w&h)hZEhD` zEexzy7_MM1{8>xWwF-b|z#**C0iPmRBrH+;$`(ne)CW70M3-oIxDi3j&QiVUR#}Y0 zz*epMo>^U6m|vI$umW^8e|Gq`&^s&*BKenb?{V1%6 z7M;!?EEtj`2%c;-aJ^12kf1sS0Mm22g+#%N6XFUE6b<8kh9xll2A9uzRHr-K3c%mw zQJscUwQ?nbZ%xcyc-R#mC&NWrawb4N++rk47G&C#m z<|Ii;y*=&AW;qX^G{M8--<@!y7 z=vRCJHPqz1LnoF9!Dlel-y;d3b%)@BRn39L5Y(l!Le#>&&-tVQHmlm5qd*)Y5>w*%k84m@4LI& zkE5zX`Ow_tD-mpA5s~`;1ZP%<{ejenR%GX)gYjKVyqdC9=L7$rP3Gg8r zL93!M$AAH=0ef$y5yaP!XI)=h2&=3@SiI5#iqVJ)68pe_9kImipd@#s2%#35Bc|<=^Vh&*&^@D-Z8v;q_h;L`2)Fz>sX?r4Hbsc)viWfl3FOhi1Ux3W463@U|G zVKyqsB`g<08TGQp*++RH;|We`27)ghTN0#zoj!Xelzm+sOl{)zAY*s-Bpf>jkO0mL z<>v!>23&C>2^=8eD8Vi!MQjm%FPu-4&+mN-uE;P6qLv65()3_R9^VT)uJkV_`65V3 zoy~AyuO8Pc?y$ZJD&*&j_`!lhtA9OyWaprpg3Xt(0JHWn2T%Yj(hyF!8pC&Tk|^C(ON?(d@^P*(v4ru}*A+$6Hia{3VZ@w948o-lj z(NI}tSTkp#ieiv<8*;grH4S@}wJ^RbMqQ^M2l2IrwpG`N$zaK&nU&1pls53N@ckyb z5HVGkm^V1D;=6{VXsiv-vqdkPlmzs2gkEChjJ(0b-t%clD-!0URT!z-Ai^SUA?*4D zwh1u|e(-(;i)7}Qhf8>H&>m)j2#b^|T}L{PiA4ZwLE*2H&bZtKpbwk%&YU4qWq(`Z zngR1*UuS)$jV6oW-1Kg$^^Me~CKhZS3H$Av1mRxmJU- zaag7ogebbW0nZwAZrw$J=F~}zl03-_^q(TZ%xivMn1Uslf%Q44jmv}{>Eyi3D^87M1wHJ=%fKwDhy&TB;W@VAf{SB?B<2AoWfpk zC=vmofMYygDbYLhZ`BV|LerBHLX*86&ft>5xQF&ET5LyXg|)s>3Lv>L9=eiLy?auC zpnzlh3c_lbcZt&u5Yd3i-hF}O-O@^NWCcP}hKu-LRJWE>sPJL2Auk97HhdJ8+z?4M zg#`QDaAwdK@Y_tjbYeuG%Yuek99n@%LQyO?l5BG>O*jzKPZP74aI0C#X%X6)@)5{6 zI%V@`SQ?m0yWzcnoF!Fp@F_-42}>O0;edE2@xa7Mlj2kkxwfW6%OOl5g?+BS8Aj2$ zW!T8oqKzWcwAq6_`SFZm4M%$egKC=FnlU;&ILPxxM#xC0ipE&;I(YEt=s=#yXhY{b z^$0J+RFQbBZ+r@`Dx6U2gLl^o%VVm)Fk%g*{tNHFUQVixfGHP*-SAT`G?#dy5^1i+ zw+sL~;CM6SRp98!K9Gnau?fw42xzq5V)n)K2vzJVJVT6}nJ-GZj_RP>P!maV^Z#Db zP>3#cY?X|mOc;8NeYG7MxU>u891TB?4->UlMbs8dn-E_FaOuC$H-ucnmBtOOGTcZ2 zD1AflZr7q5BW1Rjgc`DkkbS@#M{KvH-R1?VKPO*e>@r(1CgGqo(=_1Rkf5nL3YFyF zgfLZD+VQ>9g$Y^Wz^ie~U1K1C;3V@Q${Zj>d=~tgRZ#JfDULXS=TaCd2dM0=5${Ur zFf=(K*Vu|F5}AvcOb69{ob1d6Hlw;4U^yjaGf1*hJ;YtedV{Cu)IREW|v_i|<` zPMba*WWa{Vs!Sko3WP~94=t}C7cJJ8`icsLo!u{n0T}`RH9DC!*}qLC&cLSX6^|MW zhKL`}W)osIBvt1caH$H%S5eKQN0HC5;aZQJFv5%o03nZ6>lX0*ZqKz{o&`Ga5_1Ng z9Kq^|VXMD5?}`kBi@-CSqNi70UxANAxh#G&2@ zGHJzm#4|Ck9C2$ly(!DC2W*L!mbN==3kv8-iIugc5lo~|KjSxCVPi06?vPywM093u z4h~&#j!?PW#3IN6K_Z;<%b?iKV2m_m1hY9mZ_)t*QgBoDi=Tf_@V(&^dSOP=G&F(@ z&d#hZFz^p1t=Z*Om1ZU06hEq) zP^M{JEuLMzr$}pFf409LDY1P{20|Rc9d|6-aFK^tLYG8skHW4GJJ>y{tO*Wot?-!f zB^}>*=o=I_b2b$$E6?dg0EkIxX2%~gKpT24$Ns25ZDvOOU2A$b!e~H@q6SNdd&aH9 zObT`z&8FB!Xyi)JzK?Q;?& z_ULD7Cnb;zXj>5uQ_kW;l**ybLsqts@K0}6+(&T!vE<;MgEw8NI42IPN}X%1in!@r z$hoWgAVn7a`qA+zP?xZNf=PWUG!6KEY7~J{tRguGw3WFF8}N)C0MAs`t`;}z1_I+P zd~u4RBM=o&)pQwdKICU=kU`(XTyb$>2~+~=XI*0|5GuKqFb)gpLnZHlAl49ygSxDX zwtMkqlQ>fP>=9EHCcIf=-RgNtrbm%MPOwQ*qhw$-;S1@4%(iocyZ$ z5%4spR#YYJR~3D@S>P)~kW%osgi%TXU1S5D5C;5+q9M?J@um(Bcom10V3Uqzsnbt& zOcB1VAzvnEfJ!$I6`&49fL2?b>)}D)Az^!Yb>TGkC4JjOQ|ce{6gDi7CjnBR#jEBP z1cPl6KYS}IwB{IEHTO?8r<=BlU}E7~MVbs&x|WSAbXSCVvQR$RFhO3363&keVqVNw z;LtcuS%I!G0V|@#$|?65Nb#`>OA?~=G02eLZLEFd+nHe%5%1w|(6vY8BSMHd%)s3+ z9r*cTMK;f%#IZ~6^Er4iqi^6eA|XwP2);o;M-|y{)P$yTbP%lu3IL!!&E;#cZHNTP z=L?%Fc42{Ph>_yrT)8)7!vdF3%-npQqG<~Q85k?cgeC_UB5;yi=9UK+;y$&BfI@=J z^To`C{a*DNGKrtCn6Re_WPNNWY|cE~hvAC>#nC+o+H6QHdqtMiDD0O-uLo}vjqXrZ8E+Mz%e-84oNbE|twfM|GZ09rqB zA`*8HmlQ;><`dq$j;co7^Z;4fGiao7ns*3B%KK#1h#40BwX44>;J)Hg7KDwY)wc5-*X zJL0hD+rK2Bmkd7r2&-g#*(*XjNbU zJhhEeu;v_7A`P7bm3&wqC5{)JLKRPNEigyy!iqj57RJFfurour8+o$8xRgM*%V+@u6gU@H&!Cvsv)wqe zTFZsHc0-oW=#Y|0n>)mnLjoBvR1F;dCvd+4Y;_kZt4rTOpoEbz=>0J3fH*NcDq$kD z*2Zsa0H(qZde zgj7~^FOp1F>oir80KHJ(0(F3~fzs&2!gL_lW5`kvpAS)cab-lt%jRK(17DLCM;+am zAO@IAF|Ag>o(2EFT(41b>pZ{?FQ%1IPUy948sB0JG^3!*zM#S#5^RvbGgYC(q$*MI zXtR(YqEbb~BxOd~vk0*BuzRevL#G~@N~>uU5&|l`n#d{R^E;!*k<#qXL*u8A|2>_= z!N$UZpkD+}pFuh^@`RzdQeg^n6fz4STAb9tDhk^g;;^-B=y1QEECY}$9JfoqoHFWnQb-aPUDzRt@3AYGmgV`-@(OIe0q?40&rg2I*xdC;EqZ)I|suiT-3MB$0S1s6|Zy zzM)b;dMhhs*nKLTOre^5*ulYAA=?uCK*$~B;yFWAU_8 zV5!IC1j_EbuXCXhwIX<8AWTZq9dzqL10H>((evPfDZXUsl$ljH%*$OxepWziPr>-f600&fi6*K443a2Mz7zopoAg8k*9q`HeUe_HwSGp)G9$ z4ejOYD;kRaBY$w*X_IkRk3LE{&?NP_wa7Z74f>?{uHkcABfjIDOX3XY}mst zqU~43_k8(0t{MhWj-HRatly*W=>8++}0#a7i?YOkfVwbmXXAu16fl(s6w7Q_~W5c`tFmIxC2QnhcTl%lj+H?NoTe&)<`p5>hLJa=xJnOoAO`J%pahO>%Nc*9I;sw%$8 zEEKcc=yJYRP4TTZ0II^TYi<45jMf8iepDT$k6GHI`a7q|HE`OjnCK?Iqq-z11@_}i zDd;~5(mll=(zss_(o775kwpEO6$pw{EU!!!yQO?0w70D<|`Qay&i2;=3gudo( zmOrUanWq=!Rm4e==60v-E^3xYWO>3G%1ZDNTE+xWe-7pQLbGBK%jvTzYr&z4)bu?{ zxd`Qrsg#!+Q4U*4X>6rTSU@>X)c1t2JRzL28>cGyzDfD#G|IkWJm;IU+{HwS8W6ImYs_zVz>mgkg>Ev3r6Rc=%;pI`Jot3rtry@K+?xRRuYf;|$ zkn%^B^83=1exl}sd@Rorv-nl?n^%nXPEqPl45y51K$(nvMv+Etq%2mMGN>12?>3Y* zdQu*Ko3eN;rWpM;A1sj-Th6w%tdqgnQ;K-pp!Wld4O2t!3GC$e<% z3YPO>Q&FU+!eeRTYE)lp))u7fC2aQ!{dp1b=sMKze2X%rIAy!4l-naIi;1g4L=ImO z?Pu(u{zq)Q$a#?o&qd8-G3NTB%}1Sh^|%v(kZ)TQO1e* z?i|JPiVVtg`6)+sr92=q)5=}dotxqZXeQoG0wI+%XyP1{WekF5}vFvpXI>P zl=FL277&qo>cjGoC6uMG(O|`i><#;Z<&K>x|JX|TyBOiw!7P^*o=+6fydYM}Z854{ z{dx5@F%pMZarq*tNlv3|B|JP+cxiVJYKpC-ytIKbbs^=o3X~1IP=<;T{zrHqT10SR zH|j@--6>=W%MW}hE5%ce6>+&%p5-thw>VjDApEmhtoOYdH5J8L2ziI)pWmjuFY@7; z*sp4eEV?ATU2_btE)aRRd_BvH+E5m5Mp;VK9I}+TlVd4; z#Xi$XL@;zVHE)WMqzMo7Sx1dIgmP*t$^s&4jh3_AK*VUc@J57)?B}9)S@d2=WM&(Y zSNA_<{pKR8y9%E~3vYiXu3io0)hA-K*FI*s_h!n2wJA@Jr)(%ZpD~x^ePTVnBW9E# zM%$t}^<71zKAFyPxp2z*BATZ}&01@zQA7*B8Y~wXO4&;IxoS0*Yb>Tz#a^+YJW0HEXrXSuvsW%D+$Tz3TJPLa>Ogtu>skrWY; znwH3`%IlQPMK7bpsP>EXlF^R(1mU0EVihMwQu9D~;H8**^McfTJ&v-C$f)HJEZ;9d znbDbYyYSl;k^g^&QS-DvWw40RBhh|XU1}bSxwII_@)a?c!(zT2CQx%#jCrZba)ijz z{UYn~iIL2XqJEQ@(J0~bE&ZtJvy5_v$c@j$Rln`jG#9hWFWM~mIW?RdjP2HZ7zV!LF>y6U&OkP(Q{^OHn}q!+*?iAPP9;2;dfR){$=waKZ885Ey*xpa+$U zqD}RZgKky6^LF&TqwiW&x#p;!4CQsl=>=9KT-6v+pGc0hKx52I#4Fa>nOpa4=Uv8e zoztf(u-#dY`EbUmrT~|ngTv9{EoT<1+;$#a58QM14+8Ex4VwSzd^F2y(6{>-Nph6K zf0~li^7WaX)z3R2Yj>Lo`F5=mkWE`6t(0c@b;u9S(q|uzEeP2`ZV1^iKR3StL)guj z{lSo5)cg!GTK4G%Opt4B118J)xQ1rRMd|EW@}0rJJlTidnlHy7fXWiN9D}q}-cue} zE0^T*Op@=g+YNG|wm_ylZwatZzWpX}Ox{}rI47^+D8G?M)&{Q2g&FZ5z`fQe2$9hmK`%}j}RroRU) zao%MsYn_3dSc-E_9YibB*|-eOvYh9!5|sT;|0%#Z=j9o|H_jwx=2d4C?m0J{@9qYE za^CC#M7b){pEF&@nQyaPdENk4yVBO7%~aRTDmdHds@KU1_A}SuCeS>0E!Kb+u0DRi zpROqO@|Wwc&cI7oK4P5GlAHc`rR@kHR_WCOn4yf}GFYap>dehR@RgTwkoO2 z)C0;I`sScACK))X9GPu(o%bc3m9GppL!TEPLgugB9kRem4!q!>6(QXpG=(%aRr1=X z6?StCR;^nVlWE=pZc-0%kg>v5tTnj;4 z;c9iz53i#fb_F94i>Oq2POS-;ZrO|i z_Q<9A3A9(fGZfe-|3d7S-z^3lkn_{-OPSw-m4ouLD!^BA8|K3yxk-EAupG=PN8}ob zz-jpeMu6RDeivY-^LhxBbDgo%aF*b_gfos-EgOe9E0vmKI}@W1i=2e>A>Eiu;oaHE z&=3Q1*aiAFqG$)mDET=ve4Kod9vv@#u^5P!Gm!{bkd3$!C(3ityD~}k+W}0L!&(6` z@{R&lH$}p#LQys`3$olNZ$eg_PV-8ShC^0v$JkeKQ&x>&2&ygjgRH)NE2MvWZW48N zas|F|F#@t~*Da85cBD(|4OWtUr-HZg7W5-|(#r$VLy=L%uV*HDu$r zH$yfl^FCzL7*4)fI$hO#!ve?_>1!Zc7J(0ycZ+jMt!^RvmDU-_kZr0mUTr5QLB4mB zUhnWJ)2{Q)!jK=$h|#9yt$i!dH*oS(7Pu$gg(J&RSC%78?ygRdL!f< zmq%DN6LLsxdNurMFyyE_jN@nX=-ba*_OaUaEr}daidBPuML*GUencIgxEHwbPL+!> zzzgKzp8^Zztz&=$IdML!WXS{RmhEx?HZ5UWauqj_D($dnlv=loLpDmKSK6G$A`vxw zk5z!>47n6s?^Tpxz)L=0=;GuSj7zHgWl2=pCzq^bSDJ+gsyF|(D!hp4P}IKF@cuW% z|F1RvKdmyQ(C7Rt^W)CIIokFAUWZEIg8fmWWR-l76&e(QthluSWTk?bxl;MTcE~DU z($`hvsHwIqKjiDh;~=Yl!ZrN%_gp&le|-zGp-&^oMr&E8Q!Cc#d}A(TmtAn6()E)e zkRLVU;_LPS)2DkKw%Pk4Kk53MWX*uOOys_PD4bh%QWfVqby`l5En=A;5v{4 z%XEVbsmr}!P#~Ai$M3Mt;BtK-LqCnie3Rs}yMSbQ9+FQ@kuOaLQsw=rz&d#^HZgU* zTqP6rH_EkI0-NOqZva_x3+C(@Id1^)wVaj$oR!ZYK}D`O%ob3%;>TO(wK}+Q-u8nz z*7-c=61ZGh?97@6ta2WH9Y}U=W^QeE-rWXdIB#-eVF!_tFVGREb*TO2mEmy}x;I69_&+fUd^TYeT>pSMa1J|j7 zz^|?<^z=j5U93Chk!u30{N^&TDwM~r&eee@uH|sA^3>ICCGfjzGS}d9*A8w7FI^`c zzy#$iM;)W&%{Yh zN)fu}xDp%;oKOsU{-iR$9dJtdp6)rV)anPEQL2vxzE<9d0M05ydIIN^d+hcbWk4R_ zywZuE0vD7G?*JE->63x)lmm3nWn~hpTu~xE1FkA1Rp6S^ggsnWy3k8MDPPn8epVjS zK3to>IaOxUbZD8+f23(fn7X zT?OEgqSFPxDaR`VkCjHm6D6@C@Kou{8U3y#PXYc=R?x}Mlxf_&pDXeCfEUW8MZlkm z+#dK#nZr4}RGx1J#;I4h!X~JmCctEM9X=$KDeBK5K#V$!=2O-Eb%AN>D&}XbI*Eas zrB)aP#Hn2d0dv(3TygW%IXi**Y6O>Iyn2fnlA!v>0gKe(9|MW%<2t}n^?Y7nnR*=K zRI}9LPMqyf2VfbB{qulVb5wnYBRHm3<%&G6ev%HHP%ARiPpUWQ+EZ#jHh5Z{%msZ$ zZ6kINwHH_9Idvg+9_74RnC6$%>ji-C)D86TW%cCez!kOKI^e3>Xe98xI)%H#HMMaw z;D-9W5Ac&3$>9C09;px9R-bNz+|mQC@@89%NWLJiRFPT#H60BjpLR$PaFF# z5Ue#t$S@COY6V@Y}cmk0(NM>F)BN?%>#g4+9En~w-#Ot*rOF= zPVChRu<3nTFoU{Z+nxv<&?bxqzSJHy0uE{pM*1tQQ(@qc78(W|)*7+DBih#-%Teuj z2IrVo9672S*Y1o1PG~7~!AY$XaZ0Y>VE#dy!^Qriww6J?p}9DSpR@-Y#Lrq}7vQF5YyfU)+nFKv zwPVYH2U^u7z^_{KYQRG+hN*b-kGr-r_Z5##_K;d1funqMS%%=N&+xZ-^)Ckr2BHMOx7h1 zcZ&XICJ>`vXG%@g_oV^T^l@x+x;}Ok5UaOiYRu5hBEU?&TM1y6KE4t#Td%tin4^DE z7l_jzOb6!b`Y>Rg{y+id>#HgQ@%j!GSfIN*0SWpUrs*QxHx*c{ALMM8=mVL2OZ9U) zuuMO-7+9`fJ%f(irJv!*cI(M(Wsm+@9I#h!#MtiB3rzv`>v_U~FZFvI%UAly_kctC z9PX%x^@l0I5xpaELeER(Nqq@BI+W)u*Wckh0nxx8dD@l)p5@6C2rSJj*8(=?ZA~xj z_Su{l*yD4g1F+YpO){|GXD%1Xll(_|0Z;QcWb*xn5XGSR5R@J}-OaCJ;Jo-%M#jQhM>jWM>f&1psm2RPj*%h<*m(igxCqXhjq z)A*y3*wfel6=+uUfJtpaQ^POJvfj7^^a>Bc3- zJ;S)i7;Q0DrvqD!kr}`?qYfjTX;i2PWEoe5%Z=`w^d6&3B(T?LMu+S(+H>yvje{KL zS4K&O_>hq`95`$={R}u_G-Mc$8b`QDjv4PWM#qgm1_LLIa@B!zMkr_Wjp3pv&Knmv z%?rklO#R=DVmpC9jA7k?XGVh|z;mM;tGqB$7^**wi5${jMk43_(g04X*K|6o3B>_=9s#30;|pE-GMb`59a4ubJ%(H$m%*PdgjppiLV3YYG6-YCO?gG-yVCKYTvl_Rq40Aq%y2T8jKew5S8v&VSbO?}T zcIyaiHzg+Y4s!wHu+vP60(P4lIn6z$)EC%imaYNpH>0_u957qQ0$-Yq>8yjM-(27; za|wGmWTtWuht1THz)|xpj{2DS?OVWcGm;~x z9XT#a*R={}A+n)jxJ-5aKlRRx_1Cu?!(LFJq^V}Jx zdfK)Irg;i6y{CJMux701t^=6iDN`Sq>4~of%=Qdo4|6=FxrfAgZl?irJ*iwB^E}Q~ zz6b)LJ;q^)Cz;8<)bo(L=`zoWTEKEo z^pWY^0vkMMs{$K6WflROJR8_%nkR~(O81N$18ny6VgNEcAFT$qc-|NaZ1t4lTG{6D z2?8=bW4J43dE&x>?Vbt!fgPR%esb;fM79TZdAeX@$@P$N#U=gvGG_%JC}hbg{Q|%9 zC@rKU`GNmdzho|Yhg)#99`|Xi?v`{+m-o{lCxcQhYA; zH$!irhig{6?EKlEOa05xyZ>dJx1hJjX7@?DFkdsf!YUWaMPD3xceZtBn^wxDezRQk z@8zQJor``1^z3&*4*!3eOZ`cr{(sMh*j(x-=Az#&^lnM~p9)O2gf-zkxzv{e`wgl- zBs??fhcn#-}VE#RSP&i&C zgV!R31_VWhM+^@L95D)yD})UV4aVaU{(SuJUuxhfi6MjdcA&t~0p2$Q55Vup1P26- z2n*vQHQCO@0}ubGD&Ba7CnCZ_F)HizSKhb5_}3ES_WmePkbiCOV`KgC=$Lryv0p%K z42aKCSTB#k&$x$pTVMt6+ZV+H9K)qR7~u&BJPd}nXX1570XXAJ16sDWl&xEIl*BY7 zJXr8SGdwxteT#5FXTFV+)jPMxyAmwZpyAc3YE;A=Cz zU7)}IqXIc(@ta9aypKcRg~a}KMc?9WrLSI9kH@}-!lECZLlXl;8N|=g_752xFd%SH z=qr2i_??K7Xy%_kTAR(;R+b>#!FVDucu0__{_3~9gT)IzS$_bA92y{Afr?&32lc~` zo(doFq0(2~)_FtXxp(N1;X?x=MhuZ8|KX#H>*VMZZBw=Bf zX~n+KfEZU`*r5IxSa>A6fd-c)e*{wU$GQyT!+rkZ#d@&E&*WkeTc>;=)h-A2!;9@l z+GqGpfnd7~ciKg~6~Zq5v!$@W{us;u(Sch|-U8q=&U++T1)KK%W?dF_?J|ikN)m3% zU)dkF>}{6Dwd{v|Ut{ZVGyV_zUo3l@rR|Cq?aw<~-2#Q|{p(Ke6`SSliWYO)_k>=- zKYRW)Eqj~mEIanW!ydog&PUKadHFKjw!dcC+iWeYykpF6Z>gm~6nLv(+gG+4w%NqG zz@0{be)KV-8oU+|sYs=ndX=}iC|2gN6|9B(pn^_HpSU18pA6Rx9>Y`&a?8-wzvDW&$s5Vx9_iQ+TSbe`Z?#n)3UeYXWy6FjIs?a=IsB= z9QO8ozs-g@>~r@2bq@Pw*7pXRH*(n9ezVn=QQ)n#?I!zsUlhO4;K*6uKDYS`>aa`O z-u|9B<$r1a8*CXr+ur`3H_NiO*Ey<)Bd7ml7&CWmd;9xKl4b9<0%MQYrrk~|Y_s>D zX?>5%EamO5vKOzUZErI#jI-O@-@|^f>_c8zdJDFl%|bcs?e9|`miE@S;5~t~$89T$ z!k%r}^B-E%du3>8FDrZTO4|L}ir1|EEi+p!+4fyuX}kr_m50qrmc3W|w>(|iTP|%^ zv@Ycw|C_nkKPclhIBi&l7IHKvHOs|*Zym3}&$eT7vHvg^`!)5v29NBGHy8U}mVHkD zEo|&Hn8N=+lI^g^Z*yQS{g?U6YxK;nXtj~!REo&OzO)sgsBC?+nA87Jx!5nW>_=7n zX9GF==efQ2Wv^L;iGiaVZ!U0D!oRZkXXl^2uDQSF2oW^+{CM4Ke>_LyIs0dN{F{Bl O8s3_*ISg`~O8*6+7f;Lp literal 0 HcmV?d00001 diff --git a/tests/hellocobol/hellocobol.c b/tests/hellocobol/hellocobol.c new file mode 100644 index 0000000..5a314c1 --- /dev/null +++ b/tests/hellocobol/hellocobol.c @@ -0,0 +1,215 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol.cob */ +/* Generated at Aug 04 2025 19:08:23 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol hellocobol.cob */ + +#include +#include +#define COB_KEYWORD_INLINE __inline +#include + +#define COB_SOURCE_FILE "hellocobol.cob" +#define COB_PACKAGE_VERSION "3.1.2" +#define COB_PATCH_LEVEL 0 +#define COB_MODULE_FORMATTED_DATE "Aug 04 2025 19:08:23" +#define COB_MODULE_DATE 20250804 +#define COB_MODULE_TIME 190823 + +/* Global variables */ +#include "hellocobol.c.h" + +/* Function prototypes */ + +static int hello (); +static int hello_ (const int); +static void hello_module_init (cob_module *module); + +/* Main function */ +int +main (int argc, char **argv) +{ + cob_init (argc, argv); + cob_stop_run (hello ()); +} + +/* Functions */ + +/* PROGRAM-ID 'hello' */ + +/* ENTRY 'hello' */ + +static int +hello () +{ + return hello_ (0); +} + +static int +hello_ (const int entry) +{ + /* Program local variables */ + #include "hellocobol.c.l.h" + + /* Start of function code */ + + /* CANCEL callback */ + if (unlikely(entry < 0)) { + if (entry == -10) + goto P_dump; + if (entry == -20) + goto P_clear_decimal; + goto P_cancel; + } + + /* Check initialized, check module allocated, */ + /* set global pointer, */ + /* push module stack, save call parameter count */ + if (cob_module_global_enter (&module, &cob_glob_ptr, 0, entry, 0)) + return -1; + + /* Set address of module parameter list */ + module->cob_procedure_params = cob_procedure_params; + + /* Set frame stack pointer */ + frame_ptr = frame_stack; + frame_ptr->perform_through = 0; + frame_ptr->return_address_ptr = &&P_cgerror; + frame_overflow = frame_ptr + 255 - 1; + + /* Initialize rest of program */ + if (unlikely(initialized == 0)) { + goto P_initialize; + } + P_ret_initialize: + + /* Increment module active */ + module->module_active++; + + /* Entry dispatch */ + goto l_2; + + /* PROCEDURE DIVISION */ + + /* Line: 4 : Entry hello : hellocobol.cob */ + l_2:; +#line 4 "hellocobol.cob" + ENTRY_HELLO:; +#line 100 "hellocobol.c" +#line 5 "hellocobol.cob" + SECTION_MAIN_20SECTION:; +#line 103 "hellocobol.c" +#line 5 "hellocobol.cob" + cob_nop (); +#line 106 "hellocobol.c" + + /* Line: 5 : DISPLAY : hellocobol.cob */ + module->module_stmt = 0x00100005; +#line 5 "hellocobol.cob" + cob_trace_stmt (st_1); +#line 112 "hellocobol.c" + cob_display (0, 1, 1, &c_1); + + /* Line: 6 : STOP RUN : hellocobol.cob */ + module->module_stmt = 0x00100006; +#line 6 "hellocobol.cob" + cob_trace_stmt (st_2); +#line 119 "hellocobol.c" + cob_stop_run (b_2); + + module->module_stmt = 0x00100007; + + /* Program exit */ + + /* Decrement module active count */ + if (module->module_active) { + module->module_active--; + } + + /* Pop module stack */ + cob_module_leave (module); + + /* Program return */ + return b_2; + P_cgerror: + cob_fatal_error (COB_FERROR_CODEGEN); + + + /* Program initialization */ + P_initialize: + + cob_check_version (COB_SOURCE_FILE, COB_PACKAGE_VERSION, COB_PATCH_LEVEL); + + cob_module_path = cob_glob_ptr->cob_main_argv0; + + hello_module_init (module); + + module->crt_status = NULL; + + /* Initialize cancel callback */ + cob_set_cancel (module); + + /* Initialize WORKING-STORAGE */ + b_2 = 0; + + if (0 == 1) goto P_cgerror; + initialized = 1; + goto P_ret_initialize; + + P_dump: + return 0; + + + /* CANCEL callback handling */ + P_cancel: + + if (!initialized) + return 0; + if (module && module->module_active) + cob_fatal_error (COB_FERROR_CANCEL); + + initialized = 0; + + P_clear_decimal: + return 0; + +} + +/* End PROGRAM-ID 'hello' */ + +/* Initialize module structure for hello */ +static void hello_module_init (cob_module *module) +{ + module->module_name = "hello"; + module->module_formatted_date = COB_MODULE_FORMATTED_DATE; + module->module_source = COB_SOURCE_FILE; + module->module_entry.funcptr = (void *(*)())hello; + module->module_cancel.funcptr = (void *(*)())hello_; + module->module_ref_count = NULL; + module->module_path = &cob_module_path; + module->module_active = 0; + module->module_date = COB_MODULE_DATE; + module->module_time = COB_MODULE_TIME; + module->module_type = 0; + module->module_param_cnt = 0; + module->ebcdic_sign = 0; + module->decimal_point = '.'; + module->currency_symbol = '$'; + module->numeric_separator = ','; + module->flag_filename_mapping = 1; + module->flag_binary_truncate = 1; + module->flag_pretty_display = 1; + module->flag_host_sign = 0; + module->flag_no_phys_canc = 1; + module->flag_main = 1; + module->flag_fold_call = 0; + module->flag_exit_program = 0; + module->flag_debug_trace = 0; + module->flag_dump_ready = 0; + module->module_stmt = 0; + module->module_sources = st_source_files; +} + +/* End functions */ + diff --git a/tests/hellocobol/hellocobol.c.h b/tests/hellocobol/hellocobol.c.h new file mode 100644 index 0000000..592aaf8 --- /dev/null +++ b/tests/hellocobol/hellocobol.c.h @@ -0,0 +1,31 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol.cob */ +/* Generated at Aug 04 2025 19:08:23 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol hellocobol.cob */ + + +/* Module path */ +static const char *cob_module_path = NULL; + +/* Number of call parameters */ +static int cob_call_params = 0; + +/* Attributes */ + +static const cob_field_attr a_1 = {0x21, 0, 0, 0x1000, NULL}; + + +/* Constants */ +static const cob_field c_1 = {13, (cob_u8_ptr)"Hello, world!", &a_1}; + + +/* Strings */ +static const char st_1[] = "DISPLAY"; +static const char st_2[] = "STOP RUN"; + + +/* Source file names */ +static const char *st_source_files[] = { "" + ,"hellocobol.cob"}; diff --git a/tests/hellocobol/hellocobol.c.l.h b/tests/hellocobol/hellocobol.c.l.h new file mode 100644 index 0000000..98b62c5 --- /dev/null +++ b/tests/hellocobol/hellocobol.c.l.h @@ -0,0 +1,33 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol.cob */ +/* Generated at Aug 04 2025 19:08:23 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol hellocobol.cob */ + +/* Program local variables for 'hello' */ + +/* Module initialization indicator */ +static unsigned int initialized = 0; + +/* Module structure pointer */ +static cob_module *module = NULL; + +/* Global variable pointer */ +cob_global *cob_glob_ptr; + + +/* Call parameters */ +cob_field *cob_procedure_params[1]; + +/* Perform frame stack */ +struct cob_frame *frame_overflow; +struct cob_frame *frame_ptr; +struct cob_frame frame_stack[255]; + + +/* Data storage */ +static int b_2; /* RETURN-CODE */ + +/* End of local data storage */ + diff --git a/tests/hellocobol/hellocobol.cob b/tests/hellocobol/hellocobol.cob new file mode 100644 index 0000000..94d0e7a --- /dev/null +++ b/tests/hellocobol/hellocobol.cob @@ -0,0 +1,6 @@ + * Sample COBOL program + IDENTIFICATION DIVISION. + PROGRAM-ID. hello. + PROCEDURE DIVISION. + DISPLAY "Hello, world!". + STOP RUN. diff --git a/tests/hellocobol/hellocobol_if b/tests/hellocobol/hellocobol_if new file mode 100755 index 0000000000000000000000000000000000000000..5d4554e417022b95ba665f294a949a79e4cb993c GIT binary patch literal 90920 zcmeFa3wT^tc`m$1qmgBMY|F8eI5)E6TrAm=JTn^Ik~r~58d<`!q-dl>A;69-jcgI! z&`6FP5(v4Fn2-|ag}@<@K%i+06k0ARg*HG>0;Meh4m40Gp@qgSx0JvE3dQGrzi+L* z_l!nK;P3PQ&w2igA8YS*zkTal-)(*SHQB!Iib%wJWBcU3N*=rJxj|O@6I&IE+ zXRlM|)H+p2uf%_wuk?Ai0*Uz9XSD{MD4s0$kV!9no^A5kr){0jm`N-5c*Bb{);=9G z4whqIAK9hprO&;l(tB;?rX0J+at}3VxzcBi>A!v2@o{YY|5=k>`gFBA$39ET9XI7l zpIxS$eX%ERe1B#-ogvd+>HOR9Uekbm z+I8POJ$0}py?c71VR~wIX}Mv!t)-zQ-B_4wOi345jBRlF_VtfA6*oJNFwT~@=?pWS zKgJOb`Q!Um{AZZyb6wqk@VP(#_7Cgd@PV(kyuwY)p7N$|Bgxr}|D38g{-2Kj{B6*O zW7m**Y&p8toLkN@kNZ|ux|<@@oA-?Bb+ z@SlG0zWx9D$P=#|J^Q-XyzR!)dTp3vb8R5>oWMK#So*6#fpYQP$XG6(YwVU*g7BZ? zf4ThihG&^N_^ug{eNPW{12=W|Hvxw-(DsDO{>J8y-I&>T_yid zSBalRJvD&bn-jQ5 zJj8EC$~-p{e%xRDy$bO)4t7~d{dK0EeI`Hmq5M4W(9GPdS6CcdSoA!{>m5GeP2?By zho%aP`Gw&Fozru(`QfpH(|JuRn=(Fk&|6#>8_%PjnMH@ese(7VG?QPL8kgYs%sj&r zQ-yg67xIhV_}J`tep-Tu5S#`k)3TFei(}JXeqmv5K?@(wk6-5<$uAV9=4K@ZwU15D zA0Csy%-qD%bly8OJ$I1BX3=lWG&`mBvDN9ZqY^ngXF9MrH}5ShX?0`c%7UascDB9<_;3=ruja@w-$-jH?Ma9 zMJA?Zy`@5a0_7(#G_4VVgN1^9&(9(?&s1k$UvEdJmuhTE`>(-Us<9c%7Af;D8j7nl z?-ijqmSM@LGa@je%m3jw{Q=NkrSrQcZtK(((09~%hY2s8IR(^N;XK5`_}O#G;`S#E zTz=Nj5jOsQ6aPd>e2qC*pDc-&Lj?8zyd?e)4ZJ!;T=?1gZT@W~@sF7NZb`h&-&PX; z4U>OwNxaQJS`zYiJ_U)^(8>?^M0^xXc)V#UeFdv5)k>d!bQoBtD0ColXJ{%$&VFWwkF?BI9e z$&>h9_+y3%5+@#)@V_(6r8@D5g#U$MF42h(O8Dyxb7@Z8FX1mSOwc)TkA(l0VJ^{$ znxLPvn0q zGv3|Ie)ZJ-y64!_J)ipF>@gKopL}w1)45$i`DZr0=s$1X zGlH_t(yo!7TlbuaoKDZN?=HrB?%MMx0>|qxtm6~-^JuIA`64ev+kX2jf8u&1W`;*{ z01EfmFD82Ks=TmPYU#RQTk?_HPcC=#+`V`~b>?A2Iv?jBbbGstx^MdR$&(n@;fFbO zJ$DUXux+Ae*H$UL>GmICl>k-lH80D&^fR}f{QjofK8KiFPyX*sw>`p_J^#kOZo2K0 z%y(Dpi)M`LZe70C*>wBwBKEP^Bg}%IH2uB%dhQ;+payy0!@S1^t8d-&F0JFkfH1`0 zjnJ)ouZE!{U|ZkpXSw z2~?tuY>|TBI{sc1?7REI-AL#=_SEq^w1E%$`A#(ryjmOhLvX}pNAW`~c)efnG}Ay< z3hwy;PTS*knrX<-w2hhW-t)Iufa7N)kzM#3W;*uizmT~?0yEU0#PNUnB_Uwb@7$*g z5cg|2!}Rg%$bd=sS8(xV`}ksQ{>$i!PQv-x{C+ln9|}vG0(F078h#7AeNY>I;}5mr z-}TGy(DLh9{$*v$U&ZpOz7D75@r)L@Jp$wf(Aw@7 zNNRz%vB3BLQwof*z|(lg)ZBiG7Wfau=?Gi3z!VGoB{JyzZbs%-fsmftJom(SJeH|+?jClz=6JV}1_9*l)y?b@YU^*4clkGsf#m8*js zr|inz!}PmiXZVFL*TQdN;eY)_xpDnHw!-m;kc4?T_JGd(*AS^$)AI8y|9ND(YtOf_V~^jAsth)5uI3uwea;#_fL>0OE_7XhGkR~L z=UD82B0uo?2l%)<_6!?1wyy@S0{zGKZRq^NU!v!+eS^enhpm8{6%Qh; z6aS(sI)|`A+F80HPhq-_x1&w$@lS8V`#1Ssg68T_>iAFoH`jKl18~8x)^fJi@S9 zM%uKI2pj3rMrKxPh&?WUF~?dmHKr<2~RUHuPi zk>hFY>Njgv>FR?>Kd}Qf{53b!@%JG3Fn8>UHCPRO`!9^<_@%4|yoHcb$N!MCOuk}p zl#$09ZL#A|fL=WI*zubX0U8m!2y>yn2)Mqc#w4^Bhx60Za}cJ@O?y+5jd*bqNw2rt z$t)dm6KOY^z-P|SERzc@ASigXSQP^jq#&b4-cQ|vMo!P-*MB>-g zn;Y!QTEgp8~CS7f{;EpZi-4%0$tlI09Q)ovMIV*a} zrN~Fd@8177dGby^e|+-f2l0Fe&rv+z^vubVpT+YVAd`QE=a2B*YPtp#C%?!ILr!G5 zCURDMP4zvIH8qR}J>vABj_sO7{+7@0I2V}w)#!tq6&q{1H*S0JruElX-|Sp|<|R9u zE|6+iz6<}KL_UyR{x5;Im*W4Y(B6J>p&c7*-cXU*xb1b(%trUt%C3!jD{|{Lx`@ea ztm)WTomnsXrF)R|2~fU3lc;!OP5;Jf(JwuO;Fl54F*qoZ*;tKK2448RFas~lzzZ|* z!VJ7H124?L3p4P-47@M{FU-ITGw{L;JlhOBX?Umm&6E5df7b5A>hU!;u<`TlOd#bC z{~*(qpS3Glt-Q4(DNVQKt=&jzy4CesJCV}#xM|w4`C0oWyKa{Eha_Eo*3QY!n@xu}R(=Tx8~OX`uTReL`Lqc` z&M&{GDFDIGJe)RDkfH?sK5Y6+g*JbXxymnWOTh?Jt#jPiRY3eGKhf0V&B{NZ|BxT# zmGYZ61Gn)mRc!d#aSWRNm}tL!NCIU%HY@bN5`NMYgm_QFb{(EJ;Rj7R1oDzzC$0T| z|Hs;`m-eJ;lg6B8o)?*Ci+OgN=auF;X`V;S^L6I=2j=-+^ZclJK5Cv{HP3%D&(eO} zna~)!4%VK?+7H?MHr?6}S^J;TbZakEnr`iatR2w4&d!V7+T2Jk>-N#Gyv|KFH9|lu z^4CODvdO(>A%A3whL~zuxbFqAb_y!E|gtldlk4}5kP1-Rb_t_&W8YY7J`e@FGaAzp~zd)?f$nm zGj{*m{aakx_IC@qtmRLb{@!3WY)Jua&jni4{Qqw7jotr;4Pvq3lHyJp5!#n(-Adv4 zAri{sf8^$h93Cx@=gV(<)LBCAO58s|yOF=g-}r0LW#;GPS465mdLAAXYaaa=9+hkU z4obR;>NQ(|T`D3~58TJJ*q=a;7oA}Cx~;6fvNA@4-01rmwez%Hd{oD7{!2U}RS%&| zbP`d~Gq>#H<4^IY^31I-;XBQPV&|Q5Gu~tI*iS0gvPV__gTen@x$zBnI#r)!=w}+L zta_B8pKGYvSyN!}7nRX_@kBpw!=rizfBpmi*QW3%%C5Ww%~VuYz8c|*>dIw?YGMyE zR8v`CC{poOJl45Y9UJ>FKkFYxT2-@wf9iuB1on4H6)see78$cU5R5f!VhLMEqDAtU-yzAJcCDnL{!K&&x9aFbLct6yFH2U1dD zfbZ4SfCgvn)TraEsg&9;h*r_^e%vsi<6d_y)?~xFpS=UuN7j7} z;Izq!KE$plC`8Xgi|gO^3e*rAsjT4zt@wio#jdPe!(KY^PvaDfT~)b82IFjaI}=AM zqYcOzW%l)df@W%BFRiSh)+_#FcJF1CryQ2T|M(GvUap~v_}iNi@+xbNu>JT4KZ($_ znpU-O9yaf>vC3_%q#Bcx$8*E`QFZKKW%LyYME@uLtpCL|INoEEl{LI86<@@>#ST@j z=XyEu6Bu3WaOEjXs*Zn*Wv42)orX{iD&%TaSAU7s{t}hMUQrqSM^<|_(y`XuF6)1^ zpF_E)vU--afAD-{dsF3FuDKKM!Ip`=xpEVisyhBxSe@AKYAEh(db|>mv3FK(`YX2f z!9PUe{gvxK$G`w)KK4N6y00>@=l2nKSLLQ3FmMGnQ0(26Yk$qaL7=|agQl^~Y?7r< zL6=$O7M5n<3wUmR3V-;Y5$t|-^*0#J6=GeCeg@ACUqY{9@2iY*H0ytGI|!@TKUCH{ z0yG*Q#Wsk2q4IPFocN!xCy!TddK97R_(j+zu`gC`dKZ#v;&%eZVqenGw)jWij?kAi zX2>oN_Ms|B|{O&P?p3qQF z{JX$~v9DEb{t|Ky#z|DizFt}L1VW?n`!T54H!5p5>(|CF1LVfOsiBGZ)cpwkvxW}G zzem9PmWHO|hyDnmCp9!5e}v=vwuTntUtUJ&Un;9PU(4~&+ivf519VXz1qn6PF?M?;3h-{9fSV*!MJaOZ=l92z_5e zx5jsMBlJTJ-4_4bixB#ehHj5Hz8s;aHT1f8`VNHtLqm7O|B2&!MniYT?_}#g(a^E@ z>p&sIeyX9@$M3rWp~DzQ$Tj-4&h9<&vtN&p6O&cBH$H_u z8;fY@{`f;5MW{kU55>R#7YIc)^uhQqfEr?z8hSYX5so3Ip-19>bR$Al8v1PfE!QEm zMnjLspSc8~Y7IRR|2$A%Y@LRljN>Ya6I-vLiu1 z>xUTLshC>)HvH&z6pqKDT8Js@Yp@1~W9P+cey0i$ev(^$du#*ibK>`Lr02&3r&Y)Q zj`MYahT`$Ja(yn;P)&RvxAH|A+8S?tH$po!v@KrwAVReg}yT;jY3ISwSEE+-F`mbUa-5G0()!YFb5bwf46>E>l?sMWF_y|H5 z#|%#Uo81UqqH|Oeciw~0r5f56{~3F;M?-GB@G*ogi*06=wefFopI#nYH-f<@;#UC6 z#rA5bEq)OpDHD@@x;Oq);)M=P>xtL5Ak-NX{5lx_B6nt&hDPHHY$2Fd~^*$ISn0&H+}%2VGUg$-^DF8qM_yZ zg`DauHFPxo=cgldm4BI{>Tq0GQ zei=jd_&2yD6;%cuf16cBHMA}M0Q*&`AvYeo7onJjYU77Fo+=F`;_o?%(3+}s_n?8c z_+#%ws9HmN<7eE5&{_@k#Q%}=w@yQY@eKA}Y`um?<7dAXp}2;wjX%K6y+K2V;};)7 zXrqSa-mPdANwR74KHo%&7rvffPm<}fK!0&X9 zZOw)aJWZT!V_wo(v-up78Ed0f?t<8qv*r{NYq?3pHaTmym{`lBZX0I}r*EsPU=8;) zuvXMN&KkCv*!dt9HJo8$2ZPwOv*t__n+Rf?oi%5f*qR`=#aVN}h`p?7hY{vGX?eeT+TN#17in-vi*R*=}MJHuh7@ zd%lUSv9XUb_5u_8^e*l1X`g58g(miK6T1~q?QDtrNH-eA`)OYT+FDb$h4E{nPhdg$ zldPB7tW{35ky)Ftf!6HY!uYk(zYAxbvRNyf=+(^H#;m)xFn(?HbK$JNXR}s2(c74H z53|;9Vf@aT6qh;!PJI^;@h{Zq;HG{_MC&LFc8o2feMIHJ!aui%{Zo$C?h zuBjpTon$os0Lc)3&idyYk$A2qp1r{)p7oVKM)ZRk-N9(mXlL$0xif1~>6wFgbIxj9 zK(2{3r;$Urnz`icJo}1^5Iweb^K=mPvtdNNbnWKXGwL>0A0@c+-venfb*BOsxP{nlBS@pJ%bN2PbT-R1@?y^y5@(l%u zEMN3(%tPeekqwbaM4tQ1?GkE`&bt4BWs0OCoP5hzih&ctk+;7c13&NZ?=#0%_73<; zey4r+6JYArpNdHU2=o{{avE!{*tnGyuZ`}tv9Gukv70w?7!_~oIgONh#i<)ub;X+o zx4-5RJhyFmAA7v7CUiM%-y zy~de&8D*8?SE-=PUKaQ=xb{nXXhxgy$myZ4gNcIH(_hv1R{dJi2t@t zBb>->k?7+r^j>7U1qE)#|DA6`;32%cmx13w;0t*9d;E9m{v4s-H`P`6Z)j0|k=rBD zb1|Hq-$1tiLV;hhhQ|>&A8T+P{_p%71Pshv+IUXEpITju<>Iio{c|f;%`L! zyF&RtVdB~9r%gOt{dbLD(W*V|on8MFs-+E`mNoH@hZZ&XM(i;UkcIh*r%9?EMV95U*s%*?AuUc6YIqdx1 zY;y;dZ8FI*^z5BBIhg%)sPtdiCklgxwun>INpoe!1%l}!#xvpf88R(74b%B)mW zPneZ@PpGyR+w4JYkA!MFYLiQ+C8+INq3nOOTK4F=O*>5M;++PaC7gUp^UJ<>@y;LN zDzhkF#r!$<10eo@Ry|jA7Iyb4K>qWP6GksJ$W>!%d;uUTU)kwcQ)4?Jk?V zdTk#IW&g|7vWI5miBRib*8DOfKR5B5kqB@%aNCL*u_Q6p9VPkWjJTRRymJyJnKLqA zlUHBWkx*^3HoK)>od$cgnoVxbONZu`c^L`SGQUbK_xQD3AFAcfP%Uo>)$-9*YMJ+I`IyPg#r!wT z9T1^*pN6)|H%xx^{nwgb`u-~u&l#wPWT4y(4En8}jU4>3)t74Swb9c39BMUV^0U=N z%`dHvnRvGPE{$IaNq(!ZHM!a9mo)dYj`hJ%eqNgtKriiOfWsaOWv7UuZ1&KgzHjn# zP`#R81{F73mV>%p<5vvIvfR$DvrO)<#2x2%Ozx!9kT%iLb1=;!4JFHBq_@@8%^)JT z^3SJj?5~~1Cx(IM>V>zm#mxZ?-s3$DD66o$FS4zQj^X;H;kJA z5ulTN%Ov=&_Q(j{qa@r@yRY{nQU@R*L?YWywO%OiNxVDBq4N+pQ%jxjOPv|HiaCD` z)c_KI#CR!nCMX*Gs;hs3s4C`fO2^-^&RzyhI?Z3M#WflHH|o;vO5~2*yB_2o;}gKL78s+qt}udR$k zH(s`$fnbW()nX)Pqu}~2NDWV3ymaz56i?npq*rT2I=P!pFR7s>TmzJbr<&R3(dleC zHNqL*YM0$GbWR9 zR&jFg7EL|7I9emmX>`I>T?*v>qDG8M2fE`7SK#8@SO~B{^Ozjy(2g^Dw{Y3^ZhK3I z^x-^{RXcn7$GDi=!y~HDxbwq5TaGl@uW-#6t1wqHzVFGB2X|)KNd1A2c zoJexZP~_o`7&|z+{_5COGMJq)C%MJ+V%M=-B7ozh?27u=Lt0R=?M)q+;szu*OaMDkSDrOUeyPAwJ~vd{eVB!lCHB^a(8oNAbz zTg*3(vjdAq=ktZe!w!xIaYnb;0K=YHMBr>N5lcY~>Om4PY^V|-QMo!08>fy8UYf}3^c2OY(>_Py@D4YshsMXv!Zj4&s84;W?oKw@N;I#j zu_(ZGFOE1gyHp&(_1P^;pz+VI$%e_P<@|*9zVvQ1XSw9MbmKJEY-KcVQR7!wT$q|Y z|1H2-S>1ckLel;=rMl2@b%#UaQ z@R&I0hq1w}&LNtLR7KuVSy2@o{qd=%o_6Y%EvIeSvSr(rEtQd2G`cwwtAfoRvOsYh zUH@XJfg{zE8aEnSzdsgjZ`V_={+xbrQQ$g%~8vB&k7ec5Vrkzgr`J zR-E+?jr}j@mQby?Xyh%Ck3&0-bG9<_J{e0z^(YkUuY)R@J&jdGfB99NQyn5FZp zzY}!qpEc#ZT7}L;^*cDa_$@)MFKMnnd-hz9X|7Kq7Z*iV@#CdceL^#R_E|IinP&PD zGI2emChgURP_N#jxxR&5>q5Dz_roO+=A!yO41FM&g!?r6Q^+2zJ{}D2UXB0$vp05^ z=K96+Z0uIe{@RL?#!lWOD{(vG!+pklZwigy)gFX}@BOj!FwQLm z=MTg-L~8-2TR9Gd-!DmgV$l)aZvZ@qKU?B&_48}KB@MMQG^K69KJ&hb^vaH1lzMRNSvs&)JWvIxpRbFo?_d_)tzfL5xjqH9@OtIQJj#T`MDf2{ewuKCVn zKIlWu{t4x~NAvxpOun_Z#oDmls`XJ+`%e{=-zcDbIV)dR_3qgE=+Spz3D>@(D*DEo z0MGknH$>i96@BHXto5O**@dc)SHwX4L70HU?KdGeX9IH6n&(G%MD`0Ij+4lm=tp;% zxD`a}ZcE(nJ`DFPyT=YLO-)biUYMWJmyVI%zOLPege-y^=Qbh9;Y8of-O0Ljm@(Zga-)lrj)nnOympWPIh_{G)Mp8i3LXp1R;T3(n0RhEDqe+{De#6{8?{y z3`ElnT0WU-!wX4yscDwQXW`AeFpeCv9tk2k^LIOw$^VXP9d5&j*F7*a+}nM%mm3%v z>dd+gGmA^J`8|j7v*IMDVP>L7vy_l8B#pyx=+?401 z_mEMV8k=s&FXzWYtIEaHMZXF(u_h?ROP(&oTmssB*3Rpgo13<*SBb0f;!=q^bNZb*~FAI|1?W~hO&czT(7UUA2l36P1!ED zHaX&6da2u#sM9`S6Lt0OLyIk}v9p`gfvHF=qaC=-=l=E%kHHhYox)na)uDq$v93lt zgWlrI{KV9PyL~rawuiehl+9t(-M#&pKED@O1Q|wWZ!U8HbAfs5A7Gv?cSjRvEt5OY zpE;1N9VZH4t0p4l)_NW;a1D8VnT~9qH#n5-?j7~KdRKFzC|3<^!?d?F3*y`v81zQ^ zWjzwh-I+udIn)V#FMUvuL&c6PEq3p05p4rZU{^6m4KH#YV>3`82 zCzHWS6Zm@jk=#3cwShg19w5+JI}R{MFA((lvY8xU)w`;1?)6Im*LHeuQ!0T9|vZ^PB1$PbJicMM{Pq>0zCkj3=bSYqdnL= zLsAwypNR|MLX*l93JZG#UA5|d+2!UWbv=h>F(_EuEYwpq&t8X zxRtN!?8#uoIC@VGFU}6Wwy;oG^x&$EUq{FdcXi6-1K7Jp2K#zDF`e#?R0v6QWwFQy zWN3h~#+Gz*vc0{zDcRPRO1Gw4;3Y2AmQFOcH#M~++tbPRwp6|$-QJw+Zb>hrg}$zi zJ`B67cc_-zrk=QduFmDVEAPkyP{z7*XbQB8U=zJ!Fzj zX_4B7mSj4`BusEOrhItF4KJ66sm13d@?(>p2XxDW|61*6AI`S0}?H-2oSJ5>e+S+)Mdd9NCa`Z@iJwq@Wh@ zxeR+sd-Gb(z33wIa+#YjU6-!dJ=8tO0VsNIACVrf*l65gN$xN#-Z-WWXWey}xPx;O zM{6MlLT@cvN7~eN`RSwVKN1=)`7OyBE7V zYwgsypcxk2oou7HBr4psi;$uym$g%dKQome(wEhN+=laV{R2S;(3#;0nCauuakbakH;@Cy zBxVpGCOmq%&P-pnc9K9hi6vtn8ZIkPJZ3;$a^ZBz_3rEU`g=P%R%REB?Ox>iTcbET z)@g7chtm`jC=@RyFV};qwg*D8Mdu0!<4Dd+H|bH=KY%d~^k?046AH{Pt%Sbu!}ZSt z0?#|OiDw-^Qqf#Zkk>HwW95_X1w({F3nF07=M(Rrj_$z0CM zWv>_k1<;FiBYG#UDszYmuFZDhR3GjMq1<|WVrQ%nM!YWYT44qNjZJ7M8MpR)%|_~G zxMyhKDrbHUBt(9}Ydd&!F<(n0Qm^EXP%`eTTt>M&F-5`|U837=a%y@yzi>_4%Pw(m z5?n8fG=hV?llXkuJ^y@nq_2;F>Irlfb6HB=lo=dOie!s91X~)Ln-giPvtH$y-<9qL zh)9L@#PBJmS{zhOAW6WzEaJpBqEm>9XY=CA6LT(P9kwp0+GTu_!XBzT=rM5(eprs> z23P1CY%UCxS?t-=)Fww02z-#8L;*tFqc)tsO001fDW2to1U(rC2O~2#Ftjhc{OpLK z;SXd$B^jz2)qEg41C0SEFuPzO?A#J7^g6{NVIyn z5#3wBIwPP&-9)RS0`*#u9@qsMa3zGXb|?TA(M0Wy$+o8EbbCv(xwXALnMx*`TM~)p z)@Bext%-D7YkRt>1vF8zgOFGPYhZvE^D|&)A*o-SJWNy*?qRwWRPdl6?EYTh-*l@< zW=G5_gm+jn)yx#1WdN24oe+cG#L~>Xlgnmt0)t_Z z^W6hlo1t!HQkw6`U6mOG^^7^_$A<48u01j)^b|p93GvuKwdj+8mJLf55K5suoDW5G ziREIX)ZL9k0DMVvOPvea>$k3{yE_4jj5Vbb|4(XSJ+`J)`nRu1>#;Sp{k9d^YNVpe zE^~j&ih^ovMZewH!u8miew+C&uE*8{7|=asIBjk(0&lmnyB0qdGkKGfBYnuIIEbgC z!9$eX5bOj=9?0bOyS09h3_hUE4^s%xJ1~+9$94A(<%%-(p%>UrS7tz{;xvF@2V$Ep zN*yfY6`VTwY962;R9vMI1&5M%J>VB3-3`LXZ1i$OE#SUQ436 zx!sW27%6a05w=Y>rW46jdt16C-IPkVC0i4%iS|@eYpT7uttr(81l*Er0=8}LZc_eQ z_$}1k4TPfdCZI^!uc(@ooqb<)cdDpF?ZF|?>R=R&9L&dYz)5lxdx5A& zrWoT2&pTmAr`Qre(2ARph9>Lxc% z@F5jM5<3kzqm|Rxl?Hz+t5*o?{)rBp%2NclKl{Od8;f2yILn3x^)3%5#g(yOF^zia5%g zEh&g02@B%_$Y36I(wb7EGMzrv*d!tWa|W%TQBecf4R5(kD6Hk$iF%L`wUjj|{l!F{ z9;CmP!$-i8`iXjwGnOH?GO5|x$$BvM_+P;Pxxx+gjg5_DDU3X{FgBT|6kuugy4ktw zXCdO4W#V+b%M$p5BFZR}=APsqe90560CQo3XNLCWK%kL1u~lL(v(o2N6TizzSw~T2 zV1P`syZKfS)(7k0w~tcKQ2@A+ke?gO3_)6kgH-o2!P-bon#fwB*ab@> zN%Pq4Z4}wzZ>l-j3}Uslxjm6?O@Q`lYE6PfZEI=G?`moj3KbGx(HDSlB;`qx`zi{- zMO57^Z54ldR#=K!2#9V4|Z1+7r<2}dv|tdXkZ93o`H^x@|otVwa_LVMq&62 z!UD3IK(9c(3Y2|wv$c4G;H*UWEi;g15$Kqtu%Jc7YeJ@%MJwP57xLp!GEuhY0FFQ- z6K`YNk(Gf61(4PwXp38kQk2@6!XdKYeD`%lp6oQ*m4Ulr25b_8uk0}f4hfT&%X9;rGJPYQPL|>+9T4)Am7y5rRlT_Zs4JaLNGcCN{@w?bqr3gW>FFi# z>#9S+;Wffe4`rZ$OgVjBodX93M^h>Ys-3(h@iNk;ZEhXJIsh6{tE6`)uSvel#F(C| zgi0v@0z)Zn;EVE@Wm4rMR)|=OG1pTXRzF)0Mk7BqBS_I-LQWEpPdV`>OQCNUVS>vg z1AHm_WG?7zHRp1JNX6>n?F= z#^&x6h6&@K@W+hk5?6bHo{rBhUgF|VAmYTkWO}w9UZQ1ONN+E38z87ap*nX8QsE+L zm|Kf>(TiQXi)Vs5I(b-Z$ zp3=DNV6L|hn~k8Sy5zc4V=9$MLrszf>ZLnJ;M}%!YpSJ*`jWO}OB#e%z9HGtM~tY4 zJ`6@>=X*R?3WeIS`nh^Y?i3xENVG6k@6MqU!bZq>Wr@BrOv6lmW_OX)1Gy)L{s7)3#Y6)ZeXw zOsK$x%DcPAg8>BaB+g-xpb=$)y6qJ)fv_nO5^0Z-pDEQ(?%t=lpi2W`X!NsE8T88# zYvK4%rbFJ8&ZMSYrAO4D>zFO&YXx%2mZmn5)rkUZWVqV{rKt*Vp0J{IMBR2qg?%B` zv}cH68#D;Mfoa5M01)hZeJ4M`(e`zEMrQ&_)T$0t{%!y|Q9i7c z-7$xYW0Wlj7f`I1X-Z+blWo+!1Zs{>kg~bqq2U2?k>>O@97N$TY?XuafC$&Gxnp1e z6Vi_g6R8npk)Tb6G@95w)7^~Y4R*(~-q^$hRAL2A0%twf(YL=7lc~qH3y$z=Dhwdn z!5-Nsokq6ch*Mh#tU@?avA9hltPd-3<~n9AD2;Y@&yE##!zN-XKfk*xe}gwmH~_+^mn%84D!AA(MAZW7ww z={!nsu|bYmcrJq>gtTn4#F(&ib7Dzslu^P)ThW;1q>~V914Ko21>2Mmn*#$HqtPmi zFXYLSD6wL!r6E(C24^UHSnQXn6|k~a*+64QAb_Q|7XucO2|KlSfWiQ1(uG*kS>TY2 z*0{xoO$a&zi-xX@Y)>W9odK8;^n?2zhKj^UAQMVJ8+bZ2J$DdFeLzos0TRPbA)gLp zfQ?cK6VxS;*)&aqMP8nnR@<=ov2m!379j9k*2S0^o0^r~BwAcgIpCLMhXzVjXCkl; z>%xMpTy`!ZhpPm$s!$w{qI+dm$feLapF->DIRJpF_ke#oxyxnJWER0i&<=;w1$8Hk zFb24{6A7ayp=nTvc}YUP-Hzh`N_`v$I3`+KniHucjc@e_b(JAvL#cs=XhpQki;G9mT}yP13dy-ljwe80P@0k_AOViGXD`ca z0YU{W129ki>A|jvAV&|Rj;jYVIVgFT(-g(5nAASZ3vEkAhhgai)hx%OD<^79pu#Q~ z<~--xg)?*Y#MBLn!0Wupv8ic+d=WJ8w7^Sv+8}LO#TLZqJ3`&bWx*puqVfFtV{_}d z5uCiK<`&$2@CtKF3jkgs4Kk4gEsEqQkRy%XmmL+3DQCnoVpI}BrUxJqQgqs^YlI_| z7_ivJY@ok0i|RVu>kp$Hx0cpl^5sEKry42v1x0T4^}6^8QTecgoJ zVk3?5x%s2C%JI4Q&b|z|O70KT=bKRWWv>MKCpZ~(cyJt-13T@HPaa?nO3^7!+km@+ z1R*DwDzqO)`eDn(tygY0B#pU}**mZ#>noQHdJb$Pkuj-~?>Ce&;m{I@R{oggS5PRU zvt5{nkkr86JTNN@jR4A~Y`@G|aBzcag$1UEdq6O01Rh^`eur}iPS;}t2A*TH6I8dt z#^HKv*PEz?=px}HKVS`B32+PV9U)>Lc2xtaKsGgI0ABqjk zp_gC4cO_w@C&7vQ!KFi<$U9^jM8poUqZ}Qoal?X0R*nNS&=H+pF?|4jf;|X~C_tRa z29=qYB*DmxQ_}|_!z3SZ1rIsuUA+TY*lTowCQ|tqP8%2kx~v80iAI62sYLz&M+Opf z)|g{9u?%B>5$No*=OVmZ7;d0QQ!RQl*3Scg9e^@VsB{w!=ybCZfuK{#C2#@7OA!b= zL9ohF7!+NWHd0$ddoWW#g&z+pF-{Rhg&je6ri&OtOtwmR1=`)^V7vm099nNC)M!QP z?#RM~T4aiel-6$MVHDG@#~x~f)VQ%7yje5s-P+R0RJx@(o#x5c0)1|(t)(rMN}cOr^hblxfKg8}Z1IdRoee6a*YTq{1p4sdq(Uf+)tR-b+&m38<8Gq%k!T zY7ugH*uNO+JFB}>mKUY~BY{1u+2_XYmS&_lwJhN#YE(6L1BI@&H=Co5_G!9PAn3FO zfTRTrs1BeBABycKF$m!sC7~2xh^VfKP<0(Q(^!F4^9T{+iV2UDB_ZxRl&MH0RpP&iK;8LVkAqs8={TgHP<*Gpm0t2a(=fqt zImF+D8?j0>Ku|PQzai%i2`)7yYCLMmf3?~(dYz`U*D-(t3YsPl8bXyDy3p^zk$98a*dV0d_!w@DY6b&s$vX5grVvX#SjW;v~U<48tCc8k&3h1xA*W* zsg;yP2tv~>y2NtIxwvs2N=qfh8ltx!7?z@B!YpnNKth`zpH`D8k-t)w2-OC~M{2KX z_?x2hjgl=X43uG|vNB_&PfKJNYHj2nVJRyyH;g8Q87nzW9C7uo5Xz+geS_%Iwe;7N zTcg~0&;f%@o(7x<5Fo0#;MDsv3$6-e7RqS&tRTeBOABsz%;k(*S823+q`y-SA(?*_ zmFrmt3*Fw15vbx6?evSBnwIaNMTEf6&8B9dl$(Md4+OUP<#}8+5&8%TV#UN3)QAIU z!E&laMjVL81P4YOCR}91p>e_v0jj&ZN5s&g*o5G@%2DL4<%(<=p1qjb37}Z1>BF-X zv&IEl480U-AmD`HA@dwk4v*vV&7#2E+$`8zQut#t6R_Y_>j6V|g1E_c_6(FGJyE|S z=A9@hC&a#Nzu42~VAd{-vZ+e>6N(ISW%&}GY$WrP*A|ep=M*GMSM`9zG`e~!Wmma> z;wDqTPFA%77Mm9EauDYB_rf%dw?=ZQ0I4Y|*pc4BSY`33B64@M(%OBcaLUC-prlIf z!f-B;i)Xwswj*{U$yYF!a)c}$Ul5WNq8f8v%EWlXSyF1n#@_ZcQJL@2{~Oi3M$3CK zX6o6LyP6Ghg2jHQTCw-` zF?2|HOw3%|h9Pf3z^delByvdjDy9zn6F#(>T0IB_a4CldVcNV)_%2XM}LFbkox z8Z@FxSYGxx8lLD>T1XR1h`CsX+%PO2`m$+o!OA~Cy;{mYK(Shee;{X(3a2Dn!c0d~ zIEe?Gr{ah3gVnH`1H)TWWWFc;OV+hhk zfhfg@ltcQEierV+(?t+msF-%^ljAt3!!(EL0epjEr172)EK86RWnhfHEVGKeET~B|9H0+V@I%wytxB!jf@8Sg9LsJ&tTG0YBFlE~=0y0}Ur zHuCAtXE9A`E;UU81&S(5Sm^Fd7WX89R(ZV(I}$dn_zT54;$S@>I$3!~I*}!5JD6pO z{zv|JK))e8lQstgpvp~CFb7!Z?|V*Y@WBAbvyk1`{yrBj!e6$bDj%`(=2jG@icBOg z!k9z7T|1*o11K3e&`%m3){R#w0&--uV6NqTgQ@U){16FB32!#ytP4iOXK zBJbG3QHYdq1+N%z*CD;VGI|8LLRme4#o7*}CWO*WNth^cKPd0Y&x5C}1dcP_$tq(NxHg z^I31oAS(&K&{YfncqCnbOA-(%;#BqxB9%VCmciosnL4C8T3>eFKbKvehlCZk{3(Wz3)ZrG z$_VVuAdIBXAH%AWJ{bk@7dv9lXH4Npa5dS7GT#K4%VP~p+YE(hshl*W``WqC5Rwp2?ldZ6s=C!GG6K+nm!qx*4*0z>*T-!OMG$pI};)R5Kg9~GaX2x(6&KKnwM6p8Is4(ku z2Ie{r6}yH(fE0RmX@-tDppvC&=Hi^*?h%6BAR-m7ON?MQtD-Xo`auHogFKOQSZN%p zZQ(vZbptB;0O~9&`XG)Di#{Z*!V!CYMYC|$t<<9}e3j!_N*H;E2rj_pabCb)5v*a~ zU_xNOhRii1f(oU@I2m0L7!!)a>JAu4CfizCl3o)QQ7;FHy!NV0ui?!U!D4=8)6LF# z^M`40Fg81`SO=Hf7|5H8w0fXJns{Ka{N*s%1M_Y&?R)gXof0~7mqKMh-S|0+lejWD zj%%L~^~%7MKD`b1#h|5bY2k*1Lfz=oiQO$K z$c=OuC5$44M5BmZEpFgE%OO6}zrUXfclH~F_rswCoKlds<)u)}dk(SImS9!-5m^j* z8CV6`y^r!(GBu13s}GF!6GKN)8fgHH7Q~RlXV-kQ4r{&xI|aY3Si^-qHHZ|9-VbohmLqJ?FHpiE=K>lMCNf9ehDe4AvL}F0Ist_vj$LSJe`pq3QL)P|$I%pJb2XcY6;SoFk@q~HW^vJiQ(^>nJ-GU~ z`t?T;4$Ld)ffcmhscKKJDU$6xu z$TQS)U$z@NE-8LqQerPvv`{YHFj0zzmtgLcIxNa)?vN_(E_3GrQuxpv334LA(N*l) zK<-1Ra|3yW*(mbLVXmN3=Qbp*>8ZA7$(69T1s1~fz*Vh??KxwwQUJ(jC!||NO-U`V zJH;7C^HVD-(|SXrg=N=oRs(^kZxA3vSp#NxZsEH8QMJq)0V?NEgN?1$f7a;FtYB{B zK&hvm6!4@Pr7EWM0E4r$OViT|;J%Tn+N_&2^uQ*EjBrSQ(FO2X>iC$s#@M zZ{Tu-+;J|u52lA0a~PoJ;T9F$2uCT5X@Z~&gVBl^!lVk=1TZX*$IBTaQb@uYQjKJc zhZl=+gpBmMVJacpM>!gUhk~gVB+6q!11!Gs{Wz_Y?1laLZ!ov6eZfrPY;zuEnfqA4+~K8z3i=^$MYU{fo14{@ZE;`ihK zB13<1G!mHjTfZaNZU3(t_rHqvSOD^I2m`@&1`byQy)4QdiA&@PfaEE*@we9iP!_3l z+wlKetN$YKdsd@=)v61NmLM(=W_xn{uu3AFK5v|N%%MIOV0v_lBK~AA4ZMs`g zyx2z#_pK{a716iMcZrTOV8%DM{3>8qw|ala%K6b%x& zz0k!f2Kbbi_Oy6HolycuOp@aYB#9V}ldkP3z@rt1Ef zVI>8-8ZmQ4F3N@db+Oj8LI+Ju73QbMjv^1}5zuMud?3n}0TdA<>V*qk!6YOzBa%V2 zl|~%V2T7Rk9E2*tqS@E{;#f(HxZLf*H3@HOvJs%Y-MMb!;2`d`c=~L_u_lJ@B<9dP zj0KjI8NE6+H(9&CtD|n0+@nGOla2JcoqpDw&{`JHS>YDYT$54<;6blIlt;?S>(#)dU1bUOecbR0Jt3vJIdRSP<`(W2VEd-{Gzymdi^jie>wk}bS2$m>eNcO_J#gPTQX1(tl+E|-u3!&M9BhI+Sh`DH>GM@~ zpLO6G_QR?PW&FFYUP4rW4dQ+6Ih@Dh8ZG7(@+!DqtA&p<;~46w>;#%!iHC-s%(px`4 zZ}k$8>F)$q)`;hfiiz&8xO8&Jz>t7qZr@6xtxNX3VM}p!C({edc$F#e22$7p0pdd5 zJf!Q`zD(DUx#fWgqvo?%l^E_$Q^Ta>-#czy?UX69Jt(J!!X-c{n zZWbdAs=by~)9l-QLXM(BW&$uX6xoJjCDkfSR9Sd80LhgcCBtofvRToTbrR~8dOJfq zMVIz$GoqN1oo2eQ**`)$nWkO1aKd%Qg(@|N zp~*k5aJsX`umS>PmqX+^k{Ome-{#H%1j@l(J(%}&bYu4!yYay8L+v$+?8b|%J0PtO zEXs>4LW=D^)PBSmn}_W_*nLr+!RBAN4ket$^RJ-Nq#!+vVTF{&zwrG0&E}2bD8myE z_^2uE7RhJeQ&R4g)Xw80DvOi#Zd1K$>>ES(k}y$%0w>|5Ogt=$j;(8;FGr|lr`w$2 z1A~NmH`PQBLFm2mAlNw1$Jeq0fv~+u0NtU_pp>YCR87%Mn=^IgYw)Lk*`rjFLzHJ^ zvWglyaVrr9m1v=`VBH^+sy0+$d9S~dpbj1UA!;8yV61y#V~0bvyLaCRZ#^}oT3a~k zU^|HmVp6M0ZrM#>&9m%g5OErS6^qlOyq(CT^qU?B<%Y%YI z?akQ`{|B}Jo{GVKfV~ve0#*fTcVYNEnLl?&yJ~j1vzWcNpQxD@DGisEJ0^{#fZDEV z0d7ysi5gjl#wD_SdpSyp)<*b9O2e}s%oS6qR9h=d;oEUHq^YGD*Fx}1pJ<=vVG;8EDh_>jf zqZd+xecTX~-%|z+LmajIz=9f?z7WwNhJ&t-aFL;)UWQT5uC2_$Z{kGCUJT_40rsmC zd>dINbBYUFGB=5@9ECN!Lj3r`6wYDMQPnjtLajQ^sWi?hoUr1qq|3M~nXukU4B0^L z-#R6?%|d_3TIGC`qf5^=XhVP_Mn}C&N3XRDgu_la`o+ZMvg#-R@JD;hOh50x7yuM6 z@gm3!cxhj{!L^bljoE;K)H=Ai zF?N`=!o=Zp4bEd20plAD_S{vDKy~I~d5Pp?OHr~-#PM9-MGg*UV}@yPkzQq10b2OlHQ>wP5+5xa#x zg61O##6x#r6nDC545`i$yV$Db+)XHX9vH^7H}X#3voUyBRXD;Uj|V3zxLL0QHTU2W zE092wwO5eOU5H7!2p%oJg1v6gs8HfOA)ohEF4Fe!o=VJ(c~lL**cYf-F}OGq)@I|= z1)no9nS);s;eGwrfc?#hIgxmX+|jZ_3iF#H=pboSD~OP5()^HzPuCYp3HuVV-fmU$ zS-iT$ji%O@YQSJ@I&zS~!BUIHi!@^^`Q(XzNU6RQfTE_N2OyP!W>PMqw!y+eYFB$0 zddfAEaA+>%(OE`DLoS~mWdPhWt&ZU>M9pQ3n~LJq3fwUi*7m^y?HSIXH#(Yv%7a!e23DgAP#PHbHuPoK6t zbO7pB4sJh_p?1nRaE$I!nhg3O8-;Nfxr_{B3U-6T_SOC}hZJ}P?x~Rlydub?uxz#+ zr)Lhjg&t5;@JTFUAUNUQzFT}bJo_bVd?X2V!qbU(ZgK;D7`{*_;GkyH=wr%&C|q5E zw^Pp|^paM{zj6sTF!N?4)({;IE6@zb3)gW(hDw0x(I_1tbBIyNba;WDhLT8SQ0Y6) zT(x1BChT0Uv`>r9?Y5 zW-41NIev<;0gfLsH!BEudbWZ`3v_azuZ;%e@HH>k+1{2)344Qi7rBb>_yME{;#QM) z2>!*M(EZ4xUN>Z&yJL5e6>Pd0B1;gmFbV?f@`6z}_yur}F4T{{CeVJo21I7DZcs2c z&PjKdTbg9lhWwgU*<`5cI`Lr~IN~72F>DF;AI<|{d@IIhXvLg?E8%TMIufEe-XtAC z$w_D5f`g8qd*SxA5=PA4_w(%+?%LV7b9#DWyGj=5Ib6O(a#ZOQ zYNv$lfST0c=MNK^3z&Lj38E+XgWt#P5j zE9CqvAP3Y#8Q)T2@rit(rkur#CWscsSH*gPV=y6`g*3;tYdLcPUn)EGJ#LiY5$uV- zf;b2E1G$1PC5YH9XfY70al6PBVQE@;K4RG!`04ZxPE1ZO6~vMy#C`kvFm@o(sEAAt}w*$QoCgC`cAIyQo z7ygp*p)o72FrOL_cNAeKv%Z%mW3-NM7AiJXl|Lwb9#rKB>Xh6-3^XD59y&A}P_$2A z<-*XQ#!lg6bTH7#kz6qBP2k1z`Lig&St-goNQ*lO%ySB7#O+8} zI%6!NgD6}i#W=A3B21o!21u#%Fd+lK-#laVJ4G!j(AKr}tssL1=2WV%sOTPvpOYLB zE?<}ntRz+_iZp^X!_+HF>03K-vqK9CNh3%D8g7Vfn)*93c*4-!Mi=8#lYzS4ip4>| z!iditwc?CB(d=K$9FVX5!T(2sC|eF1;V}H&BHxEYJYYXKO`o@aO6Z9cRRP4HkMaUV zwI0wUW%MY-9nRo57or;HnYh{#ag&u5f&$>m2_LWCy(ua|*GE<{wiPm>M8KuGo~wr7 zV|_$VO`mNsAIKz~0n7Prm;O!l`(L`hRp`ofQY9S}n(DpTSNj?U2<2=PsY^Lx^cfs5 zMSvg@M9R4WAW(`jPdfgUx=SbNe`d}#+)0?xCa`&u;_FPZUT6aY+`vr3N8(R zjO`tSm5&fpLX8@PE$-VubWyV2GXNl=qbW|T?&wwS8>o~Ee?f>tp#n<02s{P%hMZ0q z%C>j5kY8Brhp8~Hn}M(=bWh<^p40P($54Zz{KVF#Ex~@!9S@PGddK1SFMB(Chx;HZ zFb!f?m)#Ji9PNNcN3HhNoYpT(O)wX-!!h3ETi3zY*64Fz%_`K$z$10@*J zlDsfwDORe})=qgK<7qTOF|uf(=L!jtDT@$5QJ2L!RyQ;v3#g(dR0Ldxy$`qvU8YqP zqS?S{DACNPy>o`^x@~^}PabHnCGX=e=h;M_#mDB`U(Ca?|VhtlQ zTofh=tzVe@EkAeGFRtSC&Poa5WAk@CszFZ$Ffxfc|JseCXE`UwZUH~X9u5zbr} zAUPc|4obZY#lb=a2il_zk5mHRI)I=jk%ICQA2flJHhd`#AK{`aYq5~PXRzt1#h`Jl zamZdFe8ZI|THuo@U?WtpDH0I^T>)kszSCEOQUex;u9qO^HdX@$^I5@({fdR%VO9$( z^HpSDSi}|>*9PU-f}|05i0EFVyS^}nYhZYHQ8Nk9l%fm>9(Z{*ba7oI?VV7)Dl=n{ z*%-dXeMIhqlR*rOFn$yM3v3}a%-qr<_YEF`R+c#Hf#6N9OkllpIa-Gf(RnnqPNL`! zh+axeiv4Y*oq2qf5jF%Kze2Zk=rF5*@(Jcn1fE<#0l<;_5}Zj{`+4|-g5M07z$=1R zQGZHr^JhmvO@Tv`15Ej1y_Zkh64+*hTp&v-0F=D!3cgr%i~)Yj^-vftiYG%ga;dC& z4Q(4oB^BQ>g41YKAR9)==)1`eSUCa2ZY-`cchPJrsZzuk;hv4JL2Vwvl&t2jyGVj1 z3{UO=&<(WL$_U{@7C4l7(Bq3cU889su*`vOnIbE_mttm1^Mh-)#{gM9MIh-3-8}h? z?@Fq7@FJV1bi3EhWb&V0+G_|21`p4<_>U zi(`l6E131;_&z8_@pUevFa##c-Kc4=K(FO8H8_JqmNX&T^&%RF*6OTa?z*YGH#O&f zjT&E63JGC}J*;XMChLpvB_W^65j8)Y^U&f=e0v(HrhCoHP^+9*-~fiQR|H2a@5o7l zNAWO?gebq07%}!o-}&KP77!Q@r4ZChJg_G*WY{&X zk)bLBM0%y6;x~1+ z8(JGz zaTn<`6?nlZE#D!cB%s)nrzJk^Q@(~5lECz>xNXM0OVkO zntLXp-;zbQ!@P(uhh|NJX?5->HOPR?WrsX2xSD{n91b0KU&w$T$qw>aZ6c-k8gU{cR(wEKAGa5LlxkK>aW&O(94`+k^glD~W zn&1QyWB-b-y`k%dQ&nv2=h5rwv@a_Ch%J<}mLD!6G5lFe(L@V?XTTvW=>e@GSR~9; z7mJTNp_!5^EP9LFuo`A(scf~#?J+mJY*m=QfmFj+6hlpi!LL+)KDMwpH90j7@C7if zoQQC;oPby~z(LWXH8-~7TR$!7bZcvKQ#-!xQ{Fjl8|_KhE0sco2%_i950Q8hn#p`- z1%#$=h!EP4hT=sh{ZDv`95ukn&)YQ&zl(qc1mj0pLWz}5t1}L5oROh&V5$q=pM@r1 zrDr5j22ohSr80*cT@DUH(Y9EMLgZLCBKMS-Y{-2Ikvh@Oa~Rj5S^c0kpd8e1=l+1m z2VOUFFPV4)K7d5tB((aq5EUApA^0C`Pr*q}x~UBxzyOQc#E+D=;>*q{cn61OxSNQm^JNi02(U$*GilS+BJ9m!UHH8rgR+c z%;`9JXPse2UYr9Q$e&K5;4-`1*iGPww9Al$n*sLEev;WZ@eOG7gN5tI=AqJ&1g@Fh zcfltbgZnONe8$vlG1voxhJmSQON;KhzG1aG^NrgAb2?mU%m(TU*muIfA8NnObm^&Q4$Zqc+{KmO6N)mVnAouWC!G2ItxGO?AFQ$dY}Yfw+Y`;W3H{XwLLEbSPW6K!zwoJ`^y0z6Ui z;qDZ!sNf45&HUnYON%*1L9l>Y28jS2|Dy=`DFmX7kKRQ??*P?JewF5I_h3g3Keu^te zuAdgJp4b}Rq#-N_Q=<^C=y^rST3G6Bw|x>g#^0tYmA6Nen#Km#OO3BMTM{I*L4|>v zV~C^SoJ>EBTM+Q{p^`IEWE`2vb@oD)Y3-!cOiE0o=+RJylj*uLgAY6LoYZ62OeMfC z2m0Obi9jaxdeqM))#B5jt|Es|=5ju!v^Y8p0Lq_~ATo-~ifu7Vme z#DPd9Li#fO3M40J&1bbv!>4%lL%hXbMGKh-Yls8rFIsgDX4%6F;I4c3lJnZ zemLY5Urd1I1}o=`yk05)IHkSihR{zM1)doQDZ=b`lNVl5yDxNul^0j=dVh#t}pd_$a;;DT6A$`zdf^b2=3LvcBh)*3Gm`n z>;LKPJHVtUwzj)xrl$uGnHhEjL2wZy3CjW!1tsSk6jWR`5hN_KpkQ2bUXYxFNTNPz3Qik2_z{0`<||vnH_f3`#t~v&-2WAtE;Q3t4^KDRj2A!O}r~ShT^PB z%owVUbBADfJ&7wLIG4_q5r8C|^LJ9*$dmH@MI(6BL?Xr*70O5E75Uh!UOn8QfUQ&g zRm)2~Zt8kenOEde4|~U8vvbN;@>1=NQL}xH$YQLU%Ve#SsZ>78ZlaQerZ@(PzAv_& zvmTK#ts^3Q!Hkg2a!|cS+vtqZ_0COm4BT3YX^laBE5y`U#)uvd zcaGjlnT)X=`$b zEp@n9!_2e$=+dT!J91q0h}^SYn=1oqoae04pzz80Gd;2_JLR%^n&d9H5rdEpodhZvcy~D73zaTssYs zm*_7b?*>2e{u_a$l`Ka9;72@Si@o1)F3X!`C+vlp5+|lvEdJ`)-4$~kj zIo8zvn*&E+fUNF@kMjRF-B9UwFe1~=3?33D2%I#s2iYWN^_pNq=m zI$RRtB5zwR-0B@yj({|6&r4p^w7r_hm2Ez#c$z8g;D4bUTwFPIVvY*P>3Ok%keOcH zeaNx3#c744T~Zw?WU*>got2YFxmH~?jMA7ErH`F8V7R-532E6eiv^0P12c8m%#(NO zQZ73)>q{rE$JIaRDhr-Ea#0` z2X&EM>loYSI;v$9x zVj_%l9ld1I3vhaDtOwh+Wp~8sX{sf`>b#`1T{CPG>w?*i@a(ba2|!ouiM*odrlVnC%2A`M}s59J5)9w)ZE&HB7w5Zb2tu5#2onbWwn904;MMp^N3E(IvqIKv0oq|$~Y`B4z8dH&^ zvhk(#r*+)0aQzqhO{2XdVKQl!|wab%27#%pvElH!|H$|>bmVm)cD$&tY^PQEeqw< zv57uUr<}5lP{*ortmlIn-8y%Y{EzIT%(I{=@t~|pjARZ7btYnt&DG9;CtTm+))nl5 ziWb>soKeo@WG+XRQR$D`lbeGJGIpba)#i?ZRrYxPqWn4=8j#nbDH^S|Gt-Z=Ad=Zm zF;GY1YDnECx2@vh>fRAW+!*IN9YoYW7=g;lQ^p`@!$oz=qkTCh_;e{!os+ico3-oG zP$@G}mbg=!)4A}fYC9Z1O43S?sIDR zIa@g+n`8BkgTLQso%<$h5et08**z|cWlhq1#mh(vhR7y#4z!XohYrHNi_A>fkAov+ zxNwqt)0*|g98KiLYuQYG)6w#n*^ijCI~@zB59Z`rbw{@3a;#iO%@7!hl{&JE9;kD6 zCi)1k%sL|*(a!K#vuuOn^bE8?@UV4Q?GY8Lup*XQaaBoH&r+1pP^kGtxwe}_`$Rdr zt5;mWL1`k@-sBt$7Ha7{Y9$FZQF2-uHilutg)`V!2Oi{>A{p^BWtb(u7jfjONQ9fX z?#t0>2ob?cDIsAcf>Qmf&O{@uPC27SDgRF<5AMt3hgbwl#buPjIyrxfs!MUsd5m1b zoBQNtctTyoJiKI+BZf|I8nblKTJxaSg{e{vDm&RYp^0o^eS;HxNK7LfC*bvCa%eLN zF$IhI;%F|;PsT?c;V^1a6%#$OCq{QA!xN}~(UrXE{vjnwxL1HXN-;c=Ibva}Qkmg2 zDmiDXp}#rD2J|k@bthQLVLJ7d32J>Q+A6%#qSu%txAlDn&Mvk#)Wxdih-7J620YQ# zFD|{3_FhE|%P^>+BFA&0ml*%yovIjpIpT&6O4M-@_7+ri#vy1|?C_~d)vMv!01fbv zp()6(Co}q`bA_=k<}aP=0&4vykQ=|H%~(s!ddhb2{;mSeC08I+o-WqX;Aj6S0ub65%K zifS!U3;y#>&CV8XTn@ZPjF_7RoQeNvXOX>0WSt}Gy3v%UNSjFqy5`rL zq|{+SXEf(T4|OPROhJKc-;gT>RjYU9U{voIfDO)nbCwPb4rkGFOpiCM!<)#N<7%{? zF}QDUmO;+?%G7H39;)c&3iemnze1~=YjKNA(@RYzi>PXv9#M-O3&_ean~Mlzv6YMM zHTu`Nt(HZ-mDvDxufk1)I%@{CS8dui2VYbwaH}2p*%^1}$!;E}gXcWvWO=xADYxoH zk1J%B2uB5*#7D=~$zvR}#9?NMj#Q1gFh&m0i_Z2mY=}mBQ7y3^ag;Kms~{5LOlX5| zn6YfvoQ&=axoGU@8`c$OR4XE>lAf)s8H=!DI4C=%bBer_LsSPGF5Y~PqjHNCG-_f+ z%?rg2m>S2iOm-~uyf6{(IbwuxQ5yd4C?4lWbN+BRFRWBKwGWdkd)0E(TGCzVg{{c{ z#iXQCJ)|ckA=2RsVYNt9<6NuSZx-It1ic2~qsz{=mF`WkUH2jOPDok~UL7#xp z9R^2r4mN~q7P1azPa~$25!I)YZc;?`ldjYc&Hm()Yy%m!v^Z zaLmDwu57}+CN4a%$LX}A>Op1<(K>M?gtMmzv@wcjvldhXC`+_BEQksNCq9+VEvd~K zH)f3`TO6pen1@y{{SwwNf(~b1n;ZsGRHJ$>QM2>a6GdeO?`M^MTN|~Sp$ElKpVZ!| zV=3oQxFA~((E%y6j(A}&F7=n>RwCt^gcQ^)u~&D~$~h$v5gli) z6usxcy#_#)b5i-_N-13EkGOCuD&-Cj>}o5=I4E5yK1GD6W&38B{F82g>=%h=>mVkl zC*Y`$k4m_Vnw)oBplb)U$Iz4I9D8zZf8;)Vp7$RnXFsF7VnweeHz-mBgrCTp=oNtf zVpF+p^018mVC;G&PLT43A<0)XKIlV7dY(6TrPQXz@KzV+jE=OYk#$g~f|Wh+?3N{EaK*?@QEDt1Fm?R1eHL`a8pL)AV~nI3RjduLKlZ>;;RUUu17`}Wgr^o zOt^54ZejflQ|ZnPapbIH%Zw^LOtMc+5G5vR?IZEBKFeNdtmK4~z~TwnbPAo*SLF^u z^r+jm$D|&(4sn#FMyK`RjTRo4MIa1bwU+SyZ9W{ zHm?nEHi)5-XHmei?qF<*(PvTUS8u#^Qth-XI73GT`MKWZQWd4j2{Q@Phn$Dyc+U}e z)dS@&DP~5b0g?OZa_y0;H_{2ot$q(r^r=&4PMv^W@G$Hpq*_Bx$qgAgcp#$TT-276 z1*jKpav{BKrk&j}tt5d{BQ-|X3mcHuCLACJvbdT<_O$p%7U-R0bwhbE z9(;2}QSJcNeKGPtt+%v8^Q(8I${q2M0utGu>PUxDdE$(3ZXOQESSQC3OAh*^%;H2| z5=svn2l=$DWp`-VIJQZG_CZHp)ln<8^EcVK>y!)qyq3Nzw9Qvb#MQ~t&p^01VciEB z)9|&VqyZ_cuX#&cbOqWOtrXcBS(!%no-3*0byZP9r)sJgbu_xOt`W0*>NqwxKuEtQ zs%t5Q`)|6IqP-4XOEyl3wQlvJulpsRR5KT~W_L5!F-OVDMHI=$lOcLC->JK)FiZ3r zvMFnUTd|=6P?lF5b96^t#{#U%d$;fhdoG$nr+GIA#e#+&y>6&2yKV;wh}q@gTh6|k?+Vxs#NcU(bxR6)85-Rdr^%vP}<8o|nA&%+z{Wp^R_I~tC7 zwA-T|zZLp$E8N)c7Xr1$dEOWd7gId}cmAN=$xq)Ndo0oZ6x3bHYhU1#RrrA9gxgwV9+)_BQ zidwE7`(fpAm%rU|z0i+uD-^R_rBHi#+!c#kuF_(<=MK9tgK#I5unJ$zg2`@Q15KE@}c z`W-&GH<)FtxVk%Fb=%!m+{br_pOfyg_Rn-y#A~}kbT-W_XT=TMEpJzNJXYb^`)IcE z-_se+3Y52sJp3FCB`iA*?%mn$3RV$o8f_|CaRv>=6dOJ6lJ{6~g?hoNNF}?~Z4AbK z7~p=WGE9%tbl98Vo@7?RW20j7nS%XLpINv5fhVib!(&1H>t}-ozN-Zq+|vx6Lbk_U z!{zZ99#|QDY|<_>NPk3JEu-&Ur2U^Fots4Zsn~ybh~~j{Nv%govk#IE=}y{3Tt2mk z=6hF@rhrG5@pU@sBhyKjh)uzTG<(Em?RJ`*wI*#)l(fVo()a6={4m1GH!6|Vl{CKCfabX(+vOY6 zyd!~hSy|H3lG5>0X}%$0w%<hPo~eI`4!2Rl6TX*z6|Lv zZqnYBN&k?Na>1s#VJ2zn{iL7QA#EozmOhW>^Q%bh+erI7NBW86THGd@m$oDgN(nk8 zEd(+7BZ2gql%}J??MZ8C^Fe>o(uGJ* zKTg_HB=ATzny-%}ttFiQY$nYIB!s8S(L7gT`+$_1(UMc^Ceyw|25FMyX1t{R^VPIz zEg_VYnj|=gHrqssp1OzTi3>>^O4)z5EzL8fhIwri&2#;v*E*8EBPm+lG)H5)RxWb-Yj!n zZNLb#Ghw9pz%all^FyT8JKB5;6@Yh)Sr0Myjx}Gq4=~PL0nT~Hn{^RM?*wxuB*{C` zT+VlsOdnG1oor_J0ZcK=Hv(jvV;~0Jsb+Rdz%(=8Y`}}=w{d{!W@Uyl!#s|(dS{vq z`Mp_Y7IMWq+iVR{_0BPW-v*d#mV(fD=b3*p==o-w(n!)0Gwu<3;`k!*&oWtI>Tv(DoO=jES3+j$t>Cmu*dW+0UR~IstI`0yj~P=*1XJEzGptc`tEbHF?0M2Gqpb;%k}U` zz&O`^1pyOW?1*kjyT5K!dSW0aIR?zOD} zi`}jE0#>`HlAr6`Q>r7k_PFPi!qZ;&M=b%z-2KM`&bq5J6W()Qpk#jP9>_Z9OZSh= z!mr%_ei)GDSwntK^*p;8FwNt+7qHUP7MbB)@41)KvDx!8WJsjvs;5^2*j)3xVFRvv z7TpH;!}C6ChCe-fy8v!@Uh51PVZFtwW2BYDntO`%XcIuTHH^hzsr3@8$@SK|PXe}E zm*WAutX`DVm#sg@n^&#M6vdNP@#*T*`LB>!1*{a%TXuH< zL(stYFf+Q|y9<=ZbH$NJg}3noV3XB+z%-a!-q;Fr+a<_ZZ+qWZm^)YB4)eo1=;pDC z;E1>9hm1#BVX)fUw@PK02fU9M2pjJFj7f|)CaLGW<{1=IYoEDr7hu1Mvz@Ff%Jl*q zH18+_IAqq%0vtBGJr6iyemw|q)ck^Q%p6e+@Uq!@0^k+%IX=B=HYf96GmmZt95-vV z1)MM|G3eLLiKq*$)8?g#h}{onkFJ2J?lXO0In#Xv(eloBzkw&=!d>4X%~rVwP@PHa z2P|cZ2lk*WWh|}$I%rk^^ojlC?clQ=K(ov`7GQ*VmK+^vez*`Y%FJZCN1NSQ633Va z@pWsgIdnf@oH@EVV1oJ0t?DyH_c8u=U8Ss+9$XW&Y;$@qcRdrdd@}RC!ri157moqG z=lpG;m5Z>jC$wNCQGFLn;Jv>N2CXrBCuq%@WNEEZYd~uceF3yiy}6)uUuK!RuOj(Z zZ`BUa`l+n7?w{5I^ntD0K^uHb4mRA$#5a10tZIDwJkTa7t3jK7M&WJNgh^^XW+P~e zv~{2@Qw$A>9)UCOfNcxV#K(8Fz)g7zq|0<`zJaQgRQs>i`+Ciro$V z%6CSYCy?uCaf?3-`-x^vX7F5d_tSuR<^|O7)_l`92Tt~yMaY(Y<{RLh_$^Up6)Y;e z#ne~5n-yvO)#OUcN#Llsh$~bUKC{i%V7+6}mKk2+5oX;C^9J)}y%{PAM@P-><+P(7 z55nR<5nn}SQ55 zpR!xo{*~)l0xs%?jI%sdR8)%QwN&BrzXHkh@y05+Oq_rU#Tvuabob`z>I&|;ZSP-f4VX%wS(%(m+R@0y;;N(@{D zo4~^J@<{bu^?5&@TP>Teo@cqcv*a#x|H9O-aEB@b*1AhF_S@a9_`x0SMvDMD-D#Bi zUG8st0Cu}e%m(anud)EIyOXj2r`%bM0jJ#`;q&MZopb@-aj$9yc+VXo7tXnhwg7zM z9>U^0$Fr$EV1ef|RyQwu4n6^R#q;Arz;RE90e};pBYlzh4?SH|@${wV(+YrZJsTON zA3SM%y5OlpcK+z8O&Pf8xn2nHljnAF`e#o!lsoGe&&QVv)3 zWzSp70l$0fm4IuWeyk8~cz$8zM_bz&>j~Ba;{lVcmP z?Tf8eqXEmTn(2TQ);lP))@th`X4yKcF)N0R*1uVCZL+E_1#Go^F9Eh$uT24Lw*ssJ zc3D@Lu-#Up+JHUQF4R2Meycmn$N{SrMf9L`aS-5;RbV^du=NI6aKt*y4;{6NP#TU| zZ}aJ8t0zM_Zq;ZGIAIlg5b(M+wlv^Ps}r;FEvqG?`?l4eoIhzzX#+TAJwx`Kwn8a@ zGgenN81Gp11_R!;9)ARI)~du%-m_-r1Dvypbp^a{t-T-cp|xim;3F%3AK+ta2c3Lk z?Rp0AsnyyGIB$JSasAvHK`wn|4X*!Fr_@2vM3iT|-a z^Z~xN-eb&uu)gRCxL~!s4e+B?sSeXi{HE#k%=epNq9s7s3#~8q$-cK1ymfblGFxpPb28^*2m@{MT z{QT@VyGwt-c)JzzaDx3&8Nd|#G|OkU-GuR+YL{IGm}YmPP`_w@x*IUdexVs)j(u$& zV6NS!6JVa*lTn&)k0A>d*qsvq3++27I*aVftZ^3Gx3iqRWH%=3mfMpa0j#hWBM+^W z_M;sEtL%Oh>ecp~N`N)?f3^eG+J*SNb#@`v-W%+DLx8RJBF1H#J(k(A-EKwLVc(ev z*lG8m%U$-fD*?Oh2Ut_>vAa|Q?6oI657=i{J_Oir|Hxc9U@z_kIB3r%BM;e+R|Ool zn^Go@*!dXrQM)HI^_YFnV!+GxiQ#}(>%K@L;8Elxpu&1!F|Jz>8O#RZn!K8d;mmmwiw(si-_>VoB z;{B~1m6#`^lbm58!8e6h-3~`wXS-SGzu){AT}aGvJb)%)qYN6x{u&-7GWcdnp1dQ;VA$vyp&esEs^3^Q{80`x&ePev> zC}(4R_pq#t^HnC##`|XM0Zj1SPI;N=tFsL-$#;@rPWG)C2AJY&L($0gbu0>)>RWpU zV4CkxIlzm)rSkyOeS>QNX8208iJ9qhJpq{IE9nKy_Wf2KFvs^TpXU1B>;#za+etB9 z;M=kuu+aB2Q@hwVvk+j3&y^3b)K_s4V43eME05K_bK?MOd_$K4*80wD1g!HtVr zwV+6C@MV#M8-1U!kZkg`OaW~64QCc_@jW>mu+=w&*|^QO)dFny1s?|N@O?fMu+uk` z?AhfzJ_fMc_Z~g$@g1hn?)9yI9I(&#?@56DzKcxl0pDIS@}Tbz#_W*q5JNfaJ30e! z#8-=Xd(_vFRnRe?I|J~F&;1nOHQzI>0mpr(S)-otWs?Q3`!1{lyzQ$(%agt{{Lt}y ziOif6`6i75T*;TSij~j@)u(E#TNK*(@ZN z3hsFnaJk?{3g7PqZ<_;H;eU4!V5L9%F~BPSb1eX?{VT|`HU0(U?pl8t3g&u$v-yAx z{!AON(fe(oquvcz^FhCCS^>Z3bTJ~ z;B~qj7pTvoJwC9Gz10bUE4KkA1&%Xfm zU@%}t;LIAp%s>`pepaAlL%^KC0J3~;;8iAbeqbxpz92A+d|4Q{x&^Q(Q1mXq;=oQ; zPfG&*e1P?VpD9Ee0!^0#HU`cz!#4#UWtf`-@hqZS0&Q0Twg%pM3a~9OkwUa1P?quB z87RS;eOKU1_9Au%>NBVJ1RgC5*cy+4x4FIK96a7{NSxEAUG{z}tcLl>ui1uapA37wAe(oC~zy z3V1*8uhxLy1H%sht^_)E16&Q%7znr)I89Dm4@_lN{SlbYDE%2I!L;89w4yMK2=-yE zF)Fx;1z~j1&F_r~zD?m98?<@=CIp92G$saTr2!@d_v`{p4i>x*@M5q}Il%N_J$`mZ zupD!GX7G24+w5RzCUZ{k6&9zt!Rjml^MXCg0OkibRsbvrem@tmC^&pQU~#ZB*}5cn zXH&q^;JqsV%YtvQSiBT`zBpic@Vt-&^I8@B~}QYN+s=S~3Z2)@Wn z-5Kmoe(ny=sSnr_%zgYb56 zNCCjf;J%%JQ^5eU>U8iTlX51QMwxgwnAs6BR^zqWw)gH4!*-{QWc z5M7Gf5&~R~E6cL-d)!(U$}4dnZv$M7Yse2>iyOsQUyr*s1aKqnySo8dq1lY}h|ufJ z0V6}tJq;KW3XKAc4J~{TFfO#2?3obqu;5J$CAR=f3Z+j6Ob#^}378TJx&hgtJL&?a zhQ7Q9@M35qzc4*CiFL?~PzvKRGqkEEU{+`pWny-y%K^Zg(EeF~d7;|}0Op5|J_1+} z`r;s9VQ6J#z@pGl=ELI9JPP}g&=2jvMyK| zs#^%KD)ebJ!0ON&4FGFG#VY~UhK7^L>q2Mu1J;K&P%t-yejx`ph2oip&7sK)09!&9 zIk7c#peSHlXw!3m?V*R50XstPuLSH2B@6=W3O$((*d4l<3fL1``8;56Xi5fPU#Jf) z_lGX;1{?@oSpqm1>WGRZ&!34m9^Ci zj3Y7bkx{v(>!=FnTNRGp|N6RwbBEDD#RsA*zju^<3uTW2CBO5arV%tgKoa=V?!SWB zG>RD0AcXuO|K;~BDBZuM+}q0jg4h=~PA57R+WoI$U&I&`6VC6-{gxQ_%y53ULyUVj z7;75EjcGCN^NW4ZcwNN@#Zi8R#QqLLZ+Ok8>_cK-#7K+@|8{MU0>Yn;e@PWiyyBY< z=WgZxqRKDrzM|L%jUy^P+I?tSrqHOY4*a4%BxG!#8RDAF& z`$ttc{+M{CihU8oACunR%Kl?W4 zR>D1VshbL4yWazQmk}`Z{#|We1mp1`gd0Bk?ATQ^}F-Re!R+eZU2MV7d6(X z{MGhXP(Qkif`;BltnEj^J|5*LD<+(Aun&?eiZOR750?;ry!IT0mbj0yP{vRm_VIbx zSAl)}&A}M0VIM$@1}XX1_0_|9gws2Za7Mu1pG$hPVSiUH-(3s)U@rE1@~}Uihy5wo z`=i8y_jSen&GObT5BDAOupcP)extd{ zFID`E%skwW$iv=9PU%~DV8)R2gjAfC!9x;mL^OCr4Hh`20`*h9dcg=)*6F=@IuRFG z4@iRI-+}2oI+T_HZI{rw);}q2NXB5?3q5og4oeLf)IS}Evl4hVITsf=qcyNERgWbP zPjYmbJ9^jBh7K6OBYja%a@;D1)0^(qNvxXGvRRVSij+`G;_lpJmX=W4Il7vfRF#Hm zMz5sW3AjQ)OjQ#Ta9aaTUiV6>S`AT^Q`jkR0G)<7iVZ*2j1(NXO%O9~=HUVDl%#42 zHRU*%Qdc!7c?i^WNF3t33}F(aI!C{4*obf4#F5zr4y(Z zOGaFh5w&E*7Dt_M5*EsWp~x)>Pt=Xlw1u*4(WH|hJT#!Lt$iaL8+5d+Cv~CnT{`d5 z7Mfm^*R;$GT<5{VaYj;;?(G`3ZOM~Vy{Q!erwMWUQ<9`7TE`KOyYX7{LC(pyA%l5K zZsw2yIEC14F)EYrj+b^h@fM+_!%? zIAkcCQ^uW?=eQi4uTfCiKq0qa43XV0nh43}Hw@dLLDS`=lWd{p5Icin1X- zw3)v6Ed(I(N*>TR6%orA!q314uZ;v`tC4`3WdM&yCy2sP_{R<8sD{)dkMwJEatdw< zc~U=t(dpU@c4{M(JZWRjkOm~DA};?|eypC+q@!=({MIOgMqO{K*Wy;2iKX#ppI`ew zp$r=1@hX-&|08%~;jiPL zsQha@qI~LcjgG$#=OMhmbmK;b_J2|N*VrNt|H|4(hM@rd+J9{outxSX_~Un(Px||M ze9;$n{G|4O(TfNCH143Ms9(&Z@dV!CtXMeyE7S)xVje?&I{o@P8ZoRl{*3Z}UisJ9 z!0~=l{FSva1qLQrhZnB~NE$mRe(3MVrXQ20;=hp!a8N}NTb(x=V+)MxPU~*9u{zd2W@-4ls8Gk(v5mxE+i$^( z=v5k(zhbQZo<^My>*1H5(Ej&Sk!Ttk z%R7%@s{Lzp=365E_4rlew6IUdp#5nqjE_fuUynn>7~@~ZTU&FUhGFUWhsVikywgoP zR2b{una?qd#29xvoCjm<8CU)^mV-f?oi`5cslFc{^D_4PHS_SFRm};f(Vfwu-u$gb zdH6rp(ec+UrohBR$LNrUe{Rp=?`ll_5$oTXXS$hxaVd`fs)rraRQuQH%sc6~5o}t@ zalvt9^iTWKc7tINYsYs-$~d-J+M&W&{%7UkzX2!o@EcZEc~lVlEk5hIE869r){aZR u67+I-$+lF>y>7o*zs4j{f;rLI@t+;@GWPp{Jp4cSkmGVnjE9&< +#include +#define COB_KEYWORD_INLINE __inline +#include + +#define COB_SOURCE_FILE "hellocobol_if.cob" +#define COB_PACKAGE_VERSION "3.1.2" +#define COB_PATCH_LEVEL 0 +#define COB_MODULE_FORMATTED_DATE "Aug 04 2025 19:27:10" +#define COB_MODULE_DATE 20250804 +#define COB_MODULE_TIME 192710 + +/* Global variables */ +#include "hellocobol_if.c.h" + +/* Function prototypes */ + +static int _01_IF (); +static int _01_IF_ (const int); +static void _01_IF_module_init (cob_module *module); + +/* Main function */ +int +main (int argc, char **argv) +{ + cob_init (argc, argv); + cob_stop_run (_01_IF ()); +} + +/* Functions */ + +/* PROGRAM-ID '01_IF' */ + +/* ENTRY '_01_IF' */ + +static int +_01_IF () +{ + return _01_IF_ (0); +} + +static int +_01_IF_ (const int entry) +{ + /* Program local variables */ + #include "hellocobol_if.c.l.h" + + /* Start of function code */ + + /* CANCEL callback */ + if (unlikely(entry < 0)) { + if (entry == -10) + goto P_dump; + if (entry == -20) + goto P_clear_decimal; + goto P_cancel; + } + + /* Check initialized, check module allocated, */ + /* set global pointer, */ + /* push module stack, save call parameter count */ + if (cob_module_global_enter (&module, &cob_glob_ptr, 0, entry, 0)) + return -1; + + /* Set address of module parameter list */ + module->cob_procedure_params = cob_procedure_params; + + /* Set frame stack pointer */ + frame_ptr = frame_stack; + frame_ptr->perform_through = 0; + frame_ptr->return_address_ptr = &&P_cgerror; + frame_overflow = frame_ptr + 255 - 1; + + /* Initialize rest of program */ + if (unlikely(initialized == 0)) { + goto P_initialize; + } + P_ret_initialize: + + /* Increment module active */ + module->module_active++; + + /* Entry dispatch */ + goto l_2; + + /* PROCEDURE DIVISION */ + + /* Line: 13 : Entry 01_IF : hellocobol_if.cob */ + l_2:; +#line 13 "hellocobol_if.cob" + ENTRY_01_IF:; +#line 100 "hellocobol_if.c" +#line 15 "hellocobol_if.cob" + SECTION_MAIN_20SECTION:; +#line 103 "hellocobol_if.c" +#line 15 "hellocobol_if.cob" + cob_nop (); +#line 106 "hellocobol_if.c" + + /* Line: 15 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x0010000F; +#line 15 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 112 "hellocobol_if.c" + cob_display (0, 1, 1, &c_1); + + /* Line: 16 : ACCEPT : hellocobol_if.cob */ + module->module_stmt = 0x00100010; +#line 16 "hellocobol_if.cob" + cob_trace_stmt (st_2); +#line 119 "hellocobol_if.c" + cob_accept (&f_8); + + /* Line: 18 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100012; +#line 18 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 126 "hellocobol_if.c" + cob_display (0, 1, 1, &c_2); + + /* Line: 19 : ACCEPT : hellocobol_if.cob */ + module->module_stmt = 0x00100013; +#line 19 "hellocobol_if.cob" + cob_trace_stmt (st_2); +#line 133 "hellocobol_if.c" + cob_accept (&f_10); + + /* Line: 21 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100015; +#line 21 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 140 "hellocobol_if.c" + cob_display (0, 1, 1, &c_3); + + /* Line: 22 : ACCEPT : hellocobol_if.cob */ + module->module_stmt = 0x00100016; +#line 22 "hellocobol_if.cob" + cob_trace_stmt (st_2); +#line 147 "hellocobol_if.c" + cob_accept (&f_12); + + /* Line: 24 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100018; +#line 24 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 154 "hellocobol_if.c" + if (((int)cob_cmp_numdisp (b_8, 9, cob_get_llint (&f_10), 1) > 0)) + { + + /* Line: 25 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100019; +#line 25 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 162 "hellocobol_if.c" + cob_display (0, 1, 1, &c_4); + } + else + { + /* ELSE */ + + /* Line: 27 : IF : hellocobol_if.cob */ + module->module_stmt = 0x0010001B; +#line 27 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 173 "hellocobol_if.c" + if (((int)cob_cmp_numdisp (b_8, 9, cob_get_llint (&f_10), 1) == 0)) + { + + /* Line: 28 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x0010001C; +#line 28 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 181 "hellocobol_if.c" + cob_display (0, 1, 1, &c_5); + } + else + { + /* ELSE */ + + /* Line: 30 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x0010001E; +#line 30 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 192 "hellocobol_if.c" + cob_display (0, 1, 1, &c_6); + } + } + + /* Line: 35 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100023; +#line 35 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 201 "hellocobol_if.c" + if (((int)cob_cmp_numdisp (b_8, 9, 0, 1) > 0)) + { + + /* Line: 36 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100024; +#line 36 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 209 "hellocobol_if.c" + cob_display (0, 1, 1, &c_7); + } + + /* Line: 39 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100027; +#line 39 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 217 "hellocobol_if.c" + if (((int)cob_cmp_numdisp (b_8, 9, 0, 1) < 0)) + { + + /* Line: 40 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100028; +#line 40 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 225 "hellocobol_if.c" + cob_display (0, 1, 1, &c_8); + } + + /* Line: 44 : IF : hellocobol_if.cob */ + module->module_stmt = 0x0010002C; +#line 44 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 233 "hellocobol_if.c" + if (cob_is_numeric (&f_12)) + { + + /* Line: 46 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x0010002E; +#line 46 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 241 "hellocobol_if.c" + cob_display (0, 1, 1, &c_9); + } + + /* Line: 49 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100031; +#line 49 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 249 "hellocobol_if.c" + if (cob_is_alpha (&f_12)) + { + + /* Line: 50 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100032; +#line 50 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 257 "hellocobol_if.c" + cob_display (0, 1, 1, &c_10); + } + + /* Line: 55 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100037; +#line 55 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 265 "hellocobol_if.c" + if ((((int)cob_cmp_numdisp (b_8, 9, 100LL, 1) >= 0) && + ((int)cob_cmp_numdisp (b_8, 9, 9999LL, 1) <= 0))) + { + + /* Line: 56 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100038; +#line 56 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 274 "hellocobol_if.c" + cob_display (0, 1, 1, &c_11); + } + + /* Line: 59 : IF : hellocobol_if.cob */ + module->module_stmt = 0x0010003B; +#line 59 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 282 "hellocobol_if.c" + if (!(((int)cob_cmp_numdisp (b_8, 9, 100LL, 1) >= 0) && + ((int)cob_cmp_numdisp (b_8, 9, 9999LL, 1) <= 0))) + { + + /* Line: 60 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x0010003C; +#line 60 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 291 "hellocobol_if.c" + cob_display (0, 1, 1, &c_12); + } + + /* Line: 63 : IF : hellocobol_if.cob */ + module->module_stmt = 0x0010003F; +#line 63 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 299 "hellocobol_if.c" + if ((((int)cob_cmp_numdisp (b_10, 9, 100LL, 1) >= 0) && + ((int)cob_cmp_numdisp (b_10, 9, 9999LL, 1) <= 0))) + { + + /* Line: 64 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100040; +#line 64 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 308 "hellocobol_if.c" + cob_display (0, 1, 1, &c_13); + } + + /* Line: 67 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100043; +#line 67 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 316 "hellocobol_if.c" + if (!(((int)cob_cmp_numdisp (b_10, 9, 100LL, 1) >= 0) && + ((int)cob_cmp_numdisp (b_10, 9, 9999LL, 1) <= 0))) + { + + /* Line: 68 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100044; +#line 68 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 325 "hellocobol_if.c" + cob_display (0, 1, 1, &c_14); + } + + /* Line: 72 : IF : hellocobol_if.cob */ + module->module_stmt = 0x00100048; +#line 72 "hellocobol_if.cob" + cob_trace_stmt (st_3); +#line 333 "hellocobol_if.c" + if (((((int)cob_cmp_numdisp (b_8, 9, 100LL, 1) >= 0) && + ((int)cob_cmp_numdisp (b_8, 9, 9999LL, 1) <= 0)) && + (((int)cob_cmp_numdisp (b_10, 9, 100LL, 1) >= 0) && + ((int)cob_cmp_numdisp (b_10, 9, 9999LL, 1) <= 0)))) + { + + /* Line: 73 : DISPLAY : hellocobol_if.cob */ + module->module_stmt = 0x00100049; +#line 73 "hellocobol_if.cob" + cob_trace_stmt (st_1); +#line 344 "hellocobol_if.c" + cob_display (0, 1, 1, &c_15); + } + + /* Line: 76 : STOP RUN : hellocobol_if.cob */ + module->module_stmt = 0x0010004C; +#line 76 "hellocobol_if.cob" + cob_trace_stmt (st_4); +#line 352 "hellocobol_if.c" + cob_stop_run (b_2); + + module->module_stmt = 0x00100050; + + /* Program exit */ + + /* Decrement module active count */ + if (module->module_active) { + module->module_active--; + } + + /* Pop module stack */ + cob_module_leave (module); + + /* Program return */ + return b_2; + P_cgerror: + cob_fatal_error (COB_FERROR_CODEGEN); + + + /* Program initialization */ + P_initialize: + + cob_check_version (COB_SOURCE_FILE, COB_PACKAGE_VERSION, COB_PATCH_LEVEL); + + cob_module_path = cob_glob_ptr->cob_main_argv0; + + _01_IF_module_init (module); + + module->crt_status = NULL; + + /* Initialize cancel callback */ + cob_set_cancel (module); + + /* Initialize WORKING-STORAGE */ + b_2 = 0; + memset (b_8, 48, 9); + memcpy (b_10, "000000001", 9); + memset (b_12, 32, 1); + memset (b_12 + 1, ' ', 8); + + if (0 == 1) goto P_cgerror; + initialized = 1; + goto P_ret_initialize; + + P_dump: + return 0; + + + /* CANCEL callback handling */ + P_cancel: + + if (!initialized) + return 0; + if (module && module->module_active) + cob_fatal_error (COB_FERROR_CANCEL); + + initialized = 0; + + P_clear_decimal: + return 0; + +} + +/* End PROGRAM-ID '01_IF' */ + +/* Initialize module structure for 01_IF */ +static void _01_IF_module_init (cob_module *module) +{ + module->module_name = "01_IF"; + module->module_formatted_date = COB_MODULE_FORMATTED_DATE; + module->module_source = COB_SOURCE_FILE; + module->module_entry.funcptr = (void *(*)())_01_IF; + module->module_cancel.funcptr = (void *(*)())_01_IF_; + module->module_ref_count = NULL; + module->module_path = &cob_module_path; + module->module_active = 0; + module->module_date = COB_MODULE_DATE; + module->module_time = COB_MODULE_TIME; + module->module_type = 0; + module->module_param_cnt = 0; + module->ebcdic_sign = 0; + module->decimal_point = '.'; + module->currency_symbol = '$'; + module->numeric_separator = ','; + module->flag_filename_mapping = 1; + module->flag_binary_truncate = 1; + module->flag_pretty_display = 1; + module->flag_host_sign = 0; + module->flag_no_phys_canc = 1; + module->flag_main = 1; + module->flag_fold_call = 0; + module->flag_exit_program = 0; + module->flag_debug_trace = 0; + module->flag_dump_ready = 0; + module->module_stmt = 0; + module->module_sources = st_source_files; +} + +/* End functions */ + diff --git a/tests/hellocobol/hellocobol_if.c.h b/tests/hellocobol/hellocobol_if.c.h new file mode 100644 index 0000000..99fdf08 --- /dev/null +++ b/tests/hellocobol/hellocobol_if.c.h @@ -0,0 +1,49 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol_if.cob */ +/* Generated at Aug 04 2025 19:27:10 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol_if hellocobol_if.cob */ + + +/* Module path */ +static const char *cob_module_path = NULL; + +/* Number of call parameters */ +static int cob_call_params = 0; + +/* Attributes */ + +static const cob_field_attr a_1 = {0x21, 0, 0, 0x1000, NULL}; +static const cob_field_attr a_2 = {0x10, 9, 0, 0x0001, NULL}; +static const cob_field_attr a_3 = {0x21, 0, 0, 0x0000, NULL}; + + +/* Constants */ +static const cob_field c_1 = {16, (cob_u8_ptr)"ENTER number 1: ", &a_1}; +static const cob_field c_2 = {16, (cob_u8_ptr)"ENTER number 2: ", &a_1}; +static const cob_field c_3 = {17, (cob_u8_ptr)"ENTER some data: ", &a_1}; +static const cob_field c_4 = {31, (cob_u8_ptr)"Number1 is greater than Number2", &a_1}; +static const cob_field c_5 = {22, (cob_u8_ptr)"Number1 equals Number2", &a_1}; +static const cob_field c_6 = {28, (cob_u8_ptr)"Number1 is less than Number2", &a_1}; +static const cob_field c_7 = {19, (cob_u8_ptr)"Number1 is positive", &a_1}; +static const cob_field c_8 = {19, (cob_u8_ptr)"Number1 is negative", &a_1}; +static const cob_field c_9 = {12, (cob_u8_ptr)"Numeric data", &a_1}; +static const cob_field c_10 = {15, (cob_u8_ptr)"Alphabetic data", &a_1}; +static const cob_field c_11 = {27, (cob_u8_ptr)"Number1 is greater than 100", &a_1}; +static const cob_field c_12 = {24, (cob_u8_ptr)"Number1 is less than 100", &a_1}; +static const cob_field c_13 = {27, (cob_u8_ptr)"Number2 is greater than 100", &a_1}; +static const cob_field c_14 = {24, (cob_u8_ptr)"Number2 is less than 100", &a_1}; +static const cob_field c_15 = {36, (cob_u8_ptr)"Both of numbers are greater than 100", &a_1}; + + +/* Strings */ +static const char st_1[] = "DISPLAY"; +static const char st_2[] = "ACCEPT"; +static const char st_3[] = "IF"; +static const char st_4[] = "STOP RUN"; + + +/* Source file names */ +static const char *st_source_files[] = { "" + ,"hellocobol_if.cob"}; diff --git a/tests/hellocobol/hellocobol_if.c.l.h b/tests/hellocobol/hellocobol_if.c.l.h new file mode 100644 index 0000000..3198747 --- /dev/null +++ b/tests/hellocobol/hellocobol_if.c.l.h @@ -0,0 +1,44 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol_if.cob */ +/* Generated at Aug 04 2025 19:27:10 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol_if hellocobol_if.cob */ + +/* Program local variables for '01_IF' */ + +/* Module initialization indicator */ +static unsigned int initialized = 0; + +/* Module structure pointer */ +static cob_module *module = NULL; + +/* Global variable pointer */ +cob_global *cob_glob_ptr; + + +/* Call parameters */ +cob_field *cob_procedure_params[1]; + +/* Perform frame stack */ +struct cob_frame *frame_overflow; +struct cob_frame *frame_ptr; +struct cob_frame frame_stack[255]; + + +/* Data storage */ +static int b_2; /* RETURN-CODE */ +static cob_u8_t b_8[9] __attribute__((aligned)); /* var-num1 */ +static cob_u8_t b_10[9] __attribute__((aligned)); /* var-num2 */ +static cob_u8_t b_12[9] __attribute__((aligned)); /* var-data */ + +/* End of local data storage */ + + +/* Fields (local) */ +static cob_field f_8 = {9, b_8, &a_2}; /* var-num1 */ +static cob_field f_10 = {9, b_10, &a_2}; /* var-num2 */ +static cob_field f_12 = {9, b_12, &a_3}; /* var-data */ + +/* End of fields */ + diff --git a/tests/hellocobol/hellocobol_if.cob b/tests/hellocobol/hellocobol_if.cob new file mode 100644 index 0000000..b9d6eda --- /dev/null +++ b/tests/hellocobol/hellocobol_if.cob @@ -0,0 +1,79 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. 01_IF. + + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 var-num1 PIC S9(9) VALUE 0. + 88 var-pass1 VALUES ARE 100 THRU 9999. + 01 var-num2 PIC S9(9) VALUE 1. + 88 var-pass2 VALUES ARE 100 THRU 9999. + 01 var-data PIC X(9) VALUE ' '. + + + PROCEDURE DIVISION. + + DISPLAY 'ENTER number 1: ' + ACCEPT var-num1. + + DISPLAY 'ENTER number 2: ' + ACCEPT var-num2. + + DISPLAY 'ENTER some data: ' + ACCEPT var-data. + + IF var-num1>var-num2 THEN + DISPLAY 'Number1 is greater than Number2' + ELSE + IF var-num1 = var-num2 THEN + DISPLAY 'Number1 equals Number2' + ELSE + DISPLAY 'Number1 is less than Number2' + END-IF + END-IF. + + + IF var-num1 IS POSITIVE then + DISPLAY 'Number1 is positive' + END-IF. + + IF var-num1 IS NEGATIVE then + DISPLAY 'Number1 is negative' + END-IF. + + + IF var-data IS NUMERIC THEN + * It's false because var-data is X(9). + DISPLAY 'Numeric data' + END-IF. + + IF var-data IS ALPHABETIC THEN + DISPLAY 'Alphabetic data' + END-IF. + + + + IF var-pass1 THEN + DISPLAY 'Number1 is greater than 100' + END-IF. + + IF NOT var-pass1 THEN + DISPLAY 'Number1 is less than 100' + END-IF. + + IF var-pass2 THEN + DISPLAY 'Number2 is greater than 100' + END-IF. + + IF NOT var-pass2 THEN + DISPLAY 'Number2 is less than 100' + END-IF. + + + IF var-pass1 AND var-pass2 THEN + DISPLAY 'Both of numbers are greater than 100' + END-IF. + + STOP RUN. + + + diff --git a/tests/hellocobol/hellocobol_variables b/tests/hellocobol/hellocobol_variables new file mode 100755 index 0000000000000000000000000000000000000000..e83f5eba33f0f39e7c490353f8e3021009652b02 GIT binary patch literal 84720 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 +#include +#define COB_KEYWORD_INLINE __inline +#include + +#define COB_SOURCE_FILE "hellocobol_variables.cob" +#define COB_PACKAGE_VERSION "3.1.2" +#define COB_PATCH_LEVEL 0 +#define COB_MODULE_FORMATTED_DATE "Aug 04 2025 19:18:38" +#define COB_MODULE_DATE 20250804 +#define COB_MODULE_TIME 191838 + +/* Global variables */ +#include "hellocobol_variables.c.h" + +/* Function prototypes */ + +static int _02_VARIABLES (); +static int _02_VARIABLES_ (const int); +static void _02_VARIABLES_module_init (cob_module *module); + +/* Main function */ +int +main (int argc, char **argv) +{ + cob_init (argc, argv); + cob_stop_run (_02_VARIABLES ()); +} + +/* Functions */ + +/* PROGRAM-ID '02_VARIABLES' */ + +/* ENTRY '_02_VARIABLES' */ + +static int +_02_VARIABLES () +{ + return _02_VARIABLES_ (0); +} + +static int +_02_VARIABLES_ (const int entry) +{ + /* Program local variables */ + #include "hellocobol_variables.c.l.h" + + /* Start of function code */ + + /* CANCEL callback */ + if (unlikely(entry < 0)) { + if (entry == -10) + goto P_dump; + if (entry == -20) + goto P_clear_decimal; + goto P_cancel; + } + + /* Check initialized, check module allocated, */ + /* set global pointer, */ + /* push module stack, save call parameter count */ + if (cob_module_global_enter (&module, &cob_glob_ptr, 0, entry, 0)) + return -1; + + /* Set address of module parameter list */ + module->cob_procedure_params = cob_procedure_params; + + /* Set frame stack pointer */ + frame_ptr = frame_stack; + frame_ptr->perform_through = 0; + frame_ptr->return_address_ptr = &&P_cgerror; + frame_overflow = frame_ptr + 255 - 1; + + /* Initialize rest of program */ + if (unlikely(initialized == 0)) { + goto P_initialize; + } + P_ret_initialize: + + /* Increment module active */ + module->module_active++; + + /* Entry dispatch */ + goto l_2; + + /* PROCEDURE DIVISION */ + + /* Line: 28 : Entry 02_VARIABLES : hellocobol_variables.cob */ + l_2:; +#line 28 "hellocobol_variables.cob" + ENTRY_02_VARIABLES:; +#line 100 "hellocobol_variables.c" +#line 29 "hellocobol_variables.cob" + SECTION_MAIN_20SECTION:; +#line 103 "hellocobol_variables.c" +#line 29 "hellocobol_variables.cob" + cob_nop (); +#line 106 "hellocobol_variables.c" + + /* Line: 29 : DISPLAY : hellocobol_variables.cob */ + module->module_stmt = 0x0010001D; +#line 29 "hellocobol_variables.cob" + cob_trace_stmt (st_1); +#line 112 "hellocobol_variables.c" + cob_display (0, 1, 1, &f_8); + + /* Line: 30 : DISPLAY : hellocobol_variables.cob */ + module->module_stmt = 0x0010001E; +#line 30 "hellocobol_variables.cob" + cob_trace_stmt (st_1); +#line 119 "hellocobol_variables.c" + cob_display (0, 1, 1, &f_16); + + /* Line: 32 : MOVE : hellocobol_variables.cob */ + module->module_stmt = 0x00100020; +#line 32 "hellocobol_variables.cob" + cob_trace_stmt (st_2); +#line 126 "hellocobol_variables.c" + memcpy (b_17, "01", 2); + + /* Line: 33 : MOVE : hellocobol_variables.cob */ + module->module_stmt = 0x00100021; +#line 33 "hellocobol_variables.cob" + cob_trace_stmt (st_2); +#line 133 "hellocobol_variables.c" + cob_move ((cob_field *)&c_1, &f_20); + + /* Line: 35 : DISPLAY : hellocobol_variables.cob */ + module->module_stmt = 0x00100023; +#line 35 "hellocobol_variables.cob" + cob_trace_stmt (st_1); +#line 140 "hellocobol_variables.c" + cob_display (0, 1, 1, &f_17); + + /* Line: 36 : STOP RUN : hellocobol_variables.cob */ + module->module_stmt = 0x00100024; +#line 36 "hellocobol_variables.cob" + cob_trace_stmt (st_3); +#line 147 "hellocobol_variables.c" + cob_stop_run (b_2); + + module->module_stmt = 0x00100026; + + /* Program exit */ + + /* Decrement module active count */ + if (module->module_active) { + module->module_active--; + } + + /* Pop module stack */ + cob_module_leave (module); + + /* Program return */ + return b_2; + P_cgerror: + cob_fatal_error (COB_FERROR_CODEGEN); + + + /* Program initialization */ + P_initialize: + + cob_check_version (COB_SOURCE_FILE, COB_PACKAGE_VERSION, COB_PATCH_LEVEL); + + cob_module_path = cob_glob_ptr->cob_main_argv0; + + _02_VARIABLES_module_init (module); + + module->crt_status = NULL; + + /* Initialize cancel callback */ + cob_set_cancel (module); + + /* Initialize WORKING-STORAGE */ + b_2 = 0; + memcpy (b_8, "lp", 2); + *(cob_u8_ptr)(b_8 + 2) = 124; + memcpy (b_8 + 3, " number", 10); + *(cob_u8_ptr)(b_8 + 13) = 124; + memcpy (b_8 + 14, " decimal", 10); + *(cob_u8_ptr)(b_8 + 24) = 124; + memcpy (b_8 + 25, " currency", 10); + memset (b_16, 45, 80); + memset (b_17, 48, 2); + *(cob_u8_ptr)(b_17 + 2) = 124; + cob_move ((cob_field *)&c_2, &f_20); + *(cob_u8_ptr)(b_17 + 13) = 124; + cob_move ((cob_field *)&c_3, COB_SET_FLD(f0, 11, b_17 + 14, &a_7)); + *(cob_u8_ptr)(b_17 + 25) = 124; + cob_move ((cob_field *)&c_4, COB_SET_FLD(f0, 11, b_17 + 26, &a_9)); + + if (0 == 1) goto P_cgerror; + initialized = 1; + goto P_ret_initialize; + + P_dump: + return 0; + + + /* CANCEL callback handling */ + P_cancel: + + if (!initialized) + return 0; + if (module && module->module_active) + cob_fatal_error (COB_FERROR_CANCEL); + + initialized = 0; + + P_clear_decimal: + return 0; + +} + +/* End PROGRAM-ID '02_VARIABLES' */ + +/* Initialize module structure for 02_VARIABLES */ +static void _02_VARIABLES_module_init (cob_module *module) +{ + module->module_name = "02_VARIABLES"; + module->module_formatted_date = COB_MODULE_FORMATTED_DATE; + module->module_source = COB_SOURCE_FILE; + module->module_entry.funcptr = (void *(*)())_02_VARIABLES; + module->module_cancel.funcptr = (void *(*)())_02_VARIABLES_; + module->module_ref_count = NULL; + module->module_path = &cob_module_path; + module->module_active = 0; + module->module_date = COB_MODULE_DATE; + module->module_time = COB_MODULE_TIME; + module->module_type = 0; + module->module_param_cnt = 0; + module->ebcdic_sign = 0; + module->decimal_point = '.'; + module->currency_symbol = '$'; + module->numeric_separator = ','; + module->flag_filename_mapping = 1; + module->flag_binary_truncate = 1; + module->flag_pretty_display = 1; + module->flag_host_sign = 0; + module->flag_no_phys_canc = 1; + module->flag_main = 1; + module->flag_fold_call = 0; + module->flag_exit_program = 0; + module->flag_debug_trace = 0; + module->flag_dump_ready = 0; + module->module_stmt = 0; + module->module_sources = st_source_files; +} + +/* End functions */ + diff --git a/tests/hellocobol/hellocobol_variables.c.h b/tests/hellocobol/hellocobol_variables.c.h new file mode 100644 index 0000000..1b34a70 --- /dev/null +++ b/tests/hellocobol/hellocobol_variables.c.h @@ -0,0 +1,65 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol_variables.cob */ +/* Generated at Aug 04 2025 19:18:38 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol_variables hellocobol_variables.cob */ + + +/* Module path */ +static const char *cob_module_path = NULL; + +/* Number of call parameters */ +static int cob_call_params = 0; + +/* Picture strings */ + +static const cob_pic_symbol p_1[] = { + {'Z', 10}, + {'\0', 1} +}; +static const cob_pic_symbol p_2[] = { + {'+', 1}, + {'Z', 7}, + {'.', 1}, + {'Z', 2}, + {'\0', 1} +}; +static const cob_pic_symbol p_3[] = { + {'$', 1}, + {'Z', 7}, + {'.', 1}, + {'Z', 2}, + {'\0', 1} +}; + + +/* Attributes */ + +static const cob_field_attr a_1 = {0x01, 0, 0, 0x0000, NULL}; +static const cob_field_attr a_2 = {0x21, 0, 0, 0x0000, NULL}; +static const cob_field_attr a_3 = {0x10, 4, 0, 0x1000, NULL}; +static const cob_field_attr a_4 = {0x24, 10, 0, 0x0000, p_1}; +static const cob_field_attr a_5 = {0x10, 1, 0, 0x1000, NULL}; +static const cob_field_attr a_6 = {0x10, 5, 2, 0x0007, NULL}; +static const cob_field_attr a_7 = {0x24, 9, 2, 0x0001, p_2}; +static const cob_field_attr a_8 = {0x10, 5, 2, 0x1000, NULL}; +static const cob_field_attr a_9 = {0x24, 9, 2, 0x0000, p_3}; + + +/* Constants */ +static const cob_field c_1 = {4, (cob_u8_ptr)"3721", &a_3}; +static const cob_field c_2 = {1, (cob_u8_ptr)"0", &a_5}; +static const cob_field c_3 = {6, (cob_u8_ptr)"-31721", &a_6}; +static const cob_field c_4 = {5, (cob_u8_ptr)"31721", &a_8}; + + +/* Strings */ +static const char st_1[] = "DISPLAY"; +static const char st_2[] = "MOVE"; +static const char st_3[] = "STOP RUN"; + + +/* Source file names */ +static const char *st_source_files[] = { "" + ,"hellocobol_variables.cob"}; diff --git a/tests/hellocobol/hellocobol_variables.c.l.h b/tests/hellocobol/hellocobol_variables.c.l.h new file mode 100644 index 0000000..16da3d1 --- /dev/null +++ b/tests/hellocobol/hellocobol_variables.c.l.h @@ -0,0 +1,49 @@ +/* Generated by cobc 3.1.2.0 */ +/* Generated from hellocobol_variables.cob */ +/* Generated at Aug 04 2025 19:18:38 */ +/* GnuCOBOL build date Jul 15 2023 12:00:00 */ +/* GnuCOBOL package date Dec 23 2020 12:04:58 UTC */ +/* Compile command cobc -x -g -o hellocobol_variables hellocobol_variables.cob */ + +/* Program local variables for '02_VARIABLES' */ + +/* Module initialization indicator */ +static unsigned int initialized = 0; + +/* Module structure pointer */ +static cob_module *module = NULL; + +/* Global variable pointer */ +cob_global *cob_glob_ptr; + + +/* Local cob_field items */ +cob_field f0; + + +/* Call parameters */ +cob_field *cob_procedure_params[1]; + +/* Perform frame stack */ +struct cob_frame *frame_overflow; +struct cob_frame *frame_ptr; +struct cob_frame frame_stack[255]; + + +/* Data storage */ +static int b_2; /* RETURN-CODE */ +static cob_u8_t b_8[35] __attribute__((aligned)); /* struct-headers */ +static cob_u8_t b_16[80] __attribute__((aligned)); /* var-line */ +static cob_u8_t b_17[37] __attribute__((aligned)); /* struct-row */ + +/* End of local data storage */ + + +/* Fields (local) */ +static cob_field f_8 = {35, b_8, &a_1}; /* struct-headers */ +static cob_field f_16 = {80, b_16, &a_2}; /* var-line */ +static cob_field f_17 = {37, b_17, &a_1}; /* struct-row */ +static cob_field f_20 = {10, b_17 + 3, &a_4}; /* var-number */ + +/* End of fields */ + diff --git a/tests/hellocobol/hellocobol_variables.cob b/tests/hellocobol/hellocobol_variables.cob new file mode 100644 index 0000000..a3cad0f --- /dev/null +++ b/tests/hellocobol/hellocobol_variables.cob @@ -0,0 +1,37 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. 02_VARIABLES. + + DATA DIVISION. + WORKING-STORAGE SECTION. + + 01 struct-headers. + 02 filler PIC x(2) VALUE "lp". + 02 filler PIC x VALUE "|". + 02 filler PIC x(10) VALUE " number". + 02 filler PIC x VALUE "|". + 02 filler PIC x(10) VALUE " decimal". + 02 filler PIC x VALUE "|". + 02 filler PIC x(10) VALUE " currency". + + + 01 var-line PIC x(80) VALUE ALL "-". + + 01 struct-row. + 02 var-lp PIC 9(2) VALUE 00. + 02 filler PIC x VALUE "|". + 02 var-number PIC z(10) VALUE 0. + 02 filler PIC x VALUE "|". + 02 var-decimal PIC +z(7).zz VALUE -317.21. + 02 filler PIC x VALUE "|". + 02 var-currency PIC $z(7).zz VALUE 317.21. + + PROCEDURE DIVISION. + DISPLAY struct-headers. + DISPLAY var-line. + + MOVE 01 TO var-lp. + MOVE 3721 TO var-number. + + DISPLAY struct-row. + STOP RUN. +