�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!usr/bin/bc000075500000275750152525002140006453 0ustar00ELF>@(t@8 @@@@00pppXHXH  L L! L! 8L8L!8L!   DDPtd(((QtdRtd L L! L!/lib64/ld-linux-x86-64.so.2GNUGNUGNUȝvo2C! 258(BE|fUaqX92䫐LgF n R`=gt-Y&. K?(= }6"R!KR!^U!0R!RR! S!R!hS!WS!libreadline.so.7_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTablerl_readline_namerl_instreamreadlineunstifle_historyusing_historyadd_historylibncurses.so.6libtinfo.so.6libc.so.6getcfflush__printf_chkexitfopenoptindsignalstrncpyputs__stack_chk_failputcharreallocstdinstrdup__assert_failstrtolisattycallocstrlenmemset__errno_locationread__fprintf_chkstdoutfputcmemcpyfclosemallocstrcat__ctype_b_locgetenvstderr__snprintf_chkgetopt_longfilenofwrite__vfprintf_chk__cxa_finalizesetvbufstrcmp__libc_start_mainrandomfree_edata__bss_start_endGLIBC_2.3GLIBC_2.14GLIBC_2.4GLIBC_2.3.4GLIBC_2.2.5ii cmii xti ui  L!p (L!0 0L!0L! P!10P!S!@P!9`P!>P!JP!S!P!RP!S!P!XP!S!P!aQ!iQ!S!`Q!hQ!pQ!xQ!8Q!xQ!Q!Q!8Q!`Q!Q!Q! Q!hQ!Q!Q!Q!8Q!xQ!Q!R!8R!R!xR! R!(R!0R!88R!x@R!HR!PR!8 XR!x `R! hR!!pR!P!xR!!R!!R!"R!@"R!"R!"R!#R!H#R!#R!#R!$O! O!O!O!,O!/R!2R!5R!8S!9S!: S!7pN!xN!N!N!N!N!N!N!N! N! N! N! N!N!N!N!N!N!O!O!O!O! O!(O!0O!8O!@O!HO!PO! XO!!`O!"hO!#pO!$xO!%O!&O!'O!(O!)O!*O!+O!-O!.O!/O!0O!1HH8!HtH56!%6!hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!%4!D% 4!D%4!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%3!D%}3!D%u3!D%m3!D%e3!D%]3!D%U3!D%M3!D%E3!D%=3!D%53!D%-3!D%%3!D%3!D%3!D% 3!D%3!D%2!D%2!D%2!D%2!D%2!D%2!D%2!D%2!D%2!D%2!DH% q|% _|% fATIU1SHdH%(H$1bH=S5!1ɺ1H=aHHt7H=M%H$t<  HuHLH=THt 5!H= 9Ht 1Hs6!t `6!FwcbV=5!`z[~6!4!K6!^=S5!>5!11H$dH3 %(H[]A\f.HWt fHuHcHb4!V VkHH3!H3!H3!2H55K1I^HHPTL6H H="0!H=3!H3!H9tH/!Ht H=2!H52!H)HHH?HHtH/!HtfD=2!u+UH=/!Ht H=+!d2!]wHHEHPHuL fPHLPH׻H PH5غ1H(ff.AUATL%5/!USHHdH%(HD$1Ll$1!MLHHމl%c~Bhtuiu<2!sts~AvwuQ2!tH;芅mDqu2!T@H;1Y<@1!)1!1! [1;-0! ^fDHAH0!0!9}@wHc 0!HH H@HH 0!HuHB1!HD$dH3%(u H[]A\A]HH521HW0!SB=B0!uxH0!HhH8H5iHHe=0!H=0!H0!/!HH0!HGHn0![f.H=,dH~H=TKH~H=G2H~H=$H~H=Hs~H=HZ~H=S-!HtHG-![RHH;HuH/!H=.!H.!t&H.![.!0!Hy.!H=.!H9/!H=.!HHH1zH=.!D_Df.=/!/!u @1f.=.!SHtH(.![.!H=.!H.![-!f.fAWE1AVL5AUE1ATUSH8dH%(H$(1L$L|$PO.!I.!MLfDL$PD$ L$L|$McG,FDAp.! =$AUHcH5 V9sHD,PEDAE~9|$ H-!L-!HSH|$ @f.IcH5HD$ )ЈT$HL,ApHEJcH>CutH=<1wHL!HIHCHD$(<<<={<>uHD$(x=H=`mH|$(&fDD$Ht$ LHHH)HNH)0H9H[LjHR5HBwHcH=f;4W9HD,BDfAHD-LaITI9LL)HHH'OH=''HFHDH|H(L$LHHLH4$HL hHD$LL;|$HL$ItLH$HL$L $HD-Nd!HDI\I9L $IA6M1@HFEDD$ E]|$ u$+!H fM9tkII$HE,FAptAAwMcH fB%!e%!%!Pq%!w%!rCJ%!D [%!LZHHc5$!H=$!CAA-%!1D P%!/H=$!ce$!HHc5$!LD $!H=$!HP1H=m$!AZA[eC$!C؉$!H=cdH=d1dwH=1AoD Z$!EH=֭1mNHc5#!D l$!1LH=#!H/H=#!cdC؉6$!D #!EH==1mHH=I!dHHHD$( dHD$(H1H=inD #!Hc5##!L}H=#!HD AAd#!1mH="!cLDKHc5"!H="!A=t4LH1 H="!TcHc5"!H="!DKELʭH1H=h"!cHI!;=DKHc55"!H=6"!E+LH1H= "!bbHH=I!b=2!H=̠1\[H=1"]=H=^1]H=Q1[H=1T$([T$(+Hc5!H=!1L2HDH=[1q[H=q1^[H=G1{\wH=K18[H=!1U\H=)1[*H=71Z,H=1\H=Ӛ1ZGH=͞1[)H=eQIH=1T$(ZT$(%H=1ZH=˟1T$(pZT$(IH=1YZ9H=/PHD$(x=tXH=PwHLҜAQH=-1ZbAL5H1UH=PHLfAQH=[aP7H=PPfDL!!AWAVAUATUSH !H\$I9D5!L-!E1H-<L LL=gL@H9fAt H 4Hcȿf|MMEDEDE@AJ=;~4HcAIHcADMcHLE)LLYH:!H#!H!D5!1EL,D%!M}Eg HHH!!{L !L%!!|!K@ H=hH=y\ff.USHHk!p!HKuQHc!H5l!H4HcI!HVH9r/H-!H *!MtDt3twH!HKSH !!H[]fDH=!$/t#!SH=!B@H[]@H)HcH!HKfAWAVAUATUSH(5l!b!Df!H5S!HcL5H:A VSH-L=îL%L-DHt$D!L !1AfH FDELEAEB HAD=;~ALHcSLcF\]A9uՉHI WKHA Nf*tD두@tL d!De!H|$HAuHcK!H5<!AFHH=!H)H5;! ! 5!1HcH>*t/Y t!5x*tՃ" u!Y*uf!u !H=p!H=Z!H!HtKH!HHt;HpP Hp!H)!S!H5!DH5I!DN!@HQ!@H5!H=!HH.!HH!HHO!H!H!HXH?!H=!H!.H Q!H=ȥHc!HA VSD!H5!_H([]A\A]A^A_H!!X!Hc 5!H5$!A N7!HLA!H+ !H!!NAP<Hc!I@H9!Ht$H|$L$H|$Ht$HcL$]Hc!HA VS#$H=!FH!H-!HHHD8.u H-j!EH<0u H<0t<L%lHt,<\u!HH<,EHuEH= !EH H= E1H H t/ u|!1Ҁ8"Hu߸1H=sI:! oe[QH5I <Z<~,H=v1IHc HA VS  =HGH=  HO GGM  Hc D H5 HA VSqg ] S  6  11ɸ H  H= CH Hc5 H H= Y1!yHq ` _Hc  HA VS'L1EH1H=GHc HA VS1H=dFHce HA VSp@H= H5 HH5< Ht$ H= Ht$H|$HcDA VSH % H Hc5 HHpH5 Ht$H=_ Ht$HHcHt$H|$ H|$Ht$Hq H=D Hch HA VSIc@ L  A@<N MGH=w H5 HcHH5 Ht$Ht$HHcfA HD$@|PHHD$0A#tHD$@HD$@Ht$81HA[DL"lHt$(1HH|$0ZHT$Ht$81H|$@h[Aǃ# A9DN|$H|$0A#~Ht$@DH\H|$ Ht$01HT$ DZ|$H|$ dHH=r HT$ 1PH|$ D@AsATUHSHWdH%(HD$1HDRH)H HL@M A<.><:6D1AHȀ.t:u.DU1Au! =1 +IH$HH 1 HUHH)H HHPEpu:t.tHA wHfDH<$!HD$dH3%(H[]A\D1DA<:Q1A<:uDUACiHH$H@ HHeD<.tDU1AH= D EdILMLiH<$\ EH upH a HH)H|0z,HH)H6 HHx(Y,e tuH=f t@H=S u=>  HD$dH3%(IH([]A\A]A^A_ÐH H8K  H 5 H<HH)L\DH H8K 3 H F D H4HH)AxLLƉ=l MJG5Z J B, ZC MZf.F# C<@ )>H H@H8J  [= f.H HPHH2H0H fHn 5l C<@"t?D .L HH)IHP5 H , <@"uH= z%DFH HPH0H:I j= fF C<@e #fDH H8I@Fc CHH)H4<Ht$ H H=H41/<*f.FH HPH0H:H i= H H= 1H0HEIF C<@!Fk C<@ %g1=T@F3 C<@%"/5 C<I@@IcH LHxH0H?`H H@H8GH H8]GH=W1:ofnHg HPH0H:F = 7F C<@%Iz0& L HH)IHx(& H V 5 ‰ H<H)L\[Fs C<@ET"oFK C<@}< GXH Hc0H H=H H)5 H8>fWH= JDH fA@D‰ A<@"^@\ADk A<"<\<wIcL>fDH=i Gf.H' HPH0H:D = H= H HPH0H:@Do "=c v~Hw = LHxH0H?OGf.v>H7 H@H8CD= = fD&H H8CH=16@H HPH0H:(CW =K ^yf^HW 1LHxH0H?C.f.H' 1LHxH0H?LH|$LgBfH LHxH0H?NtH=_15H=n15f.\&L DO HH)ILHH5] H=H5߫xf.~= G5 A49Iz HcLI?IIIqMtHHHuHJHWHT$<@??0@H|$7fD L@H=1j&HD$ { HxH|$@HDHGHD$?5= H|$?H|$HH|$fH H|$|HWHT$Gd A;;HxH|$1[ H|$H  H Lo)۝f.AUAATIUS1HdHA~rADDHDHHtI<HuHDHHuHH[]A\A]fk3HDHHtI<HuHDDAWAVAUATUSHD%+ L-` H-q AD$  HH<H)HHc= H* HqH2 E!H A|$11 HAoDAoLLAoT T It0Ht0HtH8H4HqH9uD9%o EIcL4I)I fDH L1AfI8D9=$ HCHCHCHC HC0HC(EuH[]A\A]A^A_fDLHH[]A\A]A^A_ښf. E1H 6fDATD% UH- SA|$ H = HcHHc= H HH A|A|$H HH4H4HtH4HH9u( IcD9~ HH9Eu []A\fDH[H]A\ܙ@ H ; Df.ATD% UH- SA|$ H~ = HcHHc=u H^ HHV A|A|$H 8 HH4H4HtH4HH9u IcD9~ HH9Eu []A\fDH[H]A\ܘ@ H Df.S H= HAfDHa HcHHt=H8HfH=a 5 H=7 HnAfDH=9 HUSHc߿H)u H[]fDH H8>HH=wHu9H H8%u&H' H=H4H1[]HfHHtH;H[]+f.Ht[~1uk x= H鳍uD  H  HcHtH5 H81HHF%fDv ~ni HH=A1 HOH=1HvfDH=1H^fDH=1HFfDUSHc߿H9u H[]fDH H8<HH=wHu9H H8#u&H7 H= H4H1[]HvHHt H;H1H5 H[]#Df.Ht[~1us x= H鳋uL  H = Hf[HtH5 H81HH~,fDn =tk^ HDH=01 HGH=̅1HnfDH=ȅ1HVfDH=ą1H>@f.USHc߿H)u H[]fDH H8:HH=wHu9H H8!u&H' H=H4H1[]HfHHtH;H1H5r H[]/+Df.USHcH~?% HH HHHE H H,H[]fH] HcHH H@HHHH[]f.HtwAUIATUSH~=nHLH;HL9uHL[]A\A]HHfDHHH9uDDf.HUSHH;H HH(HtHUHHHfH[HtZHcH= HHH(HtHUH}uHEHtH8pH}H H[HuH[]@AWHcAVHAUH)L-YATIUSHH HHX(@D<1H H=HcH41HyH[L}<:HHc+<0u~H= IH HIFHIH L4fDxHU LH41wpfHi H8171H5;Hc9tsH HcHH,L0CtpELuf.Ht#HH=ȁ1[]A\A]A^A_H[]A\A]A^A_fH9 H,HEL0CuEAvI>IfpIL}fHtSfDH_HHu[D6 ӿ t;SHHH5,1葇HI  <[fD 莅[{ fH5Ž t0 x SJ 9uu[uDv a\VH5o EH5^ D fH5E t8. Su   J 9uu#[ مf\ƅH5߼ 赅H5μ  fHtPUHSHHfHCHIC HHtH3HTuHH[]fDH1[]1@ATUSHHHIH3H} x6H{ HtI$BfBft@ftK1[]A\@H{HtI$BfBffu[]A\HB fxHHxI11HJ HPI$fZfh1DE1H7HFHF fDV[]A\I $HI HHI $HIHJ I $HQI $HA I4$Nfff1fFHBfxHH ~YI $HIHH I $HI HJI $HAI $HQ I4$NftLffu1fJfxE1E1HJHP I$fDBfDH1|DE1E1fDBfDHP1fJfxH0[]A\D L|HuLzDHcHt Lff.SHH=I Ht~H@ H߾H) [H$ SHH= Ht~H H HtdH1DH@WHuHc?HtXH÷ fD Hc0LH[HHuH[fHtHHw [Mf.SH= Ht}HcHta [Ha f.9=> }fDf.H l ^ d  tFH5z1S=Զ ?i  @H+Hkf # tuGɶ @tHZ u. u? H H={ }  tH@f.SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1= $H$HD$HD$ H (yD$0HD$uH D! H=r H y1}HHھH=M {H5A |I HD$dH3%(u H[|Df.SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1; H$$HD$HD$ D$0HD$= H wtyD H=; Hw1|HHھH= zH5 `{ HD$dH3%(H[fH {@r t= H :wtVDG H= HHw1%|HHھH=s yH5g zbH q RzfAVAUIATIUSHt`HL5vH]Huf.H[HtE9uL1H[HuuHmHuMLL5vfDH]HufH[HtE9uL1VH[HuMHmHuH-wMt;DL H[HtA$9uH1H[HuMd$Mu[]A\A]A^fE<DH=u1DUtDH=u1SDATAUHSxHtHH=u1H= HHHAWECS PC =; H ˱ HcHl[]A\fDApK  PC  =}; }nH _ HcH,[]A\s K PC? =O; }Hٰ HcH,[]A\CfD[C fDC!Hv C gA]T6 PC * =DHPvC((wHHtpHHCHH=< HC5HuCH=wt1`xH=s1HwH=s1+wH=s1wfSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1o H8 D` H= H Hs1+wHHھH$H=q $HD$HD$ D$0HD$tH5G uƮ HD$dH3%(u H[(uSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1O H D@ H=} H Hr1 vHHھH$H=Q $HD$HD$ D$0HD$sH5' }tHD$dH3%(u H[tDf.PXHauHH=||sH=dHlsff.L|H [1H5H5Mt@HHH5<1t1L|H HT5H5ztH=|Hrf.AHcEtmAtwHS^LHх~MIE11ҿgfffI@C4A։))B4IM9uHHمt[D1HrfDHH]sf.SA:HcGLcWAE BD9 HcLHcIHHHG HHD2EtiNHE1L9t&HpHD@(WE1L9uJ EufH Bx[N1HL9t HPHV 5V1L9uIɅufI AAAA< [D V EˆW#H ~H5~H=~cqSHH Ht=HPH HXHHH@Hp H[f(Ht$qHrHt$믐O;Nt8~?D?fD^DWHv E9DANHO ~VDDE8tQDDE8uCHHu1E9t$~]E)ABHDHyH9u1tDDE8sEDPf.DD)t>HNHDtDHyu H9u1뒸øÐUSHHE HtXHCH5 kHcsHC MpHHCHtAH{ H1coHH[]f(t$ pHHqt$ kH{DAVAAUATUHSDgHD9fDoDMfD9nDMnAA9AMDMcIcE9}*DJ .HH D)HTHAH9uHcULcSJt.LcELc[HMHp LOTMDLS LE LD9t71}/A)1AIA  HL9uIH֋MSAA1҅MA1H~7E~2IIAJAHʀ vЃ HAVɅuDMDO~=L1HfH1H9tA v HH9uIL΃uHP :u7H~/qH|24fH9tH)HP H:t[]A\A]A^fD1D)HDA  HH9uIHMSDAWAVIAUIATUSHO^DfG։T$ 9ˉMAA9EM9OA9ĉDOA9AMT$ HcIcHA9})HH D)HHTf.HAH9uIcUIcMHLLIcVIcNMM LTIHP MV LD2D9D)\r1H@A A HH9uD1)HcIIAE~>E\$1I@A A< ))y AHI9uMM9tA)݅~;DU1A IA D)E@@A<HI9uHP :u3H~+qH|24 DH9tH)HP H:tH[]A\A]A^A_DD)~FDj11IA 1)ty A<HL9uDD)HcII1fHHtE11HP pHL$XHT$`HD$HI>291DAHP pEkH|$(aH|$ WH|$8MH|$CH|$09H|$/L'HHfAT$1DL$׉T$I HcLm Hct$HcT$IH@ LTHL\ECAAMHAIE1H1HD$Af.AHIcH)DHD$L9IOLL9r)I9s"L9rHHJDxAI9s߸)C< IM9tLu AHADMA;HD$hdH3%(Hx[]A\A]A^A_H1 Dσ@ HD$(Iw HD$ D93D)DHD$8IcH)I_ HHD$0!%fHT$`L9BBHr '>HNt"fHyu-fHT$0L9JBLR ȅA:MJtIAyufL9AAHI 9HQtWHzBu{HD$@CL-E1HP pWHD$@I>E1DHP p=I>mD1,HD$HDDIHD$Li fDL|$PMHl$X1ɉD$H\$`A@ HLD$XLD$`HT$XHt$81H|$0DzHzHT$`D$DJHT$8H|$(HD$@DL$IHD$Jw.L DL$D$DA@ Hl$X1HLD$XH\$`LD$`HD$X1HHt$8H|$0DxHD$`DHm}_f.AVAUIATAUHSH9t21{t_E1t.L[]MuA\A]A^Ð)IƋAHDH*IƋEAWD9eDMeA9DLDA4Ic1Hx I^xfDDHIƋAZAWAVAUATIUSHH(WDdH%(HD$1DvFLD$AH|$A9D,LD9LHDD9AOʼneLL$HL$Ct7A$A9HyiD)Hy q?FLDH L9tH)HA Q8tH; t+Q~`8HpuHDHxu uHHD$HHD$dH3%(uH([]A\A]A^A_@Ht:]f.H;5 AWAVAUATAUSHhHcNH|$~HT$(9Ht$Hv }>HFtufDHxuuHh[]A\A]A^A_DHD$Dpu1ۃt3HHDHƅt">HFtHxuuADD$0HD$xB,7|$8))A9ĸODlD$HL$]IHL1L;\HD$HcIHp \HD$XDkLL\HD$HBHD$H|$HHL$ Hp t\HD$HL$ 8H DHDC}tA݋D$0AT$EE9&DT$ T$ 1Hx HD$0q[L9\LT$0HHD$  HD$H|$?98L9 AIB t1ARAR8HHtYHyuuAu5AR~,JHt  DH9tH)IB AR8tH\$(LT$HLT$H|$ LYLYH|$YHh1[]A\A]A^A_D$0D9DDD$PD\$LT$ T$ 1Hx HD$@4ZLZLT$@D\$LHHD$ DD$PM qAăt$0IB D9IDD\$@D[D)HD$8HHD1LD\$LHD$XADD$HLT$PfMHE90 DAVA C/EIЍER@8t DЙAA{VEA4D҉AD)ڍV9vD))AT$ADэ N9DC1EfLT$ t$HDHDL$0AIJHD$8LT$ DL$0II‹D$@MtJ|$L11Hf.ADA4))ȹy ADHH9uԃDHME9LT$PfDDH)HafD)‰D)D$8LDLLT$PBt0t$HD\$@DD$LDD$LHHDDDD$HMLT$PDD$Ht$0D\$@IB D9pHD$hhD$HDlOL|$Ew>PDDML|$Ic~IcHAA9H{ 18WE9fIv DH{ ANVAVHcWHl$(HKH]AIw IcOEv.D$HAL$ADPLD$X11IҐADA<1 v ADHI9uMA2̃)A2LT$PDD$LD\$@LT$PDD$LD\$@=LT$0LT$0A؉Hl$}"$1AWAVIAUATUSH(H= dH%(HD$1H9t>HHՋvI̋SLK ~HA9IAtEDHxu6uHL$dH3 %(H([]A\A]A^A_tEnDL|$DH|$LD9DMG HLHtVHD$DLHރ@ HHD$_Ht$DLL,LDHI׋RIDAWI ~I?HGtGHxu6uH\$8dH3%(KHH[]A\A]A^A_t>tHl AD$ HL$(F @ A AL$Ld$Ht$ HD$0QVLl$ dAGA9\$AH|$ EMt$H;= Ld$tCHD$(H$HD$0HD$GGHO ~J9HQtHHzu6uLYLQHIHD$0HE1tH $H5 E1LHT$(H;v t7BBHJ 9HQt@HzuH|$DLHH|$1ALL]H|$ H;=  5fDH=^1Ll$ Ht$ VH=^1H|$ 1LH5 AGxH=^1eO@HT$Ht$DH|$0 HL$A1H|$0LxQAVAUATIUHSH0dH%(HD$(1t IILG^1(LL(DPUH!%tDHUHDHL)A9}D0AA9uHt%I]LH@H?AHH9uHD$(dH3%(u H0[]A\A]A^tP@WHO 1~1HH4AHp~H= ~ҺHO‹HHڅHEDf.AWAVIAULcATUSHHHHT$VdH%(HD$81H]Hu`{ HC 8tH=\1kH\$HH_ @ HHD$8dH3%(uHH[]A\A]A^A_DMc~HIcD$HE9MML9LFAF Lt$0Hl$0AF u,ELLHDHyLt$0tAF HLt$(AF tTHD$(EHD$ Ht=Lt$0EHLLD*tEHT$Ht$0H|$(D HuÀ|$tOH=P HT$DHt$(FH|$(HHD$HH\$HHD$(HD9h~DhH=Z2NfAWAVAUATUSHH8dH%(HD$(1gfffE1))A@4$AHl$EHE|$)A͈MхuH1DHEtHH HDhHHDiAT)HD$(dH3%(H8[]A\A]A^A_Ð޹̉)A@4$t/A.HE1Hl$31'He1E1 Hl$H>LfAWAVAAUIATUSHHH/H6 dH%(HD$81DeD9#qEt,HL$8dH3 %(%HH[]A\A]A^A_fH5х wH"AąD9uDMuC Dt$H\$H\$ H\$0'HD$(H@ @E[Hb Hl$Lt$ @ HD$IEXD$DcL|$0D$ @LHt$I}HF Ht$ Ht$ 1HH|$Ht$(HH|$Ht$ DLH|$WH|$0t;\$}D$ [9NDcpHH1xLHw @ IEQDC D9uDMuC Dt$H\$H\$ H\$0HD$(H@ @Hl$ Lt$ H*IELpHt$(1LH|$ wHt$ 1HH|$FLT_H5 D;&D9uDMED$C PE%S H\$H\$ H\$0HD$(H@ @LL$H|$LH5 HLH|$(LLH݂ @ IEH@f.AWAVAUAATAUHSHHxdH%(HD$h1?u-H= H9t9DsDCL{ C ~OA?IGuLHxu6u0HD$hdH3%(oHx[]A\A]A^A_tDA FE}G HD$81E1H5 H|$8HHHD$Ll$@Ht$81LHŁ H߃@ HD$@HD$PHD$H"HD$8DHD$@HD$HHHD$ Hx At$@ HD$`HD$`HHD$(H|$8HD$PH9=G HD$GGHO 9HQt@HzuMu(XfDHTHc<8LMEFMt2MwI?A~HD$`HpnLMFMu΋C.Lt$XHx KD$@ HD$X9H~8fIcH5T<Ht$HH|$X1LHD$XK9HoHt$HH|$@LH|$@H|$I4Ht$81LH|$@pA~HT$`IcHrT$D$vfDLXH|$NLFH|$ CfAU1ATUHSHD/Dg_EEA|HcDHHEt-HpH} ~8DC1L f.H 0 HJL9uHcHHHE~,.ED$1@HK0LHJL9uHtH[]A\A]fD|HcCHWHD$YDe]HD$<AWIAVAAUIATULSHACըuA_Io0u@H]0t^DE1HfDH]ADBu.t5u EkH| @ IEH[]A\A]A^A_f.MHEHDJt1@H0HDru@uD9DNEu ADD=IEA?-A+0uIA?0tHH tNHqEEAN1 fDHA|WЈHPH9uH[]A\A]A^A_fAt$1I@HA<WЈHPH9uMcIt$IHfAWIFfIA1EDOf.fAWIAVIAUAATL%q UH-q SL)Hvoid expression with +void expression with -void expression with *void expression with /void expression with %void expression with ^void expression with unary -KC%d,%s:C%d:DA%d:L%d:DM%d:L%d:i%d:l%d:d%d:l%d:DL%d:xA%d:M%d:i%d:d%d:void expression in length()cLvoid expression in sqrt()cRvoid expression in scale()cSread functioncIrandom functioncXvoid expression as subscriptcomparison in subscriptHistory variableLast variableEnd of line requiredToo many end of linessyntax errormemory exhaustedComparison in first for expressionComparison in third for expressionMissing expression in for statementcomparison in return expresionreturn expression requires parenthesisreturn requires non-void expressionReturn expression in a void function.Assignment of a void expressionvoid expression with comparisonvoid expression in parenthesisCCGCGGzHCgHUHCCCCHCCCCCC)HHHGMLqLeLTLCL\KJJIK~KLOIHHTTCCCSSC?@689:;RSDEcCLUdFWcYZ`[)TVXehijklmnGHIJKL\wryqt|sIJKL~}S `DFSFw/GHIJKLGHIJKLw ?  ?  ?  ( DEF DEFDEFGHIJKLaGHIJKLuGHIJKLDEx-FDEF.GHIJKLzGHIJKL{ ]  O  DEFGHIJKL!"@A$57<^_%1PQv3&ofg'pppqpppppppppppppppppppspppppg]4K%kijm)l \SCgk`5L[OQMagDEIef-*+.^( TUVWXYZ_h6bJ#&cdPRNFgG;7,IH<?/=>n 0$'o8@Ip2AB!19:3"ppSppppSpppppppppppSSppppppmSppp6SpSSS %9ppp>ppSSSSSSSpp)$'+SSpppp(pppSS33Sippp5ppp9pp{p-[^97pf<p`8:AfSpfppCDEFstQmppVXYpppppp\aSfppppc pppp fpp*4-.(&1'),23+/0  !"#$%read() in flex scanner failedillegal character: #NUL character in string.Commas in numbersillegal character: ^%cillegal character: \%03oillegal character: %sbad buffer in yy_scan_bytes()out of dynamic memory in yyensure_buffer_stack()out of dynamic memory in yy_create_buffer()fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflowout of dynamic memory in yy_get_next_buffer()EOF encountered in a comment. fatal flex scanner internal error--no action foundout of dynamic memory in yy_scan_buffer()out of dynamic memory in yy_scan_bytes()Y^]]'\T]J]@]6]V\L\B\ZZZZZZZZZ]YZZ]\\.^YY]]\Y8^\]]]R^]3X[[![`\^Y'^'^!!=("'#"'#(*#0608*79D8687:<:9D<<:<:<BAC<AEBO:<@EKO}K}C@@@@@@@@@@@@@@@@@@@@@@@@@GNHI9JHIGMPIMNPNGHsIJY\MPY\Y\]]s]]53+4+0061/6.-,*)(#4<<<>!>???   {xwvutrqponmljihgfedcb^ZTRQLF?>=;532/-+)&%$ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  !" # $%&'( )* +,-./012344564789:4;<=:4>4?,@ABCDEFGHFFIFFJKLMNFFOPF4Q4XXh[YVVYiZV\_]at__]_^_jrlSksmuw_nT~x|T~\]]^YYZ )*,+.-8/09567:432TTTz1z}}}('&%$#"!     ]{]UR`|||{yvqpogfedcbV`SSVWVUSR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<;;;;;;;;;;;;;;;=================;>>;>?>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@>;;<;;;;;;;;;;;;========================;>>>?>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@>;;;;;=======================>>>>@@@@@@@@@@@@@@@@@@@@@@@======================@@@@@@@@@@@@@@@@@@@@@@==============@@@@@@@@@@@@@@========@@@@@@@@===@@@==@@;;;;6)*&*!**a``ekt  Shkj`q* {}p*********C #) %'"45/);.6:897C=?PBJHV[YR\Q~ZU}|W_{dzuloml^kjigcvQpe*z  !"#$%&'()*+,-./012%3%456/-(& -!!!!,$"$-*****************-($+"%,),,#'********** *************,,***** ***************************** ********* * *****Internal error.Function %s not defined.Return from main program.Divide by zeroModulo by zerodivide by zerobad instruction: inst=%c interrupted execution.Square root of a negative numberU,_ ^,_]|],_,_,_<]^,_\^,_^t\\,_,_,_,_,_,_,_,_,_,_\\X,_,_VULX4X,_,_,_,_,__[d[<[,_ \[,_ZZU,_,_[,_,_U,_,_,_Y,_,_,_,_Y|Y,_,_,_lYDY,_,_Y,_X,_$X,_,_W,_,_,_Z4:l10:1+s10:pl5:K2:/s5:pl2:1+s2:pJ3:N4:l13:s2:p1l5:+s14:pl5:s6:p1s8:pK2:s11:pN6:1B7:J5:N8:l11:i11:pJ6:N7:l6:l5:*s6:l8:l11:*s8:/s9:pl9:0=Z9:l10:0>Z10:N11:l10:d10:Z12:l14:l14:*s14:pJ11:N12:N10:l15:s2:pl12:Z13:1l14:/RN13:l14:1/RN9:l14:l9:+s14:pJ8:N5:0R]@r@iF2,5.7,9,10,11,12,13,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl5:C2,0:s14:pl7:s0:pl14:RN1:l5:0{Z2:1K10:l2:^-1/RN2:l2:s15:pK6:l2:+s2:pK2:s10:p0s11:pN3:l5:K2:}Z4:l10:K2:*s10:pl5:cRs5:pJ3:N4:N5:l5:K.5:{Z6:l10:K2:*s10:pl5:cRs5:pJ5:N6:l5:1-l5:1+/s13:s14:pl13:l13:*s12:pK3:s11:pN8:1B9:J7:N10:l11:K2:+s11:pJ8:N9:l13:l12:*s13:l11:/s9:pl9:0=Z11:l10:l14:*s14:pl15:s2:pl14:1/RN11:l14:l9:+s14:pJ10:N7:@iF3,5.7,9,11,12,13,16,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl5:C3,0:s14:pl7:s0:pl14:RN1:l2:s15:pK1.1:l15:*K2:+s2:p1C4,0:s14:pl5:0Z11:l15:K5:+s2:pK.2:C4,0:s6:pN11:l15:K3:+s2:pN12:l5:K.2:>Z13:l10:1+s10:pl5:K.2:-1l5:K.2:*+/s5:pJ12:N13:l5:s13:s14:pl5:nl5:*s16:pK3:s11:pN15:1B16:J14:N17:l11:K2:+s11:pJ15:N16:l13:l16:*s13:l11:/s9:pl9:0=Z18:l15:s2:pl10:l6:*l14:+l12:/RN18:l14:l9:+s14:pJ17:N14:0R]@r@iF6,13,5.6,7,8,9,10,11,12,16,14,15[l0:KA:#Z1:l0:s7:pKA:s0:pl13:l5:C6,00:s14:pl7:s0:pl14:RN1:l2:s15:p0s2:pl13:1/s13:pl13:0n_len+accum->n_scale >= shift+count_bc_shift_addsub0123456789ABCDEF;|LP Vhl| @|  <$T|,<P <%d ,& \0 ,1 18 \2t 2 2 3 3 ,3 <3 L3$ \38 l3L |3` 3t 3 L4 \4 l4 |4 4 4 4, 5X 5l 8 : L; -Hd T>!< p>LBI L(E0t (A BBBE 4\ ?FED A(D0f(A ABBL h?FBI I(A0A8K`v 8A0A(B BBBI 8 EBEI A(F0V (D ABBJ ` lFFBB B(A0A8D@E 8A0A(B BBBG L 8D0A(B BBBO 8 GFHH  ABG I DBI 8 |HFHH  ABG I DBI  @IED$ IEDO lAA@ ,JDLZ J S` \J'EZ| pJ2Ec H A$ J>EID iAA J)E\ JQ|T$ KMEG W AD cA@ ,K7FEB A(A0GP% 0A(A BBBE dd (MEAF p AAB ~ AAH  CAH g CAE k AAK  CAE @ OEAL M AAG P CAL VAA4 LPHr F a O ] K Z N ] K K<H QEAL M AAG H CAL ^AAD Q:Hp H ` H \ D ] K W I \ L M K M K M< |REAL M AAG H CAL jAADRBHp H ` H ^ J ] K Z F \ L M K M K M<XTEAL M AAG H CAL jAA0TEAG w AAJ sAADTKEA A(D0q (D ABBH h((UNAG AAE`@UFEJ L(D0A8D@? 8J0A(B BBBL D 8A0A(B BBBJ HW)JXF \WnVsGHKW~]YZXWi`4$xX\JDG o DAG DCAAD\X7FAA P ABE p FBH Q ABD Z.ZHL[1EAUp[HN A (t[<EDD Z JAE (4[3FDC ] ABA 0`[BAC DP  AABD H\=Ep l\E C ] A ]5Ag H ,] 8]Hh H D D (]phPe$H$^!EJ  AA $p,_EJ AJ <`{FBE D(A0  (A BBBJ DbFDD  ABG I ABD A ABD $ LdEJ AA HDeEJ AA l@fEAD0f$HWHf,dfVHIfV\F ,gMA I Z F XhoAF ~ AJ zRx   Rhth?(|iECD0U DAJ zRx 0 <iBEB A(D0 (A BBBG Hk7BBE E(A0A8DP 8A0A(B BBBI dmIMwDmTHK4n 0n8L! 0@P`p 0@P`p 0@1S!9h>iJS!RS!XS!aviS!8x8` h8x8x8x8 x  !P!!!"@"""#H###$P GA$3h864 GA$3h864  GA$3a1GA$3a1 GA$3p864GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realignGA$3a1GA$3a1H^GA$3a1GA$3a1y GA$3p864 T%GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA$3h864 GA$3h864   GA* PGA!stack_realignGA*GA+stack_clashGA*cf_protectionGA* GA*GOW*EGA! GA$3p864`%ZDGA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864   GA$3p864`Dj]GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864   GA$3p864p]tGA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864tU}GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864`}gGA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864p?GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864??GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864@GA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864dGA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protectionGA+GLIBCXX_ASSERTIONS GA*FORTIFYGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864** GA$3p864pGA$gcc 8.2.1 20180905 GA*GOW*EGA*GA+stack_clashGA*cf_protection GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA! GA* GA!stack_realign GA$3h864 GA$3h864NNGA$3a1GA$3a1GA$3a1^cGA$3a1bc-1.07.1-5.el8.x86_64.debug7zXZִF!t/#G q]?Eh=ڊ2N" p ة8#,ܣ?Sexn" E\^{c| ޢwOXE>c,N?⢨R [h`( $"n͡|i߹NI~JYԱ6V;c0AubUFES2XcM~!mNM!X 4Q =Q:i#`dnnG1q^Ȥe&a%_R觘tI6rQGkg ۿiC%^X77.UYô'wC7CgEgR5*ȑ1}H 1k ,:Y;\̎ͫ-!)J|JE;Hc 2y@(ڟyX8mW1ATAD::'TEZp2"&wIV OV֬lz>OĤf2p)٠f̆7ǃFpY+N־0X9V>&3Vx6;xkԜ@F1YmZ)`k^S88Qo<~Պe|<Fҳ"I`bp]DPldUQhGQ",0VLI q=Q.eB]@0ex3ݻ,3^2KvaȒ~6R_bF wѱFos3ɦRM]P9wB_ 1wģzfBx$*GӲ@d[yF_m%Ȝ񄨐Df6 A^ {l>'6Z-k2?4+v^6gՔ14ؽͼchK$QNeRA%B(ysD{||Χ렜J VߒltpbN2qeZv^_@w>. Aeel;NWqsy]pZ)JGMǚqKf~ۍrjiI#FIAovrU<>Tp+F!~q @9Tå%zi?7sR i)@mF+yH@{S GXLa$ϯ0|-O[)m"ibE۾`]'q}?clO^nyn*㵩Y< IhMNSk̕-HWSjT`QatY^Φ{pA];2_ lNmecw7.6>0LZ, s[\3R~eoU{?IB|w3pz7 _,WAI _Nl\d(+> zEeY^֥~Yw(9=gʊ&xvdyؗXM#6l K6n%˩PDSl\)8ԁ{hjܶ<$2DWhr Oa1O']a.ĭx-׬7O\*Ue±װH4S9 |, ?&A؎t?GC2tб2Igּ򇋖 :%e_yވ:=|hZOJT J8 I(. $ D/ZderaԖ1ڜ4DO eOۈݩLQ#"mROT@ .n $ F ՁgYZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata pp & 4$GoHQ @@Yaob b vno `}8 8 B8HHppPP  Ž M ((-- L! L(L!(L0L!0L8L!8L XN!XNP!P R!R0 UaR0  i$/0i r>Examples/twins.b000064400000001306152526002400007625 0ustar00 /* An example that finds all primes between 2 and limit. */ define primes (limit) { auto num, p, root, i prime[1] = 2; prime[2] = 3; num = 2; scale = 0; for ( p=5; p <= limit; p += 2) { root = sqrt(p); isprime = 1; for ( i = 1; i < num && prime[i] <= root; i++ ) { if ( p % prime[i] == 0 ) { isprime = 0; break; } } if (isprime) { num += 1; prime [num] = p; } } } print "\ntyping 'twins (10)' will print all twin primes less than 10.\n" define twins (limit) { auto i; i = primes(limit+2); for (i=1; prime[i] > 0; i++) { if ((prime[i]+2) == prime[i+1]) \ print "twins are ", prime[i], " and ", prime[i+1], "\n" } } Examples/pi.b000064400000002244152526002400007073 0ustar00/* This is a program to determine the distribution of digits in the fraction part of PI. It will look at the first scale digits. The results are left in the global variable digits. digits[0] is the number of 0's in PI. This program requires the math library. */ define pi () { auto ix, pi, save_scale, work; save_scale = scale; scale += 5; print "\n\nCalculating PI to ",scale," digits. Please wait . . ."; pi = 4*a(1); scale -= 5; work = pi; print "\nCounting digits. . ."; for (ix = 0; ix < 10; ix++) digits[ix] = 0; /* Extract the One's digit from pi. */ scale = 0; one_digit = work / 1; for (ix = save_scale; ix > 0; ix--) { /* Remove the One's digit and multiply by 10. */ scale = ix; work = (work - one_digit) / 1 * 10; /* Extract the One's digit. */ scale = 0; one_digit = work / 1; digits[one_digit] += 1; } /* Restore the scale. */ scale = save_scale; /* Report. */ print "\n\n" print "PI to ", scale, " digits is:\n", pi/1, "\n\n" print "The frequency of the digits are:\n" for (ix = 0; ix < 10; ix++) { print " ", ix, " - ", digits[ix], " times\n" } print "\n\n" } Examples/primes.b000064400000001171152526002400007760 0ustar00 /* An example that finds all primes between 2 and limit. */ define primes (limit) { auto num, p, root, i prime[1] = 2; prime[2] = 3; num = 2; if (limit >= 2) print "prime 1 = 2\n" if (limit >= 3) print "prime 2 = 3\n"; scale = 0; for ( p=5; p <= limit; p += 2) { root = sqrt(p); isprime = 1; for ( i = 1; i < num && prime[i] <= root; i++ ) { if ( p % prime[i] == 0 ) { isprime = 0; break; } } if (isprime) { num += 1; prime [num] = p; print "prime ", num, " = ", p, "\n" } } } print "\ntyping 'primes (10)' will print all primes less than 10.\n" Examples/ckbook.b000064400000000512152526002400007727 0ustar00scale=2 print "\nCheck book program!\n" print " Remember, deposits are negative transactions.\n" print " Exit by a 0 transaction.\n\n" print "Initial balance? "; bal = read() bal /= 1 print "\n" while (1) { "current balance = "; bal "transaction? "; trans = read() if (trans == 0) break; bal -= trans bal /= 1 } quit AUTHORS000064400000000361152526002400005610 0ustar00Phil Nelson wrote bc, including the number.c source in the "lib" directory. Ken Pizzini wrote dc, making use of the lib/number.c code that Phil Nelson wrote to handle the actual multiprecision arithmetic. README000064400000006702152526002400005425 0ustar00GNU bc version 1.07: Extra configuration options: --with-readline tells bc to use the readline package that allows for editing input lines when run interactive. --with-editline tells bc to use the BSD editline package that allows for editing input lines when run interactive. Extra make steps: The simple make compiles a version of bc with fixed parameters for the recursive multiplication algorithm. The fixed parameter is the number of digits where a sequential algorithm is used instead of the recursive algorithm. It is set to a value that is known good on a couple of machines. (Sparc Ultra 10, Pentium II, 450.) I'm calling this point the crossover point. To make a version of bc with a custom crossover point for your machine, do the following steps: make timetest make The timetest step takes a minimum of 10 minutes to complete. -------- Original comp.sources.reviewed README -------- Program: GNU bc Author: Philip A. Nelson E-mail: phil@cs.wwu.edu OS: UNIX (BSD, System V, MINIX, POSIX) Copying: GNU GPL version 2 Copyright holder: Free Software Foundation, Inc. Version: bc version 1.01 Required: vsprintf and vfprintf routines. Machines: It has been compiled and run on the following environments: BSD4.3 (VAX 11) MINIX 1.5 (IBM PC, both K&R and ANSI compilers) MINIX 1.5 (pc532) SUN-OS 4.1 (SUN 3 and SUN 4) SVR3V5 (Motorola 68K) SVR3.2 (3B2) SVR4.0.2 (a 386 box) ULTRIX 4.1 (DEC 5000) UTS (Amdahl) bc is an arbitrary precision numeric processing language. Syntax is similar to C, but differs in many substantial areas. It supports interactive execution of statements. bc is a utility included in the POSIX P1003.2/D11 draft standard. This version was written to be a POSIX compliant bc processor with several extensions to the draft standard. Option flags are available to cause warning or rejection of the extensions to the POSIX standard. For those who want only POSIX bc with no extensions, a grammar is provided for exactly the language described in the POSIX document. The grammar (sbc.y) comes from the POSIX document. The Makefile contains rules to make sbc. (for Standard BC) Since the POSIX document does not specify how bc must be implemented, this version does not use the historical method of having bc be a compiler for the dc calculator. This version has a single executable that both compiles the language and runs the a resulting "byte code". The "byte code" is NOT the dc language. Also, included in the initial distribution is the library file vfprintf.c for MINIX systems. My minix 1.5 did not have this file. Also, you should verify that vsprintf.c works correctly on your system. The extensions add some features I think are missing. The major changes and additions for bc are (a) names are allowed to be full identifiers ([a-z][a-z0-9_]*), (b) addition of the &&, ||, and ! operators, (c) allowing comparison and boolean operations in any expression, (d) addition of an else clause to the if statement, (e) addition of a new standard function "read()" that reads a number from the standard input under program control, (f) passing of arrays as parameters by variable, (g) addition of the "halt" statement that is an executable statement unlike the quit (i.e. "if (1 == 0) quit" will halt bc but "if (1 == 0) halt" will not halt bc.), and (h) the addition of the special variable "last" that is assigned the value of each print as the number is printed. ----------------------------------------------------------------------- NEWS000064400000005741152526002400005246 0ustar00This is GNU bc version 1.07.1. (And dc version 1.4.1) Changes in bc from 1.07 to 1.07.1. Fixed ibase extension causing problems for read() Fixed parallel make problem. Changes in dc 1.4 to 1.4.1. Fixed dc "Q" comanmd bug. Changes in bc from 1.06 to 1.07. Added void functions. Bug fixes: fixes bug in load_code introduced by mathlib string storage in 1.06. fix to get long options working. signal code clean-up. fixed a bug in the AVL tree routines. fixed math library to work properly when called with ibase not 10. fixed a symbol table bug when using more than 32 names. removed a double free. Added base 17 to 36 for ibase. Fixed some memory leaks. Various small tweaks and doc bug fixes. Changes in dc from 1.3 to 1.4: Recognize and handle tail recursion. Add 'r' and 'R' commands for stack manipulation. Finally fix dc to trap interrupts, like the documentation has said it should: aborts any executing macros, but does not exit the program. Bug fixes. Miscellaneous code clean-up. Changed to detect directories and generate errors. Detects and reports on any output errors; exits non-success. Changes in dc from 1.2 to 1.3: Minor bug fixes. New multiply algorithm of bc. Changes in bc from 1.05 to 1.06: New multiply algoirthm and many other changes in lib/number.c Function size now done dynamically. Function syntax in non-posix mode allows newlines in more places. Bug fixes: improved computation of j(n,x). enables readline only if interactive. for statment bug fixed. use int instead of char for readline char counts. improved cosine accuracy. Changes in dc from 1.1 to 1.2: added !< != !> commands arrays now stack output is now line buffered, provided setvbuf() is available fixed known bugs in 'q', 'Q', 'a' commands, '-f' command-line option, and documentation changed the 'P' command's behavior on a numeric argument: due to popular demand it now does the equivalent of 'aP' (for small values) added new 'n' command to do what the old 'P' command did Changes in bc from 1.04 to 1.05: Solaris makes work better. bug fixes stdout now always does line buffering. sqrt bug fixed for small numbers. readline (if support is compiled in) is enabled only for interactive executions of bc. This is GNU bc version 1.04. (And dc version 1.1) Changes from 1.03 reorganization of source tree use of automake new commands for dc (|, ~, r, a) new command line options for dc fixed infinite loop in sqrt in bc fixed an I/O bug in bc made bc conform to POSIX for array parameters added long option support for bc new commandline options for bc (-q) added support for readline to bc (use configure --with-readline) command line argumens can now be taken from an environment variable Changes from 1.02 minor bug fixes in bc. addition of Ken Pizzini's dc program that uses the GNU bc arbitrary precision arithmetic routines. Changes from 1.01 minor bug fixes. FAQ000064400000003433152526002400005075 0ustar00Because of frequent questions ....... here is the BC FAQ 1) Why does BC have its own arbitrary precision number routines (found in lib/number.c) rather than using GMP? GMP has "integers" (no digits after a decimal), "rational numbers" (stored as 2 integers) and "floats". None of these will correctly represent a POSIX BC number. Floats are the closest, but will not behave correctly for many computations. For example, BC numbers have a "scale" that represent the number of digits to represent after the decimal point. The multiplying two of these numbers requires one to calculate an exact number of digits after the decimal point regardless of the number of digits in the integer part. GMP floats have a "fixed, but arbitrary" mantissa and so multiplying two floats will end up dropping digits BC must calculate. 2) The code "ibase=16; obase=10; FF" outputs FF, not 255. Isn't this a bug? No. ibase changed the input base at that point. The 10 is then in base 16 and thus is the value 16. Therefore, both ibase and obase are 16 (decimal). And FF (base 16) on input is printed as FF (base 16) on output. So how can one get 255? First, single digit numbers are not converted using ibase. So A is always 10 (decimal). The following code will always work. "ibase=F+1; obase=A; FF" and that always prints 255. 3) Why is the scale variable ignored on multiply? That is the way POSIX specifics multiply. Reread the documentation for the multiply operation and see that multiply uses the scales of the numbers multiplied to determine the scale of the result. 4) bc's mod command is not working when I run with "bc -l". bc's mod (%) command works like integer remainder when scale is 0. The -l flag sets scale to 20 and that chanes how a % b is computed. Read the man page for exact details.