#]^lR_#]^lRV @??#]lS @??#] l.`A #H## . .. lost+found src doc&guest#hosts libW man4 pubTHsysrandrewImdecM# ibmPinclude[spoolgamess adm bin#(dict4msgsBpreserveF*skelI ucb newMP tmp[mlocal#] l-rA #De## ...#]l-A #D#Q# . .. 01.setup 02.config 03.kdebug 04.quotas 05.fsck06.lpd# 07.sendmailop*  08.timedop- 09.uucpimpl 10.newsop411.named? 12.uchanges; 13.kchanges 14.fastfs815.netB 16.sendmailF 17.securityI 18.passwordM 19.porttourP 20.termdesc[ 21.uucpnet22.timed  00.contents$Title#]l-\A #D#R7# . ..Makefiledateloop spell.ok time timed.ms |unused#]l-A #D#R# . ..Makefileintro.me#]l-\\ A #D#"#" . ..tmac aed hcmpelhc1comhc2comhccomdlibsa.aesrt0.of relsrt0.ogsymrt0.ouucpU lexi sendmail.cfjlibc_p.akgcrt0.oM$font8|learnlibaed.a libcurses.a libcurses_p.alibdbm.a libdbm_p.alibfp.a libfp_p.alibg.alibF77.a libF77_p.alibI77.a libI77_p.alibI66.alibU77.a libU77_p.alibln.alibl.alibm.alibnm.alibm_p.a libnm_p.alibmp.a libf77plot.a libplot.alib300.a lib300s.a lib4013.a lib4014.alib450.alibvt0.a libplotaed.a libplotbg.a libplotdumb.a libplotgigi.a libplot2648.a lpd libplot7221.alibplotimagen.a libtermcap.a libtermlib.alibtermcap_p.alibtermlib_p.aliby.ap3812 lpfnecfK me mssendmail sendmail.hf sendmail.st sendmail.fcaliases aliases.dir aliases.pag sendmail.subsidiary.cfsendmail.main.cf librpcsvc.a makewhatisgetNAMEmakekeylib.beigndiffhatruncalendarstyle1style2style3dprogdict.d explain.ddiff3f77pass18find?lintBtermF+referspellIstructyaccparunits?tailorBtabset Mail.helpMail.rcMail.tildehelp ex3.7recover ex3.7preserve gprof.flat gprof.callg more.helpbugfiler unixtomh  bugformat  vfontedpr  vgrindefs keyboard_codeslibpmp.aJpp4216<(ibmlp hf77pass1 hf77pass2 hf77passqhf77coptcrontab#]l-v6A #D## .TH .. psioctl.hacct.h aedioctl.hbk.hbuf.h callout.hclist.hcmap.hconf.h dir.h!dk.h"dmap.h#dnlc.h$domain.h%errno.h&exec.h'fcntl.h(file.h)fs.h*gprof.h+inode.h,ioctl.h-kernel.h.map.h/mbuf.h0mman.h1mount.h2msgbuf.h3mtio.h4namei.h5 nfs_defines.h6param.h7 pathname.h8proc.h9 protosw.h:ptrace.h;quota.h<reboot.h=remote.h> resource.h?rmtwd.h@seg.hAsignal.hBsocket.hC socketvar.hDstat.hE syscall.hFsyslog.hGsystm.hHtbdefs.hI tbioctl.hJtext.hKtime.hLtimeb.hMtimes.hNtrace.hOtty.hP ttychars.hQttydev.hRtypes.hSuio.hTun.hUunpcb.hVuser.hW vadvise.hXvcmd.hYvfs.hZvice.h[vlimit.h\vm.h]vmmac.h^ vmmeter.h_ vmparam.h` vmsystm.havnode.hbvtimes.hcwait.h#]!hl-cKA#D##h .[..#]#ll-yA #D#n#0l .8| ..mInitn L0oL0.1apL1.1aqL1.1brL1.1csL1.1dtL1.1euL1.1fvL10.1awL10.1bxL10.1cyL10.2czL11.1a{L11.1b|L11.1c}L11.1d~L11.1eL11.1fL11.1gL12.1aL12.1bL12.1cL12.1dL12.1eL2.1aL2.1bL2.1cL2.1dL2.1eL2.1fL2.2aL2.2bL2.2eL3.1aL3.1bL3.1cL3.1dL3.1eL3.2aL3.2cL3.2dL4.1aL4.1bL4.1cL4.1dL4.2aL4.2cL5.1aL5.1bL5.1cL5.1dL5.1eL5.1fL5.1gL5.1hL5.2bL5.2dL5.2gL6.1aL6.1bL6.1cL6.1dL7.1aL7.1bL7.1cL7.1dL7.2bL7.2cL8.1aL8.1bL8.2bL9.1aL9.1bL9.2aL9.2bL9.3btinyms#]&l-sA### ...#](l-A #D#P# .I .. 0.t1.0.t1.1.t1.2.t1.3.t1.4.t1.5.t1.6.t1.7.t2.0.t2.1.t2.2.t2.3.t2.4.t2.5.tMakefile a.tspell.ok#]*l-A #D#R# . .. 0.t 1.t 2.t 3.t 4.t 5.t 6.tMakefile#],l-A #D#R# . ..e.mac e0 e1 e2 e3 e4 e5 e6e7#].l-cA #D#W# ? .W ..ascii.7 environ.7 eqnchar.7hier.7intro.7 mailaddr.7man.7me.7miscellaneous.7ms.74term.7#]0l-uA #D##  .TH ..afs.h afs_daemons.cafs_gfs_subr.c afs_gfsops.c afs_pioctl.c afs_vfsops.cafs_vnodeops.c afstest.c auxinode.hbuffer.ccache.c callback.cdir.cdir.h encrypt.c inodestuff.clock.clock.hlocks.xosi.cosi.h osifile.cosinet.c r.cphysio.cprs_fs.h r.h resource.crftp.crftp.h voldefs.h volerrors.h#]2l-kA #D#y,# W .TH ..if_imp.cif_imp.h if_imphost.c if_imphost.h raw_imp.c#]4l-,RAB#D#,#, ' . ..uucicouucleanuuxqtacucntrlUSERFILE L-devices L-dialcodesL.cmdsXL.sys#]6l-tA #D#om#  .8| .. L0L1.1aL10.1aL11.1aL12.1aL13.1aL14.1aL15.1aL2.1aL3.1aL4.1aL5.1aL6.1aL7.1aL8.1aL9.1a#]8l-.bAB#D###,  .M%..#]:l-^$A #D#6#7_ .MH..#]<l-`A #D## .[m..#]>l.:A #D"ڻm# . .. ibmdoc&miscI ps14 ps2[ run smmusd#]@l-.A #D#Q# .I ..Makefile accept.grn dgramread.c dgramsend.cgremlinspipe.cpipe.grn  socketpair.c socketpair.grn  strchkread.c  streamread.c  streamwrite.ctutor.me udgramread.c udgramsend.c ustreamread.custreamwrite.c#]Bl-/A #D#Q# . ..Makefile install.mn standard.mntmac.n#]Dl-]A #D#R_#' . ..csh.1csh.2csh.3csh.4csh.gtabs#]Fl-A #D#R#> . .. Makefile! add"m.mac# m0$ m0a% m1& m2' m3( m4) m5*table1+Ttable2#]H,l-vA #D#Q#p, .TH ..-trap.c.Locore.c/ autoconf.c0clock.c1clock.h2conf.c3cpu.h4crcgen.c5debug.h6dkdata.h7dkio.h8dkpart.c9emul.c:float.c;float.h<fp.h=fpa.c>fpa.h? fpa1rtnes.c@fpavar.hAfpfp.hBframe.hCfpglue.sD genassym.awkE genassym.cF ieeetrap.hGreg.hH in_cksum.cIio.hJioim.hKkFP0.sLled.hMlocore.cNlocore.hOlofp.sP lohatipt.sQ lointpsw.sRlointr.sS lopckrt0.sTloslih.hUloswap.sVloutil.sW machdep.cX machparam.hYmc881.cZmc881.h[ mc881var.h\mem.c]mmu.h^nvram.h_packet.h`pcb.hapost.hbpte.hcrdb.hd rtflops.hescr.hfsed.cg sigframe.hh softint.hi swapgeneric.cj symbols.rawk sys_machdep.cl ufs_machdep.cm undefine.cn vm_machdep.co vmaccess.cp vmparam.hqxFPexception.c#]Krl-tA #D#h#7r .TH ..sfs.htfsdir.huinode.hvmount.hwquota.cxquota.hyquota_syscalls.cz quota_ufs.c{ ufs_alloc.c| ufs_bmap.c} ufs_dir.c~ ufs_dsort.c ufs_inode.c ufs_subr.c ufs_tables.c ufs_vfsops.cufs_vnodeops.c#]Ml-WA #D#nY#0 .8| .. L0L1.1aL10.1aL10.1bL10.2aL10.2bL10.2cL10.3aL10.3bL10.3cL10.3dL10.3eL10.3fL11.1aL11.2aL11.2bL11.2cL12.1aL12.1bL12.2aL12.2bL12.2cL12.3aL13.1aL13.2aL13.2bL13.3aL14.1aL14.2aL14.2bL15.1aL15.1bL15.2aL15.2bL15.2cL15.2dL15.3bL15.3dL15.3eL15.3fL16.1aL16.1bL16.1cL16.2aL16.2cL17.2aL17.2bL17.2cL17.2dL18.1aL18.2aL18.2cL18.2dL18.2eL18.3aL18.3bL19.1aL19.1bL19.2aL19.2cL19.2dL19.2eL19.2fL19.3bL2.1aL2.2aL20.01aL20.01bL20.01cL20.1aL20.2aL20.2bL20.2cL21.1aL21.1bL21.1cL21.1dL21.1eL3.1aL3.1bL3.1cL30.1aL30.1bL30.2aL30.2bL30.2cL30.2dL30.2eL30.2fL30.2gL30.2hL31.1aL31.2bL31.2cL32.1aL32.1bL32.1cL32.2aL32.2bL32.2cL32.2dL32.2eL32.2fL32.2gL33.1aL33.1bL33.2aL33.2bL33.2cL34.1aL34.1bL34.2aL34.2bL34.2cL34.2dL34.2eL34.2fL35.1aL35.2aL35.2bL35.2cL35.2dL35.2eL36.1aL36.2aL36.2bL36.2cL36.2dL37.1aL37.2aL37.2bL37.2c L37.2d L37.2e L37.2f L38.1a L38.2aL38.2bL39.1aL4.1aL4.1bL4.2aL4.2bL40.1aL40.1bL40.2bL40.2cL40.2dL41.1aL41.1bL42.1aL42.2aL42.2bL42.2cL43.1a L43.2a!L43.2b"L43.2c#L43.2d$L44.1a%L44.1b&L44.1c'L44.1d(L44.1e)L44.1f*L44.1g+L44.1h,L44.1i-L45.1a.L45.1b/L5.1a0L50.1a1L50.1b2L50.1c3L50.2c4L50.2d5L50.2e6L50.2f7L50.2g8L51.1a9L51.2a:L51.2b;L51.2c<L52.1a=L52.1b>L52.2a?L52.2b@L52.2cAL53.1aBL53.2bCL54.1aDL54.1bEL55.1aFL56.1aGL57.1aHL6.1aIL6.2aJL6.2bKL60.1aLL60.1bML60.2aNL60.2bOL60.2cPL60.2dQL61.1aRL62.1aSL62.2aTL62.2bUL62.2cVL63.1aWL63.1bXL63.1cYL63.1dZL63.1e[L64.1a\L64.1b]L65.1a^L66.1a_L7.1a`L7.1baL7.2cbL70.1acL70.2adL70.2beL70.2cfL70.2dgL70.2ehL70.2fiL70.2gjL71.1akL72.1alL72.2amL72.2bnL72.2coL72.2dpL73.1aqL74.1arL8.1asL8.1btL8.2auL8.2bvL8.2cwL9.1axL9.2ayL9.2bzL9.2d{L9.2e|pL9.3c#]R l-nA #D#o#o . ..appendix frontmatter miscpgmdir psd smm#usd#]T l-~A #D#Q# .I .. 0.t 1.t 2.t 3.t 4.t 5.t Makefile spell.ok#]V l-}+A #D#Q# . .. 0.t 1.t 2.t 3.t 4.t 5.t 6.t Makefile a.t b.t c.t \spell.ok#]X l-{A #D#R@#7 . .. u.mac u0 u1 u2 u3 u4 u5#]Z l-zA #D#S#W . .. tt.mac tt00 tt01 tt02 tt03 tt04 tt05 tt06 tt07 tt08 tt09 tt10 tt11 tt12 tt13 tt14 ttack  ttcharset ttindex#]\ l-vفA #D## .TH .. aed.c aed_tty_mcode.h  aeddefs.h aedloc.c aedtty.c aedtty.h  apa16loc.c  apa16tty.c  apa16tty.h apa16tty_font.h  apa8cloc.c  apa8ctty.c  apa8ctty.h  apa8loc.c  apa8tty.c  apa8tty.h apa8tty_font.h  apa_fontblt.c  apa_structs.h apaaed.h  buf_emul.c  buf_emul.h bus.c cons.c  codes.awk  consdefs.h consio.h  consvars.h  ega_font.h  ega_init.h egatty.c egatty.h  ibm_emul.c  ibm_emul.h  kbd_emul.c  kbd_emul.h  kbde_codes.h  keyboard.c  keyboard.h kls.c kls.h lptty.c  monocons.h  monotty.c  monotty.h  mpeltty.c  mpeltty.h mpeltty_font.h qevent.h vgaio.h  screen_conf.c  screen_conf.h  sprintf.c  std_emul.c  std_emul.h x_emul.c xio.h p xten_emul.c#]_ l-pA #D## .TH ..4 lib  support.me Makefile README  apply.update identify.files  ptfinstall  ptfinstall.v1  ptfinstall.v2 sendapar#2ptfdir4ptftest4 .Builddate#]a l-r;wA #D## .P .. ftp.h inet.h  nameser.h telnet.h tftp.h#]c l-WA #D#o#N .8| .. L0 L0.1a L0.1b L0.1c L0.1d L0.1e L0.1f L0.1g L1.1a L1.1b L1.1c L1.1d L2.1a L2.1b L2.1c L2.1d L2.1e L2.1f L3.1a L3.1b L3.1c L3.1d L3.1e L3.1f L3.1g L4.1a L4.1b L4.1c L4.1d L4.1e L4.1f L4.1g L4.2a L5.1a !L5.1b "L5.1c #L5.1d $L5.1e %L6.1a &L6.1b 'L6.1c (L6.1d )L6.1e *L6.2e + L7.1a#]e ,l-bkA#D#W#W , .[..#]g -l-bkA#D#X#Y - .[..#]i .l-Ab #D#u#D . .B .. /args.c 0blok.c 1 brkincr.h 2 builtin.c 3cmd.c 4ctype.c 5ctype.h 6defs.h 7dup.h 8error.c 9expand.c :fault.c ;io.c <mac.h =macro.c >main.c ?mode.h @msg.c Aname.c Bname.h Cprint.c D service.c Esetbrk.c Fstak.c Gstak.h Hstring.c Isym.h J timeout.h Kword.c Lxec.c MMakefile#]kl-t=A #D#P# . .. 01.apxsep 02.swaredesc 03.aedsep04.hcsep#]ml-rA #D#Q# .I ..Makefilelint.ms#]ol-rCA #D#Q# . .. 0.t 1.t 2.t 3.t 4.t 5.t 6.tMakefile a.t b.t c.t d.t e.tDspell.ok#]ql-pA #D#RI#  . ..MakefileRefsRefs.ig p0 p1 p2 p3 p4 p5! p6"`p7#]s#l-oA #D#S[# # . ..$ MAKEHOSTS#]u%l-vA #D## % .TH ..&if_ec.c' if_ecreg.h(if_lan.c) if_landma.h* if_lanio.h+ if_lanreg.h, if_lanvar.h-if_un.c.P if_unreg.h#]w/l-v*A #D##!/ .TH ..0 icmp_var.h1 if_ether.c2 if_ether.h3if_lan.h4in.c5in.h6in_pcb.c7in_pcb.h8 in_proto.c9 in_systm.h:in_var.h;ip.h< ip_icmp.c= ip_icmp.h> ip_input.c? ip_output.c@ip_var.hAraw_ip.cBrvd.cCrvd.hD rvdconst.hEtcp.hF tcp_debug.cG tcp_debug.hH tcp_fsm.hI tcp_input.cJ tcp_output.cK tcp_seq.hL tcp_subr.cM tcp_timer.cN tcp_timer.hO tcp_usrreq.cP tcp_var.hQtcpip.hRudp.hS udp_usrreq.cT udp_var.h#]yUl-cuA #D###U . ..qncformrnrform#]{Vl-PA #D#o##V .8| ..WInitX L0YL1.1aZL1.1b[L1.2\L2.1]L2.2^L2.3_L2.4`L3.1aL3.2bL3.3cL3.4dL4.0eL4.1fL4.2gL4.3hL5.1iL5.2jL5.3kL5.4lL6.1mL6.2nL6.3oL6.4p\longtext#]}sl-.HAB#D#$#,$Gs .M%..#]tl-^bA #D##$Wt .MH..us#]l-yA #D#=#'h . .. 01.frontI 02.frontII 03.frontIII04.soa05.about06.tocI07.tocII 08.tocIII 09.manpgchart 10.vIIdesc 11.vIIIdesc12.rcf#]l-gA #D#QV#' .4 ..Makefilevhel.macvhel0vhel1vhel2vhel3vhel4vhel5`vhel6#]l-d:A$ #D#R9#' . .. 01.begin02.learn&03.shell04.csh05.dc06.bc07.Mail08.mh 09.newsread# 10.etiq*11.notes12.edtut-13.edadv?14.editB15.vi&16.exF17.joveI18.sedM19.awkP 20.msmacros[ 21.msdiffs 22.memacros23.meref24.troff  25.trofftut1 26.eqn4 27.eqnguide 28.tblT!29.refer 30.invert31.bib# 32.diction-33.rogue?!34.trek 00.contentslTitle#]l-f2A #D#Ra#' . ..dc#]l-eA #D#R#' . ..Makefileref.me#]l-s*A #D##( . ..tmac.atmac.cptmac.ostmac.rtmac.s tmac.s8.5 tmac.scover tmac.sdisp tmac.skeep tmac.srefs tmac.vcattmac.an tmac.an.new tmac.an6n tmac.an6tLtmac.etmac.bib tmac.vgrind#]l-v)A #D##( .TH ..nfs.h nfs_clnt.h nfs_server.c nfs_subr.c nfs_vfsops.cnfs_vnodeops.c nfs_xdr.cTrnode.h#]l-dA #D##( ...#]l-rZA #D#6#6) . .. ibm3812pppplpf ppt pmptxt3812pmp3812 usqzpmp_fontsqzpmpddit3812#]l-3AB#D#%#,+ .M%..#]l-^\A #D#8#;-d .[]..#]l-]CA #D#P+#/H . ..02.metaw#]l-\FA #D#Q#/K .I ..Makefileadb.ms#]l-[A #D#Q#/M . ..Makefile kdebug.ms#]l-ZA #D#Rc#/O . .. bc#] l-YA #D#S/#/ . .. tbl#] l-]A #D#O#/ . ..  ausfont.fnt deskcursor pcfont.fntwhim.aed#]l-vA #D##2 .TH ..profiledMakefileauth.h auth_kern.c auth_none.c auth_unix.c auth_unix.hauthunix_prot.cclnt.h clnt_kudp.c clnt_perror.c clnt_raw.c clnt_simple.c clnt_tcp.c clnt_udp.c  dbx_rpc.c! disclaimer"get_myaddress.c#kudp_fastsend.c$ pmap_clnt.c% pmap_clnt.h&pmap_getmaps.c' pmap_getport.c(pmap_kgetport.c) pmap_prot.c* pmap_prot.h+ pmap_prot2.c, pmap_rmt.c-rpc.h. rpc_callmsg.c/ rpc_msg.h0 rpc_prot.c1rpclib2rpclib_p3 subr_kudp.c4svc.c5svc.h6 svc_auth.c7 svc_auth.h8svc_auth_unix.c9 svc_kudp.c: svc_raw.c; svc_simple.c< svc_tcp.c= svc_udp.c>types.h?xdr.c@xdr.hA xdr_array.cB xdr_float.cC xdr_mbuf.cD xdr_mem.cE xdr_rec.cFxdr_reference.cG xdr_stdio.c#]Hl-rA #D##0H .P ..Iunixio.hJunixio.i#]Kl-pA #D##0K ...Ltmac.eMacm.meNchars.meO deltext.mePeqn.meQfloat.meR footnote.meSindex.meTlocal.meUnull.meVrefer.meWsh.meXtbl.meY thesis.meZ revisions#][l-.AB#D#-#,2[ .M% ..vuucico  uux#1uuxqt4uucp8 xferstats#]\l-\SXA #D#<#<3H\ .[]..#]l-S̪A #G#L#L7( .TH..#]l-PA #D#Q#7) .I ..Makefiledbx.msspell.ok#]l-PA #D#Q#7/ . ..Makefile quotas.ms#]l-O)A #D#Rv#7d . ..Makefilemail0.nrmail1.nrmail2.nrmail3.nrmail4.nrmail5.nrmail6.nrmail7.nrmail8.nrmail9.nr maila.nr#]l-N=A #D#S5#7 . ..pubuserefer#]l- A #D#O#7N . .. hcansi.pt hcansi.st hcansip.pt#]l-vA #D#`#7 . .. tar_holder#]l-rA #D##7g .P .. dumprestore.hrouted.hrwhod.htalkd.htimed.h#]l-pޮA #D##8n . ..s.accs.covs.eqns.refs.tbls.thss.tocend.awkendnoteXREADME#]l-.{AB#D#'#,8 .M%..#]l-pA #D#U#8 . ..w libnotesautoseqnfpipenfprintnfstats checknotes#]l-vA #D#s#? . ..01.asref02.fpa03.csubs 04.prognotes 05.linkage06.ccompp07.pcomp#]l-DBA #D#Q#@ .I .. Makefile make.ms#] l-CA #D#Q#? . .. 0.t 1.t 2.t 3.t 4.tMakefile#]l-packf.me?pick.me@pop5.meApop8.meB popaka.meCpopd.meD popwrd.meEpost.meFprev.meG prompter.meH rcvstore.meI refile.meJrepl.meKrmail.meLrmf.meMrmm.meNscan.meOsend.mePshow.meQsortm.meRtmac.hStmac.meT version.rfUvmh.meV whatnow.meW whom.me#]Xl-vA #D##AX .TH ..Y callback.er.cZ callback.rg[ callback.ss.c\rvaux.c]rvaux.h^rvice.c_ rvice.cs.c`rvice.harvice.rgbrvice.xgc( vicelock.h#]dl-vIA #D#l#BOd .TH ..eaf.cfaf.hgif.chif.hiif_arp.hj if_loop.ckif_sl.clnetisr.hmraw_cb.cnraw_cb.ho raw_usrreq.cproute.cq route.h#]sl-qA #D#g# As . ..uaculog{lpacct|acct-pp}acct-ps~lpd-errsppd-errsps-errsdailyweeklymonthlyacctrlpacct rlpd-errslastlogmessagesmsgbuf shutdownlogusracctwtmp#]tl-`YA #D##At .[ ..syslog#]vl-.AB#D#)#,Bv .[..#]wl-p3A #D#f#Bw . ..x libnfcom.aynfxmitznfrcv#]l-vA #D#v#F . ..01.setup 02.config03.apc04.3812 05.consemul06.rvd07.dmal08.nfs.syadmin#]l-7A #D#Q"#H .I ..Makefilercs.manrcs.ms#]l-7;A #D#Q#H . .. 0.t 1.t 2.t 3.t 4.t 5.t 6.t 7.tMakefiletspell.ok#]l-5ZA #D#R#I . ..Makefile copyright.mnhowto.mntmac.n#]l-4A #D#S8#I . ..INDEX bibdoc.mstestrefs#]l-7A #D#O#J . .. cirtab.dat hchtab.dat marker.dat markid.dat mcr1v001.bin sintab.dat#]l-sA #D##J7 .TH ..Makefileether.h etherxdr.c klm_prot.c klm_prot.h klm_prot.xmount.h mountxdr.c nlm_prot.c nlm_prot.h nlm_prot.xrex.h rex_xdr.crquota.h rquotaxdr.crstat.h rstatxdr.crusers.h rusersxdr.crwall.h rwallxdr.c sm_inter.c sm_inter.h sm_inter.xspray.h sprayxdr.cutil.c yppasswd.h yppasswdxdr.c yp_prot.hypclnt.h ypv1_prot.h#]l-m\A #D#,#, . .. atq atatrmcalendar dcstyledictionexplaindiff3 efl eqnbf77findgraphlearn lexlint m4nroffneqn tekt4013t300t300st450aedplotbgplotcrtplotdumbplotgigiplothpplot tbl hp7221plotimplotatoplotplottoaplotprofratforreferaddbibsortbibroffbibindxbiblookbibspellinspelloutspellstruct tip cutroffuucp uux uulog uuname uusnap uupoll  uuq 7uusend 7ruusend uuencode uudecode enroll xsend xget yacc install lorder nohup basename  cal  cb checkeq  col comm crypt deroff file join look mesg  ptx ranlib  rev sleep sort !spline "split # sum $tabs %touch & tr 'tsort ( tty )uniq *units + bc ,egrep -fgrep .iostatI ex /rpcgen 0ypcat 1ypwhich 2ypmatch 3yppasswd 4 on 5hf77 6Tf77#]l-_wA #D# #ݼK. .[..#] l-.AB#D#*#,L  .[..#]#l-v^A #D#x#O# . ..#01.pic#02.x# 03.nfs.user#]#l--A #D#Q%#O# .I ..#Makefile#sccs.me#spell.ok#]#l-,A #D#Q#O# . ..# Makefile# op.me# spell.ok#]# l-+A #D#R#O# . ..# Makefile# manner.mn#tmac.n#]#l-)aA #D#S>#Q# . ..# ap1# ap2# rm0# rm1#rm2#]#l-wA #D#ͽ#Q# .W ..#Makefile#README#break#cshcmd#ignore#ptx.in#ptxxfix#toc.in#dtocrc#]# l-vA #D##Q# .TH ..#!bdev_vnodeops.c#"fifo.h##fifo_vnodeops.c#$ fifonode.h#%snode.h#& spec_subr.c#'pspec_vnodeops.c#]#(l-qA #D##jQ#( . ..#+ spellhist#,words#- connectives#.hlista#/hlistb#0hstop#]#)l-r2[A#D#^#^Q#) .[ ..4past#* lasttimedone#]#1l-.AB#D#*#,T#1 .[..#]#2l-A #D#S#ST#2 . ..#]&l-"A #D#Pg#W& . ..*berknet-ctour1diskperf4gprof8 kchanges.4.2; px? sdbBsysperfF uchanges.4.2& kchanges.4.1&regen& uchanges.4.1& ukchanges.4.0#]&l-!A #D#Q2#W& .I ..&Makefile&ss..& ss0& ss1& ss2& ss3& ss4& ss5& ss6& ss7& ss8& ss9& ssA& ssB& ssa& ssb& ssc&ssd#]&l-.A #D#RR#Y& . ..&t.mac& t1& t2& t3&t4#] &l-A #D#R#Y&& . ..&Makefile&ex.rm& ex.summary#] &l-qA #D##ݱY/& . ..Bguestneqn.1'? netstat.1'@ newaliases.1'Anice.1'Bnm.1'Cnohup.1'Don.1c'Epprint.1'Fnroff.1'God.1'Hpasswd.1'Ipage.1'J pagesize.1'Kpcc.1'Lpc.1'Mpf.1'Npix.1'Opdx.1'Ppic.1'Qpi.1'Rplot.1g'Spmerge.1'Tprfl.1'Upr.1'Vproff.1'W printenv.1'Xprof.1'Yptroff.1'Zps.1'[quota.1'\rsh.1c']ptx.1'^pwd.1'_px.1'`pxp.1'apxref.1'brcp.1c'cranlib.1'dratfor.1'e rlogin.1c'frdist.1'grefer.1'hreset.1'irev.1'jrpcgen.1'krup.1c'l w.1'mrm.1'nrmail.1'ormdir.1'p roffbib.1'q rusers.1c'r ruptime.1c'srwall.1c'tscale.1'urwho.1c'vstty.1'wsccs.1'xscript.1'ysed.1'z sendbug.1'{sh.1'|size.1'}sleep.1'~soelim.1'sort.1' sortbib.1'spell.1' spellin.1' spellout.1' spline.1g'split.1' strings.1'strip.1'struct.1'su.1' support.1'style.1'sum.1'systat.1' symorder.1' sysline.1'tar.1'tabs.1'tail.1'talk.1'tn3270.1'tbl.1'tc.1'tcopy.1'tee.1' telnet.1c'test.1'tftp.1c'time.1'tip.1c' tk.1'unix.1'touch.1'tp.1'tr.1'troff.1'true.1'tset.1'tsort.1'tty.1'ul.1' uncompress.1'what.1' unexpand.1' unifdef.1'uniq.1'units.1'unlog.1'up.1'uwm.1'uptime.1'users.1'uucp.1c' uudecode.1c' uuencode.1c'uulog.1c' uuname.1c' uusend.1c'uux.1c'vgrind.1' vacation.1'viceup.1'vi.1'vmstat.1'whatis.1'vlp.1'wm.1'vwidth.1'wait.1'wall.1'wc.1' whereis.1'which.1'while.1'who.1'whoami.1'whois.1'window.1'xcalc.1'write.1'xclock.1'xfd.1'xhost.1'xstr.1'xget.1'xinit.1'xload.1' xlsfonts.1'xmh.1' xmodmap.1'xpr.1'xprkbd.1'xprop.1'xrdb.1' xrefresh.1'xset.1'xsend.1' xsetroot.1'xterm.1'xwd.1' xwindows.1' xwininfo.1'xwud.1'ypcat.1'yacc.1'yes.1' ypmatch.1' yppasswd.1' ypwhich.1'showps.1'zcat.1' bits4216.1'nfpipe.1' checknotes.1' nfstats.1' nfprint.1' autoseq.1' readnotes.1#]*l-AA #D#Pn#^* .& ..* coverpage.n*distrib*makefile* makefile.doc* masters.n* netintro.n* refcard.n*\systemmanual.n#]* l-cA #D#Q4#^* .I ..* Makefile* lex.ms#]* l-A #D#Q#^* . ..* Makefile*timed.ms#]*l-bA #D#R#^* . ..*0.long*0.short* 1* 2.1* 2.2* 3.1* 3.2* 4.0* 4.1* 4.2* 4.3* 4.4* 4.5* 4.6* 4.7* 5* Makefile*! a.checklist*"acks*# b.interface*$ c.changes*%macros*&vtoc#]*'l-rA #D#w#b*' .W ..*( aedtest.8*) XNSrouted.8c**ac.8*+accton.8*, adduser.8*- afpacode.8r*. badsect.8*/arff.8v*0arp.8c*1bad144.8*2config.8*3 bugfiler.8*4catman.8*5chown.8*6clri.8*7 comsat.8c*8crash.8r*9 cvt3812.8*:crash.8v*;cron.8*<cvtsym.8*=debug.8*> fdformat.8r*?dcheck.8*@ diskpart.8*Admesg.8*Bdrtest.8*Cdump.8*Ddumpfs.8*E edquota.8*F fastboot.8*G fasthalt.8*Hfdisk.8*I flcopy.8r*J fingerd.8c*K format.8r*L flcopy.8v*M fsirand.8*N format.8v*Ofsck.8*Phalt.8*Q implogd.8c*Rftpd.8c*S gettable.8c*Tgetty.8*U ibm3812pp.8*Vhtable.8*W ifconfig.8c*Xicheck.8*Yinetd.8*Z implog.8c*[ncheck.8*\init.8*]intro.8*^ landump.8*_kgmon.8*` landump.8r*aldfnt.8*bldps.8*clockd.8c*d lpfilter.8r*elpc.8*flpd.8*g makedbm.8*h makedev.8*i makesym.8*j makekey.8*k minidisk.8r*lmount.8*mmkfs.8*n mkhosts.8*omklost+found.8*pmknod.8*q mkpasswd.8*r mkproto.8*s mountd.8c*tnewfs.8*unewvd.8*vnamed.8*wroute.8c*xnfsd.8*y nfsstat.8*znotes.8*{omerge.8*| portmap.8c*}pac.8*~ping.8*ppt.8*pstat.8* ptfinstall.8*quot.8* quotacheck.8* quotaoff.8* quotaon.8*reboot.8*rc.8*rdump.8c* restore.8*renice.8* repquota.8*restore.tape.8*rexd.8c* rexecd.8c* rlogind.8c* rpcinfo.8*timed.8*rmt.8c* routed.8c*rshd.8c* rrestore.8c* rstatd.8c* rusersd.8c* rvdchlog.8* rvdcopy.8* rvddown.8* rvdexch.8* rvdflush.8* rvdgetm.8* rvdhosts.8*rvdlog.8* rvdsend.8* rvdsetm.8* rvdshow.8* rvdshut.8*rvdsrv.8* rwalld.8c* sautil.8r*rwhod.8c* rxformat.8v*sa.8* savervd.8* savecore.8*timedc.8* scsiformat.8c* sendapar.8*setid.8* sendmail.8* setscreen.8* showmount.8* shutdown.8*spinup.8* slattach.8c*spray.8c* sprayd.8c* startvenus.8*statd.8c* suspend.8*sticky.8* syscall.8*swapon.8*sync.8* syslogd.8*tailor.8* tnamed.8c*talkd.8c* telnetd.8c*tftpd.8c* vdabort.8*trpt.8c*trsp.8c*tunefs.8*update.8* uucico.8c* uuclean.8c*uucpd.8c* uupoll.8c* uusnap.8c*uuxqt.8c*vddb.8* vdstats.8*venus.8*viced.8*vipw.8* whichfpa.8* width3812.8*ypbind.8*ypinit.8*ypmake.8* yppasswdd.8c*yppoll.8*yppush.8*ypserv.8*ypset.8* ypwhich.8*ypxfr.8*ypxfr_1perday.8*ypxfr_1perhour.8*ypxfr_2perday.8*biod.8*umount.8*pps.8r* pstext.8r*mknf.8*rmnf.8*nfxmit.8*nfrcv.8* newsinput.8* newsoutput.8* nfaccess.8* nfarchive.8*nfmail.8*nfdump.8*nfload.8#]"-l- A #D#Pt#fh- .& ..-cdoc0-cdoc1-cdoc2-cdoc3-cdoc4-ios.r-newstuff#]$-l- A #D#Q6#f- .I ..-Makefile-m4.ms#]&-l- A #D#Q#f- . ..-Makefile- implement.ms-spell.ok#](-l- A #D#R#f- . ..-ae.mac- ae0- ae1- ae2- ae3- ae4- ae5- ae6- ae7-xae9#]*-l-A #D#S@#g- . ..-Makefile-rogue.me#],-l-u5tA #G#!Y#g- .TH ..- adunload.c-apdefs.h-apio.h-apvar.h-asy.c-asyreg.h-dma.c-dmareg.h-dmavar.h-fd.c-fdio.h-fdreg.h-fdvar.h-hd.c- hdconfig.h-hdreg.h- ibm9332scsi.h- ioccvar.h-lp.c-mouse.c- mouseio.h- mousereg.h- mousevar.h-ps.c-psp.c-scsi.c-pspreg.h- scsiconfig.h-scsiio.h- scsireg.h- speaker.c- speakerio.h- speakervar.h-st.c-streg.h- tty_apldisc.c- tty_approto.c- tty_mouse.c-vd.c- vdconst.h-vdreg.h#].-l-cpA #D#K#KuH- .TH ..- keyboard.c-8530.h-Makefile-aed.h-aedtty.c-aedtty.h- apa16tty.c- apa16tty.h-apa16tty_font.h- apa8ctty.c- apa8ctty.h- apa8tty.c- apa8tty.h-apa8tty_font.h- apa_fontblt.c- apa_structs.h- apaeight.h- apaeightc.h- apasixteen.h- argprint.c-asm.h-aton.c-atox.c-boot.c-bootxx.c- callabs.s-cat.c-codes- codes.awk-com.c-com.h-conf.c-conf.h-confxx.c- consdefs.h-consio.h-copy.c-debug.c-debug.h- debugger.s- debugmain.c- display.c-dma.c-dma.h- dosboot.c-dummy.c-dump.c-ega.h- ega_font.h- ega_init.h-egatty.c-egatty.h-endcheck-err.c-err.h-fd.c. fdutils.c.format.c. getchar.c.gets.c. hard_delay.c.hd.c.hfetch.s. ibm_emul.c.init.c. init.h.  initvec.c.  install.c. installboot.sh. ior.s. keyboard.h.lps.s.lptty.c.ls.c. minidisk.c.mono.h. mono_tcap.h. monotty.c. monotty.h.mpel.h. mpeltty.c. mpeltty.h.mpeltty_font.h.mpeltty_mcode.c.mtsr.s.nvram.c.parse.c.perror.c.  premain.c.!prf.c."printf.c.#rdb.c.$rtt.c.%sa.h.&saio.h.'samake.( samakefile.)sari.h.*sautil.c.+ screen_conf.c., screen_conf.h.-setvec.s..srt0.s./ startup.c.0 std_emul.c.1 std_emul.h.2sys.c.3sys2.c.4sys3.c.5time.c.6trace.c.7unasm.c.8utils.c.9vtop.c.:wterm.c.;(sautil.o.<printf.o.=sys.o.>sys2.o.?xsys3.o.@4 monotty.o.A gets.o.Bconf.o.Cparse.o.D$rtt.o.E premain.o.FXcodes.h.GH keyboard.o.H$init.oS.Ihfetch.o.Jior.o.KXcmds.h.Ldebug.o.M8unasm.o.N( startup.o.Omtsr.ohd.o.Q8 initvec.o.R$ debugger.o.Satox.o.Tptrace.o.Usetvec.o.VDfd.o.W display.o.X dma.o.caton.o.Zlps.o.Y@ screen_conf.o.[aedtty.o.\ ibm_emul.o.] std_emul.o.^< apa8tty.o._ apa16tty.o.` apa8ctty.o.a apa_fontblt.o.b hard_delay.o.e8time.oc.d callabs.o.fcrcgen.o.gHvtop.o.h8perror.o.icom.o.jegatty.oD mpeltty.o.llptty.o.m utils.o.nerr.o.olibsa.a.pdkpart.o.spmpeltty_mcode.o.qapa16tty_boot.o.r@mpeltty_boot.o.t(boot.o..u sautil.out.S.v relsrt0.o.uboot.out#]31l-VA #D#P{#nH1 .& ..1Makefile1abs.ms1 appendix.ms1conclusions.ms1equip.ms1methodology.ms1 motivation.ms1 results.ms1 @tests.ms#]51 l-*A #D#QG#n1 .I ..1 Makefile1 Master1 appen.A1appen.B1appen.C1c_macros1doc.I1doc.II1doc.III1doc.IV1intro.01intro.11intro.21intro.31intro.41intro.51life.c1macros1 twinkle1.c1 twinkle2.c1win_st.c#]71 l- A #D#S'#n1 . ..1!e.mac1" e01# e11$ e21% e31& e41' e51( e61)e7#]91*l-uUA #D##p1* .W ..1+ aedemul.41,acc.41-ad.41.ap.41/asy.410arp.4p11 autoconf.412 bufemul.413bk.414bus.415cons.416dfs.417hd.418crl.419css.41:ct.41;ddn.41<de.41=disk.41>dhu.41?fd.41@fl.41Admc.41Bdmz.41Cdn.41Ddrum.41Eec.41Fen.41Gex.41H ibm5081.41Ihdh.41Jhk.41Khp.41Lht.41Mhy.41N ibm5151.41O ibm5154.41P ibm6153.41Q ibm6154.41R ibm6155.41S ibm8514.41Tibmaed.41U ibmemul.41Vif.4n1Wicmp.4p1Xidp.4p1Yintro.41Zik.41[il.41\imp.41]imp.4p1^inet.4f1_ kbdemul.41`intro.4n1aip.4p1bix.41clan.41dlo.41ekg.41fkmem.41glp.41hmem.41imouse.41jmtio.41kmt.41lnfs.4p1mtm.41n networking.4n1opsp.41pnp.41qns.4f1rnsip.41snull.41tpcl.41urvd.4p1vtmscp.41wpty.41xqe.41ysc.41zrx.41{ speaker.41|st.41}ts.41~spp.4p1 stdemul.41tb.41tty.41tcp.4p1un.41tu.41uda.41udp.4p1vga.41up.41ut.41uu.41va.41xemul.41vp.41vv.41Pps.4#]<1l-A #D#oX#q1 .8| ..1Init1 L01L0.01a1L0.1a1L0.1b1L0.1c1L0.1d1L1.1a1L1.2a1L1.2b1L10.1a1L10.2a1L10.2b1L10.3a1L10.3b1L10.3c1L10.3d1L11.1a1L11.2a1L11.2b1L11.3a1L11.3b1L11.3c1L12.1a1L12.2a1L12.2b1L12.2c1L12.3a1L12.3b1L12.3c1L13.01a1L13.1a1L13.1b1L13.1c1L13.1d1L13.1e1L13.1f1L13.1g1L2.1a1L2.2a1L2.2b1L3.1a1L3.2a1L3.2b1L3.3a1L3.3b1L4.1a1L4.2a1L4.2b1L4.3a1L4.3b1L4.3c1L5.1a1L5.1b1L5.1c1L5.1d1L5.1e1L6.1a1L6.1b1L6.1c1L6.1d1L6.1e1L6.2a1L6.2b1L7.1a1L7.2a1L7.2b1L7.3a1L7.3b1L7.3c1L8.1a1L8.2a1L8.2b1L8.2c1L9.1a1L9.2a1L9.2b1L9.2c#]?4l-A #D#P#v(4 .& ..4Makefile4 abstract.me4 gathering.me4 header.me4intro.me4postp.me4 present.me4 profiling.me4@refs.me#]A4l-A #D#QI#vD4 . ..8 01.cacm 02.summary?03.uprogB 04.implementF 05.iosysI06.eflM07.fpP 08.ratforT09.lisp4 00.contents4,Title#]C4l-A #D#Q#v4 . ..4 00macs.me4 00title.me4Makefile4build.me4files.me4intro.me4 manage.me4named.boot.cache4named.boot.primary4 named.boot.secondary4named.ca4 named.local4 resolv.conf4setup.me4spell.ok4types.me4ucbhosts4x ucbhosts.rev#]E4l-A #D#S-#vo4 . ..4g.mac4 g04 g14 g24 g34 g44g5#]G4l-nA #D#X#vO4 . ..4ascii4eqnchar4greek#]I4l-cvA #D#J#Jv4 .TH ..4GENERIC4$files4 NFSEXAMPLE4buildsym4defines4 devices.ca4files.ca4 files.vfs4fixsyms4make.ws4 makefile.ca4 newvers.sh4 param.c#]K4l-f7A #D#[#[v4 . ..4 BUGNUMAPAR4Makefile4 apar.template4apply.update.14apply.update.24apply.update.34apply.update.44incr.c4mklock.c4 noblanks.sh4ptf.log4noblanks4mklock4incr4 .Builddate#]M4l-_j$A #D##ݻwg4 . ..4bounds#]O4l-qA#D#]#^wh4 .#)..#]Q4l-.TAB#D#+#,wi4 .[..#]S4l-NA #D#T#Tw4 . ..#]U8l-cA #D#P#~8 .& ..8 0.t8 1.t8 2.t83.0.t83.1.t83.2.t83.3.t83.4.t8 3.5.t8 3.6.t8 T4.t#]W8 l-A #D#QO#~8 .4 ..8 Makefile8p.mac8 p18 p28 p38 p48 p58p6#]Y8l-A #D#R$#~8 . ..8 0.t8 1.t8 2.t8 3.t8 4.t8 5.t8 6.t8 7.t8 8.t8 9.t8 Makefile8! a.t8" b.t8# c.t8$ d.t8% e.t8& f.t8'spell.ok#][8(l-ueNA #D##@8( .W ..8)a.out.58* L-devices.58+ L-dialcodes.58, L.aliases.58-L.cmds.58.L.sys.58/ USERFILE.580 consoles.581acct.582 aliases.583ar.584core.585dbx.586 exports.587hosts.588dir.589 disktab.58:dump.58; dumpdates.58< font3812.58=fstab.58>fs.58?group.58@ gettytab.58A hosts.equiv.58Bkeyboard_codes.58Cinode.58D map3270.58Emntent.58Fmtab.58G netgroup.58Hpasswd.58I networks.58J printer3812.58Kphones.58Lplot.58M printcap.58N rc.config.58O protocols.58Prmtab.58Qttys.58Rremote.58S resolver.58Trpc.58Urvddb.58Vrvdtab.58W statmon.58X services.58Ystab.58Z ypfiles.58[tar.58\ termcap.58]tp.58^types.58_utmp.58` uuencode.58avfont.58b vgrindefs.5#]^8cl-vLA #D##~8c .TH ..8d klm_kprot.c8e klm_lockmgr.c8f lockmgr.h#]`8gl-{A #D#yu#8g .TH ..8hidp.h8i idp_usrreq.c8j idp_var.h8kns.c8lns.h8m ns_error.c8n ns_error.h8ons_if.h8p ns_input.c8qns_ip.c8r ns_output.c8sns_pcb.c8tns_pcb.h8u ns_proto.c8vsp.h8wspidp.h8x spp_debug.c8y spp_debug.h8z spp_usrreq.c8{ spp_var.h#]b8|l-rA #D##8| . ..8} log?~ bin8~Linfo8Xinfo[ Ceditorl eqn1filesmacros  morefilesVTvi#]d8}l-rZA #D##G8} .8|..#]f8l-rA #D##8 . ..8bigram8code8updatedb8 find.codes#]h8l-.GAB#D#,#,8 .[..#]j8l-b6A #D##8 .MH ..8 note.indx8text8 resp.indx8access#]l;l-A #D#P#; .& ..;fig1.1.n;fig1.2.n;fig1.3.n;fig2.3.n; fig2.3.raw;fig2.4.n;fig3.2.n;fig3.3.n;makefile;pxin0.n;pxin1.n;pxin2.n;pxin3.n;pxin4.n; table2.1.n; table2.2.n; table2.3.n; table3.1.n;tmac.p#]n;l-܅A #D#R#; . ..;Makefile;gen.t; h.t;intro.t;net.t; netinet.t;netns.t;spell.ok;stand.t; sys.kern.t;sys.t; sys.tty.t; sys.ufs.t; sys.uipc.t;sys.vm.t;vax.t;vaxif.t;vaxmba.t;vaxuba.t#]p;l-uUA #D##X; .W ..;async_daemon.2;accept.2;access.2;acct.2; adjtime.2;chmod.2;bind.2;brk.2;chdir.2;fcntl.2;chown.2;chroot.2;close.2; connect.2;creat.2;dup.2;dup2.2;execve.2;exit.2;fchmod.2;fchown.2;getdirentries.2;flock.2;fork.2;fstat.2;fsync.2; ftruncate.2;getdomainname.2;getfloatstate.2;getdtablesize.2; getegid.2; geteuid.2;getfpemulator.2;intro.2;getgid.2; getgroups.2; gethostid.2; gethostname.2; getitimer.2; getpagesize.2; getpeername.2; getpgrp.2;getpid.2; getppid.2; getpriority.2; getrlimit.2; getrusage.2; getsockname.2; getsockopt.2;$gettimeofday.2;getuid.2;nfssvc.2;ioctl.2;kill.2;killpg.2;link.2;listen.2;lseek.2;lstat.2;mkdir.2;mknod.2;mount.2;ptrace.2;open.2;pipe.2;profil.2; quotactl.2;quota.2;setdomainname.2;read.2; readlink.2;readv.2;reboot.2;recv.2; recvfrom.2; recvmsg.2;rename.2;rmdir.2;sbrk.2;select.2;send.2; sendmsg.2;sendto.2;setpag.2; setgroups.2; sethostid.2; sethostname.2< setitimer.2<sigvec.2< setpgrp.2< setpriority.2< setquota.2< setregid.2< setreuid.2< setrlimit.2< setsockopt.2< settimeofday.2<  shutdown.2<  sigblock.2<  sigpause.2<  sigreturn.2< sigsetmask.2< sigstack.2<stat.2<socket.2< socketpair.2<statfs.2<vdspin.2<swapon.2< symlink.2<sync.2< syscall.2< truncate.2<umask.2<umount.2<unlink.2<utimes.2< vdstats.2<vfork.2<  vhangup.2 quota_sys.c??tty.c?@ quota_ufs.c?A rmt_dev.c?B rmt_remote.c?C subr_log.c?D subr_mcount.c?E subr_prf.c?F subr_rmap.c?G subr_xxx.c?H sys_generic.c?I sys_inode.c?J sys_process.c?K sys_socket.c?L syscalls.c?Mtty_bk.c?N tty_conf.c?O tty_pty.c?P tty_subr.c?Qtty_tb.c?R tty_tty.c?S ufs_alloc.c?T ufs_bio.c?U ufs_bmap.c?V ufs_dsort.c?W ufs_fio.c?X ufs_inode.c?Y ufs_mount.c?Z ufs_namei.c?[ ufs_subr.c?\ufs_syscalls.c?] ufs_tables.c?^ ufs_xxx.c?_ uipc_domain.c?` uipc_mbuf.c?a uipc_pipe.c?b uipc_proto.c?c uipc_socket.c?duipc_socket2.c?euipc_syscalls.c?f uipc_usrreq.c?gvfs.c?h vfs_bio.c?i vfs_conf.c?j vfs_dev.c?k vfs_dnlc.c?lvfs_io.c?m vfs_lookup.c?nvfs_pathname.c?ovm_pt.c?q vfs_vnode.c?pvfs_syscalls.c?r vfs_xxx.c?s vm_drum.c?tvm_mem.c?uvm_mon.c?v vm_page.c?w vm_proc.c?x vm_sched.c?y vm_subr.c?zvm_sw.c?{ vm_swap.c?|vm_swp.c?} vm_text.c#]?~l-rA #D##g?~ .8| ..?learn?lrntee?lcount#]?l-pZA #D##? . ..?lint1?lint2?llib-lc? llib-lc.ln? llib-lcurses?llib-lcurses.ln?llib-lm? llib-lm.ln?llib-lmp? llib-lmp.ln? llib-port? llib-port.ln#]?l-pYoA #D#,#? . ..? tailor.query? tailor.uucp? tailor.host? tailor.netdev?help.no? help.type? help.anss? help.ansp? help.ansm? help.ansd? help.ansh#]?l-b A #D##? .MH ..? note.indx?text? resp.indx?access#]Bl-A #D#P#B .& ..B 0.tB 1.tB 2.tB 3.tB 4.tB 5.tB 6.tB 7.tBMakefileBa1.tBda2.t#]Bl-A #D#Qd#B .4 ..BMakefileBfig1.picBfig2.picB implement#]Bl-jA #D#R&#B . ..BMakefileBintro.me#]Bl-đA #D#R#B . ..BMakefileB vi.apwh.msBvi.charsBvi.inB vi.summary#]Bl-"Ab #D#g#?B .& ..FandrewIxwindowsBMakefileB sample1.cB sample2.cB.loginB.logoutB.cshrcB.profile .D sample3src#]Bl-v)A #D##B .TH ..F binI etcM libP usrBMakefileBREADMEB host_nameB make.minimalB make.siteBminirootB mkMINIROOTBrestore.tape.shBsautilB setup.proc#]Bl-_~A #D##ݼB ...#]Bl-q_5A #D# #B . ..B tab300-12Btab300B tab302-12Btab302Btab37B tab382-12Btab382B tab450-12Btab450B tab833-12Btab833BtabepsonBtabitohB tabitoh12BtablprBtabnec-tBtabnecBtabnec12B tabnec25-tBtabqumeB tabqume12Btabx-ecsB tabx-ecs12BtabxeroxB tabxerox12Btabtn300BtabcrtBtab300sB tab300s-12BtabdtcBtabdtc12BtabipsiB tabipsi12BREADMEBtabproBdtabgra#]Bl-rA #D#0#B . ..B3101B aaBaed512BbeehiveBdiabloBdtc382Bibm3101B stdBstdcrtB tandem653BtelerayBvt100B wyse-addsB xerox1720B xerox1730B xerox1730-lmBzenith29#]Bl-aA#D#Y#YB .[..#]Fl-hA #D#P#F .& ..F 0.tF 1.tF 2.tF 3.tF 4.tF 5.tF 6.tF 7.tF 8.tF |9.t#]F l-MA #D#Qf#F .4 ..F MakefileF iosys#]Fl-A #D#R(#F . ..FMakefileF security.ms#]Fl-A #D#R#F . ..Fjove.1Fjove.2Fjove.3Fjove.4#]Fl- Ab #D#~#@F .B ..F .XdefaultsFandrewF preferences#]Fl-vA #D#|#F .B ..Fcat.shFchmod.shFdate.shFdf.shFecho.shF  hostname.shF!kill.shF"ln.shF#ls.shF$mkdir.shF%rm.shF&rmdir.shF'sync.shF(test.sh#]F*l-p?A #D#v#F* . ..F0 .XdefaultsF1.cshrcF2.loginF3.logoutF4.profileF5andrewF6 preferencesF7lxwin#]F+l-rA #D##F+ . ..F,mkeyF- invF.hunt#]F/l-pEA #D# #F/ .[..#]F8l-o//A #D##HF8 .& ..F9.loginF:.logoutF;.cshrcF<.profileF=.rhosts#]Il-A #D#P#hI . ..M01.ClangP02.f77T03.f77ioW 04.pascal[05.as 06.sysman 07.ipctut 08.ipc09.lint10.adb11.dbx12.make13.rcs#14.sccs&15.yacc* 16.lex-17.m41  18.cursesI 00.contentsITitle#]Il-A #D#Qi#I .4 ..IMakefileIefl#]Il-A #D#R*#I . ..IMakefileI password.ms#]Il-TA #D#R#I . ..Ised#]Il-Ab #D##AI .B ..MhelpP lib[ srcI.uwmrcIMakefileIxwindows#]Il-tA #D#v\#I .B ..Itype.shIMakefileIdmesg.shIhalt.shIinit.shImask.shI mkconfig.shImount.shI mount_root.shI onechar.cI putchar.cI reboot.shI sizeck.shI umount.shI whichdev.shIxxxfs.c#]Il-s4uA #D#ʈ#I . ..I fd1.2mbootI fd1200dosbootIfd1200pcdosbootI fd1440dosbootIfd1440pcdosbootI fd360dosbootIfd360pcdosbootIfd720pcdosbootI hd114ebootI hd310ebootI hd310hbootI hd40mbootI hd40rbootI hd70cbootI hd70ebootI hd70mbootI hd70rbootI hdps02bootI hdps31bootI hdps32bootI hdpsesbootIboothdIbootfdI installboot#]Il-`A #D##ÈI . ..I lprI lpqIlprmIlptestI newaliasesImailqIvacationI fprIfsplitIMailI fmtImailIcompressI uncompressIzcatI dbxIerrorI exIeditI eI viIviewI ftpIgprofIindentImoreIpageImsgsInetstatIrdistIsendbugI manIsystatItalkItftpItn3270ImsetItsetIresetIvgrindIsyslineIwindowIwhichIapplyIbiffIchecknrIcolcrtIcolrmIctagsIexpandIfingerIfoldIfromIgrepIgroupsIheadIlastIlastcommIleaveIlockIloggerImkstrIprintenvIruptimeIrwhoIscriptIsoelimIstringsIsymorderItailItcopyItelnetIunexpandIunifdefIusersIwhereisJwhoamiJwhoisJwhatJ wcJxstrJ yesJclearJ ulJgcoreJ vmstatJ wJ rloginJ rshJ quotaJ uptimeI fIaproposIwhatisI uJrupJrusers#]Il-r5A #D##I . ..I structureIbeautify#]Jl-p7A #D##J . ..JldpsJldfntJ ppsJpstext#]Jl-_$fA #D##ݼOJ .[..#]Ml-vA #D#P#HM .I ..MClang.msMMakefile#]Ml-A #D#Qr#JM .4 ..MMakefileM manApp.rnoM manCh0.rnoM manCh1.rnoM manCh2.rnoM  manCh3.rnoM  manCh4.rnoM  manCh5.rnoM  manCh6.rnoM  manCh7.rnoM manDefs.rnoM refs.rno#]Ml-A #D#R.#WM . ..MMakefileM porttour1.msM porttour2.ms#]Ml-A #D#R#M . ..Mawk#]Ml-Ab #D#y#AM .I ..M$CreateWindowHelpScript.fMDisplayHelpScript.fMKeyHelpScript.fM$ManageWindowHelpScript.fMREADMEMTopicMouseScript.fM@XCmdHelpScript.f#]Ml-vA #D#{# M .B ..Minstall.driver.shM install.mainmenu.shM!install.options.shM"install.welcome.sh#]M#l-cA #D#o#o.HM# . ..M&afpacodeM'cvtsymM(omergeM)makesymM* pfM+kbdlockM,unttyM- ftcM.whichfpaM/dosreadM0dosdirM1doswriteM2dosdelM3aedtest<% libM4 cvt20to12M5 cvt00to12M6 width3812M7pprint<'lpfilterM8rvdsrvM;vddbientM9spinupM9spindownM9vdstatsM9 upM9downM9newvdM9vdabortM9rvdhostsM:rvdchlogM:rvdlogM:rvdflushM:rvdgetmM:rvdsetmM:rvddownM:rvdexchM:rvdsendM:rvdshowM:rvdshutM<savervdM<savephysM<zaprvdM=rvdcopyM>proffM?dumpaedM@dumpapa8MA dumpapa8cMB dumpapa16MCbitprtMDscaleMEcookieMFsupportMGmergesymMI eqnMJmakedevMK picMLptroffMMtroffMNinstall.ditroff#]M$l-rpA #D# #&M$ . ..Pdev3812#]M%l-.IAB#D#'#,'M% .[ ..[\XTMPCORRUPTsAUDIT LCK[ LOGSTST#]MHl-]A #D##MH .[ ..[] .utilities .sequencert.locksMO.SEQ8nfgripes?nfmaint#]MPl-_JA #D##ݽMP ...#]Pl-A #D#P#(P .I ..PMakefilePf77.ms#]Pl-A #D#Qz#P .4 ..PMakefilePm.macP m0P m1P m2P m3P m4P m5P m9Ppm99#]Pl-eA #D#R0#/P . ..PMakefileP termdesc.me#]Pl-DA #D#R#P . ..P msPrefcard#]Pl-cAb #D#{#BP .I ..Pmore.shP remotehost.shPstart#]Pl.JA #D"i#}P .B ..TI bin[ucb#]Pl-bA #D##P . ..TP pmpP netPnetimpPnetinetPnetnsP sysPstandPstandcaP ufsP nfsP rpcP caPcaifPcaioPcaconsP afsPafsintPrpcsvcP dfs arpaHpascal protocolsPa.out.hPar.hPassert.hPctype.hPcurses.hPndbm.hPdebug.hP disktab.hPfcntl.hPfstab.hPgrp.hPieee.hP lastlog.hPmath.hPmemory.hPmntent.hPmp.hPmtab.hPnetdb.hPnlist.hPpwd.hPranlib.hPresolv.hPsetjmp.hPsgtty.hPstab.hPstdio.hPstring.hP strings.hPstruct.hP sysexits.hPtime.hPttyent.hPutmp.hP varargs.hPvfont.hPerrno.hPmachinePsignal.hPsyslog.hP syscall.hP machineioP machineifP machineconsPframe.hQxdbm.h#]Pl-rA #D##6hP .M$ ..TQfontsP AP APP BRP BbP BiP CWP CiP CwP CbP CcP CdP CeP CfP DuP EP EBP EIP ELP FP GP GIP GBP GPP KTP LrP LbP RAP RBP OP OBP PPP PBP PIP RMP SCP SfP SbP SiQSHQ SYQ TXQDESCQ SQ SBQ HSQ HZQ DQ SPQ RQ IQ BQ BIQ LQ LIQ LBQ LYQ HQ HBQ HIQ HYQ KQ KBQ KIQ KYQDESC.outQR.outQI.outQ B.outQ!BI.outQ"D.outQ#H.outQ$HB.outQ%HI.outQ&HY.outQ'SP.outQ(S.outQ)L.outQ*A.outQ+SB.outQ,HS.outQ-HZ.outQ.LB.outQ/LI.outQ0LY.outQ1K.outQ2KB.outQ3KI.outQ4KY.outQ5AP.outQ6BR.outQ7Bb.outQ8Bi.outQ9CW.outQ:Ci.outQ;Cw.outQ<Cb.outQ=Cc.outQ>Cd.outQ?Ce.outQ@Cf.outQADu.outQBE.outQCEB.outQDEI.outQEEL.outQFF.outQGG.outQHGI.outQIGB.outQJGP.outQKKT.outQLLr.outQMLb.outQNRA.outQORB.outQPO.outQQOB.outQRPP.outQSPB.outQTPI.outQURM.outQVSC.outQWSf.outQXSb.outQYSi.outQZSH.outQ[SY.outQ\TX.out#]Ql-AB#D#!#,Q .[..#]Ql-]A #D#4#5Q .[..#]Tl-A #D#P#T .I ..TMakefileTf77IO.ms#]Tl-A #D#Q#T .4 ..TMakefileTch0.nTch1.nTch10.nTch11.nT ch12.nT ch13.nT ch14.nT ch15.nT ch16.nTch17.nTch2.nTch3.nTch4.nTch5.nTch6.nTch61.nTch7.nTch8.nTch9.nTchb.nTchc.nT extrnames.awkT fixmks.sedTfranz.nTindexsedTlmacsTmantagsT tmacs#]T!l-A #D#S2#T! . ..T"biblioT# biblio.igT$ refer.bibT% refer.mac#]T&l-A #D#W#oT& .W ..T' aardvark.6T( adventure.6T) arithmetic.6T* backgammon.6T+banner.6T, battlestar.6T-bcd.6T.boggle.6T/ canfield.6T0 cfscores.6T1chess.6T2ching.6T3 cribbage.6T4doctor.6T5fish.6T6 fortune.6T7 hangman.6T8hunt.6T9mille.6T:monop.6T;number.6T<quiz.6T=rain.6T>robots.6T?rogue.6T@sail.6TAsnake.6TB snscore.6TCtrek.6TDworm.6TEworms.6TFwump.6TGzork.6#] THl-cA #H#L#LTH . .. afsXafsint, ca cacons%caif-caio4conf?% dfsBdist h8ckrpcd netnetimp/netinet8gnetns nfs rpcrpcsvc# specfs-standca support?) sysr ufsTLmachineTM machineioTN machineifTO machineconsPGENERIC#] TIl-dA #D#x#nTI .P ..TJ basename.shTKsleep.sh#] TPl-bA #D##TP .P ..T font3812.hTpmp.hT pmp_font.hTvector.h#]TQl-rGA #D##xTQ .P ..TR add.10.datTS add.12.datTT add.6.datTU add.8.datTV add.10.addcpTW add.12.addcpTX add.6.addcpTY add.8.addcpTZ APL.10.datT[ APL.5.datT\BARAK.B.10.datT] BOOK.B.10.datT^BOOK.BI.10.datT_COURIER.10.datT` COURIER.9.datTaCOURIER.I.10.datTbCourier.10.datTc Courier.4.datTdCourier.B.10.datTeCourier.C.10.datTfCourier.CB.10.datTgCourier.E.10.datThCourier.EB.10.datTiDOCUMENT.10.datTj ESSAY.10.datTkESSAY.B.10.datTlESSAY.I.10.datTmESSAY.L.10.datTn FORMAT.10.datTo FORMAT.8.datTp FORMAT.9.datTq GOTHIC.10.datTr GOTHIC.4.datTs GOTHIC.5.datTt GOTHIC.8.datTu GOTHIC.9.datTvGOTHIC.B.10.datTwGOTHIC.B.9.datTxGOTHIC.I.9.datTy GOTHICP.9.datTzKATAKANA.10.datT{ LETTER.9.datT|LETTER.B.9.datT} OCRA.10.datT~ OCRB.10.datT ORATOR.10.datTORATOR.B.10.datTPRESTIGE.10.datTPRESTIGE.9.datTPRESTIGE.B.9.datTPRESTIGE.I.9.datT ROMAN.10.datT SCRIPT.9.datT SERIF.10.datT SERIF.8.datT SERIF.9.datT SERIF.B.9.datTSERIF.I.10.datT SERIF.I.9.datT SHALOM.10.datT SHALOM.8.datT SHALOM.9.datT(SYMBOLS.10.datTSYMBOLS.11.datTSYMBOLS.12.datT SYMBOLS.6.datT SYMBOLS.7.datT SYMBOLS.8.datT SYMBOLS.9.datT TEXT.10.datT APL.10.fcpT APL.5.fcpTBARAK.B.10.fcpT BOOK.B.10.fcpTBOOK.BI.10.fcpTCOURIER.10.fcpT COURIER.9.fcpTCOURIER.I.10.fcpTDOCUMENT.10.fcpT ESSAY.10.fcpTESSAY.B.10.fcpTESSAY.I.10.fcpTESSAY.L.10.fcpT( FORMAT.10.fcpT FORMAT.8.fcpT FORMAT.9.fcpT GOTHIC.10.fcpT GOTHIC.4.fcpT GOTHIC.5.fcpT GOTHIC.8.fcpT GOTHIC.9.fcpTGOTHIC.B.10.fcpTGOTHIC.B.9.fcpTGOTHIC.I.9.fcpT GOTHICP.9.fcpTKATAKANA.10.fcpT LETTER.9.fcpTLETTER.B.9.fcpT OCRA.10.fcpT OCRB.10.fcpT ORATOR.10.fcpTORATOR.B.10.fcpTPRESTIGE.10.fcpTPRESTIGE.9.fcpT(PRESTIGE.B.9.fcpTPRESTIGE.I.9.fcpT ROMAN.10.fcpT SCRIPT.9.fcpT SERIF.10.fcpT SERIF.8.fcpT SERIF.9.fcpT SERIF.B.9.fcpTSERIF.I.10.fcpT SERIF.I.9.fcpT SHALOM.10.fcpT SHALOM.8.fcpT SHALOM.9.fcpT TEXT.10.fcpTCourier.10.acpT Courier.4.acpTCourier.B.10.acpTCourier.C.10.acpTCourier.CB.10.acpTCourier.E.10.acpT0Courier.EB.10.acpTSYMBOLS.9.symcpTSYMBOLS.10.symcpTSYMBOLS.11.symcpTSYMBOLS.12.symcpTSYMBOLS.6.symcpTSYMBOLS.7.symcpTdSYMBOLS.8.symcp#]Wl-A #D#P#W .I ..WMakefileWbigger.pW bigger4.pW bigger5.pW bigger7.pWclash.pW comments.pW copydata.pWcsfix.cWdataWdigits.pWexpr.pWfirst.pW fixcommentsW fixkatscriptWkat.pWkat2.pWkat3.pWkatinWmism.pWprimes.pW primes2.pWpuman0.nWpuman1.nWpuman2.nWpuman3.nWpuman4.nWpuman5.nWpumanA.nWsin1.pWsin2.pWsynerr.pW synerr2.pWtmac.pWltypequ.p#]Wl.9:A #D"Iv#ŽW . ..#man0&man1;man2Wman31*man48(man5T&man6man7*'man8YMakefileYREADMEY4whatis#]Wl,pRA (#D#u#0 W .W ..Wabort.3W _longjmp.3W _setjmp.3Wabort.3fWasinh.3mWabs.3W access.3fWacos.3mWacosh.3mWaddr.3nWalarm.3cWalarm.3fWalloca.3W alphasort.3Wand.3fWarc.3fWarc.3xW asctime.3Wasin.3mWatof.3Watoi.3Wassert.3Watan.3mWatan2.3mWatanh.3mW bessel.3fWatol.3Wbcmp.3Wbcopy.3Wbesj0.3fWbesj1.3fWbesjn.3fW byteorder.3nWbesy0.3fWbesy1.3fWbesyn.3fWbit.3fWbox.3fW bstring.3W circle.3gWbzero.3Wcabs.3mWcalloc.3Wcbrt.3mWceil.3mWchdir.3fWchmod.3fW circle.3fWclip.3gW circle.3xW clearerr.3sWcolor.3gW closedir.3W closelog.3W clospl.3fWcopy.3gWcomp.3Wcont.3fWcont.3xWctype.3W copysign.3mWcos.3mWcosh.3mWcrypt.3Wctime.3Wctime.3fW cursor.3gW curses.3xWdash.3gWecvt.3W dbesj0.3fW dbesj1.3fW dbesjn.3fW dbesy0.3fW dbesy1.3fW dbesyn.3fWdbm.3xWdbm_clearerr.3W dbm_close.3W$ dbm_delete.3W dbm_error.3W dbm_fetch.3Wdbm_firstkey.3W dbm_nextkey.3W dbm_open.3W dbm_store.3W dbminit.3xW delete.3xW dffrac.3fW dflmax.3fX dflmin.3fX directory.3Xdrand.3fX drandm.3fXdrem.3mXdtime.3fXerf.3mXedata.3X encrypt.3X end.3X  endfsent.3X  endgrent.3X  endhostent.3nX  endnetent.3nX endprotoent.3nX endpwent.3X endservent.3nX endttyent.3Xendusershell.3X environ.3Xerase.3fXerase.3xX ethers.3nXerfc.3mX errlist.3Xetext.3Xexp.3mXetime.3fXexecl.3Xexecle.3Xexeclp.3Xexect.3X execv.3X!execve.3X"execvp.3X#exit.3X$exit.3fX%floor.3mX&expm1.3mX'fabs.3mX( falloc.3fX) fpecnt.3fX* fclose.3sX+fcvt.3X,fdate.3fX- fdopen.3sX.feof.3sX/ ferror.3sX0fetch.3xX1 fflush.3sX2ffrac.3fX3ffs.3X4fgetc.3fX5fgetc.3sX6fgets.3sX7 fileno.3sX8 finite.3mX9 firstkey.3xX:flmax.3fX;flmin.3fX<font.3gX=flush.3fX>force.3gX?fopen.3sX@fpa.3xXAfork.3fXB fortran.3fXCfrexp.3XD fscanf.3sXE fprintf.3sXFfputc.3fXGfputc.3sXHfputs.3sXIfread.3sXJfree.3XKfree.3fXL freopen.3sXMgetc.3sXNfseek.3fXOfseek.3sXPfstat.3fXQftell.3fXRftell.3sXSftime.3cXT fwrite.3sXUgamma.3mXVgcvt.3XW gerror.3fXX getarg.3fXYgetc.3fXZ getmntent.3X[ getchar.3sX\ getcwd.3fX] getdisk.3X^ getdiskbyname.3X_getenv.3X` getenv.3fXa getfsent.3Xb getfsfile.3Xc getfsspec.3Xd getfstype.3Xe getgid.3fXf getgrent.3Xg getgrgid.3Xh getgrnam.3Xigethostbyaddr.3nXjgethostbyname.3nXk gethostent.3nXl getlog.3fXm getlogin.3Xngetrpcbyname.3nXogetnetbyaddr.3nXpgetnetbyname.3nXq getnetent.3nXrgetopt.3Xs getpass.3Xt getpid.3fXu$getprotobyname.3nXvgetprotobynumber.3nXwgetprotoent.3nXxgetpw.3cXy getpwent.3Xz getpwnam.3X{ getpwuid.3X|getrpcbynumber.3nX} getrpcent.3nX~ getrpcport.3rXgets.3sXhypot.3mXgetservbyname.3nXgetservbyport.3nX getservent.3nX getttyent.3X getttynam.3X getuid.3fXgetusershell.3Xgetw.3sXgetwd.3Xgmtime.3X gmtime.3fXgtty.3cXkill.3fX hostnm.3fXhtonl.3nXhtons.3nXieee.3Xiargc.3fXidate.3fXimage.3gXieee.3mX ierrno.3fXinet.3nXinmax.3fXindex.3Xindex.3fXinit.3gX inet_addr.3nX inet_lnaof.3nXinet_makeaddr.3nX inet_netof.3nXinet_network.3nX inet_ntoa.3nX infnan.3mXintro.3X initgroups.3X initstate.3Xlabel.3fXinsque.3Xintro.3fXintro.3gXintro.3rXj0.3mX ioinit.3fXirand.3fX irandm.3fX isalnum.3X isalpha.3X isascii.3Xisatty.3X isatty.3fX iscntrl.3X isdigit.3X islower.3X isprint.3X ispunct.3X isspace.3X isupper.3X isxdigit.3Xitime.3fX lgamma.3mXj1.3mXjn.3mXlabel.3xXldexp.3Xlen.3fXline.3gX lib2648.3xXline.3fXlockf.3Xline.3xX linemd.3fX linemod.3xXlink.3fX lnblnk.3fX localtime.3Xlog.3gXmalloc.3Xlog.3mXlog10.3mXlog1p.3mXlogb.3mXlong.3fX longjmp.3X lshift.3fXlstat.3fXltime.3fXmath.3mX mountrpc.3rX malloc.3fXmerge.3gX openpl.3xX mkstemp.3Xmktemp.3Xmodf.3X moncontrol.3X monitor.3X monstartup.3Xmove.3gXmove.3fX perror.3fXmove.3xXmp.3xXndbm.3X network.3nX nextkey.3xXnice.3cXnlist.3Xnot.3fXns.3nX ns_addr.3nX ns_ntoa.3nXntoa.3nXntohl.3nXntohs.3nX opendir.3X openlog.3X openpl.3fXor.3fXpause.3cXpclose.3Xperror.3X printf.3sXplot.3fXplot.3xXpoint.3fXpoint.3xYpopen.3Ypow.3mYquery.3gY psignal.3Yputc.3fYputc.3sY putchar.3sYputs.3sYputw.3sY qsort.3Y qsort.3fY rand.3fY rand.3cY read.3gY signal.3cYrandom.3Y random.3fYrcmd.3Y re_comp.3Y re_exec.3Yrex.3rY readdir.3Y realloc.3Yregex.3Yremque.3Y rename.3fY resolver.3Y rewind.3sY rewinddir.3Y rnusers.3rYrexec.3Yrindex.3Y  rindex.3fY!rint.3mY"rpc.3nY# rquota.3rY$run.3gY% seekdir.3Y& rresvport.3Y' rshift.3fY( rusers.3rY) ruserok.3Y*rwall.3rY+scanf.3sY,scalb.3mY- scandir.3Y.wait.3fY/ setbuf.3sY0 setbuffer.3sY1 setegid.3Y2 seteuid.3Y3 setfsent.3Y4setgid.3Y5 setgrent.3Y6 sethostent.3nY7sethostfile.3nY8setjmp.3Y9setkey.3Y: setlinebuf.3sY; setlogmask.3Y< setnetent.3nY=setprotoent.3nY> setpwent.3Y? setpwfile.3Y@ setrgid.3YA setruid.3YB setservent.3nYC setstate.3YD setttyent.3YEsetuid.3YFshort.3fYGsetusershell.3YHsiginterrupt.3YIsin.3mYJ signal.3fYKsinh.3mYLsqrt.3mYMsleep.3YNsleep.3fYOspace.3fYPspace.3xYQ sprintf.3sYR string.3gYS strncmp.3YTsrand.3cYU srandom.3YV sscanf.3sYWstat.3fYXstdio.3sYYstore.3xYZstrcat.3Y[strcmp.3Y\strcpy.3Y]string.3Y^syslog.3Y_strlen.3Y` strncat.3Ya strncpy.3Ybstty.3cYcswab.3Yd symlnk.3fYesys.3Yf sys_errlist.3Yg sys_nerr.3Yh sys_siglist.3Yitile.3gYjsystem.3Yk system.3fYltan.3mYmtanh.3mYn tclose.3fYo telldir.3Yp termcap.3xYq tgetent.3xYr tgetflag.3xYs tgetnum.3xYt tgetstr.3xYutgoto.3xYv traper.3fYwtime.3cYxtime.3fYytimes.3cYz timezone.3Yxdr.3nY{ toascii.3Y| tolower.3Y}topen.3fY~ toupper.3Ytputs.3xY trapov.3fY trpfpe.3fYtread.3fY trewin.3fYwidth.3gY tskipf.3fY tstate.3fY ttynam.3fY ttyname.3Y ttyslot.3Y twrite.3fYualarm.3Y ungetc.3sY unlink.3fYusleep.3Yutime.3cY valloc.3cY varargs.3Y vlimit.3cY vtimes.3cY yp_all.3nYxor.3fYy0.3mYy1.3mYyn.3mY yp_bind.3nY yp_first.3nY$yp_get_default_domain.3nY yp_master.3nY yp_match.3nY yp_next.3nY yp_order.3nY yp_unbind.3nY ypclnt.3nYyperr_string.3nY yppasswd.3rY ypprot_err.3nYloc.3fY nfabort.3Yx nfcomment.3#]#[l,uA #D#P#θ[ .I ..[Makefile[as.man.1[ asdocs0.me[ asdocs1.me[ asdocs2.me[ asdocs3.me[p asdocs4.me#]%[l,vA #D#Q#[ . ..[ Ind.ia[ Ind.ib[ Ind.ic[ REFS[ tmac.sU#]'[l,uDA #D#R2#͖[ . ..[Makefile[ network.ms#])[l,tiA #D#R#ͮ[ . ..[ms.diffs#]+[l,JAb #D#{#B[ .I ..[Makefile[README[ uwmdemo.c#]-[l,tA #D#A#͵[ .P ..[Makefile[page.sh#]/[l,aA #D##͸[ . ..h lpdtmqueuemail#) atM%uucpQ uucppublicF/rwhoMHnotesQoldnotes<.rlpd ,rppd - ppdB lpsJ secretmail#]1[l,qA #D##[ .8| ..[ L0[L0.1a[L1.1a[L1.1b[ L1.1c[!L1.1d["L1.1e[#L1.1f[$ L10[%L11.1a[&L11.2a['L12.1a[(L12.1b[)L13.1a[*L14.1a[+L14.2a[,L14.2b[-L15.1a[.L15.1b[/L16.2a[0L16.2b[1L16.2c[2L17.1a[3L17.1c[4L18.1a[5L19.1a[6L2.1a[7L2.1b[8L2.1c[9L2.1d[:L2.1e[;L20.1a[<L3.1a[=L3.1b[>L30.1a[?L31.1a[@L32.1a[AL33.1a[BL35.1a[CL37.1a[DL4.1a[EL40.1a[FL41.1a[GL42.1a[HL43.1a[IL43.1b[JL5.1a[KL5.1b[LL5.1c[ML5.1d[NL5.1e[OL5.1f[PL5.1g[QL5.2a[RL5.2b[SL5.2e[TL5.3e[UL50.1a[VL9.1a[WMakefile[X getline.c[Ygetnum.c[Z getline.o[[getnum.o#]4[\l,,AB#D#"#,[\ .M%..#]6[]l,\iA #D##t[] .MH .. net.aliases\coredump[^ access.help[_dir.help[` index.help[alim.help[b read.help[cmknf[drmnf[e nfarchive[fnfaccess[gnfmail[h newsinput[i newsoutput[jnet.how[k avail.notes[lDflt-Seq#]8[ml,^DŽA #D##|[m . ..lib#]:lI$ #Nh#Nh# # # Copyright (c) 1986 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)Makefile 6.1 (Berkeley) 5/23/86 # SRCS= timed.ms MACROS= -msU PRINTER=Pdp SOELIM= soelim TBL= dtbl -${PRINTER} TROFF= ditroff -${PRINTER} paper: paper.${PRINTER} lpr -${PRINTER} -n paper.${PRINTER} paper.${PRINTER}: ${SRCS} ${SOELIM} ${SRCS} | ${TBL} | ${TROFF} ${MACROS} -t > paper.${PRINTER} clean: rm -f paper.[PT]* *.spell errs Errs make.out spell: ${SRCS} @for i in ${SRCS}; do \ echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ done #]<lIS$ #Ni#Ni# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)date 6.2 (Berkeley) 5/29/86 .\" .ft B .TS center; ce | ce | ce | ce | c | c | c | s | | c s s s |. Byte 1 Byte 2 Byte 3 Byte 4 = Type Version No. Sequence No. _ Seconds of Time to Set _ Microseconds of Time to Set _ Machine Name _ \&. . . _ .TE .ft R #]>lIR$ #Nj#Nj# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)loop 6.2 (Berkeley) 5/29/86 .\" .ft B .TS center; ce | ce | ce | ce | c | c | c | s | | c | c s s | | c s s s |. Byte 1 Byte 2 Byte 3 Byte 4 = Type Version No. Sequence No. _ Hop Count ( unused ) _ ( unused ) _ Machine Name _ \&. . . _ .TE .ft R #]@ lI$ #Nk#Nk# ACK ADJTIME Adjtime CS CSELT Candidature DATEACK DoD Gusella MASTERACK MASTERREQ MASTERUP MSITE MSITEREQ Protocol''SMM:22 Riccardo SETDATE SETDATEREQ SETTIME SLAVEUP SMM:22 Stefano TRACEOFF TRACEON TSP Timedc UDP USENIX Zatti candidature ce daemon daemons timedc #]B lIC$ #Nl#Nl# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)time 6.2 (Berkeley) 5/29/86 .\" .ft B .TS center; ce | ce | ce | ce | c | c | c | s | | c s s s |. Byte 1 Byte 2 Byte 3 Byte 4 = Type Version No. Sequence No. _ Seconds of Adjustment _ Microseconds of Adjustment _ Machine Name _ \&. . . _ .TE .ft R #]D lIa$ 3#Nm#Nn#  .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)timed.ms 6.2 (Berkeley) 6/4/86 .\" .TL The Berkeley .UX .br Time Synchronization Protocol .AU Riccardo Gusella, Stefano Zatti, and James M. Bloom .AI Computer Systems Research Group Computer Science Division Department of Electrical Engineering and Computer Science University of California, Berkeley Berkeley, CA 94720 .FS This work was sponsored by the Defense Advanced Research Projects Agency (DoD), monitored by the Naval Electronics Systems Command under contract No. N00039-84-C-0089, and by the Italian CSELT Corporation. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the Defense Research Projects Agency, of the US Government, or of CSELT. .FE .LP .OH 'The Berkeley UNIX Time Synchronization Protocol''SMM:22-%' .EH 'SMM:22-%''The Berkeley UNIX Time Synchronization Protocol' .SH Introduction .PP The Time Synchronization Protocol (TSP) has been designed for specific use by the program \fItimed\fP, a local area network clock synchronizer for the UNIX 4.3BSD operating system. Timed is built on the DARPA UDP protocol [4] and is based on a master slave scheme. .PP TSP serves a dual purpose. First, it supports messages for the synchronization of the clocks of the various hosts in a local area network. Second, it supports messages for the election that occurs among slave time daemons when, for any reason, the master disappears. The synchronization mechanism and the election procedure employed by the program timed are described in other documents [1,2,3]. .PP Briefly, the synchronization software, which works in a local area network, consists of a collection of \fItime daemons\fP (one per machine) and is based on a master-slave structure. The present implementation keeps processor clocks synchronized within 20 milliseconds. A \fImaster time daemon\fP measures the time difference between the clock of the machine on which it is running and those of all other machines. The current implementation uses ICMP \fITime Stamp Requests\fP [5] to measure the clock difference between machines. The master computes the \fInetwork time\fP as the average of the times provided by nonfaulty clocks.\** .FS A clock is considered to be faulty when its value is more than a small specified interval apart from the majority of the clocks of the machines on the same network. See [1,2] for more details. .FE It then sends to each \fIslave time daemon\fP the correction that should be performed on the clock of its machine. This process is repeated periodically. Since the correction is expressed as a time difference rather than an absolute time, transmission delays do not interfere with synchronization. When a machine comes up and joins the network, it starts a slave time daemon, which will ask the master for the correct time and will reset the machine's clock before any user activity can begin. The time daemons therefore maintain a single network time in spite of the drift of clocks away from each other. .PP Additionally, a time daemon on gateway machines may run as a \fIsubmaster\fP. A submaster time daemon functions as a slave on one network that already has a master and as master on other networks. In addition, a submaster is responsible for propagating broadcast packets from one network to the other. .PP To ensure that service provided is continuous and reliable, it is necessary to implement an election algorithm that will elect a new master should the machine running the current master crash, the master terminate (for example, because of a run-time error), or the network be partitioned. Under our algorithm, slaves are able to realize when the master has stopped functioning and to elect a new master from among themselves. It is important to note that since the failure of the master results only in a gradual divergence of clock values, the election need not occur immediately. .PP All the communication occurring among time daemons uses the TSP protocol. While some messages need not be sent in a reliable way, most communication in TSP requires reliability not provided by the underlying protocol. Reliability is achieved by the use of acknowledgements, sequence numbers, and retransmission when message losses occur. When a message that requires acknowledgment is not acknowledged after multiple attempts, the time daemon that has sent the message will assume that the addressee is down. This document will not describe the details of how reliability is implemented, but will only point out when a message type requires a reliable transport mechanism. .PP The message format in TSP is the same for all message types; however, in some instances, one or more fields are not used. The next section describes the message format. The following sections describe in detail the different message types, their use and the contents of each field. NOTE: The message format is likely to change in future versions of timed. .sp 2 .SH Message Format .PP All fields are based upon 8-bit bytes. Fields should be sent in network byte order if they are more than one byte long. The structure of a TSP message is the following: .IP 1) A one byte message type. .IP 2) A one byte version number, specifying the protocol version which the message uses. .IP 3) A two byte sequence number to be used for recognizing duplicate messages that occur when messages are retransmitted. .IP 4) Eight bytes of packet specific data. This field contains two 4 byte time values, a one byte hop count, or may be unused depending on the type of the packet. .IP 5) A zero-terminated string of up to 256 \s-2ASCII\s+2 characters with the name of the machine sending the message. .PP The following charts describe the message types, show their fields, and explain their usages. For the purpose of the following discussion, a time daemon can be considered to be in one of three states: slave, master, or candidate for election to master. Also, the term \fIbroadcast\fP refers to the sending of a message to all active time daemons. .sp 1 .DS L .SH Adjtime Message .so time .LP Type: TSP_ADJTIME (1) .sp 1 .PP The master sends this message to a slave to communicate the difference between the clock of the slave and the network time the master has just computed. The slave will accordingly adjust the time of its machine. This message requires an acknowledgment. .sp 1 .DE .DS L .SH Acknowledgment Message .so unused .LP Type: TSP_ACK (2) .sp 1 .PP Both the master and the slaves use this message for acknowledgment only. It is used in several different contexts, for example in reply to an Adjtime message. .sp 1 .DE .DS L .SH Master Request Message .so unused .LP Type: TSP_MASTERREQ (3) .sp 1 .PP A newly-started time daemon broadcasts this message to locate a master. No other action is implied by this packet. It requires a Master Acknowledgment. .sp 1 .DE .DS L .SH Master Acknowledgement .so unused .LP Type: TSP_MASTERACK (4) .sp 1 .PP The master sends this message to acknowledge the Master Request message and the Conflict Resolution Message. .sp 1 .DE .DS L .SH Set Network Time Message .so date .LP Type: TSP_SETTIME (5) .sp 1 .PP The master sends this message to slave time daemons to set their time. This packet is sent to newly started time daemons and when the network date is changed. It contains the master's time as an approximation of the network time. It requires an acknowledgment. The next synchronization round will eliminate the small time difference caused by the random delay in the communication channel. .sp 1 .DE .DS L .SH Master Active Message .so unused .LP Type: TSP_MASTERUP (6) .sp 1 .PP The master broadcasts this message to solicit the names of the active slaves. Slaves will reply with a Slave Active message. .sp 1 .DE .DS L .SH Slave Active Message .so unused .LP Type: TSP_SLAVEUP (7) .sp 1 .PP A slave sends this message to the master in answer to a Master Active message. This message is also sent when a new slave starts up to inform the master that it wants to be synchronized. .sp 1 .DE .DS L .SH Master Candidature Message .so unused .LP Type: TSP_ELECTION (8) .sp 1 .PP A slave eligible to become a master broadcasts this message when its election timer expires. The message declares that the slave wishes to become the new master. .sp 1 .DE .DS L .SH Candidature Acceptance Message .so unused .LP Type: TSP_ACCEPT (9) .sp 1 .PP A slave sends this message to accept the candidature of the time daemon that has broadcast an Election message. The candidate will add the slave's name to the list of machines that it will control should it become the master. .sp 1 .DE .DS L .SH Candidature Rejection Message .so unused .LP Type: TSP_REFUSE (10) .sp 1 .PP After a slave accepts the candidature of a time daemon, it will reply to any election messages from other slaves with this message. This rejects any candidature other than the first received. .sp 1 .DE .DS L .SH Multiple Master Notification Message .so unused .LP Type: TSP_CONFLICT (11) .sp 1 .PP When two or more masters reply to a Master Request message, the slave uses this message to inform one of them that more than one master exists. .sp 1 .DE .DS L .SH Conflict Resolution Message .so unused .LP Type: TSP_RESOLVE (12) .sp 1 .PP A master which has been informed of the existence of other masters broadcasts this message to determine who the other masters are. .sp 1 .DE .DS L .SH Quit Message .so unused .LP Type: TSP_QUIT (13) .sp 1 .PP This message is sent by the master in three different contexts: 1) to a candidate that broadcasts an Master Candidature message, 2) to another master when notified of its existence, 3) to another master if a loop is detected. In all cases, the recipient time daemon will become a slave. This message requires an acknowledgement. .sp 1 .DE .DS L .SH Set Date Message .so date .LP Type: TSP_SETDATE (22) .sp 1 .PP The program \fIdate\fP\|(1) sends this message to the local time daemon when a super-user wants to set the network date. If the local time daemon is the master, it will set the date; if it is a slave, it will communicate the desired date to the master. .sp 1 .DE .DS L .SH Set Date Request Message .so date .LP Type: TSP_SETDATEREQ (23) .sp 1 .PP A slave that has received a Set Date message will communicate the desired date to the master using this message. .sp 1 .DE .DS L .SH Set Date Acknowledgment Message .so unused .LP Type: TSP_DATEACK (16) .sp 1 .PP The master sends this message to a slave in acknowledgment of a Set Date Request Message. The same message is sent by the local time daemon to the program \fIdate(1)\fP to confirm that the network date has been set by the master. .sp 1 .DE .DS L .SH Start Tracing Message .so unused .LP Type: TSP_TRACEON (17) .sp 1 .PP The controlling program \fItimedc\fP sends this message to the local time daemon to start the recording in a system file of all messages received. .sp 1 .DE .DS L .SH Stop Tracing Message .so unused .LP Type: TSP_TRACEOFF (18) .sp 1 .PP \fITimedc\fP sends this message to the local time daemon to stop the recording of messages received. .sp 1 .DE .DS L .SH Master Site Message .so unused .LP Type: TSP_MSITE (19) .sp 1 .PP \fITimedc\fP sends this message to the local time daemon to find out where the master is running. .sp 1 .DE .DS L .SH Remote Master Site Message .so unused .LP Type: TSP_MSITEREQ (20) .sp 1 .PP A local time daemon broadcasts this message to find the location of the master. It then uses the Acknowledgement message to communicate this location to \fItimedc\fP. .sp 1 .DE .DS L .SH Test Message .so unused .LP Type: TSP_TEST (21) .sp 1 .PP For testing purposes, \fItimedc\fP sends this message to a slave to cause its election timer to expire. NOTE: \fItimed\fP is not normally compiled to support this. .sp 1 .DE .SH .DS L .SH Loop Detection Message .so loop .LP Type: TSP_LOOP (24) .sp 1 .PP This packet is initiated by all masters occasionally to attempt to detect loops. All submasters forward this packet onto the networks over which they are master. If a master receives a packet it sent out initially, it knows that a loop exists and tries to correct the problem. .DE .SH References .IP 1. R. Gusella and S. Zatti, \fITEMPO: A Network Time Controller for Distributed Berkeley UNIX System\fP, USENIX Summer Conference Proceedings, Salt Lake City, June 1984. .IP 2. R. Gusella and S. Zatti, \fIClock Synchronization in a Local Area Network\fP, University of California, Berkeley, Technical Report, \fIto appear\fP. .IP 3. R. Gusella and S. Zatti, \fIAn Election Algorithm for a Distributed Clock Synchronization Program\fP, University of California, Berkeley, CS Technical Report #275, Dec. 1985. .IP 4. Postel, J., \fIUser Datagram Protocol\fP, RFC 768. Network Information Center, SRI International, Menlo Park, California, August 1980. .IP 5. Postel, J., \fIInternet Control Message Protocol\fP, RFC 792. Network Information Center, SRI International, Menlo Park, California, September 1981. #]R lÍ$ #No#No# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)unused 6.2 (Berkeley) 5/29/86 .\" .ft B .TS center; ce | ce | ce | ce | c | c | c | s | | c s s s |. Byte 1 Byte 2 Byte 3 Byte 4 = Type Version No. Sequence No. _ ( unused ) _ ( unused ) _ Machine Name _ \&. . . _ .TE .ft R #]T lIm$ X#Np#Np# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)00.contents 5.2 (Berkeley) 6/3/86 .\" .OH '''SMM Contents' .EH 'SMM Contents''' .TL UNIX System Manager's Manual (SMM) .sp \s-24.3 Berkeley Software Distribution, Virtual \s-2VAX\s+2\-11 Version\s+2 .sp \fRApril, 1986\fR .PP This volume contains manual pages and supplementary documents useful to system administrators. The information in these documents applies to the Virtual \s-2VAX\s0-11 version of the system as distributed by U.C. Berkeley. .SH Reference Manual \- Section 8 .tl '''(8)' .IP Section 8 of the UNIX Programmer's Manual contains information related to system operation, administration, and maintenance. .SH System Installation and Administration .IP .tl 'Installing and Operating 4.3BSD on the VAX''SMM:1' .QP The definitive reference document for those occasions when you find you need to start over again. .IP .tl 'Building 4.3BSD UNIX Systems with \fIConfig\fP''SMM:2' .QP In-depth discussions of the use and operation of the \fIconfig\fP program, and how to build your very own Unix kernel. .IP .tl 'Using ADB to Debug the Kernel''SMM:3' .QP Techniques for figuring out after the fact why the kernel crashed. .IP .tl 'Disc Quotas in a UNIX Environment''SMM:4' .QP A light introduction to the techniques for limiting the use of disc resources. .IP .tl 'Fsck \- The UNIX File System Check Program''SMM:5' .QP A reference document for using the \fIfsck\fP program during times of file system distress. .IP .tl 'Line Printer Spooler Manual''SMM:6' .QP This document describes the structure and installation procedure for the line printer spooling system. .IP .tl 'Sendmail Installation and Operation Guide''SMM:7' .QP The last word in installing and operating the \fIsendmail\fP program. .IP .tl 'Timed Installation and Operation Guide''SMM:8' .QP Describes how to maintain time synchronization between machines in a local network. .IP .tl 'UUCP Implementation Description''SMM:9' .QP Describes the implementation of uucp; for the installer and administrator. .IP .tl 'USENET Version B Installation''SMM:10' .QP How to install and maintain the News system. .IP .tl 'Name Server Operations Guide''SMM:11' .QP If you have a network this will be of interest. .SH Supporting Documentation .IP .tl 'Bug Fixes and Changes in 4.3BSD''SMM:12' .QP This document summarizes changes visible to the user accustomed to 4.2BSD. .IP .tl 'Changes to the Kernel in 4.3BSD''SMM:13' .QP A summary for the hard-core of changes in the kernel from 4.2BSD to 4.3BSD. .IP .tl 'A Fast File System for UNIX''SMM:14' .QP A description of the 4.2BSD file system organization, design and implementation. .IP .tl '4.3BSD Networking Implementation Notes''SMM:15' .QP A concise description of the system interfaces used within the networking subsystem. .IP .tl 'Sendmail \- An Internetwork Mail Router''SMM:16' .QP An overview document on the design and implementation of \fIsendmail\fP. .IP .tl 'On the Security of UNIX''SMM:17' .QP Hints on how to break UNIX, and how to avoid your system being broken. .IP .tl 'Password Security \- A Case History''SMM:18' .QP How the bad guys used to be able to break the password algorithm, and why they cannot now (at least not so easily). .IP .tl 'A Tour Through the Portable C Compiler''SMM:19' .QP How the portable C compiler works inside. .IP .tl 'Writing NROFF Terminal Descriptions''SMM:20' .QP A description of how to add a printer with new characteristics to Version 7 \fInroff\fP. .IP .tl 'A Dial\-Up Network of UNIX Systems''SMM:21' .QP Describes UUCP, a program for communicating files between UNIX systems. .IP .tl 'The Berkeley UNIX Time Synchronization Protocol''SMM:22' .QP The protocols and algorithms used by timed, the network time synchronization daemon. #]YlI$ #Nq#Nq# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)Title 6.3 (Berkeley) 6/3/86 .\" .ps 18 .vs 22 .sp 2.75i .ft B .ce 2 UNIX System Manager's Manual (SMM) .ps 14 .vs 16 .sp |4i .ce 2 4.3 Berkeley Software Distribution Virtual VAX\-11 Version .sp |5.75i .ft R .pt 12 .vs 16 .ce April, 1986 .sp |8.2i .ce 5 Computer Systems Research Group Computer Science Division Department of Electrical Engineering and Computer Science University of California Berkeley, California 94720 .bp .ll 5.3i .in 1.25i .hy 0 .ps 10 .vs 12p .sp |2.8i Copyright 1979, 1980, 1983, 1986 Regents of the University of California. Permission to copy these documents or any portion thereof as necessary for licensed use of the software is granted to licensees of this software, provided this copyright notice and statement of permission are included. .sp 2 Documents SMM:17, 18, and 21 are copyright 1979, AT&T Bell Laboratories, Incorporated. Documents SMM:9 and 19 are modifications of earlier documents that are copyrighted 1979 by AT&T Bell Laboratories, Incorporated. Holders of \x'-1p'UNIX\v'-4p'\s-3TM\s0\v'4p'/32V, System III, or System V software licenses are permitted to copy these documents, or any portion of them, as necessary for licensed use of the software, provided this copyright notice and statement of permission are included. .sp 2 Document SMM:10 is part of the user contributed software. .sp 2 This manual reflects system enhancements made at Berkeley and sponsored in part by the Defense Advanced Research Projects Agency (DoD), Arpa Order No. 4871 monitored by the Naval Electronics Systems Command under contract No. N00039-84-C-0089. The views and conclusions contained in these documents are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the Defense Research Projects Agency or of the US Government. .br .ll 6.5i .lt 6.5i .po .75i .in 0i .af % i .ds ET\" .de HD .po 0 .lt 7.4i .tl '''' .lt .po 'sp 18p .if o .tl '\\*(ET''- % -' .if e .tl '- % -''\\*(ET' 'sp 18p .ns .. .de FO 'sp 18p .if e .tl '\s9\\*(Dt''\\*(Ed\s0' .if o .tl '\s9\\*(Ed''\\*(Dt\s0' 'bp .. .wh 0 HD .wh -60p FO .bp 1 .ds ET \s9\f2Table \|of \|Contents\fP\s0 .ds Ed 4.3BSD .ds Dt April \|1986 .ce \f3TABLE \|OF \|CONTENTS\fP .nr x .5i .in +\nxu .nf .ta \n(.lu-\nxuR .de xx \\$1\f3 \a \fP\\$2 .. .de t .sp 1v .ne .5i .cs 3 .ti -.5i .ss 18 \f3\s9\\$2. \\$3\s0\fP .ss 12 .if t .sp .5v .cs 3 36 .so \\$1 .. .t /usr/man/man0/toc8 8 "System Maintenance" .in -.5i .cs 3 .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n .if t .ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i #]]lI$ D#O#O## # Copyright (c) 1986 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)Makefile 6.2 (Berkeley) 4/16/86 # SRCS= intro.me DEVICE= dp TROFF= ditroff -P${DEVICE} paper: intro.${DEVICE} lpr -P${DEVICE} -n intro.${DEVICE} intro.${DEVICE}: ${SRCS} ${TROFF} -me -t ${SRCS} > intro.${DEVICE} clean: rm -f intro.${DEVICE} *.spell errs Errs make.out spell: ${SRCS} @for i in ${SRCS}; do \ echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ done #]_l@ā$ G#O#O#T*.\" Copyright (c) 1980 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)intro.me 6.3 (Berkeley) 4/17/86 .\" .ll 6.5i .lt 6.5i .pn 0 .ds MO 2.27\" version of -me to which this applies .nr si 3n \".he 'USING NROFF AND \-ME''%' .eh 'USD:22-%''Writing Papers with NROFF using \-me' .oh 'Writing Papers with NROFF using \-me''USD:22-%' .ds U \s-1UNIX\s0 .ds N \s-1NROFF\s0 .ds T \s-1TROFF\s0 .+c .(l C .sz 14 .b "Writing Papers with NROFF using \-me" .sz .sp 2 .ul Eric P. Allman* .(f *Author's current address: Britton Lee, Inc., 1919 Addison Suite 105, Berkeley, California 94704. .)f .sp Project INGRES Electronics Research Laboratory University of California, Berkeley Berkeley, California 94720 .)l .sp 4 .pp This document describes the text processing facilities available on the \*U\(dg .(f \(dg\*U is a trademark of AT&T Bell Laboratories .)f operating system via \*N\(dg and the \-me macro package. It is assumed that the reader already is generally familiar with the \*U operating system and a text editor such as .b ex . This is intended to be a casual introduction, and as such not all material is covered. In particular, many variations and additional features of the \-me macro package are not explained. For a complete discussion of this and other issues, see .ul The \-me Reference Manual and .ul The \*N/\*T Reference Manual. .pp \*N, a computer program that runs on the \*U operating system, reads an input file prepared by the user and outputs a formatted paper suitable for publication or framing. The input consists of .i text , or words to be printed, and .i requests , which give instructions to the \*N program telling how to format the printed copy. .pp Section 1 describes the basics of text processing. Section 2 describes the basic requests. Section 3 introduces displays. Annotations, such as footnotes, are handled in section 4. The more complex requests which are not discussed in section 2 are covered in section 5. Finally, section 6 discusses things you will need to know if you want to typeset documents. If you are a novice, you probably won't want to read beyond section 4 until you have tried some of the basic features out. .pp When you have your raw text ready, call the \*N formatter by typing as a request to the \*U shell: .(b nroff \-me \-T\c .i "type files" .)b where .i type describes the type of terminal you are outputting to. Common values are .b dtc for a DTC 300s (daisy-wheel type) printer and .b lpr for the line printer. If the .b \-T flag is omitted, a .q "lowest common denominator" terminal is assumed; this is good for previewing output on most terminals. A complete description of options to the \*N command can be found in .ul The \*N/\*T Reference Manual. .pp The word .i argument is used in this manual to mean a word or number which appears on the same line as a request which modifies the meaning of that request. For example, the request .(b \&.sp .)b spaces one line, but .(b \&.sp 4 .)b spaces four lines. The number .b 4 is an .i argument to the .b .sp request which says to space four lines instead of one. Arguments are separated from the request and from each other by spaces. .sh 1 "Basics of Text Processing" .pp The primary function of \*N is to .i collect words from input lines, .i fill output lines with those words, .i justify the right hand margin by inserting extra spaces in the line, and output the result. For example, the input: .(b Now is the time for all good men to come to the aid of their party. Four score and seven years ago,... .)b will be read, packed onto output lines, and justified to produce: .(b F Now is the time for all good men to come to the aid of their party. Four score and seven years ago,... .)b Sometimes you may want to start a new output line even though the line you are on is not yet full; for example, at the end of a paragraph. To do this you can cause a .i break , which starts a new output line. Some requests cause a break automatically, as do blank input lines and input lines beginning with a space. .pp Not all input lines are text to be formatted. Some of the input lines are .i requests which describe how to format the text. Requests always have a period or an apostrophe (\c .q "\|\(aa\|" ) as the first character of the input line. .pp The text formatter also does more complex things, such as automatically numbering pages, skipping over page folds, putting footnotes in the correct place, and so forth. .pp I can offer you a few hints for preparing text for input to \*N. First, keep the input lines short. Short input lines are easier to edit, and \*N will pack words onto longer lines for you anyhow. In keeping with this, it is helpful to begin a new line after every period, comma, or phrase, since common corrections are to add or delete sentences or phrases. Second, do not put spaces at the end of lines, since this can sometimes confuse the \*N processor. Third, do not hyphenate words at the end of lines (except words that should have hyphens in them, such as .q mother-in-law ); \*N is smart enough to hyphenate words for you as needed, but is not smart enough to take hyphens out and join a word back together. Also, words such as .q mother-in-law should not be broken over a line, since then you will get a space where not wanted, such as .tr @- .nh .q "mother@\ in@law" . .br .tr @@ .hy 14 .sh 1 "Basic Requests" .sh 2 "Paragraphs" .pp Paragraphs are begun by using the .b .pp request. For example, the input: .(b \&.pp Now is the time for all good men to come to the aid of their party. Four score and seven years ago,... .)b produces a blank line followed by an indented first line. The result is: .(b F .ti +\n(piu Now is the time for all good men to come to the aid of their party. Four score and seven years ago,... .)b .pp Notice that the sentences of the paragraphs .i "must not" begin with a space, since blank lines and lines beginning with spaces cause a break. For example, if I had typed: .(b \&.pp Now is the time for all good men to come to the aid of their party. Four score and seven years ago,... .)b The output would be: .(b F .ti +\n(piu Now is the time for all good men to come to the aid of their party. Four score and seven years ago,... .)b A new line begins after the word .q men because the second line began with a space character. .pp There are many fancier types of paragraphs, which will be described later. .sh 2 "Headers and Footers" .pp Arbitrary headers and footers can be put at the top and bottom of every page. Two requests of the form .b .he \ \c .i title and .b .fo \ \c .i title define the titles to put at the head and the foot of every page, respectively. The titles are called .i three-part titles, that is, there is a left-justified part, a centered part, and a right-justified part. To separate these three parts the first character of .i title (whatever it may be) is used as a delimiter. Any character may be used, but backslash and double quote marks should be avoided. The percent sign is replaced by the current page number whenever found in the title. For example, the input: .(b \&.he \(aa\(aa%\(aa\(aa \&.fo \(aaJane Jones\(aa\(aaMy Book\(aa .)b results in the page number centered at the top of each page, .q "Jane Jones" in the lower left corner, and .q "My Book" in the lower right corner. .sh 2 "Double Spacing" .pp .ls 2 \*N will double space output text automatically if you use the request .b ".ls\ 2" , as is done in this section. You can revert to single spaced mode by typing .b ".ls\ 1" . .ls 1 .sh 2 "Page Layout" .pp A number of requests allow you to change the way the printed copy looks, sometimes called the .i layout of the output page. Most of these requests adjust the placing of .q "white space" (blank lines or spaces). In these explanations, characters in italics should be replaced with values you wish to use; bold characters represent characters which should actually be typed. .pp The .b .bp request starts a new page. .pp The request .b .sp \ \c .i N leaves .i N lines of blank space. .i N can be omitted (meaning skip a single line) or can be of the form .i N \^\c .b i (for .i N inches) or .i N \^\c .b c (for .i N centimeters). For example, the input: .(b \&.sp 1.5i My thoughts on the subject \&.sp .)b leaves one and a half inches of space, followed by the line .q "My thoughts on the subject" , followed by a single blank line. .pp The .b .in \ \c .i +N request changes the amount of white space on the left of the page (the .i indent ). The argument .i N can be of the form .b + \c .i N (meaning leave .i N spaces more than you are already leaving), .b \- \c .i N (meaning leave less than you do now), or just .i N (meaning leave exactly .i N spaces). .i N can be of the form .i N \^\c .b i or .i N \^\c .b c also. For example, the input: .(b initial text \&.in 5 some text \&.in +1i more text \&.in \-2c final text .)b produces .q "some text" indented exactly five spaces from the left margin, .q "more text" indented five spaces plus one inch from the left margin (fifteen spaces on a pica typewriter), and .q "final text" indented five spaces plus one inch minus two centimeters from the margin. That is, the output is: .(b initial text .in +5 some text .in +1i more text .in -2c final text .)b .pp The .b .ti \ \c .i +N (temporary indent) request is used like .b .in \ \c .i +N when the indent should apply to one line only, after which it should revert to the previous indent. For example, the input: .(b \&.in 1i \&.ti 0 Ware, James R. The Best of Confucius, Halcyon House, 1950. An excellent book containing translations of most of Confucius\(aa most delightful sayings. A definite must for anyone interested in the early foundations of Chinese philosophy. .)b produces: .in 1i+\n($iu .ti \n($iu Ware, James R. The Best of Confucius, Halcyon House, 1950. An excellent book containing translations of most of Confucius' most delightful sayings. A definite must for anyone interested in the early foundations of Chinese philosophy. .pp Text lines can be centered by using the .b .ce request. The line after the .b .ce is centered (horizontally) on the page. To center more than one line, use .b .ce \ \c .i N (where .i N is the number of lines to center), followed by the .i N lines. If you want to center many lines but don't want to count them, type: .(b \&.ce 1000 lines to center \&.ce 0 .)b The .b ".ce\ 0" request tells \*N to center zero more lines, in other words, stop centering. .pp All of these requests cause a break; that is, they always start a new line. If you want to start a new line without performing any other action, use .b .br . .sh 2 "Underlining" .pp Text can be underlined using the .b .ul request. The .b .ul request causes the next input line to be underlined when output. You can underline multiple lines by stating a count of .i input lines to underline, followed by those lines (as with the .b .ce request). For example, the input: .(b \&.ul 2 Notice that these two input lines are underlined. .)b will underline those eight words in \*N. (In \*T they will be set in italics.) .sh 1 "Displays" .pp Displays are sections of text to be set off from the body of the paper. Major quotes, tables, and figures are types of displays, as are all the examples used in this document. All displays except centered blocks are output single spaced. .sh 2 "Major Quotes" .pp Major quotes are quotes which are several lines long, and hence are set in from the rest of the text without quote marks around them. These can be generated using the commands .b .(q and .b .)q to surround the quote. For example, the input: .(b As Weizenbaum points out: \&.(q It is said that to explain is to explain away. This maxim is nowhere so well fulfilled as in the areas of computer programming,... \&.)q .)b generates as output: .lp As Weizenbaum points out: .(q It is said that to explain is to explain away. This maxim is nowhere so well fulfilled as in the areas of computer programming,... .)q .sh 2 "Lists" .pp A .i list is an indented, single spaced, unfilled display. Lists should be used when the material to be printed should not be filled and justified like normal text, such as columns of figures or the examples used in this paper. Lists are surrounded by the requests .b .(l and .b .)l . For example, type: .(b Alternatives to avoid deadlock are: \&.(l Lock in a specified order Detect deadlock and back out one process Lock all resources needed before proceeding \&.)l .)b will produce: .br Alternatives to avoid deadlock are: .(l Lock in a specified order Detect deadlock and back out one process Lock all resources needed before proceeding .)l .sh 2 "Keeps" .pp A .i keep is a display of lines which are kept on a single page if possible. An example of where you would use a keep might be a diagram. Keeps differ from lists in that lists may be broken over a page boundary whereas keeps will not. .pp Blocks are the basic kind of keep. They begin with the request .b .(b and end with the request .b .)b . If there is not room on the current page for everything in the block, a new page is begun. This has the unpleasant effect of leaving blank space at the bottom of the page. When this is not appropriate, you can use the alternative, called .i "floating keeps" . .pp .i "Floating keeps" move relative to the text. Hence, they are good for things which will be referred to by name, such as .q "See figure 3" . A floating keep will appear at the bottom of the current page if it will fit; otherwise, it will appear at the top of the next page. Floating keeps begin with the line .b .(z and end with the line .b .)z . For an example of a floating keep, see figure 1. .(z .in 1i .xl -1i .hl \&.(z \&.hl Text of keep to be floated. \&.sp \&.ce Figure 1. Example of a Floating Keep. \&.hl \&.)z .sp .ce Figure 1. Example of a Floating Keep. .hl .)z The .b .hl request is used to draw a horizontal line so that the figure stands out from the text. .sh 2 "Fancier Displays" .pp Keeps and lists are normally collected in .i nofill mode, so that they are good for tables and such. If you want a display in fill mode (for text), type .b ".(l\ F" (Throughout this section, comments applied to .b .(l also apply to .b .(b and .b .(z ). This kind of display will be indented from both margins. For example, the input: .(b \&.(l F And now boys and girls, a newer, bigger, better toy than ever before! Be the first on your block to have your own computer! Yes kids, you too can have one of these modern data processing devices. You too can produce beautifully formatted papers without even batting an eye! \&.)l .)b will be output as: .(b F And now boys and girls, a newer, bigger, better toy than ever before! Be the first on your block to have your own computer! Yes kids, you too can have one of these modern data processing devices. You too can produce beautifully formatted papers without even batting an eye! .)b .pp Lists and blocks are also normally indented (floating keeps are normally left justified). To get a left-justified list, type .b ".(l\ L" . To get a list centered line-for-line, type .b ".(l C" . For example, to get a filled, left justified list, enter: .(b \&.(l L F text of block \&.)l .)b The input: .(b \&.(l first line of unfilled display more lines \&.)l .)b produces the indented text: .(b first line of unfilled display more lines .)b Typing the character .b L after the .b .(l request produces the left justified result: .(b L first line of unfilled display more lines .)b Using .b C instead of .b L produces the line-at-a-time centered output: .(b C first line of unfilled display more lines .)b .pp Sometimes it may be that you want to center several lines as a group, rather than centering them one line at a time. To do this use centered blocks, which are surrounded by the requests .b .(c and .b .)c . All the lines are centered as a unit, such that the longest line is centered and the rest are lined up around that line. Notice that lines do not move relative to each other using centered blocks, whereas they do using the .b C argument to keeps. .pp Centered blocks are .i not keeps, and may be used in conjunction with keeps. For example, to center a group of lines as a unit and keep them on one page, use: .(b \&.(b L \&.(c first line of unfilled display more lines \&.)c \&.)b .)b to produce: .(b L .(c first line of unfilled display more lines .)c .)b If the block requests (\c .b .(b and .b .)b ) had been omitted the result would have been the same, but with no guarantee that the lines of the centered block would have all been on one page. Note the use of the .b L argument to .b .(b ; this causes the centered block to center within the entire line rather than within the line minus the indent. Also, the center requests must be nested .i inside the keep requests. .sh 1 "Annotations" .pp There are a number of requests to save text for later printing. .i Footnotes are printed at the bottom of the current page. .i "Delayed text" is intended to be a variant form of footnote; the text is printed only when explicitly called for, such as at the end of each chapter. .i Indexes are a type of delayed text having a tag (usually the page number) attached to each entry after a row of dots. Indexes are also saved until called for explicitly. .sh 2 "Footnotes" .pp Footnotes begin with the request .b .(f and end with the request .b .)f . The current footnote number is maintained automatically, and can be used by typing \e**, to produce a footnote number\**. .(f \**Like this. .)f The number is automatically incremented after every footnote. For example, the input: .(b \&.(q A man who is not upright and at the same time is presumptuous; one who is not diligent and at the same time is ignorant; one who is untruthful and at the same time is incompetent; such men I do not count among acquaintances.\e** \&.(f \e**James R. Ware, \&.ul The Best of Confucius, Halcyon House, 1950. Page 77. \&.)f \&.)q .)b generates the result: .(q A man who is not upright and at the same time is presumptuous; one who is not diligent and at the same time is ignorant; one who is untruthful and at the same time is incompetent; such men I do not count among acquaintances.\** .(f \**James R. Ware, .ul The Best of Confucius, Halcyon House, 1950. Page 77. .)f .)q It is important that the footnote appears .i inside the quote, so that you can be sure that the footnote will appear on the same page as the quote. .sh 2 "Delayed Text" .pp Delayed text is very similar to a footnote except that it is printed when called for explicitly. This allows a list of references to appear (for example) at the end of each chapter, as is the convention in some disciplines. Use .b \e*# on delayed text instead of .b \e** as on footnotes. .pp If you are using delayed text as your standard reference mechanism, you can still use footnotes, except that you may want to reference them with special characters* .(f *Such as an asterisk. .)f rather than numbers. .sh 2 "Indexes" .pp An .q index (actually more like a table of contents, since the entries are not sorted alphabetically) resembles delayed text, in that it is saved until called for. However, each entry has the page number (or some other tag) appended to the last line of the index entry after a row of dots. .pp Index entries begin with the request .b .(x and end with .b .)x . The .b .)x request may have a argument, which is the value to print as the .q "page number" . It defaults to the current page number. If the page number given is an underscore (\c .q _ ) no page number or line of dots is printed at all. To get the line of dots without a page number, type .b ".)x """"" , which specifies an explicitly null page number. .pp The .b .xp request prints the index. .pp For example, the input: .(b \&.(x Sealing wax \&.)x \&.(x Cabbages and kings \&.)x _ \&.(x Why the sea is boiling hot \&.)x 2.5a \&.(x Whether pigs have wings \&.)x "" \&.(x This is a terribly long index entry, such as might be used for a list of illustrations, tables, or figures; I expect it to take at least two lines. \&.)x \&.xp .)b generates: .(x Sealing wax .)x .(x Cabbages and kings .)x _ .(x Why the sea is boiling hot .)x 2.5a .(x Whether pigs have wings .)x "" .(x This is a terribly long index entry, such as might be used for a list of illustrations, tables, or figures; I expect it to take at least two lines. .)x .xp .pp The .b .(x request may have a single character argument, specifying the .q name of the index; the normal index is .b x . Thus, several .q indices may be maintained simultaneously (such as a list of tables, table of contents, etc.). .pp Notice that the index must be printed at the .i end of the paper, rather than at the beginning where it will probably appear (as a table of contents); the pages may have to be physically rearranged after printing. .sh 1 "Fancier Features" .pp A large number of fancier requests exist, notably requests to provide other sorts of paragraphs, numbered sections of the form .b 1.2.3 (such as used in this document), and multicolumn output. .sh 2 "More Paragraphs" .pp Paragraphs generally start with a blank line and with the first line indented. It is possible to get left-justified block-style paragraphs by using .b .lp instead of .b .pp , as demonstrated by the next paragraph. .lp Sometimes you want to use paragraphs that have the .i body indented, and the first line exdented (opposite of indented) with a label. This can be done with the .b .ip request. A word specified on the same line as .b .ip is printed in the margin, and the body is lined up at a prespecified position (normally five spaces). For example, the input: .(b \&.ip one This is the first paragraph. Notice how the first line of the resulting paragraph lines up with the other lines in the paragraph. \&.ip two And here we are at the second paragraph already. You may notice that the argument to \c .b .ip appears in the margin. \&.lp We can continue text... .)b produces as output: .ip one This is the first paragraph. Notice how the first line of the resulting paragraph lines up with the other lines in the paragraph. .ip two And here we are at the second paragraph already. You may notice that the argument to .b .ip appears in the margin. .lp We can continue text without starting a new indented paragraph by using the .b .lp request. .pp If you have spaces in the label of a .b .ip request, you must use an .q "unpaddable space" instead of a regular space. This is typed as a backslash character (\c .q \e ) followed by a space. For example, to print the label .q "Part 1" , enter: .(b \&.ip "Part\e 1" .)b .pp If a label of an indented paragraph (that is, the argument to .b .ip ) is longer than the space allocated for the label, .b .ip will begin a new line after the label. For example, the input: .(b \&.ip longlabel This paragraph had a long label. The first character of text on the first line will not line up with the text on second and subsequent lines, although they will line up with each other. .)b will produce: .ip longlabel This paragraph had a long label. The first character of text on the first line will not line up with the text on second and subsequent lines, although they will line up with each other. .pp It is possible to change the size of the label by using a second argument which is the size of the label. For example, the above example could be done correctly by saying: .(b \&.ip longlabel 10 .)b which will make the paragraph indent 10 spaces for this paragraph only. If you have many paragraphs to indent all the same amount, use the .i "number register" .b ii . For example, to leave one inch of space for the label, type: .(b \&.nr ii 1i .)b somewhere before the first call to .b .ip . Refer to the reference manual for more information. .pp If .b .ip is used with no argument at all no hanging tag will be printed. For example, the input: .(b \&.ip [a] This is the first paragraph of the example. We have seen this sort of example before. \&.ip This paragraph is lined up with the previous paragraph, but it has no tag in the margin. .)b produces as output: .ip [a] This is the first paragraph of the example. We have seen this sort of example before. .ip This paragraph is lined up with the previous paragraph, but it has no tag in the margin. .pp A special case of .b .ip is .b .np , which automatically numbers paragraphs sequentially from 1. The numbering is reset at the next .b .pp , .b .lp , or .b .sh (to be described in the next section) request. For example, the input: .(b \&.np This is the first point. \&.np This is the second point. Points are just regular paragraphs which are given sequence numbers automatically by the .np request. \&.pp This paragraph will reset numbering by .np. \&.np For example, we have reverted to numbering from one now. .)b generates: .np This is the first point. .np This is the second point. Points are just regular paragraphs which are given sequence numbers automatically by the .np request. .pp This paragraph will reset numbering by .np. .np For example, we have reverted to numbering from one now. .pp The .b .bu request gives lists of this sort that are identified with bullets rather than numbers. The paragraphs are also crunched together. For example, the input: .(b \&.bu \&One egg yolk \&.bu \&One tablespoon cream or top milk \&.bu \&Salt, cayenne, and lemon juice to taste \&.bu \&A generous two tablespoonfuls of butter .)b produces\**: .(f \**By the way, if you put the first three ingredients in a a heavy, deep pan and whisk the ingredients madly over a medium flame (never taking your hand off the handle of the pot) until the mixture reaches the consistency of custard (just a minute or two), then mix in the butter off-heat, you will have a wonderful Hollandaise sauce. .)f .bu One egg yolk .bu One tablespoon cream or top milk .bu Salt, cayenne, and lemon juice to taste .bu A generous two tablespoonfuls of butter .sh 2 "Section Headings" .pp Section numbers (such as the ones used in this document) can be automatically generated using the .b .sh request. You must tell .b .sh the .i depth of the section number and a section title. The depth specifies how many numbers are to appear (separated by decimal points) in the section number. For example, the section number .b 4.2.5 has a depth of three. .pp Section numbers are incremented in a fairly intuitive fashion. If you add a number (increase the depth), the new number starts out at one. If you subtract section numbers (or keep the same number) the final number is incremented. For example, the input: .(b \&.sh 1 "The Preprocessor" \&.sh 2 "Basic Concepts" \&.sh 2 "Control Inputs" \&.sh 3 \&.sh 3 \&.sh 1 "Code Generation" \&.sh 3 .)b produces as output the result: .(b .b 1. The Preprocessor 1.1. Basic Concepts 1.2. Control Inputs 1.2.1. 1.2.2. 2. Code Generation 2.1.1. .)b .pp You can specify the section number to begin by placing the section number after the section title, using spaces instead of dots. For example, the request: .(b \&.sh 3 "Another section" 7 3 4 .)b will begin the section numbered .b 7.3.4 ; all subsequent .b .sh requests will number relative to this number. .pp There are more complex features which will cause each section to be indented proportionally to the depth of the section. For example, if you enter: .(b \&.nr si \c .i N .)b each section will be indented by an amount .i N . .i N must have a scaling factor attached, that is, it must be of the form .i Nx , where .i x is a character telling what units .i N is in. Common values for .i x are .b i for inches, .b c for centimeters, and .b n for .i ens (the width of a single character). For example, to indent each section one-half inch, type: .(b \&.nr si 0.5i .)b After this, sections will be indented by one-half inch per level of depth in the section number. For example, this document was produced using the request .(b \&.nr si 3n .)b at the beginning of the input file, giving three spaces of indent per section depth. .pp Section headers without automatically generated numbers can be done using: .(b \&.uh "Title" .)b which will do a section heading, but will put no number on the section. .sh 2 "Parts of the Basic Paper" .pp There are some requests which assist in setting up papers. The .b .tp request initializes for a title page. There are no headers or footers on a title page, and unlike other pages you can space down and leave blank space at the top. For example, a typical title page might appear as: .(b \&.tp \&.sp 2i \&.(l C THE GROWTH OF TOENAILS IN UPPER PRIMATES \&.sp by \&.sp Frank N. Furter \&.)l \&.bp .)b .pp The request .b .th sets up the environment of the \*N processor to do a thesis, using the rules established at Berkeley. It defines the correct headers and footers (a page number in the upper right hand corner only), sets the margins correctly, and double spaces. .pp The .b .+c \ \c .i T request can be used to start chapters. Each chapter is automatically numbered from one, and a heading is printed at the top of each chapter with the chapter number and the chapter name .i T . For example, to begin a chapter called .q Conclusions , use the request: .(b \&.+c "CONCLUSIONS" .)b which will produce, on a new page, the lines .(b C CHAPTER 5 CONCLUSIONS .)b with appropriate spacing for a thesis. Also, the header is moved to the foot of the page on the first page of a chapter. Although the .b .+c request was not designed to work only with the .b .th request, it is tuned for the format acceptable for a PhD thesis at Berkeley. .pp If the title parameter .i T is omitted from the .b .+c request, the result is a chapter with no heading. This can also be used at the beginning of a paper; for example, .b .+c was used to generate page one of this document. .pp Although papers traditionally have the abstract, table of contents, and so forth at the front of the paper, it is more convenient to format and print them last when using \*N. This is so that index entries can be collected and then printed for the table of contents (or whatever). At the end of the paper, issue the .b ".++ P" request, which begins the preliminary part of the paper. After issuing this request, the .b .+c request will begin a preliminary section of the paper. Most notably, this prints the page number restarted from one in lower case Roman numbers. .b .+c may be used repeatedly to begin different parts of the front material for example, the abstract, the table of contents, acknowledgments, list of illustrations, etc. The request .b ".++ B" may also be used to begin the bibliographic section at the end of the paper. For example, the paper might appear as outlined in figure 2. (In this figure, comments begin with the sequence .b \e" .) .(z .hl .if t .in 0.5i .if t .ta 2i .if n .ta 3i \&.th \e" set for thesis mode \&.fo \(aa\(aaDRAFT\(aa\(aa \e" define footer for each page \&.tp \e" begin title page \&.(l C \e" center a large block THE GROWTH OF TOENAILS IN UPPER PRIMATES \&.sp by \&.sp Frank Furter \&.)l \e" end centered part \&.+c INTRODUCTION \e" begin chapter named "INTRODUCTION" \&.(x t \e" make an entry into index `t' Introduction \&.)x \e" end of index entry text of chapter one \&.+c "NEXT CHAPTER" \e" begin another chapter \&.(x t \e" enter into index `t' again Next Chapter \&.)x text of chapter two \&.+c CONCLUSIONS \&.(x t Conclusions \&.)x text of chapter three \&.++ B \e" begin bibliographic information \&.+c BIBLIOGRAPHY \e" begin another `chapter' \&.(x t Bibliography \&.)x text of bibliography \&.++ P \e" begin preliminary material \&.+c "TABLE OF CONTENTS" \&.xp t \e" print index `t' collected above \&.+c PREFACE \e" begin another preliminary section text of preface .sp 2 .in 0 .ce Figure 2. Outline of a Sample Paper .hl .)z .sh 2 "Equations and Tables" .pp Two special \*U programs exist to format special types of material. .b Eqn and .b neqn set equations for the phototypesetter and \*N respectively. .b Tbl arranges to print extremely pretty tables in a variety of formats. This document will only describe the embellishments to the standard features; consult the reference manuals for those processors for a description of their use. .pp The .b eqn and .b neqn programs are described fully in the document .ul Typesetting Mathematics \- User's Guide by Brian W. Kernighan and Lorinda L. Cherry. Equations are centered, and are kept on one page. They are introduced by the .b .EQ request and terminated by the .b .EN request. .pp The .b .EQ request may take an equation number as an optional argument, which is printed vertically centered on the right hand side of the equation. If the equation becomes too long it should be split between two lines. To do this, type: .(b \&.EQ (eq 34) text of equation 34 \&.EN C \&.EQ continuation of equation 34 \&.EN .)b The .b C on the .b .EN request specifies that the equation will be continued. .pp The .b tbl program produces tables. It is fully described (including numerous examples) in the document .ul Tbl \- A Program to Format Tables by M. E. Lesk. Tables begin with the .b .TS request and end with the .b .TE request. Tables are normally kept on a single page. If you have a table which is too big to fit on a single page, so that you know it will extend to several pages, begin the table with the request .b ".TS\ H" and put the request .b .TH after the part of the table which you want duplicated at the top of every page that the table is printed on. For example, a table definition for a long table might look like: .ds TA \|\h'.4n'\v'-.2n'\s-4\zT\s0\v'.2n'\h'-.4n'\(ci\| .if n .ds TA \ \o'-T'\ \" .(b \&.TS H c s s n n n. THE TABLE TITLE \&.TH text of the table \&.TE .)b .pp .sh 2 "Two Column Output" .pp You can get two column output automatically by using the request .b .2c . This causes everything after it to be output in two-column form. The request .b .bc will start a new column; it differs from .b .bp in that .b .bp may leave a totally blank column when it starts a new page. To revert to single column output, use .b .1c . .sh 2 "Defining Macros" .pp A .i macro is a collection of requests and text which may be used by stating a simple request. Macros begin with the line .b ".de" \ \c .i xx (where .i xx is the name of the macro to be defined) and end with the line consisting of two dots. After defining the macro, stating the line .b . \c .i xx is the same as stating all the other lines. For example, to define a macro that spaces 3 lines and then centers the next input line, enter: .(b \&.de SS \&.sp 3 \&.ce \&.. .)b and use it by typing: .(b \&.SS \&Title Line (beginning of text) .)b .pp Macro names may be one or two characters. In order to avoid conflicts with names in \-me, always use upper case letters as names. The only names to avoid are .b TS , .b TH , .b TE , .b EQ , and .b EN . .sh 2 "Annotations Inside Keeps" .pp Sometimes you may want to put a footnote or index entry inside a keep. For example, if you want to maintain a .q "list of figures" you will want to do something like: .(b \&.(z \&.(c text of figure \&.)c \&.ce Figure 5. \&.(x f Figure 5 \&.)x \&.)z .)b which you may hope will give you a figure with a label and an entry in the index .b f (presumably a list of figures index). Unfortunately, the index entry is read and interpreted when the keep is read, not when it is printed, so the page number in the index is likely to be wrong. The solution is to use the magic string .b \e! at the beginning of all the lines dealing with the index. In other words, you should use: .(b \&.(z \&.(c Text of figure \&.)c \&.ce Figure 5. \e!.(x f \e!Figure 5 \e!.)x \&.)z .)b which will defer the processing of the index until the figure is output. This will guarantee that the page number in the index is correct. The same comments apply to blocks (with .b .(b and .b .)b ) as well. .sh 1 "\*T and the Photosetter" .pp With a little care, you can prepare documents that will print nicely on either a regular terminal or when phototypeset using the \*T formatting program. .sh 2 "Fonts" .pp A .i font is a style of type. There are three fonts that are available simultaneously, Times Roman, Times Italic, and Times Bold, plus the special math font. The normal font is Roman. Text which would be underlined in \*N with the .b .ul request is set in italics in \*T. .pp There are ways of switching between fonts. The requests .b .r , .b .i , and .b .b switch to Roman, italic, and bold fonts respectively. You can set a single word in some font by typing (for example): .(b \&.i word .)b which will set .i word in italics but does not affect the surrounding text. In \*N, italic and bold text is underlined. .pp Notice that if you are setting more than one word in whatever font, you must surround that word with double quote marks (`\|"\|') so that it will appear to the \*N processor as a single word. The quote marks will not appear in the formatted text. If you do want a quote mark to appear, you should quote the entire string (even if a single word), and use .i two quote marks where you want one to appear. For example, if you want to produce the text: .(b .i """Master Control\|""" .)b in italics, you must type: .(b \&.i """Master Control\e|""" .)b The .b \e| produces a very narrow space so that the .q l does not overlap the quote sign in \*T, like this: .(b .i """Master Control""" .)b .pp There are also several .q pseudo-fonts available. The input: .(b \&.(b \&.u underlined \&.bi "bold italics" \&.bx "words in a box" \&.)b .)b generates .(b .u underlined .bi "bold italics" .bx "words in a box" .)b In \*N these all just underline the text. Notice that pseudo font requests set only the single parameter in the pseudo font; ordinary font requests will begin setting all text in the special font if you do not provide a parameter. No more than one word should appear with these three font requests in the middle of lines. This is because of the way \*T justifies text. For example, if you were to issue the requests: .(b \&.bi "some bold italics" and \&.bx "words in a box" .)b in the middle of a line \*T would produce .bi "some bold italics" and .bx "words in a box" ,\c .if t \p .if n \& \" .if t which I think you will agree does not look good. .if n which would look really lousy in \*T. .pp The second parameter of all font requests is set in the original font. For example, the font request: .(b \&.b bold face .)b generates .q bold in bold font, but sets .q face in the font of the surrounding text, resulting in: .(b .b bold face. .)b To set the two words .b bold and .b face both in .b "bold face" , type: .(b \&.b "bold face" .)b .pp You can mix fonts in a word by using the special sequence .b \ec at the end of a line to indicate .q "continue text processing" ; this allows input lines to be joined together without a space between them. For example, the input: .(b \&.u under \ec \&.i italics .)b generates .u under \c .i italics , but if we had typed: .(b \&.u under \&.i italics .)b the result would have been .u under .i italics as two words. .sh 2 "Point Sizes" .pp The phototypesetter supports different sizes of type, measured in points. The default point size is 10 points for most text, 8 points for footnotes. To change the pointsize, type: .(b \&.sz \c .i +N .)b where .i N is the size wanted in points. The .i "vertical spacing" (distance between the bottom of most letters (the .i baseline ) between adjacent lines) is set to be proportional to the type size. .pp These pointsize changes are .i temporary !!! For example, to reset the pointsize of basic text to twelve point, use: .(b \&.nr pp 12 \&.nr sp 12 \&.nr tp 12 .)b to reset the default pointsize of paragraphs, section headers, and titles respectively. If you only want to set the names of sections in a larger pointsize, use: .(b \&.nr sp 11 .)b alone \*- this sets section titles (e.g., .b "Point Sizes" above) in a larger font than the default. .pp A single word or phrase can be set in a smaller pointsize than the surrounding text using the .b .sm request. This is especially convenient for words that are all capitals, due to the optical illusion that makes them look even larger than they actually are. For example: .(b \&.sm UNIX .)b prints as .sm UNIX rather than UNIX. .pp Warning: changing point sizes on the phototypesetter is a slow mechanical operation. On laser printers it may require loading new fonts. Size changes should be considered carefully. .sh 2 "Quotes" .pp It is conventional when using the typesetter to use pairs of grave and acute accents to generate double quotes, rather than the double quote character (`\|"\|'). This is because it looks better to use grave and acute accents; for example, compare "quote" to ``quote''. .pp In order to make quotes compatible between the typesetter and terminals, you may use the sequences .b \e*(lq and .b \e*(rq to stand for the left and right quote respectively. These both appear as .b """" on most terminals, but are typeset as .b `` and .b '' respectively. For example, use: .(b \e*(lqSome things aren\(aat true even if they did happen.\e*(rq .)b to generate the result: .(b .q "Some things aren't true even if they did happen." .)b As a shorthand, the special font request: .(b \&.q "quoted text" .)b will generate .q "quoted text" . Notice that you must surround the material to be quoted with double quote marks if it is more than one word. .sh 0 .sp 1i .b Acknowledgments .pp I would like to thank Bob Epstein, Bill Joy, and Larry Rowe for having the courage to use the \-me macros to produce non-trivial papers during the development stages; Ricki Blau, Pamela Humphrey, and Jim Joyce for their help with the documentation phase; peter kessler for numerous complaints years after I was .q done with this project, most accompanied by fixes (hence forcing me to fix several small bugs); and the plethora of people who have contributed ideas and have given support for the project. .sp 1i This document was .if n \*N'ed .if t \*T'ed on \*(td and applies to version \*(MO of the \-me macros. #]lm #b#H#ݴ(8HXhxp` $n7!819A` cC$N1 X,1  P"p""7l  "pό@pD0$ $"p}@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p (8|MetaWare TWS 8.87QWERTY"#8 #`n>Д0* ` Nb2(3-s 2:b3-s-/.0 nДN 264-t-02Q4-t-.0 ١nj0`  "c "b ɡĐ1>0 s >e Eb0!#!t b B! 5ɡ<`@t-bɡ<ߨ!n>Ԑ1>0 P>`0 " b >, n^ "tB sbЪ!-!bB2"!b 2Ѵ`b` c "b̏! 菤Q] pC "cE`0cc!菐Q] nm `Ъ  "c "b K:b4p#!4p# 4t(03 bAbcЍ 4 ! |   ٱnk +!p b"+ P!03sb Fb! !tbD = ɱ8 2p "!+ɱ80 bN%+!p b 0 "pqR0 1[r2 ɱ8ɱ8߸nm .!. ".  N$4 .4(...."d03u`Ъ  "bp500 n.!."bpP n̍u-"u b! "p cr3 b !wc u-u b! "p cp#5 4 ّnj ذȻ@  " t c=lʪp]b\@Dcp"! k p b ڒpb c|p b p"!0obje #b\ #b" Sp"!` cc%$? ```8qp<0 "#D 0\\b&(p<1>bɑ@     ʤ ɑ@Ԥߘn03, t-!,-",-#,-$,4 ns- &t- . 00 $Header: output.c,v 1.2 88/06/13 12:54:05 pickens Exp $MetaWare TWS 8.87Feedback failure: can't locate id: PTRAO: just received tree: sequencelabeln7!.` 03 b" #bq", PB@" Q%nl ,Cc 'L-P?  b/c -T/44 n03 BԴC "'"  $, n8!9103!$#1" "'0c 'L-P" bc -h00 ١nj ذȻ'L Xbr:q b * p+pɡ<ߨnc N  " @D' ,ANb@!$""" $0%2", n0 b! """ * 1#03  p" ```@Z A鏤!鏤 0 ```9_ a zٱn8l k0< 0  "2O+ EЍ 5,c lb@q+c b@%   b--ɱȤ ɱȤ ɱȤ ɱ߸!@ranh i04@ ;'L,fPQXQR1ba,XNP QYQR 1bI,p6Ĥ kl kpw';PQXQR1! j p* "؀Ȉ :bl pp* " 'Ȋ P QYQR 1!O j Țpbcf @ \pw'L'PQXQR1b'؍P QYQR 1bؔ` 'PQVQR1b'm'pgĔ` bc`5l bc,c'l  ؐș) :bl )p bcX@  "(P&bxbaLh!n.`ԍ$, n9!l :1m0 " yQ(R "4Ԕ  "(dbcЍt0*44 @B !@```@ $\!$ @1!@ $" \ ١n03C"PQRQR1!j * l *BUe bcP p* >b@#6e l03(|b@   b-ݽ-ɡ@ߨ@PnԤ0,! ّn Ԕ ԉȬ>0# p#  Ȭ p#k , p+d $ _p$ͮ0.0Dbc@' j , >0= p*" 7p#q.0c # id0p#b.0Dbc@ j p) c]>0#  p*" u0#>0#ߘّn.$ .>AV@$ɑ@` ذȻ b Ȣ4@ F  >8* Xc "(\ "ԍ:D* ! bb! "8bH F G (,3,0,*H ";iЪb9q" ;b9p";b910HѴ*.Hp:@,$>$  NH "((\ɑ@ɑ@ߘّni j0034Ԕ0 c "( NN 촐 ( x bN28 , , d0d0 c7<,,@.>1>0 $N$ @<8..0( <..@.>`0.km b     $ T2+ >b 2#ɑ@ ߘ!ٱnȴ &l  c  b! "kr+ X2 -c, ɱ8ɱ8߸n  菪!03 b2 b! "bٱnm@k l00.ܾ@D 5c 122bД rɱ8߸!nm 034Ԕ0 c ")>0 1>bФ1c 122b>20 ٱnk 4@ 'L-~b'-ps " +B C20  " !!1"!k@ ")@M.pc.pɱ@߸n " ^ NbЪ!-"bB2"!b 2Ѵٱnk l0 -  p  ```  p  ```+<  ɱ8 " !ɱ8p̉p߸!n.X̍>0b! "tb2t ,Д Z` .tcdA@Bm$B B#  r#r=} >u,@D)`>.Ԫ! b  Вxr- 2 "4Ԕ  ")U44 ٱnl 034Ԕ0 .|c Nl ")*Xk b .>Ad b b! "\bl0 B2>b"h '5 # b0N,8 --5J--.h> +ll l=c1# l=c0#ɱ8k ߸ٱnk0m "4Ԕ ")cЍ@1) <@D)b(mp b # bqɱ8  ߸qnh ؠȪ pk.Dm c p# c uJq:b c 0# "4Ԕ (pw'L'c<'܍< b q"B'< b p"40ݾqHxnm P "4  "*H400 nd m03*`bЍ bЍ4>١nd0k ]j  5L4@ bg$c "*le( "ԍ,.>A ɡPbD rJN B p ". [u,@D*cP",42  0CȬݬ    "ِ}0\4,k@Dٔ03*bab[0,   b @ .` N> "*e vU(ɡPɡPߨ١nl .`  b ""%j ذȻ4@;0 "*c@; .. ` b b # bp0 )'L,č_.Hb! "N> bvRbFɡ<ɡ<ߨnĴ !03 b20 b! "bD"  1#菤 nԍ@0 B 1#, nm0~Z@D0bЍI 0! nm 541!!8t03+`dusRDl0bЍTb8nm 1!!pqRrB03+p0bЍb8n P 4'L,8}/,@}/,H}/,X} "-,d}/,p}#-,|}$-,}%-,}&-,}|(-,}u'-+ *,.c8 *,.c8 *,mbЍB<}L+!.c8bЍ@};+!.(c8PnԍY0.($ " 4 " 0$4, $Header: hcmacro.c,v 1.2 88/04/16 10:00:11 pickens Exp $MetaWare TWS 8.87%s:%s :`%s' HC-?? Macro expansion nested too deeply.[Macro]Pasting two tokens: [Macro]Just concatentated: and to produce Didn't concatenate!Pasted tokens are: unnext_macro_token: "%.*s"[color]next_macro_token returns [m]end_of_macro %s [m]....end_of_macro restores mlist,last_arg to 0x%lx,%d [m]create_macro(%s%s) [m]enter_macro_arg(%s) [m]enter_token: [m] ...corresponds to arg %d HC-?? Previous definition of macro superseded.[m]end_macro_def [m]prepare_for_arg_defs(%s) at last_arg=%d [m]begin_arg_def(%d) HC-?? Macro call has too many arguments.[m]end_arg_def(%d) [m]Unexpanded: [m]expanded: [macro] expand stream "%.196s"[m]expand_macro(%s) HC-?? Insufficient number of arguments to macro.%d[m]expand_macro: mlist=0x%lx, last_arg=%d,old_mlist=0x%lx Expanding argument %d [m] tokens are:[m]expand_argument: mlist=0x%lx, last_arg=%d,old_mlist=0x%lx "%s %2d %4d""%2.2d:%2.2d:%2.2d"###__FILE____LINE__ٱn-!ذȻp b  lb;/-!p b ɱ@߸١n;!l j0k@-  cWCwp @D@DbcpQDA@1p b p *c ɡ<ɡ<ߨane0A0 YmP-P &<@PDV\dj"ntxA=89h51ȉ-@(,"@\1Љ쉀 Pp012Et <n03 "b q#4u,, nl zm @ "bz2-z  4b4 nb!!p bE@! zٔbr!!p bB!  zc xa/ِb9ThlDs!8Dnm zh@ 0 <03CL'4  1X 0 ".  N%8 .5=...>b0#b0Ҥ1>0 n "ԍ }   "C 0001čR, ١nk qbymbЍ6  "bQ    ,w<8d "C >>2   , +  "CbЍ62ɡ Hb0]0ɡ Hߨnl "Ԥ>F p 03Cbp-csp *c4 n.pԔ  "Ԥ2 2#hb ".p#hb032ttx "D| VH, n.hԔ  "Ԥ2/#`b "Y`.h#b032p "D 0ll, ndԔ "Ԥ2l dl "D@, فn؀Ȉp0ؐșp)03DPjb ذȻ;b0!p b 8 5   #   p9  up9bW ;b0!p b p9*p0ɁL߈an@D0A030c 1p c뎰 @$;!(5 (/,*0%4 8QX 5<!/< .@Dʼ\^ab`4)hp  .X#Pbނ\8>X3.Pb#" ` 1 "D?ݾ\ XX$\ fe^\.` W1 "DL\XX\\.`  "DȔ >>\!\b뢔%* "

q9bo)#舏g "Ȕ ` "Do!) q)NФ  Z ( "D]qIp9tbЍQu  5 v,! 6,*cЍbp qY01Wq\xٱnȍ X褱޿\ "/03bzfC,ok "-,o`%-,oY$-, oR'-,(oK(-,4oD&-,8o=#-R ޿ʼɱ8߸n.Ԕ , $Header: hcpre.c,v 1.5 88/10/31 07:16:40 pickens Exp $MetaWare TWS 8.87ident (unmatched #if-#else-#elif at ) [pp] #define %s%s... [pp] #if %c [pp] #if%sdef %s [pp]...begin skipping text #if/#ifndef/etc. currently in force is at [pp] #elif ...begin skipping [pp] #else ...begin skipping [pp] #endif ***Preprocessor user error: [preproc] skipping #if(def) at [preproc] #else at %d [preproc] skipping #else at %d [preproc] #endif %s [pp]Preprocessor returns ###,ٱnk 'N(,Lm. $ ,X,\m!-ɱ8N(߸nԍ , ّni ؠȪ ذȻp;b bp; b bYlb.' p+bF* jb. p+b%b. p+b q*1-rJq:p b+bЍ{ 8q*6 7, -" "Nm. !q 1pqQ0 1YɑH p qZ0 1YɑHߘn "Ԥ1 , n " 03 čt, ١nl0  j ᢪذȻp c SQp e删p#!cɡ@c@ɡ@p#!1l p c p# 1c CBp d DAp d@.~DHPOO^p:D JVbÏ! ɡ@É! ɡ@Ï! ɡ@É! ɡ@É! ɡ@Ï! ɡ@b#ɡ@b#ɡ@b0,ɡ@b0,ɡ@b0,ɡ@ 0 !ɡ@ 0 !ɡ@b<ɡ@b#ɡ@b0cɡ@bQɡ@bIb0ɡ@p d DAp d@.DJBPOO^p:D J  VbÏ! ɡ@É! ɡ@Ï! ɡ@É! ɡ@É! ɡ@Ï! ɡ@b#ɡ@b#ɡ@b0,ɡ@b0,ɡ@b0,ɡ@ 0 !ɡ@ 0 !ɡ@b<ɡ@b#ɡ@b0cɡ@bɡ@bb0ɡ@p#!c"ɡ@p#!c"ɡ@p#!0 /ɡ@p#!0 p b p""1 p b p2b1 0CB 1<ɡ@ pb cd p c b@ɡ@r#; " 1_ ɡ@ @. DM POO trpnlhbɡ@ߨ!n8!m "@  "NOt cЍ|v "   0x!00 nԍ` /, $Header: hcif.c,v 1.1 88/04/16 09:57:43 pickens Exp $MetaWare TWS 8.8710#if expression: nm . p(@^P @ '03O ^1R.e @ B0`0b(1 5 0-0B0@ n0.nԔ p2b0 ```, n.Д qҍ bД 0 MetaWare TWS 8.87mtoken_spacenl m0 "4Ԕ & "VP Q]QR 1bt0*  P Q]" #\R $ b+4! 03$2#0@D$B02np2Ԕ0 0b0Q,, qng k K T @ bcp K=C ] @bG bcp+ "B + @4b$ =-K @bVk =KC nEk =KCCC  bp:qHqHxnl0bЍ bЍbQ bcx4 anj0h 0AiPq>11>4@ "V4k ; 0@ $pwV'TP Q[QR 1!ܼ'|; "޴2a!cFl{bp\ @ "Vbpu Y@ "Vqsg p " VbcA bc@e`h @ "VE '  "$!bc` cp\h bc`^h p  "$!bc`Bh bc bc@e1h "$!bc`#h "2+;bcAeh   bch k ;0q1ba Xh1nV,܍f T!-,f -,f "-4 فnl@j k0D a "4Ԕ "Vpbc ȡiФ m c@eeo bC bcx CdД@ 03   "$$pD@bɁH߈!MetaWare TWS 8.87[macro] Inserting token [macro]copy_token_stream(level=%d) [macro]copy_token_stream encounters "" [macro] ... is a macro [macro] ...has args [macro] macro has args but no args present (),[macro] rescanning argument ١nk p`  "b "b ?6b,*03 bx0 br4.>Ai8ؠȪp*csM A^eTp b p ZXd "03u\ɑ@ ( ɑ@.,cA`ɑ@  " #  h _ $' % r+W "oFP// ~|zxvr \;B 3oP??HFDB@><&$ ͎; 3oP??&Lɑ@p b ߘ!١nj k0l@Ѥ0110210&1010(1015c{O 10D N  03(1 <#10B щD!C! ЉD!r!D!" @DD.441? "03D)!21A10 3"'r! 03b%t"2!  "  "  "^ ,03@bR@10 O")r!03hb>2$2!  "  " "' ,#r!ذȻD(C 03bC 2D 203bҕ, 1@DD)D!r1")!4 B " " ,1B C " , ,"1 0   ,uxɡT-D!ߨ1١nj k0|l b|m @ @, bɡ @ s !0p b p0!d (#`p "bpbc@(!2 " bЍ Dpz11䔄   @  "4۔ `p "dp rD >Hbp L@ J݂kpᷪ`fpc p g pc p Tpc rC ]@ ] ]cpPbpcRT b"23C,bp,X @H݂ؔ =bP =@HDC,bP01  bd\a`bd_`a`H "  !da`a`s 0hQan@j l0m@fajbpwp7b6BA؀Ȉpd'pb!f*bb6BAd봤0 p7b6B@pjfajbb6BApd  攵0 0Ȑbk pGcFp# ` c31pc Li pcp# 03H 褑@  "lcdeh@ 03|bbDbcpb p"!cdЍK(xs0 ڲ3b0 p7b6pb! "0!b#BApdDBxB1A Rp"k)b!+"b#21c"+ ;Š 5Š /Š )Šp2bL03b̅l%    .c̍dqA' bctspcp# cdЍ(spcp# cdЍ(bh 2pcp# 1sArQq#_,i q@81 03 bb}h @8s "4ؔ  3 "D+r5 03! :@@0 '3P??:864  OA@ 03(BDDC,bʞ4 03dbʔ4bg Zp b1 pjbdk r qng h0i@kpᷪp b p j m @ 03bp qH J 0 K  "1 bp c r3@-qHx1١nj0l ªp d p tk Ԑ$031(1p d crD "1 "p b p Lj bQc p b rBPUb ɡ Hɡ Hߨ!$Header: hc1labels.c,v 1.3 88/05/28 07:37:57 pickens Exp $MetaWare TWS 8.87label %.180sHC-?? Label is undefined.labeln̍ l q\Lb0bl .04 n̍(m +M @ qp].00c-)qp] b0dPePbЍ&m .0@4 nl .m p-` @]W Xr 0 MM@ .0 <@ Đ! @r @]%, 0s=s=0.0110@]% ]"xP//2HFDXV$<"P//- 8 <-sԐ1>0 >b0"#"b  " d>  "܍d",, ١n.;` b  G `pO` c b  b ` b pqS01RrsS23Rt4D  "cɡ<ɡ< `ߨnԤ,! ّnm@i j0|Ĕ d д bN2]uذȻ `0+ذȻ `p+ d0ȴ0 c]0+p+^w.|lp b >;ؠȪJxbc) p :bb$p b b" "pbr2p bE(p :bb$ɑ@>x1>xt0 p >xb `0Npdp qZ12Tr 32! ( 2D bG,c @ "TdDbɑ@ɑ@ذȻ `jߘ!nL !03 `b2b" "@b$.Xn!03 `b2L" ! ّnHk@i j0Gd\̗LbcPd( \ 3QbGVc !@c  $! Ecd "1 bm bG-\$cd?bcɑxɑx̗ߘ!.ndm003S 0QFc !@cbEdBb@2e P @  lb@?-%l!'n !03 `b2b" " b" nh03S 0QFc !@cIbDl&n !03 `b2b" "c .(#菤 $Header: hc1sym.c,v 1.2 88/05/26 10:37:03 pickens Exp $MetaWare TWS 8.87[SYM] open_scope() [SYM] close_scope() HC-20 Duplicate declaration of identifier.(Previous declaration at ) [SYM] %s entered as %s HC-?? Tag name is being truncated to %d characters in length.tag tagnДN%0Z h0- hp-5[0-p-[ .0 nm >Ԑ1>д0 >Ԫ4 " hpd1B`Ъ  "c "b `  01$20 n " hq1̒n.Д D0q-rqB@ L 0A1Bp"` 03bpb` c03cb0 h n.n̍ 0c 122p c31p c#a0 W m 4 nl m0-"BP//.0Lde`(t "D< .`P0LBL( \b0LA?(S.\0LB3(\b0LA&(: "D< .0LBe((.0LBe ( "D< . 0LAe( .$0LAe( 4! nm .0RdЍt t0 ١nj k0h  l ,m .h  "l  " , @  " " , "D( щ҉ ,u m  .0SdЍF.0zd=lܮh l b Pɡ<ɡ<ߨ!ٱnm k0@+ t"P// fz:q[.0LdЍZr q[.0MdQ0QI+1$K b0OeЍ6[.0KdЍ*+l r[K.00N !  r[K.00PL Lɱ<߸!anf g01Aq!k q!dl ڋb\i  |q!ad " lp"03|q!ad s q!ad!xj @ `  "b "bb "#ob1 @2b`cpCL\!m r!034ݔ0!034ޔ0"c  " PbqAr1$s bc!(1 03bb1 ,q!ad 03b!1 x,Ѵq!adexj ?cפ0b`de0s  Mxj s 0 ` cc b( 1cb`q!ads h1PUD( A/Aanh i02Ar!j 1`a X@m ЎL q pʨêä1GpwD(Ac q p*09` c bA p*b1M Ab q p: gc`2=63b0pʨêä`Ъ @Dc "eUpӐ`Ъ ceU 03,bЍp c 0b@eЍbЍ: e p:b@#r9bbЍ%L@Ibc@Ar l bWDm b!@I0!bpceЍa$pb`cbl rY@I0bpcЍa$pp,p;c:31b#Mp,p;c:31b#Cp,p;c:31b#9h1nm 0WxbЍ$"(,,bЍ$ 0 $Header: hc1init.c,v 1.6 88/10/18 07:03:55 pickens Exp $MetaWare TWS 8.87HC-50 Unable to initialize array; element type not complete.HC-57 String exceeds the length of array being initialized.HC-58 Initialization entry is of wrong type.HC-55 Bit field value expected but encountered '{'.HC-51 Initialization list is longer than aggregate being initialized.HC-52 Initializer type does not match type "char".HC-53 String exceeds the length of the array being initialized.HC-?? Initialization of a variable within a "COMMON" or "IMPORT" section is not permitted.L000%dTMPnЪ"PUbRp"0 88c@p 01 ٱnk l0+ k @+*r Д* ""+B     ɱ8 " 2ܤ!ɱ8 ɱ8߸!n03< , ١nj k0m@12:"120 ɡ4p dЍ>Z"2l @ פ J<,"y "+2ۤ r 1  s r,1+2  "  " 2۔ b"ɡ4p z" c7 bq"ɡ4pД +,4@0@  ,(r ,r,l @ ٔ # @  b("ɡ4pJ<,! " 2۔bc r 2 !2ɡ4pb"ɡ4pb"ɡ4p0 3P??V`|jʉd@ ߨ1nl 18@D1=?"Ԥ@r"8 03xbcb8nm 18@D1<"@c @r#s3403bЍ'ܤ 04 n18z"M0 ١nj0k@18[1bHbm @ %r=  "2  .0Xd] r=0 "ɡ@!ɡ@bcdj ɡ@ߨ1nm018" 1dЍ(qHPUǸcN,80 b0bC4h 80B=.0  Lb`h D80 =l0b@%r "D+( 88m @  03(0dPbp<$-b4h 80a\h!ٱnm0k bЍl є A+   : 8  ! +<0 , t Ф H H !,bk bl +   ʔ   bɱ8 ɱ8߸!and f0g@qtr؀Ȉpc "b͎pb c`͈aTp#ڣ!1AEA@ H pbp"!03ǼBDDC,\lpbpb 1d k ppbpb 03:eb! "pbp0b`$m  p!030Jb@bkŲb@ p!03lE - ! cW( b0,c -I(  p!03Ș~aTюL.c@0aTaTp(ch!ّnk l@mPi0ᓪؠȪp c p 44p c rCؠȪZc@bc::bɑ@ߘAanj h0l@mPͱ``  "br"1T01b0Ede 1(p\P)-2D$d 0`d . 0 " b=bp\Q0\`f1pw< 1[!V(1\b,G@ .0Gz0.0Fdmi4p\Q0\ @D 4 " 0 2P aTaTp\handi j0>A?~b! "5!pMcB "b ~1.aPpb! "c$s#lA@bcŢbk @   . >A6, 4! :!6=+ 4!s  :!O+b0=! "DH }!@؀Ȉ84+4 "8dM8!@ 03ɀb`` p-bpb|f @ b< @&Xh B (ma\p$!1YAZN1Y0 p b r"@DĪ2SUC,0 p+d*0pl gq|rcr#!pb#p# m  p bp" 03 p bp1ZbATbb`g QTP *@ !0Pd` d !T03$Os "Xc`dpά$ @@ 03hb/QTP  03ՐbP QT`Pp+cp rSc`dЍ?(/` p+brR c`dЍ0( QTP bP!%"p cp rSc`@( 03bpa\a\a\p+d*h*an0!ؠȪD(@:Ők Ცp,c+3pӐ31pwpc3/ 6:02p!03 p%p,":0p!03Lpp,    jЪ᭪c#!b2p`1b`rspp bp1!s q!@ q! pp4bcd`v r .. c`$cpw/(rp b rBb`cp,bp1!2 "1 b`0p c r3@4q!@8 "t 2bЍp c (2LbЍp c 03bЍp c  p c  >bcd`vp rp b rBb`cp,p c rCbpc` 8p c p# l<8@bpvD  p!034V " 7r p b ..0d`HbpޘLbc@v rp b rBbp08bЍ <@bpa`p c }h١ne lPŪp c #!@Db$""r03bP;$ɡ H#pS%e QRReUQdEDA g7k PU p2p c rEp%$ b@0%q%$ b@1%2AA2Ep#!l ªc pŠc r1b "1 -b)2|k bjc p b rBPUhb9ɡ H .cPɡ Hɡ HPU pߨan01`pj ᢪذȻp;d:p$ilȪbBAp dDB Qp`1b`rp;b:ؔp03pbxp 1p;bp~@"" ) 03א"BDCTbx "1 b`p;cr3@p p;b!)"b#"!b p0 1 2 bp=0 q " q  0 q   q  p  "D) j )p 0dq.r` ,p b rBb`cp.c`Dcptr " . 0d`bpܲbpaTgp p cp;h!$Header: hc1struct.c,v 1.5 88/05/28 08:17:29 pickens Exp $MetaWare TWS 8.87HC-?? Storage class "%s" is not valid for a struct member.HC-45 Bit field exceeds word size.HC-?? Type "%s" is not valid for a struct member.struct memberHC-46 Bit field is not an integer type.HC-48 Named bit-field of length 0 not permitted.HC-47 Identifier missing in struct member declaration.HC-?? Packed structs are not supported; status of ALIGN_MEMBERS toggle ignored.HC-?? Packed structs are not supported; "packed" ignored.HC-42 union tag was previously declared as a struct.HC-41 struct tag was previously declared as a union.HC-43 struct/union tag was previously declared as an enum.HC-?? Structure has no contents (is of size zero).enum idHC-?? enum tag is not defined.HC-?? enum tag previously declared as %s tag.nm I`Ъ  "b "b 03$bЍ7  bЍA90 ّnpk 1( "1 , 03Db3 bЍ"{m۪ؐșp c * ]b{@ U " "4ٔ Ib0Pd{hd 03tb6 b{nj p c "D/  @  r p#!c bi$e rJ@:bЍ(Nܔ@ " @ BN "2 .0X#,ɑPɑPߘ$anpw ` gj ᢪذȻp b p"!0d`gŒ "2p0p b p"")Ĕ 2p 0 p b Eŀ 2p  .0Xd.0Gd`p 0 p c p# . 0Gdp 0 aL.0Gd`aLhan03  mg qrr؀ȈpHbGp"e)bP!%"e$EA "b$""% .0GdЍ@pbp"!1dЍaP` c0ھb0d`Ţ.0GdЍn "2p0pbp" <N@ . 0G䔡 "2p 0ؠȪ7p 0 b1dЍ@p 0 .0Gd`pܾaPhqn03 p sڞڎܮܮl ªp c p#k.0Gdp||p c p#!||N@ .0Gcޮ` p-br"1D&b1dpN@ . 0GBܞ܎qHxnd l0 "2  .0e 1-U $-L#b<?#bs4! n`  "bp"!c@8d @ PU1(p15  0 "2 .0X00 nBԔ@ 03 @ C B "2 .0X,, n` 03d40 pb,, anpw ` g0m ҪذȻp b p"!c 122c31p cA | "#i| p[c]p#jm٪bp.0Gd``p+bp,bA b1d`Ja X "2 .0Xd`a Xa XD2B1@ GNBDgqxrbubA b0 0. 0Gd`p "2p0<bЍJdɑ@. cЍhɑ@, "*P//dJz .  h   _ ˎ9m܉ͪߘan3!f012~ؐșpؠȪ 4ذȻ 0@ͤ 0 03$b`/.5 "1 /"sn03"# 03#034ٔ0 sV@ s!03렍rq~0t p ``@Dc# p ` br"1= 2pw ` g1 ؀Ȉ2p80 .0Xd` p8ܐܐ108j᫪ؐșp b p" $ܒp80 "B L@@ G L0 .0XH p b r"1<(. 0Gd`7 p80 108p b p"!03",bͮ&03\bb`070W4N@p.0X 1 Ab`8N@L@ @ G LNNDb`c@d1>0 :N 6-ؠȪ 0*ؠȪ p*:-w0*p*.!.>`0p*d !Īb""2ɡ<ؠȪ ߨ!nm 05bЌZn1@D bC20 p$`0c #030 0 ٱnk l0 "4  b bɱ8Ԑ03 @DC  "B    "#  "* ",x@DD8.0S@.0dЍ7. 0K@e-y bcЍ bɱ8߸!MetaWare TWS 8.87ٱnk l0m@. >@N  01!b00e.ɱ@߸1nm ش .0HdЍ00 n.ԍ, nԤ 0@/& 1@/ 1@v 2@o/. 3@d/ 1@Y/, 3@N/*, MetaWare TWS 8.87n>Ԕ0( ` Nb4+9.2:b+..,D., nl m0ܴ b 04! nm ]X@/r  )b p"03$8@ U0b p"03$xC00 anx11f abb "b&0p"!1:hT]m ȁ Ȑ,@  .>@X-\j , *N 1*yh +i -i`c bdK?rpp g "b&pb1 T\k @  .,>8@X+M\l `ʳ $!  NH1*/h b1 dJ <2b*h b+:i m\  +`c L-3Jᬐqppbc.dbЍrhq1 #! b+ lbЍKpa<h!@banm i0f@gPaTbjh b_dj bЍ k @ K IbЍ\034ݔ0 @   `` "cp r3ni 03$@D8@D8b`pT baTp kl`ƪ "b,p0bni 1 "4ݔ  "c,p r3ni 03$b` baT03%b` "1 bn``03cAWr3|y L o`fD)c`3p)Vl0c`Rd rXV e`STq  b#  QB q  b$  R!B0bФ9&3$)d( 29qI0Ѥ1+eI, "D)#qIB "")! ')i~l )^,*pI@k l@bfj BbЍfy0 @   1 @  10C> "!6A>ceЍ1D #fQ>Q6rB@20bP8̉6!6cd e1D #f1Q6rB@2bK!6"bp"^cdЍJ!D 6bɡ@ߨAan1^l0Qfh i@c18241 "c# "bbexk f !jex 3!al 9(j!^AfceЍŲbex@230 9,J DPOO,"  @;j4 5 sA@   fQ^0!s1!-cdЍ#4 @;5b$8 & *2 9 3 0"Q^f0Qs1-s1de4sA@ bЍ$8X &U fQ^012a,0/dPe<B@;j4 5isA@ +!^AfceЍg@;5 b$H8dxk AfQ^bcP@@D" F  fQ^0s1/cdЍ4 @;5b$8 &fQ^012a.00dPe<fQ^012a.00dPe<fQ^0j12a 01dPeh<j!f"LcЍc 1f@;9 2 p v^ Q^^bcdЍxbiD "D)rKBL FLQ^bPcm!^Li@b@d:xk rK@;2 R  R  fQ^0N6 @;4 5e+ ]d xj +k$Hm @;5!^ m !^!^+X|c rJ@ Q^01bPceЍL+ &rJ@@ p 03&b, 03'b" v 6^p 03'@b  vp2pApB|pDxpC2 %9 #4n 9 j 7 g5p1p-p7)p8%p:!p9J D zPOO 2 0,p(p<$p; p=p>p ```7 8 9 :  fQ^rB0bpL 7  9 @D" F^ bcdЍ ^j!^AfceЍ3bxl @<3 ( ? @#2 9 4 6  (^^bcdЍ@< ( 5 6fQ^rL0L@D" F@;6 !^HPbWI &!^^!^cT!^1j!fTc 1f 1 ! Q^09AL>@D"a F!^cTc 1^e0 "9@G@D"E Fjp#, X,., X-.t1 "c##fQ^01a!s5!#bp"2!bcPde\!^b`!_dt1 "c#r3.hlc bvpFQ^0q1au!2!bcPP\@;j5 03'b!^cP "D(G A"sArsA@  !f"LcЍ!f!fcd!f rK@@;#1 <b<bbV | 03(} ?j Oe TK U Vn Ž Î} Ďy ŎusA @U@;R@;hQnl ªp c p#!1A3p c p#1db<ٱnk l0b!+"p b "b b !!1b!  ɱ<^@  03(bV ɱ<` p-bp0!bm 03)(b5 ɱ Ų  b9Ų)i,m ):G4Ų)i8  03D)r):SŲ "2 (03D)r):AŲ "" ():hŲ)b`s (@DD*r9p#q3:><Ų "4_ (03+Pbp} 0@9 ŲI "P//R,r1Abpz@m  403D)bЍ9Ų "2 "" ( " " (1bpDuA9<Ųu!@DD(B  "4 (C  " ( "6 (prbЍXc @ bdxOHc @bЍ9hŲbЍa9` (p#!c@PLŲp c p# c@e(YVprB@20 [eC?nŲp#j!1@QŲlʪp c p# 1@PRp c p#!A01cP8Ųp#!1APnk p c p# 1AP_e A012bpcT Ųp#!1@PCk p c p# 1@P4e A012bpcTŲp#!1@Qk p c p# 1@P e A012bpcTŲp#!cCPŲH012bpcPxTŲp#!cdPŲH012bpcP]TŲp#!c@QŲH012bpcPBTfŲp#!ЉdФBcPŲH012bpcP!TEŲp#!c@e|Ųp c p#d80be@T(Ųp#!1@P^Ųp c p#"1@PP+!p c p# 1@PA*!1b3LŲQ1!A !(!Wpj @:7 8F! xl ! xm !>+!!7@DD1*!01! #4eHkXŲ!L;trJ@: m01!&e;\Ųr @01 #eHCXŲ PU0bpc@`uŲp#! (p c p# 1deŲH1b dRŲp 30hp#!sl@DD(A 032 803" 8A46"ŲbpcMpŲ.cpzp03D) 6Ų  bb"b0rbq` 1 ""P//~|zxvtp0ljhfdbLtrpnljR J@DB>06U %  "#.P//  VJŽXĎŎҎoݎ BxAnԤ@P,! $Header: hc1expr1.c,v 1.7 88/07/05 13:19:51 pickens Exp $MetaWare TWS 8.87HC-?? Right operand of shift operator exceeds word size (=%d).HC-?? Right operand of shift operator is negative.CO-113 Selection of a member from a non-structure is attempted.CO-114 Undefined structure member.CO-116 Member not defined in referenced structure.HC-101 Pointer to an object of unknown length is being indexed.HC-39 Array subscript out of range.HC-100 Attempting to take the difference of two pointerspointing to objects of unknown length. CO-43 Operands of type "%s" and/or "%s" are not validfor %soperator. HC-37 Operand of type "%s" is not valid for %soperator.HC-30 Operand must be of an integer or float type(instead of %s). CO-11 Cannot dereference a pointer to void.CO-05 Cannot dereference pointer; size of object not known.CO-45 Dereferencing of a non-pointer is attempted.addderefHC-44 Left side of '=' is an array, which is not an lvalue.HC-45 Assignment into something of type void is attempted.HC-46 Assignment into a variable of unknown length is attempted.HC-46 Assignment into a "const" variable is attempted.HC-47 Operand of ++ or -- is a pointer to an object of unknown length.CO-41 Assignment into a "const" variable is attempted.CO-118 Applying "offsetof" to a non-struct type.CO-114 Name is not a member in the applicable structure.HC-86 "offsetof" operation cannot be applied to bit field.CO-06 Bit field is not valid as an argument to "sizeof".HC-80 sizeof being applied to incomplete struct/union.HC-81 sizeof being applied to "void" type.HC-82 sizeof being applied to an array of unknown length.HC-83 Unable to determine the size of array type.HC-?? Division by zero is attempted.HC-?? Right operand of `%=' operator is zero.OP-17 Up-level reference to a register-class variable is not allowed.CO-103 Identifier is undeclared.HC-23 Identifier is out of context.nm C@ 6 4 2 "0"0 [ "b-p"03O@ur 00 nOO3Դ0 03O\uT,,1 ang h0i@Ф0ah bpahC,l bQj bQk bFZf bFTb@ZZ bpah`p6 "bp1%k"-(P//&  rKr a@2! R! `b"ep7 Hr "4ݔ 0340 0@  r  r ,*ѤrKr #  R! `b"9ep6 rr R , -rK3ep6 r@Dbpc"e rK ,36 rݤ@;# ".jP// ¤4 "4ݔ  "4ߔ 03;*H *P@ +P@ 3s 0p- " ' "4֔ !*Gk!`f4;*Hg40+E '*E@  #,cdo",,cdf$,Ј,0+D*D Ѥ0tѤ 0 "4ݔ 0340 0rKr  b"9ep5 r@;2 ֔49 щؤbcJ  q!cd @ ,_$@DD4#r @ 6ep5e r@  ,^$2!#@;4;;bG +O@r*r  |q!cd @ pr!Ckv "bp"03Or숀Z:< bcGM Ѥ  @ #r  ,cds",,cdj2$,q!cdB rJ 6ep4 r@;4_;*# 6G   "4ߔ  "4ݔ @  "  +W(  +N@;b0C @  bC Ѥ0bpa,r5)@ & " +W^( rK@r @q!03Or 숀2 9! "4ݔ  "4 bp,rѤ0*CB0młi@;3#r rK@ `03D(B# *C#  + 3ep4 Er2 9/@  lk @ "5P//>j "D)r n=ذȻ"Kb=xK_ M "D+r V=ذȻKb%xKG Mb+A7 -b>RL@ --A' -` "bp"03Pp2Tr ` "bp"03P@pTbɱ8߸!qnxj g0k@hPpbq@bpq@  "bpbpLhl x.@LB I "D)r  "C E* *+ +,A$q@bpq@bLMhm @L$"7P//ppbҔB2@DD)r  r-$ tt`bZ"Xdp1p *r-'!`)b[@="Xdp1p +bT( bЍT!    " "   "" "2q@ "4ה  "D+r +Mct +*cpdt *bq@+9 +-@ał*=H@rbq@@=#"92P//Nfdv "4ה  "D+r @=3r *Lcpxt *|bpKGhl @=2 9+cdpdt +bpq@3tr-r *cpdOt *bq@ؠȪD(  +cdp;t +r D*bS bЍS "6q@bpq@@=2 9+q@2 9Z+;H@RrO,>q@@=2 9+;iH@rbpq@4=bpAx bq@bpcAx bpq@bpcAx bpq@!0dpI m b0dI e 03PpbdЍmPbpq@V@=S@=xA@bفnxi j0k@bIXl bI~Xm bɁD bɁD@ bɁDb>\ b> \` "bp"03Pl@ "=P//2>&$b:8@bɁDr r, ~ " ;,I X@-HX@ !` "bp"N=lnj "=$  bɁD030bddɁD,Ol b=k\rM0!b5eɁD@ ">P//b$ɁDb030ddɁDbɁD@ "?`P//~|bcdzdɁD@D0bckdɁD@ "?P//bcdHdɁD@   wb9}8h @    2@ )(W8xm C !0dGd ` "bp"03QHkI@ # bɁD 6@#r (cd5"((cd,$(bɁDrL 6e-Y`ɁD@ bɁD!0dGzm !0dGpe ` "bp"03Q|dЍj@bɁD߈1@b١nj 8m @ -de @DD1 0-41;kЈ-d"-kЈkЈ kЈ-8k @ +8w@D1r-c&l[0!-4d0khkp b p"03Qj@$L- Sm  qkp b p"03Qj $B *C-Vm U\"F bЍU\ #(4@e,/Dp b p2bЍm bɡ@[/  /"CbP//XVTZlNLkkkkkkߨّnj k0l@iP7 m @ k͑L   bT0cdQ艀DL-0c@eu4-7Z @ R01L2 cd*k0L1&cde*1 "b*p2bЍ٪bɑ L ߘQفnh i0ɁbEj @ "EP// LJHb6k @ /@  bDłb6k @ r 03D)!%*LłbŒbECj @ ^"EP//DB><:86420.,*(&$" ~|zxvtrpnlj +c-"+r+ 2 2  03D)!$Lł+6m +6 @ $r-  +! "+[ 2mFڋm:@r2  [ 2m%ڋm "4ޔ mp b p"03Rgp @:b p”3rJ 0$& rJ0! @3e.䉀7ł "D(GArJ@"Mbc0(łbCj rJ c@#LrJ@:0! 6e-łbcb5Q"c!0dCd ` "bp"03RXg*bɁmЈymЈqmЈimЈamЈYmЈQrJ߈!:١nl m0j@kP4@ r 232DbɡD0D1*cde#m "b,p2bЍ<bɡDߨQnԪ"03b2p"03RfT, ّnk l04m @ &"JP//R L  0.&R  |~NLJHFDB@><:86420.,*(&$"-cG!-C -c;"-"C b-ɑD-c""-C -ɑDbɑDJ  bɑD 1! "b+p2bЍtbɑDL  bɑD-cɑD  bɑD-cɑD-cɑDbɑD\ bɑD-1"--1$-B 'A $-1{!-C  -Q-K-ɑDbɑDL  bɑD-1E!--1<"-C B  -ɑD- -ɑDB 2@ --ɑD[ bɑD-ȡc"-C -cŲC   -bɑDbɑDbɑDߘ!n̤1C bЍb4 nl 5jm b@" cЍ4"5g4 $Header: hc1expr2.c,v 1.17 88/08/31 07:04:52 pickens Exp $MetaWare TWS 8.87CO-42 Variable expected.HC-?? Unable to assign function address; calling convention mismatch.HC-?? Nested function may not be assigned into a pointer to a function.HC-74 String truncation required.HC-?? Argument of type "void" not permitted.HC-?? Argument of unknown length being passed.HC-73 Type "%s" is not compatible with the type "%s".HC-?? "Volatile" qualifier inside cast has no effect.HC-?? Casting a data pointer to a function pointer, or vice-versa, may fail on some architectures. HC-?? May not cast a nested function to type "%s" .HC-74 Unable to cast type "%s" to type "%s".HC-92 Cannot take the address of a struct bit-field.CO-07 Cannot take the address of a register variable.HC-?? '=' encountered where '==' may have been intended.HC-75 Type "%s" is not appropriate for a conditional expression.HC-88 Expression has no side-effects.ّn\i j0`  "c "b .cb/ 0ɑdp k 0_)B b m l0b)$b+.βml@ !d  _  @  03TLba(μ bЍ_ m l0 "D(C0 F  L D0 B 0 f ``` l bcɑdߘ!)$Header: hc1float.c,v 1.3 88/04/16 13:33:44 pickens Exp $MetaWare TWS 8.87TR-15 Real constant has too many digits.nДN*6 0- p-5/0-p- .0 n>`0 " b"1>nԍ.0@r1#, an3!i0` 0ؠȪpZb221y  q؀Ȉpm gЪq}rdu41p(b#""M)  s!03c(d`?kr1 +c o0opoo`os/ bЍp dp$ cЍr1׍ d s!03cL`\bCi  = >r1 0ؐșpp:bp p"l+mܪc#!bp#!03cp`'p c p#cb\r1a\ppZ[bppZVbh!ٱnm0k@<l bЍ<m @ r@   .03D)r ! r   ɱ8 VbDl bЍD I ɱ8A ɱ8@   ɱ803D+r ! r   ɱ8 bD l bЍD ɱ8 ɔ !ɱ8߸1CB 鏤!D 鏤!鏤 فnj k0;l N@  Nc@141 p c"!؀ȈD(Θ,bB) bE i b0h rL@<01! Qe Nc@141p c #ANɁL߈!nԤ@  "1JA2F $#b@, n@Ԕ  "1J1 $#"J2b0, an 5!g0h@2Q1ub! "3!ؠȪp b4 "bu!cp ts!p cp3 "m9lЪͪc b؈}p#!ac`k q110 #A@ b0:@ b,?@",5YA$p pp#r03c @D8@D8bpbc`CŲr'0m bc`.Ų1= "4ܔ b0cЍ4# 034!@cЍ$ bЍ:Mm !:Ff @=9 2!@ r r&  "4ޔ b`B\0!bЍBVp@=4@   b( r r& p b pA!T0<9,m G!0<9,e 03cbdЍ]s0h`f417m 04 Ў1=p b p"!03d4]21bdЍ8Ų@ 310 / -b0cФ@$ $p b pbaA!T0<9,l !01!;! =!.0?!.4!@!.4l˪c  "bp 3!F4!@GHp b rB0380A$sAPF!PHj # p b rBs!1H, "1 Is!x5!s!c p b rBu!PUd܍J0 .!=!w1p cp# 00APZl .4`  " et!T"1R0d c8aR}! 1Vb?9!V g8_l @<4", !V8Ql !V,PUD9rL@<0!y! 9@<6 :1: 8(g s,l` 0>1-Œ "1GL# ;!03db[jp +z 03eb[x쉀=p g`1b``rp%aXz 03e@b[2pp!;!`1 `rp` 1/b`7l r,6! @  03e`b[pY, "03e\0r,6!@ Ű "D)6!U z!(h!Uz1'zbp=|g U w1p cp# U0cp~Q{Al U  y!(hg @ E'Fmj B 0.4`  " `*0cvAe48<  5 "1F@)#%f |!ؐș1)F! $)F#012y1|!dvQ'88@ C*G5<!.0!@.4!D bx!aX&@ hA)$Header: hc1call.c,v 1.12 88/10/26 10:18:35 pickens Exp $MetaWare TWS 8.87HC-?? Argument number %d not named.HC-?? Parameter "%s" not supplied.HC-?? Parameter not found or specified more than once.HC-73 Function specified with more arguments than its declaration allows. HC-74 Passing an argument of type "%s" where "%s" is expected.HC-?? Argument of unknown length being passed.HC-?? Prototype causes non-standard conversion from "%s" to "%s".HC-78 Insufficient number of arguments to function.fcn "int"HC-71 Call to non-function is attempted.HC-?? Iterator being called as a function.HC-?? Iterator call required.HC-72 Call to a function returning an incomplete or zero-length type is attempted. ٱn:!l k0!( @   d .0xKA*.0yeK 0ɱ8߸$Header$MetaWare TWS 8.87ّn\:i ZgؠȪt-Pu  5 v*! 6*:) I@ %Tk) ޽Yc@d4F c b0d4c b-Xb:i   "h$ɑdɑdߘ)ٱndm k@b04hl bЍj.c\@d3d g-h >> R, N-tFɱd߸1'MetaWare TWS 8.87$Header: hc1proto.c,v 1.1 88/04/07 16:59:33 pickens Exp $, %svoid void %s %s( ); ١n;!l !, @ 0ڽڡ. @`  %snДN*6 0- p-:30-p-.0 ٱnk l0m@>0 >`0 " b1>!"ɱ8߸1anh i0>ؔ0j4@ "ltq>ؠͪ `0k NkJ:@*ݑp@ 9@ pwl*?9"aL*Ac"*f *#e @ >>bpd` aLh!$Header: hc1alias.c,v 1.1 88/05/03 09:00:05 pickens Exp $MetaWare TWS 8.87[alias]Dumping %d alias entries [alias] %s `%s' aliased to %s ّnj i0b8l @  *ik ^*# m @   Y*" j bck Im@ r *" @ @ rҤrbЍMؠΪD:cm0m   Ҵ kذλD8b+ bɑ@ߘ!ّnk l0m@Q ɑDQ R ɑD D ɑD1.+(%! @   "DP % ɑD 4 +N "nP//fjr~trdb͑D)ؠȪ:*U :) *I  ɑD YbcdЍ*ɑD Y0bcdЍ\ ɑDߘQّnm i0j@kP0340 ɑHRl bЍ]m @ "oP//$^~ ֈ03zb   H-!oi -/l -!aj - /k - !S@ }@ yF  s<bl ;b, bB ]0 1 1 ɑHuA tq03zbz f  41H- j - F F" l @ * @"k ,W!D(A<'  `@ ]01! 1 ɑHA iB nH0 cde ɑHԈA,iB nC hH0 cde ɑHqB rC tH0 cde ɑHA ouB spH0 cde ɑHԈ\A oWB sRC hMH0 cde~ ɑHӈ9A x4B p/H0 cde` ɑHԈA aB bC s H0 4cde= ɑHA oB gH0 cde  ɑHՈC 103zb  H0 cde ɑHA aB nH0 cde ɑHԈA aB nC hH0 cde ɑHVA,sB ipC nlH0 cde ɑHcB oTC sPH0 cde ɑHt@=0( /4m * b! "p bp")c 122cp ! r1 bЍ/8m  03(L<  + 03`L0#Q6`#!7d!7h#pb "!p b 03bKD1bKlr!P9!!pe @DD0 6td 1PU0bxC|  "̍e J.T0֍>8H!7oh qXx$Header: hc1for.c,v 1.1 88/10/26 09:40:13 pickens Exp $MetaWare TWS 8.87_Yield_%dHC-?? More iterator arguments specified than required.HC-?? Fewer iterator arguments specified than required.callHC-?? Iterator invocation required here.breaknl >0 3N$4 1- q-31-q-.>`0q-b01>4 ! nl >Դ0 3N$4W 0- p-30-p-`.>`0p-b01>4 ! n91:Am % -' A&03Q( &03e@d!$X cЍ00 ّnk " p ` s݋<=`b`b B`2\b PL@ .cɑ@ =lbefɑ@=tbZ̮P N ` i >c =xbd7д C$4 anf Ŕ " .Up.Op. V@i IA.H@pJAcF.5p.E2:.$)p3.0"p.8p&.Dp.Pp.Xp3 a m r v Дa.`/t.Wx.pдpؐș  "<lxbp"p bpb0 2|j .cd.   .cd!qдp ..pp)jݾݾؔ$ؐș дbЪ"q bp"̠Hش q)CݾݾŔ ݋<--- " ".Ȕ 1N03@5.gaLؐș {hnЍɽp 03bxp-@p *c 0 ّnk >0 ^ R@ /$Jb4i  r 2 <?ؠȪ<*n2> @  /  \ *dZ. 4#r 2 ɑ@*cDɑ@ɑ@ؠȪ<ߘٱnk0.  m>0p+{( 2,݋< 2pKb݋<-.W( 2,r, ` 2 "!|03tu 5 v#! 6#3*>@ 9@D@-ȍɱ8.f 8$ . "$ "1 56ɱ8ɱ8߸!$Header: hcskelbe.c,v 1.7 88/05/26 08:48:11 pickens Exp $MetaWare TWS 8.87%.*s%.*ld Serial %.*s.. %s %s is not a recognizable machine designator. MetaWare High C Compiler R%s %s(c) Copyright 1987-88, MetaWare Incorporated1TRACE_PTRAOTRACE_MACROTRACE_PREPROCESSORTRACE_PREPROCTRACE_PP#undef %s #define %s pragmavolatilesigned\ $(%s)/%s %s %.*so: %s: $(CC) $(CFLAGS) -c $(%s)/%s >>>>OOOOOOOOPS -- internal error; get help. qnÙ`m}bpcp h bcp c 42`b ȴ l ސ d bqHx$Header: symtab.c,v 1.1 88/04/01 16:51:31 pickens Exp $MetaWare TWS 8.87MetaWare TWS 8.87QWERTY"#8 #`nt (03`.1U ,1 n.nА#` m.c-ܴ0 %.ؔ N 4ߥ .= ..؍..c-"b$>0 ٱnk l0m@,!$ ɱ8߸1nm * !$ 0 nl m0,mҤ!2 4! ٱnk m0l@ I¤!23 ɱ8߸1nm *'!$ 0 nm ,!$Ҥ 0 ١nj k0l@mP >!23B ɡ<ߨan.> A , nmPRJUP__ZXb`l".:>jxR(<ZXVDB@><:86420fx   ~|zxvtrpnljhl|$0@Db@0$0$02b>q" 02b>q"$0D HD1 2 b@0 /0 @ !00 @ !00b$0b$0b$0-$0b@-0b@-0b@-0b0b@-0bc@0Mdb@0Mdb@0Mdb@0Mdb@0 m< 0b@cЌ w0 W< 0b@cЌ0 A< 0b@cЌb00 *< 0b@cЌ 4b00 < 0b@cЌd0@Mb@0M! 0M! 0M! 0M! 0M! 0M! 0M! 0M! 0M! 0M! 0t(03"BD8b> bAʋ0A n(  0 }{vq\l a (RpN "D+2 >=< "D+28`/2 #"t(03"BD8b%P> bA4  B DPOOR.q n:QRlt(03"BD8b> bAɐ,(! ,(! ,! ,! ,! ,! ,UP__`vA ١nj k0l@mP P!2B ɡ<ߨa١nj k0l@mP L!>"2F@ ɡ<ߨqanh i0g@jP( k ) l !L0r@ 2rK`@ p'щ3aѤ.ap&:bpPrK$a``bp2P a$ % ( ) Τ``@ w@  rL 'rL@ r ' &:PerL$ _( Tщ ) !L0@ $ )   % (  @ $ )      $ % ( ) baLhQّni j0k@lP b @4ɑPb @&"ɑPb @ 2!"2bɑP"ɑPb pm @ ;rMbP2-bɑPb Vm @ W;rMbP}2-bɑP "D/ V-ɑPbɑP "D/ @-ɑPbɑP]bcdK"-]bcdA$-bɑP >"&P//VnlzL e   -= 0De s ;bɑP- @03P?? !   &Ȑ%Ȑ(bɑP &Ȑ%Ȑ( "(P//<80.,*(&LJ}y rnjfub <m @ Ah"P//b`~|zxvtrpnljhfdb`^\Z$4hx@Pr-2 bɑP !  ] "cd!-] "cd"-bɑP6 bɑP5 bɑP8 bɑP7 bɑP: bɑP9 bɑP< bɑP; bɑP> bɑP= bɑP@ bɑP? bɑPB bɑPA bɑPD bɑPC bɑPb #m @ ;s]rM 0!12b2-3=bɑP "D*-ɑPbɑP "D+A=2-ɑPbɑP "D*]bcd !-]bcd"-bɑP "D*]bcd"-]bcd$-bɑP "P//trpnljdb`^\@>bt@r hde 3dɑPbQ@ ,r"r"0de 3dqɑPb)@Y4ɑPbm @ Cs]rMA= 0!12b2-3=bɑP ) %".P//420,*(@$b`N nl(<! ɑP "D/ "D/ߘA١nj k0l@mP*ylB!F"$ ɡ<ߨqani j0k@lP)"*P//&$" 86 r p n.,* ~ | t Z l j h f d b ` ^ \ Z X V T J H  & $ "                  b$g bbЍ$h @ "P//T   ~t W0Q.cdeЍa`@(#;rXrGb(2'ba`   `@(#'_$@rB =W0 cdh bF$i bЍ@$r"c0Y0! cdm b)$@"0cdea`0 1 @  !2 DrXbEck0W0!bcd{a` @(#1'$@W0 cdZW0! cdOa`@(@()"P//f$B0.cdea`0,cdea`0-cdea`0/cdea`bc$h bbЍ[$@23@ $(N$@]X0bcdX0!bcda`3;rRrHbY(2(ba`. )`$bbЍ$h @r(18;  ht!cW00! ncdega`r(!cA00! pcdeQa`b$f bbЍ$g @r~@@DbФ0p@2ba`@;rFbe(2&ba`i&$@   &r$rr"c0   &]$rr"c%07   V0bcdV0! cda` c0V0! [cda`1b7X )  \@$ %U "D/ :m@$  % ```t!1O00! cde_ @&cde4ba`t!1+00! cde;a`    @$ % "D/ 7m@$ %r(cЍ00! cde @&cde4ba`r(c00! cdea`bK$h bbЍC$@"r ba`ba` ba`ba`@.r !ba`0 [cdea` ba`0 [cdena`b$h bbЍ$@23 r@ u)"~P//hnȐ6$ %~@@DbФ1p03D) 00! [cdea`$ %~@@DbФ1p03D)!00! [cdea`yȐ5trq3 o) j"rP//hlZȐ6$ %Q~@@Db1p03D) 00! [cdeЍa`$ %'~@@Db1p03D)!_00! [cdeЍoa`Ȑ5 "D/ <:)(!1 0dQ#8 s  ) "P//Ȑ; Ȑ<Ȑ>Ȑ=kb$h @bЍ$@;rRrHb(2(ba`bbЍ}$g @bs$h 2~@@DbФ0p@n 2(3ba`@`sXrHr's70!112bc<2(38ba`b4$h @bbЍ($@7srRsHr8bQ0Q 03D)v0a` h!b"2  a`(h!"  a`@(@(@(@(@( @( @(@rrr]@Z@bsbbbbhQ١nj k0l@mP #bЍ@r !>ɡ"B$ ɡ<ߨaفnh i0j@kPD`Ъ l  !2L3 (ܤͱH`j p )*   ɁD߈qn.n.n"b$Header: trees.c,v 1.6 88/08/31 07:23:45 pickens Exp $MetaWare TWS 8.87init_etree wasn't called, dummy! %s: TR-02 Division by zero attempted.HC-?? Unsigned compare with zero always false.HC-?? Unsigned compare with zero always true.HC-?? Division by zero is attempted.nlb>C0d d >b0!#!bR-P>#  @   O"+Gc -l-xҿd%nm NAN@ %. N ,0̗ .02..ͥ.Nb@!$#b c * C*0 nm >1>0 $.| N ,6F .|02̬.|.|T.>b0!#!|b !"#0 nm0Mc@141lc +-Bb@0! ١nj k0l@ ;m   2ͤ" ( b q3 t q+-"\ -ɡ<ߨ1ٱnk l0b"` 0]Ab0!""  NT` m@ r  cЍyɱ8- b0m 2ͤ" ( 3 h +-"P j-ɱ8߸!nB TDPOO62#" ,2#" , "D(B0 "4,C0 ", "6, ",F,! ّnk l0` 330]|b0!RU m۪Hb ",,bɑ@P @͞DbP!%#d@$1$+-ڤoo  ɑ@bPc@"` >Hc "ɑ@TPb0j  2 "Hc #"+*c 121Hdc 3<"ɑ@ߘ!nc 121Db"ٱnk ` 0]e0bP!BD bm @ .<`@l@    b@cɱ8L@bP\l  "b!+!@b"` . n0f ɱ8s ߸!ٱnȴ#  0!ɱ8` dD`@^l`0dD`@m@D4ݔ@ q@LB Ip@    r r, ! ɱ8@ D ɱ8ɱ8=, ,L@ -L@+ɱ8ɱ8 ɱ8B DPOOnl|h`@ @L@ ߸!n` Nc3`0>e@P"/ Jb!/!b$b!/#b#R 7 b!/!b$b!/#b#R %Fb!/!b$b!/#b#R b!/!b$Bb@!$#b#R ّnj k0  !ɑ@` Nb"` >l` b"` m@-@   ɑ@bd bB  ɑ@͈!ɑ@=, bm bȴ)ɑ@=, .= ,  #s  - ؍ s , ؍ +ɑ@=,Hɑ@bcXɑ@ ɑ@@  "ǂP//"ߘ!nl m0  03圍M  03bA  03b5  03b)44! ّni j@mPb0 k  k V D >b@ȍ(e+   '>b@ȍ(R b4m + . c[dЍE b k  >b@ȍ("ɑ@ɑ@ߘAّnj k0l@bc@ȍ(ɑTp@- u"TP//Ntx<b(03bgrLbcP,ɑT<b(03bJrLbcP,ɑT<b(  03b)lr 803b0!#!bb! #` @ ؐș9b9b<03b2 "D) ؐș9bؐș9b@ 9b9brLbcP,ɑT<bN( "D+r 03 03brLbcP,ɑT<b%(@  ؐș 9$ؐș9,bj  bNc b@ȍ&94bQrLbcP,ɑTP<0 0>b@ȍ&<b(>b@ȍ&rLbcPz,> b@ȍ&ɑTb(>b@ȍ&orLbcPV,ɑT<0 030b<b(rLbcQ5,sM m034bЍ10bc@ȍ&0 >b@ȍ&& 03b@ȍ%s-= ` @-RbY4>b@ȍ%s-- /- S '" $7j @ > b@ȍ%: bAP&4>$b@ȍ%@  03@b)  03b@ȍ%bcdФPɱ D߸A١nk l0m@bP!%!lb "\Hc bdЍ@ #>bdЍ$bcdЍ$jbcdPPKbcdЍbɡߨA@Ano `0e@.cd,1 nc 121\bb! #Xb١nl@j k0b!*!Xbb! #TmP "Dc@-' ( @D\bc"h 03'CCbc"Q.!. #. N%0Љ .5....$c !#"# 2#3#p q#)1b@ (1ɡ<ߨ!n $N` e 0 菉 0  !١nm j0k@lP.!. #. N x0 .0(l...Ўtbc` .c  !@Dc!t!zɡ8tN*CN)C`@c%$0t1(1z0 `0b(B4 bj !02dm03,0!b0cdeЍÉN$ɡ8t.NߨanlPi j0k@.h$`m{q `fD(Avsrbcp`; 637 cpb"2- r]-0 123cd "-   "D(" b#F  `   "D7#F  `   "D6#F  `  q r U2 s `N3 b g b h "D;r g sF  `p q-`  &r-cp"2-r]-0 123cd"-q r 2 s  `3  ! "1 ) '-mb PULPUTcdbc"a\a\r`fD(Avsh1ّnj0i .P$HlbYc r,!2,m bk 62qKTU;b0!#!bb! # b@ + e + @eb k q ` .b"` . br 2 ɑ@ɑ@;;ߘٱn>@b0$8l1>@ b! !bb! #mq  s,r,F<`0 PTpM@T0]dPq\VU1ذȻD([P NeS% cP_T@E0M% OeS5cP_T@E0M `   2 '`  2 &  < "\OXɱ8ɱ8߸nm0c 121bb! #b" cЍc 123@c   0b00! n<Բ0b* , n!"/ N^` c3`0c@  / nԤ , ١nk0j Ѝ 2bcX " pp=0qq=0 2 bF  @Dtbc m bbɡ<ߨnc 121bb! #b  b! # bn b! #bnД "礍,.!. g. HN$4L.>1>0 '. N @0L .0(FP..T.>.? 4c! Ӊ &Ӥ2%P.ЍT.."b !0 فnlPi j0k@.ܪ"m b}h b02dRd "cq >А1>̴0 %.Ȕ N d0W, .0(0..ȍe4.>`0.d! 1&  b&2 =!=Ɂ4x߈1nm0  0"  0! n  菪$bn"  菪$bnl >b0"m1>  "Д >> -  " 4 4 -$b03 &2-4 nԐ 0 , nl m0.!. $N (8T..0d..`..#b 14! n#bn >230(菤 n " NBc 3c1Cnc 121\bb! #Xc0e!,r#03D(A #,!!, N#,O#,r03D(B#O#,#,!, "D9,#@,p ,@  "jP//&p!, nԍ 2 ", ١nj k0l@P bct pm 2ͤ" ( 3 \ +-b}bc " bcWq D bɡ<ߨAn0rK@DD)D D@)PUdPAEAb0 -. N Ȥ>.03L.X 02[ ..$.>b0##!k "# "1(+   B     @  "P//       '!0Pd_(m b{,>PUdBDDC,0! 1bPeЍm0> b04>b0ɁX߈1'ٱnk Cl ,7m ,Q@]BL>0r 1 2C 3 45!b00U ɱP߸nc 321b nc 321bnd CBAb0 2!nN.AN0{, nN.0|, فni j0>.Ȳ`0m| ,D@D@03 hb "h~+kB @ #C r0L $bݡp Ɂ PɁ P߈!$Header$MetaWare TWS 8.87[v] var %d is %s %s %s flags=0x%x [v]Dumping %d var table entries [v]label table size = %d, lit table size = %d ّnli j0k@lP0>b0 .. N 0.03N.@ 0C...>b0"#"m"$ "1'-0 0=`0 %=&=  % *b l @ s 03[$ @ _+03bL$  % (l ,A  &   & b,"   % %  b8 l !0Pd 0e > "0d&4.8.ɑTߘQ%nl 9m - " ""@RBM>0r1 2C 3 4 5b00TLnc 222b$nc 222b١n>p0ɡT.` m͎zF<3 @DX <p,D%5<p,D:+7  <p,@DD( "4ޔ 4 <p,@Dp (.,0sj ,7k L!0P e "0cd%ɡTߨ$فni j0.>ȳ` m htF  !G  "bݡp ȻɁLɁL߈!ne N@ b@Cb@,B @.> AF8 , nԍ|#, nl LbЍ"x #Ѵ 4 $Header: hc1funcs.c,v 1.2 88/05/03 08:56:33 pickens Exp $MetaWare TWS 8.87setjmp_setjmp[f] func %d is %s of type %s lflags=0x%x HC-?? Static function is not defined.HC-?? Static function is not defined nor referenced.HC-?? Static function is not referenced.HC-?? Function called but not defined.ٱnk l07@  = =$b&.` b .0=(bd\ɱ8ɱ8߸1nm .03?.cЍo0 nd e0.03,! nm d0b0ȍe .03dЍ!>nd e0.03,! nm0d 03$bbЍz̤*c0 ٱnm@d k0lP034bebЍP*cbcaɱ8߸1nd .03@u, nd .03L], ٱnl0` k@.=d@b蔰 .=1>*ɱ8߸!n.Ԕ ,, $Header$MetaWare TWS 8.87awmodule '%s' @i %lu '%s' i %lu '"%s"' resolves %lu %lu change_sref %lud '%s' %luopen %lu close %lu u %lu '*'ne0!!!2A0! فnh i0m@bЍAj bЍk Ƞ p>var filevar count botch: %d %d<>func count botch: %d %d<<>>alias count botch: %d %dne00!b1D\0! n!! p=p 0q#B! 1#B!p=p 0q#C!1#4C!y4 ٱnk l0 p]bcPp]b1dp]p 0q%!1%ɱ8 cPAɱ8߸!فn>!?1A@QDh >mȱ bA@@ %  "P// dZ:~ؐș)\%D@ B)d;2338ȍD@ oG)h;Da)l;DW)t;DM 4h )tcD;ͫ)|cdD)cdD%  "P//X*&$" ^X| r\.@ )DɁHɁH߈Anm0@  "@ "  0@D p00! nĔ <٪m @M$֎"P//r<VHrpnlfdb`^\ZXVTRPNLJH<nl @><:86420.,*(&$" ~|zxvtrpnljhfdb`^\ZXVT(0~"JFDd@>.,*(&$" ~|ztrpnXPNLJHFDB@><J ]FM.02E<03 Mb@pM b9+|bA<n p-0 1 0 ّni j0k@lP03b$ 0- b(.0,32@4 !DH0.0E. 0dɑ@ߘa03 p0#bnl0m@.0ZdeЍ441 nԔj.1,, ٱnk0l@mPF0b0wde~ɱ<ɱ<߸AnԔ .0\,, nl0m@.0Vde6441 ٱnk l0.0d bЍ/0 nm >bЍ/0 "03 b2p"$Header$MetaWare TWS 8.87HC-?? Too many unique calling conventions._CORRUPTS_FLOW_CONTROL_MODIFIES_STACK_POINTER_CALLEE_POPS_STACK_REVERSE_PARMS_BY_REF_RETURNS_POINTERS_IN_ES_BX_DEFAULT_CALLING_CONVENTION_CALLING_CONVENTIONn ,L0 /J,X0/N,d0/Lp H=q-c p-,p ,p1$ -/ xc b@ = b8 W4 $Header: hctog.c,v 1.1 88/04/05 11:16:43 pickens Exp $MetaWare TWS 8.87TRACE_TYPESTRACE_FUNCSTRACE_VARSWARNWARNINGWARNINGS١n;!j0ذȻEx P bc@um  @ =9*--{!LP0 "<*--]{!@Dl0 bɡ<ߨ!Ф@Ҕ D'@o -+0 '%@ !b U 0 9 L _  l u !@Ҕ "D)" @ !$0 ! # "0 !#bAФ"@ҔЎxN@o b_@o MK@o 970 31@ -+b U  0 9 A F L _  a f l u ّ!@Ҕ "D)" @ !$0 ! # "0 !#bAФ@Ҕ B%@o -+0 '%@ !b U 0 9 L _  l u !@Ҕ "D)" @ !$0 ! # "0 !#bAqnm k0l@hЪ፪ؐșp bp =g ! + ,p c03c0]qLq 03bЍp br"cpd g B@'#Qbpcdj Qbpcdx j Qbpcdj C 03bЍMbqL3P??>x1$Header: hcileaf.c,v 1.3 88/10/25 14:54:47 pickens Exp $MetaWare TWS 8.87CO-119 Value of escape sequence exceeds maximum valuerepresentable in unsigned char. CO-117 Unexpected character '%c' follows '\'.HC-?? Character constant has too many characters.CO-108 Integer constant exceeds largest unsigned number.nԍ- "03d, n03Ԥ*, ّnj0i k@lP ɑ@p @D@DbcpB -@ b i "bj p-ذȻ;TdR 7p-;XH 7  QDA@p=b0c6p=*ɑ@ߘQn:!;1A?Qk l0m@ "$ 0@1!cdeЍCɱ@ɱ@߸A$Header: hc1err.c,v 1.1 88/04/16 09:43:37 pickens Exp $MetaWare TWS 8.87| %s: فnk l@mPh0ცؐșp jb0I"p jp 00Hr*0 ذȻ7ذȻ7dep ɁH߈Qn8!91:A;Qo d0{zQ0 c0A n8!91:A;Qo d0{zQ0!c0A nl0>A{p-cRp=*s4! ١nj `0k@mP!0d l b0de 03x 88bdp ɡ@|ߨA@_$Header: hc1terr.c,v 1.1 88/04/16 09:55:48 pickens Exp $MetaWare TWS 8.87HC-?? Type "%s" is not assignment compatible with type "%s".MetaWare TWS 8.87MetaWare TWS 8.87nԔ8 `22b>q" ,`2bb0.,! ١nj k0l@m b`- b-`Bbc@ɡ<ߨ1@  A! ```0 0C!! ne b1D  0p!0 ne00!b1D0! MetaWare TWS 8.87MetaWare TWS 8.87nl p- DMcƇ E-4p-  4 ٱnȍT J ɱ8>? " .TT.DdG!>?ذȻ N 1XEt0-+ЍC\l ;b`k  >$b@dp-0Aeh  >3/ 0.D2L!1T0>@# ". "䉀. "쉀.$ % / 0>3.DdLr!* "< "4.!.A>D2>DaTRT "@.@A!.BH.P>?X0;3T "L.ABH>?!2 3NP??86fT*(hɱ8!```߸$Header: mapping.c,v 1.1 88/04/01 08:58:21 pickens Exp $MetaWare TWS 8.87rtflrt386387s387r386s386rMC68020mc6802068020vaxibm370cms370370amdsamdtomsmachinesparcebcdic_tabler0 9 """鏤 A ```Fa fne @E\Q@%QbHGLݤJڤMפIԤKE@%0 9 a fA EF BґQd @%0 9 a fA F DQB@%0 9a fA FP@xPx@@%0 9 C@Q@%0 9ZPTEPF' q!K"j0 7\_aI" " jP//xnlnp|zQ" b@BC@" QbP0! nȤ@"!@" 8 cЍ@b8nԍ{, $Header: extract.c,v 1.1 88/04/27 14:23:24 pickens Exp $MetaWare TWS 8.87n ""0Y/^p H=q-Jc p-p 0 MetaWare TWS 8.87TRACE_ARRAYnq-0k1-/p c b 0-0 anm 671ؐșIP3AYFډD4QؠȪ 0 ذȻp+" @  +*5!p z(, q rZ2 3[p ( t s[rKq;p+0. p*c 1p cӴ P  #r: "2m ba l1049B06dЪAv9c4Co@tQ}9c?PScp4SQ~9c5P3opeU_QUU 0S~q9c=P37SsAT IQp9c5cd`Au9c4P33?7n$0|00ń0{!0|!d0}!˼0~!T0!0!@0!DX0!H0!L00!P80!T0!X0!\x0!`0!dL0!h !lm !p- !t !x !|, n0h000{!x0|!0}!l0~!T0!0!@0!D0!H !L !P !T, nd000X0{!0|!l0}!0~!D0!0!@l0!D0!H0!L0!P0!T0!X0!\0!`0!d0!h !lm !p- !t% !x& !|, n(>8>> > >>$>0 "⠍P,")P// !@D8wc30 PP^`0 PP `0 PPvb"` PP03#! @038F H A$فnh i003?Ɂ db!8y bQPb  'c L x b 1des x=b:@0x9tl@@. bAAb<@.bAb2bx b A  ;"+lP// .<JZX03@b" |cv *cn +cf 03@b` x b @"cN1de b 'c5Ɂ dɁ d߈!1@D8}cP3` 01~cP3"!"" 02 ٱnl0<8 D / %E" "!q]eRPUS]P :p]e_Pݿu]e[PUU?S*$ B @"[=F "2b !#!ɱ8s]bRP" #ɱ8ذȻ 0+ ` teP "` eP Q%0+ #ɱ8P !ɱ8߸1 ""8MFCAr dQ MDB-PBp-bP"菪ApbORdPAu-b$P""?#%b"! ""nq-0Y1-/p c b 0-0 ٱnm ذȻX ( X+p p X+ ```!p b ɱ8߸03X(03X#!pb"qn>!ʑH "ȍ] ͡L03@b6͡L 4~pw8`l ,!u bP0?bt'* L03@ b c]פ*cTqHx!١nj k08 LJ bc@/# bc+ c%  Lɡ<ߨ!ٱnk l0vp-cp 03@$bp-cdZv p *cɱ8߸ٱnupذȻ?;`bf|t s\rLqA{L-p0cP8qn!Rg "ʔ "(d ōޑ4k8,'H2! ͽh4 ؠȪ` d pr4q$sDp 4 p 03A bbSp *cbq``cP/sqR} "03@dpp <Dsbp!s bP"3! # i/4  ޡi#/qRq,b lP" 211,P2 91p,b#P"!R1R1u,b#P""? --p ) C qR "03A dp qR3Α/ΑΑ)CbLxn "(03p "(T/, anpw*@  Y$ؐș( "x( ",PŠ,fذȻ  t sYrIq9p)0M049bd`X"Ѝ^(X)"q bs 0@ 9 0 sI)8 $p 0 [,fap"+p,<403( "p0p  "p 0X)"q bs 0@op,$X9 "2q c@Dp3k@W@ "$q9r3 ".D7H8m 5bL"# P*.>Ayr, "8P//ZlbaPhan( p-"؀Ȉ8@  ",Ű "*  -2!03pś3O`@p=b"j D T! "* "q=r3 ". a\XBPeQveoxF}Xe_PeT~Xe_PeoeU_QUU 0V:XPŪqXeZPU\uXPu `qpkfauxgvPww?|Sܱ( XMؠȪp @ p XM@```p=Ab403* X q-bs 00 = 0 sM- ?@ s=r-Er!03ps7so뿱´ ZūktkP{| p kkP{|DګګoxFv(b/p(Ż0oŻK(Md1aDAd4D@ŤqrdQd Eb뢪AdBdAuXdTPDD?O bqa( "XMB S "XMBp=PU*Ab4 X q-bs 0P bp!!wbB@ ,^$X q=cp3LiX q-bp2b@ $X=2q cp3Mi쉏q (4ŢoXPxFv(Dp=XMb/L범܍0Ųp=XM   2XPoxFv(b/!XPoxFv(b/hnlp=bpq1p!! < " 鏤 03X#!pb "LbP"鏠.n "(03p, n̍o7p ?=Xb "ʔ 1o@Dp =lbo @Dp =xbn@Dp =bn@Dp =b4 nФ?-č{/(-Ѝ{c "܍| -܍q$/.N 2(0-N 4(1-Ѝ,0 nЍ=p-q-S 0 nԤ "  "ʔ Cv , MetaWare TWS 8.87-list-nnt... -%d(syntactic) unexpected symbol:FOLLOWS: EXPECTED: PARSE TRACE. Top state=%d Token= STACK:ACTION: Dest=%d Prodn=%d RPL=%d LP=%d q'=%d Dest=%d NO TREE PART NODE=%s (#=%d) BO=%dLookahead starts in state %d Lookahead -> %d Lalrk lookahead returns Parser summary: %6d reads. %6d reductions %6d unit reductions. %6d was max size of parse stack. TRACE_PARSEPRINT_PPO١nؠڪĪ!q=ybQPxb cpP\ '.> At`qMx "03Ie dd.X0 urhɡ<ɡ<ߨٱnk 1 b F   F, sa N  Hb   Nܴ "  "⠍p ɱ8ɱ8߸ٱnp-l N2~030#-p]E@ p#AL PPp]n@eU_b Rp]e% %Ap#L ɱ8ɱ8߸١nk l0m@jc@v803I8b@5< .> @sbwc@㢩bD* \ ]bx<H-TbxaL-Xbw;@-Fbw4@-Hbw-@-N J F LbxH8-bx7L9- bЍPbx*L6-bx$L7-bv@-DbxL0-bxL1-bx L2-bxL3-bwL4-bv@-@bwL5-p--PbwL/ bЍTbwL:-bwL;-bwL<-bwL=-bwL>-bv@! BbwL?-ɡPߨ1n8 ] 0-TF-X@p-;q-6r-1s-,t-'u-"v-w-x-y-z- {-|-}-~-0 ٱntk l0 \@ ݐX,T<X\ 0 1 2 3 4 5 6 $7 (8 ,9 0: 4; 8< <=> N? F@ HD DH @L BPdp p,|,P bpb J F L ]ɱT߸1#١nj k0m@I<L  bcФ@]#<Tb  bcФALbi! l cdЍb-XP"`   ^ɡ<ߨ1ٱnk 8,T0\@PI=` \T@P\Td Eb|T \ =hbqTɱ8ɱ8߸MetaWare TWS 8.87I was entering the Symbol: %.*s ---PARSE TABLES---SOURCE.2SOURCE.%.*s(reversed)nm #mSb-"0! n"mN, ٱnk 8 LJ bp  Lɱ8߸n:!m@*  !(038@D@PUH0q 8@D$ " "(d ABAdD ( PPU\`d (!nԤ0, np 03rXbO ""(Vp *c "` Y00 ٱn,T8 D ɱ8 !q b RP" P 9p b P"Q% R - N N P,N ,H02,H5  P,Np c P3! Hb 2ɱ8ɱ8߸n-T=R Tb@!. "PU "A@`Pc p#` $0#03ƄbPQ00A%`PBc p# ٱnk l@=R-0@ N2 PN 32y-H03Ƅb q L-N -Hb" L L-N L$-Hd(bɱ8߸1nФЍ(_ X  ""(U *-0 ١nĤЍ oэQi RY ""(UYh  "  b1SR4 !V 4ܤ VC [n 'bT } Q S$03A(b ' * ""(,`  "pb ". эQ ""(Ubɡ<ߨqng " Dؐștp@ :ؠȪp 03rdb\kḪp b qBp2p bJp *c=dp d pq4p$rDp qHkḉ窲x" ! ' ( ) 03 "XPdّnk "xX2 d0 1 "b#ª1pb "bcf/03# @C;Mj t)jJxMjDbc@t-jd Jx` "c #`b  bc@t-jB "t /ؐșp ؠȪrD:8bd Lp)cep :DbL-j p *cQTMjb@ɑ@ߘnЍ! ".Xc xp-~0-0 فnj xX -d  "b벪p,bb -j2 "t /؀ȈpؐșrD9Hbd0p(cp9\bt0-j*p*c8=j ` 13=j0oX ( X p- ip-X ```p,c " #ɁD "")`X "( 0-d b-d  "b벪p,b벱( "X  X p,m03b -ɁD1 ɁD߈nm D! bЍbЍ8! "2#! 0 nl "t 4p 03rbp-cp *c b-j!  4 ّnX ͭX! # 'ip b "L|(nŲ p b "Ln( j X ۤ "t $ Xp 03r NNbp *ci `bɑ@ߘ١nk0c 121mD (`  "pb""0 Q  ؠȪ\P b "p b"" 0ːQ  ɡ<ߨ!qng Aؐșyŧݹcp p bpcЍB9y'(!rx@ p p@ 0   ݹȤp,r qHŢx"(PU% @D` cE 鏐! (%%n ^ (03 `  "pb ". , \ (,"(Q\/m @ (Q\4 ^ ء( @03#! ϔ  Դ A$١nk ~  (PP b ,,p=# ϔ0 `  ", h  "`޼ X  ^ Ĕ aؠȪp ذȻrD;b_,΍JpMp ;bP,΍ p ;b@<p b Lp*;PX 0 1 2"C p*;̍p:*o0 ,<pqS01RrsS23RtuS45Rɡ Hɡ Hߨ! M"RUZP%%$ L\lFVf "P%&03X\  "^ "P%& "\^ "]^"03 1 # ! " "  nФЍ "0n (0 ١nj  "t ?ذȻp+rD<>bIqbz qp <b*p =hb}t@Dp+<DH]Xbb bF  "0A ɡ<   bv ɡ< "&"(% bɡ<ɡ<ߨٱnk +(Qɱ8X,+!p b"H2p-Xp= @~X,p=+"q bqb0c`ɱ8߸ٱnk m0 "  p,rD=~Pp,rD=~@bp =$b~3ɱ8߸!nd "03sp~, n=0 M-p_ q-X!W 0 n-X! D03*0 > -!q0V0 -XV0 0  ܍q00 n@ 0^ "03s}n`2 0 n  (/- D- <-h -hx\ # p܍ < ]01Q$rAq1p!p < <,xX03 eЪQpbpBb BX(١nĤ^ذȻp rD<b|@    X==h bH X ""( - =-HCp <b|s@-=-H+p <b|[@-ip <b|H@\ ""(0  ""(1  ] (!1 -Yl p+<| @= bG"aP//b\zp+<Ѝ{@p;*|FH-d-A R-l -hD !    bD "ذȻxX+p  `   X+p  o1X+p  #ɡ<  EjߨanذȻ X !aLhcqp x+X؀ȈX !pb"E]8F 1H+Xb "țjXb!pb"E?8cK? j !/rap +Xbp'j@ (c 122p b"cpKj 0É! aL{j؀Ȉؐșphnԍ "V"1, PU 2@08 "2 # Ԕ %X`  ""d b0!#!"" A$鏤 ّnj0k@ &ؐșb!p b hb  ɑ@ߘ1ٱnk "` +p rD=bzbDL PU @Dp =bzɱ8ɱ8߸nl m0H0300 " 2*03 "dd4 "!"03dO4b}4! nm <` "h, ,030 " 2 "!"03dЍ 0bЍ700 ٱn "ȍhh(  LXX @  F !ŲLXX @ "`  "t "03tHy 䔰 LXAX-$!p c#  ALXŲbɱ8߸n ""(j|`  "pbpqR01Q! q1p!Ml -p803XPU%X !pbt@D 4b2x١nĤV " \ ]X _-0   X 4   _ذȻ` 5 p l h!Ȥ"1'!1!"0!0#Ȥ"\!WO̔ * X-'1$Ȥ'0'3(1%qȤ(0()1)0) &Pȍ̔  X X _ 1-_@ $MXؠȪp*ذȻrD;w| _p*;8wqp*;@wj̍   -Vɡ$c s,({+o 0s>> %s -- aborting. DELETED: vlTRACE_RECOVERYDBERRREPAIR_WITHIN_STACKINSERT_NONTERMINALSBRIEFENSURE_TREE_INTEGRITYtoken_bufferdvf_elementsfma_stack>>> Error recovery tables are not present in the parse tables. >>> Recovery will not be attempted...halting! qnl m0ؠڪذȻ8;D bqH @ Ő F r+bQrb|#[P% d Ap;c4냴% b;-ZbqHp+qbr{+bP2 050 3`0|[bP" 1`bP"9133 0#d2 0`bP1 bqHbqH F x!nl !L@ J  / D-1, 4 n!L=H$"03#  A J 00 n!L-F03ԍ A 0#y0 nԤ$g, n!L=H@ Z A B 0 J Oڜ 0" A 0 B  D 0 B-D0"0! ǔ" 00 n!*1.A3!L,F<HLJ, y A B J i "~ H  ,F!.,F"<H@[!m  J   ",DbЍw,F03 A  d B !Z#T#8,@8n03!ԍ"03# ,, nm ?!03bЍ[č0! MetaWare TWS 8.87PP!nN 32i{!0-j3 0 n "!ԍj|, "P%!P!ٱnm ذȻ!q[Qp+pLT `PcP ɱ8QTA0Ls @02i~0+j)3 p+pL@ AbB ɱ8߸n "Ԑ!/! , "!P03!#PPU@D!q$Rc 1pc S!03!b2P"!03!b2PQ" "nԍ"8s, nd `$ "! b@`$b@, ّni j0l!p=b%d,qnh i0j@!w rMx=bpg rMy=bprv 6 w qHx1ٱn!8-9=s=pk s=y-pl ` `7 6 !1Abc@v-ɱ8߸!nl !p=u  p 5-q-044 n!2=3M4]dP|11=0-0#5 "ʰpu-0Q MetaWare TWS 8.87nm0!PUscrPCbQ34p 0! n` d003!#cp 0! ٱnذȻ!+!+ . cЍ+!+ . ɱ8߸n` b0c,, nԍ* "ٌ@DҬ8$ "و03 0 "3$194c# "#, "وnԤ@03Ҭyx#  A$, nb03̍-2p c,j "p Lp bce p 03Pbk8nԍ "03\k, nԍ "03kp, n@DPU "03dE@DkM, n03qҬx-y $0!0ؔ z"0  ( "-, *#0 nl є&} "#t  "03deЍjb4 .> ASD "03djؤ 4 nҬx-!8-y Xx 00 nl Ҭ * *=* "!02( .>@S!=*14 n03RԔ0"` 03TbtBv`P/ "03j!D,, ٱnl "R ;p-03 i@b!ذȻx bP bp= ,jCb!x bPp= ]j3ɱ8ɱ8߸03R0`  "Tbxxn@D03BA^bi0, 0 "! 1#n@D "03Apq_0i\$0 n$,Bq\ "ҬxP0\(=!-!-  -d.>@Q-p\TL!b- RB̤ "ʔ    "03,i b4 ّni Ҭ (x (ʽ*, cܝ,!W"8 ( (ܽ*,ɑ@ߘan4!j0pwҬ((x 1'(؀Ȉ! (2*103010330P "R Ti "Tb)P  b\ 03⠤*h03 "b)","0 U03R0Ox 808c1;1@DTe45c`0ce $ q`fp&03Hh',p6*h^8rq*p1 "12!m Z "ʔ 2X , "R & (p 03\bg "b)P"vp *chq*t,(((|z!'.p187!(a`i "b)"^ "ʔ #  "R  s!S "03xgWq*((r8p1 "12 a`i "b)"߱i "b)"Ա!!03ʈh!nl M * Yp 03bfbwp *cgE44 anj i`ftb PbdB2A "Tb$554bk tb QҔ tb R0 tb S1᫐ "pwҬxb@ "3 E  >"P// RfZX'*!BD $ !   "03fS p!8bЍ2 "#t nG,؀Ȉp(ؐș<9hf0tAp(9pf(xGp(9xf sAp(9frADDp(9f Ĕ p(9dЍfĔ pAp(9eĔ qAp(9e  p(9Ȫte dЍep8*f9a`a`hٱnk :ܔ 6 p ݖ<= @T@Fbe "Ԕ p,=ep<*eɱ8ɱ8߸١nҬ! ;ν.x "01$ .!?_S cP1d?40284$2Q_T21 "ʔ !| . / *1 "و  "012$ "ʔ }!Uv "-,=* /! "P// -0l 03ʔ0 N(I (2 "ʔ > 8 "ʔ 1! +. "ʔ ! ~u "rP//bɡ<ν.x "숏)ߨnԍS@DҬ003t1u2 "3$y4v5w6و "7$1X "Z>$<\=, nԤ , nPU!Ĵ0 2@DTdCD5SUcd,,! qnl @!؀Ȉ!HĔ0 03TbЪ"b25Ѵ```qH "ؐș<9čcݸĐ3b.g 1)cdXbcЍ)cd Xk}bct)cdXcbh*ccXѴ͸9bdcqHx!ٱn "ذȻҬ+,̖<,Qnc !-Q ,(Q]c -Q . (  * ""  /      "⠤1!ɱ8߸nԍ', anذȻp+̖<<? "#~" 鏐!nԍ , nl # }-5Y0=-Y< @|= ` }-bpqR01Qr2,|=b ` }-bpqQ01Rr2 @n#~=-#!| b0~=-#!| 0 n8!91:A# ? |=b2c 122} bxyQ01Rz20 n8!91:A#~ > |=bc 122} bxyQ01Rz20 nl #|=~-c 122} bpqR01Qr2~-!>- pqQ0 1\r2 @nФ "و  -0 فn#  ~ $|$d p,=Yp<*Y({|Q0 1Ya4 H,p<XbЍG0  "!4ځb>$j b>8e Dp<0bd" ,T 03Lby<@ P& ((((h n̍_(`#bB@Dq4p$rD4 ٱnk l0@bP *:܍W\Tb;+.Ȥ?P.0P . 3w;b9")b!b#2; "^2.>A@EX+<d ":Wj .1 23N8!1Q\8+R :+ND%token.filw%s LOWER_CASEDEBUG_SCREENERPRINT_AFTER_PROCESSINGScreener summary; there were %d reserved_symbols in %d tokens ٱnl m0@ ɱ|mk dA cL. GbЍ|^`+ 'bɱbɱcL. / : \ ] גAA cLkbc{bcЍz bQɱɱ߸!@@ٱn ɱ@jg" /tذȻ+Dg و@ mbЍ@ ``` /pf /x "ލD9 +D2 03p "✍Kxɱ@ɱ@߸nm -  "  "pcЍl0 n#Q "吔  a "Ĕ (at ao ,! MetaWare TWS 8.87$Header: skeldrvr.c,v 1.1 88/04/07 13:09:30 pickens Exp $nD̔ 4ݲX-0C.x-$0C.z-40C.|-@1C.~-L0C.-X0C|/-`0Cq.-l1Ch/,-0C]/0-0CR/-0CGc .B -Ȥ1C9.-ܤ1C0c -ЍCp DH0'؀ȈPp(>H0(p, > H0,&@dPpLp8p'p Ptp-0@up* C;wz ;ِ؀Ȉ٘p0p*0@Wp0 "@ "@fd 2}x-31|d ";Q6 "dgR "  "֍?X "ԍ?X "؍?XaL`fh١nj k0̾<pMeP p-`  #ctEd DBB<bP*cQ*ɡ<ߨ!n "lД .1p 03bP03t "xp 2b9@w [p "*  "2 b>/|!0 0 ١nj k0p,ݾ=PKp,ݾ=dP:p,= ^^dP*ɡ<ߨ!١n "Ĕ " "܍> H "* B @ "2̾ 0p <S 9p,>Pp >bP "Ȕ Yp > Pp >(bPp<*O_@ "> &0m 4e "03DdЍNč'(Tɡ< "ߨفn؀Ȉ(<<=ؐș\p Ȩbct̔ p)ȸct̔  "h8؍,m8m `Hl p)ct̔ p)ctx̔ 2jb0dЍM8 ذȻp 0 b0dЍM& b1@eЍO {p)8܍t>̔ و@ j @ ```_*p 8bt̔ و@ J@ ```?p)8t̔ ذȻو@ /bЍL@ ```!p)8s̔  * p)8s̔  _m .d "cЍɁL "8 MlɁLLk ȸ߈BMetaWare TWS 8.87$Header: skelinit.c,v 1.3 88/05/19 15:51:43 pickens Exp $@%s%s %s Page %%dw-SUMMARIZEEMIT_TREE=====> Profile %s included in this compilation. %d lines in %ld clock ticks = %ld lpm.Processing speed:No%d %s%s Backend speed :Total speed :*** Tree integrity was compromised by error recovery, so no tree file will be written. End of processing, %s %s LISTtestlinetestdiskrtestsrctestscantestsstestssptestssptValid stat options are test{disk,line,src,scan,ss,ssp,sspt} n.5>l >h>p@d@D@鏓NL>,4d@D@1@NLN(N(@m 菌ToفnN(N4D>CDDͮ ͞tb. *!Ǎ,|JB>xCpDhzš(JtFTĈLxņŲ2BPvƄ(`u늑@PQZ@.@@ 0 9@ 0 9@ 0 9.AB @B @  0 9늑N>,Cބ@04QZ.AhHeRE@HEQZ@NL>,C 늑@dDŻ0HD>CDKN8$dɁ菉#"!@NK@D@鉑@NK@D@ 鉑@ 0 9鉑늑܎4ƑJN4QZdc@@A1l@^4N,N(늑܎4N0@ s!ZXqiN(NL܎4Q*]N0@ .PN(>LCNHzA4XKN(aNL=N>23CP4A \>4>21L>21^>7*QZ^4\3Q*܎4W` 9:*Q:vd (N6@ ' ܎4詉܎4*mQh֔ 늑@N>D0 cH@3;N HDN4ڑHD>4C @늑J>C@D@.d@D@@ 0 9@.d@D@늑@N$@D@NL>,CN$@D@詈@N$@D@NL>,Cٱnl k0bp"m p, D @ @20cdЍpE bɱ8p,  ɱ8߸!nl m07\ #*03p bB p 034bdI14p 4! n03,! n03,! nԍ),! nl *303p bBp 03XbdH4 nԔ1 ,/,! nԔ1 ,Sd .0  ,! nԔ1 ,0@ ,! nԔ1 g,S)g,! ٱnk nl+,&  b0:nl ,&  b(&ȼb0:ml @ b(ɱ8ɱ8߸!١nj k0 *p* @-)T03p bAp 03|bdG\bɡ<ߨ!فn03Τ%{i N 24Ah B"k(jlb0dFK Д /bnԤ "$20 LؠȪ|~ ZR @2Ȳ:Dbi lPbcdHIbci:\biݿ⬤ɑ LؠȪ|ߘanaL%Ȕ "03܍DP`д`Rpw؀Ȉ|ذȻ$Ș`p'cD7``l `p b @ ) -p7D| ` p7 ^Dp Lb@ p'8lDp7*D_ aд` aLhفni j0}%@DذȻp |<pbC$ (؀Ȉ`Ъbp"  ) 0a p;Dp; CєߤN p; +CN p+<tD^01Cz ɁLɁLذȻ|߈!١nj ųu$ 3p=)C p= +C p-03 @(@)eCɡ<ߨ!ّnTj l0m@  "NN ^ ^,cC!l b%p l " C lɑl.$te Nȱ03@dB.p)ؐșp @ #!d0x1dp);mbRe p)>@dBbE+.X0+xb v \ɑl *!h$p  1h "pBl+\?b v \ɑl>`0d  2  ! " 1>3-1hb$. -2  N1h "ސAl "  .#gt1ɑlɑlؐș✈6+\ߘ1+an aP "`  " ذȻp p,b$D p=p,44ͮcp,g M\bނbp?8g pj>1X "  ."Ф0>1>4b=Ȓ -\> ."j )"d rY "޴cAs \ r   ͮcp,g p,p,ؐșp 0 p,ͮc w PȮt "p( !@b0p1`fp&9p&c@]@XDb0p1bp9bpc@]@DDp,bނp 0 Pp,r0d:<0,gr;$. >`f|&hd@O>&@Gp >bނp b !:1M\>8 p,bނp,p,ͮc `fj 0:0;p,g#@  p;10;0p,0 c@D`@@D@  c4p,p;g#@D@ @D@ͮ:A aPذȻ$̈nذȻ$̈`ذȻ$̈Rhn811 041"0.Nc@2$c#b!`AN "`  " ,, n "`Д 12 "  -03$p-p- :T0 00 nl  "$rB03,0bP Bc8nm b@1Sc mp0 4! nl@ 0 cp-c7p 038b>e44! nd0c ., nd0>, MetaWare TWS 8.87TRACE_SOURCEDOCUMENT_INCLUDESLevels LINE # |----+----%d---------%d%s %*d |%.*s %c%s ***include_file(%s,%s)*** ...file already included. Includes nested too deeply at line %d in "%.50s"...file "%s" already included. ***file %s opened at level %d*** ***end of %s reached. Resuming %s at line %d [source]Line %d exceeded buffer size of %d ...extended to size %d %*c%.90sInvalid margin specification(s) (ignored). anu,8}r ?`u,bP Q t,8g 'mt b b&Pi  t b Q"2b0/m#b!b"cЍ' ṐېaLhnԔ #.c@@%,,1 ّnl ic@(>ޯRذȻD; 709T0-;b@` b) 㲩c+ؠȪ 4ذȻ b)<*b*0*b)2*b)3*b)1*b(*(*.b(**b(*,p*P b)b)6*b)7*b)4*b)5*b)8*b)9*b(j N0(p=bd'b(uj N0dp=3bd'b(^j N0dAJp=3b'b(Ej N00 dBJp=3rb'b(,j N@0܍p=3/bd''@ a!ɑT.L>h@$JbɑTߘn "TЍIc "R 0|-6p-6r-6s-6q-6v-6w-6t-6u-6x-6y-60 nR 4-0M] 0 1 2 3 4 5 $6 (7 *8 ,9X:cЍ03X 708'/T ( .,\nm 03t` bЍ m bЍ8g "P"X"Z0 ٱnk |,0\@P^D=8 |\@P|\d Eb:[ 4 =@b:Pɱ8ɱ8߸MetaWare TWS 8.87more_st---SCAN TABLES---SOURCE.%.*s(reversed)n:1l !(Dd =b:* b/d =b944  1!A1QpqQ01R,1 MetaWare TWS 8.87'%s':%sٱnk0l@mP@D8b1 @Db0 9 p =b9p, p *c9 p = b9vp,p *c9 $(X "(`, N0ɱ8ɱ8߸Anԍ-z , nԍ "(  , MetaWare TWS 8.87Scanner Parser an` g0h@iPȰfpk f!cd`Sd@Dbc`p bar "dcB_v s "hcC_h ؠȪGs "lcC_U u "pcE_G ؠȪ&s "xcC_4 ؠȪv "|cF_! ؠȪ bc&c" 03# p !aTbaT ibcdS.ck @!" ' ȱw "cG^ y "cI^ CA@b0Ty "cI^ z "cJ^ CA@b1(u> "cE^z 2b^?j p b2*p,2 0`Д Nb11$0,` bc](s "cC^; b,Ԕw "cG^& bB003'\ 4w "cG^  bB003'\8t "cD] z "cJ]  " wbB`0<lt "cD] z "cJ]  " J@Eu "cE] bD1{ "cK]  bcH/ِ} "cM]k bA0/ٔ!aTbaTp hA@n{'\ !, ,Q MetaWare TWS 8.87$Header: dirctves.c,v 1.1 88/05/04 08:19:06 pickens Exp $ONSETOFFRESETPOPINVERTINCLUDEC_INCLUDER_INCLUDERC_INCLUDEIPATHDIRLMARGINRMARGINSKIPSKIP_LINESPAGEEJECT_PAGETITLEFILENAME_ISLINENUMBER_IS!03Lb2P ?nԒ!0">X>>>>(>8 >@>H>P "⠍5h,"P// nm , "q2pb0.cФ@-40 nl 8z-0z b P" 4 ٱn8,H!N2/`Hk ,H!N2/UH.-!N02/FH. H N "eQcT c[  HP P .@DbPLc#  b R !b/ R SQb_4 2P Pb0Pɱ8߸ٱnm0!b bp b 벴ɱ8߸!nԍŃ, n03, P'`nФ'` "03 @-0 ٱn:!k l0(bЍm  "cd ɱ8 "cЍr ɱ8߸nl G# %b.@<b%AA bAZ -4 4 !038ybxP"b@"0 9_ ٱnk l0b (,!"" 0`03pcP b "(1b0 pQ!cdЍqrQ0 1[ɱ D߸!١nč=ذȻ@ @Hb@!$"pp bp q]01Rr 2 "t ؠȪp 03Lb3.@ (p *c3 "(03p@ b! "p bp q]34Rr 5ɡ<ߨn.DԔ .N.H .F,, MetaWare TWS 8.87Default_returned_by_error_recoveryTB[%d]:=nl \c p-p= -2 bĭ4 ٱnk l0hP  P-K.P-"q b !ɱ8߸!03hP#"qbP"n03hP , qng ؐșp ؠȪp*gP 1bcU0p9*2{p p90Jlq'b,P"Vq'p b,QBbcЍ2 Pp9*2VqHxPPanc 121jذȻp p,`@ D p+03@HPZ1pQ p \bp:U9p;*1p p;0P  "\bQbb`  D b`  "pcp#q38p+c`@ p+03d1\p; 1ቐqQ pE p+03؍1CaLaLhّnk p ;ؐșؠȪ`p9*1v "p92B@ p)030+(p9 1Rp ɑ@ߘٱnk l0p 0 d.Sp  "\b! ɱ8߸!n "p0 ..,, ١nl p b! !cC P !B  "! #P kq c P#q c Q3P  "` *ؠȪp ذȻ;@DhP`@ `0 q]` bQ#q-R" ] "$(czɑ@b@,003bЍg4c[ɑ@ ɑ@kɑ@ɑ@ߘ!فnm "` >> "⠍.pذȻh s "  , 1؍$tȑ@ &ؠȪp ؀Ȉ8|b.hpsLr

 ɱ8&03hP#"qb! "'"(`  "pb" ɱ8+ bЍɱ8ɱ8߸ٱnk0l@"'d-H b` H H -H ɱ8߸1anؐș'd)N ؀Ȉ48` 0'L)P8p 0'B)XؠȪh "8ȹLT21J0bLrFȂH  b) Cbc$Q ")AQ   p,P )D!b A (f P b  "^ bc "` r1 "⠍)Zb$q1 "⠍)LbЍ$ "Ĥp!c`B(p!c`A(#f "@, bpcB(bpcA(bcЍ} Du0 )X60)P60! c )@a X034ؠȪh "8ȹLT21J0bLrFȂHhMetaWare TWS 8.87FIX: was deleted replaces was inserted before Try W=fix_lc.stackfix_rc.stackFIX LC=FIX RC=0 @e@!1 ```anf g0h@ؠȪkA; b4A; b b4 b Pdb`cpd aLh1ؤ!Q! ( nФ 90!b40 MetaWare TWS 8.87$Header: conv.c,v 1.1 88/04/07 13:25:56 pickens Exp $ @ @MetaWare TWS 8.87فnh i0j@kPmش    b,c A$\t(03lbd&J`ɑ@ߘّn'p ؠȪp ".> Aɑ@q-i⒐p-pd)bcefp p-cbdeZɑ@ߘ١n'1, ɡ<!0,ذȻp+"p bpp q0KPUb` "bp p b 0ɡ<ߨqnh ذȻ'| np b! "p b,"Œp b! "p b I G p,c 122p-c#p,c 122p-c##sppbЍ xi bЍ  l bp lm bp w e { 0bcdЍ Ũ {;+( qL+ qLxan`f'&(;6 a`ؐșpYQذȻp gؠȪpmؐ< a`H 2a`DDBfa` .> @ mэ ~Dc$#a`p 6b" kH "@D q4p$rDvLѤЍPЎ<Ta`lp a`ш`03bpqR23Qr4 stR01Ru2<֔ю` brsQ01Rt2a`ш` 03bpqR23Qr4R01R2<֔ш` b`brsQ01Rt2a`шu` 03bpqR23Qr4`dpqT01Rr2`drsQ01Tt2a`ܔ "xRX.( \a`ޔ "6X.(!\a`"bܐa`"b̒a`D(POOt6f4j`@ȍ#p)p"pwpbp1`0!z0dbb!("p bstR23Qu4p<010<`hwlp)"pbq0p)!p bp p c102 "b2rsQ01Rt2arp<8 p)"pb02p qa`>lp)"pbq0p p91p+b# pgqprp b $ذȻ欍hpMctpb ` bpJ`@pKdpqR01Tr2p<800ٱnk l0@ w,=HH  t ɱ8=LbG t (ɱ803G  "tɱ8bc!{ m b$.0 tbɱ8߸!ٱnk l0@ .A  (8b@dH5bH5m bH/`-d  ɱ8(8bcG 03bЍFbcF>bЍ! ɱ8߸!/! nd @ : d1!A@ :# 1@ Ab@,! ١nj k0Gl . ۔b@"  d bcd< bɡ< ɡ<ߨ!anPh i0j@gP¤  "(80-@(| 03bF̔  "(8cF "tad  -)%. C >b >k  ! "(8c@dGrlbpc\ bck  pp`f'`pbp"ck qp  n` @ gb`cpf bpc~k @  ' %. !C i @ gbcpi bpcVk @   b#.0 ؔ 0 badhQ,nm  .0 bЍ 0c2/'0 nl00AP l0 MetaWare TWS 8.87$Header: io.c,v 1.1 88/04/07 13:30:21 pickens Exp $@@E/n.n.nNԔ@ >ؤ,NAN>0 .؍5>ؤ*N@ .03 N@ .03, nm .   0 >̤*B 0 n.n.Ԑ!.Д i,, n.Դ  ,, MetaWare TWS 8.87$Header: listing.c,v 1.1 88/04/07 13:31:22 pickens Exp $%s nД  bN4 (0->(p-:00-p-.0  Q!Ap0(A nԴ  ,"03(b2"., n7!0! ! ! 1#, n:1l 1(0 61̔ 5N2 "(b#"d  =LbQ)A*=Tb4   nm >Ȑ1 !N03(BDbЍ0 nm @@ N03(BDbЍ 0 ١nj  @b@ cC bɡ< ɡ<ߨّnk l0i Eb"(p bڢb - . p."p jbv *."p jbk!*.ɑ@)ɑ@(ߘ!nl  -p 4 MetaWare TWS 8.87$Header: sref.c,v 1.1 88/04/07 13:32:31 pickens Exp $"%s",L%d/C%dnm Bc bЍ0 nԔY ` Nb4a,.N @1V,..ȍn0.؍d0..Ԑ!N 28,.̍403b 8Д- "*<,.0~@.ȍ(02>.̍D.,, n0д2 c bN.., qnk l0c, `@琑1!```0bCEi0b!(j는 3|b"bqp2bcd? bqLb!bP mŀ~p bpb  bn ~  "*0cpdeJ~͎>|bp"i#0  z ŧbЪ!cP#' #ŧbp!b bcd5ݎb1bpܮqLx!n"hbxp"bn"dcpq# anl ؠڪސAJ $+k AJ؀Ȉ*@ *Ȟx=b0 e b0dBDc# 0A1213!bcpdЍcѴܤpbЪ!(b뒔 )h8bdЍJ䭔 ȸbcd>b!dbP jibc`-q  8bdpa\hn̍Ep 03+b3N`p ^bcЍ".\>d p ^(bcЍ@Dp ^8bcЍ.Ld p ^PbcЍNlp ^dbcЍNhp ^tbcЍNpp ^bcЍ4 nl >M0b0!b! 1: ``` !cbJ=bNbc@ M>Bb\$N>bHٱnl bФ1Me4 03+4bФM=[  ɱ$\cbJ8b< -Q b@ .bj<.-> ##.  !Q- >BbD! b8<`>c0# >Nb1HP .>@^L "(0@<Pͤ `.dp4bq0!ɱ$\߸nN@ԔA t (03+DAD>b@,, "P%^ "n 3 N`cP 01S(cP   -!.""bpnԍzP, MetaWare TWS 8.87$Header: symbols.c,v 1.2 88/04/27 17:05:34 pickens Exp $<<>>About to add string #%d: %.*s -- hash code is %d %3d .%s.%-*s%3d .%s. Hashchain[%d]= %d %d empty chains. String table summary: ---SYMBOLS---Last_string=%d ١ne j@NذȻp+- AN01c p+\t-R-(Lp+<T .0c p+<t .0cɡ@ɡ@ߨ1nԔ N "03.0,, nm D .0RbФ0&{ 0 nm 0&h! bФ1&`003bЍ&R0 nԤ"!, nl m0D bЍ# "03.DdeЍ.Ѝ bЍ"4! MetaWare TWS 8.87>>>>>>>> S Y S T E M E R R O R %d <<<<<<<<, in %s %s Error was severe. Aborting... >>> Too many system errors -- aborting... %d system errors %s Aborting(%d)... qng h ذȻ⠴&5`bc90p <bd p+c@CcЍ p;*qHxqng h ذȻ⠴(5`bc80p <bdGp+`cPCcЍ= p;*qHx!!CBP!( nm PS `Pd P$ $QS 0! 1!GFEDp!, n3 # " 0 5` , 5`,,t(t(0 5` <85`<HbЍ<XbЍ !l4! ne m@b01- 0001 ne m@b01- 1t001 ١nj k0l@ г%`Ъb P2bѳ ɡA\Ht(03:$bdLbcЍɡ<ؠȪ+p:10:0 #N8 P0 P ..: T.. X.p:`0.b0#"&22#ɡ<ߨ!nm00"$Tb&0! nԍI@D+ "03:4, MetaWare TWS 8.87$Header: toggles.c,v 1.1 88/04/07 13:38:39 pickens Exp $Toggle is "%s" There were %d toggles n>#" "2#0nDԔ , X03b* , nm " .0"4 - bN(< 8.<@ .cЍ D.. H.0 np N 2< [欉0-p-02 0-p- c0,4 np,!0,p p p, ```4 np<0'N 240-N 22/p- 0,4p-02 G0- 0,p c b 0-4 np,!0,p p p, ```4 鏤!p " nc 122Tb, n:1;A$C bip p+c 122p-c#dAHB4b! "(b" 3 'p 0 p+(!0+p p p+ ```p91p c #p+c 122p bp#p0r"2b, 8 "K p b! "p brRqBp2tbЍJu  5 v,!6,aP*cЍ aPaPhnl $ _ "K(pMc ~3p=10=p 0 [p p=0```2 "c# "0#03樐1p  "b 24p  .>@D4p 0 4 np=0 .>@p=`0 "bp`0 "b樒10=0 nl Ѵ Ѵ```4 ٱnp .>@Kp  "b"p  .<>P@1ذȻp0 !lppp,` 03dc1?2cpqT01Sr20!0,bɱ8߸nm *@Dp "c "0#p "c@Dp$ #bЪ!-"cp$`  "bpqS01Rr20 nm0 "`  "b20 ٱnk0c 122m % p b c  bH-c ɱ8cɱ8߸n`0Nc` bpqS01Rr2!nl m0L!!.> At(bcP*cЍ 4b!,"b 04! nȔ +0 8` .dpqT01Qr2`0bpqR01Tr2pqQ01Rr2 8 8!ّni j0k@ "✴J=bd @ bcЍ @bc*c Dm٪b  pb cdb ɑ@ߘ1nd b00,! nd ABBtd "b'$&#$(p01# p2p02p012p012"RUGZP%%!ٱnk0c 122pcp#m bp ɱ8߸!ٱnl m0>Kj@03+b@!b2 AI``` 3bJذȻp;bp dA@B>lb903b03bbcЍɱ8߸!nl mcФK-T03KLbФK,X .>AQp @+=bJb\P  .(>4@3pb`/H  %(dЪAMB>LbTbd/bd/bR` @nl m0bcЍb 4! nl bXm b b4 n̍Dp J=bD@Dp =bD@Dp =bD@Dp =b4 MetaWare TWS 8.87$Header: trees.c,v 1.1 88/04/07 13:42:54 pickens Exp $%s> #Kids=%d:%s[]<<>>Built leaf Build non-leaf Cat_orch %d Last=%d %5d . ---TREES---Trees summary: %6d tree locations used. %6d max orchards allocated. %6d max nodes in temp holding stack. ٱnlPk p00 M =M=bb bc =bɱ8߸1ne0N1, ne0Nܤ0, nԍNؔ@  "03M ~, "03M0m, MetaWare TWS 8.87w E : %d user errors No user errors. nDД 0M-0}.-$0t.-00k.0 MetaWare TWS 8.87TRACE_SYMBOLSTRACE_TREESTRACE_PAGESnH` e003Q 0Abd b01.فnTh i0j@bc)bl  "Q\0cde03Qbde Gb0Hb0d) #2 031,Ɂh߈1+nr"# .0,, فnh0bsiq,c)2m j  j`j3q,pc)k ;b;l dbc6 ` ⽤0d)pĔ s\p< "Q0dB,ɁH߈!فnh0Ȓbyqsbc(j bc(k p;bi bcd3 ` ⺤0d) sYp9 "Qd)ɁD߈!"s"n p= "R,dЍbЍbЍ 0 MetaWare TWS 8.87$Header: dynarray.c,v 1.1 88/04/07 13:15:31 pickens Exp $Memory exhausted (while extending %.30s from %ld to %ld)[a] alloc_dynarray(%u,%u,"%s") malloc=%lx Memory exhausted (while allocating %.25s; bytes=%ld)[a] extend_array:"%s" extended from %d to %d (ptr=%lx) [a] realloc_array:"%s" extended from %ld to %ld [a] free_dynarray(%s at 0x%lx) ٱnl *T m >b= - b.$$k  .0L(0 ݾ0>kbc),>`bɱ8߸n.Д pҍ_bД ```0 MetaWare TWS 8.87$Header: strpool.c,v 1.1 88/04/07 13:34:32 pickens Exp $n+p- ԍp- 0 nl 03Tdm b .0.0‘$.b4 MetaWare TWS 8.87$Header: cleanup.c,v 1.1 88/04/07 13:21:00 pickens Exp $w١ntj k0 l   m>bЍ($m03UNbe9(b0:, "  "U0cde0bɡPߨ!#MetaWare TWS 8.87%s (while allocating "%.12s")[a]new(%d,"%s") returns 0x%lx ٱnl XL@ d,m  e"03b2p"q0 XL( @,"b2p"  XL bVX  bMb? (,"ݿ8ݿbl m p- wp-0bɱ8 ɱ803߸nm X  -"""q0 X ( bЍl X- bЍX-( 0 b4 qng h0i@jPkpВ@XФ?2 !H01PAl@b@0@Dg p Al`p 88Alb@xA0%f `xxAlf``8t!c@sxAp  @a 01>AAl!@Al@= .*!l18AAl@- AAlAl@l ؛=Al@AAl: h bU lAl:@AAlLT͡TݡdݡDD< % 4+35!8$!8z"h1Pp 2zl1Pg021Pb02!8$!8Ͳaݑ`!8$!8bb`0@Dog p ipÙ@ iݑ`ݱT18!Q`418C u @Ddc@dPf KȠi!8$!8B!Q`c@dPf !Q` <8!Q` <818418C@< x0x1f ȠxA`@DDii`D|Fᐉ ȠgȠfȠeAh1dݡTzL !8(!8\ !8(!8\0A11d}QBf 0@Dg p `p66@ "bAv` !H2!r?\5u`d} e  ff gf1h}0!|A\`vC01hL81Ô0 ?2  g `2(i 2#irvi ri v0 v`d`0?r i 1`d0vmri fOL1h11h`0831h g !\" 0q'\\ x -+q "b+A Eeq!\"5!!\eLrA`i Ɉ g9b)!H!Hu!ᐤXy  gr XX  ]QdPT U R|<P AI-"i

<:HX.20,(&` + d @@ @ 7>@;@7;@ᐤ;7w ~ ~QwAt1s!$ 蔠 <| )1p@QdP bRpA|<| bA0pA|bA޲pAst!p D ADt1s!Q$ w ~ ~QwAt1s!$ A`@ t!c`sp L dA`d At1s!Q[$ vX .pt!1pAsp  ar rAt1s!Q9$ T t!c`dsp  G!H AHt1s!Q$ 8Le!\5! t!cpsuAp  #{ ~Q{At1s!$ 1P91PAl@y!PDa< `a01 ٱȤe @k AŻ °û"nΪ"͑Q@n A%0 0S@ 0bɱ߸1ٱnk@Ф@-+!d "  "b  0ɱ8߸1an2!f01A0Qpr& *"nP//0@&<:8420.,*( Ȁ c`h @bA"  & bi ɴxȰ" zbpc`g Ȱ"yёrȰq! q!0p! p!0bpa XhAn`0e@0dg,1 " "nm b0`@c10!11pqQ0 1]81nm b0`@c0!11pqQ0 1]81n@@DcA !@cA```0@, : ::```00ٱnk ,,>@pqS8A01R( ```v+` b$R% \& t+` b s;,`H 0  r;, `q;,`p;,`u+dcmd02,`,c@`bɱ8߸nԍq|, """""""""""""""D"""""""""""""""""" ! "" 23 "23 " @23 8Ab@ٱnk ,. pt` b   b Tɱ8߸nbЍ    l 0,v,Db4 n̐',8s=0=3=130q#pOL 4 @ q$1e@\ 0@dB1CpqOdB1pOdBp0pOdBp03=p0$4s b  4c q" Г$p 003,8sC$8qT% E $ % dP$/qT%` p]0qTq11Rp_`T p_0q11$3C菉qTqTnԤ C` b, nԔ ,, ١nj  b0ɡ<0  ɡ<Jp ɡ ",Hp ! 9,02!, nNԔ@N.c 2pp, nԔ% ( ܔ , ١nj k0l@mP  ɡ<ܔ ݮݾb"pbp2>Д1 0 bmؔ 0bpbɡ<ߨAn0@P ,  P "pdp$04n038#""".nЍ #m  0- " b0 nm r- X   2-3-X ( 0 ّni j0k@lP 0X Ű sbhj  ɑ@b213ɤ 0) ( ɑ@X ߘA鏤 鏤 nl b0c@@m  4 , 3`Ъ b$0`0b1   4b4Q n"ԍ  , ٱnk l0m@03|0!bdeЍbɱ<߸1 b0ٱnk r;+sdЍrl 0X   r b ܤ0dЍr 1 bɱ8߸nm d0 @ r=-X ( s 0 r 1 0! /tmp/%s%03d%dnԍ, nm b1 p0 p!@nc srp!mЪЪsq! 0-Hxn#,! nu F  r 4rc402qc402pnw"`  l-0d8`Ъ     2b ` b4 nl ,L$/$?@pqS8A01R( ```p0F><p 9bЍb4 nl b1,LH/H?@pqS8A01R( ```p0F\rb$ "p HTs hbЍbD١nl XL4 ,"23TCAb4J"!$C g0,q#0,X,$`(, ,1A` O0,1` DXL %ذȻt`Ъ j X*@   b b 0  XL$b2` p, q<@#!11ܱ(*,1.200mn.4&!6'+  sa c Ţsabc4!& !$8&bcg ypŪ@`Ib24`@b2TADEp p!c 8!r r!c 7!q q!c 6!5q"RQ @AP!cE@AN10B! #BAL!1#@J! HU`Yd44`PbH4QUc 6@QT`b4PAD`@bRT`Ib4P P T`Yd6 `Pc( $6 QU44řa`bc 2g h!+ٱnl0 !"#$k&nb'sbcЌ d $Ż ɱH߸!D\dp 4H\h8HXp0Pp @p4Pl0@Th|0@Xt$Header:errlst.c 11.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededRemote file system errorOut of remote working directoriesStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks available١nj ̟ȱ!<Jsmb< Nlbd "c bd "c~ >"Av bЍd "cЍj !ɡXߨfpabort: ...exiting. nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% puPU0% ptPU0% p%PU0% JAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 11.0$BT鏖c ( $Header:lmul.s 11.0$pPU0% A @!鏓!A```鏤 A @@RP!1 !@1@#鏲 A鏤 e A !A```bPفnj p 6q 7r 8p3q4210`m 0`˔ i h`b" cT!8 =p0 q1 r2 Ɂ$h߈!pPU0% pPU0% pPU0% 0be n;%n"e {%nepb00b"bpb0$Header:setjmp.s 11.0$|̤pR @T\q2 0_502q1pRϳT bpnPU0% a` R%S@nDEpB$TTT T qB!!!S5T@DEpC4TgXR!T_PR!TWXR!T OR!4R0pCT %d VP RT d V!R$4pCXRPRbaXRPRba"PRbaTXR T XdV! R TR #4pC!PRba$Header:strcat.s 11.0$P3@菔!```鏤 @B@S!1E@鏤 Eb@$Header:strcmp.s 11.0$` S 5T@DEpCTVPR!TNXR!T FR!4R#pCT T @ RT T !B$4pC@ Rb!Bb"PRbT XRT T HRTR $4pCHRb!PRb$Header:strcpy.s 11.0$ ` R%S@DEpB$TTT T qB!!! $Header:strlen.s 11.0$`@@B@S!1 E@鏤 Eb@$Header:strncmp.s 11.0$he @1! ! ```bP菐 bP1nl (m b$b4 ١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3 Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ! ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 11.0$dp PU0% pPU0% 耑 ϸNT$Header:crt0.c 11.0$$Header:fpglue.s 11.3$@T00AOFPAFP_PRECISIONsym(ptrao)DX0 dcln(ptrao)Hdt*d Xlabel scope table"P|d\lx  \ ( n l  R x N7 &h|CD \ $ <|8p"p  D8macro processingend_of_macro called too much ,ARGMacro lookup tableMacro dcln tableDX<Xd` 87prepare_for_arg_defsmacro missing!Argument table  !*Expand_macroMacro name not found!@"#$&$\$JanFebMarAprMayJunJulAugSepOctNovDec8%%P__FILE____LINE____TIME____DATE__ & \+X,RdpD,Malformed conditional compilation control sequence.Unexpected symbol in expression. Line ignored.#else or #elif encountered within a pending #else.Illegal construct within #if expression.Mismatched #if-#elif-#else-#endif.The rest of this line is extraneous.Identifier expected.End of file encountered within #if constructArgument to "#include" must be a string.Bad line specifier in #line directive.#define directive is malformed.`)' missing in macro call.Missing macro argument after `#' operator.Missing macro argument after or before `##' operator.#pragma statement is malformed.???L-d... XX/NUnrecognized preprocessor directive: "%s"./$0V|d1.1v(lX34^ifstackDX4 5Tn6T767h88^9Nstill skippingskip off\H@<|>& 0,0? HD,AJDB\ E<E E XX dGFGtJ G 7Mxl M  NO4OP OOOlxp PnPP P,0|dR HDRR h | $TU" 8 8W walk_treeUnrecognizable tree node  LpWOutput file not specified!34|/XvVar file not specified!1 <32dYh8YBS d82/Zsection_table7d$DX[E\Lt \|  ^_b_4a44b*bT  l     d27it8i-.j7jk$specifierstypedef name not a typedef!specifier h \ d\d8o8--rb --s7$ptj H8- 10h20L/T/X1,0 P-Dl2(22 < X{declarator(attributes)declarator d@-4L`    48h282(BSIB/2/"BSIIBIIB/$/BWBWBIWBW. 0BShBWSBWS04h28x0Declaration tableDXlIdentifier lookup table77d$47|l2(248h@undefinedtypedefsignedlitunsignedlitstringrealvaraddrlitfunctagintrinsicitab (initializer)DX~,BBIBBIBBIBBIBBIBBIBBIBBIBBI2`BIBBBW0-h/BBIBBDBWBBISBWIBBWIB1.8/,tpE.84-/</f(F0L&#,h4` 0-,,0P8|ll`J4BW24 .-^0L-#,h4$BB2/T170h2(2/X4-do_parm_dcln0 8 d/P. 82 BBWBIBWBWBW`11 funcdeffuncdefnot a function!BWIB47d8($p81,1hdt2T20l24Xdo_parms$/<Ťformal_arg_listdo_formal_parms//\ʜC 78 d.. P.vunion struct BS8\-l-<l28.|.-2$do_enuml/xh2(86enum BS/p/-1$1 HBW181..8/42BWBWBWBW*BWBWBWBWBWBWBW`ݲBWB1>BW BW jBWBWBWBWBWBW,rBWSBWstatement D 47d`4  88 ,BWBWBWBWBIIWBW2$`44087$pcase tableBWDXNBWstringtabDXvBBBWBISh2LBWBBT2nBW etree_to_treeDX>,8build_exprcat opds bad!concat bufbuild_exprcat opds bad!concat buf/\#.-8/.8.28.#-x-t-#,h,d7dC.FH*<< >> == != ++ -- do_operation/ |d\8^  d(do_assign_op`\?A\3#build_expr4h#0111#1#7$7,* X #+,8,.$)%(&',j.-*--. 1/t-#84`\?)P3 4`805z6//.<87d/XAF,h1C**D#`\\3#T8.l.4Type rep tableDXvType table-tH-T-@--R--H-R/X/T.---Ì. ǚ ,...voidCd. (*)*[]()->()..< .R .t|L Hstruct table7ъmos table.RB./2(2Պ/./֔׼.^ؾ./.|Arg handlesArgument tableArgument table<b܌TRUEFALSE(/x\enum tab,XߐE--Dx*n"intcharlongshortunsigned charunsigned intunsigned shortunsigned longfloatdoublevoidsigned charsigned longsigned shortsigned intlong double///\-Var table-.DX.l0BBBWIIBNB0/2 @fBBBB(func tableDX1-.l1hBBBWIIBWN.277func_corresponding_to_levelUnable to locate func! 1Hd*$h.2p^2 hEp2DEFDwauxwaux2LwauxHC$ 4p2outdataunrecognizable character2d2dl$,BBWWBWBBIBBDBWBWBWBWBBIBWBBIBWBSBBWBWBIIBBIIWBIBBBBBBBBBBBBBBBwrite_expr_treeunrecognizable opcode23,3$Couldn't open temp fileBWBTH#H\BBWBBBIB> >>> >$>0>8>@>H>P>X>\>d>l>t>|>>>>>>>>>>>>>>>????(?4?@?L?X?d?p?|????????????@@@@@$@(@0@8@@@L@T@\@h@p@x@@@@@@@@@@@@@@AAA AAA$A0A8A@ALATA\AhApAxAAAAAAAAAAAAAAAAAAABB BBB$B,B4B<BDBLBTB\BdBlBtB|BBBBBBBBBBBBBNULLEXPRVARINTEGERFLOATLABELDEREFSTRINGADDRFUNCOFFFIELDADDADDASUBSUBAMPYDIVUDIVSSHLSHRASRREMMODUMODSNEGABSUNIONINTERSECTXORCOMPDIFFANDORNOTIFUCVTBUCVTWUCVTLCVTLCVTWCVTBFCVTDCVTFLTUFLTTRUNCFADDFSUBFMPYFDIVFNEGFABSEQUNEQLSSGRTLEQGEQULSSUGRTULEQUGEQFEQUFNEQFLSSFGRTFLEQFGEQPROLOGEPILOGLABDEFSECTIONSTRINGLITINTLITREALLITADRLITFUNCLITLABLITARGSPACEALIGNFUNCDEFVARDEFSWITCHCASEJMPCALLCJMPCOMMAPREINCPOSTINCSMPY224UMPY224SASSIGNASSIGNFASSIGNADD_ASSIGNADDA_ASSIGNSUB_ASSIGNSUBA_ASSIGNMPY_ASSIGNDIVU_ASSIGNDIVS_ASSIGNMODS_ASSIGNMODU_ASSIGNREM_ASSIGNSHL_ASSIGNSHR_ASSIGNASR_ASSIGNAND_ASSIGNOR_ASSIGNXOR_ASSIGNFADD_ASSIGNFSUB_ASSIGNFMPY_ASSIGNFDIV_ASSIGNRESULTFILELINEVARINITBLKDEFBLKENDVALUESETTOGRESETTOGPOPTOGREGTEMPLITDEFTYPEDEFENDSTRUCTENDENUMTYPEREFFIELDDEFENUMIDTAGDEFTYPENAMEENDFIELDXCVTSTRINGADRECALLEFUNCLINKDEFUTRUNCSECTDEFMACHINEMEMCPYBEGINARGSENDARGSSUBSCRIPTMINMAXMINUMAXUFMINFMAXFUNCSTABVARSTABVERSIONFUNCSTARTFUNCENDRVARDEFALABLISTJMPILABADRCCADDCCSUBCCMPYCCDIVCNEGCABSCRADDCRSUBCRMPYCRDIVSINCOSTANSQRTEXPLNLOG10ARCSINARCCOSARCTANARCTAN2COSHSINHTANHFMODCEQUCNEQGEQUGNEQGLSSGGRTGGEQGLEQSLEQSGEQMEQUMNEQMLSSMGRTMLEQMGEQSETREGGETREGMOVESMEMSETGOTOGLABDEFALLOCAASM,dxCCCCCCCCCCCCCCCCDDDDD$nullautoparmstaticexternexportcommonstatic(defined)registertypedefnullvoidintfloat*[]()struct{}union{}unsigned()!El@  ( 04 < @ L ebcdic table/lib/ebcdic.tblCan't open ebcdic tableCan't read ebcdic tableDXpHhc2.1ahE| E!*EGRGTGVGXGZH\H`HbH(dH8fHHhHTlH`nHpjHpHxHrHtHvHzHH|HII ~II$I0I<IDITIdIpI|IIIIIIIIIJ!TRACE_DYNARRAYOPT_INPUTOPT_VARSOPT_FUNCSOPT_ALIASESPRINT_STATSTIME_PHASESTRACE_ILTRACE_EXPANDPRINT_EXPANDTRACE_LIVEPRINT_LIVETRACE_VALNUMPRINT_VALNUMPRINT_PHASESTRACE_NODESTRACE_DOMTRACE_COLORPRINT_COLORTRACE_SPILLSTRACE_DYNAMICTRACE_OBJECTSPRINT_DYNAMICPRINT_CSEDEBUG_CSETRACE_CSEPRINT_TAILTRACE_TAILALLOCAPRINT_RENAMETRACE_RENAMETRACE_LOOPSDO_RENAMEPRINT_FUNCSVOLATILE_POINTERSTRACE_CODETRACE_GENTRACE_LIFETIMEPRINT_LIFETIMEASMEMIT_DEFSTRACE_MASSAGEPRINT_MASSAGETRACE_POOL"$DXT"vd\JTx%2nd parse stack2nd sref stack&X\QC_phrase_structure(30-Nov-88 09:20:27)\ s.,*b+62$->}wvwvsnPLEDF6aH^5_`=4?<23>]Gy)z=a$io^w(_v`|#]vpEDF6aH^5_`=4?<23>]G"$&qr %'!wdjvs!<EDF}HEDFwaH^_g`=G?<3>]GPLEDF6!aHbK^5_y`=4?<2{3>]GEDF6aH^P5_v`=4?<23>]G W {EDFO6"~aH^5_##`=4?<23>]GEDF}6}aH^5_e`=4?<2E3>]GEDF6aH^}5_1T`=4?<2@3>]GRYEDF6ABaH_`^5_U`=4V?<23>]GEDFc6aHZ[^5_uJ`=4?<23>]GEDFaH1^_hw`=WXr?<fV>]G sk04]^uu  ijwwvsF zvwqvs* wvsQ+YZ[\'(-xx./0wvs%MyL&M.Kwvs7wbIvHe8EDFRg6dH',59/@C=4m?<;2138>:GEDFAA6:fH?=#J5>Nn@4z9<2f3}GEDFxPIL Ha;(9O*=h-?<EDF>lG0H\EDF:NHEDF8hHGc4G```````` G75 |Get or~ijklmno`|72`?`cD```````````````B`]^_dak tQTTd56C;~QTTSSp  " T%)SS;C;S;; )8[l[ "OOP&&OOn|PP9&&& OO |O c ^A&gzd!v_qyR% O1 O9-%ww ' O  r q ssTy%9wwRRRR%;< _ eO1i-w ^  /e AOg Ppne`eeeQZeev Oea E _ # e e $h3n/j%1p`g ]?  /\RqLoq@xjJ+:=KTV[_l;Uwy{*66Ek  34)m;ptFxzQ] U *Z~ 3.2 )$$)11 )),111{13`BDFHpJLNQVYtqSU\\sEsGIUX\\KMOPRSTUWXZ[\ /}&I&gmgl34k }g kggs)M+{&%   $2-/--,,,pppppp^aYQF\Wc[A@BeJ} !!nnnnndNRVI$#%&""k**()k www< sosq )qrwwss w )  kk    k|i> 9! ++0)'#|< uuq)1,.({X1t?_DEbP  pt __g 34 ]C l 0g'&w;ww o3x:j ; h~1t= 46"78 3yg~~vu) rws ntg5ws q )`HLUfMSGKZTy)1w fO|M  "a"`"!"Acdc!b!caaaacabcaaa"%%""%%%"$""!AAaaAba$"$ bdbb !a$a$$$$$B$A$C$%C%%%! b a c  "###AA #c""#"#aAA!!!"CAa"a a`#"!BA"BABABBAC!!#!!!C!Aac"#!!!!!!!!!@a$!!""""##!# #A#@#a#`#A`  ! C !CAbAEac!####!###%c###AAAAAABBAD$CCacCA`AAAAA@`@@ mnnopqqqq rp^aYQF\Wc[A@BeJspdNRVI_tubb_vv wnPPPnnxxyyyz{n||||n}}}~~~nn)yd@yyyq||}}~~||}~yn nny @ @n`nHnLUUfvvvvvvSKZZT n n@ nn]]|n,yyq@ @@ @@ @ !!=####pragma%%=&&&&=()**=++++=,----=->......//=:;<<<<<=<=====>>>=>>>>=?[]^^=_cc_far_huge_near_offsetof_packed_unpackedautobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongpragmaregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile{||=||}~ACsAPASCsAbstract_declaratorAbstract_declarator'Abstract_parametersAdjectiveArgArgumentsArray_specAssignment_operatorCS_prefixC_conditional_compilation_expressionC_phrase_structureCallCalling_conventionCast_typeCompound_stmtConst_volatile_near_far_hugeD_or_SDec1Dec2Dec3DeclaratorDeclarator2Declarator2'DfdDfd'Dfd_or_Dn'Dn'DnfdDnfd'E1E10E11E12E2E3E4E5E6E7E8E9ELExternal_declarationFunction_definitionInc1Inc2Inc3InitializerInitializer_listInteger_constantInteger_zeroIterator_and_bodyMember_listMembersModMore_parmsNLNameNon_function_definitionsPELPLACEPName_and_parmsParameter_declaratorParameter_nameParameter_typesParametersPragma_callSEQUENCESpecified_declarationSpecifiersStatementStorage_classStructure_memberT1TS'Tag_Member_listTagged_typeTermTerm'TypeType_or_storage_classesType_specifiers64.52365.52266.52470.51773.53274.52678.52981.51682.53086.53187.51989.51591.52192.51894.51397.51499.520100.528101.525111.058111.459111.460114.162114.163113.161115.452115.453115.454115.455115.456115.457118.2106118.0103118.0104118.4105119.449121.277121.475121.476121.478121.479123.25123.46123.47123.48126.4107141.148140.146142.498155.49156.468156.469156.470156.471160.167164.488164.489164.490164.491164.492164.493164.494164.495164.496165.042165.443166.044167.347169.097171.464171.465171.466174.04177.272177.073177.474178.050178.451179.42179.43179.11181.410183.480183.481183.482183.483183.484183.485183.486183.487185.445186.3100186.4101186.4102187.227189.035189.433189.434189.436189.437189.438189.440189.441189.139191.199193.212193.111extdefsequenceprogramspecifiersdclndclnfcallconvpackedstructunpackedstructemptylitfieldsmodebitspointerarrayfcarraylambdaelambdaparmnamesparms_yieldetcvalueregspecinit_dclnIlistclose_label_scopeopen_label_scopefcnroutineparmdclnblockclose_scopeopen_scopeexprrangerepeatfor_eachexitlabelleditercallcommaassignop_assignorixoriandishrshladdsubmpydivmodif_expnorandeqlneqlssgtrleqgeqcastoffsetofnegderefnotnotipre_incpre_deccatpost_incpost_deccallsubscriptfselectargskwargsarglabeltypeselectiteratorpackagevarfieldinposimpyfdividivremfcvticastfcastcclitXORcompasrfeqlfneqfgeqfleqflssfgtrfabsfaddfsubceqlcneqcgeqcleqclsscgtrfmpyseqlsneqsgeqsleqfnegfposmeqlmnequnidiffltmpy224div422idiv422impy224fminfmaxuminumaxTRUNC_max_mincvtbcvtwcvtlucvtbucvtwucvtl100020003000chklchkhchkluchkhuulequgequlssugtraddressaliascodecommondataexportimportpoponoffcalling_conventionroutine_aliasing_conventiondata_aliasing_conventionyielducallareaoffsetregrefto_farinitparmdeclspreeval_adrpreeval_valuaddusubaddaptr_addptr_subptr_diffwalkedl_to_eufltintrinsicliteralsglobal_aliasing_conventionc_includeendifelifundefdefineincludeifdefifndeflinedefined_find_char_skip_char_fill_char_abs_move_compare_move_rightstatic_segmentunknownparmnames__inlineutruncerror_insb_insw_insd_outsb_outsw_outsd_inb_inw_ind_outb_outw_outdoutputglabeld_1d_2d_3d_4d_5d_6d_7d_8d_9d_10t_1t_2t_3t_4t_5t_6t_7t_8t_9t_10Last_psg_constant1 !"$&()+./123469;AJP]diu!%).6=?EIMSX[_adhnv|#,/8BU^ #',.1479;=?ACEGI]ptx| ,:IS^f{ !'-39?EKQW]cjqx!'/6=DJQX_fmt{ &-4;BIPW^emu}"'*048@GLSY`intw|     $ ( + . 1 4 7 : = D F I L O R U X [ _ g j o r v }      % * - 1 4 8 < @ D H L P T X \ ` d h l p t x |       $ ) - 3 7 = C F H K ] x     & @ I N R W ] d i o s z      ! & + 1 7 : = @ C F I L O R V Y \ _ b e h k n q u o   GFEH B"% r@$ A !|# OVTRQ/0479I1:()*+,-3>;U' ?= &.2568<CDJKLMNPSWXYZ[\]^_`abcdefghijklmnopqstuvwxyz{}~   !"#$%&'()*+,-./0123456).BVY&mey +?Sg{/_2FZ-^Lrw2qz^[N08T*>Rfz 2FZn';ORfi{mq`ueex&|88J>@@EELLL P7[\*cVv`FM\QT 9P:Z& }sL" " (@ @ @Pp" @P U CAP(@ b@( @P @P(@ @ @P|m}kdH H ddH  R @P U CAP U CAP U CAP  CAP  CAP  CAP  CAP  CAP U CAP U  CAP U` CAP @P@ @P= U CAPb @P U CAP6j| @P( @P @P(@ @ @Py1 U CAP(@@ @P U CAP  CAP(@ @ @P(@ @ @P(@ b@( @P(@ b@( @P(@ b@( @P(@ @ @P(@@ @P(@ b@( @P(@@ @P(@ @ @P(@@ @P(@@ @P(@ @( @P(@ @ @P(@ @( @P(@ @( @P(@ @ @P(@ @ @P(@ @( @P(@@ @P(@ b@( @PvP @" " s& pqp||}L( @P @Py1 U CAP U CAP U CAP2(@@ @P#*18#?1FMT[8#b8bMMMi#*pw~ b&?-4;BIPW#1^elbs zlz888s8s8s88ss88##**#~11~11???#MMMTT#MbbebebbMM&-WP??P;^;bbb?;;b  zMMllp`B0E0`Fwp@B0E 00`Fwp`Fw> R3S @ RD@3S` `Fw0`Fw0` ` b&5 &5 f5 b $b $b $b4 &b4 &b4 &4 `P@@@Fw>RD@3SȀ@]wp`GZ*@pS@SrD`;SRD@3S@RD@3SȀR@3Sp@p@Fw>p`RD@3SPFw @@ &QC_lexicon(14-Jul-88 09:31:27)\  u>{~~{zd))))))(5"6,0#++,/+1&*%$$$$$$$$$++.4-3''''''''''''''''''''''''''++,'''''''''''''''''''''''''''+2+3ccccccbo\pfj]eefiek`d_^^^^^^^^^eehngmaaaaaaaaaaaaaaaaaaaaaaaaaaeefaaaaaaaaaaaaaaaaaaaaaaaaaaaelem~~|~~::::      12=#2#2<"2$"> .312=#2#2<"2$"1226122d  !"$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~  !"#%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~EEEEELLLLLLUUUUUXUXEF_____L_eeeeelllllluuuuuxuxefEEFElLLLEFFEULULLEF___LUeefell_leffeu_lulFlefLFLFluLFULL_ flflflful !"l%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~EEEEFELLLLLLFUUUULXU_____eeeefellllllfuuuulxuEFL_efl#pragma(09BIP\cmya!  !7 7 .. 9+8-8! ::!;<x=!>>!$@@*?@!# A#B#C!ED-FF"H'I/G!JL K/MO N/P!R Q/S!cTiU! pragma6WV errord define6X!(Y!dZ!e[!v!qq#rs! !u !  u"\"v\w!?xx\y!.{ }z.{ z .z_'z )z  ) (z *=zz=z=3>,z<,=3z+3=z&3=z-3=>3z=|3zz=3>3z=3zz! 9!_!H!*Q/!**?@!BE!ZFF*"\"\!?\!de L L K*! O/ ! O N/ !*! R R Q*!_! )nclude !_W((_X "\"\!?\!. .  ._a c  c b *===m>f<f=m+m=&m=-m=>m=|m=m>m=m#t !#!z "'\'\y!x!.! }!.{zLlzUuz z !.{zLlzUuzH!z.+zz  9!H$@@*?@!# A#B-FF"H'I/G! H'\'\!d!e!L K/M O N/P! R Q/S iU!   ! \'\'\!v!.! !.LlUu  !.LlUuH!.e z }!zzz !z Hz !z H!     ! ! H ! z"zLlzUuzH!!r!%LlUuH!#rsz!"\"\!?\!. . ! %.&_     *(='='= ><= + ='& ='- ='> ='| = > = *+!, '\'-\!.! !.L/l/U/u/0 % !!.L4l4U4u4H5!.7 89! !); !! H %! ?@LAlAUAuAH5!<B!CcEE\F>D !>G!lEE\F>D !EHI '/2;CR]bh~ %1=FNWepsz #)5AQYfkw .9<CNYdo~%*07:=>AFKL[fg}  +69@CNYdiovy| ).25<?DOZ_hknorv),7>ADEJLOR^afit #(-.13DI[^`'QC_conditional_compilation_expression(30-Nov-88 09:20:35)\ &:- 9R286<PE7=f|G{Q HeJ#!z"?Y  M IK\$#%4^_d@'FL=aN>@DO?3]`<&{;\$#%^_C@'=a>BA?]`<&z\$#%^_V@'=a> y?/]`<&b?\$#%^_h@'c={a>T?m]0`<&6)G\$#%^_V@'1=a>0?j]`<&1\$#%^_8@'wx3=Ja>uv?T]`<&\$#%U^_]@'9:=oa>HIy?Y5S]`<&\$#%^_(@'=dai> ?-]:`<&9tq286<:s7=9b{8n6<7=\#\!"?/`#:Q!",?942x8\6<7=\$#%*4qrst'3m#.!"W?+.;3}kl:&'594;286<op7=le\$#%\$#%3'#'F!"?X;\$#%|'&4& +a,r*&3N A(DC;\$#%\$#%X''\$#%"^_'@=a&> &?E)X]`&<XX[ >WU MWZY~B! XWWWWZZZWXWWWWW[gWWZW[[[OZWj[[Xx A F-<..ox AAN[<>..@vrd$< +H.-8u >)$/V- T#*## zQ?B3*(;ep8 MT rbtdLsut&CEHV\^_`bvye3!c{ZPJ+Y]8&24;;$$47;;*$$.Zwk;$SP k%_2R^cik8<u@~D}# g$Lg$Kfkfkhg n v p&--,,,pppppp^aYQF\Wc[A@BeJ} !!nnnnndNRVI$#%&""k**()k www< sosq )qrwwss w )i> 9! ++0)'#|< uuq)1,.(z ]C l 0:j h= 46"78 ~1t?_DEbP ;  rws ;o3xnt __g~~vu)ws q1tg'&5pt3) w  www& %%""%%%"$""!AAaaAba$"$ bdbb !a$a$$$$$B$A$C$%C%%%! b a c  "###AA #c""#"#aAA!!!"CAa"a a`#"!BA"BABABBACACAbAEac!####!###%c###AAAAAABBAD$CCacCA`AAAAA@&p^aYQF\Wc[A@BeJspdNRVI_tubb_vv wnPPPnnxxyyyz{||||n}}}~~~nn)yd@yyyq||}}~~||}~n]]|n,yyq@ @(@)8readreduceaccepterrorinadequateexitinvalid parse actiond)*@*X*~PpX,8,vLp--.6.HDXT.Ì.///t0`,0ìô1b$ÀÈÄ334Parser:Lalrk_lookaheadTried to look ahead too far (exceeded TB_limit)356HParser:ParserACTION faileddÜ\èTäx\Lɴ8==J==>parse_stacksref_stackh?F \p?ļ`ĴAParser:Read_parse_tablesTwo supposedly distinct terminals or node names are notdBl Cwhich_caseXCParser:Read_parse_tablesNo parse tables found$LhlŌŜE\FGŴHzItIIJʸJpJTKd޴p߈KzDXLFttÈLLstatesʐ$`Xp\MߐN"Hp0ވƜXO,PLPnPɼXQÌTRD(ÄT4TVTNOT DULVddW WPtX XHxǀYZZǜ[ǠǘPlDŽ\T߀$\]r]TdL]^_T_`"4  bd6$dtdǬXLe^e\lf|gȀgPLhvhȈȔp|@k2ڨkToo many syntax errorsEND OF FILE reached without recoveringThis error is too costly to repairȴޤȘxm&ü`mȼn2nN$P0obpXp Scanner:Process_predefinedillegal predefined scanner calledScanner:ScannerExceeded return address stack limit (RA_limit)8˸p<l  Scanner:ReduceExceeded token buffer (T_limit)tHD˼̼40DҤlҨ8\h\lX` :PfDX6~2vPd@:d,4d,8,p0XH\,Screener:Init_screenerThe following token name is unacceptable to the parser:text_buffertqͨH\hdpҀ͜X lπ!(4ϠptЀАИЬ,pADAPRINT_PPOTRACE_RECOVERYDBERRREPAIR_WITHIN_STACKINSERT_NONTERMINALSBRIEFTRACE_CALLS_ELSESLOWER_CASEDEBUG_SCREENERPRINT_AFTER_PROCESSINGSUMMARIZETRACE_SOURCEDOCUMENT_INCLUDES@l@  @@@.st.pt.spt\ ،Tl P!t<ٸd pDxp܀suser errorsystem errorwarningunprinted warning|P(ڨ͜dXlt$8ƬddLjՠDzLTȞ"b$\بذشD``մռLPTH`$(\0X8@HDPdXh`Dhpـ ʈconstruct argvX(pDZ\،\Քslowtaudynarraydebuggdebugfnsilentafterbeforeonoffdirstablesptablessptablesefilebannerppotimetreetpagestmptplistiextlextoutputprofilelines_per_pageipathw\cardX dpӴrelativenon-relativeconditionalnon-conditionalCan't open "%s": %s Unable to proceedlL|d4dXSource line exceeds limit of %dK characters. (Dۄ\xܶ(RdX̼STREAD read errorRelse_statelse_infoelse_source_namescanner_sourceother_vocabScanner:Read_scan_tablesNo scan tables found$Lhl(4\PBDdd<dp0tͼ xb̐@̈, ipathdX\L Xܘ0InsertionDeletionReplacementForce0Flush0Force1Force2Flush1Flush2dRecover:Exceeded the following limit:ڨüXTlast_list_elementfirst_state_access_bynext_state_with_same_as\fXPP,X$Z$8d߀pX|XpʔFstack_limit\ ވ<\dP\ިDVF_elt_limitLDVF_limit޼ޔt"ÀpÈLl`pތʈ 6--FMA starts --FMA resumes H,ߐTB_limitt$߀LߐTd4߀p0ߤ^ߠ4r|0X߰LߔHPޔPT   P V \ b |   B   8TREES:Delete_ith_orchardTried to delete a non-existent orchardd DTREES:Move_top_orchard_toNot enough space (Exceeded Post_limit) ,\dFEtrees:P_build_non_leafString-table-mark stack overflow\$H`|d,$p0( Too many directories specified to searchpbrbrt4rtIPATH<  pd.psreftabDXt.??dP L$fL |!d!Lstring_tablechar_tablesym_nextXDT"\"l$*$L$p d%%5ld %s. bytes in the char tablechars allocatedstrings in string tablestrings allocatedstring lookupsstring compareshash clashes&---SYMBOLS---,Ph<'dSymbols: Read_symbolsPascal string table!4LdD$)SYMBOL:begin_rsvd_wordsReserved_words_entered_improperly (out of sequence))n))*+Td,,l`,--..XXdp./p///0 01$P11h2h233x,344R4byte arrayL$5short array45d666727P77788jToggles:Make_toggleAttempt to re-define a toggle:toggle tabledDX9^9:L:v:Tree node limit of 64K exceeded.tree tabDX;Zpostfix stack;<lmtsorch_startT<= =,,=\dp$>28>l?ATREES:Cat_orchTried to concatenate more orchards than existedATREES:Delete_orchardTried to delete too many orchardsBfBTREES:Top_the_treeTried to top a non-existent treeTREES:Top_the_treeTop_the_tree applicable only to an orchard of length 1Cf$C|D:d\DDTREES:Alter_pseudo_symbolTried to alter pseudo-symbol of a non-leaf:0LEpEFFGnG---TREES---,hTHvTREES:Read_TreesNo tree fileread_treeTree not generated by C parser!$4dIt0I8<IKd $LFLpLMDM N2lNBad dynarray pointerO(  OPrP~RLHeap overflow (string pool)dR+SpSHThAvailable memory exceeded lUPlVHV<WfWWY4Y@YdY0YYZ8ZtZ[[@t[p\@,<\],\^_,<t_`Unknown errordp``0aa\ab4b~(`\ `\ `\' T3`\? (#`\Al#`\ `\  0000000000000000l@m*mXmmnTnoppp$pVppp... ... 0 00:00:00 0000 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecq8 ((((( AAAAAABBBBBB r r2rDrVrhrzrrrrrrrss s&s@s`slttuuuv|wx4x`x@HyRLyyyPPPz<zFzl{{{({{ |8|B|J,|<|8}}P}`\<P#}~x~x,\P@Pt(<\PXTt<`\$0`\,0`\/aT#`\/aX3`\/qD33`\/q@3`\/UD3#`\ ?UD3#`\<T3`\?U$`\?UT#?`\?U< `\?UT#@$`\?U0`\?UT#?`\?U<`\?UT #@$`\ ?U`\?Up`\?UTp3`\ ?UT#@$`\?T#Aׄ`\<`\<4`\4\3`\,0?@$@Y@ÈAׄCAy7FnM8O?ZwH02uOs<`\T3`\X3`\<(#???tzG{?@bM? 6C->h>>j򚼯H>5y0:>. &֕=|׽=yd=a-=,%hIv<+<V<Ҳ؉0 q1q20 p0菉p2ne d0T q11Tq% 0R0E,,! nd 1N, n݁p- pb ```0  " h! 544 n03 |23@Dp103l(250, nm r s q  lu bЍ0 ٱnk H+d"23(bH+<"P//zxv><~`^&ZXVTljfdb`^\ VTRL0.*(>H0,* L "Dߔ -hI_I;-lAWJ;-t2334J-h-C "_  J+"23bI;-x( "_  J;-233 "Dߔ I;--hL (03p@u 5v#,! 6#3 ,`b t"b? L K;0 -L M; -ɱ8ɱ8߸nԍ03p@u 5 v#!6#,3*, ّnk l0L Mpq03QX "d[b.1}bc@01L cЪ2b At line %d in nȍBm @ "P//:864>p:,64xvtpnl&db`^\RPDB@><:8642"  fdb`D~|zxvtrpnljhfdbB^\ZXVTRP~|zxvtr 8-B8!8-0 -(  -  ,8-  - ,8 "_ " - - !8-  - ,8 "_ "* - - !8-  - ,8 "_ "X - ,8 "_ "J $-A:@ r"cf  -2 -, !8-@  -8 ,8 8nl  sb@m @ ]U-8l--8l@D_ ~Dr=F-p @ 10b@P j r2 s3 8lb3} !-8l  Y ` 8l١n.ͮ` k kC  ZBJA:({)nlb03\@4_ p-+(S ":71AZEJ*cmEJCPp-  ZB2Ab9k Rp-BJ2(z)AJr:B*y9!*H&` d0AZB*cyp@* "NP//‘ ɡ4pp-ߨ١ńp /_ ؠȪ}tb#+#bB2p]s2BPp PPC0 Cyp ɡ@ߨٱno ذȻ+03\@pqS8A01R( ```p0_ p<- 3DO=b2+p<- 8+* O=;(ɱ8߸ّno j0k@lP_ p-012͒@ cdep s r,  ` 03Dݴ; cbcp- r "}x2 ɑ Lɑ LߘAqnpg h0i@jPȱ!03\@4DEb0!#"m1>  C*B:B) C*B:8r # B:=$} B:qHB*xA$١nj0m@>Rڲb>Kl b1p *@ 2,5L" )03 h2 " d5 # "_  ɡ< B -ɡ<03D @mD -ɡ<ߨ1ank l0m@jP=i `fDE6bЍbtm pqcp؀Ȉ_ p(r QbcdF11@#>db0!#"pb1>dr¤r 2hhad.G!`- )>db0!#"pk1>d{F!+ ˤ s9r)E$+hF!hadȑ 31dbLFMb4ec F10 "LFLFs 3!4eI adGp(B}| |b0YŲ̔ L6 @l`LFMb4e F10 "LFLFs 3b4e adb0cde adA@hAan(i j0k@lP!X03\@4i3`f_ rQbcdh`f_ pwD'  $ 4Д  \ ѤbcdhlR 0 0cDg RbPcdeyalnݱ`hv1:01t1\21 e9$aO'2^!Άr Z!2t\$!$1X@pqS8A01R( ```p0 \r\ "}t h0є $1 $1XdewZ "_  k3 JFNTc@142.`h#ANT.X/.X2$2,!(rLHrLbcg$( 03_ \ e 0 0cDf $(E7b`5k ` "_ "0 X`fdR.p N$08].p`f``h  $(c@pqS8A01R( ```p0 "}t o3s(w 7 q s(1 a "0bC2 =;NTc@142.`f#(rLbcf$&q, 1,w, 7,NTANT.X!.X!!"! s 2,2C bcdfQcda0 $1 $1Xdev%aapwD؉S'hA6nl mb03\@4C03_ Cx@%#|v : 7!+(1! "DLR2QO$bcФDh4h03D(euC4hnl0  r,4݁=- `  "}b r,44! nB@ 03_ cB"@3m ob03@pqS8A01R( ```p0q 1w 7bb#4dفnk m0.$͎0` iDB p D 󑌳 " $͎@` iB p B Ȉ8 ɁDɁD߈!nl "_ u03Dr,^m F<,dЍ-, ,4hF<7 8 M\rL,Y4h,mcЍM\rLF % "03\@pqS8A01R( ```p0 "D03-r3#(!l03@4iapb1@"%i ݑt{G`h c @3^8Lpa<@DDE `!  rWS e0b`1lGcl 0! Dc`AlepXp " p )!tt A1lc<PF{ At!l3apły "y!8cЍ0FGbc}Qcalmł{gF'#2p;3  ,* 'p r7uTł܁p QAr70 sX y y!L F'r7uTr7(depFhhy y!lcЍbcФD}Qblłu5ݮ@ba/!zpˉhQ>فnj k0l@mP58h ؐș!9@4@D_ ~Dr8F(p .>An,Ɂ8|0b0deЍ0b9@pqS8A01R( ```p0)1@pqS8A01R( ```p0Ɂ8|߈Qanj  hp "_ "a4fb03\@pqS8A01R( ```p0pwDL2O$( d "_ ڲ/ؐș}b,0h + b! #p br7b, #LGb`4`NŲp ba4h $Header: call.c,v 1.8 88/10/19 15:01:17 pickens Exp $MetaWare TWS 8.87" "D  "D "Dٱnk l0mP 0 ~!0ɱ8bcBc0-~!0 `0p 0 ɱ8ɱ8߸Qnm - `  "}bDDw-Q0s rA3 q7 @ K 03D b+- < "_   03D b,-  `  "}bD 110 (bk s,q \0 B4d\v\0! <4dZ+,7 q 3    .p]w,/  $  E5bɱ8pEbcɱ8pɱ8p_ p]0 ,  _ p]   _ p] _ p] _ p]߸$Header: canon.c,v 1.1 88/05/13 14:38:40 pickens Exp $MetaWare TWS 8.87nm BH "CHcP p@ ֑ 0 "_    8ٱnm ذȻ};2}p cp#cЍTC;2p cp 0 "_ z2bpɱ8߸nPU_ Xp 01 anl D@LM >̔0v "}`  "}bBe 7 ax  ]G ZT WU TX Qb0ỦHM $ "/P//njhZX )$z "/P//6420.,* ~|zxvtrpnljhf  ,y )H &03}-#Ԕ  z ގ "}-pލM ֈ, pw}ذȻ}4 " d&L < bЍ, U Hx ؔ _.1iahؔ.(>,Ah.T1ix,u6PNah,!8ah,  d -%-_Ĥ}}@D_ Dtahpw}`f d5, &r 6%4! "} t!"PЍ " h 3f؍8ޏ ~ؠȪذȻ l m03}G03CT ,di "0) "1)ؠȪp 2 3 u( , 9)8 ذȻ l@ ) m@ (|,7)03}p5 ݞ " h!@D h0$v0܎}&^ݍ "0 "00t!2#0# "} +|yah= " d^ah "~ seH̍` "c4čw " hpk0p q s   d u }y,.r -$ f ) l ( mw,{x b "} -NЍahah dahpw}  "} "}n "_ r2L b@p'` 03}cL p32ah, pw}ذȻ}2b! !p bB>̔0 bЍ2ahah.\>`Aeahr Lw<, Pmah< `0 "}bB ?}ah= ah@D_ vDt̔0 0H  .cЍ0 ܎bЍP`܎bЍ]Lah, /d <,PahtLMr\A<,+rTMA<؀Ȉ_ p(~b0c@p p( ah, KЍOX8, ev\ahx\_QX<bPes`8j7dahpw}ڜ `  "}j   *Kk Ԕ  "} "}kގ " d 7 "}5s:؀Ȉ_ p(l0 "}kr!- .D  Ў'"`f}pbp"cЌq0 bЍc p(00?C{bcp 7b0"pbpBbyhahx,lА "~Д n]pa ahx,tВ "~Д nx `ah "~ , l|03 d003_ 3Dpah`ah "~ b, l03 d003_ 3Dpah`ah "~ 7tLu<, l"03 d003_ 3Dpah`eah "~ t@`ahՎ b@"@lP//H~|zxvtrpnljhfdb`^\ZXVTRPNLJHFDB@><:86420.,*(&$" \ 2l \JL~><:p&vrfh|>~vpnljhfd<8ah؀Ȉ_ ؀Ȉ_ `f}hqni j0k@lP1 pw@ bK5\._ p-pbcdp@ bK\.ڍ!ms "cdBR "} 03p@u5 v#!6#q T3*?p-q"p!mTq TxA$Header: compile.c,v 1.5 88/08/01 13:47:17 pickens Exp $MetaWare TWS 8.87%s...%*c compile save state%d at line %d n.Ԕ N d0G . "H@0@.02H..H. .0H].H.,, nn Դ ,, ّni Š  ŰȐ .̴ Z. c 222.m#  )!-p-/0-00=0!=)  )#-) -=#= r)qY=93 |){Y q9s 2  0! 1z 2 !3bcdA|&- ( $ .ɑPߘnm @Nb@Ĵ N`Ъ .c`@bpqS01RrsS23Rt4b@0 ٱnc 222l, ?r<0 &0p@u  5 v-+!6- r<= +r< "H| @   ]p@u  5 v-(! 6-= (p,BD &u  5 v-,! 6-= ,̯q,BN<1 "H{ u  5 v-)!@6-= )̊5D 2p@ذȻH,+XT q,AN<1 +TF u  5 v-)! 6-= )U  "H% O .ذȻH,,`  "}b"E?c +` O +dc 3@ ɱ8ɱ8߸MetaWare TWS 8.87Routine too large to compile (eatab > 64K) HHHH%d*%d(,[]-%s{%s}DIRSEGEXTPOOLn"L.>A\G$ , ,!,$,%,#,",&,),',(,"IfP//xdnt~ فnHh m0i@jPbЍ"@@E1 AbЍ@bc HذȻDL[HbJNQH! cDO\QH\DDL[QH!cDO' bcM 5ȱ@bcD bJݑH01 $cde]'! 1@@pqS8A01R( ```p0bɁt߈Q.n}Ѝ4bЍ=G0 antk j01AlPb!m @ bcqApw r-7 q r-1 a@ 2!@D bK@2bJ@"2 bcqAp!2!@ -!Rf @@ rr}bp!?܉m zؠȪ_ p* O K@ +-!#f @r& 1Ԥ !4?/@DeЍ6 !4 ۔ b1 +-  (  $ !4! ٱnm k0l @\[,(,cɱ<,`  "}mb03\@pqS8A01R( ```p0 , +F !s 2 s :  $-  ( -@J   ( -J,  ( J, ; ( ( D C"P P//dv`zd  ( s 0r-  $r-7+03 h-# "_ ,+ ɱ< @( ɱ< (  ( ɱbAVb03\@pqS8A01R( ```p0bЍ1(++2  $ɱ & $ " V L R P  D BPNLJHF P Xn nl~|zxvtrpnl z ~ | z v t r p n l j h f d `B Z V T P N > < : 8 6 4 2 0 . , * ( & $ "    F D B @ > < : 8 6 4 0 . , ( ȡ@bcvF<: "_ AH@ b@8ŒDL Hdab4@8ŒDAHD\\LLAHb4@8/}|,<:Œ,j ,cŒ@ Z* I@ * LL03D @C/}|y* 2L " h "_ }| " d U#* L"ߏ /}|C03D @C/}|2rLA< C(ŒALsAM 1@CFŒ,|Œ0b0@PںŒrLF<,eŒ,ȁ@c-ΑcAHFŒ,,c䉀ŒA\FL<,0QŒbЍ.u؈A,F\L<0!H,1!I,2!bŒbЍ.\؈,PU cR@Cc_@@ 1ł,1䉀Œb1|Œ,1sł@  b"p#p- .-csALF<0e;ŢALF<0bpe;2@  "iP// ŚœbЍ-؈,(j @ L,c e @ br ALF<"0=JhŒ,i ,j @ j ,! ",@ ,ce @ br ALF<"0=hŒ,PU cR@Cc_@@ 1Œ,1䉀Ţb1Ţ,1Œ@ bALF<"0e:ŒbЍ-:؈y1s0AP$2!s8uŒbЍ-؈^1s0AP`2!s8ZŒbЍ-؈C@bc<$b9ŒbЍ,؈-tj )1PTŒbQL_ p,Bb0JWb0d xp,Bb1JGb7S "Dߔ ,@s,ȑ@cU@  "lTP//  ) (29bd<8Œr #@ % (0$ %1F  ,c䉀Œ,ce @ bALF<"̍;<wŒ Y "_ "A) $j ,cZe @ bF<"d;V<FŒ "Dߔ )&   ,c5e ALb@!@ '`bF<"*;(<Œ,c䉀 Œ,c e @ bALF<"̍;<Œ,cl ؐș_ p9#T l!C0!2e;'hp9C 0"2e;hؠȪDI:$OŒI: RdeJ " .45,2 aGr܉+ "Dۍ"T ,ALF|bAH bЍ*bЍ*bqtAHx!/١nj k @K}Y҈0bc@P٘Db7bc%b61@܉+6ws+@Y @r[K;0b0cDDb6HL[rK;+0&H8+8+d(p@ (03ybAG̤bЍ)bɡ8tB\FYIqJS#`[ `p}h%;ߨفni j0k@ l @L}4;3r^P??xvFDB@><:864jhfdb`^\ZXVTRPNLJHFDB@! 3h@L,!10dЍl,cdlێbЍ3Ɂ P, 0dflɁ P,,cdSlɁ P1 P0BbЍ(K!cdAɁ P1 P0BbЍ(K!cdAɁ Pb2i jbЍ(A<01&dP6c bdAcɁ PɁ P߈1n}̤0b(ib4 nԤ1, n}ЍbЍ(<0 nl m @ 4-d8}0b1@P/bЍ'8-d-d8F bp b8bV8F bR br8b880AI8b#80 3v\P?? s  Y]\ ] b t u v ;Bفni j0k@}: [3vP?? mcЍbcEx_ p=6 t@ .؀Ȉ}| b1Qi H@ +c@DP p-2bE p-2;bdE b >h @ "_ TrH@ bX@ ^ +cDc12A0bA0_ p-2$D p-2;A2$D @Di Dm (0dH(cd=bЍ>\b1`(cd+bЍ1`b1d bcD b&bɁ4x# ߈1$Header: expr.c,v 1.14 88/11/11 07:26:38 pickens Exp $MetaWare TWS 8.87op=%s(%d) at line %d: op=%d(%s): op=%d(%s) line=%d: ١nj k0l@`  "}mb+4!-b+,m b" "}  "z<>>deɡ<ɡ<ߨ1nd " Dcz@J 44! MetaWare TWS 8.87[alias]%s index %d aliased to `%s' فnh i0j@kP>𴣎0N :,D݁1-݁q-:2,1-q--L.ܮ` q-l@ N# b<PV$Z!@  b*L   "} bЍ+ @<~ 233YIDY<01!beC$@  bL2-44$<-<,$< -H!$< -X$< -h $< -p$< -x$03p@u 5 v#!6#ɁL3*(ɁLɁL݁.߈nДN 0+@݁2-݁r-5+2-r-,I.0 nl ª݁q b !>1>0 q >b $2b0!##r b444 `  "bnm bЪ"-!03qbb! #rb0 nm s!212`0 "b@  #@  #A  $00 nl ݁M>#!N:*h1-+.0 " cd~=B881nl t.p э_" 4 MetaWare TWS 8.87[F]do_funcdef(%s,%s,%d,%ld,%s) lev=%d flags=0x%x UPLEVEL_REF STORED_LINK ADR'D SETJMP CALLS_SETJMPnА#` m.c-0 I. N 4)$ .=**(..*,. N1)$.` >2 2b*(.` b*,..c-"b$>0 ٱnk l0m@,!$>22b#ɱ8߸1nm *g !$>22b#0 nl m0,?Ҥ!2>22b#4! ٱnk m0l@ ¤!23>22b#ɱ8߸1nm *!$>22b#0 nm ,!$Ҥ>22b#0 ١nj k0l@mP 1>!223BNcC@3b2 ɡ<ߨan.>A?n, nmPRJUP__ZXb`l".:>jxR(<ZXVDB@><:86420fx   ~|zxvtrpnljhl|$0@Db@0$0$02b>q" 02b>q"$0D HD1 2 b@0 /0 @ !00 @ !00b$0b$0b$0-$0b@-0b@-0b@-0b0b@-0bc@80Mdb@0Mdb@0Mdb@0Mdb@0 m8 0b@cЌΠ0 W8 0b@cЌh0 A8 0b@cЌRb00 *8 0b@cЌ]b00 8 0b@cЌ$d0@Mb@0M! 0M! 0M! 0M! 0M! 0M! 0M! 0M! 0M! 0M! 0p@(03"BDFb<>bA<0A ١nj k0l@mP !2BNDcM8@3b2 ɡ<ߨaّnj k0l@mP @cQB@c_@ iN4BBcO!"R2JD$ɑ@ߘqّni j0k@lP)|"P//B|hf`^b@&"ɑ@b@ 2!"2bɑ@"ɑ@bm @ +;rMbP2-bɑ@bqm @ A"fP//b`$4hx@Pr-2 bɑ@ !  ] "cd !-] "cd "-bɑ@6 bɑ@5 bɑ@8 bɑ@7 bɑ@: bɑ@9 bɑ@< bɑ@; bɑ@> bɑ@= bɑ@@ bɑ@? bɑ@B bɑ@A bɑ@D bɑ@C bɑ@(|!Nɡ"B$>22$b#ɡ<ߨaqng h0i@lPͱH` `j  b@z *!2!P3*(͑L`h p )( b@" m >:2b#qHxqn.n.n"b$Header: trees.c,v 1.6 88/08/31 07:23:45 pickens Exp $MetaWare TWS 8.87%s: ١nk0́ _ pM~Dp Lp-t, 0.DذȻDI;$> ,?p-, Š2b'q ΢tLI;(e:Qp-, "D/}/}ɡ<ɡ<,ߨ!فnj k0lP_ pM~Dp <  "Ȕ  ",2 p= p=" |2 ړ.A i̓Abcp ,p=b@2`9 T,ɁHp=͓Abcp ,p=b@2`; 8," 2  ɁHɁH߈Aٱnk o0l@mPb03\@pqS8A01R( ```p0+ r1 7 "_ ;0( ( C  "D2+ ! ( rKb4*y++ ( 1 7 2!ɱ8߸Aan4f g0h@iP "}2!@D}@_ p-͢bpcep !@  p=b@2!Bj k bcdpeg'zLb`cޖP Ph hp "D bcpd)cdpe+  0! `1 $cde9VP Ph hb`9eZcdp+~ hB sP' *"P//0.,<:86""P//b`RLb`cbcpd)R4cA@(8b6Lb`c1@݁Tp0 Cde7ABA '0QB] @1`Pd4`_)Q]r! ả?phA3qnh i0jP"_ pL~Dp d,4 n݁p-p 0q2@1 12p-p 0q2@1 12Q!4 nЍ 0 !!!p!0 n݁p- Tl  > 0 b0%X,dN1\.`..Lp]1d,  "h=.05>b<@ .(05>Tb04 nԍ03 b, nbPṲ8AZ "|P.05Tq1p! 8MetaWare TWS 8.87rbOpcode=%s (%d) File from pass 1O_filenДb# `  #!N40݂$0-b# `  c31݂$p-0-p-1.0 nNԔ@ , "$B0â, nԐ0>b0д >`0 "$b 2!b0, nԴ .>A3$ ,` 03$c #!", ٱnk l0m@ .>@3 "(b+q0  ɱ8߸1"03$b2"١nj k0l@~ .>@3f .~!N(85݂$1-L.q b 1 ɡ<݂$ߨ1`0PU$d!$```no ` "$e`0d%  $% ,$ c,,! ` 鏤!@D$d鏤 $Header$MetaWare TWS 8.87nФ݂,-0@RM-T0@RD0 ٱnk 0)bc1̂,m c0 Lb0"bBp"+#ɱ81,b#20>1>.2 < N 24F,N 22;,,:,J c ,$,,; . >L\b0!b$  =`0b0#ɱ8߸ٱnx 8p!0)ժ1̂,m-Te P L`Pc %ɱPQ cSPN̐ANȴ@ =N 28,N 22,,: ,c ,_,,.-TN<\`@c #MT`@b$<ɱPߺ! ""03b2p"ܪ#03c2p#q3$ $Header$MetaWare TWS 8.87nl 038m b .02+03}A0Q$ 01,2(345bЍ+y x w4A|1bЍG=A{1bЍbz1bЍB bЍu$4hnmÀc -"@Poaqng h0 "_ " ppqؠȪذȻR QFp@ -;A 5&"8P//6420.,*(&$" H" p*<V$:Pb3t ޔqۑp([x0370#qdd0͑6@ הqԑp6ϒq5@ Ȕqőp5qp@(X̑4@ qp4q2@ qp2q@ 1b 2@ ```3@ {qxp3sqo qP:Xbt :\bt >p(-u|q PB n03W03Wp><Ȥ7ɤ!.B o-,.:dbZt  p@ (:ldp@ (:dsq %  S  Uc s  Xr.@ .00"t.@ .800s.@ .P00 s.@< b.c b-c03}bЍ-Z<u^vNt>rb<=6 "XP  ` "Q (U PqHؠȪذȻR QFex!$Header: main.c,v 1.3 88/05/19 12:54:03 pickens Exp $MetaWare TWS 8.87rb-color-on-off-tauWarning: unrecognizable flag: %s Warning: unrecognizable parameter: %s WARNnl >b< (N 2 }ȉ0-}p-0d}0-p-'.>#`<"4 nА!0 n8!91:A;Q8! PxP@D}cR1pcp QxP 0A q" H: >q" H: ```> p" H: >p" H: ```> n.А!.># U0%N 0e/}}.N2T}0-$.}p-020-[.}p c b0-.p !b ."0} qng h0i `ذȻ}p+j 3@Q00*0@R'1* +$ % !c &*!cp '*`pp+j }p-c b2o 22 ```cp=p+'+ p=p+-q /v,@BW`@c /AB p=p+`bc b2  22 ```ܞ "}̔ "cdpebqHqH  6 P p=p+p=p+x!#鏲 ّni j0v*cl N2'k b`m - c2c:3 2"- PUbcB7A$Ic=# @$I2= b@&)!@D}p4c2+ #\,% ) !p4b# R³ bɑ@ߘ!pQE`@03}c #AE$ ١nc 4}p k!03}c2# ɡ@ qH n$ J:"&+03}ȉo+$ :!&+03}ȉ]+bc*03}ȉO+ $+"!!&+ "c̪Ѝ+!K  03}b+  +ɡ@ 6 O P $+03} k!l+ p-b %+M ɡ@03}ߨّnl }=0 Qؐș8p)4ؠȪ}p kH6      0B{  +O P Q1+0#0Ab`p:c0#` "}b $%&' ɑ@ؠȪ}ޤߘnФ@}ĤLP\D.T TX0 ١nd= '0l .< ,ؠȪ} ! H2 @" L3 ;X4 ,!N0%l6,N<03}AD=.<-eQbɡ<ߨٱnm kKN } r   t $@ ! "}v;ADv+N "}w;AAw+$  "}u;du+ "}Δ ^$L> "<bЍ5ɱ8߸an.!N2V0f ؀Ȉ}p8siy 1}p bp#$!b' @''p('$!b& p('$!p b p8wysiy Y "}dpCD`@bGŤ' !}p km 6K`@be@TeS5 E0`41 2p,b "p@"(03„0e4. >A(8 wy b`aPp8p8hnp̔ H > pbclq̔4! nԪ@D}` >03}e t2,`e `e  q?p3,03} n` 03}d!03}c2# 4   "}lm  ,³ ```4 anؐș}p .$e 03}p#d$ t!p .$k_03} b!d#4#M#J} "~  b* !p b:1f2&%Bp9DgC71e7 `0dT c1c5 RT 7 `?%"& Ȫ baL}p p p hnm @ -!-  00 anpw}p'bhh Qؐș}p &$!b@qH 3**/*(v*,l `m  -/-   6 P fhaLp'hqnj k003}d,L:4ZJ !J @7,p  "}h i x8bЍ p@u  5 v-! 6-=*  7p@,|  "}h i |x8bp u  5 v-! 6-=* /pڔ ,ذȻp@u  5 v+! 6+;)bЍp  p ,qݔqHx!an2}pLȴ`0}p b$$!b;1+ !؀Ȉ}pb`b y`g "}̔ "KDc$2q+p712p7q+0#q+$p'$ & $ q1 p,'$!p b  pHb;`0` Rp@%9 pH#!%)b 0; 1 "} p+qrH: > qwH: ```> p "_ >g؀Ȉ}+p!j1b:Yp< fN "}̔ "64LWq&?@i cpt(q&$1$+!p8b#; d0Ae$%:BC  c1c2 C"% ; % 01 pȻ Br!a XHGpLpHhٱnm `Ъ03}d441 "}c## ɱ8   "}kl  + ```.t!.t!pb ɱ8߸n.hД >T# .h  >T:Nb02 .h>Tl}p/4e2 @D}p-$!c#  !i0p/ فؐș}p ŀ ذȻ}pj m *JC $Dp oPd ``@Ĵ QP nPn ΑB@ p`% ؤ$ b 2Ɂ߈!ٱȤP }koЪl on P  K QP Q  $ɱ߸1ٱȤP}k oЪl on P  K QP Q %ɱ߸1an@3A@4AذȻ}p;@ȣ`1@0A}p eSTbP!b p*qHM: qHM: ```eA4AA0ANDFMNDsAA3AB@ MDdCpTE@t4 JA "}g$`2p^hqH 9)&--)  / ) 0 $v 5 ' "+ v) U@B`@c  /AB  6 P Mbc`rrp ^p;  "}g bGc`p+*$!p b  "}̔ "Pc`EqȪ+pA@  pA@ "}̔ sA@ s1 "t#sA@t!a`p;Op;hفnj "/ذȻ}@ }@ }@ b c "Ô@ "ä "}Ĕ $}p c "81# @ * "p .0$j ؀Ȉ}p( bb1\șǤ!ip .0$j )؀Ȉ}p( c# < "~< baș"/ @+ @ 8><d0 ,0>@0 ,&03},̍03T b>H b@+ !p .0$k }p, bb1Ȫ"ɁD}}Ј}Ј} 'p Jp p ߈١n}p-j ذȻ}p ,$!bb1aɡ1>.2 " N d0 0'p'0P0'p'. >pGb0"#"b$"2͑P@I d(B!3AWB  "} = -܍"># -cd>#qHx$Header: object.c,v 1.1 88/09/20 09:20:50 pickens Exp $MetaWare TWS 8.87object save state%s(%s)L%d%ld][%ld](R%d){ adr voff=%ld vol con tmp ptr aprel}[obj] %d=, len=%ld xlen=%u qn>!m !8"P//&D0F ~Pd$q:p "cpR$q:ؐș_ pIp E`ЩŠp@ Dcpp؀ȈA؀Ȉ(cp2Pcp3$ c2p)Pbp2b $ ($$`p "b@B؀Ȉ((cp$(0`Щ >>$E@D_ q:p $ "4`pTPcp3qddpD`Щ ^ ^$bp (d "@`Щ ^^cp$1: "P$1: "Xz$1: "dn$!:,c "h]$1: "pQ$ "xG$:`  "}b"h0d "шc+$!:X4` d0 "јc$!:C0c "Ѡ$q!:׫8"-0c "Ѡ$[!:< "0`Щ >> $A:c103 "}b#"0c "0$'1: "Ѥ$1: "Ѭ$: "Ѵc$b"I@`Щ`ЩŠ` bЩ%Ų  6؀Ȉ(x$ (p$ (čh$ (ȍ`$ (̍X$(ЍR$qHqHxnbA$ @nm    !=0 b0!-0! nm @ & "_ M@ b@B4`C c@p-"0 00! MetaWare TWS 8.87NULL:%d<%s,%s>R%d.%d%s<<%s,%s>>%s<>%sLit %dLabel %d#%d#%ldnode %dgoto-handlersection %d(%s)%.17e#%stos:%dsp(%d)stab:%d[1234]line %d, @D_ p4#!p4#xx#"#RR#nn#JJ#**#00######$Header: ops.c,v 1.2 88/05/19 14:07:19 pickens Exp $MetaWare TWS 8.87  (08@HLT\dlt|ՄՌՔ՜դլմո$(,048@DLT\`hpxրֈ֌ִּ֔֘֠֨֬ $(,08<@HPX`hpx׀ׄ  EQNELTGTLEGELOHINLNHABSADDANDBBBBENDCALLCMPCMPUCOPYCVTFCVTDCVTXCJMPDIVDIVUEPILOGEXTSBEXTSHEXTZBEXTZHFABSFADDFCMPFDIVFMPYFNEGFSUBFLTFLTUJMPLALILOADLOADUMODSMODUMOVEMPYNEGNOPNOTORPROLOGPUSHPUSHBYTESREMSETSLLSRLSRASTORESUBTRUNCTRUNCUXJMPXORKILLXCALLLINEARGDEFADDAREFSTABPOPNEWVARDEFINEOFFLOADMSTOREMPUSHASTOREAFILEMINMAXMINUMAXUFMINFMAXANDNOTJMPIPXJMPEXITALLOCASINCOSTANSQRTEXPLNLOG10ARCSINARCCOSARCTANARCTAN2COSHSINHTANHASMRESTORE_SP5!!`  "tc# $#! $! $ ٱn:!;1,!(  ɱ8#:!*`  "tm1.`0k - p;p- q;q- N N- r r- ,ɱ8.!* ! ɱ8߸npM@ ?00 00 qng h0i@HW L @v'Ad HWRu'9!%$0ܪ1ذȻtlڬ Np+Hd*pH=0Bu7u-C L  v7v-7 zL  w7w-+ r-`  "c@ gJJ- get 4!qHڤ>1>0  N h8 0+p+0d0+p+.>p+L`0b0r"B"pb .r p=H )#rp4 nhԔ  G0Bw h+hd >j :Bad+dj,, ٱnk l0X t\`  .1B%m  +IM9C -ɱ8߸!١nj m0k@H :LP o cBl  bcЍ'+,b3d,ɡ<ߨ1١nk DH͍!@ڢ DH &    JK cBm +4d-ɡ<ߨnl m0 ;Auܤ)03_  "cЍc441 nԤA,! nԤB,! ٱnk l0m@b8bcФBm  b +-bɱ8߸1ٱnl  7 lb,03DI  ML  ? ;<0  30s q,0,ɱ<\01 <4dЍɱ<0\0 <4dЍɱ< cФBk  by++b4dЍ+ɱ<߸١nj k0l@   cCNm +-cbФ4de-ɡ<ߨ1١nj k0 ] DIM c@C l  +,cIMb4,ɡ<ߨ!ّni j0k@lP  JbcCm  + QBE-Mc1 "_ b \-+MذλD ```  bcd-ɑ@ߘQ١nj m0k@lP   "Ԕ jbcФC[m 1=+=-? "_ Ԕ C =ԉ ) bФ2A_-ɡ<ߨaqng h0i@jP U  "Ԕ  |αS0_ p,hbp2dep !cѤ cd#!bpcCj +q6 p,Ԕ W ԉ ) b2A*qPxaٱn=Ql m0k@    "Ԕ tbcФC~l + ~1}!ܶ-,? "_ Ԕ C ԉ ) b2A|,ɱ8߸aّni m0k@jP r  4 5 ```lbcBk  +cd6+ɑ@ߘAفni j0k@lP , aL 0 "_ ͂hb2dep !cЍ cdЍ#!bcCm ލ+q6 cd-ɁL߈Q١nm j0k@lP  bcC{m  +1-Jbcd-ɡ<ߨQ١nj k0l@  * g`  "}b ZqJ@`Ъ  "b@2C b$`- 9`Ъ  "d@4  "_ 0 %  1      cdeЍbɡ@ !cdm  "_ 9;bd  "_ )+c|\)- "D] * "_ " `P "b   2d(R# %J"r:0bPe RbPɡ@ߨ1ّnk j0m@lPibc@4bcdm "8G ;cB'tj  ) b+*`  "tc "0#(cde  ɑ4tߘAnl00Adm  b)-` @Dtb0302-` b124! nl LLI A0+ 4k bƋ,LRp@ (p 03 0dw8ɡ@ɡ@ؠȪ_ ߨnm  h *0B +_ p=#3N @ p-RL2( _ " $u̔ "t7Ѝ0z "}$(1Z, " h! 000 nm . cЍ  .cЍ(L "Ԕ y$ 0BiD0342+ҍ"4ڴ80 nl m0 |D H "Ԕ 3M 60"<@Dt$0342+¤-4! n݃t]Q]MT.>AK 0cP2 c-#Tז((,00 ١nk l0m@d hl  "Ԕ ,0Dj  +ʤ -ڤ H/**ɡ<ߨ1nl 0Bdm "\  + + "_ BbФ4o-4 ٱnk l0 0C,m  + -03_ C4B-ɱ8߸!pQEc@2c)#AE$ an2!113AhPX !\` VN "_ 2# $!B2# !hdD6AΡs "_ x A6Aڱv A6Aaxր %ؐș_ \, [ ,"  e p)BL2(vAA6A%0zi pwp4 r5 1l)FP)c`?P65A| "cp @D_ x v1`0b x)161 v1`0b )161 vA`@c  "_ L)A6A00v "_ dêBeId0AͲdKD)E10 s) "_    )ٔ)tQpG0Aq1 'xbahah 3Փm \ Շ , P0Ek p4 5 +2P / "bЍ ) q1)$)ah ahhqng h0i@jP_ p<γ8 2 xxxpL   @  -bp{h0l1s2v341|516cdeP:."q h /qhw!0l1s2v341|516cdeP  "q hxn/!Tw!0X1_2b3d4lh56  T Tȱp!$! pQEc@2c)#AE$! nm `0 "}bs2 ;A̤)0! ١nj k01 "cBlЍqA@ A '0T0!1 " cb0BAؤ +q "$clЍɡDɡDߨ!nm $(  >0B Ĥ+0 ١nj k0l@mP ' $ \bcdЍD)ɡ<ߨAٱnm k0  . @0Cl  J)mb>(@4`  "}c s2E!s:# (#@ (# ( "_ + bЍP), +03QX,)ɱ4l߸!ٱnk l0m@ o bcB!0342"cЍ ɱ8߸1١nk l0m@ 8 m cФBj  ) "_  *cЍ*cɡ<ߨ1ّnj k0i@lP  % cBm  ) "_  -cؤ bc+-ɑ@ߘAnl0m@    +cBX0342+41 ٱnk l0 s b;0< c ,Cm "4- b+--cɱ8߸!anj k0l@0Q Dai`ap؀Ȉ_ p(2 g   Eb1PbCm `b b)ҙi b))p1-~ Dq '0dpAG `@cc`K)AG aPѴ` p83$Ѵ aPhQفnm j0k@lP  bcBFm ލ)ؐș_ p) -c2p)ލ+ -c#ɁDɁD߈Ano `0e@(cd4,1 no `0e@(cd0,1 ّnm i0j@kP  Fbb1DbФC~l b),b+,!B  ,cxɑ@ -,ɑ@ߘan.n.0 !ٱnm k0l@  bcB~Fm  bc.D)- + -ɱ8߸1ٱnk l0m@ W bcC~ ?2)2 +2 -ɱ8߸1nl m0ܔ  PbcФB}?2)2+4! ٱnk m0l@ؔ ܔ bcФB}|m  )  b+-ɱ8߸1ٱnk l0m@Ԕ ؔܔ bcB}`x)"cЍ1ɱ8߸1ٱnk l0m@Д w|Ԕؔ bcB})t)+ɱ8߸1١nj k0m@lP̔ BxДԔ w|bcB|pk  )  bc+++ɡ<ߨAٱnk l0m@Ȕ t̔Д <xbcC|ll ܤ "_ Ԕ "1() /,+ ,-,ɱ8߸1١nj m0l@kPĔ pȔ̔ tbcФC|ihm ?   "_ Ԕ "1F$)  +  bcɅ---ɡ<ߨQ١nl@mPj k0 ^lĔȔ pbcC|d456ɡ<ߨ1١nk l0 /hĔ dl "Ԕ @be ؠȪ_ p*BN2(dbe bcP e p*BP2(M^ȔP p*2L(dЍ>p*BP2NbЍi\PTɡ<ߨ!$Header: put.c,v 1.8 88/11/18 12:16:04 pickens Exp $MetaWare TWS 8.87put save state***In function %s: level=%d, curr_level=%d After massage phase: Just built flow graph (ident_hbound=%ld) ٱnk m0}pLA0L@ .0d.e.pL`@.c #" !# # $ɱ8߸!nd "_ @ Ab" Pb@!$!b"  Pm034bЍl.cФA Pn_ p,2"fm p,2"]`Ъ Nc!#` b! b4 ٱnl m003_ (kἪb 3 "B>b;!B`@b! ɱ8ɱ8߸!nc 121b ١nj k0l2݆b 2d0@bcB`@.!b b@b@!$!b @  ה ,"ɡ` dAFbP2 , 03pqS01RrsS23Rt4b4 nm pMO}r=0 .`@@AFr-q  "= pqS01RrsS23Rt4bЍu*0 n_ p-BO}N 6=.W.p-B04 `0o ^ !_"d@d@10 "0@0 MetaWare TWS 8.87reg R%d is not paired!regtab save stateqni j0k@lP}p .!N6@0-.!N4@/}.>,ADqHgqyqp hbH (p hȤ "} "} "} "_ 2HbpqHxAnl } 03_ 3Lp 44 $Header: section.c,v 1.1 88/04/01 09:12:30 pickens Exp $MetaWare TWS 8.87nԔN 20..02^..., n̪$m@= "8f;D4-cHo M "cf$D4-LHo M "cf D4-5Ho "ceD4- Ho "ceD4= "̍eD4HM= "ܪBs ] DDY<0eD4-Ho @ "cs r]q30deD4-Ho rM " ceD4 "02c>q3eyD4b0".P//h,\Z nd., nl m0>1>0 >b0$b!¤"$#4! nl m0>1>0 z>b0$|b!¤"$#4! nm >1>|0 P>b0$xb!Ҥ"#0 nm >|1>|x0 '>|b0$tb!Ҥ"#0 ٱnk l0m@>x1>xt0 >xb0$pb!"23#ɱ8߸1nl m0>t1>tp0 >tb0$lb!"23#4! nm >p1>pl0 >pb0$hb!"#0 ١nj k0l@mP>l1>lh0 y>lb0$db!"3%#ɡ<ߨAnm >h1>hd0 M>hb0$`bҤ!"#0 nl m0>d1>d`0 $>db0$\b !¤"2#4! nԤ,c1/, n# ^L` d@    菔 !# !n^ВQ^NPo@T`>Hb@ Q`b@ ```   0`@b@ '$Q݆b 4 b "$Hb 0-0>Hb?@b?@ nԤ.c1/, n!"^D% N<` c@ %n>В1>.@$8b@ +(1#"m 8c @ "@0 >8bӤ.@$b2/r0 MetaWare TWS 8.87[FUNC %s(#%d)][VAR %s(%d)][TAG %s][TYPENAME %s][TYPEREF %d][TYPEDEF %d: tc=%s, cnt=%d, len=%ld][%s %s: off=%ld, len=%ld] [ENUM %s=%ld][%s][???(%d)]ٱnk `l؍r-LB "}LԔ  < " aɱ8ɱ8߸nm ߆̍r`Ъd03}$̔0  4PU d bPa00 nԍr/Ȥ , nm `Ъ "c#čobЍ0 nm Xb"0 nPcP3b"#!ٱnHH "}  lɱ0`0b(21 !PU<0Bn(`0 "} "ClY(Nb0҅}0-Ӝ. p 0 "cd.$ذȻ_ p+rbcx/}xNb6O.p+`Щ }tɱ<ɱ<߸1١nj `  "}k_ p,v2 DL 3 "Cw + " h+@# ) p,x N " d "kb03\@4q L]^ p,+:Q2Q"xcD ɡ4pL=p,RxbP4L=$_)+L=d p,Rx(ɡ4pɡ4pߨ`  "}b(22BD ٱnk l0mPb@(de "C0cdWɱ<߸Aٱnk l0mPb@`e "C0cdWɱ<߸A݆s/?!O"_3AnД7N*0 &\.@`}0-03}p#!0#p .5zh.$`0-00} 03_ 3 鏤!2```鏤 nm  "}%cs!!1%0 an`1h0Ai@QjPg  .>A.,0`  "}k "ݔ  b0@w( "ݔxq  0DOM4   K4C 0r   # {3q r(% q D  b@d p@ (D[03CRUUY0QeVL "} $bϰ@PUD,cp233YdBDDY<01!2 3bPeV_p4+5!) "_ b:a`bz@c .XRwPOP0O1bpcdzauQp6!v PbP@d u1.'LbB@c !P?v) 4P b-@c O!P @DQ9A@DQ9AyAp{ b @c .؍Dv!crP "_ 01@2b@ cdp7q r+'!C1Bup* ; " m "_ ?  "~ 7wt(|"56P//LH>l>xDq "~ 4t D "6P//vpht +_ @p=}cAp aT+ͺ@p=}c@p aT   e a \  " d ; _ p-4 b}@c p-B4bp!+ - bh@e ",03Dl dNANbЍWbЍ!+   S O "_ |Bs;bpaT "*݆0-;ύl0-03_ SzR "}2[ .cd cOaT ܍xaTaT  #hQ(anTm 3!L= @lJ@ 2 qc103 "}i# "_ 2sL0tŰ!03\@4l" "} sH M "Dx0I c1r1eSZP=2 s ,4(sI  "_ .ݡ@8NЈ֔шqOz Obc$ "Dߔ 3 "_ + "ܔ %r 4 r 44t!Icpe>XbpcЌrȉh I(ce.XbpcЌrh r \ 03D5b03DI(e X# "_ 2bѮ "_ 2(uAeXbpcЌrvUh "_ 8 7T=u1 de\bpcЌrZ9h bpcЌrSh  .>A#&bcgI(ceXRZ e8Q9 d\!OcЌr"h "} YIs=.H_NЈ "_ . 03ܔ09:#993 1(81(ݡ@2 :03}tqOepZ e8Q7S8qep  8 Ac>` "}p 0bpcЌqZh h0 bpcЌqh 8e "D0! Dcdd "}p 60Ј`f}bcPХxQbcrAL}xQ=w7p0 N ŰN bpcЌqYh 03} "_ \p "D Ҫr 2 0 rYIs=.P\Xc "}p0P Pb03_ 3p/}a`a`NqO!OcЌph bpcЌph h+n "} @DD "_ 01 2@ 4e@p P Pn D " h!D݆2,3 " dn @ }012 "_ @!0@Pp  @݆Ȥ݆an012؀Ȉ_ p(@!0@Pp Yذͻ} KN lbLHRqB@2I. p  01!2ͻ@ p NoL/ 1 pqS01RrsS23Rt4^  jY/X jذͻ}.2>0}@  "DcP8.2>b˞4j @ "DcO8ذͻ} Hnmgmvu5N70(lj/LO'oXG`$ &.>AsXngmO'N7oe uXG "D0cO8ذͻ}ngmXGp(|(Ѵ bЪ%b@ "}$ ݆s \LA<@,]s $3a la lp.}d}^pXGhnl "} "EcO9H5݆0 8  N 8ȩȉ 7-w-57-w-ɺ.p=w b 02P14݆ nm "} "E(cЍN@D}p$03p ` 0wb p0q@0 $Header: var.c,v 1.9 88/10/03 08:47:52 pickens Exp $MetaWare TWS 8.87tc=%d len=%ld aln=%d ->mem=%c VA=%c reg=%d rcnt=%d rsize=%d parm:<%d:%d> mem:<%ld:%ld> rpa=%d malign=%d ireg_bytes=%d reg_arg_bytes=%d var_state_entryprocess_var_file; cnt=%d vpresent=%d [v] %s #%d `%s' mapped to offset %ld [v] %s #%d `%s' mapped to register %d >>>Variable %s is inconsistent (var=%d) class is %s [V]do_vardef(%s,%s,varno=%d,len=%ld,%s,align=%d) flags=0x%x L%d.%.12salloc_parm: tc=%d var=%d len=%ld align=%d reg=%c Memory start before alignment=%d Memory start=%d parm #=%d parm off=%ld regstoresize=%d mem_off=%ld [v] blkdef %d [v] blkend %d nm p  q 2 0 q p-0 1-p q-@%2-p=; 2q 01=p $? 0  q-p 0-1 00 ١nl@mPN?@!40! 110!11b,pqQ0 1]rsQ2 3].0ހ0ذȻDΫqp q]01Qr s]23Qq0 p 1 r0 q1 p2   r 2 ɡLɡLߨAMetaWare TWS 8.87ٱnk0l@03_ C0;Q]Nm  )t 4 -cbɱ8߸1n`0l@mP8dR]'12)t@D42+7u2454Q nl@mP@D_ DS\4503624! nm @ -~!-`  "tc "0#1#00 nmPR\12)t@D422+7u2450a nmPS\QR)t@D4R2+7u245R:-?v2460؁ nlPS\Jm !-)t 034 -6+ ;u-#5 1-Îb4q nl m0 "0!!A!cPoqQpAb0<Aqnh i0j@kPb K\ 0 "_ rhb2dep Z012bcdet03DbdeЍZ0123cde qX\xqang j0h@iPIڷ\01^201ded 018ded ^0 12b@00dei0a1a2u31de01201deN( $01a0&de{ 0&80u1b@debbp[ a\hQanf 41h@gPIږpqڱf01j201deڱf01Ѥ8de$j0 1200de012u31de2t 01q201dtQ`PlP 012Q2deKcdy0123Ѥ2de012303deb`[a`a`hanh m0v(\i I(0Ф!a$p)b1jk b}c3383`3a0 1210/deЍ0120u 13c`deЍp`p 138 Ž0`u1210/deЍ`99 Ž0`u10&deЍ ` 0u18deЍbZMba$p a$ph!nm003_ C08QY)t40! ܤp!03OR$ ّn?Ai0q 1 ɑDj >ذȻ#PO bcdeЍL!Cq bɑD< Ӕ Ѥ ɑDɑDߘ!anALl m0LD͎GDJڱNbޯ͎96<1   2  !aTq̴͎刀!N !aTڱN,+ u+ !aT  ߔ q̴͎Nc202 "tk#pKbcЍ  qKbcЍ} !aT; ͎Ĕ ,`  "tb" ` PU}brbG1asgB0Aڢ OOOŔOOOŴPUTw nF 4F Bnd  ) ND bNFGN@!pAnd NJD sNG rndg qagd t !aT.H +`0 "}d$hG$`  "}b !aTq̴ JĔ aTh!ntA,4(RFp44 ntA,4(Rp44 ٱn:!;1kP@F Im b@1Rp ɱ8ɱ8$`  "tm "#hcdeR؍ "#lcde ɱ8 ɱ8ɱ8߸!ntA440Sp44 ّn`b Bb Br^sK b$bR2"!b 2vKu; 9͎b!*"br ni%yq1"!),0+b"1+/3+b"2+$5+b@!$"b 6 q菉x١nj k0ld TP)݆p=10=0 d p=b0$b 13!4 4,݆q P%p=10=0 Rd Tp=b0$bTopq_01Rrs_23RT!R 4Tb3ɡ<ߨ!nԔ  ,0|q", nl0m@1g1¤341 nl b00Om b1Hq 1H s 34! ّnj k0lpe %݆r sMA3M@ pe sMb@$c %!#% $bs".!.3#% $bq"iᚪؠȪ} iᚪؠȪ}p*o)G/"/T>pepe< 54dq4# >1>3454d1$ɑ@iᚪؠȪ}ߘ!ّni jhb " ذȻs 3 . s c4.|c# !#NA2CAN3Clɪ}pMeLGEB %s >|dDc4NhdJ1#  p e  .!.ɑ@G3%hc >|cq >1>b.|hc cr#ɑ@lɪ}|$cߘّni j`d $ uذȻs 3 .x B`d s c4.tc# $!#.|!2#!.|3#lɪ}p-e,G%"%)>t`d s eTc5 1#  p e G3%`c >tcq >|1>|bM.t`c cs#ɑ@lɪ}t$cߘn0 ` bE"菔0 ` bF"` bD"!nm  -O b0! nm "t4  b0c@+- b01 0H 1#nHԔ " ,, ٱnk l@H+K"bP//FzZ`lbpnljhfdb`^\ZXVPXJZDB@< 40.,(&$"h  *@203m0Ӊm m0m m0m m0m m0}{mm0wb^qm b0c]jm b0c]cm0b0c_\m b0c_Um0b0c]om0L JImEmAm=m09m05m01Ӊ-؉*Ӊ'#.> AΓp@(H+03D"BD(b=bcЍbɱ8߸1ٱnxQm H M0 l0 y8t|o Df|b8X "DI  8G011AAI] "DCP 8/DP011A&D".> Ap@(H-03D"BD(b<b@hɱPLe  "f4P//4pnljhfdbv\vߺA "١nk l0m@H 0;l3fP??nl(~zxv*rpnjHFDb@^\Z*VTRP Ј%v 5  - K  bɡD 00PɡD  ҈v 5     K  bɡDшڤ0PɡD 0PɡD  v 5  & K  bɡD  0PɡDv 5 ”Јˆ  K  bɡDˆ|1bЍ H q10 ^ 0 +Rq b0wPHk  I[ 0 "_ h"2dp )IKp+0RLJm  IK"c@ѧ )--cu 6 b2d k +cK  bɡDqc1@D_ $b#"" -L+#*J+I[0!hb2dp C  u+- 6v 5 +cЍIK * J+I[0!ͤhbcdp l  t,- K  ,cЍbɡDH H H @D_ ߨ1nԔN 0$W(..02,..c0., n@D}ԲB0b@Y"c 1c >1>`t,, n "T03}` m  b4 ٱnk "T03}` m H,? b6G 3,`  "}cD  ""kP// b\  bOɱ8߸an!DD >!F1>@naTFc202 "tb#" `  "}f6srGv11@ 44?3010ŠȲTp- [p10  0 80 6KC s64 , 0 F;4G %q1  6 0 s;9 r  (` bp-ȻaTvaTaT hanm 7ma-8!g ށ9ޡ-:L=2΍ށ 93έޡ- :JI=011,6 ^3n"P??`  "tlH , 03$03$p8!@ ,<T9!D  ,2T7!Nr :xq&T8! g ~ܐq~8q+-T9!HMA03_ cĔai y`p8g9i͞ܐݞ܉9 Ք y -T:! H`b`" '` b" )0[Y1b2!2 110 5b0##"o@/,'L/&$u/'!M/(v/)w1t/#A/+/!*z1w/# p1/ #ba0|?0 %r!2 11.;` ob1 @pqS8A01R( ```p0H ݾ1q1$?r! %!  !ba0|Xi Ui hnԤ "03" 0@W, 0 03_ C 303_ C3$ #  فnh0@¤"`  "tl b" "}p bG"`  "}bD r@ ",0B0Hsbr D 10  "0,D  ,00Hs2N,Vbr 0o  "1, L b" "p o @0G /O ?  ```r 2 se 012F3&, "T .5.\.bɁT߈!n "}Գ .5.7.,, ٱnl m0 03=d 03=13=ذȻ_ p+ J,3-p;Ԕ2bbq q2p+ Ԕ bG ɱ81=ɱ8߸anm l0 03<:"jh|\Z~vrpnj&$bX~|zxv@><:42I<, ,K ( ,1i bq   "vRP//u,3) & q bF!숀쉀1,1j ,0k M,0H H sRsKbcwL qq;0# 3@D_ p$ J,0"3*p4Ԕ2b8̤& H!sBb2l  H v, e sKbc, @ obq q2 "_ ԔbE숀WU1:,1(k ,0 HAs2b@? 3+ "t#]lmLm #b#H#ݴ(8 hp4bq q"bET숀1+,1k u,1A -Ţv,1A" VtA@H,-. ```" # - ┠ %u1b 3+ "t4bnq q"bD숀1+b2l H cЍl uAb1l H cЍl rs! H,- -b0l 6H,b1l ,H,  %H," - . " # ) 3 7 H I J K FbcЍ>l ,1k ,0 d  &b@ H 4(x3;bl  03t4q q"bD)숀1+,1k ,0d  b@o d0PbcQ0Q H  P&+ "t4 bPq q"bC숀1+,1rk ,0jj ,0bh b^ ~bV vbZi j0bSe `0bcdQ0Qq H W P&+ "t4 bq q"bCl숀751+,1k ,0H! H  s"tP &+s"iP&++ 03t4\` d0bcl  q q"bC숀1+,1k ,0j  [,0h b "b bi j0b0!11bcde$ "_ bf bjh|  0P-,K n F f bbGi j0,\\0!11bcde$I ,1k ,0H503t403_  s 3 s2J b3+s;bl q q"bB71+bɁ\߈!n>Ԑ1>Ԥ@V,! n "_ ̐}p >А1>b@. p 4 an$03}j2:41 "}b# pYu+/QXIt+f 03_ #H8ؐș.Xbc@p )t+F ">+1>̤@숀w+_ ؐș.X p<= ȍSp<+**+~@ +~L " h ! p< " ~ p< " ~{ p<+ADm Dߔ[`P "bIK@@bxq´ +cd5bPDl [+cP;$͈z݆ ؐ b@ jKA B>+1>̤@숀VCSt+p LIK+c@8 K  t+\ 8IK+c@8 K  +! "t݆! u 4 5bg +Df IKD+` 03e@ 03Dߔ0}04H/siIKAřř gb0R?l "4,,c|bqbb@e(FDߔ IKA008IKq[H+I  bPjqbbR?Pl 034[1>bP@>숀_ p< #Ԕ 1b&Hk C}Wc q3+@숀n# J +!v+ȁcdЍD #r! "+0Z4i H s) Hv"cdЍD r!c  s)q q20IKp+0/S;m  IK"c@<)-s)u5  I  p- + J |H bHk H K  Kbm +YDq ݆ ؐ b<* CH +=2 40 2KA.b04Dq  +`  "e@  R[ =+;=+B$ H cd!H p<#bpؐș.X8H YPb"6P//R~0b|zx" *ljhfb`^\ZXVTRPLHFDB@><:8640.,(:b  q  "}m l  -@D}` c 441@D}c4a<ҳ k@a X03_ ؐș.X1[_ s)7H2s)3H2;H 8H 5H 2H /H ,H H _ $H _ H _ H _ _ H _ H _ _ _ H _ 艏H H H H _ H _ H _ ȉH H H H H H H H H H H _ _ +H han#ǧ "}Д ^ "~ Y "~ "L(ؠȪݚ "}Ԑ*N2].hw.t "T`  $!N 2E.l_.p4ݞ|ݞݞݞ}Xppwl612ޚdp?`0 PU}p%b/ 30 "p!p7f2c$@D}p,k+$!b$p  p7bc J@ $ k $(  "} pbcH  "}Д  "~  "~ :ذȻ+p( t:0u+( "~ p p,Ȳj }p +$!bb1,ȻN.h0.l0.x y0ݞx. o0ݞ. e0ݞ. [0ݞ#i4aLpkp "~p,h$Header: valnum.c,v 1.12 88/10/26 15:07:03 pickens Exp $MetaWare TWS 8.87op==%s Local CSE elimination %d local CSE's removed %d operations removed thru constant propagation ١n "~03}IJ# `  ؠȪ0  ` 6ذȻXp+*N0,4*l p:2p`  b+ bF- b7*8*5b6* ɡ<ߨn.Д .Ԕ .ؔ .ܔ . @DX "}2D`B0 0}e0RTdPAdDDuO eR^Q^RtOeE@0E3E6E7E8E9E:E1E2E4E5E300 nЍz݇t-4 0 n:Am ( "_ 1*0 "~#` c "p#000! qn03w#x3@D.Ĕ03w#x3@D. "Xؐș}p9ȃ$j#TذȻ}p 84b0!bApw~b0"#!#"݇t lp  036.@T 0,q,  036.č@F 1,@p=C 0$AC ```r  036.č@* 2,pؔЎm QXqLp tMr,c p(pݔ@ (p pL>b,p qL> b,p rL>b,ȈqHS O q3,t,  036.>4,pI04 0$14 ```u  036.>5,v 036.>6,t9Ȫ~#pIB0D4pIt9#@B0D403l "p!b21!0r2q!#pIq!"t9p$e/b"/!/"k#Ps+}Ȥд 0$Ѵ ```s+pl m $\`Pct3>v8,` t9cpIv3u+>V%p c20102t)d2 tD> p c20102t)d2 uD>p c20102t)d2 vD>Ȼ.ݮx9w)@DXf.x9w)@D`Z.pp "X$k{ ^}p-cp04`0bJb0"#!#"t l063.`f6p6=7,p6.<8, pIB0Bs4pI0pI4 0$14 ```w,04 0$14 ```w{22 "p!ذͻll0r2kpI t9p(e%$` m4x-}Ȥpt0$qt ```x-U pQf_ggV`Pcw3<8bpIx-g t9x-B0A4pIx-r}q=w]m@pp$4ptp 00ёT 𑲳p "~  03~ 003~ 0 r1 "h!q@ "~ Dp "X$m 9ذȻ}p+c04`0b&b0"#!#"t d#wD>$p8<4b0"#!#"t d#xD>,zO.Dݮp "X$o 03}ePTbP!b#"" dPBEAEBt)bB8a Xs+∏뉏pt9t9gt9pwp~phan1LbؠȪx:w*@D.LذȻ}p  "X$iNtZ}p,c1b#""4b" ! "mRy-  036.L;E9-pJ04 0$14 ```z 036.L;(:-tZȈ%TpJB0@ "l03p1l#q1ˆxpJ tZp+c#$` m4z-}Ȥ0$ ```z-3 p1ghx7`0cy3;rpJz-x tZz-B0@<pJz-y=q]ruw}f@`pp0ёtppБT$p pp 0Ӥa4 "l |~@  "~  "~ q1 "@ Cp  "X$m 8ؐș}p9 b!b#""&c20102t*d2 yD>p c20102t*d2 zD> aTؠȪԈp tZtZp hn@D$$4&!١n03_ ij ` 03crj ذȻ~p b p" gḣ<&,$,(c `0 "}bpB;L~ @ P "}̔ O\&L$ "{Lp b p"LRb@1@/;,p c p32\ r 2 @ <( "{,2ɡ<ɡ<̇{L~ p b p"p b p"ߨnm0@ ;-`  "c @3t!2ICp#8R/.p 54)! "~03}Դ2 44! فnh "_ 0`0@Ddi0ؠȪ~p c pC@0q03r2H Ԕ b Yp b pBLTp+1@.k p c p31  =b܍Vp=b܍Lp!c/Y "~ 703} "D84b1$ɁHk 0!m p b pBH    p b pBɁH߈!١nk "_ 0O`0 "bAl0~p b p20 6 "r2LSp+1@. j p c p30 "~ 03} "h;4Bb0ɡ<ɡ<ߨ!an؀Ȉx8w(@D`6!6p=7di v!p=7d4!v!p=7dj "X03}ȳ$`#5U "};4`0bB#2!u ;r!` thl3 Bpxsyd p+ !8  "}g `1po'` t(msy d 6ppsrd ppk`{fQXo "_ vpe`p "bW`p "~bp M~p=7`0b pB#` ;b`,Hq1p p`pc ,p 0# "~ r1 "^b`.H  : >  qf`pszd app8b5@ %~p,g }p p a'c 52c9p3Bb`$# bcpLp qpZpHsr$d pp8b5@ $}~p, qdB`@c pDcp40 bcЍPp,ѴuȻ v!,ah03}ppMp,han "}Д  "~  "~ "h`,  U7 "6ܔ  "~  "~ "ԍ?`12͐L + "~ @ @D~03} "`  ͤ0 $q @ ؀Ȉ}@((@(@ ( "~ q= (0& "rȂ q=0 "c`q=rMbp`b`,q=0 r `pwXypbc9y Q`f}v t-c04-;6-p5. . pFpTcS  "}`Poo/ ot o9:7US蔠,4aLذȻ~ ݇ԈP@ ph$Header: cse.c,v 1.3 88/11/29 06:50:21 pickens Exp $MetaWare TWS 8.87COMP_PAVOUT_AVINTRANSP_ANTLOC_AVOUT_PAVIN[CSE] %d iterations to compute avin,pavin vectors ANTOUTANTIN[CSE] %d iterations to compute antin,antout vectors PPIN PPOUT[CSE] %d iterations to compute ppin,ppout vectors [cse]Just inserted new node %d between %d and %d [cse] Just insert following in new node %d: [cse] Inserted at end of node %d: [cse] Inserted at start of node %d: temp pool[cse]Deleted in node %d: [T]Global CSE elimination [cse] CSE phase suppressed [cse]Relocating tables because last_reg (=%d) exceeds last_cse_reg(%d) [cse] Pass %d of CSE elemination: [cse] CSE elimination deleted %d instructions; inserted %d [cse]Output after CSE elimination n "~}p `  ݈0 "X!N4 2-p 64 n.Ѝ "X}p_$d% 03}p^TbP!bR " b%00p_ nЍ݈r-2 0 n9!m0$C "_ 1&0B "~#` c "p#04!&`  "tl@ p,cЍD q,cЍ4  44 n9!d m0bЍR$B "_ 1&0A "~#` c "p#04&c202 "tl#@ p,cЍbD q,cЍY4  44 ّni ذȻ}p  " jpɔ Z=p:t,&Op:u,p:bd0  p:t bo:tLp*c 2L `Ъb p:t"L p:t,OH *  Ŕ  8 : > A q̔ "~ p  pJ>ɑ@ɑ@ߘّn "%@Dc . "XذȻ}pKȤ$l$ ;}p JDb@!b)B03rip) 03~@D}.405 0)pCB05 bȪɑ@pKߘanl m0 "_ Ј`Ъ  "bcЪ201`f~pbp20aTpwq1LSp,1@%,k p1pcp3(0 "~ 03} "<44b([8  "}i ` 1i؀Ȉ} pHjq ;$  3q1b&1< "~ Gp8 "Բ:44b(86H  6 : >   p "⤠LDceЍ4p1pbp"'8.>A1@q aTh!anؠȪp*03$/ i "X}pLȴ$`$0 "}c44`0b [Q "}p2f5c`o? STeTUQ2? ؀Ȉ~ cPpJT04QT ```; 1p"f#gg&"r bp2b/bg j@ >bd<p:b. Epw}؀Ȉ~pp :cp0b0%"b)p"Ccк4# ) "_ "r!cp171 "b#"#"cp2 "~b#p" 7bSpqppȻ b  aP@pLpJhفn "}Д  "~ ",p "~03}Դ2ɁDؠȪ~.̈1 q @ }@- @-@ -q ᐔ . @  "~ 9ݺ\-cd -  "X}p=$j# ذȻ}p <41bb1|$ɁDp=߈$Header: tail.c,v 1.1 88/04/15 09:30:54 pickens Exp $MetaWare TWS 8.87movable[tail] Just inserted in block %d: [tail] Just deleted from node %d: >>>>Node is %d (pred of %d), reg is R%d; temp[T]Tail merging [cse] Tail merging detected %d instances in %d iterations [cse]Output after tail merging n.Д . . ~p- 0 00 n:1l (/*b! !b!4!*`  "tmp=bq=b4 є 4 n:1l (WA*b@!$!m=]b5  PUQX "c$>b@*(=]b! !b 4!*`  "tmp=b,q=b,4  4 an03_ 3 "~2`0 b%!2!+h @D11AذȻ}5@D11Ar!d Bb01K "~ ͮ@<`e 5!E,2dЍs.p; "X$ȣ`#0}p :41b pڔЎu-/QX "_ Ԕ M-`  "to nbMR`P~c"S`@b"BP b BoPT SP _ TST c1?1c7C""B  "_ m`K `` "~b003~6`0bpB10`0oqL p`pb t2b`qApqL p "~bb`%"10b(pB4L02H $Y A  "P//|zb(&$Z \!4 ~"ZP// qݔpȪb "~  "~ ؐșȈ)lؠȪ}p: 2b!(!b $m )c~y`.b2bpo bgp:ФTp= $)Eb gp ȹbcp6`p.brp xb$p=a XcP151c7?p;hn "}А*~ -2 "_ ~ (=1Nb06k.=1Nb04_/~ "T!N2O.,0 فn` i@ذȻȈ+d~p1i0m h@8yڡ:b%"ذȻr lb"1`0p,0 `r+d*`0p$0q b P" Q$p ` J  F`РrBop_M4d0EpBdpDC sBepEC0Er"op_50?ɁD:c202 "tl#p`p "dp4! `  +bm "~ " cde`[(cdЍq(cdeЍ#0$    t hqbaLh!فni j0k@` "lД)s c 52cpBc4 cM ђ bɁD߈1ٱnk l0q+ L `Ъb t2b bɱ8L q+k q+ bɱ8߸!pB@   b@pB@an1!012Qb@!tbr e@URseDpE0`q1ceURrcpC:@44?ų1Xc5p30`f~ }bplł@ "LcpdeH  p c p#q3dpe쉀:! p b p"cp<c p b p"dpe쉀"!p b q"cpWf ` &cpdmp q&c q3dpe! 034d:p034ecS   RS 034e:r034d cC   BC p17a XhQanf 6p2ؐșv),ph v)&pj 03}ȳ "Xp`5 !@D}peSTQo_ 03}uȻpȳ`5u "};41b2"vIyɪBb0#vIBb0# "}+$"01c`del y)ˆr03~ 20 [ "xc`1t cCr1yٳA "h4!t!= =`0bpB3A3!#sAB p@0 L-` 2!#c p p@0 Hҳ "ݜy)c211 \oPdpEQTdp v 0d`e qd` q 6d`u quȻbpah03}hّnm l0 bcs д bЍ Ѵ  "~  "~" : "ݠA/ "̍8 "XذȻ}p;ȣ$l# }p :41bb1kȪ bɑ@p;ߘ!$Header: lifetime.c,v 1.2 88/05/06 10:44:11 pickens Exp $MetaWare TWS 8.87lt vectors %s: %d[lifetime]Info regarding R%d: Nodes in which live on inputNodes in which live on outputNodes in which went deadNodes in which went live then dead[lifetime]Renaming R%d to R%d in embedded lifetime of node %d [lifetime]Renaming R%d to R%d in node %d [lifetime]Life time #%d for R%d: [lifetime]Renaming accomplisted nothing [lifetime]Output of rename phase: فnؠȪ_ p*ذȻ8. }p b! ! # !Ȑdc 9*N4zj(0+{,1+Xp=`0b##!c"=*N4zL(2+{g,3+p b" ` i` b %!5+p 6 %؀ȈLHc ~08+v+%H c t09+x+cJ44+p= x+c?4`r;c0#p=p*Šp y+(4`p;c0# Šp ɁDp=߈n̈8y,d9x,]8r,z2p,z04 ٱn:!k0(*_ p-2b{c 2@D8pcp3`o QcP0p00?c2rcpo cPp0tbp0p-Q` "8p2cpc52eKc4pE405r2c;p3eURdS<p4004t"cRp# 0#ɱ8*c202 "tm#p-cyq-csɱ8 ɱ8ɱ8 "_ *߸١nk "_ }pM `b p<b# "xcLpM ɡ<ߨ١nk XpM `b p<b# "cpMɡ<ߨan؀Ȉ}p8sؠȪXp iyذȻ}p 74b0!bpהЎLj "_ p2Ԕt-cu-cv-c3 dEB03Hd40p40p23 c52@DHd40p40 up"M@m`@ "Hc$p#^0  "_ p23dEB03Hd40p40p"2 ;b%"03Hc# p#,0`L `&``b t"caL ` H  QN : > @qݔwy "~$ pw_ ؐșL)8p 1̈8p@ȹPbcb"r bp"su  5 v-! 6-=*p )\p'Ű}p 5؀Ȉ8ؠȪp@xbcb"pbp"k u  5 v*! 6*:* Űp aLp8hفnؐș8ؠȪ}pڤ1t LA.IdEBdpDe_EŌ`@DeED 5E ! Ҕ\ł.u958 w~$@ "̍p 0 p 0   "X p ޾q b$(#0dDc p)wF0)w1)mp b p 03Xy)p c 0#@ pJ "ct)`bp0bɁD~$~$߈!ٱnl0m@@0 5!ɱ8"`  "tk@ bcdЍD +cdЍɱ8 Д ɱ8ɱ8߸1anh i00A` "c @3k "~$ +L,cd1,+Ȥ4`p!b2bЍȐ , Ȥb%2!8`5eU1Q b"6!r!"2!QbP#qQR1QQP4Q"3!`p!bm "}b-pb` pLp`p` cd/qLp qf`` "@or!pcs!p0u@D8bpc52bQ`P Pp0qQp/oRtQp/%0/v!b$p"c#p# 0# "4d-p034ebR  RR 034 "4d-rc b2   22 sahh1Ъ$@D}dB "}m o !]`PdpUd E菑ҳ !Ъ$@D}dB  "}mo !]`PdpUd E菑ҳ !n݈8v-t;-v-n=-u-h<-u-b:-0 n݈8{-}-|- z-0 an2!31݈8uM4Az-B0vM{-B0uM|-B0r!`s!bBb@%"{ c$`p#0z-Br cuMp3_r r{=`s!bb bj1 "}c* "}b g'N{=R`PdpEMT@D4eEr@D4h o:XP 4dPEB| j0p ťj&zdJpDI !q@D4jJpja@D4ddڪfF뤔 p0BF ȑ"' b sj1 "}c*  "}ko \{=[`PbpEb$ KT "4bRp@D4edT8 2j|-bppgx%z}jp qpw4gzrgaؠͪ4jjw qfz zp p㘉0 RT ʑ r "_  "}Դ \b"p bv}p2dBb{=bdUv=}- 6dEBz bp,12 *| bp%bsAr1t!u  z-h|-cu-<-u-:-euM  "}Դa`{={=h!ٱnmbcЍk q! ` p1d !1!!bcdЍ! k q! ɱ@߸ّn "XذȻ}p;ȣ$l# 5}p :4b0!b#ȑ!13 "~$ "px!c ɑDȪɑDp;ߘ١nĤ/ "}Д "Kt>7FT ذȻXp z[ "~$  "~& , "tp }p-j ذȻ}p ,$!bb1a /ɡ4PU4DD, p!$ nȤ 0!>08 "4Xcp!88فnh i0ͮش-}Nkb "Sc 1p c  d 4DݑpԴ ɁDɁD߈!ٱnk u   ,=(pܽɱ8ɱ8߸1n:!;1!. "4hc| 88nl m0>0 ".̔  N$4ov .̤4o..̍p.>b0"b !Ґ1>4! n.n.nMetaWare TWS 8.87فn "XؠȪ}p:ȓ$k# B}p 94b0!b04݈p LhM@p(B0M@qBb0M@rBb0M@sBb0șɁDp:߈qnذȻ}p+Tp  ؐșp @Xp-!N0n)L)@%@Dc t)Hp p+hݏ6p ذȻ}p;ȣl 7}p :4b0!b%4 Lg)Hc 0')Hc 1')Hc{ 2')Hcs 3'ȪqHp;xqn` g@ؐș)`dؠȪ}pJ `bp8bк# )xcvpJp@u  5 v,! 6,<*Tp p*c(b0%"b'p"Cc4# )c>p u  5 v,!6,qH<*HqHx1n݈p-Ht/-Ln L0 فni 03TذȻ}p+Ȣ`0l }Ԥ*cЌ+p ` c "`p#0ȪɁDp+߈فnh i0j@}p 03Tb0"#"m :+h  *G '+`  "}b p,+003}#` c"p#0ȻɁD߈1an1Dk0m DFbc 52q d2b#p4#0$b%"q=d#<b#p4#0$03_ #~*#ŽʩQ_c\b0%"qMd$3b#p4#0$Q_ aPFc202 "tb#0!" `  "}i srG@ 44?S0@2 "Tpr SP cņ 5ņ ډch s )@ ڃň iڃG+ڃ iڃň s rchl f˴h؀͈}gfpebqhhgqvphg0hpr3p!@ p!p2bЍp!D p!q2bЍaP\aPaPFhٱn;1l0k ,.bЍe URqcp3"dB4p+c%p#$0#qeРURb_p"=dC$p+cRp#$0# "_ " g`ce0URq+bRp"3dC$p+cRp#$0# ɱ8.c202 "tm#  "} cd0EBq bp#12p bp0@ p=bZD q=bQɱ8 ɱ8ɱ8q.z߸` c"p#003_ 03}p #pNeQPQdEDCD dEBoBPAEp_E0Opnl m0 " m w,hbЍ: "_ ?ObЍ 4  2,?@ ,?L " h bФ1AF403 ~bФA7403 ~bФA(44! an "XؠȪ}p:ȓ$k#4 "}94`0b"؀Ȉ~04 "l#pٔЎӤ@ "_ "rp epURp QVqݔ@ p  pL>p  qL>șJ "~* ?@DXp:#D`C 4@D}p24e0Qe_UU"qRHU_4PUc5q03_ ScP52o?U15p_50?Q "  aLp:p:han003l "p!ȓj#p0 WذȻ}݈pM@ p+g'$$ Lls,B0Il  "}fgg6s,4 LcM@r3  bg M@q,p؀ȈpHLdrDp  >HLdsDȪ p 0 "~2 p1 "maPaP@9hanm @b%"b-p"@ p0.H ".Hp0 "_ pPQAE.H`O ".HAEa`dB@B "td$4Ap0D b@"$"@D}bBG2rR1QRڂsr 3___U0QȔذȻTpK hs _ 8_ Y_ s ,pQP YU RrGY_=YX Y_U 1s rY_W qQW_&$}pLfJd`EBoMp_fdFf@e pCO0CpLJo@TdEop_E0OpKșbt1tAD4Abc@a`Fa`a`,h!ٱnk l0@ Lb@%"e+p5Db$2##!/20p,/#0,Lb@%"e+Db$2p%#0% "_ "LBpD@z9tp̔@bp1dЍ x r qȻ7b|a`@<<<8<4<0<,<(<$< <<<03}\h!n.Ԕ c . c ,, "}Դ2 "pPPn@D}Դ4 ,$bPUpET@pbAET!b 2,.>@yt,,! n@D}Դ4 ,$b PUpET@rbAET!b 2,.>@y6,,! anp.H c "X!N0at.H03X "}Ȃ4i2 R03}($` c@Ţ݈p Lb r"kp`mP5c@O@Hb 0r P"p Lb s"mPc@;@Hb 2r P&p{ . 0yDȈqN4bp2at.LbH.P03X "}4m2 ;ؠȪ}p ,$c 1c(łiذȻp Lb r"p{T035d@{T Lb s"036$d@͈ "~0 {pw'03X "}Ȃ4`20 a03}($` cOŒ'clkHb p21Ljf  :0 'xS bcJHb r>Lk l  ;0 'x3 bЍ+pȈaP "} "}; "}hqn$ "}Д "8  ̈pݼDqbcЍ Dᐔ"T  "}  "Xc C p p Ǎ&$($Z, "~0 H~2@ <,cd{8@ -,\r8 "X}p=$j# ذȻ}p <41bb1P0 qL~2p=x$Header: live.c,v 1.4 88/10/25 08:31:57 pickens Exp $MetaWare TWS 8.87live/dead vectors%s vector for node %d R%d V%d [L] %d iterations to compute in/out vectors [live] Live lists: Node %d live on input: Node %d live on output: Live/Dead Analysis [L]Live/dead analysis removed %d instructions in %d iterations [L]Output after live/dead analysis nm 03bЍsl0dЍ0 nm bЍsR0dЍ0! n݈p  0=511=22=r=eqMB0h0! 1 p$ 鏤 1```鏤!A pRp0$4A```A pRp0$4A```A ppR0$4Aang0h@Ԩij hpʔ _ `Ъ "fvc bp `Ъ "fvc 8bp f`` "mv 0bp ` f``m v 0bp ` pڔЎŭ ؐșb"l)v,c+0aLbp ŭ ؐșb"l)v,c+80aLbp ŭ ib"j,v*+20aLbp ŭ m.`Ъj v 02aLbp aLh1ank m00QUR`T1g@p~ptũ ` "fvbp ũ ` "fvb(p ũ fb`"jv  p `젘ũ ؐșf``j v  p `t qp pũ %`f`gvbpQ% aTaTp ᠘ũ !`f`gvb(pQ%aTp 堘ũ #pwf``jv  pQ%aTp `䠘ũ #pwi`jv  pQ%aTp aThAMetaWare TWS 8.87vecpBP QA ```0BbPّnk0  ɑD0!mbФ0+bФ1!"p0!bˉcpbɑDbФ0ib̐ߘ!MetaWare TWS 8.87`0@D}d !#PU}` d鏤 !# 鏤!ank }p,+$!}p d4`f_ q+ H  "}bp ڂr Őb!p b"" jpb  bcp bc Řw5pL2i┠`0jb0!p b""X* !p*" CJDAb < Qڊ@D}dH!b$B넴 hňPBB Pb!b""p&B@b0paL p&B@bpkDpLp&B@b0paLb  bcp ŗp jb   b!p b p&B@bcpaLpLkb$$!p d4aLCP:p&B@b0paLjpjpp p hّn){d "}Д "'ܰؐș}p)Xp eؠȪ}pJ /$!cB# p pJc# pJH !ذȻ_ p+2(0 " dpp p)m p ,$!b" bM p+"p){ɑ@p)p)ߘMetaWare TWS 8.87Code Generation. ٱnȪ4@D}dC03}k l &;`0dpTC`кP 2";`0dcк0p0; ɱ8߸!qnm ͮb ґ"`РeM`pE0  2"`0eC`pE0ͮ `Ъ03}kP 03}d cC;iipphPPBC P c p3`Pcp5  R!*!qHx!an؀ȈXpxuq0*y p8>jp2(# b0cm @D.8bcЍ[.bpi p(!N4T.p8.>1#p0p8 .cЪ2c0#07 0$17 ```p8p@Dl "p!lB0Ĉm,03}$b2 ^;24203}f `1`"r b p2b3d^2b p2bdp ;bq` `Рc -p# 0#bp2bd$ 0b p"cd)@Dl³ p "~4 Sp03}cgg HؠȪ}p 64b0!b6.Xų ".ؠͪX QPU}}`b` c: 03}dcC,b"qbp$i i pbhp ;0,0 +xbaLBC ݐ0ܤ+xbaLh1nФ. S. j. S.Y) .S00 MetaWare TWS 8.87domDominators for node %d: %d $03b2L 鏤!nc "tPض, n03p@u 5 v#!6#,3*س, n.Ԕ X.Ȕ S .̔ S,, an.  "X!N4Q$.N@03_   "X!N4Q$.d . @ )Ĕ% "_ 251?3 "X"֤3u@DtXc W(.. }p p "X$hx "}c1b#""ذȻ44Šib p03_ 3.ču,c 0#p p+c*p#!jk i b03_ p#RJo "~BdOij NNdpDeURdTae`_p0"b@p#"b,@24# !(c p3`d<``p40!  .bp"c52c2 p#0 wx}p p "X$hx03}b!b#""ؠȪ4ذȻ4ib p03_ 3.č,c 0#p;p b rj k i b03_ p#BJeQ "~e_ų NNdpDeURdTae`_p0"b@Bp#b @2C4b !(c p3`d<``p40!  .bp"c52c2 p#0 wx aLp Op han "}` b"- #ؠȪ=*.!N0O2*}*!N 1O?*ذȻ_ pKl lp Pp Pt Tt Tx Xx X|7|7l .1gpK$!N$1Ol.pKlؐșt^؀Ȉ~6}*!4N*}*!Nh2N:*p+l }*!Nt1N;*;<ڤP}JT ~:`Pb RPT "}=* ##Ic U*L} r:lȓ 942)șp+2AC b@C aL*Lr:p+h١nؠȪ*LU@ݺL bT@ݾr*O}D_ p-l`b s"OkDp-l y*O`D2z*OZD{ bORD~*OMD>*OGD?< bO<Dݾݾݺ@ɡ<ߨٱnm 03_  p@ Ccp!`Ъ "kt,cЍO( ,F(+ `Ъ  "bD2 "t+(ɱ8ɱ8߸an"i jahij `݈r-k`lb%"r dp4 ! ` ` eDU` oDPPU_ U{^eY@UP t#0$p  ! ! ahdA6Ay-c$ SP]gqbrK :p@(`ft6bde[y 6bR0+1!2vAb34 5bdC.>Ad$ahUdPAq d Q SBc@1q c A Bahahgqh!n8! cA"c@4PUrcL`  X`@5@ne_Up_0^PU_ UE A"Ѵ:ebP%"o#Ub%"p_%0/Ѵ 0!"`  "tmp-D q-0 00 ٱnk u  .c b ɱ8߸ٱn;!,03_ A.@ "07݈-@038 {A.`@-@b10p0^02A.b@%" @c$ pL0PU6 "9 ݈M@c;tA.p!-{1ͽ@0oc52e;?op50ɱbФAaa,xr,+$` h!ّnk b$݈r l "~6 "u(cоr q y=bj  )c܍Y$ y=bP R@03_ p#l@ `@b sb RAp#l@ L  ɑ@ߘ#$@DbBr"`0bp"3  4@Dc4r3` cp3"0 nc @D "uL<> bA`, 03_ banذȻ};`0rK1A`4Ȥ+5!qA "JDlb,@Bu!bBLZ% "_ "c~K%WmbM N.hy{`qAor3@D_ TldAht2eRe[seem0eFp PU_ Ul e}r p qZ01_r sZ23_s2PUl\` oP Q\ !_R " e-b$  *!b$"d $tȪ| "~6  "updЍo}=adhّnk l0@ Lb@!ؠȪ~ b!} Ў!_ p>Ў@ b@Bb @2`4 |p\50 ep\`P !p>c ACp\cР52 @cpi@_0 #pS_0S12pk=eURle@_p\0p^UeE12 ɑ@pSY0SOecP52oUc@5p_50? ɑ@bЍjɑ@,`  "tm@ cw܍>D Ԥ cw܍1ɑ@ ɑ@ɑ@p\lAiAߘ!an܍K؀Ȉ}(`  dEAHD(@B0 "4ؐș4pI!c$C ~Xb BC "XذȻ}p;ȣ$l#U "}:4`0bCpw~*HD(@B0J`Ъ "4cr#!p b ` B@ }8C c@52X@e5D14pE405" @ ( "_ pBdEB@eOc4pE405>\c=pBp3dEBc4Op#0qڔЎވ "_ I=0mb`E I=}bpE !c`܍6 cp܍. -  - q*q bЍ$rL p`p` 0 ܍qL p =!܍039tpw_ p'bbФ@paL ```` 0 ܍aL ` p'"RP K8@dPEBoCUdEp_E0O"RP8 QX1`p` 0 ܍qL p H  D9 : = > =!܍qL p pݔȪ+ "T03}C` cC G~(b!DCaLm}p;hanf pwt'̓`ؐș_ p)ŀؠȪ}p: A` ` "bL ,lȪp b @B'cb`p b Dp)2bp'Q`,p:ŀ,aLp:hn` m0 "~6 0 "ucXbЍx0! an "~6  \ `103}؀Ȉ_ p(r "Xȓ$`#2 "}941b#qp #H u    p    a+zp*)r. K 0H 9LZQ*/p   R  * u J`@ "cDb!k, "bD" fL-" -/ -$K-"Wp("Rtbc܍ t 5 p:b܍p: p: )u p: t 4#p:t4p:b܍u 5 bc܍aH b]H Ri*/gpep b - ^*/*:2Vv* "S:b0!#!@DcBDSb! !b$D"RAp(">Stbc܍tt 6 p:b܍jp: p: )v p: t4p:t4p:b܍Jv 6 bc܍?aH   p(J@`@ذȻpKb D"c1cDmb-l 1H 6 aL ]bЪ"b,BASJRTMtB@D H  )u @ t4uZ@T4\Q Z40p8* ` p+cJ`@bDD# #b@q10L Ѵ prș^ "~6 2t` q-c`ɷ\q1-ɰ\-0ɪ\9a X-Hɛ\a Xa X%H "H H H H H H H H H L 03}hn.$Ԕ > " .$,@DB0, ang h0bp$ذȻr ib$jL*" b$jL*"```L)" ybp$iL)"```xa\ bpxłbp$ib$j L  L  ~܍ "_ 2ldAPb"b+s"bB R "_ 2l 2 `p03c@Cb@2Cb2!r qy+c041b#"!b,1!ˆ@Xu4 cqb" a\$r ia\ r h!ФP03_ ClT+` 3xoDo5@ oP݈oso ooPo!菐QT anf pؠȪr*qy &$!biC.c52d#p4! ` 1#0$z(܍ %_ p,lmr  8dsLc\\p,l q bpaLr*fhqnذȻ_ pK 0  qH` ̈r\i`0j` eDe0QSQe_DUTl$̈́xd@ `d sD` gg0qdtDg`d p qH y܍90p+Rl5 b0!b,\15 ```b܍b܍ !qHpKTlDxb@ `c #\  qH !qHx!an!D1H0AڱJڡF` "c`dL `dL```L `cL``` aTb!*!p bD"c1;1cD  aT`jkpw_ p'  aTŊśbc[  aTp7 Clʪp d @Tb @P6c|@$DDcp  aTp b @Bp'b @2`4 m Q]`[0b  aTQ] p5bc|܍  aTbc܍6  "~6 "vcdX!aT|hang 1q؀Ȉ "_ ڲ%13}rXo%/ yH` c L"/}p  "X$b0!Ž "} b~pl`zeqlu6t&dp܍P aq,qb`8V Tr1t&A܍PJ Hr1u&A܍uP>61:L70 u6t&dp܍`P (K&$L!&v6t&dp܍HPH   . K&qf`p![s1q TD 26X "~6 9q1t,U@q  ),܍J@p  "X$l ؠȪ}p* bb1-\Ȼq /a\p p h` c"p#0١nv1 > # "ͳ0ͣ,0ݱXTp bФ0ݱp ɡ<ɡ<0C,cXTpɡ< 0C,bФ0XTpɡ<ߨٱnk u  Yܽ ܽɱ8ɱ8߸n;!<1 "}Ԑ!#!" ":,cQYxp܍I <<!ang h0zJq03r#$$!ybk 2_ Z()pMTl` Dx03cDcO@30 ccac ݁p aLaLh!ٱnk l0u1#!#:(0(t-bL - ½b?-$²ɱ8t߸!an "/6`  dEA03CD#@ > " >03ԉ #@B0\ "$03l2ȳ в;4`0 dEBDr+0\L  '!Ȼ_030bذȻ}"M.v BQ "}Ԫ#c dЍB . "$03m2 &<4Ńr,dEBD0G\ "b( <.1B 1,͈ p; "X$ȣ`#1}p :4b0!bs@D "B0\`p "4cp "4hm'( h0am 60 (bm ` 03c"`p# 0#p  rbp20 @D "k "~*  "_ B`@ "c$`p#0pڔЎ(L `b t"АL  QX "Dߔ N=1IMc@141@DcC@31: 7-!2-c 1#!03b2@""#u / + c52 "b20`p2002t-9 c52 "b2c0p0t-!t-  "_ =0B֔@ "038u "_ 2SPkP "~* `P "d%`p$ 0$2SPM "_ t-A <  "bLM "038y!@D039 b@dЍi "_ ͂@D03: bpt-} "_ ؔM "0388t-] "_ 2 B֔@ "038u-Ј "_ 2c BԔ@ "038K  G-!CL @ }  =bp20-`  "thD8bp@ 8bpw(`  "tht-IH 9 "a*P//6 PLD$qݔЈqȪL "~6 !| "_ @D}ŀ M`03cL ;`03cDl,2xc<@3: dB2tc4p=0 d@  b "_ =0l @D}ŀ "Ԑ!030#"{ "~6 pwt'034 "h#7`ؠȪ:<ذȻ:8d42ȗt!{ "w $"r!i "w $`  "b03_ 3D"pbI̤0 "_ l0 b1b10 ```5abcde'((̤ "_ l,3bBs!cЍ̐ "_ l \w7a la lhh0a "D߈03܈03܈Ήp;han0!̈r }<_ p}4'k$bȢ` Uh†L*"Alh  "4@D4!c$CPUbL  BC @ "x<bqLؐș}Ԉ@xفnm ؠȪt*dbЍM@* d03rb q $!ybm ؐș_ Ȋ$,)@bdp)<0 ³ 0.`  *$dɁDɁD߈nl " f3c t-[` "~8  "~6 -$cH`*44 an4@D@z݈ "_ 03APUcnt=%d, %d->adj_edge_cnt=%d, %d->cnt=%d, %d->adj_edge_cnt=%d remove_edge(R%d,R%d)[color]delete_node_from_graph(R%d) R%d not remapped; (last_reg=R%d) [C]Regtab compressed from %d to %d [color] Reg masks: R%d.%d= Trivial coalescing; instr %s:beforeafter [color] trivial coalescing on %d instructions; [color] %d copies eliminated [color] IL afterwards: [color] no opportunity for trivial coalescing Regs R%d and R%d [C]Register R%d coalesced with R%d [C]%d registers eliminated by coalescing [C]Remapped IL: adj pool[C]Adjacency list (m=): .. (b%d:#%d [color]Coloring resulted in %d regs in contention Registers are: R%d WEsum(%d,%d)=%d [color] now coloring the graph for real [color] graph colored with no spills! [color] After renaming, last_reg grew from %d to %d (rtab_hbound=%d) [color] graph coloring complete [C]R%d assigned to machine [color]These are the allocable machine registers in bank %d & their masks, in allocation order: [color]Can't map register [size=%d]! Adjacencies for register : --You may have improperly left this register alive at the end of the procedure. -- For the same reason, I can't map to machine register(s) Can't map to register because is in rtab[].vecof some unknown reason (?!)In function %s: [color] Dump of uncolored graph%s: , after remapping register references node %d: %s Register Allocation: (%d virtual registers, %d nodes). ...(Still allocating registers)... [C]Machine registers used: [C]After coloring: [code]Machine regs live on input to each node: [code]Machine regs live on output to each node: فni ؠȪ8*03\@pqS8A01R( ```p02ذȻ_ p "DG2iФ  !( hд hbcЌN0 bcЌG0``` T hbcX1*p +  $ 4ɁD߈ؤHCHRT+L(CRT"CRT CRTCRTCRTB#B !nl mb@4; bЍ!,4h!١nm l0j@rJp-0 R.k  )t 4 +c+`  "tbp 0bɡ<ߨ1ٱnk0l@rL02Rm  +u 5 -c-`  "tbp0bɱ8߸1611`003t`! $ $ anf g0&` ؐștph ( ` }k mb03\@4rG    ! ```r3r+2!+(! !'# d"~P//> LSv'(BLs 1!sH37b0"#"b*2 b0"#"l,s,s;#1! 3!G  bpP> b@ATG     ! +  .,>4@@T "0(bЍk!&c 222p bq1a4h! qng h0i@@ )ؠȪ8JN$)`@ذȻp[d~ @$p:L`0cDD4*@p 0JP.xB0:0 p  JNp#t 4b0^ d d?>ݚ@ :L0+p ?0 b" "tp d c~ h b" "p dD cn !h !9p 0 JN4 b0!#!p cb@!$!bDD"bqHXЎ p q lbf> H=)I _ p," u-&d p,bcp u 0 H "_ J\bcp FH2 +u 5L M IHH8p(Sl c}bhv 6(+(H+EQ2LFI \ Ct8b (cЍ L(!u8b CbcЍ L("v8b (cЍ 7ݚ@p ذ 0 > N LL]IMp(0,l cЍ l  ` `p 0 t 4 JP.xB0΍\ hW h 4$pH81_ p,c B>: 804wJ8bp *?)( D? > ` ` d d v5 "ĉ6(wJbcp &p D :b6݊DݚHp > d d ` `Љ?ڔp IJP.xB0p 0 :0  Np#B@t 4b00 d d9JbA(h d d @>? LD~HJP.xB0͡ZDP R*H/p :NJbP (u 5?**H ZD d dH2:NJbP,?*H N!p 0D9Jb,h ` `? p 0 ݚ@  L>p JP.xB0%bqHpp  Cc 52pcpBcк4 0` ) ,p` >xdp4eкP`0 T0*)p %` >xcp0Ӊ)l c 52pcp3B`к0 T L pp  JP.xB0̭> bqHL(_ 7p, "_ mkp,x1anh c18121 "b#D"4!'JؠȪ8ݚhݚdݚ` 4܊N "~<ݚD  "~6 "c ݚXc}p  "X$b3! L "}d@DAb$""1p۔ ." "0 bЍ  ݚXc "Xp $b!3!Xc  qݔ```p s!Ȼ "X$b3!0H#"lwݚXCb@!$!@Db$"#" ?cݚX!^*\#c 222 "to#@_P Q03_ #OB #B #BD/ 5ݚX%%!/-*\)ݚX## "P//z`^\"P//s!5! "} b>?ݚDJP.DB0MޚTbp۔ЎmGM cЍm "_ 2 Lt!ݚDݚH>>*T 2    7*4z b! "b@"w-1!cph2 r  >Dq!*H ` ` d d?*T=8~  L+ Z@p0uM@C5Mp50N05*X $LRIBH2tmbЍ+dg :X4g4bЍmp h h(*T 4z r1 "b#@"  r  -cph ` `*T? c101PUc5DCr1cSD3C >=:@ L>ܚLhݚDJL@!_*TCZu  U>SܚL L HbЍI܉B*T&L p`p` @ cЍm q ݚlM!cЍm *TH  9: > @ Ô ~ >?ݚDqݔu!ȻQ "~< 1 "~6 + "p  "X$m ؐș}p) bb1*Ȼ"'H*`  *d *h  adp *Tp hnФ. z.(t .4 #4.$ `$00 @D_ l@DpDc3b"#菤P@"31!mmpm]mM bP$!an1!k05A2Q@D8TpPU;Baؤ 0!Q "_ "l`q1c들c1dBrQdEpDd4Dᤐ 3`u!gp!()ϥД  b%"bp9!#  b!*` h'0! "~<  "~6 j`fp@؀ȈP(x4ܤpq1c31{O4`pq1b뒤 "_ "ldAc2rQc5p3cC3ᣐ  b%"bp9!# ^^b"Д ^ ^t!cdܐq{ u 5 v&! 6&6*s1C(c(cpAܔs "~6  "~8 ~ " f c @DQX؀ȈP(( ܍  (D  "艏. "4  " f c .$k.18.>@7 `Р.c-p#0bad hAanh i0j@kPm'E "}`  lŐ `f8FPbR.$LPd $`f8Pd "~< ;pwP'tw`b2bp 03p@u5 v#!6#FP3*FPb@).&P!.$Bb0FP$Bb0qN-` c"`pp#0Ҵ bcde~*'E baLhAn(Ĕ6 "X!N1.(mbcЍ;q PP>(dPApdd@QqP cdЍuq<ٱn;1l m@,\ "_ A.@YP\ "8x@ {03 02xc@52toTc53p_50?AdL4= 4zɱ8!.`  "tkp;bdФPq;bdФPɱ8 ɱ8ɱ8 "8Ĥ߸11b2 an'D"ؠȪ}p b$+mՐbЍذȻ8+t0= 0$1= ```p*!N2i 03X "}4`20гt03},$` caab@"  ```a! ```xp|p Kz{t7bd`QL`bt2bd`PL   x { { z Kx@ b@%" tc$p#0xqwppb+t03= d "~6 8pwP' "_ `p ` "b`c0'``b Bbc``p `.''C5+tbaP "})h$Header: spill.c,v 1.10 88/09/21 06:50:32 pickens Exp $MetaWare TWS 8.87[C]Spilling R%d [spill]IL after spill: [spill]Spill list after sorting: R%d=%d%s Top 25%% of list is %d items (thru R%d) chose R%d with cost of %d In function %s at line %d [color] All regs previously spilled!!!!! Dump of IL: choosing again and entering desparate mode Spillregs list: R%d [color]Spill costs: R%d=%d @Dc3b"鏲#`  "b@ "_ " bnФ}p]`Ъd T p ?PU=0cB0! nm Ҫc r4Ic 2#00 anm 213A-Apw}p'!N2p 4!cЍ$P1QpGT؀Ȉ_ qQp(Qt1cSc`i`ᖪ03c9͢뺔~bc`rAp o "b) #b!p8bҔ ]bcrAp Tp(" N "```DؠȪ~>bc`sAp@ N " wlʪb @22 "_ PcpC "cc A]bb r݉3 bo4-p d b02Rk `  "b` c @+  - )+c 4@#! b ɡ 0 "dB03_ PcpCcЍ "cЍr!1<@.> @0mD "_ b12a Xh!ّnd i0b2`j p$0!dRVk `  "b ` m٪Db @)  r "34"Ѥ++Db ɑ@ߘ!H 鏤!  "RUP%% 鏤 nd0BCB! a "tbЍSp  rCbcp bЍ~bcbcЍ (b @-! bЍf (b r033bЍD4##ϳ!)H  !! =p)cɁD)`  "tmbcФ@1=bd) p-cɁD# ɁDɁD߈1فni j0@ ں_ p,m۪b @yp  H  b b 4bCYb b rBp,bcp blbcb 4@2! blb r033b6,4#b 4 #t!*H w2 b ! &q9p*ɁDm؀Ȉc # + cLc @*"Ip,"b-Bb@!b Bp* " p,"b-"!b p   ɁDAɁD ɁDɁDp B b p ߈!١nj k0l@@  "_ J@ (`@b p2$`к003=bJ`@b p 0ɡ<`@.b@Dq"cJ`@b p$cк20p 0 b%"b,p0ɡ

2 r1 "d8 "}Դ !.` b4@Dq"B0 Ű "}Դp,BQT  "cP1c# 51ST@DBb0^@DBb0S "}@D60$r3 "4cr "4b o/RP p<P `Pd5p4004"/ qj>80+cdr I `Ъ` cdI p,bp1dp p,R50 Mb0%"d(3b#p4204R50<+cd3v;t+w+cd' +cdp+cdhH  9 : > K  p "~>  "J8p<@D60 Ű "}Դ baq} 8b"+"1!q!bq"`pbp'120 ` ` "4c8p,cp2Pbp2 "P8p}ϔ`03p@u 5 v#! 6#3*\p< "} Űs "4dp "4oe "O@ @ `@c Cp< 3`0b 2p "~>  "T8bH I `Ъ` 0bAkؐI ;bZ  p,;0`0 "b|y   qp,;0 j`0 "bb 2;bA!W{bcp@bcФAu+cv+cbcpAK v+c}bcЍ!bcЍv+cj ;bAv+cVq7qH p,  p;# k0 #` "b",  ` >cAc  "~> r1 "\8b1[tȪ=bba` ?89;&ɍ;b@M mD{>{03}Ɖup<hفnذȻ_ p+"` ̉0 }p=`0 1 !N2?,p-!N0.̤p= Ȑhኪc2p,` .c1p 03\,@pqS8A01R( ```p0, p+/ ɁD߈n "̍s}p b","bq"ܐp .U4 nm (57߉K (5B~*0 MetaWare TWS 8.87[Dyn] R%d globally assigned to %s [Dyn] globally assigned to <%s,%s> [dyn] spilling R%d (in %s) %s=>%sR%dunallocated[dyn] R%d mapped to %s R%d in [dyn] just inserted [dyn]Node %d: [dyn] machine reg interference: [dyn] R%d interferes with %s [dyn] [dyn] node %d after processing: 鏤 鏤 n.0 'H, n.0 '3, MetaWare TWS 8.87ٱn>;+ 9̉=N 1.NM"< b00dN....`+ɱ8ɱ8߸١nذȻ@;0.2+`  "}jD N~@p,=P@ "P//LJD }"BP//2TL@D4,r sZp,=`0@@D40r sZp,=`0@zs@D} p,=p@(@&sZc * d p,=|Rb d p,=Dp<* 7sZp,=@ 3,p,=+$[p =pb@$+,Bp *cq p,=@.- ɡ@ߨّnk l0m@ Pi b ]j .ذȻ *| .c.*:!. ‘!.ɑ@ߘ1nm0`Ъ 03}d0 D@ "DPOO .(& 0p03 d0 0V0S0GB|ߊ0! nm %.03xdЍ.@ !.@```0 ّnm i0j@kP .<dЍ.@,!.@```! e!.ɑDAP dДPP<.@!.@```ɑD e!.ɑDAPdДP P<0M.@Б!.@```ɑD*!.ɑD<K&.@!.@```ɑD<d .@!.@```ɑD<d.@ s!.@```ɑD<dЍ.@ Y!.@```ɑD<d.@ ?!.@```ɑD<.@ &!.@```ɑD9 3P??L| ɑDߘAnl0 'm *h.03deQ.@ !.@```4! n.;!.nl m b А# .03dЍ .@ !.@```41 nl m0 .03deЍ.@ !.@```4! n.;!.nm |.  "~@03@DeЍ0 nЪ$03m2@-"P//h&6FB-ߗ@- 0F0fA 0=-0-0TC0-0tD0-  0] sMH=-)0sMr=-0s=r-0r=-p0 0 $0x.| ^ "~@03ԐQ^@0x.| ^ "~@03@00 nm "~@03@DeЍߊ0 nq̔ 03~(#41d q "~@0301P~|4 nD.HԳ  p,, $Header: dbxstab.c,v 1.1 88/05/24 10:04:36 pickens Exp $MetaWare TWS 8.87 .stabs "%s",0x%x,0,%d,0x%x %x,0,%d,_%s%s%x,0,%d,0 %x,0,0,0 %d%d=r%d;0;%lur%d;%ld;%ldar1;0;%u;s%uu%ur1;0;%d;f%s:%d,%s:,%ld,%lu; .stabd 0x%x,0,%d .stabs "%s",0x%x,0,0,LLL%d LLL%d: فnj k0l@mP؀Ȉ}p(!0( JN%0<hؐș0)ؐșp)50)p) q.p(` p)obc@pqS8A01R( ```p02:ܿ8D=ɁDؐș߈Qّni j0k@lP KDG 1A].10bdcŲ ? "Ϙ.TT.DdG!>?ذȻ N 1KXQ0-+Ѝ\l ;b`k  >$b@Ldp-0Aeh  >3/ 0.D2L!1T0>@# "X. "\. "d.$ % / 0>3.DdLr!* "ϴ "Ϭ.!.A>D2>DaTRT "ϸ.@A!.BH.P>?X0;3T ".ABH>?!2 3P??86fT*(hɱ8!```߸$Header: mapping.c,v 1.1 88/04/01 08:58:21 pickens Exp $MetaWare TWS 8.87rtflrt386387s387r386s386rMC68020mc6802068020vaxibm370cms370370amdsamdtomsmachinesparcebcdic_tablernԤ0d @A 1@A```, nДFN 4l ݊-N @1] .-u$.k$..!N2? - "Ҹ(0݊-0,->$2>-0-0 n0д2 c bi.., فnh i0d 9 ` @$ A1```0s𨸪1݊bȢʔ $ b"bqp2bcdS bɁD b ”. b b ھ-=`m0`b  ͮbcd🕐bʤ1b ɁD߈!n"03tb2p"b"03tc2pq# MetaWare TWS 8.87<<>>nH` e0030Abdb01.فnTh i0j@bc?bl  "<0cdeU03hbdeb0b0dz #2 031,Ɂh߈1+nr"# .0,, فnh0bsiq,cm j  j`j3q,pck ;bCl dbc6 ` ⽤0dĔ s\p< "֠0d,ɁH߈!فnh0Ȓbyqsbcij bcdk p;bi bcd3 ` ⺤0d sYp9 "dc)ɁD߈!"s"n p= " dЍ>bЍbЍ 0 MetaWare TWS 8.87$Header: dynarray.c,v 1.1 88/04/07 13:15:31 pickens Exp $Memory exhausted (while extending %.30s from %ld to %ld)[a] alloc_dynarray(%u,%u,"%s") malloc=%lx Memory exhausted (while allocating %.25s; bytes=%ld)[a] extend_array:"%s" extended from %d to %d (ptr=%lx) [a] realloc_array:"%s" extended from %ld to %ld [a] free_dynarray(%s at 0x%lx) MetaWare TWS 8.87nԔ8 `22b>q" ,`2bb0.,! ١nj k0l@Vm bP`- b-`Bbcɡ<ߨ1@  A! ```0 0C!! ne b1DM  0p!0 ne00!b1D0! MetaWare TWS 8.87ٱnm .̍| b"p bp"cЍ1  ܿ~+ɱ8.!. N 40, 0p,0q 0,$.bЍn(>d0Bp d0$?~#ɱ8߸nȴ .菪"03|b2p"MetaWare TWS 8.87ٱnk l0 "~e "QXXp030!bds r\qLpp >$>4@SH~J@ ,cq:  br p@ rHq8,4ebLh d1 02 bLɁDp*L°ûL߈١nm 3 p "ʹ .> p=0>>$@r r  p r ```4s=< cbЍrr+, .01r+q j ,2+ "F qM "0ce~bɡ@r+ߨ!$Header$MetaWare TWS 8.87Memory exhausted (malloc returned 0) While allocating %u byte chunk for pool %s [pool]Just allocated %u byte chunk for pool %s at 0x%lx [pool]Allocating storage pool %s at 0x%lx of size %u, extent %u Pool %s: [pool]Freeing pool at 0x%lx [pool]...name=%s [pool]Freeing %u byte chunk (free=%u) at 0x%lx FREED[a]allocated %u bytes from pool %s (chunk at 0x%lx), returns %lx nl .!. 0N 22uݍЉ0-ݍp-:0-p-~ ..!p b 4ݍ n>Դ0`0 "b"1>,.>AH$ , ٱnk l0m@e bcdЍѭy ɱ8߸1١nj k0l@m e 0bcdfSɡ@ߨ1ّni j0k@l m {e K01bcӕ'ɑHߘ1n>`0 "b"1>nc   "ԍ# "Ԥ@~c, ١nk l0ݍt=sMC r-  N$0Q 2-42-r-c4-sMc@4r cq 0 sMc@4r c1#x2ؠȪ p 3A3MӜ0*tx1b bɡ<ߨ!nݍs  .>A >TP .,>0A >Ts-!3-$r bs >PrTp"1-s-$r bq"30 ant3!j0l@4 " 5!#03 0# t!^ ֠/ԍ֘  Ų@  ؎b":P//4, *(|zxvtrpnljhfd@>^\Z6VTR.R*(&$" 6420  *(&$"  40 Bt$8@ l r `   D Z n d b ` 2 " * (  ~ f X lRNdn  ^b`^\ZXp T R P N L J H F D B @ > < :               꺍.  8-꺍i8-NA .>A X8꺔A% "~d p@ (PUQX03z.0>4A jX`,-bݡs1p " ѣ a@;Ųլl է Bbcʜhl cohl X d$[hlk"(Kh\rՍh i Kl v`e 0 1bcpd, h1ԹŒbl Ԯf g K`h F`e 01a2bcd0h48h(4@K<" @hٍaŒ g h l `0! 1bcdepʧDh60d bcH#rh i `b`012abcpde1LWhh`i `l ԕd 0b7eMpk 9hl bAP@d bc<,ӴӮd bcT꺍ӝ- ӓ-=4-꺍-   ( 2-꺍- 꺍- 꺍- ԇ4&-꺍Ӻ- 꺍Ӯ- 1"-,2-7-꺍ӓ- 꺍ӿ4-8-t r X!k4-꺍4-Ӡ[8-꺍4-6 8-J9=꺍L- ~5-44-꺍6- ҹ#4-꺍%- W5-ң 4-꺍G8-꺍ҍ8-꺍- 꺍- ө4&-꺍- Ә4&-꺍T-O-- 4-  2-65-2 5 e4&-  #"-t= "DC0 O}" 꺍--u- ҧ4- Ҟ2-5-\"-" 5 2 4C&-꺍Ef @łb`!&"03\k ipv%WZ0+U1+$+qv .P>TAX"m7܍ 1`,-bݡs1p "  .t>xAyX꺍- N"-꺍Ѻ- Ѳh 6Œl NH .>A-XH|A03c430S12!bde`"The.>AXS"-I- s`,-bݡs1p "  )б-[4-Ч2-I`,-bݡs1p "  꺍Ѽ4&-꺍8-  o"-" 꺍- 꺍T8-꺍I8-꺍w4&-꺍l4&-꺍a4&-5-4-꺍5-нx4-꺍<4&-Эh8-꺍j]- 꺍^- -Ћ4-NA2-꺍Пi Jdc ذͻY@D~Tbp #8p@ (PUQX03dt.>ܤ@Xbݡs1pϷŲ "  u!03 0#t Rha@a@h1#MetaWare TWS 8.87>>>At "%s", %d: case table%d at line %d فni h0j@kPmbФ4AXa`a`a`h1@XMetaWare TWS 8.87<>Version=%d auxliary file>>>var table<>aux file<<>>١ntj k06 l   m>bЍ$m03NbeuQ(b0r, "F  "Ĕcdeq0bɡPߨ!#MetaWare TWS 8.87%s (while allocating "%.12s")[a]new(%d,"%s") returns 0x%lx nm c bЍ 0 ّnd i00 ibc@dkY@D~Tbcp ̍p\ 'mb B@p2@# b b " ɑ0p Šۤ ɑ0pp\ߘ!n"c 4crӔ -00 nm b0$b2b0n-0! n$b2nc 4c##, nc 4c#, nc 4c#p, n$b nl b b4b 4 ١nk l0^m bcЍ %.>AHp@(030bdoLbcЍɡ<ؠȪp:10:0 #N8 P0P ..:T..X.p:`0.b0#"&22#ɡ<ߨ!nm00"$Tb&0! nԍw@D "X03@o^, MetaWare TWS 8.87$Header: toggles.c,v 1.1 88/04/07 13:38:39 pickens Exp $Toggle is "%s" There were %d toggles ١ne j@NذȻXp+ AN01cn p+lp@-l-(lp+<Tn .0c p+<tn .0cɡ@ɡ@ߨ1nԔ N "X034n,, nm D .0RbФ0} 0 nm 0}! bФ1}003XtbЍ}0 nԤ"!, nl m0D bЍz "X03HdeЍnЍT bЍzk4! MetaWare TWS 8.87>>>>>>>> S Y S T E M E R R O R %d <<<<<<<<, in %s %s Error was severe. Aborting... >>> Too many system errors -- aborting... %d system errors %s Aborting(%d)... n.n.nNԔ@ >ؤ,mNAN>0 .؍mc>ؤ*mN@ .03`mNN@ .03`m@, nm .   0 >̤*mp 0 n.n.Ԑ!.Д i,, n.Դ  ,, MetaWare TWS 8.87$Header: listing.c,v 1.1 88/04/07 13:31:22 pickens Exp $%s 0 @e@!1 ```anf g0h@ؠȪn\~T~kA; bxA; b bx b XYb`cpd aLh1ؤ!Q! ( nФ }Z0!bw0 MetaWare TWS 8.87$Header: conv.c,v 1.1 88/04/07 13:25:56 pickens Exp $ @ @MetaWare TWS 8.87ٱnl  m >b= - b.$y$k  .0r(0 ݾ0>kbcm,>`bɱ8߸n.Д pҍxbД ```0 MetaWare TWS 8.87$Header$nd "~@03k8, ne "~@@D,2c4vCck,! ّni m0j@e)pAذȻ~@p <8bj qAp+<Hjp+<TdeЍjɑPߘ1ٱnk0`  "}m~@p,03j  b!d p,=\j-d p,=`j p< +jp,=ddjp<*jɱ8߸1nl ~@p 03bj_bp *cj4! ٱnd k0~@p,=hj5ܔ p< +jp,=ddj"p<*j|ɱ8߸1nd "}`  "}bB   "~@03|i,, n03}`003}cB  d OBA "~@03i,, ١nj k@0 ]~@p,= NNei}` "}bB p,= N NPU}e_p0eidɡ@p,= NNeiOɡ@~@ߨ1anf g0`` "}hDؐș}) W c101 "}b#"d ؠȪ~@p*ذȻ;i)"}p bp"47 cp l )"p bp" p ;eRbd`hp*;h b;d p*;\h(-d p*;`hp*;dph`9d0Bp-b$0b`daLؐș}ؠȪ~@ذȻh!ne "~@@ NN01chp01 ٱnk El , /m @ _ "~@03dЍhBɱ8 "~@03dЍh0ɱ8,m @  "~@03dЍhɱ8bL" "~@03dЍgɱ8 "~@03dЍgɱ8߸ٱnk l , 6d "~@03dgɱ8,m @  "~@03hdЍgɱ8bL" "~@03dЍg~ɱ8 "~@03hdЍglɱ8߸qng ؀ڈ}ؐș})92ؠȪ}p cp#4!/$92p c0#ذȻ~@p <bg)bpNp <$bgbpp *cgp "| 2}@ p+<0f)"p bp0@ )"p bp0p+<<:864hfdb`^\ZXVTRPNLJHFDB@><,@0 0 0A$菤!菤 1nԔ2 *3 ' ,   ,b@05,!,!; E"P//trpjhfdb\ZXVTRPNLJHFDB@><:82.,*X&$"n~|D< 2 ,Q p1 & , $$! ٱnͱ@0۔! " bɱ@D`bɱ@bɱ@# "P//~ ɱ@1! "\c2hq 0 !Dbɱ@ɱ@!ɱ@bɱ@  Ĕ_ ߸anm@H@0! 40102JIR0bdЍ4 4JIR0b2 -4) 3 7 01 H0鏤!@ ($I !B "`  "t`0`@ "bD鏤!鏤 鏤  ! 2 鏤 @ 鏤"$  鏤!! ٱnl p@ [cЍb  ذȻ+b{  ذȻ+čbl ذȻ+Ѝba  +bX +bO @ + bF +b= ]cЍbZɱ8߸ٱnm ذȻ; .lppttxdx;bЍ 7.1>  |~1>>>> >>>L>N>>>%>p@(; ba{ .R;DbdЍao .0 > bЍעɱ8߸$Header: rtmachine.c,v 1.2 88/04/16 09:31:49 pickens Exp $MetaWare TWS 8.87LTX\`dhlptx|R0..R15 R0..R14 R1..R14 R1..R4,R6..R14 R0 R15 R5 FR0..FR7 FP fp||rtrtfl>>>Machine specification error: >>>Front-end target is "%s" instead of "%s" nullspr2r3r4r5r6r7r8r9r10r11r12r13r14r15r0ccfr0fr1fr2fr3fr4fr5fr6fr7١nj k0 "  ݾ b؀/~(!P<Lb_ ~@0-` bc`.0p <Pb`&,p`@DDp <tbe@` "} p-<`  "~ p-<d_ɡ<ɡ<ߨ1nԍ "~ dܔ  D ؔ b]-Z "~@]!, n9!:1;Ab@ 0 n>1l 8 .>AD!:5$e@D_  Hp p1bD(b],q1D(D١n1Xl0A\m@j "f@pqR0 1ZrsR2 3Z0:X "(P// 64>|!Z`  "tk+ `  "}lr 3 2  q 01:   #1 A m@DQX03RhbЍ^4.cФAG c103 "}m#D-" !A! rJr @2J03 h-#D  "$`$ 2 "(`$2 " d!*r 3 O _8!*r u03 O O p3 O zb"* P//>s "3 r-s 3  # [O q 1 # SO  D-" ! # FO q 1 # >O q 1 ,#*O p3 -O 1$A"ARbL "RYɡ(dߨٱnk l0mbc@dPr!H2s3bcЍBŲbcdФQ<# ɱH߸1nl mbЍ|@ b"-vP//thfd! .r! * '   AA@ L S c<D'cdФP;D )A cdФP;D.>Al pcdФP;D pcdФP;DDan "Xؐș 0) "}ؠȪ_ p:3Lp3 "|޹ p*"T d,; ܿV "X :pJ$~*@=0 $b@=pJP;`$g/@wp opvp;y`p PH$ b@4$8 7 $z"/4,$|"/400`f}0pFpw(p'$#B0F0< < |I9` "9 b<) " l L "~@03RPPW@=,= @=0 HpJ4|319w Tz%2) |I3I$2)4"19|Ij@Ѐ@ @ U@R3YZ4YZR3Y4sY%2)519 s9069p 2 p&$ p6 :,1"гrYLذȻ~@p R=0!bW1,"ЕqYLp =0!bWaPaP`f}숏5pJhٱnذȻ ;4? ? 8 >x PA;3 "X >@:~*@=0  "_  w |+ @ =A:@=0 "T |;0 S'1A: ?h ,1@:e  t[P =A:V'=A: "0 2}p*_ q p,Bc|e`0P @ 9 8:p0 "| $q1 "S ^#!2 0O9d m?P9{;0 w[| P ALɱHɱH߸qng ؐș 4ȀȀ{ / "~ ( q?H9-~*@  "T @D_ $!"{9 wYs DP "T w DPwY| DP!K " l @ # "_ "-|)0# sYP '1M9 1M9?ऱ@ @ xYs "_ B94Pb9,@ "T x 94PbA9@ "_ "!xY| 94PbA9y@  "T d  ^|  q?H911|Y   Ocp9|Y'1A9D$cP=W\  Ocp9| 1D8 w {9P!AJ x 94PbA9 Ccp9W Ccp9O qH@D_ @D_ ~* xّni j0 " p0 cd8IbcdЍ8BԤ cd: cdЍ83b92ɑ@ߘ1فnh i0(u6t5(  t4 "u6!5b109I:(Ɂ$h "m1HLt5v61)t409bЍI " p0JA c9{t4v5p 6bcHb8Ɂ$h߈!71@`0 BQ`pB0d22Q0(dB@B03tc4@p 30p0( (( 71`0Q`pB0d2 Q0(( ٱnl0m@kPr 2 s 3 <4"cdP68r 2 s 3 ɱ8߸Aanh9!81 " ޢ(03ZݡH1yA "}$$ "7bp"pHyAp T1L u[HbcPL v;bЍ "H oH : > " ޢ(,"Abpc:4H+< -cpdep5 cpd5^  1H D Iu[V bPn|e +cP94b0cP ;0 V Pv+G|h {   7cd5Y3X#cdP5P*  X"cdp5l .$>0Abc9t4 5cdp4 [ +ڛ!*{ ,cd4+ 5cdp4 cdp4 ,cd4u+|e 6cd5Љ  ܯVyA "}$$` 03}c "5 ڛڋV}v+Ȍ|l $,1Ḓ ADDAD/c4XD c4N0b## \ #cd4;\P %cde4,P &cde4  $cde4~ #cd4uЩ %cde4kЉt  "cd3 "cd3 cd3 "cd3I ڛڋV Pv+|l $1D ADDAD 3c3,D 4c3"\  )cd3С  *cde3 *cde3Љ  (cd3[ (cd3P cd3G (cd3? &2d&3d(2d(3d ڛڋV )v+0|l \  Acd3vС > Bcde3k4 Bcde3`) @cd2 @cd2 cd2 @cd2@ ڋ{V Bv+|i x cpd2H / / - .ř?  1  cp@2@ 0 1 @I dcp2.ڛ`fPAh cpd2HH+bb@"cpd2? }K~OQXI b@6D@-  "H  q?H2aܤ " (+Ǡʭ+68} "~ v+6[nv+ȑ( |g Ib t;pMbVpMu;!8N`&6 "f@pqR>?QrsR@QD~Q:;Q@QD<=Q)9`6vp гx`7`fRcbh5u!18dP܍[xx 'd2Au!18U܍LbcdP܍AbcrAU܍7xwf *&d1A18U܍"bcdP܍&cqAU܍ r:Дq*&d3A18U܍bcdP܍&csAU܍qbcdP܍سxg J؀ȈR(18dP܍r *(18dU܍(cdP܍(cdU܍q(cdP܍Ҕp؀ȈR(18dP܍l(cdP܍`ݎ " 0lbpcn=e g0'4@0bЍ1T`fRbl"4!18@P܍,t!18dU܍! n3d0y 74A0qbhbb`c@P܍b`cdU܍ n2d0Qܤ cФC15Ĕpzbu VDD !F 910K1*(  K!Fc@1MF ?dP0<Ф%?O/'0dP0,Љ5 K cЍ/ .c@/VKڛV PP $c/Љ ڋ{V,"pAb H˔  *cd/ )+cd/uܔ  ?dp/i0   1H  I V cd. 0 @ . cd. ;0ZX K !?.ܯVxK@J[53+1Ј5J[b@cP0x+ (1Ԉ"͙ؐ KV " 0 !?. J[!cdP0> cA. c@.b/f 䉀 xK@b@0ԈL u[;V+ "pBb0cPC;  ͙ؐL vIV 1 b""RuK0eIcH+ _ cd- .c@.9܉K ͤ +K`@ "tbb08c uK0 euK;0 euK0 e+8c uK0 e~;  / "_ "L b䈀K!/ ,1H  u PU5 @D5 "5 t 4 4 4 I+$D 4 u <5 It  8 : Ap@ (HK03SBDD(HĈq amb"OtP//><r@~pn(&$" ~^TvPbnlj(TfNPJRFDB@><:8^\($03Z1 t;HbЍ/q=aL ;"HˉHˉJ;*;+=1H91H51H11H-1H)1H%1HGH03Znh!&ٱn@T@ }Q_ p-2b5@@PĴû " d4ذȻ 4  ~*{K03} p]Up]U  q @ | 0- "Z!A p-"  " h! ɱ<ɱ<_ ߸$Header: rtcode.c,v 1.10 88/09/06 15:03:28 pickens Exp $MetaWare TWS 8.87at line %d: R0 used as base at line %d ''':<88 .set LA%d,0x%lx .set LUF0%d,%d #Frame adjustment for %s .set LUA0%d,%d #Argument adjustment for %s mcountop=%s 5! "_ 10`0 "cD#  !$ $ 5! "_ 10`0 "bD00 2!$ $ ٱnk "_  +ɱ8 .> @֨$.  .!N2w(.lb" 0 4,m `Ъ 03b` b "~ "cdЍE0b -ɱ8߸nԴ  `  "Xbp"(, p" H: p" H: ```ٱnpbc 0 m 0 , ( , "H  9 H  9 H 9 qbV1010ɱ8ɱ8߸ٱnADk0lPQF@04dm D$ &!F8QH q1 br1Db  ,H=bФDRUm  b)-!D5-D -+-!D  bЍDbɱL߸1فn>1j0h@iP8DRU`k 48+u  5 !8DRUKk 4!:h)+b`++u 5 bbɁD߈1ٱnk0m@M09e@Ul "4, b;+, "_ "cЌdc ,_Q1]  `Pd 4-v6Q]?Tbɱ8߸1qng I7k0l0Hp D "X P//(& v$bVpVhȎ藍Ȏ ꤣȎ夣Ȏ Ȏ(Ȏ04Ȏ8ȎDͤĔ4ȎPȎ\ȎhȎp4ȎxȎ4ȎȎ4ȎȎ4ȎȎ4ȎȎ}4xȎȎЉr4mȎȎg4bȎȎ\4WȎȎQ4LȎȎF4J ȎȎ ĉJ Ȏ(Ȏ0Ƞ#).8>LAӋp@(H'03"BD(bBXȎTL`' ]' ZuG`@ O5Gp'QP2\L 34vGQPi\cd$`tźcddt7ďQPdhbpSbqHuGuGuGx١nl j0m@kPuL2P$vL3PcB2D3D8DRR|t 4+u504dФSlbSndbɡ@ߨAn@ԔFCM@D_ D!C@>`@03Xcq21#,3`003tc@C`@@DdD, ,,! n81 >1"0?`003Xc1#0#2,1"`003tc@C`@@DdDf, ,, nl t<L `Ъ` 0b9L 4 "X76:9=<@?PTPXn2c2CM  `@XeqpE@ 4@2.`eq&T`PeDeQ^Qo_D_ )t4)t4!菤 !فnm ގؐș~@  "ȍ@,bЍTH B "_ Bڽc1;1 "b#D"" ;c1<1 "b2D"" ,L]bФ8DQ-\j t=04=u=05=cЍS b=`)*b7`+*  H @)  "@<,H M_ p,"Bc@141 "b2D"" A-PPepL Hp t 4 L]b0DP\l cЍS   p1 bXq1 bX,`),H @) "?,H 2j*"c-#![ "_ "32b0!#!03b#D"" DҺbt4L]b0 DP]\i b"` tp,bނbcЍS b"` p,br2l,X`),  0H @) + "?^,"H  !2|bЍR>b@ H 2 u  bЍdɁTɁT߈فni j0u ڹJ93aP?? p n010&De0123Ѥ2De01203DeL 01200De> 010&De01230)De01200De 01200De u01201De 0121De [01203De 01230)De01201De 0121De (01203De 01230)Def01200De bO bOz ɁTɁT߈!n@D0'e@12+u5>?XݎXr q->DC2-00 p1, 3(!pp2?0$$ ٱn:!;1`0@21`p203 [NUc1<2ݎXp-b#p Hq"EH+(B+!>+$:uKq+c( 1K`@p-bq2z!!B0  { "d@cdeeh&bNɱ8ɱ8ɱ8߸anXm 7dA@B "X0]l\pݔЎ  "~A6A  "=bЍPvH _ fbЍ` Ǥ@6AbЍ` "X1 "| aoXoT MN "X2 "| bЍd M "_  ) =4 5 b0dh tbЍl mm @6AbЍT`I=8 aa Z bЍO.> @4n@, DbЍp =a@ "Z6A  bЍXlm -cЍtu-xt-|bЍ` n@6A "Z  bЍ+l m t-xu-|bЍ`!.@ "Z6A  bЍlm ) t-xbcЍStu-xL  bcЍEtv-xbЍ`M>bФQm M>$bФQ}m =4 5*v-l "1X QXM003Z11`2a3bФ0[cM>0bФQAWm q-H#]25 20L>8bdP4m bЍWl,m `aX=4 5v-9!1X< aX q-20T=N 20HH"AL>@bdPm LQXP yM003Z112a3bc@d>LbdPm - QXP M0abc@dPyQbЍlm I=4su- " mb" H "jP// I=1`  "Xbqp20H :I=-#-c 2#"03td2$ c 222 "}c#G#" O$"ms# l$32hr$ g p+5 2@6A8 "Z mbЍpfc 81^x1#`  "tg' `  "}hp'|OX8 3@/p)4'`  "XcqCp@kc@H  <R Nک c102c2pq3p_Q_Pk𤰔 H[ vI@D@ j@dAbu prB4u v 4p K0H    `!(03\@4R)G ( * ```s;rwpv+`'=I=<18a:ܡ> ` p,dDx1!(k|x1)#`  "tctp#/0 bJbJH 2 M`@p,cD*03Z5PP` p,dDM`@dDbЍbЍ`-`  "dDT03Zpb@6A -`  "drtbЍ_`j@6Au  "_ 2]SPM@`P "XbqpC p L   @K }I=I xt]bcdP mt]q+cdP c`H   !Q+` p,cD M`@cD=`0dDT t-xp,=`0cDSM`@cD-`  "Xb0bt]4[b`bЍIIbЍ`I=8 "Z bЍpK- bЍs` "zM`@ "cDk-!0v- " +-l ª "Xcp# q3#H224 5u6 I "Xc¤10H =4 5}-j v-k cH W  Z-`  "Xbqp´Ku  Fv* bcV 4 0 I  $I ! 0      ! H  bЍ`w K- =1H K- [/ T 0 1 < H D 4H .  K- . w-`  "dDK-K-  / 0 1 < K- # "_ H "b  v- " M@ bФ2RbЍ`-k H; H ˤ  H   H  IKA)H  B IKAH  BPMu- " H]+%BbP!c%2 "Xc2pSq3S5  M`@@Dc eQPQdTDDDt]4[ c102c21 c102c20bЍG?H B ;86  v+` H   0#  2 FNH  1u- " ,H;# &   -`  "XbpR[q   bЍ` !%.H ) 7bЍ`+ u  !p=H bЍ77bЍ`7+ bЍ`  "X697:piؠȪp X=4 v-l p5 I=0bT $ b05bЍX`gu]pJb0'Xh (rp t]b08dPeF"aaaXrqZͱXݱXt]p(0d,h + 'M`@03tbM`@d@@20 p2`0 ?02Zu]ͱXb0dh I=4&3#TZ 80v]AXbcCbЍEiB؀ݱXaXqZͱXpJp-0'ep 4 m+ u 5 bФ32 05h I=`0b4m Mc@142 "Xc20Mc@142c2k1"xP//`$">V ljhfljD(&tH$JDHRPDB@><:86420.,*vA@ @L @ `@b t"|AL @ qݔЈa\H I=H H I=H I=I=I=I=I=I=I=|K-yK-H H eH xH uH p,p,h*n "}Ԑ!N<]/Xu., ّn` i0@)!9p) " 4)k Ც̎Xp,b+pҔ %q""H-)$ uMbc?( u 0 bЍD,p b 0+ 4 bɑ@ߘ1ّni u  kᰪ̎Xp b pҔЎqЈH L"{P//~|zxv \uMbc$ $L  vMbc$ p9bЍCX )  bC-$p b 0bɑ@ߘn7!*!`  "bD,!`  "tbp", , an}Xp,p Ȳe j`f}p+$!bXpK@ UHA$!$c 121 "b#D""`` u$ $!$c 121 "b2D""``t$ 4 5 t$ qD@ȻؠȪ~@ }`fP&0 "_ pذȻ}p p0Ȗ `p "bDp!cp0 &0@ &0 &0 &0 & 0 &0 &b0pp pb0x "_ ŀp (ؐșp)c181c2D#"`` #@* "tc0Mp (!łp,p rhx`f}p'$!bdA@BؐșXp)0P`|pF *`  "bD b b *c 121 "b2D""n*!j*d ABA03cCD33 [c 122p)b2p RH++O  uKbcc  ?t b%Bu+c 53C6c6Cc 63C/0'0*   u 5 *bA+* *`  "bD*!G dA@A03cCD 8  t 034 "4 u 5 5 I  t 4 u  5 t "4 u 5 :b@'_ ZH H 2T!Ru* " M*` p)bp" t1:b@'; PU@D @q1k0Ż Ȱ4k0Ż Ȱ5#t4044H 6 2 .L  +t b&"%b'" u:b0&"b0'"5#  t*%"   b84t:@D404:H 5 &024: "24:u:45:05:I 205::b@' 4  bvJ@6J "B6JI:41035PUE46:uJ@5JB5JI:41035EC5JtJ@4JB4JI:41035EC4Jbv*PU%6*/6*I @D$6 u*%5*/5*I $ 5*t*%4*/4*I $ 4*L "  *  :b@' :b@' :b@' b1:b@4 H uJ "B@5JH 03C@5J 5 t 4 4 I*$! "% 4  bt "4 034 4 u 5 5 5  :bJW bt:04: "24::4:u:05:25:5 :bI1 b~bsblH [ "xP//jhf~z(&trpXNjhfFb`^\ZXVTRPNLJDB@><B@><:86420,*(qwx" "Z!p p,Ȣk`f}p*$!bpڔЎQ -`  "bD -`  "bDt-Yu-Tv-ObЍb0'bФ?!XiH X b"BP//D|zxvtrpnl~|zxvtrpnljhfdb`^\<:VTRPNLJHFDB@><:86420., &$" qݔȪCaTذȻ}Ԉ       H PU@D߈yp,Ȗ p,p,hّn "XؠȪ}p:ȓ$k#}p 941bpٔЎ}iI u -`  "bDa -`  "bDNbЍ*HI E -`  "bD2bЍ,I ) -`  "bDbЍH   ! 2 qݔșɑ@np:ߘn "Xԍ, b#, an0%p~~~p؀ȈX2x "~, Z "~* }03 l0 "~  "~*0 "~  "}03}`# "~Qؐș_ pIT "4034!b#2   S22 ```pI$ Rp)P@D}ԴT  `Pc#PT "TrX}p Xp-$f ؠȪ}p* bbW Ȼ' "| r q(>D2( "Z '  ~1  "T0~~% pؠȪ~@ ) ")2p pp-$hx ذȻ}p+bbp1wxB " l  "~  "~*@  "~ iذȻP+(p p-$m pw}p'bb1Ȉg@ =+(ppZ؀Ȉ   b(bcp(`pp(bp93D"pqp b($aPؐș_ ؐș_ ؐș_ ؠȪ~pp Ap p  h$Header: rtexpand.c,v 1.10 88/09/16 09:36:16 pickens Exp $MetaWare TWS 8.87[xpand] Mate of R%d is R%d op = %s [xpand] converting to pair: [xpand] Not splitable [xpand][X]Reg classes prior to fixup_float: R%d: FP_PREF FP_OKAY R0 R15 DATA FLT [X] R%d assigned to floating point reg [X]Output after expand prior to re-invoking live/dead analysis: [X]Output after expand: Final reg classes: R%d:nԔ " |!N8 .N d0 . "X!N4 03d5#01 `2, n.̍ݎd01u-54 nc Nȴ4  303l32 A b0١nj ݎdv k @*C@A 03tP??*(C:CKCkiB;4dC:CKC _^@; XB;4 UC:CKC QPA   IG@;76 @3P??ljhfd`^\ZXTFB@><:86420.,*(&$" ~|zxvt#D B+$ 0 3P??  (bc@>@  bcpqS01RrsS23RtuS45RbcpqS01RrsS23RtuS45R6 bɡTߨnl @ ,4\@D d "~@03p%4\L "~@03|%}4, ` ? = ; d q ~@p] 0303bP%QrL@p]p 0q%+!1%vrL +cP%lrLrL@gPU~@p 0q%0!1%WrL 0cP%xMrL0 ,L~@p-03%rL@7p]p 0q%+!1%*rL +cP%K rLrL@PU~@p 0q%0!1% rL 0cP%,rL@ "~@03$@  t"0P//|2 c101 "}b#B Y W" Qm PU~@p 0q%-! 1% -cP$ " d.L@ * " dB $ "~@03$ZL@  " dB "~@03$C  "~@03dЍ$4AL@ % "~@03BDD($ 4 sq,.24 ١nkj k "~@bcj p=C!$@ p=*$7ɡ@~@ߨّnk A+"P//B|<d>F @f6R\+$ؠȪde@K "~@03BC[DDgRUU(#~ؠȪdG@K "~@03BC DDg(eH pUop0#YؠȪd"@KCK "~@03ȪBr[DD(#<ؠȪd "~@03تBC[DDgRr UU(0#ؠȪd@K "~@03BCr[DDg(0"ؠȪd@K "~@03BC[DDgR(eHpUop0Iop1"ؠȪd@K~@p,ݴ$=ܪBC[DDgR(eLpUop0"@  rKp,="ؠȪdirKp,="ؠȪd[r+(ؠȪdP~@p ݴ$=b"q[p =LؠȪ dJb"bp =b"Z[ Jp =b"OVK@p,="EؠȪdp<*"ؠȪd@K~@p,ݴ$=BC DDgؠȪ(e pU"@ pAc0[@D d~@p,ݴ$=L d+"ؠȪdu bt 0[ @D d~@p,ݴ$= BؠȪdp,=d 7舀+ #dTP 03q$2  $+ #dTP.!. $K ~@p,ݴ$=hCdD+ p,=ؐș}92ؠȪ}p*b#p"44K Cd1$K Cdq92p*b#0p=ؠȪ(Jb+ T8+ J@p=#bRb " d~Jp=bؠȪd_+e @Dd "~@03܍zؠȪdC03~+.0 R<ؠȪd0 " 03~(.#+@ "~ 4+|DؠȪd +]HؠȪdt*B 4 ɑHؠȪd~@ݴ$QؠȪdؠȪdؠȪdؠȪdߘ١nm j0k@̎dq<31P1A|03dub s00 ٱnk l0im &4H| '0mD $%ɱ8߸1nm '0mD$Ҥ%0! nl m0%0DB @ 03ds3@$%4! nl m0E0%B[ @ 03ds3@$%41 ١nk  ݎduMbp *s= # dp  43=bX  bH @   s 3 ɡ<ɡ<ߨnm E0%D$Ҥ%0! nm %0DD$Ҥ%u0 ّnm i0hj ` d@ uذȻ~@p ̴$<b}bЍ@p <bpbЍp *cp <b\*d p <bMbЍ@p <db@ p <$b6bЍ[@D`p <0b% "d43ɑ@ذȻ~@̴$ߘ!anf g0h@iPU`ͱLj`  " dg"Sd ~@p ݴ$=8bp =dbd` p,=tbFD(p,=epQ^WRp,=Īrdy蔀 p,=d`j  p,=de  p,=(J@e} p,=HJerp,=hk "~@03^iaL]ͱLhQٱn` k0l@mP*cH?$ɱ8߸Aٱnk l0m@$0'B$|$&%ɱ8߸1nm   0'@x$0s,0 nm   0'@t$003~0 )$00 nm  ,0+0'@p$0 nd e0P _  c@dP,  'c@@,P P ,c@@,P.c@@, c@dPg,! nm 0'@/`$0 nm 0'B\20 n 0'FX, anf g0h@`ؐș~@p9 #Ap ؠȪ$:bp ȺX dLbcepp ,c` ALp Lbce`bd p :bLp bcepp :bLp bce`p :baLbd p):oaLؐș~@h1s@<@  = 9 ;yw  qml fe `]\ :     8 FE fA g= h9 i5 j1 k- l) pA#PV< :  ڔ'     8 $Header: rtgen.c,v 1.7 88/09/15 14:26:12 pickens Exp $MetaWare TWS 8.87L0%03d%dLG%03d%03d_%s%sL%d%d+LUF0%d+LUA0%d-%s(%s) %s %s %s %s,%s get %s,$0x%lx %s %s,%ld %s %d,%s %s %s,%s,%s %s %s,%s,0x%x %d .short -LL%03d%d %s %s,,%s # %s %s mr r0,r0 # no op to fix APC bug %s %s,%s(r%d) : .data .align 2 LF%d: .long .text balix %s, l %s,LF%d-(%s) bali %s,%s at line %d .globl .globl .text #--------------| %s |-----------------------# .using ,%s .byte 0xdf,0x07,0xdf #Trace table for %s .byte 0x%02x # First nonvolatile register saved is %s # No nonvolatile registers used .byte 0x%02x # npars=%d words .byte 0x%02x # rtfl regs saved .byte 0x%0x # lcl_offset=%d .short 0x%0x # lcl_offset=%d .long 0x%0x # lcl_offset=%d .align 1 .long 0xdf02df00 #Trace table (no stack frame) .set # label "%s" : b # Someone needs to fix the assembler!!! 0 # label "%s" MetaWare TWS 8.87"'' '''''''''''''''''''D''''?'+('''''0128,''C@''''aabsaiaisbalixbalrxccalclcicisclical16cascauclrbuclrblextsgetllclcslhlhalhaslhslislslmmc03mfsmrmtsnnilonilzniuoniuznopooiloiuonecsshrshrashlslsrsrasetbusetblsfsfisisststsstcstcssthsthsstmtwocxxilxiubrbbeqbneblbhblebhebnlbnhbrxbxbeqxbnexblxbhxblexbhexbnlxbnhxjjeqjnejljhjlejhejnljnhloadloadhloadhaloadcstorestorehstorecbaliincdecldasetsb@P03_ CcM@   03 l0_єbPP03_ CcM@    _ bPn:1m0l !("vP//$|z `ЩbЩ%2A*  $L`ЩbЩ%2`ЩbЩ&"bЩ%2 ",n$L!,$LAg%L bЍ 2,`ЩbЩ%V2 !*q $2,3<`ЩbЩ%B2 @D,( " d",H WI ^  s 3 `ЩbЩ%2bЍ/,>b@W0`ЩbЩ%2      0  4 4bЩ%n2bЩ%h2`ЩbЩ%2`ЩbЩ%2 @Bc@5C0Ao4-b菪b菪r"/r"/菪rs" HI25?t" 3SUP55P@@B@AAB@ B@rr" Q%ٱnl m0@ @<0A A, }C C, xt3XP??N0.dz!ɱ8r r, ! ɱ8 , ! ɱ8 , ! ɱ8r r, ! ɱ8! ɱ8,=r H  , +ɱ8 ɱ8߸!@1P`0 A1Q_```b@@2 3SUzP55  鏤 A"鏐"鏤&鏤"nm0l bЍm,@ b@"- 41 ّnj k0l@mPQ@0  # r+r+!` r ‰@  PA@  P1@ P!o$ @ DCB,P !D 8H0!/.,0'&,@ B D,@ !D  H!,@    ! ```" C;1A  C A  @ C-!A-(  C 0 0bcdЍi bɑ@ߘaanf g0h@iPXbЍP k bЍtl bpm&bb-0]0O2e2QpՔ ObЪ!-#-"jN @:bp 7:(b .:@b % X 0 Z 1b`cpde  X X Z Zba Xpڔ.!. %N d0\ ..0]$..(. .>rQpE` m0M0%m-cppqS01RrsS23RtuS45R-(cpqS01RrsS23RtuS45R-@cpqS01RrsS23RtuS45RܽXZ01b`cpde&- " .a XhQ"L"RU$P%%LPb8xph68Z\L>B鏤" 鏤,  鏤 鏤( 鏤#鏤! 鏤*  鏤+ 鏤$鏤%  鏤- nc 12322d0$ /PU}R "}b%PUpP.`%u0  䉀1PU  %"$Or@D@  11df@pq_01Qrs_23Q0 q1#!0 ' p?P<5!#!`  "tb" `  "}b  $ $ @q  A̤  Ф¤` '   PU_ e @  m 菐 菉 1فni j0@  ɁX1b@d ɁX@ :b0  ŲbЍu 8cЍ I 100(1QP 0 )1S(!c @*'I PAIH0 ɁXɁX)1S(cH0(Q%s:r*e_ ͏ pp1QbP3Q$ r:bP'QȊbcPdPoA Q15 t 4 bdP[t 4 QbcPdФPNA C@*'10-t 4 JbP7t 4 1%q1b0c11 @B1t 4 bdФP t 4 !ɁX@*$%' ɁXNAIKAIQ߈1فnpi j0H) J u94bv9bЍŲt94bށށށL u9bЍL v9!zD -bcЍ !1pqS01RrsS23RtuS45R2  +1b "!bcЍ  t)  u) ɁL #4 !7!5 bcd  ɁLQ0bcdЍRm bЍɁLl߈!$nmP4?1703f@pqS9:QrsS;PZD菤204 菤 C ``` 2A !" C ``` A"#r)0$1A23C _UͨPI1n1ABQCA "~@03׼0 ٱnk @+ S"@P//*>rK "~@03؍ɱ8AKs;r+yɱ8~@p 03brIۤ +p *c ɱ8ɱ8߸فnm @-& +C (@?A  @F@I @U@D  "~@03"@-"bP//0XV: "~@03ɁD] M "~@03ɁDM "~@03BDD(ɁDrM "~@03 ɁDs]rM "~@03ɁD؀Ȉ~@p8 <Ȑr 030p(3,줰p(cd접p8 >ɁD-ɁDɁD߈nl N ~@p] "28bBLbPC,p]p 0q%,! 1% ,cP,( @ !p]p 0q%,! 1% ,cPi,@44 nc 12322\l~@pM03(b@b{pMp 0 q$!1$4*c@4 ٱnk Ѐ`  "~@03ɁDɁD@߈ّnq>0 <(b!)#)"kO  - }LB}p=c4p#42+ ,d Bp=c40 a b>0Ɣ "}L 4ɑ@ߘqn  "~@038 `pw~@؀Ȉȸlb!)#)"jZXJp'c@ p'8*Xp7*ZZJp7b0cЍs@ p'8i*Z p7*qHx$Header: rtfl.c,v 1.4 88/12/07 07:08:51 pickens Exp $MetaWare TWS 8.87لؤِٜ٤٬ٴٸ$,08@HLP .short 0x%02x%02x # opd .long 0x%08x .long %c:%s0x%08x%Le/fr%d%s balr r15,r15 # r%d .short LSI%d # Tentative scratch regs: fr%d .byte LSF%d # Tentative scratch fp regs: .align 2 L%d: # mr r0,r15 .long FPGLUE .byte 0x%02x,%d # op=%s, opdcnt=%d .byte %d # size of block .align 2 .space %d # RTFL scratch register masks: .set LSI%d,0x%04x # .set LSF%d,0x%02xABSACOSADDASINATANATAN2ATANHCMPCMPTCMPBCOSCOSHDIVEXPEXPM1LOADMLOG10LOG1PLOGLOGBMOVEMULNEGREMRINTSCALBSINSINHSQRTSTOREMSUBTANTANHٱnl XL@ d,m  e"03\b2p"q0 XL( @,"b2p" XL bJX  bAb3 (,"ݿݿ,bl m p- kp-0bɱ8 ɱ803\߸nm X  -"""\q0 X ( bЍl X- bЍX-( 0 b4 npԒ 0q2@112H` b, n "p@p 0q2@112&` b, npԒ 0q2@112` b, qng h0i@jPkpВ@XФ?2 !H01PAl@b@0@Dg p Al`p 88Alb@xA0%f `xxAlf``8t!c@sxAp  @a 01>AAl!@Al@= .*!l18AAl@- AAlAl@l ؛=Al@AAl: h b lAl:@AAlLT͡TݡdݡDD< % 4+35}l!8$!8z"h1Pp 2zl1Pg021Pb02!8$!8Ͳaݑ`!8$!8bb`0@Dg p ipÙ@ iݑ`ݱT18!Q`418C u @Ddc@dPf KȠi!8$!8B!Q`c@dPf !Q` <8!Q` <818418C@< x0x1f ȠxA`@DDii`D|Fᐉ ȠgȠfȠeAh1dݡTzL !8(!8\ !8(!8\0A11d}Qf 0@Dg p `p66@ "n\bAv` !H2!r?\5u`d} e  ff gf1h}0!|A\`vC01hL81Ô0 ?2  g `2(i 2#irvi ri v0 v`d`0?r i 1`d0vmri fOL1h11h`0831h g !\" 0q'\\ x -+q "n\b+A Eeq!\"5!!\eLrA`i Ɉ g9b)!H!Hu!ᐤXy  gr XX  ]QdPT U R|<P AI-"P//L8~|zxvtrpnljhfb`^\ZXVTRP D@><:HX.20,(&` + d @@ @ 7>@;@7;@ᐤ;7w ~ ~QwAt1s!$ 蔠 <| )1p@QdP bRpA|<| bA0pA|bA޲pAst!p D ADt1s!Q$ w ~ ~QwAt1s!$ A`@ t!c`sp L dA`d At1s!Q[$ vX .pt!1pAsp  ar rAt1s!Q9$ T t!c`dsp  G!H AHt1s!Q$ 8Le!\5! t!cpsuAp  #{ ~Q{At1s!$ 1P91PAl@y!PDa< `a01 ٱȤe @n\k AŻ °û"nΪ"͑Q@n A%0 0S@ 0bɱ߸1ٱnk@Ф@-+!d "  "b  0ɱ8߸1an2!f01A0Qpr& *"^P//0@&<:8420.,*( Ȁn\ c` h n\@bA"  & bi ɴxȰ" zbpc`Rg Ȱ"yёrȰq! q!0p! p!0bpa XhAn`0e@0dg,1 n@@Dn\cA !@cA```0@ , : ::```00ٱnk ̏,>@pqS8A01R( ```v+` b$R% \& t+` b s;,`H 0  r;, `q;,`p;,`u+dcd02,`,c@`bɱ8߸nԍq|, ""n]"""n]"""n]"""n]"""n]"D""n]"""n]"""n]"""n]"""n]"""n]" ! "" 23n] "23n] " @23n] 8Ab@ٱnk o. pp@` b   b Tɱ8߸nbЍ   }l l 0,v̐ b4 n̐'ݐs=0=3=130q#pOL 4 @ q$1e@\ 0@dB1CpqOdB1pOdBp0pOdBp03=p0$4s b  4c q" Г$p 003sC$8qT% E $ % dP$/qT%` p]0qTq11Rp_`T p_0q11$3C菉qTqTnԤ C` b, nԔ ,, ١nj  b0ɡ<0  ɡ<Jp ɡ "$p ! 9,02!, nNԔ@N.c 2p, nԔ% ( ܔ , ١nj k0l@mP }l ɡ<ܔ ݮݾb"bp2>߁|Д1 0 bmؔ 0bpbɡ<ߨAn0@P ,  P}l "dp$04n03|#""" .nЍ gm  0- " Tb0 nm r- X   2-3-X ( 0 ّni j0k@lP 0X Ű sbhj  ɑ@b213ɤ 0) ( ɑ@X ߘA鏤 鏤 nl b0c@@Cm  4 , 3`Ъ b$0`0b1  }l 4b4Q n"ԍ  , ٱnk l0m@030!bdeЍbɱ<߸1 b0ٱnk r;+sdЍl 0X   r b ܤ0dЍr 1 bɱ8߸nm d0 @ r=-X ( s 0 r 1 0! /tmp/%s%03d%dnԍ, nm b1' p0 p!@nc rp!mЪЪsq! 0-Hxn#,! nu F  r 4rc402qc402pnw"`  l-0d `Ъ     2b ` b4 nl ($/$?@pqS8A01R( ```p0F><p 9bЍb4 nl b1 E(H/H?@pqS8A01R( ```p0F\rb$ "p HTs hbЍbD١nl XL4 ,"23\TCAb4J"!$C g0,q#0,X,$`(, ,1A ` O0,1` DXL %ذȻp@`Ъ j X*@   b b 0  XL$b2` p, q<@#!11"A2 bЍqd "cЍ& !mɡXߨfpabort: ...exiting. nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP}lU0% puP}lU0% ptP}lU0% p%P}lU0% JAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 11.0$N`鏖c ( $Header:lmul.s 11.0$pP}lU0% A @!鏓!A```鏤 A @@RP!1 !@1@#鏲 A鏤 e A !A```bPpP}lU0% pP}lU0% pP}lU0% pnP}lU0% @B@S!1E@鏤 Eb@$Header:strcmp.s 11.0$!` S 5T@!VDEpCTVPR!TNXR!T FR!4R#pCT T @ RT T !B$4pC@ Rb!Bb"PRbT XRT T HRTR $4pCHRb!PRb$Header:strcpy.s 11.0$!L` R%S@"ZDEpB$TTT T qB!!! $Header:strlen.s 11.0$"@`@@B@S!1 E@鏤 Eb@$Header:strncmp.s 11.0$" ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 11.0$"#dp P}lU0% pP}lU0%  oNT$Header:crt0.c 11.0$$Header:fpglue.s 11.3$}po|}`}\0AOFPAFP_PRECISIONW`@PBpoB`kTkXxcopy_il_entry botchXt Q< 2  >Pl<x@rLQ *D$n   $08,hloadmd\FV4V ,P`parms| @$x#gen_struct_call: not a struct call!XT$x%%&Z,(d'PL(@DH x40h-"kTj.F.Q A/$Back-end out of sync with front-endfront and back-ends are out of sync!.LABDEF out of context!compileunrecognizable opcode P 4tXXT_@ LL,F @4W`4TTx4`4o  8, !!p    Q\`dH!8"D 0,$(WWWWkL0T@kXL8Cxea tabF24FFFD(D@xDzEFkXkTF''''''''''33% /01-#"&)7(('''''' 4''''''''''''''''*''''''''''''''''''''''''$2233%  /01)7'''''''''''''''''''''' '''''''''''HIJKLMOSTUVWXYZ[\]^_`HILcond,unrecognized cmpopXTI 84\J>@$JQ<LMNcreate_var_ref -- invalid node $kLTl`?UVJV@>|lhDdZ L  P \TP]V\`\  `\ T#`\ @3 `\(3`\@3 `\  _<@Lagen_load: STRING node encountered''Inline assembly code not supported unless "-S" option specified.gen_load: unrecognizable opcode   0?@,@DlHQ@p(gen_addr: unrecognizable opcodertvtt>u > vH8D ,yyPvarfuncF8 kTWz`func tableFFF FkTkX|tfunc extension table| }R}j ~func tab}V\~TTree spaceSethi-ullman tableFFF& xhhDivision by zero!XTUnrecognizable op in ifold `kL\   ` Pn`l \ LH@$k0kXj&:j???kT( tPinT bufferFile ended prematurelyinS: Intermediate input file is corruptedQ@FFFk FxFile ended prematurelylabel tableFFF  $}8Tlabel_oflab > last_label!XTlit_infolit > last_lit!Tjassociate_offsetl > last_lit!littab  z}8longtablonglinktabFFFFfloattabfloatlinktab`\ `\<T#`\<(3`\D3`\ `\(3`\ Rfk0kXU  @j}8Input file not specified!out file not specified!auxiliary file not specified!B!HmWkLWW(@olisttabFFF2|^bbbb_flagsF@ kTxjmp succoF4T4dHHlsaved bbsaved bb_flagssaved listtabW`toPpredsalloc_pred_lists: pred list botch!kLXTT(t kXcoaleascePred_cnt screw up\ldfo .0FX8Ĕ}8saved objtabsaved hashtabW`FZFoFkTkX^object tabFF____kTtFx zint_value: not intkXXTJ Вאؠ8identtabFFFڠ  ۈHz ݒ<6PބLdߴ46B@Z`(@DlPP Lp@@L}8saved identtabsaved hashtabW`hidenttab (restoring)FobPROLOGlevels don't match# XTFkL\. LPX\(0kTH8#:7(#` put_btab: too many switch entries!!!"| 8fR~  n@h ~ 0 $  PFF reg_matekXT j Nt:Rsaved reg statusW`FFofreg status}8`sect tabsect offdefine_sectionbad section numberFXTF8dstab tabFFFb\dlptkTFTFB@H,.@jPnullFUNCVARTAGTYPENAMETYPEREFTYPEDEFFIELDDEFFIELDENDENUMIDENDENUMENDSTRUCTBLKDEFBLKENDSTARTBODYENDBODY|   0 @ P l |   DrkT$H.....................................................o|x"`\$08`\,08`\t"Dz`\p `\ 4`\84`\t `\ 8`\<3`\ 8`\X3#@Y`\,08!h!dT`"# L$X&  (Hard allocated table(Register "%s" assigned to more than one active variable: "%s" and "%s".FQFFF)X)FTFTQ kT+DW`+Fo,p,-0-Var table-^argcopy_tableV<.F8 P/00B00Parm table181do_vardef: var table is missing!!!Vtab entries exceeds table size!!!1h\Explicit assignment of variable %s to a register is not supported.Register specification %d for variable %s invalid; ignored."%s": Variable allocated to volatile register; therefore, its value might not be preserved across a call.auto%s "%s" is never referenced.ArgumentVariableautoXTX}8kLQlD4PkL8nydo_vardefattempting to load partly-reg-passed parm in regsparmparmT0L=>2!>Parm passing inconsistent: not adjacent to memory area!4Ahblock tableB?E8YEHost floating point format not known!!!"X`\<1`#`\<1@2F@<GGxGHHjH4IH"I###JT##PKpL 7NRNN#tOV#XRRRV#dSSVT.STTU&U7kT7V.081D6#4 W4W`l` ` X57WpPoXdotabFFFYBdrtabYdltabZ$hZ$\$D[ \\$]2]b]$^$`*aRa4abb,x`\<P#2 bhfoldbad opXTkL$dfoldfbad op$`\ `\$T3`\<``\,4`\<T4`\<D34`\<D43`\<D34`\ <D43`\<T4`\$t4#`\<T4`\<`4`\<@2`\<`2`\<T3`\T#`\(4`\(#`\ f`Q<@+ jFlookup_tabjk+8k^l*$m+(p}8pq+`rs $+PP`\<TE`\,T38`\,$`\<<stu.+d,%D,,$$%d+t`\033438 ox\4d^4L4`ilabel tableFFF|p}8live/dead vec spaceFR6kTkXRF @4nl 45  4\defuse554inout6J5XzVariable "%s" is possibly referenced before set.live/deadreg_use_list too small!65`PFQ4XT}o  live/deadadd_live_list_to_each_node: screw up!live/deadadd_live_list_to_each_node: screw up!livetabLivetab list exceeds 65535 elements!!!live_list7XF054505H5d46\48 W`}8H|S *FP""7##7&t0kT7 8 8'7X(X)Hdom tab0R6F67}kTo8,loop list77d}87,7`-FFR2.\.t.|kT.kX.RF/\live on inputlive on outputFR63.rtabregsizeToo many banksrmask_union_for_bank_ofedge_sumcurrent_adj_edge_cntremapRegstackBankstackX86(7 87add_edge botchkLXT9f9::\877 N=Zcouldn't find node!9$k9,??hRemapReg not remapped?C$?AH9T99|}88<PFGG99HUlM6Mmerge_registerscan't doit!99PRPQ099Sj99:9xWY WX:(ZYZ8S69:$dR9(f(gH:X:Pg:\38;8H:4=<;kjNkFCan't color register graph!!!::q8pq099:h:8:{|`|} @;}}~,spillback-substitute-base; base badspillback-substitute-base XT}8\;P;0;4;;,; 7t0kT;8oFSssCode generation failed for routine "%s". Possible cause is that too many registers have been explicitly assigned to variables. Aborting... spillingCan't color interference graph!!!!okXFH6QX;bnest levF77=reg cost<7$Po=4global reg sort list0F=8kTF8=@@kXdynamic alloc (alloc_reg)Can't allocate reg!===XTT=====>=P76>$Jv6}8>4>odynamic: mtdynamic: vtf>\><>xpush_fexpr called!Xvoid_fexpr called!stab_stringFFFkLFkXZFF>>"<H? k2"t` ? ?(?0?@?D?4?<?H: delay tabFFF@dL`\< P# ?@,0@j@(ldLD`: @D FB}B}B}B}B}B}B}B~B~C~0C~2C~C(~C8}CH}CX~4Cd~6Cp~8C|~<C~>C}C~DC~ C~C~ C~C~C}D~&D ~$D}D,}D8}DD}DP~:Dd~FDp~ D|~"D~LD~ND~HD}D~JD8WWTRACE_DYNARRAYOPT_INPUTOPT_VARSOPT_FUNCSOPT_ALIASESPRINT_STATSTIME_PHASESTRACE_ILTRACE_EXPANDPRINT_EXPANDTRACE_LIVEPRINT_LIVETRACE_VALNUMPRINT_VALNUMPRINT_PHASESTRACE_NODESTRACE_DOMTRACE_COLORPRINT_COLORTRACE_SPILLSTRACE_DYNAMICTRACE_OBJECTSPRINT_DYNAMICPRINT_CSEDEBUG_CSETRACE_CSEPRINT_TAILTRACE_TAILALLOCAPRINT_RENAMETRACE_RENAMETRACE_LOOPSDO_RENAMEPRINT_FUNCSVOLATILE_POINTERSTRACE_CODETRACE_GENTRACE_LIFETIMEPRINT_LIFETIMEASMEMIT_DEFSTRACE_MASSAGEPRINT_MASSAGETRACE_POOLF˸LTX\dlt|τόϔϘϠ ϨϬ ϴ ϸ  "Tebcdic table/lib/ebcdic.tblCan't open ebcdic tableCan't read ebcdic tableEF|k0XTkjhc2.1aFxsymtabchartabsym nextFFF8FFH}F@Ftb҈kXokT}8ӴBad dynarray pointerFoF԰R^oJPJXJ`JdJlJtJ|JJJJJJJJJJJJJJJJJJJJJKKKKK$K(K,K0K4K<KDKLKTK\KdKlKtKxKKKKKKKKKKKKKKKKKKKLLLLL L(L0L8L@LDLHLTL\LdLlLtL|LLLLLLLLLLLLLLLLLMMMM(M4M@MLMXMdMpM|MMMMMMMMMMMNN NNN$N,N4N@NHNLNTN\NdNpNxNNNNNNNNNNNNNNOO OO O$O(O0O8O@OHOTO\OdOpOxOOOOOOOOOOOOOOOOOPPPPPP P(P0P8P@PHPPPXP`PhPpPxPPPPPPPPPPPPPPPPQQNULLEXPRVARINTEGERFLOATLABELDEREFSTRINGADDRFUNCOFFFIELDADDADDASUBSUBAMPYDIVUDIVSSHLSHRASRREMMODUMODSNEGABSUNIONINTERSECTXORCOMPDIFFANDORNOTIFUCVTBUCVTWUCVTLCVTLCVTWCVTBFCVTDCVTFLTUFLTTRUNCFADDFSUBFMPYFDIVFNEGFABSEQUNEQLSSGRTLEQGEQULSSUGRTULEQUGEQFEQUFNEQFLSSFGRTFLEQFGEQPROLOGEPILOGLABDEFSECTIONSTRINGLITINTLITREALLITADRLITFUNCLITLABLITARGSPACEALIGNFUNCDEFVARDEFSWITCHCASEJMPCALLCJMPCOMMAPREINCPOSTINCSMPY224UMPY224SASSIGNASSIGNFASSIGNADD_ASSIGNADDA_ASSIGNSUB_ASSIGNSUBA_ASSIGNMPY_ASSIGNDIVU_ASSIGNDIVS_ASSIGNMODS_ASSIGNMODU_ASSIGNREM_ASSIGNSHL_ASSIGNSHR_ASSIGNASR_ASSIGNAND_ASSIGNOR_ASSIGNXOR_ASSIGNFADD_ASSIGNFSUB_ASSIGNFMPY_ASSIGNFDIV_ASSIGNRESULTFILELINEVARINITBLKDEFBLKENDVALUESETTOGRESETTOGPOPTOGREGTEMPLITDEFTYPEDEFENDSTRUCTENDENUMTYPEREFFIELDDEFENUMIDTAGDEFTYPENAMEENDFIELDXCVTSTRINGADRECALLEFUNCLINKDEFUTRUNCSECTDEFMACHINEMEMCPYBEGINARGSENDARGSSUBSCRIPTMINMAXMINUMAXUFMINFMAXFUNCSTABVARSTABVERSIONFUNCSTARTFUNCENDRVARDEFALABLISTJMPILABADRCCADDCCSUBCCMPYCCDIVCNEGCABSCRADDCRSUBCRMPYCRDIVSINCOSTANSQRTEXPLNLOG10ARCSINARCCOSARCTANARCTAN2COSHSINHTANHFMODCEQUCNEQGEQUGNEQGLSSGGRTGGEQGLEQSLEQSGEQMEQUMNEQMLSSMGRTMLEQMGEQSETREGGETREGMOVESMEMSETGOTOGLABDEFALLOCAASM@ׄ"kBk؄Fileref table!HFFFZZ٠QkLkX Q^Q"QHQݞFQr`k0kX$okLXkTW`R@free_poolFreeing a null poolAlready freedFreeing a non-pool!XTo^pallocnull poolfreed-poolnon-pool!palloc screw upexpression stackFFFpop() -- stack is empty!XTSt SP" n kkBhlil-file-stackFS  \ tried to pop empty hlil file stackhlil tree stack not emptyo_EXPR encountered with no expressiono_EXPR more than one expr!SWITCH: case table too shortCASE out of contextCALL: not enough expressions on stack!o_CJMP: no expression!hlilinunrecognizable opcode @ h t QkL  ` @ x L  P T    XS H \S  SQW` " Tvar table file is corrupted!var table version not recognizedauxliary file errorgarbage var table sizek"XjkLQ@k`record count in vartablefunc file is corrupt!func file version out of sync!!HAlias table corrupted or premature EOFPremature EOF in alias tableAlias table corruptedAlias table is corrupted!process_alias_fileEnd of alias table not seen!VXTAvailable memory exceededo"<kXkT"W"W >\W"WWWvToggles:Make_toggleAttempt to re-define a toggle:toggle tableXTkLFFFjWXXkLjX Xpp,X2oQpTpT<\rkXkL"XXdooXX(LrnPYhYpYxYYYYYYYYYYYYYYYYZZ nullautoparmstaticexternexportcommonstatic(defined)registertypedefnullvoidintfloat*[]()struct{}union{}unsigned()!Heap overflow (string pool)"oX"<okL , l" FkX Z  d  .___ _Q Ht_  ZQQZ"#!!QS#!!!!#"!    6kL  b$Q<X&%s: No more than 3 non-volatile registers can be assigned to simultaneously active variables.^\\\tkXkT_0_PZTZ\Z`ZhZZtZ|ZZZZZ[Z`?P__(Z]H [\ \4[[eL\<\,\t\\_$a"]<]D` g\]L]P]X]\\X]`\]l!HXErtF8k0kXkLE_?_pjj . tkkXkh" FkL#>_#section tableFF8%'tcode_genbad_ilkTXT'code_gendo_LI_pair: bad opdxf(Lcode_gencode_genmake_mem_ref: bad opdk  x FF8,`gfP-Dcode_genLDA R0,M!!!fp.n kLf1f|jX3fxf6Vff6j8789Xcode_genAI with non-wordCODE_GENAI with non-word code_genSLL: r0==r2!9code_gencmpi not word!codegenbad opcode`ft_fQ<`fQ\ff_a8gffff`t`d``ffg``P fjSStSmate_ofreg too high!regmateXTFkTT#TUb8PU"x"4@ab<VW6F8Wuldiv$$divmod$$ldiv$$lmul$$ldiv$$uldiv$$futrunc$$dutrunc$$ftrunc$$dtrunc$$ftod$$dtof$$fabs$$dabs$$fneg$$dneg$$itof$$itod$$utof$$utod$$fmin$$dmin$$fmax$$dmax$$fadd$$dadd$$fsub$$dsub$$fdiv$$ddiv$$fmpy$$dmpy$$dcmp$$dcmpt$$fcmp$$fcmpt$$replace_with_call bad op???kLbHbl"bh[T[c\]bc]]^convert_to_pairBotcha###c"ddb#X#|#teexpandLI not float!uldiv$$divmod$$ldiv$$uldiv$$divmod$$ldiv$$_.blt}8cd4#<btdd<aac Q<#8#(b0#Hc#L\cd$"z>expand rtabFz{T|e(}e eF>0edPe0e@86eDcall tabgentablabadrFF$eZkLFkXQQ$Bad label in genejeXTQ Z?|_p?x?Pe.zf4rgenLOAD r0,X!!!f(f8(e0bBad label in gen (Zf Derf0e&\ Rfxf|Brx| (08@DHLPX\`hlptx  $,48<@DHL@DPTX`hpxJbuild_rtfl_opdunknown opd x`XTHiX`\<\3 3 >biiirtfltabiiiTi\iFFF0fP<Ɯ>jjgffxɮi jjj ij g ˂ j\kLZ`ekXj|Ѡjhjjӆjjj`jl2Q jXosTr8r`rPsT۸s8ts|*kN݀rPjrTkk(kPl ߄Ds@|s@khkX}Xsk|ks(rt\rp|}hs@kUnknown errorkhp0kX|l  mmm|lommmsdmk`\ `\ `\' T3`\? (#`\Al#`\ `\  0000000000000000mLm,oJmxm... ... 0 00:00:00 0000 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecmsm ((((( AAAAAABBBBBB "4FXj|0Pj|hp8o ovoool|hopPp pBp||xPPP,6otor8}T|||k(2:}X}8}h}d |@|`\<P#h{h}Xs(sTs|rx0rLssT|r@}hs(sTs H|r D|@|Pzm`\$0`\,0`\/aT#`\/aX3`\/qD33`\/q@3`\/UD3#`\ ?UD3#`\<T3`\?U$`\?UT#?`\?U< `\?UT#@$`\?U0`\?UT#?`\?U<`\?UT #@$`\ ?U`\?Up`\?UTp3`\ ?UT#@$`\?T#Aׄ`\<`\<4`\4\3`\,0?@$@Y@ÈAׄCAy7FnM8O?ZwH02uOs< `\T3y`\X3`\<(#???tzG{?@bM? 6C->h>>j򚼯H>5y0:>. &֕=|׽=yd=a-=,%hIv<+<V<Ҳ؉ \ ]쐡뜒bA".bA". ,!kkȀPkJ[}bpc]mb`cpd>aah-١n0-1=b$c.ȳq-!pb; JKs[p ɡߨ-nml R0,=3@Pa١nT0-l0-k P/,BVht.p=@-!.Ѝ .p=@P. p=@Po .`p=@P. -!.q s.p=Hq.¤0NfS$a-!ȾbS p+0#P " J.ʔ )Ƚdb>(p+.q+.r+.s+.t+.Z+.!..> ..>0p-20 k .j0;d. ɡߨ-ٱnX0-1= -{-{c 222b>K,0!L,1!.2!-3!q-!pb< L@\EM\p -{ !-{ɱ߸-nma nm. $0(3#f "#h#p"!#p #l. "0(3#f #h #p #l.!!.a n0-1=>01=11N2A31qMAl .N]p -n0-1=>~0 l .q-!.p -ٱnml k0.h -21Bbp-21Bbpaɱ߸-ّn0-1=qk .0p .xp Ȯ@bp .Pp .(p ȾpbȞcq-!pM. pbcq-!pM.Hp.>nqpbp .p .Xp .8p .p ܮT$.V ".X.p -(>ԤXQpC0B$4 @CB.X=(=#'.V"0=(=#&.T"0=(=#$-(p " ޮd " q-!pM.hpb0°ûK qݡp.`p ݡ+0p Ƚ b>ȭ$bc@ bc D-$ b"% 0kŻ,=$# -"% -$ e[Uȭ b=$dq-!pMbp-$ɑߘ-١n0-1=A- ,} "Bp4Bq4Br4Bs40B`4Ba4Bb4Bc41s-> U)%--!i*":3bkŻ ">  s-0.eU-"- êP:#!N sb0 Nbcb0.A_sb0.8b ""N"c ?21j0*1-1#$=s-0>T-q=#!$-sb0 b03b0 *0-1#$=s-0<T-p=#!$-s-<ɑߘ)ٱnml kb. " baaɱ߸nm. .. ..4 .4!a ّnml.cЍB<b>@ °Dûp+ P,"$0+c@' `"P20p2@4Hq2@4Lr2@4P Hi"0(3# C"gh# #CBF## ("28l b0k0>@= ">8@,0+,"+(cNDP "(,,8,,<Ƚlb03( <8dP ("2Pl b0k0>`@2 ">8U@,0+,"+(cNLPu lb03k( x"c@ °(û!++*+.c @êi *cX0.pci * cI0.Tcj .c:0.;6j +6c*0.`ck *"c0. b ,. 3 " - (". .4..X@,@,(aɑߘ فnh1=l k@jPb>u ? ">j !.4 b.(bq= b>K ȝxb03p$hbcqMbq=d`Ɂ߈Mفnm=l k@jbi0>ȍbcu bcdaɁ߈=nma فnml .Δ .Ѝ "\03b# .(k.Ȕ V!iݑ.0PN$ݑ.0PN$Ù)R.9r>..1t .)\.Ȟdb0P@D^. '.b.ȍP))- t"cЍX`.i >1! ..Ԕ  R.Ԥ .0P@D^. "0(3##=#/#.### >2 !c . k p! -?x. .0S^. S!03#@C030 >b0i0>F b1 "P200. P20N0Ad1AAPH . ". "0'j Ù@) {.--} Tȝh bc.\-c@P(d.Ȕ UD+bL Ƞ*"m Ùb0LPj *|P|.u.#D b0j .ɹ* $( b0nj e̍Ա*$% "cM^d_j "@  .LXt "ڍl ../Oh*  .ǔ .,i.(iaɁ߈١nml bt!ͭ:#*"H \ ..) bt)*,ur  aɡߨnm.$ . 0S\]Sa qnl 1=2M3]tx͝X͍\}`.0,.@o00/.`0$.D0%.`0+.ЬuM0$.vM0$.XwM0$.P0*.4yM0$.zM0$.{M0$.|M0$.$}M0$.p~M0$.M0$.M@0$.MD0$.MH0$ ML $ hMP $ MT $ m ) n (!'qxqn0-1=l@3]tv|}~}N0B.@0#.`0,.x0%.0+.Lu=0#.0*.`w=0#.lx=0#.`y=0#.xz=0# {= #! )  ( 'qxqnl 1=2M3]tx͝X͍\}`.,0,.o00/.0$. 0%.0+.uM0$.PvM0$.wM0$.@0*.pyM0$.zM0$.{M0$.|M0$.}M0$.~M0$.M0$.M@0$.MD0$.MH0$ ML $ hMP $ MT $  )  (!'qxnmq.@"a nml ,q>P3# ,"r>p3#P"anmq.P""r>p3#P"a ٱnm Ƚb=s.p;02q;12l , aɱ߸ qnal k0Żj@ŪiP͍L$, <#v>p3#w.p"0-, <#0-b]V p}bp0, bp p-b])Q$ Lqx]qnml k0Żj@iPř+ȍg bcp\)0g bcp@eaqxMnml bo {TP/*BZr.0!s.0@^Ue.L0!s.0A^HHX.0!s.0A^0;K.0!s.0A^8.>.0!s.0A^!1.d0!s.0@^($.0!s.0@^ .0!s.0A^@ !>P@WTanmb #aɱ߸nmr.P" =1܍a ١nm\-;$ dbr.p<02q<12($rQ,(}!{>#dbr.p<02q<12$o    Ub!܍Rdbr.p<02q<12$l ,  &04b!܍qrp+-dq+-hȽ\bmrp+0*q+1*$ !m0r.=d02=h12&`0 {>#b!܍:x.P""q>p3#P" b!ܤ r.kcHw$ .4q + !,aɡߨnmsL, .|osp,sq<l8JHFDB>8P-!-6--?   6--= -=^$Q-6- u=tM4!6- u=tM4 !6- u=tM4!6- u=tM4 !6- u=tM4 !6- u=tM4!6-u-t=#6-u-t=#6-u-t=#6-u-t=#6-u-t=#6-u- t- 6u- t- 6u-221?}6=u-"x6-u-t=#r6-u-t=#l6-u-t= 6-bu-t=L,6-Zu-t=(6=Ru-"6-N- -6-8-!-6-,- 0-! "b==1܍6-p-l-!܍Pv-ɱ߸,anml-c"1܍aal aah١nau@+ FH!u+y.P"4o P M sQ*4k jb8(s.p:02q:12.LP""t>p3#P*  &<cs.Q" s.P"s>!#y.P" N ;@A0B1=8Eu0l {.@" bq>@3_D --H!b`T22?= s.p"s>q3UmK.\>AxbX )<{.@" .py}PK-{@)K-Hɡߨ n0-1=Q- P-nQ-n  yd-n0-1=r.L" s.@" u.P"<p-q=-ٱnm-=qN@D@ l k0.y bcTaɱ߸-ٱnm s.,c HXs6,r> ä03l2!,,aɱ߸ ١nml k0ŻMs."!s>*#"s:#sv*0Xs6*Ys.*s."#s>v3j2ʤ *-#* "*aɡߨ=nmЍ)r." .Lx| . xu w."#w>v3#20B4b0s .xsa nmr." !r> # . > Awa ١nml k0Żj@Ū .hx r.P"y.x  .,x .w .$w .Dw aɡߨ=١nml uQ+k uj Q+k0011!q.p"2!,PLe$aɡߨ١nLal Ƚb=4v.p;02q;12$B (=~~p+6-q+7-v."  x>P3k@" .>! .H~0+-{>0#.L0-.P1-.T- -!.0(v." 1 xP:kj@"'!xP:k`@k /  \ B-I -!. W(-!.M(bЍED~.v=02w=12Wɡߨ-nml-=r.s>dЍa-nml -21Bbpa١nml Ƚj bc@5 cͭȪLdPp+0*q+1*r+2*s+3*t+4*Z+**aɡߨٱnmb4u.p<02q<12 l ,E H !/1.,Ƚbu.p;02q;12[ B .b I  !aɱ߸ nm-.kt>Pô,.kvt>Pô,) #aّn0-. 4Ƚbp+.q+.. . .>."03l#P" #.p=H,.#> #@"0#Ƚbcp+.q+..#> k2A+ @+ ."03l#P*  . . .>\.p=H,."03l#P" -ȭbp*.q*.."03l#P" .>$.p=H{,V.4o / h"""-^P2#XVvhJ~l ,cN] . !>3N 4j0@3AJ "<ڍDԍ87@ʍKLĤ 8!1.0A+ @+ . .>Hȝb3R(p).q).."03l#P* ؍T%C3N 4j0@3AJ ܍.0A+ /@+ +."03l#P  D'ȭbop*.q*.%sA<{$.p=H,. . .>m.p=H,.g4o / """0P2#bnljV(D0Ml ,cN . =!>3N 4j0@3AJ0 -B+" "<l +>0 !0@ ! +B+" "<"+. !cd $. ٤!>3N 4j0@3AJ ɍDÍ8&@:L '! .0A+ @+ 5."03l#P"%V$<.p=H,.>Hȝb1&(p).q).."03l#P".G4j *(   .44o    0N L$ !>X@܍P. !>3N 4j0@3AJ .#> #@"0# ȭbp*.q*O.ȭb0(p*.q*@.ɑߘٱnm.l0vz,s$,sk , ct.0vh,s%,sk , ct.H1vV,sk ,ct.X1vF,sk ,ctDx..}>0#JAv.z>0#~.p"P0r> #bFy. \>@#aɱ߸ nms,ts, tq.p"R]J-a ٱnmut+02Qn u4+Ra-q>pÐk  0#aɱ߸ ٱnmsr+0Q/s2+R"-q>P31k s.<".d0DCCs^rUE"$s..-Ĵ2l0sr+Qq> #aɱ߸ nmr.P" s.".-c 323sNrD4R3sN4.a ٱnmup+02P u0+Q-q>pÐk u."$c2<3uNpD4J-ijup+Qq>0#aɱ߸ ٱnm-k b.p,-q,-bl s.cJoaɱ߸فnml k0Ż,-! 7q.P"< u.@"p +)c 223v.p"#20B4h b080H4K p"-jŪaɁ߈-١nml bdz.u" q.p"*P.oX+c 323u.p"j#.@o* :#kB$R*.xo.,oR*q9 .Pob!R*Q:W.4oV*q .`ob!V*U:=x.@"p7aɡߨّnl 1=2MkPڬ,ݭbi0Mb0cr-!bp ɑߘM١nml k0j@]bcPpMebM q.@"oaɡߨ]١nml k0j@ 0!bcdq^aɡߨ=١nml k0j@ 0!bcdq^aɡߨ=ٱn0-1=2MP-"q>p3#P±, Q-T-"q>p3#P+ P- ɱ߸=ٱn0-1=2MȽb?p+0-q+1-T+$-P-"r>p3#P±, ɱ߸=ٱnml ,q>u3# "r>p3#P" baɱ߸ٱnakbbȽ cJy+ ;#=0M4M@]E\l  .>$db s.".s>t3;PCe@UTSsNrDE"$P#sN$. #Lɱ߸ ٱnml ,c 323q.p"k#X+b.L + ;#imaɱ߸nm.ma nml .LJ ,r.@"noaّnml k0j@Ūbu>@^ (.4L *i bcBK.(L -"`nr.@"n1aɑߘ=ّnal kjb p*3-q*4-T**-;V-"w>p3#P"}-!. = A1v.p" ȭ bc2;3tNpD4JLib p)0*q)1*T)$*V-"w>p3#P"b++-[-Xɑߘّnal kib p)3-q)4-T)*-V-"y>p3#P" .@>hAkibt p)3-q)4-T)}*-*}-!.P= B ws-t=uM( .8>M ,}-"`q.p" - c2;3rNpD4Jib" p)3-q)4-T)*-V-"y>p3#P "* .0>M S,}-"`ib p)3-q)4-T)*-V-"y>p3#P ~b++-[-XɑߘفnTaib4bȝcJQhP(">p3#P) $ !.d>dX( 8#=0M4M@]ENXD,s>u3#s\#T&-c 323s.r-9HW-">p3#P"s\(0)=1܍(")s\8#s,( ")s\(2)=1܍NL&)s\8#s,(,"st;#P+"#P"c 323{.p"#R) }V-c 323{.p"2[RC`P RRE2VSVP. ]Qh Q#Q8s -!V-c 323{.p"2h KU#e@UTSdXh0U4VHV '.\>MF d0.lIH+,P .kL8.@@"ks.,s.".V=d0DCCs^rUE"$s.2.<3V-vNpD4 #q.@" ,$Ɂ߈ +ّnml k0Żj@Ū*!- &)<2K$d0BCDq>p3CPT` bP2SQ4Q"2  )=#i řܤ!aɑߘ=١nmĤs1bcJJ{s0+sj +$cJs5bcBJfs4+ s&bc@JYs2+r. l.0-.(0#.40q.@"  .@0 aɡߨ فnml k0Żb_j  uu(iut89 #c 323t.p"#"aɁ߈-١nml v." q20<2,p"v>?#t.p"!t>0#' 0JI0,;w.d0BCDp\j0cTJ kŻ( 2,p,J#, ",aɡߨ١nml u.p"* ,d p,J #,.,- ;q.d0BCDp\j0cTJ -kŻp,r<1#t."r<0#r,t>?#u.p"!u>0# ",aɡߨٱnmsp+q"Jqsp,l p"s0+bl s.p" aɱ߸ ١nml p,0I{0,Jo -ڼj ;q.d0BCDp\j0cTJ[-kŻp,JJ #,aɡߨn0-1=2MlP,!","<#bb<d0BCDp<4JMnm.>Aga ٱnm-l0<0k bq.cJ ,c 223p,#=J ,!",aɱ߸-ٱnm-l0<0k bq.cJ ,c 223p,#=J aɱ߸-١nml s.p" 0, s>0# 3LH-0,p,Iy#,"- b"*"p<#*-kŻ ",aɡߨ١nml ,- b"*"p<#K-kŻs.p" p,s>0#p,Haɡߨ١nml p,3H0,I  -ڼj b"*"p<#-kŻp,H #,aɡߨّnl 1=2Mr,-V<21k0Ż32 -r-!ܱq]b"*"q>p3#20B4i b090I4I@ Op-̴kŻɑߘ=١n0-1=2M--Ф! -r.P"<s.@"hb"+"p=#20B4j b0:0J4C-дls.@"gɡߨ=١n0-1=2M-l "! +r.P"<s.@"gb"+"p=#20B4j b0:0J4Bls.@"gɡߨ=ّn0-1=-!-̤ +.fj+hZ.fb"*"p=#i p"q9rI? -̴lɑߘ-١nml =k@Żbj0q>@^$!.lE+y .,E bas@*g1.@Ds@*g!aɡߨ=فnal k0Żj@- ,hb$bȍcJ]P("z>p3#P" .,>LAe( 8#=0M 4A - =#=0M 4M"@]$E] hb$b=J]-"z>p3#P   #+h -:0J4d4 - K)i ř) i ř- =#=0M 4M"@]$E] ]-"z>p3#P")hb= p(q=rMeo- - hɁ߈=ّnal -Q,3-! )b"*"p<#20B4i b090I4I@Y E]* s-kŻ٤ ",jb=]p*q=rMe - -R\ɑߘn0-1=2Mq^=ٱnal -w-"""0-! ,;d0BCDw=33p34Q3#!- +p=#k ŻG-@ɱ߸فnml T, :, <#<0L4L@\ Ek b j b!b ޝ  $,-aɁ߈فnal k0t.ȭcJ, <#<0L4L@\ Eq"-뚫*bڭ=cڍ M d{]U bcde PɁ߈-ّnml $Ƚb=3?bȽcJ1 ȭbc.bcJ" -Ͳ+ , ȭbcHȝbc@bcJ aɑߘٱnml k0q.@" .c ,Xw.c p+q;rKaɱ߸-١nml ͽݱb: j0*0;`;#b+`!+`aɡߨnm`l -`b!b-`Xana<-==l@,?]o  a /}-^z"-.X{ !-%--@!]- =#=0M4M @ OpZ-@!-6"-. XL !-%--@!]- =#=0M4M @ Op+.X( "-. X! !-%--@!]- =#=0M4M @ Op@]anal k0Żj@p-Lrhip- hp, gbp/Hp'6-q'7-T'- gbpc0p'6-q'7-T'- \-"v>p3#P/"""SP2#$LJHFDB@><:80.48+g -:0J4dp- t--L"h ~- <- =L3N@]p,-L2h12h[MK- <- =L3yN]p,-L2h12h3Bj4H"d(@w-s~'Ls~f 'Hc`s~GP] 4u.P",-u.P",-v-w=xM] 4}L'h-"t.@" .Pa8.D@"b`L'd7h - -"pah=n0-1=2M]UhoUd_P=n0-1=2M]UhoUd_-=فnHD-=M]"  .>ĤA`p.P@" .a h-k p"q;rKT-!-4ȭb=#bȭcJL-!b$D -!]* :#=0M4M@OpC- =#=0M4M@]E0k "y>t,Pb",#y>r*3-R"*-!-=<,c 323u.p"#>HM,-!ܱ+=s-R*  -0!!- =#=0M4sMRD^|-20 ih bctP)">`p)P" -!]- =#=0M4M@Opib=?-d-!ܱ,i -cMN8sR( R)!,- (-!-=s<,c 323u.p"#x>M,-!ܱ+=B-z>@^Y\.>O ,x.>D - =#[0@ ._t@)`^l.>$ t@)`N-XX-!-Y4-" vɁ߈M.n0-1=2M=S^P`_1]l0cP\7=n0-1=2M=S^P`_1]cPp =an0-1=2M-"TR"!-͝)Tp"*c 223.#ȍcJp}bpqmc`rM `bpc`rM g ( 8#=0M4M«@]E 'Ab"*"9d#"k "! Qb"*",b=6Js-> ->ȝb0p)3-q)4- "=6JQ-6"03l#P) #ʽ8->"03l#P( ʽ6-6=ĤH  ,->h>9P32 "| l0b",#>i2. .<] bR "^- 4-4R( 2 ,gbp@8p';-q'<-T'-4{-|=}M -,"03l#P"^,g .cpM6+$-6 =8#=:0M<4M>@]@E^L -$.=@~D]ԍ( .hb= t,p(q=rM^%-$ - h-bϤ -6"03l#P)  .-6-6s-6=ĤH.-603J#qx5n0-1=2M]UL=ٱnm.4R(w,".l0aUw-,wk ,c_,.D0aCw/,wk , c_,$w,0 wr.p290#v.aɱ߸ nms,_us,_ns,0u.p" =Bst,=8sr,=2s.p"=,a ٱnml °û@+\ /\3 *\- \' b\  \ *\ /\ @+\ .aɱ߸qn0-1= "PN Br@hD2B N4!j . .D=#.S=# E-!># pqkp.D=# A. "\\ .([S-]$ [ "[q}bpV$P9 "[ "\- ~ ..S=#3. "\ S->#"-2#= "\ -=#!-q-. .E-!"->132= [:.!.-=#!-P-#. "[ \ Q͔PPhb P/trpnljhfdb`^j~|zxvtrpnljhfdb`^\ZXVTRPNLJHFDB@><:8 !|.bpO5bpNq >#.ᔰ Z.!.|bpObpNR >#. s.씰 Z^.!.|bpN5 " cpNK" "ZB|bpN "Z6bpN ">#.|bpNbpN >#. !.|bpNbpM >#.-!.0 .씠  "2P- "Z . " "Zs .q-.!.03PCN 2qx-nmsr,029s2,:t> #a qnml ,=d:h p0wp'0290':x -ڗgwr  9d03PU05 #-Bi@řp0wp':R "'(003C$"pC$#3 #  0"21'23k02;rBgCc737=783p"# aqx-nm 0"2" 2 L 0"21'2SXB`PrRPEDE(2a nm 0"21="#l b",003rC$@BDAREBRUC_Up#% B-ȳ 0"2C'Bd0BCr24@CDASE(Ba ّnm ""0#b0°0û"+c 3 B8+0++-  dЍeah-kaahّnal " .4W Xê@*W ,@:d, -bb+("ؠͪl*P 7 D  9AbcJ$k bb 00-" .bcbwcSp-jŪbc$0@  G-Hɑߘnml P,"03l#P"Q,003C$ "pC$" d BBr#$D" Y# ,anmЍ. K0#Ba ٱnml b=3 ޽baɱ߸nm-"rbgZ c)a ١nm-2t3 "v" '-tdk "w;ve@jPܫtaɡߨ ّn0-1= "q21pB "=p-20 Mܝ""r"Pl I j !-)k bci Ic#-k񐱒bΒ / :  \  ]ܭ- q-!pM-p-2h1Bd "=pɑߘ-nml -21Bbpanml -21Bbpaٱnd- @"v2=tw2=x>62=72܍k+"0C# +## d-"t0&-t0#X-x0#\ɱ߸anl #=k@jPh0 P(h db=2e@fP<-20d`1m0p ma.D\  a.XR LW!T h (h db=e@fPWMS-p=#!#--'ٱnm-l0̱xAO2.@PWbQ "XQ - "V .(P<bQ .P1C-Q "XPC-8nm, !, "<"# ', 0#a nml "P21 2#@ZDPT% 4 "( .>@N ""2ja١nml ("2<0~"k +0<@MB°ûP+03CDC$R+$ "! ## .,NK R+O.N@ P+O "XN-aɱ߸فnml °ûhʻ ($!($ʘ(ʨ& (!-ܸ 8$18$ܨ&ܘ(aɁ߈ana-Fl0pw'$!'$' #- '$0X3PC$ # "P"- "!-ؐʙ "! ) ("2<0!~"g b"'T$  z b "XNHb"0(3xC$P"pw'( "! U#< Qfp~#g ʆ S-₱ `"p2802b"+"'282౪bc 323b7212&(>$   .8M7(&(wH "XMS-03# R-@$PQ-#& ܒ! X "! ,$ &p(w'<   .LL(b"x7#P"( "XMQ-!03#&-F#(#$!#$"  "B@AC*ܓ B[! ^"P21 2b"p(wx7#P" "! #$ '<  g P-.,L~( "XM/Q-!03#&#$!#$R-@$PS-# ܒ Tah-ٱnl ̱,k -23@D84Q32j -23@D84R32h -23@D84S32f-2;12ɱ߸ٱnml ̱,k   . Kb) "XL aɱ߸an`a-0(3~Cg@ft#*Pbe 0]k p-"'25125h`-!pmb`Q( "03#@ "! Ub`o / J"""P2# Z~jh ""je . + ( =.`KY "XL $-!T-C4 -!U-94 "V .K0 `f&(3L.LK b4L.DK & 2L.@]^ "̔  b!ܤ  :o  )0P/.b!ܤ! 5b!ܤ! (W!>@^!-kah-kaahnm̍? ("~2=0j3@D04t214u22403tS3TyR4TvR5TwR6TS7TPU!T-5<42==4">$8($a nm̤ -a ١nml ̱-2j %k03`:jͳ52d;2db8Js H baɡߨanXal ̡k0 "`g gh !`)-2-~j c27#5r-s#H.@HS,I 3-jbY=##3i ;%Hmabe 1]g Haq]d$0MW -Hapmbi"H,H qb!*s-:I. G,H ah-*فnm "R,(.0LW°û+c +J . 0LC+ެ*ܬ$ܫޫܫܜ& €hÈc!#ެ+ܫܫܫܫݫ "X1aɁ߈ nmЍ"6a nm-"Ha ١nml "`k +0@o@ND`P^H.c`@F|]Q@D$>o@N`P^f.pc`@F|ma "\>dNh^lK "d ]#F .Fo-!܍ "T4-! V%F #Fjbf G.FHb`"&"e'%0]G F ]Qb` .F p]%Ȥ7G.F]Q܍t-bl`#Fw .HE-!܍'%3-!%FY b"'ʒ.Eb")"f'&܍G]ʶ.E2 b=1c 323b7"܍Zȴ  ,Er-吁 ]E-!܍)%F .dE1 bc 323b7"G   ,Eq-鐁.Ejb")"'"F-!܍s-h#E .,EF`f&F.,c@F{P]Q&x>yNfPz^a܍ah*nml banml b"aّnal ,k 0!#-.*A" S-p=#!#-ȞbA"DĐbA" Hɑߘnml ̱,! c.# anmФ!0H3#( #*a ّnml ̱,°Hû;*#y+5$9+%j<+"bk  Hê:"I b0"#"y:#ȝcJzc-!b!"b:") bd0BCDy:4JzEaɑߘnml b! "p H"2*B(41""2a n0-1=2M H"2*12*3l b0<" bd0BCDy<4Jy=n0-1=2M H"2(12(3l b0<" bd0BCDy<4Jy=١nm-0H3C(l b@k03"j@obd0BCDy;l b4cJy ܫ(*;*#aɡߨnm "  H"2*"(21ba qnaȠ@ H"2*0="(#l .bc @HDh04"g@ b0"#"y7#=Hy#S-03#j kp-֐ b6ih b0H3g03" b0"#"y7#!Tqx ٱnmHv,03"6,# , H"Q2@DPT`S QDl bvLCk04dPx  -2Z0B\47< J"P2@DPT5 2#! $aɱ߸ ٱn̘ P,l -2i0 dk "`;xld "03#=3xY-ɱ߸ ١nml ͭݡ܍ ":Xk2Ȱc-"@aɡߨnm-Z2\b0bS.A "XBa ّnmͽ+Z ;\#- ê@*ȝc@Dx1+j )@*cB1@*03B1+i ` "03l2bk "c@D1daɑߘ an,- H"u2h02*"(2 }bpLbp=2Jwn Gq\}bp`fQ6Pp'-0 -.P&-,R&"(R&c(γ03,#@: "X L.A,Q&B<.A ,P&B<.A,R&B<.@,bB~<.|@,+Br<.t@,bBg< "XApHwQ'/!-=-!܍w'-0 -. l* 0#Jc}bp@].P0_bp=2Hv * #-=  "`0@D5 "03g0Q3PG%* "-=  "`0@D4 "03g0Q3PG4+$  0#J  '-=  "`0@D27$-> "03g0Q3PG2$$->P/~ zxtrnl|* L->03# "}f bpc`@].P0_bp=2Hu L"P21= 2c}bpM>].P0_bp=2Hu * -2 c}bpM>].P0_bp=2Hu "Z * "C20 #: ==0g t"`fQ6PF4->03#t'Q6A-203#B}bp03HM4].P0_Bbp=2HuT %->03# }f bpc`@].P0_ bp=2Hu2 }bp03HM>].P0_bp=2Hu ->03# }f bpc`d`].P0_bp=2Ht }bp03HM>].P0_bp=2Ht -= H-!܍>-!ܤ!sX3-!܍(-ڤ0@D@8i DȰ}tbp p'-q'-}~bpmc`2Db`2_-|b`2X0011!-. M0$2!-@Dep^( -!܍E0}q܍ "0L3dph-!܍Rp!>@̍S@ N"P21 2-2=ĤHt -203Jt €HÈ( M-2 =4#}6p=8scp` @=dbp9QH >>l.=,(, .=, "X .Ѝ=,-:2aT "X>[ah5ّnml k0j@ 0! "1!͝)Z 9\#2!;13JBDbY ݑ܍oaɑߘ=ٱnm8 tȽb "l p"qI- .0'a 0# 0#ȭݡ.L?ݡ.0 "V0-! 0b"$b"+"%-03#j .t>A:w,b0T "X-*U:>&*V:>bW:>ɑߘ (ٱnm\p,aa0,@, 'WHv,y,,> , = , = ,= aɱ߸ ١nml .8:°HûR+N]͵[5Wp,;!# #ɡߨ فnm.*>&2b01#b0.*-"  b!܍|Q.*c %N jB.&2ںŻں͝):#  #!:e2UȍbN:VJ4p(9!#  #.*!.*">&12!.*.& b!܍+aɁ߈ nh0-#=.6 .!xb>NS]4p,p=!# #-!܍_-nm.l !", #,a ١nml ̱,c %NkB1+ j .cK9K+BADj .c9. + j .cK8. + .95aɡߨ١n0-l0̱,%>k2Q-V;#@-N;#bɡߨ-١nml k0+-<2j0 .*@"))8 -8-ꐡaɡߨ-qnal ̡. .2-!b#>i2.c %NhBF) ) I$~j . (8 C8 C): 8 C)6$""1-q''} -8v W-q=#!'- ". -X!C913!V(-X!P(2CI423FC)!"0-1#'= -8< W-p=#!'- ^8. P) 9V(R9# .(8) 9#3|.p8 !)r-DXqxnm.ʍ8M.̍7a nm8. ;.=@ȍ& . .=8@ȍ& . .81!. .-7.8a ٱnml k .c@P]aɱ߸ٱnm.: ..7P .7J 7Y |7S "!..""-Ĥ! .(7& bk 8-Ĵl -7(aɱ߸ nmb!܍.ȍ7!.h'.l  .ȍ7b!܍y.ȍ7a ١n =35N,4O31!l ..@ *-Ф! %b#><#20B4b0=3 l-дߐ ɡߨ anm-"%>$#-\.= b!܍X .=-\O" b!܍-\X21iNb2%"NdBp$#].@9( G.G (6g-\X"!-X1#=j +62 -j=X#!-j (6! Ƚb=\X35N4B3" b54.6$-\N"2%"NdBp$#0$.G /b"c.ʳ +0"5 +W"5  5 5 ֐~.-`.-d |-g\V,g-h>F0#O<0 >2X,2b0-X1#:=j r=jd$_-X2,1=j-\X"!">Mh4!2b0-T1#=j +=jd$_-T21=j>-h23`bM\VDN-jb0H5.F .1N4-0-\X21 N"2%"NdBp$#0$.5$-.,.* !B,!=\#aaahٱnm.>lNt4#.-Ĥ! bk b-Ĵl ܾܾaɱ߸ nml ,=3j# 1. .4 P,6-.4 ,=Cj$3h# ,>0 "6 "X59aفn`al <:.D.D0#ڞR>ⓐ%qŲb>#!$-)>R# M.1-! -b%>i2ȍ݁)z ݁bs ݁) k ݁)c q-א.0-! -!b%>#(I p-ܾRɁ߈(ّnml k0Żb>2>3NE^ED4NB4YڮB.⢐Ū.Ĕ -.$3 +5C.03 cd.43x.3 *5* "X4Od.4i ,cibaɑߘ-١nml k0.n%>hj2.l>N4#*:#! +c 3*q ,.n!* :b ,+:# +aɡߨ-١nml k0Żb- b>#"  !-𐡤 aɡߨ-qnml kڮ.hŪ 2de.0B">g@#nh ᘱ " 2kkxŻȐbaqx١nd.H!.$l Cb2%"N(dBp$#.s (2 .H!>-1#=> +2->~=#!-> )2ȭbB<b2{.ԍ3..H"D.s (2 .H"=-1#=> +2n->}=#!-> 2^ȭb>H5N 43Jb24.ԍ2|ɡߨ nm. 2,h3.2  "X2 .Z !,j-Bh0Cd0Dl .k2+ .>N4#b@!";t%+.!+.%>#"!!-"= -.  " -!܍8P- .k .4 -!܍\0B+ .!1>~NC#N."%>#.Ф S -+ JڮQ-.Ū+ *"y+>#QM4K f$U+ -;1>xCdTEBopOE3"#!"h b0cH ...!."%>#.k C;>"0 P+!T +.k P+! +.>|1>|>0 +>ȳ &+.+.(+!.P=>.>0 >0 <ޮ +.!>#$h4.x>@/"L.2.cD.V..!.. P- Q=#>#β P-! -. P- Q=#>#">#l P-! -.%>k2Q- +"P=#!!+ "+$+>&;>;>(;>x2 +. !+"+. . O+" .Q< . +P- .~ +. ..k +;#' "t@@./  Xê@*0J.؍/ @*0?(.x . .xP-!;A4c@#c >+Pb.*>d05^5A7$#.!1i!j0"*"=h b0g0cS#**:#dC>#W5eO$*:#!*ܞ.:#..Q=#!..#!.>~0">#A". ʮ!.(ܮ. u.%>j2.`. .0s,.p. .0g,.. Q*0\,.. P*0Q,.P. R+0F,.X. S+0;,.. T*00,.. R*0%,.h. .0, "X/>qx &nm.4.qX@,/!. .b@,/a nmx "t?X..Bxb>hB3I b.3.0.- "X.a anmXl k0j@Ū b+` b>ލi c}`bpf0$bp+E b`w,.8  .8%>#C.8!.8.2 .(.<.8><# %>#.g ` g-`B7$.0!b1!e-`P81.C'..Z1 .8%>#""'.8%>#"所#'0 ! '.b .4>L@,/ .8! '7  .L&'b>F5N@43#!''.8! ." Uaah=ٱnl 1= " .ٔ U.; !..Ȥ1 '.ȍ ..>̴##1>̱##>k2 q-"+ !+ +.; "q-> .c %N$" b0U ܾɱ߸-qn0-l0.# F.-Ĥ! ?cp- 0.%>g2.” ʎ(PQ)A=83Aj b!"c832j "'-ĴŐqx-nmtx.FAp20<đ$ 0! PxcMD^(@b,7 a nmd->01c110AP).>#anml ̱,!> #aٱna<-l0k@>]0 <-+1#b00-##=.AS-p=#!#-@ɱ߸=ٱnm-l0k@>Q0 <;!2c 3.Baɱ߸=ّnml k0M.j ,! c@i@Zb<.+u "X,&"#aɑߘ=١nml =.k bj0"S;daɡߨ-١nml =.k bj02R+daɡߨ-nml Panml ,.anml .b,Q.*,+ anm|.  .d  .8-.$  .  . .=|@Pa ١nm .~c @ X.޾.\0 d@޾$ c3d> $ 6@ 2.Tܾ 5H &.ܮޮܮܮܮܮܾP.k*!&ܮ|.T*.X.>(/^.>(-.$0. c .- .41. ..H1. ..\> . ..t1.~ c .,޾ܮޮܮޮ d."c bd .aɡߨ nmu},0  u=, u,B2tp, t0,a ana-\=`Md]h{."'-{.r{."&-!s> #>H"P3wNpD$2!- -  2z$-`!M\mb`pb`u>H_4u.P--nQ&,T s."n6:H_h4s.P"n&8w.LsP,"w>p3#| X#- #2/$.\P"x>C@SEc@1F(2d/- /-- {." )c3{NDx435VM4dD3{^U5P34"ND$3P"{ND4P3#X!-DZb"{>3d#P"hW-sb"{>3`#P"+-"v>p3#P""?as.P"!s> #s.P">hP3# [-s>P3d03^|U5#s.20R5Br.p"$d0B@B- s.R" uNf P$0=c`pM00 1~$-`!M\mb`pb`u>H^4u.P--b">@p3#Pȴz @l⧱b"q>p3#P")-  b"q>p3#(Qb"q>p3#Q”b"{>3x#*b%;.-(=sNPDCs> C43wNpD4DẔ"V=#"{>3h#QbW=# b">Pp3#Pb"{>3`#Pb"vNpD$P""?^M$ b"#Ps.P"!s> #s.P">3B# c "N|D$X- x.B@RE2r.p"#B@B- ^X-! 0$Z-">Xp3#범 +dLDs>P32r^pU5SP_cP `u.5P /--h!Mdp ."8s> #~.u>H]4u.P-lahMnm.s> #!0Bu<,!0Dt>0#va nmr|,  q.p" a ana "<4 '-2-1#]&=V-"03<#PV=WM4 QB "8 7j l`8fp&,ePbd 1M0]1k q--p}p&c'Qscp1d0OCAi@c3#"cቱዐV-r=#!&-\ah nmЍ,a nmЍa ٱnml k0b;aɱ߸-qnmb0  (ê޺< 7La(>*il b>4@\I 022? ؐΙ"9 !*40#iݑ܍<*ݑ܍0*ݑ܍w2*ݑ܍3*ݑ܍i1*0*(*.0**0*,p*P""+ ݑ܍H6*b!܍O0#@kݱ܍D (ê7*ݱ܍94*ݱ܍25*ݱ܍+8*ݱ܍$9*ݱȬb0)$ݱȜb0d$ݱȌb0$ݱ|bp0 $ݱȼ0b0܍$bGbBb3 ,bp5,b "ٔ ? !.`>H@$% aqx nm(~,K>,,< <(|,p,r,s,q, v,w,t,u,x,y,a ١nm!(,< ,4, 0!,1!,2!,3!,4!, 5!,$6!ȼ(7,*8!,,9!,=:!bj ,0cL\ 7J>,P+,.aɡߨ ٱnml >S: b09k 0@QQb  ("p2P3C3B=CCOB>aɱ߸ٱnmȤ "X,@ \ b$a P "\ . $9aɱ߸ n0-1= '$8P- '$-Q͔ :$$b-ٱnm-l0k@] !#RP"Raɱ߸Mnm-anaФ -!- "t1-p-0#q-0#8 nm "t4a ٱnml k0Ż.0!b1!+<@P\'waɱ߸-ّnm=l k@묒 bA /  : > \  ]  .bA". b=dSaɑߘ=ٱnm`6 "201 2 "ȴ ¤. - -j H"cЍ 4"kc=0!1!-j,"03dP8UAu  0!1!b0L3dPUAc .!.aɱ߸ anm-=3MDj4C0343k b6Sbc@dI  -j= # ,"cЍ"aaah-ٱnml -2j12j3B4cBk b@@dHmaɱ߸ٱn0-1=qk x"0p 8"0p ɱ߸-nl0-1=-! @"=-n0-1=q-!pM D"=p-n0-1=2M3]t=01u=11v=21w=31=3q=p ȍnm--2j12ja١nm\-l0c@D43Ƚ\j b5Cbc@dH aɡߨ-nm " 7YV)Ru03#`#Z% bp,-q,- " b0#܍RF,d,V$ ,Z$ ,T<\. a ٱnmȤ!.p°û1np} 4 +q  +| +T!.p4aɱ߸ nmЍ " \"2B4 2 "b03\#"R|a n.1>d >`>h@d@D@鏓NL>*4d@D@1@NLN(N(@m 菌kLoفnN(N0D>CDDͮ ͞lb. *!ǍԏtJB>pCpD:Plؔض4XFيٲz<zڸbzۊ۞ۮۼڔ̌u늑@PQZ@.x@@ 0 9@ 0 9@ 0 9.xAB @B @  0 9늑N>*Cބ@04QZ.AhHeRE@HEQZ@NL>*C 늑@dDŻ0HD>CDKN4$dɁ菉#"!@NK@D@鉑@NxK@D@ 鉑@ 0 9鉑늑܎0ƑJN0QZdc@@A1l@^0N*N(늑܎0N,@ s![PqiN(NF܎0Q*]N,@ .HN(>FCNDzA5PKN(aNF=N>.3CP4A \>0>.1L>.1^>3*QZ^0λT3Q*܎0X 9:*Q:Т\ (N2@ ' ܎0詉܎0*mQD`֔ 늑@N>@0 cH@3;N HDN0ڑHD>0C @늑J>C@D@.d@D@@ 0 9@.xd@D@늑@N$@D@NL>*CN$@D@詈@N$@D@NL>*Cnml r.P"< , +Banml o 9܂P/ $0<H.*. #.(..0..<~a١nml ̱,"u>p3#뢔 s>+#v> #q.@"  b,s>+#*v> #b-s>+#*v> #b"r>p3#b%s>,#+t> #aɡߨnml ̱,0qNPD$ 1b0aٱnml ̱,q>3F# r>P3# baɱ߸qnm`l ̱,  .Hb"t>p3#PQ⫱b  '$r."L ;Js.p"(s.p"+@09 -dis.p")=`A C2R P=dM`P0r,s~p')@".-d&"s~p')A"б 3P/&2>\Z.8l& |{$ *t$ +m$.0P !>@@1b!-`g72 s.p")@"K$-` ;Js.p"(b  '.$aqxٱnml k0,2$KDPU}OPD$333X"~E$P"2##/aɱ߸-anal k0j@Ū ")<@DԴ4 0:(¤"- "2Dñc3qB4P3@DiC"P Gb"03pC$P"@D($"u3#P""?Y4#0 -pw'B `fX& b\6GF43g !\-#X-!T-b"03#P#F- "Դ  ܂ "₉b"03#P"03´#  b"03#Q"0# #-b"03#P" !-C-Pah=nmq.P"a فnml k0+q>3F#"q>r3#Q,hq."D₱q."P b"q>p3#P"b"q>p3#Pb"r>p3#P""?bb"q>p3#P"aɁ߈-nmq.P"a nmux,0 u8,u,.2tp,~t0,a nml s.P"!s> #q."$q>3.# "t>p3#anml ̱,q>P32q. 2anmq."$"q>w3#"a فnml k0ŻT,'r.P" .,TT,-j 9b hp,(""u>p3#P""?$r.P"x  -(p,("g (-baɁ߈-ّnml k0Żu."L-u>3J2j0 !bci0@ # bb -aɑߘ-ٱnm-=l b0k0*.o bc<r.@"aɱ߸-ٱnm. Pqbs@;.,@v.P""p<#"s@,Aaɱ߸ anmh-r.@" x.P"D i#-kb!܍y( -pw.p"8!-l-p"w>p3#P"=# -p"-p-p=l#눀-p"w>p3#Q-i .tH3D#"sNsD$P" -n2 1=k}>X # -k-n>@P3#}>K #-s>3D#-""s>q3#P"=r#!-j"sNDP$ /"sNpD$P"-"tNpD$P""?2b!܍0-i .H<-b${.@"ah-t!3-pq."P!q.RL-pc 223b=2l0Bn4l b0 #.lP"<~.P"dh -!܍jE- .x($l dw>P3"|g opP/ ZDk0#-!܍;jTk /tsnZ&H\Y$sn\60#s.Z" s.2*0B,4s."$"sNxD$202NsnZ&a,sn]&sn6$2snxF4C@SEc@sn[F400 "B,.@P">Hp3C@SEc@VPX/#- +#-b~`g s!rn&p rn&.>AL-!܍-ah 'anaФ!03#$@D"w3#B`fQ&~-P&X0 -  `f&H!FDbpb6&d0e@HfPJP--,$"w<#f "Դ X%- " "x6C@SEc@,F$@+- <+--  "2B0 8dDvREDERFEeTD}OPDE333XD~"$P"2פ!- "2Dñc3qB4P3gqw2Pscp3pB4P3'=3u"#P""? "P21 2e4 "2$".2 W-03C$e@DwO$#* C,$RxCEe TPTM@ C(@ f #&c@d`k8  "  "2&0B(4f b06*0F,4 `f&H!FDbpb6&d0e@HfPIP--b"03#P "Դ l "⒉  b"03#Qb"03#PQ”b"03vC$&b%K*-%MPU$$@DwUECDı̱"CF$"rC$Qrb|CP$bp"p3#Pb|"03pC$Pb"u3#P""?Z=# bp"$P "P21 2V4 "2$B.4 d03wR5U=02*0R,5Bx"$202- 3U-!  V-"03wC$범 S#^ 6 c2#dLD03S$Rx35SP_cP0+03C$Bx34C@SEc@,+dMD03S$Rx35SP_cP[؀ʈֈ "2$3w"#"#-!l I- >(H'-!`f& &؀ʈֈ-dah nm "2H1BDbpp,=ȍ"! a nmФ 0# "  "!  a nm "  "2$3w"#""03#P".a ٱnm,H!LDȽbpb<&HGaɱ߸ ٱnml k0b6C  bk-"aɱ߸-ٱnml-.(N "! !l°ûq+> r+>s+><b! ">Paɱ߸ٱnmȤ°û123.(c !+.c~ c ".8&0#!0B7+!0D8++:aɱ߸ nm̍Fw, x, ia nmЍ!a nmЍa anml ذʻ,"=3yC$PQ⩱dx#g0cf@lh !+ '.>TA$ .8I9F'  "X%Aaahٱnd0-"F!"-x! -!bk  -xlop-"N-t! -!p-"H,"v -t "ؔ "Xɱ߸فnm-€hÈp(k ; B 1(cq(c=p(P"j Œ (j i 03h #b!-!  )"c3@hDpTSPq$# P%) %- 03l #aɁ߈١nml k0ȭb0b>(@EJ$ .T><@ 22? ؠΪ": !+\0#٤ +] +T+X +F +H +N!+J;F2;Lc 8+o9+bb6+]7+ +DR0+M1+H2+C3+>4+ +@35+p++P'0#h b:+;+<+ =+>+U 0!1;B?+aɡߨ-nm " \,TS,XMp,Hq,Cr,>s,9t,4u,/v,*w,%x, y,z,{,|, },~,a ّndl k0j@Ū +\ k"0- F"0-+0!+ 1!+2!+3!+4!+5!+ 6!+$7!+(8!+,9!+0:!+4;!+8!+N?!+F!@+H!D+D!H+@!L+B!Pq-!p+T;Xd[p p++Pb_ b!+J;F2;L+]Hɑߘ=فnml k0Żj@b>< +c@O -b>(; bcA? b0i h 0@Qbcb*XP"2@4c ?21#"*^aɁ߈=ٱnmȤ ",@ \ b  P " . aɱ߸ ٱnml k0,!";-aɱ߸-nml ̱,-aٱn0-1= "2L="J#l q-!pMbk p-Դlɱ߸-ّn0-1=l@Q- k P-0!>112!ȭ3i b>d^-P: <ɑߘ=nm "X a ّnml k0,03C\$@,Ūb","آΪݽ b","03#Q")"3p#"Ū-萑baɑߘ-nml b0anm.  "3#v " v 6a ّn-"03Դ#V-03CDıdDqSEPDͲʫik#P 9b"p3#P"..)!)±"9#)02 )čv)b"03#P"=3CD34 #ɑߘ ٱnl!--!܍Q-ͽ;@D !.ml  "Bc %"[eRp%$Cb052[eSp54050h3d.ɱ߸١nml =k@-0@!O -02=B-ı,>dЍ Q --! b"=#P"--čE aɡߨ=nm̍0 6  "3*ba ّnaФ q-!-. /0 "2d  03#`@#!#bb10//p0!44  34 " S 8w 2 P"2-D!܍z( .E 0"03֤Al -D!܍[( Ƌ$ $ ê*\,c 223͚lbP"03# !-/0@*2C-Dɑߘ ١nml b-0313k0Ż32 h " u 1. bj  = b"*"03 \#20B4j b0:0J4: "2P1RLb"+"03 \#20B4j b0:0J4J@ Op-aɡߨٱnml b! " ' )baɱ߸nm "=Ch$@$ #`a ّnl " =3`# "03#ʲ h"2 3v"#ʲ "ܴbc0#03 j#  =쉀F#]#=쉀?#]ͭ*V+i)@$*]bc@*])@ "c3:#b"=#"0# bc@=#] " u ).(^ b  ,ibQ$.H -"]{ -"]ɑߘٱnmȍ "̍8 k p,c0,aɱ߸ فnl " =3`# "03#ʲ h"2 3v"#ʲ͝ݑbh )]03 u0 'i .< b Q.( b.0 b c-2c0 2]132]-]  * "P21 2-!܍W$ h"2 @DT.5 3XDv"#`B êiXb "P2ZI4 2#=C`$d B C`"w9#ʲ h"2 3v"#ʲ "P21 2#03޴# -!܍$b03ȍ#0 h3C Dv34#Ɂ߈ٱnml -!bͽݱb! ;]3 !aɱ߸ٱnml " u . ,yͽݱb+]! 221?b0aɱ߸فnl ذʻ-"hⲐ,! # "-ȴj @ٱnml b"-"h! -"h"baɱ߸ٱnml -!,  " -޲caɱ߸١nl ͽݱ܍$ " u A.@ ,j %q0b .8 +^.H "3,.P -"h%,Mͽݱbj tݱb bX ݱ+^ #  -!b( ͽݱ+e ݱb4ɡߨ١nml ̱, -K.̱ ê*$,"w:#P"$ k & @3b:$#"x:#20B4b0aɡߨٱnml k0Ż-!"j. .$1B .02B$B -!b$5 .Iaɱ߸-nml . ,2Zanm-"2b0 l "`Ld   -"""h!"Ka n,"h! Q " Gi  .5-""h>4-""h! '-!܍-""h-!܍~ -""h  nm-"_ .ߍ.s !0#=#_a ١nayͼ+ݱάib{ Zb Sʫ^b ݱb( ܤ#$ y-!܍-y-"`=H6Q-%- "2P1RL- =#=0M4M @ OpHɡߨ nm " -=33`1l032 b"03 23@D$2-ȴ " 0#a ّnTaФ.Hީ .ޏ,ͭ*-**h**^c ib$@p)3-q)4-ݡ܍L*h+ " +--"h"+- '  DYs-t=$&.(Z .@,""4-![-e$s-t=$.9 .x,"4-![-D$-![-9$. .,v 2$P/ ,N& "n=1ܤ0L<& "\=1ܤ1:<-"fJ=!1ܱ"1&<- .ݶ .ݜ,!~4s-t=#l .dݟ .l݅, ͽݱ-8ȭݡ܍XݱΝb` ab ݱ+^D ݡܤ!-! # =1܍P  -!ܤ" 03 @D 4 !l -"c  -!܍T  h " 03 # Ƚݱ܍0ݱ܍\ɑߘ +ّn-"h! !-Ϥ 0# Päذʻ  "2$MDh43w"#Q" "H 1$% "2$͝Ih4<3w"#" ș]c&@)221?j0̔ -"hՔ =쉀"#] "c 223 " \#P"͝ș]c&@)! ܲ =3]3 !-ɑߘ nm܍!,km@ ٱnm-h20 42@D L4 (20 "! b",""d=C$#  #c 323#" b aɱ߸ فnml k0j@Ū+-<2i0 )b"03#P"͍(^݁bD݁܍ ݁܍k-ېaɁ߈=ٱnml " v +.(,.ͽ+t .+h aɱ߸ّnl k0Żͭ,ݡi ݡ܍* *:#&+ݡ "j T"U:dJ -! "j U"!"dV:7 -!bpɑߘ-١nml ͽ,ݱj ݱ܍7 " z #+ ;#ݱ "k V"!"W;d -!b"aɡߨٱn " x -2h@DԴ4 " 6 l =3h@DԴ4!l h"N20M" .-"hg -2h1@DT$SUwDETPDT 12h!܍l bɱ߸ nm "c 223 \bcH1 P,X p,=LZ ,X =#Xa nm "2$MTh53w"#"$V "-Ȥ $=<#@-ȴa anmkb!܍} "!-g"!-fh!-db!܍-h" 0 - -d G-X  -Z-^b!ܤ! lܤ"1 ܤ!1ܤ"0ܤ!0ܤ# ܤ"C(ܤ!<(l܍  ܍-h >lܤ'1ܤ$ ܤ'0ܤ' (ܤ(1ܤ% ܤ(0ܤ((lܤ)1ܤ)0ܤ)(ܤ&U ܍ ܍|-h!-h-d b!܍$-d " v !.L4-h-d .84.@4,l܍ - ܍0 -ka-kaah ٱnml =-b.bC .$= h°û+$!""+$0"wK$2߸-anmh-= "21 2# b!.Pw>, -h!-k °ûˍ @+!(+]0# -k kb!.v>e,-!Mp a M " \U"03# " v ).4צ<.D !$0$-h!-h"$ b!.ht>,!#@!/8 sahaah-nm-"k  " v > =#kj "c 223 " \#20B4l b0<0L4 " ~4 *a nmh "0 l3H.} !-k.cЍa ٱnml k0P,! ,""03# aɱ߸-١naФ °û;HB031#!$#%+L2-;J2l0 bk  -H! "c r- "U2&2 "2L1="J#l bk g -H! "c q- "V2'2 "2H0="F#l bk q -H! "cW p-Hɡߨ فnm.00#.0 h*,.(1(,.@1), ê€Èޘ.Xc#*.c+,)aɁ߈ nmЍa ٱnm b0 ,l $ ,p 0 ,d hZ,, ", "(! ,"!!,@, ;0 ,w,k !cB֑0# ,$"w<#"Tc ,* L,$ "յL! >,& <(#<*0L,4498.@($.<9.\{dЍ;,j ܤ  -!ܤ#za nm-!ܤ$da ٱnl ̱,=3@o  # MU!=#j#i 1܍ E-" ?ي6k -2j0 !܍ $-2i0 2f !܍ !=#i ܳf-!ܤ"ɱ߸anmd-=M -j@-i-03ִ# b!܍#b!2b =@3 -h-    -h! "-fb!-h$->ld'-j ܤ p$-i b!ܤ!c$ b!ܤ#Z$#-kad-kaah=ٱnml ̱,=3k " j baɱ߸nmll =,>dЍ &a-nmФ 0# 0#a nm̤ 02B0,\ $,a nm "a nm " 0#a nmФ 0#a ١nml " -031k032 b"03#P" 1- "P21 2 êp*020*$* " 03TC$ "p3# aɡߨnm " !0# a nm "!0# a nml ̱,03#!0# anm " 03RC$e@Dp34 #bPa nml ̱,"03#P"anml ̱,"03#P20Q" " janml ̱,aٱnml ̱,k +03# b+0# baɱ߸ٱnl 1=2M,c "@D$P"#1-k032 r-!qMb"03#P"p-Դ쐱ɱ߸=nml ̍, ,anml " v  ` b>dЍ "P21 2aanml k0j@2}g&!Fb7p61Ff b7p&'h!'hʱằ-"f aah=ّnd!-#=ͭpJAJ"pi0l p*!Jb"pk bb-v -xȭݡܤ!1Aݡbc@u-x-zɑߘ-ّnml ͭݡܱ,i :k *j * ܺjs* aɑߘnh!-1=2M3]w= # -zv-!uM.=p-z؍nm "0# ">.* "! a ٱnml °0û+ %$.  Fe.( ,z+$   bf 0"2r0 "̔ b03۳bSaɱ߸qnm` ݲt 0êݺ$ "0#  "0޳Ù޹t޺r ޲ܺLܺ`ܺ ܲ^޹qܺt޹pݺȤ!0#nT_P @ .0*.<0)\l )\0#X޹^޹}@)\ۏhȺ`b> b>, b0Pd˧0 0#X 0"003#\3^0l "0l X "2}02\2~ "0ڣ0#!°ûc `  @ .0+ |">g  ">,\  "0P@|D,0°ûb+x.0# +R.;t +r.ؤ0 +V.̤0 +Z.1  ê *c ..1 +X.1 Ù ).P1 !*. 1 0# ޫ|lmpx4xL H@b!+\+t P) ,°û+\t+\h:+^ +t b!bk bXbhhpDʘ@°0û+0PNQ0+0PȮdF0+Ȕ 0Pd;0°û+r[0!+\ 0ê:JZȍEb0@$*tc j0>/ Vih°@ûg@!'b0)|j B)t " ".!*paɡߨٱnm°û+Rl ".$b +d;`#r +\]+\+\o°ûP+ H+  "0#! aɱ߸ ّnm ê*R,l `(*l. *l:h#. *l:h#:d#:`#  ê@* @@*8@*IH ê*XR,k *ZjP ZÙP)@, O MH) .$ *\Y. *\M1 "0d ê*]1@PKD\*TL$ *]׳0 "\03b#!0#  "2t0"\k "  "\  "b ", |iݑ "\>t< "b ݑ>< \"20" b! "^>h< "` c1ܱ">u<4j 4c 962:#XX. "K, "m "Xd " "*, !.̍ 8 "!"T>( "4aɑߘ ٱnml k0, . ^b hbM  s[.?aɱ߸-فnm.X0Rƌ ">0, "><, "0Թi k "><,b=@+L !0# ">0, "P21 2b=̤@PI(  ">h_, " xK ">C, $ " \ ">`,,ȍbHp(-q(- " < ">t , "Ta$l ">,Ol .A "XP %j b*FaɁ߈ ١n0-1=b","c.ȳq-!pb; LKt[p ɡߨ-nm "ta nm7 anmd-=@D@N0Ad31Al b0<@P\.0!b1!-=l02@P\adaah-nmФ .a nm.ޔ  !.-0u0@a nm.Ք .֔ b!܍.ؔ  !03 #.ى#"03 #.d (#$#.Д" 0#.є!.Ӕ -!.0SH.є" -!.0R7.Ҕ!.Ԕ  03#}!#|pq, @<00Ҕ , ʍ 2,a ٱnl #=-kHpP/0Lh8r&D`n |-"!b0S-"!b0Rtbk "c@P  ebk ,"c@P  V R n0#tc@P  Cb<.°ûp+  R K0+b03k b0c@P  !0#bk "c@P  .!.!03#}d "k0c@@P g !+|bk ("c@P U °Tûp+  R 0+b03Tk b0c@P 7 bk "c@P ( !0# "D ,"N 0#Dc@'  b0B.0|b 2.@lb0@dbk "c@P  V.!.bk 0"c@P  Cbk "c@P  5bk |"c@  'bk "c@  b¾0#b´003#̤!#rɱ߸-n`a-= -K-$c.#0-p-c l0> b>$. 1-p->,.1-p-> s.1-.1-p->c -!.8 -!p-K-!--(ّnml -2`KC0ALC1AN2A3!BAͲj bi0:JdMYp aɑߘn\0-1=>01=11Nt2A31qMAl .hNP]p -ّn0-1= -zq-!pM "=p "0!-1!l !=z@De-z-!b΢b"*"*-2W3BX4=B[4B\4B]4B^4="c-@#--z-c13k032 -!b -䴲b!"!k -!b -c3:2:i)cI_4I`4Ia4Ib4# " ,. -.9[#9\#9]#9^#"u "X&-Yɑߘ-nl0-1=q-!pM "=p-ٱnml k0-""jd<-"2j12j3Bke#ELe0USRS%BNDBMDBLDBKP<2H32G@;A4c@2S޲R޲Q޲P޲Oaɱ߸-n0-1=2M3]s-!rM "=pu-!tM "=p؍ٱnl k0M3]-"!bckɱ߸Mٱnl k02M]-"!bcLɱ߸١nml k0-c,+ΣBCޢaɡߨ-qnml k0-c,3d0DCBCc$ΣGCHd+De@UTRT%ΒGBHddg SK%SL%SM%SN%WK5WL5WM5WN5$ !((/aqx-ّnal ̤!-21ȭ3q=1i .>ȍdPp 01.2!3q-!p.>dPp Ɂ߈-n\0-1=>01=11N2A31q]Ql b@N]p -qnml k0j@iPC,'b8b1pwdp4 b0G`4$ .H ,bg .<bp/(; L"03#D "#Lk 0aqx]ٱnml bk Nb bbfaɱ߸nmЍ, l$a nm "< "X9+a nml ̱,"03#P""?anml o Q]`P/.Dlx0JV.D6?.8/8.P(1. !*.#.0. .(..`aٱnml  h"k q"r;X .c@ۧaɱ߸ٱnml °ûp+!,"p;#P" aɱ߸فnm €ÈP8B`.8 03 hBT.8# b"><# b"-ܢ " jc3N<4 #-АaɁ߈ ١nl 1=2M,">,#Pr-!qMbj p.0*P " jɡߨ=nml ̱,anml ̱,>dЍanm-!=#kanmh -k ">dЍ-ka ٱn0-1=l P-k0` bc\ P-ɱ߸-ّnml ̱,k e# ji cy<!cpk A  Z b aɑߘ١nml ̱,"03yC$P"x3#@ 0  9 _ baɡߨّnm-l0̤,j  $*"""Xi03:P3# kbw .$k ȭb0,cdȝbpZb=Haɑߘ-ٱnm5 "@d@8Tah-ٱnml " v ,.D .T "Xֿ, 03‰##c#`@#!#bT "֍ 1$ " u +.0 "2&0B(4k b0;*0K,4.8յ P"  "Ƚcc@+  $(( -ǔ! aɱ߸nm "@212#< .a ّnml k0ؠʪ Lb"*"ؒșD)+) b"*"""aɑߘ-ٱnml "!"<1-ı32k0 b"+"03 \#c :J /-Ĵ쐱 "@212b!"0aɱ߸ٱnml bc 223 " \k#+ ;#;0K44 @ + ;#@aɱ߸ٱnm.Ԯ "-Ĥ! $bk ' :ԫb Ԡ-Ĵl "X3aɱ߸ nmФ 037!a ٱnm°û+`"  +c  baɱ߸ ّnml k0qp+0,q+1,1bq;i b0c@0 7aɑߘ-ٱnml ͽk 0# tm0i߸ٱnl " v q.8 ,# Ƚb=3dp+-q+--=ԍ#o  %6-"g.Pӫ 0.DӤ  -"g.`ӑ  -"g !>,@F "X,g$!A( " S 0-!ܤ!Dɱ߸nm "2h0 "`<\,h0# 0# Xa ٱnml bȽc@+$#+c "B`B"d$P"@ީ! ߤ =Ɣ3 !-aɱ߸ٱnml bȽc@+! 221?=b0aɱ߸ٱn --!"Vc 223 " \#P" B!-=3T=д2l 6b"=3X#P" ȽcE@+  -b"=3X#Q"03C`B3d4!#-дΐ-ɱ߸ ١nl ͽݱ܍ " u $.,:,j  .$++d( "X -!"d1 4! 03C`BSdE!$-!"gd BBD#l$P" ͽݱ܍& ݱbɡߨّnl k0j@ŪP,=쉀#d͝ݑbd)d!)d-"dP;#ɑߘ=anmT 0<-` 0<-XaT.  P"qb!ܤ f4b!-\<`7,0@,-g  +@ 0# P " -h " P"&-\0-g  P"P20 b!ܤ 4! h, b!ȽTb0 P3,N, .P$-\R.D$bG  Xkݱ êȚJbȊLcB ݱbcd ݱܤ#p8 " zI( ݱȚFbȪHcB ݱbcd b! P"=Th,-h0# OaT-X-X-`-`-kaah nmȤ #@"@, .q,Q {aqnm$-=03 0 c 3.p1-=Px =#1#X czP/,~|x@trpnlhZ4R LDF">j(4B0*(&Zx R L ~|zxvtrpnljhfdb<^\ZXVTR NLJHFDB@><:864 *(&$" h  f:X b=Pږ bX$ Y!ͽ+b N1+-V!-H1#=NNb=ӱ-HN-T= "Pb=dڽTb=yb߶h b06@-c0 -@2Md4 2-Zx\8o  N / !ͽ+-Z٤\@LG-Pc@, :q,"1,l -cMZT,+-Pc@, q,"1,l -cMZ8,-PȽdco-Tȭ\cf@*@;2M 4-XQ Rl -` -6f@-@" C-Z=HJ(-XQ R-L#=`# -T0B@-h=`MH]X ut-hڽj bcMZ ,b =1# -` -=PӺ -=d02=h|12-XO T Vo-d -\ f-d -P=Tӏ !-\ͽhͽ`ڍPbq8}X'Eb \@ߍgL-c@Dऍ ,-1-T=\-V! =#-\ w-T 34k l0-cd]Z!=`#!=Z#-Pc@, Lkq+ $l Lt "’d-]ZF%- -]Z4-Pcs@, L -]ZPbͽcU@+ b 41+l -cMZ ,Pbͽc2@+ b 4 -]ZPbͽc@+ b _4 -]ZPbȽdcڭTbȝ\c@+@9#=#b .4\@.Ld-]Z-d -P4<-\ -T4<-d -\ X6 7_ ` T-d b!܍(b!܍PT-\ b!܍P-\ b!܍PT|-\ w-2Xo-T\c-V! ,-\ \!=#-`1#k bj0cMZq,bC1*-P͍H=HE!(-L=1#!#-q3MZM,$-P=d-T=d}-P=t .=n  " .p=@vC-'aqx-ٱnml k " clb=3F2aɱ߸nal %-"ͤ 0pMq]h<nm-l "L@P--ނ "q21pb.,cMQpjbpcqk`f@&    "q21e`pb.$cNxQpa b-:=ܳ#!_-:?bah#anal k0p1} r,^h ( !0-jp*8i 0 _ 9 \q=d0BCDBbI2-@+ r=qM4! g r=qM4!g p @+  +p 4 " .@+  "q21pb.cN Qp "q21pb.cNTQp!0#r-1-p-q-3-\ah-nml bL l!=#i U  u =#jaqndal ,k0ɥ$j zbpCh (!"cpX -0=q}00# f #2%"N0dBp$#}qG-("":0 q܍b2"pwl'PE F GH Db}cp0+@70 E=0 03#  " ؐڙ࢈ؐڙE-  p+  " ؐڙࠈؐڙb_0-0+ "Ŕ A " E- -! " pq rF- p ؐڙ࢈vؐڙp " ؐڙdؐڙ_ " ؐڙT-! "T F- E- ؐڙ;-! "; E- ؐڙ%-! "% F- ؐڙؐڙ !>(@Ҕbqx-'nml =3d !aqnml ,k05j b i pxw bh )c2Mi + ' "aqx-ٱnml ,#k003qCBDCpSEFDCLDKqC$"#p3#G""""1+aɱ߸-ٱnal k0Żbc #@D $@"! b0cЍ@bcЍq  @- ,@- ̀ b@ɱ߸-nm-2"2% -2=BM" C! -=̳#! a nh0-1=MlP,o / _"""P2# l,J p=qM4!S-z p=qM4 !I-z-!܍22?9=z-!܍|/!+-z-!܍n/-z-!܍a22?1 =z!> @@-zMqnal k0j@ŪiPřhg)o  9~ F/ Q"""6P2#*2b,G0-b,B0-b,=0-b+80-b'10-b+,0-bpb#0-bb0-bp(b0-b,b 0-!>@XЌp-LqxMan-2003qCApsf .6NQp?-20Ͳj bc> gj bciݧ!ݗh-2h b0Hg0c@f@Eeh b`cfPrvh݆ah nh!-1=2M]Y,o / ?"""P2# hfd$`^0Z>q-r=#11-q-r=#+1-q-r=u"1--!܍W -!܍N -x 1-!>@Ͽq-]nml -,eKo  = ? "bbF"b_  bU -a١nml k0Ż,;j b00*1b0aɡߨ-ٱnal bd o D Ebŵ"k +0-bŪ4e 0-.cfVp-<ɱ߸nal bdo & J bv 4K0-1=.cf! 00-1=p-q=<١nml bdlk +& D E J  baɡߨqnml k0j@Ūhb}cp<bc k  @' ȐDb=1th bc ;ȐEb93b33 Ƹaqx=١nml kbȭca-d bp:k@baɡߨ١nml kbȭc-d bP:k@pbaɡߨ١nal bj "ck | !-C---b=ċ@ɡߨ١nd!-1=2M -zr-!qM d"=p-z-t! 1,=k cX"bĂ>$j bġj bc ,=t#l -03 ɡߨ=anl ͝ʉj,܉j4j )-iŻ K-g "j7d$i b "X{bpm6S$h Z%&jr bcč(b g bcpā(++=#k Ż-">0j ,.8 **.D dPahnm-=a-anml-=-"03dЍc>alaah-١nl bbJo   bn=CACp=Ǽ-Ͳ+>dihN.$r ȭb;p*Z.D^ c mɡߨفnml k0Ż, +S!b#03 #ڢb##ڒ@  / t"ڒ* ڂ( t"ڒ&ڂ$b#03pC$BBAGBA *F"#L" bc,bc% t"2P030 g b76aqx-ٱnml k0Ż ;3@D 4@38! -,>h`-aɱ߸-ٱnml k0Żb#03 #@"# ,>hTaɱ߸-anmT-=M!-[b0"l -fb`  b>dЍ bi-jb`  -0T3dЍ_f-`n 010=Z " "-\. -\ "-\ -h-0h3dЍaaT-h=f#%-[ -`!M\-> pb0!-h!"=fMPU_VaTaah=ّnml jbk ͝ݑbco ݑbc "$ -!bcaɑߘqn`al b_4 =|#[!#Zm0rͭ|*h!*h":f#*`!J\*>pmP-|j "h:Xk b_y4o \bL$-=|3Z0#03 #@"'b=@]  %-b\%- "$ -|!b= ]8-|"Z ڭڝ  " bQ,cdPYͭ|ݡb= Tb%-ݡc bi00 " b6 ڍg b6 'ݡbc< "T `"21 2b,>hfOH.p- d!. -d .@`WPb,"-0=j "& 1ڝڍ +b5 g b5 ' -|!bc< " (@"" -!܍P$-= # i -dRL%- "& -3) -!܍*$-= # i -dQXb=(.`c_Dqx(nm-"c 8!,c "S ),d> ey.(,jcK .,hc? "XUa ١nl jbck -2Z0 !bc$ -!bc "$ -!bcɡߨqnal k0Ż 03## " ,i s.cf  b#03 #@"-dC4!@"  ڤ I-" H "c3@D 43# c343# "‰%- "c3@D 43# c343#  "Ɣ  "ઉ%- "ਉ~%-b#03qC$@RQoeSE@TQiQ""-"#pS%G QD!MDCEGTP]e_e]F"#LF$#Lr "Ŕ (U t"c%ړd "d!0#h pF-"""ش!0#g b'03#HMDPtUoR@EDx%M@C$# %- " s.cM fw- Tqx-ٱnml k0Ż,>(cby.+abT.@] aɱ߸-١nml k0Żjb4A -,c!-aɡߨ-ّnml k0Ż,c #@D $[SEA"AD$*b0b#03qC$j0A2b#$AB4i ICpZETP_j@dPZP_XNaɑߘ-١nal k0Ż,8 b#03 #A"!"b#03qC$BCp3j b4cФHkA:; pMq]X "-%- 0pMq]XDɡߨ-ّnml bk bw j i )) c b/aɑߘٱnml kb>b b(221? b0 " tc[ aɱ߸ّnml k0Żj@Ū+#03qC$"#pC$F"#L" ؐʙ ؐʙ x)c[[bcaɑߘ=١nml Ŭk0b Z!b >$b.,bb .r \?aɡߨ-ٱnml bL k b@ (%b>aaɱ߸nml b=@]ʍaّnml bZ',k +0(# ] #2%"NDa$ êY*\ * `$.xH[  ê*0@DtFb"(ȝbc*Rp90d j bcu4aɑߘٱnml kbkbKaɱ߸ّnml jbȝc@]k @) b> `ܽbaɑߘnml b>`aqnml k0Żj@Ū+o  Ȁ@€€b}cpdPUi @'" bܝbaqx=qnal k0Ż,S+ +S# S b#03qC$"#p3#ڢb#$"##ڒb#$@"( bSA  b#03 #@"( bS# qpp} ܲC-Lqx-ٱnml k0Ż,#03 #@"!  bH ! " -b> _-aɱ߸-ٱnml k0Ż,>_.+].,Y aɱ߸-ّnml ,k0=i ) ;#  +-! *"9cA3#  -퐡!aɑߘ-nml "Ŕ  " ,>_Zaّnl k0Ż,ͭi *cVg*f#03 #@"!*W ݡ*X -j "X:fd-2d3@D 4@312V0 !"\ -j "\:ddh =3#ɑߘ-١nml k0Żb#03 #@"%7b#03qC$"#p3#"#$@ !b>8^]P .tb\ .Xaɡߨ-anl k0Żj@Ū -}'fQ i 'dQ h  H F}'ff 7dN -ÉugT}'f7d - "^'Tb03 #T-}'>^''fD'T -"dc qpp }-2f&2T -"fc !-¤ --” --2d2T-ah=ٱnml b Bb#03qC$ڲb#p3#G"" 0b "Ŕ b#03#G""0t3#"d@D$#b#03#F"#""aɱ߸nml " # "B20@"  "A22-B0 4 !"aٱnm,f##!!"!""""""  " ij wV ŽgÎcUŎ]Ҏ؎ݎ=?Xbͽc@]#-f2;c -k0 * " +@"% -Qb>TZ,-f#03qC$"#p3#R"-h"#$@ǒP/l!!P#=#XbSE bnl -c4-=X4->0Z,-*b!-h#03qC$"#p3#"0;D-X=h ڭXb͝c@ ]k-Nڍ\g b-L29cpi -g0 cbMpalps " 'i@” " 4cSAbc ň-N#03qC$"#p3#R"ĉ-h"=N-h-h#03 #@ IXP/T |dx`-*7b!-h#03qC$"#p3#"=hD-X-X=h"  b!-X=N@-\R-k j* È "L  +ˆ+ -\0ōP< -\0čP<ڝ\bȍ@bc " B0pHX+ "00dP "0/M\Pyڝ\h bc4bc1܍uڝ\h bc b01 <-X>Y,2-"B`-X=] -B-d-d #03 #@-X=BL  -h-d#03qC$"#p3#"0+-D-=d; -\=D~-H\bڽHc'  b>X,.`(-\4.T(R>P -: ֐"cЍKD-: 8-\>pW,a -hb{ -Hc bH H kjb=:-B " -"D0@1k0b=dx?$,o Ꭰ  NЈ%, "=# =#-D-h-:j ig-)~-(:'6,2-*. , !03CDB #  -h#03 #@"$-* ->؍Wrԛ -:cp -h ?h #03 #@ Q  3 /-,,b!-h0D!=#-, b#03qC$"#p3#" -, b#03qC$"#p3#" -* b!-h#03qC$"#p3#"=hdD7-: =#-D-h-:1  )-4#=# 0M2@]4E]6P8_K-hc - -Ĥ -hڭXbN01k0 byY b/P-"BڭXb=];l 0b#03 #@")&bN8 " b03-X>U, ". b!.4>h , Zڭb=D&4ڝ>b_. b€ Èg (cp@Dt"H}8bpc(hp7(bVRj i bc4b!.>4 *, Gڭ\b=D4b)ڭXi bh bcs-04L<. i " \c@Dt=ti bc4V#= V#jb#03 #@   "q2d:DCp"$ڢb##@"&[lb#03 #@   BKi€Èq()"#p8#"S-h}f bpcb q()"#p8#"0i -X=\dc`bp- 刀 -V -h -h-X>8T, -X=M] -h-0\3dЍL$ -\k =l  j bc(ڭXbc4b i bc(!-S--Fyܽ -S-F-"=X-h-d"=f# k -\j0cdAL-d-f=d# k -dFq-f-h#=# = =#\bM-dk -X2@E-f+-hj bcd@L-d-\=dMfQF_Ȥ#= #ڭXb3b͝c€d]D-Jc bF-ZȭEcd]W-f@*@9#)-\ȭEc@ȝVe-d-W@9#=#@*=@C$#-@2232-f=d# -h-f#03 #@-d##@^ Zڭfb=dt8-hc #@D $@"" |ih8 -Zg0cdp@Lj -h=d# h -\d@Li -f -W b!-Z-d I-V Db!-\ 9b!-Z=\@ -T '-h-f -d ->R,Q.~(Q.~(Q.؍~(MP-X-\b! d "-h-Xb! d "-hXbK)b0(I<-c4 =#l @܍@b! ds-f=dh8l i-`( )  "+ b!-X=\A T-=fMdRSVڽfbD$ ڭdbD$ bcB lb!-Xc>@-d -f ->Q,b#03 #@""b`/ Q"""لP2# 4H\pb! Xcbb! YcWb! \c{Lb! ]cpAb! [ce6b! ZcZ+!>@|e! "  "B20@" -`( ) b!ܤ!H "-h-c xl @]-f-h-W= ^#-`RW-Mb! d2fb=d&8 -hbC$ 6-X03qCLDCp343`-\=dDN-f-hc1c 3-X@-0ٍH<C-dl C$ :-X=fD$h-\03qCLDCp343b!-\=d@-X=\4-0ٍG< =#-h #03 #@""b! _=hA "  "B20@" b!ܤ H{b! ``-f03S8 e-h#03 #@""Y-0lGt<Ob! d4fbB$ -X03qCLDCp343mb!-X=f3@dbB$ F-ڽfcdPCk "q2d;DCp"$"##A2< "@$ -X>`Ofb,-hڽbc4 b0ۍF<F-\=dC-f-h ("240" & " \cH-d038k bc -0ٍF< -0ڍF< =#-fdcf8-hbB $ -\c~䈀i-h d#03 #@""b! `=hN " G "B20@" N,-=\T4-XڭfcA1ڝ\bcA)䔰hgfb`@$ +b@$ $b`@f b@ܴ&  " bp>`M, -\>`M}fbp@p$j b@j$i fp  c "q2d6DCp"$"##A""0 qphp b}fbp5f b/Դ& S-\ KI "U 8->M{L.y=(bpKJ.y2(K.y((bK5 .GwP `"21 2 !0#-f g -\cdp9Lk 0#-f/-h"#03 #@"" -0MD=<-0LD3<ڽXbEk -Db=D2$b04l f-X=@ ]El f--h޽R-f+ x#03 #@\-Xc H-f#03qC$"#p3#"f0i ڍ\bcrPj  b>PL=,-0MhqV-0MhfKXbD -Db=D1ab0q"-fXb=@ ]E-fbDz=b> =#Xbڽfc[ " +A2< "@$ b>(K "ࢉ -h -h-=h/ -f#03 #@P/JHpl.d0!.h1!.l2!.p3!!4!b!.T>XN\^`Ȉ-f% .0!.1!.2!.3!"4!b!.t>xN|^Ȉo.p0!.t1!.x2!.|3!#4!b!.`>dNh^luȈPl @5-fcĉ=-hXb3@ M00-hc - ޽RbCo  = -X -X>#=#Xb1@-hc -k0= "q2;@CEk b33pK43b!-=h@bL" b0 " -h-0-h =#-R-0-h =#-R-<-h =#-R- ,-h =#p-R-`' b!-$ b!--*b! "Ҥ0D6b°û; $-@b=4Z@-8GX-DP+-B 0M>@]@E]BPD_?-h!= #.=C(-R b:  -h k bcG -+9-h 5#03 #A28,`= ?\b>I,. -hG .CP " \.=hML  . -@ )nP/",.` .x .Ѝ . .p . -@"ЍCnP-h-j-S -jaahMفnl b#03 #@b#03qC$"#p3#ڢC" bM͝h )\cn0 y)Hh ,5k ): T9< AE i bA? ) D͝)\>@H .H(ȍb9:p(t4.8(ȍb9Hp(`4 .BmϨ-2H2:ݲ<"\>tH}$Ɂ߈ّnml k0ͭښXb @_bc Wښ\b!Nb*Di @-!! aɑߘ-ٱnml bͽ;K[+haɱ߸n0-1=2M3]#-"X>G. sbcCr .A ȝnml xb&0ר3dЍCR 0#xanm-=a-ّnXal %-,&-b03M>$ڽ ; AtN4-0"2+2$'b03M>$tb0UMx ji bcG " 0 @90 1 #03 #@"% b> F,-aɑߘ-فnml k0Żj@Ū " G.ȍE[,<.d )-!ڽjb0l - j bcd2\l - k -jcdQ7@b!-"h=jM$-=Ch$#h-#03qC$"#p3#R"-h"#$ t"2^343 2V "Z ޽Z-#03qC$"#p3#"22? =[ -d-"h-\-Z h-!Mp \-b=-l ,' BM.d 9-!-b1--b9DAk8k ŻʭbܭX-[  b!bHb!=d# -b>Da,b!-"h=bM3$6-[  -db!l "c<.d b!-d -Tb!l "c`C,.hoz-AT.|on=HaT " }.=@F Laah=n0-1==CZ@ qMAd #bp q-!pM-"bp,!Lp ,b-ٱnml " .wb =Ub M=CCPUqODCpUE#$d "0k0cݽd +X;hFaɱ߸فnml ͽګhb}͛dc: ͋\(;ܐ#hݛdX,1i bcK[aɁ߈فnml ͽګhbB͛Tc ͋\(;ܐ#hݛT,1i bcK[+T;d# mؘGaɁ߈ٱnml bc01k "cdPU:aɱ߸ّnl b I=ͳͫ`*;#hb:o   %lbm=1k }=3CAj bk0cK[ IbB=ͳͫ*fb1*d" b(=1i 8ݡj bcK[ =33#d#f-Ͳ+f:mؘɑߘnm-",!Lp ,hmؘa nm-20 =Τ02-21Bp-a ١nax-fk bʫh* bc #-6ܫhx-2j0+12jBBf#0-1#"=x,f,fR-p=#!"-"x=#h1܍ -Dɡߨ ١ndl #=2M3] " #k u.cB-9= -!b>MB -zS- -v-z!-zܽv-vH k 9" !-x-!b>ȭd.Ĕ ݡ܍?k b>$@c " u.cMBɡߨMnmФ a qn`l 1=2M܍t܍vݍx,v j  k #03qC$BH &@BD#"#p3#28g bcG@WEWP_5k bcobi b#03 #@"#-b8a %.x -!b0gh bcd2  0!r=1qcdPp-!h bcNe qx=ّnml b j B k +# %+ޞPo b>?jb>8?b!.Tb0 3dЍ .Taɑߘفnml k0Żj@ŪiPřQň " A., *=.~ b )(  :) :z(.$Y b97aɁ߈]anl k0Ż!-=3@Cc@3=2j 3b͍xcpf)@h pcb`cp)@)-bj`Ū+02b0=C$ #>4> ,͝9#)>>v -)-ah-an,l bȭcT " t.:@L-Ţ-bD-b6h b>>-8% -܍`6-o ~YU/ """ P2#f-!ܤ!1, B---"#03 #@ b0^5b05-=@DR>Hb=ڍ4 -=܍-! -- "}-- " - "--!ܤ#3, -=0N$-=0F$-=@DQ0ڭb4i bc b= (-0ܔ3Mԍ4@ؠʪܭڝb4h bc c3b - " - "--!ܤ#3, #-=/$-= têJ$Q0j-=J0Q0_ڭb94i bcL b=E -!ܤ"0,  --ȐxȐy--Ԥ! 0+"-"#03 #@  --+"-">03 0 c 3t.M܍=P->ah5١nml kb-j bc.Iaɡߨnml <3@D 4@32!aّnml k0Żͭݡ* ,ݡ܍ +ȭi bc " p:aɑߘ-ٱnml "2B4 k p">KXi0+ "21C$2e@Cp"$0¤@"B=bPaɱ߸nml . "&. b4raqnml k0Żb0ahj0Ūb"؂ڈȉb#03g2p'F'ڇ딐bg h b"23dCPUE"42܃܍ " b~-aqx-فnml 0ak0Żb"ؒڙȉb#03h2p(ژb  i b"23dCPUE"42ܓܝ " b"-aɁ߈qnml k0b+0aͩj0Ūb"ؒڙȉb#03#g p7r"ڗꔀ bi b-b"23dCPUE"42ܓܝbaqx-فnm-=b"Żb0+ӹk0Żb"b","03h2p(q8M]@唠8 "2 B 4 h q"> H \g1( "2 1%2c3<2q"#=02=12c3CD$B#baɁ߈-١nml k0,#j@03#p20;r"0*aɡߨ=nma ٱnmȤ°û$% 2'+ &+ .T6 .. .& . .` .č .0 . .x .Ѝ .@ . . . .L .  " Y.D.<.Lx.p.h.`.TX.P.čH.|@.l8W-u " 03t$700#d*)( &-03^3>@D*@ MA,<#08,^-!ܤ"08.ܤ!08.^ܤ 08.\ܤ!28.Rܤ 28.Pܤ!38.Zܤ 38.Xܤ!18.Vܤ 1~8.T°(û+14.`+24.b+:4.z(--.x+,U-.+,U-. , @, , , , , , @, , , ~, v, n, f, ^,.d0#.t .t..v.\t2 .N+f.$.ɱ߸ )nm-2h12h#03da ّnml ͽݱ܍+fk /j bbi bc b>Ѝ aɑߘ١nml -!܍k 0L@\E\P_&5 -c bj0baɡߨٱnal k0Ż!- -x-!-;3LC4%-d>$Dɱ߸-nml Ǥ"--!-čanar.p"0# s.P"!-q.P"!--4 nal q.r"0# 'q." ,#u>q3#"#uNpD$"##A2< s."$ t.P" !-r.P"!-t.P"!--8nml b=čD-anm̤ r,$ !q>#a ١nal k0Ż,#r>p3#@  w. v."v>3j2Ūw.b#t>q3#"#t>p3#" K!-B-"q>p3#A29 v."v."ŪB-"q>p3#A2: v."v."Ūb@ɡߨ-ّnml ,k0(-o B 9D (E@ "@1+b+j   61 "@". ,  )"'1+$1+bz +b,G! 1+!> @[4aɑߘ-١nml b#03 #ڲ@  *b#03#C"221?b0b#03#20 " b aɡߨّnml ,k0 +b#03 #ڢ@|P/<Tb#03pCBFDCLDKp3#G""""؉1+b#03#C"1+!+b#03#ڒC"  1+b{w1+b#03#" b#03#"i b#03#"=_b=q1+ " b#03pC$ڒb#q3#@"& b1 M1+b#03 #A2: "#<1+b#03 #A""  "*1+ "#1+ " b1 1+ 1+. c(  1+aɑߘ-nal b#03 #@!P/P<bcЍq-1# s%=q-2# l%= "ee%- "D^%-b#03 #"03Ĵ# "-H%- ".A%-b#03qC$"#p3#"+%-b#03qC$"#p3#C"!%-(!%- "D %-. c'`!%-- @ّnml k0ŻbpIbcK% aɱ߸١nml b'k M j  " bc@Ibcaɡߨnml b#03 #"aفnml L, êi *cJޝ "=Y€tÈ(L (r(4 (P(6 (R(N (T(2 (V(0 (Z(* (X(( (\($y (n(,q (p(&i (t(.a (vL, ""ܚ #&$12 "Ya0# k " ;C$  03#"'#b= LLaɁ߈qnm\l k0Żj@ŪiPřŋ 4b|x"bȍg bcp",cG  bȍg bcp"tbcG :܍h `-j "0!b1!021g "cpdeU-hc-3i (-h ȍhcNP bcGQ aqxMnma ٱnml k =3hdPaɱ߸فnal Ōk0bRi bLcG bj b0dQ(bo  I.TP/H^,p au-0- to6"-x.0-y.1-.(-$- st"0- ic"at!1- im"0- rt"po1- ex"0- rt"po 1-  - -b>% bcЍFXɁ߈-qnml b  5k b j ]h b03qsdxDCpcڃ( b i >'bk bb  "aqxanal €È(03t~ ( g }$f bpc`@(GDU8`ahّnal .Hk ,Ù )c)j 03> @- "V -b='Dɑߘ١nm°û$% ":+0I  . h+2ͽګb G+`=Í bKIaɡߨ nm " -,f~"" ! " ,b03# -"f> %< `"21 2a ٱnm,f>H%#.(P,R~k bc~.p,03t# .p1BP. .42BP% b=3R~ p,m .r/$ aɱ߸ anmh- -h-""N0<3dЍ ah-jaahnml -2h12h3B4 jm 4aanmd -j-"h03dЍb!-j!" N "( 4 "u *,f>0$?.8PȽdbWH-$|^ .--"|W o  "7jP/&*-(--) --*--+--$=|;,-"0|4, "! -)!- -I} -032 p-"E '-p  Ј-{ $-#03qC$"#p3#R"#--! $-"D-|4{ "-E-+M-! ύ$ " -"`=AL-#03qC$"#p3#"mb`= {,h`D---,-E------$={,+ " $ -) "! m"b`D b`cD2\-"cCva "2012003PC-MWB,M@ C=3'2 " -"BT-"zW(03#!0#-bb`={,E0 "c`C% "Q2*=P")- x --$ 1 0"`f:&];V &b=!& ":&ma܍M- Sa܍hLby4 =b>؍!-8@-$y4  .1BLm. 2BLdmb`=$zLtp&i| .np=<-$=> "# -"`O ;nP "nd-&=PZ-03!#Y- #-#03 #@"( -03# " -!܍Rl -"cz,Dp " -"AX]-03# \-@D'$X-#"$0!$0ah/ّnl -k "L;d@Z >ͽ+h<2+ګLi " *@"&+Jz+N&b;d@P ! +Q-!܍ɑߘٱn0-1=-"hx-Ԥ! &,=3hx k p q-!pMbp,=Դ#l ɱ߸-anml-=-! l"cЍ-> alaah-qnml ͭښbx?Ōg by? k x2' bcAb:xbxi bcxm0aqxnm-! "cЍ>a ّnml jbxk bx bxxi bcx bc@b03x b0x " b>Naɑߘٱnml =-Ͳ+`>.0J b1BJ. J +aɱ߸-nm-!.1a nm-!.2a ١nml kb=@ ]}#ؠͪ *@"% b B b>Waɡߨ١nml bk +   ޭb> *-aɡߨّnml bvȭi bcd ȝlbc@PP)-h! +-2mj0 A  Z 3 2m+=h#k Ż-l`vj bcwaɑߘan-!͍(`(`vd4vpl ,o  #㎠ /n """BP2#,hpdb^lj-"f" -!܍ -"f! -!܍<-!-"d-"f# -!܍ -2f1ȍ݁g "b ݁'b-2f3m=1"da-"f# -!܍_ Q-"f# -!܍g<A-!͍(b ڈbb@3|g bcpvb$-!-"dU-"f" -!܍ -2f2=1"d4-"f# -!܍ -"f! "2"d#DPE 132"-"f" -!܍<qmVbbP]Ѝ T d-ЍLh M48g "ԍv;cpu$ "2"132"@ D#@TRt&f#3-!&d &dt4f .^D& -"d> "֍ucpu$-"K,C-"f# -!܍A 3͍(f"xbbpp(" bp>؍(,͍(f#-!(dt  (,-2f3+"dtZ4ȍg bcp`}(bpc@PYhbp> bp>0 -"bt+4k b\@g b\Hh bp0dkPj * H,o    *kd*lx*kl !>@~t€ÈT(lX0# *03# jV8# g-"f,^͍(f#X(b>((Q,I-!܍f<@-"f" -!܍? -2f2,=1"b_!͍(\  " (`>8-",ah an\!-1=ڽb=pv " z.c`q-@" -x"  "2%"NdBp$# ->D q=#x  *HlP/. 6 B&z< & "  P     )o xNj n kĈZᎠ/CP"""IP2# ~ | z x v t n l j h.V-!܍S1-!ܤ JH&-!ܤ!?H-!܍lڽb0BR3k8bq= " ڭb0Be3N8bq=ڍpbq=kb0%1j0 br,k bs4؍-v"-p0r -pڽc:2 " b>ȍ-pڽc: " b>-x% " "03 #@28-q,#ؠͪ *@"% -p>>-xpڭpb;Fk f "! ڝb bc.@ bc9F-VP-p<Pbڭc@ b=bcqn 1 "{21zB-p=p " -!܍C0-x "! ڭb  -pc:\ "{21zB-p=p " -!܍0 "03# ->l{ "P21 2!q=# "  ->4a!q=# "  ->dN " ->@Q ê& q=#ڝtb~b:p m$ " ->4ܽn "pr,-n-po #-pp<Ƚݱ܍-pphݱ܍ -!-p~ q=#ڽtbb°û;pG Q- + "21"2ڲ0$2ڢ QM%Bڂ &2-p4i "" b Y -pc -cp pwfpSw-tq=& 'S6# q=#`f#v-6o $%&&!"& ê*! *°ûiP-pqc-t%$l *! * ( ê*! *°ûiP-p $l -tqcm*! *+P9# ( ܲ q=T#-p$l ޭo-rȝocH@-v#-tc;b=o#q=,# "21 2ذʻڭpb[A b4l ڭrbKA b$l -tq=#ڭcnX/A #cnX4l ܲ "21 2 q=#9-03MqLT9 "n,k -v! Fڝpb4j b#03 #@"( b>Mt "nȍDxbp.@|&L `"21 2!q=#-p 4#ذͻ +@"( .= " z.=@ah-nml b=3anm-2h "> " -">a ّnml jbMk -"^ (i bcd  k "" b bcbcMD^Qaɑߘnml b=3Xaٱnml b#03qC$"#p3#ڲb#$@  b0@D%$1b0 b{0@D$1b0aɱ߸فnml k0Żj@Ū " e+b#03qC$@RUVeST@P"#p3#ڂ%##ڒb#$A"" b!bu 2b#03 #A2: b!ba . b>n " c bbcl bbaɁ߈=١nml k0Żj@Ū+:2 Cb#03 #@"!b##@"" bcd*b#03 #@""b##@"! " c  kbclm bcd.k baɡߨ=anmh-" U& !-03dЍ !ah-kaahnml b (o bk c1܍#  =#km0Ȥ =#km0anml b#03 #@  ( c3@DqT533pD4G32! c3@D 43@DĴ4! a١nml k0Ż,  +8 baɡߨ-anmd- -d-"03dЍ L ad-jaahnml -2d12dB4 jm aanmd-= -d-0(3dЍ b!-d!221?b0ad-kaah-qnml ͍(d!(d݁܍ok ,  j b  i *0@$1)P$QS (km*0# #)# bjh bjg bcp  =#km0aqxqnml k0ŻjŜŋݡbc  ݡbc 1!b t j *&  b d h (&  pqy  b!bcaqx-ana-J=NMS"#]WpwpG$R"%-"f0j l &#p7#R"$-"i k bc@ pqjp N- jYi -jRh -S -X!bcKj -W -bi #-bi "-F-"03 #p"""{DMB4p333{2!- -CbXahMqnml k0Żj@ŪiPř*9LCPU Eh $KCEg04dep@aqxMّnal k0Ż,#03#B+##B"  ov]P/x\Zb#03#"dC43# 0  V b#03#"dC43MAbcAQ8b#03#C"  !(-b#03#GBeS5GSE@D"@F"F3#  !C-Dɑߘ-فnal k0Ż " ,h u.c# !8-b#03 #ڢdC4ړ@"@3#  "-b#03 #A"dC4A3#  -! -bc- " C-h u.cdyC-HɁ߈-qnal k0Ż " ,g u.cp  डb#03 #Q"#-dC4Q3$=3"#ɤ-#03#B"-MC4Bo `0P/.LJz<` "  pqjp  pqjpbcAQ0 qpvjpbcAQkj bc $ "   "  bc  bc pqjp:8b#03qC$"#p3#R"!-eSTUS5ڃc34ASU"#$]ABDET"3  " bg u.cdp\ bTqx-فnml k0Żj@ŪśŊbc  ,cdQaɁ߈=qnml k0Żj@ŪiPřŋzbcp "bp'  " (@"! ,  0bcdQ aqxMnml b  c3@D 4@35!aٱnml k0Żb   ,> aɱ߸-ّnml ib  "q2d9DCp"$"##@ baɑߘ١nml k0Żb #03 #@ ,> aɡߨ-ٱnml k0Żb #03 #@"! ,> aɱ߸-فnml k0Żj@ŪiPř+ 1* .)o  bch bc| h !>@o$  bcde daɁ߈Mn0-1= "-ؤ q-!pMbp-س-١nml .YU ,Z. YJ żj " +Q"Z :YLb aɡߨnm p,0960,:*0# a nml "21 2#03 # 03CCq34"#JC!##aفnml k0Żj@Ū*"03#ib#03 #A2"db " (ڂ "21 2#03 #g "2d03qR5"eSp"%B"#! ##b"03# B "T2dCq"$#2 " .XQ " "aɁ߈=anl k0Ż2M3]J 5gP/04:@.,BFK-O=NM4j#Ū - ᢉŪKڭ ڭ ڭ bJ=(Ţ " .,W *Yib"03$#iˤph " .4W )YGb#03#B"J=#o hP/F^b#03#G2OM4gF2NM4cC2KM4_"= #Yb#03#C"K=#LK- Gc3@D4C] E:C3#7b#03#"= #(b#03#2M 4="20 b#03#"= # "p29등7g0qw7" 2 .D>XAU7 "2 1%23`fF4e p"07 0#7#&"e p&cP6$0& "ڒ 0$=f -dCpVcTH c3@DpT5 #b"r4# b#03# bcd -ahMnm "cЍa nml ba١nm |h2,0@l 2",c H6 °û1+Ƞ<#c H6 0+Ƞ<#c B5 0,%$q+!"p+aɡߨ ٱnml k0Ż,;333 caɱ߸-فnml k0Żj@Ū,^*ȝh bca +""" p9]aɁ߈=١nl 1=,2M`-Ф! bcaJr=1qMp-дkŻɡߨ=فnml k0Żj@Ū+]<-i0ř2 bcap=1Mp-iřaɁ߈]فnml k0Żj@Ū+]<-i0ř2 bc`p=1Mp-iřaɁ߈]nmЍ "l4,0#(a nml b\V U #T ,Vma١nal jb_k " b +#!-+03(# "03l#P"!- !-Q-@ɡߨٱnal ,03(# "03l#P"!- !- " '.Ts Q-U. Th bI TrbU:Q-<ɱ߸ّnml k0Żjb^mȝbc` ,p9\R]i bca aɑߘ-nml b03 aanmll =,Mo   #b0`3dЍ b0d3dЍ !>@{iDa=nml -21B,paٱnml kb-21Bbpb^ c01k "cdPtUaɱ߸nml -"21B,paٱnml k0Żb>AR + Z aɱ߸-nm "XSa ٱnm-l0*:6ФͤʤǤĤ .ʤ -! ,0KMx1h0 0$=" ,($-EpsE@ 0 7  8  9 +T=8*Љ!  a f +$*  A  F +$*ɱ,!q ,bq=#.Ȕ S<2 >T G+C.>xz:K8Kh "UU ).Ȕ %>$y .<0?bQ.,04 "XR\k! , .C- +k " + IJ+Tqx=anl 1=|2M f0cpE~" S " bpE -bpEKr="1g -cppñ|bpDk bpE0!-zb{@"D-r-!qM-1p-rjpŪ|bpEi bpDk .-±*h *j Ū*92 +@"\(:2<@D @rMA23+qMp)*!8-g0w2 gbk@"-r-!qM-1p-bg`qw*92 (-.*+9;M -. r-!qM-1p*=j2Ūah=nmhl -j,03dЍ-janm-l0b=Cj$#ja-nmll =,M03dЍa=١nml k0Żb!--21Bb@"p-aɡߨ-ٱnml cC" bD ,03dЍaɱ߸nml bOaٱnml k0 "S6 8(P .8D "P&$ Zb>8M.0+b  .@+o   .L1C*e.h2C*\.|3C*S !>X@a.(*b .LX% aɁ߈]ّnml k0Żj@ŪiPř!0!,;JYVaɑߘMٱn0-1=\kq=1d p ;!ɱ߸-nml bSB K #K ,MYanm-b .KbV"03l#P"M-a nml-=>dЍ8a-nm-"a nml-=>dЍ a-n0-1=2M.ڐ".ڱ"Ky +KP b=ؤD C2M-؍K*"K^r-!qMp=nm-"a ٱnml-=l@ck0>de>aɱ߸=nm-"ka ٱnml-=l@ck0>de aɱ߸=n0-1=2MlP. J -J b=ԤD C2-ԍJ"Jr-!qMp.JmbK. ".Mnal  "༉!- "!--8ّnml k0Żśj@b=- " )A2< ,00aɑߘ=qnm-l0k@Żhb}cp@b$ j  " b07/  "0c5d bcaqx=qnml bV k Tj b$ b03 Wq *=Pb>8$4=P x# " ta"-X g5-\b$i )  st"-X ct"ru-\bTm(ȍg bcp=-XcJo0-X--\--`- *ȝh bc 0! PȍcNe\b>N,i bcUaqxnm-b0#,c ba nh!-.= -{- -1@D-{nml ,'c 2=23b0"anml b#aّnml k0ŻjŜ+)!"ݡ܍ݡj b!i b)!"aɑߘ-nml-= ">0L3dЍwa-ٱnml bSdc01k "cdPXUaɱ߸nml -"21B,paanmh-=b 01 2< "-kbTT o   !-k -k ,-,,,2,1,*,+,-T0 T, ), ., "@#/,b!l "c?$ah,, b![,r+3,b!,Z,q+3, ,"20 @D"Cc@, ,"]2B4c@<c-22M4s20 k ->`3,s, k ,cSF " .DGW,H,.0G Y,H,( "4b!l "c$aah-an\a-- -S+ #-h R(! bS '- '--S &--S6k H b8$-!$-T-03H# "@$ b>L.<b>&< "#T=#ؠڪؠڪ-cRo-cRh @"P28 2-!ܤ!,€,ÈZ((=3k0 [gfpq6h b0@(De04eh0q&823gSw7TM4_F4!1&-! "e +*& ,"8*r127TM4 2@De4c@,2'T=#( D"2B4c@ 2-!- 2@ b#03 #"03#ؐʙJؐʙH "@T=#IB 0 -!-e4R-2k0 "!€@ÈP(}q܍,q "e  (-!ܤ!, 0#@-!-%4T-  - >x< 0#@- €,È8QV=bQO( [(T=#b0+( @"P2TM4 2 "+ -"k l ,êZ* =1܍Iq:#1**-P$ %-\Qڭ bcЍzD-Q, '-bɒ0k  FêP*+b *-!bXȭݡ-4 ,"r2qM4c@22" ݡb@ ,ah)ٱnml 030#°0ûp;# -"j> 0+ 0"p2<02aɱ߸ّnml b ,ê:2c ,:l "",l qȚbcɯp)  **aɑߘٱnml "0ؠڪ9K-  s-03# ؠڪ* s-03# ؠڪؠڪ-0t3C&$ 3$#ڭؠڪ "ࢴ-b#03qC$"#p3#=Hw,!--#ͤ 0M@]E]P_R(j bcMb0<3MnbM$i +- bL0!qphp "L-" Lêf몍( -" &bM0D3Mr b="MS ܢLbM0g sb03qCGDCp343$.4c ah-.ٱnml k0Ż,#03qC$"#p3#[SEG"DC4G3#b0"""aɱ߸-١nl bMG=#^o Aͽ+^ͫdc@Dࢍ+Tj VݫTͽګ^b Cb+dݱ+`03, +`!+S+X;d2b0+XKT4c@;T0# "+T-2X3BTCd0 BT =#dͽ+d!+dbL$+jj c|,b;bLT " b>0(b;^@Peɡߨnml b=3bL$aqndl ib0@S 2bK$-t"+cKq͝)f-zh L$ )hg b 01j0 bph J$ SbL )h-zK -z͝ډhbFq("9b9fIja " * -!.44͝)fKh )hc@Pɴ -!.,+=t#k ~Żqx١nml ͽ+ڢhbc+jK< k b0dQtaɡߨ١nml jb6 -bHk 0P3pC$0#-aɡߨnll 1=,2M b03M r-!qMbp=nml -21B,paّnml k0j@Ū,>6. *i bcC{ .>b aɑߘ=anLal =M] " ,h .@ct"/-.--- -,-+-*-)-0,3#(9#=#-!h b0X3d=-"]-"  ->,-] -  @B  3 38- <9-  ->,*'-  ->, !>d@SJ(!-- - k _  '+r # -!->A$+r -!->B$+r  ^-" -!->C$+o $r b fɎʎPڍb03 Kbj V $ b>, 8)- " b=@S0bI)-bIa1I$P_   ^= !c3@tD$"##$"x)-^-" "҉)-^- "उ)- "উ)- "ਉ)-_- "‰)- "ઉ)- ")- h g -H &-mb`b`Hh g -Gx" b=IRX+*"mb`H1-b`Gr\x "" " =+ -!܍8mb`=*Lb`G)-+ /bE (b=HsX*ͤ`mbc " b>\"-!܍8~bNg p u " bpc@0mb`t 1-bpn S]% Gb`>0,|.4b`FNd@Pm(N- =3@D 4AC$-h0c HH)-Y-= # ]MB !#O- bN-(C-#03 #@"$8,ڍpwq'c(33pG4fڃc3#A28A281- qMDHq7633pG4"#)--#03 #@"$ " .:nT͍B(;.č:aT(?D " .@=3dahM-nl!--\l ,o G r !-/@"""P2#jhfdb`^*ZXT  戀 ̳ "/E"""JP2# ͎/"""P2#pnp-"Z"8 -!.H1 ,% -2Z:2Z," -2Z;2Z-2Z<2Z-EH0#T-2Z82Z-2Z9~2Z-"j" -!.42u i-jQ=c2d-"h" -!.`3Z N-hQ=2b<C1"?2-"f" -!.x47 +-fQ=%2\-"` -!.4 Q-=쉀 #`. =١nml k0Ż-">[.<+j bcD.$- aɡߨ-ٱnawʼ`"#- -0pMq]J;,^l b0cD@ɱ߸ anTal k0ŻM] " ,g q.cp bw,j *  V+ -*o  ;! Ύ܎$-)bDg E," bp6\ bp~KTd*-bpcdp8 *-b#03 #@   b><b#03 #A""8M=2=b1H -" b#03 #@"# b>`bB<0" 1i0 bD h -&-*'-)ͤ -b#03 #@  8b>܍Ab0L*k b> "20 "$ b#03 #"0t3CP$ڳ6bcCq4- } " "03 #prb#03 #A2: rM-*-b#03 #A2; @rM-+-bp- -bC$-= C*4-"  -!܍$mb`,&b`B% ,*Q]b`C/ 03 "D(b`C" CHCDC 03Cg0-03Mmb`A<  b`0G #---0 3MPE- 5S-!->`.pRx 6md`jt@3h0-b`p=CDXb`= Bs4mb`A<" b`Bh,b`B03།BQ4bAd<0" 1i0 !bBx h B,#- -" -!܍$ l-p}%-)bA,<0! 1i0 0bB@ ,"} rPbB0 0<3MbA<0" 1i0bBAh "- !-#03 #A2<A2a ٱnml kbH 'b@!=#hb0BRR bAAk bcAaɱ߸ّnml -ʲZŬܲZb$b@ #͙ؐ )@"(+! b>_!=#Yaɑߘnl bo  5" )%    /=-2a8@2a-2a972a-2a:.2a-2a;%2a-2a<2ab@ 9=쉀 #!>@Iّnmhl k0ŻM] 0#V;2 b0M%cbb!bc@,Dj@D(yZ-j030 Fj #03 #@24b-jaɑߘManDa-=MlP03 0 c 3|.h-=A "% ]-!޽e-="dX]-!-& ->X$-"#03qC$@@Aj@ "#p3#ڒ b>8!b?,g  ލg- p bP ލ- V ->ЍK-==d.[l"<Tڍb>t} f bpc>b`p7;<Pg bcp?bȍc@ P(="3@DqT533pD4"# -  ->s]-3-2#)=Y-=>E|%- #-o  ڍ b>,k ? g -"cpAPA@- #03 #@  b> %--!ܤ - #03qC$"#p3#rbp>P$ bp>bp>h Z b0ύ\bK & b0 3MMH! " - >'= 3@DqT5SSpDE$#-$! 1" /# %-$%'- >d~#-$-$ - >L! -$- >`b= = ,j 03V<(=$83b=<- =,k b<8  $-j b> $-b=,j ΍$S-N-% J ="3@D 43@tDTt5! -$v2.D-  ="3@D 4A3@Dtg ="3@D 4A3@D_g }" "^,  !- -bp=@C]@- 03VCCO#M03 #@ @ -!. o.P/F -!.č- "$ -!.4o - 0/D- #03 #o@- #`fq6#23pF4e #A5D- #q6#Q@- $   S-  "^, -!.R+ ) '  "  -!.DU` `"21 2 !>@ExE-  b03 > 4jb03V;(/b03 =4- 03C$#q3#<"b= 3@D 4f0A3F$(-    !--!((!/V-!-bQ=333 =4E- c83b; aٱnml kb{ b; oo  b; >aɱ߸nm-"I  "V-"La nml -!܍canml -!܍canm '.a nm./wa ١nmpl . NbȽpj bc@PUb0PN ^4.  b0.-p0.!..(.s ".g aɡߨnm. .a nml b:l b5 " b9_ ,/a١nml . @. ,Ƚj bc9p+)paɡߨٱnml k0 .-, -b-aɱ߸-ٱnml k0ŻN.-,Y -+M aɱ߸-ٱnml k0Ż.-i ,&+Kaɱ߸-١nml k0.->a Ŭb8$!R -;,,.(b  Qbc+aɡߨ-nml  .,,'anml  .,,a١nml k0Żj@Ū, /X.,bdb  , *,  aɡߨ=nm.x .ya nml b>anmXr,02 \2, P&,a ّnml k0Ż,>@޼u. +ȭi bc7p*' ., aɑߘ-ٱnml ,"03X# 벪 "`+b#03`#" ܽbaɱ߸anml k0Ż,7h "v ,.0+ ( S.(+ +2$spXwp'>8GR R0'x`Xf&ripwp&'g뒔 bp{6#& r bc3rF43) , X"2" 2  X"21'23j03rBgC#!234PC G" 83p"# aah-nm X"X22,a ١nml k0Ż X"2,"2 ,;2* X"2(12(3B*4j y"02  9* ** X"2(2y"# !aɡߨ-ٱnm "-Ĥ b"03|k2+;-ij 0#aɱ߸ qnml b5k "- i€|Èp()"5{'p() "-搡 aqx١nml b5k +03\#+"0X3pC$"#r3#ڢbj baɡߨ١nml b5\k +03\#+"0X3pC$"#r3#ڢba j bbaɡߨnm X"2" 2 } X"21'22B4 l v"02  6, *, X"21)2Be@Crl \dPQ!\P33#\vR5 C(Ba فnm "j . >@(G X"ڲc3r"#b#0X3rCjB*i04"Qp) ʴ X"21)233vB4P3(2ܽbaɁ߈ ٱnmȍ#Xr+Q"',,<,# ,( [aɱ߸ ١nml k0Ż,4N"ؠͪX*뢔 . >@'b#03`#"aɡߨ-ٱnml kb -bb-aɱ߸١nml b3j *03\#*"0X3pC$범 #b#03`#"aɡߨnm X"2>12>3B44l |"02<, w,4a nm "a nml b"0X3~C$"!#>anm X"2@12@3B<4l ~"02+>,  ,< X"2>B@e@D~O 4@3`0|" "BbPa فnl 1=,! 2M03# .>A&0b"0X3~C$"d DBD|#$ڲr-!qMjÙp)*h "8pp)*ڲɁ߈=anmh-"=2-h-0L3dЍ ah-jaah-ٱnml k0Ż,2=Ch$ ܳjm0@aɱ߸-ّnml k0Żj@Ū,Śc ' X"~29Ce@UTU|BTRU>b" "$"R3e0USUcT" ‰ !b03aɑߘ=ٱn0-1= "f-Ԥ b#03`k2+ q=1pM;p-Գɱ߸-١nm ""0#b0X","2 u0, &,c HJ2, *,c B?6,kr+l "# ()' +4ܫ>c bF'<+ 2+<ܫ@c bB>+*+*ܫ(c bD 9+.(c*.+l +c)" . k+ c " @Dt-/0# aɡߨ nmXr, p,<B Uv, |, ~, ,(a nm-=a-nm-=a-n!-1=2M=n!-1=2M=١naФ!t>##-b#r>2SXESYESZES[Ec@0-b0k@lc 3222j0cl~c 42bs>#p=qN4LSEMSENSEOSE$  t>#S-d!#-Dɡߨ ١nmpl kb,"b0zȽpj bc -q21pBbpb00Ƚpj bc -q21pBbpaɡߨnl  -q21pB.p -q21pB.$p -q21pB.p -q21pB. p -q21pB.pnm--=ĤA C2Z -Ȥ!cMĤP8L-q21pBbpanml -0dd--q21pB-paّnd0-1=$%Mͽq+!pK.Ppݱ  6- !03# - #03qC$dCp3k b4=tHZ+ 0Oͽݱ܍ݱ N q-!pMp- #03 #@ -!- #03 #A"- #03 #@ ОP/rX2 *-! "=MxMͽq+!pK.(pݱ  q-!pMp "Ĵ-q21pB.@p "ƴ-q21pB.Hp -q21pB.|p-!  q-!pMp=-w +-{"=z3#=1k p-q=KD!-! "=Mxڽxb/L' " ͭݡbݡ = -x/(=1܍&ͽݱ-x+ q+!pK.8p -q21pB.dpͽݱ  q-!pMp " ڭ Ùq)*@"#q+!pK.Xpݱq)*"#p9#C""0" r-x._ =1k "=d[."?- #03 #S"#$q-!pMp?ͽq+!pK.ppݱ  q-!pMp"ͽq+!pK.0pU-#$ݱ ] q-!pMpɑߘ=١n-"h#03 #@  -"h#03 #" !-Ф -έl -"! ( ͽͫq*!pJ.pݡ+#03 #A"+!Kp ݡ ) ɡߨ ٱn,!Lpͼݱ [ ,j ݱ܍ " -21"#03 #A"9-"! ] ɱ߸ nm "< "!-""!ܤ)[a ١nhͭ*!Jp*! (7*h-Kl +"ؠͪl*P  A t ;b -z-"K" b03M -2KC@ T"j Pq#!pC.,pb,,7 -z-"K" b03Mʙ -z -"q21pB.$p-"q21pB.p -"! )-23@D 4@37 "! !ɡߨ ٱnl -23j0 "j D-2j0""q21pB.pͽݱ܍b +"q21pB.p b,I-2j12jɱ߸ٱnml -2j0""q21pB.pͽݱ܍} b+j!+jaɱ߸ٱnl0-1=l@]=101011A2Al .cdP/anma ١nml °û+>011!!<2!.j0cdQ@+  aɡߨnm-=.>@#a-nm-">@ a anhl 1=2MkPŻ.@r-g "ؔ ".TK q-K @K8bD.hK bH$b!j bcd,j b03#+* -!܍b0# € "? c "k'h  "& b!i bcd,i x-xcAo A  39!*44b!i bcd,i -!܍--xcA@ -x9"4 !>D@@2(c:mxbj@3 "ؔ .T@0b!j bcdj < 0-#cpbc@3P "ؔ $.@J*F @JT,bCA(Jj "6$p-Dɑߘ-nml =Mb<a=١nml u.@"-b"s>p3#p"b?-u.@" .>(A: )v.A"!v>#"v@:#5sp*Fs0*eȠbv*u.@"c "sNpD$0b0aɡߨnm̤%r,c D q>0#t>c2#0a ١nm(l TT"-, x "-x-0 0!bk ȭ,cd^/-k ":iW "0-1#0-2+!Kbpaɡߨnml "  -!b `"21 2anl0-1=Mo@8}P/r*Xn$z6J-!. ; 9-!.č/ --!.# !-!. -!.   -!.$ -!. -!. -!.@"-!.< -!. -!.L -!.h -!.h -!. -!.h -!.D{ y-!.m-!.4d b-!.Y W-!.N L-!.C A-!.8 6-!.X- +-!." -!.Ѝ -!.  !>@&/=nml -"c̛anml-l0̡L.cЍ;a-nml -"c̄anml-l0̡L.cЍ a-nml .$S,.@,>#@" ga١nml kb#!0dj #3j bc&Daɡߨ١nl 1=2MkPŻYŪb#03 #@ BP/RnlhZbq=rMe& 3bh03#r- %2 #b= dD]%b= d'Qb} !>@-.kɡߨ]ٱnml -21d)!1+ +-!-C!1+ +bcM6ɑߘ=*ٱnml -21dЍ)~a=ٱnml k0Ż ("20 (;"ڴ2" "  ,#03qC$@RU"#p3#"#$A2<! aɱ߸-١nml b=k #`j03^dZX#aɡߨ١nml b=k #dj03VdZP#aɡߨnm-20 BqTScP2# 1$-2S32a nm,V.,r a فn@<-=M " .x>Mq-= $t( P/ "!" !!!!!!p!!!!!!!!!!!!!!!!!!!!!R!!^! ! L!r!!!!z!x!v !p!j!f!`~|P!D!B!@!>! < : 8 6 4 2 0 . , * ( & $ "       - =@-$0<3M'j-$=@*b!$=& k "  bl , -*! !l$)YTk B+ 03 # + " #!;#"+-*= -(O $b! l b L@k - E@+b'~ 0-!b %Ƚ bc bp;lk - c!->,ܽ(-( - =@-(.@-$k +1 : I/-!- V #  ê**! =#-$=MDD -$=MD-(:b@k - @+ ,b  l bk +K s  + bz@k - c"/Hu-=qC$M*0Ak -$j0t=dZPڽ b=@R-$ 0$ ,$= bYl tb j $(Tk @+(b+ڽ b $l bͭc@ڝ* "q2933p"#"c~ b׈2jb ' k !0>dli bc b=*b0?,ڝbc bc - =@-*#03qC$"#p3#-(  "@=qC$b@ 1#b= -$=@} "@"u-2#b#@D $ABL -!b0<-( "@u=# =1܍< "ju=# =1܍<- u-" "@" =1܍<(  * Xڽb0׍,b#03 #A2< b5 =-=3 1ڽb00,b=3 -*=X " $ --!܍0- =d-$=d-(4-*#03qC$"#p3#"#$A2<-*c` "=1#- 0-(-00?,-w=# =1܍-u=# =1܍<-(/ ", -@" -" -0׍ ,% " - - -(/ -0Ս, -0֍,-= Q-*= " $ --!܍0 bȽcڭd-$i ȍcdbXm4 jܝ $p+2-q+3-p(0+q(1+r-0(s-1(w-!du-!a "([-! -=# ڽ bX=4 HbWl @  =ڽb1-!"--= #b0wG,-0t=,-@" -05.,!-w-2#~u-#z-#! ")o-=# ڭ bW4 `bWWk X  U-*b--c'w-* -!bu-2# -!b0<-"-= #-0w,<-0t,3-@" .-05,%ܭc-w- -!ܤ$Eu-4# -!b0X<-= 1#-*=/ " $-- -S"- "=#-- ȭc@-$ȝc@}-w=#b0u=#b0-@*@9#l -@-!" - ""$-- Fڭ$bV4 =bV\k ="@ /-(9c1b@DVh-0T,b-$=@DVh-0R,M-!  ")  "("--@-"  ",  "+$--@” -(9 -0<, -08,-u=# =1܍K<-w=# =1܍-ڭc- 1-*c  " $1, --!܍30- =dpw- -!b-=Z -*c " $1, --!܍0- =d2w- -!b-= W-*= - =@ -$=@ " $ -w-u=#b0--w=# =1܍[-u=# =1܍n<-@" -( -0z, -0{,-c-1-*=# " $--(R W-S" --!܍;0-(Q R W - =dm-$=dd(-(T bT4 b=$- =@E-$=@<-(Q R WQ " u- -!b<-w=# =1܍ڽ$bT4 bTڭ* b0- -(R-0W, " P-=# -(TE-(T-u-w=# @D@46!4-w=2b0u=2b0-"=1#-M$# =#w-u=#b0=# -"=1#-#-(T]$bT4 TkbSl w-!-! =0c22 w-""-" -- ڭcb=Me|{w-"-"  - =f-w=# =1܍-u=# =1܍<-=B-*=} " $ --!܍0- =M-q2wM4 =1"J-=3bOX b=MD " Žb=*L- cAڽ*bͭc ڝ"bcڍd-$=d|w-q:# 0k bp !b=1܍ aٱnal -,Ro I)!bW 0-! +cw=1܍ !+p=#k ŻG-@ɱ߸nm-"0:'a فnml =k@YÙ@)ŌbKv bK5 @9# ޭ "Y=#N-aɁ߈=١nml kbj b k bc(aɡߨnml b03 aّnal k0Żb ŜbcЍ5d b=@`b=b#03 #@oP/ bcЍ50 b=M+o XP/"bu-s=# ^i bt=de Tb203#u-sM$ E2 Cu-s=# >b=M]L2u-s=# .bD$(u-s=# $b=M!>(@T$bcЍ4 b=MXɑߘ-١nml k0Żb=Ŭb=4 b=Maɡߨ-١nml kbȭc4l@* .>Ab  aɡߨٱnal bkc4@@+ q-2-. >Ab n  2-r-Dɱ߸ٱnml kb=4 b=Aaɱ߸١nml Ŭk0b=3bc@aɡߨ-فn0-1=° û' ê@* Ù)h .8c ).:€È$(.: %(.,1#(.hB:"()T8Y )U8R )P9K )R8D )S8= .c(+.Hc0# 2.ck )c .1k )c  .cl )c ("20 "" .Xc~k "c ,q-!pMp " 0f0# "y .|° û(ˍ20#.$-+Ɂ߈-nm ",,,, . p<a ١nͽ+b [ګjb b,! d+g( "  b0+"&Jͽ+g)Dȭb;3 p*--03# -Ҕ  +j0U-""ͽ+j $ % +"ɡߨ anml-=-"h03dЍ alaah-ٱnl bo 0-21Bbp"b $k  -21Bbpɱ߸an`al "P21 2-|2`%="j#03qC$"#p3#=ڲ-|ڢbr`bp %-f bp H,#03q+"#p+ڲ " .@%4b` s$8b <$- , #-G-,qp}G-/- "  G-"F-"03 #p""[0--=  -!܍j " b - ."0 3CM@C B "PR"]]|U R 4"QR ]!B B#!#-!g ("cp-|"d -!܍R-0# " . 0( ܒ . "20 "  K  4" P=!2C-0 3##!#ah(فnal b  j +Ųb $i ř ;2- "  b0"F `"21 2 -!-#bЍ~h bc TɁ߈an-"` " 4D-o ㎠/n """~P2#  -2f103 .0 "0-"0# .i " .  -"0W 0# .P-"f!I "21A 2-"b c,i (j pbxLo N > ;Eb F,#03qc&"#pc&R"-j" h ,,-h-i/-ib=h 84b=3d /4b ,@2>2qp -"d G f bc` X-"<!--2f35"d ' ȭi bcTȝlbc@P$&$b>,] b>p,U b>,M  -- -"b l bCi b j b0d0k + J   +@+H+P !>`@ \ " 080# +03 # $03# -"%<ͭ*f#*b0n*<ah فnl k0ŻŬbk bC b06:$bbo /"""4P2#xvtrpnlj\VTRNDB@><86420.,*(z$"PNzvtpljhfdb`^ZXJ~|zxvtrpnljhfdb`^\ZXVTPNLJHFDB@><:86xf0.,*(&$"   fdbbuj bc ,-!b1b j bc,-!b1bEI bd j bc,-!b1bL & bj bc,-!b1b03  (bͭݡܤ1zb ݡܤ1ngb0ōg _b0č_ W"c j b i b  b  bh bc;,-!b1,%"c͍݁ܤ0b ݁ܤ0b03 ȍ(Ɂ߈-ٱnmll bż!b1b( % b03aɱ߸anm\-"=^fˎx # {"dP/B\(B"-" a -!-bTS -!-^Fͽݱ-` ݱ-b +b-d  -0 $3dЍ !-"!-b1; !a\-kaahٱnml ͽ+!,F  +km aɱ߸nmll =b!, a-nmll b!,0anml b09aanHaŢ-b=p " .Dch " =&2ڲ'2  )$P/TH  @|H   \ ~ $==/"""%-"_H  @2?2-0 3MkTtN_- J! -@-0 D3@G83 4"ؐʙ0 2_-!- -0 D3@%8  ܢ 4)03# -03 wl ܒ#ڝc&j ڍb,A _p w'! 'b{'! 'b?0 Ib>( Bb0ޞ -  b9<-zPȝbڍc" " *p9Zdi bcbVڝbC,A -!b "21 2-4b%,A -!b "21J 2 "+ޢ-  " .*40& ,-0$- "P21 2}bpi řbpŢŪ -hb=v p(5--03#\[- Y - "20 " E-! `"21> 2 " E-221? )o  !-0"݆ -0#}  " -0$n D=;!ǂލ-%-- h -c3$q_- mڭb|"cb [ȝb= p)5--03# [- b0 [- :-<2 h ڝ"g b,qb:Li 甀 %mb`= TڭPU@% b`c@EfPL]@@-c$O-!-k-,0% 1p =-4ܭ /-5ܥ -!-Z4 K- -8<-1< -!-W-h-`-N,o # ڍbtHj bLi b>x -i jbco3h -c$-F  ê*! *- -*!/ *--_-#-ڭbhbg bh g ' t w b4"-c b03 "s b03 i1b,fb`ca-c"c2#c.#""" p6$8f bc`I0bcy(dahMّnl 1=2MkPŻŬb8 b8o ;i bj0cd9#bȭcu-r=# b= M@Z b= MD]ɑߘMٱnm@k l0D: L "Y k l0H:  "Z "baɱ߸-فnml k0Żj@Ū,h (& J 6 "ZȐJ "YȐ&Ȑb7J:Y b0%t93b33 7bcdPaɁ߈=ٱnml k0Ż,0(3C1$ +32#""! ("22 "1# $ "Y%&aɱ߸-qnal k0Żj@Ū,,o _ & !6J K`gs a  [ "a b72<@h hh ("22ȐJڲ: ("21β2 Ȑ&ȐذλYb7d!0d&,"2d(e &cP &  j &/g bcb i cb,d(cw 'vhah-na. ">#["!-#,!#, 2@k4!--4 nml .* !.""c.aanl 1=2M° û+hk @X %Ai@g0j 'r-l!b`pbA bc` (c b "V2'2 ܲ ah=١nal k0 - + j* +! +! -C-@ɡߨ-١nml k0j@b +, *aɡߨ=ٱnml bo ó      %!b -Ĥ +c  !-ij퐱 aɱ߸١nml bko 1 : ; I ++ b4k "`  b#03 #@"" b#03 #@"' b!aɡߨٱnal <2)-3 " #@   bkcp@+ ! -$ -"-#-K-Dɱ߸nm d.0ϙ. .0 43 #!#.0&l .c a nm. .֍ /.ԍUa nm.>@ϴa ٱnml b$>k2.(< ,.1 A+.& @+.  .aɱ߸nml b >r#.>,A. ,rb$>l#- " b-anm.,>N0P͊.,a ٱnml .!."># b>d04^5k@@! " b0.aɱ߸١nml . !. "># b> 4N4d0k@@!k j 4"P2%;Q"$+ "+03 ;03 .2 " "\, + " . . 0 43!# #"aɡߨٱnm 4 bk .&+ aɱ߸ ١nml k0b"ͭ*",c3:j #,0ڪ" 1=b0aɡߨ-١nml k0b"=#ڢ,dD4C,B,ܣ,aɡߨ-anm -* " 6_-,-,@@ DpT0S4D PT S.ba ١nml k0Ż.^  >V~1ܮ^ " 101j b0deaɡߨ-١nml k0Żbj3^5,#e "@)i 9iPp62060 3pC$0#.03X# "p2qB4c@12 2-$h,f -u60-bc`pM4zm&b`$n8j ("24Y V"!Rb`*D J  G-$#03 #@"!'-$mc`gL@& +!- .- - *- -- -- .- *f - c`D~Hj -$hy,:f b0=c`pM4ah/ٱnm,f0f k ,bv l b03DdYaɱ߸ ٱnm,hek ,j# l b03Vd2aɱ߸ ٱnm-290 "6l -p21Bpl ,0(3k #3daɱ߸ nml <3@D 43@Dƴ4!anml ,=33d}7 #-aan -ͭhͪ,ʸ*-!(L4 *(2! "#-"d,=1܍4  +%h,+ c 322b>΂< "&8#+g $;c`dpPUZ|2=쉀[#`,! "4p(w'*,-!ܤ! =01f c`G2}ep| ,!P'=쉀+#`-=쉀##`-!ܤ! LF"1͍(2#+}qܤ! qf "w qg #o P0Qh`c`h Ndpeyp$(!+&;b>\FL"1͍(2#+}qܤ!B qf #: qg "2 P0Qh`c`h 4dpey3$!+&:b>TF"0͍(2!*-!ܤ! g sdF"'͍(2"!}qܤ! qg " f cpd`Pz(`v!+&ob>lF"e͍(2"_xdbpH,i  Lb,B@fepb] h -,,- g b,=c5D-sčZ$l " v.c\-ƍq-8!l#-b -bb  -!-mm-ƍ /-#03qS%"#pS%R"R.-bP]01=- - - -*-*"03 #p"`T9-bx-"f `0-b`_8- ". -+) -!܍\ -& p->FM(" -' p->F?("  -!--- %--g }- #03 #@"( 2ڽ badDj b --%+!- -}p -" -basL%-6I- p "6-` fp& +;--$,%P(U% bT- =@D@wx,p&*:0&!0& " <-0@$1= " - bc@X-80)h3Mԍ "- p "-!܍(-$* " pS-! p S-  .-$)S- -0!S-1M8P)pUd -80)x3Mԍn "-  p -!܍.”  >s`n " |=#+-- iO-  bY0E-bmc` E-ĤFAp602$d P6 2-0`jt-=2=03=f =--čn- ->ah]5nml b0anml -!,anml -!,anma ٱnml k0Żb0!,;@^ aɱ߸-ٱnl 1=2Mr-0!,k00Aeɱ߸=anl " l5-b`n=b`9$-,?(k +& "])bK0)3Mh b$>DR --+  -= -i - h - g +o /  ("""`P2#28"ȠȠȠȠNȠ Ƞ4.4c +   0!)8Gf b1=c`f@qMe`vX--`)8G0a1-be0q=0MdPp]sE0-mu-0# ]-hahٱnml bd!C k 0dsaɱ߸nm 6,0¤@T 0,2,4,",&,+,0# #,*,.,/,0# a nmv,6,p,  "  "  034#2#0#a nmp,  0H<0,p,: 0,r,w&,a nmp,  0@0,p,5S 0,p,B",a nmp,  :F0,p,5  0,t,+,a anml k0MjPŪb0a'Hi0ř, b"03#Pb#03g2D'#':bPbg mc`MS h -0!1bce pFfP]|epg`c "r2dpg637#Wc3v"#P2 7 Bb@aahManm-l0k@jPŪ;LC4i b00a&gi0ř' "b"03#Pb#03g2D' S''1bP` h *0!bdeg =f@oP|epS "r2dpg5gm#g!c3v"#P2 7 Bb@aahManml k0Żj@*;5#0ai0ř, b"03#Pb#03g2D'')bP h 0bcdg f@P|_epS "r2dpg5g!c3v"#P2 7 Bb@aah=١nml k0Żj@ ,J2bd1aɡߨ=nml ̱,5Akanml ̱,0@Taٱnml k0,Ka١nml ,#k003 #AK+-+ " K+.+K+/+K+"+aɡߨ-an@al ,=i0=ڽ(b0 3VQpC0B$4 PC B!)& ? j  5-;&f=>DEJfҎ6ӎԎ׎ĈjbߣM i bG j b~b-ȝcrbc,X=>'#-j$=3'#-H=0#K#)%#ڝb=(|bI$='#K#)#-;$='#K#)#͝K)))b# êq:#"#p:#hڢbc "_ b#q8#@""K),)bT͝1)bVo4)W) p)h')0ڝ"bݛ -*-$"-=b݈ k ͝K)"#hbeDi b0 3VQpC0B$4 PC B'-*d j ͝ck "_ b#03 #@""K),)bS͝1)-*ݍ7 KLp9#0)J97I) -5-b#03qC$"#p3#ڢ "_ b#$@""!-b#03qC$@BD"#p3#" KL4- 4-bS0i 3}"bp $-mc`bpg bu= rp&'0&1p&J6 &}"bp{ i S4(bQ}Q1(b ,='# ("EBC"11#K#,;#b,='# ("EBC"21#K#,%#b,='# ("EBC":1#K#,#b,='#!# 1#ah-0فnl k0Ż -ʤ!-,y0o  ?b=3,?b=ͣc, "X +* ' !* 5c 323 " #"e$ b =3'#b =bj -͒p)hi* ("y2 z" bp8#0(-͂p(*q8-ʤ 0(b=͓J9>4&) "\ b=Mɍbf --=ͣJ:4*-ʔ d=CTTP$$-C$#pB4B#q2N52-=3C$%j0T3MPU@g(4$*-ͭ:d0pS0R$4 PS R "VQp204D$ P2 4-aX:'#-:#-:$#-2]0 "K232Ɂ߈-١nml jbق k bxo D} P/`rpnljhfdb`^ZXVTRPNLJHFDB@>:6420.*dvldb`^blj\TRPNJHFDB@><:ljhfdb`*(&$TRPNLJHFDB@><:86420.,*&$   rpnl<Pbp N@" "87"4$ "Y- "Z( "b#"bb""b!"bص b>~"aɡߨqnal b="L" B ! &  4"= X> ,? ) J DEIꈀҎ eݎÈbjcD " - p* T-  J-!- WbЍ_H(k -ך v@-׍ ׉ ȝ cOTbȍc}dp i0j *P8PG@Y\k ʽ$b1Pk b֣ =$ARlk b~2k bq4ztk -$03YA,fk -$03ZA,Xk -$03bA,Jk b1E--4k b ;$j -$M28i bcMA<4k b !$j bBHi bcM( KX*0+b03Ce@Cp34HkP`baɱ߸nml b#03#anal ,o R .4 5 Q ,W &t w " ;- :- - - \ - ]- ^-C-8nal bso 1 : ;  -b s0: 1 =!-!-C-8nml -" ,jL ` ,jhaفnll 1=2M]hP~Fk ,i  "21 2- `+Oeh bcdO "21 2r-!)qMp~j *h Fcf -!ܱ+|r-!qMbpO-  "21 221!2-!ܱ*\Ɂ߈Mٱnml bZ=CACk cpaɱ߸١nmll =MkPŻ,;j0>de8aɡߨMٱnml #ͽ;);1܍"ͽ;;1܍ aɱ߸nl!-"ro 1 : I $-=l03L\ #-ӗ>M]U-21B-0pnll 1=2M]-!,Mّnl ͭ*!,Jpk *k $C* +i cJa.*h+j cͭJa*hͭ*h ;i dZ`*f-ܲf =#kɑߘndl 1=2M3] -x1={MP-v]ٱnm-l0,=k #hcHaɱ߸-ٱnhdl kb !H -b>MQl-}!- 0!b0/3MQ!-Q-ɱ߸&nml bX-aٱn\!-b =pIb؎ -tHY-z-0/3MP-z}<'bk bѷ 0#@D $@""101b0/3M]t ɱ߸ٱnml ,==k #jcGaɱ߸-ٱnml "=3 k #=3k b-aɱ߸ٱnml bъ4 k S+."Waɱ߸١nml k0Ż ,Ŭbp,  ;bUp  /bI.p !bp b.o ! aɡߨ-qnml k0Żgbpж 0G,1,bXPh bpci (9qLZ.P!#p,q<#0,pw'1,bX+j .8Ti *9GZ(aqx-qnTLl k0Ż,= cZ-݈X-'!--oh"-00L3Mni$-Я !--|,!-ڝb<4h - 54(bj € ÈR(0ptwpG˕0(p7 8h bcbcb9,ڍg bF)(2bpr-0!1bcMq][ r-0!1-= Mq]L qx-+ٱnml -"V ż+ b b03 iaɱ߸١nml k0Żj@Ū]p-0!"1!,;Jaɡߨ]n-" =-p21B-p->rz ,fG, .r/0E,` nm-" --p21Bbp -bV--a ١nml k0Ż, =ͣ:Z0 :[ ݡ܍c b k -͢ݡ܍;*fJ\Xaɡߨ-ٱn0-1=q=1l ͽ+>MPp G+" .> AIɱ߸-anTal =M]Ōbg@D83-2-bp"g mt,i )010=bpΕ-m^,i b0D2-!- c3@D 4@37!- " 5-)I-$ -!.l0i<6s-!5)1 : ;+-Em,h (1 : ;-Ԋ$ -!.D02<F- -0L -!܍ZP ("20 ""0sM$1g0s- ) !- -D}p)- bx !- -D- -b#03 #@""E- _-k#03qC$"#p3#"(U -@-"`f &A2;8-0143md`k [ afP )-=0 c`rMW84V+f Y-c`rMW|Lj Y-0rM B-0k -!܍ )-c +f Nd`r]Yl@&-=Hk -!܍ )-=0 ;rMV4 +f Y-c`rMW1j u-0# -" -! Y-*Y-s=WDahm+nm܍,f-a qnml k0Żj@iP S?jh +dh b=Ҕ N  9  +g *cpB[W k +g -cpB[K k   +g +cpD[; k +g .cpD[/ k +g \cpMeZh +g bcpdeZh (aqxMqnal k0Ōj@bgcpBbui B> +b^ *- p'  T- J-!W--- "e-bЍSg --]-dqx=qnm-b=Vʹ " .Xcs^ P/b`^\ZXVTRP6JHFDB@><:86420.*&$"  T & F 2 0  zxP0.j :6     p  \ZXVTRPDB@><:86420.,*(&$"     ~|zxv -l $\cM`T-w-h-`$-Vk dEg $\cpM`SF-h` 9P/ $0<HذλZ-ذڻb&ذλYذڻbذλYذλZ !> @|-VHj bcdR7-h-V6l -Z/k +ȭPc -^ l $\cM`RM-h-`#03 #@ O-V0L F.n,09`03#9[l ȭ< "FAp20:$ P2 :Hb!-<4m-F-<>nbna쉀-h-V0-h-`#03qC$"#p3#b#$@"&-V0iL .n:x-h ("200 C" D-V=<b;|=F2c =FڽH " "X b bc 323 " #"-4A.H-؍bh -h " .X=@j.H-h%b|h-h-jaqxnm,Z> h7 d`f\|ah-qnh!-1=2MlP,^@o K & T 0  & q/ByD (E %J ^ێ׎ Q/"""P2#b8k Q-q=d] Sb,( b,Z k Q-q=d] Q.D>LA$b> k Q-q=d] Qbwk +bi !r*j +Z0g Q-q=dpQl hb[,>e\-!b0<QbD,k b # êq)"#p)iڢb#q9#@b , 0ڒQ-q=d] Rx4-!b0<b>he@qxManl k0Ż-2jңii@D@ dC2iCɉBi):2+dBC=SiTSi121ñ)͍8j#(j"( (g "jgPc`HiQR`agP (j(iah-فnd-"F -z-y-2Hڳc33BL42LB@42P"F-t!z,#=3Hj2*] o D ER*'h i!Q:#!傴 F* #!02b#2 *>Dd *+ *,!#=3H#2B43"2 . >(A-!b:  *>|d8,=t#l -z -j "j:PMyQQ =#FɁ߈ nm-">ca ١n,l =.  " 0@Dt 0.ʾ)-ʍ2Żj bcC W Ub=$b-2 -, -0^$ ->_q4$ -!܍Gy-5- --0H,7-8,--06(3Mԍ#= -!܍w-( --.-063Mԍ# -!ܤ!ɡߨ-5anl k0Żj@ŪiPřYň( h)" -!܍V-2F12F3BD4g "H0'H 'D-2F1L)cMTL53#4F3DH4 #" . >(A-2F3"Hg#!"bmc`3@&'}q܍'@f,gPb2i e 'jc`dPe:ah]ّnml !ͽ+28͢4:i " @eP,;2*;)4,=3#aɑߘnml-lܤ$ܤ"ܤ!-28"42 " ^aفn-"-Ȥ!*$=#Ȓ#3 p)C,$C4$ &B1b@p)͍(, " ](8(803e4 (4-28pIkC",)1 H) )001eQUh " cdM " cdYGc " ^% -24<24123*Mȴ$j2wŪ =#Ɂ߈ فn,(l ͽ+>=$&+3 +۔ a$+";#$Xͽݱ܍*y-;,#9--0 3VQpC0B$4 PC B.ޔ  " ;.ͽ+82-.*-ͫ43 "e--$B5 i -B. h NcdeF C+3y-"1-! (*$=#"0-p-p2;9==01i "0IP6U*q=#j Ū = #-!܍Ɂ߈5١nml -Ͳ,V;0 ,c@ DpT0S4D PT S"PA ',+ȭc1bA U;VK@Z?xb=3PVQpC0B$4 PC B aɡߨan0-l0k@Ż']YŪ|bpu bpX 0B1i0 *ލ-2۔5 !ܤ  -!ܤ!-2ې1234#Ȃp-0("#W-%(&b/f b1&qpx-Ô  -!ܤ!oah]nma nma nm "Oa ٱnaP, < "x0- "|1- "2- "3- "4- "*- kcNP b%1\ ,\oA292Xɱ߸ nmG, !0#FR,0#  "H2@4FQ"0#  " (-  ("20"""0#  0#  "? !0# a anal ؠͪ bcЍwT I @ ; y '  lb2 utb03 B(b03 @ (--Sa h -W:$%(i a i y-cp@-(' f Fc`IbpM-p(Mb*k + i dc@D ݢ Xahnml -"2f1 "d , ,aan-"` Vl ,o  u⎠/m L"""P2#f~|xrx " ! -"d>] " +-"f! " D0# -"d 0[(0# -! ,"b-! *"T-! ."F-"dH 2Z(0#  " -n "ؔ rq-"d% cpZ(0 3#"@$C&]nE#&-"f!%0#  0# "-"b Vo /l ?"""P2#Bj.dF$0 3# "^( " !#5"0# ,#0# %!0 3#@D !Ck -"b>|\!0 3#@D !Ck -"f# "^--"d{ cZ(0 3!#ACYE,!--2f35"dW }f bpc`V0mpb`cp@PV\b`>p؍ b`>H؅ b`>h}  --Ô }gbb` j ZbP]p$e -]`e -0dPXi )3'f# b`>\\~,o      !>8@+ *cFsPX,o    )L)d)4 !>8@3 p wR'0# S'0# iT-"d>P[ -"`>[ah ٱnal bf ^k  !-"^!-c 3bQ-<ɱ߸an,-b=4Ƚ,bcdp+<-=0@D4 =< E\u "ޔ q " "\,qs " .L=ƍ\<  ) }P/8FD j ( ^$"j,* + N }yuk.TY]ᎠY/AK"""ǶP2#~|zxvtrp~|Hhfdr-Ƥ0gD0-Ƥ1^D'-!܍V-: ! -4-083@GT->%-,4k bR$% 'b-.!°û+b A"-+b +-4-.(-+"!l "> f-, ^-(x U-&UȔ#-%$G-(w6-1#/=2# /= "e/- P,U8-Ƚ b=,pvcP,VC ڝ(b! 5-@2<20bP<@ew -, B-+=ƍ8 " * ("20 "2l9=2p=(($cN,Pb Yt-.Y x-4 8"=@Q "@2=+Q"-( " ;- " \,-l \,-c bL?bH>`-083@T " bH&`bLJ "r2tB442{-0# -+0 3#-(!#-03 8#-֍-!-ƍ2X-.c FDD<m4b>-."\,-.c 3bF-.G -86Fؠʪ  " -->l/--4r-*bp-" k A@+-!->b-,b`(39-b`)48  bp(-,*-.03e2y-2 =. =,3@D 4ACL!h },s "q2733p"#r cp3@D 4ACH! -@#$ ߔ-,#03 #A2;y- pqip ---!܍ " % - pwI' -RopP/ "d-!ܤ"T-!,-! "ٔ  "Ĕ D-!/ "> : "^(4-,(_8 -*+( }q-*hqg $cpg4-!ܱ*g $cpY4-!/ "^(-,("8 -* (-!ܤ$-!ܤ# }q-*thqg !cp4v-!ܱ*g !cp4h-!+!b--!܍V-!+!P--!ܤ C!>4@Ip9 "Q20 =1@"m( " #-!/ "?  -*>DV|-! "g @"Q74-" % " - "^*  -*T001="yM_]I-*="-!+ -.-,-!j E< -8 "]-ʢ,ܒ,h YA,l ,E -4n},bp=8-dp'@'\(,) E  Ù,ܩ,h -8cAخ]) D ܲ M-:"d-!-8| X-.N0$o   2 9-! "0,l -! "0l -! "0l -!-.Xl ,k -4cA<X,k -:#X,l +l -4c@-6+* i Fc@< " B -.0 3-#-,#, P, V, ,-: " 4#03q+"#p+ڲb -.bl -."03 #pb`P F€ 4È(-i 8uz-0!bcM4y]b7P (&(>h VR8@D8 -4sc F03 ><> P, U, , F03 =<' P, U, , F03 =<-4j .$=ƍL " .L=Ƥ@Tah5١nml b! #$ !-2M>ڲVbj " .0dP[G j bc@aɡߨفnl k0Ż " . -!, ("26<;@D 4=CMO3P"x2  "ߔ ذʻ 0bM--͝9Z$ "^,)M/ " )P" $-ʢR+=Ȥ@e?*4-2M; ;2M?7%ͭ*M,*M*VC$c͍dS? " bcJJS-2P01;"N@]ȍo =#N "0ͭ:P#!=ȴ# =bNB,A2:4 "  *V>Q? -"V>\Q4 .@}(+L0:8Kf< --=3P#-ȱ+=ȍMɁ߈-qn-"P0# n-"X-Ɖ)͝ډXpwq'("#p7#"cF l q'("#p7#R")X͝)Xc #@D $@"$ b0 dk czj " )V>Pbc  0#=#F-2PBF42Pqx qnl " . -!,o*|P/-"V$cM4k +L( "G20  R"M0A292-͒P0g "Nc@WFnA bKc 9cbL~ͭ*V$1MF4k ͚P0*Nc@ZFn bKc 9cbLR "G20R"L0A292ͭ*M+_!*H "^)+i)Vh$O9P01j )N0dYFm )I r " l*0PL,eͭ*V=$4L4k ͚P0*Nc@ZFm bK*c2c bK: =쉀6#N "0=CP$!  êpJ$ #V>HOI 0*-j "N:ZJPl} !>8@Íqx١nmͽ+M-+M+X4l  ݱܤ 4ͽN+03 : ګVbcu " b0011103 6KP[JBy!+Haɡߨ ١nml bs2L k bKA2:2baɡߨn0-1=-쉀!jbGq=1pM01bpbg l -nml  -"daٱnml k0Ż -2Z12Z-Xaɱ߸-ٱnml -Z,Fo     0b 221?'b0$!!!b !b=1܍ b aɱ߸nml P, Q ,P,aفnml  (ê*PP$0J 0# D*6( "ؔ  (ê*8,$cJ 03!# Ù)"" * "*l-*p-,ȭcN4eb$2J ")& "> .@$1J 0#  "2"2& "^,.($1Jp 0# 0 " 0# 0 "P2003 D 2 "^( " 0# " 0# "%0# 0 3"#2# " "\bW "^, <"cЍK ">   êP*I P*1J( aɁ߈ّnml ,H k +Hfj FbJ > "  8bI bH-03# bI[A29bIRA29b4JG+1J@+2J9aɑߘqnm°û.c j + cv.` êA:  Ù.).c € È"(.8c #(p(w')$.E: $( "j "P:7.c l (c(.7 l +c'6,'$.Pc °ûj bc.0 l +c.D1| l +c "C20 P" , " D4 "<4.p0P =#h#!Cp R,?0# S,60 3#!%,!#"* ޲ 8- ܲ D/* "P2;(&, 0# , L"P20 (0# . 0# . "P20 (0# * 0# * :f0 " E U$aqx nm-"h "l "F< "f :$  " . Ka ٱnmh-= l b!܍.$ "p .8°û+ "b03\#-j.(cGW+( bb!܍g -jaɱ߸-فnl k0Ż  0êP*E4-+ȝh bc -bЍ+-0h P:@pehcP*Fab\Ɂ߈-ّnal ibb1 cnk  " - ޲ 6P-!- cd. !--Dɑߘّnml k0j@Ū,>I*i bcBt .Caɑߘ=nml b>Aa١nml " 8-@<13k0Ż2  :3 8@.a-kŻb0 83@Q̥aɡߨّnml bAo  7b k jbj Ai ) b k bM=CASi bcdpaɑߘٱnl0-1= =C؟I!@D-$ #>>M(-">> l ! b=3>=1܍olɱ߸-فnda%°(û+0$!--x"F Mzi b;+0h bcK+ ! " 0@Dt5l#--x! ?H"=_Ɂ߈ 'anl k0ŻMn " +n D-"b@(:b03 .<-n j " % #bg b= e4101`1af bp03 6d`]";`H) " "beg b f b e40010-bpc`pM]": }Pgjb`c,-cXb`w=mnb`*P9-h '"ܔ  " c " &"03Ĵ#؀ΈZ -!=P3f2ⴢ C "@1;q}!mPVfWVf&i-03 =drFib=,b03 \< "@&i'&i&f'&f} "FAp207t$ P2 7b^ (-d@1-p(w7=KZ\-2' (-'$mPVid bP7g@)0-bpp=d*=&i!&i&f!O&fr-03@#!d0g@ڢ8=Pfpsf'g w32mmb`'$]Pd %i= 0M)ge p-cPrM)]P%f!%fp&rM$0&%i!%i'g qw' }P'"ܔ b " \-n#03 #"`tf6P#JP(U%251# @dpb g b66,mP&jf c``(fF1.Li bcp,-! bx F162CD0bT ) -P"jӭi b03 .r'=- "Z2,=@2=&52Q2=$`!b 8"=@Q7 b 82g"b1X-=--`L'cTt ("2@LGe@UTU@ Dp_!52>"5" $ep-h"g P Ur%'2%'& L5d0DCD03 4QCB!CRC$"# ("A200 3LCA B@XRErC"$2# "  "^+S " "Fwx"-- -$--%$g 'f bc`e "--g bR=017f003 Me`6 " -n-h "z2>=0:2@(DATP LRQD4:2 "@212- X-0# 4 -ƍw<0# 4 ---b#03 #@"( MbX8<-bY b>Bb̔ *-+b4g |-cp] "(.-0--"(0(3g03G_PD-,!- "X " pq}-:L01=-!g Ap"cphT "2*=""c\- .0"(b:4g (cp|M_Od- -g bcp|p wt':- "q2;=`1b0b'Z7d'7"04l "X&9 %c`$,g &c`$,g 'c`$,g (c`$,g %8$,g &8$,g '8$y,g "r242[2#=0+2- -!܍- "r2tB442 "0!03 # ->0A "0"03 # ->xAn "0"03 # "+ .m;y( " 0Qp w't7a5'03 ae-03 8# - =:!d p w'="/z-4'{-0# S-+' " R}bp/bp4->0 3"#~-:#}-2#L#!#\-0 3*#-&#-$!#/Iah-5فn\a-l0k@Ż- %-0A"%10=b03 !=#-"ܔ bcЍxb#03 #@  S-2ٟ>ؐʙb92k)"-! "p -! "cq-s=# T " sq-⢱*9qMCDh - c\9 " *b#03 #"03Ĵ#q-03Z# -! "ઍ!= #-!b Ɂ߈=)ّnl jbz͝)hbx )D -2e0 "f@2=2b"k +$ "#P" b"#P".+@" d\c3N4 # " &.$, *(b<.| $+8`!>;#b#03pC$j0=Hpb#q:#" : .<(- (-X-)-b#03 #@ \lP/" 2X-S0J'-X-=8@'- "B-  -VDj ڝb-h b  i X-cdeH'--j b  BX-c3'-P-!j B"cx-NXj X-c'--=E-  '-ȭݡܤ 0ݡܤ!0b">#P20  2 ڭb6,,bM<(--6,j b @ 0 1j X-dFL'-ȭݡܤ 1jTݡ܍G4f- A-ȭcb5, X- b<(--d"j X-cl'--0B3M4t-!܍4"b  =333BX-@'- '-.07)hW-c3N4 #0NK4Ɂ߈,anml-=-"h0B3dЍ4palaah-ٱnl b5Ho 0-21Bbp"bk 5* Bt-21Bbpɱ߸١nml kb-! j bkk bc@aɡߨnl0-1=-"h)%0B3M3-nml -21B,panl-=-! B"=-ٱnml b~c01k "cdPBU3aɱ߸anml bk 4I(01i0 bm k bG b_ $j bN J bj-b '#-bh -"200dCPU E@DE1"22bU, +*b z " b g pb5,70f b0cMe`$aah١nml kb j bΜk bc-aɡߨ١nml k0.A b< .(6 ȭbc b) 5  .aɡߨ-فn|l k0Żj@Ū. V+>#P1-p=>32 E.=v@ȍ 8 " h .c .E.I-v0bx->=p#!->ܾɁ߈=!anml k0Żj@ŪiPřCb>5$p|wp'R !.p'0@(p'. .b0r-.t,$.!.p~ܾޮbf  b`vcbpdp,aah]nm.` .h03|# .lsa nm.0 P3C $ r#l0>L Zh2,.!."c 223@D XlC0!<"<$<#!>#6 l i! a nm " .$-.~ )7 3.~  .>0A P"W2N~e@RTUr"%"2 .~a ١nml " +.,,ZK(z ).: .D.:N 2 P"2B4 j p">8JZg~0* P"21(23d0BCDp"j$.< *.:!*" nk "F$ "* " `.< .8#*$.:aɡߨ١nm.  .(>@A,_.c 223 " Pk#.ޔ ܮP+.Q+. " 4.4, +Yy )2 .p .܍$.T ,$1 baɡߨ nm.N a nm-. 1 anm-=a-nmФ ..0# `.a ٱnmd° Pû& "+b:gc2++:g[0+ "& d ,.aɱ߸ ٱnml k0b03#b0b,aɱ߸-anl k0Żj@Ū "d 7,c 322}gdecp%];d0DCBcFq3mpF4f b0701- 7Xd`]b","}7d#p" 2f a7Xd`W 'Xb","}7d#p""f %7Xd`W'Xb"+"}7d#q"dDLB4p3#ef 7Xd`wep-c *f Dd`  "jrfpa}~bpm6X@Djp&X-2V12Vc3;2Bd4g@qCc3<27p3CADg H7X! b","=3d#pݽh ,b"("=3d g2*f Ic`!,p' IT7! q'-ؐ "d *g Fcp!ah=an!-"#=c 322-"d#p" ȰȰ؀--=2=-c 322}'dfpg#p'q7#&y- 6XMVi )f Dc`TGq'28VUh p'  .p'28)If b=e03Xd`Ui *8Vj ):f D=c`Mq' f b=e03Xd`Uci )qf Dc`TG-=#!r-±* # ah-ّnal k0Ż #-+<0-2j0 b"*"y=3di2-!#-q9pI4 "!#-p-鐡-Hɑߘ-anal k0Żj@Ū,;h0ň }MA܍ *g Fcp L%b"+"}}7d#q"dDLB4p3X,c22 *qg bcdpe& ;b"+"}}7d#"dDLB4p31,c2<2 "qbc #7'Xqc13*g bdpyꔅ :b"+"}}7d#q"dDLB4y3,c2<2 "qbcL #7'Xqb!":g0cdp>}}qbc% qbc  *g Fcp }-"ds" ȐȐb!%-"c 322}}'dfpg#6$$-e q'0-b6XpMV(#-c DTMq'p7#  ȐȐȐp'~f b}]5Xd`fPU(#-c DTGa} 73ZbdP0]T-"X#6&Xabp!"cpMXah=ٱnml k0 c3<2MDd4p3eU[REpD4!-aɱ߸-ٱnml k0-"dc3<22pC0BqC1BrC2BdDKBBpT0SqT1SrT2Sp204q214r224aɱ߸-anH@l k0ŻM]ʭŪp'}b@"\2Sr-鐁}sbp"'"w=#q"s3DDrrb4g #cpM(--!ܤ!=[M"b4(-03d0 c #M(--!ܤ!=[M  -!ܱ)Mp- [-!}bpc"Pp'*- )-p(w')7Z-6d,f "2d` kb`s"0-b`p=AQ75$f '7d` !6<,g "2dp :!6.,g "2dp {bpr"f bpc`AQ6$0(3g #3dp Z-6,g "2dp .TQD@p w7:H 0' "0 - )g Fcp( 0@Y8-!'-- ) Nw-=La0ah.qnl k0Ż4J͝,@| ͍(bc 322(dgh#bcH4'j$(%-ijÐqx-ٱnml k0bcA| .} " dy[*aɱ߸-nm-aّnml k0,j 5ki bN5 ;j bdaɑߘ-ّnml k0bj ~# e.| );. @ "  . >@ " j cr .|b'.~c ;. @ êp* . >@ "x !p:D " j !c7 ,$>#p20;q21;r22;s23;aɡߨ-ّnml ^"21 2#Ųj .j +>h0 'c ;. @ "  . >l@u " i cܮjb$>l#p<02q<12r<22s<32!.haɑߘnm.X (>Z;.@; "  .>\@+ " l ca ٱnml P, }8.{C P/n84V(d|*8v4~ vB,,Op!B{ | .{[S,) p p.`{JU,|cB,gB,)W,| ,OoR, .{"R,|, .{S,|, .`{T,|.zL,|K,"03 #p.z.čzJ,*.@z.xzB,R, |H ,zS,|=T, ,zT,|/s, .(zW,| B,q,{ B,R,|B,F  .zg.z`.؍zY !>8@$R,o )zZb.z<q,uUB,YB/ R"""#P2# &rT,{.zR,{?.(zT,{.y, Ndn.yR,{r.yT,{f .pyR,{ZF, .py.ԍyR,{C LyR,{6 :yG, .yB,.hyT,{.\yq,z .(ywU,z ,yBk l m  "-s,z wV,n N,!n.4yHf.y@^, MmR!>8@$GB,K.0yR,z.\yS,z.(yT,zB,J, .xT,.Tq, .PB, .hx.Tzc.\x.Pz. .(xR,zL ,xBn   # 6M. xS,& mR.Hxr,y S,*JXm<.Hxr,y  LxS,y.Hxgr,y !>8@$uB,yB, S,*Xl R,&| lL, U.x/L,yHB,LD,ydS, ,x+S,y.(x E,y#B,'.0wR,y.(wr,yK .pwM,yiL, .wN, .0wB,R, .0wR,yA w.Ѝwr,y S, .ȍwS,y".wM,y.pwL,y N, .wvB,R,x.wdr,x .ȍwYs,x .(wNS,xgB,kL,-Ĥ![ ,wIb",Q" x-ĴD鐱.wS,x w&R, k.wHx*P/&&<N|NFt.ԍvU,xa.vU,xT.XvU,xG.vV,x<.v, x .vU,x#.v.0v.Pv.(vyU,x.Pvl.(vfU,w.ЍvYs,w .vNU,wg.XvA.0v;U,w.(v0V,wI.v#.0vU,w6.@v.0v U,w#.(u.(uU,w~.du, wG .u.uU,w].uV,wR. us,w .|uU,w:.us,w .|uU,w".us,v !>8@L$B,B,   R, .udR,jB/L"""-JP2# >(^.Pu8S,vJ, w.Hu*,Ev ?u0.hu,Evm ,E ,ED .8t.Ht ,F;k .tb# i.t,E&Xis.tJ, d.@tr,v .Lts,u .PtS,v.PtS,v H, .|tu.tmr,u .t`S,uV, w.PtQV,uj!>8@$`B,eR, uS, tBS,uC, t3V,u"C,  .pt V,us, .ss,uY r, .(sU,utB, aɱ߸nml )s ,c 323b>"8=ĤF C2-čs)s a١nml k  $  Rsb$"ub"k.j +sk+saɡߨّnml >$. " 1k  êp*>8ȝbc*p*cp* p*>(p* !ޮ<ܮ> R/ .8c@P   .@ ܢ ^ "i 0dz!)aɑߘnm.>.܍;.܍/ ..' .a nm Pr,< JVp,<JV ",&,a ١nml k0Ż,>ȴ#  êp*2R0*S.ȱ,c 323 " # aɡߨ-nm. rk.m .r_B.>4@q'a naФ.- %--"-.B0-! :,"c.3@=c.3A=c.#B- "  r5-c -.:!.:,p=#l .BH nm.g " "  q.d# .d.&!.&.$ %tbv "  qb .&!.& .$..  .W, O.T.d.X.h.\.l.`.pa nmФ .?a nmЍ. a ١nm.:D ,F ).<>' .:F .;ʾ@ .83>;0d>:ܾ<.>.D.@l .  ,j yc!. b,.+ܮ( }.*..,ޮ/c+ܮ= aɡߨ ١nal -0 3VQpC0B$4 PC B - (ê*2-*=-,c 323 " #"DvA* *| $: )-"03B )-b!"0-03 13k0Ż32 3 ("A20 "| +c 323 " #R"1-+c 323 " #Q"1--W)-p-ђY-\ɡߨّnal k0j@i "FAp209$ P2 9 --\!,A'-01 "e-bЍ\ɑߘ=nml b  $ "  "03BZ bc3<3@D 4Q3@DBaٱnml b  w5 "  ("2|0 k "; $03B  bc3<3@D 4R3@DBGaɱ߸ّnal b!  *f " I ("2>B@4 4 2|0 A" b(Ù9؍ k )0 !Y) b0 3VQpC0B$4 PC B -' 0-)=-bЍk +b","03 #R2Q"#c b@D\ɑߘٱnml , <bb. ]. b=Ǎ.h k K,-.M-ǔ :, T,  p, W,  .b_.(.#.q,.J,.ܾ K<<!. K<:!..!.+ aɱ߸فnml k0j@iPř.d . ,,cdȍe0 .@(  . .ܾޞܮO.aɁ߈Mqnl k0j@iPř.T S ,},0qcde1, h @' ;b0 3VQpC0B$4 PC B'b'c 2=231=$21-bЍ. . .ܾܮޞ܎(dqxM١nml .@ 4.B fbȭc3 k @* -.w ~.vbG].x|ܾt.H!.H+ aɡߨٱnml ., -.. bȽc3 .`@+ $.c T.bda.4!.4.` aɱ߸ٱnml . -. bȽc1O .P@+ *.S 7.RT".$!.$.P aɱ߸١nml k0Ż. 1. bcȭd1h .@@*  .C .BD޾F.!..@ aɡߨ-ّnml k0Żj@Ū. I. P4ܾ6b";Jȝe1 .0@) $ .3.4  .2 .2.6ޮTAj-(&D.!.쉀) ah!١nml k0Ż.t ;.v #+j bcȭd/ .@* .. b. .޾," .X.|!.|. aɡߨ-١nml k0.d 8.f  . . .b>H+ b!j "$  :d03e>D %j@Ūaɡߨ-فnml k0Ż,;j@?i .T .! . `.)h dcdaɁ߈=nml ,(̡baّnml k0Żj@.D b.F 6+ , ;J G,0d42!.{ .z|ܾ~ܞݮ-0 3VQpC0B$4 PC Bݭ-=(.xG+i .xc5U .x aɑߘ=ّnml k0Żj@, ;Jsi dcd b;daɑߘ=qnml ,k0 2;V 6ȭ,0ȝcȍd}ep, P)8G@Z-0 3VQpC0B$4 PC Bݽ-aqx-ّnml k0Żj@Ū. D. 5+ b4 ..+ .*,ܾ.ޮ-," .0*i bcM-.(d+i .(c4r.( aɑߘ=١nml k0Żj@Ū+ C.(!.""c.޳c.c.2ޣ.{ .$ . .ڔ ..޾ .ޮ.  aɡߨ=anml k0Żj@ŪiPřp.Ȕ A.ʔ x!.+ * )F ܾܮܞݎ`n g)mc`4U pvp+0dp2Waah]ّnml k0Żj@ŪiP,;J0PaɑߘMnml . .  .ޤ .܍Sa١nml k0Żj@. ,#. + #.ܾԤ ..ݮ.Ѝaɡߨ=فnml k0Żj@ŪiPřp. (. + * )b .ܾܮܞݎȤ .aɁ߈]qnml k0Żj@ŪiPř)"C03 #p"$J 0!,;J1g@@ep g dcp@Haqx]an-l0MkPŻYŪ[řxy}.l c.n  -+ w-0!1234q-5!*9f C-=c`Mv], $ ( -P(.* )-Ô K-.C-.ܮܞw-.v-.P'..t!.t. (  ( 'ahفnml k0Żj@Ū+iP0!*1!2 3!ȍ4>51<@ A6Ab01BPLP(aɁ߈Mqnml k0Żj@ŪiPp+q}0!*1!2 3!45q!<6!b01@Qaqxmفnml k0Żj@Ū+iP0!*1!2 3!ȍ4>51<6!b01BPP(aɁ߈Mفnml k0Żj@+iP0! 1!23ȍ4>51161<b00CPP(aɁ߈Mفnml k0Żj@iP+p0! 1!23!451L61b@0@QaɁ߈]١nml k0Ż,;j@@eaɡߨ=فnml k0Żj@ŪiPřp.$ /.& x+ * )I #.X .[Zܾ\ܮ^ܞdݎ`.X aɁ߈]ّn!-1=2MlPν. . .-=ȭdȝe+ .D@) cp*03## .G g.F i.FQ-.H .Jq-.P>Lq-13#  #.Gq-  j.F h.FQ-.H .Jr-.PL .G .FQ-.Hq-.Lr-.PJ.D ɑߘ]qnml k0Żj@iPřCG}. [. /.7(.6Bܾ8ܮ:ܞp ގ?03 2 .>*.>" .4 b7 $! b8 , b8T0 .4 aqxmqnml k0Żj@]CGK}.ؔ G.ڔ /.).ܾޞܮ-. .p ގ03 2 .*.! . D " !"/. aqx}nm-1>.a١nml k0Ż%. .޾ܮ.Ĕ . ޮ.Ɛ!.Ȯb " b.Ɛ!.aɡߨ-فnml k0Żj@Ū. h,FB!.. :E E /*h .c .. ?.D Eʞ)ܮj .D E. D.&. " 221?>ܮܾ .Y yaɁ߈=١nml k0Żj@Ū. %. &. " 221?>Τ .ܾ.ܮ֍aɡߨ=١nml k0Ż,;j00d/aɡߨ-١nml k0Żj@Ū. *. x!.&. " 221?> G.ܮܾ¤ .aɡߨ=فnml k0j@ŪiPřC .). m.ݾܞܮ,ގ=aɁ߈]ّnml k0j@ŪiPř .). l.ݾܞ,ܮ MaɑߘMٱnml k0 . . .,ݾ$aɱ߸-qnml k0j@ŪiPQň|bpc . .܎ .ܮݞbp * aqx]anml k0j@ŪiPQň,c`nt .w*܎x2g v .v~zݞ| .vb1 .zݞ|,Tb1aah]anml k0j@ŪiPQňS}wlb`c- .X .[ .Z~\ܮ^ݞ`܎db` Saahmqnml k0j@ŪiPřz܎Hbp3!,c .KݎPܞL .Jbp5.N).K .JݾLPܞRܮT,aqxMّnml k0j@iPř .0).3 k.28ݾ4ܞ:,ݮ<aɑߘMٱnhl k02M,3]cq .' n.&-0!r-s=tMPVU9ɱ߸mnml >F-26 >0 #2&.=CB#Cnanml .ڔ $.  ..!.b; E " .(_ ,$ aٱnml k0Ż. b3  .̤$. {.ܾҍaɱ߸-nm. yH+.!."M!. . " .^ a ١nml k0j@Ū.V 2 .$. |.ݾ .ݾsaɡߨ=nml ,. .|0}>~.Qaٱnml .B s0>r. .R1>..".$.&.( !, ,.*3F=G1,>.La nm " >Ua ٱnml (].(]H .^żb](].]0 .^b]aɱ߸nml . . .0>.. a١nml k0Żj@Ū . . .ܮ .ܾaɡߨ=فnml k0Żj@iPSňb . . .ܾ#.܎ݞaɁ߈mفnml k0Żj@ŪiPpba . .ڤ .ܾޤ'.ܮܞpaɁ߈]فnml k0Żj@ŪiPřQň . .Τ .ܾ*'ޮԔ+ ,ܞ܎֔܎؍,aɁ߈]qnml k0Żj@iPřQňS}wbܾʤ(.~܎ܞЍaqxmفnml k0Żj@iPřpbܾ).b02b0.ܞaɁ߈]١nml k0Żj@Ū . . .ܾ-.ܮaɡߨ=١nml k0Żj@Ū . .ܾ .$.ܮkaɡߨ=ٱnml k0 . . .ݾGaɱ߸-فnml k0Żj@ŪiPQň . . .ܮ /.*.܎ݞ aɁ߈]فnml k0j@iPřC  . . . .ܞݾݮaɁ߈]ّnml k0Żj@ŪiPř . .ܾ ...ܮܞaɑߘM١nml k0Żj@Ū . .~ .|ܾޮwaɡߨ=ٱnml k0Ż .w .v .t.!..~ܾ|Jaɱ߸-nml .o .n..x .v.lt#.!.aqnml k0Żj@iPř,Cg cpN< # .g .f .dhܞjܾl.n.o .oݮpaqx]qnml k0Żj@iPřCG} .[ .Z\ܞ^ݮd .X.`޾bp .c.c(.c .c).caqxmفnml k0Żj@ŪiPřQň .S .R .PTܾZܮVܞ\܎XaaɁ߈]nml .K .J .HP@aٱn0-1= " `-Ԥq-!pMbk p-Գlɱ߸-١nl 1=2M " .X ,c 223 " P#"-EMb","03 P#$ڲb"+"03 Xj2F*  r-!qMbpb"+"03 X#ڲɡߨ=anXa-=M03 @D4B=e@RTU@D XhEQx)}Rh0*(me .`Xh -Y.tX\ bpY.DXQ b`Y/,ڭ-⢐Ū.:h .c@;O- .čX) .Y.0X *.O=0 "Y,.0:.b",">#Ȃ-,"cP(i b">#D.B;5O- .W .YU).O- .0W .YB.8W bY7,.2:.c34.@n  }lb",">#2-r-P20 M3N4A3202PRUE@DBBC-B`   Cr  r= #O- .WN r-ۓ$,, r=## r=PCD^E$P335#r-CiP/<  "^r-P"k " b">#A20@282+1#k ⳉr-R" ">#A212r-B29W"">#A212r-R"">#A212r-S" ">#A212r-L"1-!b"r=#Q" ">#A212q-r-BH y g R" "'r-B/m"""jP2# .r-T"">#A21V2r-T"">#A21K2r-T"">#A21@2r-R23N4ASQSR234@CICB` r-2SBD^E@D42S""%2r-S23N4ASQST"  "$A212r-R23N4ASQS29R""$@292r-R23N4ACACB/  +lP/:8642 h  g i j r-29R"">#@292-!ܤ#rc( R(">#A212r-R23N4ASQSS234ASQSB2z23@S""$@BCoB-!ܤ"rc( `R(">#ABABS("#A21R2r-R23N4ASQSS234ASQSV""$A21;2r-R23N4ASQSR""$@29*2r-R20 3N4ASQSR""$@292r-S" ">#A21 2!>P@j!1  h2C( ,P( ">g2('('Cx  V(">#0-8282-!Mbpq-Ȑah=*ٱnml k0 -V;3N4A3]U`5V;34@35V;34#V;34#52P;2 B+ +B+c.#++'ˤ ++! -P+ V+ +-"`22B+ +B+c.#7+-aɱ߸-nml ̤ <3N4A31!anml ̱,">#A"a١nml ̱j.A+ %.(T bU T%b.8>lAR,A+!+ " .HS bUt. S A+UiA+ bzaɡߨ١nml ̱j.,A+!+ " .S bU4.S A+U)aɡߨnml ̱,">#A"221?b0anml ̤ <3N4@CH!anml ̤ <3N4@CI!anm 2.0K>06..26.a ّnm  8ê& Ù)8)<0x9:0<9>0(9@0 :050))<25<))::59))>25=))@<5:)*85;) ]251) ]252)ܹBܹJܹDܹLܹFܹHܹN ]|"1*l c2C$aɑߘ ١nml .tR°û+BT /R+8S ,j S".Rc+DS /Rm+:S bS.4RF+FS /RP+@S bR.TR)+HS /R3 " 8S bRaɡߨnmp,<8@5Sy,<:J5Kz,<@L5C{,03 8H59q,0]B51r,0]B5)a nml ̱,c 222 "#Q"anml ̱,c 222 "#q"anml ̱,c 222 "#@"aٱnml ̱b"+"03#T" .>$AP. bF3b","03pC$T"3N#"aɱ߸nml ̱,!0#2anml ̱,03CN$"|3#P"anm "2J"N#"a ٱnml k0,c 222 "#1aɱ߸-ٱnml ̱,c 222 "pB4T30(2JB<4 k |">K H8P10( "2B12B3d0BCBp"h$!Ȥ 1(($((3( %(b"03qC$PB%H3B 2 "&aɁ߈-nml ̱,c 222 "#s"a١nml k0Ż,c 222 "pB4q;2#s" '-    -03.Ե-03eԪ-2Ԣ-c2<2@DpT53#*޳c243#aɡߨ-nml ̱,c 222 "#"anml b"""a١nl 1=2M ".-Ф! $b"03|C$Pb"*"p3#" r-!qMbp-дɡߨ=n0-1= ".-ؤ! q-!pMb"03#P"p-ش-n0-1= ".-ؤ! q-!pM "2,"p-ش-nml ̱,c 223 "#P"aٱnml ̱b"+"03#R" .>$AL bBb","03#R"aɱ߸nml ̱,c 223 "#R"22?b0aٱnml ̱,c 223 "yB4R30(2LB>4 k }">K>R/}=+ "2L12LdBLDyRE"433}"# aɱ߸nm "0a nml ̱,"03#P"anml ̱,c 223 "#Q"aّnml ̱,0]j0Ūb"03#Pb"+"03i2P)9bT "2DB:4 i y"> I:Z.9) "2D12DCe@RTUyi ɤP!YY"YeUr"%PR$Y 2b@aɑߘّnml ̱,0]Cj0Ūb"03#Pb"+"03i2P)bTbaɑߘٱnml k0Ż ,c 223 "#F282b","03#F282aɱ߸-nml ̱,c 223 "#F292anml ̤ H@\-a :( "2F12F3d0DCBz"h$ !1p$xbi bbaqx=فnml k0j@ "*- b")"03 h2q(Q($-ꐑ.>AIaɁ߈=١nh0-1= ]X"=! "*-x b","03 k2q-!pP+Q;qKT[p -xɡߨ-فnml bk f ,bQj b i b`h b=CAͳce bdp aɁ߈ٱn0-1= "*-Ԥ! b","03 k2q-!p]P+Q;qKp-Դɱ߸-١nl 1=2M "*-Ф b"+"03 j2Q* r-!qMP*q:p-г搱ɡߨ=nma ١nm "2H 8L4 ck {"j0>dX+;+r,!qLp "2H12HCe@C{"l$ < 1,=bPaɡߨ nml ̱,#03#q"/!anml ̱,#03#q"  aّnml k0b#03i21Paɑߘ-١nml k0,#03#PKC4PC B q" 1#b#03#q" dC41#aɡߨ-١nml k0 ! "*P aɡߨ-١nl 1=2Mr-!qMbj p "*Pɡߨ=١nml ̱,k j j "+Pbaɡߨ١nml k0Ż,  , bbaɡߨ-nml ۃaّnal k0Żbi bcj " b !-b"I!-Q-Dɑߘ-١nal k "FAp20;$ P2 ;żb0-&j b 1-b4l-bЍ]Xɡߨ١nal k "FAp20;$ P2 ;żb0-&j b 1-b41-bЍXɡߨ١nal k0j@Ūb0 3VQpC0B$4 PC B' -1bЍXɡߨ=anml k0Żj@Ū+!,]%&$,;  $x W,f c`;,$g F,cmd` Oh ! bi -ab"g0Ų)c@Demi b!g bp" i bp(i )aahManal k0Żj@Ū; ("D2=;"12 ("D2:'"1# ",*b,dfe`0p&bc i bcg !B$ 2bp54i km "FAp206d$ P2 6/ (-bp!5- "--- Di m "FAp206d$ P2 6bp 8h 4-.f b85-b`4(- ( --E i -ך i )xah=فn0-1=2MlPj  bآk +b!C ;h b0c@DeIk b pi  b k b k +Ɂ߈Mnal u-g   ! a  z ,- A  Z , -!>@[C-8ٱnml -"h ͽ+h!+hݱb;h;#iaɱ߸n-2dBb40 2f,d<9,f-2d12d ٱnͽݱ܍ ;f-!l ݱ܍ --"f_ =d0BCD$"--!܍-"f0 9-"f_ ֔ -"--ɱ߸ ّnml k0Ż,+=3j#!ܱͭ,ݡܤ:"KADi0c@*!)0"aɑߘ-nmh܍*,f: ܍O -j!-jb!-"0a qnl }q܍,8 h (i 'f:(-!܍ j *9j2-"f: *9h0ₐ -!܍h , ,*!821=k Ż"# +912 +<8=1܍r+=Ĵ#k Żqx١n`!-l0k@Ż']2"=wӱ+ -x-tQ-8&!-r-!܍\ -v%-t=r#ȭݡ-vݡ܍? -!܍5 v c  O% C =P a OZn *p r v M-!-vZ-!ܱ,P-!ܱ+F-!܍= -w-!܍ 1!-w-!܍ %"-w-!܍ ȭݡ %ݡ-vݡ܍ -t!=r#O-x8ɡߨMqnml b#(">gh2 " !.4CAbpD.C6.C0P(DP(-">g2,P7# .(>AA '>ܐ1>!7Dc3أʪ4 k *k c 322.#Q*<2  * .(>AA + Q(c3C$4 ;Q(d0CCB>4!#E(!Kʮ*k c 322.#ʢ"*<2  * .(>\AA +(".;("d0CCB>4#" " .BmE(&Dʮ*k c 322.#T*<2  * .(>@AA6 h+T(.;T(d0CCB>4$# " Q.BC&FE(,Cʮ*k c 322.#U*<2  * .(>xA@ "+U(.;U(d0CCB>4%# " .@A.!( (aqxٱnm.~ l c 322.p#Q".~.h>t# .p>NtP$#.p.h!.h"l ,c 322NpkC0!; ;aɱ߸ ١nm " .A x.V>h# .d>NhT#U.d.V!.V"l .X!.Xj>d᳤0 ;!+ " .(A] bB;,aɡߨ ّnml k0Żj@Ū+c 322.i#*" > # ,"234!92ܳ4aɑߘ=nml .A  p,Bk.,A W,B.8@ T,B~.$@ V,Bs.@ q,B? >@aٱnml ,">#P ;d0CCB>4E32!aɱ߸١nml ,"k0>#P:bd0CCB>48VQpC0B$4 PC Baɡߨ-nm.a qn-X=\03 0 j .8@Wb<5 -=XVQpC0B$4 PCF BY-">#PrO-:-d0CCB>4ECBqM8pS0TD4 PS Tq=81=2O=2=*c 322.#E2;g -\0!S'T7LGMW- V- V-">#ڲY-"#Q"!-c3"d DB-"q]%$#0G#"=45,c 322.j#E*!)r*q=#%*=#s*r=#[*">#"M$X*"#" *!=# Qʱ,˱,7 =\#l $i -cd4ib#)">j2!**=VQpC0B$4 PC B.*"0Ҥ!=\# " #.L?Mb@ .(?Ab#*">#P"@  ,c 322.#P"hqx-١nml ,"k0>X#P"c 322.Pj#E*! .>A=b0 3VQpC0B$4 PC Bb:VQpC0B$4 PC Baɡߨ-ana-X=\03 0 g .<> bp$b=XVQpC0B$4 PC BW-cЍ- p-  T- W- K-"0#1h0T-"> #ڒW-"#ڢb"c3:M Bp]U%E4#0G`(l0b"زʻ43+c 322.g#E'"'r'p=##'= #['"> #"X'"#" '" '!=# Q+ͱ+1 =\#< k {{f bcpd`fpb`#&">g2"''cФVQpC0B$4 PC B0އ"!=\# " #.P= {bp?q.,= bp#'">#P"?_$+ܾ0c 322.#P"hah-anl k0j@3] " &.L=,?* .$=b> .0=b> k,">#ڂb""9(0Gg#"=ؒʙ4)c 322.g#E'+S'">#"T'L' Q))& s=#[i yf -cpd`fpb`#&">g2+'#$.!s=# " #.d=ybp> .<= bp#'">#P"> )c 322.#P"ahManml k0j@] " &.L<,>V .$<b>" .0<b> ,"> #ڂb"-(0G#"=ؒʙ4)c 322.g#E',S'"> #"T'L' Q)). p=#i yf -cpd`fpb`#&">g2,'#$-'..%'/ܞ.!p=# " #.`<:ybp= .<<.bp#'">#P"= )ܞ0c 322.#P"aah]qnml k0j@],"p>#P(c 322.g#E'+ S' +T' *L' %M')! aqx]qnml k0b0Gj0Ūb"ؒʙ4)c 322.h#E(#r( Q))! + i g bcdpR#c382N4#2ä!+)c 322.#P"aqx-anml k0Ż,#j@0Gi0řb"؂ʈ4(c 322.xg#E'$'H' Q((" *X h xf bcpd`$cp372Nx4##É!*(c 322.x#P"aah=anl k0Żj@Ū+<2#"3]0Ggi0řb"؂ʈ4(c 322.dg#E'% ,S7#+T7#J' Q(($ s=# h "xf bcpd`t%cp372Nd4##$!s=#(c 322.d#P"ahManml k0Ż,"1j@0Gi0řb"؂ʈ4(c 322.Pg#E'& F' +G7# 0$Q((' *q h xf bcpd`&cp372NP4#.d$#܎d!*(c 322.P#P"aah=qnml ,-k00Gj0Ūb"ؒʙ4)c 322.#Q"KB4-ړc39"#L$#'=#g00G#"=آʪ4b~/΂.*c 322.g#E' T'">#"M$+ U'"#" F' t't=#u's=# Q*Ա** y=#j B zf -cpd`fpb`#&">g2S-$'%t-4's-5'Ǥ!y=#*c 322.#P2wM 4=0 g y-@"   &'V'x= #ahan0-l0k@jP03 0 g .08 P':gp-P"">#ڂ(0G=)c 322.g#E'- S'">#" Q)) >*)c 322.g#p,r7# p+s7#* *r'p<# 03ʔ0 0, 0,s'p;# 03ʔ0 0+ "0+P'p= #!*@* %%i dyf -cpd`fpb`#&">g2-'p-P"#'p,2'p+3'ybp#'">fpg2P'-@* ! " .@7 b`9X. 7 P'9M-ahMٱnml ,">#P+c 322.#E22s" "0aɱ߸فnml Nʾ+c 322NhC<ʨ"PH4 ;80 8: .( * " +( (i ) ! +*k +aɁ߈١nmĉʾ+c 322N|jC",k +aɡߨ nmФ ya ١nmĉʾ~+c 322NljC":0 ::[:0 x,k +aɡߨ qn!-1=2M^v,c 322.dk#+"-E+! . >A5wD+=# [+=3#3+*/X+ vwrs+=#q r}-͂rb p -"(*,Ʊ,qx=qnml k0Żj@Ū4ʎJ(c 322.4g#E', . >A5,US7#+T7# LG4# +T7# *2()h (aqx=ّnm ʾb#*">ij2"* (b,k +aɑߘ ١nmĉ/ʾ+c 322.j#"*** **e 03 #+M,k +aɡߨ qnml Pʾ+c 322NiCʩ"[90 >93 4,[9#+*)+&[)">#P"c 322.h#Exw xF(- ,T8#+*k +aqxفnPa-=""M>#P±,c 322.#E cБ(VQpB0C4$ PB C " /.<5-6( ,54-6X, ,54-6L, )440.  -!@D@CD-0u-- )T- t up-=j2͝-!- cd$-  ( ,c 322.#F  'K-+$ ("2"2 ,c 322.#TW-!ܱ)zOK-(W-8^ȝݑ܍q ݑ܍<\K-)H-!܍,W-8GT- Wbth bt=d5-p=2W-M)#,c 322.i#-!S)T9LIT)c 2=23LIGCS)Ɂ߈=,ٱnml k0Ż,">#B+"#2C !B+">#LB4Q"!#aɱ߸-ّnml ʾ+c 322NiCTF98*k +aɑߘّnml ,ʾ+c 322.i#ʩ")*)  ( ) +*k +aɑߘ١nml ,"k0>|#P*c 322.t#E23r"0+! aɡߨ-ٱnm.h-Ĥ! ,c 322Np4E  ,=Ĵ#l aɱ߸ nmФ .b.`.d.v.x.z.|.~ 4"0@IGa nmЍZ a ّnml ,">\#P+c 322.Tj#E ^P/$|,*  "ED*S*;F W B C X   u*! "$$* "@r   "$"aɑߘnm d.T0$ .P 2.\4.X >P#a nm.L02DS.D0@$Ia nma ٱnm. h1, d°û&+ (!,0$2++ 00+ 21+ ,'+aɱ߸ nm.\1v.1 h,2 /1,2 W.81j,2 /1p, 2 7a nmr,03 j@$p,< @q,0Ba nmЍ>a فnml k0Żj@,iPD0#h    !(b#(b"( (#" %(&(((aɁ߈Mفnml k0Żj@Ū,Di C) )m (#)+S9##) C) )V (m")*9#")aɁ߈=ّnml k0Żj@$0(3CB 31 c2 "pB4 02 "c Ùz)03 Fd2bL9e2z)*:))(03<!03#aɑߘ=qnml k0Żj@ Ùr)*2)+ȉg bcps,@D8p8CL9eaqx=ٱnml k0ŻbCaɱ߸-nml bCB"aٱnml bCk H+ I+ aɱ߸ٱnal bCk C+ +O0-S+0-p-<ɱ߸ٱnal bCek C+ +)0-+0-p-<ɱ߸nml bC>H"-aفnml k0Żj@ŪiP,p0de "%* 1m "&aɁ߈]ٱnml bBk H+ V+  U+ aɱ߸nml bB@"aٱnml bBk H+ U+ aɱ߸ٱnml bBk H+ V+ aɱ߸qn!-l0%M]νέ€ hÈ(8# pwp'>HP$<0'r(!qHp( " h- b#)"03h2,P8# Kxq rnܝ-搑 h"21 2#c 322 "h# (=8 Q=!8O=8#( g q x , /( , #/(U-&('( 4(5(.(!( ,g ' _ " h--qx}qnmXl k0bȍdg bcp@PTbg PcdpPA| b"j "10112!*c dei #)"03#H282baqx-nml "canml "caٱnml ,k0c 322 "#5aɱ߸-ٱnml ,k0c 322 "#6aɱ߸-ٱnml ,k0c 322 "#4aɱ߸-nml bc 322 "#I"anml bc 322 "#u"anml bc 322 "#t"anml bc 322 "#v"anml bc 322 "#K"-anml bc 322 "#" anml C 4-bЍ=k 0b ÙP9dteScP)ؘ bTɑߘّn0-1=2MlPν[Ū "2B 4 i p">$I P ' 0) "21C'2e@UTSpBiEdDq"$PB I 2 )o (ŔP/(p-3)"P-%)P-()B- !-)p-3)q-4)r- 5)!>@X> " )o   !, " #)+") "P2#9P"بb") " #)޴ ")!>@e>E "-"ɑߘmفnl k0Ż0P-0oj0Ūb"03#8b")#03h2H( )s(&I(  !C(  S(0 3ZC$#$ C(! " (03 #'똔ʤ 0!1p-q=rMei '-TɁ߈-فnl k0Ż b"0o#j0Ūb"03#6b")#03h2H(!'( #I( C(  S(0 3ZC$#$ C(! " (03 #'똔̤!0!1p-q=rMek-TɁ߈-١n0-1=2Mp--q--r--b@#0nl0b"03#Ab"+#03j2H*#2q-t:#.r-u:#*b:  !C*  S*0 3ZC$#$ C*! " *03 #ܽ뺔q-r=3011!-=Me--ɡߨ=qnl k0j@Ū"b"0n,#"=03# "F =:b")#03g2H'"-,X7#)I'&C'  S'0 3ZC$#$ C'! "'03 # )bs7#b0O3'뗔o   ,gh ň,\h ň ŋ!>@@S:Qt+u; 0-!>@O:>p-<ɱ߸n0-1= "-ؤ b",#03#B"  q-!pMbp-س-nl!-1=2M iT"==ٱnml kbS=C$ #!Cbpaɱ߸qnl #=%MkPŻu.s Bgbp0i .D$,bp$"$h g 2'g b0dp#(* \$ " t$( .<#,.P#,S-j  .4#,- %,.#,+Y- + j_Y-i  +#b%b% " t$O(qxmّnml k0Żj@Ū-*.8#s.,#l,2i bi.$#Xb$ .#Kbi " t#aɑߘ=١nml -z. #$b   tê@*#-a.# b .#@*#aɡߨ١nml k0 "K|.T#.T.o p*/0*r*)2**@L#*.P!.P",l., Gȭb>PJp*.,q*.0r*.4s*.8t*.H.( " .4H êp*>XO= p*N !S.(>L@<, " .4G.h>xU0 .P.R>l# .h0dZH.hM(.l.R">h# .R!.Raɡߨ-ٱndaФ!1-$0--8 b03. k"=҄#l %q,.x".|tb°.û@; p,.p=#0,.x@; .|@; ɱ߸ 'qnml ,ψ,k +j oP/ 86t\<3.dN40#&# "#+>d#.db <3N40#bSo  j>P/$:b.`c*LC3"T$2.`c*LC3"T$2.`c*LC3"T$2p2MDh4!20{ 2.`c*LC3RTT5i #h@$=sh'9T8pC$\0#.`c*LC3"T$O2.<>P0+' 7 <3N40#".#by b= <3N40#$# <3N40#! #!>4@5,(aqxnmh -j lt"cЍv-ja n!-#=2M']-2j12jMnmh -j l"cЍU-ja ٱnml bk -2j12jaɱ߸ٱnmȍѠ.4lk l ;N,k4,".< >4B .0 >k2F+& kj  "^(`,zi F+c.32M4d04e4fo  3P/>RP Jp+>#=쉀!#hp+>#>#=쉀#h)̱ =쉀 #hp+=#h."+)̄=3`Aɑߘ١nml bk )$=ܔ#d%#d ͭ*e*fb L*hb:`aɡߨّnml bpk !͝)d )f)e)h.>: #+ώ 9`aɑߘّnl k0Ż+j@:i .>ش# .>@r)#>#F2Np43?]5dfep"*7 %hq4#%h-2d9 >tNx4Bh42h,=3`f ɑߘ=١nm-0@3.<2 .X@F $@k +k Ż.X=d8 " j .c- aɡߨ ١nml °ûj bc@2Cc.0 @3l . "221? @D"4 !..!.ܮD B(.dܮj$.lܮhܮ+40d34b>C .< "* k .,cˠ.t"k cH^.pv _$aɡߨّnal d-8!/-ޭb k +ȝcj#-8/. k cY " u + "(! ~.0-.1-.@$-.B -{.0-|.1-.4$-.6- "P230=Q230=D" -( -bЍS k b= " u bx.0-y.1-.(- "ǔ  E- "Ɣ  D- "^  u-bЍ k = " u +jdɑߘnal b>6#  D- -#03 x2=cЍ6@ٱnal .0 ,03#  .00=-%- " x3-p-k +=dHɱ߸ّnml k0b.#>#p"+0# xi bɏj*..#>#F VP/:4RP." 03 x2.@DcDޮ " x2 .@DQ!2. x"p2N 402.$.# j .c@D3!.,w  .,>Aaɑߘ-nm.c 322>\.l0@D . =  x "..L4.P..T(.X".\.`.d.h  .l>L@ 5 " l .c\a ّnl 1=2M.-̤ ++#c8233 j2,,!/0DJI12r-!qp*E:JDZp -ِ̳ɑߘ=nhal 0# x03>0-b0nx3Mp->D#p->H# . >A&فnml k0Żj@ŪiPřbP  + c.#zȀȀ@bȀȀPĈ`b -2h82haɁ߈Mnm." >2.@Blܤ!Wܤ Pa فnml k0Mj@i )i řb=d/ " .,?. >`  "x . >@b=d4[ " h .c⩔ aɁ߈=ٱnm.H" >L#>\#>`2.d@B)., H.hA,.l>?$.h " .T?F.D>h.0,f 0d CBEBD.h>dL8.h@,.lI4.  d DBB.d>3 .(.!-Ĥb">#P" %b">#P"0o3dЍ.d0EQ " k .@2.!..!.8( .8.<(.<.("؂͈  g =Bh '݂ ."#g(0 ' 'C- D'*'. D')'#aqx]فnml k0j@Ūib, 001@D xDZh b@NPHD_aɁ߈=ّnml k0j@Ūb"0# "+ b !" b "  b + + b b " ,f10103 x6i b00N@IDPaɑߘ=فnml k0j@Ū,i )#>(#F .TP/><@:" .؉!Ფ.>#Ფ.PᲉ !>@+)#>(#p"*0# "+ b !"_ b "VbQ+K+Db?b "7!0! " x&ICc^(EDPH aɁ߈=qnml k0j@Ū,< i )#> #F .P/><@:" .!Ფ.>#Ფ.4Ᲊ !>@ɍ* b03 x#93N 4p3g2 t)#> #p"g+bp 0! " x$ICc^ EDeaqx=nm.,>X2.H!. V .8 . \b  .$ " xP  a nm- " x>#  x"p2102.D=A0 " l .can!- x"p2202.2a.v B--C--.,=ڤB/ .,=B/ " l .cwn0- x"p2402.h2.^ C--B--A--@--.=ؤD/ .cФD/ " l .c(١nml k0Żb0 x3pC$0#>P#.cd/K " j .caɡߨ-nml .d  0,A .`.`c .`.`".danml .V-ʱ,0q3dЍa١nml k0Żb>N2NL4 b>HNN41j@dIb.Naɡߨ-ٱnml .B<#N@$ b0r,>613.0d(>6#.6">4# ,7a١nl ͤ#2..cЍ " u 0,1j ..cdeHɡߨanl D,r,x.8!..  d P, Q_i P,Ph b>*G&" (h ňb>$F&"(h ň(>#># b (g b>N41f@dpHLbg .. :>N4A#ND,$ * /eS,. T>N4A#N t>N4A#NQ, =>NeC1%>D,$ 3C e1$>D,* s>N4A#N u>N4A#Nr, t>N4A#NQ, =>N4A#N #-D@zP/fH"ZrvP r>N4A#ND," .4 gQ,a,!.t*.2  .D8P)Q,.2,"..S,#- r>N4A#N.4 Q,.4,!..2  .Dh8P)Q,.2,"..č.4 .TE8P) .<8P)Q,.4S,~#- L>N4A#NS,"i#- r>N4A#NS, .4  Q,S,Ȑ;.>#1ޒ>.8.>#1ޒ>r,q.>#1ޒ> r>N4A#NQ,T ;>N4A#N,B.<S,#-. S,- *>N4A#NS, "#-.S, ;>N4A#NT,.0.4.<,! ;>N4A#NS,T,{#-.0.4.\,Ȑ;.>#1ޒ>.2.>#1ޒ>,"02b0<#- f>N4A#NS,w '#- r>N4A#NQ,b.d/ #-!>l@$(Ȑ2NAD.cx4k {bpcЍd$ " u 01bpcMe,Xahanl k0Żj@ŪiP΍_.B ),`nB!.>,} +/ -c . '. +/ .$ . + Ż.0 *N>AD.80g `@mP]K%73Mb0o0=0 " u P0QsM)1Ad p-c`(\ahman-Nl0k@ŻjPΝ_΍c. `n  ": "8¤an -N :> NeC%bc$. 0="B0v&4$. p>N 4A#N - ^>N 4A#N + N AD.04g `m%W3bP=0] " u 0a*1e p-H=dPe`\ahmqnml k0Ż,;26!+"h ,c12 " , j +z i @*_*cd!"qpbpaqx-anl k0Żj@]Z͝\a,nލ :>N4#bd.ޱ+Dg . 72 t `n'N4A#N G>N4A#N-ZNޒAD.ؤ0Ah ` mP]%H3b@=0M$ " u '0!1c`3)f p-d`P \ahmanl k0Żj@+]^a Ykb`W g "^*Yq rUb`<2 Mkb`X$#-0'=#=>l#p"*4-b`0o   (-.> #t=#4-&-t->#4-$-t->#4- --k L-/-,= " a,n :>N4#bd.+h . 82 V`ns t8(N4A#N G>N4A#N -4E.!  S>N4A#N V>N4A#Nkb`$#^l%p">#e*4]b`fP0" (-. &4- &--^.@2_ NBD1i NAD.0i `m]bI']b@=0M " u (0!1p-L=Mbe``,`ah}anl k0ŻMZjPŪʝbř. j`nbg a,n :>NeC%bc.03(6 "B0F&4%.b޲ " F>N4A#N f>N4A#N* NAD.0(h `$mP']G]b@1M@$X4-bP=0] " u P0Q1Qc`3p-dPq]'9.`ah]ٱnml ,`.^ ܾ^aɱ߸ّnal =B.R ܾR.$!.$Ȱ#-b 2-bcЍ " u b">$dLɑߘ-ّnal .> Tܾ>Ȱ.#-b 2-bcЍA " u b">d.!.Lɑߘanl k0j@iPř.(  .>,, B[ :> N&4A#)N& Ȁ,. >ނ>&b . >ނ>&b ;> N&4A#N&.(!.("< ;>&N eC1%#!">&g b@0dph p}`m%mX3mbP=0] " u 0a1acp3d`p-PJ\ah]qnl k0.  .>(ib, :>N4A#Nb ,>NeC1%>.!."83 ;eC1%#!">i b@0d-j Ȑ#z2bpcЍ " u 01c3dbpPTqx-n!-#=M=ّnml k0Żj@Ū, 5*( 1}X i 1} i ,cb+)ޢd 9#~ @9#~aɑߘ=ّnal  xêp*3-q*4-T**- -"- "h3-,i "ck p*0-q*1-T*$- #- "?1}, k cdЍg fcM gb, Xɑߘqnml k0Żj@ŪiPřQň+q}P'Q7RGSWW bqC,cd$aqxman!-l0%M]YŻ,uQ@Ù'P* ,q'"*" 08f喍W  b!02f喔 '$g qw "x- "|- "- k-bc` -b`_P*Q:RJSZ$ 1|S,h +0md`g#H(+0@f 1d`g-~ b~ Q-O=M lahmفnml k0Ż p "^0#b, !ab  ê-܉Fޒkb5#7 +|X$ . b  |F$ bi  b!  ê,i bcB~@aɁ߈-ّnal "x0- "|1- "$- -2=0- "ck bcb~ f7dЍf3 1{P#j 1{Fj b} 56de f;3dЍf bLɑߘّnml k0ŻbB!; "c j }  *  '+&b "c } +<~ }|aɑߘ-١nml k0Ż + "^0#+&bi -!b k +<@(-c Ǚ-^ht0ıbP& &b&,! +,! b +4& b+i *k )j -c bb" -  -  - - -b= "cJ8-b4hb,&.bU1-i  M- q-  bK b+ M-L=SMeQ*h "c8-d N-L=h@a  by$L-y$*E4O-=^h\\ahmanl k0Ż%M3]έ-  +g@bp"$h ! "0wi  `"c1#by , 2 "vi b0u$t-!ܱ(sMpb1u$5g t-!ܱgsMb`p,k 2 "vi 1u$(gb`mb0u$(mby1 `9#~!9#d,cah}anml k0Żj@Ū+o /P"""P2#  Jz`fb`cpi bp8,2b`v/h rcd_$ Fcd_$ YcAc bcOc bx,z`fb`cpi bp,2b`uh rcd_$ Kcd_$ bcOc bxr,ɱ,{:B "}h RcOc %cAc ,Y:B "[h bcOct z`fb`cp&i bpy,-2b`uph $cdPdu Kcd_'$ bcOc; bw,Nz`fb`cpi bp<,2b`u3h $cdPd8 Kcd^$ RcOb %cAb bw, !>0@(bw,,c# !8#d `8#~aah=ٱnml ,0! 1!-k ";KQ[1aɱ߸an`l =%M']bP"i h0k Y}bpj nlfedpb`] h Y-W g b`Y-G/ ="""P2# V8D&N0< x!/i x !(i x!!i x !i x!i x ! i !> @\,cFG- 2 /W- $Y- W-,G=YMY-,G=WM-0!!1! 2!,W=YM^ah]qnl 1=k@ŻjPŪ- ,c.q- B+Y" *Q"+:i@P%  SC-- MP- SC"- _"MP--F$g(A+:@P 1s~i q=rhbvbr  .4/ h .,$h bg( 3@a2 b"Y=d`qxmٱnml ,0! 1!-k ";KQ[;aɱ߸n`l =2M']-0! 1!2!,cP3YM^]anml =k@ŻjPŪ4G+:@PM. Ї.h jb`W+- =|M g c`|E g #uW%uR.(Zh bgbb"Q=caahmٱnml " ,0! 1!-k ";KQ[,0! 1!-k ";KQ[faɱ߸n`l =%M']-0! 1!!2!,cP3YM^]١nml 0!,=k #j03Jeaɡߨn`l #=%M']-0!!1! 2!,c@3dPD^Manml =k@ŻjPŪkb`&b` "C=#*b)+(Ck "c`|Nh tK b`( "1q$g HcpdQ`bpt. , cp~ȐC- Ȑ*f bc`baah]anl k0Żj@Ū+o *+ 0Ȁ}Ȁz+; ;{bp@# bpgcp  Ȁz@/>"""`P2#  B@><:8f~|zxvtrpnl{*0f bp= QMe`bp DZ{bp, Qmb`R-*0e - c`RMdX ,hc( *>dY br$ "x0- "|1- "$-!-b#- ?dЍY ,*_ PɁ߈=an!-1=MlP[Żέ,J(#-+(Y-" +wY-"r|bp $jbpmc`f@Y-c 2=23#p6#0&b`qbpWK- Q- qpq-cpnF$i +( ,cMY< 7cdW, Qc@\  .- 0--cMX<K- Q- qp,f q-c`dpxi +=YM42# =.D>P{-”  g acdp[ ++ ePU Icd\ X Hcd\ ?+!(& "1m$g cl8 tcdpWa, OcdpWY,bpp14X ucd\ XU$cd\ +'c 2=23)2d  9#~ @9#~bo4Q-cz~0ah}ana-^l0k@Ż"=}dpme`H P6##(P'" -^-"|bpLk bp;&bpc2b` +=^@0_-}cp^-c 2=23#p7#0'-^ ePU JcdZ2 M- rW- )* R LcdZ * ePU McdZ  KcdT(bm,D-c}dpUbpnbm,lah=qnml k0Żj@ŪiPř*02+g b0cpAuy h ,cwbmP(ޒdaqxMnm " tta nm.  a nm. '. . | a nm. ! " z;'a nml .x.j.mb1aٱnml k0.| !,;~ m.buIaɱ߸-١nml k0.T !f-"j;I 8 .$, ,ͭ*h+1ݺhaɡߨ-١ndal . k., .4 b .@ .$  {H"=r 1-!-"0{l3MQ "l=1j bcS {"=ɡߨ'nml .1 ,3_a١nml ͽʫf ,ݱk bc b9=#fj bc ":.$baɡߨٱnml ,9o  *@ .( b$ ,b .4 ,$ aɱ߸ٱnal .9  " xc@ k0Żb!"1-% q- q=#!%-.9 :.@ b!"0-% 9g - p=#!%-r.$ 1* 2#DDɱ߸ّnml k0Żj@Ū. y 5.c*@34BA+@"$(i2ř.c+@34d,D*H4*@"i#řb. <.  b9(b9$b8 /.,b8 ) .b8 aɑߘ=qnml k0Żj@ŪiPř.Ք Ȏb@"$c3*d@D48#c@3gh2ňbݦ'! 4'(  b8b97b8O ,@b8D  ,3b87 O aqxManl k0Żj@]. 8 D*! E* .c+@3d04R@Xi5ř"w(#h$*ň f  h  j O->#@"d $SBX%DZS@UiRřb;@"$<3*8#h$ňbE J4P/D0S*p:d*4?T*p:2S*d41S*p:dڬH)p*2 !"*bp*"ܼ !>d@MP. . upzE*! S*$rE*#S*$f T*w&rE*" S*o   " r##D`f &rb7j,  ' bp !"7[, bp "7R,nb` b7F,'7@,b` *Lo . & * , +F0 f 9h (j ,9.T ?.\ 8.x 1. *.l #. . . .>r(b7yb6< .@i  ,xb/0 f  h  j ,dO-6h< ahMqnl =k@ŻjPŪΝ. ( 0o+ 1 g k  *g r*g q*g ' / .8>@r'c3h#ňb΂G->#@"$(;@3h2ňb7b0. N. b6%$  b6$b6G-5, , *..0 ( b5, )  qx]qnml k0Żj@ŪiPř. $Ȏhb@"$c3*8#c@3gh2ňbڨ(bڣ('! S'( b5 b5 b6/ b5G ,8b5< .0)) .40b5_ ,)Y,-aqxMّnml k0Żj@Ū.M c   .,c,3*8+@"i#řb$b$*">,d;@DD<3*84i#řb$.M 2.T b4   b4 b5 b4 ,*aɑߘ=ّnml k0Ż.% b"Ȯ*"c@3ij2Ūbٜ)! )(  b4b5-b4E ]aɑߘ-ٱnml .  bª8D03 x#!">8@kCbْ . ;.  b4\$,)40 3.(bP4.<(b&,aɱ߸فnml k0Żj@Ū.  8.c+@34,"*(h2   b0 i bLi )cAf . 1.Ȕ b3 'p$4b4Sb3k,.F )H(taɁ߈=qnml k0Żj@Ū+ai " x.  !   .0>8o  b!"c3d>44<0h#b؃. $.  bp3,,b3E(b3$+3b aqx=١nml .5 CŬb&k b".( +$b:!.p +v :{ $aɡߨّnml k0Ż,j@;. .c $NH$i2řb׎$. 5.  b2r.(b3Kb* .  , b* ,"6aɑߘ=ّnl k0j@    Z0! 0O -?=0#- 0dP%-ͤ 0ȝ da &-.-4"0dT \ɑߘ=qn-#=l@"']N$@"$k#"$N4h2ň%c 1>22g0w, $@"#"c8j#Ūip řb(jrŪ. . (b1.XC b1.d8 C-1R jb. (b1zi.@ b1k.L -"" ., bp*bE$ C. o(b18'.@ b1).4 bpMb$bWb$ b$qxMqnm-l0k@jPŪ-,k0C;2b0->,0|3Mԍ0 -=>#0-1#=< Ӹ-4@z$Cb"+"c.# 0bFo  ,,%(bi !>4@=$aɱ߸-١nml$l@. +dȽle/\pb. . +. 'b,!ͽlb ͭpb . .  b,b,. #.(M-l, . ?-p,p aɡߨ=n0-@-03#Q->д#>Ԕ0 c 3.@D t]Q-..ڔ s.۔ o@-03 d# Kd0.Ք C.!.3$.4 p-ڋ.@ .T($. .@( : -,.Ք $.P Q-p-0# dqnm l k0Żȍbcg}dbpc@P  -f0PGj *.DP$bV "[(]o  *\4*,*r8 !><@(.n (!.q.p %.x m " t0!  ">r@#^l]M0!.p.x.q.q0# uaqx-١nal . ]pE 1NhP/D"S,c@ͯ &S,c@T,(S,c@b?$ !><@7. Kp,0-q,1-T,$- -. 0E,!$S,4S,bo   " Ფ#k,ؠͪ *b*8.DK0bЍ# }Hɡߨٱnml  \U0! 2B % \U0! 1A ° ePU M1A O2Aaɱ߸nm̍=.$,$ ,," .,*C ,$a anl ذͻ xB+PP/T~zDTbjTT>NJHTb *6 .  " x=C'B4#PR,r< R,221?>R,>@=#'.y R,>r#. .,1 h,-"'$q.L R,>.r  .r@=3'# (L.< -"'#. -"'%. ,-2jRL4 d03 xrL4B'B$"P22-"'# %r, :R,"! .H R,$,!4R,$ : ,-2$0 !܍|D-2'2#"P03 x#32(-  xêp*4.$F p*x, " xc ;bR,.r>0T=C'AMK#j,jȈAR,p:C,<FLT\f/C,Tcs0R,80*.y .  4R,' :\ },mq,fR,<ed],@<>lTq,@<tLq,|Eq,r<@Lb& 0!R,<@S\}/R,0)R,0K "R,ՍhC,0!R,rD@X  xêp*+@<# UB," R O.T>a0.߸ *&  b.lߡ @,(.Xߖ bp:#"q(.y .| ,ahٱn,-$0dذͻ <#\ +>-> "=ԍ-!-| .  -! " x:-. :l.,$Mz-0# x!03Mԍ# " z=# #l b0c- -!܍(ɱ߸ 5١nl B,*C, ͽݱbݱȫ<*B,-p<2(q<2,r<20s<24X<&28ͽݱȫy"0<H0# t!. "0# t . bX .`0&.03 "2.. i .cs\q-!pMp..>d #. P% ubi  "h0ci@@2@  " t0!b> @#PUXb> P.h-.l-.p-bi -c@2@ " .t$ȝb4bFD "@ LT(. U, "n . 0c2b018< "\03b#-ʱ"Ɂ߈Mفnml k0Żj@*Ŝ+Zh Hcd@| !9#dP"<#dJ*0# ZU Gcd@\8*0# ePU Icd@J&* ePU Jcd@;ZU Gcd@/ePU Icd@$  @<#~   ,"d" ,"~*<#~aɁ߈=qnml k0Żj@ŪiPřQň*9HPH .  g .w g bpE",3]$0d3# @#aqx]qnm-=l@kPŻK"pg b0c@dpUi   ,gZ ocd?) "1Phg cOR g pcdp:  pcpd: bpRbRbaqx]an!-l0k@"3]gP ǂfp"" ~g`{zv,`f-b`=dU j Pb`1Oi b0#b0`bb`RU$cd>$ eVU$cd>$" +- BD%c= +RU$cd>$bRYies-RU o2d>$bRF8 %,0f b03@ge`j s-0!,f b03@he`j ,f "c`dTj j R,`bQ=_Eah]anl k0Żj@Ū+:2b09k*& "?c`Y g hpb`"bQ$3jb`~[ "cP]Y g - "c`Y h b`bQ$bpQ$-f "6Ni  cdp8Zy cd8Pq cdpe< D cdep< :+:2 b0~;k-e "c`EYdi *&hj "c`Y4 h b`bQ+$bcd8GbQ$ F" d"c(CI )@C@REB32)"~) $9#d$9#d-"c[rah=an0-1=%M']Y[Ż$(έl+&9 c`Wi fa &- (=#\ 5cd7 6dAD 57 ` ?k =b`!6b`_0% /lb`& !b`^0# lb`}Q+- =WGi c`W?h PR( + }2,f c`W*i + f c`Wh P2(bP-(q-M<g l+&"t c`AX28i b\~ 5cd7$ bkb`| ?b`}!8b`^l0$ 1lb` !b`^]0# "lb`|+- =AW8i c`AW8h O(,f c`AW8i + f c`AW8h O(bO(p-@+ɡߨ-anhl k0,a(-"03 -!ܱ,h rc4bȍzc ,=g #f0cpFSi [cPH7  C| "cpSh bp(}gb`I; b`7Ii "=3Hi bK0-!bcd rcd2$bKy0-"cU,$9#dah-an!-#=%MlPνma-= LU-x*&S=FSWj "Umc`S-i b`$ ȀȀ bcd2; bcd23 vg g c`9x( 5cd2 b`? bJbJQ-cUk, d"c*)@C@"Bd C # @:#~ah]an!-l0k@Ż{f bp}[&,#!bp}bp~0b`"c,o{bpwu-f "6G$i 2c@5`fb`cpRnh bp~0bJe |tepb`1fPG$cg V U$cpd6hpbpJH V0O5~ ?cd1Z bJ2 Q-cT( @9#~ah=ana-Vl0k@ŻjPŪb{L&M-gfpb`}Dh "B .,! (-(- ΍΍ ()-x Yhp-Vc8+~ 1-$dbbzT Zgbpm c`0b`J+Pbpy$p&"0&+} -@g "7F,i )¡d Ȁ0 9#~ Ȁ. @9#~bcM 1 {bp~S bcpVgfp-!b`{#b`|@g |  +cЍ|m- Qxbp}R bp{! "4--@"4-(g t-cpQ (i +}] )"d  )"~* a)"~)[bH$-@f "6F:,g '¡d  7#~ @7#~ HcpdP5'<' 7cpd/4 RcpH3H $cpd/4 HcpdP5 5cpDM)4-! d AD Qcp-<-B Df acp-< cpDM)4d`D Qcp-< rcpdp)4bpB,,cpMk #b`w2 "?$HAg D=:b`cpLbpB\,D-BW,c   +6.T2-.X3-.\6-+ .`2-.d3-.h(-.j%- ld"2- $$"iv3- ld"2- $$"iv 3-!>L@H*9@P -%(30, 3Lz$0d3#-c! @ # 0#+ 4L]t d"r=c20 2 @0#`ah]فn!-#=ͽݱȭbȝcPbnbs"&"hbt k bu$݁P*c l A}(cK -! FQ=SMrɁ߈-qnL@-=MlPʽŻʭŪ͝#"7= - "-oyP/ X  6 |   ~ | z x v t r p ~| 4 2 0 . , *n ~ z x j h(& b ` ^ \ Z X V T Ff J, B > < :&$`t &: "           < n z *-!ܱ+:x*0!-!ܱ+h K0L@Meu *0!-!ܱ+h t0u@ve` -!ܱ+:h-!ܱ+:`~!0!-!ܱ+:h -g00dep?,i"0!-!ܱ+:h -g00dep*,Tʍbr0001=1ܱ;Jg bh0cpg@dep,8ʍbr0101=1ܱ;Jg bh0cpg@dep,ʍbr0201=1ܱ;Jg bh0cpg@dep,-!ܱ+:(X-!ܱ+:l-!ܱ+h [cM -!ܱ+h acM -!ܱ+h QcM{ -!ܱ+h !c&-!ܱ+h rc-!ܱ+h NcboFL=R1bcMs-!ܱ+:h Pg00Qdep$_-!ܱ+:h Zg00[dep$K-!ܱ+:h `g00adepk$7-!ܱ+=*+0!*1!!2!-!.@>@DT " *0!)1!+h -w=deTp0ho + /K"""P2#X0Jn X ,w3W눀(  fm"4- $$"ul5-0dm31=2-q fd"4- $$"iv5-0dd31=2- fa"4- $$"dd5-0da31=2-q fs"4- $$"ub5-0ds31=2- fm"4- $$"in5-0dm31=2-Ǥq fm"4- $$"ax5-0dm31=2-q fn"4- $$"eg5-0dn31=2- fa"4- $$"bs5-0da31=2-$0-.4-.5-.-.1-.2-.-v$0- ff"4- $$"lt5-0df31=2-a.4-.5-.,-.1-.2-.&-K.4-.5-.,-.1-.2-.&-5$0-.4-.5-.-t-1-u-2-\-&- .4-.5-.-t-1-u-2-\-&- !>8@uQ+0!*1!2q-X!-=MT 0!=1ܱ;Jh0=g@depE,o!0!-!ܱ+:h g0=dep0,Z"0!-!ܱ+:h g0=dep,E-9!ܱ+h -d(p5 0!=1ܱ;J-Pw$!0!-!ܱ+:h -g0cdpPb!0!=1ܱ;J-QQ 0!-!ܱ+:h -g0cdpQ<-!ܱ+h -1dQpؔ-!ܱ+h -1dQv4-!ܱ+h -2dQL-9!ܱ+h -dQS4-!ܱ+h -1dP)-!ܱ+h -1dP/4~-!ܱ+h -2dPm-9!ܱ+h -dP 4\9+Jh -g@depTPM-!ܱ+17Hh ;(-cFmd6*I0!+h -cet'*I0!+h -ced|*0!+h -cde\ !>8@Kٹqx-nm (.0. .a nm.>@^a nm.>#.>NP..!.0"d $^%2b@a nml .$>#0anml b$>#p"anmФ!>4N4#a nml b$>|#L"anml .~$>x#2anml b$>t#r"anml .v$>p##anml b$>l#S"anml .n$>h#"anml b$>d#R"a١nml k0 "u.\ .( . .D ȭbcb c.4 Y!Maɡߨ-١n0-1= 0@3!# #l b'(,(°@û;# [@+ *b0"#*j .c@ .;@ݸ " k cc 0#@b'(,(°@û!+"c 22:.@ .;@ػ " k !c0,q=1pMc 222#"Dp. .ɡߨ-ّnml .|Ųc 7828j0@Ù) &@90 #c 22:.x@..x9@$ " i c @"!c2;22pL1CqL2CrL3CsL4CXL*C12.|#.|aɑߘnm@@, %,c 22:.h@.h<@ " l c|.l.pa ٱnml B,% 3& 1@   . B ".; A,$.(1 .$* !><@k֣B dP/&v*@,cXC, Rq,^4L. C,'@q,L4 (,C, ),)q,r8A,$-58 !><@p2aɱ߸ٱnml pE GP/Rdp,>S,n T,#/S,n$p}(T,v S,n$pl(S,r pb( !>,@  +ZbD,  (LD,P )Aaɱ߸nml . bulaفn\al B*MP/ X6L*~d l B, , P H F D B @ > < : 86P,Jj ,(`i ,-\".d4*o$l,\P! |bo$ :li)( %,;P! | .)op$ :ulB . R,>#m . m  .94l.R<#  mHͮ*.myH=1># R,m! .L4R,mBLo $kR,># !m1Ln$ :r, =1܍ k.r<# M#A܍ R,.r,7.. m+ *. ..4k. r<# # M#A܍w .>AbR,.r,. .44. ,C,kQ.(d4. ,n " zj 0k..!..@:4...4.."4kn.X4R,j].̍4C,.4R,.4T,vj6.4j*A,8C,jA,8C, ,D,jA,8C, ,R,$j{A,8C, ,D, ,S,jUA,i8C, ,rT, .S4T,S,  +[S, S, (HD,L )=j sA,8C,6 ,'D,+ ,E, iM.<4,KTi;A,8C,.4,/TN, ! ,N,.|4C,,Y( ,,K( ,,=(ixA,8R,, ihѤ)|8  ,,\" .v,la$, .E4,`lF$i'28,ml-$inR,03Mra |)q,~hK@  .4.p4.<4 !>d@VXq,10h.|4 '-&-R,03Mkv,1-=1%=32 +- <  "h.|4 &-- !&- - q=#!%- "h\. <#. .d@>XR,j$ ). @<#. Ɂ߈)nml ,; : gqa١nml kj+0"k*"0"y+"0"oaɡߨٱnl -2j12j2h< k "Kg.+ +h-2h1 2h ~  "  \ \$-2h12hbͽ+h#+h \ ݱbnɱ߸nml b#c.#a١nml kj+Ⱦ+@"*+@"aɡߨٱnml kb("+aɱ߸nml ("b "b(",a١nml bok bop . >b >I*., +[  +u$b "G +f$aɡߨnml )  ,c 323b>"4=ĤF C2-č) anml ) ,c 323b>"=ĤF C2-č) an0-1=q-!pMbp -ّnml jbi b"𤰴+b)"$>l#>nk2+ ""baɑߘnm.`"$>b#a ّnml k0j@ +  @+!"".\0>^:B""$"J0*,?#  (.\ #* "   (.\aɑߘ=ٱnml k0 ;>T3$#"0+ #+aɱ߸-ٱnml ....{ ܾ<ݾ@b>޸. "+ .4% °ûp+>$Jp+!$bk *X"c@P .0.4.8.:aɱ߸nm.ߝ *X" 3a ٱnml@,$kP4haɱ߸Mn0-1=%M!=nm "$Xa qnml k0Żȍbcc}dbpc@P4-f0PGj * +h bcA8o  ***$ !>(@A .ȍ 0# .ʍ 0# aqx-nTaФ 5-0-#- <"=]C +nml b0D3dЍ]Nanml -""h0# :b0P3dЍ]aفnl " .D8b:K4bBŽ P/ zhfd\ZXVTRN | z xFDB@><:86420.,*(&$"    4,hf@RT B $"  ,  | 2 0  N h  plH~^\ X  NL zz>>F02FfB v>< N L6 HN B* < : $ N & $ "   q,q,0# dR,F<0h ,\° û&+R,'+"/}=33#h0+2+, 0#,03 sL  0#P,  0#R,S<@\I$P,Rk $|S4|SLE\g#( "^0#,<01}=3ͳȻZ1j P,RЈ 0#R,ST2#b4]4\XɁ߈ّnm.L00# .0v.X1o *,.x0c. .0Z..0Qͽ+hj ,c .40>j ,c  ê@*2.h)i ,c @*2.j , cx .,0 j ,ci .@0j |"cX +!Kp. 0# .,&!`Q2;6,33#6,h$5JH.([R aɑߘ nm "   Z-"h a ١nmh-= j b!܍ " .HS(߸ lhob!܍ "b03\# ߜ j "N .8n`,߃ k "b03\#-j "  )(4.dp0,[N$(4.\0+[:$-jaɡߨ-ٱnmĤ " 8-Ĥ ,"" 8&0"2-ij+aɱ߸ ١nml k0+$,! %  "     baɡߨ-ّnml k0+"j@ ,& ) !    baɑߘ=qnml ,k0; s ai / " ))"0# !brv  bp&2 b΢ !:# X䐁* ()" !brv  bp&2 b΢ !:# X䐁 8"@2123#baqx-nm *"2"0 '03 0 q2B 43l b0p #,  *"  *J, ,4 , *"s282t292u2:2v2;2^220q2LB41202Ga ّnml ȰȠř baɑߘفnal k0Ż "* v *"2"9 5k"!5e "*   i "*f kj "*ϴ < : *"2# 0"$ , *"q2B 4LB412s20=t21=u22=v23=^2(=x232y242z252{26220.2p=82q=92r=:2s=;2X=20XɁ߈-nml ,-܉"R,-܉ "T,Hanm@ -Z-W "cЍTa anal @,-B+N\P/V < ~ | zf p   d h f d b < ` \t L J H F D B @ > <  ,p,7-q,8-r,9-s,:-X,-,€*ÈQ( Y Q(q8ZLʍ bY bY(0#*9-!=X#Vy-0#* =X#V- 0#* =X#WR,0# "K=0[,=X#@ރWRl]X&ePv"O".=M@.]X5D))- l-$-O--"- Y--" ]X%N%Tf%Wb`Ph b` g b`Z4-` fe &]1-&}T2-$038#"mX&RC]P ""'&N( "7#"r-0@2b0038#=XCR$ #N'" =X#N-X2NBRCBR2T."? --p,7-q,8-r,9-s,:-X,-,͍X(P 83hg2(@r8}.č - &-*--X2D"T#-$-X"N %- 5-.-"- -(-$-=X3N3=">=2= --X"R 4=HM"=-".-~- -w-p,7-q,8-r,9-s,:-X,-,-X2N05=05=2=NM =0R2N(-$-=X3N="2=>= <-p,7-q,8-r,9-s,:-X,-,-X"N)-$-X"R I<0U<p<7=q<8=r<9=s<:=X<=,x=#8- I,!U,03z#A,p,7-q,8-r,9-s,:-X,-,x-=XCDhhB#@٤)-$-C,-/- ܍" -$I, U, p,7-q,8-r,9-s,:-X,-,-X!-& x=#8-܍&F,#M, W, p,7-q,8-r,9-s,:-X,-,-X!-* y=#9-u܍*p,7-q,8-r,9-s,:-X,-,-$ =X1܍ ="#-"܍$-" -$|-X"Y)u+rA 0 ( H* , 2pf h +j f-"@a"^-!-"-U-" N"K-!-"-B-";-!-"-2-" ,"-%- 5-C,-D<2= ---" -"  $--!--X2W02Y9;02W-X2W0 2Y9 ; 02WA,+!=X#W@,"C,  " #-X2W02Z9p<7=q<8=r<9=s<:=X<=,=1=1=2W`i0R,^8j "*r,"k "*"k  p,7-q,8-r,9-s,:-X,-,"--!,--X2W0#A<} "Z$ .% ,' )(A,}-X2Z4 9 7 "Y# % 2 -X2Z5"Y5p,7-q,8-r,9-s,:-X,-,-!-!-=X#Wi !=X#W-X"X" "- - 8- -- z- "*R#W-X"V R,03*]<*€*ÈQ(W,q82R,\< -i *"p2L4 02 =X#W *"p2M402ȍbvH-Xp82Xq82\r82`s82dX82hB, -Xp<2Xq<2\r<2`s<2dX<2h|ahnmh,#W2(-h "z 5V " .H$R 0*31#!# l"cЍW[b!܍*Q,T] Q,q *"@2202 0#+ *"2f0 LC"h  *"Q22fq22h0222(51 ݲ* *aɡߨ-ٱnm*,"*,$To  ҘP/0n,?di " cde <"- -b>)-b>,3- " cM t Ԥ!- -b>)-b>,3- " cM T #- -b>j)-b>P*-b>z,3- " cM . ,>(i {$0Xy8b{Xo  bP/0P~b|Hg h0 " cdep0 ^Ub|h " cde <Cb{H h b{_00! " cde s4+hbc|CLq-0!r-1! " cdpX#T!>@@[, !>@@="`qx١nml .0*3#,(k q#j0ck0Ż *,+0#*=aɡߨّnml k0Żj@Ū *"@20T" B%0*3#ä"#ޣo F 3   T ըP/pnljhfd 9" V$ ]5 i6 Mt Rr O/""" P2#zxvphbHV 0#*bc  r *Ù)F !e)G 0#* X ޲*bcs I G *"@202*Ù)!+[ )$)R !')G *"2!5 2#"$ 8  *"@202* aɑߘ=qnal k0Żj@ *"@20YT" 1 h i E* p*  *S* :p* 7oj h +* , %. 0 f!p*@"p* "p*  /p*)0*3#$#o 0  P}/"""ZP2#z8v4r^1 /"""؈P2#^*Z&V""0*3##F #F"0#*bcDJ, *"@202S*pw8p*r m< j *"P21c 2S*]p* Z *"P21S 2S* : "*͔) 4+ 2D*!p:0 g 5cdp[D*p* /   BD #c E %cQJ ; *"@20 2 *"@202 *"D:2Q:)2S:*2 f  h  j +"03?#b M C E.0-.1-.$- 0-"-p} *"2!*2# 2&"$" fcdЍ\ 0*3#"# q#$1# ނ*JE*  +"03##1]$0#* +"03?#1J$0#* "*ƍ 0#*Ɣ D:2 "?1&$k 0*3#(#p*4#q*5#T*,# #F *""!) + !0#*  51db .0-.1-.$- 0-"- - *cdЍD*c """+ #"* b0Tqx=ّnml k0Żj@ŪiPř *"@20GT" $0*3#ä"#ޣޓ#F #Fvb"""+ *"* b; b"""+ )"* b( aɑߘMٱnml k0Ż *"@20T" Y&0*3#ä"#!aɱ߸-فnml k0Żj@Ū *"@20T" &"0*3#'#(o R   0Ј m SQ/ """ P2#dx^rpnlRf* / 0@*D 4$F 0*3JB# $0*3# #Fb0 $*Ù)b0 {މF 0#*r* "* n 0*3JB#b0 X*0# @*DMTQ#T($ ޲*b0 ?* /  %0#* Y0*3#*"(#b0 *i $cde$ ޲*b0 *"@202aɁ߈=qnml k0Żj@ŪiPř *"@20AT" (0*3#ä$#ޣ)o0J Դ GHI L :M 7uv) /  h %cdr )BD Ycf ޲*bc ޲*5)ł Mb}cp $'"2? '"g Ucdp. -BD Tc  bc ޲*8 I) Ă)Â(}cpj "'"2? '"g cdp f-BD c YbciN "*H J) *"2#!9h0 Jr& "*Jpb'r ) 5cd ޲*bc, ޲*bc! 0#*aqxMفnml "*  *êP* <2 Q   *"2":2 4ʢ$:$l02!33u2!* *ê*(q*5*,Pk h jq(  ~(" ( }0*3#$# *"2G0$""$ % ' )  "  | *ê*$*ޚG!0#*aɁ߈فnml k0ݐ*Ù@) fVT) +P3j *0*3#(q#5#@Ci b!#" # *"¤42 *"2G0%2"9!03 0M212LBB312$*Ù)t މGl aɁ߈-nm-1@*D4>$aّnml k0Ż 0*3#(޳J# #4i0h *"_aɑߘ-nm-aّnml k0j@Ū,iP0*3QC$q# ,c 0*3#b3F+ aɑߘM١nml k0,j@0*3QC$q# ,cy 0*3#$#p*4#q*5#T*,#aɡߨ=ّnml k0j@Ū,iP0*3QC$q# ,c@ *"024raɑߘManmll k0j@Ū]h,0*3QC$q# ,c *"026aah]qnml k0j@ŪiPř,C0*3QC$q# ,c)G*j ,cBe^  p*w' '()q'*1' ,cAP< aqx]nmФ 0*3##a nm "*  "cЍs *"2"202"!2 *Q,F' Q,q\@:S,aqx١nal *"@20T" $°*û+)+.X1-.\2-.`&-bj!,+blcc0$%-b6!-+0#* " b6l,00(%- 0*3#(Í, /- 1- " *1M 1M !0*3#G #FLɡߨqnal €*È|bpj(j ܘJܘH€ È'bpj0k bp5("3=ޝ)*3cM 8("4D,( ( 6 Ù)"4DP)"8D,) bi@"𤀴(b0e2)"8D)"8.b< R+* 90< 0 c3p4C$+C$+".,>T.b< !>$@4aɡߨ١nml .<0bմ  ]4@$L*! 1Q L*" 2GR* .(0R*,.0 - ;(aɡߨّnml k0Ż ;4C$+,   -  *   @"?1j 5cdl bDl c3deb'@Ȯb@28228 i 5cdG 5c38I8< ! 5>d;j048dD8, 5cd$ 5cd aɑߘ-anhl ż=Ȏlbg@jpt`+fdggRΒ S"$bpcP]xI]xbXޒTbe" "t͍x(0#t+(C b"G=# 0$B4+b$""+!b G- !G=4@+D4# "tG=e>5#P%t"44#"*03M2_ah-nml -ܱ<"d0DCC03 4#aqn0-1=03 0 g .0 bpȠ!--q=#p-,%b$rw+@'!R( r' k(c 323 " #Ckj-!-Ɣ.Ɣ . >`d bb޽ " .D@ bZ:-qx-ana-D=H03 0 f .4 b`kȠ!-F-=H#-D,\b$0+3#0-@"!Qb"$#@"!   F  Cp- R  b"$rw+p('3k( c 323 " 2C7 d0DCC$C"i 'c 323 " #CkjF-!-.F 8.$>H/   $ >f;F8$e +%}3!c4@+D4#"6844#b+ b " .dP bj9.G-Tah-فnal k0,Ƞ`i.ީn Ki 2c!h(Thިn "x0- "|1- "$- -0 2@ .0BeETeδ %n  b2n:2n b2n92n ȠȠbcdЍ X$c#T `c#n+ b 0- cdЍk @+/ " %+/ B 2c] +0- cdЍH ePU Mcdpb4&#-/- *cdЍ+ PɁ߈-١nml k0Ż b>6 j b>ƍ,j  c#Z(c #@  >@d:D84#$#baɡߨ-١nml k0Ż b>a j b>Wj c#R$c#8baɡߨ-ٱnal  b$""+!! -  -C-<ɱ߸ٱnmȤb$23+1 ""+  + 됱baɱ߸ ١nml b$آȪ+@*!R*  ! 쐱 aɡߨ١nml b$آȪ+@*! R* 0I  ! 搱 aɡߨanm`-03 0 l .xFb"*7#-c 323 " #-hCP/$TlR2j.l> b\.Hb*6-hB20R"5 -hB" " .6-hR" 5 -hX" " .6-hX"5z -hS"5q y-hB20sX" p " .6k-hX"5P X-hl R"S -)5*-dR2M4=hPC@"BLBA@"!B#P-dR"043dЍ-VXa` =h# #aahnml ,c 323 " #P2MT5 4hP3 2m@Hanml <433+1!aٱnml b! .0>H |.kb5I ab$زȻ+@+"X!bp54 .0>\ PD " .<8bR.$-Q+5  Q+!!+".\,.\!+L;2 c3`4C$+L+ R+ baɱ߸nml .D<2 1 b0baٱnl-=@D @ !l .k0b" ,b" 4G-C=# +C-$""+03M,C-$0+3#RBG]T5"C0"2C->#BG]5C@"#ɱ߸-ٱnml ,c 323 " k#B+=3# .> c-"+aɱ߸anl k0j@,3]c 323 " i#C   ,c6b+ 0 " "x0+ "|1+ "$+0 #+C)%)Zu( "+)\0#+)&,#+R) "+R)#+S)#+r)*0+E+!0S+7g q s&S+7:(f #74p;h6eh q "   +?;0n#+ i  f,2> _s-!=e$h p+*0+ cd5b$2+ )+0>#+,ȍc6:bq "x0+ "|1+ "$+ +s-!=$$+g *cpd 0.D>8Dah]anxl k0Żj@Ū " .+& )"h2$b]|!-++c 323@D hCC8= g R(S8dpX PC 4P/ *NV(0!W(1!t(2!r(3!+g bcdpDXmV(0! 1!t(2!r(3!+g bcdpDXZV(0!W(1!t(2!r(3!b03XHe@`PPU PDU_ +& 22$B @ +1  @gǔ D;b"(," c"g     "+! 1 g bc g bcpipb\CP/~z+= 4C((R(04X( 04g'" ir( '? +0Z [wr(42b08# - , b0 pw-%  @fprvr(( bpc i bpcQ i r(!3-# @c3#r("- c#("$ @c #r(w?bpT0 p?bpc i - G,K(f&r( -$ bm c`DX ?p&$0&e%,c`DX 1x-$8-b",m c`DX p&$0&bc`DX ($- ,Ɏb\(bcm->d9D8$f 6 538g< 5c`d_< 5Omc`dU< 5>d6f048diD8F<O 5  2bm c`UHX (r8#b`,Ɏb(bcQ -c 5f0d<i`K(-"-($Lr( "1 - "1! -O-m c`DX `r(p&$0&b",c`DX Np&$0&$-O--(- $, #-x-5-y-6--(.- U8d]V!8bc i q8| 0q(r8LH]˴TlpL($ bcr i bc i bv=L($#b",w=,?c i +}cp<|X L8depU8L(c#+0} cp@eQ`-% p' -&  -$p}+i } bp,bcM i cdp @~s( :C()7X( 4/-Rh.mX]xw@0A411;1-b00=5qMe`5pbp=di YX"hm(h`3hx]XDm++} cp1xbp-,X( -4C(" R( -4bc i cM @.D>ȍ +".$B( %-+ !b$rw+R' .>ԍ L'! b",$2ܳ+" ( " .+D.bd.$bxah=qnml k0Ż+c 323 " i#C   8 5C) V)0!W)1!t)2!r)3!+g !cdpDY(V)0!W)1!t)2!r)3!!03XIe@`PPU PDUm(B) J$""+! .4>@GB'b1j 5cBI0 5>d:g048BIGD8߹0+,$Bb+,$bqC)&!q)r9LIȍeb1j p8b"4=Nb}cp0 b,$bp,b1Yj -p0 *c34dpf 0 *cdp\  *cȍdQ p($0( *c34dD baqx-١nml k0Żb-BbcEaɡߨ-anal k0ŻMW " .|S +! @-1+c 323@D hCB80>+ C(!qx +,< ' @"!s C(;D(* -+ - .0V(c 323 " #B" #B(  "2-,? "2- ?2-+f r-c`[Hj +f bc`MWDj bJ++l  b$""+! yb"g fpwd," =W= i b=Wv4i nejubc eiju&% " <.fP bś,.v bŐ,.Pk @&0&*.X\ b29.dQ ,4+j+$;b"'- b8++$9++$,"g W-(,"=W j b=W4j Om^dWdbpc0M bbpm&c#b$rw+R' $L .!.L'!R'+j<2 "gji   "2- ? `?2m "2-b"$ $R'+5<    `"c1#!- -r-G=d4$i R'+<    `"c1#!- -r-G=i .!.bc(bR'% "' " >.~C b],.p~8 bR,.~- + " .~ b6,*R'$ "'b\ah=١nml k0Ż  êp*>JP_0*,0 3C$ d DBCp#j$**b$0+3#RB Jj "L*!b"$#"aɡߨ-ٱnml k0Ż!;d04P+U5#"cN345#(cN#h,c@aɱ߸-qnml k0j@Ū(c.Γ/b$23+1'""+ !*$   b"g $23+1 ""+  !ɐ aqx=ّnml b !."0<03b$""+"b ,j."0<0?b$""+ (c 323 " #C21q  bȝcdD\U b@9a baɑߘanml ,"k0 Ō? cc;bf+<Ɠ֙?gŘ?b ("?ip咤Ahb$""+"b΂b$""+ (c 323 " #C21qr bmc`dDL b@6b: aah-nml 0oanm "^0Ya ١nml kjػȻ+ "t*0#t 2+R;2 b0"@+!L+!b L+"b"| "+aɡߨٱnmȤb$زȻ+@+" R+ b aɱ߸ ١nmĤb$زȻ+@+ '.{b.({Q+}(h . >0!+!R+ .{lb(J . >\f" 2+ .Haɡߨ ّnml k0Ż " .${.,G.{"+(b$آȪ++c 323 " i#B) c&bR* )"L*! b"Ī$2ܳ+C N""P/ $Lzxvt\ljhX) 3& .R)c 323 " #C",*)R)& R)& X) &~ S)&x *)*)aɑߘ-١nml b$زλ+  baɡߨnml bc $BD+C ""+  #""c4C$+ "t,0#tanml b$23+3 2B4+anml b$23+3 1B4+anml ,c 323 " #B"anm̤!c4C$+@SE+SE+SE+ ‰#0+3# ### .t.a nm.># .z".8.z.8.r.x.В!..1~l "c|o. 0~l .c|`a nm.ϔ  .a nm- anm-=. y6&a-nm- aّnml k0E, $p,i+  b  "?1 j cdأ 0,#,p,+0,aɑߘ-qnml k0j@ŪiPř):21%*c." s,"~)p.bpcdi *# acHf "?1vh )"A .cdF *$ \c@D [cH;b2c*$ .cd! ,cd Kcd*$ ,cd 7cdb1,*# *# ,cd 8cd ,cd 8cdּb1*" ,cd׾ 9cd֣ ,cd׭ 9cd֒b1 ,cdח :cd|*!p;20;bOaqxMفnml k0j@ŪiPř):2 3*! *c.#cd[ )" ;b2*$ jcdE bc@F hcd4 acH5b0\ jcd [8bK hcd  =cdb04 hcd  L* k-b`= #b`v%-b` "1g ,f bp= d`U] I-&e*8i -#  YU-"c.#Ucpdp׵B)ePU-"c.#Vcpdpע/- )0# YU Gcpdp׌- )0# ePU Icpdpv!-H- 9*`f0-b`p=h -#b4b`1E-c Nf0d,h`-"c.#Tcpd,b4*!,f bp= d`U]{$bp4"0!1 \"2!-3!+:AQ%0ahM+١nml k0Ż-"# +j NcdѤ-""c.#cdіaɡߨ-qnml k0Żj@Ū+o     Q R e f  !>@+:g bf0cdpe` aahManal k0Ż|j@bpR ł+cp@Pl, 1i R(bc "x0- "|1- "$-p}$-,0}fp B1g =cpdG$ hcpdЍRa0m hcdЍHbp ( jcdЍ: %4B;.,D ڱXah=ّnal k0Ż+j@" VT"0- _"OF 1- VT-0- OF"-,;@Pk 1 i bcbЍC ^Hɑߘ=ٱnm-l0k@Ż]. >,+aɱ߸Manal k0MjjPŪ*i@@d,"b"i = bsX+-ʝjb'+-b= g0-j8bH&fhgfpb`;`h b`p8b"-(#c -z(o  ȐDȐT Ȑ!><@R$ "1Bg  ,cpmd`,HHDbcpŽS hcpd`,Io # C)- ?- V0O ?- 0O !><@c$  ^`fb`1Ki =[]PZb`cP0]p h p-8 bd b`1-c b#R U$f0dӹh`-cdj Kb=[]Lb7 b2 *`f0-b`p=A@Ti b`1vh [-$% HcdPw acEE [cB= +- g&- HcdWT$cdPK acC ,- h- "?1#g cpM, cpdpe`\ "x2- "|3- "(-}-cmd`,-cdͷ -cd`,b b bp{ -4pahMqnml k0Żj@ŪiPř );Jh g0ch@dpe +:h !g0cdepaqxMana-Jl0k@Ż;]Vf b0! &$,$&zk "c`-b`W0-J#҂ ňlb`$&b`g r rȐDȐEGbK=6,`f1-b`q=j b b`1,-c (f $e0d0]e`p CK=db K- ,0 +`$   Ȑؐݭ+*l b,r-C- w "1bh cpLSmb`=,b`"-b=YM](-p b8b`/U-*W-%$S-U=WMPg C- .,Պ+z bpo$& bpi bp  0!10321c31z aɁ߈MantLl k0Żj@ŪiPř " ,.k+ g8.ȍk, \8.k)m  )kqb@(+:g bh0cpds(,-<+o@-?  -?! ',0 " -?'  +|  ";- ";--?!{bpLt#bp}cp@ 3  m A ?/"""AP2# R O/Sl"""B P2#`^\ZXVK "B Dz _mb`y-0!-(1!bp=d`] hd{-_="heh *!+BH _mb`1E(#-"-\ޝbPc]0-O b`= $> +C -3  !-- -"-% & /C +"""C^P2#8(:*ppppz pt}pbp=m d`<bЍb`% $*+H lb`^0- 1 (_-= # - =# + S]"-ޝb`=b` / """DpP2# rpp |!>@%xbpmc`M ] @ xbaɱ߸anml =b"MDh$3b4b$0- 3pC$ڲb$$ڢ #)"f0683f b0& pqbpaah-ّnml k0b"=ͣh*P"-0Ù9#"Zc3:P3I43j b0M0*1b0aɑߘ-١nml k0b"=3h#PdD4PC B aɡߨ-qn\T-=M€-.È83 BA3-(1-l b,!c3sM4 #q-.0!-1!h b03-.Nex$-0M 22-33#2-r+"s=#P"03-0#" D "-. .0!-1!h bcNe5$ - "2B4B 4 4h r"A(2(B&(r "-.0- fb"s=#P"03-0#"mh 42b00#*ᨔ * * ""g .4aa, " 5` 8 \"21w 2b"s=#P"0- 3C$"r3# rp--!Mb"s=#P"03-0#"p "-.s-Bqx=)nml b2 <2c B@.B ."c 32.@wQaٱnml .<32k .@.A ."c ;3b"N$"@waɱ߸anm--- d- --0P3dЍa!-=_ c"==2=-"- _- .---"=Mo -Uaahanml k0Ż-20m @j-2:j0Ji bYh0cP`@gfP5bv)܉)')aah-١nml . ,.Ĵ bb">k2P+ 4b3Xo . >0 b3?"b4Cc +P+aɡߨّnml .| ,. bb5]j *Ak b">|i2P) +) )P)aɑߘnm.\ @E .\.`a ١nml b"+#03 jk2._- b`.h_" b x .ȍ_ , l ._ , d .Ѝ^ .^ C[ZP/|$fd\2`D~&ƈD.^ X+`T7.^ D+V+`BW+ ,^W+`4. ^ U+`) C+,.؍^ .4^ .^ S+` .^z T+`.^o U+_R+ .(^_ R+|S .p^O S+ pR.d^@ r+_.^3 R+_.0^( S+_.8^ U+_.^ B+*.0^ S+_.8] U+_d.] D+.(] E+_iL.] D+V+_W ,]t+_#. ] U+_A$C+".] .] D+.] W+_.(] r+^X+ .@] X+_.L]t +^C+#+ .X]_ .|]W R+^.]L r+^+ .X]= .@]7 +^.]) .X]# W+^ ,].r+^vR+ .]  R+^X+ .@\ X+^.L\ +^w+!.\ P+"L.؍\ E.\ q+^-9.\ ,-t^&.\ R+^7.\ .\ R+^$.\ B+ 6. \ B+.ȍ\} B+ dê*@"]B+*2:.L\f B+23~9.\Y aɡߨanal k0Ż,c 323 " i#C Cy GD)-0%# A >#2%"N dBp$#3C)/W) +V)1W)1YD)3 -  V)cCV)14BؚΙd$i brk }bpcbp$   dC()E( A) "x1- "|2- "&-(! %- %- *ϐ(  "1Uj  cM# fc}dp )$&p'$0' f:3dp #-t-1-u-2-\-&-"-)g cpde-5 #()2(3 ((48>8( (dqx١nml ,c 323 " k#C jcP/8lXR+i  r+ ;# BbR+ Q  X+ 3H --!S+>%$!X+ 3  r+ ;#  bX+  aɡߨّnml ,k0c 323  êp*ij#C:8$R:d0DCC$C24"3!R*c 323p)#"4)0+1;! aɑߘ-فnml k0j@,iPc 323 " h#S( +T( *U( )aɁ߈Mnml , ,03dЍa١nml b"+#03 jk2 " .(XbC hfP/*vR+J ,RR+ LR+ 5  X+ , ,4R+  X+ * %,X+  ,X+ !> @]n + +aɡߨ١nal ,c 323 " k#CogBP/4xntrHN\jNdJ`nlbB+""d_0-q   "T0-$P0-L+L0-$H0-r+D0-r+@0-r+<0-$80-r+40-D   S c2#52NdCp42!0-r+0-E+0-.>$, p-@ɡߨnml ,c 323 " #r"anml ,c 323 " #"a١nml ,c 323 " j#C #hP/2*.,(*r*Ų+ $b$!aɡߨٱnml ,c 323 " k#C ?irP/f <fd\`:XVRJHF&$R+R+++ R+u++$!aɱ߸١nal ,c 323 " k#B+ !3-C+)s+  X+  R+-C+-R+S;d[ b-C+c.#t-C-#!-C-@ɡߨ١nml ,c 323 " k#C+!,!C+-R+S;d[ bC++L+0!B+S;d[ >b aɡߨّnml ,c 323 " k#B+ j    _bC WkP/" RNVTA!>++ R+c 323 " #C24)"/!!!!S+D %  c2#52NdCp42! aɑߘ١nml ,c 323@D jCC:d>δ@B:0  baɡߨnml ,c 323 " #X"aٱnml ,c 323 " k#C+&q+ r;.>~aɱ߸nml ,c 323 " #q"-aّnml ,k0c 323 " j#iD*)V*!)C* ")t*2)W*") 2)U*&)aɑߘ-ّnml ,k0c 323 " j#iR* )S*!)r*1)aɑߘ-nml ,c 323 " #D"anml ,c 323 " #V"anml ,c 323 " #W"anm,B "?0D#2q-D2=09#2C*pP/DR6r.0*,*TR$O-"0!Q-q=dPU?$-!܍ +)Lq=##/#D+Q- V+c 323 " 2B30uWKe@UTSd%CT[kBT5gSJe@UTSd%CTYRBTPNReUYSRBU5 *XD@AIe@UTSd%CTY7BTP3RT`PeBU5)X40%d0DCC$C"!V+c 323@D 4YB3`PeBU5K={:e0USScTss)+W+"+ (++++m{b`cp4(*vR+c`ԞTbp,q=0#'3+ + "?R;q=+#*g wrs` fp&c'X30 Nepd0DCC$C"!;b0]t,h }tp&'s"g ( %V+')+W+"+`(kb(3+kkkkqm0 "?R;Ѳ&-!܍ ϱ) g wrs` fp&'X",p6d7sD$Je@UTS5s3h2*c 323 " #sgxfp ( %V+)+W+"+ 8(+3;++++q]0e "?R;fPQy&-!܍$ n-!܍ d-!܍ Z-!܍ P-!܍ FX+  s+j,  >X+ s+ (.8>Ӕ4s+,q=0#l 3s  .8>h|4s+,q=0#l 3+O-B "?Q=1q= #.q=#s+,0#D+. q=## q=##X+  s+i,  X+ s+ .8>64s+¤3X+ " R+ {-!s+cR+0 7s+d,R+qmc`P' "X;nh D&jbeO-2 "?ŴHg cpdDVPZv-!R+@ #s+d,R+qcPD( .8>xҼ4 "?X;"q=-#-!܍ "-!܍ O-  R+ js+d,R+q=e+! q=##+" q= ##.8>Xi4ahMّnml k0bi bc@egaɑߘ-ّnml k0 0+#+<+d0DCC03 j4B:2 .8>tC wP/bnb{ V:01W:11t:21r:"3103dDZLC   .P>,c.+s:0;D:2 #+ #+X* .8>`Ѵs  zbs:rR*S:dZ HbcXaR* r: #+S*r:$#+/M+*"!*%<0#+*U0$#+/'+R*c s* X* .8>(CR*c .8>(4aɑߘ-١nl ,c 323 " k#B+ C++CyP/hfHr& ,j R+S;d[ bL+0!,j B+S;d[ T-!R+JX+ G=1܍>X+ =1܍R+ 0=1܍'-!S+{-!V+qͭݡV+gW+ ݡ܍^ɡߨٱnmll bб!bDb0aɱ߸١nml k0  êp*>JP00*,0 3C$ d DBCp#j$!* * *1aɡߨ-١nm|l `kPŻ  êp*>JP/0*,0 3C$ d DBCp#j$&* * *aɡߨManl k0Żj@ŪiPřʍZň}\ 0!lZ)81q2-b`1=cPrMoPq]0eb`"�3 #(p/Y $"""|P2#$ *(&$Ƞ8ȠȠ9 Ƞ!> @/b 0!k)81q2-b`1=crMq] c`363@D 4#(Xahmanl k0Żj@Ū']u€ Èp(>HP. 0(,0 3C$ d DBCp#h$W- wm  g*c 323 " #Crs xX*c 323 " #B20K""Ejb` =,c 323 " 2d`DFC$pB0CqB1CrB2CsB3CtB4CZB*C!("(C((R(X( *y (t- 4(/(W-'( (( (2&ahmفnml k0Żj@ Ùp)>IP.B0),0 3C$ d DBCp#c$Ke@UTS%pB0CqB1CrB2CsB3CtB4CZB*Ci0B) C)"#)X) u 2 )()"bf 2 )b) ) )aɁ߈=فnml k0Ż,c 323 " j#C lP/~z@,c 323@D 4D3 Oi "?cdŧL ?,i ᒪ€ Èp()V"K2p()V"%S*c 323 " #C     ,h "?cdh  aɁ߈-anml k0Żj@iPřCp wp'>GP-=0',0 3C$ + d DBCp#$Cr{ }   kb` 2b`,,c 323 "pBg4HG"2އޗ@G(G[T43G`Pp"eC)B&X#f 6bP@(#'X' <+)2ޗއ ' ' 'aah]qnml k0Żj@ŪiPřCp wp'>GP,0',0 3C$ d DBCp#g$+' "'#2 'aqx]فnml k0Żj@ŪiP€ Èp(>HP,X0(,0 3C$ d DBCp#h$-("#2 ( (aɁ߈Mّnml k0Żj@ې Ùp)>IP,0),0 3C$ d DBCp#i$')#" 2)) )aɑߘ=anal k0Żj@iPř€ Èp(> HP+0(,0 3C$ + )d DBCp#$C    ,o  +h qp+cp,c 323 "pBhC98"30IC.8c@343p"#Cr{ }   ,1  )* !- -)C=}( 2(=S8;2(b0"##03 #Br~ $+c 323@D 4B3I =84"(C-.!("(+c 323 " #C"'_-R f bc`/0R) c 323 " #C"! )Y+c 323@D 4B30L F'(+c 323 "pBCRD"HpBCSD#Hp"#r"*i2(b`r8#2(b`++c 323 " #C29 X20 s20"(Pah]١nml k0Ż  êp*>JP*0*,0 3C$ d DBCp#j$$* * *"aɡߨ-ّnml k0Żj@ې Ùp)>IP*C0),0 3C$ d DBCp#i$#) ); )39229()aɑߘ=١nml k0Ż  êp*>JP*0*,0 3C$ d DBCp#j$%*" * *aɡߨ-qnml k0Żj@ŪiPřCp wp'>GP)0',0 3C$ d DBCp#g$,'#$% ' 'aqx]anml k0Żj@Ū]p wp'>GP) 0',03 # - €È€È|bp;Bb i fpb`"�3 g2 ' ' 'aahMqnml k0Żj@ŪiPřCp wp'>GP)0',0 3C$ d DBCp#g$.'#$% ' 'aqx]anml k0Żj@Ū,c 323 " h#C O  !cr(`+R8# d DBC " $CBIPRB4Ms20JX" GF+g wrs` fp&'C2<6T2TH42U"U8#.S(XBS(p67S3 +c 323 " #C22 r8 s2sH4X"X8# " # !.(F,K .F+@ .F}`baah=nm d ",0)F0,a nm "l p"<@)a anml ,k02o P/~H!+4;+,1+b +bj1+2;"+, +"$#+,;b #ihbj o3 L   C|,$c~,$h xbp # bp ,$c\f"+t({f "?c`+U{,$i ! + +bq$b $ #+t{b;%*)g @"?cp+"+,i "?cİ+""d*b+aah-١nml k0bcbaɡߨ-nml B  ,C,laanal =bk@ŻjPŪʝnřk*&΍sb`b`mc` p&0-q&1-r&2-V&&-jb`1a+= b`cЍ -  .wxbpmc`dЍib`+:2 bЍ|uu)f ,"uc`alahman|xl k0Żj@ŪiPřz)'2 -`bb`B ?cph ,;de@b<(޲db`c#,%- "* ) -`"(bo8 *g )j 'i yĤ -*$( bpx$(!-)1 *}(cp4- .-)(*-(&"-$- ?1-hm mc`dpDbp p&0'q&1'r&2'V&&')}cp{4-*$(-)$-(" m+&( +1-bq=d`ep-`"c`t,0-`bb`2 ?7g -0!+1-bq=dp](0bp<'޲db`cpD,-(8 -2 :*m(c` 4b`$ -`"e 1]2 ?g +0-bp=dpe`(bp<'޲dq-cp,ah]!anml k0ŻmQVbP1]&d63?Bb06di ?mc`;h b`$,f (c`de g ȠȠgbc`(,- =de b` bb)¡d-"cu,aah-فnH!-1=l@'][Ż,o 3 |/"""`P2#hfdb`^WBX/Sj"""P2#86420.b"c.301=1c.#cWMY]4 0!-!b"ccWMY]4-!ܱ+0 ,1@W-ȭlc! * *-l$-^"-\޽]q- !  1-q-"" !1-+(*q*?Q-+ 2b+8'-_Q- q=3?"j b0cY,-_Q- 2q-I,-_-_2޳d =\Ml;$έ_bQ-cU<W-ȭlc(b@q-"" !  @"? 1-q-"" !1-ޭ^ޭ]ޝ\Qb c 9q-,-_ =\Ml$Ν_)ޢdb}bc< W=A#h+$ .Dm j .Ldj b $0#gQ-3<}Q-ȝlc0bW-Y- q- !  1-q-"" !1-+$(q)? Q- 9?"i b0c], j Q-  2 ?M,j Q- 2q->,j +i cd]lw(b*޲dQ-cM<Ɂ߈mٱn0-1=B*P/Vh,*v@r8nljhfd*`,\"XVTRPNLJHFDB!p-R"q=R3#!p-C2qMCT5D2DT5E"E4#!p-C2qMCT5wD"D4#rq!p-C2qMCT5hR"R4#cc!p-C2qMCT5ZD2DT5VS"S4#RR!p-C"q=C3#II!p-C2qMCT5@D2DT5h6#52a n0-1=.hvb-q-!pMbpv.l-nml-= "cЍa-nml -21Bbpanl -2j12j< 0 !b0, -"j" bcl --2j12j-nmh -jb!.@.@a nmЍ* X"cЍ6  0 3# "0#.D.@!.<.8.4 "@ .8= " {1.$= a nml zanml |ana $b 0- p=# p-4 ١nm.'." 1>Љ.Ȥ!  ê*k *.ݲ .Ъ%>#.А!.baɡߨ ٱnml k   bze.65+p,0+q,1+r,2+s,3+X,(+ݾaɱ߸فnml ̳ͮ ib#>#p"R,(j(<2k搱baɁ߈qnl .. viB)/.Ȑ!.v..>ij# ""2..̔ [.Ī#([x ..viB)/ b#>#0012v. "0!-1!i !>@Dej.MviB)**BA)}>-!R)E h 2b#>#q279*1 &B ! $ %  RyRyRyp' =1܍ h v.qxٱnml k0 c3N4p3R3eSEpDRD4!aɱ߸-ٱnal k0b#>#pB0MqB1MdC4pC0BqC1Bp-0#q-1#@ɱ߸-nml vv. B, baqn.rvkB+.R+"+͍݁܍ i Y݁b#>#p"j . HB**EA*}AR*?"+B+*:R+"+}q܍W i )qb#>#p"j . B**Az} A+rR(R;# "!=쉏#gv.qx nml v,u<6#u,v<5# ,,a١nml k0Żju. B, B,/ " .:  b:.: b/baɡߨ-an.dvkB+*A+} `mab j B**SA*}OaR+h ab c3Nt4pc&!-ä -}ÔpR+R:#&p -!bRR*"+A+""u +-!b?!=쉀=#gmaR+Jh ab c3Nt4pc& -!b0*i B)*A)} !=#g1bv.hˆ[ah ٱnml k0 " .95 bO ,,vaɱ߸-ّnal |=#f1b0k .4 B+/1R+H j !|=$#f/-)-"-p-0*q-1*r-2*s-3*X-(*.@!.@u,5*6u,65Y-Tɑߘanl k02MjPpp "@r02p+0,map+1g0+p*r=0#ap*0[p/0*p+>$#.8p+. 8p*>$#.8vp*S .$p:# pK$   B$BS% A$AS%b@ p !0# ahManl #> #qpR*#"* " s.48"bx cB+ _ " . 8 bx ݽݭ-!-=}dp]'p' 2i - -v}q-h 'f }fpA+'*' 2''"$'-!v'cuv+6'5bwahqnml #>#xqB+ rb#>#jq eB* b " .$7b .7wb Uݽݭ͍݁}bp=M]p' *݁܍8i (f %!=#g͍g }(*( 2(("$(1v(cv*6(5rwwaqxanmP -h-\4 -g=\1=\c1܍ .-X,`b!-`-`=X#!-`b!ܤ  " '.-T1#=`b!-`0-`=T#!-`b!ܤ  l܍(܍ܤ! .-P,>`-`#>l2q, p,F20v2B3 c1܍!$!-g-\!-`#>#p"R"0-`=P#!-` " -g .86H+ ("cЍ3 -g  " !aP.>:.>@4DeЍ,-haah nml #aٱn0-1=.vkq-!pMbpv.ɱ߸-ٱnml k0$ݾ(.L.. ... !...aɱ߸-nml bo  -P/B@D<:><:86.,0(&*"    ! aٱnal !-k !+c2 -!!-+/k Ż-<ɱ߸n0-1=2M3]B P/ $A- M١nml k0B WP/ "hz.cDq\! @$q,r@Io !>@Ieaɡߨ-١nal A,!@<3BLkCo@ ahP/"> .2Z C,V+bq<Q#q,0-r,1-bp=H#EC,Bq,H,q,I $P/"U,)+bU<$#U,!j b*V,"j b*!>@H !>@HDɡߨanml k0j@iPbph bjg bdwl(0Gb0"aahMqnml k0j@,iPcdeh .!."># !0 02@< ..:....c 422NgCp;27q;37r;47V;*7p:67q:77r:87V:7$p9:7q9;7r9<7V974C=7S="7r=>7c3CD- GC$-aqx}qnml k0j@,iPcde>-"؂ڈ-7b$(">g2B',b7 #-C7##-7##b7 b7( ~'뇔 aqxm١nml k j B eP/x~ C,0#  j ⣱A,$Mk0JȰ@," A,( @, CA,$1*c !4j#+(Ȱ $Ȱ ȰCȰCȰ0H, j !>@GQB,$ &*@  % +k ŻA,(+k Ż+k Ż!>@G#*;8#"aɡߨّnml  Ż baɑߘan-_l0k@jPp@0-B,$C,0# @$ B+$C+# $ B* $C*# $ p-"?""^kLg p-"D#-0q1!-_cdei b.~ .`&T41.~;. -_/ (-_ C,,h C,,h ႪC,"{(h vňB,$ C,0# #2@C(ňB+$ C+0# #2@C(ňB* $ C*0# #2@C(ň-_ B,$C,0# #2@Cp(,ň(L pHňbp,!(,ňB* ,pB+$C+0# #2@C}B,$yC,0#s#2@Ck(,gňB,$%C,0# @e #@B*$ C*# ` #2CP pD(,@ňB,$ C,0# #2@C.B*$C*0# #2@C p(,ňp(Hňbps,!(,ň-f,o  (ň(h ň(h ň@,"A,( (h ň@+"A+( (h ňB* @*"A*( (h ňB* @*@<# (h ň-_'( ň-_((0ň.~ݹHi ) ""50q-1!2-_cde)$-=T.~cBP`n "x2- "|3- "(-bm -2->D2.X$W4.DD(.D'-c2.~M8b,mB* #,-c6m_bn"F(\MeB.~B! o  c8.~BP c8.~B] . (p,qf .~Be` B* b f .~cBe`~ c2.~BPt bc, @"?1p,dÙc38# h 5cdi 5C<938d0^) 5C<33d0Q 5C @(aɑߘMnm "20 3d "l0c@d 0#a nmЍa qnml k0 "20 K"c> "2B4j:j0h bcg@d_ b("ij "2:j0h b8dg0c@d_ b( aqx-na-* "2"20=!2#--*1S-p=#!#-8ٱnml k0 "ڔ bcc3b]aɱ߸-ٱnml k0 "ڔ bc#c2b;aɱ߸-nm--1anm--1anm.>,@'a ٱnm "k "cKl , 0#aɱ߸ qnml k0 "20K"c D? "2B4j:j0c$h b0cg@d^c b("ij "2:j02d#h b@g0cd^B b( aqx-ّnml k0ݽ  b",ʒc8IDH42-aɑߘ-nal 1G--F--E--D--p-<ٱnal k00!1--@!p,0,q-p=#!1-@ɱ߸-ٱnml k bcaɱ߸ٱnml k bcaɱ߸ٱnml k03b "ٔ bcLaɱ߸-ٱnml k02b "ٔ bcnaɱ߸-nmb1P,-a nmb1p,a nml "X',4( .&a١nml  b- ( "A+ bc(E &-kŻ "X'Zaɡߨ١nml  b- ( "A+r bc' &}-kŻ "X'aɡߨٱnml Q ]bH k bc "ؔ baɱ߸ٱnml $ 0b k bc "ؔ baɱ߸ٱnml  b k bcaɱ߸ٱnml k0Żb b ;lc baɱ߸-ٱnml ik bc bk bc "ؔ baɱ߸١nmč:l : A,k cbcbaj bc "ؔ bbaɡߨ ٱnml k bcz b0k bc "ؔ b.aɱ߸ٱnml k bcJ bk bcaɱ߸١nmčl : 2c Bk cbcbj bc? "ؔ bbaɡߨ ١nmčdl < 2c DTk cbj0 bcbj bcbaɡߨ ١nml k0Ż(j bc b^;kbc baɡߨ-nml  3!  c +" d   "# +,!"b0j#"aanal k0Żj@b/i Ȁgňbp:qL30d4g p ň -c#(+-d Db;P3# !=#f %#h.>PCBA]Ehl04d,l $@\kP8+f",!j.aɱ߸ ّn,\l k0Żj@Ū. b!t+=-1#=8-!܍ -8}=#!-8-<=:# b!Lȝ0b>M>]:Q<b!.>#A"0\#b0!.!.-!܍W ı+:2<=!2-8-!܍D -8|=#!-8ɑߘ=5nml 1Ada١nml .̔ M.Ԕ  ʍG]..̍ 0@Jޮ.>ԑ2@Pȍk + #+<2b0> #b0dj0c@O!.<2>ڱ3 d:BD #.aɡߨnml .",P"anml .",P"anml !-ʱ"aٱnml k0Ż.", >3< #aɱ߸-١nml k0Żb,.<  b" .(  b" "X!6.>T@I.", aɡߨ-nm.>@.a nml baqnml k0j@gh⇐bcg="? i 0y12)aqx=١nml k0Ȭb+p:;1g 2bCj 1*aɡߨ-qnal k0b,g bcpf j bpcf k i0 "& ᛳ b)!c ?21 "? Ù?by!cpf0$i bpcf i '(b)(,91--Co #  (i9q-C:4 1-!>L@m4 q "ؔ %.XFp- .8;b .@0 "X0bcplp8#!1(q-"1-Pqx-nml ,?aٱnml ȼq+p;#!aɱ߸ٱnml ȼq+aɱ߸ٱnml ȼr+aɱ߸ٱnml k0Ż+",P"aɱ߸-ٱnml k0Ż+,@"aɱ߸-nma nm-aٱnml k0Ż-p21B,;paɱ߸-anmhl k0Żj@Ū,;]h0₱:# ;(-h 6,:2 +#b!ܱ)8Jg b4'";f0cp63b!ܱ):g #"<73)=h#i řaah]١nml k0Ż+c 322 " 2j #LAj.(, "X;aɁ߈qnm-"j0 3QC$Z3# .>,A4 /ͽ+ jP̤0ʻjdDbP:~tep0P*c !";3depaqx ّnmd-" C!f -j P,"s<#jb!܍ʽP*001c 13dADb^(-jr:9#s*)aɑߘanl q-"j"` fQ&c 322q&#""kk Q&c 322q&#,"^j m k Q&c 322q&#ʒ "Q2d0DCBq"$ʒ蔠 "Q2d0DCBq"$ʂ "Q2d0DCBq"$ʂi-c`X-cP]Ѝb`Jf -ЍC0011!-"2!-d`]ԍM gp -f "6#R $ $#ahanPa-=l@" "Q2PBDr"$"21,-=#!˱,( ]-2ñ,Ď@P/dR$*(&$><:8 "P21 2#/ .d>@0 03C$D4|"#$< #,`f&$"&R"yH&$!&$ "Q2@D4 f p"q6rFֲ8qp:DpB<#< #],1]-!- "P23rB4ʃ8d0DCBq"$,=LPX (c 322@D 4f b00x3qCNrCNs3>0#Xa nm-anml .cD.؍Daٱnml  "X k .̴ bcDbDZ. !Haɱ߸١nm\l s.-\t.-`u.-dv.-hw.-l. -pbk dȭ\cdP*baɡߨٱnm.t '.u2 .j !H@".u!.u"l m<c2C$0 tb"""0"\.tb"""0k +X+h+dbaɱ߸ anm-=l -k"""0-dcl b0>D.P0,|.1,}.2,~.3,.4,.@k*,-d2l b0Mk0c@@Pa-nml =b>a-فnm0l k0t-"""0j b> C$.0*.@1*.D2*.H3*.L4*.P**.Rc*b>(C$.0*{.1*|.2*}.3*~.4*.<J**bi *c@P;5bc;0* " 0. 0 bȝhh bc@P;ȍ4b03C 0! PcNe(lb !*l-aɁ߈-nml =b>Ua-nml =b>>a-nml =b>'a-ٱnml =b> -c """0k "+l +b+^b0>j -aɱ߸-ٱnml k0Ż,"""0ܲ`aɱ߸-nm-l0c23304@P:@a-nml -!,b: l aٱnmll b"""0p">P# >L# >H# ;b!b"230k #h.D;30#\Daɱ߸ٱnml b"زͻ0+X 9+Xbaɱ߸nml banml b"""0p"aّnml k0j@Ū ";.H@ .`@ .4@ b"""0$@ .@ ȝbcAb@ @ ",.$@ @v!Dnaɑߘ=فnml k0j@ŪŜbh930i p#cd- " i bc@naɁ߈=nml ,==Aa-nml !<2330#danml anml -2 122#anml ,)=1ܤ:X"-!ܱ,:X #0"a١nl ,Pɡߨnml-""""0hb!bYaqnml k0j@Ū,"""0h (h  7"(hi ͘h͙)  7 )i )d $d b9e@gPG  yaqx=qnml M,"k0""0h (h  / +ͨhiiͪ* bcM7(h6(hp xhb6j )aqx=١nml bc """0j *l"*^ b0c *b*^!*^baɡߨ١nal k0Ż,c """0j +Jb$J`$b00!#-b=b:S-p=#!#-Dɡߨ-فnml k0j@Ū,"""0i )l")d )b9`#)^ b p)cd+D " h bc@)l")b!)baɁ߈=فnal k0j@Ūb  *!-b"""0p"cd&;ؐʙz " h bcAx) !-!Q-HɁ߈=qnml k0j@ŪiPřŌbg830h p#:;d%G- " h bpcA4-aqxMnml ,aّnml k0Żj@Ū,;2 *# ޝbaɑߘ=nml P,-anm̤!--22?  "020"2!0#$ 0 3#!#a nma n0-1= "-ؤ! ,031h# q-!pMbp-ش-١nml ,°1Tûj q+c1+ j r+cg2+°1Tûq+ !+aɡߨفnml ŬF1TÙt) 1h ) 0A 4)03PC*IA C.cR k ,4c 1`êp*D 0*k c 1dêp*6 0*k "1d k ذͻ1`b0#1TaɁ߈ana-L=Rl@̱3#1-,  0%- b%q=d. c* l c3@D1x4 ~ # 01T3+#,#-#aɑߘ فnl 1=2M,c "@D1x$Pr-!qMbh pj "1\(hP⫱kiɁ߈=ٱnml ̱,k 3   .  b .  aɱ߸anal ̤ؠʪ1 bg h q-rkp0 1}Tqbf j "b b(0=2b0" qܱ&, ' p-Ӑb"031x#P" $.( Vb . Kb03MT,   ~ϐb .4 ',  Tahnml !, aٱnml k0b5   b . -" aɱ߸-qnmh-h .l b" t 1T"t20 23qB43"i#ؐڙ1ph݁b>p1Twt' s' ݁>(t' ݁>P "1`w c1>mh݁ ">`p1Twq'l݁>XO݁'>4E݁'>D;݁'>1 k j -jb0Ј3dЍ-j -jj ~h݁b>$݁b> "1t { -*aqxnm--2j12janmP, .P, = "Xb.$>@@u a nm "P2!2a ١nm.$=M=-=ݾ c3C$1| 01T3#(tCB ! #* 0#1~°1Tû+(:y+0 êP*R^+MP:23q+^P:23r+Vs+^;Pt+ $s+;3qK4Q3Bs+;3qK4Q3St+^;1t+^;G°1Tûs+^; s+^;6°ûP;23 1Têq*&P;23r*s*^:q*r*s*l t* e aɡߨ qnaȍb=!b>,M<  b-!-€1TÈ((:y(0>0#6.(q(Vr(Qs(Lt( Eo(€1TÈ1(f(2( $3((*!$4(  "P0 2 1T"qBQD.Bl0 c3@D1x4 ~ #0 + 1T"2 s؀͈1db"031X#P2Cg@BGDbj p-ِ 01T3+#,#-#-\qx ّnXl k0A* #,ȭi bcG ibc@P, b>4B ޭ? -?-?ɑߘ- ٱnml k0Ż+:Lq"0,#0,aɱ߸-anal k0Ż+j,i- = M6ȍb}cpmd`6T]\QbP8hP ݁&23) '! , "c.#)#)# )D.)E.)F.)ȍ\݁) V= ݁) U= ݁)T=w -)) ) :)) '-\ah-١nm-l0k@ŻjPŪ!aɡߨMn0-@-031# @-"031#T"n0-@-0t3@C$ A-AC$Q-Q3#bٱn0-@- .! "z & "@°1ûp+,T".Y @-2%"K dBp$#0$ L]Q- /R CLA-ɱ߸ّnml b <-"j(  . ,b" 1êp:#T"iq),Dj  .-2j12j!baɑߘ١ndal "10- 1"cC52R eSp540q"+D" + .bc #-.-!bs .bF p-ɡߨ'nm1p,(Rq,$a nm1p,(0 p,(p,(e,,q,$0q q,$ݐa nml ba z baanml k0Ż,i -"P+(92 A (;2 : (!- 1z)'!"<fa܍ 8sa=37g A# '  *=#j Ū!aah-ٱnmh- "1-h! 'b!ܱ,c "°1ûpK$T"rK4@3z .!,=h#l aɱ߸qnml k0Żj@ŪiPř b )013C.q34DC$  # "1j "1 ^€1È(,!(,"".c8,d03pX5$# q84#r84#q-!pMpqx-bC013C,e@DpO$$q#%r#%€1È8,13p((9 8,13q($/ "1-aqxm١nm ' 10, ' 1, ' 2,Ƚb0@Pp+°tû0+ެ,ެ-p,(0q,$0$"+, 0 dr,4daɡߨ nm-an0-1= "1-ؤ q-!pMb"031#T"p-س-qnml k0j@ŪȞ4b€bÈP(! (".  bpXw@' b@' @'* .\@' bbbP(2w "b . "Xl 2\aqx=nmФ 0#ba nml "b  .{,. aٱnal ,03# .) -,03# .,!-C-<ɱ߸فnml k0Żj@Ū* *;i b<03PCrSh0cTd6+P() (aɁ߈=nml ,0Lanml !w "P21 23r"#aٱnal bS ! "P2; 2,0-1##= S-p=#!#-@ɱ߸ٱnml ,03PC$Q3k2+aɱ߸ٱnml b°ûr;K+ +Q+!!"aɱ߸١nml ذʻ+k +! 03#" ܲ " -! *" ,-kŻb êr:J *Q*!!"/aɡߨnml "Q21PB4 0 2,!"  aٱnal k0Ż+0-1##=bjS-p=#!#-@ɱ߸-١nml ])  "j r"P:dڐk +P:# *aɡߨّnml ,c /k ñ̤iŪb:K30dŒ4 Ū -c#J D-c aɑߘٱnml k0Żb;2 2c #V b{aɱ߸-nm-aٱnmȤ °û +!!+ P"+ ȍ#l 2aɱ߸ ٱnm m  "k r"P;^ l ,P;# + aɱ߸ qnal k0Żj@Ū*j 2*j +,:Mh0c@g@d3bp0d "10-! -*9d0DCB013rSEQT%h -PTs35g@du"S'-6)p=#i ř -6-6qx= ١nml ,! 031# . >@,k Ც 1êp:;r30 p:;r3#aɡߨٱnml k0Ż+c 322@D142Íaɱ߸-nml P<:8 4(( ((iaahmnm, "X@ ,ja anm-l0ܭjޝ=h b0g0c@P!P}bpcdץbpcd) .$>@anm p"21 2#0#  a nm q,021,*,a nm "P21 2 "Q2Z"2 a ٱnm s,02٥3,ڙ ),"k r,ck2,aɱ߸ nm "P21 2 "P2Y"2 a nal Q, ! -, "- -C-8nml b -an0-1=2MR-bЍo    <  : P- [ r-WbЍo   .$Q-L ] - l .b"4=ٱnml b . b 20B4k b0;0K4K@[ Edaɱ߸١nml k0ŻM "Q21!2P21 2{ "Q2Z"2  "P2YB4 @Dp3sRSEQBrR5Cc@342qB4ȣ" 0!:#:=%:0$:031Ҕ0 /j . Q*c 322q*#20B4j b0:0J4J@ZE "X aɡߨ=anml = "QP23r"#"⒐ "p9k d0P52 b@ " 9-#!j Ū"=# + p"21 2# c382@D gCf 'c`L--jŪ)0 3PCB$! C # "Q2ZB4 PBDrRE4d0DCBq"$Ȃ)"Ȥ  ( ! #(-%( $( "1Ҕ 2. 3 "Q2d0DCBq"$20B4h b080H4H@XE "Xaah-nml "1Ҕ ".  ,s. " e "X,' "P21 21 "P2YB4 @Dp3sRSEQBAr"# B,03 # .,><@n,! ,0 3PCBA Canm " .> @F "P23sBCDPEprB431!2P21 2a nal ,0-1##=S-p=#!#-<ّnm " .>(@ "Q2PBDr"$"211 .>L@ p, ° ûQ;d0DCBq;j4i *cL+Q+!!+P+! +P,-"aɑߘ ٱnml T "p° ûP;3sKC$Q+rK4#,Q;d0DCBq;4. >8AQb @*+ !-Q-@ɡߨ١nal k0ŻbNj ,! Q:# :#&!-b.,?, "X !-.>HA-@ɡߨ-ٱnm-l0ck b020B 4!;0 ;aɱ߸-nml bS"-"aٱnml k0Ż,#aɱ߸-١nml k0ŻŬb#baɡߨ-١nal kbjk Q+! !c,!-+!!--@ɡߨ١nal kbhjk Q+!b c!-+Q;#!--@ɡߨ١nml k0ŻŬb!.>4Ab "Xb5 aɡߨ-فnml k0Ż, 8+ 5bȭcL) bȝcL) bh bcL( bj bcL( aɁ߈-ّnml k0Ż,5 +-! . *=#j Ūb-"Fb-! bc =1ܱ;13-jŪaɑߘ-nmll =b!,0a-١nml k0ŻbŬ⢐ܭb"aɡߨ-ٱnml k0Ż,("aɱ߸-ٱnml ,=k0%$aɱ߸-ّnml ,k0j iR*"03l#P"$)S*%)Q*#)Q +4dP/Z$)*! )%")*! )"!!)")*! )"!!)"!")*! )"!!)*S9#")aɑߘ-١nl 1=,2Muj Q*:#1-k032 r-!qMbp-гɡߨ=anml ؐڙpnh (h b031Ѝ8Pk Ż,!*-cȳb!-p Dbz"5cp372fe &cPL'. -r+qb!-p bz"cp372=3L' -rq-c1pŪ aah١nml .; ;d03S%1ԔIk@Ż 013 #b0:ǁ hêT*Ǽ "Dp*wq*r,Ǩ aɡߨ١nal kb;b> K&l .<>,A7 -+ , 1": hê$*b` 0*[ 1* ,K-Hɡߨ١nmĤ!02L 1,D !0B3,!0B2,n 1ê .0y(,k *c ܲp! bl "!# "t%, $, aɡߨ ٱnml ,k06  b-"`aɱ߸-ٱnml-. l "p> ° ûY+>8Z+>Xaɱ߸١nml k0j@+! + "' % .K .D * :# 9* :#/ .4' .(  P+* :#j .  * :#. aɡߨ=nm-!0^3M~anm- 0\3MdanmФ 0\3"#!# #a nml "\ "#.. b> anmЍ˛q a ٱnml kbfb; bbbϫaɱ߸nml b  -.> @-anml b2d0DCB)"""1$a١nml bk b"2310 j :#1,c 322b"""1#aɡߨn0-#=%M=nm. !. 1"0@a nm-anm. b"""1 z  b"""1  .a =X=X@ #@25@32A!=xP#cEAePU=#cEA@ !1A@R鏤!鏤 nml c anml aٱnml k0bcaɱ߸-nm a ١nml $k  + Ң*᲍$-b0#3baɡߨٱnml = 5" "3baɱ߸-nm "!"a ّnm-l0<@D4 0# 2b"03#p"c j00d@Ųdb=j02e@iP"V aɑߘ-qnml k0M]ȭb(p:듴)i řd#c2e@gP"*ᇑp*  aqx}?@P !1A@R ! ٱnm=l .  . 0y.!..<M5U+! ,aɱ߸-nmLl L $d ,=L!L $d "=LanmФ">٤Aa فn0-l0 *j d,=e@iP! bނ-̍1Uk p- b0@Œ )i p- i b9PI!T Ɂ߈-ّnl 1=2M,jŪ+<# ,A">#, eZUȝbcd}r-!qMbp,ɑߘ=qnl 1=2ML $d ,=ȍ  p,-r-ȍ0h >b0@B3ŒjŪ+ ("># b*02b0-b!=Mč  r-!qM-pqx=ّnml k0j@Ūs.p".$J,c 323q.#"<Ś.H3ba.4(.,!.<bs.p" aɑߘ=anml k0j@i 0#!0#sp, 4b))X," ނb 0#X<32 0# MN @)* 0#@b!p<#cb01h0q3~ȍbc@c4b000k Ԕ ݢ .8b=@ 2$ -   b  -,S Q.4-  = #=$#=4#=82b@/b>4M,1$=,# b u -<41$=<42 b 9 -,<5^c .4L^/(-,<5M.@.@ "c "#>4#""$ .@!bm aɁ߈n-2@@C:12@-"@@"  !-D-22@@C@ : CB@@#, ,-"D١n0-l0 0,1,&,p=2<>2}=1>1|k D+DS+&,. D+"$p+ p+ 9>#0,p-r;#2,p,3/j )p,*"."."c "#>#u+r;#s+. +r;#+>#0,. .D+d D+dr+ p=#;22 p+>#1,ɡߨ-١nl k0bc ?21j0-"c2d034N4rC$ & u3#!b"c "#>#r2MD4 D2D,/b"c "#>#&-"c2d034N4rC$ b0-!bc-!b!cɡߨ=nm. _ .>2 b0S .a ١nml 2<k,Ȯ * @+/ *.baɡߨant\l . 0">@83. "!. °Tû+((+(,=3,v %f$. !. "p"( J?-j b>ȍ) o # Lh"P *"ȾȾ,Ⱦp ȾȾȾ bc@DpDPURUU`) ލk -;b> ) -; b <ȍ(c8b4j {-  p( Eh b>\d;{-9-1Q,h z-1K,g b b*72 b*c h0z- 0!Hb>he@): y-0!b>pde)/ -4 d b>xb>|M) bd) !-;~`m-;&(b -i`! b"cpdB]EpD/U0ݍ-0,h ~ ==#b>M( :kJ@. !. ah#١nml k0j@X," ,cd2o0#x  0# "xb1de)0#x  0# "xaɡߨ=١n0-1=*bp< #c qq-!pMbpjl  cɡߨ-qnl 1=2Mkp,Biq+j+p:# !cr݁q}bp݁bp' #cr݁q}bp݁bpr-!qMbpkq+ qx=nh0-1= -x 8"=W-x q=1pMp-nml 0@3dЍpanml K,D-"2h0 BABb0p-"ha١n0-1=ĉ1jK*U $c #t* %cq,c,p3# !cq-!pMbpksʔɡߨ-nml q, t, s,.s,t<3#s, t<42aٱnml k0aɱ߸-ٱnml q,kq+ K+Ubq,q;#1,k,0+b,p, k K+Ubq+q<#1+lkq,0+bq, ;34ˤ 4,aɱ߸anmh- d"cЍ) -hah-haahnml q,=C$ hm0\aٱnml k0aɱ߸-ّnl ͭ*c -͚h "p,#,:#k0 1+c+0# U+b9p,͚h)0,*h!q*c-2hd0PU5p\5B2C=k@Bc@rLBd@2C 14-".q,=31#q, 22ͭ*hp<#:0# 1+c+0# U+bmt_-2Bc@"d 12-2d"2212,t@-dɑߘanm`-=0=cp"-h=d "cЍ-c -d =12 2# =2#> =1#a` U=#b0raah-nml -!baqnml ,-" c <32=k0 " $bPj bg 001727i 09 D)+1)9q)h)0(188bciaqxّnl k0Ż2M3]. J, ,  "Y b7j  bb*j 4b iq* l 1 D*.~$*b,-s=1rMp0ʤ 10U:*b0b -. -ɑߘMnm-anml >hNPa->f0 cNe-a١nml ,k0j bcNP0->Z0 cNY-aɡߨ-nm̤&<mN anm`-,--`.D C-`K"D b!܍ -`q"-h=2p3# =db!܍ U=`#b0.D a`aahnm "cЍ "cЍ&a nm-anm-anml .4 2p,  . 'b.$ q,  . J, ?,  . , /K,D.@ ., anml .$  r,u.  bj.,  q,_.  p,  ] \aٱnmtl .u !.u}޾u.u" !.u"$ 5$.u#   5.u!.u.8 Ƚtb0PP+ -vY y "  .(  .u!.uaɱ߸ٱnml k0.$ (.# ." .!..  " .<  .L   ., o Y\"P/ ,8DP\ht.ȍ F. ?. 8.( 1. *.L #.x .p . ~.` w.4 p < . fb$b % .  P$ !.!.aɱ߸-nml !.Pb .  .D   "cЍ.,   \"cЍ .Panml .  b b0,3dЍaٱnml . bt { qK,D @k b,;q,@ .  Z aɱ߸nml t,. q b1. f s, -a١nl !.-"k -j "\cdr*d -Ͳ"Xk -"d(c8dRɡߨفnXal =3iJkq+,0-bh0=H0b$ .bcȞdȍe4-. . p-cde4-. !.".p-- .t-s=# pM42i 'c "B20 t=0 pM]E 4Ti b0cPAI(t-Ɂ߈-*ٱnml k0!.p,cn0,.-Ǥ0>aɱ߸-qnml =#Mk Œř$j łň*b"c.#""c3$!!1$a-١nml k ) " ,0#" êp*> p*9p* s 0#baɡߨnml  0#a١nml k0j@*;#c  ȭbc!Ùp)c p)aɑߘnm T"c @xD14R2T"(3$>^a nml ,"22?b0anml ,aant-|l0 k h -;,-4q Xb|Aa r &t 9u 3w8  0#!k i c|A3a!&h  0#! -; 0#-4rq 0# -;-@m4b`=|  b`m:c` ?- "" w&-4=|  -4c`?-- 0@4! -0BD-ah-#nml   0#anm.i">h#|"a nml   0#anma nml .T*!.T!.T.T">T#1anml .Q*!.Q!.Q.Q">P#L#q"-a nm.I">H#|"-a nm.E !.Ea nm.@ !.@a ّnm-l0d k@@K,$$ + /t"- /"mp- 0! Ƚcͭid^p+0)q+1)r+2)s+3)t+4)Z+*)* P*! )aɑߘ-ّnml k0j@Ūbi bcd  0#aɑߘ=nml  -Ȥ 0#-aanl 1=k@Ż%']䢱pWq*+k*i řpbq=dȀhb>dfiř p bq=d|ahMفnml k0Żj@Ū+:@DATREi |$h0cdeaɁ߈=ٱnml b03ACB4k |#c aɱ߸فnal k0Ż+#Ƞb:#*30dŪŲ4 .  -cŪ # 0cŪ#Қř-c*)h bde'dɁ߈-ٱnml ,03ACB4k |#c aɱ߸١nml k0Ż+ 1Ū>ܤ .jbcy .aɡߨ-nml cA>a١nml k0Ż;j0cd!aɡߨ-ٱnml k0bcA aɱ߸-anm-l0k@ŻȠ|g bp:"@30dŪ4g    -cŪ # 0cŪ#Ҋň+"((k -c+f -de`5aah=فnml k0Żj@ŪO;Ji0ch@de aɁ߈=ana-d=hl@kPŻȠ+h01䲱= -gr  d0#. = @ X ,f -d= De`a 0#bcp!N4@3dŪ4h   0cŪ#Қř,"))&l I- !,""0-c1#=32  0cŪř #S-p=#!#-- c,f -dde`ktahMفnal k0Żkb9 A(b)0- 6b .| p-@"2@)(   .^b)0-@"h  ~  . b ' Ū HɁ߈-nmФ">@!%0=a ٱnml k0 "01%>! bc ~aɱ߸-ٱnml k0p,! 0,+cFq,21<+  0#aɱ߸-ٱnml h"p21 02<k b0c l"p2C0B,  0#aɱ߸nml p,! 0,*c*q2 p)p)=,+!*j *j Ū- ci #9d\aɑߘM١nm=l k@+L$32j@Ū+<<2d4,* ,aɡߨ=١nm=l k@ŻjPŪ#;k0+k , c2,"db aɡߨMnml   0#aّnml k0ȝbc;bpj  0#baɑߘ-١nml k0j@Jbc - 0#-aɡߨ=١nml k0j@Jbc  0#aɡߨ=١nml k0ȭbc+;bF - 0#-aɡߨ-ٱnal ذͻb ! - ݲC-<ɱ߸nmbp,=#a ّnml k0j@ --i W) ,t)! +u)"l *aɑߘ=ّnml k0j@ --i U) ,S) +Q) *aɑߘ=ٱnml Ƚbc|bi  0#aɱ߸ّnml k0j@bcd[i   0#aɑߘ=١nml k0j@bcd9aɡߨ=nml . ">@r, !.-b a١nm-l00;k0c d,e@jP- =:#aɡߨ-١nm-l0j b0@uŲ db:aɡߨ-anml =k@jPCSň 0( <2tN4 0#,u>0#` u>0#,"t>#p"g ޗbpcN-7'*  4'#:2 i 4',"t>#p",u>0#.bt7f b0c`@b6'܇  cB 9't' ,"t>#p"x,u>0#aahm١nm' <2tN4 0#sq+L w +sr+D u> # b0!1u.sr:N,ȮeF 0!1w.sq;N$e8aɡߨ ١nm,"v>#p" 9k #-;22w+Z+ !y+ t+ ++ w+,t+*t+ ,"v>j2p* 0* 'aɡߨ be"@20B20C23C!C!C!C!D"B"菪"%~ml R"،Ǵ,  a~" "pantPl >-i ȍp?0--@+""o+ - 0-@oI N $i n A@,N n:A,F f3p-"-ܤ --܉=@,A aA,N nB,(C,)p-"-ܤ --܉= .  0  9  0 -~-! >--/@ޑb=#6-f -0d`" r p--ܤ --܉_=b~=#v=# e?- E@,""" bNm&?--0#?=-0T#?=- m- "-mc`- b`=0b`>2s#-"t=2-#H-- -0= -0=N r=@4!#-BT"MU s D402=t=5s]TS221?s3]t-$=2 =q|-2-}-3--c 3222225=;(uM$#/rq(s-4-r-3- ̉2-g 3}w 't=2B s]TS4]s=2r]TS3]r=22=p r 03=2=g r- 2-+<-s-+r=52==  - s-2=2"==2=-!p- -"p-  !--221?=- - - - - - -  !-}=2==@#A|-$<-dpD$<-pM$<--=-=ah#١nml @  + -@,00# 9 b"+"@LkBⳔb+aɡߨّnml k0j@i @,@;# ! aɑߘ=#2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 9.0$(@DpD$b@d  "0B @Dp4#"#0$b0PU0% ١Ĥ@1mkѪAᬤ 񪉟01ɡb$Header:c19d.s 9.0$pPU0% pPU0% nml iaqna-H.|  b>tg.|!.|.tc 422-Hp"#2-- k wȎp( >x# Ȉp( ]u+"l3-rxp' s=#|qrbcSj bcLi s #  r+"  r+! ,b r+" r+" bbq(c 32524r-#2--8 k x+!8+bXqxٱnml k0 : u,:"w,+v<#"7 b0+aɱ߸-anml p,0Q? i0h  Q/ᒒ 3"g f b0< 07tj 0< 07tj 0t$"p(7 66ȠFb( b₉ȠF *ႉ 3"5k7bn .b"c.# ⲉ .b!0't0t 0338#b0aahّnml ȾȮp@*+ v,c 32.j#Ⱦ@*+@*+@*+Ȝp)c 32.j#@*+@*+@*+bp9dk p)2dbZk p)2dbPk p)2dbFk u,d  2+u,"0d "0+u,2db)k .aɑߘnml 4 0 n maٱnml k0 b: : #0, ,b: #0,baɱ߸-qnxd-xl00*=PB+MQB,MRB-MS".-=&=$="= /=P,$-Q,%-R,&-S,'-T,(-j0 4b"-Z2=["-#=#b"-20"#=Œb= -ͽ "b"-\"#-b= q=#řpu bz"-Z"cp3=q#4w-  b= q0--  b= b--  b= R-b= I-Q--2-=#-0"@2A-=#$-."@2A-=#$-,"@2A-=#$-*"@2A-$-(up bzcp3=3(8"-ڂ*qwb",C pbzcp3="-34"2qwbzcp3="-34"2$b",21 2tp bz"-28dpDMDhC+qwb"-28*2Ūqx-"anal k0PŪP, -Q,!-R,"-S,#- $-i h&b"c-P3'=cg s-d0f@c{ #s-c`œň\ah-|(<LXl(<Pp,Hh4Xx,Pl0ThxF$Header:errlst.c 9.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceedednml ba١nml X,2 /(,X," X,"P  r, ?X,"  "  -,03#2,,=F - Ȱͽb  2,X,-(,X,,(,3 T"2$3 " |"X23  X,"s,!j ,r#.Ⱦ(l0.iȻ0b1 $.̤!aɑߘ nm.Ĕ  .ȳp,  !0 0,a ١nml . Ȯ."X*" bp Ȫ;.p+ X23 p aɡߨnm "a antpl k0X+2 .(+"(+X+" X+" "rq+21;q+s;:#q+cd K i 1 q0+mhX+" ?+=?d 1 i `X0kr>+=[ {- p{}bp j 2X+-(+X+,(+3{ h"" X+((+1hqh 1+cd  i s+!0+ʑ1 X+*(+ bah-#١nml X,"""r q1X,"s, 0,,cd  X,*(, aɡߨٱnml ȰX,2 "@bk ,D ȰX," r,Љ 0,2,1,3,(,,baɱ߸qnml k0j i A;+!h @a r w !"r "g !"r7 bcp@* i ) @+ab0Bk 0*ޚ3*  (*@+r!(*"(* 1*2*baqx-١nal .4-.5-.,-.0-.1-.2-.&-Ƚbj "cd  bk "cd  ">A  kbj "cd  !#Xɡߨٱnml 5k b1baɱ߸anml k0pj ,"l +f b&%"嬱, b) b(h yᙱ b p bpbaah-anml k0pj ,"l +f b&%"嬱, b) b(h yᙱ b p bpbaah-١nml k0M]X,2 -(,-2,1, 3,b=d #bX,-(,23 0b=d X,"  aɡߨManml k0j@pX,+(,"2v?r<0 <"9pg,0A - b=#rX," r,q<#' bs1,bpp<#0,m śX," r,1,X,/(,c9,d g G0, Bp,! 0,bq,21<@"0#.-g0X," 'b9g X," `0lX,.(,r,1,,cdX 0# s    aah=p>PU0% ١nml p,  0,X," p,X,2 2 r<0 " j0q, ,0Ak bbaɡߨqnml k0j@iPbch X)" #Wp)!0)s932 @,* @,q9C1I #@,c  :ᒁ5p) g bq9dprp)q9#1)p)@,c 0# p) bq9dUq)(1)bp9#0)b b!cg b'aqxMpYPU0% ١nml ذͻp+ bp;j b aɡߨٱnml k0@,@;# @,=b@,  +@"=b aɱ߸-pPU0% ptPU0% nml 0t3@Mč  !ap%PU0% JAd @ DBDA$B逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 9.0$鏖c ( $Header:lmul.s 9.0$pPU0% فnml j k@+ @+X b: 30;j Ȑab0f z .hbaɁ߈anal k0p,6-q,7-r,8-p+3-q+4- 2-1-0-b"-" +b$ "-2g8c3=30 f b0c3=3 >r!vbp łb"- p-0,q-1,r-2,pah-pPU0% an0-1=2M13]N^e@BNdPDEDNf bP&-q=4 b`=g.܉hb͍pj.ᒳNbcp jp- k >h# @@+*ˉp}.rhp-'N.bcpp .Ⴔx i'y @jk.⢳ @*+kahMana-H=L21=q->d0f@!c`a=Hk2gq->Դ# AN͝Hbcp bbj N-L>#2-f bc`p  bbj Nbr=p r ͎@@*+ʑͽHͭL.⢳{Nbcpp .̉Ჳz!Nbpcp .̉.+{2-igi.̉ ⢴{ ipg2}.͎@@)+ɑrjp.kb=L#0-cMH4#1=.д2 b@c6ݽHp-1-p->д# b=L$ݭLq->д#&Xah-pPU0% 耑耑耑耑耑耑耑耑耑ٱnml k0r, X<3 =X,"s(, 2X,-(, 3,r,1, 3, 0,aɱ߸-ّnml Ȑ p,0# 9 qLC)$0,q,)1,baɑߘٱnal k00b"2341=""42-bcM G ( q-t=#r-u=# t-1-c2C$4u-2-C$4bcФ@$  s-Pɱ߸-pnPU0% plPU0% ١nal k0MH]L B(-1 0-b=Hjdp*! 0* q:C1J%#X-" p-"s=# q=*#q-!1-q-@"cЍ cЍbPɡߨMa` R%S@DEpB$TT TTqB!!!S5T@DEpC4TgXR!T_PR!TWXR!T OR!4R0pCT %d VP RT d V!R$4pCXRPRbaXRPRba"PRbaTXR T XdV! R TR #4pC!PRba$Header:strcat.s 9.0$` S 5T@DEpCTVPR!TNXR!T FR!4R#pCT T @ RT T !B$4pC@ Rb!Bb"PRbT XRT T HRTR $4pCHRb!PRb$Header:strcpy.s 9.0$` R%S@DEpB$TT TTqB!!! $Header:strlen.s 9.0$ّnml k0j@i@, @+,  ,baɑߘ=ّnal k0   jb#c.30;c.#1+ t2+ > !j Ƞ b"c.#b#>#qB0K0Mr"1+1- 2+2-dD43 ô EȠ b">i2) bdC44) ’  j␢p-0#q=?"#0-r-/q=321=r-"2-r-"2-p-0+q-1+r-2+Lɑߘ-nml -Ĥ0b  -0,-aٱnml => / Ƚb/0,-(1, c"  -2,- 3, aɱ߸nml q,0A8p:8 !- 0-~!-}!-|!-{@,*  >-@,?-233 "~=d0BCD$>-@,?-p+ >- >-~-0u0#>= =.! (8-@,* @,?-233 "}=d0BCD$=-@,?-p+ =- =--l h@,?- c $ G % D iE) O -UX 8/"""P2# (l&(<-p+ Y;--{ S 0(O <--7-p+ D;--{ > 0(-x  X x(.*<-p+ 7-0-8";-w-;--}  +(-| (p+;-*<-x- !=-}-0d#=={- -~00#}- -dz- up*! 0*q*B1J(2X*" p*"s:# 0q:#"* q*!1*q*@"c9 0c1}-~=#~-!;-{-c !0;-p*! 0* 0q:C1J#X*" p*"s:# 0q:#"* q*!1*q*@"c 0c}{-  }-  0']q|-**bp{= @'0qbp=#}=2?=-! ?- 0(-r^@'q(w-x  7 W7-|-( $#Œ|-!<-{- |=#?--* w- 0=#'q{-);-bp=#}=2?=-! ?- 0(-rq@'(p+(-~0 1-~}bp(~=2?= ?-- -"?--  -~-~0!b'cpMe.ȍp{x- }-?- u0?-hp@( -!?--~0 1-~}-0#== 4-5-6-x=2&=-m(0ap+q;}M]$ Bg p&  -(-}  +( -|  (@'""" -~@'q l(y- ?- 0(@'  0@'q(-! ?-@' @'q(-6-}- ?--{  .(y-"9--! ?-u-!5-y-!9--!?-@' @'q(t-!4- (}v=uM4tM48dpCA~=47==2C-~ >!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"c"-~c-!?-@'+ -  3p*! 0*@'qq:C1J'#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qc- C-~0>!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"c-~c-!?-@'. 6 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"cc@'qc[Ȥ!?--v=# 9p*! 0* 0q:C1J(#X*" p*"s:# 0q:#"* q*!1*q*@"c) 0c!-!?-@'.3p*! 0*@'qq:C1J'#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qc!?--u=# 9p*! 0* 0q:C1J(#X*" p*"s:# 0q:#"* q*!1*q*@"c 0c-!?-@' 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"c{@'qcsˤ!?--t=# 9p*! 0* 0q:C1J(#X*" p*"s:# 0q:#"* q*!1*q*@"cA 0c9-!?-- ?!?--w=# 9p*! 0* q:C1J(#X*" p*"s:# q:#"* q*!1*q*@"c c-!?-ȍ 6-}-0#==x- '=-}-!=-m(0ap+q;}M]$g p&  -(-}  +( -|  (@'""" -~@'q w(@'0y-!9-@'q(}-!-{  .(}-!=-@' @'q(v-!6--E  e E(y-! 9- +( -(y-"9-y-c0d"0(y-0dx9=y-:q"0(y-:g#0( (}cpvMH41~MC7M=2C-~ >!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"c-~c-!?-@'+ -  3p*! 0*@'qq:C1J'#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qc- C-~0>!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"ce-~c]-!?-@'e 9E 6 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"c%@'qcŤ!?--v=# 9p*! 0* 0q:C1J(#X*" p*"s:# 0q:#"* q*!1*q*@"c 0c-!?-@' 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qc- ?!?--w=# 9p*! 0* q:C1J(#X*" p*"s:# q:#"* q*!1*q*@"cs ck-!?-\ȍ}-0#== 5-6-x=2&=-}-!!=-p+q;}Meg}t@'I N -~@( @'- *-| -} g 'q-tr'@"'-}  +'}-! =-}-!=-(@"0e# b%@"#6-{ b%@"e}-!=-b}=Mt45#5-A4P.5 B45 1!6=5--Gb$@2e0E2b%0E2}v-u=#(cp2~-#7-- C-~ >!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"c}-~cu-!?-@'+ -  3p*! 0*@'qq:C1J'#X*" p*"s:#@'qq:*#q*!1*q*@"c<@'qc4- C-~0>!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"c-~c-!?-@'e 9E 6 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qcv- 4p*! 0* .q:C1J(#X*" p*"s:# .q:#"* q*!1*q*@"c .c|!?--u=# 9p*! 0* 0q:C1J(#X*" p*"s:# 0q:#"* q*!1*q*@"cK 0cC-!?-@' 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qc - ?!?--w=# 9p*! 0* q:C1J(#X*" p*"s:# q:#"* q*!1*q*@"c c-!?-ȍ-{ &}-=t#!g0@'q @'.}-!=-bp!@"  .(}-=t#(!6- (}bpv=8#~=27=- C-~ >!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"cW-~cO-!?-@'+ -  3p*! 0*@'qq:C1J'#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qc- C-~0>!?--w=# 8p*! 0*-~q:C1J'#X*" p*"s:#-~q:*#q*!1*q*@"c-~c-!?-@' 4p*! 0*@'qq:C1J#X*" p*"s:#@'qq:*#q*!1*q*@"c@'qcˤ!?--v=# 9p*! 0* 0q:C1J(#X*" p*"s:# 0q:#"* q*!1*q*@"ca 0cY-!?-- ?!?--w=# 9p*! 0* q:C1J(#X*" p*"s:# q:#"* q*!1*q*@"c c-!?-ȍ %(- c2f b0c`@eah=#ٱnml ;baɱ߸١nmt8l@kPp0!1!dde3aɡߨ]١nmt0l@kPp0 1!\deaɡߨ]ant-|=M]-|>--?-~-1-=2=243/8==0#q-"6-r-7-v- w-  !-0M04xM#  .x- - .؉. 9--Lg gmb`= -3- x] !0-$vM$-w==- 4-e -=J b`"&"&"&h-+=#&/!-pm661?xML4t]5#=-"`-2 MC]RT]MC]RT]MBM-#22?h0-=M̍ =c!r-.221?6P @m"e-03D=0u=3-wmdv-,&-w-,-mb`= A--"=?2=p&c "MOB?M=-"22?-=M̍.=̍-$.=ȍ%$.=č$-Ңb"0-221?bp!=1:# :-9-. p-221?-#"Vs=2=Ш:-в2=Ф '!@AB$-"d.$-MD9Mf -c`=-d#PFQ;]M$@#AP|#"(0 #)k z=d>$b"0bp!=0#b"ahm#anm\l@kPmh0a4j2h` 0c#pbp"c.# b/c=k#iᙪᩤ !+"0c|q#Xah-ّnal k0j@p,c 322b>"0-b>"1-b>"2- &!)p;# r-c3d>4#2-03;# #2-q-!1-q-c3d>4#1-řȐ 0!)p;# &r-c392d>4l#2-03;# #2-q-!1-q-c392d>Dh$1-p-d>4d#0-řp*03;# qMA#1M0*r-p:#2-03;# qMA#1M2-q-03;# pMA#0M1-p-0,q-0+r-0*Lɑߘ=@`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 9.0$djqBpBCCCC C1B0Bd ;503;### #0^3_#### #03#### #0$3#### #03#### #03q#### #03#### #03@#### #03 #### #0 A<4"0$$Header:cvd10.s 9.0$ .$Header:crt0.c 9.0$ Zx$Header:fpglue.s 9.11$\xFPAFP_PRECISIONasmansidebug32int286uprulesvprulesschar^xcat rmakecopyr16intstmpi1tmpi2tmpi3tmpfilesobjectxrefmmannotargetdefineh\F$\\DwtHCOM#define <V8 \DDu-st-pt-pro.lst-off-sptlist-lext-iext-cramhcansihc.prohcansipSOURCE.OPTIONS-banner-before2SOURCE. Write_treeMetaWare High C Compiler r.vm  \@u@ Serial ,Copyright (C) 1983-87 MetaWare Incorporated. V@PTarget: \ )\`P@ݔ (@ uDATACODEALIGN_2 CHAR_IS_REPUPSHIFT_FILE_NAMESDOWNSHIFT_FILE_NAMESCHAR_DEFAULT_UNSIGNED" ݤ@ ݼ\u file: Enter name of resultant uD\6P @ʘ`Object module not generated.Ҝ!\H<-f ZuEZQ4>$T[d-\: QQ8 fxWARNTMP2TMP1objectOBJECTassembly _286_NATIVEAssembly deck not generated.:>>>>>>OOOOOOOOOOOPS -- do not use this software; get help.@(ASMQQC_phrase_structure(30-Jul-87 13:00:10)\ mm B M4N0IHKS5GcJTcdcdfd|;<~-MGV>NHKS,TLPIU4 +O63)}F*5R=JWUegfO~V8SI6THKEUGJ7}PR;|;<~jV>|;<ST[s>U4463}5R=1=|;<qI>*lHKSGJd4o63WU5=MG_cNHKWxULPI>@OyF6EkJX|;<m~-uV>S,T|;<U4+63>)}*5R=vm"syA$=In|;<~-V>%&'S,TrtU4r+y63\)}*5R=R|;<~-7V>[]So,TwU4 +L63r)}`*5R=D|;<jy-^_>!"#$z,|;<L~-+V>)S*,T=KU4y+k63)}*5R=|;<~-9V>  S,TU4D+]63y)}*5R=%&?|;<U~- V>Sh,TU4y+863g)}*5R=|;<~-NV>ZS,TC{U4+63)}*5R=|;<~\V>gSFTOPU4n\63`a}5R=Vc+/d-`|;<|;<Ip>HKE>GJ  :=C:=!I<HKE)GJ'(C.GXqEIWr?HKEGJZ</Y3X9Ir0HKEGFJ7d:21 8[I@HKGJvYuIVHKE]G.J|;<t-n>D,c.4+63)o *p5=qbBA,vivv2v;<=>?@Avvvvvvbv vv5v 22222222vvdlvvvvvvvvvvvv,vvvvvvvv vvv2vv/012{2vvvvvv222222222222222wQv3vvvvvvvvvvvvv2zvvvvvvvvvvvvvvsvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvxSvRvvvvvv ^vvvvvv=vvvvvvvvvvvevvvvvvvvvvvvvvvvvvvvvvvvZvvvvvvvvvvvvvvvvv^v^vevvvvvvv^vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv  DOO y99 }v  yy8999C  e  9 ?F9buo|(z  m_xpbb  "a(m ~ltL[9u`'m8|(  dY ay y LY#zM!M1"zHcTgEeL*>P UKdhP~R Kl<TUM3sioD &-26:<AWqY_~rx8;=J\Q^Za#dvhmw|!_*n.L+  nn ((hh #(((rhhvpjzl(2B #(+hifW_aHJQQiuhlTYEJMQQ!"$%&')*,-tymQkjjjjjjjjjCC# bhbbha/f Q9 |f|bj~}cEd blmww# "SjjjjjjY\TLAWR^V<=`Ev yiiiii_IMQDff}}y qqq8 mk~ &klqqmm ~~q &}ff}f{xd:5  ,&)$ +% 8ook&-!.*uy-n;Z?@]Kyjny ZZb / X>  g ,bs7y /r6e 7cwy-n90234  /bbwwpo& lm yinyz1m k}[CGPaHNBFUOs&-  |& ~aJ nn  Bbcaaa"""A!!  B B B @!!aA a!!!!!# " " A"##"""  " A c b! "bace@#c""#aAAA@#cbc A@ c b a " B#!"BCbb" bbbbbdab!cAcadcecceibbcbccaCAAAAAAAAAAAAEac!####!###ADdb ddacbbbbbbb!"Aa# @a`@`nn@@@hhijkkkk ljY\TLAWR^V<=`Emj_IMQDZno]]Zpp qhKKKhhrrssstuvvvvhwwwxxyyhhzsssk{{||}vvwwxxyyvvwxys~~hhhhs @ @h[hChGPPappppppNFUUOhhXXvh)ssk@ @@ @@ @ !!=#pragma%%=&&&&=()**=++++=,----=->......//=:;<<<<<=<=====>>>=>>>>=?[]^^=_cc_far_near_offsetof_packed_unpackedautobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongpragmaregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile{||=||}~ACsASCsAbstract_declaratorAbstract_declarator'Abstract_parametersAdjectiveArgArgumentsArray_specAssignment_operatorCS_prefixC_conditional_compilation_expressionC_phrase_structureCalling_conventionCast_typeCompound_stmtConst_volatile_near_farDec1Dec2Dec3DeclaratorDeclarator2Declarator2'DfdDfd'Dfd_or_Dn'Dn'DnfdDnfd'E1E10E11E12E2E3E4E5E6E7E8E9ELExternal_declarationFunction_definitionInc1Inc2Inc3InitializerInitializer_listInteger_zeroMember_listMembersModMore_parmsNameNon_function_definitionsPELPLACEParameter_declaratorParameter_nameParameter_typesParametersPragma_callPragma_idSpecified_declarationSpecifiersStatementStorage_classStructure_memberT1TS'Tag_Member_listTagged_typeTermTerm'TypeType_or_storage_classesType_specifiers60.51961.52065.51468.52869.52273.52576.51377.52681.52782.51684.51286.51887.51589.51092.51194.51795.52496.521108.151107.150109.047109.448109.449112.281112.078112.079112.480113.444115.263115.461115.462115.464115.465117.23117.44117.45119.482132.142134.473147.46148.455148.456148.457152.154155.038155.439156.040157.343160.452160.453165.258165.059165.460166.045166.446167.01167.42169.47171.466171.467171.468171.469171.470171.471171.472173.441174.375174.476174.477175.223177.031177.429177.430177.432177.433177.434177.436177.437177.135179.174181.29181.18sequenceprogramspecifiersdclndclnfcallconvpackedstructunpackedstructemptylitfieldsmodebitspointerarraylambdaelambdaparmnamesparmsetcvalueinit_dclnIlistfcnroutineparmdclnblockclose_scopeopen_scopeexprrangerepeatexitlabelledcommaassignop_assignorixoriandishrshladdsubmpydivmodif_expnorandeqlneqlssgtrleqgeqcastoffsetofnegderefnotnotipre_incpre_deccatpost_incpost_deccallsubscriptfselectargskwargsarglabeltypeselectfor_eachiteratorpackage_hugevarfieldinposimpyfdividivremfcvticastfcastcclitXORcompasrfeqlfneqfgeqfleqflssfgtrfabsfaddfsubceqlcneqcgeqcleqclsscgtrfmpyseqlsneqsgeqsleqfnegfposmeqlmnequnidiffltmpy224div422idiv422impy224fminfmaxuminumaxADRTRUNC_max_mincvtbcvtwcvtlucvtbucvtwucvtl100020003000chklchkhchkluchkhuulequgequlssugtraddressaliascodecommondataexportimportpoponoffcalling_conventionroutine_aliasing_conventiondata_aliasing_conventionyielducallareaoffsetregrefto_farinitparmdeclspreeval_adrpreeval_valuaddusubaddaptr_addptr_subptr_diffwalkedl_to_eufltintrinsicliteralsglobal_aliasing_conventionc_includeendifelifundefdefineincludeifdefifndeflinedefined_find_char_skip_char_fill_char_abs_move_compare_move_rightstatic_segmentunknownparmnames__inlineLast_psg_constant  "$%'*+-./0257=FLY`eq &-/59=CHKOQTX^flqw}&0CLp   "$&(<OSW[fv )3<IY[^mx| %,3:AHOV]dkry"(/6=DKRY`gnu| $(07<BIRWZ_hmpw !(/2:BFOVZ`chlrz       $ ( , 0 4 8 < @ D H L O R U [ a h o s w {      3 K Q V ` e i o u {      $ * . 5 ? I S W \ d o } @@ GFEHB"% r@$ A !# OVTRQ/0479I1:()*+,-3>;U' ?= &.2568<CDJKLMNPSWXYZ[\]^_`abcdefghijklmnopqstuvwxyz{|}~\*<#?YQcdIv 1CUgy^ c*-0}a38JOafx{!3EWi{ /ASV[mp6ty5Y~;i@h1<jkgU9  86 8@> @`l8 8@  8X3gWU2,,@,@,,,@) 8@.0)A"0?)@A" @`l8> @`l8> @ 8@ ` 8> @`l8 ` 8> @ 8@ ` 8 ` 86 @` d8> @ 8@6 @` d86 @` d8> @ 8@> @ 8@6 @` d8 ` 8> @`l8g9W; 676CBA.CBA.qpsrUsrsr 8 8>0?)@A"{~~{z$$$$$$#01'+&&'*&,!% &&)/(.""""""""""""""""""""""""""&&'"""""""""""""""""""""""""""&-&.\cc\[[\ZZaX`\b\[^[cc\ZZa\`ab`\a`  !"$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~E89EEFLFLLELUULF_L_UeXeefl_fll89eluEFuLlfLElUuLx_U_ef_lleulu#pragma(09BIP\frz !2 2 h.. 4+3-3! 55!67x8!99!$;;*:;!# <#=#>!@?-AA"C'D/B!EG F includep pragma6IH define6J!(K!dL!MM#NO! Q  Q"\"R\S!?TT\U!.W Y:V.W_HV d.eV_"V $V $ #V*g=fVV=fV=.>'V<'=.V+.=fV&.=fV-.=f>.V=f|.VV=.>.V=.VV! 4!_ijHk!*Qmm/lm!**:;!=n@!oZAAp*qp"\"r\s!?tt\u!dwxv Gz G Fz {!_I|(~(_J} P !#!V  '!T!.]! Y!.W=VLlVUuV d>V _8c9c!07.WsVLlVUuVH!.WE\_e\!kV .&VV  4!H$;;*:;!# <#=-AA"C'D/B! pC '!tdy!y|} }  ! '\'\!V Y!VBV V _8c9c!V HgV c! d!VHp '\'\!p!   V OV LlVUuVH!x!#NOV!!<!c\> !>!l\> ! '/2;CR]bh~'4?BIT_ju#03;MNQTVZ_`cftw|  (34JMOR`cflnoptuvy|   +037:CFILOPUXY]`bghj{QQC_conditional_compilation_expression(30-Jul-87 13:00:24)\ '4&%#)sP$*Qkh2?5S7=zg,F>;368<I#$!KLRll>&-;:N<l=l JM:%9khl(lI#$0KL>&1./;TN<v=lzJwM:%lI#$KL->&;N<I#$=&JfM:%`lzI#$yx%&UI#$,KL>&;N<=%RJM:%A+I#$KL>&;N<de=bwJkM:%I#$KL.j>&Wbc;N<{|=^EJ M:%I#$oKLZ>&S;N<[/=FUJCM:%I#$KLk h>&H;N<=vJ 'M:%&"%#)V$*lFGI#$cI#$&&'Y,&_Z%Z#)r$*%!qm% Z',& %#)\]$*!p(^_`aD[',& O %X#)$*n~!,( @i1,I#$ &V4!(?'B%A @3!+I#$(KL&jK>p6;Nm<W=C(J%M:I#$EuG&|L{}78O"|D|Y *%D)EorrGqqEEGGDDDDorrqqDDDDDBrEqGDHDDEGtxyDT} HDHH  HMHhto ;-%  H2lPP"#/"!""bo ;----%%jJYl+PPg""_"aV$ l   '8P2n`" ''+"1.W2 o1O{; (dMf/+Y#co'= f=BDGIU[]~<QIW: })^(moy`RU 0299 2599Xui9QN ]P\agi%)s-1~##bJbIdfdife l t n#jjjjjjY\TLAWR^V<=`Ev yiiiii_IMQDff}}y qqq8 mk~ &klqqmm ~~q &d:5  ,&)$ +% 8ook&-t X>  g,6ec90234  wy-n;Z?@]K 7  lm 7/ryiny ZZbwwpo&ym ky-nb1yjny/&  z ~}  A!!  B B B @!!aA a!!!!!# " " A"##"""  " A c b! "bace@#c""#aAAA@#cbc A@ c b a " CAAAAAAAAAAAAEac!####!###ADdb ddacbbbbbbb!"Aa# @a`@jY\TLAWR^V<=`Emj_IMQDZno]]Zpp qhKKKhhrrssstuvvvvhwwwxxyyhhzsssk{{||}vvwwxxyyvvwxyhXXvh)ssk@ @TLX@rklklkLk ܌lƤ|Ɯtk܄kl&ltPRE-05PRE-01PRE-07PRE-06PRE-03PRE-04PRE-08PRE-02implement_preprocIdentifier required here. Unknown preprocessing directive."Mismatched #if-#elif-#else-#endif.$The rest of this line is extraneous.(Argument to "#include" must be a string.-End of file encountered within #if construct./Unexpected symbol in expression. Line ignored.3Malformed conditional compilation control sequence.VkLklHkk@ nku&lk@n~dPn0kk|lH kklH0On entry to secondary parser recovery,token is: >(n@nlo lPRE-09Illegal expression. Assumed 0. $Ř֤nnh#Ho #XkklkkukLknknlHpڼHoPPreprocessor:Eval #if (#elif) expr = (Secondary parser returned on wrong token%(%^kkkp %kk Throwing away token: %Ǭkk&FLk&kkk*#if/#ifndef/etc. currently in force is at 0There is no #if/#ifndef/etc. currently in force.'FkPREPROCESSOR:POP:0Tried to pop empty stack of preprocessor states.'kkp not will won't compiling code now, !compile code at this level later.!Conditional compilation level is ( kHk(rR_ulHknkkr`C_~dx qrLINCLUDE)xr\)*&\ݔ*~dqklklH FILENAME_IS LINENUMBER_IS+@rllklH@ident+~dpqPoXlHqlplpLPrkup|nwp0rlkimplement_preproc3<kk~l<`lrp\ ANGLE_INCLUDERELATIVE_INCLUDESTRACE_PREPROCESSORTRACE_PREPROC_OUTPUT4kPk@54tsLs5sLs6>t\ts6sPLs7PL7T@s7spts@(s has  It has defined at parameters:  replacement tokens:  is a no parameter macro. is not defined as a macro.8Ƥ|9ZXuxƜ@9܌u9܄u: l:ntl:ss;uusPtuMAC-01 Macro name must be an identifier;s(Ɯ defined at < RnyXzsttlyxzl}z,} yy{|t@. Actual parameters for macro being processed: TyUyUXy|ƜXs|P@~Ts܌z<u{||{{~HPtzXzuxlzv<yv~PSUBSTMAC-07 and invoked at Macro invocation ignored.!Subst called on empty token stack$ Subst called with stack containing 'Incorrect number of arguments to macro XyYDYyPu[(P@yyx{8} yLyXt" Tokens are being substituted for ]y^"#{`|syXx@t MACRO_OUTPUTTRACE_MACRO_HANDLER_yxsyt0@_@`@ p(|#line Lexical Error near here.dL0<dLefRfǬgh^@ڼ Warning: ID not found; tree is:hi\i$dh@ڼ&The front end has just sent me a tree:jj@ k0ukj܌LkPl mmHm~nHX $,ԨP\ONPOPSETOFFSKIPPAGEIPATHRESETTITLEINVERTLMARGINRMARGININCLUDE C_INCLUDE R_INCLUDE SKIP_LINES RC_INCLUDE EJECT_PAGE FILENAME_IS LINENUMBER_ISr0rr`ADArssXslsLt*ttt܌L (lexical) uV@#Unexpected end-of-file encountered.u@#Unexpected end-of-line encountered.u@Unexpected char 'v:,vp@, returns Process predefined #Predefined scanner was #Scanner:Process_predefined!illegal predefined scanner calledwwScanner:Scanner.Exceeded return address stack limit (RA_limit)xnx \ELSE[yVy yz,p TS= TL= CP=z@p Len=Scanner:ReduceStacked token#Exceeded token buffer (T_limit){||\@d| failed...Try alternative ELSE succeeds at branch B\@Call Jq=|@p B= CP= PC= Instr=  Subscanner accepts@ to screenerScanner returns 48t8Pimplement_scanner.|V|,@| total instructions executed.)S-code instruction execution frequencies:` TRACE_SCANNERTRACE_CALLS_ELSESx@,v||,Pp| backtracking branches failed. was maximum backtracking depth.' was maximum number of buffered tokens.5 was maximum nesting of recursive scanner/else calls.|`@ calls line# ELSE:[At line# #CCbackups=Scanner summary: Total cursor backups = Summary of backtracking: Attempts at each branch: Summary of subscanner calls:DSince Slow_skel was not specified, statistics could not be gathered.SWC SWR SWAN SWN SWANS SWNS SUC SU2C SUR SWSET SA SN SAN TEXT GOEOL SHIFT DEL REDUCE ACCEPT CALL ELSE SCANAHEAD_Y SCANAHEAD_N XCOMB IFC IFA IFN IFAN IFSET IFEOL IFEOF IFEOLC PREDEF ERROR PHP^PP8~PLPHP|܌@Invalid pragma or directive.H<P@H͠HPԨp(l,D C= CT= TN= TL= SI= Screen: TS= (to oracle)provide_screener Original class=-- returned by Screener.H$L~<8@͠b(l@`$Ht@Ǭ Token.fil LOWER_CASE TRACE_SCREENERDEBUG_SCREENERScreener:Init_screenerPRINT_AFTER_PROCESSING7The following token name is unacceptable to the parser:@ T:@p  tokens. reserved symbols in Screener summary; there were @pMaking bad csref from column d  p@4 *** NOT ON THIS LINE, but on ,N4`\lpLINE #Levels ----+----l4`@L 4< @ n@p to Adjusting L,@pPP' to Moving  chrs='`bPXP@ p@ chars:Just read in a line of 4L@P`,Pp ܄ LM= RM=LFC= LC= LLC=Source LMCL= RMCL= RLLC= RLFC=Exceeded Card_limitMargin settings are invalid.* Default of (1,Infinity) replaces them.@& refer to the correct include file., Source text references hereafter may not>@܄ At include file named " there are too many include files.ҔҜxL,Source:Include_file:Immediate include not supported: full processing disabled.L v .ݔ At include file named " there are too many include files.Ҝd$dd0L܄@*Invalid margin specification(s) (ignored).$XdX`@ characters in the Card array.4@¦ռ`ǬDPRINT TRACE_SOURCEINHERIT_MARGINSDOCUMENT_INCLUDESDISPLAY_LEVEL_NUMBERSFULL_PROCESSING_DISABLEDLLǼĚxz~`,PX0 PɈ@ǬP v@ɨĔʖŔʸ|ŴĀ$---SCAN TABLES---No scan tables foundScanner:Read_scan_tablesX@TV$΢ult,SOURCE.* (reversed)ψ(:|܌ЦXH|8݄.H݈\Ҷ\`4Ӟ0\݈\԰tXL<ڼՊX|`l(4D,@Xexitreaderrorreduceaccept inadequateinvalid parse action݀ݮXPݔ-nnt-listparser t~LǼ:d@p... dx܌X@(syntactic) unexpected symbol:2@X FOLLOWS: EXPECTED: p(X@ Dest=x(#= q'= LP= BO= RPL=STACK: Token=ACTION: Prodn= NODE= NO TREE PARTPARSE TRACE. Top state=PParser:Lalrk_lookahead/Tried to look ahead too far (exceeded TB_limit)!@pX Lookahead -> Lalrk lookahead returns Lookahead starts in state PZx`Ɉ,x Parser:Parser ACTION failed`PɈ,0lDP|@2 reads. reductions.Parser summary: unit reductions. was maximum size of parse stack.Ǭ`@ PRINT_PPO TRACE_PARSE dD@Ŕ@͠Parser:Read_parse_tablesI was entering the Symbol:7Two supposedly distinct terminals or node names are notάFǬĀx p---PARSE TABLES---No parse tables foundParser:Read_parse_tables@  lt4,uSOURCE.2SOURCE. (reversed), bLR@|,>$` FORWARD: LllXx,@DǬ0 D00lp$Pushing back token # )=px$Action(ǼL$$pX W= action=Parse step; q= h$ .$hCSYM W= $hlDID NOT  consume popped symbols.  l$ & 80@pLpP$< %= W= Opt= Rest= HFIR= Pop#= Dist=RECORD  -- BEST SO FAR!recovery_moduled$0 ppP W=Try  CED= Pop_cnt=Xl06ƈ``ƤƜ was through  up to but not including xp$WHAT THE HECK!! I=P`Ȉ07ƤƜ$7*** NOTE: The above repair compromises tree integrity.>`P0<03Ƥ004L$`02Ɯ``xl01 05`deleted replaces REPAIR: was deletedreplaced with  was inserted before  8l0zBx$pp; Opt=; Best=Skipping attempts at H<<p$Popping stack by  0P!!~<(pxX$ NOT attached--- Pop stack; pop_cnt=$B$ƜƤ`>>> -- aborting.$011@1009$08Ƥ DELETED: Too many syntax errors"This error is too costly to repair&END OF FILE reached without recovering&P$d(80&P'L'\Ǭh(`BRIEFDBERRTRACE_RECOVERYREPAIR_WITHIN_STACKINSERT_NONTERMINALSENSURE_TREE_INTEGRITY)f)L$Ǭ$|ƤT (d12@->>> Recovery will not be attempted...halting!>>>> Error recovery tables are not present in the parse tables.+L+l--| -(.0(.\L(x/Jx@(0 01 18ǬL1~@111L223 3@3z33l44f4`p5p56 86<7 7Xu@ 7 , 4PԘ Page #p8$ul`@ ܔ@E,|0t<Ѩ, HҸHlռ@.st.ptLISTQUIET SUMMARIZE EMIT_TREE SCAN_ONLY PRINT_TREE WRITE_TREE BUILD_TREE TRACE_PARSE PREPROCESSOR TRACE_SCANNERTRACE_SCREENER=====> Profile CHECK_DEFAULT_REDUCTIONS included in this compilation.=>p@`  lpm.infinite lines in  centiseconds = L (Times are elapsed wallclock, NOT CPU; they include processor wait time.)>@4,<8Processing speed:?ۼ@T4`P tԘltP,p<warning user error system errorBackend speed :Total speed :unprinted warningEnd of processing, K of memory unused.$ so no tree file will be written.5*** Tree integrity was compromised by error recovery,C pNo Cz4<tlXXutestlinetestdiskLL@LISTtestsstestsrctestssptestscantestsspt;Valid stat options are test{disk,line,src,scan,ss,ssp,sspt}slow!taudebugg fnzsilentafterbefore checkheapcram&retwcclearonoffstablesptablessptablesefileppobannerbanner2timeipathtpagesnpptmptptreelistoutputprofileiextlextfillheaplppemsgfeolEE܌F"FBFFDG$lLISTH>$\DXKutppolpplistoutputprofilelines_per_pageLM M\p@ for Minlen O.OlPPpPPQ"?QRSP\@ missing...aborting.Argument to parameter T\?HT\@ ' ' ignored.Erroneous parameter V8VzVW(W(XXY ܌Y6YVYYZ$Z^onoffZ[0s88@X@Parser Scanner \2xh\|`tdps\@,]]4Force2Flush2Flush0Force0Flush1Force1Deletion Insertion Replacement ^ (%Recover:Exceeded the following limit:^T^Ǭl__`,`F`n,`` aba\@P"Default_returned_by_error_recoverybbP@p]:=TB[cT@c(c Fstack_limitd4dd dp`@e"eN`Lp [err] fp`4g4 DVF_elt_limitg DVF_limitg4t from Make DVF htiidpp 8 @ SS= Size=rec_fma Action= FMA_move; V=k80@Token= Stack= --FMA starts --FMA resumeslTB_limitmmvPnLnv`@p TOKEN BUFFER=oo00oPopHLl@`lrec_lim FIX: replaces was deleted was inserted before qT@qpr"rds:@Pp W= Try tBt4T(D@H$lFIX RC=FIX LC=wwXxDXyFT` Cval= Constant=z$ؠڈƀƠhXcocon$(WLK1L Dd , $ h,!DTWalk1  ڈBڈr`8(4` ,#`<`<`<`<`0 x`< x`<(#?`<(#`$,4` p` p`<(#`<$`<<`<(#A`<(@#?`<`<@@ `<4@0`$,4`<4@0 `P#`<(@#`<(@#`<`<`<`<@#`<(#` <`<`<`<`<<`<`<@#`<@#?`0, l`<, l2 \CO-105CO-107CO-106Invalid based number.'Invalid digit in non-decimal number: X.5Non-decimal constant exceeds largest unsigned number. CO-108CO-109/Integer constant exceeds largest signed number.1Integer constant exceeds largest unsigned number.& \Ŕ cocon1~~|jcocon1cocon1CO-109Divide by zero. cocon1ƀ^T Int_valueX Real_valueJHŘh*ڈh6CO-44 Parameter not found or specified more than once.(ƜhڈCO-46 Parameter  not supplied.(J@Ɯsince its declaration near  does not name all parameters.ACO-01 Named parameter association is prohibited for this functionf>"7CO-02 An expression of type void cannot be an argument.0CO-03 A struct or union is passed by value here.@8CO-79 More arguments given than function has parameters.4x\pȼ,Ɯ`Ϩtxȼlph\CorrCO-04&The size of (converted) argument type 4 differs from the size of the formal parameter type 9CO-78 Fewer arguments given than function has parameters.,`@ to CO-1163Prototype causes non-standard conversion here from x\pȼDTCOMNƜ` The type CO-05 Incomplete type:(must be completed before it can be used.L  Pdƀ F ƜCO-06+A bit field is not valid as an argument to H5CO-07 Cannot take the address of a register variable.ϨƜؠ`,ڈ@01CO-08 '=' used where '==' may have been intended.>You can eliminate this warning by explicitly including '!= 0'.d\Ϩ1CO-40 Must be a compile-time computable constant.xCO-42 Variable required.Ϩh,˘#CO-126 Pointer/integer combination.Ɯ`CO-43 Operand type  inappropriate for operator. vLCO-09 Unsignedness-preserving rules produce possibly different results here.ˬ4Ɯ`The type in question is HCO-10 This must be a pointer to an object, not to a function or to void.@͘tͤ.CO-127 Combination of different pointer types.^4J͌ϨĨx BΌdπƜڈΜϐl type voida function typean incomplete typedtT 4͌`hd$@,ؠ \ ˸˄@.5EXP  p <sqrt CO-48 Unrecognizable field name.XCO-14 Pointers to objects may not be converted to pointers to functions, and vice-versa.&Thלp T,۬t$׬x(d`֤`). litexp???varlogexprCO-49MODE=CO-123sizeof coexpr_impl UP_differs=static-literalCasted-to type Constrainer:EXPcasted-from type  is not the same size asCO-56 Function expected.CO-45 Must be a pointer.CO-114 No such member name.Can't modify an object of type !one a pointer and the other zero,%CO-54 Variable referenced before set.+CO-13 Must be of an extended-function type.+CO-11 Cannot dereference a pointer to void.,Must be a struct or union (selecting member -must be both arithmetic, or of the same type,1CO-131 `_yield' is valid only within an iterator.1CO-15 Size change in cast involving pointer type:5CO-129 `sizeof' a huge type has result type long int.8CO-130 Difference of two huge pointers is type long int.9CO-47 Subscripted expression must be an array or pointer.9or one an object pointer and the other a pointer to void.:CO-12 The 2nd and 3rd operands of a conditional expressionCCO-118 First argument to offsetof must have a struct or union type.MCO-125 Operands must be both arithmetic, or object pointers of the same type.T@ and CO-112'Member name duplicately declared. See 3CO-113 Attempt to select member of a non-structure.z$vϨƜƈCO-16Cannot take sizeof  n@͠ڈǬnלPdϨ_yield_inline_compare _find_char _fill_char _skip_char _move_right#<"type" "":int "enum" >$<"type" "":void "void" >$<"type" "":long "enum" >$<"type" "":char "enum" >%<"type" "":short "enum" >'<"type" "":float "" >(<"type" "":double "" >(<"cclit" "":_BY_REF "void" >)<"cclit" "":_NO_1167 "void" >)<"cclit" "":_WINDOWS "void" >*<"cclit" "":_FAR_CALL "void" >*<"cclit" "":_FLOAT_DS "void" >+<"cclit" "":_NEAR_CALL "void" >+<"type" "":signed-char "enum" >+<"cclit" "":_SAVE_REGS "void" >+<"cclit" "":_INTERRUPT "void" >,<"type" "":unsigned-int "enum" >-<"type" "":unsigned-long "enum" >-<"type" "":unsigned-char "enum" >-<"type" "":long-double "" >.<"type" "":unsigned-short "enum" >/<"cclit" "":_REVERSE_PARMS "void" >0<"cclit" "":_WIDEN_TO_SHORT "void" >0<"cclit" "":_REVERSE_STRING "void" >3<"cclit" "":_CALLEE_POPS_STACK "void" >4<"cclit" "":_CALLING_CONVENTION "void" >4<"cclit" "":_RETURN_32_IN_BX_AX "void" >:<"cclit" "":_RETURN_POINTERS_IN_ES_BX "void" ><<"cclit" "":_DEFAULT_CALLING_CONVENTION "void" >=<"cclit" "":_RETURN_AGGREGATE_AS_POINTER "void" >0hj .0(@  (Pƀ cosize_impl(4DT Type_info!p ALIGNMENT"##H#r`%4% P&'N(R(z(()<X)v4`) llabel*6 **4,v$ ''֤ݔ--ݔ- lu register/&CO-31 Function called but not defined./ؼ$ ڈfcn1HڈXQ<"" <"fcn" "" <"lambda" "" "unknown"> > "sequence" >1@ 4main2| >parm?TƜ8ƈCO-35 parameters.Pragma has too ?many?few@&ϨCO-36 Must be a string.@CO-37 Must be an identifier.@@$\Ah<u֤8CO@ƀԨ$\$_DEFAULT CONSTRAINER costmt_impl(CO-26 Unrecognizable Constrainer toggle.,CO-24 Toggle name required. Pragma ignored.,CO-38 Must be the word "_DEFAULT". Assumed.ICO-39 This pragma was specified too late; move to earlier in the program.Gh8STMTP\$hڨ(`ƜD 0tP4֤THlitSTMTtypedef intrinsic'CO-28 This code will never be executed.+CO-55 "case" must appear within a "switch"..CO-?? "default" must appear within a "switch".0 since the enclosing function returns this type.1CO-58 This "return" should return a value of type4CO-53 Only one "default" is permitted in a "switch".5CO-51 "continue" must appear within while, do, or for:CO-99 "break" must appear within while, do, for, or switchBCO-50 Current calling convention requires pointer parameters only.TCO-57 Enclosing function's return type is "void"; therefore nothing may be returned.STvarparmTnT(TU(,U !CO-124 Conversion to "far" added.Vˬ Wx@WXPXY,@YzY@Z*tZ[t<\L]LtL^ThSim _th͘Acom`Tab˘8bb CO-70 Must be of a pointer type.c*c>CO-72 Must be a scalar (int, char, floating, or pointer) type.c-CO-59 Must be an integral (int or char) type.d2t cotypes_implde"p`Type , Rep eLefD Just made gnpLPǼHash= Looking at Make_type_from_repLoop in hash chainjjkD$Ǭkk,`lThlhm:hmmpn6n(pCI= S=oVؠڈ,oo coutils_implpvpq&qh Case errorq@qrrRƜ@CO-117 follows \.Unexpected character CO-122 No digits found after \x.UCO-119 Value of escape sequence exceeds maximum value representable in unsigned char.t vw2wfww (xLxx<`p,: ths seconds.Elapsed time for ypl NR= (at zvz| z(:  ֤{:E Ƥw Ɯ }&}\}~܌~`ƈƜ`type Type CO-115 is not equal to coutils2_implcompatible with assignment compatible with |8p^p CI=$`$@P \.`X\P  RT=@XdƀX~ $ݔ@\4CO-61 This tag name is more than 80 characters long.(T&8@|4Dp decorating node #Record size computed is 2CO-68 Structure has no contents (is of size zero).4`LTƀt$(CO-63 Bit fields must fit in a register..CO-67 Zero-length bit fields may not be named.9CO-64 Bit fields must fit in a register or register pair.9CO-65 Only bits fields of an integral type are supported.0CO-62 Field offset exceeds addressability limit.(ڈ,d<T\ PProcess_struct...Hƀ$ lenum-litTh֤member bit-fieldR l$ƀ\ƜƈCO-69 -This is permissible only in conjunction with  l$( Ɯ@SPECڈtag coxfm_impl  T8p`The ""int"; type= " defined at Storage class="int" or "char""int" or "double"CO-73 Must be a type.!CO-74 Incompatible tag reference:*" tag class does not match the tag class ">CO-80 "auto" must appear within a function. "static" assumed.BCO-81 "register" must appear within a function. "static" assumed.OCO-71 "register" is the only allowable storage-class for a parameter. Ignored.jtype Dclns:Speciferswidth (long/short)distances (near/far)sign (signed/unsigned)"storage-class (auto, extern, etc.)PƜƈThe CO-75# has been specified more than once. CTYP $ x@ƀڈ$ƜTConstruct_type!there may be no other parameters.;CO-77 An array of objects of an incomplete type is illegal.ACO-84 Since the first parameter was specified by the type "void",LCO-76 An array may not contain functions (but may contain pointers thereto).LCO-86 A function may not return an array (but may return a pointer thereto).]CO-85 A function may not return a function (but may return a pointer thereto); type adjusted.@ZCO-82 Function parameter names are allowed only on function definitions, not declarations.CO-83 "void" is illegal here. coxfm_implhL,$ :CO-128 `huge' element type must be of size a power of two.|  XDDCL\x` dؠ LDhڈ, coxfm_impl!CO-89 No member is declared here."CO-94 Functions may not be nested.#<"mode" "" "" >$CO-97 No object may be of type void..CO-60 Members cannot be of an incomplete type./CO-95 A register-class function makes no sense.3CO-92 A function may not return an incomplete type.5CO-88 This type lacks a tag and hence cannot be used.8CO-96 Storage-class nonsensical for function definition.;CO-100 This function should be declared "extern". Assumed.>CO-120 "extern" nonsensical for function definition. Ignored.@CO-98 Members cannot be functions (but can be pointers to such).NCO-91 The declarator must be a function. This declaration has been discarded.RCO-87 Specified storage class for this declaration is unnecessary and was ignored.iCO-102 This can be of an incomplete type only if it is "extern" or has an initializer supplying its size.FCO-90 A functionality typedef cannot be used in a function definition.**CO-93 A parameter name must be given here. T T0V@|\ x .xrfmodule cross reference: h֤pi    x     resolves     change_sref F  ( d   xp   open    close fu  x     $CO-103 This is undeclared.RLƜPrevious declaration is at !CO-104 This is multiply declared. j$(0 as Enter (DCLNMOD/ENTERSYMBOL): Cur_dcln LpNü8L$ Close_scope&Attempting to close non-existent scopeŀDReplace#Replace called for undeclared name.6zLBdǜL*Bad remote scopeDclns:Scope_members 2Ɉ0@(ʖ`Ǭ`@.fake TRACE_DCLNS@4Vx̜ INTERNAL ONLY-X--UUU4@p֤far near huge const volatile ζPݔ<dPpvoid??? {...}floatdouble Align= NONAME intrinsic long doublefinish struct #$*T@\???void) -> , \...؈\, 8ٺ֤(4`$ڬ$ (ArrutilsOut of memory.\table overflow.یdDx to arrutils_implExtend_array ===>  has been extended from Extend_array - Pointer is nil!!!ݲDxd MAKE_ARRAYMake array; size=>Attempting to allocate an array that exceeds 65530 byte limit.ޜL ǼCallconv Overflow!߂ Ǭ.ݔRL\L trerrs_implDivision by zeroVariable is never usedNo "pragma Data" is activeFor-loop will never execute"switch" statement has no cases!Declared type is never referenced!Result of comparison never varies!Real constant has too many digits%"pragma Data" active at end of module%External function is never referenced&Previous "pragma Data" is still active&Unrecognizable Tree Transformer toggle'Variable is set but is never referenced'An interrupt function may not be called'Variable is referenced but is never set'"pragma Data" active at end of function'Array size exceeds addressability limit+Right operand of shift operator is negative,"switch" statement has only a "default" case-Array subscript is not within bounds of array0Lower bound of range is greater than upper bound0An array must have a positive number of elements2Expression has no side effect and has been deleted7Floating-point constant too large or small in magnitudeDLocal function is never referenced; no code will be generated for itNShift amount is greater than or equal to the size of the operand being shiftedTThis construct would have been deleted as an optimization had it contained no labelsd<jdFTp Signed= Size=ؠڈJ,!!!T trexpr1_impl*l$8\"T\"T!T\!Tp Dsize=,ڈƀ,!<`4 "$$8h(WLK2!TdhDؼ"TX$(P,ؠD$ dp$WLK2Walk2 \  xhh2!Ơ6!,!T\! trexpr1_impl\0CONNot a valid constant.Bad treeEvalicon 4\x<`$\ʘ@setjmp CHECK_NIL CHECK_RANGE TR_PRINT_TREEAUTO_REG_ALLOCCHECK_SUBSCRIPTTree transformer.OPTIMIZE_RANGE_CHECKSTRACE_TREE_TRANSFORMERCALLEE_POPS_WHEN_POSSIBLEOPTIMIZE_SUBSCRIPT_CHECKSKEEP_UNREFERENCED_ROUTINESSEGMENTED_POINTER_OPERATIONStree transformerh8\( D%l%XhProcessing fcn %Hh.TRh$u\Ԩ8$ trmain_impl TRANSFORMERTREE_TRANSFORMERh$(8hڈ!" ,#d # # ,$h$J ڈh< <ƀ 48!TSTMTؠH@D, ڄX֤$(%H$h%XSTMT./:T Dڼ/D0ƀ,ؠڈ3Nƀ!T34!ƠX5Z5ؠ!Tڈ,X!Ơ!8ڈ%Hؠ:;B;|"Dڈ"P`<(#` ,#`<4`<4@`<@@#`<(`<(@`0 `< <4<|<h=L=>h``PRINT_REG_VARS>`Max # of variables:??Jp SC= VF= LV=Var #?I=p$ Get_var_infoNon-allocated var@\ Trvar:Newvar@$% PA$% PA$B$BlBhd`,p$D$( at  Use= Death=Use reg Use_reg= -- Variable No reg allocated.Allocate reg for var #" has been allocated to a register.sincostanloglog10sqrtatan2 atanasin acos fabs% expFFU,TDG\,U GTTU T4SH1hڈ-IhJ 'd'DhKLZ',L]gS(-gS'',',1h+U|'!PS|D',Q',,1hQP]',QR1hhRH1h((?U|UTUtT^<h($SUdmemcpystrlenmemsetstrcmpstrcpyWeCALL(]?U 1hgS($D,UG<-]'p(8SUDDdG0 TD]]GHeS!+setjmp_setjmp^'p^'_'_R_l(_(_1hUڈTIntrinsic_callOP-22 Construct not supported.aU ƀb$Dbd@TbLǬc@LǬcLǬd+4WdX+eX+f*tf*tg(*tgV*dg*dg+Xh +XhZX$+i,@+*X0charj+X8jD* j*0+k&*0kXHXPl@*@l*@mX`+XXm*tmƀU|1hoEOP-17 Up-level reference to a register-class variable is not allowed.pp|ƀ],+1he-f+t,`SڈT-gS(a]+Xff!UT] Create_varzHf1hSƀ+XfgUT+]]|,MOP-?? Unable to select member (can't get expression size in address context).^0SDƀ7]1hS^<1P],G0+,)-d8eU1h]WhVWp`POPFCN:NEWFCN Fcn tablet5aQO@A*<=QeYZPPe[-.0/12%'( !"$#) & Q3B>?C+,KMXLJ BWpWhe-\eV..]USd.h/8/$./8U|UT.G P]$8G</`/$S]$8/LG</`1hG h1hp-S|p/DSSTTg&ڈ0-,,802+/D-S*0x/0dTT1hXassign:Short_circuit!Short-circuit not in void contextTd)0xD!eH$8-TT,0TT1h/0d0xUl$ U|S+S+eUTS(SƀU|.^<S-/p,Ul/U\1PGEXP1<T2/f^fpg)hD8f7/0Td$  /ST])D]G<Genexpr Result = opgen_impl;=====> NOT YET SUPPORTED Construct not yet supportedU IOP-18 Constant can't be contained in field to which it is being compared.`<4@` ,#%8fhdV0ifhVg hVh3i ƀVh+if[*OP-13 Must be a static variable reference.>eV<VV0-Vƀ3XvalueNot a valid REAL constant/OP-?? Not a compile-time computable expression.6OP-14 Invalid size conversion required in initializer.VV4ƀXvalueBit fields not adjacent5OP-20 Constant can't fit in bit field it initializes.>OP-21 Static bit fields can only be initialized with integers.-OP-09 Cannot initialize an imported variable.@+ڄ654g @Ǭ[tL4,L4Xvalue Boff >= 32!VN6`[V0,46h[p[ 3|TS0\+6tSDS4,36F`|W[@ݔ[ CONST_DATAF6V]U Wh1h-d0p7Du[[ opmain_implOPU7 Ԩ\OPT OPTIMIZER1OP-04 Unrecognizable Data class. Static assumed.2CG-06 Unrecognizable pragma name. Pragma ignored.2OP-?? Unrecognizable toggle name. Pragma ignored.3OP-15 "pragma Code" may not occur within a routine.7OP-?? Unrecognizable phase designator. Pragma ignored.Ÿ] ;Wh7-d$>]<:|V?ƀSTMT!8UW`X;ߎ[[D8|r]ݔ[[\48\7 R@L00_BSSLITERALS L00_LITERALS[p\$[[[t\[W6`*' EA@ePRINT_ILOPTIMIZE PUBLIC_DATA CHECK_STRING OP_PRINT_TREE CONST_IN_CODEREAD_ONLY_DATATRACE_OPTIMIZERLITERALS_IN_CODEREAD_ONLY_STRINGSLOOP_TESTS_AT_BOTTOM6eA*ڼElW&6<=ʘ<<CSE eliminatorCSE eliminator.f[p[%8dh,$DTƈOP-12 type is incomplete (size is 0).>> Variable'snTPh?2]TT?T41hTT>T4XxS-ffAXU|,f]g-8?AT4%8,fg(g?VgUf@W-R]gX>?,(W`$DPWTgX>>xƜWh!gW$_Processing fcn Function return' ... Overflow may occur at runtime.COP-10 Size of stack frame exceeds half of the addressability limit.FOP-11 Size of stack frame exceeds quarter of the addressability limit.$fA,|,>f$(ǬD@+W0*,+8B`p*A+H*T*++(++*PBt RN= Process type OP:Process_typesF(A+0 BH,֤+TAƀX@L8Error occurred while ing annotation file: C ,l@read4C`x$u4@` r,  Block table D<p terminated. Begin_block( current block  CRC lp End_block End_block(No block active pCR(D<g New_body( BODY TABLE ...preempting block  D<(gCpEND_BODY End_body(BODY NOT ACTIVE with continuation block  resuming preempted block D<2BLOCK_OF_LABEL CALLED!!!fCC`4lUU|VVUSUTS]WhUTU SWhVT4EUEE]UTEPT',WhEE^V]1hU ]gtE'`errmsgOP-08 Duplicate case label.h]4 Do_selectCase_cnt exceeded!!!???Problem occured near HfTT]fG<G %8fPfADR VAR DEREF ABS ADD AND NC CALL ICALL CVTB CVTW CVTL UCVTB UCVTW UCVTL DIFC DIF FAR INLINEPTRDIFEQU NEQ GEQ LEQ GRT LSS UGEQ ULEQ UGRT ULSS CEQU CNEQ CGEQ CLEQ CGRT CLSS FABS FNEG FADD FSUB FMPY FDIV FMIN FMAX FEQU FNEQ FLEQ FGEQ FLSS FGRT FLT FILL IN LEA LIT MOD UMOD MPYI UMPYI UDIV DIV UDIV42DIV422UMPY MPY UM224 MPY224TJMP FJMP JMP LJMP XJMP BTAB MIN UMIN MAX UMAX MOVE NEG NOT OR OC ODD PROC PUSH RESULTROUND TRUNC SHL SHR ASR SHLI SHRI ASRI SGS STORE SUB REG TEST VOID XOR XC CHKL CHKH CHKLU CHKHU INTLITREAL STRINGSETLITINC DEC INCL EXCL INCLRAEXCLRACOMP FTOV VTOF LIST NEXT BB PROLOGEPILOGLABDEFLABREFSREF TOGGLELOAD MOVES UMI224MI224 RMOVE SCANEQSCANNECOMPARCVTF CVTD DECSP CVTX CASE CHK OFFSETAREA UADD USUB ENDXJPSEG EXT SEGLITEXTLITPROC SAVE FIELD RESERVFREE EXTRACREM ASSIGNLABLITREMEM BIND FREMEMPARMS SPILL DIVMODUDVMODDM422 UDM422DIVREMDR422 UFLT FIMM SPUSH UREM UDVREMBLKDEFBLKENDVARDEFTYPDEFBITFLDPRCDEFARGDEFPRCENDENUM ARCTANCOS EXP LOG_E SIN SQRT MEMBERLOG_10TAN SINCOSATAN2 ASIN ACOS STRCMPSPFPX APR1R2R3R4R5R6R7R8R9RARBRCRDRERFP1P2P3P4<08writingreading Aborting... instruction file: ***Error occurred on <`L|PL` L` v([lpQg` Len=Base= opinstr_impl off= type=\8 Off=Q(Seg= Align= fields=),#g fgf<-ff---On(Off( Hi=Off=Pop(Val= Lo= ext= char seg= reg=] of name=Link= void,parm SET ,auto int  PTR  Pop= len=LABEL ,ES/BX base= Alen=,TYPE= Proc= Size= args= Link= FILE  Index= label  ,base= value= Scale= Label  (huge),Label  FLOAT  Varying bitoff= bitlen= array[# String( result2= (by ref) ,ON_STACK returns# (signed) DATA_SEG= TYPEDEF # ,POP_STACK RANGE, Hi= UNION, Len= ENUM, cnt= (NONLOCAL) PREFIX, MLen= Record, Len= (static-link),RESTORE_STACK unsigned int  BYTES_TO_POP= (not popping) vector, #elts= Func returning  (floating-point) SOURCE LOCATION = TYPEDEF equivalence to 04P0p1rw8D\$ Aborting... ***Can't open instruction file: 1\ T2J2L2 OPPUT>>>At location Register address encountered!!!3TM(M4MRtM(4R5RD5FEVRR]CCe6:S(gT47tRS(7RST48bRST48SST4R9T4SadRRa\:RRb;|S(Rc Rx\RcR[?>RSg SgSa\RRffb UTRPut_adrBase on local not null!BRRcC|RRPDTdU DDadT`TRRReHeESTU TTFSTT`T4S(cFRReeRcGjRRtRH eRReHRHTIRRIpRRRIRRRJxU UJRRdR`L U<LvU<LU<M4U<MU<MUlN `RRRNRRd$OdRRegg`ggPRR`eQQM(MRpR]RR]SrRRSUT(RRT[RU[RU|[RU[VH[RVJVHggRg [VRVH[Wp[gVHRgX[RX|VHXPRY:DDCRCeR--> New proc block:Y[RgRZ@RDeR--> End of proc.ZRR[0R[t][RR\eRR\ǬL]@]2,@` CSE's detected:  IL instructions generated: ]R]R^ZWR^WR_6R_WR`$WR`R`Ra@RaRbRblRbRc(RcRc RddRdReTR==?<8989ee(gEach_block_in_body: f]DpL`M(Y to ; Vmax= , Last = opread_implEach_instr: Block  being read. First = Each_instr: deleting: Each_instr: VT increased from Each_instr: BB increased from nTo,o^opH to >>> VALUE = Dec_use_count Decrementing use count on value $Use count decremented less than zeropVp to Incrementing use count on value ppq,q^`q`r@pNumber of imported names: Number of exported variables:Number of labels defined: Number of segments defined: st`ttt([lSegment_objectNo object number assigned:u~uuv vBSEGMENT OBJECT TABLEvww8wt[w SEGMENT TABLExyyyz$z{{d{(\8 Extern_objectNo object number assigned:||LExtern OBJECT TABLE||}$}X EXTERN TABLE~(~~(d:\\[EXPORTED VARIABLE TABLE2Public not foundAssoc_public_with_typeg0g]gggg  Label_table6h:| VSzi hi]Sh]ffS(X]ffSS(*^hSi iSh]] i,>hfS(Si,fSSi]XShi i Shi,]hi^] oputil_impl^T ^t^^^^R ^^^J^^^@^,p):  value=KILL_LOC KILL_LOC(Reg chain is inconsistentVar chain is inconsistentExtract chain is inconsistentValue table/LOC is inconsistent'Hash table bucket chain is inconsistent) ... KILL_LOC removes loc from reg chain.) ... KILL_LOC removes loc from var chain.- ... KILL_LOC removes loc from extract chain. LOC_TABLEpVT NEW_VALUE() ... NEW_VALUE returns Rp`_DOpvalueExtract_chain corrupted!g_D4_Dgf_Dte@dge$dde0dp`d KILL_ADDRESS(._D_DgfV_DDXD,e`e :`` No. of entries in Proc table: No. of entries in Lit table: &Summary of Variable and Literal tablesXe$^$Tff$F$r$$T$TF$vf\\$[*$V$$\\\]OPVAR:NEWPROC Proc tableZ\ݔg(@g\$g\R6lJ6,fF„\RÐ\,[p[f%8@OP-02 Size of local static storage exceeds addressability limit.h[] opvar_implCGVAR:NEWLIT Literal tableƆh`bh`>h`Nh` opvar_implʺ*d˞g,d̤f(bXͪ opvar_implΆiH,i  union struct |,`z<0(@,0,",0x .stabs " .stabd 0x,z<0@ `,0, .stabn 0x .stabd 0x|z<(,0@ .set  .globl 08": ing file " Aborting...Error occurred while Ү@TӨwDk<lLFNlist spill filek@NLST Aborting... Nlist builderCan't write to spill fileծ\(\4kPք\$[l\[t[([p\([FgeaoutAssign_seg_offsetsNo section assigned to segmentئ]PgFgوlllxǬ\ \\4g]tx[l[[pkXۀgggkX]kX\\8j[xkX A.OUT GEN:Symtab not big enough!!!6D`jzerow[kDǬj\l$openlm$@kXj.oVncs.oVXefS .oVhc0.00 .oVpp0.00zkXkX:[p`[[xInvalid segmentA.OUT:Start_segmentvjqh`write`n, A.OUT gen-rel table size doesn't match precomputed sizejqPqhq8n0`blF|jwrite Copy_fileNlist temp fileNlist spill file too short!Couldn't read Nlist spill file!rlFj`qh \nwrite Write_nlistNlist spill fileSpill file won't openjwritenokDʘ n0< BSS size: Data size: Text size: #Symbols: A.OUT formatter (UCB 4.2).$ A.OUT genToo many RLD's!p<qh\<:\<p<qP [xqPp<geaouthqh[xp<geaout(`[F[p[l LC= A.OUT gen Seg len = Seg name = Wrote beyond end of segment!&jpwritejpwrite,jpwritejpwrite8LǬqP4qP<qkXjBa?Sq?qqkXjar͠@;0;charPint;-1;;0;0;geaout;0;255;integer ;0;65535; ;-128;127;;-32768;32767;;0;4294967295;;-2147483648;2147483647;\q:Rq͠:dq:akX:Djq:rqkXqjq͠?͠qqkXq\8sj͠qkXqq[[l[t[xsj\$qkXqsqjgg]͠FsqkXq]jxkXq]jxkXFq͠jq Do_field_defOut of context!kXFq͠jq Do_enum_idOut of context!($,<<,Y tlu0tXYtX tl<u04, h<Pd < p,<Y N<P   t vu u  ,<t<Y< "!$#-.0/21 $#"!.-210/@ZZH,Y<PYgecmp$]<,HZYZ,<gecmpuv<vYgecmpg|,u0,D<gt cmp_bcmpv`v ,h<Hu0gtfcmp$$dcmp$$~Pvv@v<,,YwDvYPZxuvYP<,!,g<" gtu0cmp#^<XPY$DYFZP, < Do_extractInvalid bit field extraction!'P,< ZYH+X< 펏`Ԕәp@PⰠ򛚗Ғ0 ̾耏pp   .byte  .short  .long ,X@,,,z<,AddrObject#Source Program and Assembly Listing-, -Fm@-zz< `,z4 .space -z<,`z4  .lcomm .h\,\(zz<z4\0\LL0: .text .stabs "",0144,0,0,LL0/bz<z4\8 .globl /[lz<[t\z4z .globl 0B[tz4[pz<`[l .comm  .globl 0q8z4zz< .align 1,z<zz4qPX ,0(2qP zz<Xz43]' \$qPXz4\F ppz,$\(pxz< get  load geemit loadc  loadh  store  loadha  storeh  storec invalid op Do_loadstore7pXFqPpz<z4 z(r0)Do_DShort disp too big!8,pXz4z< zqP`,0x:z4z< pzXqP;qP z4zz<X;,z<zz4]qh(gXgg # <,(z4X\8gphz<z=0qhz4qPz<z]FX( Do_JMPSmall disp too big!>#ggz<gz4 .globl ?6hz<(z z4qP balr r15,r15 # @|d}4@z<p (z4qhqPz, off= # off= .short 0x # npars= .long 0x # First gpr=Bpz<(0z4]z`܌ qP .long  .short  be used instead.%Case/switch statement spans more than* handled with a 2-byte wide branch table.+ 32K bytes of code and therefore cannot be/ This will cause a 4-byte wide branch table to3 Recompile with the "LONG_BRANCH_TABLE" toggle on.DvD, ,z4z< .ascii "FHq84GxqG4H qP0xzq8z< z4 .word .byte 0xIz4zz<qhq8` qP(geemitJz(qhz4z<,0x .long 0xKC`LLz4`(z<pmm .stabs " ",0x84,0,LL .stabd 0x44,0,LzDԨ\Cgeemit$>>> Warning: unrecognizable toggle "N0z<pp\$z4zphqh]\(\(geemit .long Ov}| }4Oz<(z4+0x .set Pxp[lz<z[tz4Fz]f\$p .globl Emit_codeds{P`} |@`}4s~~Tq rf0m~f| r}g~s  1g tg`sD|dsx@ss 2}PC =  .org  .textLABEL  .datageemit .text 1 Emitted size: Precomputed size: Label address is incorrectInstruction size incorrect."====>PRECOMPUTED SIZE INCORRECT!!!Y z4z<\(zD\,p .dataZ,@Zz[pz<[[l\zz4[t` .globl : .space \\z`zDʘoC<mt`\z|uCASM Unix emitter.EMIT_LINE_TABLE Elapsed time for emitter: `4(#` ,#` |` |^_u0 gtSKIPCHARFINDCHAR`J,p<aZ<Y,pbHY,<eY,hPH< < g|h Yht<Y,i<Yi<HXYj Ykl>mmgegenn,4$ Y<<p<]HY,q\H<,YrZY Y<,PHu,YY<Pw~,<YPxZ<YpY,zYp<{ HP<,Y}`,YL<}H,<Y"L$ YZu0,g|< gegenuldiv$$ ldivmod$$n<HPY <,Xx<Dgegenlmul$$ w<vxLw,tv|duflt$$fuflt$$cvtdf$$cvtfd$$dtrunc$$dround$$fround$$ftrunc$$a abs ae aei ai ais bala balax bali balix balr balrx bb bbx bbr bbrx bnb bnbx bnbr bnbrx c cal cal16 cas cau ca16 ci cis cl cli clrbl clrbu clrsb clz d dec exts inc ior iow jb jnb l ls lc lcs lh lhs lha lhas lis lm lps mr m mc03 mc13 mc23 mc33 mc30 mc31 mc32 mfs mftb mftbilmftbiumts mttb mttbilmttbiun nilo nilz niuo niuz o oil oiu onec s sar sari sari16se setbl setbu setsb sf sfi sis sl sli sli16 slp slpi slpi16sr sri sri16 srp srpi srpi16st sts stc stcs sth sths stm svc tgte ti tlt tsh twoc wait x xil xiu brx br nopx nop jnop bx b j bex be je bnex bne jne blx bl jl bhx bh jh blex ble jle bhex bhe jhe btbx btb jt#]Llo>m #b#O#ݴHXhx b bntbx bntb jntb ABS ACOS ADD ASIN ATAN ATAN2 ATANH CMP CMPT CMPB COS COSH DIV EXP EXPM1 LOADM LOG10 LOG1P LOG LOGB MOVE MUL NEG REM RINT SCALB SIN SINH SQRT STOREMSUB TAN TANH ??r0r1r2r3r4r5r6r7r8r9r10r11r12r13r14r15apfr0fr1fr2fr3fr4fr5fr6fr7yz{|}~` PROC_INFO_PTRV,X <08writingreading Aborting... instruction file: ***Error occurred on `|``2I:p0xU:D:F:`(geinstr0[t`]\8[lgeinstr` .blkb [tgp0((`X .long [p[lgpgggeinstr .short .ascii ", |LCg0xhg\8] gON(,0x(r1)OFF(POP()(sp) .text .data, Disp= .byte , parms= .set LF .set LS stm %LS .globl  .align .globl . | pragma FLOAT OP: cal r1,-LF ,36+4*(16-LS ai fp,sp,dispPrint_instruction| tracetable: reg=!Data initialization out of order!0F .ascii " R0123456789ABCDEF0L0]L<]p PJPggXgg|lrw\0 Aborting...***Can't open instructions file:8 \x`0,#`<42 `<(3 ` `  XԨD\gemainX2XfPXgX`hM(ttlXgxP(xw@wlXTu\wgdH@P<]FPwp@ Code_select PROCESSING: Unrecognizable IL op`Z$\(u,ALLOCAPROFILE SHORT_RTFL EMIT_NAMES CHECK_STACK OPTIMIZE_XJMPTRACE_CODE_GENFLOATING_POINTPRINT_INSTRUCTIONSOPTIMIZE_FOR_SPACEOPTIMIZE_XJMP_SPACET<ʘp0, Jump Fixup.IBM PC RT Code Generator.Elapsed time for code gen: Elapsed time for fixup:  Xl`\ D|*\l|[t|[p\Xd]][tgv\[[t\0g\(Jump fixup completedBeginning Jump fixup passn[t[̪@ggg4NΖ[t[]]X]]Pр\[[[:xd`i h`hhplh]lgeputi$ixh|tԼ F@T<,.X߬$ l]]]RpPP4l[iH[t]lh[pi$hxi hi,iihii[geputXgg4 XXg[plgg[g@`gg|g\mcount.hgXpx]``]\|]@D\FPaPUT0FPaGET0, @ Bytes of code generated.BT.t,`<(3 `(3` l` l    p cnt=Use_reg:FReg=gereg DisconnectPaired regs not consistentAttempting to disconnect 2nd():f:u:o:rpgeregmask=[<,¨P,.lF Find_free_regFind_free_reg: ...Find_free_reg returns: Can't find a free register!!!FFind_free_pairFind_free_pair: Can't find a free pair!!!...Find_free_pair returns: n@ <4YF. (FREE_VALUE) decrementing use count on index: ,Pp FREE_VALUE Free_value FREE_VALUE: Value already freedREG RVAL NOT CONSISTANT- (FREE_VALUE) decrementing use count on baseNFp,===>R) cnt=Free_reg FREE_REG(Invalid registerRegister already free!<,PReplace_register FReplace_registerValue table not consistant R\$FgY,\Xg\( It is not!Static_address ,l$F<4Y˜Load_regDYZx pLOAD_REG Load_reg( Case error ) returns CASE errorVALUE CONFLICTEntering Load_reg(F$<Y Load_pair!Previously loaded reg not paired!Zp<Y<$Yp,Zp len= signed zeroed replaces Load_acc:  (Load_acc)  being copied to  (Load_acc) spills  (Load_acc) content of $, the latter is returned by Load_acc VALUE_TABLEzt<`<<r, J< Fp>>> GEVAL cnt='Register "in use" at end of basic block*Register content not empty at end of block!^Y with Associating "",#f##$lh%r.%P%r.%Ppp_4.2/RT_pp_MAIN1.2$.MetaWare PascalL00_DATA r$`R_FLAGINLINE_FLOATING_POINT%%>%^6Warning: "-mm" is an unrecognizable command parameter.%,0**hjffFHJKLMtuvFHJ%,&$\,<(R\)DlY\H<,],H/^DF,YlP< Setop_inplaceLength not consistent!12 Y|223$dgestore3u0g|, D<_bcopy5u0,gt D<5FYIncdecInplace add/sub attempted!6D<,\YgestorelHH:$:v<P$,,Y;,YgtDu0F < inclrange INCLRANGE exclrangeRANGE OUT OF BOUNDS=gtu0 fill=u0gtD > <D,u0Yg|_bcopy??,g|<u0 RMOVE@N,YDH\<PZY Z d$ZxDpxˆ|Hg|p>>,>>,<<_bcopygestoreStore(<<I\I~ <JDJǬLKnKLL(LMNDNOOP,PdPPQQFQv@Qi,geconsR:RS2SlǬ[pgL@X/>>>Error: Constant pool exceeds 32K in routine UDǬLVDDLV@PW`PWFg[ g0[ Proc_pool_segProc is public!X0g\\ \8@Y(@ Y\(Q`p,LEN=, LEN=, Src=, Len=,INDEX=,ALIGN= (float)Y (Z[lZ\8): OP: Op: Imm ??? Lit Proc  zeroNull ,len=use>1FIELDAddr , OFF= base=Float , len=,base=deref Value  REG=EXTERN EXTRACT,Align= signed offset=,offset=SEGMENT Var base= , bitlen=# , bitoff=# LOAD reg= REMEMBER: LOCAL Base= across_call , (parm ref) , (frame ref) ASSIGN Dest=LOCAL_ADR Base=2nd value of op at V_F< 0 ``a.aaa,\<TF4SPILL"Attempting to spill a non-registercZdhi$e2exPeZZx`geval Unloading gFValsize Case errorh@hvhi2Dijk&h0 l4llFValfloatNot a valid constant!mmLmmn&n\npnYo^\(\$\p6Y<ZpYF Form_address,0 Bad addressDisp too largeStatic address not staticIndexed with non-0 displacement+Indexed address with non-zero displacement!w>Zw~\gZgXF Bad variable Form_variable FORM_VARIABLELocal is indexed!Value is a register!OP invalid as variabley{Y{> VALUE_TABLE{ VALUE_TABLE|:geval}VYZxY VALUE_TABLE~DZx VALUE_TABLEpZ<,ZZxPY VALUE_TABLE VALUE_TABLE VALUE_TABLE" VALUE_TABLEZY,Y VALUE_TABLEZ VALUE_TABLE VALUE_TABLET VALUE_TABLE VALUE_TABLEPZ< VALUE_TABLE VALUE_TABLE :: returns TrueIs_dereference_of: `>`P#`8(4`<(3 ` |` |^%r.%P%r.%P_%rIPATHPPIBM /usr/include/.o32.P.s32  tP Y<Y8,ˆD˜YD,YZ < 8 <¨ˆ<]Z¨Y,8YZgt<D ˆ˜,l$rounddroundd2[p[t[[p[t][ \THg(; routine too big.-- No cross-jumping for  D$~h phh$]2`` = Prev of X`Delete ]pZ`(nil) | f$]Inspecting jump Xjmping to label $` and Comparing jumps ][L After optimizations, instrs are:`Bh  $t`libmfpa4ibmfpa:ǬLXibmfpa[l[\\@`8[p[FPGLUEL00FPA,$8<<d|ˆˆf|ˆ`l#E$l@͠ ,`$”4L"@dÂBuftab:Init_bufferio/Buffer size exceeds maximum (Buffer_size_limit)<\~<P:ŖĔĜJv Buftab:Read_buffer or Read_bytes-Buffered read failed (EOF or error condition)ƢLLPtǺ@ĘȒĔĜĀĔ8ĀĜzļɪ: @|p@Tʶp@XN˨F̚ĀǬĀxļ"ǬļΦǬļpPЂ=P=P2DPEƀƈX$@u`$Pֈ@p BUFIO:Alloc Array max size=Allocation desired=0Tried to allocate array beyond limit (see above)Dynarray-Dynamic array allocation/reallocation failed.F`rǤPǤ$H``P@Ǥ to  bytes.dynarrayExtended array from 8Zڄڬ$dP0܂zh|p@ȄȀOrch=TREES:Delete_ith_orchard&Tried to delete a non-existent orchard|hTREES:Move_top_orchard_to&Not enough space (Exceeded Post_limit)ߘhȀ|Ȅ>H,`֠րhP֘8,8@t`< FEtrees:P_build_non_leaf String-table-mark stack overflowʐʔIPATH l@ʘ Aborting....ʤݔUnable to open file $ʘExceeded Fyle_limit<\Huݔ@ P8: ݔ\@rnrt:@ 8\ݔu@Ew˄at˄6wt˄d wt˄\BT T N x08": Aborting...writing to file "*** Error occurred reading from file "zD̼JnE<2~$P T\&$DdX|DlDX$F`ǼL*LǬ͐?p@̀P -- hash code is About to add string #͠DjPP^͠P̀Ǭ͐$` DUMP_TEXTS TRACE_SYMBOLS<<>>(|jΘ,@pΜ]= Hashchain[ empty chains.p|@HHLΘά@ empty chainsstring lookupsstring comparesstrings allocatedString table summary:strings in biggest chainstrings in the string tablebytes in the character table clashes in the hashing mechanism"characters allocated in char table&characters allocated in 1st char table&characters allocated in 2nd char table,X@p Last_string =SYMBOL:Begin_rsvd_words3Reserved words entered improperly (out of sequence)DP0---SYMBOLS--- ͠@͐̀ļĀŔ---SYMBOLS---Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec  P-݄݈\u  ???DPN",(p(... from 4@File #How referenced files were included:D0&Ŵ| Ҁ҄@Ҕ??file??LD$&@@pʘ <<<<<<<<, in %>>>>>>>> S Y S T E M E R R O R &Error was severe. Program terminated.'>>> Too many system errors -- aborting.p@ system errors.ʘ Line too long for LINEOUT module*Tried to back up too far in LINEOUT's lineӬPӬTӬ   T <  X@<4Ӭ|`4 $&Ӭ|?PHNUpdate Bad toggleԸ4ԸxԸԸ:l@ԨUndefined toggle: @ TH\PԨLToggles:Make_toggleAttempt to re-define a toggle:">`"ǬL"@p, using There were  toggles out of  toggle characters out of #|#Exceeded Node_limitTREES:Inc_last_node$4$@L$|t$ǼL%ֈ%R%8֠%֠(p Dec=> #Kids=&8ְ<<>>'ֈ@tְ Built leaf (2<tְ4P@Built non-leaf )p@ֈ Last= Cat_orch TREES:Cat_orch/Tried to concatenate more orchards than existed*TREES:Delete_orchard!Tried to delete too many orchards+D+Pl<TREES:Top_the_tree Tried to top a non-existent tree6Top_the_tree applicable only to an orchard of length 1,L8ր֘P,ؠ-,8Pش`-<8P.(8.X8.T=@p8TREES:Pseudo_symbol8Tried to get the pseudo-symbol of a non-pseudo-terminal:/8p@ TREES:Subtree requested subtree was 6Tried to get a non-existent subtree of the above tree:/8/80(<0\<08h0h81J֤<@TREES:Alter_pseudo_symbol+Tried to alter pseudo-symbol of a non-leaf:1<8P2V@. |h3*ژ3b3<3<4848588PĀ<6BD---TREES---6ļĀ---TREES--- No tree fileTREES:Read_Trees7`Ǭt<ֈ TRACE_TREES8V|@8ۨTrees summary: tree locations used.maximum orchards allocated.)maximum nodes in temporary holding stack.9pE : w  at >>> Error >>> Warning :@:6@:j:p@ user errors.No user errors.:dԐ\ӄ;2`Ԍ`ӈ; Out of memoryTreepage:Malloc_check;<>0>N >>?EP?P @D(/dev/tty@tPh@h:@HEPABHEPCase statement errorB0<*** in  of module at line CP<EE<P$Header: stab.h,v 5.0 86/02/01 00:37:17 ibmacis ibm42a $$Header: stdio.h,v 5.0 86/02/01 00:37:27 ibmacis ibm42a $PATH/(Fstackdump) Heap is hopelessly corrupted. Aborting... (Fstackdump) Can't display call trace: unable to open load module referenced by argv[0]: %s (%s) the file referenced by argv[0], namely, %s is not a load module read error occurred while reading string table not enough heap space to read name list and string table read error occurred while reading name list unknown reason???Routine File Line/Off Addr Args... %-31.31s%-*.*s %*.*s L%-5d %6lx %6lx %lx,%lx%s EF$$\HD,HzIDJ.KdKVDKT~\DN O$݀OPRP(PQ*QQRLRDRS8SVTTTUJlUxxtVTL\WW&DW|DWXTX0DXYY0;M;Hd,adr=,len=;free] [prevlen= ;allocated]Yd,adr=,len=[prev=,next=Zfݤݼ8 Aborting...$Print heap dump on standard output? [hd0< (Oops!) HEAPMGMT - corruption in heapItem not in any heap)Item is not allocated) Applicable address: Item falls outside heap)Chunk chain out of order)Fwd and Bwd links don't match) Item in free chain is allocated)!Heap chunk in unallocated memory)"Free chain links are inconsistent)&Reallocation occurred within old data)'Pointer offset exceeded over/underflow)]<0<D Dump of heap:Free chain for heap:&======================================]L(Chunk ^,D Item ... etc.^d ->  <- _P_PD`搀@ @ @ `abbc<pcpc***NEW: Heap overflowd~dPde: 8eeff"$pp_PIO1h"hThhhiiTiiiiݔ\XXXXXXjj kkl lJlm$mt8m8mn n8oP0123456789ABCDEF**** p`d  'Pascal range check failed. q`pqtp@qprNprpssFsxsstinvalid radixwrite failedinvalid numberEOF encountered +uEPv0vfv`P#vP%***SUBSTR: end of string encountered.wzPwDx$$xV,xxy*y~yy`@zB`@zz{***PREVIOUSLY DIAGNOSED ERROR OCCURRED DURING PROGRAM TERMINATION ***SOME FILES MAY NOT HAVE BEEN PROPERLY CLOSED {@th  {P{EP|,\}:(xINPUTOUTPUT} \( $Header:atof.c 9.2$0@4L8$Header:atoi.c 9.0$h@(#)bcmp.c 1.0 84/10/03 IBM55\<\w/M:/w/b///:/AV/Vw/8$Header:ctime.c 9.1$Day Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec|@hP\\t6td|t ((((( AAAAAABBBBBB $Header:ctype_.c 9.0$$Header:dknu.c 9.1$$Header:dknu16.c 9.1$$Header:exit.c 9.0$H $Header:filbuf.c 9.0$ \D$Header:findiop.c 9.0$,6 ,xDT$Header:flsbuf.c 9.0$\d$$Header:fopen.c 9.0$ $Header:fpabort.c 1.5$fpabort: ...exiting. D$Header:fpenviron.c 9.0$$lp\d$Header:fprintf.c 9.0$$Header:fseek.c 9.0$<$Header:ftell.c 9.0$0$Header:fwrite.c 9.0$Pp,$Header:getenv.c 9.0$P"th$Header:isatty.c 9.0$$$Header:mktemp.c 9.0$/T$Header:mulu32.c 9.1$($Header:qsort.c 9.0$8  `@#$`"(`$@,`#@0`&H4`%P8`)X<`(H@`'PD`*X$Header:setbuf.c 9.0$Hd0$Header:shlun.c 9.1$T$Header:signal.c 9.0$$Header:sprintf.c 9.0$p$Header:strncat.c 9.0$L(BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ $Header:tentothe.c 9.1$L$Header:time.c 9.0$\$Header:times.c 9.0$|$Header:calloc.c 9.0$\$d$Header:doprnt.c 9.0$Tp 0pt d'B@$Header:ecvt.c 9.4$0INFNAN()0<цL|D@`0,#` ,#` |` |$Header:gcvt.c 9.0$TD`0,#` ,#` l` lڐڰ0$Header:l10.c 9.1$LpT$Header:mul211.c 9.1$T$Header:mulu211.c 9.1$۸*A7\(;w5^k($Header:rad2a.c 9.1$`|` *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$Header:spdiv7.c 9.1$#]klo1$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header: */ /* $ACIS: */ /* $Source: */ #ifndef _IO #include #endif #define PSWRITENORMAL _IO(p, 0) #define PSWRITEPACKET _IO(p, 1) #define PSREADNORMAL _IO(p, 2) #define PSREADPACKET _IO(p, 3) #define PSRESET _IO(p, 4) #define PSENDIPL _IO(p, 5) #]mlo,$ !#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:acct.h 12.0$ */ /* $ACIS:acct.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/acct.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidacct = "$Header:acct.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)acct.h 7.1 (Berkeley) 6/4/86 */ /* * Accounting structures; * these use a comp_t type which is a 3 bits base 8 * exponent, 13 bit fraction ``floating point'' number. * Units are 1/AHZ seconds. */ typedef u_short comp_t; struct acct { char ac_comm[10]; /* Accounting command name */ comp_t ac_utime; /* Accounting user time */ comp_t ac_stime; /* Accounting system time */ comp_t ac_etime; /* Accounting elapsed time */ time_t ac_btime; /* Beginning time */ uid_t ac_uid; /* Accounting user ID */ gid_t ac_gid; /* Accounting group ID */ short ac_mem; /* average memory usage */ comp_t ac_io; /* number of disk IO blocks */ dev_t ac_tty; /* control typewriter */ char ac_flag; /* Accounting flag */ }; #define AFORK 0001 /* has executed fork, but no exec */ #define ASU 0002 /* used super-user privileges */ #define ACOMPAT 0004 /* used compatibility mode */ #define ACORE 0010 /* dumped core */ #define AXSIG 0020 /* killed by a signal */ /* * 1/AHZ is the granularity of the data encoded in the various * comp_t fields. This is not necessarily equal to hz. */ #define AHZ 64 #ifdef KERNEL struct acct acctbuf; #ifdef VFS struct vnode *acctp; #else VFS struct inode *acctp; #endif VFS #endif #]plo-$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:aedioctl.h 12.0$ */ /* $ACIS:aedioctl.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/aedioctl.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidaedioctl = "$Header:aedioctl.h 12.0$"; #endif /* AED ioctl defines */ #define AEDGET_CTRL_LOC _IOR(a,0,long) #define AEDSET_CTRL_LOC _IOWR(a,1,long) #define AEDGET_SRAM_LOC _IOR(a,2,long) #define AEDRESET _IO(a,3) #define AEDSTART _IO(a,4) #define AEDSTOP _IO(a,5) #define AEDSTATE _IOR(a,6,long) #define AEDSEM_SET_WAIT _IOWR(a,7,short) #define AED_TOG_DEBUG _IO(a,8) #define AEDDELAY _IO(a,9) #define AED_LEDS _IOWR(a,10,int) #define AEDSEM_SET _IOWR(a,11,short) #define AEDSEM_UNTIL _IOWR(a,12,short) #define AEDSEM_WHILE _IOWR(a,13,short) #define AEDSEM_READ _IOR(a,14,short) #define AEDSEM_TIMEOUT _IOWR(a,15,int) #define AED_BEEP _IO(a,16) #define AED_RESET 0x0000 #define AED_STOP 0x1000 #define AED_START 0x4000 /* Indicate which array entry in linesw[] to use for /dev/aedsout */ #define AEDSO_DISC 6 #]slo0Á$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:bk.h 12.0$ */ /* $ACIS:bk.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/bk.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidbk = "$Header:bk.h 12.0$"; #endif /* bk.h 6.1 83/07/31 */ /* * Macro definition of bk.c/netinput(). * This is used to replace a call to * (*linesw[tp->t_line].l_rint)(c,tp); * with * * if (tp->t_line == NETLDISC) * BKINPUT(c, tp); * else * (*linesw[tp->t_line].l_rint)(c,tp); */ #define BKINPUT(c, tp) { \ if ((tp)->t_rec == 0) { \ *(tp)->t_cp++ = c; \ if (++(tp)->t_inbuf == 1024 || (c) == '\n') { \ (tp)->t_rec = 1; \ wakeup((caddr_t)&(tp)->t_rawq); \ } \ } \ } #]ulo$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:buf.h 12.0$ */ /* $ACIS:buf.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/buf.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidbuf = "$Header:buf.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)buf.h 7.1 (Berkeley) 6/4/86 */ #ifndef _BUF_ #define _BUF_ /* * The header for buffers in the buffer pool and otherwise used * to describe a block i/o request is given here. The routines * which manipulate these things are given in bio.c. * * Each buffer in the pool is usually doubly linked into 2 lists: * hashed into a chain by so it can be located in the cache, * and (usually) on (one of several) queues. These lists are circular and * doubly linked for easy removal. * * There are currently three queues for buffers: * one for buffers which must be kept permanently (super blocks) * one for buffers containing ``useful'' information (the cache) * one for buffers containing ``non-useful'' information * (and empty buffers, pushed onto the front) * The latter two queues contain the buffers which are available for * reallocation, are kept in lru order. When not on one of these queues, * the buffers are ``checked out'' to drivers which use the available list * pointers to keep track of them in their i/o active queues. */ /* * Bufhd structures used at the head of the hashed buffer queues. * We only need three words for these, so this abbreviated * definition saves some space. */ struct bufhd { long b_flags; /* see defines below */ struct buf *b_forw, *b_back; /* fwd/bkwd pointer in chain */ }; struct buf { long b_flags; /* too much goes here to describe */ struct buf *b_forw, *b_back; /* hash chain (2 way street) */ struct buf *av_forw, *av_back; /* position on free list if not BUSY */ #define b_actf av_forw /* alternate names for driver queue */ #define b_actl av_back /* head - isn't history wonderful */ long b_bcount; /* transfer count */ long b_bufsize; /* size of allocated buffer */ #define b_active b_bcount /* driver queue head: drive active */ short b_error; /* returned after I/O */ dev_t b_dev; /* major+minor device name */ union { caddr_t b_addr; /* low order core address */ int *b_words; /* words for clearing */ struct fs *b_fs; /* superblocks */ struct csum *b_cs; /* superblock summary information */ struct cg *b_cg; /* cylinder group block */ struct dinode *b_dino; /* ilist */ daddr_t *b_daddr; /* indirect block */ } b_un; daddr_t b_blkno; /* block # on device */ long b_resid; /* words not transferred after error */ #define b_errcnt b_resid /* while i/o in progress: # retries */ struct proc *b_proc; /* proc doing physical or swap I/O */ int (*b_iodone)(); /* function called by iodone */ #if defined(VFS) || !defined(COMPAT_43) struct vnode *b_vp; /* vnode associated with block */ #endif int b_pfcent; /* center page when swapping cluster */ unsigned long b_bitmap; /* for RVD */ }; #define BQUEUES 4 /* number of free buffer queues */ #define BQ_LOCKED 0 /* super-blocks &c */ #define BQ_LRU 1 /* lru, useful buffers */ #define BQ_AGE 2 /* rubbish */ #define BQ_EMPTY 3 /* buffer headers with no memory */ #ifdef RVD #define VDMAXBURST 32 #endif #ifdef KERNEL #ifdef SMALLMEM #define BUFHSZ 512 #else #define BUFHSZ 512 #endif SMALLMEM #define RND (MAXBSIZE/DEV_BSIZE) #if ((BUFHSZ&(BUFHSZ-1)) == 0) #define BUFHASH(dvp, dblkno) \ ((struct buf *)&bufhash[((u_int)(dvp)+(((int)(dblkno))/RND))&(BUFHSZ-1)]) #else #define BUFHASH(dvp, dblkno) \ ((struct buf *)&bufhash[((u_int)(dvp)+(((int)(dblkno))/RND)) % BUFHSZ]) #endif struct buf *buf; /* the buffer pool itself */ char *buffers; int nbuf; /* number of buffer headers */ int bufpages; /* number of memory pages in the buffer pool */ struct buf *swbuf; /* swap I/O headers */ int nswbuf; struct bufhd bufhash[BUFHSZ]; /* heads of hash lists */ struct buf bfreelist[BQUEUES]; /* heads of available lists */ struct buf bswlist; /* head of free swap header list */ struct buf *bclnlist; /* head of cleaned page list */ struct buf *alloc(); struct buf *realloccg(); struct buf *baddr(); struct buf *getblk(); struct buf *geteblk(); struct buf *getnewbuf(); struct buf *bread(); struct buf *breada(); #ifdef VFS struct vnode *bdevvp(); #endif VFS int minphys(); #ifdef ibm032 extern int waitfor; /* if we are to wait for disk I/O completion */ #endif ibm032 #endif /* * These flags are kept in b_flags. */ #define B_WRITE 0x000000 /* non-read pseudo-flag */ #define B_READ 0x000001 /* read when I/O occurs */ #define B_DONE 0x000002 /* transaction finished */ #define B_ERROR 0x000004 /* transaction aborted */ #define B_BUSY 0x000008 /* not on av_forw/back list */ #define B_PHYS 0x000010 /* physical IO */ #define B_XXX 0x000020 /* was B_MAP, alloc UNIBUS on pdp-11 */ #define B_WANTED 0x000040 /* issue wakeup when BUSY goes off */ #define B_AGE 0x000080 /* delayed write for correct aging */ #define B_ASYNC 0x000100 /* don't wait for I/O completion */ #define B_DELWRI 0x000200 /* write at exit of avail list */ #define B_TAPE 0x000400 /* this is a magtape (no bdwrite) */ #define B_UAREA 0x000800 /* add u-area to a swap operation */ #define B_PAGET 0x001000 /* page in/out of page table space */ #define B_DIRTY 0x002000 /* dirty page to be pushed out async */ #define B_PGIN 0x004000 /* pagein op, so swap() can count it */ #define B_CACHE 0x008000 /* did bread find us in the cache ? */ #define B_INVAL 0x010000 /* does not contain valid info */ #define B_LOCKED 0x020000 /* locked in core (not reusable) */ #define B_HEAD 0x040000 /* a buffer header, not a buffer */ #define B_BAD 0x100000 /* bad block revectoring in progress */ #define B_CALL 0x200000 /* call b_iodone from iodone */ #ifdef VFS #define B_NOCACHE 0x400000 /* don't cache block when released */ #endif VFS #define B_FLAGS_FMT "\20\1READ\2DONE\3ERROR\4BUSY\5PHYS\6XXX\7WANTED\10AGE\11ASYNC\12DELWRI\13TAPE\14UAREA\15PAGET\16DIRTY\17PGIN\20CACHE\21INVAL\22LOCKED\23HEAD\24BAD\25CALL" /* * Insq/Remq for the buffer hash lists. */ #define bremhash(bp) { \ (bp)->b_back->b_forw = (bp)->b_forw; \ (bp)->b_forw->b_back = (bp)->b_back; \ } #define binshash(bp, dp) { \ (bp)->b_forw = (dp)->b_forw; \ (bp)->b_back = (dp); \ (dp)->b_forw->b_back = (bp); \ (dp)->b_forw = (bp); \ } /* * Insq/Remq for the buffer free lists. */ #define bremfree(bp) { \ (bp)->av_back->av_forw = (bp)->av_forw; \ (bp)->av_forw->av_back = (bp)->av_back; \ } #define binsheadfree(bp, dp) { \ (dp)->av_forw->av_back = (bp); \ (bp)->av_forw = (dp)->av_forw; \ (dp)->av_forw = (bp); \ (bp)->av_back = (dp); \ } #define binstailfree(bp, dp) { \ (dp)->av_back->av_forw = (bp); \ (bp)->av_back = (dp)->av_back; \ (dp)->av_back = (bp); \ (bp)->av_forw = (dp); \ } /* * Take a buffer off the free list it's on and * mark it as being use (B_BUSY) by a device. */ #define notavail(bp) { \ int x = splbio(); \ bremfree(bp); \ (bp)->b_flags |= B_BUSY; \ (void) splx(x); \ } #define iodone biodone #define iowait biowait /* * Zero out a buffer's data portion. */ #define clrbuf(bp) { \ blkclr((bp)->b_un.b_addr, (unsigned)(bp)->b_bcount); \ (bp)->b_resid = 0; \ } #endif _BUF_ #]~lo-$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:callout.h 12.0$ */ /* $ACIS:callout.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/callout.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidcallout = "$Header:callout.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)callout.h 7.1 (Berkeley) 6/4/86 */ /* * The callout structure is for * a routine arranging * to be called by the clock interrupt * (clock.c) with a specified argument, * in a specified amount of time. * Used, for example, to time tab * delays on typewriters. */ struct callout { int c_time; /* incremental time */ caddr_t c_arg; /* argument to routine */ int (*c_func)(); /* routine */ struct callout *c_next; }; #ifdef KERNEL struct callout *callfree, *callout, calltodo; int ncallout; #endif #]lo.$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:clist.h 12.0$ */ /* $ACIS:clist.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/clist.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidclist = "$Header:clist.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)clist.h 7.1 (Berkeley) 6/4/86 */ /* * Raw structures for the character list routines. */ struct cblock { struct cblock *c_next; char c_info[CBSIZE]; }; #ifdef KERNEL struct cblock *cfree; int nclist; struct cblock *cfreelist; int cfreecount; #endif #]lo!$ f#%#Y# /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:cmap.h 12.0$ */ /* $ACIS:cmap.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/cmap.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidcmap = "$Header:cmap.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)cmap.h 7.1 (Berkeley) 6/4/86 */ /* * core map entry * * Limits imposed by this structure: * * limit cur. size fields * Physical memory* 64 Mb c_next, c_prev, c_hlink * Mounted filesystems 255 c_mdev * size of a process segment 1 Gb c_page * filesystem size 8 Gb c_blkno * proc, text table size 64K c_ndx * * * memory can be expanded by converting first three entries * to bit fields of larger than 16 bits, shrinking c_ndx accordingly, * and increasing MAXMEM below. Also, the type of cmhash * (below) must be changed to long. */ struct cmap { #ifdef ibm032 unsigned short c_next, /* index of next free list entry */ c_prev, /* index of previous free list entry */ c_page, /* virtual page number in segment */ c_hlink, /* hash link for */ c_ndx; /* index of owner proc or text */ #ifndef VFS unsigned char c_mdev, /* which mounted dev this is from */ #else !VFS unsigned char c_unused, /* unused */ #endif !VFS c_lock:1, /* locked for raw i/o or pagein */ c_want:1, /* wanted */ c_intrans:1, /* intransit bit */ c_free:1, /* on the free list */ c_gone:1, /* associated page has been released */ c_type:2, /* type CSYS or CTEXT or CSTACK or CDATA */ c_mapped:1; /* mapped in HAT/IPT */ unsigned int c_blkno; /* disk block this is a copy of */ #if defined(VFS) || !defined(COMPAT_43) struct vnode *c_vp; /* vnode to which c_blkno refers */ #endif VFS #else unsigned short c_next, /* index of next free list entry */ c_prev, /* index of previous free list entry */ c_hlink; /* hash link for */ unsigned short c_ndx; /* index of owner proc or text */ unsigned int c_page:21, /* virtual page number in segment */ c_lock:1, /* locked for raw i/o or pagein */ c_want:1, /* wanted */ c_intrans:1, /* intransit bit */ c_free:1, /* on the free list */ c_gone:1, /* associated page has been released */ c_type:2, /* type CSYS or CTEXT or CSTACK or CDATA */ :4, /* to longword boundary */ c_blkno:24, /* disk block this is a copy of */ #ifndef VFS c_mdev:8; /* which mounted dev this is from */ #else !VFS :8; /* unused */ #endif !VFS #if defined(VFS) || !defined(COMPAT_43) struct vnode *c_vp; /* vnode to which c_blkno refers */ #endif VFS #endif ibm032 }; /* * bit offsets of elements in cmap */ #define C_INTRANS 87 #define C_FREE 88 #define MAXMEM 64*1024 /* maximum memory, in Kbytes */ #define CMHEAD 0 /* * Shared text pages are not totally abandoned when a process #ifndef VFS * exits, but are remembered while in the free list hashed by #else * exits, but are remembered while in the free list hashed by #endif * off the cmhash structure so that they can be reattached * if another instance of the program runs again soon. */ #ifdef SMALLMEM #define CMHSIZ 512 /* SHOULD BE DYNAMIC */ #else #define CMHSIZ 2048 /* SHOULD BE DYNAMIC */ #endif SMALLMEM #define CMHASH(bn) ((bn)&(CMHSIZ-1)) #ifdef KERNEL struct cmap *cmap; struct cmap *ecmap; int ncmap; struct cmap *mfind(); int firstfree, maxfree; int ecmx; /* cmap index of ecmap */ short cmhash[CMHSIZ]; #endif /* bits defined in c_type */ #define CSYS 0 /* none of below */ #define CTEXT 1 /* belongs to shared text segment */ #define CDATA 2 /* belongs to data segment */ #define CSTACK 3 /* belongs to stack segment */ #ifdef ibm032 #define CUSTRUCT 4 /* is a u struct (really CSYS) */ #endif #define pgtocm(x) (((int) ((x)-firstfree) / CLSIZE) + 1) #define cmtopg(x) ((((x)-1) * CLSIZE) + firstfree) #]lo)$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:conf.h 12.0$ */ /* $ACIS:conf.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/conf.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidconf = "$Header:conf.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)conf.h 7.1 (Berkeley) 6/4/86 */ /* * Declaration of block device * switch. Each entry (row) is * the only link between the * main unix code and the driver. * The initialization of the * device switches is in the * file conf.c. */ struct bdevsw { int (*d_open)(); int (*d_close)(); int (*d_strategy)(); int (*d_dump)(); int (*d_psize)(); int d_flags; int (*d_minphys)(); }; #ifdef KERNEL extern struct bdevsw bdevsw[]; /* Added extern for specfs routines */ #endif /* * Character device switch. */ struct cdevsw { int (*d_open)(); int (*d_close)(); int (*d_read)(); int (*d_write)(); int (*d_ioctl)(); int (*d_stop)(); int (*d_reset)(); struct tty *d_ttys; #ifndef FULL4.3 int (*d_select)(); #endif FULL4.3 int (*d_mmap)(); }; #ifdef KERNEL extern struct cdevsw cdevsw[]; /* Added extern for specfs routines */ #endif /* * tty line control switch. */ struct linesw { int (*l_open)(); int (*l_close)(); int (*l_read)(); int (*l_write)(); int (*l_ioctl)(); int (*l_rint)(); int (*l_rend)(); int (*l_meta)(); int (*l_start)(); int (*l_modem)(); int (*l_select)(); }; #ifdef KERNEL struct linesw linesw[]; #endif /* * Swap device information */ struct swdevt { dev_t sw_dev; int sw_freed; int sw_nblks; }; #ifdef KERNEL #if !defined(ibm370) struct swdevt swdevt[]; #endif /* !defined(ibm370) */ #endif #] lo!$ _#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:dir.h 12.0$ */ /* $ACIS:dir.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/dir.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiddir = "$Header:dir.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)dir.h 7.1 (Berkeley) 6/4/86 */ /* * A directory consists of some number of blocks of DIRBLKSIZ * bytes, where DIRBLKSIZ is chosen such that it can be transferred * to disk in a single atomic operation (e.g. 512 bytes on most machines). * * Each DIRBLKSIZ byte block contains some number of directory entry * structures, which are of variable length. Each directory entry has * a struct direct at the front of it, containing its inode number, * the length of the entry, and the length of the name contained in * the entry. These are followed by the name padded to a 4 byte boundary * with null bytes. All names are guaranteed null terminated. * The maximum length of a name in a directory is MAXNAMLEN. * * The macro DIRSIZ(dp) gives the amount of space required to represent * a directory entry. Free space in a directory is represented by * entries which have dp->d_reclen > DIRSIZ(dp). All DIRBLKSIZ bytes * in a directory block are claimed by the directory entries. This * usually results in the last entry in a directory having a large * dp->d_reclen. When entries are deleted from a directory, the * space is returned to the previous entry in the same directory * block by increasing its dp->d_reclen. If the first entry of * a directory block is free, then its dp->d_ino is set to 0. * Entries other than the first in a directory do not normally have * dp->d_ino set to 0. */ /* so user programs can just include dir.h */ #if !defined(KERNEL) && !defined(DEV_BSIZE) #if defined(ibm370) #define DEV_BSIZE 1024 /* size of a physical record on a count-key-data dasd */ #else #define DEV_BSIZE 512 #endif #endif #define DIRBLKSIZ DEV_BSIZE #define MAXNAMLEN 255 struct direct { u_long d_fileno; /* file number of entry */ u_short d_reclen; /* length of this record */ u_short d_namlen; /* length of string in d_name */ char d_name[MAXNAMLEN + 1]; /* name (up to MAXNAMLEN + 1) */ }; #define d_ino d_fileno /* compatability */ /* * The DIRSIZ macro gives the minimum record length which will hold * the directory entry. This requires the amount of space in struct direct * without the d_name field, plus enough space for the name with a terminating * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. */ #undef DIRSIZ #define DIRSIZ(dp) \ ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) #ifndef KERNEL /* * Definitions for library routines operating on directories. */ #ifdef VFS typedef struct _dirdesc { int dd_fd; long dd_loc; long dd_size; long dd_bbase; long dd_entno; long dd_bsize; char *dd_buf; } DIR; #else VFS typedef struct _dirdesc { int dd_fd; long dd_loc; long dd_size; char dd_buf[DIRBLKSIZ]; } DIR; #endif VFS #ifndef NULL #define NULL 0 #endif extern DIR *opendir(); extern struct direct *readdir(); extern long telldir(); extern void seekdir(); #define rewinddir(dirp) seekdir((dirp), (long)0) extern void closedir(); #endif #ifdef KERNEL /* * Template for manipulating directories. * Should use struct direct's, but the name field * is MAXNAMLEN - 1, and this just won't do. */ struct dirtemplate { u_long dot_ino; short dot_reclen; short dot_namlen; char dot_name[4]; /* must be multiple of 4 */ u_long dotdot_ino; short dotdot_reclen; short dotdot_namlen; char dotdot_name[4]; /* ditto */ }; #endif #]!lo-$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:dk.h 12.0$ */ /* $ACIS:dk.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/dk.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiddk = "$Header:dk.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)dk.h 7.1 (Berkeley) 6/4/86 */ /* * Instrumentation */ #define CPUSTATES 4 #define CP_USER 0 #define CP_NICE 1 #define CP_SYS 2 #define CP_IDLE 3 #define DK_NDRIVE 6 #ifdef KERNEL long cp_time[CPUSTATES]; int dk_ndrive; int dk_busy; long dk_time[DK_NDRIVE]; long dk_seek[DK_NDRIVE]; long dk_xfer[DK_NDRIVE]; long dk_wds[DK_NDRIVE]; float dk_mspw[DK_NDRIVE]; long tk_nin; long tk_nout; #endif #]"lo,ǁ$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:dmap.h 12.0$ */ /* $ACIS:dmap.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/dmap.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiddmap = "$Header:dmap.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)dmap.h 7.1 (Berkeley) 6/4/86 */ /* * Definitions for the mapping of vitual swap * space to the physical swap area - the disk map. */ #define NDMAP 38 /* size of the swap area map */ struct dmap { swblk_t dm_size; /* current size used by process */ swblk_t dm_alloc; /* amount of physical swap space allocated */ swblk_t dm_map[NDMAP]; /* first disk block number in each chunk */ }; #ifdef KERNEL struct dmap zdmap; int dmmin, dmmax, dmtext; #endif /* * The following structure is that ``returned'' * from a call to vstodb(). */ struct dblock { swblk_t db_base; /* base of physical contig drum block */ swblk_t db_size; /* size of block */ }; #]#lo->$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:dnlc.h 12.0$ */ /* $ACIS:dnlc.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/dnlc.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiddnlc = "$Header:dnlc.h 12.0$"; #endif /* @(#)dnlc.h 1.1 85/05/30 SMI */ /* * Copyright (c) 1984 Sun Microsystems Inc. */ /* * This structure describes the elements in the cache of recent * names looked up. */ #define NC_NAMLEN 15 /* maximum name segment length we bother with*/ struct ncache { struct ncache *hash_next, *hash_prev; /* hash chain, MUST BE FIRST */ struct ncache *lru_next, *lru_prev; /* LRU chain */ struct vnode *vp; /* vnode the name refers to */ struct vnode *dp; /* vno of parent of name */ char namlen; /* length of name */ char name[NC_NAMLEN]; /* segment name */ struct ucred *cred; /* credentials */ }; #define ANYCRED ((struct ucred *) -1) #define NOCRED ((struct ucred *) 0) int ncsize; struct ncache *ncache; #]$lo-$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:domain.h 12.0$ */ /* $ACIS:domain.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/domain.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiddomain = "$Header:domain.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)domain.h 7.1 (Berkeley) 6/4/86 */ /* * Structure per communications domain. */ struct domain { int dom_family; /* AF_xxx */ char *dom_name; int (*dom_init)(); /* initialize domain data structures */ int (*dom_externalize)(); /* externalize access rights */ int (*dom_dispose)(); /* dispose of internalized rights */ struct protosw *dom_protosw, *dom_protoswNPROTOSW; struct domain *dom_next; }; #ifdef KERNEL struct domain *domains; #endif #]%lot$  #%#Y# /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:errno.h 12.0$ */ /* $ACIS:errno.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/errno.h,v $ */ #if !defined(lint) && !defined(LOCORE) && !defined(EPERM) && defined(RCS_HDRS) static char *rcsiderrno = "$Header:errno.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)errno.h 7.1 (Berkeley) 6/4/86 */ /* * Error codes */ #define EPERM 1 /* Not owner */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No children */ #define EAGAIN 11 /* No more processes */ #define ENOMEM 12 /* Not enough core */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Mount device busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory*/ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read-only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ /* math software */ #define EDOM 33 /* Argument too large */ #define ERANGE 34 /* Result too large */ /* non-blocking and interrupt i/o */ #define EWOULDBLOCK 35 /* Operation would block */ #ifndef VFS #define EDEADLK EWOULDBLOCK /* ditto */ #endif !VFS #define EINPROGRESS 36 /* Operation now in progress */ #define EALREADY 37 /* Operation already in progress */ /* ipc/network software */ /* argument errors */ #define ENOTSOCK 38 /* Socket operation on non-socket */ #define EDESTADDRREQ 39 /* Destination address required */ #define EMSGSIZE 40 /* Message too long */ #define EPROTOTYPE 41 /* Protocol wrong type for socket */ #define ENOPROTOOPT 42 /* Protocol not available */ #define EPROTONOSUPPORT 43 /* Protocol not supported */ #define ESOCKTNOSUPPORT 44 /* Socket type not supported */ #define EOPNOTSUPP 45 /* Operation not supported on socket */ #define EPFNOSUPPORT 46 /* Protocol family not supported */ #define EAFNOSUPPORT 47 /* Address family not supported by protocol family */ #define EADDRINUSE 48 /* Address already in use */ #define EADDRNOTAVAIL 49 /* Can't assign requested address */ /* operational errors */ #define ENETDOWN 50 /* Network is down */ #define ENETUNREACH 51 /* Network is unreachable */ #define ENETRESET 52 /* Network dropped connection on reset */ #define ECONNABORTED 53 /* Software caused connection abort */ #define ECONNRESET 54 /* Connection reset by peer */ #define ENOBUFS 55 /* No buffer space available */ #define EISCONN 56 /* Socket is already connected */ #define ENOTCONN 57 /* Socket is not connected */ #define ESHUTDOWN 58 /* Can't send after socket shutdown */ #define ETOOMANYREFS 59 /* Too many references: can't splice */ #define ETIMEDOUT 60 /* Connection timed out */ #define ECONNREFUSED 61 /* Connection refused */ /* */ #define ELOOP 62 /* Too many levels of symbolic links */ #define ENAMETOOLONG 63 /* File name too long */ /* should be rearranged */ #define EHOSTDOWN 64 /* Host is down */ #define EHOSTUNREACH 65 /* No route to host */ #define ENOTEMPTY 66 /* Directory not empty */ /* quotas & mush */ #define EPROCLIM 67 /* Too many processes */ #define EUSERS 68 /* Too many users */ #define EDQUOT 69 /* Disc quota exceeded */ #define EVDBAD 70 /* RVD related disk error */ #ifdef VICE /* Remote file access errors (that can't be mapped to standard error messages) */ #define ERFS 70 /* Remote file system error -- could be anything; more precise details should be reported elsewhere by the system */ #define ENORMTWD 71 /* Out of remote working directory structures */ #else VICE #define EDUMMY 71 /* define it anyway so numbering is correct */ #endif VICE #ifdef VFS /* Network File System */ #define ESTALE 72 /* Stale NFS file handle */ #define EREMOTE 73 /* Too many levels of remote in path */ /* SystemV Record Locking */ #define EDEADLK 80 /* Deadlock condition. */ #define ENOLCK 81 /* No record locks available. */ #endif NFS #]&lo,Á$ i#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:exec.h 12.0$ */ /* $ACIS:exec.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/exec.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidexec = "$Header:exec.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)exec.h 7.1 (Berkeley) 6/4/86 */ /* * Header prepended to each a.out file. */ struct exec { long a_magic; /* magic number */ unsigned long a_text; /* size of text segment */ unsigned long a_data; /* size of initialized data */ unsigned long a_bss; /* size of uninitialized data */ unsigned long a_syms; /* size of symbol table */ unsigned long a_entry; /* entry point */ unsigned long a_trsize; /* size of text relocation */ unsigned long a_drsize; /* size of data relocation */ }; #define OMAGIC 0407 /* old impure format */ #define NMAGIC 0410 /* read-only text */ #define ZMAGIC 0413 /* demand load format */ #]'lo%$ -#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:fcntl.h 12.0$ */ /* $ACIS:fcntl.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/fcntl.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidfcntl = "$Header:fcntl.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #ifdef VFS /* @(#)fcntl.h 1.2 87/08/26 3.2/4.3NFSSRC */ /* @(#)fcntl.h 1.2 86/12/15 NFSSRC */ /* @(#)fcntl.h 1.1 86/09/25 SMI; from UCB 5.1 85/05/30 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ #ifndef __FCNTL_HEADER__ #define __FCNTL_HEADER__ /* flags for F_GETFL, F_SETFL-- needed by */ #define FNDELAY 00004 /* non-blocking reads */ #define FAPPEND 00010 /* append on each write */ #define FASYNC 00100 /* signal pgrp when data ready */ #define FCREAT 01000 /* create if nonexistant */ #define FTRUNC 02000 /* truncate to zero length */ #define FEXCL 04000 /* error if already created */ /* fcntl(2) requests */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* Get fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags */ #define F_SETFL 4 /* Set file flags */ #define F_GETOWN 5 /* Get owner */ #define F_SETOWN 6 /* Set owner */ #define F_GETLK 7 /* Get record-locking information */ #define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ #define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ /* access(2) requests */ #define F_OK 0 /* does file exist */ #define X_OK 1 /* is it executable by caller */ #define W_OK 2 /* writable by caller */ #define R_OK 4 /* readable by caller */ /* System-V record-locking options */ /* lockf(2) requests */ #define F_ULOCK 0 /* Unlock a previously locked region */ #define F_LOCK 1 /* Lock a region for exclusive use */ #define F_TLOCK 2 /* Test and lock a region for exclusive use */ #define F_TEST 3 /* Test a region for other processes locks */ /* fcntl(2) flags (l_type field of flock structure) */ #define F_RDLCK 1 /* read lock */ #define F_WRLCK 2 /* write lock */ #define F_UNLCK 3 /* remove lock(s) */ /* file segment locking set data type - information passed to system by user */ struct flock { short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ short l_whence; /* flag to choose starting offset */ long l_start; /* relative offset, in bytes */ long l_len; /* length, in bytes; 0 means lock to EOF */ short l_pid; /* returned with F_GETLK */ short l_xxx; /* reserved for future use */ }; #endif !__FCNTL_HEADER__ #endif VFS #](lo j$ #%#Y# /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:file.h 12.0$ */ /* $ACIS:file.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/file.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidfile = "$Header:file.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)file.h 7.1 (Berkeley) 6/4/86 */ #ifdef KERNEL /* * Descriptor table entry. * One for each kernel object. */ struct file { int f_flag; /* see below */ short f_type; /* descriptor type */ short f_count; /* reference count */ short f_msgcount; /* references from message queue */ struct fileops { int (*fo_rw)(); int (*fo_ioctl)(); int (*fo_select)(); int (*fo_close)(); } *f_ops; #ifdef VFS caddr_t f_data; /* vnode */ #else VFS caddr_t f_data; /* inode */ #endif VFS off_t f_offset; #if defined(VFS) || !defined(COMPAT_43) struct ucred *f_cred; /* credentials of user who opened file */ #endif VFS #if (1) || defined(VICE) int f_rmt_fileid; #endif }; struct file *file, *fileNFILE; int nfile; struct file *getf(); struct file *falloc(); #ifdef VICE struct file *fnamei(); struct file *file_alloc(); #endif #endif /* * flags- also for fcntl call. */ #define FOPEN (-1) #define FREAD 00001 /* descriptor read/receive'able */ #define FWRITE 00002 /* descriptor write/send'able */ #ifndef F_DUPFD #define FNDELAY 00004 /* no delay */ #define FAPPEND 00010 /* append on each write */ #endif #define FMARK 00020 /* mark during gc() */ #define FDEFER 00040 /* defer for next gc pass */ #ifndef F_DUPFD #define FASYNC 00100 /* signal pgrp when data ready */ #endif #define FSHLOCK 00200 /* shared lock present */ #define FEXLOCK 00400 /* exclusive lock present */ /* bits to save after open */ #ifdef VICE /* KAZAR-RA */ #define FMASK 010113 #else #define FMASK 00113 #endif #define FCNTLCANT (FREAD|FWRITE|FMARK|FDEFER|FSHLOCK|FEXLOCK) /* open only modes */ #define FCREAT 01000 /* create if nonexistant */ #define FTRUNC 02000 /* truncate to zero length */ #define FEXCL 04000 /* error if already created */ #ifdef VICE /* KAZAR-RA -- flags for venus */ #define FFILL 010000 /* file should have IFILLING set */ #endif #ifndef F_DUPFD /* fcntl(2) requests--from */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* Get fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags */ #define F_SETFL 4 /* Set file flags */ #define F_GETOWN 5 /* Get owner */ #define F_SETOWN 6 /* Set owner */ #endif /* * User definitions. */ /* * Open call. */ #define O_RDONLY 000 /* open for reading */ #define O_WRONLY 001 /* open for writing */ #define O_RDWR 002 /* open for read & write */ #define O_NDELAY FNDELAY /* non-blocking open */ #define O_APPEND FAPPEND /* append on each write */ #define O_CREAT FCREAT /* open with file create */ #define O_TRUNC FTRUNC /* open with truncation */ #define O_EXCL FEXCL /* error on create if file exists */ /* * Flock call. */ #define LOCK_SH 1 /* shared lock */ #define LOCK_EX 2 /* exclusive lock */ #define LOCK_NB 4 /* don't block when locking */ #define LOCK_UN 8 /* unlock */ /* * Access call. */ #define F_OK 0 /* does file exist */ #define X_OK 1 /* is it executable by caller */ #define W_OK 2 /* writable by caller */ #define R_OK 4 /* readable by caller */ /* * Lseek call. */ #define L_SET 0 /* absolute offset */ #define L_INCR 1 /* relative to current offset */ #define L_XTND 2 /* relative to end of file */ #ifdef KERNEL #define GETF(fp, fd) { \ if ((unsigned)(fd) >= NOFILE || ((fp) = u.u_ofile[fd]) == NULL) { \ u.u_error = EBADF; \ return; \ } \ } #ifdef VFS #define DTYPE_VNODE 1 /* file */ #else VFS #define DTYPE_INODE 1 /* file */ #endif VFS #define DTYPE_SOCKET 2 /* communications endpoint */ #ifdef VICE #define DTYPE_REMOTE 3 /* remote file */ #endif #endif #])lo'$ <#%#Y# /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:fs.h 12.0$ */ /* $ACIS:fs.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/fs.h,v $ */ #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #ifndef VFS #ifndef BBSIZE #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidfs = "$Header:fs.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)fs.h 7.1 (Berkeley) 6/4/86 */ /* * Each disk drive contains some number of file systems. * A file system consists of a number of cylinder groups. * Each cylinder group has inodes and data. * * A file system is described by its super-block, which in turn * describes the cylinder groups. The super-block is critical * data and is replicated in each cylinder group to protect against * catastrophic loss. This is done at mkfs time and the critical * super-block data does not change, so the copies need not be * referenced further unless disaster strikes. * * For file system fs, the offsets of the various blocks of interest * are given in the super block as: * [fs->fs_sblkno] Super-block * [fs->fs_cblkno] Cylinder group block * [fs->fs_iblkno] Inode blocks * [fs->fs_dblkno] Data blocks * The beginning of cylinder group cg in fs, is given by * the ``cgbase(fs, cg)'' macro. * * The first boot and super blocks are given in absolute disk addresses. */ #define BBSIZE 8192 #define SBSIZE 8192 #define BBLOCK ((daddr_t)(0)) #define SBLOCK ((daddr_t)(BBLOCK + BBSIZE / DEV_BSIZE)) /* * Addresses stored in inodes are capable of addressing fragments * of `blocks'. File system blocks of at most size MAXBSIZE can * be optionally broken into 2, 4, or 8 pieces, each of which is * addressible; these pieces may be DEV_BSIZE, or some multiple of * a DEV_BSIZE unit. * * Large files consist of exclusively large data blocks. To avoid * undue wasted disk space, the last data block of a small file may be * allocated as only as many fragments of a large block as are * necessary. The file system format retains only a single pointer * to such a fragment, which is a piece of a single large block that * has been divided. The size of such a fragment is determinable from * information in the inode, using the ``blksize(fs, ip, lbn)'' macro. * * The file system records space availability at the fragment level; * to determine block availability, aligned fragments are examined. * * The root inode is the root of the file system. * Inode 0 can't be used for normal purposes and * historically bad blocks were linked to inode 1, * thus the root inode is 2. (inode 1 is no longer used for * this purpose, however numerous dump tapes make this * assumption, so we are stuck with it) * The lost+found directory is given the next available * inode when it is created by ``mkfs''. */ #define ROOTINO ((ino_t)2) /* i number of all roots */ #define LOSTFOUNDINO (ROOTINO + 1) /* * Cylinder group related limits. * * For each cylinder we keep track of the availability of blocks at different * rotational positions, so that we can lay out the data to be picked * up with minimum rotational latency. NRPOS is the number of rotational * positions which we distinguish. With NRPOS 8 the resolution of our * summary information is 2ms for a typical 3600 rpm drive. */ #define NRPOS 8 /* number distinct rotational positions */ /* * MAXIPG bounds the number of inodes per cylinder group, and * is needed only to keep the structure simpler by having the * only a single variable size element (the free bit map). * * N.B.: MAXIPG must be a multiple of INOPB(fs). */ #define MAXIPG 2048 /* max number inodes/cyl group */ /* * MINBSIZE is the smallest allowable block size. * In order to insure that it is possible to create files of size * 2^32 with only two levels of indirection, MINBSIZE is set to 4096. * MINBSIZE must be big enough to hold a cylinder group block, * thus changes to (struct cg) must keep its size within MINBSIZE. * MAXCPG is limited only to dimension an array in (struct cg); * it can be made larger as long as that structures size remains * within the bounds dictated by MINBSIZE. * Note that super blocks are always of size SBSIZE, * and that both SBSIZE and MAXBSIZE must be >= MINBSIZE. */ #define MINBSIZE 4096 #define MAXCPG 32 /* maximum fs_cpg */ /* * The path name on which the file system is mounted is maintained * in fs_fsmnt. MAXMNTLEN defines the amount of space allocated in * the super block for this name. * The limit on the amount of summary information per file system * is defined by MAXCSBUFS. It is currently parameterized for a * maximum of two million cylinders. */ #define MAXMNTLEN 512 #define MAXCSBUFS 32 /* * Per cylinder group information; summarized in blocks allocated * from first cylinder group data blocks. These blocks have to be * read in from fs_csaddr (size fs_cssize) in addition to the * super block. * * N.B. sizeof(struct csum) must be a power of two in order for * the ``fs_cs'' macro to work (see below). */ struct csum { long cs_ndir; /* number of directories */ long cs_nbfree; /* number of free blocks */ long cs_nifree; /* number of free inodes */ long cs_nffree; /* number of free frags */ }; /* * Super block for a file system. */ #define FS_MAGIC 0x011954 struct fs { struct fs *fs_link; /* linked list of file systems */ struct fs *fs_rlink; /* used for incore super blocks */ daddr_t fs_sblkno; /* addr of super-block in filesys */ daddr_t fs_cblkno; /* offset of cyl-block in filesys */ daddr_t fs_iblkno; /* offset of inode-blocks in filesys */ daddr_t fs_dblkno; /* offset of first data after cg */ long fs_cgoffset; /* cylinder group offset in cylinder */ long fs_cgmask; /* used to calc mod fs_ntrak */ time_t fs_time; /* last time written */ long fs_size; /* number of blocks in fs */ long fs_dsize; /* number of data blocks in fs */ long fs_ncg; /* number of cylinder groups */ long fs_bsize; /* size of basic blocks in fs */ long fs_fsize; /* size of frag blocks in fs */ long fs_frag; /* number of frags in a block in fs */ /* these are configuration parameters */ long fs_minfree; /* minimum percentage of free blocks */ long fs_rotdelay; /* num of ms for optimal next block */ long fs_rps; /* disk revolutions per second */ /* these fields can be computed from the others */ long fs_bmask; /* ``blkoff'' calc of blk offsets */ long fs_fmask; /* ``fragoff'' calc of frag offsets */ long fs_bshift; /* ``lblkno'' calc of logical blkno */ long fs_fshift; /* ``numfrags'' calc number of frags */ /* these are configuration parameters */ long fs_maxcontig; /* max number of contiguous blks */ long fs_maxbpg; /* max number of blks per cyl group */ /* these fields can be computed from the others */ long fs_fragshift; /* block to frag shift */ long fs_fsbtodb; /* fsbtodb and dbtofsb shift constant */ long fs_sbsize; /* actual size of super block */ long fs_csmask; /* csum block offset */ long fs_csshift; /* csum block number */ long fs_nindir; /* value of NINDIR */ long fs_inopb; /* value of INOPB */ long fs_nspf; /* value of NSPF */ long fs_optim; /* optimization preference, see below */ long fs_sparecon[5]; /* reserved for future constants */ /* sizes determined by number of cylinder groups and their sizes */ daddr_t fs_csaddr; /* blk addr of cyl grp summary area */ long fs_cssize; /* size of cyl grp summary area */ long fs_cgsize; /* cylinder group size */ /* these fields should be derived from the hardware */ long fs_ntrak; /* tracks per cylinder */ long fs_nsect; /* sectors per track */ long fs_spc; /* sectors per cylinder */ /* this comes from the disk driver partitioning */ long fs_ncyl; /* cylinders in file system */ /* these fields can be computed from the others */ long fs_cpg; /* cylinders per group */ long fs_ipg; /* inodes per group */ long fs_fpg; /* blocks per group * fs_frag */ /* this data must be re-computed after crashes */ struct csum fs_cstotal; /* cylinder summary information */ /* these fields are cleared at mount time */ char fs_fmod; /* super block modified flag */ char fs_clean; /* file system is clean flag */ char fs_ronly; /* mounted read-only flag */ char fs_flags; /* currently unused flag */ char fs_fsmnt[MAXMNTLEN]; /* name mounted on */ /* these fields retain the current block allocation info */ long fs_cgrotor; /* last cg searched */ struct csum *fs_csp[MAXCSBUFS];/* list of fs_cs info buffers */ long fs_cpc; /* cyl per cycle in postbl */ short fs_postbl[MAXCPG][NRPOS];/* head of blocks for each rotation */ long fs_magic; /* magic number */ u_char fs_rotbl[1]; /* list of blocks for each rotation */ /* actually longer */ }; /* * Preference for optimization. */ #define FS_OPTTIME 0 /* minimize allocation time */ #define FS_OPTSPACE 1 /* minimize disk fragmentation */ /* * Convert cylinder group to base address of its global summary info. * * N.B. This macro assumes that sizeof(struct csum) is a power of two. */ #define fs_cs(fs, indx) \ fs_csp[(indx) >> (fs)->fs_csshift][(indx) & ~(fs)->fs_csmask] /* * MAXBPC bounds the size of the rotational layout tables and * is limited by the fact that the super block is of size SBSIZE. * The size of these tables is INVERSELY proportional to the block * size of the file system. It is aggravated by sector sizes that * are not powers of two, as this increases the number of cylinders * included before the rotational pattern repeats (fs_cpc). * Its size is derived from the number of bytes remaining in (struct fs) */ #define MAXBPC (SBSIZE - sizeof (struct fs)) /* * Cylinder group block for a file system. */ #define CG_MAGIC 0x090255 struct cg { struct cg *cg_link; /* linked list of cyl groups */ struct cg *cg_rlink; /* used for incore cyl groups */ time_t cg_time; /* time last written */ long cg_cgx; /* we are the cgx'th cylinder group */ short cg_ncyl; /* number of cyl's this cg */ short cg_niblk; /* number of inode blocks this cg */ long cg_ndblk; /* number of data blocks this cg */ struct csum cg_cs; /* cylinder summary information */ long cg_rotor; /* position of last used block */ long cg_frotor; /* position of last used frag */ long cg_irotor; /* position of last used inode */ long cg_frsum[MAXFRAG]; /* counts of available frags */ long cg_btot[MAXCPG]; /* block totals per cylinder */ short cg_b[MAXCPG][NRPOS]; /* positions of free blocks */ char cg_iused[MAXIPG/NBBY]; /* used inode map */ long cg_magic; /* magic number */ u_char cg_free[1]; /* free block map */ /* actually longer */ }; /* * MAXBPG bounds the number of blocks of data per cylinder group, * and is limited by the fact that cylinder groups are at most one block. * Its size is derived from the size of blocks and the (struct cg) size, * by the number of remaining bits. */ #define MAXBPG(fs) \ (fragstoblks((fs), (NBBY * ((fs)->fs_bsize - (sizeof (struct cg)))))) /* * Turn file system block numbers into disk block addresses. * This maps file system blocks to device size blocks. */ #define fsbtodb(fs, b) ((b) << (fs)->fs_fsbtodb) #define dbtofsb(fs, b) ((b) >> (fs)->fs_fsbtodb) /* * Cylinder group macros to locate things in cylinder groups. * They calc file system addresses of cylinder group data structures. */ #define cgbase(fs, c) ((daddr_t)((fs)->fs_fpg * (c))) #define cgstart(fs, c) \ (cgbase(fs, c) + (fs)->fs_cgoffset * ((c) & ~((fs)->fs_cgmask))) #define cgsblock(fs, c) (cgstart(fs, c) + (fs)->fs_sblkno) /* super blk */ #define cgtod(fs, c) (cgstart(fs, c) + (fs)->fs_cblkno) /* cg block */ #define cgimin(fs, c) (cgstart(fs, c) + (fs)->fs_iblkno) /* inode blk */ #define cgdmin(fs, c) (cgstart(fs, c) + (fs)->fs_dblkno) /* 1st data */ /* * Macros for handling inode numbers: * inode number to file system block offset. * inode number to cylinder group number. * inode number to file system block address. */ #define itoo(fs, x) ((x) % INOPB(fs)) #define itog(fs, x) ((x) / (fs)->fs_ipg) #define itod(fs, x) \ ((daddr_t)(cgimin(fs, itog(fs, x)) + \ (blkstofrags((fs), (((x) % (fs)->fs_ipg) / INOPB(fs)))))) /* * Give cylinder group number for a file system block. * Give cylinder group block number for a file system block. */ #define dtog(fs, d) ((d) / (fs)->fs_fpg) #define dtogd(fs, d) ((d) % (fs)->fs_fpg) /* * Extract the bits for a block from a map. * Compute the cylinder and rotational position of a cyl block addr. */ #define blkmap(fs, map, loc) \ (((map)[(loc) / NBBY] >> ((loc) % NBBY)) & (0xff >> (NBBY - (fs)->fs_frag))) #define cbtocylno(fs, bno) \ ((bno) * NSPF(fs) / (fs)->fs_spc) #define cbtorpos(fs, bno) \ ((bno) * NSPF(fs) % (fs)->fs_spc % (fs)->fs_nsect * NRPOS / (fs)->fs_nsect) /* * The following macros optimize certain frequently calculated * quantities by using shifts and masks in place of divisions * modulos and multiplications. */ #define blkoff(fs, loc) /* calculates (loc % fs->fs_bsize) */ \ ((loc) & ~(fs)->fs_bmask) #define fragoff(fs, loc) /* calculates (loc % fs->fs_fsize) */ \ ((loc) & ~(fs)->fs_fmask) #define lblkno(fs, loc) /* calculates (loc / fs->fs_bsize) */ \ ((loc) >> (fs)->fs_bshift) #define numfrags(fs, loc) /* calculates (loc / fs->fs_fsize) */ \ ((loc) >> (fs)->fs_fshift) #define blkroundup(fs, size) /* calculates roundup(size, fs->fs_bsize) */ \ (((size) + (fs)->fs_bsize - 1) & (fs)->fs_bmask) #define fragroundup(fs, size) /* calculates roundup(size, fs->fs_fsize) */ \ (((size) + (fs)->fs_fsize - 1) & (fs)->fs_fmask) #define fragstoblks(fs, frags) /* calculates (frags / fs->fs_frag) */ \ ((frags) >> (fs)->fs_fragshift) #define blkstofrags(fs, blks) /* calculates (blks * fs->fs_frag) */ \ ((blks) << (fs)->fs_fragshift) #define fragnum(fs, fsb) /* calculates (fsb % fs->fs_frag) */ \ ((fsb) & ((fs)->fs_frag - 1)) #define blknum(fs, fsb) /* calculates rounddown(fsb, fs->fs_frag) */ \ ((fsb) &~ ((fs)->fs_frag - 1)) /* * Determine the number of available frags given a * percentage to hold in reserve */ #define freespace(fs, percentreserved) \ (blkstofrags((fs), (fs)->fs_cstotal.cs_nbfree) + \ (fs)->fs_cstotal.cs_nffree - ((fs)->fs_dsize * (percentreserved) / 100)) /* * Determining the size of a file block in the file system. */ #define blksize(fs, ip, lbn) \ (((lbn) >= NDADDR || (ip)->i_size >= ((lbn) + 1) << (fs)->fs_bshift) \ ? (fs)->fs_bsize \ : (fragroundup(fs, blkoff(fs, (ip)->i_size)))) #define dblksize(fs, dip, lbn) \ (((lbn) >= NDADDR || (dip)->di_size >= ((lbn) + 1) << (fs)->fs_bshift) \ ? (fs)->fs_bsize \ : (fragroundup(fs, blkoff(fs, (dip)->di_size)))) /* * Number of disk sectors per block; assumes DEV_BSIZE byte sector size. */ #define NSPB(fs) ((fs)->fs_nspf << (fs)->fs_fragshift) #define NSPF(fs) ((fs)->fs_nspf) /* * INOPB is the number of inodes in a secondary storage block. */ #define INOPB(fs) ((fs)->fs_inopb) #define INOPF(fs) ((fs)->fs_inopb >> (fs)->fs_fragshift) /* * NINDIR is the number of indirects in a file system block. */ #define NINDIR(fs) ((fs)->fs_nindir) #ifdef KERNEL struct fs *getfs(); struct fs *mountfs(); #endif #endif BBSIZE #endif !VFS #]*lo%$ K#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:gprof.h 12.0$ */ /* $ACIS:gprof.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/gprof.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidgprof = "$Header:gprof.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)gprof.h 7.1 (Berkeley) 6/4/86 */ struct phdr { char *lpc; char *hpc; int ncnt; }; /* * histogram counters are unsigned shorts (according to the kernel). */ #define HISTCOUNTER unsigned short /* * fraction of text space to allocate for histogram counters * here, 1/2 */ #define HISTFRACTION 2 /* * Fraction of text space to allocate for from hash buckets. * The value of HASHFRACTION is based on the minimum number of bytes * of separation between two subroutine call points in the object code. * Given MIN_SUBR_SEPARATION bytes of separation the value of * HASHFRACTION is calculated as: * * HASHFRACTION = MIN_SUBR_SEPARATION / (2 * sizeof(short) - 1); * * For the VAX, the shortest two call sequence is: * * calls $0,(r0) * calls $0,(r0) * * which is separated by only three bytes, thus HASHFRACTION is * calculated as: * * HASHFRACTION = 3 / (2 * 2 - 1) = 1 * * Note that the division above rounds down, thus if MIN_SUBR_FRACTION * is less than three, this algorithm will not work! * * NB: for the kernel we assert that the shortest two call sequence is: * * calls $0,_name * calls $0,_name * * which is separated by seven bytes, thus HASHFRACTION is calculated as: * * HASHFRACTION = 7 / (2 * 2 - 1) = 2 */ #ifdef vax #define HASHFRACTION 2 #endif /* * * for the IBM032 , the shortest two call sequence (using NCS) is: * * balix r15,_.addr * get r0,$_addr * which is 4 + 4 or 8 bytes * HASHFRACTION = 8 / (2 * 2 - 1) = 2 */ #ifdef ibm032 #define HASHFRACTION 2 #endif /* * percent of text space to allocate for tostructs * with a minimum. */ #define ARCDENSITY 2 #define MINARCS 50 struct tostruct { char *selfpc; long count; unsigned short link; #ifdef ibm032 long fill; /* to make power of 2 in length */ #endif }; /* * a raw arc, * with pointers to the calling site and the called site * and a count. */ struct rawarc { unsigned long raw_frompc; unsigned long raw_selfpc; long raw_count; }; /* * general rounding functions. */ #define ROUNDDOWN(x,y) (((x)/(y))*(y)) #define ROUNDUP(x,y) ((((x)+(y)-1)/(y))*(y)) #]+lo<$ x#%#Y#(/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:inode.h 12.0$ */ /* $ACIS:inode.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/inode.h,v $ */ #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #ifndef VFS #ifndef NDADDR #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidinode = "$Header:inode.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)inode.h 7.1 (Berkeley) 6/4/86 */ /* * The I node is the focus of all file activity in UNIX. * There is a unique inode allocated for each active file, * each current directory, each mounted-on file, text file, and the root. * An inode is 'named' by its dev/inumber pair. (iget/iget.c) * Data in icommon is read in from permanent inode on volume. */ #define NDADDR 12 /* direct addresses in inode */ #define NIADDR 3 /* indirect addresses in inode */ struct inode { struct inode *i_chain[2]; /* must be first */ u_short i_flag; u_short i_count; /* reference count */ dev_t i_dev; /* device where inode resides */ u_short i_shlockc; /* count of shared locks on inode */ u_short i_exlockc; /* count of exclusive locks on inode */ ino_t i_number; /* i number, 1-to-1 with device address */ long i_id; /* unique identifier */ struct fs *i_fs; /* file sys associated with this inode */ struct dquot *i_dquot; /* quota structure controlling this file */ struct text *i_text; /* text entry, if any (should be region) */ union { daddr_t if_lastr; /* last read (read-ahead) */ struct socket *is_socket; struct { struct inode *if_freef; /* free list forward */ struct inode **if_freeb; /* free list back */ } i_fr; } i_un; struct icommon { u_short ic_mode; /* 0: mode and type of file */ short ic_nlink; /* 2: number of links to file */ uid_t ic_uid; /* 4: owner's user id */ gid_t ic_gid; /* 6: owner's group id */ quad ic_size; /* 8: number of bytes in file */ time_t ic_atime; /* 16: time last accessed */ long ic_atspare; time_t ic_mtime; /* 24: time last modified */ long ic_mtspare; time_t ic_ctime; /* 32: last time inode changed */ long ic_ctspare; daddr_t ic_db[NDADDR]; /* 40: disk block addresses */ daddr_t ic_ib[NIADDR]; /* 88: indirect blocks */ long ic_flags; /* 100: status, currently unused */ long ic_blocks; /* 104: blocks actually held */ long ic_spare[5]; /* 108: reserved, currently unused */ } i_ic; #if (1) || defined(VICE) dev_t i_rmt_dev; /* device for communications with an agent process maintaining a remote file system */ #endif }; struct dinode { union { struct icommon di_icom; char di_size[128]; } di_un; }; #define i_mode i_ic.ic_mode #define i_nlink i_ic.ic_nlink #define i_uid i_ic.ic_uid #define i_gid i_ic.ic_gid /* ugh! -- must be fixed */ #ifdef vax #define i_size i_ic.ic_size.val[0] #endif #if defined(mc68000) || defined(ibm032) || defined(ibm370) #define i_size i_ic.ic_size.val[1] #endif #define i_db i_ic.ic_db #define i_ib i_ic.ic_ib #define i_atime i_ic.ic_atime #define i_mtime i_ic.ic_mtime #define i_ctime i_ic.ic_ctime #define i_blocks i_ic.ic_blocks #define i_rdev i_ic.ic_db[0] #define i_lastr i_un.if_lastr #define i_socket i_un.is_socket #define i_forw i_chain[0] #define i_back i_chain[1] #define i_freef i_un.i_fr.if_freef #define i_freeb i_un.i_fr.if_freeb #ifdef VICE #define i_vicemagic i_ic.ic_spare[0] #define VICEMAGIC 0x84fa1cb6 #define i_vicep1 i_ic.ic_spare[1] #define i_vicep2 i_ic.ic_spare[2] #define i_vicep3 i_ic.ic_spare[3] #define i_vicep4 i_ic.ic_spare[4] #endif VICE #define di_ic di_un.di_icom #define di_mode di_ic.ic_mode #define di_nlink di_ic.ic_nlink #define di_uid di_ic.ic_uid #define di_gid di_ic.ic_gid #ifdef vax #define di_size di_ic.ic_size.val[0] #endif #if defined(mc68000) || defined(ibm032) || defined(ibm370) #define di_size di_ic.ic_size.val[1] #endif #define di_db di_ic.ic_db #define di_ib di_ic.ic_ib #define di_atime di_ic.ic_atime #define di_mtime di_ic.ic_mtime #define di_ctime di_ic.ic_ctime #define di_rdev di_ic.ic_db[0] #define di_blocks di_ic.ic_blocks #ifdef VICE #define di_vicemagic di_ic.ic_spare[0] #define di_vicep1 di_ic.ic_spare[1] #define di_vicep2 di_ic.ic_spare[2] #define di_vicep3 di_ic.ic_spare[3] #define di_vicep4 di_ic.ic_spare[4] #endif VICE #ifdef KERNEL /* * Invalidate an inode. Used by the namei cache to detect stale * information. At an absurd rate of 100 calls/second, the inode * table invalidation should only occur once every 16 months. */ #define cacheinval(ip) \ (ip)->i_id = ++nextinodeid; \ if (nextinodeid == 0) \ cacheinvalall(); struct inode *inode; /* the inode table itself */ struct inode *inodeNINODE; /* the end of the inode table */ int ninode; /* number of slots in the table */ long nextinodeid; /* unique id generator */ struct inode *rootdir; /* pointer to inode of root directory */ struct inode *ialloc(); struct inode *iget(); #ifdef notdef struct inode *ifind(); #endif struct inode *owner(); struct inode *maknode(); struct inode *namei(); ino_t dirpref(); #endif /* flags */ #define ILOCKED 0x1 /* inode is locked */ #define IUPD 0x2 /* file has been modified */ #define IACC 0x4 /* inode access time to be updated */ #define IMOUNT 0x8 /* inode is mounted on */ #define IWANT 0x10 /* some process waiting on lock */ #define ITEXT 0x20 /* inode is pure text prototype */ #define ICHG 0x40 /* inode has been changed */ #define ISHLOCK 0x80 /* file has shared lock */ #define IEXLOCK 0x100 /* file has exclusive lock */ #define ILWAIT 0x200 /* someone waiting on file lock */ #define IMOD 0x400 /* inode has been modified */ #define IRENAME 0x800 /* inode is being renamed */ #ifdef VICE /* KAZAR-RA */ #define IFILLING 0x1000 /* file currently being filled from network */ #define IFILLWAIT 0x2000 /* someone is waiting for this data */ #define IFILLERR 0x4000 /* an error occurred during the fetch --> set EIO */ #endif /* modes */ #define IFMT 0170000 /* type of file */ #define IFCHR 0020000 /* character special */ #define IFDIR 0040000 /* directory */ #define IFBLK 0060000 /* block special */ #define IFREG 0100000 /* regular */ #define IFLNK 0120000 /* symbolic link */ #define IFSOCK 0140000 /* socket */ #define ISUID 04000 /* set user id on execution */ #define ISGID 02000 /* set group id on execution */ #define ISVTX 01000 /* save swapped text even after use */ #define IREAD 0400 /* read, write, execute permissions */ #define IWRITE 0200 #define IEXEC 0100 #define ILOCK(ip) { \ while ((ip)->i_flag & ILOCKED) { \ (ip)->i_flag |= IWANT; \ sleep((caddr_t)(ip), PINOD); \ } \ (ip)->i_flag |= ILOCKED; \ } #define IUNLOCK(ip) { \ (ip)->i_flag &= ~ILOCKED; \ if ((ip)->i_flag&IWANT) { \ (ip)->i_flag &= ~IWANT; \ wakeup((caddr_t)(ip)); \ } \ } #define IUPDAT(ip, t1, t2, waitfor) { \ if (ip->i_flag&(IUPD|IACC|ICHG|IMOD)) \ iupdat(ip, t1, t2, waitfor); \ } #define ITIMES(ip, t1, t2) { \ if ((ip)->i_flag&(IUPD|IACC|ICHG)) { \ (ip)->i_flag |= IMOD; \ if ((ip)->i_flag&IACC) \ (ip)->i_atime = (t1)->tv_sec; \ if ((ip)->i_flag&IUPD) \ (ip)->i_mtime = (t2)->tv_sec; \ if ((ip)->i_flag&ICHG) \ (ip)->i_ctime = time.tv_sec; \ (ip)->i_flag &= ~(IACC|IUPD|ICHG); \ } \ } #endif NDADDR #endif !VFS #],lo[$ .#%#Y#0 /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:ioctl.h 12.0$ */ /* $ACIS:ioctl.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/ioctl.h,v $ */ #ifndef _IOCTL_ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidioctl = "$Header:ioctl.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ioctl.h 7.1 (Berkeley) 6/4/86 */ /* * Ioctl definitions */ #define _IOCTL_ #if defined(KERNEL) || defined(STANDALONE) || defined(STANDUTIL) #include "ttychars.h" #include "ttydev.h" #else #include #include #endif struct tchars { char t_intrc; /* interrupt */ char t_quitc; /* quit */ char t_startc; /* start output */ char t_stopc; /* stop output */ char t_eofc; /* end-of-file */ char t_brkc; /* input delimiter (like nl) */ }; struct ltchars { char t_suspc; /* stop process signal */ char t_dsuspc; /* delayed stop process signal */ char t_rprntc; /* reprint line */ char t_flushc; /* flush output (toggles) */ char t_werasc; /* word erase */ char t_lnextc; /* literal next character */ }; /* * Structure for TIOCGETP and TIOCSETP ioctls. */ #ifndef _SGTTYB_ #define _SGTTYB_ struct sgttyb { char sg_ispeed; /* input speed */ char sg_ospeed; /* output speed */ char sg_erase; /* erase character */ char sg_kill; /* kill character */ short sg_flags; /* mode flags */ }; #endif /* * Window/terminal size structure. * This information is stored by the kernel * in order to provide a consistent interface, * but is not used by the kernel. * * Type must be "unsigned short" so that types.h not required. */ struct winsize { unsigned short ws_row; /* rows, in characters */ unsigned short ws_col; /* columns, in characters */ unsigned short ws_xpixel; /* horizontal size, pixels */ unsigned short ws_ypixel; /* vertical size, pixels */ }; /* * Pun for SUN. */ struct ttysize { unsigned short ts_lines; unsigned short ts_cols; unsigned short ts_xxx; unsigned short ts_yyy; }; #define TIOCGSIZE TIOCGWINSZ #define TIOCSSIZE TIOCSWINSZ #ifndef _IO /* * Ioctl's have the command encoded in the lower word, * and the size of any in or out parameters in the upper * word. The high 2 bits of the upper word are used * to encode the in/out status of the parameter; for now * we restrict parameters to at most 128 bytes. */ #define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */ #define IOC_VOID 0x20000000 /* no parameters */ #define IOC_OUT 0x40000000 /* copy out parameters */ #define IOC_IN 0x80000000 /* copy in parameters */ #define IOC_INOUT (IOC_IN|IOC_OUT) /* the 0x20000000 is so we can distinguish new ioctl's from old */ #define _IO(x,y) (IOC_VOID|('x'<<8)|y) #define _IOR(x,y,t) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|('x'<<8)|y) #define _IOW(x,y,t) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|('x'<<8)|y) /* this should be _IORW, but stdio got there first */ #define _IOWR(x,y,t) (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|('x'<<8)|y) #endif /* * tty ioctl commands */ #define TIOCGETD _IOR(t, 0, int) /* get line discipline */ #define TIOCSETD _IOW(t, 1, int) /* set line discipline */ #define TIOCHPCL _IO(t, 2) /* hang up on last close */ #define TIOCMODG _IOR(t, 3, int) /* get modem control state */ #define TIOCMODS _IOW(t, 4, int) /* set modem control state */ #define TIOCM_LE 0001 /* line enable */ #define TIOCM_DTR 0002 /* data terminal ready */ #define TIOCM_RTS 0004 /* request to send */ #define TIOCM_ST 0010 /* secondary transmit */ #define TIOCM_SR 0020 /* secondary receive */ #define TIOCM_CTS 0040 /* clear to send */ #define TIOCM_CAR 0100 /* carrier detect */ #define TIOCM_CD TIOCM_CAR #define TIOCM_RNG 0200 /* ring */ #define TIOCM_RI TIOCM_RNG #define TIOCM_DSR 0400 /* data set ready */ #define TIOCGETP _IOR(t, 8,struct sgttyb)/* get parameters -- gtty */ #define TIOCSETP _IOW(t, 9,struct sgttyb)/* set parameters -- stty */ #define TIOCSETN _IOW(t,10,struct sgttyb)/* as above, but no flushtty */ #define TIOCEXCL _IO(t, 13) /* set exclusive use of tty */ #define TIOCNXCL _IO(t, 14) /* reset exclusive use of tty */ #define TIOCFLUSH _IOW(t, 16, int) /* flush buffers */ #define TIOCSETC _IOW(t,17,struct tchars)/* set special characters */ #define TIOCGETC _IOR(t,18,struct tchars)/* get special characters */ #define TANDEM 0x00000001 /* send stopc on out q full */ #define CBREAK 0x00000002 /* half-cooked mode */ #define LCASE 0x00000004 /* simulate lower case */ #define ECHO 0x00000008 /* echo input */ #define CRMOD 0x00000010 /* map \r to \r\n on output */ #define RAW 0x00000020 /* no i/o processing */ #define ODDP 0x00000040 /* get/send odd parity */ #define EVENP 0x00000080 /* get/send even parity */ #define ANYP 0x000000c0 /* get any parity/send none */ #define NLDELAY 0x00000300 /* \n delay */ #define NL0 0x00000000 #define NL1 0x00000100 /* tty 37 */ #define NL2 0x00000200 /* vt05 */ #define NL3 0x00000300 #define TBDELAY 0x00000c00 /* horizontal tab delay */ #define TAB0 0x00000000 #define TAB1 0x00000400 /* tty 37 */ #define TAB2 0x00000800 #define XTABS 0x00000c00 /* expand tabs on output */ #define CRDELAY 0x00003000 /* \r delay */ #define CR0 0x00000000 #define CR1 0x00001000 /* tn 300 */ #define CR2 0x00002000 /* tty 37 */ #define CR3 0x00003000 /* concept 100 */ #define VTDELAY 0x00004000 /* vertical tab delay */ #define FF0 0x00000000 #define FF1 0x00004000 /* tty 37 */ #define BSDELAY 0x00008000 /* \b delay */ #define BS0 0x00000000 #define BS1 0x00008000 #define ALLDELAY (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY) #define CRTBS 0x00010000 /* do backspacing for crt */ #define PRTERA 0x00020000 /* \ ... / erase */ #define CRTERA 0x00040000 /* " \b " to wipe out char */ #define TILDE 0x00080000 /* hazeltine tilde kludge */ #define MDMBUF 0x00100000 /* start/stop output on carrier intr */ #define LITOUT 0x00200000 /* literal output */ #define TOSTOP 0x00400000 /* SIGSTOP on background output */ #define FLUSHO 0x00800000 /* flush output to terminal */ #define NOHANG 0x01000000 /* no SIGHUP on carrier drop */ #define L001000 0x02000000 #define CRTKIL 0x04000000 /* kill line with " \b " */ #define PASS8 0x08000000 #define CTLECH 0x10000000 /* echo control chars as ^X */ #define PENDIN 0x20000000 /* tp->t_rawq needs reread */ #define DECCTQ 0x40000000 /* only ^Q starts after ^S */ #define NOFLSH 0x80000000 /* no output flush on signal */ /* locals, from 127 down */ #define TIOCLBIS _IOW(t, 127, int) /* bis local mode bits */ #define TIOCLBIC _IOW(t, 126, int) /* bic local mode bits */ #define TIOCLSET _IOW(t, 125, int) /* set entire local mode word */ #define TIOCLGET _IOR(t, 124, int) /* get local modes */ #define LCRTBS (CRTBS>>16) #define LPRTERA (PRTERA>>16) #define LCRTERA (CRTERA>>16) #define LTILDE (TILDE>>16) #define LMDMBUF (MDMBUF>>16) #define LLITOUT (LITOUT>>16) #define LTOSTOP (TOSTOP>>16) #define LFLUSHO (FLUSHO>>16) #define LNOHANG (NOHANG>>16) #define LCRTKIL (CRTKIL>>16) #define LPASS8 (PASS8>>16) #define LCTLECH (CTLECH>>16) #define LPENDIN (PENDIN>>16) #define LDECCTQ (DECCTQ>>16) #define LNOFLSH (NOFLSH>>16) #define TIOCSBRK _IO(t, 123) /* set break bit */ #define TIOCCBRK _IO(t, 122) /* clear break bit */ #define TIOCSDTR _IO(t, 121) /* set data terminal ready */ #define TIOCCDTR _IO(t, 120) /* clear data terminal ready */ #define TIOCGPGRP _IOR(t, 119, int) /* get pgrp of tty */ #define TIOCSPGRP _IOW(t, 118, int) /* set pgrp of tty */ #define TIOCSLTC _IOW(t,117,struct ltchars)/* set local special chars */ #define TIOCGLTC _IOR(t,116,struct ltchars)/* get local special chars */ #define TIOCOUTQ _IOR(t, 115, int) /* output queue size */ #define TIOCSTI _IOW(t, 114, char) /* simulate terminal input */ #define TIOCNOTTY _IO(t, 113) /* void tty association */ #define TIOCPKT _IOW(t, 112, int) /* pty: set/clear packet mode */ #define TIOCPKT_DATA 0x00 /* data packet */ #define TIOCPKT_FLUSHREAD 0x01 /* flush packet */ #define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ #define TIOCPKT_STOP 0x04 /* stop output */ #define TIOCPKT_START 0x08 /* start output */ #define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ #define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ #define TIOCSTOP _IO(t, 111) /* stop output, like ^S */ #define TIOCSTART _IO(t, 110) /* start output, like ^Q */ #define TIOCMSET _IOW(t, 109, int) /* set all modem bits */ #define TIOCMBIS _IOW(t, 108, int) /* bis modem bits */ #define TIOCMBIC _IOW(t, 107, int) /* bic modem bits */ #define TIOCMGET _IOR(t, 106, int) /* get all modem bits */ #define TIOCREMOTE _IOW(t, 105, int) /* remote input editing */ #define TIOCGWINSZ _IOR(t, 104, struct winsize) /* get window size */ #define TIOCSWINSZ _IOW(t, 103, struct winsize) /* set window size */ #define TIOCUCNTL _IOW(t, 102, int) /* pty: set/clr usr cntl mode */ #define UIOCCMD(n) _IO(u, n) /* usr cntl op "n" */ #define TIOCCONS _IO(t, 64) /* Select console line */ #define TIOCSETT _IOW(t, 65, int) /* set trigger level */ #define OTTYDISC 0 /* old, v7 std tty driver */ #define NETLDISC 1 /* line discip for berk net */ #define NTTYDISC 2 /* new tty discipline */ #define TABLDISC 3 /* hitachi tablet discipline */ #define NTABLDISC 4 /* gtco tablet discipline */ #define PMSDISC 5 /* Planar mouse discipline (3 but) */ #define APLDISC 7 /* 3812 printer discipline */ #define SLIPDISC 8 /* serial IP discipline */ #define FIOCLEX _IO(f, 1) /* set exclusive use on fd */ #define FIONCLEX _IO(f, 2) /* remove exclusive use */ /* another local */ #define FIONREAD _IOR(f, 127, int) /* get # bytes to read */ #define FIONBIO _IOW(f, 126, int) /* set/clear non-blocking i/o */ #define FIOASYNC _IOW(f, 125, int) /* set/clear async i/o */ #define FIOSETOWN _IOW(f, 124, int) /* set owner */ #define FIOGETOWN _IOR(f, 123, int) /* get owner */ /* socket i/o controls */ #define SIOCSHIWAT _IOW(s, 0, int) /* set high watermark */ #define SIOCGHIWAT _IOR(s, 1, int) /* get high watermark */ #define SIOCSLOWAT _IOW(s, 2, int) /* set low watermark */ #define SIOCGLOWAT _IOR(s, 3, int) /* get low watermark */ #define SIOCATMARK _IOR(s, 7, int) /* at oob mark? */ #define SIOCSPGRP _IOW(s, 8, int) /* set process group */ #define SIOCGPGRP _IOR(s, 9, int) /* get process group */ #define SIOCADDRT _IOW(r, 10, struct rtentry) /* add route */ #define SIOCDELRT _IOW(r, 11, struct rtentry) /* delete route */ #define SIOCSIFADDR _IOW(i, 12, struct ifreq) /* set ifnet address */ #define SIOCGIFADDR _IOWR(i,13, struct ifreq) /* get ifnet address */ #define SIOCSIFDSTADDR _IOW(i, 14, struct ifreq) /* set p-p address */ #define SIOCGIFDSTADDR _IOWR(i,15, struct ifreq) /* get p-p address */ #define SIOCSIFFLAGS _IOW(i, 16, struct ifreq) /* set ifnet flags */ #define SIOCGIFFLAGS _IOWR(i,17, struct ifreq) /* get ifnet flags */ #define SIOCGIFBRDADDR _IOWR(i,18, struct ifreq) /* get broadcast addr */ #define SIOCSIFBRDADDR _IOW(i,19, struct ifreq) /* set broadcast addr */ #define SIOCGIFCONF _IOWR(i,20, struct ifconf) /* get ifnet list */ #define SIOCGIFNETMASK _IOWR(i,21, struct ifreq) /* get net addr mask */ #define SIOCSIFNETMASK _IOW(i,22, struct ifreq) /* set net addr mask */ #define SIOCGIFMETRIC _IOWR(i,23, struct ifreq) /* get IF metric */ #define SIOCSIFMETRIC _IOW(i,24, struct ifreq) /* set IF metric */ #define SIOCSARP _IOW(i, 30, struct arpreq) /* set arp entry */ #define SIOCGARP _IOWR(i,31, struct arpreq) /* get arp entry */ #define SIOCDARP _IOW(i, 32, struct arpreq) /* delete arp entry */ #endif #]-lo*$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:kernel.h 12.0$ */ /* $ACIS:kernel.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/kernel.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidkernel = "$Header:kernel.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)kernel.h 7.1 (Berkeley) 6/4/86 */ /* * Global variables for the kernel */ long rmalloc(); /* 1.1 */ long hostid; char hostname[MAXHOSTNAMELEN]; int hostnamelen; #ifdef VFS char domainname[MAXHOSTNAMELEN]; int domainnamelen; #endif VFS /* 1.2 */ struct timeval boottime; struct timeval time; struct timezone tz; /* XXX */ int hz; int phz; /* alternate clock's frequency */ int tick; int lbolt; /* awoken once a second */ int realitexpire(); double avenrun[3]; #ifdef ibm032 int avenrun_scale; /* PCT_SCALE * avenrun[0] */ #endif ibm032 #ifdef GPROF extern int profiling; extern char *s_lowpc; extern u_long s_textsize; extern u_short *kcount; #endif int maxuprc; /* max per user processes */ #].lo(7$ [#%#Y#8/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:map.h 12.0$ */ /* $ACIS:map.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/map.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidmap = "$Header:map.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)map.h 7.1 (Berkeley) 6/4/86 */ /* * Resource Allocation Maps. * * Associated routines manage sub-allocation of an address space using * an array of segment descriptors. The first element of this array * is a map structure, describing the arrays extent and the name * of the controlled object. Each additional structure represents * a free segment of the address space. * * A call to rminit initializes a resource map and may also be used * to free some address space for the map. Subsequent calls to rmalloc * and rmfree allocate and free space in the resource map. If the resource * map becomes too fragmented to be described in the available space, * then some of the resource is discarded. This may lead to critical * shortages, but is better than not checking (as the previous versions * of these routines did) or giving up and calling panic(). The routines * could use linked lists and call a memory allocator when they run * out of space, but that would not solve the out of space problem when * called at interrupt time. * * N.B.: The address 0 in the resource address space is not available * as it is used internally by the resource map routines. */ struct map { struct mapent *m_limit; /* address of last slot in map */ char *m_name; /* name of resource */ /* we use m_name when the map overflows, in warning messages */ }; struct mapent { int m_size; /* size of this segment of the map */ int m_addr; /* resource-space addr of start of segment */ }; #ifdef KERNEL struct map *swapmap; int nswapmap; struct map *argmap; #define ARGMAPSIZE 16 struct map *kernelmap; struct map *mbmap; #endif #]/loe$ P#%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:mbuf.h 12.0$ */ /* $ACIS:mbuf.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/mbuf.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidmbuf = "$Header:mbuf.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)mbuf.h 7.3 (Berkeley) 9/11/86 */ /* * First, CLBYTES, etc., are not necessarily what we want to * talk about with large mbufs. In particular, if we don't * really want to re-map them, we don't need CL type things. */ #if !defined(ibm370) # define MB_CLBYTES CLBYTES # define MB_CLOFSET CLOFSET # define MB_CLSHIFT CLSHIFT # define MB_CLSIZE CLSIZE #else /* !defined(ibm370) */ # define MB_CLBYTES NBPG # define MB_CLOFSET PGOFSET # define MB_CLSHIFT PGSHIFT # define MB_CLSIZE 1 #endif /* !defined(ibm370) */ /* * Constants related to memory allocator. */ #define MSIZE 128 /* size of an mbuf */ #define MMINOFF 12 /* mbuf header length */ #define MTAIL 4 #define MMAXOFF (MSIZE-MTAIL) /* offset where data ends */ #define MLEN (MSIZE-MMINOFF-MTAIL) /* mbuf data length */ #ifdef SMALLMEM #define NMBCLUSTERS 128 /* 256k */ #else #define NMBCLUSTERS 512 #endif #define NMBPCL (MB_CLBYTES/MSIZE) /* # mbufs per cluster */ /* * Macros for type conversion */ /* network cluster number to virtual address, and back */ #define cltom(x) ((struct mbuf *)((int)mbutl + ((x) << MB_CLSHIFT))) #define mtocl(x) (((int)x - (int)mbutl) >> MB_CLSHIFT) /* address in mbuf to mbuf head */ #define dtom(x) ((struct mbuf *)((int)x & ~(MSIZE-1))) /* mbuf head, to typed data */ #define mtod(x,t) ((t)((int)(x) + (x)->m_off)) struct mbuf { struct mbuf *m_next; /* next buffer in chain */ u_long m_off; /* offset of data */ short m_len; /* amount of data in this mbuf */ short m_type; /* mbuf type (0 == free) */ #ifndef VFS u_char m_dat[MLEN]; /* data storage */ #else !VFS union { u_char mun_dat[MLEN]; /* data storage */ struct { short mun_cltype; /* "cluster" type */ int (*mun_clfun)(); int mun_clarg; int (*mun_clswp)(); } mun_cl; } m_un; #endif !VFS struct mbuf *m_act; /* link in higher-level mbuf list */ }; #ifdef VFS #define m_dat m_un.mun_dat #define m_cltype m_un.mun_cl.mun_cltype #define m_clfun m_un.mun_cl.mun_clfun #define m_clarg m_un.mun_cl.mun_clarg #define m_clswp m_un.mun_cl.mun_clswp #endif VFS /* mbuf types */ #define MT_FREE 0 /* should be on free list */ #define MT_DATA 1 /* dynamic (data) allocation */ #define MT_HEADER 2 /* packet header */ #define MT_SOCKET 3 /* socket structure */ #define MT_PCB 4 /* protocol control block */ #define MT_RTABLE 5 /* routing tables */ #define MT_HTABLE 6 /* IMP host tables */ #define MT_ATABLE 7 /* address resolution tables */ #define MT_SONAME 8 /* socket name */ #define MT_ZOMBIE 9 /* zombie proc status */ #define MT_SOOPTS 10 /* socket options */ #define MT_FTABLE 11 /* fragment reassembly header */ #define MT_RIGHTS 12 /* access rights */ #define MT_IFADDR 13 /* interface address */ #ifdef VFS /* * Values for m_cltype: applicable only for cluster mbufs */ #define MCL_STATIC 1 /* data in mbuf cluster pool */ #define MCL_LOANED 2 /* data allocated elsewhere and "loaned" to the mbuf */ #endif VFS /* flags to m_get */ #define M_DONTWAIT 0 #define M_WAIT 1 /* flags to m_pgalloc */ #define MPG_MBUFS 0 /* put new mbufs on free list */ #define MPG_CLUSTERS 1 /* put new clusters on free list */ #define MPG_SPACE 2 /* don't free; caller wants space */ /* length to m_copy to copy all */ #define M_COPYALL 1000000000 /* * m_pullup will pull up additional length if convenient; * should be enough to hold headers of second-level and higher protocols. */ #define MPULL_EXTRA 32 #define MGET(m, i, t) \ { int ms = splimp(); \ if ((m)=mfree) \ { if ((m)->m_type != MT_FREE) panic("mget"); (m)->m_type = t; \ mbstat.m_mtypes[MT_FREE]--; mbstat.m_mtypes[t]++; \ mfree = (m)->m_next; (m)->m_next = 0; \ (m)->m_off = MMINOFF; } \ else \ (m) = m_more(i, t); \ splx(ms); } /* * Mbuf page cluster macros. * MCLALLOC allocates mbuf page clusters. * Note that it works only with a count of 1 at the moment. * MCLGET adds such clusters to a normal mbuf. * m->m_len is set to MB_CLBYTES upon success, 0 if failure. * MCLFREE frees clusters allocated by MCLALLOC. */ #define MCLALLOC(m, i) \ { int ms = splimp(); \ if (mclfree == 0) \ (void)m_clalloc((i), MPG_CLUSTERS, M_DONTWAIT); \ if ((m)=mclfree) \ {++mclrefcnt[mtocl(m)];mbstat.m_clfree--;mclfree = (m)->m_next;} \ splx(ms); } #define M_HASCL(m) ((m)->m_off >= MSIZE) #define MTOCL(m) ((struct mbuf *)(mtod((m), int)&~MB_CLOFSET)) #ifdef VFS #define MCLGET(m) \ { struct mbuf *p; \ int ms = splimp(); \ if (mclfree == 0) \ (void)m_clalloc(1, MPG_CLUSTERS, M_DONTWAIT); \ MCLALLOC(p, 1); \ if (p) { \ (m)->m_off = (int)p - (int)(m); \ (m)->m_len = CLBYTES; \ (m)->m_cltype = MCL_STATIC; \ } \ else \ (m)->m_len = 0; \ splx(ms); } #else VFS #define MCLGET(m) \ { struct mbuf *p; \ if (!(int)(m)) panic("mclget"); \ MCLALLOC(p, 1); \ if (p) { \ (m)->m_off = (int)p - (int)(m); \ (m)->m_len = MB_CLBYTES; \ } else \ (m)->m_len = 0; \ } #endif VFS #define MCLFREE(m) { \ if (--mclrefcnt[mtocl(m)] == 0) \ { (m)->m_next = mclfree;mclfree = (m);mbstat.m_clfree++;} \ } #ifdef VFS #define MFREE(m, n) \ { int ms = splimp(); \ if ((m)->m_type == MT_FREE) panic("mfree"); \ mbstat.m_mtypes[(m)->m_type]--; mbstat.m_mtypes[MT_FREE]++; \ (m)->m_type = MT_FREE; \ if (M_HASCL(m)) { \ switch (m->m_cltype) { \ case 1: (n) = MTOCL(m); MCLFREE(n); break; \ case 2: (*m->m_clfun)(m->m_clarg); break; \ default: panic("MFREE"); } \ } \ (n) = (m)->m_next; (m)->m_next = mfree; \ (m)->m_off = 0; (m)->m_act = 0; mfree = (m); \ splx(ms); \ if (m_want) { \ m_want = 0; \ wakeup((caddr_t)&mfree); \ } \ } #else VFS #define MFREE(m, n) \ { int ms = splimp(); \ if ((m)->m_type == MT_FREE) panic("mfree"); \ mbstat.m_mtypes[(m)->m_type]--; mbstat.m_mtypes[MT_FREE]++; \ (m)->m_type = MT_FREE; \ if (M_HASCL(m)) { \ (n) = MTOCL(m); \ MCLFREE(n); \ } \ (n) = (m)->m_next; (m)->m_next = mfree; \ (m)->m_off = 0; (m)->m_act = 0; mfree = (m); \ splx(ms); \ if (m_want) { \ m_want = 0; \ wakeup((caddr_t)&mfree); \ } \ } #endif VFS /* * Mbuf statistics. */ struct mbstat { short m_mbufs; /* mbufs obtained from page pool */ short m_clusters; /* clusters obtained from page pool */ short m_clfree; /* free clusters */ short m_drops; /* times failed to find space */ short m_mtypes[256]; /* type specific mbuf allocations */ }; #ifdef KERNEL extern struct mbuf mbutl[]; /* virtual address of net free mem */ /* following deleted to keep hc2 happy extern struct pte Mbmap[]; /* page tables to map Netutl */ struct mbstat mbstat; int nmbclusters; struct mbuf *mfree, *mclfree; char mclrefcnt[NMBCLUSTERS + 1]; int m_want; struct mbuf *m_get(),*m_getclr(),*m_free(),*m_more(),*m_copy(),*m_pullup(); #ifdef VFS struct mbuf *mclgetx(); #endif VFS caddr_t m_clalloc(); #endif #]0lo+ǁ$ #%#Y#;/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:mman.h 12.0$ */ /* $ACIS:mman.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/mman.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidmman = "$Header:mman.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)mman.h 7.1 (Berkeley) 6/4/86 */ /* protections are chosen from these bits, or-ed together */ #define PROT_READ 0x1 /* pages can be read */ #define PROT_WRITE 0x2 /* pages can be written */ #define PROT_EXEC 0x4 /* pages can be executed */ /* sharing types: choose either SHARED or PRIVATE */ #define MAP_SHARED 1 /* share changes */ #define MAP_PRIVATE 2 /* changes are private */ /* advice to madvise */ #define MADV_NORMAL 0 /* no further special treatment */ #define MADV_RANDOM 1 /* expect random page references */ #define MADV_SEQUENTIAL 2 /* expect sequential page references */ #define MADV_WILLNEED 3 /* will need these pages */ #define MADV_DONTNEED 4 /* dont need these pages */ #]1lo$&$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:mount.h 12.0$ */ /* $ACIS:mount.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/mount.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidmount = "$Header:mount.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #ifndef VFS /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)mount.h 7.1 (Berkeley) 6/4/86 */ /* * Mount structure. * One allocated on every mount. * Used to find the super block. */ struct mount { dev_t m_dev; /* device mounted */ struct buf *m_bufp; /* pointer to superblock */ struct inode *m_inodp; /* pointer to mounted on inode */ struct inode *m_qinod; /* QUOTA: pointer to quota file */ #if (1) || defined(VICE) char m_remote; /* remote file system */ char m_mounted; /* TRUE if this structure is in use */ struct inode *m_parent;/* The parent directory to the mounted on inode. Bogus method of handling chdir .. out of remote file system */ #endif }; #ifdef KERNEL struct mount mount[NMOUNT]; #endif #else !VFS /* NFSSRC @(#)mount.h 2.1 86/04/11 */ /* @(#)mount.h 1.1 86/02/03 SMI */ /* * mount options */ #define M_RDONLY 0x01 /* mount fs read only */ #define M_NOSUID 0x02 /* mount fs with setuid not allowed */ /* * File system types, these corespond to entries in fsconf */ #define MOUNT_UFS 0 #define MOUNT_NFS 1 #define MOUNT_PC 2 #define MOUNT_AFS 3 #define MOUNT_DFS 4 #define MOUNT_MAXTYPE 4 struct ufs_args { char *fspec; }; #ifdef NFS struct nfs_args { struct sockaddr_in *addr; /* file server address */ fhandle_t *fh; /* File handle to be mounted */ int flags; /* flags */ int wsize; /* write size in bytes */ int rsize; /* read size in bytes */ int timeo; /* initial timeout in .1 secs */ int retrans; /* times to retry send */ char *hostname; /* server's name */ }; /* * NFS mount option flags */ #define NFSMNT_SOFT 0x001 /* soft mount (hard is default) */ #define NFSMNT_WSIZE 0x002 /* set write size */ #define NFSMNT_RSIZE 0x004 /* set read size */ #define NFSMNT_TIMEO 0x008 /* set initial timeout */ #define NFSMNT_RETRANS 0x010 /* set number of request retrys */ #define NFSMNT_HOSTNAME 0x020 /* set hostname for error printf */ #define NFSMNT_INT 0x040 /* allow interrupts on hard mount */ #endif NFS #ifdef AFS struct afs_args { int type; /* flags */ }; #define AFS_MAIN 0 #endif AFS #ifdef DFS struct dfs_args { char *fspec; u_long mnt_flags; uid_t def_uid; gid_t def_gid; }; #endif DFS /* * sun's pc file system */ #ifdef PCFS struct pc_args { char *fspec; }; #endif PCFS #ifdef KERNEL /* * mount filesystem type switch table */ extern struct vfsops *vfssw[]; #endif #endif !VFS #]2lo,$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:msgbuf.h 12.0$ */ /* $ACIS:msgbuf.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/msgbuf.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidmsgbuf = "$Header:msgbuf.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)msgbuf.h 7.1 (Berkeley) 6/4/86 */ #define MSG_MAGIC 0x063061 #if !(defined(MSGBSIZE) && defined(ibm032) && defined(DEBUG)) #define MSGBSIZE 4096 #endif #define MSG_BSIZE (MSGBSIZE - 3 * sizeof (long)) struct msgbuf { long msg_magic; long msg_bufx; long msg_bufr; char msg_bufc[MSG_BSIZE]; }; #ifdef KERNEL struct msgbuf msgbuf; #ifdef ibm032 struct msgbuf *msgbufp; /* real memory address of msgbuf */ #endif ibm032 #endif #]3lo$ā$ #%#Y#=/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:mtio.h 12.0$ */ /* $ACIS:mtio.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/mtio.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidmtio = "$Header:mtio.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)mtio.h 7.1 (Berkeley) 6/4/86 */ /* * Structures and definitions for mag tape io control commands */ /* structure for MTIOCTOP - mag tape op command */ struct mtop { short mt_op; /* operations defined below */ daddr_t mt_count; /* how many of them */ }; /* operations */ #define MTWEOF 0 /* write an end-of-file record */ #define MTFSF 1 /* forward space file */ #define MTBSF 2 /* backward space file */ #define MTFSR 3 /* forward space record */ #define MTBSR 4 /* backward space record */ #define MTREW 5 /* rewind */ #define MTOFFL 6 /* rewind and put the drive offline */ #define MTNOP 7 /* no operation, sets status only */ #ifdef ibm032 #define MTERASE 8 /* for streamer: erase tape */ #define MTRETENSION 9 /* for streamer: retension tape */ #endif ibm032 #ifdef vax #define MTCACHE 8 /* enable controller cache */ #define MTNOCACHE 9 /* disable controller cache */ #endif vax #if defined(ibm370) #define MTCLREOT 10 /* clear end-of-tape indicator */ #define MTERG 11 /* erase gap */ #endif /* defined(ibm370) */ /* structure for MTIOCGET - mag tape get status command */ struct mtget { short mt_type; /* type of magtape device */ /* the following two registers are grossly device dependent */ short mt_dsreg; /* ``drive status'' register */ short mt_erreg; /* ``error'' register */ /* end device-dependent registers */ short mt_resid; /* residual count */ /* the following two are not yet implemented */ daddr_t mt_fileno; /* file number of current position */ daddr_t mt_blkno; /* block number of current position */ /* end not yet implemented */ }; /* * Constants for mt_type byte. These are the same * for controllers compatible with the types listed. */ #define MT_ISTS 0x01 /* TS-11 */ #define MT_ISHT 0x02 /* TM03 Massbus: TE16, TU45, TU77 */ #define MT_ISTM 0x03 /* TM11/TE10 Unibus */ #define MT_ISMT 0x04 /* TM78/TU78 Massbus */ #define MT_ISUT 0x05 /* SI TU-45 emulation on Unibus */ #define MT_ISCPC 0x06 /* SUN */ #define MT_ISAR 0x07 /* SUN */ #define MT_ISTMSCP 0x08 /* DEC TMSCP protocol (TU81, TK50) */ #define MT_ISST 0x09 /* IBM RTPC Streaming tape */ #define MT_IS_IBM 0x0a /* IBM tape */ /* mag tape io control commands */ #define MTIOCTOP _IOW(m, 1, struct mtop) /* do a mag tape op */ #define MTIOCGET _IOR(m, 2, struct mtget) /* get tape status */ #define MTIOCIEOT _IO(m, 3) /* ignore EOT error */ #define MTIOCEEOT _IO(m, 4) /* enable EOT error */ #ifndef KERNEL #define DEFTAPE "/dev/rmt12" #endif #]4lo"5$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:namei.h 12.0$ */ /* $ACIS:namei.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/namei.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidnamei = "$Header:namei.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)namei.h 7.1 (Berkeley) 6/4/86 */ #ifndef _NAMEI_ #define _NAMEI_ #if defined(KERNEL) || defined (STANDALONE) || defined(STANDUTIL) #include "uio.h" #else #include #endif /* * Encapsulation of namei parameters. * One of these is located in the u. area to * minimize space allocated on the kernel stack. * NOTE: this is not used by NFS, but is included so that the * user.h structure will be the same size for both NFS & * NON-NFS kernels. (keep debuggers/ps happy). */ struct nameidata { caddr_t ni_dirp; /* pathname pointer */ short ni_nameiop; /* see below */ short ni_error; /* error return if any */ off_t ni_endoff; /* end of useful stuff in directory */ #ifdef VFS struct vnode *ni_pdir; /* inode of parent directory of dirp */ #else !VFS struct inode *ni_pdir; /* inode of parent directory of dirp */ #endif !VFS struct iovec ni_iovec; /* MUST be pointed to by ni_iov */ struct uio ni_uio; /* directory I/O parameters */ struct direct ni_dent; /* current directory entry */ }; #ifndef VFS #define ni_base ni_iovec.iov_base #define ni_count ni_iovec.iov_len #define ni_iov ni_uio.uio_iov #define ni_iovcnt ni_uio.uio_iovcnt #define ni_offset ni_uio.uio_offset #define ni_segflg ni_uio.uio_segflg #define ni_resid ni_uio.uio_resid /* * namei operations and modifiers */ #define LOOKUP 0 /* perform name lookup only */ #define CREATE 1 /* setup for file creation */ #define DELETE 2 /* setup for file deletion */ #define LOCKPARENT 0x10 /* see the top of namei */ #define NOCACHE 0x20 /* name must not be left in cache */ #define FOLLOW 0x40 /* follow symbolic links */ #define NOFOLLOW 0x0 /* don't follow symbolic links (pseudo) */ /* * This structure describes the elements in the cache of recent * names looked up by namei. */ struct namecache { struct namecache *nc_forw; /* hash chain, MUST BE FIRST */ struct namecache *nc_back; /* hash chain, MUST BE FIRST */ struct namecache *nc_nxt; /* LRU chain */ struct namecache **nc_prev; /* LRU chain */ struct inode *nc_ip; /* inode the name refers to */ ino_t nc_ino; /* ino of parent of name */ dev_t nc_dev; /* dev of parent of name */ dev_t nc_idev; /* dev of the name ref'd */ long nc_id; /* referenced inode's id */ char nc_nlen; /* length of name */ #define NCHNAMLEN 15 /* maximum name segment length we bother with */ char nc_name[NCHNAMLEN]; /* segment name */ }; #ifdef KERNEL struct namecache *namecache; int nchsize; #endif /* * Stats on usefulness of namei caches. */ struct nchstats { long ncs_goodhits; /* hits that we can reall use */ long ncs_badhits; /* hits we must drop */ long ncs_falsehits; /* hits with id mismatch */ long ncs_miss; /* misses */ long ncs_long; /* long names that ignore cache */ long ncs_pass2; /* names found with passes == 2 */ long ncs_2passes; /* number of times we attempt it */ }; #endif #endif !VFS #]5lo,$ #%#Y#P/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:nfs_defines.h 12.0$ */ /* $ACIS:nfs_defines.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/nfs_defines.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidnfs_defines = "$Header:nfs_defines.h 12.0$"; #endif /* ** nfs_defines.h */ /* If you want to build an NFS system, simply uncomment these three define * macros so that VFS, NFS, and UCBFIX will then be defined. * * If you want to build a NON NFS system, simply comment out these three define * macros so that VFS, NFS, and UCBFIX will not be defined. * * Defining NONFS before including this file will cause it to have no effect. */ #ifndef NONFS #ifndef VFS #define VFS #endif VFS #ifndef NFS #define NFS #endif NFS #ifndef UCBFIX #define UCBFIX #endif UCBFIX #endif /* NONFS */ #]6lo$ #%#Y#Q/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:param.h 12.0$ */ /* $ACIS:param.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/param.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidparam = "$Header:param.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)param.h 7.1 (Berkeley) 6/4/86 */ #define BSD 43 /* 4.3 * 10, as cpp doesn't do floats */ #define BSD4_3 1 /* * Machine type dependent parameters. */ #if defined(KERNEL) || defined(STANDALONE) #include "../machine/machparam.h" #else #include #endif #define NPTEPG (NBPG/(sizeof (struct pte))) /* * Machine-independent constants */ #define NMOUNT 20 /* number of mountable file systems */ /* NMOUNT must be <= 255 unless c_mdev (cmap.h) is expanded */ #define MSWAPX NMOUNT /* pseudo mount table index for swapdev */ #if !(defined(ibm032) && defined(MAXUPRC)) #define MAXUPRC 40 /* max processes per user */ #endif #define NOFILE 64 /* max open files per process */ #ifdef VFS #define MAXLINK 32767 #endif #define CANBSIZ 256 /* max size of typewriter line */ #define NCARGS 20480 /* # characters in exec arglist */ #define NGROUPS 16 /* max number groups */ #define NOGROUP 65535 /* marker for empty group set member */ /* * Priorities */ #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PRIUBA 24 #define PZERO 25 #define PPIPE 26 #ifdef VFS #define PVFS 27 #endif VFS #define PWAIT 30 #define PLOCK 35 #define PSLEP 40 #define PUSER 50 #ifdef VFS /* * PCATCH was added for use in the krpc routines */ #define PMASK 0177 /* mask for PCATCH */ #define PCATCH 0400 /* return if sleep interrupted, don't longjmp */ #endif VFS #define NZERO 0 /* * Signals */ #if defined(KERNEL) || defined(STANDALONE) #include "signal.h" #else #include #endif #define ISSIG(p) \ ((p)->p_sig && ((p)->p_flag&STRC || \ ((p)->p_sig &~ ((p)->p_sigignore | (p)->p_sigmask))) && issig()) #define NBPW sizeof(int) /* number of bytes in an integer */ #define NULL 0 #ifdef VFS #define CMASK 0 /* default mask for file creation */ #else #define CMASK 022 /* default mask for file creation */ #endif VFS #define NODEV (dev_t)(-1) /* * Clustering of hardware pages on machines with ridiculously small * page sizes is done here. The paging subsystem deals with units of * CLSIZE pte's describing NBPG (from vm.h) pages each. * * NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE */ #define CLBYTES (CLSIZE*NBPG) #define CLOFSET (CLSIZE*NBPG-1) /* for clusters, like PGOFSET */ #define claligned(x) ((((int)(x))&CLOFSET)==0) #define CLOFF CLOFSET #define CLSHIFT (PGSHIFT+CLSIZELOG2) #if CLSIZE==1 #define clbase(i) (i) #define clrnd(i) (i) #else /* give the base virtual address (first of CLSIZE) */ #define clbase(i) ((i) &~ (CLSIZE-1)) /* round a number of clicks up to a whole cluster */ #define clrnd(i) (((i) + (CLSIZE-1)) &~ (CLSIZE-1)) #endif /* CBLOCK is the size of a clist block, must be power of 2 */ #define CBLOCK 64 #define CBSIZE (CBLOCK - sizeof(struct cblock *)) /* data chars/clist */ #define CROUND (CBLOCK - 1) /* clist rounding */ #if (!defined(KERNEL)) && (!defined(STANDALONE)) #include #else #ifndef LOCORE #include "types.h" #endif #endif /* * File system parameters and macros. * * The file system is made out of blocks of at most MAXBSIZE units, * with smaller units (fragments) only in the last direct block. * MAXBSIZE primarily determines the size of buffers in the buffer * pool. It may be made larger without any effect on existing * file systems; however making it smaller make make some file * systems unmountable. * * Note that the blocked devices are assumed to have DEV_BSIZE * "sectors" and that fragments must be some multiple of this size. * Block devices are read in BLKDEV_IOSIZE units. This number must * be a power of two and in the range of * DEV_BSIZE <= BLKDEV_IOSIZE <= MAXBSIZE * This size has no effect upon the file system, but is usually set * to the block size of the root file system, so as to maximize the * speed of ``fsck''. */ #define MAXBSIZE 8192 #if defined(ibm370) #define DEV_BSIZE 1024 /* size of a physical record on a count-key-data dasd */ #define DEV_BSHIFT 10 /* log2(DEV_BSIZE) */ #else #define DEV_BSIZE 512 #define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */ #endif #define BLKDEV_IOSIZE 2048 #ifdef ibm032 #define BLKDEV_IOSHIFT 11 /* log2(BLKDEV_IOSIZE) */ #endif #define MAXFRAG 8 #define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \ ((unsigned)(bytes) >> DEV_BSHIFT) #define dbtob(db) /* calculates (db * DEV_BSIZE) */ \ ((unsigned)(db) << DEV_BSHIFT) /* * Map a ``block device block'' to a file system block. * This should be device dependent, and will be after we * add an entry to cdevsw for that purpose. For now though * just use DEV_BSIZE. */ #define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) /* * MAXPATHLEN defines the longest permissable path length * after expanding symbolic links. It is used to allocate * a temporary buffer from the buffer pool in which to do the * name expansion, hence should be a power of two, and must * be less than or equal to MAXBSIZE. * MAXSYMLINKS defines the maximum number of symbolic links * that may be expanded in a path name. It should be set high * enough to allow all legitimate uses, but halt infinite loops * reasonably quickly. */ #define MAXPATHLEN 1024 #ifdef VFS #define MAXSYMLINKS 20 #else #define MAXSYMLINKS 8 #endif VFS /* * bit map related macros */ #define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) #define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) #define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) /* * Macros for fast min/max. */ #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) /* * Macros for counting and rounding. */ #ifndef howmany #define howmany(x, y) (((x)+((y)-1))/(y)) #endif #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) /* * Scale factor for scaled integers used to count * %cpu time and load averages. */ #define FSHIFT 8 /* bits to right of fixed binary point */ #define FSCALE (1< #endif /* NFSSRC @(#)pathname.h 2.1 86/04/11 */ /* @(#)pathname.h 1.1 86/02/03 SMI */ /* * Pathname structure. * System calls which operate on path names gather the * pathname from system call into this structure and reduce * it by peeling off translated components. If a symbolic * link is encountered the new pathname to be translated * is also assembled in this structure. */ struct pathname { char *pn_buf; /* underlying storage */ char *pn_path; /* remaining pathname */ int pn_pathlen; /* remaining length */ }; #define pn_peekchar(PNP) ((PNP)->pn_pathlen>0?*((PNP)->pn_path):0) #define pn_pathleft(PNP) ((PNP)->pn_pathlen) extern int pn_alloc(); /* allocat buffer for pathname */ extern int pn_get(); /* allocate buf and copy path into it */ #ifdef notneeded extern int pn_getchar(); /* get next pathname char */ #endif extern int pn_set(); /* set pathname to string */ extern int pn_combine(); /* combine to pathnames (for symlink) */ extern int pn_getcomponent(); /* get next component of pathname */ extern void pn_skipslash(); /* skip over slashes */ extern void pn_free(); /* free pathname buffer */ #] 8lox$ #%#Y#`/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:proc.h 12.0$ */ /* $ACIS:proc.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/proc.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidproc = "$Header:proc.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)proc.h 7.1 (Berkeley) 6/4/86 */ /* * One structure allocated per active * process. It contains all data needed * about the process while the * process may be swapped out. * Other per process data (user.h) * is swapped with the process. */ struct proc { struct proc *p_link; /* linked list of running processes */ struct proc *p_rlink; struct proc *p_nxt; /* linked list of allocated proc slots */ struct proc **p_prev; /* also zombies, and free proc's */ #ifdef ibm032 u_short p_sid0; /* sid for code/data segment */ u_short p_sid1; /* sid for stack/u struct segment */ #endif ibm032 struct pte *p_addr; /* u-area kernel map address */ prio_t p_usrpri; /* user-priority based on p_cpu and p_nice */ prio_t p_pri; /* priority, negative is high */ char p_cpu; /* cpu usage for scheduling */ char p_stat; char p_time; /* resident time for scheduling */ prio_t p_nice; /* nice for cpu usage */ char p_slptime; /* time since last block */ char p_cursig; int p_sig; /* signals pending to this process */ int p_sigmask; /* current signal mask */ int p_sigignore; /* signals being ignored */ int p_sigcatch; /* signals being caught by user */ int p_flag; uid_t p_uid; /* user id, used to direct tty signals */ short p_pgrp; /* name of process group leader */ short p_pid; /* unique process id */ short p_ppid; /* process id of parent */ u_short p_xstat; /* Exit status for wait */ struct rusage *p_ru; /* mbuf holding exit information */ short p_poip; /* page outs in progress */ short p_szpt; /* copy of page table size */ size_t p_tsize; /* size of text (clicks) */ size_t p_dsize; /* size of data space (clicks) */ size_t p_ssize; /* copy of stack size (clicks) */ size_t p_rssize; /* current resident set size in clicks */ size_t p_maxrss; /* copy of u.u_limit[MAXRSS] */ size_t p_swrss; /* resident set size before last swap */ swblk_t p_swaddr; /* disk address of u area when swapped */ caddr_t p_wchan; /* event process is awaiting */ struct text *p_textp; /* pointer to text structure */ #if defined(ibm370) int p_p0br; /* page table base P0BR */ #else /* defined(ibm370) */ struct pte *p_p0br; /* page table base P0BR */ #endif /* defined(ibm370) */ struct proc *p_xlink; /* linked list of procs sharing same text */ short p_cpticks; /* ticks of cpu time */ #ifdef ibm032 char p_fpareg; /* floating point register set assigned */ #define PCT_SCALE 65536 /* scale factor for pctcpu */ u_long p_pctcpu; /* %cpu for this process during p_time */ #else float p_pctcpu; /* %cpu for this process during p_time */ #endif short p_ndx; /* proc index for memall (because of vfork) */ short p_idhash; /* hashed based on p_pid for kill+exit+... */ struct proc *p_pptr; /* pointer to process structure of parent */ struct proc *p_cptr; /* pointer to youngest living child */ struct proc *p_osptr; /* pointer to older sibling processes */ struct proc *p_ysptr; /* pointer to younger siblings */ struct itimerval p_realtimer; struct quota *p_quota; /* quotas for this process */ #if (1) || defined(VICE) int p_rmt_seq; /* This process is waiting for a remote file system reply message containing this sequence number */ #endif #if defined(ibm370) int p_pad; /* Processor ADdress of this proc (chessin) */ #endif /* defined(ibm370) */ }; #define PIDHSZ 64 #define PIDHASH(pid) ((pid) & (PIDHSZ - 1)) #ifdef KERNEL short pidhash[PIDHSZ]; struct proc *pfind(); struct proc *proc, *procNPROC; /* the proc table itself */ struct proc *freeproc, *zombproc, *allproc; /* lists of procs in various states */ int nproc; #ifndef ibm032 #define NQS 32 /* 32 run queues */ #else #define NQS 16 /* 16 run queues */ #endif ibm032 struct prochd { struct proc *ph_link; /* linked list of running processes */ struct proc *ph_rlink; } qs[NQS]; int whichqs; /* bit mask summarizing non-empty qs's */ #endif /* stat codes */ #define SSLEEP 1 /* awaiting an event */ #define SWAIT 2 /* (abandoned state) */ #define SRUN 3 /* running */ #define SIDL 4 /* intermediate state in process creation */ #define SZOMB 5 /* intermediate state in process termination */ #define SSTOP 6 /* process being traced */ /* flag codes */ #define SLOAD 0x0000001 /* in core */ #define SSYS 0x0000002 /* swapper or pager process */ #define SLOCK 0x0000004 /* process being swapped out */ #define SSWAP 0x0000008 /* save area flag */ #define STRC 0x0000010 /* process is being traced */ #define SWTED 0x0000020 /* another tracing flag */ #define SULOCK 0x0000040 /* user settable lock in core */ #define SPAGE 0x0000080 /* process in page wait state */ #define SKEEP 0x0000100 /* another flag to prevent swap out */ #define SOMASK 0x0000200 /* restore old mask after taking signal */ #define SWEXIT 0x0000400 /* working on exiting */ #define SPHYSIO 0x0000800 /* doing physical i/o (bio.c) */ #define SVFORK 0x0001000 /* process resulted from vfork() */ #define SVFDONE 0x0002000 /* another vfork flag */ #define SNOVM 0x0004000 /* no vm, parent in a vfork() */ #define SPAGI 0x0008000 /* init data space on demand, from inode */ #define SSEQL 0x0010000 /* user warned of sequential vm behavior */ #define SUANOM 0x0020000 /* user warned of random vm behavior */ #define STIMO 0x0040000 /* timing out during sleep */ /* was SDETACH */ #ifdef ibm032 #define SOWEFPA 0x0080000 /* owe process an FPA trap */ #define STRACE 0x8000000 /* system call trace for this process */ #endif #define SOUSIG 0x0100000 /* using old signal mechanism */ #define SOWEUPC 0x0200000 /* owe process an addupc() call at next ast */ #define SSEL 0x0400000 /* selecting; wakeup/waiting danger */ #define SLOGIN 0x0800000 /* a login process (legit child of init) */ #define SPTECHG 0x1000000 /* pte's for process have changed */ #ifdef VICE #define SRMT 0x2000000 /* remote file system access--don't stop job */ #endif #if defined(ibm370) #define SPRDUP 0x4000000 /* In procdup; child must block (chessin) */ #define SPRWAIT 0x8000000 /* In procdup; child is blocked (chessin) */ #endif /* defined(ibm370) */ #ifdef VFS #define SLKDONE 0x10000000 /* record locking has been done */ #endif #]9lo$ #%#Y#@/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:protosw.h 12.0$ */ /* $ACIS:protosw.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/protosw.h,v $ */ #ifndef PR_ATOMIC #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidprotosw = "$Header:protosw.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)protosw.h 7.1 (Berkeley) 6/4/86 */ /* * Protocol switch table. * * Each protocol has a handle initializing one of these structures, * which is used for protocol-protocol and system-protocol communication. * * A protocol is called through the pr_init entry before any other. * Thereafter it is called every 200ms through the pr_fasttimo entry and * every 500ms through the pr_slowtimo for timer based actions. * The system will call the pr_drain entry if it is low on space and * this should throw away any non-critical data. * * Protocols pass data between themselves as chains of mbufs using * the pr_input and pr_output hooks. Pr_input passes data up (towards * UNIX) and pr_output passes it down (towards the imps); control * information passes up and down on pr_ctlinput and pr_ctloutput. * The protocol is responsible for the space occupied by any the * arguments to these entries and must dispose it. * * The userreq routine interfaces protocols to the system and is * described below. */ struct protosw { short pr_type; /* socket type used for */ struct domain *pr_domain; /* domain protocol a member of */ short pr_protocol; /* protocol number */ short pr_flags; /* see below */ /* protocol-protocol hooks */ int (*pr_input)(); /* input to protocol (from below) */ int (*pr_output)(); /* output to protocol (from above) */ int (*pr_ctlinput)(); /* control input (from below) */ int (*pr_ctloutput)(); /* control output (from above) */ /* user-protocol hook */ int (*pr_usrreq)(); /* user request: see list below */ /* utility hooks */ int (*pr_init)(); /* initialization hook */ int (*pr_fasttimo)(); /* fast timeout (200ms) */ int (*pr_slowtimo)(); /* slow timeout (500ms) */ int (*pr_drain)(); /* flush any excess space possible */ }; #define PR_SLOWHZ 2 /* 2 slow timeouts per second */ #define PR_FASTHZ 5 /* 5 fast timeouts per second */ /* * Values for pr_flags */ #define PR_ATOMIC 0x01 /* exchange atomic messages only */ #define PR_ADDR 0x02 /* addresses given with messages */ /* in the current implementation, PR_ADDR needs PR_ATOMIC to work */ #define PR_CONNREQUIRED 0x04 /* connection required by protocol */ #define PR_WANTRCVD 0x08 /* want PRU_RCVD calls */ #define PR_RIGHTS 0x10 /* passes capabilities */ /* * The arguments to usrreq are: * (*protosw[].pr_usrreq)(up, req, m, nam, opt); * where up is a (struct socket *), req is one of these requests, * m is a optional mbuf chain containing a message, * nam is an optional mbuf chain containing an address, * and opt is a pointer to a socketopt structure or nil. * The protocol is responsible for disposal of the mbuf chain m, * the caller is responsible for any space held by nam and opt. * A non-zero return from usrreq gives an * UNIX error number which should be passed to higher level software. */ #define PRU_ATTACH 0 /* attach protocol to up */ #define PRU_DETACH 1 /* detach protocol from up */ #define PRU_BIND 2 /* bind socket to address */ #define PRU_LISTEN 3 /* listen for connection */ #define PRU_CONNECT 4 /* establish connection to peer */ #define PRU_ACCEPT 5 /* accept connection from peer */ #define PRU_DISCONNECT 6 /* disconnect from peer */ #define PRU_SHUTDOWN 7 /* won't send any more data */ #define PRU_RCVD 8 /* have taken data; more room now */ #define PRU_SEND 9 /* send this data */ #define PRU_ABORT 10 /* abort (fast DISCONNECT, DETATCH) */ #define PRU_CONTROL 11 /* control operations on protocol */ #define PRU_SENSE 12 /* return status into m */ #define PRU_RCVOOB 13 /* retrieve out of band data */ #define PRU_SENDOOB 14 /* send out of band data */ #define PRU_SOCKADDR 15 /* fetch socket's address */ #define PRU_PEERADDR 16 /* fetch peer's address */ #define PRU_CONNECT2 17 /* connect two sockets */ /* begin for protocols internal use */ #define PRU_FASTTIMO 18 /* 200ms timeout */ #define PRU_SLOWTIMO 19 /* 500ms timeout */ #define PRU_PROTORCV 20 /* receive from below */ #define PRU_PROTOSEND 21 /* send to below */ #define PRU_NREQ 21 #ifdef PRUREQUESTS char *prurequests[] = { "ATTACH", "DETACH", "BIND", "LISTEN", "CONNECT", "ACCEPT", "DISCONNECT", "SHUTDOWN", "RCVD", "SEND", "ABORT", "CONTROL", "SENSE", "RCVOOB", "SENDOOB", "SOCKADDR", "PEERADDR", "CONNECT2", "FASTTIMO", "SLOWTIMO", "PROTORCV", "PROTOSEND", }; #endif /* * The arguments to the ctlinput routine are * (*protosw[].pr_ctlinput)(cmd, arg); * where cmd is one of the commands below, and arg is * an optional argument (caddr_t). * * N.B. The IMP code, in particular, pressumes the values * of some of the commands; change with extreme care. * TODO: * spread out codes so new ICMP codes can be * accomodated more easily */ #define PRC_IFDOWN 0 /* interface transition */ #define PRC_ROUTEDEAD 1 /* select new route if possible */ #define PRC_QUENCH 4 /* some said to slow down */ #define PRC_MSGSIZE 5 /* message size forced drop */ #define PRC_HOSTDEAD 6 /* normally from IMP */ #define PRC_HOSTUNREACH 7 /* ditto */ #define PRC_UNREACH_NET 8 /* no route to network */ #define PRC_UNREACH_HOST 9 /* no route to host */ #define PRC_UNREACH_PROTOCOL 10 /* dst says bad protocol */ #define PRC_UNREACH_PORT 11 /* bad port # */ #define PRC_UNREACH_NEEDFRAG 12 /* IP_DF caused drop */ #define PRC_UNREACH_SRCFAIL 13 /* source route failed */ #define PRC_REDIRECT_NET 14 /* net routing redirect */ #define PRC_REDIRECT_HOST 15 /* host routing redirect */ #define PRC_REDIRECT_TOSNET 16 /* redirect for type of service & net */ #define PRC_REDIRECT_TOSHOST 17 /* redirect for tos & host */ #define PRC_TIMXCEED_INTRANS 18 /* packet lifetime expired in transit */ #define PRC_TIMXCEED_REASS 19 /* lifetime expired on reass q */ #define PRC_PARAMPROB 20 /* header incorrect */ #define PRC_NCMDS 21 #ifdef PRCREQUESTS char *prcrequests[] = { "IFDOWN", "ROUTEDEAD", "#2", "#3", "QUENCH", "MSGSIZE", "HOSTDEAD", "HOSTUNREACH", "NET-UNREACH", "HOST-UNREACH", "PROTO-UNREACH", "PORT-UNREACH", "FRAG-UNREACH", "SRCFAIL-UNREACH", "NET-REDIRECT", "HOST-REDIRECT", "TOSNET-REDIRECT", "TOSHOST-REDIRECT", "TX-INTRANS", "TX-REASS", "PARAMPROB" }; #endif /* * The arguments to ctloutput are: * (*protosw[].pr_ctloutput)(req, so, level, optname, optval); * req is one of the actions listed below, so is a (struct socket *), * level is an indication of which protocol layer the option is intended. * optname is a protocol dependent socket option request, * optval is a pointer to a mbuf-chain pointer, for value-return results. * The protocol is responsible for disposal of the mbuf chain *optval * if supplied, * the caller is responsible for any space held by *optval, when returned. * A non-zero return from usrreq gives an * UNIX error number which should be passed to higher level software. */ #define PRCO_GETOPT 0 #define PRCO_SETOPT 1 #define PRCO_NCMDS 2 #ifdef PRCOREQUESTS char *prcorequests[] = { "GETOPT", "SETOPT", }; #endif #ifdef KERNEL extern struct protosw *pffindproto(), *pffindtype(); #endif #endif PR_ATOMIC #]:lo*Ɂ$ M#%#Y#Z/* * Copyright (c) 1980, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ptrace.h 7.1 (Berkeley) 6/4/86 * * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:ptrace.h 12.0$ */ /* $ACIS:ptrace.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/ptrace.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidptrace = "$Header:ptrace.h 12.0$"; #endif #ifndef _PTRACE_ #define _PTRACE_ #define PT_TRACE_ME 0 /* child declares it's being traced */ #define PT_READ_I 1 /* read word in child's I space */ #define PT_READ_D 2 /* read word in child's D space */ #define PT_READ_U 3 /* read word in child's user structure */ #define PT_WRITE_I 4 /* write word in child's I space */ #define PT_WRITE_D 5 /* write word in child's D space */ #define PT_WRITE_U 6 /* write word in child's user structure */ #define PT_CONTINUE 7 /* continue the child */ #define PT_KILL 8 /* kill the child process */ #define PT_STEP 9 /* single step the child */ #ifdef ibm032 #define PT_READ_F 10 /* read floating point register */ #define PT_WRITE_F 11 /* write floating point register */ #endif ibm032 #endif #];loe$ #%#Y#p /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:quota.h 12.0$ */ /* $ACIS:quota.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/quota.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidquota = "$Header:quota.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #ifndef VFS /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)quota.h 7.1 (Berkeley) 6/4/86 */ /* * MELBOURNE DISC QUOTAS * * Various junk to do with various quotas (etc) imposed upon * the average user (big brother finally hits UNIX). * * The following structure exists in core for each logged on user. * It contains global junk relevant to that user's quotas. * * The u_quota field of each user struct contains a pointer to * the quota struct relevant to the current process, this is changed * by 'setuid' sys call, &/or by the Q_SETUID quota() call. */ struct quota { struct quota *q_forw, *q_back; /* hash chain, MUST be first */ short q_cnt; /* ref count (# processes) */ uid_t q_uid; /* real uid of owner */ int q_flags; /* struct management flags */ #define Q_LOCK 0x01 /* quota struct locked (for disc i/o) */ #define Q_WANT 0x02 /* issue a wakeup when lock goes off */ #define Q_NEW 0x04 /* new quota - no proc1 msg sent yet */ #define Q_NDQ 0x08 /* account has NO disc quota */ struct quota *q_freef, **q_freeb; struct dquot *q_dq[NMOUNT]; /* disc quotas for mounted filesys's */ }; #define NOQUOTA ((struct quota *) 0) #if defined(KERNEL) && defined(QUOTA) struct quota *quota, *quotaNQUOTA; int nquota; struct quota *getquota(), *qfind(); #endif /* * The following structure defines the format of the disc quota file * (as it appears on disc) - the file is an array of these structures * indexed by user number. The setquota sys call establishes the inode * for each quota file (a pointer is retained in the mount structure). * * The following constants define the number of warnings given a user * before the soft limits are treated as hard limits (usually resulting * in an allocation failure). The warnings are normally manipulated * each time a user logs in through the Q_DOWARN quota call. If * the user logs in and is under the soft limit the warning count * is reset to MAX_*_WARN, otherwise a message is printed and the * warning count is decremented. This makes MAX_*_WARN equivalent to * the number of logins before soft limits are treated as hard limits. */ #define MAX_IQ_WARN 3 #define MAX_DQ_WARN 3 struct dqblk { u_long dqb_bhardlimit; /* absolute limit on disc blks alloc */ u_long dqb_bsoftlimit; /* preferred limit on disc blks */ u_long dqb_curblocks; /* current block count */ u_short dqb_ihardlimit; /* maximum # allocated inodes + 1 */ u_short dqb_isoftlimit; /* preferred inode limit */ u_short dqb_curinodes; /* current # allocated inodes */ u_char dqb_bwarn; /* # warnings left about excessive disc use */ u_char dqb_iwarn; /* # warnings left about excessive inodes */ }; /* * The following structure records disc usage for a user on a filesystem. * There is one allocated for each quota that exists on any filesystem * for the current user. A cache is kept of other recently used entries. */ struct dquot { struct dquot *dq_forw, *dq_back;/* MUST be first entry */ union { struct quota *Dq_own; /* the quota that points to this */ struct { /* free list */ struct dquot *Dq_freef, **Dq_freeb; } dq_f; } dq_u; short dq_flags; #define DQ_LOCK 0x01 /* this quota locked (no MODS) */ #define DQ_WANT 0x02 /* wakeup on unlock */ #define DQ_MOD 0x04 /* this quota modified since read */ #define DQ_FAKE 0x08 /* no limits here, just usage */ #define DQ_BLKS 0x10 /* has been warned about blk limit */ #define DQ_INODS 0x20 /* has been warned about inode limit */ short dq_cnt; /* count of active references */ uid_t dq_uid; /* user this applies to */ dev_t dq_dev; /* filesystem this relates to */ struct dqblk dq_dqb; /* actual usage & quotas */ }; #define dq_own dq_u.Dq_own #define dq_freef dq_u.dq_f.Dq_freef #define dq_freeb dq_u.dq_f.Dq_freeb #define dq_bhardlimit dq_dqb.dqb_bhardlimit #define dq_bsoftlimit dq_dqb.dqb_bsoftlimit #define dq_curblocks dq_dqb.dqb_curblocks #define dq_ihardlimit dq_dqb.dqb_ihardlimit #define dq_isoftlimit dq_dqb.dqb_isoftlimit #define dq_curinodes dq_dqb.dqb_curinodes #define dq_bwarn dq_dqb.dqb_bwarn #define dq_iwarn dq_dqb.dqb_iwarn #define NODQUOT ((struct dquot *) 0) #define LOSTDQUOT ((struct dquot *) 1) #if defined(KERNEL) && defined(QUOTA) struct dquot *dquot, *dquotNDQUOT; int ndquot; struct dquot *discquota(), *inoquota(), *dqalloc(), *dqp(); #endif /* * Definitions for the 'quota' system call. */ #define Q_SETDLIM 1 /* set disc limits & usage */ #define Q_GETDLIM 2 /* get disc limits & usage */ #define Q_SETDUSE 3 /* set disc usage only */ #define Q_SYNC 4 /* update disc copy of quota usages */ #define Q_SETUID 16 /* change proc to use quotas for uid */ #define Q_SETWARN 25 /* alter inode/block warning counts */ #define Q_DOWARN 26 /* warn user about excessive space/inodes */ /* * Used in Q_SETDUSE. */ struct dqusage { u_short du_curinodes; u_long du_curblocks; }; /* * Used in Q_SETWARN. */ struct dqwarn { u_char dw_bwarn; u_char dw_iwarn; }; #endif !VFS #]$<lo%C$ #%#Y#\/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:reboot.h 12.0$ */ /* $ACIS:reboot.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/reboot.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidreboot = "$Header:reboot.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)reboot.h 7.1 (Berkeley) 6/4/86 */ /* * Arguments to reboot system call. * These are passed to boot program in r11, * and on to init. */ #define RB_AUTOBOOT 0 /* flags for system auto-booting itself */ #define RB_ASKNAME 0x01 /* ask for file name to reboot from */ #define RB_SINGLE 0x02 /* reboot to single user only */ #define RB_NOSYNC 0x04 /* dont sync before reboot */ #define RB_HALT 0x08 /* don't reboot, just halt */ #define RB_INITNAME 0x10 /* name given for /etc/init */ #define RB_DFLTROOT 0x20 /* use compiled-in rootdev */ #define RB_SUSPEND 0x40 /* (6152) suspend unix */ #define RB_PANIC 0 /* reboot due to panic */ #define RB_BOOT 1 /* reboot due to boot() */ #define RB_KDB 0x40 /* give control to kernel debugger */ #define RB_RDONLY 0x80 /* mount root fs read-only */ #define RB_DUMP 0x100 /* dump kernel memory before reboot */ /* * Constants for converting boot-style device number to type, * adaptor (uba, mba, etc), unit number and partition number. * Type (== major device number) is in the low byte * for backward compatibility. Except for that of the "magic * number", each mask applies to the shifted value. * Format: * (4) (4) (4) (4) (8) (8) * -------------------------------- * |MA | AD| CT| UN| PART | TYPE | * -------------------------------- */ #define B_ADAPTORSHIFT 24 #define B_ADAPTORMASK 0x0f #define B_ADAPTOR(val) (((val) >> B_ADAPTORSHIFT) & B_ADAPTORMASK) #define B_CONTROLLERSHIFT 20 #define B_CONTROLLERMASK 0xf #define B_CONTROLLER(val) (((val)>>B_CONTROLLERSHIFT) & B_CONTROLLERMASK) #define B_UNITSHIFT 16 #define B_UNITMASK 0xf #define B_UNIT(val) (((val) >> B_UNITSHIFT) & B_UNITMASK) #define B_PARTITIONSHIFT 8 #define B_PARTITIONMASK 0xff #define B_PARTITION(val) (((val) >> B_PARTITIONSHIFT) & B_PARTITIONMASK) #define B_TYPESHIFT 0 #define B_TYPEMASK 0xff #define B_TYPE(val) (((val) >> B_TYPESHIFT) & B_TYPEMASK) #define B_MAGICMASK ((u_long)0xf0000000) #define B_DEVMAGIC ((u_long)0xa0000000) #define MAKEBOOTDEV(type, adaptor, controller, unit, partition) \ (((type) << B_TYPESHIFT) | ((adaptor) << B_ADAPTORSHIFT) | \ ((controller) << B_CONTROLLERSHIFT) | ((unit) << B_UNITSHIFT) | \ ((partition) << B_PARTITIONSHIFT) | B_DEVMAGIC) #](=lo$$ ;>#%#Y#H/* $Header:remote.h 12.0$ */ /* $ACIS:remote.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/remote.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidremote = "$Header:remote.h 12.0$"; #endif /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ #ifdef VICE /* * remote.h * * In which the structures needed to facilitate interception of file system * related system calls by a user process ("agent", or "venus"). */ #define RT_VERSION 3 /* Version number, should be incremented before incompatible changes are released */ /* * Version 1 - April 4/84. * Version 2 - May 4/84. * Version 3 - May 30/85. * Version 4 - June 19/85. */ /* Maximum number of arguments to a system call */ #define RT_MAX_ARGS ( (sizeof u.u_arg) / (sizeof (int)) ) #ifndef KERNEL extern struct user u; #endif KERNEL /* Maximum size of combined string or structure arguments passed between the kernel and a venus */ #define RT_MAXDATASIZE (MAXPATHLEN*2) /* The format of the message passed between Venus and the kernel */ struct intercept_message { u_short im_type; /* Message type */ u_short im_dsize; /* Number of bytes in im_data */ int im_client; /* The process id of the client side of the transaction */ short im_uid; /* The effective user id of the client */ short im_gid; /* The effective group id of the client */ int im_seq; /* The sequence number of this transaction. Never 0 */ long im_wdfid[3]; /* Current directory on the remote file system Vice II only. */ int im_error; /* u.u_error copied from this */ char im_follow1; /* 1=>follow last component of first pathname if symbolic link; 0=>don't */ char im_follow2; /* ditto for second pathname */ long im_pag; /* process authentication group */ /* im_arg contains a representation of the arguments to the intercepted system call, when transmitted from the kernel to Venus. Returned values are passed back from Venus to the kernel the same way */ struct im_arg { int im_aval; /* Value of the argument OR index of argument in im_data */ int im_asize; /* If im_aval is the index of an argument in im_data, then this is its size in bytes. Otherwise this is 0. */ } im_arg[RT_MAX_ARGS]; char im_data[RT_MAXDATASIZE]; /* Variable length field containing string or structure arguments */ /* No fields should be added here, the record may be truncated on transmission in either direction to an appropriate size */ }; #define RT_HEADERSIZE ((sizeof (struct intercept_message)) - RT_MAXDATASIZE) #ifdef KERNEL /* The following shouldn't be done in this manner, but there doesn't seem to be an easy mechanism to discover the device id. The auto- config stuff is only for real devices, I think. */ #ifdef sun #define RMT_MAJ 30 #endif #ifdef vax #define RMT_MAJ 33 #endif #ifdef ibm032 #define RMT_MAJ 16 #endif /* Sleep priorities */ #define RMT_NOINT_PRI (PINOD+1)/* Sleep with signal handling enabled */ #define RMT_INTOK_PRI (PSLEP-1)/* Disallow aborts due to signal handling */ /* Private data used by the remote intercept routines in the kernel */ /* Note: this was originally designed for only a single remote device. To make it work for multiple devices, I simply unfolded the code by turning this into an array (1 entry per device) and using a macro in the code to reference the appropriate entry. */ struct remote { int rt_flags; /* for flag values, see below */ int rt_seq; /* sequence number generator */ char rt_open; /* 1 if the device is open */ struct proc *rt_selproc; /* process waiting for select */ char rt_attach; /* wait channel for process waiting to attach this structure */ char rt_read; /* wait channel for a venus waiting for an intercept */ char rt_reply; /* wait channel for a client process waiting for a reply */ struct intercept_message rt_imr; /* buffer for agent reads */ struct intercept_message rt_imw; /* buffer for agent writes */ #include "rfs.h" } remote[NRFS]; #undef NRFS /* Hack to unfold code for multiple devices */ #define rmt (*rmtp) #define devhack(dev) register struct remote *rmtp = &remote[minor(dev)] /* Flags for rmt.rt_flags */ #define RT_RBUF 1 /* processing venus read request */ #define RT_WBUF 2 /* processing venus write request */ #define RT_SENDING 4 /* sending the structure to the venus */ #define RT_REPLY 8 /* reply from venus to client */ #define RT_SIGNAL 16 /* signal occured, want to send message to venus at next opportunity */ /* This bogus stuff is used for rename/link */ struct Name { int func; /* This used to be a function in BSD 4.2... */ int follow; struct buf *buf; char *name; dev_t dev; enum {havePath, isLocal, haveDev, isRemote} state; }; extern struct inode *RemoteNamei(); extern int RemoteMaybe(); #endif KERNEL /* * Message type codes for messages sent from the kernel. * NB: the kernel ignores the type field on reply (it merely matches * sequence numbers). Unexpected messages from an venus are ignored (they * may have been destined for a process which has died in the meantime). * At all times, the kernel tries to maintain its own integrity, so that * in the worst case an venus restart should work fine. */ /* * In the capsule descriptions below, "(?)" means that the flagged item * is probably a good candidate for negotiation. */ #define RT_BOGUS 0 /* For debugging purposes in kernel */ #define RT_access 1 /* From kernel: 0: uninterpreted part of pathname * 1: mode * NB: uid/gid for this call are the real (not effective) uid/gid's. * Response: im_error * if im_error == EABSPATH1 then: * 0: Resolved absolute path name. * NB: return value is implicit in im_error. */ #define RT_chdir 2 /* From kernel: 0: uninterpreted part of pathname * Vice I response: * 0: new pathname (with ..'s removed, symbolic * links NOT expanded). * lengthlo'$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:resource.h 12.0$ */ /* $ACIS:resource.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/resource.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidresource = "$Header:resource.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)resource.h 7.1 (Berkeley) 6/4/86 */ /* * Process priority specifications to get/setpriority. */ #define PRIO_MIN -20 #define PRIO_MAX 20 #define PRIO_PROCESS 0 #define PRIO_PGRP 1 #define PRIO_USER 2 /* * Resource utilization information. */ #define RUSAGE_SELF 0 #define RUSAGE_CHILDREN -1 struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; #define ru_first ru_ixrss long ru_ixrss; /* integral shared memory size */ long ru_idrss; /* integral unshared data " */ long ru_isrss; /* integral unshared stack " */ long ru_minflt; /* page reclaims */ long ru_majflt; /* page faults */ long ru_nswap; /* swaps */ long ru_inblock; /* block input operations */ long ru_oublock; /* block output operations */ long ru_msgsnd; /* messages sent */ long ru_msgrcv; /* messages received */ long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary " */ #define ru_last ru_nivcsw }; /* * Resource limits */ #define RLIMIT_CPU 0 /* cpu time in milliseconds */ #define RLIMIT_FSIZE 1 /* maximum file size */ #define RLIMIT_DATA 2 /* data size */ #define RLIMIT_STACK 3 /* stack size */ #define RLIMIT_CORE 4 /* core file size */ #define RLIMIT_RSS 5 /* resident set size */ #define RLIM_NLIMITS 6 /* number of resource limits */ #define RLIM_INFINITY 0x7fffffff struct rlimit { int rlim_cur; /* current (soft) limit */ int rlim_max; /* maximum value for rlim_cur */ }; #]<?lo,0$ #%#Y#_/* $Header:rmtwd.h 12.0$ */ /* $ACIS:rmtwd.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/rmtwd.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidrmtwd = "$Header:rmtwd.h 12.0$"; #endif /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ #ifdef VICE /* * A remote working directory. */ struct rmt_wd { short rwd_count; /* Number of processes using this structure. If 0, this is up for grabs */ short rwd_pathlen; /* strlen(rwd_path) */ char rwd_path[MAXPATHLEN]; /* Uninterpreted part of pathname, i.e. only the remote part */ /* Possibly this should point to a buffer which would be allocated to the structure on the fly */ dev_t rwd_dev; /* The device supporting the remote file system */ }; struct rmt_wd *rmt_wd, *rmt_wdNRMT_WD; int nrmt_wd; #endif #]>@lo-c$ v#%#Y#g/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:seg.h 12.0$ */ /* $ACIS:seg.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/seg.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidseg = "$Header:seg.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)seg.h 7.1 (Berkeley) 6/4/86 */ /* * Mapper addresses and bits */ #define RO PG_URKR /* access abilities */ #define RW PG_UW #]@Alo $ }#%#Y# /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:signal.h 12.0$ */ /* $ACIS:signal.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/signal.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidsignal = "$Header:signal.h 12.0$"; #endif #ifdef STANDUTIL #include "../h/nfs_defines.h" #else STANDUTIL #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #endif STANDUTIL /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)signal.h 7.1 (Berkeley) 6/4/86 */ #ifndef NSIG #define NSIG 32 #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt */ #define SIGQUIT 3 /* quit */ #define SIGILL 4 /* illegal instruction (not reset when caught) */ #define ILL_RESAD_FAULT 0x0 /* reserved addressing fault */ #define ILL_PRIVIN_FAULT 0x1 /* privileged instruction fault */ #define ILL_RESOP_FAULT 0x2 /* reserved operand fault */ /* CHME, CHMS, CHMU are not yet given back to users reasonably */ #define SIGTRAP 5 /* trace trap (not reset when caught) */ #define SIGIOT 6 /* IOT instruction */ #define SIGABRT SIGIOT /* compatibility */ #define SIGEMT 7 /* EMT instruction */ #define SIGFPE 8 /* floating point exception */ #define FPE_INTOVF_TRAP 0x1 /* integer overflow */ #define FPE_INTDIV_TRAP 0x2 /* integer divide by zero */ #define FPE_FLTOVF_TRAP 0x3 /* floating overflow */ #define FPE_FLTDIV_TRAP 0x4 /* floating/decimal divide by zero */ #define FPE_FLTUND_TRAP 0x5 /* floating underflow */ #define FPE_DECOVF_TRAP 0x6 /* decimal overflow */ #define FPE_SUBRNG_TRAP 0x7 /* subscript out of range */ #define FPE_FLTOVF_FAULT 0x8 /* floating overflow fault */ #define FPE_FLTDIV_FAULT 0x9 /* divide by zero floating fault */ #define FPE_FLTUND_FAULT 0xa /* floating underflow fault */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ #define SIGSEGV 11 /* segmentation violation */ #define SIGSYS 12 /* bad argument to system call */ #define SIGPIPE 13 /* write on a pipe with no one to read it */ #define SIGALRM 14 /* alarm clock */ #define SIGTERM 15 /* software termination signal from kill */ #define SIGURG 16 /* urgent condition on IO channel */ #define SIGSTOP 17 /* sendable stop signal not from tty */ #define SIGTSTP 18 /* stop signal from tty */ #define SIGCONT 19 /* continue a stopped process */ #define SIGCHLD 20 /* to parent on child stop or exit */ #define SIGCLD SIGCHLD /* compatibility */ #define SIGTTIN 21 /* to readers pgrp upon background tty read */ #define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ #define SIGIO 23 /* input/output possible signal */ #define SIGXCPU 24 /* exceeded CPU time limit */ #define SIGXFSZ 25 /* exceeded file size limit */ #define SIGVTALRM 26 /* virtual time alarm */ #define SIGPROF 27 /* profiling time alarm */ #define SIGWINCH 28 /* window size changes */ #define SIGLOST 29 /* resource lost (eg. VFS record-lock lost) */ #define SIGUSR1 30 /* user defined signal 1 */ #define SIGUSR2 31 /* user defined signal 2 */ #ifdef ibm032 /* screen control signals */ #define SIGRETRACT SIGEMT /* retract acces to the screen */ #define SIGGRANT SIGUSR2 /* replace access to the screen */ #endif /* ibm032 */ #ifndef KERNEL int (*signal())(); #endif /* * Signal vector "template" used in sigvec call. */ struct sigvec { int (*sv_handler)(); /* signal handler */ int sv_mask; /* signal mask to apply */ int sv_flags; /* see signal options below */ }; #define SV_ONSTACK 0x0001 /* take signal on signal stack */ #define SV_INTERRUPT 0x0002 /* do not restart system on signal return */ #define sv_onstack sv_flags /* isn't compatibility wonderful! */ /* * Structure used in sigstack call. */ struct sigstack { char *ss_sp; /* signal stack pointer */ int ss_onstack; /* current status */ }; /* * Information pushed on stack when a signal is delivered. * This is used by the kernel to restore state following * execution of the signal handler. It is also made available * to the handler to allow it to properly restore state if * a non-standard exit is performed. */ struct sigcontext { #ifdef vax int sc_onstack; /* sigstack state to restore */ int sc_mask; /* signal mask to restore */ int sc_sp; /* sp to restore */ int sc_fp; /* fp to restore */ int sc_ap; /* ap to restore */ int sc_pc; /* pc to restore */ int sc_ps; /* psl to restore */ #endif vax #ifdef ibm032 #define MAXSIGREGS 27 /* (EX2_RSV-R0+1) number of regs passed to sighandler */ int sc_flags; /* state to restore */ #define SC_ONSTACK SV_ONSTACK /* sc_flags: on signal stack */ #define SC_FLOATSAVE 0x8000 /* sc_flags: floating point saved */ #define SC_EXCEPTION 0x4000 /* sc_flags: exception packets saved */ #define SC_RTFL 0x2000 /* sc_flags: executing RTFL sequence */ #define sc_onstack sc_flags /* isn't compatibility wonderful! */ int sc_mask; /* signal mask to restore */ int sc_icscs; /* Must be just before sc_regs! */ int sc_regs[MAXSIGREGS]; /* saved registers */ int sc_saveiar; /* saved copy of IAR for RTFL */ /* * NOTE: the following values for subscripts are from machine/reg.h, but * those defines are not used as they could conflict too easly with * user programs that include this file and don't expect R0-R15 to * be defined. */ #define sc_iar sc_regs[16] /* IAR */ #define sc_sp sc_regs[1] /* SP */ char *sc_floatsave; /* SC_FLOATSAVE -> struct floatsave * */ #define sc_pc sc_iar #define sc_ps sc_icscs #endif ibm032 }; #define BADSIG (int (*)())-1 #define SIG_DFL (int (*)())0 #define SIG_IGN (int (*)())1 #ifdef KERNEL #define SIG_CATCH (int (*)())2 #define SIG_HOLD (int (*)())3 #endif #endif NSIG /* * Macro for converting signal number to a mask suitable for * sigblock(). */ #define sigmask(m) (1 << ((m)-1)) #]GBlo.$ `#%#Y# /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:socket.h 12.0$ */ /* $ACIS:socket.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/socket.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidsocket = "$Header:socket.h 12.0$"; #endif /* * Copyright (c) 1982,1985, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)socket.h 7.1 (Berkeley) 6/4/86 */ /* * Definitions related to sockets: types, address families, options. */ /* * Types */ #define SOCK_STREAM 1 /* stream socket */ #define SOCK_DGRAM 2 /* datagram socket */ #define SOCK_RAW 3 /* raw-protocol interface */ #define SOCK_RDM 4 /* reliably-delivered message */ #define SOCK_SEQPACKET 5 /* sequenced packet stream */ /* * Option flags per-socket. */ #define SO_DEBUG 0x0001 /* turn on debugging info recording */ #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ #define SO_REUSEADDR 0x0004 /* allow local address reuse */ #define SO_KEEPALIVE 0x0008 /* keep connections alive */ #define SO_DONTROUTE 0x0010 /* just use interface addresses */ #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ #define SO_LINGER 0x0080 /* linger on close if data present */ #define SO_DONTLINGER (~SO_LINGER) /* don't linger */ #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ #ifdef VICE #define SO_GREEDY 0xFFFF /* Allocate maximum buffering to SO_DGRAM socket */ #endif /* * Additional options, not kept in so_options. */ #define SO_SNDBUF 0x1001 /* send buffer size */ #define SO_RCVBUF 0x1002 /* receive buffer size */ #define SO_SNDLOWAT 0x1003 /* send low-water mark */ #define SO_RCVLOWAT 0x1004 /* receive low-water mark */ #define SO_SNDTIMEO 0x1005 /* send timeout */ #define SO_RCVTIMEO 0x1006 /* receive timeout */ #define SO_ERROR 0x1007 /* get error status and clear */ #define SO_TYPE 0x1008 /* get socket type */ /* * Structure used for manipulating linger option. */ struct linger { int l_onoff; /* option on/off */ int l_linger; /* linger time */ }; /* * Level number for (get/set)sockopt() to apply to socket itself. */ #define SOL_SOCKET 0xffff /* options for socket level */ /* * Address families. */ #define AF_UNSPEC 0 /* unspecified */ #define AF_UNIX 1 /* local to host (pipes, portals) */ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define AF_IMPLINK 3 /* arpanet imp addresses */ #define AF_PUP 4 /* pup protocols: e.g. BSP */ #define AF_CHAOS 5 /* mit CHAOS protocols */ #define AF_NS 6 /* XEROX NS protocols */ #define AF_NBS 7 /* nbs protocols */ #define AF_ECMA 8 /* european computer manufacturers */ #define AF_DATAKIT 9 /* datakit protocols */ #define AF_CCITT 10 /* CCITT protocols, X.25 etc */ #define AF_SNA 11 /* IBM SNA */ #define AF_DECnet 12 /* DECnet */ #define AF_DLI 13 /* Direct data link interface */ #define AF_LAT 14 /* LAT */ #define AF_HYLINK 15 /* NSC Hyperchannel */ #define AF_APPLETALK 16 /* Apple Talk */ #ifdef VICE #define AF_CABLE 17 /* raw ethernet cable */ #define AF_SDLC 18 /* sync data link protocol */ #define AF_MAX 19 #else #define AF_MAX 17 #endif /* * Structure used by kernel to store most * addresses. */ struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes of direct address */ }; /* * Structure used by kernel to pass protocol * information in raw sockets. */ struct sockproto { u_short sp_family; /* address family */ u_short sp_protocol; /* protocol */ }; /* * Protocol families, same as address families for now. */ #define PF_UNSPEC AF_UNSPEC #define PF_UNIX AF_UNIX #define PF_INET AF_INET #define PF_IMPLINK AF_IMPLINK #define PF_PUP AF_PUP #define PF_CHAOS AF_CHAOS #define PF_NS AF_NS #define PF_NBS AF_NBS #define PF_ECMA AF_ECMA #define PF_DATAKIT AF_DATAKIT #define PF_CCITT AF_CCITT #define PF_SNA AF_SNA #define PF_DECnet AF_DECnet #define PF_DLI AF_DLI #define PF_LAT AF_LAT #define PF_HYLINK AF_HYLINK #define PF_APPLETALK AF_APPLETALK #ifdef VICE #define PF_CABLE AF_CABLE #define PF_SDLC AF_SDLC #endif #define PF_MAX AF_MAX /* * Maximum queue length specifiable by listen. */ #define SOMAXCONN 5 /* * Message header for recvmsg and sendmsg calls. */ struct msghdr { caddr_t msg_name; /* optional address */ int msg_namelen; /* size of address */ struct iovec *msg_iov; /* scatter/gather array */ int msg_iovlen; /* # elements in msg_iov */ caddr_t msg_accrights; /* access rights sent/received */ int msg_accrightslen; }; #define MSG_OOB 0x1 /* process out-of-band data */ #define MSG_PEEK 0x2 /* peek at incoming message */ #define MSG_DONTROUTE 0x4 /* send without using routing tables */ #define MSG_MAXIOVLEN 16 #]MClo$ #%#Y# /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:socketvar.h 12.0$ */ /* $ACIS:socketvar.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/socketvar.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidsocketvar = "$Header:socketvar.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)socketvar.h 7.1 (Berkeley) 6/4/86 */ #ifdef VICE #define SBMAXCC 32767 #endif /* * Kernel structure per socket. * Contains send and receive buffer queues, * handle on protocol and pointer to protocol * private data and error information. */ struct socket { short so_type; /* generic type, see socket.h */ short so_options; /* from socket call, see socket.h */ short so_linger; /* time to linger while closing */ short so_state; /* internal state flags SS_*, below */ caddr_t so_pcb; /* protocol control block */ struct protosw *so_proto; /* protocol handle */ /* * Variables for connection queueing. * Socket where accepts occur is so_head in all subsidiary sockets. * If so_head is 0, socket is not related to an accept. * For head socket so_q0 queues partially completed connections, * while so_q is a queue of connections ready to be accepted. * If a connection is aborted and it has so_head set, then * it has to be pulled out of either so_q0 or so_q. * We allow connections to queue up based on current queue lengths * and limit on number of queued connections for this socket. */ struct socket *so_head; /* back pointer to accept socket */ struct socket *so_q0; /* queue of partial connections */ short so_q0len; /* partials on so_q0 */ struct socket *so_q; /* queue of incoming connections */ short so_qlen; /* number of connections on so_q */ short so_qlimit; /* max number queued connections */ /* * Variables for socket buffering. */ struct sockbuf { u_short sb_cc; /* actual chars in buffer */ u_short sb_hiwat; /* max actual char count */ u_short sb_mbcnt; /* chars of mbufs used */ u_short sb_mbmax; /* max chars of mbufs to use */ u_short sb_lowat; /* low water mark (not used yet) */ short sb_timeo; /* timeout (not used yet) */ struct mbuf *sb_mb; /* the mbuf chain */ struct proc *sb_sel; /* process selecting read/write */ short sb_flags; /* flags, see below */ } so_rcv, so_snd; #define SB_MAX 65535 /* max chars in sockbuf */ #define SB_LOCK 0x01 /* lock on data queue (so_rcv only) */ #define SB_WANT 0x02 /* someone is waiting to lock */ #define SB_WAIT 0x04 /* someone is waiting for data/space */ #define SB_SEL 0x08 /* buffer is selected */ #define SB_COLL 0x10 /* collision selecting */ short so_timeo; /* connection timeout */ u_short so_error; /* error affecting connection */ u_short so_oobmark; /* chars to oob mark */ short so_pgrp; /* pgrp for signals */ }; #ifdef VFS #define SB_MAXCOUNT SB_MAX /* for compatability with Sun code */ #endif /* * Socket state bits. */ #define SS_NOFDREF 0x001 /* no file table ref any more */ #define SS_ISCONNECTED 0x002 /* socket connected to a peer */ #define SS_ISCONNECTING 0x004 /* in process of connecting to peer */ #define SS_ISDISCONNECTING 0x008 /* in process of disconnecting */ #define SS_CANTSENDMORE 0x010 /* can't send more data to peer */ #define SS_CANTRCVMORE 0x020 /* can't receive more data from peer */ #define SS_RCVATMARK 0x040 /* at mark on input */ #define SS_PRIV 0x080 /* privileged for broadcast, raw... */ #define SS_NBIO 0x100 /* non-blocking ops */ #define SS_ASYNC 0x200 /* async i/o notify */ /* * Macros for sockets and socket buffering. */ /* how much space is there in a socket buffer (so->so_snd or so->so_rcv) */ #define sbspace(sb) \ (MIN((int)((sb)->sb_hiwat - (sb)->sb_cc),\ (int)((sb)->sb_mbmax - (sb)->sb_mbcnt))) /* do we have to send all at once on a socket? */ #define sosendallatonce(so) \ ((so)->so_proto->pr_flags & PR_ATOMIC) /* can we read something from so? */ #define soreadable(so) \ ((so)->so_rcv.sb_cc || ((so)->so_state & SS_CANTRCVMORE) || \ (so)->so_qlen || (so)->so_error) /* can we write something to so? */ #define sowriteable(so) \ (sbspace(&(so)->so_snd) > 0 && \ (((so)->so_state&SS_ISCONNECTED) || \ ((so)->so_proto->pr_flags&PR_CONNREQUIRED)==0) || \ ((so)->so_state & SS_CANTSENDMORE) || \ (so)->so_error) /* adjust counters in sb reflecting allocation of m */ #define sballoc(sb, m) { \ (sb)->sb_cc += (m)->m_len; \ (sb)->sb_mbcnt += MSIZE; \ if ((m)->m_off > MMAXOFF) \ (sb)->sb_mbcnt += CLBYTES; \ } /* adjust counters in sb reflecting freeing of m */ #define sbfree(sb, m) { \ (sb)->sb_cc -= (m)->m_len; \ (sb)->sb_mbcnt -= MSIZE; \ if ((m)->m_off > MMAXOFF) \ (sb)->sb_mbcnt -= CLBYTES; \ } /* set lock on sockbuf sb */ #define sblock(sb) { \ while ((sb)->sb_flags & SB_LOCK) { \ (sb)->sb_flags |= SB_WANT; \ sleep((caddr_t)&(sb)->sb_flags, PZERO+1); \ } \ (sb)->sb_flags |= SB_LOCK; \ } /* release lock on sockbuf sb */ #define sbunlock(sb) { \ (sb)->sb_flags &= ~SB_LOCK; \ if ((sb)->sb_flags & SB_WANT) { \ (sb)->sb_flags &= ~SB_WANT; \ wakeup((caddr_t)&(sb)->sb_flags); \ } \ } #define sorwakeup(so) sowakeup((so), &(so)->so_rcv) #define sowwakeup(so) sowakeup((so), &(so)->so_snd) #ifdef KERNEL struct socket *sonewconn(); #endif #]TDlo(w$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:stat.h 12.0$ */ /* $ACIS:stat.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/stat.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidstat = "$Header:stat.h 12.0$"; #endif #ifdef STANDUTIL #include "../h/nfs_defines.h" #else STANDUTIL #if !defined(KERNEL) && !defined(STANDALONE) #include #endif #endif STANDUTIL /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)stat.h 7.1 (Berkeley) 6/4/86 */ struct stat { dev_t st_dev; ino_t st_ino; unsigned short st_mode; short st_nlink; uid_t st_uid; gid_t st_gid; dev_t st_rdev; off_t st_size; time_t st_atime; int st_spare1; time_t st_mtime; int st_spare2; time_t st_ctime; int st_spare3; long st_blksize; long st_blocks; long st_spare4[2]; }; #define S_IFMT 0170000 /* type of file */ #define S_IFDIR 0040000 /* directory */ #define S_IFCHR 0020000 /* character special */ #define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */ #define S_IFLNK 0120000 /* symbolic link */ #define S_IFSOCK 0140000/* socket */ #ifdef VFS #define S_IFIFO 0010000 /* fifo */ #endif #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ #define S_ISVTX 0001000 /* save swapped text even after use */ #define S_IREAD 0000400 /* read permission, owner */ #define S_IWRITE 0000200 /* write permission, owner */ #define S_IEXEC 0000100 /* execute/search permission, owner */ #]WElo$ #%#Y# /* $Header:syscall.h 12.0$ */ /* $ACIS:syscall.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/syscall.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidsyscall = "$Header:syscall.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1980 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)syscall.h 5.4 (Berkeley) 4/3/86 */ #define SYS_syscall 0 #define SYS_exit 1 #define SYS_fork 2 #define SYS_read 3 #define SYS_write 4 #define SYS_open 5 #define SYS_close 6 /* 7 is old: wait */ #define SYS_creat 8 #define SYS_link 9 #define SYS_unlink 10 #define SYS_execv 11 #define SYS_chdir 12 /* 13 is old: time */ #define SYS_mknod 14 #define SYS_chmod 15 #define SYS_chown 16 /* 17 is old: sbreak */ /* 18 is old: stat */ #define SYS_lseek 19 #define SYS_getpid 20 #ifndef VFS #define SYS_mount 21 #else !VFS /* 21 is old: mount */ #endif !VFS #define SYS_umount 22 /* 23 is old: setuid */ #define SYS_getuid 24 /* 25 is old: stime */ #define SYS_ptrace 26 /* 27 is old: alarm */ /* 28 is old: fstat */ /* 29 is old: pause */ /* 30 is old: utime */ /* 31 is old: stty */ /* 32 is old: gtty */ #define SYS_access 33 /* 34 is old: nice */ /* 35 is old: ftime */ #define SYS_sync 36 #define SYS_kill 37 #define SYS_stat 38 /* 39 is old: setpgrp */ #define SYS_lstat 40 #define SYS_dup 41 #define SYS_pipe 42 /* 43 is old: times */ #define SYS_profil 44 /* 45 is unused */ /* 46 is old: setgid */ #define SYS_getgid 47 /* 48 is old: sigsys */ /* 49 is unused */ /* 50 is unused */ #define SYS_acct 51 /* 52 is old: phys */ /* 53 is old: syslock */ #define SYS_ioctl 54 #define SYS_reboot 55 /* 56 is old: mpxchan */ #define SYS_symlink 57 #define SYS_readlink 58 #define SYS_execve 59 #define SYS_umask 60 #define SYS_chroot 61 #define SYS_fstat 62 /* 63 is unused */ #define SYS_getpagesize 64 #define SYS_mremap 65 #define SYS_vfork 66 /* 66 is old: vfork */ /* 67 is old: vread */ /* 68 is old: vwrite */ #define SYS_sbrk 69 #define SYS_sstk 70 #define SYS_mmap 71 #define SYS_vadvise 72 /* 72 is old: vadvise */ #define SYS_munmap 73 #define SYS_mprotect 74 #define SYS_madvise 75 #define SYS_vhangup 76 /* 77 is old: vlimit */ #define SYS_mincore 78 #define SYS_getgroups 79 #define SYS_setgroups 80 #define SYS_getpgrp 81 #define SYS_setpgrp 82 #define SYS_setitimer 83 #define SYS_wait 84 #define SYS_swapon 85 #define SYS_getitimer 86 #define SYS_gethostname 87 #define SYS_sethostname 88 #define SYS_getdtablesize 89 #define SYS_dup2 90 #define SYS_getdopt 91 #define SYS_fcntl 92 #define SYS_select 93 #define SYS_setdopt 94 #define SYS_fsync 95 #define SYS_setpriority 96 #define SYS_socket 97 #define SYS_connect 98 #define SYS_accept 99 #define SYS_getpriority 100 #define SYS_send 101 #define SYS_recv 102 #define SYS_sigreturn 103 #define SYS_bind 104 #define SYS_setsockopt 105 #define SYS_listen 106 /* 107 was vtimes */ #define SYS_sigvec 108 #define SYS_sigblock 109 #define SYS_sigsetmask 110 #define SYS_sigpause 111 #define SYS_sigstack 112 #define SYS_recvmsg 113 #define SYS_sendmsg 114 /* 115 is old vtrace */ #define SYS_gettimeofday 116 #define SYS_getrusage 117 #define SYS_getsockopt 118 /* 119 is old resuba */ #define SYS_readv 120 #define SYS_writev 121 #define SYS_settimeofday 122 #define SYS_fchown 123 #define SYS_fchmod 124 #define SYS_recvfrom 125 #define SYS_setreuid 126 #define SYS_setregid 127 #define SYS_rename 128 #define SYS_truncate 129 #define SYS_ftruncate 130 #define SYS_flock 131 /* 132 is unused */ #define SYS_sendto 133 #define SYS_shutdown 134 #define SYS_socketpair 135 #define SYS_mkdir 136 #define SYS_rmdir 137 #define SYS_utimes 138 /* 139 is unused */ #define SYS_adjtime 140 #define SYS_getpeername 141 #define SYS_gethostid 142 #define SYS_sethostid 143 #define SYS_getrlimit 144 #define SYS_setrlimit 145 #define SYS_killpg 146 /* 147 is unused */ #define SYS_setquota 148 #define SYS_quota 149 #define SYS_getsockname 150 #define SYS_exect 151 #define SYS_getfpemulator 153 #if defined(AFS) || defined(VICE) #define SYS_iopen 154 /* AFS_SERVER */ #define SYS_iread 155 /* AFS_SERVER */ #define SYS_iwrite 156 /* AFS_SERVER */ #define SYS_iinc 157 /* AFS_SERVER */ #define SYS_idec 158 /* AFS_SERVER */ #endif /* AFS */ #ifdef VICE #define SYS_pioctl 159 /* VICE */ #define SYS_setpag 160 /* VICE */ #else VICE #ifdef AFS #define SYS_afs_pioctl 159 /* AFS */ #define SYS_afs_setpag 160 /* AFS */ #endif AFS #endif VICE #define SYS_vdspin 161 /* RVD */ #define SYS_vdspind 162 /* RVD */ #define SYS_vdstats 163 /* RVD */ #define SYS_syscalltrace 164 /* SYSCALLTRACE */ #define SYS_icreate 165 /* AFS_SERVER */ /* 166 is unused adjtime */ #define SYS_getfloatstate 167 /* getfloatstate */ #define SYS_setfloatstate 168 /* setfloatstate */ #ifdef VFS #ifdef NFS #define SYS_nfssvc 169 #endif NFS #define SYS_getdirentries 170 #define SYS_statfs 171 #define SYS_fstatfs 172 #define SYS_unmount 173 #ifdef NFS #define SYS_async_daemon 174 #define SYS_getfh 175 #endif NFS #define SYS_getdomainname 176 #define SYS_setdomainname 177 #define SYS_quotactl 178 #ifdef NFS #define SYS_exportfs 179 #endif NFS #define SYS_mount 180 #endif VFS #ifdef AFS #define SYS_afs_test 181 #endif AFS #]^Flo$r$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:syslog.h 12.0$ */ /* $ACIS:syslog.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/syslog.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidsyslog = "$Header:syslog.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)syslog.h 7.1 (Berkeley) 6/4/86 */ /* * Facility codes */ #define LOG_KERN (0<<3) /* kernel messages */ #define LOG_USER (1<<3) /* random user-level messages */ #define LOG_MAIL (2<<3) /* mail system */ #define LOG_DAEMON (3<<3) /* system daemons */ #define LOG_AUTH (4<<3) /* security/authorization messages */ #define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */ #define LOG_LPR (6<<3) /* line printer subsystem */ #define LOG_RFS (7<<3) /* Remote File System server/client subsystem */ /* other codes through 15 reserved for system use */ #define LOG_LOCAL0 (16<<3) /* reserved for local use */ #define LOG_LOCAL1 (17<<3) /* reserved for local use */ #define LOG_LOCAL2 (18<<3) /* reserved for local use */ #define LOG_LOCAL3 (19<<3) /* reserved for local use */ #define LOG_LOCAL4 (20<<3) /* reserved for local use */ #define LOG_LOCAL5 (21<<3) /* reserved for local use */ #define LOG_LOCAL6 (22<<3) /* reserved for local use */ #define LOG_LOCAL7 (23<<3) /* reserved for local use */ #define LOG_NFACILITIES 24 /* maximum number of facilities */ #define LOG_FACMASK 0x03f8 /* mask to extract facility part */ /* * Priorities (these are ordered) */ #define LOG_EMERG 0 /* system is unusable */ #define LOG_ALERT 1 /* action must be taken immediately */ #define LOG_CRIT 2 /* critical conditions */ #define LOG_ERR 3 /* error conditions */ #define LOG_WARNING 4 /* warning conditions */ #define LOG_NOTICE 5 /* normal but signification condition */ #define LOG_INFO 6 /* informational */ #define LOG_DEBUG 7 /* debug-level messages */ #define LOG_PRIMASK 0x0007 /* mask to extract priority part (internal) */ /* * arguments to setlogmask. */ #define LOG_MASK(pri) (1 << (pri)) /* mask for one priority */ #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */ /* * Option flags for openlog. * * LOG_ODELAY no longer does anything; LOG_NDELAY is the * inverse of what it used to be. */ #define LOG_PID 0x01 /* log the pid with each message */ #define LOG_CONS 0x02 /* log on the console if errors in sending */ #define LOG_ODELAY 0x04 /* delay open until syslog() is called */ #define LOG_NDELAY 0x08 /* don't delay open */ #define LOG_NOWAIT 0x10 /* if forking to log on console, don't wait() */ #]bGlo!$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:systm.h 12.0$ */ /* $ACIS:systm.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/systm.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidsystm = "$Header:systm.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)systm.h 7.1 (Berkeley) 6/4/86 */ /* * Random set of variables * used by more than one * routine. */ int hand; /* current index into coremap used by daemon */ extern char version[]; /* system version */ /* * Nblkdev is the number of entries * (rows) in the block switch. It is * set in binit/bio.c by making * a pass over the switch. * Used in bounds checking on major * device numbers. */ int nblkdev; /* * Number of character switch entries. * Set by cinit/prim.c */ int nchrdev; int nswdev; /* number of swap devices */ int mpid; /* generic for unique process id's */ char runin; /* scheduling flag */ char runout; /* scheduling flag */ int runrun; /* scheduling flag */ char kmapwnt; /* kernel map want flag */ char curpri; /* more scheduling */ int maxmem; /* actual max memory per process */ int physmem; /* physical memory on this CPU */ #ifdef ibm032 int endmem; /* physical end of memory */ int holestart; /* start of hole in address space */ int holelength; /* length of hole in address space */ /* ishole is true if page is inside memory hole */ #define ishole(v) ((v) >= holestart && (v) < holestart+holelength) #endif int nswap; /* size of swap space */ int updlock; /* lock for sync */ daddr_t rablock; /* block to be read ahead */ int rasize; /* size of block in rablock */ extern int intstack[]; /* stack for interrupts */ dev_t rootdev; /* device of the root */ #ifdef VFS struct vnode *rootvp; /* vnode of root filesystem */ #endif VFS dev_t dumpdev; /* device to take dumps on */ long dumplo; /* offset into dumpdev */ dev_t swapdev; /* swapping device */ dev_t argdev; /* device for argument lists */ #ifdef VFS struct vnode *swapdev_vp; /* vnode equivalent to above */ struct vnode *argdev_vp; /* vnode equivalent to above */ #endif VFS #ifdef vax extern int icode[]; /* user init code */ extern int szicode; /* its size */ #endif vax #ifdef ibm032 extern short icode[]; /* user init code */ extern int szicode; /* its size */ #endif ibm032 daddr_t bmap(); caddr_t calloc(); unsigned max(); unsigned min(); int memall(); #ifdef VFS int uchar(), schar(); #endif int vmemall(); caddr_t wmemall(); swblk_t vtod(); #ifdef VFS /*struct vnode *devtovp(); */ struct vnode *bdevvp(); /* Added for specfs routines */ struct vnode *specvp(); /* Added for nfs_vnodeops.c routine */ #endif VFS /* * Structure of the system-entry table */ extern struct sysent { int sy_narg; /* total number of arguments */ int (*sy_call)(); /* handler */ } sysent[]; int noproc; /* no one is running just now */ char *panicstr; int wantin; int boothowto; /* reboot flags, from console subsystem */ int selwait; extern char vmmap[]; /* poor name! */ /* casts to keep lint happy */ #define insque(q,p) _insque((queue_t)q,(queue_t)p) #define remque(q) _remque((queue_t)q) #]gHlo,$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:tbdefs.h 12.0$ */ /* $ACIS:tbdefs.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/tbdefs.h,v $ */ /* Defines for using the tablet/mouse emulator discipline */ #define NTBS (16) #define MAXTABLCHAR (8) #define TBQUEUESIZE (5) /* Generic structure for returning tablet or mouse positions */ struct tbmspos { int xpos; int ypos; short status; short scount; }; /* Structure per tablet/mouse */ struct tb { short used; short d_line; char cbuf[MAXTABLCHAR]; short lastindex; short curindex; struct tbmspos tbpos[TBQUEUESIZE]; }; #]iIlo-$ #%#Y#v/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:tbioctl.h 12.0$ */ /* $ACIS:tbioctl.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/tbioctl.h,v $ */ #define TBIOGETD _IOR(b,0,int) #define TBIOSETD _IOWR(b,1,int) #define HITACHI_DISC 0 #define GTCO_DISC 1 #define CALCOMP_DISC 2 #define PCMS_DISC 3 #define PLANMS_DISC3 4 #define PLANMS_DISC2 5 #]kJlo$$ <#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:text.h 12.0$ */ /* $ACIS:text.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/text.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtext = "$Header:text.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)text.h 7.1 (Berkeley) 6/4/86 */ /* * Text structure. * One allocated per pure * procedure on swap device. * Manipulated by text.c */ #define NXDAD 12 /* param.h:MAXTSIZ / vmparam.h:DMTEXT */ struct text { struct text *x_forw; /* forward link in free list */ struct text **x_back; /* backward link in free list */ swblk_t x_daddr[NXDAD]; /* disk addresses of dmtext-page segments */ swblk_t x_ptdaddr; /* disk address of page table */ size_t x_size; /* size (clicks) */ struct proc *x_caddr; /* ptr to linked proc, if loaded */ #ifdef VFS struct vnode *x_vptr; /* vnode of prototype */ #else VFS struct inode *x_iptr; /* inode of prototype */ #endif VFS short x_rssize; short x_swrss; short x_count; /* reference count */ short x_ccount; /* number of loaded references */ char x_flag; /* traced, written flags */ char x_slptime; short x_poip; /* page out in progress count */ #if defined(ibm370) int x_segid; /* SEGment ID from qmm_share (chessin) */ #endif /* defined(ibm370) */ }; #ifdef KERNEL struct text *text, *textNTEXT; int ntext; #endif #define XTRC 0x01 /* Text may be written, exclusive use */ #define XWRIT 0x02 /* Text written into, must swap out */ #define XLOAD 0x04 /* Currently being read from file */ #define XLOCK 0x08 /* Being swapped in or out */ #define XWANT 0x10 /* Wanted for swapping */ #ifdef VFS #define XPAGV 0x20 /* Page in on demand from vnode */ #else VFS #define XPAGI 0x20 /* Page in on demand from inode */ #endif VFS #define XUNUSED 0x40 /* unused since swapped out for cache */ /* * Text table statistics */ struct xstats { u_long alloc; /* calls to xalloc */ u_long alloc_inuse; /* found in use/sticky */ u_long alloc_cachehit; /* found in cache */ u_long alloc_cacheflush; /* flushed cached text */ u_long alloc_unused; /* flushed unused cached text */ u_long free; /* calls to xfree */ u_long free_inuse; /* still in use/sticky */ u_long free_cache; /* placed in cache */ u_long free_cacheswap; /* swapped out to place in cache */ }; #]oKlo\$ U#%#)#)/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:time.h 12.1$ */ /* $ACIS:time.h 12.1$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/time.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtime = "$Header:time.h 12.1$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)time.h 7.1 (Berkeley) 6/4/86 */ #ifndef TIMEINCLUDE #define TIMEINCLUDE /* * Structure returned by gettimeofday(2) system call, * and used in other calls. */ struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; struct timezone { int tz_minuteswest; /* minutes west of Greenwich */ int tz_dsttime; /* type of dst correction */ }; #define DST_NONE 0 /* not on dst */ #define DST_USA 1 /* USA style dst */ #define DST_AUST 2 /* Australian style dst */ #define DST_WET 3 /* Western European dst */ #define DST_MET 4 /* Middle European dst */ #define DST_EET 5 /* Eastern European dst */ #define DST_CAN 6 /* Canada */ /* * Operations on timevals. * * NB: timercmp does not work for >= or <=. */ #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp) \ ((tvp)->tv_sec cmp (uvp)->tv_sec || \ (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 /* * Names of the interval timers, and structure * defining a timer setting. */ #define ITIMER_REAL 0 #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; #ifndef KERNEL #ifndef STANDALONE #include #endif #endif #endif /* TIMEINCLUDE */ #]rLlo,́$ #%#Y#w/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:timeb.h 12.0$ */ /* $ACIS:timeb.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/timeb.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtimeb = "$Header:timeb.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)timeb.h 7.1 (Berkeley) 6/4/86 */ /* * Structure returned by ftime system call */ struct timeb { time_t time; unsigned short millitm; short timezone; short dstflag; }; #]tMlo,B$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:times.h 12.0$ */ /* $ACIS:times.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/times.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtimes = "$Header:times.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)times.h 7.1 (Berkeley) 6/4/86 */ /* * Structure returned by times() */ struct tms { time_t tms_utime; /* user time */ time_t tms_stime; /* system time */ time_t tms_cutime; /* user time, children */ time_t tms_cstime; /* system time, children */ }; #]vNlo)$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:trace.h 12.0$ */ /* $ACIS:trace.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/trace.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtrace = "$Header:trace.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)trace.h 7.1 (Berkeley) 6/4/86 */ /* * File system buffer tracing points; all trace */ #define TR_BREADHIT 0 /* buffer read found in cache */ #define TR_BREADMISS 1 /* buffer read not in cache */ #define TR_BWRITE 2 /* buffer written */ #define TR_BREADHITRA 3 /* buffer read-ahead found in cache */ #define TR_BREADMISSRA 4 /* buffer read-ahead not in cache */ #define TR_XFODMISS 5 /* exe fod read */ #define TR_XFODHIT 6 /* exe fod read */ #define TR_BRELSE 7 /* brelse */ #define TR_BREALLOC 8 /* expand/contract a buffer */ #ifdef ibm032 #define TR_BLKFLUSH 9 /* blkflush */ #define TR_BFLUSH 10 /* bflush */ #define TR_BINVAL 11 /* binval */ #define TR_BCLOSE 12 /* ino_close() or spec_close() */ #define TR_BDEVVP 13 /* bdevvp() */ #define TR_BRELVP 14 /* brelvp() */ #endif /* * Memory allocator trace points; all trace the amount of memory involved */ #define TR_MALL 15 /* memory allocated */ /* * Paging trace points: all are */ #define TR_INTRANS 20 /* page intransit block */ #define TR_EINTRANS 21 /* page intransit wait done */ #define TR_FRECLAIM 22 /* reclaim from free list */ #define TR_RECLAIM 23 /* reclaim from loop */ #define TR_XSFREC 24 /* reclaim from free list instead of drum */ #define TR_XIFREC 25 /* reclaim from free list instead of fsys */ #define TR_WAITMEM 26 /* wait for memory in pagein */ #define TR_EWAITMEM 27 /* end memory wait in pagein */ #define TR_ZFOD 28 /* zfod page fault */ #define TR_EXFOD 29 /* exec fod page fault */ #define TR_VRFOD 30 /* vread fod page fault */ #define TR_CACHEFOD 31 /* fod in file system cache */ #define TR_SWAPIN 32 /* drum page fault */ #define TR_PGINDONE 33 /* page in done */ #define TR_SWAPIO 34 /* swap i/o request arrives */ /* * System call trace points. */ #define TR_VADVISE 40 /* vadvise occurred with */ /* * Miscellaneous */ #define TR_STAMP 45 /* user said vtrace(VTR_STAMP, value); */ #ifdef ibm032 #define TR_RWIP 49 /* rwip() */ /* * Disk device driver (EESDI only at present) trace points */ #define TR_D_ENQ 50 /* enqueue - strategy called */ #define TR_D_GO 51 /* go - cmd given to adapter */ #define TR_D_INT 52 /* interrupt - from adapter */ /* * Floppy device driver trace points */ #define TR_F_STR 60 /* enqueue - fdstrategy called */ #define TR_F_STA 61 /* fdstart called */ #define TR_F_DGO 62 /* fddgo called */ #define TR_F_INT 63 /* interrupt from adapter - fdint() */ #define TR_F_AUT 64 /* fdautodensity - top of loop */ #define TR_F_REL 65 /* releasing a buffer */ #define TR_F_OPE 66 /* fdopen */ #define TR_F_CLO 67 /* fdclose */ #define TR_F_WAI 68 /* waiting for i/o complete on a buffer */ #define TR_F_FOR 69 /* fdformat */ #endif /* ibm032 */ /* * This defines the size of the trace flags array. */ #define TR_NFLAGS 100 /* generous */ #ifndef TRCSIZ #define TRCSIZ 4096 #endif /* TRCSIZ */ /* * Specifications of the vtrace() system call, which takes one argument. */ #define VTRACE 64+51 #define VTR_DISABLE 0 /* set a trace flag to 0 */ #define VTR_ENABLE 1 /* set a trace flag to 1 */ #define VTR_VALUE 2 /* return value of a trace flag */ #define VTR_UALARM 3 /* set alarm to go off (sig 16) */ /* in specified number of hz */ #define VTR_STAMP 4 /* user specified stamp */ #ifdef KERNEL #ifdef TRACE char traceflags[TR_NFLAGS]; struct proc *traceproc; int tracebuf[TRCSIZ]; unsigned tracex; int tracewhich; #define pack(a,b) (((a)<<16)|((b)&0xffff)) #define trace(a,b,c) if (traceflags[a]) trace1(a,b,c) #else #define trace(a,b,b) ; #endif #endif #]{OloF$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:tty.h 12.0$ */ /* $ACIS:tty.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/tty.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtty = "$Header:tty.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)tty.h 7.1 (Berkeley) 6/4/86 */ #if defined(KERNEL) || defined(STANDALONE) #include "ttychars.h" #include "ttydev.h" #else #include #include #endif #define spl_tty() _spl3() #define spl_tty_soft() _spl6() #define CBUFMAX 1023 struct cbuf { int cc, first, next; char buf[CBUFMAX]; }; #define CGET(cbufp, c, e) { \ if ( (cbufp)->cc > 0 ) { \ c = (cbufp)->buf[(cbufp)->first++]; \ if ( (cbufp)->first > CBUFMAX ) (cbufp)->first = 0; \ (cbufp)->cc--; \ e = 0; \ } else e = 1; \ } #define CPUT(cubfp, c, e) { \ struct cbuf *cbufp = (tp)->t_cbufp; \ if ( (cbufp)->cc <= CBUFMAX ) { \ (cbufp)->buf[(cbufp)->next++] = c; \ if ( (cbufp)->next > CBUFMAX ) (cbufp)->next = 0; \ (cbufp)->cc++; \ e = 0; \ } else e = 1; \ } /* * A clist structure is the head of a linked list queue * of characters. The characters are stored in blocks * containing a link and CBSIZE (param.h) characters. * The routines in tty_subr.c manipulate these structures. */ struct clist { int c_cc; /* character count */ char *c_cf; /* pointer to first char */ char *c_cl; /* pointer to last char */ }; /* * Per-tty structure. * * Should be split in two, into device and tty drivers. * Glue could be masks of what to echo and circular buffer * (low, high, timeout). */ struct tty { union { struct { struct clist T_rawq; struct clist T_canq; struct cbuf *T_cbufp; } t_t; #define t_rawq t_nu.t_t.T_rawq /* raw characters or partial line */ #define t_canq t_nu.t_t.T_canq /* raw characters or partial line */ #define t_cbufp t_nu.t_t.T_cbufp /* circular input buffer */ struct { struct buf *T_bufp; char *T_cp; int T_inbuf; int T_rec; } t_n; #define t_bufp t_nu.t_n.T_bufp /* buffer allocated to protocol */ #define t_cp t_nu.t_n.T_cp /* pointer into the ripped off buffer */ #define t_inbuf t_nu.t_n.T_inbuf /* number chars in the buffer */ #define t_rec t_nu.t_n.T_rec /* have a complete record */ } t_nu; struct clist t_outq; /* device */ int (*t_oproc)(); /* device */ struct proc *t_rsel; /* tty */ struct proc *t_wsel; caddr_t T_LINEP; /* ### */ caddr_t t_addr; /* ??? */ dev_t t_dev; /* device */ int t_flags; /* some of both */ int t_state; /* some of both */ short t_pgrp; /* tty */ char t_delct; /* tty */ char t_line; /* glue */ char t_col; /* tty */ char t_ispeed, t_ospeed; /* device */ char t_rocount, t_rocol; /* tty */ struct ttychars t_chars; /* tty */ struct winsize t_winsize; /* window size */ /* be careful of tchars & co. */ #define t_erase t_chars.tc_erase #define t_kill t_chars.tc_kill #define t_intrc t_chars.tc_intrc #define t_quitc t_chars.tc_quitc #define t_startc t_chars.tc_startc #define t_stopc t_chars.tc_stopc #define t_eofc t_chars.tc_eofc #define t_brkc t_chars.tc_brkc #define t_suspc t_chars.tc_suspc #define t_dsuspc t_chars.tc_dsuspc #define t_rprntc t_chars.tc_rprntc #define t_flushc t_chars.tc_flushc #define t_werasc t_chars.tc_werasc #define t_lnextc t_chars.tc_lnextc struct tty *t_next; /* for linking tty structs */ }; #define TTIPRI 28 #define TTOPRI 29 /* limits */ #define NSPEEDS 16 #define TTMASK 15 #define OBUFSIZ 100 #define TTYHOG 255 #ifdef KERNEL short tthiwat[NSPEEDS], ttlowat[NSPEEDS]; #define TTHIWAT(tp) tthiwat[(tp)->t_ospeed&TTMASK] #define TTLOWAT(tp) ttlowat[(tp)->t_ospeed&TTMASK] extern struct ttychars ttydefaults; #endif /* internal state bits */ #define TS_TIMEOUT 0x000001 /* delay timeout in progress */ #define TS_WOPEN 0x000002 /* waiting for open to complete */ #define TS_ISOPEN 0x000004 /* device is open */ #define TS_FLUSH 0x000008 /* outq has been flushed during DMA */ #define TS_CARR_ON 0x000010 /* software copy of carrier-present */ #define TS_BUSY 0x000020 /* output in progress */ #define TS_ASLEEP 0x000040 /* wakeup when output done */ #define TS_XCLUDE 0x000080 /* exclusive-use flag against open */ #define TS_TTSTOP 0x000100 /* output stopped by ctl-s */ #define TS_HUPCLS 0x000200 /* hang up upon last close */ #define TS_TBLOCK 0x000400 /* tandem queue blocked */ #define TS_RCOLL 0x000800 /* collision in read select */ #define TS_WCOLL 0x001000 /* collision in write select */ #define TS_NBIO 0x002000 /* tty in non-blocking mode */ #define TS_ASYNC 0x004000 /* tty in async i/o mode */ /* state for intra-line fancy editing work */ #define TS_BKSL 0x010000 /* state for lowercase \ work */ #define TS_QUOT 0x020000 /* last character input was \ */ #define TS_ERASE 0x040000 /* within a \.../ for PRTRUB */ #define TS_LNCH 0x080000 /* next character is literal */ #define TS_TYPEN 0x100000 /* retyping suspended input (PENDIN) */ #define TS_CNTTB 0x200000 /* counting tab width; leave FLUSHO alone */ /* following used to mark close in progress */ #define TS_CLOSE 0x400000 /* close is in progress */ #define TS_LOCAL (TS_BKSL|TS_QUOT|TS_ERASE|TS_LNCH|TS_TYPEN|TS_CNTTB) /* define partab character types */ #define ORDINARY 0 #define CONTROL 1 #define BACKSPACE 2 #define NEWLINE 3 #define TAB 4 #define VTAB 5 #define RETURN 6 /* ttyqueue is a structure pointing to the head and tail of a queue of * tty structures. These structures have characters in their * circular buffers and are waiting to have them processed. */ struct ttyqueue { struct tty *head; struct tty *tail; }; struct ttyqueue ttyintrq; /* macros to manipulate ttyintrq */ #define TTY_DEQUEUE(ttyq, tq) { \ (tq) = (ttyq)->head; \ if ( (tq) ) { \ (ttyq)->head = (tq)->t_next; \ if ( (ttyq)->head == 0 ) (ttyq)->tail = 0; \ (tq)->t_next = 0; \ } \ } #define TTY_ENQUEUE(ttyq, tq) { \ if ( ( (tq)->t_next == 0 ) && ( (ttyq)->tail != (tq) ) ) { \ if ( (ttyq)->tail == 0 ) \ (ttyq)->head = (tq); \ else \ (ttyq)->tail->t_next = (tq); \ (ttyq)->tail = (tq); \ } \ } #]Plo("$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:ttychars.h 12.0$ */ /* $ACIS:ttychars.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/ttychars.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidttychars = "$Header:ttychars.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ttychars.h 7.1 (Berkeley) 6/4/86 */ /* * User visible structures and constants * related to terminal handling. */ #ifndef _TTYCHARS_ #define _TTYCHARS_ struct ttychars { char tc_erase; /* erase last character */ char tc_kill; /* erase entire line */ char tc_intrc; /* interrupt */ char tc_quitc; /* quit */ char tc_startc; /* start output */ char tc_stopc; /* stop output */ char tc_eofc; /* end-of-file */ char tc_brkc; /* input delimiter (like nl) */ char tc_suspc; /* stop process signal */ char tc_dsuspc; /* delayed stop process signal */ char tc_rprntc; /* reprint line */ char tc_flushc; /* flush output (toggles) */ char tc_werasc; /* word erase */ char tc_lnextc; /* literal next character */ }; #define CTRL(c) ('c'&037) /* default special characters */ #ifdef ibm032 /*???*/ #define CERASE 010 #else ibm032 #define CERASE 0177 #endif ibm032 #define CKILL CTRL(u) #define CINTR CTRL(c) #define CQUIT 034 /* FS, ^\ */ #define CSTART CTRL(q) #define CSTOP CTRL(s) #define CEOF CTRL(d) #define CEOT CEOF #define CBRK 0377 #define CSUSP CTRL(z) #define CDSUSP CTRL(y) #define CRPRNT CTRL(r) #define CFLUSH CTRL(o) #define CWERASE CTRL(w) #define CLNEXT CTRL(v) #endif #]Qlo*$ m#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:ttydev.h 12.0$ */ /* $ACIS:ttydev.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/ttydev.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidttydev = "$Header:ttydev.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ttydev.h 7.1 (Berkeley) 6/4/86 */ /* * Terminal definitions related to underlying hardware. */ #ifndef _TTYDEV_ #define _TTYDEV_ /* * Speeds */ #define B0 0 #define B50 1 #define B75 2 #define B110 3 #define B134 4 #define B150 5 #define B200 6 #define B300 7 #define B600 8 #define B1200 9 #define B1800 10 #define B2400 11 #define B4800 12 #define B9600 13 #define EXTA 14 #define EXTB 15 #ifdef KERNEL /* * Hardware bits. * SHOULD NOT BE HERE. */ #define DONE 0200 #define IENABLE 0100 /* * Modem control commands. */ #define DMSET 0 #define DMBIS 1 #define DMBIC 2 #define DMGET 3 #endif #endif #]Rlo#$ %#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:types.h 12.0$ */ /* $ACIS:types.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/types.h,v $ */ #ifndef _TYPES_ #define _TYPES_ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidtypes = "$Header:types.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)types.h 7.1 (Berkeley) 6/4/86 */ /* * Basic system types and major/minor device constructing/busting macros. */ /* major part of a device */ #define major(x) ((int)(((unsigned)(x)>>8)&0377)) /* minor part of a device */ #define minor(x) ((int)((x)&0377)) /* make a device number */ #define makedev(x,y) ((dev_t)(((x)<<8) | (y))) typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned short ushort; /* sys III compat */ #ifdef vax typedef struct _physadr { int r[1]; } *physadr; typedef struct label_t { int val[14]; } label_t; #endif vax #if defined(ibm032) || defined(ibm370) typedef struct _physadr { int r[1]; } *physadr; typedef struct label_t { int val[11]; } label_t; #endif /* defined(ibm032) || defined(ibm370) */ typedef struct _quad { long val[2]; } quad; typedef long daddr_t; typedef char * caddr_t; typedef u_long ino_t; typedef long swblk_t; typedef long size_t; typedef long time_t; typedef short dev_t; typedef long off_t; typedef u_short uid_t; typedef u_short gid_t; #ifdef __STDC__ typedef signed char prio_t; /* priorities must be signed */ #else typedef char prio_t; #endif #define NBBY 8 /* number of bits in a byte */ /* * Select uses bit masks of file descriptors in longs. * These macros manipulate such bit fields (the filesystem macros use chars). * FD_SETSIZE may be defined by the user, but the default here * should be >= NOFILE (param.h). */ #ifndef FD_SETSIZE #define FD_SETSIZE 256 #endif typedef long fd_mask; #define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ #ifndef howmany #define howmany(x, y) (((x)+((y)-1))/(y)) #endif typedef struct fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; } fd_set; #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) #ifdef ibm032 /* * build a queue type appropriate to the particular machine * for historical reasons we use "caddr_t" on non-ibm032 machines. */ typedef struct qhdr { struct qhdr *link, *rlink; } *queue_t; #else ibm032 typedef caddr_t queue_t; #endif ibm032 #endif #]Slo*S$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:uio.h 12.0$ */ /* $ACIS:uio.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/uio.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiduio = "$Header:uio.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)uio.h 7.1 (Berkeley) 6/4/86 */ #ifndef _UIO_ #define _UIO_ struct iovec { caddr_t iov_base; int iov_len; }; struct uio { struct iovec *uio_iov; int uio_iovcnt; off_t uio_offset; int uio_segflg; #define uio_seg uio_segflg /* 4.2 - obsolete */ #if defined(VFS) || !defined(COMPAT_43) int uio_fmode; #endif int uio_resid; }; enum uio_rw { UIO_READ, UIO_WRITE }; /* * Segment flag values (should be enum). */ #define UIO_USERSPACE 0 /* from user data space */ #define UIO_SYSSPACE 1 /* from system space */ #define UIO_USERISPACE 2 /* from user I space */ #endif #]Tlo/9$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:un.h 12.0$ */ /* $ACIS:un.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/un.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidun = "$Header:un.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)un.h 7.1 (Berkeley) 6/4/86 */ /* * Definitions for UNIX IPC domain. */ struct sockaddr_un { short sun_family; /* AF_UNIX */ char sun_path[108]; /* path name (gag) */ }; #ifdef KERNEL int unp_discard(); #endif #]Ulo$$ .#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:unpcb.h 12.0$ */ /* $ACIS:unpcb.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/unpcb.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidunpcb = "$Header:unpcb.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)unpcb.h 7.1 (Berkeley) 6/4/86 */ /* * Protocol control block for an active * instance of a UNIX internal protocol. * #ifdef VFS * A socket may be associated with an vnode in the * file system. If so, the unp_vnode pointer holds * a reference count to this vnode, which should be irele'd * when the socket goes away. #else VFS * A socket may be associated with an inode in the * file system. If so, the unp_inode pointer holds * a reference count to this inode, which should be irele'd * when the socket goes away. #endif VFS * * A socket may be connected to another socket, in which * case the control block of the socket to which it is connected * is given by unp_conn. * * A socket may be referenced by a number of sockets (e.g. several * sockets may be connected to a datagram socket.) These sockets * are in a linked list starting with unp_refs, linked through * unp_nextref and null-terminated. Note that a socket may be referenced * by a number of other sockets and may also reference a socket (not * necessarily one which is referencing it). This generates * the need for unp_refs and unp_nextref to be separate fields. * * Stream sockets keep copies of receive sockbuf sb_cc and sb_mbcnt * so that changes in the sockbuf may be computed to modify * back pressure on the sender accordingly. */ struct unpcb { struct socket *unp_socket; /* pointer back to socket */ #ifdef VFS struct vnode *unp_vnode; /* if associated with file */ long unp_vno; /* fake vnode number */ #else VFS struct inode *unp_inode; /* if associated with file */ ino_t unp_ino; /* fake inode number */ #endif VFS struct unpcb *unp_conn; /* control block of connected socket */ struct unpcb *unp_refs; /* referencing socket linked list */ struct unpcb *unp_nextref; /* link in unp_refs list */ struct mbuf *unp_addr; /* bound address of socket */ int unp_cc; /* copy of rcv.sb_cc */ int unp_mbcnt; /* copy of rcv.sb_mbcnt */ }; #define sotounpcb(so) ((struct unpcb *)((so)->so_pcb)) #]Vlok$ #%#Y#h/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:user.h 12.0$ */ /* $ACIS:user.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/user.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiduser = "$Header:user.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)user.h 7.1 (Berkeley) 6/4/86 */ #if defined(KERNEL) || defined(STANDALONE) || defined(STANDUTIL) #include "../machine/pcb.h" #include "dmap.h" #include "time.h" #include "resource.h" #include "namei.h" #else #include #include #include #include #include #endif #ifdef VICE typedef long Fid[3]; /* Vice II file identifier */ #endif /* * Per process structure containing data that * isn't needed in core when the process is swapped out. */ #define MAXCOMLEN 16 /* <= MAXNAMLEN, >= sizeof(ac_comm) */ struct user { struct pcb u_pcb; struct proc *u_procp; /* pointer to proc structure */ int *u_ar0; /* address of users saved R0 */ char u_comm[MAXCOMLEN + 1]; /* syscall parameters, results and catches */ int u_arg[8]; /* arguments to current system call */ int *u_ap; /* pointer to arglist */ label_t u_qsave; /* for non-local gotos on interrupts */ union { /* syscall return values */ struct { int R_val1; int R_val2; } u_rv; #define r_val1 u_rv.R_val1 #define r_val2 u_rv.R_val2 off_t r_off; time_t r_time; } u_r; char u_error; /* return error code */ #ifdef ibm032 char u_calltype; #endif char u_eosys; /* special action on end of syscall */ /* 1.1 - processes and protection */ #if !defined(VFS) uid_t u_uid; /* effective user id */ uid_t u_ruid; /* real user id */ gid_t u_gid; /* effective group id */ gid_t u_rgid; /* real group id */ gid_t u_groups[NGROUPS]; /* groups, 0 terminated */ #else !VFS /* * NOTE we are assumint a struct ucred * is the same as 2 uid_t * (uid_t is short, struct ucred * is a long i */ struct ucred *u_cred; /* user credentials (uid, gid, etc) */ gid_t u_dummy_group[NGROUPS+2]; /* two for u_gid & u_rgid */ #define u_uid u_cred->cr_uid #define u_gid u_cred->cr_gid #define u_groups u_cred->cr_groups #define u_ruid u_cred->cr_ruid #define u_rgid u_cred->cr_rgid #endif !VFS /* 1.2 - memory management */ size_t u_tsize; /* text size (clicks) */ size_t u_dsize; /* data size (clicks) */ size_t u_ssize; /* stack size (clicks) */ struct dmap u_dmap; /* disk map for data segment */ struct dmap u_smap; /* disk map for stack segment */ struct dmap u_cdmap, u_csmap; /* shadows of u_dmap, u_smap, for use of parent during fork */ label_t u_ssave; /* label variable for swapping */ size_t u_odsize, u_ossize; /* for (clumsy) expansion swaps */ time_t u_outime; /* user time at last sample */ /* 1.3 - signal management */ int (*u_signal[NSIG])(); /* disposition of signals */ int u_sigmask[NSIG]; /* signals to be blocked */ int u_sigonstack; /* signals to take on sigstack */ int u_sigintr; /* signals that interrupt syscalls */ int u_oldmask; /* saved mask from before sigpause */ int u_code; /* ``code'' to trap */ struct sigstack u_sigstack; /* sp & on stack state variable */ #define u_onstack u_sigstack.ss_onstack #define u_sigsp u_sigstack.ss_sp /* 1.4 - descriptor management */ struct file *u_ofile[NOFILE]; /* file structures for open files */ char u_pofile[NOFILE]; /* per-process flags of open files */ int u_lastfile; /* high-water mark of u_ofile */ #define UF_EXCLOSE 0x1 /* auto-close on exec */ #define UF_MAPPED 0x2 /* mapped from device */ #ifdef VFS #define UF_FDLOCK 0x4 /* file desc locked (SysV style) */ struct vnode *u_cdir; /* current directory */ struct vnode *u_rdir; /* root directory of current process */ #else VFS struct inode *u_cdir; /* current directory */ struct inode *u_rdir; /* root directory of current process */ #endif VFS struct tty *u_ttyp; /* controlling tty pointer */ dev_t u_ttyd; /* controlling tty dev */ short u_cmask; /* mask for file creation */ /* 1.5 - timing and statistics */ struct rusage u_ru; /* stats for this proc */ struct rusage u_cru; /* sum of stats for reaped children */ struct itimerval u_timer[3]; int u_XXX[3]; struct timeval u_start; short u_acflag; struct uprof { /* profile arguments */ short *pr_base; /* buffer base */ unsigned pr_size; /* buffer size */ unsigned pr_off; /* pc offset */ unsigned pr_scale; /* pc scaling */ } u_prof; /* 1.6 - resource controls */ struct rlimit u_rlimit[RLIM_NLIMITS]; struct quota *u_quota; /* user's quota structure */ int u_qflags; /* per process quota flags */ #if (1) || !defined(VFS) /* * not needed for NFS, but kept to maintained for * common structure sizes (I hate recommpiling ps!!). */ /* namei & co. */ struct nameicache { /* last successful directory search */ int nc_prevoffset; /* offset at which last entry found */ ino_t nc_inumber; /* inum of cached directory */ dev_t nc_dev; /* dev of cached directory */ time_t nc_time; /* time stamp for cache entry */ } u_ncache; struct nameidata u_nd; #endif !VFS #if (1) || defined(VICE) /* ITC remote file system support */ struct rmt_wd *u_rmt_wd; /* current directory, if remote */ struct rmtWd { /* Current directory-new file system */ dev_t dev; /* Mounted file system of the cwd */ long fid[3]; /* Vice II file identifier for cwd */ } u_rmtWd; struct file *u_textfile; /* file object for a text segment */ char u_rmt_requested; /* For namei, iget, etc: caller can deal with remote files */ char u_rmt_follow1 /*:1*/; /* Follow symbolic link if it is last component of first pathname of a system call */ char u_rmt_follow2 /*:1*/; /* ... of second pathname ... */ dev_t u_rmt_dev; /* Venus is listening on this device */ struct buf *u_rmt_path_buf; /* buffer containing the pathname looked up during the namei */ char *u_rmt_path; /* pointer into u_rmt_path_buf to the uninterpreted part of the path */ long u_rmt_pag; /* Process authentication group */ #endif #if defined(ibm032) long u_floatmask; /* Floating point hardware in use */ /* (see ../machine/float.h) */ #endif /* defined(ibm032) */ int u_stack[1]; }; #if (1) || defined(VFS) struct ucred { u_short cr_ref; /* reference count */ uid_t cr_uid; /* effective user id */ gid_t cr_gid; /* effective group id */ gid_t cr_groups[NGROUPS]; /* groups, 0 terminated */ uid_t cr_ruid; /* real user id */ gid_t cr_rgid; /* real group id */ }; #ifdef KERNEL #define crhold(cr) (cr)->cr_ref++ struct ucred *crget(); struct ucred *crcopy(); struct ucred *crdup(); #endif KERNEL #endif VFS /* u_eosys values */ #define JUSTRETURN 1 #define RESTARTSYS 2 #define NORMALRETURN 3 /* u_error codes */ #ifdef KERNEL #include "errno.h" #else #include #endif #ifdef KERNEL extern struct user u; extern struct user swaputl; extern struct user forkutl; extern struct user xswaputl; extern struct user xswap2utl; extern struct user pushutl; extern struct user vfutl; #endif #]Wlo+0$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vadvise.h 12.0$ */ /* $ACIS:vadvise.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vadvise.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvadvise = "$Header:vadvise.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vadvise.h 7.1 (Berkeley) 6/4/86 */ /* * Parameters to vadvise() to tell system of particular paging * behaviour: * VA_NORM Normal strategy * VA_ANOM Sampling page behaviour is not a win, don't bother * Suitable during GCs in LISP, or sequential or random * page referencing. * VA_SEQL Sequential behaviour expected. * VA_FLUSH Invalidate all page table entries. */ #define VA_NORM 0 #define VA_ANOM 1 #define VA_SEQL 2 #define VA_FLUSH 3 #]Xlo+ց$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vcmd.h 12.0$ */ /* $ACIS:vcmd.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vcmd.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvcmd = "$Header:vcmd.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vcmd.h 7.1 (Berkeley) 6/4/86 */ #ifndef _IOCTL_ #ifdef KERNEL #include "ioctl.h" #else #include #endif #endif #define VPRINT 0100 #define VPLOT 0200 #define VPRINTPLOT 0400 #define VGETSTATE _IOR(v, 0, int) #define VSETSTATE _IOW(v, 1, int) #]Ylo$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vfs.h 12.0$ */ /* $ACIS:vfs.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vfs.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvfs = "$Header:vfs.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* NFSSRC @(#)vfs.h 2.1 86/04/11 */ /* @(#)vfs.h 1.1 86/02/03 SMI */ /* * File identifier. Should be unique per filesystem on a single machine. */ typedef struct { long val[2]; /* file system id type */ } fsid_t; /* * Structure per mounted file system. * Each mounted file system has an array of * operations and an instance record. * The file systems are put on a singly linked list. */ struct vfs { struct vfs *vfs_next; /* next vfs in vfs list */ struct vfsops *vfs_op; /* operations on vfs */ struct vnode *vfs_vnodecovered; /* vnode we mounted on */ int vfs_flag; /* flags */ int vfs_bsize; /* native block size */ fsid_t vfs_fsid; /* file system id */ uid_t vfs_exroot; /* exported fs uid 0 mapping */ short vfs_exflags; /* exported fs flags */ caddr_t vfs_data; /* private data */ }; /* * vfs flags. * VFS_MLOCK lock the vfs so that name lookup cannot proceed past the vfs. * This keeps the subtree stable during mounts and unmounts. */ #define VFS_RDONLY 0x01 /* read only vfs */ #define VFS_MLOCK 0x02 /* lock vfs so that subtree is stable */ #define VFS_MWAIT 0x04 /* someone is waiting for lock */ #define VFS_NOSUID 0x08 /* someone is waiting for lock */ #define VFS_EXPORTED 0x10 /* file system is exported (NFS) */ /* * exported vfs flags. */ #define EX_RDONLY 0x01 /* exported read only */ /* * Operations supported on virtual file system. */ struct vfsops { int (*vfs_mount)(); /* mount file system */ int (*vfs_unmount)(); /* unmount file system */ int (*vfs_root)(); /* get root vnode */ int (*vfs_statfs)(); /* get fs statistics */ int (*vfs_sync)(); /* flush fs buffer */ int (*vfs_vget)(); /* get vnode from fid */ }; #define VFS_MOUNT(VFSP, PATH, DATA) \ (*(VFSP)->vfs_op->vfs_mount)(VFSP, PATH, DATA) #define VFS_UNMOUNT(VFSP) (*(VFSP)->vfs_op->vfs_unmount)(VFSP) #define VFS_ROOT(VFSP, VPP) (*(VFSP)->vfs_op->vfs_root)(VFSP,VPP) #define VFS_STATFS(VFSP, SBP, VP) (*(VFSP)->vfs_op->vfs_statfs)(VFSP,SBP,VP) #define VFS_SYNC(VFSP) (*(VFSP)->vfs_op->vfs_sync)(VFSP) #define VFS_VGET(VFSP, VPP, FIDP) (*(VFSP)->vfs_op->vfs_vget)(VFSP, VPP, FIDP) #define MAXFIDSZ 16 #define freefid(fidp) \ kmem_free((caddr_t)(fidp), sizeof (struct fid) - MAXFIDSZ + (fidp)->fid_len) struct fid { u_short fid_len; /* length of data in bytes */ char fid_data[MAXFIDSZ]; /* data (variable length) */ }; /* * file system statistics */ struct statfs { long f_type; /* type of info, zero for now */ long f_bsize; /* fundamental file system block size */ long f_blocks; /* total blocks in file system */ long f_bfree; /* free block in fs */ long f_bavail; /* free blocks avail to non-superuser */ long f_files; /* total file nodes in file system */ long f_ffree; /* free file nodes in fs */ fsid_t f_fsid; /* file system id */ long f_spare[7]; /* spare for later */ }; #ifdef KERNEL /* * public operations */ extern void vfs_mountroot(); /* mount the root */ extern int vfs_add(); /* add a new vfs to mounted vfs list */ extern void vfs_remove(); /* remove a vfs from mounted vfs list */ extern int vfs_lock(); /* lock a vfs */ extern void vfs_unlock(); /* unlock a vfs */ extern struct vfs *getvfs(); /* return vfs given fsid */ #define VFS_INIT(VFSP, OP, DATA) { \ (VFSP)->vfs_next = (struct vfs *)0; \ (VFSP)->vfs_op = (OP); \ (VFSP)->vfs_flag = 0; \ (VFSP)->vfs_exflags = 0; \ (VFSP)->vfs_data = (DATA); \ } /* * globals */ extern struct vfs *rootvfs; /* ptr to root vfs structure */ #endif #]Zlo(u$ K#%#Y#/* $Header:vice.h 12.0$ */ /* $ACIS:vice.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vice.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvice = "$Header:vice.h 12.0$"; #endif /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ #ifdef VICE /* * /usr/include/sys/vice.h * * Definitions required by user processes needing extended vice facilities * of the kernel. * * NOTE: /usr/include/sys/remote.h contains definitions common between * Venus and the kernel. * /usr/local/include/viceioctl.h contains ioctl definitions common * between user processes and Venus. */ struct ViceIoctl { caddr_t in, out; /* Data to be transferred in, or out */ short in_size; /* Size of input buffer <= 2K */ short out_size; /* Maximum size of output buffer, <= 2K */ }; /* The 2K limits above are a consequence of the size of the kernel buffer used to buffer requests from the user to venus--2*MAXPATHLEN. The buffer pointers may be null, or the counts may be 0 if there are no input or output parameters */ #define _VICEIOCTL(id) ((unsigned int ) _IOW(V, id, struct ViceIoctl)) /* Use this macro to define up to 256 vice ioctl's. These ioctl's all potentially have in/out parameters--this depends upon the values in the ViceIoctl structure. This structure is itself passed into the kernel by the normal ioctl parameter passing mechanism. */ #define _VALIDVICEIOCTL(com) (com >= _VICEIOCTL(0) && com <= _VICEIOCTL(255)) #endif #][lo*Á$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vlimit.h 12.0$ */ /* $ACIS:vlimit.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vlimit.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvlimit = "$Header:vlimit.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vlimit.h 7.1 (Berkeley) 6/4/86 */ /* * Limits for u.u_limit[i], per process, inherited. */ #define LIM_NORAISE 0 /* if <> 0, can't raise limits */ #define LIM_CPU 1 /* max secs cpu time */ #define LIM_FSIZE 2 /* max size of file created */ #define LIM_DATA 3 /* max growth of data space */ #define LIM_STACK 4 /* max growth of stack */ #define LIM_CORE 5 /* max size of ``core'' file */ #define LIM_MAXRSS 6 /* max desired data+stack core usage */ #define NLIMITS 6 #define INFINITY 0x7fffffff #]\lo+>$ z#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vm.h 12.0$ */ /* $ACIS:vm.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vm.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvm = "$Header:vm.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vm.h 7.1 (Berkeley) 6/4/86 */ /* * #include "../h/vm.h" * or #include in a user program * is a quick way to include all the vm header files. */ #if defined(KERNEL) || defined(STANDALONE) #include "vmparam.h" #include "vmmac.h" #include "vmmeter.h" #include "vmsystm.h" #else #include #include #include #include #endif #]]loH$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:vmmac.h 12.0$ */ /* $ACIS:vmmac.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vmmac.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvmmac = "$Header:vmmac.h 12.0$"; #endif /* vmmac.h 6.1 83/07/29 */ /* * Virtual memory related conversion macros */ /* Core clicks to number of pages of page tables needed to map that much */ #define ctopt(x) (((x)+NPTEPG-1)/NPTEPG) /* Virtual page numbers to text|data|stack segment page numbers and back */ #if defined(vax) || defined(ibm370) #define vtotp(p, v) ((int)(v)-LOWPAGES) #define vtodp(p, v) ((int)((v) - stoc(ctos((p)->p_tsize)) - LOWPAGES)) #endif /* defined(vax) || defined(ibm370) */ #ifdef ibm032 #define vtotp(p, v) ((int)(v)) #define vtodp(p, v) ((int)((v)-((p)->p_tsize ? btop(DATABASE) : 0))) #endif ibm032 #if !defined(ibm370) #define vtosp(p, v) ((int)(btop(USRSTACK) - 1 - (v))) #else /* !defined(ibm370) */ #define vtosp(p, v) ((int)(btop(USRCXAEND) - 1 - (v))) #endif /* !defined(ibm370) */ #if defined(vax) || defined(ibm370) #define tptov(p, i) ((unsigned)(i) + LOWPAGES) #define dptov(p, i) ((unsigned)(stoc(ctos((p)->p_tsize)) + (i) + LOWPAGES)) #endif /* defined(vax) || defined(ibm370) */ #ifdef ibm032 #define tptov(p, i) ((unsigned)(i)) #define dptov(p, i) ((unsigned)((i)+((p)->p_tsize ? btop(DATABASE) : 0))) #endif ibm032 #if !defined(ibm370) #define sptov(p, i) ((unsigned)(btop(USRSTACK) - 1 - (i))) #else /* !defined(ibm370) */ #define sptov(p, i) ((unsigned)(btop(USRCXAEND) - 1 - (i))) #endif /* !defined(ibm370) */ /* Tell whether virtual page numbers are in text|data|stack segment */ #if defined(vax) || defined(ibm370) #define isassv(p, v) ((v) >= btop(USRSTACK) - (p)->p_ssize) #define isatsv(p, v) (((v) - LOWPAGES) < (p)->p_tsize) #define isadsv(p, v) (((v) - LOWPAGES) >= stoc(ctos((p)->p_tsize)) && \ !isassv(p, v)) #endif /* defined(vax) || defined(ibm370) */ #ifdef ibm032 #define isatsv(p, v) ((v) < (p)->p_tsize) #define isadsv(p, v) (!isatsv(p,v) && ISADSV(p,v)) /* use ISADSV if already have failed isatsv (isitok) */ #define ISADSV(p, v) ((v) - ((p)->p_tsize ? btop(DATABASE) : 0) < (p)->p_dsize) #define isassv(p, v) ((v) < btop(USRSTACK) && \ ((v) >= btop(USRSTACK)-(p)->p_ssize)) #endif ibm032 /* Tell whether pte's are text|data|stack */ #define isaspte(p, pte) ((pte) > sptopte(p, (p)->p_ssize)) #define isatpte(p, pte) ((pte) < dptopte(p, 0)) #define isadpte(p, pte) (!isaspte(p, pte) && !isatpte(p, pte)) /* Text|data|stack pte's to segment page numbers and back */ #define ptetotp(p, pte) ((pte) - (p)->p_p0br) #define ptetodp(p, pte) ((pte) - ((p)->p_p0br + (p)->p_tsize)) #if defined(vax) || defined(ibm370) #define ptetosp(p, pte) \ (((p)->p_p0br + (p)->p_szpt*NPTEPG - UPAGES - 1) - (pte)) #endif /* defined(vax) || defined(ibm370) */ #ifdef ibm032 #define ptetosp(p, pte) ((p)->p_p0br + (p)->p_szpt*NPTEPG-HIGHPAGES-1-(pte)) #endif ibm032 #define tptopte(p, i) ((p)->p_p0br + (i)) #define dptopte(p, i) ((p)->p_p0br + (p)->p_tsize + (i)) #if defined(vax) || defined(ibm370) #define sptopte(p, i) \ (((p)->p_p0br + (p)->p_szpt*NPTEPG - UPAGES - 1) - (i)) #endif /* defined(vax) || defined(ibm370) */ #ifdef ibm032 #define sptopte(p, i) ((p)->p_p0br + (p)->p_szpt*NPTEPG-HIGHPAGES-1-(i)) #endif ibm032 /* Bytes to pages without rounding, and back */ #define btop(x) (((unsigned)(x)) >> PGSHIFT) #define ptob(x) ((caddr_t)((x) << PGSHIFT)) /* Turn virtual addresses into kernel map indices */ #define kmxtob(a) (usrpt + (a) * NPTEPG) #define btokmx(b) (((b) - usrpt) / NPTEPG) #if defined(ibm370) /* Turn virtual addresses into kernel work space real addresses */ #define kwxtob(a) (kworkarea + (a-1) * DEV_BSIZE) #define btokwx(b) ((((b) - kworkarea) / DEV_BSIZE ) + 1) extern char *kworkarea; /* Turn virtual addresses into kernel work space real addresses */ extern char *argbufarea; #define amxtob(a) (argbufarea + (a-1) * NCARGS) #define btoamx(b) ((((b) - argbufarea) / NCARGS ) +1 ) #endif /* User area address and pcb bases */ #define uaddr(p) (&((p)->p_p0br[(p)->p_szpt * NPTEPG - UPAGES])) #if defined(vax) || defined(ibm032) #define pcbb(p) ((p)->p_addr[0].pg_pfnum) #endif vax|ibm032 /* Average new into old with aging factor time */ #define ave(smooth, cnt, time) \ smooth = ((time - 1) * (smooth) + (cnt)) / (time) /* Abstract machine dependent operations */ #ifdef vax #define setp0br(x) (u.u_pcb.pcb_p0br = (x), mtpr(P0BR, x)) #define setp0lr(x) (u.u_pcb.pcb_p0lr = \ (x) | (u.u_pcb.pcb_p0lr & AST_CLR), \ mtpr(P0LR, x)) #define setp1br(x) (u.u_pcb.pcb_p1br = (x), mtpr(P1BR, x)) #define setp1lr(x) (u.u_pcb.pcb_p1lr = (x), mtpr(P1LR, x)) #define initp1br(x) ((x) - P1PAGES) #endif vax #if defined(ibm032) || defined(ibm370) #define setp0br(x) (u.u_pcb.pcb_p0br = (x)) #define setp0lr(x) (u.u_pcb.pcb_p0lr = (x)) #define setp1br(x) (u.u_pcb.pcb_p1br = (x)) #define setp1lr(x) (u.u_pcb.pcb_p1lr = (x)) #define initp1br(x) ((x) - P1PAGES) #endif /* defined(ibm032) || defined(ibm370) */ #define outofmem() wakeup((caddr_t)&proc[2]); /* * Page clustering macros. * * dirtycl(pte) is the page cluster dirty? * anycl(pte,fld) does any pte in the cluster has fld set? * zapcl(pte,fld) = val set all fields fld in the cluster to val * distcl(pte) distribute high bits to cluster; note that * distcl copies everything but pg_pfnum, * INCLUDING pg_m!!! * * In all cases, pte must be the low pte in the cluster, even if * the segment grows backwards (e.g. the stack). */ #define H(pte) ((struct hpte *)(pte)) #if CLSIZE==1 #define dirtycl(pte) dirty(pte) #define anycl(pte,fld) ((pte)->fld) #define zapcl(pte,fld) (pte)->fld #define distcl(pte) #endif #if CLSIZE==2 #define dirtycl(pte) (dirty(pte) || dirty((pte)+1)) #define anycl(pte,fld) ((pte)->fld || (((pte)+1)->fld)) #define zapcl(pte,fld) (pte)[1].fld = (pte)[0].fld #endif #if CLSIZE==4 #define dirtycl(pte) \ (dirty(pte) || dirty((pte)+1) || dirty((pte)+2) || dirty((pte)+3)) #define anycl(pte,fld) \ ((pte)->fld || (((pte)+1)->fld) || (((pte)+2)->fld) || (((pte)+3)->fld)) #define zapcl(pte,fld) \ (pte)[3].fld = (pte)[2].fld = (pte)[1].fld = (pte)[0].fld #endif #if defined(ibm370) #define dirtycl(pte) dirty(pte) #define anycl(pte,fld) ((pte)->fld) #define zapcl(pte,fld) (pte)->fld #endif /* defined(ibm370) */ #ifndef distcl #define distcl(pte) zapcl(H(pte),pg_high) #endif /* * Lock a page frame. */ #define MLOCK(c) { \ while ((c)->c_lock) { \ (c)->c_want = 1; \ sleep((caddr_t)(c), PSWP+1); \ } \ (c)->c_lock = 1; \ } /* * Unlock a page frame. */ #define MUNLOCK(c) { \ if (c->c_want) { \ wakeup((caddr_t)c); \ c->c_want = 0; \ } \ c->c_lock = 0; \ } #]^lo D$ )#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vmmeter.h 12.0$ */ /* $ACIS:vmmeter.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vmmeter.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvmmeter = "$Header:vmmeter.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vmmeter.h 7.1 (Berkeley) 6/4/86 */ /* * Virtual memory related instrumentation */ struct vmmeter { #define v_first v_swtch unsigned v_swtch; /* context switches */ unsigned v_trap; /* calls to trap */ unsigned v_syscall; /* calls to syscall() */ unsigned v_intr; /* device interrupts */ unsigned v_soft; /* software interrupts */ unsigned v_pdma; /* pseudo-dma interrupts */ unsigned v_pswpin; /* pages swapped in */ unsigned v_pswpout; /* pages swapped out */ unsigned v_pgin; /* pageins */ unsigned v_pgout; /* pageouts */ unsigned v_pgpgin; /* pages paged in */ unsigned v_pgpgout; /* pages paged out */ unsigned v_intrans; /* intransit blocking page faults */ unsigned v_pgrec; /* total page reclaims */ unsigned v_xsfrec; /* found in free list rather than on swapdev */ unsigned v_xifrec; /* found in free list rather than in filsys */ unsigned v_exfod; /* pages filled on demand from executables */ unsigned v_zfod; /* pages zero filled on demand */ unsigned v_vrfod; /* fills of pages mapped by vread() */ unsigned v_nexfod; /* number of exfod's created */ unsigned v_nzfod; /* number of zfod's created */ unsigned v_nvrfod; /* number of vrfod's created */ unsigned v_pgfrec; /* page reclaims from free list */ unsigned v_faults; /* total faults taken */ unsigned v_scan; /* scans in page out daemon */ unsigned v_rev; /* revolutions of the hand */ unsigned v_seqfree; /* pages taken from sequential programs */ unsigned v_dfree; /* pages freed by daemon */ unsigned v_fastpgrec; /* fast reclaims in locore */ #define v_last v_fastpgrec unsigned v_swpin; /* swapins */ unsigned v_swpout; /* swapouts */ }; #ifdef KERNEL struct vmmeter cnt, rate, sum; #endif /* systemwide totals computed every five seconds */ struct vmtotal { short t_rq; /* length of the run queue */ short t_dw; /* jobs in ``disk wait'' (neg priority) */ short t_pw; /* jobs in page wait */ short t_sl; /* jobs sleeping in core */ short t_sw; /* swapped out runnable/short block jobs */ long t_vm; /* total virtual memory */ long t_avm; /* active virtual memory */ long t_rm; /* total real memory in use */ long t_arm; /* active real memory */ long t_vmtxt; /* virtual memory used by text */ long t_avmtxt; /* active virtual memory used by text */ long t_rmtxt; /* real memory used by text */ long t_armtxt; /* active real memory used by text */ long t_free; /* free memory pages */ }; #ifdef KERNEL struct vmtotal total; #endif /* * Optional instrumentation. */ #ifdef PGINPROF #define NDMON 128 #define NSMON 128 #define DRES 20 #define SRES 5 #define PMONMIN 20 #define PRES 50 #define NPMON 64 #define RMONMIN 130 #define RRES 5 #define NRMON 64 /* data and stack size distribution counters */ unsigned int dmon[NDMON+1]; unsigned int smon[NSMON+1]; /* page in time distribution counters */ unsigned int pmon[NPMON+2]; /* reclaim time distribution counters */ unsigned int rmon[NRMON+2]; int pmonmin; int pres; int rmonmin; int rres; unsigned rectime; /* accumulator for reclaim times */ unsigned pgintime; /* accumulator for page in times */ #endif #]_lo+g$ 1#%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vmparam.h 12.0$ */ /* $ACIS:vmparam.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vmparam.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvmparam = "$Header:vmparam.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vmparam.h 7.1 (Berkeley) 6/4/86 */ /* * Machine dependent constants */ #if defined(KERNEL) || defined(STANDALONE) #include "../machine/vmparam.h" #else #include #endif #if defined(KERNEL) && !defined(LOCORE) int klseql; int klsdist; int klin; int kltxt; int klout; #endif #]`lo&$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vmsystm.h 12.0$ */ /* $ACIS:vmsystm.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vmsystm.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvmsystm = "$Header:vmsystm.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vmsystm.h 7.1 (Berkeley) 6/4/86 */ /* * Miscellaneous virtual memory subsystem variables and structures. */ #ifdef KERNEL int freemem; /* remaining blocks of free memory */ int avefree; /* moving average of remaining free blocks */ int avefree30; /* 30 sec (avefree is 5 sec) moving average */ int deficit; /* estimate of needs of new swapped in procs */ int nscan; /* number of scans in last second */ int multprog; /* current multiprogramming degree */ int desscan; /* desired pages scanned per second */ /* writable copies of tunables */ int maxpgio; /* max paging i/o per sec before start swaps */ int maxslp; /* max sleep time before very swappable */ int lotsfree; /* max free before clock freezes */ int minfree; /* minimum free pages before swapping begins */ int desfree; /* no of pages to try to keep free via daemon */ int saferss; /* no pages not to steal; decays with slptime */ int slowscan; /* slowest scan rate, clusters/second */ int fastscan; /* fastest scan rate, clusters/second */ #endif /* * Fork/vfork accounting. */ struct forkstat { int cntfork; int cntvfork; int sizfork; int sizvfork; }; #ifdef KERNEL struct forkstat forkstat; #endif /* * Swap kind accounting. */ struct swptstat { int pteasy; /* easy pt swaps */ int ptexpand; /* pt expansion swaps */ int ptshrink; /* pt shrinking swaps */ int ptpack; /* pt swaps involving spte copying */ }; #ifdef KERNEL struct swptstat swptstat; #endif #]alo$ 2#%#Y#x/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:vnode.h 12.0$ */ /* $ACIS:vnode.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vnode.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvnode = "$Header:vnode.h 12.0$"; #endif #if !defined(KERNEL) && !defined(STANDALONE) #include #endif /* NFSSRC @(#)vnode.h 2.1 86/04/11 */ /* @(#)vnode.h 1.1 86/02/03 SMI */ /* * The vnode is the focus of all file activity in UNIX. * There is a unique vnode allocated for each active file, * each current directory, each mounted-on file, text file, and the root. */ /* * vnode types. VNON means no type. */ #ifndef ibm032 enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VBAD, VFIFO }; #else ibm032 /* * enums on ibm032 never compare equal to -1 so * have to use explicit value of VINIT to show the value is * not initialized yet. */ enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VBAD, VFIFO, VINIT=0xff }; #endif ibm032 struct vnode { u_short v_flag; /* vnode flags (see below)*/ u_short v_count; /* reference count */ u_short v_shlockc; /* count of shared locks */ u_short v_exlockc; /* count of exclusive locks */ struct vfs *v_vfsmountedhere; /* ptr to vfs mounted here */ struct vnodeops *v_op; /* vnode operations */ struct socket *v_socket; /* unix ipc */ struct vfs *v_vfsp; /* ptr to vfs we are in */ enum vtype v_type; /* vnode type */ dev_t v_rdev; /* device (VCHR, VBLK) */ caddr_t v_data; /* private data for fs */ struct text *v_text; /* text entry, if any (should be region) */ }; /* * vnode flags. */ #define VROOT 0x01 /* root of its file system */ #define VTEXT 0x02 /* vnode is a pure text prototype */ #define VEXLOCK 0x10 /* exclusive lock */ #define VSHLOCK 0x20 /* shared lock */ #define VLWAIT 0x40 /* proc is waiting on shared or excl. lock */ #define VTEXTMOD 0x80 /* text has been modified (e.g. ptrace) */ /* * Operations on vnodes. */ struct vnodeops { int (*vn_open)(); int (*vn_close)(); int (*vn_rdwr)(); int (*vn_ioctl)(); int (*vn_select)(); int (*vn_getattr)(); int (*vn_setattr)(); int (*vn_access)(); int (*vn_lookup)(); int (*vn_create)(); int (*vn_remove)(); int (*vn_link)(); int (*vn_rename)(); int (*vn_mkdir)(); int (*vn_rmdir)(); int (*vn_readdir)(); int (*vn_symlink)(); int (*vn_readlink)(); int (*vn_fsync)(); int (*vn_inactive)(); int (*vn_bmap)(); int (*vn_strategy)(); int (*vn_bread)(); int (*vn_brelse)(); int (*vn_lockctl)(); int (*vn_fid)(); int (*vn_minphys)(); }; #ifdef KERNEL #define VOP_OPEN(VPP,F,C) (*(*(VPP))->v_op->vn_open)(VPP, F, C) #define VOP_CLOSE(VP,F,C) (*(VP)->v_op->vn_close)(VP,F,C) #define VOP_RDWR(VP,UIOP,RW,F,C) (*(VP)->v_op->vn_rdwr)(VP,UIOP,RW,F,C) #define VOP_IOCTL(VP,C,D,F,CR) (*(VP)->v_op->vn_ioctl)(VP,C,D,F,CR) #define VOP_SELECT(VP,W,C) (*(VP)->v_op->vn_select)(VP,W,C) #define VOP_GETATTR(VP,VA,C) (*(VP)->v_op->vn_getattr)(VP,VA,C) #define VOP_SETATTR(VP,VA,C) (*(VP)->v_op->vn_setattr)(VP,VA,C) #define VOP_ACCESS(VP,M,C) (*(VP)->v_op->vn_access)(VP,M,C) #define VOP_LOOKUP(VP,NM,VPP,C) (*(VP)->v_op->vn_lookup)(VP,NM,VPP,C) #define VOP_CREATE(VP,NM,VA,E,M,VPP,C) (*(VP)->v_op->vn_create) \ (VP,NM,VA,E,M,VPP,C) #define VOP_REMOVE(VP,NM,C) (*(VP)->v_op->vn_remove)(VP,NM,C) #define VOP_LINK(VP,TDVP,TNM,C) (*(VP)->v_op->vn_link)(VP,TDVP,TNM,C) #define VOP_RENAME(VP,NM,TDVP,TNM,C) (*(VP)->v_op->vn_rename) \ (VP,NM,TDVP,TNM,C) #define VOP_MKDIR(VP,NM,VA,VPP,C) (*(VP)->v_op->vn_mkdir)(VP,NM,VA,VPP,C) #define VOP_RMDIR(VP,NM,C) (*(VP)->v_op->vn_rmdir)(VP,NM,C) #define VOP_READDIR(VP,UIOP,C) (*(VP)->v_op->vn_readdir)(VP,UIOP,C) #define VOP_SYMLINK(VP,LNM,VA,TNM,C) (*(VP)->v_op->vn_symlink) \ (VP,LNM,VA,TNM,C) #define VOP_READLINK(VP,UIOP,C) (*(VP)->v_op->vn_readlink)(VP,UIOP,C) #define VOP_FSYNC(VP,C) (*(VP)->v_op->vn_fsync)(VP,C) #define VOP_INACTIVE(VP,C) (*(VP)->v_op->vn_inactive)(VP,C) #define VOP_BMAP(VP,BN,VPP,BNP) (*(VP)->v_op->vn_bmap)(VP,BN,VPP,BNP) #define VOP_STRATEGY(BP) (*(BP)->b_vp->v_op->vn_strategy)(BP) #define VOP_BREAD(VP,BN,BPP) (*(VP)->v_op->vn_bread)(VP,BN,BPP) #define VOP_BRELSE(VP,BP) (*(VP)->v_op->vn_brelse)(VP,BP) #define VOP_LOCKCTL(VP,LD,CMD,C) (*(VP)->v_op->vn_lockctl)(VP,LD,CMD,C) #define VOP_FID(VP,FIDPP) (*(VP)->v_op->vn_fid)(VP,FIDPP) /* * flags for above */ #define IO_UNIT 0x01 /* do io as atomic unit for VOP_RDWR */ #define IO_APPEND 0x02 /* append write for VOP_RDWR */ #define IO_SYNC 0x04 /* sync io for VOP_RDWR */ #define IO_NDELAY 0x08 /* non-blocking i/o for fifos */ #endif /* * Vnode attributes. A field value of -1 * represents a field whose value is unavailable * (getattr) or which is not to be changed (setattr). */ struct vattr { enum vtype va_type; /* vnode type (for create) */ u_short va_mode; /* files access mode and type */ short va_uid; /* owner user id */ short va_gid; /* owner group id */ long va_fsid; /* file system id (dev for now) */ long va_nodeid; /* node id */ short va_nlink; /* number of references to file */ u_long va_size; /* file size in bytes (quad?) */ long va_blocksize; /* blocksize preferred for i/o */ struct timeval va_atime; /* time of last access */ struct timeval va_mtime; /* time of last modification */ struct timeval va_ctime; /* time file ``created */ dev_t va_rdev; /* device the file represents */ long va_blocks; /* kbytes of disk space held by file */ }; /* * Modes. Some values same as Ixxx entries from inode.h for now */ #define VSUID 04000 /* set user id on execution */ #define VSGID 02000 /* set group id on execution */ #define VSVTX 01000 /* save swapped text even after use */ #define VREAD 0400 /* read, write, execute permissions */ #define VWRITE 0200 #define VEXEC 0100 #ifdef KERNEL /* * public vnode manipulation functions */ extern int vn_open(); /* open vnode */ extern int vn_create(); /* creat/mkdir vnode */ extern int vn_rdwr(); /* read or write vnode */ extern int vn_close(); /* close vnode */ extern void vn_rele(); /* release vnode */ extern int vn_link(); /* make hard link */ extern int vn_rename(); /* rename (move) */ extern int vn_remove(); /* remove/rmdir */ extern void vattr_null(); /* set attributes to null */ extern int getvnodefp(); /* get fp from vnode fd */ #define VN_HOLD(VP) { \ (VP)->v_count++; \ } #define VN_RELE(VP) { \ vn_rele(VP); \ } #define VN_INIT(VP, VFSP, TYPE, DEV) { \ (VP)->v_flag = 0; \ (VP)->v_count = 1; \ (VP)->v_shlockc = (VP)->v_exlockc = 0; \ (VP)->v_vfsp = (VFSP); \ (VP)->v_type = (TYPE); \ (VP)->v_rdev = (DEV); \ } /* * flags for above */ enum rm { FILE, DIRECTORY }; /* rmdir or rm (remove) */ enum symfollow { NO_FOLLOW, FOLLOW_LINK }; /* follow symlinks (lookuppn) */ enum vcexcl { NONEXCL, EXCL}; /* (non)excl create (create) */ /* * Global vnode data. */ extern struct vnode *rootdir; /* root (i.e. "/") vnode */ extern enum vtype mftovt_tab[]; #define MFMT 0170000 /* type of file */ #define MFTOVT(M) (mftovt_tab[((M) & MFMT) >> 13]) #endif #]blo)$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:vtimes.h 12.0$ */ /* $ACIS:vtimes.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/vtimes.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvtimes = "$Header:vtimes.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)vtimes.h 7.1 (Berkeley) 6/4/86 */ /* * Structure returned by vtimes() and in vwait(). * In vtimes() two of these are returned, one for the process itself * and one for all its children. In vwait() these are combined * by adding componentwise (except for maxrss, which is max'ed). */ struct vtimes { int vm_utime; /* user time (60'ths) */ int vm_stime; /* system time (60'ths) */ /* divide next two by utime+stime to get averages */ unsigned vm_idsrss; /* integral of d+s rss */ unsigned vm_ixrss; /* integral of text rss */ int vm_maxrss; /* maximum rss */ int vm_majflt; /* major page faults */ int vm_minflt; /* minor page faults */ int vm_nswap; /* number of swaps */ int vm_inblk; /* block reads */ int vm_oublk; /* block writes */ }; #ifdef KERNEL #endif #]clo!$ #%#Y#/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:wait.h 12.0$ */ /* $ACIS:wait.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/h/RCS/wait.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidwait = "$Header:wait.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)wait.h 7.1 (Berkeley) 6/4/86 */ /* * This file holds definitions relevent to the wait system call. * Some of the options here are available only through the ``wait3'' * entry point; the old entry point with one argument has more fixed * semantics, never returning status of unstopped children, hanging until * a process terminates if any are outstanding, and never returns * detailed information about process resource utilization (). */ /* * Structure of the information in the first word returned by both * wait and wait3. If w_stopval==WSTOPPED, then the second structure * describes the information returned, else the first. See WUNTRACED below. */ union wait { int w_status; /* used in syscall */ /* * Terminated process status. */ struct { #ifdef vax unsigned short w_Termsig:7; /* termination signal */ unsigned short w_Coredump:1; /* core dump indicator */ unsigned short w_Retcode:8; /* exit code if w_termsig==0 */ #endif vax #if defined(ibm032) || defined(ibm370) unsigned short w_PAD16; unsigned w_Retcode:8; /* exit code if w_termsig==0 */ unsigned w_Coredump:1; /* core dump indicator */ unsigned w_Termsig:7; /* termination signal */ #endif /* defined(ibm032) || defined(ibm370) */ } w_T; /* * Stopped process status. Returned * only for traced children unless requested * with the WUNTRACED option bit. */ struct { #ifdef vax unsigned short w_Stopval:8; /* == W_STOPPED if stopped */ unsigned short w_Stopsig:8; /* signal that stopped us */ #endif vax #if defined(ibm032) || defined(ibm370) unsigned short w_PAD16; unsigned w_Stopsig:8; /* signal that stopped us */ unsigned w_Stopval:8; /* == W_STOPPED if stopped */ #endif /* defined(ibm032) || defined(ibm370) */ } w_S; }; #define w_termsig w_T.w_Termsig #define w_coredump w_T.w_Coredump #define w_retcode w_T.w_Retcode #define w_stopval w_S.w_Stopval #define w_stopsig w_S.w_Stopsig #define WSTOPPED 0177 /* value of s.stopval if process is stopped */ /* * Option bits for the second argument of wait3. WNOHANG causes the * wait to not hang if there are no stopped or terminated processes, rather * returning an error indication in this case (pid==0). WUNTRACED * indicates that the caller should receive status about untraced children * which stop due to signals. If children are stopped and a wait without * this option is done, it is as though they were still running... nothing * about them is returned. */ #define WNOHANG 1 /* dont hang in wait */ #define WUNTRACED 2 /* tell about stopped, untraced children */ #define WIFSTOPPED(x) ((x).w_stopval == WSTOPPED) #define WIFSIGNALED(x) ((x).w_stopval != WSTOPPED && (x).w_termsig != 0) #define WIFEXITED(x) ((x).w_stopval != WSTOPPED && (x).w_termsig == 0) #]dln &f#ʘ#ʜ#ʜP`p)p`! __.SYMDEF 597740193 0 10 100664 21686 ` #TTTTT'T/T8TATKTRTZTcTm^t^~^^^^^^^^^^^^^^^^^^^^ ^^^&z-z7z<zBzIzPzXzbzkzuzz~~~~~~~~~LLLLLL LLL,L>LQLdLxLLLLLLLL LL1L>LLLXLeLxLLLLL$.9BLVakvPPPPPPP%P1P9PCPMPXP^PeNlNvN{NNNNNNNNNNNNNN NNN(N2N=NENPN\NgNsN|NNNNNNNNNNNNNN NN(N7NBNMT\emv~ %4,464;4@4K4Y4f4p4|44444444444 4 4 4 '4 04 94 D4 Q4 \4 b4 k4 s4 }4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 &4 34 >4 J4 T4 _4 l4 z4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 !4 (4 14 ;4 H4 V4 \4 c4 k4 t4 |4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 %4 -4 64 B4 O4 Y4 d4 n4 y4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 *4 54 C4 O4 \4 h4 u4 4 4 4 4 4 4 4 4 7 7 7 7 7 7 7JJ JJJ!Lt(Lt2Lt7LtBLtKLtUN\NfNkNnNvN{NNNNNNNNNNNN NN(N/N5NCNLNYNcNlNsNNNNNNNNNNNNNNNNNNN)N7N@NJNRN[NeNpNxNNNNNNN{{{{|z|z|z|z |z|z|z+|z3|z=|zG|zS|z]|zl|z|:::::%/7BNWakv$.4=KTZcjq} &/7@JU^htttttttttt%t1t>tJtWtdtrt}tttVVV^^^^^^^^^^^^^$^2^8^@^H^Q^Z^d^p^}^^^^^^^^^^ ^^!^*^4^D^U^_^j^t^|^^^^ #0ASdv#1<K^kx&2=IWfr))))))))()4)A)M)Z)e)q))............&.8.K.^.r............,.<.M.X.d.v..........(.<.H.U.f.x......... .^^(^-^2^=^L^[^h^v^^^^^^^^^ ^ ^ 1^ A^ R^ e^ y^ ^ ^ ^ ^ ^ ^ ^ ^!^!^!(^!;^!M^!`^!s^!^!^!^!^!^!^!^"^"^"+^">^"R^"g^"z^"^"^"^"^"f"f"f"f"f"f#f#f#&f#:f#Mf#af#uf#f#f#f#f#f#f#f#f$ f$f$'f$:f$Nf$af$uf$f$f$f$f$f$f$f% f%f%.f%Bf%Wf%if%|f%f%f%f%f%f%f%f&&&#&(&7&G&Q&\&i&w&~&&&&&&&&&&&&&&''''' '''1'6'?'I'R'\ä'cä'mä'rä'zä'ä'ä'ä'j'j'j'j'j'j'ȶ'ȶ'ȶ'ȶ'ȶ'ȶ(f( f(f(f(f()f(6f(Df(Qf(_f(iѪ(pѪ(zѪ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ(Ѫ)Ѫ)Ѫ) Ѫ).Ѫ)=Ѫ)MѪ)\Ѫ)lѪ)~Ѫ)Ѫ)Ѫ)Ѫ)Ѫ)Ѫ)Ѫ)Ѫ* Ѫ*Ѫ*.Ѫ*@Ѫ*LѪ*YѪ*jѪ*|Ѫ*Ѫ*Ѫ*Ѫ*Ѫ*Ѫ*Ѫ*Ѫ*Ѫ*Ѫ*Ѫ+Ѫ+Ѫ+ Ѫ+3+:+D+I+Y+l+w+++++++++,,,(,8,I,Y,j,z,,,,,,,,---"-3-E-X-l-x--------...&.0.;.F.R.i...h.h.h.h.h.h.h.h.h/h/h/)h/;h/Ch/Lh/[h/fh/rh/|h/////////////////00000*020<0I0S0Y0]0a0f0l0s0|0000000000000001111"1+131<1E1M1V1^1f1p1x1111.oVncs.oVhc2.1n.oVO_printf_.printf_doprnt_.doprnt_sprintf_.sprintf__itoa_._itoa_bformat_.bformat.oVncs.oVhc2.1n.oVO_b_blknos_iob_errno_lseek_.lseek_getc_.getc_read_.read_write_.write_openfirst_opendev_open_.open__cleanup_close_.close_ioctl_.ioctl_._cleanup.oVncs.oVhc2.1n.oVO_exit_.exit__stop_._stop_exitaddr_setexit_.setexit__stopmsg__noputchar.oVncs.oVhc2.1n.oVO_end_addr_mem_hole_calloc_.calloc_malloc_.malloc.oVncs.oVhc2.1n.oVO_cpu_cpu_model_screen_buffer_lines_screen_ptr_screen_size_mono_screen_init_.mono_screen_init_mono_screen_clear_.mono_screen_clear_mono_screen_blank_.mono_screen_blank_mono_pos_cursor_.mono_pos_cursor_mono_screen_attr_.mono_screen_attr_mono_screen_putc_.mono_screen_putc_mono_screen_move_.mono_screen_move_rmove_block_.rmove_block_mono_probe_.mono_probe_mono_screen_print_.mono_screen_print_monoopen_.monoopen_monoclose_.monoclose.oVncs.oVhc2.1n.oVO_gets_.gets.oVncs.oVhc2.1n.oVO_b_blknos_iob_devsw_nullsys_devread_.devread_devwrite_.devwrite_devopen_.devopen_devclose_.devclose_devioctl_.devioctl_.nullsys_nullioctl_.nullioctl.oVncs.oVhc2.1n.oVO__parse_._parse.oVncs.oVhc2.1n.oVO__rtt_._rtt.oVncs.oVhc2.1n.oVO_debug_option_debug_state_regsave_save_vec_step_count_symtab_err_flag_iar_mask__prefirst_main_.main.oVncs.oVhc2.1n.oVO_getchar_timeout_getchar_char_debug_cpu_cpu_model_codes__init_kbd_getchar_.getchar__getchar_._getchar_esc_char_esc2_char_init_kbd_.init_kbd_get_kbd_.get_kbd_key_scan_.key_scan_nobell_kbd_reset_.kbd_reset_clear_kbd_.clear_kbd_kbd_cmd_.kbd_cmd_beep_.beep_kbd_status_.kbd_status_click_freq_click_time__reboot_._reboot_speaker_.speaker_cnhangup_.cnhangup_set_kbd_led_.set_kbd_led_get_keyboard_.get_keyboard_beep_freq_beep_time.oVncs_hfetch_.hfetch_bfetch_.bfetch_wfetch_.wfetch_hstore_.hstore_bstore_.bstore_wstore_.wstore.oVncs_ior_.ior_iow_.iow.oVncs.oVhc2.1n.oVO_cpu_cpu_model__init_._init_init_ioims_.init_ioims.oVncs.oVhc2.1n.oVO_cpu_cpu_model_debug_option_debug_state_save_vec_step_count_symtab_err_flag_break_addr_break_instn_break_counter_break_count_break_set_screen_buffer_screen_save_screen_size_iar_mask_watch_addr_watch_value_watch_count_go_step_save_mq_save_mcpc_option_mask_ioim1_gsr_cmds_regsave_serfmt_internal_HO_CL_CE_help_cmd_.help_cmd_get_cmd_.get_cmd_lastdebugcmd_usercmd_dump_cmd_.dump_cmd_expr_.expr_break_list_.break_list_break_cmd_.break_cmd_watch_list_.watch_list_watch_cmd_.watch_cmd_do_unasm_.do_unasm_not_stopped_.not_stopped_reflect_.reflect_MTSR_.MTSR_set_watch_.set_watch_MFSR_.MFSR_get_break_.get_break_step_.step_set_break_.set_break_restart_.restart_ascii_.ascii_dump_.dump_display_.display_break_clear_.break_clear_call_.call_badreg_.badreg_setreg_.setreg_printregs_.printregs_debug_print_.debug_print_ident_.ident_bad_addr_.bad_addr_prsym_.prsym_printser_.printser_sys_regs_.sys_regs_modify_.modify_define_.define_lookup_sym_.lookup_sym_hatprint_.hatprint_tlbprint_.tlbprint_debug_status_.debug_status_csr_print_.csr_print_show_instn_.show_instn_pause_.pause__expr_._expr_item_.item_lookup_.lookup_debug__debugger_._debugger_rm_break_.rm_break_sys_regnames_mcpc_print_.mcpc_print_instnfetch_.instnfetch_print_ecr_.print_ecr_trap_.trap_closest_.closest_ec_length_ec_ops_ec_cancel.oVncs.oVhc2.1n.oVO_unasm_.unasm__unasm_._unasm.oVncs_mtsr_.mtsr_mfsr_.mfsr.oVncs.oVhc2.1n.oVO_openfirst_startup_.startup.oVncs.oVhc2.1n.oVO_b_blknos_iob_cpu_cpu_model_adapters_hdinit_sizes_hd40m_sizes_hd70m_sizes_hd40r_sizes_hd70c_sizes_hd70r_sizes_hd20i_sizes_hd70e_sizes_hd114e_sizes_hd310e_sizes_hd310h_sizes_hdoff_hdst_hdtype_names_hd_type_hd_ecc_msgs_hderrblk_hddebug_hdbad_adap0ndisk_hdquiet_hdquietinit_hd_any_ucode_hdstrategy_.hdstrategy_cmd_str_.cmd_str_hdio_.hdio_hdwait_.hdwait_hdwr_.hdwr_hdbadblk_.hdbadblk_hdrd_.hdrd_check_error_.check_error_hdreset_.hdreset_hdopen_.hdopen_get_post_.get_post_hdinit_.hdinit_hdgetpart_.hdgetpart_adunload_.adunload_hdioctl_.hdioctl.oVncs_debugger_.debugger_trapper.oVncs.oVhc2.1n.oVO_debug_option_debug_state_regsave_step_count_symtab_err_flag_iar_mask_interrupts_save_vec__init_vectors_._init_vectors.oVncs.oVhc2.1n.oVO_atox_.atox.oVncs_int3_int4_setvec_.setvec.oVncs.oVhc2.1n.oVO_debug_option_debug_state_regsave_save_vec_step_count_symtab_err_flag_iar_mask_trflag_traceback_.traceback_h_fetch_.h_fetch_gettrace_.gettrace_w_fetch_.w_fetch_move_arg_.move_arg_scansym_.scansym_b_fetch_.b_fetch.oVncs.oVhc2.1n.oVO_b_blknos_iob_cpu_cpu_model_fdstatus_fdcylinder_fdaddrs_fdadapter_fd_sizes_fdst_fd_type_fd_last_type_fdcount_fdma_fddebug_fdint_fd_on_dma_bufptr_fdstrategy_.fdstrategy_fdmotoron_.fdmotoron_fdselect_.fdselect_fdseek_.fdseek_fdcmd_.fdcmd_interrupt_.interrupt_fdunload_results_.fdunload_results_fdopen_.fdopen_fdwait_.fdwait_fdresult_.fdresult_fdclose_.fdclose_fdmotoroff_.fdmotoroff_fdioctl_.fdioctl.oVncs.oVhc2.1n.oVO_cpu_cpu_model__display_._display.oVncs.oVhc2.1n.oVO_init_dma_dm_softc_dma_setup_.dma_setup_dma_init_.dma_init_ctl1_setup_.ctl1_setup_ctl2_setup_.ctl2_setup_copro_setup_.copro_setup_dma_start_.dma_start_dma_done_.dma_done.oVncs_lps_.lps.oVncs.oVhc2.1n.oVO_cpu_cpu_model_screen_lines_screen_sw_nodev_nulldev_NSCREEN_emulsw_NEMUL_screen_init_.screen_init_cons_edebug_aed_pr_.aed_pr_sichars_.sichars_put_status_.put_status_screen_probe_.screen_probe_switch_screen_.switch_screen_cons_info_print_screen_.print_screen_reset_screen_.reset_screen_screen_inited_debug_alt_putchar_putchar_.putchar_sa_screen_init_.sa_screen_init__putchar_._putchar_.nulldev_.nodev_save_screen_.save_screen_screen_restore_.screen_restore.oVncs.oVhc2.1n.oVO_aedbase_aed_data_aed_status_aed_tty_mcode_cpu_cpu_model_aed_probe_.aed_probe_aed_in_init_aed_screen_init_.aed_screen_init_aed_tty_command_.aed_tty_command_aed_screen_putc_.aed_screen_putc_aed_put_status_.aed_put_status_aedbuffer_aed_screen_print_.aed_screen_print_aedline_.aedline.oVncs.oVhc2.1n.oVO_cpu_cpu_model_monopagemode_print_log_screen_length_put_status_offset_status_line_screen_attr_lf_ibme_delay_ibme_open_.ibme_open_ibme_close_.ibme_close_ibme_putc_.ibme_putc_screen_index_.screen_index_screen_lf_.screen_lf_screen_tab_.screen_tab_screen_cr_.screen_cr_screen_bs_.screen_bs_screen_clear_.screen_clear_screen_out_.screen_out_ibme_dump_status_.ibme_dump_status_ibme_put_status_.ibme_put_status_ibme_ioctl_.ibme_ioctl.oVncs.oVhc2.1n.oVO_cpu_cpu_model_in_stde_stdoe_open_.stdoe_open_stdie_open_.stdie_open_stde_close_.stde_close_stde_putc_.stde_putc_stde_put_status_.stde_put_status.oVncs.oVhc2.1n.oVO_cpu_cpu_model_apa8fonthead_apa8fontBits_apa8fontBM_apa8_buffer_apa8_buf_pointer_apa8set_fontinfo_.apa8set_fontinfo_apa8init_fontblt_.apa8init_fontblt_apa8incr_dst_rect_.apa8incr_dst_rect_apa8font_load_.apa8font_load_apa8clear_.apa8clear_apa8_init_hdwr_.apa8_init_hdwr_apa8_probe_.apa8_probe_apa8_screen_init_.apa8_screen_init_APA8WRITE_CURSOR_.APA8WRITE_CURSOR_apa8write_char_.apa8write_char_CHAR_LOOP_.CHAR_LOOP_apa8_screen_putc_.apa8_screen_putc_APA8REMOVE_CURSOR_.APA8REMOVE_CURSOR_CHAR_BLANK_LOOP_.CHAR_BLANK_LOOP_apa8_pos_cursor_.apa8_pos_cursor_apa8clearline_.apa8clearline_apa8_screen_blank_.apa8_screen_blank_BLANK_LOOP_.BLANK_LOOP_apa8scroll_down_.apa8scroll_down_SCREEN_LOOP_.SCREEN_LOOP_apa8scroll_up_.apa8scroll_up_apa8_screen_move_.apa8_screen_move_apa8_screen_print_.apa8_screen_print_XOR_CURSOR_.XOR_CURSOR.oVncs.oVhc2.1n.oVO_cpu_cpu_model_apa16fonthead_apa16fontBits_apa16fontBM_apa16_buffer_apa16_buf_pointer_QUEinstr_QUEptr_apa16set_fontinfo_.apa16set_fontinfo_apa16init_que_.apa16init_que_apa16init_fontblt_.apa16init_fontblt_apa16incr_dst_rect_.apa16incr_dst_rect_apa16font_load_.apa16font_load_apa16clear_hidden_.apa16clear_hidden_apa16_probe_.apa16_probe_apa16init_reg_.apa16init_reg_apa16clear_screen_.apa16clear_screen_QUE_CLEAR_.QUE_CLEAR_EXECUTE_QUE_CMDS_.EXECUTE_QUE_CMDS_apa16bitmap_init_.apa16bitmap_init_apa16load_cursor_.apa16load_cursor_apa16_screen_init_.apa16_screen_init_apa16write_char_.apa16write_char_apa16underline_.apa16underline_apa16hi_intensity_.apa16hi_intensity_apa16_screen_putc_.apa16_screen_putc_apa16_pos_cursor_.apa16_pos_cursor_apa16_screen_blank_.apa16_screen_blank_apa16_screen_move_.apa16_screen_move_apa16_screen_print_.apa16_screen_print_WAIT_QUE_.WAIT_QUE.oVncs.oVhc2.1n.oVO_cpu_cpu_model_apa8c_buffer_apa8c_buf_pointer_apa8Cset_fontinfo_.apa8Cset_fontinfo_apa8Cinit_fontblt_.apa8Cinit_fontblt_apa8Cincr_dst_rect_.apa8Cincr_dst_rect_apa8Cfont_load_.apa8Cfont_load_apa8Cclear_.apa8Cclear_apa8C_set_colors_.apa8C_set_colors_apa8C_init_hdwr_.apa8C_init_hdwr_apa8C_probe_.apa8C_probe_apa8C_screen_init_.apa8C_screen_init_APA8CWRITE_CURSOR_.APA8CWRITE_CURSOR_apa8Cwrite_char_.apa8Cwrite_char_apa8C_screen_putc_.apa8C_screen_putc_APA8CREMOVE_CURSOR_.APA8CREMOVE_CURSOR_apa8C_pos_cursor_.apa8C_pos_cursor_apa8Cclearline_.apa8Cclearline_apa8C_screen_blank_.apa8C_screen_blank_apa8Cscroll_down_.apa8Cscroll_down_apa8Cscroll_up_.apa8Cscroll_up_apa8C_screen_move_.apa8C_screen_move_apa8C_screen_print_.apa8C_screen_print_APA8C_XOR_CURSOR_.APA8C_XOR_CURSOR.oVncs.oVhc2.1n.oVO_init_copyfont_.init_copyfont_copyfont_.copyfont_apa_fontblt_.apa_fontblt.oVncs.oVhc2.1n.oVO_cpu_cpu_model_delay_count_hard_delay_.hard_delay_delay_.delay.oVncs_callabs_.callabs_fnaddr_.fnaddr.oVncs.oVhc2.1n.oVO_aton_.aton.oVncs.oVhc2.1n.oVO_crc_gen_.crc_gen_combine_.combine.oVncs.oVhc2.1n.oVO_xclock_time_.time_adjustmonth_.adjustmonth.oVncs.oVhc2.1n.oVO_err_flag_vtop_.vtop.oVncs.oVhc2.1n.oVO_sys_errlist_perror_.perror.oVncs.oVhc2.1n.oVO_cpu_cpu_model_com_getchar_.com_getchar_com_putchar_.com_putchar_com_baud.oVncs.oVhc2.1n.oVO_cpu_cpu_model_screen_buffer_clines_scrn_ptr_ega_font8x14_ega_font8x8_ega_tmp_ega_reg_3star_ega_reg_7_ega_reg_3_ega_reg_c_ega_mode_init_ega_set_reg_.ega_set_reg_ega_load_font_.ega_load_font_ega_init_regs_.ega_init_regs_ega_screen_clear_.ega_screen_clear_ega_screen_blank_.ega_screen_blank_ega_pos_cursor_.ega_pos_cursor_ega_screen_attr_.ega_screen_attr_ega_screen_putc_.ega_screen_putc_ega_screen_move_.ega_screen_move_rmve_block_.rmve_block_ega_screen_init_.ega_screen_init_ega_read_sw_.ega_read_sw_ega_probe_.ega_probe_ega_paint_color_.ega_paint_color_egaopen_.egaopen_egaclose_.egaclose_ega_fgbg_.ega_fgbg_ega_screen_print_.ega_screen_print.oVncs.oVhc2.1n.oVO_mpelcursorflag_mpel_ucode_loaded_mpcurpars_mpel_screen_buffer_mpel_buf_pointer_mpel_probe_.mpel_probe_mpelinit_reg_.mpelinit_reg_mpel_clear_all_.mpel_clear_all_wfifo_.wfifo_mpel_screen_init_.mpel_screen_init_mpelwrite_char_.mpelwrite_char_mpelclear_char_.mpelclear_char_mpel_fillcolor_.mpel_fillcolor_mpel_fillrect_.mpel_fillrect_mpelendhi_.mpelendhi_mpelbeginhi_.mpelbeginhi_mpel_screen_putc_.mpel_screen_putc_mpelxor_cursor_.mpelxor_cursor_mpel_pos_cursor_.mpel_pos_cursor_mpel_screen_blank_.mpel_screen_blank_mpelscroll_.mpelscroll_mpelscroll_down_.mpelscroll_down_mpelscroll_up_.mpelscroll_up_mpel_screen_move_.mpel_screen_move_mpel_screen_print_.mpel_screen_print_putfifo_.putfifo_mpelicmd_.mpelicmd_mpelicmd2_.mpelicmd2_mpel_load_color_table_.mpel_load_color_table_mpel_enter_FIFO_.mpel_enter_FIFO.oVncs.oVhc2.1n.oVO_cpu_cpu_model_lpstatus_lp_screen_blank_.lp_screen_blank_lp_screen_move_.lp_screen_move_lp_screen_print_.lp_screen_print_lp_put_.lp_put_lp_hard_delay_lp_status_.lp_status_lp_reset_.lp_reset.oVncs.oVhc2.1n.oVO_yes_.yes_prompt_.prompt_getunit_.getunit_cmdcmp_.cmdcmp.oVncs.oVhc2.1n.oVO_err_.err.oVncs.oVhc2.1n.oVO_int3table_int4table_hostid_hostname_hostnamelen_boottime_time_tz_hz_phz_tick_lbolt_avenrun_avenrun_scale_maxuprc_hand_nblkdev_nchrdev_nswdev_mpid_runin_runout_runrun_kmapwnt_curpri_maxmem_physmem_endmem_holestart_holelength_nswap_updlock_rablock_rasize_rootdev_dumpdev_dumplo_swapdev_argdev_noproc_panicstr_wantin_boothowto_selwait_dkfindpart_.dkfindpartprintf.o 597738944 0 10 100664 2471 ` phn819A:Q7!819A:Q1 @),A n9A:Q7!o 819A:Q$b0cd ,A an@f g0h@@a+ % b8 10153 126u5s30 1+2v6a@  "P//  @* tl a1lApb`ɑ@> ɑ@ɑ@ߘ16p0123456789ABCDEF0123456789abcdef(null)%N$Header:printf.c 12.0$ `f v  > h     L @@@ @@H PL@P@TPX@\@`@d@ !)2:pCL6V_ipNx.oVncs.oVhc2.1n.oVO_rcsid_printf_.printf_doprnt_.doprnt_sprintf_.sprintf_putchar_.putchar__atoi_._atoi__itoa_._itoa_strlen_.strlen_bformat_.bformatuldiv$$ sys.o 597738964 0 10 100664 7107 ` (\ ١nl m0 =!bc -!k =!bc 0- + k=!b !Xb0c !@ + !D  ! ȭݭbЍk =!Xb7c:-4@pqS8A01R( ```bɡ<ߨ!فnj k0 @  .8 ɁD"|<  .8 ɁD@ N@ / @ / ```l@ / @ @ / @ ```@bc@i  !c9< bɁDj@ .(c8bɁDbɁD߈!anf g0p . aL| rb}͢XbaL|&!Tci y y .cp aLb ͢. cp aL fb"lp ^!Db ` k ݶ!b`! Ԕ .,6ȍ aL06!Tbi bpc6!T2b;p.@cp aLbaL` k h!ّnl m0 @  ɑH=0@ . ɑH . ɑH0j 01mbЍ.4i p   9b8 p)ɑHbЍ4i bɑHߘ!١nj qp* @  ɡ

P@@D@ (!(+38,?GNU^h4nu}rxNPDLT# +4>HS^g`m th~X`.oVncs.oVhc2.1n.oVO_rcsid_devsw_b_blknos_iob_openi_.openildiv$$lmul$$_devread_.devread_find_.find_printf_.printf_dlook_.dlook_sbmap_.sbmap_errno_strlen_.strlen_readdir_.readdir_strcmp_.strcmp_lseek_.lseek_getc_.getc_getchar_.getchar_read_.read_write_.write_putchar_.putchar_devwrite_.devwrite_openfirst_opendev_open_.open__cleanup_setexit_.setexit__stop_._stop_atol_.atol_devopen_.devopen_close_.close_devclose_.devclose_ioctl_.ioctl_devioctl_.devioctl_._cleanup sys2.o 597738968 0 10 100664 985 ` \,8Xn.., n.nl .p@Dbc ܔ  d܍4 Exit called*0F%s %s $Header:sys2.c 12.0$Vpnpxp@@@@ @$@(@4P8P<P@P !*07>FFM*U_h0r|.oVncs.oVhc2.1n.oVO_rcsid_exit_rc_exit_.exit__stop_._stop_dummy_.dummy_exitaddr_setexit_.setexit__stopmsg__noputchar_printf_.printf_clear_kbd_.clear_kbd_getchar_.getchar__init_kbd_start_.start sys3.o 597738972 0 10 100664 539 ` ( n` b0c'@Dp$  "e/P P 030 be/0Tc 5 15 ```,! nԤ1, z$Header:sys3.c 12.0$p* pDp@@@ @ !+5=FMRZzc.oVncs.oVhc2.1n.oVO_rcsid_end_addr_mem_hole_calloc_.calloclmul$$_end_malloc_.malloc monotty.o 597738981 0 10 100664 3068 `  Xn@ N0`0bBD1 , nO0!0@PN 0 0  7 0p 1 < 8b0nd0>#r@ b@ 1.q.2N,! ّni 2b>lAjRb^@"lklʠp  .4b" `   * 0*1*2*3*Ȫ```  *```p  .4ɑ@ɑ@ߘQّni j@`bͲ42b>8p  . b24bd4 b24bd8p  .ɑ@ɑ@ߘ1$4BA $p40A```ne d0`@b"`Pc>\ Ӡ " .01cPeЍ03`Р "4! n.ԍ, ّni q b $=`bq b &bc<@,  !q b & -*q b $ Ť,> !ɑ@ߘ!鏤 鏤 ibm3101 N(MONO_SCREEN_BLANK leave mono_screen_blank MONO_SCREEN_MOVE leave mono_screen_move $hmono_pos_cursor (%d, %d) (%d):(%x)x * $Header:monotty.c 12.0$ p4pFpFp$>pv(*(((,-p@|@@@@@@@@@P@P@@@H@L#PP@`'Pd)Ph+Pl@p@  !,7<GV]ivN( 1CV^fo$hT\*#,8EQ^hxr}|.oVncs.oVhc2.1n.oVO_rcsid_screen_sw_term_type_cpu_cpu_model_screen_buffer_lines_screen_ptr_screen_size_mono_screen_init_.mono_screen_init_mono_screen_clear_.mono_screen_clear_mono_screen_blank_.mono_screen_blank_mono_pos_cursor_.mono_pos_cursor_mono_screen_attr_.mono_screen_attr_mono_screen_putc_.mono_screen_putc_edebug_aed_pr_.aed_pr_mono_screen_move_.mono_screen_move_bcopy_.bcopy_rmove_block_.rmove_block_mono_probe_.mono_probe_screen_probe_.screen_probe_mono_screen_print_.mono_screen_print_lp_put_.lp_put_hard_delay_.hard_delay_put_status_.put_status_lpstatus_monoopen_.monoopen_monoclose_.monoclosegets.o 597738987 0 10 100664 760 ` 0@0nl m@ #  D Ѥ b4 (ѳىmm*Ϥ 4! 03p#0 "P//fdbx^dZX^TPNLJHD@><:86420.,X  $Header:gets.c 12.0$F P h p`@@P P P P ! '.7AJTZamt|.oVncs.oVhc2.1n.oVO_rcsid_gets_.gets_getchar_.getchar_putchar_.putchar_exit_.exit__noputchar_delay_.delayconf.o 597738993 0 10 100664 1238 ` Px\nm p 0 X-` bBbФ1pp 0 0 nm p 0 X-` bBbФ2pp 0 0 nm X-` b2bp  0 nX2`0c3p, nXR`Pep 01 鏤*$Header:conf.c 12.0$L@Ffdhd@P P$ P( P,@0 P4 P8@<PT@X@\@`@d@h@l@ P!$,1h8DLU^jr{L@F .oVncs.oVhc2.1n.oVO_rcsid_b_blknos_iob_devsw_fdstrategy_fdopen_fdclose_fdioctl_hdstrategy_hdopen_nullsys_hdioctl_devread_.devread_devwrite_.devwrite_devopen_.devopen_devclose_.devclose_devioctl_.devioctl_.nullsys_nullioctl_.nullioctlparse.o 597738997 0 10 100664 470 `  HԤ@R @RY !@R ```@RY @RPceReT05@RP C@R ?@RY <@R" @R'@≀! @RP !@R\ AR^!@RS!1@R^  !@RS!1@RP@RP @R @RY@R @RY !@R ```@RY 1@RPb"b$0b1$Header:parse.c 12.0$@@  !)2.oVncs.oVhc2.1n.oVO_rcsid__parse_._parsertt.o 597739001 0 10 100664 311 `  8`n. Dgoing into hard loop $Header:rtt.c 12.0$@@ P  !$'.6?.oVncs.oVhc2.1n.oVO_rcsid__rtt_._rtt_printf_.printf premain.o 597739006 0 10 100664 1218 ` t`Han` L.0P؀ȈؐșذȻ(m~4` b)!) ```p  0 .T.,TbXbcdЍ\d @p1@* 101cЍ`Ǥ`b@cЍdbpTahTTEnter arguments or debug (*) commands S/A %% main program returned $Header:premain.c 12.0$(p0p: pr~@@PPTPXP\P`PdPhP !/<EXO[cmw .oVncs.oVhc2.1n.oVO_rcsid_debug_option_debug_state_regsave_save_vec_step_count_symtab_err_flag_iar_mask__prefirst_main_.main__init_vectors_._init_vectors_mtsr_.mtsr_edata_end_printf_.printf_gets_.gets__parse_._parse_dump_cmd_.dump_cmd__main_._mainkeyboard.o 597739026 0 10 100664 7179 `  @xh(nЍm bЍb0 ّnu͔   5 .ɑD5 bɑDKS(jذȻp;b,i p bh0l 0 " .cd4   5 5 bɑDjذȻߘفn  ɁHؠȪp . "34( ȍ, (0Є@ w4p .1 08c  . p .L3*0@ E4p .X3 ;0q8c 0 .dp .4*q0@ 4p .5 0@8c 0 .p .Ԥ6*@0mb0Ѝl  `<*(0*"0 208 ="@ ) >"@Ҫ ?"@ "00@. 08 08p .DbɁH߈١nj k0p .PU@ @03 C```  0 ɡ</̤C```@ ݤC``` "@p .cd d0ڔ7 2 P=U@ @)D@0(3@% "000?3#(0>3# 0 "t 4 4 ```4bɡ<@03ߨ!n Є@ "```4 ١nk s 0b!2r,+bɡ<2t, 4c Y   3 .3 3  ```   9 ,EؠȪ) b> ޔ !$s  - ؠȪp sL.ceЍd q >.(bɡ<. 3 ؠƠ̈̄3 ؠȪ3 ؠȪ 3 ؠȪ ؠȪp !/0*,ؠȪ4 ؠȪ  0ؠȪx y 0ؠȪi 4ؠȪ]q1  . >(0ؠȪC W   x U e 9aؠȪ& Yb _ bq v ؠȪؠȪxؠȪؠȪؠȪؠȪߨnq.p  >> <@p 1s  >> D@s  > >( G@s  >0>8 K@0 n"'   0(  0( mbФ0p .(!0(4 n "@B   ,1 "1``` "@"  ,4403t  4 , n., n "Д .Ќ`@  ȍ@  0 ٱnl m0ذȻp .cdЍ0 "@ 1@ ```d p . " bcЍp ɱ<߸!n>.ԍ , ٱnk l0ɱ8X ɱ8p .cdTb(((0drb()0dib("0d`p .Tɱ8ɱ8߸!np .( :0'0h a0'(h *0' h \p .(00 nԍF@,  `~<>qQ1!zZsSaAwW2@cCxXdDeE4$3# vVfFtTrR5%nNbBhHgGyY6^mMjJuU7&8*,/?lL;:pP-_'"[{=+ ]}\|11447700..22556688// 33++99**--l6got character %x from scan code %x <&init init_kbd return %dkeyboard self test failed: IID/data = %x return %dreturn %dkeyboard failed to clear: IID/data = %x return %dreturn %dkeyboard failed to reset: IID/data = %x return %dSecure bit was detected. Keyboard disabled. kbd_init normal return ,Htwaiting for keyboard got %x (IID=%x) from keyboard Lcode = %x state=%x ==>%x xLDEBUG ALT CAPS CTRL X keyboard pipeline won't empty kbd_reset called kbd_cmd(%x,%d) kbd_cmd took %d iterations for busy to clear  speaker(%d,%d) entered speaker done reboot in progress...reboot failed $Header:keyboard.c 12.0$B`ppp#pLp\#h`(###,#L#`####P2d##p#*`l#2`h(`&pxp#pp p"p0pVplp~?p?pApp,pZpfprp~ppppC` C C @C ` l` # p # ( 0p D# ~# p $# n# p # ( #@@@ P,@T@X@\@`"Ph@@'P@@@@1P@@@@ @$@(@,>P0@P4@tBPx@|@@@@@ @8@d@  @!2@GNYdov D HTXl6dh$&/8B<LW_hp{ ,L  H t 0$408AxJ TL] gq | X  @D.oVncs.oVhc2.1n.oVO_rcsid_getchar_timeout_getchar_char_debugL00BSS_last_char_key_count_last_scan_state_make_break_kbd_leds_state_cpu_cpu_model_screen_sw_codes__init_kbd_getchar_.getchar__getchar_._getchar_putchar_.putchar_next_char_esc_char_esc2_char_init_kbd_.init_kbd_get_kbd_.get_kbd_key_scan_.key_scan_printf_.printf_nobell_kbd_reset_.kbd_reset_delay_.delay_clear_kbd_.clear_kbd_kbd_not_empty_.kbd_not_empty_kbd_cmd_.kbd_cmd_beep_.beep_crc_gen_.crc_gen_kbd_status_.kbd_status_click_freq_click_time_shift_lock_down__reboot_._reboot_speaker_.speaker_cnhangup_.cnhangup_switch_screen_.switch_screen_print_screen_.print_screen_put_status_.put_status_set_kbd_led_.set_kbd_led_get_keyboard_.get_keyboard_beep_freq_beep_time hfetch.o 597739028 0 10 100664 769 ` 8 @0000>0000b菩,/  "  """ "  (""222$Header:hfetch.s 12.0$@\ p@@@@@ ' 0N98@KPXairzrcsid.oVncsPROG_CHKsave_hfetch_.hfetchprog_chkreturn_cpu_model_cpu_bfetch_.bfetch_wfetch_.wfetch_hstore_.hstore_bstore_.bstore_wstore_.wstore ior.o 597739030 0 10 100664 219 ` (H " 2$Header:ior.s 12.0$@@ ( ! '.oVncsrcsid_ior_.ior_iow_.iow init.o 597739035 0 10 100664 779 ` 8D(0n @" `"PU@D "cD```u 50 "  042 ```  "! " "@ w"@, nm "0 "2 "  "000 daPR X$Header:init.c 12.0$p  @@@ @$ P( P 8!&1<8@XLY^dio.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model__init_._init_init_ioims_.init_ioims_iow_.iow_ior_.ior debug.o 597739091 0 10 100664 30023 ` 2| ٱnk Д.\q<0 'rL@ .@  NHNL\ P  .P\q<0  .X\ɱ8ɱ8߸ٱnk m q q\.aPp-  'aPCp-  aP 03M$- čȤ- ` . Д p  .! ݞݟp  .  "003*؍rp p- Ȑ c aPM$p,cЍ0,aPM$p,cdp0,aPM$p,cd 0,aPM$pLbcЍ0,aP ݞݞaP "M$aP.aP܍ "M$cdpeaP "  aP *r,0m q,/M$e P _ >aPcЍ TaP aP "aPؠȪM$ 0 pZc]bPdp c aPM$p,cЍp 0 aPbp*f bc`d`p:10: aPݞȔ q,:nm 03M$- tbЍ aPؠȪM$p* (aP.Hp=p 0 aPPUM$ NPbPcЍu .XaPؠȪM$r,.\p:.daP03M$.hNčaP $aP :r,0m q,ؠȪM$0*e P _  aPcЍ p* r̴-Yp:.paP (aPM$p,cФA,0,aPM$p,cФD,0,aPM$p,cФBq,0,aPs,0]l .ذȻM$p;dep+cdЍ0aP "M$ 4aPݞ "M$/aP@D03 "8q3dpHaPk "M$0,p<d  "0pR.NȍaP.M$p<`=@0qeЍюp,0 cpLaP .0aP "M$cdpep aPM$p,cЍP0,aP "M$cЍTaPђюĔذȻM$ȎHp;Ȟ\dtB`xXaP7uؠȪM$p:Ⱦ,< "h!nm . bЍ bЍ bЍ0d0 nД 4+,.X$-XbЍ >.xbФ1@00 ٱnk Ѝl :8 5    ^,@b "Ѵ T $ Бbl Ȥ*+ɱ8߸!ani j0k@Ф`b   "Б .\ " $mf. c\gbc  baL.\ Ȏ$.\`bpq   .a . \b\ " $mbaLh1anj k0l@Д gb0N hb` udbaL~$Ȏ,ؐșb0f . c`4.c`4.  0.c`4b`0dp hb4p Ѵ %Ԕ$`᠒baLh1ّnj0k@lP ؐșp  .$ % 0 bcdeɑ@ߘAqnxh i0j@k b0d <, :0 ($m  b$m ($m b$  (bq@m +bc . b$c . bc .bЍ(@^D>$bЍ, <@! * 7 1""*pw0b0Pm pbcЍXbcЍ0bcЍ4ኒFbq@x1"n> 2 m > 2b0 n7!819A:Q7!81! ,A ّnk l0m p+@ )p 0 <  >p+@ cp 0 bci -rcىbcЌm bcm bЍ~bЍ,m bЍm bЍm 甒 픔 [ىىىى. "p|0 ! & * + / < > ^ | bɑ@ߘ!anj k0p\mP@0A@ =p 0 2aP@ (&p 0 g p*@) .| "p0p 0 bpaP@ t@ +o@ -j@ * e@ / a@ ! ]@ ) Y@ ^ U@ & Q@ | M@ < I@ > E@-bA"" @-bA""D@- -@-+ )@-- %@-* !@-/ @-! @-) @-^ @-& @-| @-< @->@M@ 0A x ,g @ 0A d ,g @ _@DbP0 U sg @ .pwM$h@ 'cA|@ + @ - @,""  bFg fN$bc`  g p 7pw@Dbc`  g p p % @,""D  bg "p0.c|0bpaPh!anpi j0b .cXJn~؀Ȉ !)!!cbdЍk bФ: Ż. cЍXb0d` bpXp >$ baDh!$١nj k0l@.cd8:b$7bЍH%*e*a .c8b0_0jг ɡ<ߨ1ّnl p .0  ȍ8 "DbȮ(kbbH ɑ@bcd0L ɑ@bc@ɑ@Ȯ(kߘ@PٱnȤ .Kcb3tc `bBbЍ . .$>4  >4.(ɱ8߸nԤ+H2 .Nh,, n. "p0, n 03 p2RBSRbܤbЍ0! ّni ذȻp+j p  .cp+  ɑ@ݟR R " R  R " p*R:P p  .p 0 ,H2,p  .0 "003*p+cGɑ@ߘn03Ԕ0 =. #,/ #,- b0`,* ",+ ",, n`0@D@ =. $,/ $,- b@,* ,+ ,cL,! n0"b02!١nj kTl D.x,< .X^.Xɡ<. XHD.0X9.@X..DX#.TXp .`X .t:4X.cXb0@M+c .NX+c " !".Дr  p    .NXnHp=1 N.X>.X  "! ")` 2bL>%`m]|p% NbP0]|=8pEbX> ɡ<ߨٱn;Ȥ`b pBbc  ..>  >.ɱ8߸ّnؐȮذbd `@ ^<^@`@ DH0@ LP1?2 TX3 \`4bcЍ  )c .dN)c .l)c .x)l .NceЍ  )c bͲ.CLe)c b. N$N(S\0b$ccЌc .,ɑTߘn "hc  ^ .Nl,, ٱnk l0.h`Ъcȴ (ɱ8Ѵ  .0Tɱ8  b ɱ8`ЪcݳȪd$(hhɱ8߸!nl >Դ`ЪbT 4Ѵ  .004  b\ \`4bTp Ԑ4 nPN T`PcbP菐QT n 菤@@ `@c3| #A@  n @@`@b2`@b"x 2A@ ٱn>.>`m=b-t1Ȑ ɱ8߸nm `  .cЍ0^Q^%` dTP` c!% 0 qnh ` # "  "! " "" +/ "pƐ֙p  .c̔> "p<?0NpA b@"b.2p3"02 TAp*;NA b@"c.#@+# ! #𠤒4Ap," " p}*\k 0.dp-*c0}b0,\ 2,t tpb0*\/+\/ 75 2p ;͎ *`b@ ! 𠤑p  .̍Nݞt0! " 030 @D@p  p0.dp-艀0bH p .(̍Db"Hp-0qH934.(xٱnm k0 0 l@ @ bcФH r,ɱ8̔ @  0 "p0.cЍbɱ8߸1١nj l0k@ "@ bcHx .rLcel2ɡ<̔ @  *M(bcФHH , cФHH bcHL2rLbcl.,l ɡ<ߨ1١nk l0ؠȪpZP ɡ<@D  #r "lm pZbP @ r r lm , @bɡ.褠>$`k+ 0dh+ p2bЍ萡 ɡ<ߨn " .,.(, @DpT%$#cp RS0$n.x, n   ,! anXl m0 "i   "bl 6!9!$i .X.@Xєa\v!¤ؠذb` "20`b72 `g v!ŽЈ}bpTh `Ő`Šָ'f 'c01234a5!.tcdeX'i ' h ' e .cdX`bw  .cX  .X.cXwv!  ba\h!*anPg h0 .padb` "20`b92   ؐșp nH bj @bk `b`:3m;`ŻRd @D("01231c>456!7A8Qb`cpde󌤠`by  .c  ..cЍ󌪻.c󌒁q p {adh!,ٱnk l0 l.c򨔰I,m @,` .=2c>3dРCDBdNDeРVURe^UoР01 ,` .,c 030 .4>H.Dɱ@ɱ@߸!EEEEEFF F<FDFlFtFFFFFF G G G G,G4 GHGP GdGlGGGGGGHHH4H<H\H`HHHHHHHHI$I,IDILIhIpIIIIIIIIJ JJ !J@JH"JhJp#JJ$JJ%JJ&JJ'KK(K8K<)K`Kl*KK+KK,LL-LPLXDATAPROTECTIONTLB-SPECIFICATIONPAGE-FAULTMULTIPLEEXTERNAL-DEVICEIPT-SPECIFICATIONROS-WRITE TLB-RELOAD CORRECTABLE-ECC STORAGE LOADI/O-ADDRESSSTORAGE-ADDRESSRSC-NAKDNRSC-NAKDASEGMENT-VIOLATIONiarr0r1r2r3 r4r5r6r7r8 r9$r10(r11,r120r134r148r15 %08x (%d) was %x %x = 0x%x SER=%b SCR%d didn't set move %x (%d bytes) to %x name required options=%b mask=%x DEBUG_DEBUGSHOW_REGSSCAN_SYMCS_PRINTLPS_2-TRACE_TABLEfilling %x ... %x (%d bytes) with %x no usercmd available inb(%x / %x) --> 0x%x (%d) inh(%x / %x) --> 0x%x (%d) unknown command 8;pB AC$A;7CTC=C =B=TB=0:::B0; C=?:x;=C?` ;x0bad operator;) expected %s ?? B%08x: %s `ident: %x ... %x %x: HELP: recursive entry to debugger! DEBUG> returnB8 LLLLLLLLLLLLLLLLSCR %02d-%02d %08x %-4s %s %s  MCPC=%bDATA-ADDRINSTN-ADDRILL-OPCDPRIV-OPCDTRAPUNKNOWNKNOWN I/O RSC-TO DATA-TO INSTN-TOPARITYRSC-CHKbad address!  ==> iar=%8x ics=%4x cs=%4x lstepping %d skipping BPT instruction level 0 interrupt requested C*in debugger break pointprogram checkmachine checkSVCdebugger callpost morteminstruction steplevel %d intr.: IAR = %x ICS=%b CHKSTOP-MASK INTR-MASK XLATE USER STG-PROT PERIECS=%b CS=%x TBOVRESERVEDC0GTEQLTPZ %d remaining steps%s %s watch point changed: %x %x ==> %x <Ed hR%2d %08x %s %s  @ SR%02d = %8x (P=%s, C=%s, I=%s, SID=%03x S=%s K=%s) 1010101010SER=%b SEAR=%x TRAR=%x TCR=%b HAT/IPT=%x LK-PAGE RESERVED INTR-TLB-RELOAD INTR-CECC TLIPTRAS-DIAGISPERV=RRAM=%x (start=%x, size=%x) ROS=%x (PARITY=%s start=%x, size=%x) 10HAT/IPT addr=%x "CSR=%b%s  PIO-PENDING PLANAR-BUSY CH-RESET-CAPTURED DMA-EXECPTION I/O-CHECKINV-OPERATIONPROT-VIOLATIONPIO-DMADMA-ERR-CH8DMA-ERR-CH7DMA-ERR-CH6DMA-ERR-CH5DMA-ERR-CH4DMA-ERR-CH3DMA-ERR-CH2DMA-ERR-CH0PIO-ERRSYSTEM-ATTNSOFT-RESETPOWERINTR-PENDING EXCEPTION"only %d breakpoints allowed #only %d watchpoints allowed $H$$%%d break points ... %6d %|none at %x %trap %x ...step past breakpoint Resetting Keyboard... ;)*%s not found )%s was %x, now %x %s defined as %x no room for more symbols *|+%.8s %08x +%s+0x%x B,0,%d watch points ... %08x now %08x -Can't do that in POST MORTEM mode! not in DEBUG mode -Z-bad register number --page addrtag key KU SID pn hat ipt w tid lock vaddr # (hex) 01 SID ptr ptr bits %04x %08x %x %c%c %03x %05x %04x %04x WWWR-RWR%02x %02x %04x %x?%07x /entry addrtag sid pn RPN v key w tid lock vaddr raddr %04x %08x %03x %05x %05x %01x %02x %c%c %01x %02x %04x WWWR-RWR%x?%07x %06x LLLLLMMMM MMMMM 1exception stack(%d): %s%s%s r%d,%x [%x] ioim1_gsr=%x %s $Header:debug.c 12.0$ascii[addr] display in asciibreak[addr] [count] set/print break pointsdisplayaddr [count] display memorydefinesymbol addr create symbol table entrydumpaddr [count incr] dump memoryversion print out current version numbervector reset interrupt vectorshelp[cmd|*] print help text?/halfaddr modify halfword/byteaddr modify byte/wordaddr modify wordcalladdr [args] call C routineclear[addr] clear given/all break/watch pointsident[addr count flag] print identificationioraddr [count] do an ior at addriowaddr value do an iow at addrunasmaddr [count] disassemble codereg[reg] [value] print/change registerreflect reflect to previous vectorscr[reg] [value] print/change SCRgo restart after stoppedstep[[addr] [count]] step count instructionssymbol[addr] symbol >= addrsymtabaddr provide symbol tablemovesource count target - move memoryser[value] print MMU SER$ display statusshow[addr] display/set save screen=addr [fmt=%x] printf fmt value*watch[addr] set/print watch pointslookupsymbol lookup symbol in symtabtrace[iar sp] trace stackcls clear screenoptionvalue [count] set option flagsfill[addr] [count] [value] fill memoryusercmd? user commandhatiptpage [count] display hat/ipt entriestlbentry [count] display tlb entriespcdisplayaddr [count] display pc memoryinbport [count] read count byte(s) from the PC's I/O spaceoutbport value write a byte to the PC's I/O spaceinhwport [count] read count half word(s) [16 bits] from the PC's I/O spaceouthwport value write a half word [16 bits] to the PC's I/O spaceHKICOUSCOUTSECRMQMCPCIRBIARICSCSchtsllmiorlaststmiow?-(J(d(~(,.T p``8`R`(p`:pL(j p|(pP```0`l`(`p``Rpl`xipjp`n(p(:```hr p(`(`((`,(f`p`(```T``(n~``pppp ( "` > p |` ` p p ( ` ( 8 P2p ^( r` ` ` ` ( ( 2` d` |( ( ` ( ` hp tp ` p p ( . ^r t( p"2jr(p(r(((@T(^(hprp( (B(\(pBVrjr|rr(r(($@pP pvrr<(F p ( pp<^`v p`p` p0pDT pf(r(pr(((x((p,(Ppn(x(4(T(j((( p(p@(LpTzpp( p( .PB(Xp`Pprrpp8pJd|ppP2(< pH(^(h pp|( p( p( p( p p((( r2(>rJpr p p(((p F( ( ( ( p!l(!p!(!p!(!p!(!p!(" p",("8p"l("z""(""(#:(#Tr#($r%*(%L(%(&p&p&2p&Bp&Lp&fp&z(& p&p'p'p'(p'2'B('XP'r'P''p''p(*((Pp(\p(hp(n((((((p(p)p)p)p)R.) p)().)(*`**.*@*T(*b(* p**p*+(,+6 p+L.+`(+jp+(+(,(,(,dp,lp,tp,z,(,(-p-,(-B(-\p-np-(--r. p.,p.P.^(.j(.p..r/r/.(/:/H/Vr/h(/(/(/(/(0p0T p0pp0p0p0(1(16(1F(1V(1(1r12(22((2<p2J(2Z(@@@D@L@P@X@\@d@h@p@t@|@@@@@@@@@@@@@@@@@@@@@@@ @@@@$@(@0@4@<@@@H@L@T@X@`@d@l@p@x@|@@@@@@@@@@@@@@@@@@@@@@@ @@@ @$@,@0@8@<@D@H@P@T@(@,@0@4@'P@+P-P@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|OP@@@@@@@_P@@@@@mPoPqP@@@@@}PPPP@@PP@@@ @@@@ P$@(P,P0@4@\@P@P@PPPP@PP@@@ @ @ ,P 0P 4@ 8@ PP TP X@ x@ @ P @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ (@ @ @ @ (@ ,@ 0@ 4@ 8@ |P @ @ @ @$@<@`@@@@@@@PP @@$@lPpPt@xP|@@@@@@@@4@8@@@@@@@@@@@@@@@@@ 2|!&1?LXVbjt2223 3$3(3,303p33$-8EP3V5_5g6q7u7y7}78M$M$88 ;pB +%8AC"OC$[,hAs#;CT-C-Z=*C ,0=B$H =Tl$B/$;=0DN:U ]:cj:sN}B0%|; C-=? h:x  ;`#(.39AJ=T_Cf+n?`x JBT$_gp<8~<C-Ed1? B@% M(/5<EOBX*|bkuE,E<E\.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_debug_option_debug_state_save_vec_step_count_symtab_err_flag_break_addr_break_instn_break_counter_break_count_break_set_screen_buffer_screen_save_screen_size_screen_saved_iar_mask_watch_addr_watch_value_watch_count_go_step_save_mq_save_mcpc_option_mask_ioim1_gsr_cmds_regsave_serfmt_internal_HO_CL_CE_help_cmd_.help_cmd_printf_.printf_get_cmd_.get_cmd_strlen_.strlen_strncmp_.strncmpL00BSS_dot_lastdebugcmd_usercmd_dump_cmd_.dump_cmd_expr_.expr_break_list_.break_list_break_cmd_.break_cmd_watch_list_.watch_list_watch_cmd_.watch_cmd_do_unasm_.do_unasm_not_stopped_.not_stopped_reflect_.reflect_MTSR_.MTSR_set_watch_.set_watch_MFSR_.MFSR_get_break_.get_break_step_.step_mtsr_.mtsr_set_break_.set_break_restart_.restart_ascii_.ascii_dump_.dump_display_.display_break_clear_.break_clear_call_.call_atoi_.atoi_badreg_.badreg_setreg_.setreg_printregs_.printregs_debug_print_.debug_print_etext_edata_ident_.ident_iow_.iow_ior_.ior_hfetch_.hfetch_bad_addr_.bad_addr_prsym_.prsym_printser_.printser_sys_regs_.sys_regs_modify_.modify_bcopy_.bcopy__init_vectors_._init_vectors_save_screen_.save_screen_getchar_.getchar_define_.define_lookup_sym_.lookup_sym_traceback_.traceback_bstore_.bstore_hatprint_.hatprint_tlbprint_.tlbprint_debug_status_.debug_status_csr_print_.csr_print_show_instn_.show_instn_mfsr_.mfsr_bfetch_.bfetch_putchar_.putchar_screen_lines_pause_.pause_wfetch_.wfetch_callabs_.callabs_gets_.gets_strcmp_.strcmp__ctype__hstore_.hstore_wstore_.wstore_put_status_.put_status__getchar_._getchar__expr_._expr_item_.itemlmul$$ldiv$$_vtop_.vtop_atox_.atox_lookup_.lookup_debug__unasm_._unasm_index_.index__debugger_._debugger_rm_break_.rm_break__parse_._parse_sys_regnames_mcpc_print_.mcpc_print_instnfetch_.instnfetch_lps_.lps_print_ecr_.print_ecr_memsizes_trap_.trap_screen_restore_.screen_restore_init_kbd_.init_kbdL192.nullsymbol_bcmp_.bcmp_strncpy_.strncpy_closest_.closest_scansym_.scansym_ec_length_ec_ops_ec_cancel unasm.o 597739103 0 10 100664 4777 ` L0nd0c ,! ank h@ؐș 0I`С 0`0bb7`СfGvj~b7L",#`а"ՐVR鏵鏵鏵#鏵3鏵C鏵S鏵c鏵s鏵鏵鏵鏵鏵鏵鏵鏵d"ՐVR鏖鏖鏖"鏖2鏖B鏖R鏖b鏖r鏖鏖鏖鏖鏖鏖鏖鏖$Header:mtsr.s 12.0$@X@  )X/d6nArcsid.oVncs_mtsr_.mtsrmts_vector_mfsr_.mfsrmfs_vector startup.o 597739108 0 10 100664 475 ` L, ٱnذȻг0ۑ ``` 0߸`$Header:startup.c 12.0$ pp. : @@ P P L!P,T5?FKRZ`g.oVncs.oVhc2.1n.oVO_rcsid_openfirst_startup_.startup_edata_end__init_._init_main_.main hd.o 597739144 0 10 100664 11337 `  xnm -"""$b.T 0p- +c .,=M]bH=Mbh<JLK\b--=M]0p 1   03=<!ang 915A;Q 3!{:\0"2ͱȠPUy1C#7rmAw<$$#4y12ͱȠ@D0 7rm1w<#$4;bcpl K;J+c bl Ō;bcpf J;K+c b`f0   ̀ލJ;b`t -J;b`1= b ;-rA 0@QY.X w! &c ..X 3 - .(cpuAe.@c.H 0.P=.\=|w8w !  Y6w8w 1L 0F w8w A @ /6w8X u.hp<.xp .|0 J P x 8rAQu1r!d 3!u5s! 6 0rAQyv a0rAPm|s| | ~ a4 )0rAPǸ .c$$ =w s!u5s!wu0w1bpuAy1eH(3!s! es!u5s!⒐q[{1b0)a4qx u1r!d, 3!u1r!d 3!s!u5 [6X w!c .X w  {1.9;1{!a4w!yAr110. a4@  " w!WyAr100| a4w!DyAr100|z:  a4y1r!dU4w!#yAr10.c a4@XH2{19t;1ha فni ذȻb pbȢ .  .9dЍ ɁDq1 l .TH $.$ b0.,sH0b 2 ```1ݎ0.lݎ09bd .9b   . b pbȢ)&b`Ъbp.9dЍ ɁDqJ:K*c) .IcЍ9bd . ɁD߈anf g0h@p`p !K(!Őkޫޛ  ++ + Ѐ͒``` 0d`Q.c`dp6Ԕ!aLJ ޫޛ ͒``` 0d`Q. c`dp aLh1ٱne m̀ν  ɱ8   K.c@dP|$N0bc|xNbc|.=8 0|. 0|=b|=b|.|!ɱ8߸1١nŲj@mP >.0cdexd 4`0   .xɡ@ "11```ɡ@d ߨAan5!f0b`"3!b4!pbrȑA(0q1!c`PTh z! 7O.>(>8AL:K673α6ʡ: .<0c`deL~KJ w @`b(r.d (2dN(201c`eL"bc&'8#!3$@0`b2(r!H@ .`cC(c`Lt!00q1(c`dPT   .c`L@ DA EB FC ED C E TS S   @.c`L8_b1Di  .c`deL0q1(c`depT   .c`Ls!ݟb`&lb0@Hp <H@u!c`dpeL  p'c@@@a(tԤh!@١nk l0m@jP` .c  UҎb ```ɡ< )b P P! P" P# P$ P% P& P' P( P) P* P+ P, P- P. P/  ob P ```ɡ< X , ```ɡ< 8b                                b  ```ɡ<ߨAّni j0k@H@ .cdembcdP (  LM cP(bɑ@ߘ1ّni j0k@@ .cdembcdP  LM cPbɑ@ߘ1فnh i0j@kPb" .0cde @ DA EB FC ED C E TS S   ɁL@S @ "`@c rsӐAS @  ɁL .,cdeЍ!Lڲ0!P1bcdeMɁL߈aّni j0k@b"BD`@b @ .01ce@*"P//2 .+.  ɑHJ K ! V " T ( R # W $ S % b&`3 b, m .(H   ɑHbP Q R& X$ S" T' U# b",cdЍ .8 ɑH޿ ɑH ɑHߘ1١nj0kP 0A1#dP^  ɡD01bcdPɡDߨAA2  " 鏤 n* .. . .4 .<.X.d  .l pH> '0T> 33> v > lڀ@}Yl> '0T> b> i(> DڀIbiD> A-(> ڀKeT="=n> B-> ڀ Le> Bk> ڀ L> " @> ڀFrf> ! @> ڀ-rc"lU,w, l6,$g,DG#,#l!"hdinithd70mhd40mhd40rhd70chd70rhd20ihd70ehd114ehd310ehd310hHD: HDSTRATEGY -- RECEIVED %s REQUEST bn= %d cc= %d ma= 0x%x unit= 0x%x start block =%d ncpd=%d nspt=%d ntpc=%d @,HDSTRATEGY: STARTING %s REQUEST... blk=%d addr=%x count=%d Cyl=%d Hd=%d Sect=%d SCT=%d Format data= %x HD: %s REQUEST COMPLETE !! HD: Write Fault --> Status = 0x%x HD: uncorrectable bad block HD: UNKNOWN STATUS -- status = 0x%x hdio: return(%d) h<HD: IN HDOPEN()!! HD: BAD DRIVE NUMBER (%d) OR INVALID PARTITION (%d) hd: No primary adapter?hd: Obsolete adapter microcode! hd: Can't init driveHD: HDOPEN -- INITIALIZATION COMPLETE HD%d: invalid partition %d HD: boff=%d ==>%d hd: can't re-init drive <RESTORESET PARAMETERS HD%d: Disk I/O Error - CMD=%s Err=0x%b MISSING-MARKTR000-ERRORCMD-ABORTEDID-NOT-FOUNDDATA-CRCBAD-BLOCKStatus=0x%b ERRORINDEX-MARKECC-CORRECTIONDATA-REQSEEK-DONEWRITE-FAULTDRIVE-READYBUSYCyl=%d Hd=%d Sect=%d SCT=%d hdwait(%x,%x,%x,%x) ... complete (%x) %s configuration record (block %d) could not readbadhd%d: %d cyl, %d tracks, %d sectors hd%d: %s type (%d cyl, %d tracks, %d sectors) unknownhd%d: %s hd%d: could not read bad block table hd%d: no bad block table hd%d: %d bytes of bad block table at %x hd%d: could not read bad block table 0addr=%x count=%d >hdrd: adapter=%x addr=%x count=%d $hdwr: adapter=%x addr=%x count=%d :hd%d: bad block %d addr=%x count=%d hd%d: bad block %d forwarded to %d Xunit=%x type=%x hdioctl(%x,%x,%x) hd: No adapter?hd: can't re-init drivehd`READ (no retries)READWRITE (no retries)WRITEREAD-VERIFY (no retries)READ-VERIFYFORMATUNKNOWN COMMAND$Header:hd.c 12.0$p<'V'l'')p,--.,--...,F'r'''''^'l''X'b4pD'n''pppX'bpp''8BBB'8pV'r-x-'B 8' L' `' x' ' ' ' ' ' 8' p ' X' ' - F ' Z' ' H ''"p.p<JPFtF'j''Rpp''rp'`pFBBpFR@@@@@$@4@D@T@d@t@@@@&P(P @$@@@D@H3PL@P@T@X@\@t@xAP|@@@@@ EP GP IP @ @ 4@ \@ `@ @ @ (@ 0QP 4@ 8@ !(+38=H R`lmz,l,l  )0<ER`ly @, h :<>"/ =FPdXa <k`v}  0$X.oVncs.oVhc2.1n.oVO_rcsid_devsw_b_blknos_iob_cpu_cpu_model_adapters_hdinit_sizes_hd40m_sizes_hd70m_sizes_hd40r_sizes_hd70c_sizes_hd70r_sizes_hd20i_sizes_hd70e_sizes_hd114e_sizes_hd310e_sizes_hd310h_sizes_hdoff_hdst_hdtype_names_hd_type_hd_ecc_msgs_hderrblk_hddebug_hdbad_adap0ndisk_hdquiet_hdquietinit_hd_any_ucode_hdstrategy_.hdstrategy_cmd_str_.cmd_str_printf_.printf__display_._display_hdio_.hdioldiv$$lmul$$uldiv$$_hdwait_.hdwait_hdwr_.hdwr_exit_.exit_hdbadblk_.hdbadblk_hdrd_.hdrd_check_error_.check_error_hdreset_.hdreset_hdopen_.hdopen_get_post_.get_post__stop_._stop_hdinit_.hdinit_bcopy_.bcopy_calloc_.calloc_bzero_.bzero_hdgetpart_.hdgetpart_adunload_.adunload_hdioctl_.hdioctl_dkfindpart_.dkfindpart debugger.o 597739147 0 10 100664 299 ` 4`$Header:debugger.s 12.0$@*p0 4"-(6<C.oVncsrcsidvector_debugger_.debugger_trapper_trap_.trap initvec.o 597739152 0 10 100664 899 ` h(hn0SdEB o0Oe0Se^p]PrT0]VT"]WT#]eU2T6Pe0U&T1; x  ! " # $ % & ' ( ) *$Header:initvec.c 12.0$@ P P, P< PL P\ Pl P| P P P P @ h!/<EQYcmlyt.oVncs.oVhc2.1n.oVO_rcsid_debug_option_debug_state_regsave_step_count_symtab_err_flag_iar_mask_inte#] 3dln) &f#ʘ#ʜ#ʜP`p)pjrrupts_trapper_save_vec__init_vectors_._init_vectors atox.o 597739156 0 10 100664 331 ` h Tؤ@R!P &@DcEA Ua f  UA F Uɪ@R!Pbp$Header:atox.c 12.0$p@@ h!l'.7.oVncs.oVhc2.1n.oVO_rcsid_atox_.atox__ctype_ setvec.o 597739158 0 10 100664 503 `  004d@0 @0Dd@@`@0# $ "48<4HL$Header:setvec.s 12.0$T@ @0%+1@6*<*B@HTP`Yt^c.oVncsrcsidINTSTACKvec3_int3xint3addr3vec4_int4xint4addr4_setvec_.setvecset3set4 trace.o 597739177 0 10 100664 4281 ` 8 pan}wAD "  bDj ؤb1,A(H  z А v1.܍4t@fbbb1,A(H&2z! {b} ;{!h gD;!{A >>.4 " t .4t! .4.4 "c?01 b0LbD`pc=#  d bcp4q  .,4t!x "  #.04yAaxh11ّni j0k@~` Ґbq` `  >("90*c 8$  )G0 Ԕ$  0 $   .p:. p:0bɑ@ߘ1ٱnk .c b$k . cp  b(l p 0 .cbɱ8߸nl m ,h.cЍb4 qnh i0ذȻp bn,-sbep'ihX.c*L'b_ p  bT p >9lbF < b; <ʔȤ , b%c# b2-qHp  qHx!nm -x!! b8BҔ.cЍp .cЍp.pb4 ang h@3Qu00b' nk`b\k ` Xb\-&N  &*y\m `Р 0`РsQ0ŝ? byᒒ 'bQ\k bK\m *D\>0!p12b0cdeЍT  ba\hA level %d: sp=%x iar=%x no symbol found near %x routine %s + %d (0x%x) *** Invalid Prolog %x: AI R1,R1,%d %x: SIS R1,%d %x: AIS R1,%d fp offset=%d (0x%x), fp=R%d, Vnnn=%d (0x%x), Rnnn = %d (0x%x) %s(%s%x,) *** INTERRUPT SERVICE ROUTINE *** r%d=0x%x d L.in r%d at %d(fp) : [%x] (real = %x)=%x  ==> %x  found candidate at %x pbyte = %x '%c' trace table %x: %x %x %x nargs=%d, fp_offset=%d $Header:trace.c 12.0$p< pT^ pn p" p ppD`p$. pFXdnp p Vf ~ p"B p`@@<P@PD@H@L@P@TPX@p@P!P@@@@@ !/<EXO[cmw d:   L. &.4;CL U _ ,f ,n wp.oVncs.oVhc2.1n.oVO_rcsid_debug_option_debug_state_regsave_save_vec_step_count_symtab_err_flag_iar_mask_trflag_traceback_.traceback_printf_.printf_closest_.closest_h_fetch_.h_fetch_gettrace_.gettrace_w_fetch_.w_fetch_move_arg_.move_arg_screen_linesldiv$$_pause_.pause_vtop_.vtop_hfetch_.hfetch_scansym_.scansymL00BSSL49.sym_b_fetch_.b_fetch fd.o 597739197 0 10 100664 5735 `  *ang '0!` cͳ` cȃ!"b.0 0 'R8ŒͧR8bj0贰 p!^(p!,P8bB9p!0 .'bp R⺪S(R( aDDTp!`f@D2117'b#  7'e#PQe0Vp .cd4p  8 ō8pFp4 dBdȄHݶݾ bpԤ#|(v"q  0|(^ 0o,),)'Ep!@ 0Q(3 0D03#03# bp1@  "0.(1236@5p 4p!! !"(( "{"% $@ ' ( ݾ  ݹݮ " $ .L.x.   .ЍbaDDPhQn", n  "@ d  4.4 ٱnk `b /Ī+-Ībdb!b 0ԍ <Ф( 0ԍ  t-$-)ɱ8߸1nl   N@N`b".  ̪b2``0b7.N >p4 n` cS^ B  >c0 @ // 菤n` c3>| "nm 0.0 nC.'BR`P  '03```.BR`P  d.cll44! n 0.Cb, ٱnȍ t-$-%-&-'-(Ų "!@=$.x=% bx=&,bx='8bx=(Dbx.Pcx.\cxɱ8ɱ8߸nd#b"` bx z!|"~#$%3 菤$1 ` tr ` ( #P  ( * fd: cyl %x sec %x fdcount %x FD: BAD DRIVE NUMBER OR INVALID PARTITION : boff = %x, unit = %x fd: opening 1.2M drive for 360k diskette fd: opening 1.2M drive for 1.2M diskette fd: opening 360k drive for 360k diskette fd: opening invalid fdtype!  fd: interrupt TIMEOUT j:&Xfd: ERROR TIMEOUT --- fdwait(%x,%x) = %x  N FD: unload DsktSr0 = %x DSr1 = %x DSr2 = %x cyl = %x hd = %x sec = %x n = %x N$Header:fd.c 12.0$B#pPp^&n&&pp2.b24&&&6,:B2..`L@@ p&p2@V#p46:\pr....@H.@`~@. b` p . . . . . . ,.@@0@D@X@@@@@-P@1P3P5P@9P@@?P@@@@@@@@@ @@@@D@@  !(+38=H tO tU Xbn w            $ ( , 0# 4*6 8BOW b:n x& j X  / NB JSZb js }    \ N.oVncs.oVhc2.1n.oVO_rcsid_devsw_b_blknos_iob_cpu_cpu_modelL00BSS_temp_r_fdstatus_fdcylinder_DsktSr0_DsktSr1_DsktSr2_DsktCyl_DsktHd_junk_fdaddrs_fdadapter_fd_sizes_fdst_fd_type_fd_last_type_fd_auto_density_fdcount_fdma_fddebug_retry_count_cmd_error_fdint_fd_on_dma_bufptr_fdstrategy_.fdstrategyuldiv$$_fdmotoron_.fdmotoron_fdselect_.fdselect_fdseek_.fdseek_printf_.printf_fdcmd_.fdcmd_bcopy_.bcopy_dma_setup_.dma_setup_dma_start_.dma_start_interrupt_.interrupt_dma_done_.dma_done_fdunload_results_.fdunload_results_fdopen_.fdopen_delay_.delay_fdwait_.fdwait_fdresult_.fdresult_fdclose_.fdclose_fdmotoroff_.fdmotoroff_fdioctl_.fdioctl display.o 597739201 0 10 100664 424 ` D( n0"m@bЍc bЍ0 T$Header:display.c 12.0$ , @@P P D!&1H;FKQV\.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model__display_._display_ior_.ior_iow_.iowdma.o 597739207 0 10 100664 1702 ` Xhnm   <s b! """!.s=@7 4v  0.@7 4bЍ7D bЍH bЍL 7-b4s- "P// ّni sb!,"23q PU@%@CD$%uIt)$#B K"B Ţr)!" 7.bɑ@Lߪ1@@De4dHE@ADC$c 84 Ű!0! ! 7.bɑ@@B cKScĪ10 SAB bɑ@ߘc 122#" J"n@0J3 I"`eq` e10E  `"@( H"c 122#"2 H"@ J"channel %x is busy First party DMA not supported x4 length is <= 0 more than 32 TCWs => boundary error  .$Header:dma.c 12.0$.p> d `pT  p8pp@@D@H PL@P@T@X@@@@@@ !+`5@LxV.air4~t .oVncs.oVhc2.1n.oVO_rcsid_init_dma_dm_softc_dma_setup_.dma_setup_dma_init_.dma_init_printf_.printf_ctl1_setup_.ctl1_setup_ctl2_setup_.ctl2_setup_copro_setup_.copro_setupldiv$$_dma_start_.dma_start_dma_done_.dma_donelps.o 597739209 0 10 100664 203 ` 0< 0$Header:lps.s 12.0$@0  $#rcsid.oVncs_lps_.lpsdo_lps screen_conf.o 597739225 0 10 100664 7210 ` Xank ؀Ȉ 4p .@1ppMbp&j.:0 C " P2 =* 9:p  p .cp@*p  ʤ q 1{qp q+' q+&b.""1@@b@&b.2###1KA@ w+` bBbcpppLq+r Fbp&b.""#=q1{ cNDw+` bbbcdPp> H`b2 Hw+` bBbcp1qp cDw+` b͢bcdPp q  L P1xx0 p .8q;@TaL;73hnm e #@ e! 0 ang ؀Ȉؐșq0p  aL  "q004 b&e.E\$# $ !\10 p aL`pb"\kp aL aLq Ww)` bB8bcp0Cb&m.-\"#7`b`7 1w)` P(cc4cdepp> e=0 ]w)` bB8bcp0 1q b\q b"8pq b\ \q !q b`7 w)` P(c4cdepp q bTq)aLhّnj k0 4p @ .qLw\cLp @ w,` .,c38Lq b@ w,` b͒8bcdp p @ .8Lɑ@ɑ@ߘ!nc "0 03p#0,qdDp, n&b. n@PH@L?PP@PTAPX@\@`@d@hBPl@pCPx@@@@OPQPSP@@@<ZP@@D@H@T@X@\@`@d@h@l@p@t@xnP|@ !&1?JUfw P~ L&9L^r.?Oar%7H[m   X  \&, 44 T<E ,NX dq{ x <  $)4 (BQ` 0gt 8}^ @ H6 X ` .oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_screen_lines_screen_sw_aed_probe_aed_screen_init_aed_screen_putc_nodev_aed_screen_print_nulldev_apa16_probe_apa16_screen_init_apa16_screen_putc_apa16_pos_cursor_apa16_screen_blank_apa16_screen_move_apa16_screen_print_apa8C_probe_apa8C_screen_init_apa8C_screen_putc_apa8C_pos_cursor_apa8C_screen_blank_apa8C_screen_move_apa8C_screen_print_apa8_probe_apa8_screen_init_apa8_screen_putc_apa8_pos_cursor_apa8_screen_blank_apa8_screen_move_apa8_screen_print_ega_probe_ega_screen_init_ega_screen_putc_ega_pos_cursor_ega_screen_blank_ega_screen_move_ega_screen_print_ega_fgbg_mono_probe_mono_screen_init_mono_screen_putc_mono_pos_cursor_mono_screen_blank_mono_screen_move_mono_screen_print_mpel_probe_mpel_screen_init_mpel_screen_putc_mpel_pos_cursor_mpel_screen_blank_mpel_screen_move_mpel_screen_print_NSCREEN_emulsw_stdie_open_stde_close_stdoe_open_stde_putc_stde_put_status_ibme_open_ibme_close_ibme_putc_ibme_put_status_NEMUL_screen_init_.screen_init_cons_edebug_aed_pr_.aed_pr_sichars_.sichars_put_status_.put_status__display_._display_hard_delay_.hard_delay_init_kbd_.init_kbd_screen_probe_.screen_probe_switch_screen_.switch_screen_cons_info_printf_.printf_print_screen_.print_screen_print_log_reset_screen_.reset_screen_screen_inited_debug_alt_putchar_putchar_.putchar_sa_screen_init_.sa_screen_init__putchar_._putchar_.nulldev_.nodev_save_screen_.save_screen_bcopy_.bcopy_screen_restore_.screen_restoreaedtty.o 597739257 0 10 100664 16378 ` 24Pnm 1 B1 "1```bЍ4 ١n,!ɡ@ cФBȰ```.40 @1``` " cФB``` 0,@0 %>00 A@DHp-P "@A 1>0@DHݮ0c```p-P```p- ```0 1038p-P !01F 0038ݮ0```p-P```p-S ```ݮbɡ@ߨٱnıdD0@3 !ȱb0@3 BЀ͒``` @" cBQɱ<߸!١nŢ 1038ذȻp+PЀ "01 038͒```p+P͒``` p+ ͒```ɡ<ߨّnj i0 1038ذȻp+P"Ѐ "01L 038!͒!```p+P" !͒!```p+0 2!͒!``` 1038p+P" "01  038!͒!```p+P" !͒!```p+04 2!͒!``` 1038p+P" "01 038!͒!```p+P" !͒!```* 2p+ 2!͒!```@ 1038p+P" "01 038!͒!```p+P" !͒!```*p; #!͒!```ɑ@ߘ!ٱnȤbEm @ @-   P -* 4 ֤,> !ɱ8߸!فn Ȏ@ؠȪЀ 1038p*P" "01̔ 038ݾ`!͒!```p*P" !͒!```9p* 2!͒!```@ 1038p*P '01̔ 038ݾ@ "B```p*P A" c@P޽PbɁDؠȪ߈9 ррш>шш5ш8ш шWшDшӈшш ӈDӉш0ш*׆Ӄq@ш0ш*Ӄq@ш0A؛ш*[Ӄ%q@Ԉӊ.{贕q@`q@rӋ;q@兮 4rшᅮOpO ஻-஼22ܒRAܑш@ᅞш3஺ ஸவஷஶ@ளல றரய?閪lш0۞ш*_Ӊш߮_ш؛Ԉшߞшшq@Ӊq@[{q@aӁ`Ӂӈ`Ӊؗ Wq@q@q@؟шӋшCӈӁQ^шCđ@шCӈӁw ӃQӃq@ӈ ӈ,ӈ.ӈ9ӈ;ӈ<ӈ?шш(шшшш ӈш%шӃq@Ԉӊ{   ӆ%ӎ&q@Ԉш%q@q@шӈўՆQӃ6ƆؑAӋ/ѮQшlӈш\ӈӈ9шWш ӈшlӈш8ӋlӋlӉWӉTшWӈ ӈӈlӁ`ӈʮшшmш<ӋhӋhшӈmш0Ӂ1Ӂ2Ӂ3Ӂ4Ӂ8Ӂ9ӁYӃQAӃq@ӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈӈшӈшӈшӈш ӈшӈшFӈшӈшӈшӈшӈшӈшӈшWӈшӈшӈq@шWш ӈшӈшӈшӈшӈш3ӈшӈшӈ宿шQ шQ ш<ӃؑAӃӃؒAӃӈpq@шQ ӃؑAӃӉӈӉӈӉ&ӈ!Ӊ/ӈ+낪끪43킪큪шQ@Ӌ;Q1Ӄ;q@ш/ӉAӈY q@ш/шcӁPӈӉUӈWaӈшcӉ^ӈ`шq@ӁgӁkq@ш<шrӈDш<шӈDӉӁӉшӈӉшӈўшўшӞюsшq@ӈAq@ӋA q@qq@QӋӈq@Ӌq@q@ш<AAӋɾӁǞӈӈlш<Ӌ־ӁԞӈӈlᅮAӃӈlӈlӃӈlӈl q@ q@Aq@шӈDq@ш<шӈpш<шӈpшAӋшAш\ӈшAӋш2AшnӈҞшшTӃ ӃѮш:Ӄ+q@ҞшᅮшTAAӃ<Ӄ:Ѯш:AӃKq@ш/ؑш:q@ўшшӃcшq@ўшшӃuшq@AؚA؛Ԉӊz{ܾӃq@ш0A؛ш*Ӄq@q@шшᅮAӁшTᅮᅮӈўӈшшAӁшTӈўᅮӁȞш:шӈшшшшӈшшшш шaшӈAq@Ӂ垺ўш:ӈٞҞшҞшҞшш<ш шшӈpш шшӈpшшaӈш ш ш<шQшQшшVQӃPшVQӃPшVQӃPӃ=ш^AӃPӃ4ӈP@@ш^ᅮᅮӃPӃEӈQ Ӄ]ؑA q@ؑш ш A ш/ؑ ш: Ӄqўшўшӈq@шш螹Aq@cӁӉӈ @Ӂӈ᝾Ӂ쀞AӁ؇fDш ӉXшўXӁ˾ӉEӈq@Eш ӉĮXш՞Xq@ᅮq@q@A᝞B᝞؞Ӂ؀ӈAᆮQÞ؄Ӂ؈hӉӈ@ hIӋi⁞Ӂ؅h Aᆪшӈ.шӈ.RӉшӈ؟񝞱ؑAӁ*AӉӈ+sш? ?ш?Q] шQ ӃpؑAӃpш  ш/Ӊbшz A Ӌ^шz щzӈsr шӈ.ؑ Ӊ  A r ArшQ Ӄؑ2Ӄ؝}Ԉш ш ш ш~q@ᅮӉӈӈ.ؑrшшӈƮш4Ӊq@шӈpшrшY4ш؛шш0ӈшq@؊шq@؊шӈшшӃƮш RӁƎ qӁшɞAӃӈшшӈBELLQшшܞшƚ шш"шшƪ IBM, ACIS Experimental Display Terminal Emulator 1.7 (C) IBM Corp. 1986 !<<<"ccc"#6666666$ >ca`>Cc> %ac 3c&66;nff;'000`( 00000 )  *f<<f+,0-./ 0`@06go{sc61 < ?2>c 0c3>cc>46f5```~c>60``~ccc>7c 8>ccc>ccc>9>ccc?<:;0< 0`0 =~~>`0  0`?>cc @>ccooon`>A6cccccB~333>333~C3a```a3D|6333336|E314<413F314<400xG3a``oc3HccccccccI<<Jff<Ks366<663sLx0000013MNcs{ogcccO>ccccccc>P~333>000xQ>ccccko>R~333>633sS>cc0cc>T<Ucccccccc>Vf<WffXf<<fYf<<Z 0a[<0000000<\@`0 ]< <^ff;bp00<6333nc>c``c>d6fff;e>c`c>f620|000xg;fff>f<hp006;333si  jff<kp0036<63sl mnn33333o>cccc>pn333>00xq;fff>rn;300xs>c8c>t~ufffff;vf<wfxc66cycccc?<zf 3{p|}pp~pR99:r8 9T$Header:aedtty.c 12.0$:p p p,p\pppRnpppppp&pTppp2p`p%'%% %0)>*pzppp$pRppp@1@1P1P1@1@1P1@1@1@1@1@2@2 $P2&P2(P2@ !*4@HWbgr9}99R9:$95G9Wrh9r}99T.oVncs.oVhc2.1n.oVO_rcsid_aedbase_aed_data_aed_status_aed_to_aed_tty_mcode_screen_sw_cpu_cpu_model_aed_probe_.aed_probe_bcopy_.bcopy_screen_probe_.screen_probe_aed_in_init_aed_screen_init_.aed_screen_init_aed_tty_command_.aed_tty_command_delay_.delay_delay_count_aed_screen_putc_.aed_screen_putc_aed_put_status_.aed_put_status_dumpline_aedbuffer_aed_screen_print_.aed_screen_print_aedline_.aedline_lp_put_.lp_put_hard_delay_.hard_delay_put_status_.put_status_lpstatusibm_emul.o 597739278 0 10 100664 6015 `  lXn4V  ,V&q46c3$1?q46PcS>Pq46cS<,q$&b"qDFdtDp,,A #&1فni j0 "ȺW.r]cd V & r 6s q b $ 9q b $0q b 2>2 s q b & 9q b &0q b 2<2 2 Bq b $ "p20102102.q c $0q d $Pq d &0q d uԤ@p .q c }C0 pn..q c }C0@pZ.OFq*&b,>0q b 62<+"   bc$(b,b&0ɁHb4b8̤2 b<q b <02q d Dq d Dq o &0q o up ?q b <0 q b >.1 q p=b 2q b "q d tDp 2 q b 03>#q b ">2q d D>Aq e vp .q c 3>q d T>q d &0q d uԤ@p q b ">!p=1q d D>q e vpp=1q*&b,"&!0!q*&b,ub@e0p bc @y L :u   b"DP//@) "zP//x|xvtrd)- "P//LJHFDB@Pv820.,*(&$"  jz bD q b "q d tDp>0 b>BbHV & ɁH LɁH߈!ٱnl 03.Sq c &0q c u0@p q,&b->0q b 2<ɱ<߸١nj k0p  .>q b sBbpq b <02>p= 6 " q*&b,*>1q b 2>q b v!@p p=Nu1q b &0q b ub@@e0p .x $p  .ɑDɑDߘٱnl q b >4> "2q b v Ap >Mq b &0q b ub00@Pp q,&b->ɱ<ɱ<߸١nk p  .x " @.Iq c 3>q d Dq o &0q o up p 0q+&b-<0 .xɡ@ɡ@ߨq26d4<13&4134>031q"&b2>nl q,&""< Cc4 ّni j0k@p @ .Hq)&23$ "#ɑ@V  bcd5pp 0@p-2@ ݮ@ @ bȐ@ 0 . Hɑ@ɑ@ߘ1فnh i0j@qb ʲqb $ " ɁD@ bqc $0qd tDp@:b0@ qb ܲqb "qd tDpɁD߈1 ibm3101 ibme_putc: (%c, %x) (%d) \,0screen_out (%c) screen_out leaving screen_lf screen_lf leave Tscreen_cr screen_cr leave  ibme_put_status (%d) (%s) ibme_put_status done `$Header:ibm_emul.c 12.0$.p> pp`pXpp pp<pbptppppppp p(pRphpxpppppJppppp pp pp8`n``.`p pp(p:Lppp  p p 2  p p bp t ~p p  p p f p p p  p  p n p p@l@p@t@P@P@@@@@@-P@@@@1P@@@@D@H@L@@@  l!, p7<GU x`gnu |       %-5>L [ah\s  T ,0  2>K\ nz `.oVncs.oVhc2.1n.oVO_rcsid_screen_sw_term_type_cpu_cpu_model_monopagemode_print_logL00BSS_old_x_old_y_screen_length_put_status_offset_status_line_screen_attr_lf_ibme_delay_ibme_open_.ibme_open_ibme_close_.ibme_close_ibme_putc_.ibme_putcL48.put_stateL49.cursor_base_edebug_aed_pr_.aed_pr_screen_index_.screen_index_beep_.beep_screen_lf_.screen_lf_screen_tab_.screen_tab_screen_cr_.screen_cr_screen_bs_.screen_bs_screen_clear_.screen_clear_screen_out_.screen_out_lp_put_.lp_put_ibme_dump_status_.ibme_dump_status_hard_delay_.hard_delay_ibme_put_status_.ibme_put_status_ibme_ioctl_.ibme_ioctl std_emul.o 597739286 0 10 100664 1044 ` D,(Hn 1n 1n< 菤 &# 1#!nl  q#&BD b1pp b 0 44! nb0c@,1 (<n$Header:std_emul.c 12.0$~pp@@ @@@PP @$P !&1<EQ^ jw<n .oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_screen_sw_in_stde_stdoe_open_.stdoe_open_stdie_open_.stdie_open_stde_close_.stde_close_stde_putc_.stde_putc_beep_.beep_print_log_lp_put_.lp_put_stde_put_status_.stde_put_status_aed_put_status_.aed_put_statusapa8tty.o 597739313 0 10 100664 12371 `  |txفnؐș#p% & ' Š ( Ű  .,ڹک c) PO) c* #"*٤Ѵbc(c.`b 2 bc#!`c # ɁD߈pqS01RrsS23R@$0/2.2" 6*2(.03#|2,SR03#鏤!!P #R "S#Q!鏤 anl (0`3 p " r b"  ȁbc@ؠȪ#pbЪ"-!i,9 bЪ!b! 20=Y AT 1= I e0QeQUE=I e0QeQUE 2bv2bЪ"b*U62I <CV90 V90< 2bЪ"b*@6rq) ں `dc`!ܱ) c` b0`Ъc 6#**..b0!(. ` x  bpa0|!a0|h1@nФ@ b" B(0`3  " B  P - O!```LQ P O```Q "#p21"!c ", (0`3  "  b"  nd    ,!, n̤#p ͍Z(,>NTb0  .41 $͍44 no T(@`D  "#x!b.\ "  b"  b0c@G,1 ١nBj0`@#pb v L "Om  0  *q-"(@`D ]`PcD03 0b3  c@q=bdv ɡ<ɡ<ߨ!nl m0`Ъ@D#pb2`b1 $$!cЌ`,4! BPU#pdTD` o21 `" EAAA #  O```AAanm f0g@hP͡` "01c`dpe    Ȑ b" p(ذȻ#p2(0`3  "Ѥ ``b  ←+cюbcФB&a`+4!cp` 3p`( b " ``b bp"b+"  "```s3t!c#!2!9*t1 1( b, " `b 2`b b"  "```r!!2!( " phs!0Zd`e 3pah r1de Z2!jhr!s 0r1s!d`e a`!p``b  ←+c bcФB9a`ذȻ#p`J`DhQٱn`B "#pe`Cc(P`U 03 0b3  "c@ bcФBɱ8߸1١nĪ2PU#pcSͳ"b%(` "  b" %c@ bcBɡ<ߨ1ٱnk l0m@ "0cdeЍːbcdNɱ<ːbcd ɱ<ɱ<߸1n` d0 "cS,! 3A 2$ ```PA Q$4 PA Q$4- 3A 2$- ```(P`U @D $ b"    !3 n03#pP bq3"č,, n03#pP bq3",, ##4#P\\\                               * 8 F T b p ~             & 4 B P ^ l z            " 0 > L Z h v             , : H V d r              ( 6 D R ` n |            $ 2 @ N \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\U*U*U*U*U*U*U66666666llll>kkh> kk>3kn6 ==f8ll8xln?     0 0 Z~<~Z 00`6cckkkcc6 < ?<fc 0c6#cf<6&fc`lvccf<3c`lvccc6c 6cc66cc66ccc7cf< 0 @`0  0`@6cc 3o{{of06ccccccccxlffl~gccf|3c`````c3|fcccccccf|````|````````|`````6c```occ6cccccccccc? ?f|8cffl|x|lffc``````````cwwkkccccccss{koggcc6ccccccc6|fccf|`````6ccccc{o6|fccf|lffcc6cc0cc6ccccccccc6ccc666cccckkkk6"ff<<<<ffff< 00``00 < <6c33c7```lvccccv\3a``a37cccc76c`a3;30|0000007ccc7c6```lvcccccc  fff<```bflxxlfc vkkkkcc\vcccccc6cccc6\vccccvl```<nn6^sc`````>ca8Cc>>cccccc7ccc66ccckkk>6c6>>6cccccc7c6 0` 8 pps \????WARNING: THE COLUMN HEIGHT IS ODD!! F"D"H,"dZCan't create APA-8 font! Abort. "\""L##L#""#" # d "" r  Z# $Header:apa8tty.c 12.0$$Header:apa_structs.h 12.0$$Header:apa8tty_font.h 12.0$`@$V%v%&&6`V``%%..`&p2h`$p`b`rpzp2`^&fp`p"LT`&&N&b& r& ` ` .& r` & p X p \ f` `@@@@ @L#PP@T@X@\@`-Pd@h@l1Pp@t@x@|@@@@@@@@@@@@@@KP@@@@@@WP@@@[P@ @@@@@ @$@  !&1 C V d r!~#p#p#r#t!!!"#x #z!#|*#~2#:#C#M#W#d'o(y""D"HF "L(5C"\N,Zai"dy"h"pZ# "# %"7LJ#] Zq" """ #, 9"J \#i w" d" " r&# 2 ?.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_rcsidapa_structs_rcsidapa8tty_font_apa8fonthead_apa8fontBits_apa8fontBM_screen_swL00BSS_apa8cursorflagL00990011_apa8scr_char_mask_y1_rotatemasks_y2_rotatemasks_x_rotatemasks_rotate_amt_apa8_buffer_apa8_buf_pointer_font_wd_font_ht_col_wd_col_ht_col_MAX_line_MAXL00990025_bitmap_addr_line_addr_col_addr_apa8set_fontinfo_.apa8set_fontinfo_printf_.printfldiv$$lmul$$_apa8init_fontblt_.apa8init_fontblt_apa8incr_dst_rect_.apa8incr_dst_rect_apa8font_load_.apa8font_load_apa_fontblt_.apa_fontblt_apa8clear_.apa8clear_bzero_.bzero_apa8_init_hdwr_.apa8_init_hdwr_apa8_probe_.apa8_probe_apa8_screen_init_.apa8_screen_init_APA8WRITE_CURSOR_.APA8WRITE_CURSOR_apa8write_char_.apa8write_char_CHAR_LOOP_.CHAR_LOOP_apa8_screen_putc_.apa8_screen_putc_APA8REMOVE_CURSOR_.APA8REMOVE_CURSOR_CHAR_BLANK_LOOP_.CHAR_BLANK_LOOP_apa8_pos_cursor_.apa8_pos_cursor_apa8clearline_.apa8clearline_apa8_screen_blank_.apa8_screen_blank_lp_screen_blank_.lp_screen_blank_BLANK_LOOP_.BLANK_LOOP_apa8scroll_down_.apa8scroll_down_SCREEN_LOOP_.SCREEN_LOOP_apa8scroll_up_.apa8scroll_up_apa8_screen_move_.apa8_screen_move_lp_screen_move_.lp_screen_move_apa8_screen_print_.apa8_screen_print_lp_screen_print_.lp_screen_print_XOR_CURSOR_.XOR_CURSOR apa16tty.o 597739348 0 10 100664 14996 ` $anD`f,d,F-\v.v]/"j #&k $l% cp@D$fP `pb$"` " "#&P@Df0 `0"03#6 c@D$d0 b0/#!`,$2=%6bp/'!` `+!bpc` `+    ***&*&Z& (bc` `-!b!.("` `-    +++&+&[' )aLha€È@D0"5#4$PU3T z($,)$"*$pp uPU` PU ",d^ŏ PU_ PU  PU uPU° PUP PU@ PU\b0a PU]m1a ePU PU6Tn.Ԥ/ uPU PU PU PUpa PUqa ePU PU9Tg(4*, uPU` PU PU PU PU?TP]T@_TBD€È݄HPNTLNPSRup €È €ÈP €È €ÈR"%") (€È €È (€È݄T G$X4Z\ p` (€ÈcP €È0 €ÈP@ X€È €È݄` B$d4fhp0 €È €È €~È X€|È zPaThpqS01RrsS23R@$0/2.2" 62*P(03,d\.]P,S03,d\SR]C鏤!0!2P #RR "S#Q!0b0qni ȱbc@0,d` l L `b B \ AT   L eQeQUE L eQeQUEb"bd  T" QR"L @V @V   `b B 7B", \}ŀc!q, c] b".b ,"b2!(E c 0w  1 q0x!q0xx1@ "0@ "1```2@ 鏤 2鏤!nԍ " B "  "  " B "  " , np-03,dVYSXC0W10oT= b@ "2d"fc " 8n,d "&~(,0> Nb4  .8 8 "p-010@PT= b@Q!8nĤ<h,dH3<\ XbG)p<,d^ @00_-1!b0?PPT< b@ R " T _- " <nФ,d "G 0R ^- T _-!  0 nбB03s#,dP_Up ғ"Q_U` R"$Q2U R" ғ"_UU R"DDP B" #Z3A0Q n03yC ",dPp BQ` #(3,CY, nԱ03v#PU,dPODp B"QECTE B"ODDP B"E@ B"$@    #3 B, nm0`PU,dc@D# 3"  @ D  % ' ]E\U0   bЍx E 88!فnh i0ؠȪ,d^bcR l _bcT ! "fc`(P ɁL 1  =\-XGdp=,0^ B00_ 1b0?PPT= b@G0Q  *  =\-XG0^ p=@00_ 1b0?PPT= b@Q " " ɁL߈!ani j0k@lṔt "01 "<9!Д88EC!`f,d_vbpcTi^&cRXF0[1x1y!ebpw,d_bcT f^'cRXG01x1y!e`Dѐx "frca`f,d  "d(^bcR3 7_bcT[f5bpcs0`h1uQwAx1y!$^bcR2 6_bcT4bpcr01tQvAx1y!ђ "fx rPN`f,dr X^bcR  V+^cR b*!_crbcT P[p "d[&`'p`%P01qx1y!d "@cФEa(thQفnh i0m@ "0cdeЍذȻͫHc8,d_bT m ` bc`- b(!c ;P+LF}ɁH߈1n` d0 "cQ,! 4E33p 2"43` 2"1&33 2"1*30 2" $a n@D 0  "21 ",, ٱnk l0b@ " " Ғ```ɱ8߸1,,,H ( ( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( (( <( P( d( x( ( ( ( ( ( ( ( ( ,( @( T( h( |( ( ( ( ( ( ( ( ( 0( D( X( l( ( ( ( ( ( ( (  (  ( 4( H( \( p( ( ( ( ( ( ( ( ( $( 8( L( `( t( ( ( ( ( ( ( ( ( (( <( P( d( x( ( ( ( ( ( ( ( ( ,( @( T( h( |( ( ( ( ( ( ( ( ( 0( D( X( l( ( ( ( ( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( P( *U@*U@*U@*U@*U@*U@*U@*U@*U@0аЯPPPPPPPPPPPPп0*U@*U@*U@*U@*U@*U@*U@*U@ 3333?6f`f`6?f`f`6??`}; >0v0f0111>6`c`aq3?p0<< 0 08  80f`v??vf`  ` 80p`?0aac`c`f`f`l`l`x`x`0?>6???0`````80``?0``````````0? 11a```op```````p??0```op````````0?`` ?0``````00``````0??0````````0?````0? `88`????`p88p`?0````?0g`ollog0??0``````````````````````~a```a````````?0``````````````0?````````````````````````````````````````````?0```````cc``````0?````````````````````````````????c```acgn|xx|ngca`````````````````````ppyyo`o`f`f```````````````p`p`x`x`|`l`n`g`c`caa````?0````````````````````0?```````````````?0````````````x`~`f`c`3?````````~gca````?0````0<`````0?``````````````````````````0?````````000``````````````f`f`o`o`y900````p0990p````````00 80p `p08 `????9p``?0?p`p?``````op``````````po?0```````0?``````?0``````````0?`?0````0`?``?0````````0?```0?000007?80`0`0`0`0`0`0`0`g~<`````acgn||ngca`nw`f`f`f`f`f`f`f`f`o80`0`0`0`0`0`0`0`?0``````````0?op``````````po`````?0``````````0?`````o80`0000000?pp`>`p?````````1?```````00````````f`f`o`o`y90``p99p`````````1?1?8p8<<8<`~`gc n+X+\+p~,,$Can't create APA-16 font! abort. +x+P+T+` V+++ F 4+++ <X+:,$Header:apa16tty.c 12.0$$Header:apa_structs.h 12.0$`H&N p p& p&J&p` p`"``P&b&0p` p=p?`LChpp` d` p ` Rp \` p ` J` Tp dp ` = = $ p ,= 4p bp p Tp `U jp ` = = ` = = p&`2 pB=V=j==== p`=&=<=F=` pppYp`==,=hpr]@@@@@@@@@/P@@@@@@@@>P@0@4@8@<@@BPD@H@L@P@T@X@\@`@d@h@l@p@t@x@|TP@XP@\P@@@@@ !&1CRa+<ny,d,d,f,h,j,l,n,p,r,t,v,x,z ,|,~,#,+9L,Yxck0+L0+P+T+X+\'<+`Ln]jx+p+t+x+~, ,$):<CJR+dw++ V+ + F++ ?+R 4f+x , <,,3XHYk,u.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_rcsidapa_structs_apa16fonthead_apa16fontBits_apa16fontBM_screen_swL00BSS_apa16cursorX_apa16cursorY_firstPel_lastPel_firstScan_lastScan_borderFPel_borderFScan_borderLPel_borderLScan_pel_pad_scan_pad_font_wd_font_ht_col_wd_col_ht_apa16_buffer_apa16_buf_pointer_char_corner_QUEinstr_QUEptr_prev_apa16hidden_moved_apa16locator_busy_un_init_apa16set_fontinfo_.apa16set_fontinfoldiv$$_apa16init_que_.apa16init_que_apa16init_fontblt_.apa16init_fontblt_apa16incr_dst_rect_.apa16incr_dst_rect_apa16font_load_.apa16font_load_apa_fontblt_.apa_fontblt_apa16clear_hidden_.apa16clear_hidden_apa16_probe_.apa16_probe_apa16init_reg_.apa16init_reg_apa16clear_screen_.apa16clear_screen_QUE_CLEAR_.QUE_CLEAR_EXECUTE_QUE_CMDS_.EXECUTE_QUE_CMDSlmul$$_bzero_.bzero_apa16bitmap_init_.apa16bitmap_init_printf_.printf_apa16load_cursor_.apa16load_cursor_apa16_screen_init_.apa16_screen_init_apa16write_char_.apa16write_char_apa16underline_.apa16underline_apa16hi_intensity_.apa16hi_intensity_apa16_screen_putc_.apa16_screen_putc_apa16_pos_cursor_.apa16_pos_cursor_apa16_screen_blank_.apa16_screen_blank_lp_screen_blank_.lp_screen_blank_apa16_screen_move_.apa16_screen_move_lp_screen_move_.lp_screen_move_apa16_screen_print_.apa16_screen_print_lp_screen_print_.lp_screen_print_WAIT_QUE_.WAIT_QUEapa8ctty.o 597739366 0 10 100664 7223 `  Hxفn "Rؐș% S& ' Š ( Ű  .,ڹک c) PO) c* #"*٤Ѵbc(c.`b 2 bc#!`c # ɁD߈pqS01RrsS23R@$0/2.2" 6*2(.032,SR03鏤!!P #R "S#Q!鏤 anl (0P3 p " r R"  ȁbc@ؠȪbЪ"-!i,9 bЪ!b! 20=Y AT 1= I e0QeQUE=I e0QeQUE 2bv2bЪ"b*U62I <CV90 V90< 2bЪ"b*@6rq) ں `dc`!ܱ) c` b1`Ъc 6#**..b1!(. ` x  bpa0|!a0|h1@nҤ@ R" B(0P3  " B P - O!```LQ P O```Q "21"!c ", 0 X"??  21 n(0P3  "  R"   T"  V" , nm    0!0 n̤ ͍+(,03@DbL0  .41 $͍44 ne @( P" B@DЪAdNT@D @RD @TD @VD b0cP@,1 ١nŢl0`b v k[ "ޯ  +q-"(0P3 ]`Pd<@D @RD  c@&q-"(@PD `c<03 0R3  c@q=bdI ɡ<ɡ<ߨ!ٱnk l0`b 2`b 1 -!c`+һ $ ɱ8߸!BPUdTD` o21 P" EAAA #  O```AAanm f0g@hPs͡` "01c`dpe    Ȑ R" p(ذȻ2(0P3  "Ӥ ``b  ←+cюbcФBa`+4!cp` 3pP( b " ``b bp"b+"  "```s3t!c#!2!9*t1 1( b$ " `b 2`b b"  "```r!!2!( " phs!0Zd`e 3pah r1de Z2!jhr!s 0r1s!d`e a`!p``b  ←+c bcФBa`ذȻȉPJPDhQٱn`B "e`Cc(PPU 03 0R3  "c@ bcФBɱ8߸1١nĪ2PUcSͳ"b%(P "  R" %c@ bcBɡ<ߨ1١nj k0l@t "0cdeT  ⺐bcdH  ⺐bcd  ɡ@ߨ1n` d0 "cR,! (PPU @D $ R"    !3 n03P bq3"̍,, n03P bq3"č,, ????WARNING: THE COLUMN HEIGHT IS ODD!! J 0 | Can't create APA-8C font! Abort. N,LH , \d : l  $Header:apa8ctty.c 12.0$$Header:apa_structs.h 12.0$ p`D!Z"z"##:`Z``""++`#p/`p8p9p!.pn`?`p pbEE`#$pX`pM`^#rO# # *# :# LO h` ` # S :` |# S p Y Jp T] ` `@@H@t Px@|@@@*P@@.P@@@@@@@@@@@>P@@DP@@@@LP NP@@RP@ @$XP(@,@0@4\P8@<@@@D@  H!&1 LCNUfpz P ` p    -8lB Uiw  J " .0;BJ \o  |  ,&N8CO4bv DHLL1BT`m\ d ,h x* :?Pbt l.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_rcsidapa_structs_screen_swL00BSS_apa8CcursorflagL00990010_apa8Cscr_char_mask_y1_rotatemasks_y2_rotatemasks_x_rotatemasks_rotate_amt_apa8c_buffer_apa8c_buf_pointer_font_wd_font_ht_col_wd_col_ht_col_MAX_line_MAXL00990024_bitmap_addr_line_addr_col_addr_apa8Cset_fontinfo_.apa8Cset_fontinfo_apa8fonthead_printf_.printfldiv$$lmul$$_apa8Cinit_fontblt_.apa8Cinit_fontblt_apa8Cincr_dst_rect_.apa8Cincr_dst_rect_apa8Cfont_load_.apa8Cfont_load_apa_fontblt_.apa_fontblt_apa8Cclear_.apa8Cclear_bzero_.bzero_apa8C_set_colors_.apa8C_set_colors_apa8C_init_hdwr_.apa8C_init_hdwr_apa8C_probe_.apa8C_probe_apa8C_screen_init_.apa8C_screen_init_apa8fontBits_apa8fontBM_APA8CWRITE_CURSOR_.APA8CWRITE_CURSOR_apa8Cwrite_char_.apa8Cwrite_char_CHAR_LOOP_.CHAR_LOOP_apa8C_screen_putc_.apa8C_screen_putc_APA8CREMOVE_CURSOR_.APA8CREMOVE_CURSOR_CHAR_BLANK_LOOP_.CHAR_BLANK_LOOP_apa8C_pos_cursor_.apa8C_pos_cursor_apa8Cclearline_.apa8Cclearline_apa8C_screen_blank_.apa8C_screen_blank_lp_screen_blank_.lp_screen_blank_BLANK_LOOP_.BLANK_LOOP_apa8Cscroll_down_.apa8Cscroll_down_SCREEN_LOOP_.SCREEN_LOOP_apa8Cscroll_up_.apa8Cscroll_up_apa8C_screen_move_.apa8C_screen_move_lp_screen_move_.lp_screen_move_apa8C_screen_print_.apa8C_screen_print_lp_screen_print_.lp_screen_print_APA8C_XOR_CURSOR_.APA8C_XOR_CURSOR apa_fontblt.o 597739375 0 10 100664 1682 ` ,08*_030._B(^/B,(2B.* OTPQS"YBS,XBR-aذȻ0& r۔Гяf2 "2 $1q tK[(u0pp05rq /, $#  /*% i (V+ *!Bgwq|ojg dB~q /*.$) $p5H4KГщ2a Xhqng h0Bؐș0کJb!b.29() $"!b.")*ʹ"#)(")*," )& $ & $]9$V',!p5 bV1 & _9'$*!!v4 $ 0 & _9'$*!v4 $ 0 tٍbqHx!??rn$Header:apa_fontblt.c 12.0$$Header:apa_structs.h 12.0$`|``2^@@P@T@X@\@`@ !3EX0_0m4{8<>@DHJLNPRTVXZ#-r8EnSZ.oVncs.oVhc2.1n.oVO_rcsid_rcsidapa_structs_left_mask_values_right_mask_valuesL00BSS_dst_nextline_src_nextline_height_dst_plusL0099009_dst_base_src_base_src_x_src_y_dst_x_dst_y_width_nshorts_preload_src_skew_src_left_mask_right_mask_init_copyfont_.init_copyfont_copyfont_.copyfont_apa_fontblt_.apa_fontbltlmul$$hard_delay.o 597739378 0 10 100664 430 ` T0 !菤@A ```!03nԍ, h0\$Header:hard_delay.c 12.0$@@ @@ T!&1X>\JW`^0f.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_delay_count_hard_delay_.hard_delay_delay_.delaycallabs.o 597739380 0 10 100664 245 ` 0H` b0c@dPk j0,p"$Header:callabs.s 12.0$@ @ 0$ ,,5.oVncsrcsid_callabs_.callabs_fnaddr_.fnaddr aton.o 597739384 0 10 100664 424 ` h(x n@+ @- ,@0Ax ",, x$Header:aton.c 12.0$> P @@P P h!l'.4;AH.oVncs.oVhc2.1n.oVO_rcsid_aton_.aton_atoi_.atoi_atox_.atoxcrcgen.o 597739388 0 10 100664 447 ` (` ّnj k0 7b@A 0Q0!1C!!!m C Q!B1C!" !B1C!!!C@!  ͱ ɑDߘ!"(鏱 $Header:crcgen.c 12.0$@@@ @ !*4=G.oVncs.oVhc2.1n.oVO_rcsid_crc_gen_.crc_gen_combine_.combine time.o 597739393 0 10 100664 649 ` X,l ٱnl P0QbP>FI@3D Q`P 0!I HkICbcQ6>H p!G@`@ DC`@ BC`@ @ 0! 0,p!ɱ<߸oP! 2"RUP%%* PހU(PU'e@Q^`T Q" $e p0p0Alh$Header:time.c 12.0$`@@ @@ X!\)`/6hCQ.oVncs.oVhc2.1n.oVO_rcsid_xclock_time_.time_adjustmonth_.adjustmonth vtop.o 597739396 0 10 100664 527 ` hD (nc " " m  "p0.$b0 bad virtual address $Header:vtop.c 12.0$$ 4pD @@ P$ P( P h!+l18=CHNV_.oVncs.oVhc2.1n.oVO_rcsid_err_flag_vtop_.vtop_iow_.iow_ior_.ior_printf_.printf perror.o 597739400 0 10 100664 1139 ` Xlxnc @DA  .0,.$BdND0,  <Xt(D\|%s : unknown error number (%d) %s : %s $Header:perror.c 12.0$BAD FILE DESCRIPTORRELATIVE SEEK NOT SUPPORTEDINVALID DRIVE SPECIFICATIONUNKNOWN DEVICE SPECIFIEDINVALID UNIT SPECIFICATIONDIRECTORY SEARCH FOR FILE FAILEDDEVICE I/O ERRORUNDEFINED DRIVER COMMANDBAD SECTOR ERRORWRITE CHECK ERRORUNCORRECTABLE ECC ERRORHARD ERRORUNKNOWN DRIVE TYPEINVALID PARTITION NUMBERSUPER BLOCK READ ERRORCAN'T WRITE FILES YET... SORRYWRITE EXCEEDS PARTITION SIZE LIMITBAD BLOCK ENTRY NOT FOUND IN BBTp" @ @@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@|P X!\.6?FNW.oVncs.oVhc2.1n.oVO_rcsid_sys_errlist_perror_.perror_errno_printf_.printf com.o 597739406 0 10 100664 1032 ` X 8n "Д ") 5"@ ``` 0"@bЍTb0 5" nP3U@.00(,C 4"B003 1"E@ "p0, nm " Ȕ I LOd P053 0"@ ```ҐQU 'm@@ ``` 0"@ ``` @ ``` 0"b0053053 5"  hdebug: no COM card at address %x $Header:com.c 12.0$```@@@ @@<P@@ !&18BO]ghr.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_modelL00BSS_kbd_init_com_getchar_.com_getchar_init_kbd_.init_kbd_com_putchar_.com_putchar_com_baud_printf_.printfegatty.o 597739432 0 10 100664 10762 ` lxpRqB04p Hp%Iq%q%@\14 ٱnk l0m@.@P L0= b;@b51= ```MU L ɱ8߸1nбҔ .0@ .0Hb"ԍ0 nO0!0@P 0V0 n03 02 2 p2 2  " =<2 22 04p#2 0?2@ 0pp" bnd0>#@ b@..N,! ّni 2b>@AjRb^@"@klʠp  .4bS" `   * 0*1*2*3*Ȫ```  *```p  .4ɑ@ɑ@ߘQّni j@`bͲ2b> p  . b2bd0 b2bd4p  .ɑ@ɑ@ߘ1$4BA $p40A```ne d0`@b"`Pc>4Ѐ Ӡ " .01cPeЍ03`Р "4! nЀ $ A"hP//DBlj86`^!/ 03(*, / ^03(*"/ ^03(* 0`0b1 0 nm "bЍ0 03@`@!@ /AD n 03 #20 ```.4鏤 鏤 nd b08b@,! ّni q b $=`btq b &bc@,  !q b & -*q b $ Ť,> !ɑ@ߘ! ibm3101~~~~l|88||8<<<<~~<<<><~~<ffffffff{|`8ll8 |<~~<~<~~< 0``0(ll(88||||88<<<fff$lllllll||| 0f8ll8vv000` 00000 0 0f<><~~<ffffff{>c8ll8x~~~<~~<<~~< 0``0$ff$<~~<0xx000llllllll0|x 00f8l8vv``0```0`00`f<x00000x xflxlf```bf8ll8ff|``xxff|lfxpx0000xx0l88lx00xƌ2fx`````x`0 xx8l00x |v``|ffxx |vxx8l```v| `lvff0p000x x`flxlp00000xxxff|`v| vf`|x 0|004vx0ll8l| 0d00000000v8l[OS7Q[l     ^+](^ 8 9 : ; < =>? `OV:Q`p     ^.]( ^n      pO\/_     $(      `OV:Q`p     ^.]( ^n     T@T@T@T@2tx $2EGA_SCREEN_BLANK leave ega_screen_blank EGA_SCREEN_MOVE leave ega_screen_move ega_pos_cursor (%d, %d) (%d):(%x)x 6 \6f ` $Header:egatty.c 12.0$,`b'pt))'p*)D-t)'p)\``p`p`pN7pTCdECCCGHp@ PPPPPPPPx@@@@@@@@@@@@@@@@(P@4,P8@<@@@h@l@p@t@x@|6P@@@@@@@BPDPFP !,7<GV^Ph o uTTTTTTTtx2!1CVh2{ $ ,3; GT De6w \f T6 ` d h l& t8KS\ckw.oVncs.oVhc2.1n.oVO_rcsid_screen_sw_term_type_cpu_cpu_model_screen_buffer_clines_scrn_ptrL00BSS_mode_ega_font8x14_ega_font8x8_ega_tmp_ega_reg_3star_ega_reg_7_ega_reg_3_ega_reg_c_ega_mode_init_ega_set_reg_.ega_set_reg_ega_load_font_.ega_load_font_ega_init_regs_.ega_init_regs_ega_screen_clear_.ega_screen_clear_ega_screen_blank_.ega_screen_blank_ega_pos_cursor_.ega_pos_cursor_ega_attr_la_ega_screen_attr_.ega_screen_attr_ega_screen_putc_.ega_screen_putc_edebug_aed_pr_.aed_pr_ega_screen_move_.ega_screen_move_bcopy_.bcopy_rmve_block_.rmve_block_ega_screen_init_.ega_screen_init_ega_read_sw_.ega_read_sw_ega_probe_.ega_probe_screen_probe_.screen_probe_ega_paint_color_.ega_paint_color_egaopen_.egaopen_egaclose_.egaclose_ega_fgbg_.ega_fgbg_ega_screen_print_.ega_screen_print_lp_put_.lp_put_delay_.delay_put_status_.put_status_lpstatusmpeltty.o 597739446 0 10 100664 5435 `  8`2@ 鏤 2鏤! H"  0 J3```   n PS! "! $P%&!'!()b3!6 "0 @ " P菤Pn" P!"1#A%!!$b7<1nl m0b@!L ]bcЍ041 nФ P!b2{0 nl0$Pc%&!!3` P!"b3UD!١nm0 "   "P1 ذȻ Q;P+~Q;P+dw  , 1 QKP;bA}ɡ<ذȻ ߨ!١nk l0PMA9 ؠȪ Q:P*8PM`  ` ! 0`  @  ɡ<ɡ<ؠȪ ߨ!n P!"1$!%1+&!'()b:@!n̤ PS!"!b3o4 nȤ P!"!#1$A%Qb6S 8Aّni j0k@lP "P 03 P#Q3H "0Ѥ1cde  " `  c4<13`Ъ @+` PɑHߘQn P!P "Q#!$%1&Q'A(b9@1n$`  `@P4`0@cP,1 n$`  `@P4`0@cP,1 ٱnk l0m@ "0cdeЍ "P 03 P#Q3Ĵːbcdwɱ<ːbcd ɱ<ɱ<߸1n` d0 "cV,! ٱnl P ɱ8k0@ 0 J3303` 0  bcF ɱ8b09դ@0 b1(’Ƥ@ ɱ803  ```A߸!PS@ ND "QS ```PP U    "  ``` T eQbSb_  H"  1qnłؠȪP qH° û Tд eЪQbSb_ Ѵ H"   J p     z!  } {qHx1n> B, nԤ"0@, UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUp@@@p @@0pD|^ 8 t \ l X h8 V P b(> $Header:mpeltty.c 12.0$ pppp p p2``p`p*`p`2 pD0 p:p`` pj>pp8pF@@ @@@P@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d/Ph@l@p@t@x@|9P@@@=P@@@@@EP@@@  8!, <4 <L_ f u  4  @ D H^  "* T<O X_p \8   ht l p( 88I Zl    V #6FW jP~ b  (  ( 9 K.oVncs.oVhc2.1n.oVO_rcsid_screen_sw_cursor_CTable_mpelcursorflag_mpel_ucode_loadedL00BSS_mpel_cursor_x_mpel_cursor_y_mpcurpars_mpel_screen_buffer_mpel_buf_pointer_mpel_probe_.mpel_probe_mpelinit_reg_.mpelinit_reg_mpel_clear_all_.mpel_clear_all_wfifo_.wfifo_bzero_.bzero_mpel_screen_init_.mpel_screen_init_mpelwrite_char_.mpelwrite_char_mpelclear_char_.mpelclear_char_mpel_fillcolor_.mpel_fillcolor_mpel_fillrect_.mpel_fillrect_mpelendhi_.mpelendhi_mpelbeginhi_.mpelbeginhi_mpel_screen_putc_.mpel_screen_putc_mpelxor_cursor_.mpelxor_cursor_mpel_pos_cursor_.mpel_pos_cursor_mpel_screen_blank_.mpel_screen_blank_lp_screen_blank_.lp_screen_blank_mpelscroll_.mpelscroll_mpelscroll_down_.mpelscroll_down_mpelscroll_up_.mpelscroll_up_mpel_screen_move_.mpel_screen_move_lp_screen_move_.lp_screen_move_mpel_screen_print_.mpel_screen_print_lp_screen_print_.lp_screen_print_putfifo_.putfifo_mpelicmd_.mpelicmd_mpelicmd2_.mpelicmd2_delay_.delay_tableptr_mpel_load_color_table_.mpel_load_color_table_mpel_enter_FIFO_.mpel_enter_FIFO lptty.o 597739452 0 10 100664 1886 ` hpّnm i0j@kP!D&&bc`*m b)c@ c1bЍɑ@ߘaفni j@kP!D&b$& m`۴j mӴ%#bh)bې!cn)*cb)!( )@!(```ɁDbj)bck)-cd bcɁDɁD߈Qّnm Vbʲ&2$bl !`b @"  `  -V *Q ᛴ ,I > !ɑ@ߘAn03@(Դ  >>> !b0 nm D 8@>ܴC# "@  "Ҥ "   0AC ! 0 nФ "  ȍ Ĥ h0 xZ& ` ERRORTIMEOUT (p@$Header:lptty.c 12.0$p$ 2 B rp 6pJ  @@ P@P@$@(P0@P@X@\@`@dP !&1<FWipw Z(&`(< @"p,7>F.oVncs.oVhc2.1n.oVO_rcsid_cpu_cpu_model_screen_sw_lpstatus_lp_screen_blank_.lp_screen_blanklmul$$_bzero_.bzero_lp_screen_move_.lp_screen_move_bcopy_.bcopy_lp_screen_print_.lp_screen_print_lp_put_.lp_put_put_status_.put_status_lp_hard_delay_lp_status_.lp_status_lp_reset_.lp_reset_delay_.delayutils.o 597739457 0 10 100664 1148 ` \d,HXn8!91:A;Q8!1'/@!'@y @n bЍ@y @n@y! 0A nЍ.bЍb0! P@! @D@cA @P@!bPٱnk l0bm b0  d Kbd Mdbc  /ɱ8߸!Huh, yes or no? |v $Header:utils.c 12.0$ ` p&:@@@ @0 P4 P8@<@@PDPHP \&`+1|9vBIRZcipy.oVncs.oVhc2.1n.oVO_rcsidutils_yes_.yes_prompt_.promptL00BSSL8.reply_printf_.printf_gets_.gets_getunit_.getunit__ctype__cmdcmp_.cmdcmp_strlen_.strlen_index_.index_strncmp_.strncmperr.o 597739461 0 10 100664 398 ` H(x n7!819A:QzQyAx1.! ,A \ $Header:err.c 12.0$$. @@ PP H%L*08AGN.oVncs.oVhc2.1n.oVO_rcsid_err_err_.err_printf_.printf_exit_.exitdkpart.o 597739474 0 10 100664 1702 ` L|8an2!31f@4Qpr!p/  a`r!pV / a`r!` X jGpͱd@+D A+Ep x  Tq " `ps!lp  CA`.Wac\7pv(c` v(c` 1,v c`1,q,c`v82w0 q t!1 A`.@Waq 0p 1c\Qba`ha%s%d: can't redefine %c partition - minidisk entry ignored %s%d%c: start %d size %d $Header:dkpart.c 12.0$2p45556,4@@`3P L!,7?@IV`fjnsy&/8@IRZcks}P.oVncs.oVhc2.1n.oVO_rcsid_int3table_int4table_hostid_hostname_hostnamelen_boottime_time_tz_hz_phz_tick_lbolt_avenrun_avenrun_scale_maxuprc_hand_nblkdev_nchrdev_nswdev_mpid_runin_runout_runrun_kmapwnt_curpri_maxmem_physmem_endmem_holestart_holelength_nswap_updlock_rablock_rasize_rootdev_dumpdev_dumplo_swapdev_argdev_noproc_panicstr_wantin_boothowto_selwait_dkfindpart_.dkfindpart_hddebug_printf_.printfldiv$$lmul$$#] elo[ #ʞ#ʞ#ʟ(ߖ @D D`F F D FFF PU  _UOED0<$Header:srt0.s 12.0$@^p p @ %-8=GOW`jorcsid.oVncs_edata_startstart_.start_cpu_model_end_mem_holemain_gostartup_startup_.startup_cpu#] floՁ #ʠ#ʠ#ʡ8PU @D D`F F D FFFԴf@DoPp0TTd PU  _UOED0<$Header:srt0.s 12.0$@`np p p@ %-8@vEJT\dmw|rcsid.oVncs_edata_startstart_.start_cpu_modelnorelocloop_end_mem_holemain_gostartup_startup_.startup_cpu#] glo '&#ʢ#ʢ#ʣ  %0ߖ @D D`F F D FFF PU  _UOED0<$Header:srt0.s 12.0$@^p p @@% %-8=GOW`jow~rcsid.oVncs_edata_startstart_.start_cpu_model_end_mem_holemain_gostartup_startup_.startup_cpu_symtabSYMTAB#] ilo0G 8##2#"(# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:lanleaf.mc 12.0$ # $ACIS:lanleaf.mc 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/lanleaf.mc,v $ # # Sendmail # Copyright (c) 1983 Eric P. Allman # Berkeley, California # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)lanleaf.mc 5.1 (Berkeley) 9/17/85 # ############################################################ ############################################################ ##### ##### SENDMAIL CONFIGURATION FILE ##### ##### Prototype for sites having a local area ethernet only. ##### ############################################################ ############################################################ ############################################################ ### local info ############################################################ # domain DDXXX CDLOCAL XXX # host on LAN with UUCP (or other) connection DRXXX # official hostname Dj$w.$D # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:base.m4 12.0$ # $ACIS:base.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/base.m4,v $ ############################################################ # # General configuration information # # This information is basically just "boiler-plate"; it must be # there, but is essentially constant. # # Information in this file should be independent of location -- # i.e., although there are some policy decisions made, they are # not specific to Berkeley per se. # ############################################################ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:version.m4 12.0$ # $ACIS:version.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/version.m4,v $ ###################### # Version Number # ###################### DZ5.17 ########################## ### Special macros ### ########################## # my name DnMAILER-DAEMON # UNIX header format DlFrom $g $d # delimiter (operator) characters Do.:%@!^=/[] # format of a total name Dq$g$?x ($x)$. # SMTP login message De$j Sendmail $v/$Z ready at $b # forwarding host -- redefine this if you can't talk to the relay directly DF$R ################### ### Options ### ################### # location of alias file OA/usr/lib/aliases # wait up to ten minutes for alias file rebuild Oa10 # substitution for space (blank) characters OB. # (don't) connect to "expensive" mailers #Oc # default delivery mode (deliver in background) Odbackground # temporary file mode OF0600 # default GID Og1 # location of help file OH/usr/lib/sendmail.hf # log level OL9 # default network name ONARPA # default messages to old style Oo # queue directory OQ/usr/spool/mqueue # read timeout -- violates protocols Or2h # status file OS/usr/lib/sendmail.st # queue up everything before starting transmission Os # default timeout interval OT3d # time zone names (V6 only) OtPST,PDT # default UID Ou1 # wizard's password OW* # load average at which we just queue messages Ox8 # load average at which we refuse connections OX12 ############################### ### Message precedences ### ############################### Pfirst-class=0 Pspecial-delivery=100 Pbulk=-60 Pjunk=-100 ######################### ### Trusted users ### ######################### Troot Tdaemon Tuucp Teric Tnetwork ############################# ### Format of headers ### ############################# H?P?Return-Path: <$g> HReceived: $?sfrom $s $.by $j ($v/$Z) id $i; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: # HPosted-Date: $a # H?l?Received-Date: $b H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> ########################### ### Rewriting rules ### ########################### ################################ # Sender Field Pre-rewriting # ################################ S1 #R$*<$*>$* $1$2$3 defocus ################################### # Recipient Field Pre-rewriting # ################################### S2 #R$*<$*>$* $1$2$3 defocus ################################# # Final Output Post-rewriting # ################################# S4 R@ $@ handle <> error addr # externalize local domain info R$*<$*LOCAL>$* $1<$2$D>$3 change local info R$*<$*LOCAL.ARPA>$* $1<$2$D>$3 change local info R$*<$*.CC>$* $1$2$3 strip .CC R$*<$+>$* $1$2$3 defocus R@$+:@$+:$+ @$1,@$2:$3 canonical # UUCP must always be presented in old form R$+@$-.UUCP $2!$1 u@h.UUCP => h!u # delete duplicate local names -- mostly for arpaproto.mc R$+%$=w@$=w $1@$3 u%UCB@UCB => u@UCB R$+%$=w@$=w.ARPA $1@$3.ARPA u%UCB@UCB => u@UCB ########################### # Name Canonicalization # ########################### S3 # handle "from:<>" special case R<> $@@ turn into magic token # basic textual canonicalization -- note RFC733 heuristic here R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting R$*<$*<$+>$*>$* $3 2-level <> nesting R$*<$+>$* $2 basic RFC821/822 parsing R$+ at $+ $1@$2 "at" -> "@" for RFC 822 # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later R@$+,$+ @$1:$2 change all "," to ":" # localize and dispose of route-based addresses R@$+:$+ $@$>6<@$1>:$2 handle # more miscellaneous cleanup R$+ $:$>8$1 host dependent cleanup R$+:$*;@$+ $@$1:$2;@$3 list syntax R$+:$*; $@$1:$2; list syntax R$+@$+ $:$1<@$2> focus on domain R$+<$+@$+> $1$2<@$3> move gaze right R$+<@$+> $@$>6$1<@$2> already canonical # convert old-style addresses to a domain-based address R$-:$+ $@$>6$2<@$1> host:user R$+^$+ $1!$2 convert ^ to ! R$-.$+!$+ $@$>6$3<@$1.$2> host.domain!user R$-!$+ $@$>6$2<@$1.UUCP> host!user (uucp) R$+%$+ $@$>6$1<@$2> user%host R$-=$+ $@$>6$2<@$1.BITNET> host=user (bitnet) R$-.$+ $@$>6$2<@$1> host.user # always include local and tcp mailers (tcp for [w.x.y.z]-style addrs) # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:localm.m4 12.0$ # $ACIS:localm.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/localm.m4,v $ ############################################################ ############################################################ ##### ##### Local and Program Mailer specification ##### ############################################################ ############################################################ Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u S10 R@ $n errors to mailer-daemon # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:tcpm.m4 12.0$ # $ACIS:tcpm.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/tcpm.m4,v $ ############################################################ ############################################################ ##### ##### Arpanet TCP Mailer specification ##### ##### Messages processed by this specification are assumed to leave ##### the local domain -- hence, they must be canonical according to ##### RFC822 etc. ##### ############################################################ ############################################################ Mtcp, P=[IPC], F=mDFMueXL, S=14, R=14, A=IPC $h, E=\r\n S14 # pass 's through R<@$+>$* $@<@$[$1$]>$2 resolve # map colons to dots everywhere..... R$*:$* $1.$2 map colons to dots # handle the simple case.... R$+<@$-.ARPA> $@$1<@$[$2.ARPA$]> user@host.ARPA # output local hosts in user@host.Berkeley.EDU syntax R$+<@LOCAL> $@$1<@$w.$A> local names R$+<@$+.LOCAL> $@$1<@$2.$A> local hosts R$+<@$*$=S> $@$1<@$2$3.$A> R$+<@$*$=Z> $@$1<@$2$3.$A> R$+<@$+.BITNET> $@$1%$2.BITNET<@$w.$A> user@host.BITNET R$+<@$+.CSNET> $@$1%$2.CSNET<@CSNET-RELAY.ARPA> user@host.CSNET R$+<@$+.DEC> $@$1%$2.DEC<@decwrl.ARPA> user@host.DEC R$+<@$+.UUCP> $@$2!$1<@$w.$A> user@host.UUCP # handle other external cases R$+<@$-> $@$1<@$[$2$]> no .ARPA on simple names #R$+<@$+.$-.ARPA> $@$1%$2<@$[$3.ARPA$]> approximate something R$+<@[$+]> $@$1<@[$2]> already ok R$+<@$+> $@$1<@$[$2$]> set for named # convert remaining addresses to old format and externalize appropriately R$+ $:$>5$1 => old format R$-:$+ $@$2<@$1.$A> convert berk hosts #R$+<@$+> $@$1<@$2@$A> pessmize R$+ $:$1<@$w.$A> tack on our hostname R$+%$=R<@$=A> $1<@$[$3$]> strip unneeded relay # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:zerobase.m4 12.0$ # $ACIS:zerobase.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/zerobase.m4,v $ ############################################################ ############################################################ ##### ##### RULESET ZERO PREAMBLE ##### ##### The beginning of ruleset zero is constant through all ##### configurations. ##### ############################################################ ############################################################ S0 # first make canonical R$*<$*>$* $1$2$3 defocus R$+ $:$>3$1 make canonical # handle special cases..... R@ $#local$:$n handle <> form R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec # arrange for local names to be fully qualified R$*<$*$=S>$* $1<$2$3.LOCAL>$4 user@etherhost R$*<$*$=Z>$* $1<$2$3.LOCAL>$4 user@berkhost R$*<$+.ARPA.LOCAL>$* $1<$2.ARPA>$3 because ARPA is a host # now delete the local info R$*<$*$=w.$=T>$* $1<$2>$5 thishost.LOCAL R$*<$*$=w>$* $1<$2>$4 thishost R$*<$*.>$* $1<$2>$3 drop trailing dot R<@>:$* $@$>0$1 retry after route strip R$*<@> $@$>0$1 strip null trash & retry # forward around hosts with communication problems R$*<@$=F.LOCAL>$* $#ether$@$F$:$1<@$2.LOCAL>$3 reroute message ################################## # End of ruleset zero preamble # ################################## ############################################### ### Machine dependent part of rulset zero ### ############################################### # resolve names destined to ibmsupt to go via local UUCP R$+<@ibmsupt.UUCP> $#uucp$@ibmsupt$:$1 ibmsupt!user R$+<@ibmsupt> $#uucp$@ibmsupt$:$1 ibmsupt!user # (all other UUCP machines go through relay host defined by "DR" above) # resolve local ethernet names R$*<@$*$-.$=D>$* $#ether$@$3$:$1<@$2$3.$4>$5 user@host.LOCAL R$*<@$->$* $#ether$@$2$:$1<@$2>$3 user@host # forward other domains to a relay host R$*<@$+.$+>$* $#ether$@$R$:$1<@$2.$3>$4 user@host.DOMAIN # everything else must be a local name R$+ $#local$:$1 local names # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:etherm.m4 12.0$ # $ACIS:etherm.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/etherm.m4,v $ ############################################################ ############################################################ ##### ##### Ethernet Mailer specification ##### ##### Messages processed by this configuration are assumed to remain ##### in the same domain. Hence, they may not necessarily correspond ##### to RFC822 in all details. ##### ############################################################ ############################################################ Mether, P=[IPC], F=mDFMueCX, S=11, R=21, A=IPC $h S11 R$*<@$+>$* $@$1<@$2>$3 already ok R$+ $@$1<@$w> tack on our hostname S21 # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:uucpm.m4 12.0$ # $ACIS:uucpm.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/uucpm.m4,v $ ############################################################ ############################################################ ##### ##### UUCP Mailer specification ##### ############################################################ ############################################################ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:compat.m4 12.0$ # $ACIS:compat.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/compat.m4,v $ ############################################################ ############################################################ ##### ##### Provide Backward Compatibility ##### ############################################################ ############################################################ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:berkhosts.m4 12.0$ # $ACIS:berkhosts.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.hosttable/RCS/berkhosts.m4,v $ ############################################################ ############################################################ ##### ##### Berknet Host List ##### ############################################################ ############################################################ # A-H, Q, and S are in the computer center domain CZK ucbvax vax CZT MathStat ucbmathstat CZX onyx ucbonyx CZR Are are ucbare ##################################################### # General code to convert back to old style names # ##################################################### S5 R$+<@$-.LOCAL> $2:$1 u@h.LOCAL => h:u R$+<@$=Z> $@$2:$1 u@bhost => h:u R$+<@$=C> $@$2:$1 u@cchost => h:u R$+<@$-.Bitnet> $C!$2:$1 u@h.Bitnet => cfo-relay!h:u R$+<@$-.CC> $C!$2:$1 u@h.CC => cfo-relay!h:u R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u R$+@$+.ARPA $1@$2 u@host.ARPA => u@host Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, A=uux - -r -z -a$f -gC $h!rmail ($u) S13 R$+ $:$>5$1 convert to old style R$=w!$+ $2 strip local name R$*<@$=S>$* $1<@$2.$A>$3 resolve abbreviations R$*<@$=Z>$* $1<@$2.$A>$3 resolve abbreviations R$*<@$->$* $1<@$2.ARPA>$3 resolve abbreviations R$+<@$+> $2!$1 uucpize (no @'s in addr) R$+ $:$U!$1 stick on our host name R$=w!$=R:$+ $:$1!$3 ucbvax!ucbvax:xxx S23 R$+ $:$>5$1 convert to old style R$*<@$=S>$* $1<@$2.$A>$3 resolve abbreviations R$*<@$=Z>$* $1<@$2.$A>$3 resolve abbreviations R$*<@$=w>$* $1<@$2.$A>$3 resolve abbreviations R$*<@$->$* $1<@$2.ARPA>$3 resolve abbreviations R$+<@$*$=w.EDU> $2$3.EDU!$1 uucp!u@local -> local!uucp!u #] jloC! j### 0@hx)P`! __.SYMDEF 597787314 0 10 100666 36804 ` A$,F3F=FBFGFMpTp\pelt}\\\ "(/6@EKRYchnuZ|ZZZZ!+0DY6`6j6o6u6|ŪŪŪŪŪŪŪ '̘.̘8̘=̘E̘N̘U̘]NdNkNsІzІІѾѾѾ222հհհհհհհհ*հ8հEհSհ`հnհ}հհVVVVVV88888$4ELV[n     &,2;ELU_fpuFFF~~~~~~~~~#######%#.#8#@#I#Q#Z.a.k.p.y000004Z4Z4Z4Z4Z?????CCCCC'E.E8E=EFEPdWdadfdndwdddddddrrrrr...    @ @ &@ +@ 8@ F@ L@ S@ Y@ `@ f@ m t ~              $ 4 ; B JL QL YL b i p x   : : : v v v v v v v          $ + 1~ 8~ @~ I P X a h o w. ~. . . .    2 2 2 2 2         ŀ ŀ %ŀ *ŀ 0ŀ ;ŀ Eŀ Pŀ ^ŀ mŀ yŀ ŀ ŀ ŀ ŀ h h h Π Π Π Π Π Π Π Π Π | | | #| *| 2t 9t ?t F M W \ e o v              %1<HS&Z&a&h&o&v&|&&&JJJJJJJzzzz,z8?LXdo{@@@@@>>>&&&&& %,4H;HEHJHQHY ` j o y            #2*2129j@jJjOjVj^`e`o`t`{`LLL     $$$$$ ('(1(6(?(I*P*_*o,8v,8,8---/ / / 000002|2| 2|33$3,434B4R6BY6Ba6Bj7~q7~{7~7~7~7~7~7~7~7~7~7~7~7~7~TTTV%V0V<WJCWJMWJRWJ[WJjWJzWJWJWJWJWJWJWJWJWJWJWJ WJii,i:jAjLjXl<_l<il<nl<xl<ooooorrrrruuuuuu%u0u<uGuS|HZ|Hd|Hi|Hv|H|H|H|H|Hfff#*49BLS`nPuP~P((((((->KYft !+6@KU`ju||| )5@LWcqRRRLLLL LX#X-X2XBXNX[XgXtXXddd  +7BNbUb_bdbob{TTTTTTTTT#*49@HOY^dk,r,y,>>#>(>4>AHRWet{#####2222 222222 22(221383?3G5N5X5]5e5n6u6{67779292929292;Z;Z;Z;Z;Z==== = = = = #= .= :@ A@ G@ NB0 UB0 ]B0 fCl mCl uCl |Cl Cl Cl E< E< E< E< E< H H H IF IF IF J~ J~ J~ J~!J~!J~!J~!$J~!*J~!1J~!BJ~!KJ~!UQ!\Q!fQ!kQ!tQ!~S!S!S!S!S!T!T!T!T!T!V!V!V!V!V!W!W"W" W"W"Y"!Y"(Y"0Z:"7Z:">Z:"F[r"M[r"W[r"\[r"e[r"o]"v]"]"]"]"`v"`v"`v"`v"`v"`v"`v"`v"`v"`v"`v#`v#`v#n#&n#0n#5n#;n#Br#Ir#Pr#Xsp#_sp#isp#nsp#wsp#u`#u`#u`#u`#u`#wb#wb#wb#wb#wb#y^#y^#y^#y^#y^$y^$ y^$y^$#y^$0y^$;y^$Gy^$Sy^$`y^$ky^$wy^$y^$y^$y^$$$$z$z$z$z$z$$$%%%n%n% n%%n%.n%8%?%I%N%W%a%h%n%uD%|D%D%D%D%%%%%%%%%%%f%f%f%&&&&&)&5&Bd&Id&Sd&Xd&fd&uV&|V&V&V&V&&&&&&&&&&'x' x'x'x'*x'9x'Ix'Z'a'k'p'w'''''''''''>'>'>'>'>''((((!(&(/(9N(@N(JN(ON(UN(\(c(m(r(x((((((((((((((((()) ))) )*)/)8)B)J)S)^)j)t))))))))))))))z*z* z***#*(*1*;*B*L*W*^*e*m:*t:*|:*v*v*v*******,*,*,*,*,*,+,+ ,+,+,+%,+/'+6'+>'+G(P+N(P+X(P+](P+h(P+t(P+}(P+(P+(P+(P+(P+(P+(P+(P+(P+(P+(P+(P+(P+/,/,/,/,/,$/,-/,7/,A/,L/,V/,a/,g/,n/,v/,/,/,8d,8d,8d,8d,8d,8d,8d,?X,?X,?X,?X,?X,Ex-Ex-Ex-Ex-Ex-)Ex-5Ex-BNx-INx-SNx-XNx-`Nx-iP-pP-zP-P-P-P-Y-Y-Y-[-[-[-[-[-aF-aF-aF-b-b-b.d. d.d.d.&d.4k .;k .Ek .Jk .Vk .gk .yk .k .k .k .k .k .k .k /k /k /k /+k /;t/Bt/Lt/Qt/\t/ht/st/t/t/V/V/V/V/V/V/V/ / / / / //00 000'03 0: 0D 0I 0P 0X 0` 0i 0q 0z 0 0 0 0 0000000T0T0T000111111(1/191>1I1U1a1n1u11T1T1T1T1T111111°1°1°2 222"2*23Ũ2:Ũ2EŨ2Q2X2b2g2s22222222222X2X3X3͜3͜3!͜3*͜33͜3=͜3F͜3P͜3Z͜3eJ3lJ3uJ3ш3ш3ш3333333V3V3V3V3V44 44 D4'D41D46D4?D4I4P4\4i64p64~64܄4܄4܄4܄4܄4,4,4,4,4,4߾4߾4߾4455 555&51<58<5B<5G<5U<5d:5k:5u:5z:555555555@5@5@55566 666%6/646;6CT6JT6TT6YT6aN6hN6pN6y666666666666666677777&7/767@7E7N7X7_7i7n7v7777X7X7X7X7X7 7 7 7 7 7 7 7 8 8 8 8 8  8*<81<89<8B8I8S8X8a8kX8rX8{X888888L8L8L8L8L888889V9V9V9V9V9)909:9?9G9Pj9Wj9aj9fj9nj9w9~9999!@9!@9!@9!@9!@9!@9!@9!@9!@: !@:!@:(!@:9!@:H!@:X!@:g!@:w!@:!@:!@:!@:!@:!@:!@:!@:!@;!@;!@;)!@;;!@;G!@;T!@;]!@;g/;n/;x/;}/;/;/;/;1;1;1;1;1;1<1<6 <6 <"6 <'6 <66 n>p>p>&p>0q>7q>=q>Ds.>Ks.>Ts.>^tl>etl>otl>ttl>|tl>tl>tl>tl>tl>tl>tl>>>>>>>>?? ???!?&?/?9?@?J?O?Z?fJ?mJ?wJ?|J?J???????????????@$@$@$@f@#f@-f@2f@;f@E@L@V@[@d@n@u@@@@@@@@@@@\@\@\@@@AA AAA(A1A;ABAJASAZAdAiAqAz2A2A2AnAnAnAAAAAArArArArArAABBNBNB NB*B1B;B@BHBQBXB`BiBpByBBBBDBDBDBBBBBBBBB B C C  C CȒC"ȒC(ȒC/C6C=CEXCLXCWXCa̸Ch̸Co̸CwC~CC,C,C,C,C,C,C,C,C,C,C,C,D,D,D,D),D6,DD,DN,DY,De,Dr,D|,D,D,D,D,D,D,D,D,D,D,D,E,E,E%,E6:E=:EG:EL:EW:Ec:Eo:E|EEEEEEEEEEEEEFF FF,F?FSF_FlFF`F`F`F`F`F`F`FFFFG GJG%JG/JG4JG<JGEGLGVG[GiGzGGGGGGGGGGHH HH'H8HAHKHZHj-Hq-H{-H-H-H5`H5`H5`H5`H5`H<H<H<H<H<HC HC HC IC IC I G4I'G4I1G4I6G4IIG4I]G4IoG4IG4IG4IG4IG4IG4IG4JG4JG4J*G4J9G4JIG4JTG4J`G4JsG4JRTJRTJRTJRTJRTJT.JT.JT.JT.JT.JT.JT.KT.K!T.K3T.KJT.KbY$KiY$KsY$KxY$KY$KY$KY$KY$KY$KY$LY$LY$L#Y$L5Y$LEY$LVY$LjY$LY$LY$LY$LY$LY$LY$LY$LY$M Y$M'Y$M8Y$MJc0MQc0M[c0Mfc0Moc0M{c0Mc0Mc0Mc0Mc0Mc0Mc0M.oVncs__exit_._exit.oVncs_abort_.abort.oVncs.oVhc2.1n.oVO_abs_.abs.oVncs_accept_.accept.oVncs_access_.access.oVncs_acct_.acct.oVncs_adjtime_.adjtime.oVncs.oVhc2.1n.oVO_alarm_.alarm.oVncs_alloca_.alloca.oVncs_async_daemon_.async_daemon.oVncs.oVhc2.1n.oVO_atof_.atof.oVncs.oVhc2.1n.oVO_atoi_.atoi.oVncs.oVhc2.1n.oVO_atol_.atol.oVncs.oVhc2.1n.oVO_authnone_create_.authnone_create.oVncs.oVhc2.1n.oVO_authunix_create_.authunix_create_authunix_create_default_.authunix_create_default.oVncs.oVhc2.1n.oVO_xdr_authunix_parms_.xdr_authunix_parms.oVncs.oVhc2.1n.oVO_bcmp_.bcmp.oVncs_bind_.bind.oVncs_bcopy_.bcopy_blt_.bltblt$$_.blt$$.oVncscurbrkminbrk_brk_.brk_sbrk_.sbrk.oVncs_bzero_.bzero_mfill_.mfill.oVncs__c19d_._c19d.oVncs.oVhc2.1n.oVO_calloc_.calloc_cfree_.cfree.oVncs_chdir_.chdir.oVncs_chmod_.chmod.oVncs_chown_.chown.oVncs_chroot_.chroot.oVncs_clear_.clear.oVncs.oVhc2.1n.oVO_clnt_sperror_.clnt_sperror_clnt_sperrno_.clnt_sperrno_clnt_perror_.clnt_perror_clnt_syslog_.clnt_syslog_clnt_perrno_.clnt_perrno_rpc_createerr_clnt_pcreateerror_.clnt_pcreateerror.oVncs.oVhc2.1n.oVO__raw_buf_clntraw_create_.clntraw_create.oVncs.oVhc2.1n.oVO_callrpc_.callrpc.oVncs.oVhc2.1n.oVO_clnttcp_create_.clnttcp_create.oVncs.oVhc2.1n.oVO_clntudp_bufcreate_.clntudp_bufcreate_clntudp_create_.clntudp_create.oVncs_close_.close.oVncs.oVhc2.1n.oVO_closedir_.closedir.oVncs.oVhc2.1n.oVO_clearerr_.clearerr.oVncsFPaGET0FPaPUT0fpgetfpput__compat_._compat.oVncs_connect_.connect.oVncs.oVhc2.1n.oVO_copysign_.copysign.oVncs_creat_.creat.oVncs.oVhc2.1n.oVO_setkey_.setkey_encrypt_.encrypt_crypt_.crypt.oVncs.oVhc2.1n.oVO_ctime_.ctime_localtime_.localtime_asctime_.asctime_gmtime_.gmtime_dysize_.dysize.oVncs.oVhc2.1n.oVO__ctype_.oVncs__udl2x1_._udl2x1__cvd10_._cvd10.oVncs.oVhc2.1n.oVO_getdiskbyname_.getdiskbyname.oVncs.oVhc2.1n.oVO__dknu_._dknu.oVncs.oVhc2.1n.oVO__dknu16_._dknu16.oVncs.oVhc2.1n.oVO__doprnt_._doprnt.oVncs.oVhc2.1n.oVO__sctab__doscan_._doscan__getccl_._getccl__innum_._innum__instr_._instr.oVncs.oVhc2.1n.oVO__drem_._drem.oVncs_.drem_drem.oVncs_dup_.dup.oVncs_dup2_.dup2.oVncs.oVhc2.1n.oVO_cvtrounding_.cvtrounding_ecvt_.ecvt_ftoa_.ftoa_fcvt_.fcvt.oVncs.oVhc2.1n_sys_errlist_sys_nerr.oVncs.oVhc2.1n.oVO_ether_line_.ether_line_ether_ntoa_.ether_ntoa_ether_aton_.ether_aton_ether_hostton_.ether_hostton_ether_ntohost_.ether_ntohost.oVncs_execl_.execl.oVncs_execle_.execle.oVncs_exect_.exect.oVncs_execv_.execv.oVncs_execve_.execve.oVncs.oVhc2.1n.oVO_execlp_.execlp_execvp_.execvp.oVncs.oVhc2.1n.oVO_exit_.exit.oVncs_exportfs_.exportfs.oVncs_.fabs_fabs.oVncs_fchmod_.fchmod.oVncs_fchown_.fchown.oVncs_fcntl_.fcntl.oVncs.oVhc2.1n.oVO_fdopen_.fdopen.oVncs_ffs_.ffs.oVncs.oVhc2.1n.oVO_fgetc_.fgetc_fgets_.fgets.oVncs.oVncs.oVhc2.1n.oVO__filbuf_._filbuf.oVncs.oVhc2.1n.oVO__iob__smallbuf__findiop_._findiop__f_morefiles_._f_morefiles_f_prealloc_.f_prealloc__fwalk_._fwalk__cleanup_._cleanup.oVncs_flock_.flock.oVncs.oVhc2.1n.oVO__flsbuf_._flsbuf_fflush_.fflush_fclose_.fclose.oVncs.oVhc2.1n.oVO_fopen_.fopen.oVncs_fork_.fork.oVncs.oVhc2.1n.oVO_fpabort_.fpabort.oVncs.oVhc2.1n.oVO_classdouble_.classdouble_classfloat_.classfloat_isnan_.isnan_unordered_.unordered_finite_.finite_infinity_.infinity.oVncs_.fptestflag_fptestflag_.fpsetflag_fpsetflag_.fpclrflag_fpclrflag.oVncsfpstm5fpstm4fpstm3fpstm2fplm5fplm4fplm3fplm2.oVncs.oVhc2.1n.oVO_nextdouble_.nextdouble_nextfloat_.nextfloat.oVncs.oVhc2.1n.oVO_fprintf_.fprintf.oVncs_.fptestround_fptestround_.fpsetround_fpsetround.oVncs_.fptesttrap_fptesttrap_.fpsettrap_fpsettrap_.fpclrtrap_fpclrtrap.oVncs.oVhc2.1n.oVO_fputc_.fputc_fputs_.fputs.oVncs.oVncs.oVhc2.1n.oVO_fread_.fread.oVncs.oVhc2.1n.oVO_freopen_.freopen.oVncs.oVhc2.1n.oVO_frexp_.frexp.oVncs.oVhc2.1n.oVO_fseek_.fseek.oVncs.oVhc2.1n.oVO_setfsent_.setfsent_endfsent_.endfsent_getfsent_.getfsent_getfsspec_.getfsspec_getfsfile_.getfsfile_getfstype_.getfstype.oVncs_fstat_.fstat.oVncs_fstatfs_.fstatfs.oVncs_fsync_.fsync.oVncs.oVhc2.1n.oVO_ftell_.ftell.oVncs.oVhc2.1n.oVO_ftime_.ftime.oVncs_ftruncate_.ftruncate.oVncs.oVhc2.1n.oVO_fwrite_.fwrite.oVncs.oVhc2.1n.oVO_gcvt_.gcvt.oVncs.oVhc2.1n.oVO_get_myaddress_.get_myaddress.oVncs.oVhc2.1n.oVO_getchar_.getchar.oVncs_getdirentries_.getdirentries.oVncs_getdomainname_.getdomainname.oVncs_getdtablesize_.getdtablesize.oVncs_getegid_.getegid.oVncs.oVhc2.1n.oVO_getenv_.getenv.oVncs_geteuid_.geteuid.oVncs_getfh_.getfh.oVncs_getfloatstate_.getfloatstate.oVncs_getgid_.getgid.oVncs.oVhc2.1n.oVO_getgrgid_.getgrgid_setgrent_.setgrent_getgrent_.getgrent_endgrent_.endgrent_getgrnam_.getgrnam_fgetgrent_.fgetgrent.oVncs_getgroups_.getgroups.oVncs_gethostid_.gethostid.oVncs.oVhc2.1n.oVO_h_errno_gethostbyname_.gethostbyname__gethtbyname_._gethtbyname_gethostbyaddr_.gethostbyaddr__gethtbyaddr_._gethtbyaddr__sethtent_._sethtent__endhtent_._endhtent__gethtent_._gethtent.oVncs_gethostname_.gethostname.oVncs_getitimer_.getitimer.oVncs.oVhc2.1n.oVO_getlogin_.getlogin.oVncs.oVhc2.1n.oVO_getnetbyaddr_.getnetbyaddr.oVncs.oVhc2.1n.oVO_getnetbyname_.getnetbyname.oVncs.oVhc2.1n.oVO__net_stayopen_setnetent_.setnetent_endnetent_.endnetent_getnetent_.getnetent.oVncs.oVhc2.1n.oVO_setnetgrent_.setnetgrent_endnetgrent_.endnetgrent_getnetgrent_.getnetgrent.oVncs.oVhc2.1n.oVO_opterr_optind_optopt_optarg_getopt_.getopt.oVncs_getpagesize_.getpagesize.oVncs.oVhc2.1n.oVO_getpass_.getpass.oVncs_getpeername_.getpeername.oVncs_getpgrp_.getpgrp.oVncs_getpid_.getpid.oVncs_getppid_.getppid.oVncs_getpriority_.getpriority.oVncs.oVhc2.1n.oVO_getprotobynumber_.getprotobynumber.oVncs.oVhc2.1n.oVO__proto_stayopen_setprotoent_.setprotoent_endprotoent_.endprotoent_getprotoent_.getprotoent.oVncs.oVhc2.1n.oVO_getprotobyname_.getprotobyname.oVncs.oVhc2.1n.oVO_getpw_.getpw.oVncs.oVhc2.1n.oVO__pw_file__pw_db__pw_stayopen_getpwnam_.getpwnam_setpwent_.setpwent_endpwent_.endpwent_getpwent_.getpwent_getpwuid_.getpwuid_fgetpwent_.fgetpwent_strtol_.strtol_setpwfile_.setpwfile.oVncs_getrlimit_.getrlimit.oVncs.oVhc2.1n.oVO_getrpcbynumber_.getrpcbynumber_setrpcent_.setrpcent_getrpcent_.getrpcent_endrpcent_.endrpcent_getrpcbyname_.getrpcbyname.oVncs_getrusage_.getrusage_gets_.gets.oVncs.oVncs.oVhc2.1n.oVO_getservbyname_.getservbyname.oVncs.oVhc2.1n.oVO_getservbyport_.getservbyport.oVncs.oVhc2.1n.oVO__serv_stayopen_setservent_.setservent_endservent_.endservent_getservent_.getservent.oVncs_getsockname_.getsockname.oVncs_getsockopt_.getsockopt.oVncs_gettimeofday_.gettimeofday.oVncs.oVhc2.1n.oVO_setttyent_.setttyent_endttyent_.endttyent_getttyent_.getttyent.oVncs.oVhc2.1n.oVO_getttynam_.getttynam.oVncs_getuid_.getuid.oVncs.oVhc2.1n.oVO_getusershell_.getusershell_endusershell_.endusershell_setusershell_.setusershell.oVncs.oVhc2.1n.oVO_getw_.getw.oVncs.oVhc2.1n.oVO_getwd_.getwd.oVncs.oVhc2.1n.oVO_gtty_.gtty.oVncs_index_.index.oVncs.oVhc2.1n.oVO_inet_addr_.inet_addr.oVncs.oVhc2.1n.oVO_inet_lnaof_.inet_lnaof.oVncs.oVhc2.1n.oVO_inet_makeaddr_.inet_makeaddr.oVncs.oVhc2.1n.oVO_inet_netof_.inet_netof.oVncs.oVhc2.1n.oVO_inet_network_.inet_network.oVncs.oVhc2.1n.oVO_inet_ntoa_.inet_ntoa.oVncs.oVhc2.1n.oVO_initgroups_.initgroups.oVncs.oVhc2.1n.oVO_innetgr_.innetgr.oVncs.oVhc2.1n.oVO_insque_.insque_remque_.remque.oVncs_ioctl_.ioctl.oVncs.oVhc2.1n.oVO_isatty_.isatty.oVncs_kill_.kill.oVncs_killpg_.killpg.oVncs.oVhc2.1n.oVO__l10_._l10.oVncs.oVhc2.1n.oVO_ldexp_.ldexp.oVncsldiv$$_ldiv$$_.ldiv$$lrem$$_lrem$$_.lrem$$ldivmod$$_ldivmod$$_.ldivmod$$.oVncs_link_.link.oVncs_listen_.listen.oVncsulmul$$lmul$$_.ulmul$$_lmul$$_.lmul$$.oVncs.oVhc2.1n.oVO_lockf_.lockf.oVncs_lseek_.lseek.oVncs_lstat_.lstat.oVncs.oVhc2.1n.oVO_malloc_.malloc_morecore_.morecore_free_.free_realloc_srchlen_realloc_.realloc.oVncs.oVhc2.1n.oVO_memccpy_.memccpy.oVncs.oVhc2.1n.oVO_memchr_.memchr.oVncs.oVhc2.1n.oVO_memcmp_.memcmp.oVncs.oVhc2.1n.oVO_memcpy_.memcpy.oVncs.oVhc2.1n.oVO_memset_.memset.oVncs_mkdir_.mkdir.oVncs_mknod_.mknod.oVncs.oVhc2.1n.oVO_mkstemp_.mkstemp.oVncs.oVhc2.1n.oVO_mktemp_.mktemp.oVncs.oVhc2.1n.oVO_setmntent_.setmntent_endmntent_.endmntent_getmntent_.getmntent_addmntent_.addmntent_hasmntopt_.hasmntopt.oVncs.oVhc2.1n.oVO_modf_.modf.oVncs_mount_.mount.oVncs.oVhc2.1n.oVO__mul211_._mul211.oVncs.oVhc2.1n.oVO__mulu211_._mulu211.oVncs.oVhc2.1n.oVO__mulu32_._mulu32.oVncs.oVhc2.1n.oVO_dbm_open_.dbm_open_dbm_close_.dbm_close_dbm_forder_.dbm_forder_dbm_fetch_.dbm_fetch_dbm_delete_.dbm_delete_dbm_store_.dbm_store_dbm_firstkey_.dbm_firstkey_dbm_nextkey_.dbm_nextkey.oVncs_nfssvc_.nfssvc.oVncs.oVhc2.1n.oVO_nice_.nice.oVncs.oVhc2.1n.oVO_nlist_.nlist.oVncs.oVhc2.1n.oVO_ns_addr_.ns_addr.oVncs.oVhc2.1n.oVO_ns_ntoa_.ns_ntoa.oVncs_open_.open.oVncs.oVhc2.1n.oVO_opendir_.opendir.oVncs.oVhc2.1n.oVO_pause_.pause.oVncs.oVhc2.1n.oVO_perror_.perror.oVncs_pipe_.pipe.oVncs.oVhc2.1n.oVO_pmap_set_.pmap_set_pmap_unset_.pmap_unset.oVncs.oVhc2.1n.oVO_pmap_getmaps_.pmap_getmaps.oVncs.oVhc2.1n.oVO_pmap_getport_.pmap_getport.oVncs.oVhc2.1n.oVO_xdr_pmap_.xdr_pmap.oVncs.oVhc2.1n.oVO_xdr_pmaplist_.xdr_pmaplist.oVncs.oVhc2.1n.oVO_pmap_rmtcall_.pmap_rmtcall_clnt_broadcast_.clnt_broadcast.oVncs.oVhc2.1n.oVO_popen_.popen_pclose_.pclose.oVncs.oVhc2.1n.oVO_printf_.printf.oVncs_profil_.profil.oVncs.oVhc2.1n.oVO_psignal_.psignal.oVncs_ptrace_.ptrace.oVncs.oVhc2.1n.oVO_putchar_.putchar.oVncs.oVhc2.1n.oVO_puts_.puts.oVncs.oVhc2.1n.oVO_putw_.putw.oVncs.oVhc2.1n.oVO_qsort_.qsort.oVncs_quotactl_.quotactl.oVncs.oVhc2.1n.oVO__rad2b_._rad2b.oVncs.oVhc2.1n.oVO_srand_.srand_rand_.rand.oVncs.oVhc2.1n.oVO_srandom_.srandom_random_.random_initstate_.initstate_setstate_.setstate.oVncs.oVhc2.1n.oVO_rcmd_.rcmd_rresvport_.rresvport_ruserok_.ruserok__validuser_._validuser__checkhost_._checkhost.oVncs_read_.read.oVncs.oVhc2.1n.oVO_readdir_.readdir.oVncs_readlink_.readlink.oVncs_readv_.readv.oVncs_reboot_.reboot.oVncs_recv_.recv.oVncs_recvfrom_.recvfrom.oVncs_recvmsg_.recvmsg.oVncs.oVhc2.1n.oVO_re_comp_.re_comp_re_exec_.re_exec_cclass_.cclass_backref_.backref.oVncs_rename_.rename.oVncs.oVhc2.1n.oVO_dn_expand_.dn_expand_dn_comp_.dn_comp_dn_find_.dn_find_dn_skip_.dn_skip_getshort_.getshort_getlong_.getlong_putshort_.putshort_putlong_.putlong.oVncs.oVhc2.1n.oVO_opcodes_rcodes_p_query_.p_query_fp_query_.fp_query_p_cdname_.p_cdname_p_rr_.p_rr_p_type_.p_type_p_class_.p_class.oVncs.oVhc2.1n.oVO_conffile__res_res_init_.res_init.oVncs.oVhc2.1n.oVO_res_mkquery_.res_mkquery.oVncs.oVhc2.1n.oVO_res_send_.res_send__res_close_._res_close.oVncs.oVhc2.1n.oVO_rewind_.rewind.oVncs.oVhc2.1n.oVO_rexecoptions_rexec_.rexec.oVncs_rindex_.rindex.oVncs.oVhc2.1n.oVO__rint_._rint.oVncs_.rint_rint.oVncs_rmdir_.rmdir.oVncs.oVhc2.1n.oVO_xdr_callmsg_.xdr_callmsg.oVncs.oVhc2.1n.oVO__null_auth_xdr_opaque_auth_.xdr_opaque_auth_xdr_deskey_.xdr_deskey_xdr_accepted_reply_.xdr_accepted_reply_xdr_rejected_reply_.xdr_rejected_reply_xdr_replymsg_.xdr_replymsg_xdr_callhdr_.xdr_callhdr__seterr_reply_._seterr_reply.oVncs.oVhc2.1n.oVO_ruserpass_.ruserpass_mkpwclear_.mkpwclear_mkpwunclear_.mkpwunclear.oVncs.oVhc2.1n.oVO__scalb_._scalb__logb_._logb.oVncs_.logb_logb_.scalb_scalb.oVncs.oVhc2.1n.oVO_scandir_.scandir_alphasort_.alphasort.oVncs.oVhc2.1n.oVO_scanf_.scanf_fscanf_.fscanf_sscanf_.sscanf.oVncs.oVhc2.1n.oVO_seekdir_.seekdir.oVncs_select_.select.oVncs_send_.send.oVncs_sendmsg_.sendmsg.oVncs_sendto_.sendto.oVncs.oVhc2.1n.oVO_setbuf_.setbuf.oVncs.oVhc2.1n.oVO_setbuffer_.setbuffer_setlinebuf_.setlinebuf.oVncs_setdomainname_.setdomainname.oVncs.oVhc2.1n.oVO_setegid_.setegid.oVncs.oVhc2.1n.oVO_seteuid_.seteuid.oVncs_setfloatstate_.setfloatstate.oVncs.oVhc2.1n.oVO_setgid_.setgid.oVncs_setgroups_.setgroups.oVncs.oVhc2.1n.oVO_sethostent_.sethostent_endhostent_.endhostent_sethostfile_.sethostfile.oVncs_sethostid_.sethostid.oVncs_sethostname_.sethostname.oVncs_setitimer_.setitimer.oVncs_setjmp_.setjmp_longjmp_.longjmp__setjmp_._setjmp__longjmp_._longjmp.oVncs_setpgrp_.setpgrp.oVncs_setpriority_.setpriority.oVncs_setregid_.setregid.oVncs_setreuid_.setreuid.oVncs.oVhc2.1n.oVO_setrgid_.setrgid.oVncs_setrlimit_.setrlimit.oVncs.oVhc2.1n.oVO_setruid_.setruid.oVncs_setsockopt_.setsockopt.oVncs_settimeofday_.settimeofday.oVncs.oVhc2.1n.oVO_setuid_.setuid.oVncs.oVhc2.1n.oVO__shlun_._shlun.oVncs_shutdown_.shutdown.oVncs.oVhc2.1n.oVO__sibuf.oVncs_sigblock_.sigblock.oVncs.oVhc2.1n.oVO_siginterrupt_.siginterrupt.oVncs.oVhc2.1n.oVO_sys_siglist.oVncs.oVhc2.1n.oVO_signal_.signal.oVncs_sigpause_.sigpause.oVncs_sigsetmask_.sigsetmask.oVncs_sigstack_.sigstack.oVncs_sigvec_.sigvec.oVncs.oVhc2.1n.oVO_sleep_.sleep.oVncs.oVhc2.1n.oVO__sobuf.oVncs_socket_.socket.oVncs_socketpair_.socketpair.oVncs.oVhc2.1n.oVO__spdiv8_._spdiv8.oVncs.oVhc2.1n.oVO_sprintf_.sprintf.oVncs_stat_.stat.oVncs_statfs_.statfs.oVncs_strcat_.strcat.oVncs.oVhc2.1n.oVO_strcatn_.strcatn.oVncs.oVhc2.1n.oVO_strchr_.strchr.oVncs_strcmp_.strcmp.oVncs.oVhc2.1n.oVO_strcmpn_.strcmpn.oVncs_strcpy_.strcpy.oVncs.oVhc2.1n.oVO_strcpyn_.strcpyn.oVncs.oVhc2.1n.oVO_strcspn_.strcspn.oVncs_strlen_.strlen.oVncs.oVhc2.1n.oVO_strncat_.strncat.oVncs_strncmp_.strncmp.oVncs.oVhc2.1n.oVO_strncpy_.strncpy.oVncs.oVhc2.1n.oVO__strout_._strout.oVncs.oVhc2.1n.oVO_strpbrk_.strpbrk.oVncs.oVhc2.1n.oVO_strrchr_.strrchr.oVncs.oVhc2.1n.oVO_strspn_.strspn.oVncs.oVhc2.1n.oVO_strtok_.strtok.oVncs.oVhc2.1n.oVO_stty_.stty.oVncs.oVhc2.1n.oVO_svc_fds_xprt_register_.xprt_register_xprt_unregister_.xprt_unregister_svc_register_.svc_register_svc_unregister_.svc_unregister_svc_sendreply_.svc_sendreply_svcerr_noproc_.svcerr_noproc_svcerr_decode_.svcerr_decode_svcerr_systemerr_.svcerr_systemerr_svcerr_auth_.svcerr_auth_svcerr_weakauth_.svcerr_weakauth_svcerr_noprog_.svcerr_noprog_svcerr_progvers_.svcerr_progvers_svc_getreq_.svc_getreq_svc_run_.svc_run.oVncs.oVhc2.1n.oVO__svcauth_null__authenticate_._authenticate_._svcauth_null.oVncs.oVhc2.1n.oVO__svcauth_unix_._svcauth_unix__svcauth_short_._svcauth_short.oVncs.oVhc2.1n.oVO_svcraw_create_.svcraw_create.oVncs.oVhc2.1n.oVO_pl_registerrpc_.registerrpc.oVncs.oVhc2.1n.oVO_svctcp_create_.svctcp_create_svcfd_create_.svcfd_create.oVncs.oVhc2.1n.oVO_svcudp_bufcreate_.svcudp_bufcreate_svcudp_create_.svcudp_create_svcudp_enablecache_.svcudp_enablecache.oVncs.oVhc2.1n.oVO_swab_.swab.oVncs.oVhc2.1n.oVO_swapfpflag_.swapfpflag.oVncs.oVhc2.1n.oVO_swapfptrap_.swapfptrap.oVncs_swapon_.swapon.oVncs.oVhc2.1n.oVO_swapround_.swapround.oVncs_symlink_.symlink.oVncs_sync_.sync.oVncs_syscall_.syscall.oVncs.oVhc2.1n.oVO_syslog_.syslog_openlog_.openlog_closelog_.closelog_setlogmask_.setlogmask.oVncs.oVhc2.1n.oVO_system_.system.oVncs.oVhc2.1n.oVO_tell_.tell.oVncs.oVhc2.1n.oVO_telldir_.telldir.oVncs.oVhc2.1n.oVO__TenToThe_._TenToThe.oVncs.oVhc2.1n.oVO_time_.time.oVncs.oVhc2.1n.oVO_times_.times.oVncs.oVhc2.1n.oVO_timezone_.timezone.oVncs.oVhc2.1n.oVO_tmpnam_.tmpnam.oVncs_truncate_.truncate.oVncs.oVhc2.1n.oVO_ttyname_.ttyname.oVncs.oVhc2.1n.oVO_ttyslot_.ttyslot.oVncs.oVhc2.1n.oVO_ualarm_.ualarm.oVncsuldiv$$_uldiv$$_.uldiv$$ulrem$$_ulrem$$_.ulrem$$.oVncs_umask_.umask.oVncs__umf2x2_._umf2x2__umf2x1_._umf2x1__umf1x1_._umf1x1_FPdMULT_.FPdMULT.oVncs_umount_.umount.oVncs.oVhc2.1n.oVO_ungetc_.ungetc.oVncs_unlink_.unlink.oVncs_unmount_.unmount.oVncs.oVhc2.1n.oVO_usleep_.usleep.oVncs.oVhc2.1n.oVO_utime_.utime.oVncs_utimes_.utimes.oVncs_vadvise_.vadvise.oVncs.oVhc2.1n.oVO_valloc_.valloc.oVncs_vdspin_.vdspin.oVncs_vdspind_.vdspind.oVncs_vdstats_.vdstats.oVncs_vfork_.vfork.oVncs_vhangup_.vhangup.oVncs.oVhc2.1n.oVO_vlimit_.vlimit.oVncs.oVhc2.1n.oVO_vtimes_.vtimes.oVncs_wait_.wait.oVncs_wait3_.wait3.oVncs_.whichfpa_whichfpa.oVncs_write_.write.oVncs_writev_.writev.oVncs.oVhc2.1n.oVO_xdr_void_.xdr_void_xdr_int_.xdr_int_xdr_long_.xdr_long_xdr_u_int_.xdr_u_int_xdr_u_long_.xdr_u_long_xdr_short_.xdr_short_xdr_u_short_.xdr_u_short_xdr_char_.xdr_char_xdr_u_char_.xdr_u_char_xdr_bool_.xdr_bool_xdr_enum_.xdr_enum_xdr_opaque_.xdr_opaque_xdr_bytes_.xdr_bytes_xdr_netobj_.xdr_netobj_xdr_union_.xdr_union_xdr_string_.xdr_string_xdr_wrapstring_.xdr_wrapstring.oVncs.oVhc2.1n.oVO_xdr_array_.xdr_array_xdr_vector_.xdr_vector.oVncs.oVhc2.1n.oVO_xdr_float_.xdr_float_xdr_double_.xdr_double.oVncs.oVhc2.1n.oVO_xdrmem_create_.xdrmem_create.oVncs.oVhc2.1n.oVO_xdrrec_create_.xdrrec_create_xdrrec_skiprecord_.xdrrec_skiprecord_xdrrec_eof_.xdrrec_eof_xdrrec_endofrecord_.xdrrec_endofrecord.oVncs.oVhc2.1n.oVO_xdr_reference_.xdr_reference_xdr_pointer_.xdr_pointer.oVncs.oVhc2.1n.oVO_xdrstdio_create_.xdrstdio_create.oVncs.oVhc2.1n.oVO_yp_all_.yp_all.oVncs.oVhc2.1n.oVO__ypsleeptime__ypserv_timeout__yp_dobind_._yp_dobind_yp_bind_.yp_bind_yp_unbind_.yp_unbind_yp_get_default_domain_.yp_get_default_domain.oVncs.oVhc2.1n.oVO_yp_first_.yp_first_v1prot_dofirst_.v1prot_dofirst_yp_next_.yp_next_v1prot_donext_.v1prot_donext.oVncs.oVhc2.1n.oVO_yp_master_.yp_master.oVncs.oVhc2.1n.oVO_yp_match_.yp_match.oVncs.oVhc2.1n.oVO_yp_order_.yp_order.oVncs.oVhc2.1n.oVO_yperr_string_.yperr_string.oVncs.oVhc2.1n.oVO_xdr_ypresp_master_.xdr_ypresp_master_xdr_ypresp_order_.xdr_ypresp_order_xdr_ypmaplist_wrap_string_.xdr_ypmaplist_wrap_string_xdr_ypmaplist_.xdr_ypmaplist_xdr_ypresp_maplist_.xdr_ypresp_maplist_xdr_yppushresp_xfr_.xdr_yppushresp_xfr_xdr_ypreq_xfr_.xdr_ypreq_xfr_xdr_ypall_.xdr_ypall_xdr_ypbind_setdom_.xdr_ypbind_setdom.oVncs.oVhc2.1n.oVO_ypprot_err_.ypprot_err.oVncs.oVhc2.1n.oVO__yprequest_arms__xdr_yprequest_._xdr_yprequest__ypresponse_arms__xdr_ypresponse_._xdr_ypresponse__xdr_ypbind_oldsetdom_._xdr_ypbind_oldsetdom.oVncs.oVhc2.1n.oVO_xdr_datum_.xdr_datum_xdr_ypdomain_wrap_string_.xdr_ypdomain_wrap_string_xdr_ypmap_wrap_string_.xdr_ypmap_wrap_string_xdr_ypreq_key_.xdr_ypreq_key_xdr_ypreq_nokey_.xdr_ypreq_nokey_xdr_ypresp_val_.xdr_ypresp_val_xdr_ypresp_key_val_.xdr_ypresp_key_val_xdr_yp_inaddr_.xdr_yp_inaddr_xdr_yp_binding_.xdr_yp_binding_ypbind_resp_arms_xdr_ypbind_resp_.xdr_ypbind_resp_xdr_ypowner_wrap_string_.xdr_ypowner_wrap_string_xdr_ypmap_parms_.xdr_ypmap_parms.oVncs.oVhc2.1n_countbase_numctrs_monstartup_.monstartup_monitor_.monitor_mcountmcount_moncontrol_.moncontrol_exit.o 597787180 0 10 100777 205 ` (<(`@p `@ (F")_exit.o.oVncs__exit_._exitmcount abort.o 597787180 0 10 100777 247 ` ( H@`@$Header:abort.s 12.0$ `@ (@ <(/abort.orcsid.oVncs_abort_.abortmcount abs.o 597787180 0 10 100777 238 ` 0Tn` ",, @ h' 0%}+2abs.o.oVncs.oVhc2.1n.oVO_abs_.absmcountaccept.o 597787180 0 10 100777 255 ` <H<`@pcPU0%  `(p@ <%,3accept.o.oVncs_accept_.acceptmcount_errno access.o 597787181 0 10 100777 255 ` <H<`@p!PU0%  `(p@ <%,3access.o.oVncs_access_.accessmcount_errno acct.o 597787181 0 10 100777 249 ` <H<`@p3PU0%  `(p@  <R&-acct.o.oVncs_acct_.acctmcount_errno adjtime.o 597787181 0 10 100777 300 ` < TT`@pPU0% $Header:adjtime.c 12.0$ `(p@<T$).5.oVncs.oVhc2.1n.oVO_authnone_create_.authnone_createmcount__null_auth_xdrmem_create_.xdrmem_create_xdr_opaque_auth_.xdr_opaque_authauth_unix.o 597787168 0 10 100777 3363 ` qn`g h0i@jP (k  (> q l  (>( q8 9 "pqR3 4\r5 s t\3 4[u 5 6!0vq݁ݑݡjȑ bc@P1b  .H!q!t2bpj 20 1,c 0 (>lbqbdp q\0 1[r 2 b}bqxQ@ّn`$b0T .!#Xj \k (cЍ`i  .0!0bcdedɑ$dߘ@Yn`, n`y"Bq#sb0cp 0! ١n`j 2#H#X#b#%%@8@<@@@D@H@L@P P PPPPPP@@PPTPXP\ P`@d@l@t@|"P$P@@@ h'`+=DLsU.[d4nzQ}jU T%F?eLZcmPv]y>.oVncs.oVhc2.1n.oVO_authunix_create_.authunix_createmcount_malloc_.malloc__iob_fprintf_.fprintf__null_auth_gettimeofday_.gettimeofday_xdrmem_create_.xdrmem_create_xdr_authunix_parms_.xdr_authunix_parms_perror_.perror_exit_.exit_bcopy_.bcopy_authunix_create_default_.authunix_create_default_gethostname_.gethostname_geteuid_.geteuid_getegid_.getegid_getgroups_.getgroups_free_.free_xdr_opaque_auth_.xdr_opaque_auth authunix_prot.o 597787168 0 10 100777 746 ` t80n`l m0 7=b@ ,=b #= b =M01bX !< <!@(#)authunix_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro$Header:authunix_prot.c 12.0$ * < N h pt @<@DPHPL PP P h'.CJoVQcoy|B4.oVncs.oVhc2.1n.oVO_xdr_authunix_parms_.xdr_authunix_parmsmcount_xdr_u_long_.xdr_u_long_xdr_string_.xdr_string_xdr_int_.xdr_int_xdr_array_.xdr_arraybcmp.o 597787181 0 10 100777 313 ` H$`n`@A @@RP!1 !,@A ,1 @(#)bcmp.c 1.0 84/10/03 IBM @ Hh$')8d/j6=bcmp.o_sccsid.oVncs.oVhc2.1n.oVO_bcmp_.bcmpmcount bind.o 597787181 0 10 100777 249 ` <H<`@phPU0%  `(p@ F<x&-bind.o.oVncs_bind_.bindmcount_errno blt.o 597787181 0 10 100777 1419 ` \$ p`@#2#x`@e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$* `!4`<!@@ \HV p'l.5;BIPW^djqvv{J.^PppUx*blt.orcsidbbltrtollsfwalcfwcyleturnlchwcylcwdslm12wslcbytslmwordlmbytelmbbbblmhwdrsfwarcfwcyrretrmobrcwdsrm12wsrcbytsrmwordrm1brmwobrmmobrmbrmwo1robretrmb1.oVncs_bcopy_.bcopymcount_blt_.bltblt$$_.blt$$ brk.o 597787181 0 10 100777 561 ` H `@@D#"$b@d ( B鏤 `@03#"#d b00CP% F ` `<`P`X f`` pPP@@ 2 ='.38>EKFRYbrk.obrk10syserror.oVncscurbrkminbrk_end_brk_.brkmcount_sbrk_.sbrk_errno bzero.o 597787181 0 10 100777 621 ` ( `@@`@`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$$ ` .`6 @ @ D\ X'-4;BIP{W_fm$ubzero.orcsidsrcfwackfwllreturnckwdsll13wsckbytsllwordllbyte.oVncs_bzero_.bzeromcount_mfill_.mfill c19d.o 597787182 0 10 100777 410 `  `@١Ĥ@1mkѪAᬤ 񪉟01ɡb$Header:c19d.s 12.0$ ` @ L*dpf!(F/7>c19d.orcsidc1zc1c2c4c3.oVncs__c19d_._c19dmcountcalloc.o 597787158 0 10 100777 633 ` p800n`` b0cl bm c b4! n`,1 H$Header:calloc.c 12.0$  . TX@@ P P@P ph%'*kt23;B:IQsZ{aip_Hxy~calloc.o_rcsid.oVncs.oVhc2.1n.oVO_calloc_.callocmcountlmul$$_malloc_.malloc_bzero_.bzero_cfree_.cfree_free_.free chdir.o 597787182 0 10 100777 252 ` <H<`@p PU0%  `(p@ <L")0chdir.o.oVncs_chdir_.chdirmcount_errnochmod.o 597787182 0 10 100777 252 ` <H<`@pPU0%  `(p@  <n")0chmod.o.oVncs_chmod_.chmodmcount_errnochown.o 597787182 0 10 100777 252 ` <H<`@pPU0%  `(p@ ,<")0chown.o.oVncs_chown_.chownmcount_errnochroot.o 597787182 0 10 100777 255 ` <H<`@p=PU0%  `(p@ (<%,3chroot.o.oVncs_chroot_.chrootmcount_errno clear.o 597787182 0 10 100777 322 ` < ` T`@@$Header:clear.s 12.0$ `$p*@ <!T(`07>clear.orcsid.oVncs_.mfill_clear_.clearmcount_mfillclnt_perror.o 597787168 0 10 100777 3690 `  \p`ٱn`k0lcqBrDp>bdbp!c bbp!wrQqA>bbĉq!>"BDbbĉlrQqA> bbĉ[q!rk >Hbb” >Tbd qA>Xbbĉ-rQqA>|bbĉ"lP//"  Dd >bbɱ D߸!n`! d (>,! n`d ># ,! ١n`j ,k d>bЍbЍb,"d c>dbɡ<ߨn`d (>, n`d (>bp- p r->"BDb>bq-  >b4 n`@`@cx#|,A , n`@`@c#,AH , t@(#)clnt_perror.c 1.1 86/09/24 Copyr 1984 Sun Micro%s: ; errno = %s; low version = %lu, high version = %lu; why = %s(unknown authentication error - %d); low version = %lu, high version = %lu; s1 = %lu, s2 = %lu <l%sD%s(RPC: (unknown error code - %d)$%s%s: - - %s l, @ \ t  |0Ld$Header:clnt_perror.c 12.0$SuccessCan't encode argumentsCan't decode resultUnable to sendUnable to receiveTimed outIncompatible versions of RPCAuthentication errorProgram unavailableProgram/version mismatchProcedure unavailableServer can't decode argumentsRemote system errorUnknown hostPort mapper failureProgram not registeredFailed (unspecified error)Authentication OKInvalid client credentialServer rejected credentialInvalid client verifierServer rejected verifierClient credential too weakInvalid server verifierFailed (unspecified error) `2< T ^ z p   ", DN ``p4F`V ` t ppp.p6Fd@8@PP@ P@ @@P @,P0@\@`@l@@@@@@@@@@@@@@@@@ @@@$@,@4@<@D@L@T@\@`@ h'zD(7>FGQ$Ybu<p(!(N.4,Q#l I'x:vN.oVncs.oVhc2.1n.oVO_clnt_sperror_.clnt_sperrormcount_sprintf_.sprintf_strlen_.strlen_clnt_sperrno_.clnt_sperrno_strcpy_.strcpy_sys_errlist_clnt_perror_.clnt_perror__iob_fprintf_.fprintf_clnt_syslog_.clnt_syslog_syslog_.syslog_clnt_perrno_.clnt_perrno_rpc_createerr_clnt_pcreateerror_.clnt_pcreateerrorclnt_raw.o 597787168 0 10 100777 1958 ` @ ٱn`ȼ(123!41<b@P8cb< .@q+t2bp6,q+w20 bp03b@"`R81 D0-bɱ0h߸!qn|`!t1xA|Q؀Ȉx(ȸ0q'uBbp0pp0q'svHbpcp #q'qB1xbpp !tp"x2qCcpp A|1bpp bq<q't2bpp!0q'uBbp0p "pqR67Qr8:;ȑ bpc "q<cbp!tp"x2rCcp !tp"x2s3p h!tp"x2rCcp w 0bpcЍbq<xA!n`, n`m0 "0c@p 01 n`, n`, @(#)clnt_raw.c 1.1 86/09/24 Copyr 1984 Sun Microclnt_raw.c - Fatal header serialization error.f$Header:clnt_raw.c 12.0$ `8D T p`zpLr`@8@<@@@D@H@L@P P P P@PPPP@@@@ h'"`$IL4EL}[kxxjq ,>>.oVncs.oVhc2.1n.oVO__raw_buf_clntraw_create_.clntraw_createmcount_xdrmem_create_.xdrmem_create_xdr_callhdr_.xdr_callhdr_perror_.perror_authnone_create_.authnone_create_svc_getreq_.svc_getreq__null_auth_xdr_replymsg_.xdr_replymsg__seterr_reply_._seterr_reply_xdr_opaque_auth_.xdr_opaque_authclnt_simple.o 597787168 0 10 100777 1112 ` XxPHqn`h i0j@kPu, 5,1 t r  s c U4q,1 pL@ q$t2b@p0b -q0xusBt2p1$b "! 0 1cdep0,  "q0x4 23u,c 45Q|Axp,01ut1213q2pcp 4q0xzx@(#)clnt_simple.c 1.1 86/09/24 Copyr 1984 Sun Micro$Header:clnt_simple.c 12.0$ `,T d p@8@@PDPH PL PPPTPXP h'#Q-4<sEMV;]e-tU!.oVncs.oVhc2.1n.oVO_callrpc_.callrpcmcount_malloc_.malloc_strcmp_.strcmp_close_.close_gethostbyname_.gethostbyname_bcopy_.bcopy_clntudp_create_.clntudp_create_rpc_createerr_strcpy_.strcpyclnt_tcp.o 597787168 0 10 100777 3967 ` t<|فn|`l h0m@iP,Hj  (>L 030 "2#̤ LHk  (>(L 030 "2# bcdФVPbTbT Ɂ@! p #"1FX0) c@\ 030 "2#d0 2!80`d~!234564;b@Ph1bЍl 5~+t2bp<+~+w20 bpA1x01bep1 2t0*bɁ@bTbTp)xbɁ@p ߈a!an|`!t1xA|Qrbv4Ȗ0Q12VA@  1103p0q's|Fbpp1p #q'qB1xbpp !tp"x2qCcpp A|1bpp s3bp1s&a8bpq1 #3&a8qba8 %3&a8ذȻ0p q[56Qr 79:bp s&a8bpcЍ  s& a8r6 bЍs1!tp"x2rC1p 341bpAp s3v 0bp1 !tp"x2s3p s&a8hA!n`r"stR01Su2,! n`m0r 40c@p 01 n`, n`l r~-w20 -4pbЍb4 فn`j k0l@p ДX ɁL10 c@P "$ 3 4* ɁL3 ɁL q p*cd l  "4*3 64 3  bɁLȁȚ߈1١n`j k0l@mp*cdЍ "4*3 ɡ<Ე bɡ<ߨ1@(#)clnt_tcp.c 1.1 86/09/24 Copyr 1984 Sun Micro<hX`pclnttcp_create: out of memory clnttcp_create: out of memory $\, $Header:clnt_tcp.c 12.0$ *p8 D pN p`pp~ p p p p8@lz`` "0$ $X%p`&p|(*,(.h 8f0v p2 p.4> p@8@<@@@D@H@L@P P PPPPPPPPPP!P@#P'P)P+P-P@@@@@ /P1P@3P h'*;BJsS.Yb4l{hRy&tQp8} x*8}GWhz; +<>NVP_els[{.oVncs.oVhc2.1n.oVO_clnttcp_create_.clnttcp_createmcount_malloc_.malloc__iob_fprintf_.fprintf_rpc_createerr_errno_pmap_getport_.pmap_getport_free_.free_socket_.socket_connect_.connect_gettimeofday_.gettimeofday_getpid_.getpid_xdrmem_create_.xdrmem_create_xdr_callhdr_.xdr_callhdr_xdrrec_create_.xdrrec_create_authnone_create_.authnone_create_close_.close_xdrrec_endofrecord_.xdrrec_endofrecord__null_auth_xdr_void_xdrrec_skiprecord_.xdrrec_skiprecord_xdr_replymsg_.xdr_replymsg__seterr_reply_._seterr_reply_xdr_opaque_auth_.xdr_opaque_auth_select_.select_read_.read_write_.write clnt_udp.o 597787168 0 10 100777 3608 ` 8((Xqn|`Qg h0i@,Hj  (>L 030 "2#ɤèªӨҪ Xb Hk  (>(L 030 "2#`T L!40PbpcdPT!1 2pqW1 2[rsW3 4[5 Q6 7[HPX}~!12Ѥ345;Lț,bdP\1b` ?|+t2bp+Dp %0"2@d0,  030 "2#d0f~3hp 0 l0*bq< bp bpbq<xq!n`0@1"`23<Qan0`!1AQrb 5!3!,6v!4!0t!q"uBt!6Dp&L t!q"qBt!1p !p"x2qCt1p t!A1p !8&a2t!q2t3pg r6Lp&0u1dpP' "9&aؔ ܔ%8&aȑȦ "pqRHQLrPX\p݁0 c@P A "$ 9&$8&au!v 5!s!w 3!B@s! u!!5!s! 3! ```u!ش u!ش s!ܴ t%8&aД  ȶTl||FPp&01cPd @ "$ @ "# 9&$8&aДD{6Lp&T s$bcQPyV]m~yP1> .oVncs.oVhc2.1n.oVO_clntudp_bufcreate_.clntudp_bufcreatemcount_malloc_.malloc__iob_fprintf_.fprintf_rpc_createerr_errno_gettimeofday_.gettimeofday_pmap_getport_.pmap_getport_getpid_.getpid_xdrmem_create_.xdrmem_create_xdr_callhdr_.xdr_callhdr_socket_.socket_ioctl_.ioctl_authnone_create_.authnone_create_free_.free_clntudp_create_.clntudp_create_sendto_.sendto__null_auth_select_.select_recvfrom_.recvfrom_xdr_replymsg_.xdr_replymsg__seterr_reply_._seterr_reply_xdr_opaque_auth_.xdr_opaque_authclose.o 597787182 0 10 100777 252 ` <H<`@pPU0%  `(p@ ;<")0close.o.oVncs_close_.closemcount_errnoclosedir.o 597787158 0 10 100777 464 ` L0 n`m p-0 1 v- bЍ 0 `$Header:closedir.c 12.0$  ( 2 @@ P PLh'',ZP6zAH;OWy]dclosedir.o_rcsid.oVncs.oVhc2.1n.oVO_closedir_.closedirmcount_close_.close_free_.freeclrerr.o 597787171 0 10 100777 298 ` ($`n`X(, 4$Header:clrerr.c 12.0$ @@ (h%'*,4?Fclrerr.o_rcsid.oVncs.oVhc2.1n.oVO_clearerr_.clearerrmcountcompat.o 597787182 0 10 100777 462 `  T(## " :1A@DpD`@pDQTd1AQ8!120 03#!1!120 03#!1$Header:compat.s 12.0$``H``` <Ċ!`'$00:.oVncsFPaGET0FPaPUT0fpgetfpput__compat_._compatconnect.o 597787182 0 10 100777 258 ` <H<`@pbPU0%  `(p@t<(/6connect.o.oVncs_connect_.connectmcount_errnocopysign.o 597787182 0 10 100777 316 ` 4(`n`81$7x1w!, @$Header:copysign.c 12.0$ @@4h'',866AHcopysign.o_rcsid.oVncs.oVhc2.1n.oVO_copysign_.copysignmcountcreat.o 597787182 0 10 100777 252 ` <H<`@pPU0%  `(p@ .<")0creat.o.oVncs_creat_.creatmcount_errnocrypt.o 597787159 0 10 100777 2567 ` lt00n`03XeXdd?te b @Ӥ@b4ARRA ```@e4%%A 7 eQPTm-b#b\d#8-b#"$P   b"d$80 4 ٱn`PXd^DdBdhQ@ P0 lPo OO kἪd8m ll 80 dAOAdDDdFdMdNdBmdmmː Ĥd hoo dh Q}0eEhEh1 Pc^3cCgcRCQ@ ɱ8߸!١n`j0Xc ޳B ```0@ PdOdQ1W 1!@ @ bЍb ޲B ```0@ b\Z9Ҥ@b$" b0!#!$b,RP8R8PAF 12 ؤbФ0  0e0QSQb!`_d  .9Zb^1; b޲^ ] \ ],\ɡ<ߨ!@:2*" <4,$ >6.&@80( 91)! ;3+# =5-% ?7/'(08@ '/7?&.6>%- 5=$, 4<#+ 3;"* 2:!) 1991)! :2*" ;3+# <4,$?7/'>6.&=5-%      )4%/7(3-!0,1'8"5.*2$                                                                                                                                     t($Header:crypt.c 12.0$ ```@,@T@\@d@h@ X"t)18?XBtEI LORU X [ b e @krh|'(>0tcrypt.o_rcsid_IP_FP_PC1_C_PC1_D_shifts_PC2_C_PC2_D_C_D_KS_E_e_S_P_L_R_tempL_f_preS.oVncs.oVhc2.1n.oVO_setkey_.setkeymcount_encrypt_.encrypt_crypt_.crypt ctime.o 597787159 0 10 100777 2799 ` 0Htn`{ , فn`m rb< r2w b$ "p 2bЍj wȾp+ x Ȼp+ ``` hu lr;p ݜ@bnpl ␐`blp 0 0 Dbɑ@ߘ١n`k c.@!1```v+` b"$l@ !@ !@ ȫp:`0b"<@ !@ !@ p:badp:3dYdp:3dQdp:3dIdl u d 2 u 0d0 u 0db.dbɡ<ߨn`e Q^`R n, m, n`l m0 bcc0   bc0 b4! w/M:/w/b///:/AV/Vw/,\0\0THDay Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecX$Header:ctime.c 12.0$ <N`X``,:T"`"dx~@@ @@,@<@L@d@l@p@t@P@@@@@@@@@ !+,6\@JU_HgpyXh'W ?00 \QTOctime.o_rcsid_cbuf_dmsize_usdaytab_ausdaytab_wedaytab_medaytab_candaytab_dayrules_sunday_.sunday_ct_numb_.ct_numb.oVncs.oVhc2.1n.oVO_ctime_.ctimemcount_localtime_.localtime_asctime_.asctime_gettimeofday_.gettimeofday_gmtime_.gmtime_dysize_.dysizeldiv$$ ctype_.o 597787159 0 10 100777 451 `  H ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$@ h%'*3ctype_.o_rcsid.oVncs.oVhc2.1n.oVO__ctype_ cvd10.o 597787182 0 10 100777 815 ` @( X`@qBpBCCCC C1B0B``@d ;503;### #0^3_#### #03#### #0$3#### #03#### #03q#### #03#### #03@#### #03 #### #0 A<4"0$$Header:cvd10.s 12.0$@ `J`R@ @ @ &8x!$'*-037.:(=DXM/W^`fT@ocvd10.orcsidmqd1d2c2d3c4c5c6c7c8c9c10s2s1.oVncs__udl2x1_._udl2x1mcount__cvd10_._cvd10 disktab.o 597787182 0 10 100777 2831 ` فn`l bc0  Ɂ Pr.0-c4b8r.2. ><1-.p@2- 2 .d@3-.]@4-.V@5-. O@6- 6 $^&Q ȑ(^*Qȡ,^.Qȱa ` b@0(b@"(b @#( i bɁ P߈Aqn`g h0`.00l U qHipcb@4k b8bqHb@"*  \ۓ >"@<b@ b8!qH)x!An`@D`@4# ,e @ 0 AQ@ 8@40 ```| : 0!,0 : | A@40 : |0 : ,A@4@4 n`@ : !@ :```:!, ٱn`k `bl @  ɱ8@+@ܔ A Б@ @ ɱ8#ؑ@ 00bA bc 0@bAb0ɱ8߸n`m "`q@ 0@=!@20 A 0!@ :!0@ڤ 0 n`l m0 "`3@ 4@<!@20 A 0!@@ 4=ܑ!cЍ 4! n`@pC! E: B2@4!@!@_P)@@_Pe AUU Ф@Ro! @RoA\ ^ A@! :Ap#0C4! tysentnsncrmpxbxfxp\`/etc/disktabDisktab entry too long LJNT |E^^\\::n r t bf `<Flz`! V\`Zb`"p#``T"p@@0@4P8P<@@@D@tPxP|P P@@@@@@@@@`!p*4\=NG`MLWJbTiqh{ |h')!$ ; '[/8:?disktab.o_dgetent_.dgetent_dgetstr_.dgetstr_dgetnum_.dgetnum_tbuf_dnamatch_.dnamatch_dskip_.dskip_dgetflag_.dgetflag_ddecode_.ddecode.oVncs.oVhc2.1n.oVO_getdiskbyname_.getdiskbynamemcount_strcpy_.strcpy_strlen_.strlen_open_.open_read_.read_close_.close_write_.write__ctype_lmul$$ dknu.o 597787183 0 10 100777 1029 ` $x@anT`h001468:<1FDB@>ܱ(*2,1.00mn.4&!6'+  sa cŢsabc4!& !$8&bcg yp Š@`Ib24`@b2T@Ep p!c 8!q q!c 7!r r!c 6!5q"RQ P@!cEN@10B! #!LB!1#@J! HUbY!d!44bP!b!"H4%!Rd : :QTb!b!"4Rb!b!RTb !b!"4R R  T`Yd6 `Pc( $6 P44 Őa`bc(g h!+$Header:dknu.c 12.0$   . B  @@ h#'(/7>F:Mdknu.o_rcsid.oVncs.oVhc2.1n.oVO__dknu_._dknumcountuldiv$$lmul$$ dknu16.o 597787183 0 10 100777 396 ` p$lٱn`m0 !"#$ &!lb'sbcd $# Ű ɱH߸!|$Header:dknu16.c 12.0$ D@@ ph%'*t3=DLdknu16.o_rcsid.oVncs.oVhc2.1n.oVO__dknu16_._dknu16mcountuldiv$$doprnt.o 597787183 0 10 100777 7887 ` H pPفn`h i0j@kPD 1 0b 0_]@9- +  0 x XJp+! 0+q+2!%1+X "s q+2 q 1 q+@"c#c 0@9- +  0 x X p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c-co b1de 4 2p+! 0+q+@ !%1+X "s q+@  q 1 q+@"c@)cД 0p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c-cɁD߈Qan`g 21i@@ȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ N h    . VpT`p\  p * 8  z F V   l  \p<NZl  Z j   : J    v  *     r   6      < L     x  L`@@ P P@@ P$P(P,P '.h8'=DfMW[_#h~qJ{Tnfvdoprnt.o_rcsid__strout_._strout.oVncs.oVhc2.1n.oVOmcount__flsbuf_._flsbuf_fwrite_.fwrite__doprnt_._doprnt__ctype___cvd10_._cvd10_fcvt_.fcvt_ecvt_.ecvtldiv$$_gcvt_.gcvt doscan.o 597787172 0 10 100777 3554 `  `an`f g0h@23r!a\@q %03 * k@qm9A- `  @qm9A-Ƞu0 l@qb9A" h@qb9 A" [bpg A-  ” a\0a 1bcdeu  r2s Tr2r!a\p 0q6@#116b` ) *  .c`(p 0q6@#116b`)  a\c`r!a\@q4 %/h1and`1!f@3Qc s [qA@ qAp$ Q0d`oaPe f goxȀq2p  0 q=@#11=bЍ ) * -r2'qp  0 q=@#11=bЍa+ap  0 q=@#11=bЍIIqp  0 q-@! 1-bЍqN n1p  0 q-@! 1-bЍqF fp  0 q=@#11=bЍ/ aPNqp  0 q-@! 1-bЍqA acp  0 q-@! 1-bЍqN nEp  0 q-@! 1-bЍq(,p  0 q-@! 1-bЍq)p  0 q=@#11=bЍ aPNtinlacA03a fA *F ' Ô`` 0 "a f ""‰:b.H F0e E=;9 7 5'qp  0 q=@#11=bЍ+ - 0 9 'qp  0 q=@#11=bЍaxr  cЍ 10#!0 qA@ p r paP's  DvP\dlpnljhfdb`^\ZX ! qAp$p! qApD0$14qAp$ qAp$0qAp$0baPha'an`f g0h@iPL0j`cu0sp  0 q9@#119bHc.3`0  p  0 q9@#119bHc.3`0 褱c[ !;` &ap  0 q9@#119bH c.  cL0ͤ0 ` j !c aLbaLhQn`@2^!P d^4> 4d^4>4Q @R!5] " d^4>4 Qd^4>4QP!,@R!5], $Header:doscan.c 12.0$@(#)doscan.c 4.2 (Berkeley) 82/12/03 x  p`/`#`@2> < p>\~ ,hT pj` PJ @@@PP@@PPJP@@  #h-'2 (:: CMT] xf>p xaAk pxndoscan.o_rcsid_sccsid.oVncs.oVhc2.1n.oVO__sctab__doscan_._doscanmcount__ctype___getccl_._getccl__innum_._innum__filbuf_._filbuf_ungetc_.ungetc__instr_._instr_atof_.atofFPGLUEdrem.o 597787183 0 10 100777 4120 `  P8P١nl!1AQ`!1AQȱ!m2 0.  </1! 1!1! 1 !PxɡX22 1!1!ɡX01 8N ?0 Lt1!!1QAɡX@ 0!1tɡX DN;4 ;3X1N4 PH=`5 0x0  xt0 (D  1!ɡX;ߪA0% %W% (Berkeley) %G%6B0w;vhMw`$0` !T3` !l3`<=T3` <=(#`,0`<=(#`,0`4=T#`4=(3`4=(P3`=(E` =(#`  =(#`,0`/10#}!b~00s10  p .aL p . aL.aL!4 m ҝb1$u2 `;Q0 1$2(34Ad ' ",\0`0bub=16 ,\1n`03BAR@B>0C1D2E3bЍb@n`>AQ01 2$3ܔ&  (T@03`@btb4AF #(Tفn`h i0j.>l  ɁDȰ> d !!bcdЍ-$  bc(  >bd ! b,bɁD߈!@فn`h i0b5jl>bl  ɁLȰ> d!"bcd  bcФF  >bd! bbɁL߈!@t %x:%x:%x:%x:%x:%x %sz%x:%x:%x:%x:%x:%x %x:%x:%x:%x:%x:%xLr%[^ ] %[^ ] r%[^ ] %[^ ] $Header:ether_addr.c 12.0$/etc/ethers : ` `Xj$Jr@@@( P,@H PL@h@PP@PP@@P")h3'8OD1QX`BiukzF. Ltx@P..84j;ether_addr.o_rcsid_filename.oVncs.oVhc2.1n.oVO_ether_line_.ether_linemcount_sscanf_.sscanf_ether_ntoa_.ether_ntoa_sprintf_.sprintf_ether_aton_.ether_aton_ether_hostton_.ether_hostton_fopen_.fopen_fscanf_.fscanf_strcmp_.strcmp_fclose_.fclose_ether_ntohost_.ether_ntohost_bcmp_.bcmp execl.o 597787184 0 10 100777 305 ` TT T`@1AQ1@DDp;PU0%  `0pBp@ zT")r29execl.o.oVncs_execl_.execlmcount_environ_errno execle.o 597787184 0 10 100777 283 ` XHX`@1AQ1e0pET@pEp;PU0%  `Dp@ X%,3execle.o.oVncs_execle_.execlemcount_errno exect.o 597787184 0 10 100777 252 ` <H<`@pPU0%  `(p@ <")0exect.o.oVncs_exect_.exectmcount_errnoexecv.o 597787184 0 10 100777 289 ` DT D`@@DDp;PU0%  ` p2p@ D")r29execv.o.oVncs_execv_.execvmcount_environ_errno execve.o 597787184 0 10 100777 255 ` <H<`@p;PU0%  `(p@ <%,3execve.o.oVncs_execve_.execvemcount_errno execvp.o 597787159 0 10 100777 1280 ` tPPn7!819A:Q`7!811 ,A qn8`g h0.(i Ȟbp0/, Ȟ bcpd0i bc4p  _"P//&b$01A(p!1  0 qȐAc@2b8pb11.c4 qȐ  qb8  0 q qx!A2n`e@@ : !Q@ :E /Q@ 1Q@```05@ !b0,1 p/bin/sh,8PATH:/bin:/usr/binshh$Header:execvp.c 12.0$ D Tlp`2` @ @@@@ PDPH@LPPPT@ h#,3h='B JSZ,b8k`s(|vfexecvp.o_rcsid_shell_execat_.execat.oVncs.oVhc2.1n.oVO_execlp_.execlpmcount_execvp_.execvp_getenv_.getenv_index_.index_errno_execv_.execv_sleep_.sleepexit.o 597787172 0 10 100777 424 ` 4, n`m bЍ 0 H$Header:exit.c 12.0$   @@ P P 4h#'(8.5<FQXF`exit.o_rcsid.oVncs.oVhc2.1n.oVO_exit_.exitmcount__cleanup_._cleanup__exit_._exitexportfs.o 597787184 0 10 100777 307 ` <$TX`@pPU0% $Header:exportfs.c 12.0$ `(p@<X&18?exportfs.orcsid.oVncs_exportfs_.exportfsmcount_errno fabs_rtfl.o 597787184 0 10 100777 315 ` ,@T,`@`@#`@ PB o'=,-4;fabs_rtfl.o_fabsend.oVncs_.fabs_fabsmcountFPGLUE fchmod.o 597787184 0 10 100777 255 ` <H<`@p|PU0%  `(p@ <%,3fchmod.o.oVncs_fchmod_.fchmodmcount_errno fchown.o 597787184 0 10 100777 255 ` <H<`@p{PU0%  `(p@ <%,3fchown.o.oVncs_fchown_.fchownmcount_errno fcntl.o 597787185 0 10 100777 252 ` <H<`@p\PU0%  `(p@ (<")0fcntl.o.oVncs_fcntl_.fcntlmcount_errnofdopen.o 597787172 0 10 100777 645 ` 4 (ٱn`k l0r 2. r  ɱ8m  ɱ8 0-޽3-1-2-@ ab0B( ( A +( bɱ8r w ɱ8߸!$Header:fdopen.c 12.0$  : p @@P P P h%'*2;BKQa~kv})fdopen.o_rcsid.oVncs.oVhc2.1n.oVO_fdopen_.fdopenmcount_getdtablesize_.getdtablesize__findiop_._findiop_lseek_.lseek ffs.o 597787185 0 10 100777 261 ` @HT`@22#/"0#/" 鏤 $Header:ffs.s 12.0$ `@ @T")ffs.orcsid.oVncs_ffs_.ffsmcount fgetc.o 597787172 0 10 100777 382 ` D(xn`p 0q2@112` b, T$Header:fgetc.c 12.0$ & @@ P Dh$')H08?HRfgetc.o_rcsid.oVncs.oVhc2.1n.oVO_fgetc_.fgetcmcount__filbuf_._filbuffgets.o 597787185 0 10 100777 355 ` TpqTn 1 @Q  !7!81b@9A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$6p<@ +!*4;fgets.orcsid_fgets_.fgets__filbuf_._filbuf.oVncs filbuf.o 597787172 0 10 100777 951 ` 4@0n`m X= ( 0 DxP  Dxr 5X   "  `2 -1 } b 2- X ( X ( 3 $ , 8 ,(r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dx$Header:filbuf.c 12.0$ Zp p@@ P PPP h%'*3=DOV^fso.uL}filbuf.o_rcsid.oVncs.oVhc2.1n.oVO__filbuf_._filbufmcount__smallbuf_fstat_.fstat_malloc_.malloc__iob_fflush_.fflush_read_.read findiop.o 597787172 0 10 100777 1963 ` tDXn`\u͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !0 0,4u n`m 403\5#  0`Ъ`6>\0 023$0 ```bФ1.!0 n`\u͔  4v-p  !00,v-ij 4u ٱn`m \uȾHس%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n` ", D\RD0$Header:findiop.c 12.0$ `Tpp `4^ d` `P Vp@@@@P@P@@@@t\p$t-4h>'C.xIT~ ^ip~k3KW(9Ri018D findiop.o_rcsid_sbuf_iobglue_endglue.oVncs.oVhc2.1n.oVO__iob__smallbuf__findiop_._findiopmcount__f_morefiles_._f_morefiles_errno_calloc_.calloc_getdtablesize_.getdtablesize_f_prealloc_.f_prealloc__fwalk_._fwalk__cleanup_._cleanup_fclose flock.o 597787185 0 10 100777 252 ` <H<`@pPU0%  `(p@ Q<")0flock.o.oVncs_flock_.flockmcount_errnoflsbuf.o 597787172 0 10 100777 1440 ` |P,hXّn|`Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍk 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!n`m X $r=0 !q1=X s 0 -d, X ( 4 4 n`l X< @m , X  r,0 2 1 3 ( b4 $Header:flsbuf.c 12.0$ h p @  4N@@ P P PP@$@,@0P4P |h%'*f3=DK[SZbjss.y3L;yflsbuf.o_rcsid.oVncs.oVhc2.1n.oVO__flsbuf_._flsbufmcount_write_.write_fstat_.fstat_malloc_.malloc__iob_isatty_.isatty_fflush_.fflush_fclose_.fclose_close_.close_free_.freefopen.o 597787172 0 10 100777 700 `  0 (ّn`i j0k  ɑ@A +@ a. 0Д 2Фc 0b@ i bɑ@r w ɑ@@ a0B0ޛ3۔  ( @ r( ( 12bɑ@ߘ!$$Header:fopen.c 12.0$  @@ P P P  h$')t08?~ITZah)pfopen.o_rcsid.oVncs.oVhc2.1n.oVO_fopen_.fopenmcount__findiop_._findiop_open_.open_lseek_.lseekfork.o 597787185 0 10 100777 278 ` DTD`@p鏤 PU0%  `2p@ 0D!(/6fork.osyserror.oVncs_fork_.forkmcount_errnofpabort.o 597787185 0 10 100777 720 ` 4`(١n`j ȱ!<Jmb< Nb d "cb d "c>"AbЍ d "cЍ!ɡXߨfpabort: ...exiting. $Header:fpabort.c 12.0$ `(6< J T b r | @@ P P Ph&'+j4>EK$S\c[kqxfpabort.o_rcsid.oVncs.oVhc2.1n.oVO_fpabort_.fpabortmcount_.blt_strlen_.strlen_write_.write_exit_.exitfpclass.o 597787185 0 10 100777 1205 ` 0@n`d @"@2  !, ,",@  0#,%,$, n`d @"@ @ !, ,",@ #,%,$,! n`P@`  QbP, n``  `@ b, n` ! , n`01q1p!4 p`,P# D$Header:fpclass.c 12.0$ P@@ @ Pd@l@t@|@h&'++8QFM(YlfmPt |X`D[`#hfpclass.o_rcsid.oVncs.oVhc2.1n.oVO_classdouble_.classdoublemcount_classfloat_.classfloatFPGLUE_isnan_.isnan_unordered_.unordered_finite_.finite_infinity_.infinity fpflag_rtfl.o 597787185 0 10 100777 805 ` 00`@`@`@`&H*`%PT`)X`8`@b`j@ PH@RP@P!/.=DQ]dk*wETfpflag_rtfl.o_fptestflagend_fpsetflagend_fpclrflagend.oVncs_.fptestflag_fptestflagmcountFPGLUE_.fpsetflag_fpsetflag_.fpclrflag_fpclrflag fpfpx2.o 597787185 0 10 100777 744 ` <0103103103103!j°û3@;*;ڻŻһj*3@*d!110P(310P 310P310P3!j°P0û*4;;ڻŻһj*4*d!1$Header:fpfpx2.s 12.0$L Pv P PPP P <6L &-4];\B[IZ*P<X^djpxfpfpx2.orcsidfpstXstloopfpldXldloop.oVncsfpstm5fpstm4fpstm3fpstm2FPaGET0fplm5fplm4fplm3fplm2FPaPUT0fpnext.o 597787185 0 10 100777 3189 ` ّnx`!xi 1|j0Ak@QlP41|!xm 1!!1 x1|!xɑH !1 1!ɑH 0ɑH! \ɑH 0ɑH/# 0ɑHݡ| x"2 0 1|!xɑHm ݑxݱ4Aݡ|` $4 0 ݡ|x"2 0 1|!xɑHߚ0"ٱnx` 0k m c@ DɱP! ɱP DɱP*# DɱPԀѤ"2 0DɱPk lc@0<` $4 01"2 0ɱPߺA0" 4`$0`<T3x`,T3`,0`<}(#`,0`, (#`,0`,0`<<`,0*`$0`T#` TE` 4 ` 8` P# `,0`<P#`,0`< `<P#2`,0$Header:fpnext.c 12.0$ < T d > N     6L\  F V r  @@ P P P: P P P P6 Pb P P P P PH@PPV Pz P P" PV P P P PZ P P Pb P h%'*6CJ+WQe q~R*(lfpnext.o_rcsid.oVncs.oVhc2.1n.oVO_nextdouble_.nextdoublemcount_classdouble_.classdouble_swapfpflag_.swapfpflagFPGLUE_nextfloat_.nextfloat_classfloat_.classfloat fprintf.o 597787172 0 10 100777 577 ` , n!1 A$Q(`!o 1 A$Q(X/ %(`213$b0cd! X/(230$b0cdX  ,AA $Header:fprintf.c 12.0$V b @@ P Ph&'+44>E~NXL`ifprintf.o_rcsid.oVncs.oVhc2.1n.oVO_fprintf_.fprintfmcount__doprnt_._doprnt_fflush_.fflush fpround_rtfl.o 597787185 0 10 100777 551 ` Tx T`@`@`$@*`#@`8`@@ P@@JPj#29(GTT[b*o{fpround_rtfl.o_fptestroundend_fpsetroundend.oVncs_.fptestround_fptestroundmcountFPGLUE_.fpsetround_fpsetround fptrap_rtfl.o 597787186 0 10 100777 805 ` 00`@`@`@`(H*`'PT`*X`8`@b`j@ PH@RP@P!/.=DXQ]dkx*w8Tfptrap_rtfl.o_fptesttrapend_fpsettrapend_fpclrtrapend.oVncs_.fptesttrap_fptesttrapmcountFPGLUE_.fpsettrap_fpsettrap_.fpclrtrap_fpclrtrap fputc.o 597787173 0 10 100777 450 ` (xn`e0pEA 0Eq5#"1%15X Ds@qE$ q5@#1 15q%@""cP,! $Header:fputc.c 12.0$ X h @@ P h$')08?fHRfputc.o_rcsid.oVncs.oVhc2.1n.oVO_fputc_.fputcmcount__flsbuf_._flsbuffputs.o 597787186 0 10 100777 520 ` l ١mXSE (213pqs@ ;! ެ  ެ-=M]b1 *-=M]XSUps㉏qÔ@ j0b01 cXSU(S2301aɭߨ-$Header:fputs.s 12.0$rpxp@ !f*4L<ELfputs.orcsid_fputs_.fputs__flsbuf_._flsbuf_fflush_.fflush.oVncsfread.o 597787173 0 10 100777 616 ` ,0 ّn`i j0k@lPbcm 2pLM@ q,cpLb  )pLM q,cdЍq 1 p 0 bɑ@ є ` cⲤbɑ@ߘA$Header:fread.c 12.0$ 4 D d @@ P P h$')N08?:FMUU^hpfread.o_rcsid.oVncs.oVhc2.1n.oVO_fread_.freadmcountlmul$$_bcopy_.bcopy__filbuf_._filbufuldiv$$freopen.o 597787173 0 10 100777 686 ` 0 (ّn`j k0l@A +Ѥb@ a. 0 2c 0b@ j bɑ@r w ɑ@@ a0B0ެ3  ( @ r( ( 12bɑ@ߘ1$Header:freopen.c 12.0$ & v @@ P P Ph&'+64>EMV\cj)rfreopen.o_rcsid.oVncs.oVhc2.1n.oVO_freopen_.freopenmcount_fclose_.fclose_open_.open_lseek_.lseekfrexp.o 597787186 0 10 100777 507 ` $`n9!:1;Ar ;8pm*0A ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdm 0 > ;0 b 0/ )m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1$Header:fseek.c 12.0$ L  . @@ P P P xh$')e|08?F)NWaLirfseek.o_rcsid.oVncs.oVhc2.1n.oVO_fseek_.fseekmcount_lseek_.lseek__filbuf_._filbuf_fflush_.fflushfstab.o 597787159 0 10 100777 2199 ` n`l .Dm r->H r-> H r->H ݔ 4p 0 q 1 r->H  s-^RLr-> H  s-(^)R*7>,bЍL s-0^1R2">4bЍL s-<^=R> s-@^ARBs 2 t 3 u 4 %4 n` !.>.  .,!, n`. !, n`   0pbЍ  %  0b0 n`l y  4m p-c b4m  4 n`l ?  4|m q-c b4gm  4 n`l   4Bm r-c b4-m  4 XnfsafsdfsignorexxswapswroroquotarqrwN/etc/fstabr J,2$Header:fstab.c 12.0$  *<NzZ v  `V  > n@@L PP PTPX@p@tPx@P@@@@@@@ p&1=DhN'SZ eqy LlN* J$, <3JH(]4P?w2Kfstab.o_rcsid_fs_line_fs_file_fstabscan_.fstabscan.oVncs.oVhc2.1n.oVOmcount_getmntent_.getmntent_strcmp_.strcmp_hasmntopt_.hasmntopt_setfsent_.setfsent_endfsent_.endfsent_setmntent_.setmntent_endmntent_.endmntent_getfsent_.getfsent_getfsspec_.getfsspec_getfsfile_.getfsfile_getfstype_.getfstype fstat.o 597787186 0 10 100777 252 ` <H<`@p>PU0%  `(p@ <")0fstat.o.oVncs_fstat_.fstatmcount_errnofstatfs.o 597787186 0 10 100777 300 ` < TT`@pPU0% $Header:fstatfs.c 12.0$ `(p@<T$}.5 @ P \h$')t08?QM\cftime.o_rcsid.oVncs.oVhc2.1n.oVO_ftime_.ftimemcount_gettimeofday_.gettimeofdayldiv$$ ftruncate.o 597787186 0 10 100777 264 ` <H<`@pPU0%  `(p@<"'.5E.KT^getchar.o_rcsid.oVncs.oVhc2.1n.oVO_getchar_.getcharmcount__iob__filbuf_._filbufgetdirentries.o 597787186 0 10 100777 326 ` <(T\`@pPU0% $Header:getdirentries.c 12.0$ `(p @<!\0/@GNgetdirentries.orcsid.oVncs_getdirentries_.getdirentriesmcount_errnogetdomainname.o 597787186 0 10 100777 326 ` <(T\`@pPU0% $Header:getdomainname.c 12.0$ `(p @<!\0q@GNgetdomainname.orcsid.oVncs_getdomainname_.getdomainnamemcount_errnogetdtablesize.o 597787186 0 10 100777 276 ` <H<`@pYPU0%  `(p@K<*:AHgetdtablesize.o.oVncs_getdtablesize_.getdtablesizemcount_errnogetegid.o 597787186 0 10 100777 215 ` ,<,`@p/b `@P,(/getegid.o.oVncs_getegid_.getegidmcount getenv.o 597787159 0 10 100777 546 ` 0 n`l p=0 b 4p=0 4 n`@@B@1=!b0,@@B@1 @ =b0, ,! R$Header:getenv.c 12.0$  p^ @@ @@ R'.h8'=`E(NUr^getenv.o_rcsid_nvmatch_.nvmatch.oVncs.oVhc2.1n.oVO_getenv_.getenvmcount_environgeteuid.o 597787186 0 10 100777 215 ` ,<,`@pb `@,(/geteuid.o.oVncs_geteuid_.geteuidmcount getfh.o 597787187 0 10 100777 294 ` < TT`@pPU0% $Header:getfh.c 12.0$ `(p@ <@T (/6getfh.orcsid.oVncs_getfh_.getfhmcount_errnogetfloatstate.o 597787187 0 10 100777 276 ` <H<`@pPU0%  `(p@)<*_:AHgetfloatstate.o.oVncs_getfloatstate_.getfloatstatemcount_errnogetgid.o 597787187 0 10 100777 255 ` <H<`@p/PU0%  `(p@ L<%,3getgid.o.oVncs_getgid_.getgidmcount_errno getgrent.o 597787160 0 10 100777 7432 `  Ptn`l  "  ! r ! .b-  0 n`. - 4 n`d mb0  4bЍc bЍ4A n`@  !@     !,! n` .|>. 8, )L4<am ,ܔ 8bЍt b8mNb0  8bЍc bЍym  8 0J8p->  bЍP ,4bЍG ,4d p-!c@$m Ў~ wb8p-!(ib8@+ -  TNHAّn`` k0Hbcd bHޢI@ +8b0: -<0: l @ : bɑDcbJp@ : bɑD-@ȝ ݝDb: @ Ƚ(0ɑb0, l @ 0-8ɑDߘ!n`, p,bq̔ ,4 n`m@Ld  0q=0 @ 12s=0 p 3201 n`pҔ p,cЍl !4q̔ 4 n`N4]->01 2 3  .4 u4t Hn`->A Q 0 1  . hsr @n`m l0e "> 01dЍ  Dr1s!_m s!L Dq, @ 1-s, p 3-bD!ٱn`k (l b!m c 0 ",1 ,ɱ8߸ّn`j -L 'sp ȑtp, đp -Lq" -Ls" -L -Lq*!=L1#q:ilsp ȡb!0,p;đp 0 ɠb=L3#c bd-Lɑ `-Lߘ@ٱn`k0l@@p+ap-> bЍSXc b\m 0ۤ!ɱ8 ɱ8p-!c ?bЍ/Xc p-!\m 0ۤ!ɱ8 ɱ8p-!c 0 !ɱ8!ɱ8- p-c ɱ8߸1ٱn`k0l@@p+Zp-> bЍLc bz m 0ۤ!ɱ8 ɱ8bЍLc p-!*Pm r 0ۤ!ɱ8 ɱ8p-!#0 !ɱ8!ɱ8- r ɱ8߸1n`>< r", ", n`d l0>bЍbЍe ">  01dЍ  $Xw1x!!m x! $Xq, @ 1-s, p 3-b$X!ٱn`r -2@ )b0  ݼ0ɱ8bЍ 0ɱ8ɱ8߸/etc/group8tXH<rl&zr+0 @lF>group.bynamegroup.byname.group.byname 6 ^+ d+d\ R %dgroup.bygid P$Header:getgrent.c 12.0$ 0`n8|:80`.>l8z:80@.B8`FDx0F`D08:200@D(8B:>"`.`L0V`fJLR0X`hDrD00`>J0T`~ND0`P D:0B:N`fRD0T:T V ` B0 J` jD D D D T : T V : T V $T 8X j0 > > > F> p0 > ^0 0 Z : ` R D \0 p` \ ^@(@0@4@8@<7P@9PD@H@L@T=PX@\@h@l?PpAPtCPx@|@EP@@@@@@@@@@@IP@KP@@@@MP @$OP(@@QPD@LSPPUPT@\WP`@l@x@|@@@YP@[P]P  & - 26=DNVany@H d< ^ PFl& 0>DQ_s0 6. d \  Rh"''1<C8MtXtbzm2XwRl+$(ty^d&]0V8AJ@TZ^zifs~s!UFq<getgrent.o_rcsid_domain_NULLGP_GROUP_grf_yp_yplen_oldyp_oldyplen_gr_mem_minuslist_usingyellow_interpret_.interpret_matchgid_.matchgid_matchname_.matchname_yellowup_.yellowup_freeminuslist_.freeminuslist_grskip_.grskip_interpretwithsave_.interpretwithsave_getnextfromyellow_.getnextfromyellow_onminuslist_.onminuslist_getfirstfromyellow_.getfirstfromyellow_save_.save_getnamefromyellow_.getnamefromyellow_addtominuslist_.addtominuslist_getgidfromyellow_.getgidfromyellow_gidof_.gidof.oVncs.oVhc2.1n.oVO_getgrgid_.getgrgidmcount_setgrent_.setgrent_getgrent_.getgrent_endgrent_.endgrent_fgets_.fgets_strlen_.strlen_getgrnam_.getgrnam_strcmp_.strcmp_fopen_.fopen_rewind_.rewind_free_.free_fclose_.fclose_fgetgrent_.fgetgrent_strncpy_.strncpy_strtol_.strtol_yp_next_.yp_next_yp_first_.yp_first_yp_match_.yp_match_malloc_.malloc_strcpy_.strcpy_bcopy_.bcopy_sprintf_.sprintf_getdomainname_.getdomainname_yp_bind_.yp_bindgetgroups.o 597787187 0 10 100777 264 ` <H<`@pOPU0%  `(p@<"].50@ 1bЍ$012ȁ34 cФA\c 0bɁXbA 03=bcd( bɁX2303 t401p 4ɁX߈1@n`m .  .> . 0 n`.  ,, ّn`Nx@.l>.xd @ ɑ@b0i bɑ@@ #>  k >b k ˑ= `= <0b$=p30#  @   @ ``` ݽȭݭ>bV k ˑ #@  > ,0b7 k ˑ @ 0-ɑ@ tjȭ8 taȭ8]NxYNxUNxߘn`@B@ e0@ ,Q@!@B@ ,! ٱnH`mo@RP @DcEA  !_!@RP  k p+cЍ qp, cЍ p,  k bɱ߸.١n`j k0l@ Pm r  t-p"cd m [bɡ<ߨ1 T/etc/hostsJ 0%d.%d.%d.%d.in-addr.arpa HrJr# (> $Header:gethostnamadr.c 12.0$  0pj`pppppp`2HZ~pp   "D"(pVx&'p-,&X'p`35"9Vl3=?``JZ@pBB2D@@ P$P(P,P0P4!P8@@%PD@H@L@p,Pt@x@2P4P@8P@P@@@@AP@@CPh t( . < EPlXx_eo{| (h'L^$|$.9@UH-WJg#tI5 0>dF H ~  t#,7CKT~ _Jk+rz8jgethostnamadr.o_rcsid_h_addr_ptrs_host_host_aliases_hostbuf_host_addr_HOSTDB_hostf_line_hostaddr_host_addrs_stayopen_align_getanswer_.getanswer_any_.any.oVncs.oVhc2.1n.oVO_h_errnomcount_res_send_.res_send_dn_expand_.dn_expand_strlen_.strlen_dn_skip_.dn_skip_getshort_.getshort_bcopy_.bcopy_gethostbyname_.gethostbyname_res_mkquery_.res_mkquery_errno__gethtbyname_._gethtbyname_gethostbyaddr_.gethostbyaddr_sprintf_.sprintf__gethtbyaddr_._gethtbyaddr__sethtent_._sethtent_fopen_.fopen_rewind_.rewind__endhtent_._endhtent_fclose_.fclose__gethtent_._gethtent_fgets_.fgets_inet_addr_.inet_addr__ctype__strcmp_.strcmp_bcmp_.bcmpgethostname.o 597787187 0 10 100777 270 ` <H<`@pWPU0%  `(p@e<&4;Bgethostname.o.oVncs_gethostname_.gethostnamemcount_errnogetitimer.o 597787187 0 10 100777 264 ` <H<`@pVPU0%  `(p@<"V.5MTcnzR0pgetnetbyaddr.o_rcsid.oVncs.oVhc2.1n.oVO_getnetbyaddr_.getnetbyaddrmcount__net_stayopen_setnetent_.setnetent_getnetent_.getnetent_endnetent_.endnetentgetnetbyname.o 597787207 0 10 100775 737 ` <@0١n`j p- k p+c qp, c p,  k p bɡ<ߨ$Header:getnetbyname.c 12.0$ p $ 6L` t@@ P P PP!h+'0'>sMTcnzR0pgetnetbyname.o_rcsid.oVncs.oVhc2.1n.oVO_getnetbyname_.getnetbynamemcount__net_stayopen_setnetent_.setnetent_getnetent_.getnetent_strcmp_.strcmp_endnetent_.endnetent getnetent.o 597787206 0 10 100775 1641 ` hpXn`m .  .> . "p 00 n`. , ّn`Nܔ@.>.d @ ɑ@b0i bɑ@@ #>  k ݝ>b k wˑ@   @ ``` >bg i ɑb$-  ȭݭ k #@  > 0b7 k ˑ @ 0-ɑ@sȭjȭfN܉bN܉^Nߘn`@B@ e0@ ,Q@!@B@ ,! /etc/networksrXr# 0$Header:getnetent.c 12.0$ "2< pdp pv``<@@$P(P,@4P8@TPX@\P`@$*/<A0GNhX']lwt0pXR+mgetnetent.o_rcsid_NETDB_netf_line_net_net_aliases_any_.any.oVncs.oVhc2.1n.oVO__net_stayopen_setnetent_.setnetentmcount_fopen_.fopen_rewind_.rewind_endnetent_.endnetent_fclose_.fclose_getnetent_.getnetent_fgets_.fgets_inet_network_.inet_network getnetgrent.o 597787165 0 10 100777 3092 ` @Lٱn`k bc p 1 ɱ8p  bqp 1 bcɱ8߸n`p͔ q, r, p, bs̔0 1 4 n`q_P p0q0r0s1!, ,1 n`l -0  p 4b0 44 ١n`j k04dm ɡdhɡ0bxj @ #ɡ< bcY  >8bxl ɡ<(>\bdЍhɡ<ɡ<ߨ!١n`j m04@   @ ``` bl  ɡ<(0 ȼ@   @ ``` ⺐+0-cd p b ,ɡ<ߨ1n`m e " > 01dЍ  @s!@n`@B@ e0@ ,Q@!@B@ ,! @(#)getnetgrent.c 1.1 86/09/24 Copyr 1985 Sun Micro(t.8Cycle detected in /etc/netgroup: %s. # syntax error in /etc/netgroup --- %s Xnetgroupv$Header:getnetgrent.c 12.0$ `"\``:B`P!"p$&^(`"p&$6$d*(,"(.4`L0@8@@PD@H@LPP@XP\@d@l Pp@t@@#P%P'P@@@)P+P@-P/P@!,4 <(F.Q8W^emsXzvh'`:t!yv "1qA.GP4Zbkss|v]$fgetnetgrent.o_rcsid_sccsid_grouplist_grlist_domain_getgroup_.getgroup_doit_.doit_match_.match_fill_.fill_any_.any.oVncs.oVhc2.1n.oVO_setnetgrent_.setnetgrentmcount_strcmp_.strcmp_endnetgrent_.endnetgrent_strcpy_.strcpy_free_.free_getnetgrent_.getnetgrent_getdomainname_.getdomainname__iob_fprintf_.fprintf_alloca_.alloca_malloc_.malloc_index_.index_strncpy_.strncpy_strlen_.strlen_yp_match_.yp_matchgetopt.o 597787202 0 10 100777 1169 ` 0ٱn`k l0r^@50' c2c$j ذȻ j0(ذȻ"1,0!*0t3@d0T$*0t 3d0(>bd4bЍ8pwgi`p  0 q:@#11:b<*  w)p  0 q:@#11:b<*  >bЍ4bЍ8$*0t 3d0"p1, b@b`a Xh/dev/ttyr%s $Header:getpass.c 12.0$  $ 4 pBL pVr`.8P\j@@$P( P, P0P4P8P<P@PDPh&'+4C>EKRZc.iqz4Lgetpass.o_rcsid.oVncs.oVhc2.1n.oVO_getpass_.getpassmcount_open_.open_fdopen_.fdopen__iob_setbuf_.setbuf_signal_.signal_ioctl_.ioctl_fprintf_.fprintf_fflush_.fflush__filbuf_._filbuf_fclose_.fclosegetpeername.o 597787187 0 10 100777 270 ` <H<`@pPU0%  `(p@<&+4;Bgetpeername.o.oVncs_getpeername_.getpeernamemcount_errnogetpgrp.o 597787187 0 10 100777 258 ` <H<`@pQPU0%  `(p@<V(/6getpgrp.o.oVncs_getpgrp_.getpgrpmcount_errnogetpid.o 597787187 0 10 100777 255 ` <H<`@pPU0%  `(p@ p<8%,3getpid.o.oVncs_getpid_.getpidmcount_errno getppid.o 597787187 0 10 100777 215 ` ,<,`@pb `@,\(/getppid.o.oVncs_getppid_.getppidmcount getpriority.o 597787187 0 10 100777 270 ` <H<`@pdPU0%  `(p@<&4;Bgetpriority.o.oVncs_getpriority_.getprioritymcount_errnogetproto.o 597787206 0 10 100775 642 ` h40(ٱn`k p- l r  l p bɱ8߸$Header:getproto.c 12.0$ p $ 8 L@@ P P Phh'',8l>QXNiv@getproto.o_rcsid.oVncs.oVhc2.1n.oVO_getprotobynumber_.getprotobynumbermcount__proto_stayopen_setprotoent_.setprotoent_getprotoent_.getprotoent_endprotoent_.endprotoentgetprotoent.o 597787206 0 10 100775 1641 ` xhpXn`m .  .> . "p 00 n`. , ّn`Nܔ@.>.d @ ɑ@b0i bɑ@@ #>  k ~ݝ>b k tˑ@   @ ``` >bd i ɑb$- ȭݭ &k #@  > 0b7 k ˑ @ 0-ɑ@vȭmȭiN܉eN܉aNߘn`@B@ e0@ ,Q@!@B@ ,! /etc/protocolsrXr# *$Header:getprotoent.c 12.0$ "2< pdp pv``6@@$P(P,@4P8@TPX@\P`@x|"*07 FK*QXhb'gNx@tX+qgetprotoent.o_rcsid_PROTODB_protof_line_proto_proto_aliases_any_.any.oVncs.oVhc2.1n.oVO__proto_stayopen_setprotoent_.setprotoentmcount_fopen_.fopen_rewind_.rewind_endprotoent_.endprotoent_fclose_.fclose_getprotoent_.getprotoent_fgets_.fgets_atoi_.atoi getprotoname.o 597787207 0 10 100775 755 ` <@0١n`j p- k p+c qp, c p,  k p bɡ<ߨ$Header:getprotoname.c 12.0$ p $ 6L` t@@ P P PP!h+'0@QXNiv@getprotoname.o_rcsid.oVncs.oVhc2.1n.oVO_getprotobyname_.getprotobynamemcount__proto_stayopen_setprotoent_.setprotoent_getprotoent_.getprotoent_strcmp_.strcmp_endprotoent_.endprotoent getpw.o 597787200 0 10 100777 746 ` $<0 ١n`j k0`p-  .>0- !ɡ<p-lp 0q2@112 ` !ɡ< p-p 0q2@112 `  ,lB@<: :!ɡ<@<:A@<: 0 9 `@@@<:Jɡ<ߨ!$Header:getpw.c 12.0$/etc/passwdr `* D f @0P4 P8 P $h$')c<08?tFNV_hrgetpw.o_rcsid.oVncs.oVhc2.1n.oVO_getpw_.getpwmcount_fopen_.fopen_rewind_.rewind__filbuf_._filbufgetpwent.o 597787160 0 10 100777 10590 ` `8 l8ٱn`:!d e0  ɱ803!(z ɱ8 @  ```@  ```=bD =bD =bD  @  ```$@  ```(@  ```,@  ```- ɱ8߸n`l  "̔ LN@ D b0 -bЍc bЍ0! cbd p!DNb0 Ս Dp- ..0 0- $0$0! p2b(  " Sp!Dp"1,  p-00 bc b40!p-p"8, " p-00 p!DAn!014A8Q<`!0 "̔ MN@ @b0Ԕ .bЍc bЍ(0! cA0bЍ p!@Nb0Ԕ ԍ @p- -.00- #YЍ.0!c 0 !0r " ~p1b0@p"1  p-0 !040!p-p"8 " p-0 p!@AAn`.  .> .-  ! 0 n`. 3p- 0-  4դ n`d mb0  4bЍc bЍ4A n`@ : !@ :    !, ّn` W`R.h>.` K ɑP* )J<:Oi *Ԕ ɑPb bɑPȱmbcdЍ$ r! :<L(i  bɑPN`ȑ b0  ɑPbc b i ɑP 4p)>  ,b0k*d bЍ<c bm 0ۤ!ɡ< ɡX bqc bЍ j 0!ɡ< ɡbЍ= j 2pJPUb0 %0 !ɡԍĔ r", ", n`N]0->01 2 3  . hut 0Hn`->A Q 0 1  .ܔ Lsr 0@n`m l0e "> 01dЍ  Dr1s!m  Ds!0q, @ 1-v, @ 6-w, @ 7-x, @ 8-bD!n`d l0>bЍbЍe ">  01dЍ  $Xw1x!pm x! $Xq, @ 1-v, @ 6-w, @ 7-x, @ 8-b$X!n`m@0  0q=0 @ 12v=0 @ 62w=0 @ 72x=0 @ 8201 ّn`` m0ȬdbcdЍ bde@ +ݬ@b ,D j @ : bɑDibcJp@ : bɑD,H@ : bɑDbcJbp@ : bɑD,LPt TݬXb ,\ j ݬ`@ @  ```,@ɑDߘ!n`.l, n`8 p,bq̔ 84 ٱn`k (l b!m cP0 "81 8ɱ8߸n`l - h !q"- hv"- hw"- hx"- h $- hq,t!= h1#q<Dv,t!= h6#v<Dw,t!= h7#w<Dx,t!= h8#x<D- h4 n`pҔ p,cЍ !4q̔ 4 ّn`j k0l@Д 0  $ ɑ@@:bA@  @:bA ``` ё@:bA @+ - @0 A*x XȔ@ @  #  ##ɴ,  ɑ@ 0B*b.A""D A*x X@:bA@@    @:dA@ 0@   ɴc)@JcA3    ɴ 䔰 0"ɑ@ɑ@ߘ1ٱn`r -2@ )b0  ݼ4ɱ8bЍ 4ɱ8ɱ8߸p&l ,xdr0\dr+** LD8+ + B passwd.byname passwd.byname vpasswd.byname8%dpasswd.byuid$TF$Header:getpwent.c 12.0$/etc/passwd 4(2p26N`88824B`j>x@>2pDH,3pNJ\Ln@J3pL4`>$@p>2pD3pJL.J83pDLp4PR`T4V2pL3p$`2TFXp4~>@4"4BP~T\X>4@lH^`<^X`f\\X`` 4 "H r` |^ H ` ^ @H rH 4 H b 2` <^ b ` ^ N4 4 ` d T 4 ` 8f RT 4 @ ` h TD4Vj`@l`hT44`l44`T"TR4Zrf@pr|b`4`TTTTTr@&r6b@@JrZbd@nr~b@rb4`H4Hspxt4` v*x@4@8@@5PD7PH@P@T=PX?P\@`@d@hCPl@pGPtIPxKP|@@@@OPQPSP@@@UPWP@@@@@@[P@@@]P_P@ @@$@(aP,@0@8@PcPT@lePp@gP@iP@@kP@@@@@qP@@@@uP wP`d&-26=CKR\it}lx 0\$ "6I ]Ljx v D8F8" B*1h;'@JR`gr~U&,d+$  n, 'Q.6AMWbtiqyy:xdv^` !#,5@?ZIzTf^iFr|]VT(s:q< getpwent.o_rcsid_domain_NULLPW_EMPTY_pwf_yp_yplen_line_passwd_oldyp_oldyplen_usingyellow_minuslist_fetchpw_.fetchpw_interpret_.interpret_matchname_.matchname_matchuid_.matchuid_freeminuslist_.freeminuslist_yellowup_.yellowup_pwskip_.pwskip_interpretwithsave_.interpretwithsave_getnextfromyellow_.getnextfromyellow_onminuslist_.onminuslist_getnamefromyellow_.getnamefromyellow_getfirstfromyellow_.getfirstfromyellow_save_.save_addtominuslist_.addtominuslist_getuidfromyellow_.getuidfromyellow_uidof_.uidof.oVncs.oVhc2.1n.oVO__pw_file__pw_db__pw_stayopenmcount_dbm_fetch_.dbm_fetch_bcopy_.bcopy_getpwnam_.getpwnam_setpwent_.setpwent_fgets_.fgets_strlen_.strlen_endpwent_.endpwent_dbm_open_.dbm_open_getpwent_.getpwent_strcmp_.strcmp_flock_.flock_dbm_close_.dbm_close_getpwuid_.getpwuid_fopen_.fopen_rewind_.rewind_free_.free_fclose_.fclose_endnetgrent_.endnetgrent_fgetpwent_.fgetpwent_getnetgrent_.getnetgrent_innetgr_.innetgr_setnetgrent_.setnetgrent_strcpy_.strcpy_yp_next_.yp_next_yp_first_.yp_first_yp_match_.yp_match_sprintf_.sprintf_strncpy_.strncpy_strtol_.strtol_setpwfile_.setpwfile_malloc_.malloc__ctype_lmul$$_getdomainname_.getdomainname_yp_bind_.yp_bindgetrlimit.o 597787188 0 10 100777 264 ` <H<`@pPU0%  `(p@^<".5 .܍.̔  " 0 n`. 030.Ĕ 030 ,, n`N@.>.d @ 0b0  0bЍc bЍ 0 ّn`` l0ȭbcdi b@ # ɑ@>bl  ɑ@> bjl  sɑ@ݭ@   @ ``` b -ȭݭ>b8l  #@  > 0ʑbl  @ 0-ɑ@ߘ!n`@B@ e0@ ,Q@!@B@ ,! /etc/rpc8\PXrbrtZ# $Header:getrpcent.c 12.0$ d" 2"B`n|`"`$`&6(fp`*&,@@ @$@(@,@4P8@DPHPL!PP@X#P\@h%Pl'Pp@t@)P@+P@)2>EKXtcZotzh'X&8\X\Pb, X"+t2:BKyQX`i+px$]qgetrpcent.o_rcsid_domain_stayopen_current_currentlen_RPCDB_rpcf_usingyellow_interpret_.interpret_any_.any.oVncs.oVhc2.1n.oVO_getrpcbynumber_.getrpcbynumbermcount_setrpcent_.setrpcent_getrpcent_.getrpcent_endrpcent_.endrpcent_getrpcbyname_.getrpcbyname_strcmp_.strcmp_fopen_.fopen_rewind_.rewind_free_.free_fclose_.fclose_fgets_.fgets_strlen_.strlen_strncpy_.strncpy_atoi_.atoi getrusage.o 597787188 0 10 100777 264 ` <H<`@puPU0%  `(p@<".5qNm 1 @TAєZ]P]9!be y! p>qN P]0>1N4ߨ $Header:gets.s 12.0$ p8p>@ |y.$-7>gets.orcsid_gets_.gets__iob__filbuf_._filbuf.oVncsgetservbyname.o 597787207 0 10 100775 779 ` <H0ّn`i j0p- k *p;b qp<0 b p<0 s+c  k p bɑ@ߘ!$Header:getservbyname.c 12.0$ p & 8Nlx @@ P P PP"h,'1@'PW\grsLL.getservbyname.o_rcsid.oVncs.oVhc2.1n.oVO_getservbyname_.getservbynamemcount__serv_stayopen_setservent_.setservent_getservent_.getservent_strcmp_.strcmp_endservent_.endservent getservbyport.o 597787207 0 10 100775 719 ` |<80١n`j k0p- l r  s,c  l p bɡ<ߨ!$Header:getservbyport.c 12.0$ p & BN b@@ P P PP|"h,'1R@PW\grsLL.getservbyport.o_rcsid.oVncs.oVhc2.1n.oVO_getservbyport_.getservbyportmcount__serv_stayopen_setservent_.setservent_getservent_.getservent_strcmp_.strcmp_endservent_.endservent getservent.o 597787207 0 10 100775 1669 ` hpXn`m .  .> . "p 00 n`. , ّn`Nܔ@.>.d @ ɑ@b0 i bɑ@@ #> $j ݝ>b$i >ɑ@   @ ``` bu$j hʑb(  ݭȽݽ>bZ$j ʑ #@  > 0b;$j ʑ @ 0-ɑ@$iȽ$`Ƚ\N܉XN܉TN܉PNߘn`@B@ e0@ ,Q@!@B@ ,! /etc/servicesrXr# ,/ L$Header:getservent.c 12.0$ "2< pdp pv``X@@$P(P,@4P8@XP\@`Pd@ '$-(38AFLLSh]'b\rr~tL.XL+q getservent.o_rcsid_SERVDB_servf_line_serv_serv_aliases_any_.any.oVncs.oVhc2.1n.oVO__serv_stayopen_setservent_.setserventmcount_fopen_.fopen_rewind_.rewind_endservent_.endservent_fclose_.fclose_getservent_.getservent_fgets_.fgets_atoi_.atoi getsockname.o 597787188 0 10 100777 270 ` <H<`@pPU0%  `(p@U<&{4;Bgetsockname.o.oVncs_getsockname_.getsocknamemcount_errnogetsockopt.o 597787188 0 10 100777 267 ` <H<`@pvPU0%  `(p@p<$18?getsockopt.o.oVncs_getsockopt_.getsockoptmcount_errno gettimeofday.o 597787188 0 10 100777 273 ` <H<`@ptPU0%  `(p@Q<(7>Egettimeofday.o.oVncs_gettimeofday_.gettimeofdaymcount_errno getttyent.o 597787160 0 10 100777 2092 ` pn`. .> .,, n`. ,, n`n @@o R"ADA \A2"!@A /# PX,  PX!@  !@ ``` !@o, n`0=  ,!, ١n`NȔ@.>.d @ ɡbC, C    . >bF, F     >bG, b 0,b(j @ @ # @ # @ ``` ݬ@ ݼb:j ,ɡ<X#XNȉNߨELVT[he'jutNv*+Ngetttyent.o_rcsid_TTYFILE_zapchar_tf_line_tty_skip_.skip_value_.value.oVncs.oVhc2.1n.oVO_setttyent_.setttyentmcount_fopen_.fopen_rewind_.rewind_endttyent_.endttyent_fclose_.fclose_index_.index_getttyent_.getttyent_fgets_.fgets_strncmp_.strncmpgetttynam.o 597787160 0 10 100777 633 ` `800n`l  m p=b  m b4 |$Header:getttynam.c 12.0$   , 8 F@@ P P PP`h('-d8-DKVbm*ygetttynam.o_rcsid.oVncs.oVhc2.1n.oVO_getttynam_.getttynammcount_setttyent_.setttyent_getttyent_.getttyent_strcmp_.strcmp_endttyent_.endttyent getuid.o 597787188 0 10 100777 255 ` <H<`@pPU0%  `(p@ <L%,3getuid.o.oVncs_getuid_.getuidmcount_errno getusershell.o 597787160 0 10 100777 1854 ` h xn`r- Q2-p $2-b0 n`p, 0q, 124 n`/, ّn`p, 0q, 1.>k .ɑ@+c b .ɑ@u!$1,  b .ɑ@u!34(0, b q,1.ɑ@i qb0d, B@J# / @ @J# / @# "@ 0@J03b4A# @ @Jb4A# @ڑb0d, 0b p,ɑ@ߘ D/etc/shellsr$Header:getusershell.c 12.0$/bin/sh/bin/csh `P V`bt ` `$4L\v| !p< L@@@@@@$P(@0@HPLPPPTPXP\Phl$,5?KX_hi'nx|8Dy2ts!k)32+9AJgetusershell.o_rcsid_okshells_shells_strings_curshell_initshells_.initshells.oVncs.oVhc2.1n.oVO_getusershell_.getusershellmcount_endusershell_.endusershell_free_.free_setusershell_.setusershell_fopen_.fopen_fstat_.fstat_fclose_.fclose_malloc_.malloculdiv$$_calloc_.calloc_fgets_.fgets__ctype_getw.o 597787173 0 10 100777 419 ` l(xٱn`k mp  0 q+@! 1+b ђX   ɱ @ a1H11ͱL ^!W"rb1H p!>$@ a͡L!Hq1 98^9W:^;Wsbl p!><@ ap,1HHKLb@op!^nRb bp!>T@ ap Ȯbbc`Rc bLf b bp!>l@ abpcЍ1bs T p!c`p!aԉJ!HhB5n`P@ Q!@```@Dpp0PQ !@1PQ ```b0,! X/getwd: can't stat /./getwd: can't stat .../getwd: can't open ..getwd: read error in ..getwd: read error in ..//P8$Header:getwd.c 12.0$ `2 H ~   $FTf  D b`@@ PPPPP@PP@ pP&807hA'F^MU\b"io xZzj!fgetwd.o_rcsid_pathsize_prepend_.prepend.oVncs.oVhc2.1n.oVO_getwd_.getwdmcount_stat_.stat_.blt_opendir_.opendir_fstat_.fstat_closedir_.closedir_readdir_.readdir_strcpy_.strcpy_lstat_.lstat gtty.o 597787199 0 10 100777 347 ` 4$xn`d00t3@,! $Header:gtty.c 12.0$  @ P 4h#'(L.5<CKgtty.o_rcsid.oVncs.oVhc2.1n.oVO_gtty_.gttymcount_ioctl_.ioctl index.o 597787188 0 10 100777 383 `  H`@a`0d0H@b&c`ccc0J36p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$ `<`@ v (/index.orcsid.oVncs_index_.indexmcount inet_addr.o 597787164 0 10 100777 715 ` x(x(ّn`j nl0@J0@Jx XȰ@J +ؐșbA" b c D  aAЪ4=@Jm@@.  ɑP0<ĉ@ $" ɑP0<Π,6 ɑP(p1p!(q0 2pq!" r02pq!" rs!20b0ɑP"RUhP%%ߘ$Header:inet_addr.c 12.0$ DpV p\`@@xh('-|8DKT:[inet_addr.o_rcsid.oVncs.oVhc2.1n.oVO_inet_addr_.inet_addrmcount__ctype_lmul$$ inet_lnaof.o 597787164 0 10 100777 354 ` T(`n`0` ",",", `$Header:inet_lnaof.c 12.0$ @@Th)'.X:GNinet_lnaof.o_rcsid.oVncs.oVhc2.1n.oVO_inet_lnaof_.inet_lnaofmcountinet_makeaddr.o 597787164 0 10 100777 371 ` X,`n`8001000018001p001 d$Header:inet_makeaddr.c 12.0$ @@X"h,'1\@nPWinet_makeaddr.o_rcsid.oVncs.oVhc2.1n.oVO_inet_makeaddr_.inet_makeaddrmcount inet_netof.o 597787164 0 10 100777 358 ` X(`n`0`  "(, " ,"(, d$Header:inet_netof.c 12.0$ @@Xh)'.\:GNinet_netof.o_rcsid.oVncs.oVhc2.1n.oVO_inet_netof_.inet_netofmcountinet_network.o 597787164 0 10 100777 644 ` ,,x ّn`j nl0@J0@Jx XȰ@J +ؐșbA" b c D  aAЪ4=@Jm@@.  ɑP0<ĉ@ $" ɑP0<Π  ɑP0@L `0b@"b!p"20AL b0ɑPߘ8$Header:inet_network.c 12.0$ DpV p@@,!h+'0m0>MT]:dinet_network.o_rcsid.oVncs.oVhc2.1n.oVO_inet_network_.inet_networkmcount__ctype_lmul$$inet_ntoa.o 597787164 0 10 100777 434 ` T8xn:!;10C1bЍb8Ap%d.%d.%d.%d$Header:inet_ntoa.c 12.0$&`8 @@PTh('-X8mDKFT^inet_ntoa.o_rcsid.oVncs.oVhc2.1n.oVO_inet_ntoa_.inet_ntoamcount_sprintf_.sprintfinitgroups.o 597787160 0 10 100777 1031 ` xPHّn`i j0 0<@l 6r ,s,p" 'cD   (>dH`br 0bЪ"s bp" ۍ@l ̍LcbP .0T ɑ@ ɑ@ߘ! @initgroups: %s is in too many groups setgroups$Header:initgroups.c 12.0$  & F Zpj @@@PD PH PLPPPTPXPh)'.:GNXtcmx.42Rjinitgroups.o_rcsid.oVncs.oVhc2.1n.oVO_initgroups_.initgroupsmcount_setgrent_.setgrent_getgrent_.getgrent_strcmp_.strcmp__iob_fprintf_.fprintf_endgrent_.endgrent_setgroups_.setgroups_perror_.perror innetgr.o 597787165 0 10 100777 3620 ` 00ّn`i j0k@lP- 0(  ɑH  ,102͔ 1 .0cde, q!ɑH .0cde, q!ɑHb 0ɑHߘAفn`m <,0ӑ4<, 0 (> , , ɁTe , >( 01dЍ , , ɁT ,ȼ 'p+cЍ  (>4dЍ , , ɁT , rsb Ҕq@   @ ``` ]#Y(@   @ ``` b0,k h (>` , ,bɁT q,    ``` cd Ȩ@   @ ``` b0,k h (> , ,bɁT p,    ``` cd Ȩ@   @ ``` b0)k h (> , ,bɁT r,    ``` cd ȨYs! , ,!ɁT>bL k @ # + b3 s! , ,!ɁT>씰   b j s! , ,bɁT>߈n`@B@ e0@ ,Q@!@B@ ,! ٱn`k l0m bcdЍ b@,  !ɱ8@ , @ ,  ```@ פ ɱ8߸!an`3!21g@hPȞȱ$bcpds )bcdk !bcpdc bcd[   b"8P//be 01s1 "dؔ r!1`ad0&!p !ad%  ad !d0!adhQ@Yn`@1!```.@A!```,1 @(#)innetgr.c 1.1 86/09/24 Copyr 1985 Sun Micronetgroup.byusernetgroup.byhostinnetgr: recursive overflow netgroupinnetgr: netgroup %s called recursively innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup # .*$Header:innetgr.c 12.0$ `(`p (H!|#p4%FpT'%p\'%p '$)t)):BR',`BT`\!)@4@\P`@d@h@XP\P` Pd"Ph$Pl&Pp(Pt@x@@@@@@#,4@ F MU^dkpv~.h'L^q.4$ f(09v@HQN[yahinnetgr.o_rcsid_sccsid_name_machine_domain_thisdomain_list_listp_lookup_.lookup_doit_.doit_any_.any_inlist_.inlist_makekey_.makekey.oVncs.oVhc2.1n.oVO_innetgr_.innetgrmcount_getdomainname_.getdomainname__iob_fprintf_.fprintf_strlen_.strlen_yp_match_.yp_match_strcmp_.strcmp_index_.index_strncmp_.strncmp_free_.freeinsque.o 597787188 0 10 100777 352 ` Xln`pC0B12pC1$0#,! n`q2pB0CpBq214, , 8@@ h'#UX+4;`C},Linsque.o.oVncs.oVhc2.1n.oVO_insque_.insquemcount_remque_.remqueioctl.o 597787188 0 10 100777 252 ` <H<`@p6PU0%  `(p@ <")0ioctl.o.oVncs_ioctl_.ioctlmcount_errnoisatty.o 597787161 0 10 100777 381 ` D(xn`d0t3@  4!4 T$Header:isatty.c 12.0$  @@ P Dh%'*3H2;BIQisatty.o_rcsid.oVncs.oVhc2.1n.oVO_isatty_.isattymcount_ioctl_.ioctl kill.o 597787188 0 10 100777 249 ` <H<`@p%PU0%  `(p@ <&-kill.o.oVncs_kill_.killmcount_errno killpg.o 597787188 0 10 100777 255 ` <H<`@pPU0%  `(p@ <%,3killpg.o.oVncs_killpg_.killpgmcount_errno l10.o 597787188 0 10 100777 491 ` |( n`p2  ? =01q1bp ," $ ` 0MA tbH$Header:l10.c 12.0$ 8 \ @@ P P |h"''-4;CL!U_l10.o_rcsid.oVncs.oVhc2.1n.oVO__l10_._l10mcount__shlun_._shlun__mul211_._mul211 ldexp.o 597787189 0 10 100777 530 ` t,( ١n`j m0k@ 0bcd j m0 c" "bcɡ<ߨ1$Header:ldexp.c 12.0$  , > Z p@@ P P th$')xx08? KX_gnldexp.o_rcsid.oVncs.oVhc2.1n.oVO_ldexp_.ldexpmcount_swapfpflag_.swapfpflag_scalb_.scalb_errnoldiv.o 597787189 0 10 100777 789 ` 808P`@JAd @ DBDA$P逡/################################# # #c bAﯤ0#!` 鏤0X`@،b0`0``@؍s1ؔ00$Header:ldiv.s 12.0$ ` B`` ` @ @(@ 8 P%,P4=DKXSZ\tf`q}ldiv.orcsidmqeasyhere.oVncsldiv$$_ldiv$$_.ldiv$$mcountlrem$$_lrem$$_.lrem$$ldivmod$$_ldivmod$$_.ldivmod$$ link.o 597787189 0 10 100777 249 ` <H<`@p PU0%  `(p@ <&-link.o.oVncs_link_.linkmcount_errno listen.o 597787189 0 10 100777 255 ` <H<`@pjPU0%  `(p@ Z<"%,3listen.o.oVncs_listen_.listenmcount_errno lmul.o 597787189 0 10 100777 404 ` x x`@鏖c ( $Header:lmul.s 12.0$ ` @ x #:*4<ELlmul.orcsidmq.oVncsulmul$$lmul$$_.ulmul$$_lmul$$_.lmul$$mcountlockf.o 597787202 0 10 100777 661 ` H8n`l X !12A3 Dd7 PbD  D Y3P??dbcP "pQP0 DbD1 @(#)lockf.c 1.3 86/10/07 SMI$Header:lockf.c 12.0$ . pF j p` p@$@, P "h,'18@GN(U]lockf.o_rcsid_sccsid.oVncs.oVhc2.1n.oVO_lockf_.lockfmcount_errno_fcntl_.fcntl lseek.o 597787189 0 10 100777 252 ` <H<`@pPU0%  `(p@ <)")0lseek.o.oVncs_lseek_.lseekmcount_errnolstat.o 597787189 0 10 100777 252 ` <H<`@p(PU0%  `(p@ <f")0lstat.o.oVncs_lstat_.lstatmcount_errnomalloc.o 597787161 0 10 100777 1762 ` 8dDh١n`k -x 2j ݭx  墲 b bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- bp-  ɡEmemccpy.o_rcsid.oVncs.oVhc2.1n.oVO_memccpy_.memccpymcount memchr.o 597787202 0 10 100777 318 ` @$`n`A @!!,A ,1 L$Header:memchr.c 12.0$ @@ @h%'*D2;Bmemchr.o_rcsid.oVncs.oVhc2.1n.oVO_memchr_.memchrmcountmemcmp.o 597787202 0 10 100777 330 ` L$`n`A @@RP!1 !@1@# ,A ,1 X$Header:memcmp.c 12.0$ @@ Lh%'*P2;Bmemcmp.o_rcsid.oVncs.oVhc2.1n.oVO_memcmp_.memcmpmcountmemcpy.o 597787202 0 10 100777 314 ` <$`n`e A @1!A```bP,1 H$Header:memcpy.c 12.0$ @@ <h%'*@2;Bmemcpy.o_rcsid.oVncs.oVhc2.1n.oVO_memcpy_.memcpymcountmemset.o 597787202 0 10 100777 310 ` 8$`n`` A 2!A```b,1 D$Header:memset.c 12.0$ @@ 8h%'* <2;Bmemset.o_rcsid.oVncs.oVhc2.1n.oVO_memset_.memsetmcountmkdir.o 597787189 0 10 100777 252 ` <H<`@pPU0%  `(p@ <")0mkdir.o.oVncs_mkdir_.mkdirmcount_errnomknod.o 597787190 0 10 100777 252 ` <H<`@pPU0%  `(p@ <*")0mknod.o.oVncs_mknod_.mknodmcount_errnomkstemp.o 597787161 0 10 100777 583 ` ,( ٱn`l m@ ```ѓ@ X c0 @ X Ȱab0 @  z ɱ8b0 @  ɱ8߸$Header:mkstemp.c 12.0$  : ^ @@ P Ph&'+4>EpM8V^dkmkstemp.o_rcsid.oVncs.oVhc2.1n.oVO_mkstemp_.mkstempmcount_getpid_.getpiduldiv$$_open_.open mktemp.o 597787161 0 10 100777 580 ` 0( ٱn`l  m@ ```ѓ@ X c0 @ X Ȱab0  z.ɱ8b0bɱ8߸/$Header:mktemp.c 12.0$  : X @@P P h%'*x2@;BpJ8S[clmktemp.o_rcsid.oVncs.oVhc2.1n.oVO_mktemp_.mktempmcount_getpid_.getpiduldiv$$_access_.accessmntent.o 597787161 0 10 100777 3615 ` $XHn`p2@ PUdADD 1@ dADDo0 PUdADD 1@ dADD 102b, n`@p2@ eAUU 1@ eAUU eAUU e@REA@1@ eAUU eAUU 1@ eAUU 102b@, ٱn`l k0b0dT0!  ɱ<@# l mbЍ:X0+p!@ (>d\!ɱ@d\"ɱxd\#ɱd\$ɱd\%ɱ d\'ɱ<߸!n`l0m  41@ w a +2@ -  bЍ 4b4! n` !, n`l  4bcЍ 4&b4 n`l m00B !4bcЍ 4! n`p@_P @DcEA @_P cEAcP , @_P ,```P 0b0, ّn`i j0s9 b0mbЍ k @ bd bc  s b ɑDbЍ k @  ɑDߘ!n`rqSpC0s1t2u3c <!@(#)mntent.c 1.1 86/02/03 SMI>getmntent: 5 fields are missing from the fstab line:%s getmntent: 4 fields are missing from the fstab line:%s getmntent: 3 fields are missing from the fstab line:%s getmntent: 4 fields are missing from the fstab line:%s getmntent: 1 field is missing from the fstab line:%s getmntent: Too many fields on the fstab line:%s \xd%s %s %s %s %d %d $Header:mntent.c 12.0$ pDppppJT`bppp$Np^pp LZ!!`&)hvp`-/$1p@$@,@4@P@P@@PP P@@@@(P@@@,P@.P0P@ !'/8BMY>fqd} x\h'+.4@$t Q"+T6B \MY>hd~pew L!$Nmntent.o_rcsid_sccsid_mnt_line_mntstr_.mntstr_mntdigit_.mntdigit_mnttabscan_.mnttabscan_mntprtent_.mntprtent_tmpopts_mntopt_.mntopt.oVncs.oVhc2.1n.oVOmcount__ctype__fgets_.fgets__iob_fprintf_.fprintf_setmntent_.setmntent_fopen_.fopen_flock_.flock_fclose_.fclose_endmntent_.endmntent_getmntent_.getmntent_addmntent_.addmntent_fseek_.fseek_hasmntopt_.hasmntopt_strcpy_.strcpy_strlen_.strlen_strncmp_.strncmp modf.o 597787190 0 10 100777 783 ` d Hٱn`(l@#m | 0,1 @@ P P P. P P P P dh#'(h.5<GnSY`gmodf.o_rcsid.oVncs.oVhc2.1n.oVO_modf_.modfmcount_swapround_.swapround_rint_.rintFPGLUE mount.o 597787190 0 10 100777 277 ` @T@`@p鏤 PU0%  `.p@ ,@#t+29mount.osyserror.oVncs_mount_.mountmcount_errno mul211.o 597787190 0 10 100777 436 ` P( ١n`j k0l@`bcm bc-p 0 ɡ<ߨ1`$Header:mul211.c 12.0$  & 2 @@ P Ph%'*!T3=DNY:`mul211.o_rcsid.oVncs.oVhc2.1n.oVO__mul211_._mul211mcount__mulu211_._mulu211lmul$$mulu211.o 597787190 0 10 100777 454 ` $l(١n`?!1@k@Bڡ>bc3!b bcd$1- bc>b bcd$0- q-(bЍ,bɑ@c0u3 (9 bɑ@ߘ1 n`m p-q-bЍ0 n`l b0c@pm 5 u,-8,` u,4 b x,4u 5  ١n`m j@kPl0r -bc:c b(bcd `Bbcp pqQ0 1]ɡD01pqQ0 1]ɡDߨ!١n`j0k@m r-  ɡ<  ɡ(r2x9x7q':@q'c@ -r2 a l0!cdЍ bc r2 a lu7xq' 0@q'1@ r2 a lbpD,቏ȧ(h1An`m 67bpqQ0 1]8!ٱn`l m0r Wq-1 Nwb)& *7!v-y 9-v=q :b@q Ƚ(bc@ b0 ( bwM=(Hp w 7 pqQ0 1\ɱH7 v-w!6- 01pqQ0 1\ɱH߸! n`m l05 u-,8-` u-4 bЍ< )y x- +9-x=q :b@q (bc@ b04u 5 4! ١n`m s t-  ɡA?Qj kP;m04bЪ!d+P͑@~A`&  ɑ@2 ;`bЪ!b+ }!c -!b+ cbd!ɑ@bЉЪ!ߘ!.pag.dir J  > $ndbm: split not paired ,  0 =951-)%! 1ҿ14r(G3f!CY&d;oY7uVV0{- ;T>/ /2[1a=<f`Kvz_lG$6$w CM760!nY)6N1Vp&8DŽ)3+H]<517;+$g )#n0%3a$ ۘ 0Vn29D}1N7R#:86)W{:92}x'L~|\/q @ L ,pbp!~#!#%')%(%2'VJtp350^pp&365p9:p<35r35  )N3dBx9,3BBV93B 9<3B935 ,  D  L  F X F F@PP P$"P($P,&P0(P4@<@D@H@L@T@X@\@`@h@l2Pp4Pt@@8P;P@@@@AP@@@@@CP(@0@8@@EPD@  @" *3 ?L W c m x  , L 0   h' n s!"+3<BI;PXy^elt   $J 4 H >)[/ \$ {.'415 ?N [iov8|jUndbm.o_dcalchash_.dcalchash_getbit_.getbit_dbm_access_.dbm_access_finddatum_.finddatum_makdatum_.makdatum_delitem_.delitem_additem_.additem_setbit_.setbit_hitab_hltab_hashinc_.hashinc.oVncs.oVhc2.1n.oVO_dbm_open_.dbm_openmcount_malloc_.malloc_errno_strcpy_.strcpy_strcat_.strcat_open_.open_close_.close_free_.free_fstat_.fstat_dbm_close_.dbm_close_dbm_forder_.dbm_forder_dbm_fetch_.dbm_fetch_dbm_delete_.dbm_delete_lseek_.lseek_write_.write_dbm_store_.dbm_store_bzero_.bzero__iob_fprintf_.fprintf_dbm_firstkey_.dbm_firstkey_dbm_nextkey_.dbm_nextkey_read_.read_bcmp_.bcmp_bcopy_.bcopynfssvc.o 597787190 0 10 100777 297 ` < TT`@pPU0% $Header:nfssvc.c 12.0$ `(p@ <}T"E+29nfssvc.orcsid.oVncs_nfssvc_.nfssvcmcount_errno nice.o 597787199 0 10 100777 505 ` d( n`l 0 0 p  4d, 0 4 $Header:nice.c 12.0$ p" J @ P$ P dh#'(|.5<CP^Ckiynice.o_rcsid.oVncs.oVhc2.1n.oVO_nice_.nicemcount_errno_getpriority_.getpriority_setpriority_.setpriority nlist.o 597787161 0 10 100777 1154 ` @h8an`l 11qѤp- @ 2#p-f hh`ܐp- @>b0!  a(t!0 ApQ   p! a(t> bj p! a(t      $ca`c2p!@ `bȱ pg`bcpApQ!Ogm| Ip- CD ?rcb@ 8bAeq1p# (@ %e@B@ @@!Q@B@```@ r 2D S #E  (4ȑ,ȡ00481872tAeXm uA(0v1 0eЍi\a@>0x1w2<3btAeXm uA(0v1 0eЍA\a@>,0x1w2<3btAeXm uA(0v1 0eЍ\a@>@0btAeXm uA(0v1 0eЍ\a@@ smqja0 caa] K "P//t~|zxvt\ZXVTRfbb`^\ZXVTRPNLJHF4@ ` ȮL9p @ 0ȮP9ȮT9b@! @!```Ȁ(3l`Ъbr$ȁ(xbcdpXtóx bcdpXu0v1y!0deЍ\a@(4ȑ,ȡ04887h1#an`g h0i@jPP&L`0jb0cp``m p cb0c0-aj b2 ޤ@L L c#AL ```aLha(2%d-%d-%d-%d-%d%x.%x.%x.%x.%x.%x%x:%x:%x:%x:%x:%x%x,%x,%x%3x%3o%3dx$Header:ns_addr.c 12.0$ `2@\l> "d`( @@ PP@@pPt@x@&(-25>xHOhY'^Xgqx]vB:ns_addr.o_rcsid_addr_zero_addr_Field_.Field_cvtbase_.cvtbase.oVncs.oVhc2.1n.oVO_ns_addr_.ns_addrmcount_strncpy_.strncpy_index_.index_sscanf_.sscanfldiv$$lmul$$ ns_ntoa.o 597787167 0 10 100777 957 ` L(H(qn`?!` 1@ADځFȱ@0>bd bЍb$i @Kȩ@  @K@ ``` 1> b )>b ~@ @ ```@Kbcp b$i >bd ) $bqLxn`@@ PFA05 ?3SUJP55ZXVTRPN@><:86420.,*(&$" xvtrpn!@@ H!, %lx.0.%x%02x.%x$Header:ns_ntoa.c 12.0$ *`8 z  >`@@$ P(@,@*1h;'@ISZFcmns_ntoa.o_rcsid_spectHex_.spectHex.oVncs.oVhc2.1n.oVO_ns_ntoa_.ns_ntoamcount_sprintf_.sprintf open.o 597787190 0 10 100777 249 ` <H<`@pPU0%  `(p@ <&-open.o.oVncs_open_.openmcount_errno opendir.o 597787161 0 10 100777 837 ` 8P8n`0m  @tc  bЍ @t@ bЍ @t l |!6,  bbЍ @t|5 3 4 01 b@t $Header:opendir.c 12.0$  0 @ hpp  @@ P P PPPh&'+ 4>EKRYa;hpwsyopendir.o_rcsid.oVncs.oVhc2.1n.oVO_opendir_.opendirmcount_open_.open_fstat_.fstat_close_.close_errno_malloc_.malloc_free_.free pause.o 597787199 0 10 100777 421 ` 4(n`  , $Header:pause.c 12.0$   @ P$ P 4h$')L0/8?I]T^ipause.o_rcsid.oVncs.oVhc2.1n.oVO_pause_.pausemcount_sigblock_.sigblock_sigpause_.sigpause perror.o 597787161 0 10 100777 642 ` @8n`c mlД0 @ 0< 1,0 1 "0322#". 0, 1,0 1 ͠Ð"cd$ T$Header:perror.c 12.0$: Unknown error " < pD pRp` @8 P< P h%'*7?jHO$W`jqdy,perror.o_rcsid.oVncs.oVhc2.1n.oVO_sys_errlist_perror_.perrormcount_strlen_.strlen_sys_nerr_errno_writev_.writevpipe.o 597787190 0 10 100777 282 ` HTH`@e p*0% 1PU0%  `4p@ 2H!(/6pipe.osyserror.oVncs_pipe_.pipemcount_errnopmap_clnt.o 597787169 0 10 100777 1387 ` xHّn`i j0k@9(bЍ,^0$123b03B0m  ɑ8x5678@DQ01>213q=pä1p .14>bЍ8< ɑ8xq-t2bpy!@t!ɑ8xߘAٱn`k l09(bЍ^0$123b03Bm  ɱ8p5678@DQ01>213q=pä2p q=t3bpy!t!ɱ8p߸!l@(#)pmap_clnt.c 1.1 86/09/24 Copyr 1984 Sun Micro<pmap_setCannot register service$Header:pmap_clnt.c 12.0$ &R v p p (T z p p@H@tPxP| PPPP@ h'0 $P/6EUh|d+{;&dj.oVncs.oVhc2.1n.oVO_pmap_set_.pmap_setmcount_get_myaddress_.get_myaddress_clntudp_bufcreate_.clntudp_bufcreate_xdr_pmap_xdr_bool_openlog_.openlog_clnt_syslog_.clnt_syslog_closelog_.closelog_close_.close_pmap_unset_.pmap_unset pmap_getmaps.o 597787169 0 10 100777 949 ` @8١n`k 76<45o! Q20103B4m 4@D01ut1213q=p4Pp .18>bЍ<@q-t2bpv!D!w!ɡ \ߨ\@(#)pmap_getmaps.c 1.1 86/09/24 Copyr 1984 Sun Micropmap_getmapspmap_getmaps rpc problem$Header:pmap_getmaps.c 12.0$ DTp\ p @<@pPt Px P|PP h'(7>N_iw+{;.oVncs.oVhc2.1n.oVO_pmap_getmaps_.pmap_getmapsmcount_clnttcp_create_.clnttcp_create_xdr_void_xdr_pmaplist_openlog_.openlog_clnt_syslog_.clnt_syslog_closelog_.closelog_close_.close pmap_getport.o 597787169 0 10 100777 806 ` |8 فn`h i0j@kP&8o!^0 12303Bm A4567@DQ0&1>213q=p3p 0304q-rBbp &q-t2bpx! !!&Ɂ(l߈AX@(#)pmap_getport.c 1.1 86/09/24 Copyr 1984 Sun Micro<$Header:pmap_getport.c 12.0$ Ldpp p p p @L@TPX P h'hH(R7>Qedo|;.oVncs.oVhc2.1n.oVO_pmap_getport_.pmap_getportmcount_clntudp_bufcreate_.clntudp_bufcreate_xdr_pmap_xdr_u_short_rpc_createerr_close_.closepmap_prot.o 597787169 0 10 100777 479 ` p``(n`l m0 =b =b bcЍ4 4! @(#)pmap_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro$Header:pmap_prot.c 12.0$ &8J@8@@P h'd$/6oBQO.oVncs.oVhc2.1n.oVO_xdr_pmap_.xdr_pmapmcount_xdr_u_long_.xdr_u_long pmap_prot2.o 597787169 0 10 100777 616 ` d ّn`j k0p ip /0!bc  ɑDp!ɑDPU p bc@  ɑD kp ߘ!@(#)pmap_prot2.c 1.1 86/09/24 Copyr 1984 Sun Micro$Header:pmap_prot2.c 12.0$ 0\pt @8@@PD P h'( 7>HSd]lc|.oVncs.oVhc2.1n.oVO_xdr_pmaplist_.xdr_pmaplistmcount_xdr_bool_.xdr_bool_xdr_pmap_xdr_reference_.xdr_referencepmap_rmt.o 597787169 0 10 100777 4188 ` x4ّn`i j0k@lP>o! ^08103Bm 789:<|=467@DQ 011213q=pä5p l q=t3bp~! ! bɑ<|ߘفn`h i0 q9b g9b ^q(t2bpj bcЍ  ɁDq(t2bpk uIt9bp  ɁDq(t2bpl 3q(uBbcpbcЍ  ɁDq(uBbcp!ɁD ɁD߈!n`l m0PUD =b sMr=bp4 4! فn`h i0"`89AA b0i3  . Ɂ(lyx!`  kOmbc@pqS8A01R( ```b0i3 dЍ .8'X! # b0i3 dЍ .` 1`bq0Ȫ bɁ(l߈1anּ`i 314AjP9!(Ԥ2"2@m  .Q(Ԥ00@   .0!(cA(27!!(p0Ȥ(po(r(ta(b`0̍(!( 8!!((( ((((y!pqR( Q($r((y!stR(,Q(0u(4ݑ(Hs(Lt(Pݡ(\)D(X((8A)HA(D)L(@!(1"@xP!(1(ؔ 1(H!(ܔ !(q2t3p6!!(q"w20 !(pݱ(wȠ`b((t(p01bvA1"Pv .XӤw pwȁ(8ؐșȡ(pqW(Q(r(݁($ݑ(((0a c@P "$ .x(( ( ȱ(`(0(1b1(@"`Pd @ "$ .bD 5!(1(Q!(1( x!((( ((b!)LcA)Pp2!!(0u((!(1(A)H1)L!(p!(q"w20 !(prCbЍTy!x2t3pba()Dpwȁ(8ؐșԉ#ȡ(hJQ `@(#)pmap_rmt.c 1.1 86/09/24 Copyr 1984 Sun MicroTbroadcast: ioctl (get interface configuration)broadcast: ioctl (get interface flags)broadcast: ioctl (get broadcast addr)bCannot create socket for broadcast rpcCannot set socket option SO_BROADCASTCannot send broadcast packetBroadcast select problemCannot receive reply to broadcast$Header:pmap_rmt.c 12.0$ >r`~`    :   p  `~,nz(0!#n%&p`()pD+T)pbv,p!..0 V&pb`@@@HPLPP@X P\@d Ph@PP@PPP@PPP P"P@$P'P*P-P h't(7>N_;fnozQcjpbTF"&+7D{KSRappx8}yP1,.oVncs.oVhc2.1n.oVO_pmap_rmtcall_.pmap_rmtcallmcount_clntudp_create_.clntudp_create_close_.close_xdr_u_long_.xdr_u_long_xdr_reference_.xdr_reference_ioctl_.ioctl_perror_.perror_clnt_broadcast_.clnt_broadcast_authunix_create_default_.authunix_create_default_socket_.socket_setsockopt_.setsockopt_bzero_.bzero_gettimeofday_.gettimeofday_getpid_.getpid_xdrmem_create_.xdrmem_create_xdr_callmsg_.xdr_callmsg_sendto_.sendto__null_auth_select_.select_errno_recvfrom_.recvfrom_xdr_void_xdr_replymsg_.xdr_replymsgpopen.o 597787161 0 10 100777 1734 ` pqn`g h0pq 1,p  q,"0,  q TqL c2c20 ```!  q T@(rqrrrq$k 5b(@(rФ`д r1cb,b(.>N0ep0 4 b(b( q Tb"p b0b(bc8q Tx!ّn`03pcp0Í bɑD' k mbЍj  b pbɑDߘX/bin/shsh-cv$Header:popen.c 12.0$ `" 6 t (2R^ `!#%@@ P P$P(P,P0P4P8P<P@@HPL PP"PT$P pt&-h7'<CxKRKaqys?;XzFA@ v ] &-9Fpopen.o_rcsid_popen_pid_nfiles.oVncs.oVhc2.1n.oVO_popen_.popenmcount_getdtablesize_.getdtablesize_malloc_.malloc_pipe_.pipe_vfork_.vfork_close_.close_dup2_.dup2_execl_.execl__exit_._exit_fdopen_.fdopen_pclose_.pclose_fclose_.fclose_sigblock_.sigblock_wait_.wait_sigsetmask_.sigsetmaskprintf.o 597787173 0 10 100777 435 ` \(n8!91:A;Q`8!91:A;Q1$M $  0A l$Header:printf.c 12.0$&p0 @@ P \h%'*`2B;B.H~Q[printf.o_rcsid.oVncs.oVhc2.1n.oVO_printf_.printfmcount__iob__doprnt_._doprnt profil.o 597787190 0 10 100777 255 ` <H<`@p,PU0%  `(p@ <B%,3profil.o.oVncs_profil_.profilmcount_errno psignal.o 597787161 0 10 100777 606 ` D@ n`l0 "b d @ "c$>"B$bЍ d "cЍ$>"A$4! Unknown signal: $Header:psignal.c 12.0$  p( : J T b r @@$ P( Ph&'+4>ErR$Zcj[rpsignal.o_rcsid.oVncs.oVhc2.1n.oVO_psignal_.psignalmcount_sys_siglist_strlen_.strlen_write_.writeptrace.o 597787190 0 10 100777 259 ` @H@`@pPU00%  `&p@ )@S%,3ptrace.o.oVncs_ptrace_.ptracemcount_errno putchar.o 597787173 0 10 100777 506 ` ( n`@Du41 54v4#164,$ 3x0v4#"* 164,4,"4, $Header:putchar.c 12.0$ pd ~ @@ Ph&'+4t>E.KfT^putchar.o_rcsid.oVncs.oVhc2.1n.oVO_putchar_.putcharmcount__iob__flsbuf_._flsbufputs.o 597787191 0 10 100777 532 ` ,( n`cЍu,! 5, v,!6,* $ "x  *v<#cЍ *cЍ 4 $Header:puts.c 12.0$ p Z h @@ P P h#'(.35<.BIQfZdputs.o_rcsid.oVncs.oVhc2.1n.oVO_puts_.putsmcount__iob_fputs_.fputs__flsbuf_._flsbufputw.o 597787173 0 10 100777 487 ` (xn9!:1;AEK$Rrand.o_rcsid_randx.oVncs.oVhc2.1n.oVO_srand_.srandmcount_rand_.randrandom.o 597787162 0 10 100777 2084 ` PP`n` >0#0^0%N%`c#` 090 `^`@b" ! 0 n`^\R`P  H (>P4艀8@ *  CN艀N?4>`"T..>22`0b41 ّn`i p)cj Nȼ@L.,"`   (> >2b>ݞl `` b cЌ2`<`bɑ@ߘn`P$>Lp#` 09 '0#>Hp#NDp0 DND\@ LD4 >H4>H0 LH, ?192$f1]B; oH@tIk۰\YeT.h=y-Ckg.*ʈis]O5oQank6A?"˜*{" 'G4initstate: not enough state (%d bytes) with which to do jack; ignored. Psetstate: state info has been munged; not changed. $Header:random.c 12.0$ pTpb@@@@@@@@$P(@,@h@ #,4288<?@JDTH^Lgnhx'}PE \.41random.o_rcsid_degrees_seps_randtbl_fptr_rptr_state_rand_type_rand_deg_rand_sep_end_ptr.oVncs.oVhc2.1n.oVO_srandom_.srandommcount_random_.random_initstate_.initstate__iob_fprintf_.fprintf_setstate_.setstateldiv$$rcmd.o 597787165 0 10 100777 5959 `  ,DHanl`1!04A3Qq8h qAp$i  (qApD> aHqAp 0 2!ȡ bl & "+ (>.8r! aH6dr 8sIt)p"pbA8bذȻp 0x8 =  bpqt)q 3!d `(>Hb`0ˤ t)$4)sIp"cЍ!d >`b`ЈJp)r! aHbi 5פ1xAȡ>tbbBbck b! .xb1(AbP k b .ܤ80(!*  (>it!Bbt1s!Bbs1ͱbBbcȱ'bcA! qAp$.' bcA!!"cA' bcA! r!baHx p-br! aHha%١n`j  1"1@k A ɡL!bc@ bɡLp 0 b ɡLp 0 b 0 ɡLp lߨan0`k@lPpe ȁDd@ $ . gPrQA  Q QA@ޤ0  b.>0f ` 0qb`cden4  b`8bab`8Lb b`D>,b`0f ` a&1H! r b`8 a ahAA4anl`0!k01AlPȁb0 ȡbpA0@ *b@RZ % "Y P @DcEA  !@RZ  Y P Y)!@R Y !@R ```Y m Z  Y P !@RZ  Y Pm !+ Oa+ @ ! c@e;f - @! c@e & aH-1 b  aHbc`o@- V+A Zq+A @ -0deGg -A @-0de 3 aH--c  aHbcpbq1p` p baHbpA0@ aHhQ@eّn`l k0m@  /ɑ@  ɑ@bc !ɑ@b@  ɑ@r. GؠȪ Ⱥb0A 2 ɑ@ޚ@b0.!2.!bɑ@o @_P @DcEA  @_P! ɑ@cܑ1 /ɑ@ߘ1 %s: unknown host socket: All ports in use rcmd: socketconnect to address %s: Trying %s... %dwrite: setting up stderracceptsocket: protocol failure in circuit setup. D/etc/hosts.equivr/.rhostsr 2$Header:rcmd.c 12.0$ $ 2 B pTtp p6H!Rpx#% p%.'B)L+\h+z!-! p++"0+@R/bz//!! 1D3^pn!!6p>8d<z<>@B8D<>TFpH6p`JJLLJ4JZLxLLH L P 8L l` |R T 6p L@@P P PP@PPPPPP P"P$P&P(P *P,P.P@ 0P$2P(@X7P\@`;Pd=Ph?PlAPpCPt@|EPGPIPKP@OPQPSP  ,h#'( 0.5<pD8M-\l.r{4] D5j(Ut [";)18f@KmWZ_"hFq{$&Fx T1tf 2 '2!:CKT[crq+^ Nev rcmd.o_rcsid.oVncs.oVhc2.1n.oVO_rcmd_.rcmdmcount_getpid_.getpid_gethostbyname_.gethostbyname__iob_fprintf_.fprintf_sigblock_.sigblock_rresvport_.rresvport_errno_perror_.perror_sigsetmask_.sigsetmask_fcntl_.fcntl_bcopy_.bcopy_connect_.connect_write_.write_close_.close_sleep_.sleep_inet_ntoa_.inet_ntoa_listen_.listen_sprintf_.sprintf_strlen_.strlen_accept_.accept_read_.read_socket_.socket_bind_.bind_ruserok_.ruserok__ctype__fopen_.fopen__validuser_._validuser_fclose_.fclose_getpwnam_.getpwnam_strcpy_.strcpy_strcat_.strcat_fstat_.fstat_getdomainname_.getdomainname_fgets_.fgets_innetgr_.innetgr_strcmp_.strcmp__checkhost_._checkhost_strncmp_.strncmp_gethostname_.gethostname_index_.index read.o 597787191 0 10 100777 249 ` <H<`@pPU0%  `(p@ <&-read.o.oVncs_read_.readmcount_errno readdir.o 597787162 0 10 100777 468 ` (xn`m q=0uMv=p-] 2- b44q=r 0 1 v b  41 t 4 p 4 $Header:readdir.c 12.0$ $ @@ Ph&'+4j>ET/dreaddir.o_rcsid.oVncs.oVhc2.1n.oVO_readdir_.readdirmcount_getdirentries_.getdirentriesreadlink.o 597787191 0 10 100777 261 ` <H<`@p:PU0%  `(p@< +29readlink.o.oVncs_readlink_.readlinkmcount_errno readv.o 597787191 0 10 100777 252 ` <H<`@pxPU0%  `(p@ <")0readv.o.oVncs_readv_.readvmcount_errnoreboot.o 597787191 0 10 100777 255 ` <H<`@p7PU0%  `(p@ X< %,3reboot.o.oVncs_reboot_.rebootmcount_errno recv.o 597787191 0 10 100777 249 ` <H<`@pfPU0%  `(p@ <&-recv.o.oVncs_recv_.recvmcount_errno recvfrom.o 597787191 0 10 100777 261 ` <H<`@p}PU0%  `(p@< 1+29recvfrom.o.oVncs_recvfrom_.recvfrommcount_errno recvmsg.o 597787191 0 10 100777 258 ` <H<`@pqPU0%  `(p@<G(/6recvmsg.o.oVncs_recvmsg_.recvmsgmcount_errnoregex.o 597787162 0 10 100777 2476 ` dLhPّn`4Pd @@ . ɑ L ɑ L^  H!0 0=H  =r.ɑ L@!`@ =.,ɑ L  x|,$ "P//(e ȔM N Oud f      n`d A.,. , ">,  $(,04<DLX`hp| @`ANSCNAMESOAMBMGMXMRNULLWKSPTRHINFOMINFOAXFRMAILBMAILAANYUINFOUIDGID%dFINANY%d$Header:res_debug.c 12.0$QUERYIQUERYCQUERYMCQUERYU45678910UPDATEAUPDATEDUPDATEMZONEINITZONEREFNOERRORFORMERRSERVFAILNXDOMAINNOTIMPREFUSED67891011121314NOCHANGE , L l ``R `@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@ P$@$h.'3<_D?(MW^W0hw sa8}@@`cH+FFres_debug.o_rcsid_nbuf.oVncs.oVhc2.1n.oVO_opcodes_rcodes_p_query_.p_querymcount_fp_query_.fp_query_p_cdname_.p_cdname_p_rr_.p_rr_p_type_.p_type_sprintf_.sprintf_p_class_.p_classres_init.o 597787166 0 10 100777 1719 ` Ph`an`ݞФܮȰ5ܾΤȤޞ.> g plb0dp$ y bcФF( ,1@   1@ ``` Onb`@,ޞb`:0c 0 ;:>bJ( .,1 @   1@ ``` b04`c#ݓܣܳΐ b0dp$ ݎbp8lb0< b0.0c 0 .1@ěbaLhAPlrdomainnameserver$Header:res_init.c 12.0$/etc/resolv.conf : T lD Zr@@L@l Pp PtPxP|PPPPPh'',?6O< F&QXt_g+nvN]ve!res_init.o_rcsid.oVncs.oVhc2.1n.oVO_conffile__res_res_init_.res_initmcount_fopen_.fopen_fgets_.fgets_strncmp_.strncmp_strncpy_.strncpy_index_.index_inet_addr_.inet_addr_fclose_.fclose_gethostname_.gethostname_strcpy_.strcpy res_mkquery.o 597787166 0 10 100777 1508 ` LHan`f g01A2Q͡hذȻ @ @  ("!(! !(!(!r ()!r @('!(!"#$%Ț ! 0$0r 1p /@ ,bp0. #r  a4 B !4>[Bdpg b`"TP//40bpcdQ   a4r!c q!c "Ȕ`t! o40cdQ   a4ᒤ*c q!c c$ c ;%ͱ  a4ɑr!c q!c c$bc !cd(ᛤ#b*a4h@`%s.%s$Header:res_mkquery.c 12.0$  p 0H`nHVdr@@ P P P P$P(P,P h*'/#<IJQOWv^fp&{FtWUres_mkquery.o_rcsid.oVncs.oVhc2.1n.oVO_res_mkquery_.res_mkquerymcount__res_index_.index_res_init_.res_init_sprintf_.sprintf_dn_comp_.dn_comp_putshort_.putshort_putlong_.putlong_bcopy_.bcopyres_send.o 597787166 0 10 100777 2244 ` 0\han\`1!g0h@6Q2q4`<r- aX,5!.q}s u 0"1@ . `fZ`` 0@ x.`f >.Vg1qV78q9:qB& .`f .fܱV.c`d bVV@ .c` .`f .fܱVd@ .c` bVV@ .c` .`f .  "2@ .`` 0@ q1.dpP 'q p- s=;! A;A<!40 $.o `c52c1A@}=!,014@P( 2O..cvAP,k |2u!t1 r- t1  . .q  baX.baXs r= 0 <0 0mbaX.....=r-r-hA)n`. ,, p$Header:res_send.c 12.0$ & p4 ppp<`vp|p 6Nh<npx@@ P PPP P$P(P,P0P4P8@04 h*'/89LDKOQ[&fn'w~t;d,{Ph ores_send.o_rcsid_s.oVncs.oVhc2.1n.oVO_res_send_.res_sendmcount__res_res_init_.res_init_socket_.socket_errno_connect_.connect_close_.close_writev_.writev_read_.read_send_.sendldiv$$_bzero_.bzero_select_.select_recv_.recv__res_close_._res_closerew.o 597787173 0 10 100777 467 ` d( n`m -0@ 0 r 1 X-(  ( 00 x$Header:rew.c 12.0$  " @@ P P dh"''h/8?LGPW)_rew.o_rcsid.oVncs.oVhc2.1n.oVO_rewind_.rewindmcount_fflush_.fflush_lseek_.lseek rexec.o 597787165 0 10 100777 2358 ` $8فnxAQ`!x1|AQp"Hm  (AxpD>L ɁD1xp-0#p-1AP"1@Tk .X ɁDr 4|6sMt-p"18\14b@` $ "=  bdbhp-X ɁD >,bAlr"1@Th  bd ɁD1pȐ11$Abt q .0Xbd&ȡ>]FM-\l.r{4_&jUt;f [Z"%U2{@FIS$[dlu{rexec.o_rcsid.oVncs.oVhc2.1n.oVO_rexecoptions_rexec_.rexecmcount_gethostbyname_.gethostbyname__iob_fprintf_.fprintf_ruserpass_.ruserpass_socket_.socket_perror_.perror_bcopy_.bcopy_connect_.connect_errno_close_.close_sleep_.sleep_write_.write_listen_.listen_getsockname_.getsockname_sprintf_.sprintf_strlen_.strlen_accept_.accept_read_.readrindex.o 597787191 0 10 100777 426 `  H`@aqp`0d0H@b&c`ccc0P36p2$c .` c &d c e 8 0 q2rrrrq2! ! !qabpqa$Header:rindex.s 12.0$ `B`@ "+2rindex.orcsid.oVncs_rindex_.rindexmcountrint.o 597787192 0 10 100777 1322 ` ٱnx` $C001 ?0xd e0 @hɱP0XɱPߺ! "t` `<T#` (E`0`0T3`0<@`<(#` `0@#`0(`#`0(#`0(`#`0(#` $Header:rint.c 12.0$ 2 @@ P P* P~ P P P PF Pn P P P6 P^ P P P h#'(/|7>H6SZrint.o_rcsid.oVncs.oVhc2.1n.oVO__rint_._rintmcount_copysign_.copysignFPGLUErint_rtfl.o 597787192 0 10 100777 342 ` ,@`,`@`@#4`@ PPH ',-4;Brint_rtfl.o_rintend.oVncs_.rint_rintmcountFPGLUE__rintrmdir.o 597787192 0 10 100777 252 ` <H<`@pPU0%  `(p@ <d")0rmdir.o.oVncs_rmdir_.rmdirmcount_errnorpc_callmsg.o 597787169 0 10 100777 1725 ` xxH١n`j k0p }x  ɡ<{; ɡ< (cq*vBbpl p 0 q 0 q  ɡ.oVncs.oVhc2.1n.oVO_xdr_callmsg_.xdr_callmsgmcount_bcopy_.bcopy_malloc_.malloc_xdr_opaque_.xdr_opaque_xdr_enum_.xdr_enum_xdr_u_int_.xdr_u_int_xdr_u_long_.xdr_u_long_xdr_opaque_auth_.xdr_opaque_auth rpc_prot.o 597787169 0 10 100777 2462 ` |Dn`l m0 =bdP 4 4! n`l m0  4bcЍ4! n`l m0  4= b . 4uMt=bp4=b  4=b4s ה !4! n`l m0 . 4=b  4bcЍ4bcЍ4p ה 4! n`l m0Д =b q =^0bdЍ8 8!ٱn`k l01ܤ2 p .Ĕ (<b <bĔ < bĔ <bɱ8bɱ8߸!n` 9"RUP%%R ".:0, 0, 0, 0, 0,0,012#,! n`!0,0,& 012#,! n`l m0r v, 0 4ps,  ```0 r 1 p t 1 u 2 4t 1 4w 1 x 2 4 4! 0@(#)rpc_prot.c 1.1 86/09/24 Copyr 1984 Sun MicroRPT$Header:rpc_prot.c 12.0$ . ^f"\d 0`v`@8@@PD PH@P PT@\@`@l@t@@P@@@@@@ h' &7>IP5ZeSp|uRoQ u;APp(4xATO ^n.oVncs.oVhc2.1n.oVO__null_auth_xdr_opaque_auth_.xdr_opaque_authmcount_xdr_enum_.xdr_enum_xdr_bytes_.xdr_bytes_xdr_deskey_.xdr_deskey_xdr_u_long_.xdr_u_long_xdr_accepted_reply_.xdr_accepted_reply_xdr_rejected_reply_.xdr_rejected_reply_xdr_replymsg_.xdr_replymsg_xdr_union_.xdr_union_xdr_callhdr_.xdr_callhdr__seterr_reply_._seterr_replyruserpass.o 597787166 0 10 100777 10037 ` \`١n`l j0m@0pJ@ p  bcdЍ74pJ@G8k <0*.cd@ Dp:"@H !LpJ@ 0db@:P 1p*:PpJ@ !p .c@ D.,T0-ɡ<ɡbЍ> bЍ,0,  ""bЍɁ@ ƈ*bcЍ  + qp* bЍ|!L0*cЍ]cЍ Vp,"c ? (>$b>Lb!\g 'p $bЍ|!L0+cЍM (>pdЍ; #+ !" "P//.!I+L p,Ɂ@Ɂ@߈1A!ٱn`,p,X  ɱ8p 0q2@112` )  ,p,p 0q2@112` ,  ɱ8p,k"Gp 0q2@112` "p,\p 0q2@1 12` p, p 0q2@112` X"T p 0q2@112` ? = ; 8, 5p,\p 0q2@1 12` p, p 0q2@112`  ,ͤ +D ɱ8p, cЍ q,ɱ8p, *ɱ8߸qn`i j@,bЍ@ 8Ȏ|b ޲ ```0@ b18@ bpcЍm c bbcbcp@ bqHx1فn`l m@kb@ .h@ $ @ $```Őbc_c bbc @ bɁX߈1ٱn`k ,bЍnbЍV 0b>bh10 $bcVbФ0bЍɱ8߸!ٱn`k ,bЍ/bЍ0b>bh10 bc|bФ1kbЍ@ ɱ8߸!n`PdTF ```@SP O`Pd 1@SP @ ,! n`@D,eSc_c2@3 cNP bNP$P, n`PdTF ```@SP 'ZP9PPO`Pd 1@SP @ ,! n`@D,eQ^Qc_c2@3 .9ZcNp ٤bNp$p, n`P03,d^oo5dQ b Pb5BBQ @e4%%A ǐ eQPTm-b#b\d#-b#"$   4 ٱn`P,d^DdBdȐQ@ P0 lPo OO kἪdhm ll H0 dAOAdHIJKLDMDdFdMdNdBmd(m)m*+ Ĥd oo' dȐ Q}0eEE1 Pc^3 cCcRCQ@ ɱ8߸!١n`j @  ɡ<.>k  ɡ<,xb1@$e$#xbc$  b0bɡbЍȱ bcЍd@  @ ``` bɡpߨ+ٱn`k #l@@  ɱ8Um  (>!bcdqɱ8߸1ٱn`k #l@@  ɱ8m  (>̤!bcdɱ8߸1Name (%s:%s): Password (%s:%s): ,$LMACH  $ HOME.%s/.netrcrError - .netrc file not correct mode. Remove password or correct mode. Unknown .netrc option %s t    $h8 d . :2*" <4,$ >6.&@80( 91)! ;3+# =5-% ?7/'(08@ '/7?&.6>%- 5=$, 4<#+ 3;"* 2:!) 1991)! :2*" ;3+# <4,$?7/'>6.&=5-%      )4%/7(3-!0,1'8"5.*2$ >                                                                                                                                   /etc/utmprl%ld@\Can't make key dTCan't make key $Header:ruserpass.c 12.0$defaultloginpasswordnotifywriteyesynoncommandforcemachine ?>ALC^EhFprHJLNNEFpHP0?VQppNCSUWCYC$?,\p@URNjU?^`b`cpeNgWCYgiFpkkLW&C2YHFpXk|`m?`oVoooo@ooog*?8`DYqqY?Y4Y@qt?|`?` p? ? ` :? ? ` J? R` $? ,` ? b ` sg$mBsRmx?W?uwYuw Yu$w2Yb``?Fp$k.L`?FpkL@@4@8@<@P@BPDDPHGPLIPPKPTMPXOP\@d@hRPlTPpVPtXPx@|@@@@@@@@@@@@@@]P_PaPdP@fPhPjPlP@nP@@pP@@@@ @@@@ @$@(@0@8@@@@@h@p@rP@@tPvP@@@@@@@,,$$+3<LFQ0Y\athpsvh d > 8 #- 8B .MW bfXjqx4Tt@ \ldh'_%"/B:BsKSB\.bLjsyvC]N$! XTr `((1F:DtKSZbjks|4N3[2X!ruserpass.o_rcsid_cfile_renv_.renv_rnetrc_.rnetrc_renvlook_.renvlook_tokval_toktab_token_.token_E_e_nbsencrypt_.nbsencrypt_nbs8encrypt_.nbs8encrypt_nbsdecrypt_.nbsdecrypt_nbs8decrypt_.nbs8decrypt_enblkclr_.enblkclr_nbssetkey_.nbssetkey_blkencrypt_.blkencrypt_deblknot_.deblknot_enblknot_.enblknot_deblkclr_.deblkclr_IP_FP_PC1_C_PC1_D_shifts_PC2_C_PC2_D_C_D_KS_S_P_L_R_tempL_f_preS_getutmp_.getutmp_sreverse_.sreverse_mkenvkey_.mkenvkey.oVncs.oVhc2.1n.oVO_ruserpass_.ruserpassmcount_getlogin_.getlogin_malloc_.malloc_printf_.printf__iob_fflush_.fflush_read_.read_exit_.exit_index_.index_getpass_.getpass__ctype__strncpy_.strncpy_strncmp_.strncmp_strlen_.strlen_strcpy_.strcpy_mkpwclear_.mkpwclear_environ_getenv_.getenv_sprintf_.sprintf_fopen_.fopen_errno_perror_.perror_strcmp_.strcmp_fstat_.fstat_fprintf_.fprintf_fclose_.fclose__filbuf_._filbuf_strcat_.strcat_fread_.fread_isatty_.isatty_ttyname_.ttyname_mkpwunclear_.mkpwunclear scalb.o 597787192 0 10 100777 2446 ` 8`n8!91:A;Q`8!91:A1 #eR]t 0>.@04" @00P"N ?0 zQNT:QdP 0_T"`аP _1 " @08P !/" E ?0 y1x!0>.@0A n8!91:A;Q`8!91 q=pMb@ 4 $" 00   `0 Ψ !``` 0\0y1x! y1x!0p 0 y1x!0A D6B0w;vhMw`d3 `|@3`((#` (E` H#3`0D#3`$D#3 `$(@3 ` d3#3 `$D3# `<P#` <`##3$Header:scalb.c 12.0$dp"p4jL@(@0P4P:PP@PBPjPx@P@P:PbPx@P@PPfP@  ',28>DKhU'ZbXkr|6Dscalb.o_rcsid_msign_mexp_prep1_gap_bias_novf_nunf_zero.oVncs.oVhc2.1n.oVO__scalb_._scalbmcount_copysign_.copysign_errno_scalb_.scalbFPGLUE__logb_._logb_isnan_.isnanscalb_rtfl.o 597787192 0 10 100777 568 ` T 0T`@`@`@#4*`@#4`8`@@ PP@@JP\ Pp$+2T8?FM*U\dscalb_rtfl.o_logbend_scalbend.oVncs_.logb_logbmcountFPGLUE__logb_.scalb_scalb__scalbscandir.o 597787162 0 10 100777 1337 ` LDxXanl`11f@0Ql  aHp,cЍ  aHw!0k b"i  aHbg p g` bpp V (h  aHp0"#(x@q!``` &p,cЍ  aHw!<k c2bi  aH`b ݂bg pb p bcDpQ q!0baHhA%n`p"(p38,! $Header:scandir.c 12.0$  : Z d  (P`z@@ P P PPP P$P(@0Ph&'+*4>E NX_gnvsj7Zz`&scandir.o_rcsid.oVncs.oVhc2.1n.oVO_scandir_.scandirmcount_opendir_.opendir_fstat_.fstatldiv$$_malloc_.malloc_readdir_.readdir_realloc_.realloc_closedir_.closedir_qsort_.qsort_alphasort_.alphasort_strcmp_.strcmp scanf.o 597787173 0 10 100777 730 ` 88(n7!819A:Q`7!` 819A:Q "A c,A n7!819A:Q`7!819A:QA$,A nA?Q`A?QA(2!1!@0A@! R@@H PL PPP$h.'3<"FMJV<`gn)vjseekdir.o_rcsid_sccsid.oVncs.oVhc2.1n.oVO_seekdir_.seekdirmcount_telldir_.telldirldiv$$_lseek_.lseek_readdir_.readdir select.o 597787192 0 10 100777 255 ` <H<`@p]PU0%  `(p@ <P%,3select.o.oVncs_select_.selectmcount_errno send.o 597787192 0 10 100777 249 ` <H<`@pePU0%  `(p@ <&-send.o.oVncs_send_.sendmcount_errno sendmsg.o 597787192 0 10 100777 258 ` <H<`@prPU0%  `(p@< (/6sendmsg.o.oVncs_sendmsg_.sendmsgmcount_errnosendto.o 597787192 0 10 100777 255 ` <H<`@pPU0%  `(p@ <y%,3sendto.o.oVncs_sendto_.sendtomcount_errno setbuf.o 597787174 0 10 100777 419 ` l(xn`m l0r- #X= X=s( 2b X ( 3 1-3 0 4X=! |$Header:setbuf.c 12.0$ " @@ P lh%'*p2;ByHOsetbuf.o_rcsid.oVncs.oVhc2.1n.oVO_setbuf_.setbufmcount_free_.free setbuffer.o 597787174 0 10 100777 743 ` @(8ٱn`m k0l@r- !X= X=s( 2b X ( 3 1-3ͤ0 ɱ8X=߸1n`m bФ0@ c 0 b@ X ( 00 h$Header:setbuffer.c 12.0$ $ tz @@ P@ P@ Ph('-8DKyQX^d@hqLyssetbuffer.o_rcsid.oVncs.oVhc2.1n.oVO_setbuffer_.setbuffermcount_free_.free_setlinebuf_.setlinebuf_fflush_.fflush_malloc_.malloc setdomainname.o 597787192 0 10 100777 326 ` <(T\`@pPU0% $Header:setdomainname.c 12.0$ `(p @<!\0@GNsetdomainname.orcsid.oVncs_setdomainname_.setdomainnamemcount_errnosetegid.o 597787162 0 10 100777 370 ` 0(xn`c , @$Header:setegid.c 12.0$  @@ P0h&'+P44B>E(OZsetegid.o_rcsid.oVncs.oVhc2.1n.oVO_setegid_.setegidmcount_setregid_.setregidseteuid.o 597787162 0 10 100777 370 ` 0(xn`c , @$Header:seteuid.c 12.0$  @@ P0h&'+44z>E`OZseteuid.o_rcsid.oVncs.oVhc2.1n.oVO_seteuid_.seteuidmcount_setreuid_.setreuidsetfloatstate.o 597787192 0 10 100777 276 ` <H<`@pPU0%  `(p@<*-:AHsetfloatstate.o.oVncs_setfloatstate_.setfloatstatemcount_errnosetgid.o 597787162 0 10 100777 363 ` ,(xn`c , <$Header:setgid.c 12.0$  @@ P ,h%'*02;B(LWsetgid.o_rcsid.oVncs.oVhc2.1n.oVO_setgid_.setgidmcount_setregid_.setregid setgroups.o 597787192 0 10 100777 264 ` <H<`@pPPU0%  `(p@<".5v$Header:sethostent.c 12.0$ pJPp^ @@ @ P@h)'.:GNOT`>myo-Svsethostent.o_rcsid.oVncs.oVhc2.1n.oVO_sethostent_.sethostentmcount__res_endhostent_.endhostent__res_close_._res_close_sethostfile_.sethostfile sethostid.o 597787193 0 10 100777 264 ` <H<`@pPU0%  `(p@ <".5E(OZsetrgid.o_rcsid.oVncs.oVhc2.1n.oVO_setrgid_.setrgidmcount_setregid_.setregidsetrlimit.o 597787193 0 10 100777 264 ` <H<`@pPU0%  `(p@<"b.5E`OZsetruid.o_rcsid.oVncs.oVhc2.1n.oVO_setruid_.setruidmcount_setreuid_.setreuidsetsockopt.o 597787193 0 10 100777 267 ` <H<`@piPU0%  `(p@<$18?setsockopt.o.oVncs_setsockopt_.setsockoptmcount_errno settimeofday.o 597787193 0 10 100777 273 ` <H<`@pzPU0%  `(p@<(7>Esettimeofday.o.oVncs_settimeofday_.settimeofdaymcount_errno setuid.o 597787162 0 10 100777 363 ` ,(xn`c , <$Header:setuid.c 12.0$  @@ P ,h%'*02.;B`LWsetuid.o_rcsid.oVncs.oVhc2.1n.oVO_setuid_.setuidmcount_setreuid_.setreuid shlun.o 597787193 0 10 100777 341 ` X$`n`ѤpR @T] q2 0_502q1pR߳T b0 d$Header:shlun.c 12.0$ @@ Xh$')\1:Ashlun.o_rcsid.oVncs.oVhc2.1n.oVO__shlun_._shlunmcount shutdown.o 597787194 0 10 100777 261 ` <H<`@pPU0%  `(p@f< +29shutdown.o.oVncs_shutdown_.shutdownmcount_errno sibuf.o 597787174 0 10 100777 189 ` H$Header:sibuf.c 12.0$@ h$')1sibuf.o_rcsid.oVncs.oVhc2.1n.oVO__sibuf sigblock.o 597787194 0 10 100777 261 ` <H<`@pmPU0%  `(p@< ]+29sigblock.o.oVncs_sigblock_.sigblockmcount_errno siginterrupt.o 597787162 0 10 100777 449 ` d0xٱn`k l0m0dЍ ɱ D r2r2bcФ@ɱ D߸!t$Header:siginterrupt.c 12.0$  J @@ Pd!h+'0h><MT\esiginterrupt.o_rcsid.oVncs.oVhc2.1n.oVO_siginterrupt_.siginterruptmcount_sigvec_.sigvec siglist.o 597787162 0 10 100777 1116 ` H$0DT`lx4Ldx$Header:siglist.c 12.0$Signal 0HangupInterruptQuitIllegal instructionTrace/BPT trapIOT trapEMT trapFloating point exceptionKilledBus errorSegmentation faultBad system callBroken pipeAlarm clockTerminatedUrgent I/O conditionStopped (signal)StoppedContinuedChild exitedStopped (tty input)Stopped (tty output)I/O possibleCputime limit exceededFilesize limit exceededVirtual timer expiredProfiling timer expiredWindow size changesSignal 29User defined signal 1User defined signal 2@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@h&'+r8siglist.o_rcsid.oVncs.oVhc2.1n.oVO_sys_siglistsignal.o 597787162 0 10 100777 495 ` (x ٱn`l 01b"mp 1 2kA bc  ɱPt1q u!r 110=2!-bc@  ɱPs!ɱPu!߸!$Header:signal.c 12.0$ `6 p @@ P h%'*2;BJSsignal.o_rcsid.oVncs.oVhc2.1n.oVO_signal_.signalmcount_sigvec_.sigvec sigpause.o 597787194 0 10 100777 261 ` <H<`@poPU0%  `(p@< +29sigpause.o.oVncs_sigpause_.sigpausemcount_errno sigsetmask.o 597787194 0 10 100777 267 ` <H<`@pnPU0%  `(p@<$18?sigsetmask.o.oVncs_sigsetmask_.sigsetmaskmcount_errno sigstack.o 597787194 0 10 100777 261 ` <H<`@ppPU0%  `(p@< u+29sigstack.o.oVncs_sigstack_.sigstackmcount_errno sigvec.o 597787194 0 10 100777 255 ` <H<`@plPU0%  `(p@ <%,3sigvec.o.oVncs_sigvec_.sigvecmcount_errno sleep.o 597787163 0 10 100777 1041 ` H@h@فn`j ȱ(Ɂ8|1032 cdЍ Ɂ8|2x! y * * s;y* 8!xyQ2 3[89h3541 h.d j ؐș0ɤ c@p bp ```.c@ b cФ@Ɂ8|߈n`P, p$Header:sleep.c 12.0$ 8 ``  * 2`@@ P PPPP @ Hh%.5h?'DLKfSZeqy]sleep.o_rcsid_ringring_sleepx_.sleepx.oVncs.oVhc2.1n.oVO_sleep_.sleepmcount_setitimer_.setitimer_sigvec_.sigvec_sigblock_.sigblock_sigpause_.sigpause_sigsetmask_.sigsetmask sobuf.o 597787174 0 10 100777 189 ` H$Header:sobuf.c 12.0$@ h$') 1sobuf.o_rcsid.oVncs.oVhc2.1n.oVO__sobuf socket.o 597787194 0 10 100777 255 ` <H<`@paPU0%  `(p@ <&%,3socket.o.oVncs_socket_.socketmcount_errno socketpair.o 597787194 0 10 100777 267 ` <H<`@pPU0%  `(p@<$ 18?socketpair.o.oVncs_socketpair_.socketpairmcount_errno spdiv7.o 597787194 0 10 100777 902 ` |فn`pR`Pe͵pS;j jhͨڳ АͨũŚ  Ƞi iᚪh͘ٳ А͘͘ŪŪ pTP P0TP```ճ г ```000ɁD߈1T *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$Header:spdiv7.c 12.0$ @\@ <%.5h?'DLMNW^spdiv7.o_rcsid_hitable_midtbl_midtbl2.oVncs.oVhc2.1n.oVO__spdiv8_._spdiv8mcountsprintf.o 597787174 0 10 100777 531 ` , n=!>1?AQ@`=!>1?AQ@B(1!0 x @@ P Ph&'+F4>E~NXfaksprintf.o_rcsid.oVncs.oVhc2.1n.oVO_sprintf_.sprintfmcount__doprnt_._doprnt__flsbuf_._flsbuf stat.o 597787194 0 10 100777 249 ` <H<`@p&PU0%  `(p@ <"&-stat.o.oVncs_stat_.statmcount_errno statfs.o 597787194 0 10 100777 297 ` < TT`@pPU0% $Header:statfs.c 12.0$ `(p@ <aT"+29statfs.orcsid.oVncs_statfs_.statfsmcount_errno strcat.o 597787195 0 10 100777 578 ` ` H x`@a` R%S@Estrcatn.o_rcsid.oVncs.oVhc2.1n.oVO_strcatn_.strcatnmcount strchr.o 597787203 0 10 100777 314 ` <$`n`3@,! ,! H$Header:strchr.c 12.0$ @@ <h%'* @2;Bstrchr.o_rcsid.oVncs.oVhc2.1n.oVO_strchr_.strchrmcountstrcmp.o 597787195 0 10 100777 270 ` < HT`@@B@S!1E@鏤 Eb@$Header:strcmp.s 12.0$ `@ <T"+2strcmp.orcsid.oVncs_strcmp_.strcmpmcountstrcmpn.o 597787203 0 10 100777 353 ` `$`n`A @@RP1P! ,A @@RP1 @ @1@# ,1 l$Header:strcmpn.c 12.0$ @@`h&'+d4">Estrcmpn.o_rcsid.oVncs.oVhc2.1n.oVO_strcmpn_.strcmpnmcount strcpy.o 597787195 0 10 100777 462 `  H `@` S 5T@(DEpCTVPR!TNXR!T FR!4R#pCT T @ RT T !B$4pC@ Rb!Bb"PRbT XRT T HRTR $4pCHRb!PRb$Header:strcpy.s 12.0$ `,`@ ! "+2strcpy.orcsid.oVncs_strcpy_.strcpymcountstrcpyn.o 597787203 0 10 100777 353 ` `$`n`e @1! ! ```bP, bP,1 l$Header:strcpyn.c 12.0$ @@`h&'+d4@>Estrcpyn.o_rcsid.oVncs.oVhc2.1n.oVO_strcpyn_.strcpynmcount strcspn.o 597787203 0 10 100777 353 ` `$`n`@B!@ e0@ @ Q@``` b,@B!@b,! l$Header:strcspn.c 12.0$ @@`h&'+d4:>Estrcspn.o_rcsid.oVncs.oVhc2.1n.oVO_strcspn_.strcspnmcount strlen.o 597787195 0 10 100777 326 ` l H`@` R%S@8DEpB$TTT T qB!!! $Header:strlen.s 12.0$ `*`@ l$"+2strlen.orcsid.oVncs_strlen_.strlenmcountstrncat.o 597787163 0 10 100777 349 ` \$`n`e @!```!@1! A! @1!bP,1 h$Header:strncat.c 12.0$ @@\h&'+`4:>Estrncat.o_rcsid.oVncs.oVhc2.1n.oVO_strncat_.strncatmcount strncmp.o 597787195 0 10 100777 281 ` D H\`@`@@B@S!1 E@鏤 Eb@$Header:strncmp.s 12.0$ `@D\$N.5strncmp.orcsid.oVncs_strncmp_.strncmpmcount strncpy.o 597787163 0 10 100777 353 ` `$`n`e @1! ! ```bP, bP,1 l$Header:strncpy.c 12.0$ @@`h&'+d4]>Estrncpy.o_rcsid.oVncs.oVhc2.1n.oVO_strncpy_.strncpymcount strout.o 597787174 0 10 100777 831 ` (xHّn`i j0k@lPi@@ -4 01p,! 0,q,@ !%1,X "s q,@  q 1 q,@"c@*cp,! 0,q,ґ!%1,X "s q, q 1 q,@"c-c 2p,! 0,q,@ !%1,X "s q,@  q 1 q,@"c@*cД 2@p,! 0,q,ґ!%1,X "s q, q 1 q,@"c-cɑ@ߘQ$Header:strout.c 12.0$ t 6 F   @@ P h%'*3P=DfMWstrout.o_rcsid.oVncs.oVhc2.1n.oVO__strout_._stroutmcount__flsbuf_._flsbuf strpbrk.o 597787203 0 10 100777 337 ` P$`n`@B@ e0@ @,Q@!@B@ ,! \$Header:strpbrk.c 12.0$ @@Ph&'+T4_>Estrpbrk.o_rcsid.oVncs.oVhc2.1n.oVO_strpbrk_.strpbrkmcount strrchr.o 597787203 0 10 100777 317 ` <$`n`C0@c !```b0,! H$Header:strrchr.c 12.0$ @@<h&'+@4f>Estrrchr.o_rcsid.oVncs.oVhc2.1n.oVO_strrchr_.strrchrmcount strspn.o 597787203 0 10 100777 350 ` `$`n`@B!@ e0@ @ Q@```b,@B!@b,! l$Header:strspn.c 12.0$ @@ `h%'*Vd2;Bstrspn.o_rcsid.oVncs.oVhc2.1n.oVO_strspn_.strspnmcountstrtok.o 597787204 0 10 100777 513 ` (x(ّn`i j0͙ؐؔ ɑ@@ؔ bc @ɔ 0-ɑ@ȹ@˔ bc @˔0  0bɑ@ߘ!$Header:strtok.c 12.0$ `4`B v @@ P h%'*U2;BvIQstrtok.o_rcsid.oVncs.oVhc2.1n.oVO_strtok_.strtokmcount_index_.index stty.o 597787200 0 10 100777 347 ` 4$xn`d00t 3,! $Header:stty.c 12.0$  @ P 4h#'(L.M5<CKstty.o_rcsid.oVncs.oVhc2.1n.oVO_stty_.sttymcount_ioctl_.ioctl svc.o 597787169 0 10 100777 3480 ` @n`pB c@2S%03p#0,, n`pB c@2cp003p#0,, ١n`j k0l@mPdbcx s ! ɡ@   ɡ@123030#A@@ Zbcɡ@!ɡ@ߨQn`l m0d* 8p10pdp00bcЍ 8!n`Pd qr ep0Tb,1 n`12xyR34Qz567A81crBsDp0\1n`12xyR34Qz56crBsDp0\n`12xyR34Qz56crBsDp0\n`12xyR34Qz56crBsDp0\n`12341crBsDp0\!n`5, n`1112xyR34Qz561crBsDp0\n`12xyR34Qz56718AcrBsDp0\1فn`͙ؐ` Ȥ `ذȻb pr*pBbcp ]ݡQQbcc 0 b/2 0@ Qq!r sObcp!cdp bV b.r*q2bp  r*u2bp! wɁD߈AQ١n`ؠȪذȻp 10 c@P p  .$ɡD q!(ߨ@(#)svc.c 1.1 86/09/24 Copyr 1984 Sun MicroPDRJTl~ jsvc.c: - Select failed$Header:svc.c 12.0$ `*p\n`p `.^``V(`pT`(v|p+p-/@0@8@@@H@L PP PT@\P`Pd@l@t@|@@@@@@@@'P@@@,P.P@ h'1#2HBIZPlT zs0P4Ry&j;LqT$UJ4U\CSdexlTtT#Y~q ! 0~9pjCJRQ[cjl.oVncs.oVhc2.1n.oVO_svc_fds_xprt_register_.xprt_registermcount_xprt_unregister_.xprt_unregister_svc_register_.svc_register_malloc_.malloc_pmap_set_.pmap_set_svc_unregister_.svc_unregister_free_.free_pmap_unset_.pmap_unset_svc_sendreply_.svc_sendreply_svcerr_noproc_.svcerr_noproc_svcerr_decode_.svcerr_decode_svcerr_systemerr_.svcerr_systemerr_svcerr_auth_.svcerr_auth_svcerr_weakauth_.svcerr_weakauth_svcerr_noprog_.svcerr_noprog_svcerr_progvers_.svcerr_progvers_svc_getreq_.svc_getreq__authenticate_._authenticate_svc_run_.svc_run_errno_select_.select_perror_.perrorsvc_auth.o 597787170 0 10 100777 634 ` t8n`vwS34Rx5wBPU8TwB:s  dDp,",! n` , @(#)svc_auth.c 1.1 86/09/24 Copyr 1984 Sun Microd$Header:svc_auth.c 12.0$  pp@8@<P@PD@H@P@ h'|)8lH!Wgnzd.oVncs.oVhc2.1n.oVO__svcauth_null__svcauth_unix__svcauth_short__authenticate_._authenticatemcount__null_auth_._svcauth_nullsvc_auth_unix.o 597787170 0 10 100777 1049 ` `88فn`h v 1 5 xmw3bdQ,q!vBbcpj Mp*0)pʑq9bd0q9b<<b0!.l#ªb!.,""p*2)p*3)p:8;49PS bP"uIb$pJ0BQS b0"",+.de4bc8  0bc8w(8w(:q!w20 bpbɁ\߈!n`",! @(#)svc_auth_unix.c 1.1 86/09/24 Copyr 1984 Sun Microbad auth_len gid %d str %d auth %d <$Header:svc_auth_unix.c 12.0$ ,Z H@<@hPlPp Pt Px@ h')9@}O_fUnvBl:<.oVncs.oVhc2.1n.oVO__svcauth_unix_._svcauth_unixmcount_xdrmem_create_.xdrmem_create_bcopy_.bcopy_printf_.printf_xdr_authunix_parms_.xdr_authunix_parms__svcauth_short_._svcauth_short svc_raw.o 597787170 0 10 100777 1245 ` n`x0 " 2 L9 -403@"`R-0 n`", ٱn`k00q,uBb0pbc  ɱ8bɱ8߸!ٱn`k00q,uBb0pbc bɱ8q,t2bp!ɱ8߸!n`m0 "c@p 01 n`m0 "0c@p 01 n`, `@(#)svc_raw.c 1.1 86/09/24 Copyr 1984 Sun Micro0(H<PXZ|Bv$Header:svc_raw.c 12.0$ `2p>f` ` NV``@4@8@<@@@D@H@L@TPX@`@h Pl@t Px@@@ h'A)w9@J}Yiv.oVncs.oVhc2.1n.oVO_svcraw_create_.svcraw_createmcount__raw_buf_xdrmem_create_.xdrmem_create_xdr_callmsg_.xdr_callmsg_xdr_replymsg_.xdr_replymsg svc_simple.o 597787170 0 10 100777 2059 ` P D`ّn`i j0k@lP (>@ ɑDr 2 1-  (>, ɑDbcq-PU0cd  (>Lde ɑD /  (>p ɑD012D3H4p 50- ɑDߘa١nd`k0r20%03b@L (>!Pɡ"`"pB fq `r ]mb0"`Tr+rs!Pr+s0!Pɡ"`"ɡ"`"t<ߨ!H@(#)svc_simple.c 1.1 86/09/24 Copyr 1984 Sun Microcan't reassign procedure number %d couldn't create an rpc server couldn't register prog %d vers %d registerrpc: out of memory Lxxx trouble replying to prog %d never registered prog %d $Header:svc_simple.c 12.0$ p. F`Z jpx `p pp Xfppp `p0>pN Xp @8@P P PPP@$P(P,P0P h'++9@.FO4YhYx&jTs;q{U#.oVncs.oVhc2.1n.oVO_pl_registerrpc_.registerrpcmcount__iob_fprintf_.fprintf_svcudp_create_.svcudp_create_pmap_unset_.pmap_unset_svc_register_.svc_register_malloc_.malloc_xdr_void_svc_sendreply_.svc_sendreply_exit_.exit_bzero_.bzero_svcerr_decode_.svcerr_decode svc_tcp.o 597787170 0 10 100777 4104 ` (فn`m h0i@@0A "1Fm  . ɁXpA2"#bcdbc  bФ2 .0 bЍbɁX(l  (>\bɁX01 4j  (>|bɁX<; "pqR8 9Zr: 2 " 0bbɁX߈1n` ,1 ّn`l i0j@ 4m  (>E k  (>0bЍX*Ф0 +h0x1cdeЍ\ <-; 9 3-2 "-0bЍbɑHߘ1ّn`m {Ƞȱl0p-cd  "$ ɑTqIp9kqrQ45RstQ67Rp3 ɑTߘn`", n`l {܍p,p   " s-w20 -pbЍb4 qn`i j0k@pɤѺqȎ10 cp@P  "$q bcd qP{)0 qPx1١n`j k0l@mp*cdЍ  {*0 ɡ<Ე bɡ<ߨ1n`{"p ,( !,", ١n`j0{0bbc p 1 bɡ< ɡ<ߨ!n`m0{"(c@p 01 n`m0{"(0c@p 01 n`{"0 q0bm b1 b4! @(#)svc_tcp.c 1.1 86/09/24 Copyr 1984 Sun MicroT@LTsvctcp_.c - udp socket creation problemsvctcp_.c - cannot getsockname or listensvctcp_create: out of memory svctcp_create: out of memory hsvc_tcp: makefd_xprt: out of memory svc_tcp: makefd_xprt: out of memory l #xZ2f$Header:svc_tcp.c 12.0$ *< h v pp,pNtpp` `. Rx"#p%(V`'#p)  +f-/1>r35@4@8@<@@@D@H@L@P@TPXP\P`@d@P P P PPPPP P$@,@0@PP@!P@@$P@&P(P@*P@,P@.P0P@@@2P 4P h'!0Y@GO&X`jiFoxvU{Z";s.4H9h#y)0}?OW`gxP[ /CX.oVncs.oVhc2.1n.oVO_abort_svctcp_create_.svctcp_createmcount_socket_.socket_perror_.perror_bind_.bind_getsockname_.getsockname_listen_.listen_close_.close_malloc_.malloc__iob_fprintf_.fprintf__null_auth_xprt_register_.xprt_register_svcfd_create_.svcfd_create_free_.free_xdrrec_create_.xdrrec_create_accept_.accept_errno_xprt_unregister_.xprt_unregister_select_.select_read_.read_write_.write_xdrrec_eof_.xdrrec_eof_xdrrec_skiprecord_.xdrrec_skiprecord_xdr_callmsg_.xdr_callmsg_xdr_replymsg_.xdr_replymsg_xdrrec_endofrecord_.xdrrec_endofrecordsvc_udp.o 597787170 0 10 100777 4648 ` 40فn`i j0k@@0A "2@i  . ɁXpA2Ѥ"#bcdbc .0 bbɁX 4l  (>TbɁX h  (>tbɁX j0b;,c 0 (>bɁXpH(Q< 9 2 " 0bbɁX߈1n`0"`@"`$,1 n`", qn`h i0|Ⱥp 3xpJ{8p(01ѤP034  qX0q+uBb0pbc  qXp 1  A Qbc& rAs1p(0s1P qXbqXx!ّn`i j0|Ф0 q,uBb0pq 0 bc %q,t2bpl {9p) 0s 1dP,  bc bɑHߘ!n`m0|"(c@p 01 n`m0|"(0c@p 01 n`l |܍p,s-w20 -p{, bЍ b 4 ّn`i0|   (>N  ɑ@ ,k  (>0N4 ɑ@03˪mbЍ1+  (>\N`bɑ@cЍb2+  (>Nbɑ@cݺ!ɑ@ߘ!ّn`i j0|9l0s-"r bp 4#p22p+2q bp (p  ``` (>N ɑ@z 09x+ ,k  (>(N,ɑ@p,Ԕ  (>LNPɑ@9{98;;)c pL,Pq 0 v 1 u 2 t 3 w x]4 5[y z]6 7[|)"p22p+2q bp: q b0s-c 2r c0!3-p=3=ɑ@ߘ!an`g h00AiP|+p22qbЌ2q bpl )p #v q* u r* t s* *c`@  p!x 0y 0 !aPzu6 t5 s4 tuW7 8\vwW9 :\ aPqhA t@(#)svc_udp.c 1.1 86/09/24 Copyr 1984 Sun Micro   svcudp_create: socket creation problemsvcudp_create - cannot getsocknamesvcudp_create: out of memory svcudp_create: out of memory svcudp_create: out of memory  h xD%s enablecache: cache already enabled%s enablecache: could not allocate cache%s enablecache: could not allocate cache data%s enablecache: could not allocate cache fifoh%s cache_set: victim not found%s cache_set: victim alloc failed%s cache_set: could not allocate new rpc_buffer$Header:svc_udp.c 12.0$ ,> j x pp&8pFb&6pj!#@!%'"','Pbptpp+"p4J+t,p p2@pRv,,,L.@4@8@<@@@D@H@L@PP P PPPPP P$@,@0@8@@PDPH@L PP@X"P\@`@h@p@x$P|&P@<*P@@@-P h',?FN&W_jhFnxuU{;s.4}HY&01;BO]eyn|y+ (D{8j.oVncs.oVhc2.1n.oVO_svcudp_bufcreate_.svcudp_bufcreatemcount_socket_.socket_perror_.perror_bind_.bind_getsockname_.getsockname_close_.close_malloc_.malloc__iob_fprintf_.fprintf_xdrmem_create_.xdrmem_create_xprt_register_.xprt_register_svcudp_create_.svcudp_create_recvfrom_.recvfrom_errno_xdr_callmsg_.xdr_callmsg_sendto_.sendto_xdr_replymsg_.xdr_replymsg_xprt_unregister_.xprt_unregister_free_.free_svcudp_enablecache_.svcudp_enablecache_bzero_.bzerouldiv$$_bcmp_.bcmpswab.o 597787163 0 10 100777 456 ` $`n`AAA @R!@!1S1ACA C@R!@!1S1@R!@!1S1@R!@!1S1@R!@!1S1@R!@!1S1@R!@!1S1@R!@!1S1@R!@!1S1A,1 $Header:swab.c 12.0$ @@ h#'(.5bpd8bpb8b0 bpHbpbp8bp$b`d8 b"23b`Hb`0bplb0>prbcpdtbЍx | h a lhqBn` .p>l@ xh , ", ">LNl !2@ .h2A,,1 n`.TT, n`X .Xb,  /dev/log/dev/console$<%d>%.15s [%d]: error %d 4$Header:syslog.c 12.0$syslog p ~p p`("V$z&(*,.,02468:@r`<>@6@(@4@h@lPpPtPxP|PP!P#P%P'P)P+P-P/P1P3P5P7P9P@;P=P?P@@ 04@#P,T5X=\F`S,_fhp'ud}Q+4F$W!p8  (y1?8@HQ[]frMv[;F]&( ({2=IVsyslog.o_rcsid_logname_ctty_LogFile_LogStat_LogTag_LogMask_LogFacility_SyslogAddr.oVncs.oVhc2.1n.oVO_syslog_.syslogmcount_errno_openlog_.openlog_sprintf_.sprintf_strlen_.strlen_time_.time_ctime_.ctime_strcpy_.strcpy_getpid_.getpid_sys_nerr_sys_errlist_sendto_.sendto_vfork_.vfork_signal_.signal_sigblock_.sigblock_sigsetmask_.sigsetmask_alarm_.alarm_open_.open_strcat_.strcat_index_.index_write_.write_close_.close__exit_._exit_wait_.wait_strncpy_.strncpy_socket_.socket_fcntl_.fcntl_closelog_.closelog_setlogmask_.setlogmasksystem.o 597787163 0 10 100777 765 ` HH8١n`m j .>N0eЍ  "1$k #1$l bЍ(* 1"c$#c$q!ɡDߨ/bin/shsh-c$Header:system.c 12.0$  2 > JXh@@P P$ P(P,P h%'*2c;B?IQzX`gFowsystem.o_rcsid.oVncs.oVhc2.1n.oVO_system_.systemmcount_vfork_.vfork_execl_.execl__exit_._exit_signal_.signal_wait_.wait tell.o 597787200 0 10 100777 339 ` ,$xn`0A, $Header:tell.c 12.0$  @ P ,h#'(D.5<C)Ktell.o_rcsid.oVncs.oVhc2.1n.oVO_tell_.tellmcount_lseek_.lseek telldir.o 597787163 0 10 100777 332 ` 0$ln`m u-s=t 0 <$Header:telldir.c 12.0$ @@0h&'+J44<>E:Ltelldir.o_rcsid.oVncs.oVhc2.1n.oVO_telldir_.telldirmcountlmul$$tentothe.o 597787196 0 10 100777 1014 ` @x١n`k l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3 Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ!BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ $Header:tentothe.c 12.0$ @P@X P@DL&h0'5@ULS2\ftentothe.o_rcsid_pt_ptx.oVncs.oVhc2.1n.oVO__TenToThe_._TenToThemcount__mulu32_._mulu32time.o 597787163 0 10 100777 397 ` L(xn`m b0  8 p0 p!8\$Header:time.c 12.0$  @@ P Lh#'(P.5<QJYtime.o_rcsid.oVncs.oVhc2.1n.oVO_time_.timemcount_gettimeofday_.gettimeofday times.o 597787200 0 10 100777 628 ` 0( ١n|`j k c  ɡHlb2 0*bЍ* 1* c  ɡHb 2*bЍ 3* ɡHߨ!n`pmЪq"0A-0 $Header:times.c 12.0$  V @ P$@(@ &-h7'<CKR]iptimes.o_rcsid_scale60_.scale60.oVncs.oVhc2.1n.oVO_times_.timesmcount_getrusage_.getrusageldiv$$timezone.o 597787163 0 10 100777 1294 ` H @ّn`k m0.(i 20,,j # *ɑD`bcI0, bɑDbɑD>pp   r# ɑD q# ɑD "pR0bЍb0 ltemp.%d.%d$Header:tmpnam.c 12.0$  "`2 @@P P Lh%'*aP2;BpJ8SF\ftmpnam.o_rcsid.oVncs.oVhc2.1n.oVO_tmpnam_.tmpnammcount_getpid_.getpid_sprintf_.sprintftruncate.o 597787196 0 10 100777 261 ` <H<`@pPU0%  `(p@< 9+29truncate.o.oVncs_truncate_.truncatemcount_errno ttyname.o 597787163 0 10 100777 1088 ` $L ,`P١nD`m   ɡ1@bЍ  ɡH  ɡbЍl  ɡj <Dp* /ذȻpbcЍbccb @P! !Dq b$bɡbj b$ ɡߨ/X/dev/$Header:ttyname.c 12.0$  0 h`@ @ P P P P$P(P,P0P$(!h+'0[09CJ3R[bj s}j!"Zzttyname.o_rcsid_dev.oVncs.oVhc2.1n.oVO_ttyname_.ttynamemcount_isatty_.isatty_fstat_.fstat_opendir_.opendir_readdir_.readdir_strcpy_.strcpy_strcat_.strcat_stat_.stat_closedir_.closedirttyslot.o 597787163 0 10 100777 879 ` <X@n` m !m "m  4b0/ l lБЍ p"c  b4  4 $Header:ttyslot.c 12.0$  " 2 R h r@@ P P PPP Ph&'+4R>E[NX`it*ttyslot.o_rcsid.oVncs.oVhc2.1n.oVO_ttyslot_.ttyslotmcount_ttyname_.ttyname_rindex_.rindex_setttyent_.setttyent_getttyent_.getttyent_strcmp_.strcmp_endttyent_.endttyent ualarm.o 597787163 0 10 100777 485 ` ( n`l `0B@bcЌ514!bcЌ716!1d  rb$ " % # &s T T!$Header:ualarm.c 12.0$  ,< @@ P h%'*2W;BJUaualarm.o_rcsid.oVncs.oVhc2.1n.oVO_ualarm_.ualarmmcountuldiv$$_setitimer_.setitimer uldiv.o 597787196 0 10 100777 623 ` ( `@ ,0, #################################c bﯤ0 # ##!` 鏤0`@،b0`0$Header:uldiv.s 12.0$ ` ` @ @  z#t*/6>BG4QXt`isuldiv.orcsidmqdivby1bigdivreturntrap.oVncsuldiv$$_uldiv$$_.uldiv$$mcountulrem$$_ulrem$$_.ulrem$$ umask.o 597787196 0 10 100777 252 ` <H<`@pEhO'TEX\ elwvtimes.o_rcsid_getvtimes_.getvtimes_scale60_.scale60.oVncs.oVhc2.1n.oVO_vtimes_.vtimesmcount_getrusage_.getrusageldiv$$wait.o 597787197 0 10 100777 282 ` HTH`@RpTP0PU0%  `6p@ 4H!(/6wait.osyserror.oVncs_wait_.waitmcount_errnowait3.o 597787197 0 10 100777 307 ` L`L`@e ppTP0PU0%  `:p@ 8"L)?18?wait3.oscr15syserror.oVncs_wait3_.wait3mcount_errno whichfpa_rtfl.o 597787198 0 10 100777 291 ` ,T,`@`"`@ PB!(93,=DKwhichfpa_rtfl.o_whichfpaend.oVncs_.whichfpa_whichfpamcountFPGLUE write.o 597787198 0 10 100777 252 ` <H<`@pPU0%  `(p@ <[")0write.o.oVncs_write_.writemcount_errnowritev.o 597787198 0 10 100777 255 ` <H<`@pyPU0%  `(p@ d<,%,3writev.o.oVncs_writev_.writevmcount_errno xdr.o 597787171 0 10 100777 3794 ` $4n`!, n` ,! n`A,! n`d p qDqDp, qDpDp,!, ,! n`d p qDpDp, qDqDp,!, ,! n`d m0p,P 0cqDqDp4cqDpDp  4p !4!4  4! n`d m0p, 0cqDqDp4cqDpDp  4p !4!4  4! n`m0@ 0c  4p !4! n`m0@ 0c  4p !4! n`e m0p:p 0cq%qBbPp4cqEpDp  4p!!` 0 4!4 ۔ 4! n`k,! ٱn`l @!ɱ8 p )q,rbp  ɱ8!ɱ8q,r03bdp ɱ8'q,sbp  ɱ8!ɱ8q,s>bdp ɱ8!ɱ8 ɱ8߸1ّn`i j0m@kPpcЍ  ɑ@pݳVp  G ɑ@!ɑ@bЍ$l 0ʔ (>( ɑ@bcdЍ8,ɑ@ b00 !ɑ@   ɑ@p ߘAn`d04P{,! ١n`j m0k@lP  ɡܤ ɡ@pAbMpAbcЍOɡ@bЍ0 !ɡ@ ɡ@ߨ1n`@u !, ,! @(#)xdr.c 1.1 86/09/24"JrFZxdr_bytes: out of memory  (Vxdr_string: out of memory Xt$Header:xdr.c 12.0$ .V~Rf`  p*"\$b, p"*$d@ @(@0@4@<@@@H@P@X@`@h@l@t@x@@@@P!P@#P@@@@@+P@ @ h'$"/6B?4"I]Sr^i<JuoQDFlZ5 { $]1S(<HPsY._h4ryx\phtyV$X.oVncs.oVhc2.1n.oVO_xdr_void_.xdr_voidmcount_xdr_int_.xdr_int_xdr_long_.xdr_long_xdr_u_int_.xdr_u_int_xdr_u_long_.xdr_u_long_xdr_short_.xdr_short_xdr_u_short_.xdr_u_short_xdr_char_.xdr_char_xdr_u_char_.xdr_u_char_xdr_bool_.xdr_bool_xdr_enum_.xdr_enum_xdr_opaque_.xdr_opaque_xdr_bytes_.xdr_bytes_malloc_.malloc__iob_fprintf_.fprintf_free_.free_xdr_netobj_.xdr_netobj_xdr_union_.xdr_union_xdr_string_.xdr_string_strlen_.strlen_xdr_wrapstring_.xdr_wrapstringxdr_array.o 597787171 0 10 100777 1117 ` |H@an`i j0l@hPpc$  aLp̳ p   aLqLbpch 8p 0!aLb(k 0 (>, aLc0 !aL ````l ́Pbc@pm ᷐alp p*40 baLhaفn`h l0i@jPDbc@p  ɁDʐ !ɁD߈Q@(#)xdr_array.c 1.1 86/09/24 Copyr 1984 Sun Microxdr_array: out of memory  $Header:xdr_array.c 12.0$ Vx p ,@8@\P` Pd PhPlPp@ h'%18C<O:V^sg.mv4{y .oVncs.oVhc2.1n.oVO_xdr_array_.xdr_arraymcount_xdr_u_int_.xdr_u_intlmul$$_malloc_.malloc__iob_fprintf_.fprintf_bzero_.bzero_free_.free_xdr_vector_.xdr_vector xdr_float.o 597787171 0 10 100777 677 ` `n`d pqDqDp,qDpDp,!,  ,! ٱn`l m0p =qLqDp q,qBbcp bɱ8qLpDp q,pBbcp bɱ8!ɱ8 ޔ ɱ8߸!@(#)xdr_float.c 1.1 86/09/24 Copyr 1984 Sun Microj$Header:xdr_float.c 12.0$ v@H@p@ h'`%18D?jQ.oVncs.oVhc2.1n.oVO_xdr_float_.xdr_floatmcount_xdr_double_.xdr_double xdr_mem.o 597787171 0 10 100777 1195 ` $`hn`0R142325B,A n`, n`m u  5 0s-Ds 3 !0! n`m u  5 4p0bs=Ds 3 !4! n`l m@u 5 4s,s 3 !41 n`l m@u 5 4s b0cs 3 !41 n`st" , n`tdus2`@ ,3B5!,! n`@u 5sB`C3b@,! @(#)xdr_mem.c 1.1 85/05/30 Copyr 1984 Sun Micro.N8$Header:xdr_mem.c 12.0$ :ZzDh@4@8@<@@@D@H@L@P@T@\@d@lPp@x@@@@@ h'}x)9@GUO.oVncs.oVhc2.1n.oVO_xdrmem_create_.xdrmem_createmcount_bcopy_.bcopy xdr_rec.o 597787171 0 10 100777 3718 ` \(@ّn`i k0l@jP @hm  (>lɑ@1 30@7 D1 bpk h4-3-2-  (>(lɑ@5-s 3 t 4 6bpl 8͍h;-9-  (>Hlɑ@{ ; : <= >?ɑ@ߘan`l0s| zM {  b@D| < z : cDS  8p0 !8!ٱn`k0ss,c $3,t &3 6b09  ɱ    "xfnx. 6X N 8@4@8@<@@@D@H@L@P@T@P P@@ P@@@@@@@@ P@@@@$P(@0@4@<@D@L@T@\@`@h@p@ h'})9@HsQ.W`4jqUy)y  " .oVncs.oVhc2.1n.oVO_xdrrec_create_.xdrrec_createmcount_malloc_.malloc__iob_fprintf_.fprintf_bcopy_.bcopy_lseek_.lseek_free_.free_xdrrec_skiprecord_.xdrrec_skiprecord_xdrrec_eof_.xdrrec_eof_xdrrec_endofrecord_.xdrrec_endofrecordxdr_reference.o 597787171 0 10 100777 1030 `  @Hّn`i j0k@mPpʔ-p (b(l 0ʔ (>, ɑ@!ɑ@c0 bc@p m p b40 bɑ@ߘA١n`j k0l@mPp;0c  ɡ@p 0 !ɡ@bcdeЍ| ɡ@ߨA@(#)xdr_reference.c 1.1 86/09/24 Copyr 1984 Sun Microxdr_reference: out of memory \$Header:xdr_reference.c 12.0$ &8pF h @<@dPh Pl Pp Pt@|P@ h'\)c9@HsQ.W`4j{qyy.oVncs.oVhc2.1n.oVO_xdr_reference_.xdr_referencemcount_malloc_.malloc__iob_fprintf_.fprintf_bzero_.bzero_free_.free_xdr_pointer_.xdr_pointer_xdr_bool_.xdr_boolxdr_stdio.o 597787171 0 10 100777 1387 ` n`0B13254,1 n`s", n`sRb04A!  ,!,! n`sRb04A!  ,!,! n`@ sRb0c@A!  ,!,1 n`@ sRb0c@A!  ,!,1 n`s", n`s"@  !,! n` ,! @(#)xdr_stdio.c 1.1 85/05/30 Copyr 1984 Sun Micro\ht|P0Z$j$Header:xdr_stdio.c 12.0$ <Bfr   0@ v| @8@<@@@D@H@L@P@T@X@`@hPl@tPx@ P@@@ P@P@ h'H+_=DLLUN\d[l#u||e.oVncs.oVhc2.1n.oVO_xdrstdio_create_.xdrstdio_createmcount_fflush_.fflush_fread_.fread_fwrite_.fwrite_ftell_.ftell_fseek_.fseek yp_all.o 597787176 0 10 100777 1305 ` XH١n`j k0l@ !ɡXTm bT @  @ !ɡX1bX ɡXt1h.ɡX`q/t2bpt1#\\t1\JXHS\01b03B`t1#`o  .d"ɡX56@DQ01>213q?pä8p l t!"`>,hblbɡX"ɡXߨ18@(#)yp_all.c 1.1 86/09/24 Copyr 1985 Sun Microxyp_all - TCP channel create failureyp_all - RPC clnt_call (TCP) failure$Header:yp_all.c 12.0$ *6h p"pV`@<@PP P PPPP h'"+2$:C\O>\;ck{vY6.oVncs.oVhc2.1n.oVO_yp_all_.yp_allmcount_strlen_.strlen__yp_dobind_._yp_dobind_close_.close_clnttcp_create_.clnttcp_create_clnt_pcreateerror_.clnt_pcreateerror_xdr_ypreq_nokey_xdr_ypall_clnt_syslog_.clnt_syslog_yp_unbind_.yp_unbind yp_bind.o 597787175 0 10 100777 5364 `  t HXanl`2!31  !aHI s1r!k  aH؀Ȉ p !u0r!=!p9ȑ  щ x!aHy!c| "ȡ8bc x!'aH3*1aHa 'ȱ$4 (x!aHq01bcd`e " a "p rAy1!(eZ$m x!aHy)(s!0Ҥ aHh!%n`c10 ١n`j AД ɡ< q /;b "+`q2t3p+\ q p 1 p 0 bɡP213q;p3p i q;t3bpx!  "ɑ$d 0 bɑ$d.D 0 !ɑ$dߘ1فn`i0j@kP4pIBA0I<^8012303l  !\0 ɁX@D0X1D>@213q00 Ɂ4xq LH J,P8 X \` h,HdФA4^00 \12@303,`  b0ۤ Ɂ4x,\2A4$:Ѥ&!,8 \1$b@Ԕ b0 bɁ4x,\1A  d,c8 " q0 1bɁ4xb0 bɁ4x߈Aٱn`l 4^,H012@303Bm ɱL@D0A1>213q=p0Pp ,`q2t3p,\H`t \ hɱLq-t2bpt!HɱL߸ @(#)yp_bind.c 1.1 86/09/24 Copyr 1985 Sun Micro X l  \ 8`0D x load_dom_binding: malloc failure. $Header:yp_bind.c 12.0$  V`f  `2hp`| `0`@V`!#,Flv`!$p&<F`()p*p&,P(-p.p(,p,|``$041pB3t( 5  2& @ d ~7 `   ( 8p \ @X@`Pd@h@l Pp@t@x@|@@@@@PPP@P@P@@P@P P"P@%P@'P+P@@@@@D/PH2PL4PP6PT@ h' ( 9\ E>RY$ajy< , 86;y@ L\q.p68?UL{Z{aiq&ztFxdofs s)./84B(IQ!Ybl.oVncs.oVhc2.1n.oVO__ypsleeptime__ypserv_timeout__yp_dobind_._yp_dobindmcount_strlen_.strlen_get_myaddress_.get_myaddress_yp_bind_.yp_bind_yp_unbind_.yp_unbind_strcmp_.strcmp_close_.close_free_.free_yp_get_default_domain_.yp_get_default_domain_getdomainname_.getdomainname_getpid_.getpid_getsockname_.getsockname_bzero_.bzero_socket_.socket_connect_.connect_errno_bind_.bind_clntudp_bufcreate_.clntudp_bufcreate_xdr_pmap_xdr_u_long_sleep_.sleep_xdr_ypdomain_wrap_string_xdr_ypbind_resp_malloc_.malloc__iob_fprintf_.fprintf_fcntl_.fcntl_strcpy_.strcpy_xdr_voidyp_enum.o 597787175 0 10 100777 4036 ` فn`h i0j@kP !Ɂ\m b @  @L!Ɂ\bcЍ Ɂ\uATh`!\03R ( @pSq301123!4bcp "b "Ɂ\߈aqn`Qph@9!:17586(`@DQ$ذȻ01t1p213q2pӤ4p "q,tt!! i  v!" x0- x!" 10#  p--!|vA0BvAqxp7u!vAp7b4p7vAb4!xA0BxAqp7wbxAp7b4p7xAb4(`q2scdp bq,txan`hP5!f0g@͑d0͡h1ͱl2p3t4э  ad01234u!c`dpe adhqn|`Qh@:;!<16789(`@DQ(011213q2ps4p bq<u!! i  w!"͡0* y!"10#  p*艀-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4(`q2scdp bq<x!qn`h i0j@kP  !q hm b @  @T!q hbcЍĔ q hwh!t1pAlQhpw ` h0qp123Q4A516!bcdep "b "q hxqn`9!:1;AQ6789ͱ+`@DQ(011213q2p5p "q<u!! i  w!"́0( y!"10#  p(ĉ-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4+`q2scdp bq<x!an`Qp8!917ApŃxp(Ȟc 9͡|pzph00p,00w0p1t23456y1x!d`epg b`p Np(c bpa(th @(#)yp_enum.c 1.1 86/09/24 Copyr 1985 Sun MicroYP_< P |L t$Header:yp_enum.c 12.0$ ,8d p`` p$p0pnHpp,>Th*6b  p``  p4 p@p~XppL^t&F$j$@<@DPHPL PPPT@\P`PdPhPl@t@x@|@@@@@@@#P h'Z $z/6$>G\S>`q|6fYsyU. P 1lAR X[@et t8j.oVncs.oVhc2.1n.oVO_yp_first_.yp_firstmcount_strlen_.strlen__yp_dobind_._yp_dobind__ypserv_timeout_yp_unbind_.yp_unbind__ypsleeptime_sleep_.sleep_xdr_ypreq_nokey_xdr_ypresp_key_val_ypprot_err_.ypprot_err_malloc_.malloc_free_.free_bcopy_.bcopy_v1prot_dofirst_.v1prot_dofirst__xdr_yprequest__xdr_ypresponse_yp_next_.yp_next_xdr_ypreq_key_v1prot_donext_.v1prot_donext_bcmp_.bcmpyp_master.o 597787176 0 10 100777 1876 ` P`ّn`k l0m@ !ɑ Lj b @  @ E!ɑ Lbc ɑ LrAh "ؐș<ؐșPqpR01bcp "b "ɑ Lȡߘ1ّn`Q\j@6!715*`@DQ01`1\213q2p9p "ɑ `t!! k u!! 1d0#  u1!dp"*`q2scdp bɑ `ߘQanx`Qg h0i@:;q<865)`@DQ(011213q2pc6p ba<t &a<u!cp v!c  x!> x!ܐ!10#  x1!p")`q2scdp ba<hQ"`@(#)yp_master.c 1.1 86/09/24 Copyr 1985 Sun Micro$Header:yp_master.c 12.0$ *6f p`` ppp\lvppP`r@8@@PDPH PLPP@XP\P`Pd@pP h't$%18$@I\U>bs~6fY>s!l'/8.oVncs.oVhc2.1n.oVO_yp_master_.yp_mastermcount_strlen_.strlen__yp_dobind_._yp_dobind__ypserv_timeout_yp_unbind_.yp_unbind__ypsleeptime_sleep_.sleep_xdr_ypreq_nokey_xdr_ypresp_master_ypprot_err_.ypprot_err_malloc_.malloc_strcpy_.strcpy__xdr_yprequest__xdr_ypresponse_strcmp_.strcmpyp_match.o 597787176 0 10 100777 1774 ` 8Xفn`h i0j@kP !Ɂ\m b @ @  N!Ɂ\bcЍ Ɂ\uAh!`1\PU8L0AqpE1A2314!bcdep "b "Ɂ\߈aفn`7!819A:Q56ͱp+`@DQ01x1t213q2p3p "Ɂ,pt!! i  v!" 1|0# !vA0BvÁ|p8u!vAp8b4 p8vAb4+`q2scdp bɁ,p߈فn`:;!<1=A>Q67ͱ+`@DQ(011213q2p3p "Ɂ<u!! i  w!"10# !wA0BwÁp8v!wAp8b4 p8wAb4+`q2scdp bɁ<߈ T@(#)yp_match.c 1.1 86/09/24 Copyr 1985 Sun Micro$Header:yp_match.c 12.0$ ,8l p`` p.p:px"p.pl~@8@@PDPH PLPP@XP\P`Pd@ h'f $/6$>G\S>`q|6f&sUl .oVncs.oVhc2.1n.oVO_yp_match_.yp_matchmcount_strlen_.strlen__yp_dobind_._yp_dobind__ypserv_timeout_yp_unbind_.yp_unbind__ypsleeptime_sleep_.sleep_xdr_ypreq_key_xdr_ypresp_val_ypprot_err_.ypprot_err_malloc_.malloc_bcopy_.bcopy__xdr_yprequest__xdr_ypresponseyp_order.o 597787176 0 10 100777 1603 `  Pّn`k l0m@ !ɑ Lj b @  @ E!ɑ Lbc ɑ LrAh "ؐșؐșqpR01bcp "b "ɑ Lȡߘ1ّn`Q\j@6!715*`@DQ01`1\213q2p:p "ɑ `t!! k !du0*`q2scdp bɑ `ߘQanx`Qg h0i@:;q<865)`@DQ(011213q2pc6p ba<t &a<u!cp v!c w!w0)`q2scdp ba<hQ"@(#)yp_order.c 1.1 86/09/24 Copyr 1985 Sun Micro$Header:yp_order.c 12.0$ *6f p`` ppp\pp 0@8@@PDPH PLPP@XP\@dP h'$/6$>G\S>`q|6fYl .oVncs.oVhc2.1n.oVO_yp_order_.yp_ordermcount_strlen_.strlen__yp_dobind_._yp_dobind__ypserv_timeout_yp_unbind_.yp_unbind__ypsleeptime_sleep_.sleep_xdr_ypreq_nokey_xdr_ypresp_order_ypprot_err_.ypprot_err__xdr_yprequest__xdr_ypresponse_strcmp_.strcmp yperr_string.o 597787175 0 10 100777 1006 ` XHn`D>.܉:.6. 2.<..X*.&."..܉.. .D.d ...,"RUP%%rx~ @(#)yperr_string.c 1.1 86/09/24 Copyr 1985 Sun Microyp operation succeededargs to yp function are badRPC failure on yp operationcan't bind to a server which serves domainno such map in server's domainno such key in mapinternal yp server or client errorlocal resource allocation failureno more records in map databasecan't communicate with portmappercan't communicate with ypbindcan't communicate with ypservlocal domain name not setyp map data base is badyp client/server version mismatchunknown yp client error code$Header:yperr_string.c 12.0$ `@<@ h'# ( 7>.oVncs.oVhc2.1n.oVO_yperr_string_.yperr_stringmcountypmaint_xdr.o 597787180 0 10 100777 2788 ` ٱn`k l0Ѝ bc bɱ8߸!ٱn`k l0Ѝ bc bɱ8߸!n`01c@@0! ّn`j k0p ip /0!bc  ɑDp!ɑDPU p Dbc@H  ɑD kp Dߘ!ٱn`k l0ЍԔ bc bɱ8߸!ٱn`k l0ЍȔ bcȔ bɱ8߸!ٱn`k l0Ѝ <b <b <b bɱ8߸!١n`l m0p  ɡ \!ɡ \ ȡbcԔ  ɡ \!ɡ \1b QA1 !0q 1pp ʤ!ɡ \ ɡ \ߨ!Bٱn`k l00c <Db <Lb bɱ<߸!X@(#)ypmaint_xdr.c 1.1 86/09/24 Copyr 1985 Sun MicroHd`L$Header:ypmaint_xdr.c 12.0$ ( T^p`4pz .@l#Xf'x)@8@@PDPH@P@XP\@dPhPl@t@x@@PP@"P@&P(P h'>-AHoTQaz*HQ!y (2=Lc\pd$\ ,@) <`"6KH^9Lrs[-.oVncs.oVhc2.1n.oVO_xdr_ypresp_master_.xdr_ypresp_mastermcount_xdr_u_long_.xdr_u_long_xdr_ypowner_wrap_string_.xdr_ypowner_wrap_string_xdr_ypresp_order_.xdr_ypresp_order_xdr_ypmaplist_wrap_string_.xdr_ypmaplist_wrap_string_xdr_string_.xdr_string_xdr_ypmaplist_.xdr_ypmaplist_xdr_bool_.xdr_bool_xdr_reference_.xdr_reference_xdr_ypresp_maplist_.xdr_ypresp_maplist_xdr_yppushresp_xfr_.xdr_yppushresp_xfr_xdr_ypreq_xfr_.xdr_ypreq_xfr_xdr_ypmap_parms_.xdr_ypmap_parms_xdr_u_short_.xdr_u_short_xdr_ypall_.xdr_ypall_xdr_ypresp_key_val_.xdr_ypresp_key_val_xdr_ypbind_setdom_.xdr_ypbind_setdom_xdr_ypdomain_wrap_string_.xdr_ypdomain_wrap_string_xdr_yp_binding_.xdr_yp_bindingypprot_err.o 597787175 0 10 100777 414 ` \Hn`( ,"RU(P%%@2B4>$6 ($# % !-.&, @(#)ypprot_err.c 1.1 86/09/24 Copyr 1985 Sun Micro$Header:ypprot_err.c 12.0$ `@8@ h'&3:.oVncs.oVhc2.1n.oVO_ypprot_err_.ypprot_errmcountypv1_xdr.o 597787176 0 10 100777 1209 ` 8hn`C^00! n`C^00! ٱn`k l00c <Db bɱ<߸!P@(#)ypv1_xdr.c 1.1 86/09/24 Copyr 1985 Sun Micro4h$Header:ypv1_xdr.c 12.0$  @ P t @<PDPLPX@` Ph PpPxP@@PP h'+:YK\l l}p9&84@ h#s=[X-hy.oVncs.oVhc2.1n.oVO__yprequest_arms_xdr_ypreq_key_xdr_ypreq_nokey_xdr_ypmap_parms__xdr_yprequest_._xdr_yprequestmcount_xdr_union_.xdr_union__ypresponse_arms_xdr_ypresp_val_xdr_ypresp_key_val__xdr_ypresponse_._xdr_ypresponse__xdr_ypbind_oldsetdom_._xdr_ypbind_oldsetdom_xdr_ypdomain_wrap_string_.xdr_ypdomain_wrap_string_xdr_yp_binding_.xdr_yp_binding ypxdr.o 597787176 0 10 100777 2512 `  n`CP,! n`@@,! n`@@,! ٱn`k l0Ѝ <b bc bɱ8߸!ٱn`k l0Ѝ bc bɱ8߸!ٱn`k l0Ѝ bcW bɱ8߸!ٱn`k l0Ѝ < b3 bc* bɱ8߸!n`D,! ٱn`k l0Ѝ bcB bɱ8߸!n`C^00! n`@,! ٱn`k l0Ѝ <b <b bc bɱ8߸!@(#)ypxdr.c 1.1 86/09/24 Copyr 1985 Sun Micro0\LX@*r@t$Header:ypxdr.c 12.0$ <D hp 6@~ L\" @4@<P@@H PL@T@\@`@d@h@p@xP|@@P@@@P@!P@@@ h'@%o18SCOsLi[0yXs\`Yt&|*/o;QH\rq{]- 4@p /tIZ)l.oVncs.oVhc2.1n.oVO_xdr_datum_.xdr_datummcount_xdr_bytes_.xdr_bytes_xdr_ypdomain_wrap_string_.xdr_ypdomain_wrap_string_xdr_string_.xdr_string_xdr_ypmap_wrap_string_.xdr_ypmap_wrap_string_xdr_ypreq_key_.xdr_ypreq_key_xdr_ypreq_nokey_.xdr_ypreq_nokey_xdr_ypresp_val_.xdr_ypresp_val_xdr_u_long_.xdr_u_long_xdr_ypresp_key_val_.xdr_ypresp_key_val_xdr_yp_inaddr_.xdr_yp_inaddr_xdr_opaque_.xdr_opaque_xdr_yp_binding_.xdr_yp_binding_ypbind_resp_arms_xdr_ypbind_resp_.xdr_ypbind_resp_xdr_union_.xdr_union_xdr_ypowner_wrap_string_.xdr_ypowner_wrap_string_xdr_ypmap_parms_.xdr_ypmap_parmsmon.o 597755468 0 10 100777 1685 ` ,`ّnl m0` b" 0dk 2Ȱ2` `  !,`ib$j  >"@ ( $/0bcdeS,ɑDߘ!!c.1p"@Dȴ>"@PUpE04D0Bp5805p"p0̒!\(!فnj k@lP q8.0 "@,2 "L013! 8ɁD߈QnԔ PULsEq5p%rUh 0@Ph, (No space for monitor buffer(s) mcount: counter overflow 0mon.outmonitor: non-integer scaling not supported  (@(#)mon.c 4.9 (Berkeley) 7/26/83Jd pz p`p pVb`l v`pp `8`F`@ @0P4 P8@<@\@@PP@P h; )h5JBIOV][elu0. r(.;:B.oVncs.oVhc2.1n_countbase_numctrs_monstartup_.monstartupldiv$$_sbrk_.sbrk_write_.writeminbrk_monitor_.monitor_mcountmcount_moncontrol_.moncontrol_creat_.creat_close_.closelmul$$_profil_.profil #] ZklnR΁ $#V#V#8 $n7!819A"b!$ "$p"03Nw1 b  , nm QbЍ 0 lto "p""7l T"@D0$ X"@D0$o "03#030#!030#/03dQ@`|fpf``pf! d!"@d0 ?p 8ّnj k0ݮݾlbdm  >"@ hn."dؐș0)>$"@ hT0 .!0d.22  b! "d.>D"@ h d/.$.0!bcdelɑDߘ!ّn.0$i .(D@Dr4qD;/` "b20 "b#l0 0m0Ӫ|b p1q2cbL|b 20琡 b,ɑ Lߘ!bc$HHT \ l`   "bRPNLP$TPPX R`Pb021E$`PNLopq61O@NLP$TPP+`Pd041$ Re`@NLopq1?$52$? HHHH>"@!\(!١njP  G0472L10$142,k0Ⲵ bcm bc+ cЌ3,3 >"@,3 ! 0ɡ<ߨQnԔ PUr%,q0sUN 0@P, D 4n@$Header:crt0.c 12.0$$Header:fpglue.s 12.0$AOFPAFP_PRECISIONNo space for monitor buffer(s) No space for monitor buffer(s) No space for monitor buffer(s) @gmon.outmcount: gmon.outmcount: tos overflow monitor: non-integer scaling not supported x@(#)gmon.c 4.13 (Berkeley) 7/26/83@*`4p:N |```p``p```*`6`D`R``pppp $$&4$>`V&p'$&`$(p*,<.H`R&l`&0``&D`d4n5|4&`77@@ @P@@@ P$PX@`PPP P!P"P@L@h@#P%P@@+P-P/P@$@T@X@\@`6P hr $+2h>JK~QX4^ne@nxFۊX`(p8'$ j(7=DK[S[bdmy.j;$.xr:B.oVncsstart.oVhc2.1n_environ_errno_etext_monstartup_.monstartup_main_.main_exit_.exit_monitor_.monitor__cleanup_._cleanup__exit_._exitFPGLUEfpglue_.fpgen_fpgenmcount_getenv_.getenv_getpid_.getpid_kill_.kill__fp_HardwareState__compat_malloc_fpabort_sigsetmask_setfloatstate_sbrk_.sbrk_write_.writeuldiv$$minbrk__mcleanup_._mcleanup_creat_.creat_perror_.perror_close_.close_mcount_moncontrol_.moncontrolldiv$$lmul$$_profil_.profil#] `mloɁm #'#A#=# if (`printenv term` != "") exit 0 cat << '%' To do the lessons on eqn you need to login at a hardcopy terminal capable of half-line motions. Then I need to know what kind of terminal you are using. I will put you out of learn. Type the command setenv term xxx (that's term, not TERM) where xxx is one of the following: 300 382 450-12-8 a1 ipsi xerox 300-12 382-12 832 aj832 ipsi-12 xerox12 300s 382cw 832-12 dtc ipsi12 300s-12 450 833 dtc-12 odtc-12 tn300 450-12 833-12 ep40 x1700 Then type "learn eqn" again. '%' exit 1 #] bnlo3$ #'#A#|># # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L0 12.0$ # $ACIS:L0 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L0,v $ #next 0.1a #] dolol$ n#'#A#|H# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L0.1a 12.0$ # $ACIS:L0.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L0.1a,v $ #once #create message .EQ delim $$ .EN .pl 1 .ll 55 This script is designed to teach you the "eqn" language for typing mathematics. There are two versions of the program. "eqn" is for use on the phototypesetter; "neqn" is for use on a terminal like a DASI or GSI, or a Model 37 teletype. The lessons are mostly written under the assumption that you will be using neqn on a DASI or GSI or teletype; a few things that are specific to eqn on the typesetter are left to the end. The terminal MUST be a DASI or GSI or teletype, or you will get some rather startling results from this script. To verify that everything is working, this message should come out with subscripts, superscripts, Greek letters and so on. If it doesn't, we're in trouble. .sp Summation sign: $ sum $ .sp Letter pi: $ pi $ .sp Subscript and superscript: $ x sub i ~=~ y sup j $ .sp If this looks ok, type yes. Otherwise, type no. .pl 1 # #once neqn message | nroff -T$term #copyin #user #uncopyin #match yes #fail Do you have the right kind of terminal? If you are using a DASI or GSI, make sure the switch labeled "PLOT" inside the cover is set to ON. If these fail, call for help; otherwise type yes the next time. #log #next 1.1a #] gplo$ #'#A#|?# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1a 12.0$ # $ACIS:L1.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L1.1a,v $ #print To properly print a file containing an equation, you have to type a longer-than-usual command line. If you are using a DASI or GSI, to print a file "math" that contains mathematics, you must say neqn math | nroff -Txxx where "-Txxx" describes the terminal you are using. This is usually one of -T300 -T300S -T450 It is very important that you get this line right. If you don't, you'll not be happy with your output. In this directory is a file called "Example"; print it properly, using whichever command line is appropriate to your terminal. Then type "ready". #once #create Example This is a little file that contains an example of a subscript and superscript: .ce .EQ a sub i + b sub i ~=~ c sub i sup 2 .EN .pl 1 #copyin #user #uncopyin grep 'neqn Example *| *nroff -T' <.copy >/dev/null #log #next 1.1b 10 #] iqlo`$  #(#A#|# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1b 12.0$ # $ACIS:L1.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L1.1b,v $ #print Most technical papers and memos consist of normal text interspersed with occasional (or frequent) mathematical expressions, such as the ones in the last lesson. To tell neqn that something is mathematics, not normal text, you must surround it by two "commands": A line that begins with .EQ marks the start of an expression. A line that begins with .EN marks the end of the expression. Thus, the lines .EQ x=y+1 .EN represent the equation x=y+1 The file "Example" in this directory has a line that contains + and - signs. Make that line into an equation by adding .EQ and .EN before and after. Print "Example" with neqn and nroff (and the appropriate -Txxx), then type "ready". #once #create Ref This is a tiny little text that includes one equation or at least it will when you find this line: .ce .EQ a = b + c - d .EN and convert it into an equation. .pl 1 #once #create Example This is a tiny little text that includes one equation or at least it will when you find this line: .ce a = b + c - d and convert it into an equation. .pl 1 #user #cmp Ref Example #log #next 1.1c 10 #] lrlob$ #(#A#|# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1c 12.0$ # $ACIS:L1.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L1.1c,v $ #print It is usually wise to do your formatting with the "-ms" macro package developed by Mike Lesk, since it does a lot of dirty work for you without any effort on your part. One of the things "-ms" does is to arrange that equations are "displayed" - that is, that they are neatly centered and set off from the surrounding text. Most of the "-ms" package is described in another script called "macros", which you may have already learned. For now, we need only know this much: to use "-ms" with neqn, add "-ms" to your command line, right after the word "nroff", like this neqn files... | nroff -ms -Txxx Notice where the "-ms" goes. In this directory is a file called "Example". To prove that you can type the "-ms" in the right place, print "Example" with "-ms", then type "ready". #once #create Example .PP This is a tiny little text that includes one equation or at least it will when you find this line: .EQ x sub i = y sub i .EN and convert it into an equation. (Naturally I changed it.) .pl 1 #copyin #user #uncopyin grep 'neqn Example *| *nroff -ms' <.copy >/dev/null #log #next 1.1d 10 #] oslo$ #(#A#|J# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1d 12.0$ # $ACIS:L1.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L1.1d,v $ #print The "-ms" package lets you do some other nice things as well. For example, you can arrange for a number to be placed on an equation, in the right margin: a = b + c - d (1.23) by placing the number after the .EQ on the same line, like this: .EQ (1.23) You must leave a space between .EQ and the number. In the file "Example", number the equation "17.1a" and print it properly with neqn and nroff -ms. (Don't forget -Txxx for your terminal.) Then type "ready". #once #create Example .PP This is a tiny little text that includes one equation or at least it will when you find this line: .EQ x sub i = y sub i + z sub i .EN and convert it into an equation. (Naturally I changed it again.) .pl 1 #user grep '\.EQ *(17\.1a)$' /dev/null #log #next 1.1e 10 #] qtlo$ #(#A#|K# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1e 12.0$ # $ACIS:L1.1e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L1.1e,v $ #print So far all the equations have been centered, which is what "-ms" does unless you tell it differently. You can also arrange for equations to be left-adjusted - that is, right up against the left margin - by saying .EQ L If there is a number, place it _____after the L, separated by a space, like this: .EQ L (3a) Make the equation in "Example" left-justified with the number (3.1a) in the right margin and print it to make sure everything works. Then type "ready". #once #create Example .PP This is a tiny little text (which you're undoubtedly sick of by now) that includes one equation or at least it will when you find this line: .EQ x sup i = y sup i .EN and convert it into an equation. (Naturally I changed it.) .pl 1 #user grep '\.EQ *L *(3.1a)$' /dev/null #log #next 1.1f 10 #] sulo$ #(#A#|L# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1f 12.0$ # $ACIS:L1.1f 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L1.1f,v $ #print You can also make equations that are ________indented a fixed amount from the left margin, with the command .EQ I Again, if there is an equation number, it follows the I. Convert all the equations in "Example" to indented ones. (Naturally I've changed it.) You can do this with a single editor command. Print "Example" with neqn and nroff -ms, then type "ready". #once #create Ref .LP EQUIVALENCES OF ONE SORT AND ANOTHER .LP .EQ I (2.01) bold x sup { n alpha } (t) ~->~ bold x sup alpha ( bold X ,t). .EN .sp .EQ I (2.02) sum from n F( bold x sup { n alpha } (t)) ~->~ 1 over OMEGA INT F( bold x sup alpha ( bold X ,t))d bold \|X .EN .EQ I (2.03) bold x ( bold X ,t) ~==~ sum from { alpha =1} to N rho sup alpha over rho sup 0 bold x sup alpha ( bold X ,t) .EN .EQ I (2.08) sum from {alpha =1} to N U sup { mu alpha } V sup { mu alpha } ~=~ delta sup { mu nu } .EN .EQ I (2.06) bold y sup { T mu } ( bold X ,t) ~==~ sum from {alpha =1} to N U sup { mu alpha } bold x sup alpha ( bold X ,t) .EN .EQ I ~ partial over {partial d} ( epsilon sub 0 bold E sup T times bold B ) sub i - m sub ij,\|j ~=~ -q sup D E sub i sup T -( bold ~j sup D times bold B ) sub i .EN #once #create Example .LP EQUIVALENCES OF ONE SORT AND ANOTHER .LP .EQ (2.01) bold x sup { n alpha } (t) ~->~ bold x sup alpha ( bold X ,t). .EN .sp .EQ (2.02) sum from n F( bold x sup { n alpha } (t)) ~->~ 1 over OMEGA INT F( bold x sup alpha ( bold X ,t))d bold \|X .EN .EQ (2.03) bold x ( bold X ,t) ~==~ sum from { alpha =1} to N rho sup alpha over rho sup 0 bold x sup alpha ( bold X ,t) .EN .EQ (2.08) sum from {alpha =1} to N U sup { mu alpha } V sup { mu alpha } ~=~ delta sup { mu nu } .EN .EQ (2.06) bold y sup { T mu } ( bold X ,t) ~==~ sum from {alpha =1} to N U sup { mu alpha } bold x sup alpha ( bold X ,t) .EN .EQ ~ partial over {partial d} ( epsilon sub 0 bold E sup T times bold B ) sub i - m sub ij,\|j ~=~ -q sup D E sub i sup T -( bold ~j sup D times bold B ) sub i .EN #user #cmp Ref Example #log #next 2.1a 10 #] wvlo0$ w#(#A#|X# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L10.1a 12.0$ # $ACIS:L10.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L10.1a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP The next topic goes back to the problem of formatting equations on the page. Sometimes it is desirable to line up one part of an equation with some part of a previous equation - for example, equals signs are often lined up like this: .EQ I x mark = y sub i .EN .EQ I lineup = z sub i .EN .EQ I x sub i + y sub i lineup = z sub i .EN To achieve this, you have to do several things. (1) tell neqn to remember the place where things are to be lined up, which is done by saying "mark" just before the thing you want remembered: .EQ I x mark = y sub i .EN .br (2) Then, in successive equations, telling neqn to line up something on the previous mark, with "lineup": .EQ I lineup = z sub i .EN .br (3) You ____have __to use either ".EQ I" or ".EQ L"; you can't line things up in a centered equation. For practice, modify "Example" so the equations are lined up on the equals signs, then type "ready". .pl 1 #once #create Ref .LP A test of mark and lineup: .EQ I x sub i ~ mark =~ 1 .EN .EQ I x sub i + y sub i ~ lineup = ~2 .EN .pl 1 #once #create Example .LP A test of mark and lineup: .EQ I x sub i ~ =~ 1 .EN .EQ I x sub i + y sub i ~ =~ 2 .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget that tilde is a real character; put the mark and lineup after it. Remember .EQ I. #log #next 10.1b 10 #] zwloು$ #)#A#|O# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L10.1b 12.0$ # $ACIS:L10.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L10.1b,v $ #print More practice with mark and lineup. Modify "Example" so the + signs are lined up in all of the equations, then type "ready". #once #create Ref .LP .EQ I x ~==~ a sub i ~ mark + ~ b sub i ~-~ c sub i .EN .EQ I lineup + ~ d sub i - e sub i .EN .EQ I lineup + ~ f sub i - g sub i .EN .EQ I lineup + ~ ... .EN .pl 1 #once #create Example .LP .EQ I x ~==~ a sub i ~ + ~ b sub i ~-~ c sub i .EN .EQ I + ~ d sub i - e sub i .EN .EQ I + ~ f sub i - g sub i .EN .EQ I + ~ ... .EN .pl 1 # #once neqn Ref | nroff >X1 & #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 10.1c 10 #] |xlo$ #)#A#|Z# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L10.1c 12.0$ # $ACIS:L10.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L10.1c,v $ #print There are several warnings in order about mark and lineup. First, remember that you must use ".EQ I" or ".EQ L". Second, there can only be one mark or one lineup in any given equation. Finally, what you are doing must make sense, or your results may be not what you wanted. Does this sequence produce output with the equals signs lined up? .EQ L x mark = y .EN .EQ L x+y mark = z .EN Answer yes or no. #copyin #user #uncopyin #match no #log #next 11.1a 10 10.2c 5 #] ~ylo$ #)#A#}[# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L10.2c 12.0$ # $ACIS:L10.2c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L10.2c,v $ #print Does this sequence produce output with the equals signs lined up? .EQ I x mark = y .EN .EQ I x+y mark = z .EN Answer yes or no. #copyin #user #uncopyin #match no #log #next 11.1a 10 #] zloߓ$ #)#A#}\# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1a 12.0$ # $ACIS:L11.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP We have introduced a fair number of "magic" words like sub and sup and over and pi and sum. What happens if you need to print an equation that contains one of these words __as ____text, like this: .EQ e sub "pi" .EN The way to turn off special meanings of magic words is to enclose them in the double quotes "...". The $e sub "pi"$ was printed with .EQ e sub "pi" .EN Using this knowledge, modify file "Example" so it produces output that looks like the following, then type "ready". .pl 1 #once #create Ref .LP .EQ lim "sup" f( "pi" ) = p cdot i .EN .pl 1 #once #create Example .LP .EQ lim sup f( pi ) = p cdot i .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 11.1b 10 #] {lo$ #)#A#}]# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1b 12.0$ # $ACIS:L11.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1b,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP The quoting mechanism can also be used to turn off the special meaning of things like the dollar sign and braces. Modify "Example" so it prints the following output, then type "ready". .pl 1 # #once #create Ref .EQ delim $$ .EN .LP The cost of processing is proportional to $characters over "$"$. .pl 1 #once #create Example .LP The cost of processing is proportional to .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 11.1c 10 #] |lo$ #*#A#}^# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1c 12.0$ # $ACIS:L11.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1c,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP Modify "Example" so it prints the following output, then type "ready". .pl 1 #once #create Ref .EQ delim $$ .EN .LP The cost of processing is proportional to ${ "{" characters "}" } over "$"$. .pl 1 #once #create Example .LP The cost of processing is proportional to .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 11.1d 10 #] }loD$ <#*#A#}_# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1d 12.0$ # $ACIS:L11.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1d,v $ #print One thing to keep in mind, although it generally isn't going to affect you, is that the quote " is a delimiter just like blank or tilde - it turns off subscripts and superscripts, and so on. Experiment a bit, and decide if e sup "{t}" is the same as e sup "{"t"}" Type yes if they are the same, no if they are different. #copyin #user #uncopyin #match no #log #next 11.1e 10 #] ~log$ #*#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1e 12.0$ # $ACIS:L11.1e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1e,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP Sometimes there will be a need for a subscript or superscript that has nothing to the left of it, as in references like $"" sup 1$Smith, J. `A great paper...' Experiment and decide if you can get this effect by writing simply %sup 1%Smith, J..... Type yes if this works, no if it does not. .pl 1 # #once neqn message | nroff -T$term %s/tinyms - #copyin #user #uncopyin #match no #log #next 11.1f 10 #] lod$ #*#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1f 12.0$ # $ACIS:L11.1f 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1f,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP The way to handle the problem of a subscript or superscript on nothing is to provide something to hang the subscript or superscript on. One possibility is to use a tilde, but that has a real width, and might spoil the appearance of the output. The best solution is this: "" sup 1 ... The expression "" has no width, so everything works out properly. The use of "" may seem a bit unnatural but it's an idiom that you get used to quite quickly. For practice, modify "Example" so it produces output that looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ "" sup + H sub 2 ~ "<=>" ~ "" sup - H ~+~ "" sup + H .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget spaces; don't forget to quote things when needed (including <=>). #log #next 11.1g 10 #] lo$ S#*#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1g 12.0$ # $ACIS:L11.1g 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L11.1g,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP For practice, modify "Example" so it produces output that looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ { lim ~ "sup" } bar ~f(x) ~=~ x .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 12.1a 10 #] lo$ #*#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L12.1a 12.0$ # $ACIS:L12.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L12.1a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP The next step is to learn how to put big parentheses, brackets, braces or bars around equations, like this: .EQ left | a sup 2 over b sub i right | .EN This is done with two new words called "left" and "right". To put bars around something, you simply say, in the middle of an equation, left | something right | and the job is done. "something" can indeed be anything, from a single letter up to some horribly complicated mess. The bars grow to the right height to cover the "something", automatically. To produce the example above, all that was needed was .EQ left | a sup 2 over b sub i right | .EN For practice, modify file "Example" so it produces output that looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ left | {a over b ~+~ c over d} over 2 right | .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 12.1b 10 #] lo7$ #+#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L12.1b 12.0$ # $ACIS:L12.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L12.1b,v $ #print Bars are not the only characters you can put around an equation. If you say left ( thing right ) you will get large parentheses around "thing". You can also use [ and ] for large square brackets and { and } for large braces. The main problem is that on your terminal there is no good way for neqn to draw large braces or brackets or parens. So neqn replaces all of these with bars. Use the right character anyway, though - things do work properly on the typesetter. And who knows, some day neqn may get improved as well. With the current version of neqn, does the input left { a over b right } produce the same output as left [ a over b right ] Answer yes or no. #copyin #user #uncopyin #match yes #log #next 12.1c 10 #] loY$ t#+#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L12.1c 12.0$ # $ACIS:L12.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L12.1c,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP Of course the thing with bars or braces around it can still be part of larger expressions: the input .EQ left | {a over b ~+~ c over d} over 2 right | over a+b+c+d .EN produces .EQ left | {a over b ~+~ c over d} over 2 right | over a+b+c+d .EN For practice, modify file "Example" so it produces output that looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ left | {a over b ~+~ c over d} over 2 right | sup half .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 12.1d 10 #] lo$ #+#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L12.1d 12.0$ # $ACIS:L12.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L12.1d,v $ #print .LP The "right" part of a left-right construction can be omitted if it is not used; just leave that part out. The main thing to watch out for is that now you will need braces to enclose the entire construction, "left" and all - otherwise neqn will not know where to stop in figuring out how high the thing is. For example, will left "{" a + b over c over d produce the same output as { left "{" a } + b over c over d Answer yes or no after experimenting. #copyin #user #uncopyin #match no #log #next 12.1e 10 #] loޥ$ #,#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L12.1e 12.0$ # $ACIS:L12.1e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L12.1e,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .PP There are also occasions when you want to omit the left part and keep the right part. This is a bit more complicated, since for obscure reasons neqn won't let you actually leave the left part out completely. But you can ask it to print no character, instead of using bars, by saying left "" thing right | .LP This is similar to the way we used quotes before, to get a zero-width thing before a superscript. For practice, modify file "Example" so it produces output that looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ left "" int from 0 to {2 pi} sin (x) dx ~=~ cos (x) right | sub 0 sup {2 pi} .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #] loV$ e#,#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.1a 12.0$ # $ACIS:L2.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.1a,v $ #print You may have noticed that neqn threw away the spaces in several of the examples we did. For example, in .EQ a = b + c - d .EN the output equation looks like a=b+c-d regardless of spaces in the input. Spaces are always thrown away, and so are new lines - you can type an equation on as many lines as you like. This latitude is permitted mainly to make it easy to type equations - longer equations are easier to edit when they are typed as a series of short input lines instead of one giant one. Will the printed output of this equation .EQ a + b + c .EN be any different from this one? .EQ a+b+c .EN Answer yes or no. #copyin #user #uncopyin #match no #log #next 2.1b 10 2.2a 5 #] loe$ N#,#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.1b 12.0$ # $ACIS:L2.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.1b,v $ #print Since spaces are thrown away, what do you do when you want spaces? The answer is that you have to ask for them explicitly. If you type a "~" (tilde) it will be replaced by a space on output; use one tilde for each space. Thus to get a + b you need .EQ a~+~b .EN Modify the equation in file "Example" so there is one space around each of the operators =, + and -, so it looks like a = b + c - d Print it with neqn and nroff -ms to verify it. Type "ready" when done. #once #create Ref .PP You probably thought you were done with this ridiculous example of just .EQ a ~=~ b ~+~ c ~-~d .EN Sorry, but you will probably even see it again. .pl 1 #once neqn Ref | nroff >X1 & #once #create Example .PP You probably thought you were done with this ridiculous example of just .EQ a = b + c -d .EN Sorry, but you will probably even see it again. .pl 1 #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 2.1c 10 2.2b 5 #] lo$ #,#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.1c 12.0$ # $ACIS:L2.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.1c,v $ #once #create message .nf .EQ delim $$ .EN Several of the examples we did earlier had Greek letters and other mathematical symbols in them. The way to get things like $pi$ and $sum$ and $int$ is rather easy - you just spell out their names, like this: $pi$ is pi $sum$ is sum $int$ is int and so on. The main thing you must always remember about these names is that when they appear in an equation, they must be separated from surrounding symbols by blanks or tildes, OR THEY WILL NOT BE RECOGNIZED. For practice, modify "Example" so the symbol $partial$ is replaced by $sum$ everywhere it appears. Type "ready" when you're done. .pl 1 #once #create Ref .PP The symbol .EQ sum .EN often appears in lines like .EQ { sum x } over { sum y } = y over x .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message | nroff -T$term #once #create Example .PP The symbol .EQ partial .EN often appears in lines like .EQ { partial x } over { partial y } = y over x .EN .pl 1 #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 2.1d 10 #] lo$ #,#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.1d 12.0$ # $ACIS:L2.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.1d,v $ #print The file "Chars" contains a longer list of characters that you can obtain with neqn. Print the file "Chars" with neqn and nroff -ms, then type "ready". (Don't forget -Txxx.) #once #create Chars .LP .EQ delim $$ .EN .nf $alpha$ alpha $beta$ beta $gamma$ gamma $GAMMA$ GAMMA $delta$ delta $DELTA$ DELTA $epsilon$ epsilon $zeta$ zeta $eta$ eta $THETA$ THETA $theta$ theta $lambda$ lambda $LAMBDA$ LAMBDA $mu$ mu $nu$ nu $xi$ xi $pi$ pi $PI$ PI $rho$ rho $sigma$ sigma $SIGMA$ SIGMA $tau$ tau $phi$ phi $PHI$ PHI $psi$ psi $PSI$ PSI $omega$ omega $OMEGA$ OMEGA $partial$ partial $integral$ integral $int$ int $sum$ sum $prod$ prod $<=$ <= $>=$ >= $==$ == $cdot$ cdot $...$ ... .pl 1 #copyin #user #uncopyin grep 'neqn Chars *| *nroff' <.copy >/dev/null #log #next 2.1e 10 #] loߋ$ #-#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.1e 12.0$ # $ACIS:L2.1e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.1e,v $ #once #create message .ND .PP For practice, in this directory there is a file called "Example". It contains an equation. Make it look like this: .EQ int from i to j f( pi ) ~=~ LAMBDA (x) .EN by changing the character names as appropriate and adding spaces where needed. Type "ready" when you're satisfied. .pl 1 #once neqn message | nroff -T$term %s/tinyms - #once #create Ref .LP .EQ int from i to j f( pi ) ~=~ LAMBDA (x) .EN .pl 1 #once #create Example .LP .EQ sum from i to j f(q) = lambda (x) .EN .pl 1 #once neqn Ref | nroff >X2 & #user neqn Example | nroff >X1 #cmp X1 X2 #log #next 2.1f 10 2.2e 5 #] lo$ #-#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.1f 12.0$ # $ACIS:L2.1f 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.1f,v $ #once #create message .ND .LP One of the most common problems in using neqn is forgetting to leave spaces or tildes around "magic" words like "pi" or "int" or "sum". The result is that the magic words cease to be magic, and just look like ordinary strings of letters. In the file "Example", there are several such errors. Find them, and fix them so the output looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ sum ~=~ pi ~+~1 .EN .EQ a~=~ pi (x) .EN .EQ alpha ~=~ beta ~+~ gamma ~+~ delta .EN .pl 1 #once #create Example .LP .EQ sum=pi+1 .EN .EQ a=pi(x) .EN .EQ alpha=beta+gamma+delta .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 3.1a 10 #] lo$ #-#A#}# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.2a 12.0$ # $ACIS:L2.2a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.2a,v $ #print Will the output from the first equation below be different from the second? .EQ X = Y +Z .EN .EQ x = y + z .EN Answer yes if they will be different, no if they will be the same. #copyin #user #uncopyin #match yes #fail Look more closely at ____what letters are being printed. #log #next 2.1b 10 #] lo߈$  #-#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.2b 12.0$ # $ACIS:L2.2b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.2b,v $ #print One more example of spaces before getting on to something new. In the file "Example", change the spacing so the equation reads a = b+c-d Print the example with "-ms". Type "ready" when you're done. #once #create Ref .PP Here it is again. One example goes a long way. .EQ a ~=~ b + c -d .EN Sorry, but you will probably even see it again. .pl 1 #once #create Example .PP Here it is again. One example goes a long way. .EQ a = b + c -d .EN Sorry, but you will probably even see it again. .pl 1 # #once neqn Ref | nroff >X1 & #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 2.1c 10 #] lo߀$  #-#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L2.2e 12.0$ # $ACIS:L2.2e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L2.2e,v $ #print Make the two equations in "Example" look like these two, then type "ready". #once #create Ref .ND .LP .EQ (1.1) PI ~=~ ( pi sub 1 , pi sub 2 ,..., pi sub n ) .EN .EQ (1.2) pi bar ~=~ sum ( alpha , beta ) .EN .pl 1 #once #create Example .ND .LP .EQ PHI = ( phi sub 1 , phi sub 2 ,..., phi sub n ) .EN .EQ phi bar = sum (A,B) .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget equation numbering and spaces where needed. Print file "Chars" if you've forgotten the character names. #log #next 2.1f #] lo$ #.#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.1a 12.0$ # $ACIS:L3.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.1a,v $ #once #create message .ND .PP Now that we have some of the preliminaries out of the way, we can get on to doing real mathematics. I have been slipping small things into the example files as we go along so that you will at least have seen some common neqn constructions. One of the most frequent is the word "sub", which indicates a subscript, like this: .EQ x sub i + y sub j .EN which produces .EQ x sub i + y sub j .EN The main thing to notice is that the blanks are delimiters - the subscript of "x" is "i"; the blank after the "i" marks the end of the subscript. Modify the file "Example" so the equation in it looks like this: .EQ x sub alpha ~=~ y sub pi ~+~ z sub pi .EN Then type "ready". .pl 1 #once #create Ref .LP .EQ x sub alpha ~=~ y sub pi ~+~ z sub pi .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 3.1b 10 3.2a 5 #] lo:$ E#.#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.1b 12.0$ # $ACIS:L3.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.1b,v $ #once #create message .ND .PP Naturally there is a superscript operation that's exactly like "sub", except that it goes up instead of down. It is called "sup". To make .EQ x sup i+j .EN for example, you type .EQ x sup i+j .EN Make the file "Example" produce the same output as the following, then type "ready". #once #create Ref .LP .EQ x sup alpha ~=~ y sup pi ~+~ z sup pi .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget that there are spaces around the = and +. #cmp X1 X2 #log #next 3.1c 10 #] loN$ +#.#A#~ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.1c 12.0$ # $ACIS:L3.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.1c,v $ #once #create message .ND .PP Subscripts and superscripts can appear in the same equation, and any subscripted or superscripted thing can have a subscript or superscript. For example, you can say .EQ x sub i sub j ~+~ y sup i sup j .EN to get .EQ x sub i sub j ~+~ y sup i sup j .EN Modify "Example" to produce the following output, then type "ready". .pl 1 #once #create Ref .LP .EQ 2 sup 2 sup 2 sup 2 ~=~ 65536 .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 3.1d 10 3.2c 5 #] lo5$ ;#.#A#~ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.1d 12.0$ # $ACIS:L3.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.1d,v $ #once #create message .ND .PP There is one special construction with subscripts and superscripts that you have to be aware of, although it almost always does what you want automatically. When something has both a subscript and a superscript, it is usually printed as .EQ x sub i sup j .EN instead of .EQ {x sub i} sup j .EN To produce this effect, with the superscript _____above the subscript instead of to the right, you have to type the subscript ______before the superscript, like this: .EQ x sub i sup j .EN That's all there is to it. Modify "Example" to produce the following output, then type "ready". .pl 1 #once #create Ref .LP .EQ x sub ij sup kmn = y sub i sub j .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 3.1e 10 3.2d 5 #] lo$ t#.#A#~ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.1e 12.0$ # $ACIS:L3.1e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.1e,v $ #once #create message .ND .PP One common typing error that you should watch out for is forgetting to end a superscript or subscript with a blank or other delimiter (like tilde). For instance, you often see output like .EQ f(x sup 2)=1 .EN because there wasn't a space left between the 2 and the ). What we really wanted, of course, was .EQ f(x sup 2 )=1 .EN Modify "Example" to produce this output, then type "ready". .pl 1 #once #create Ref .LP .EQ g( x sup pi ) = pi (gx sup 2 ) .EN .pl 1 #once #create Example .LP .EQ g( x sup pi) =pi(gxsup2) .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 4.1a 10 #] lo$ K#/#A#~ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.2a 12.0$ # $ACIS:L3.2a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.2a,v $ #print Do x sub i +y sub j and x sub i+y sub j produce the same output? Answer yes or no. #copyin #user #uncopyin #match no #log #next 3.1b 10 #] loS$  #/#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.2c 12.0$ # $ACIS:L3.2c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.2c,v $ #once #create message .ND .PP Modify "Example" to produce this output, then type "ready". #once #create Ref .LP .EQ x sup 2 + y sup 2 = z sup 2 .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 3.1d 10 #] lo$ W#/#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L3.2d 12.0$ # $ACIS:L3.2d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L3.2d,v $ #print Does the equation x sup pi sub i produce the same output as x sub i sup pi Answer yes or no. #copyin #user #uncopyin #match no #log #next 3.1e 10 #] loT$ #/#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L4.1a 12.0$ # $ACIS:L4.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L4.1a,v $ #once #create message .ND .EQ delim $$ .EN .LP The next neqn word to learn is "over", which makes fractions like .EQ a+b over c .EN In fact that line was made by .EQ a+b over c .EN To begin with an easy one, reproduce the equation below in the file "Example", then type ready. (To get $>=$, type ">=".) .pl 1 #once #create Ref .LP .EQ x+1 over y+1 ~>=~ x over y .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 4.1b 10 4.2a 5 #] loZ$ #/#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L4.1b 12.0$ # $ACIS:L4.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L4.1b,v $ #once #create message .ND .LP Of course you can use reserved words like "pi" or "int" with the "over" construction. For example, modify "Example" so its output looks like the following, then type "ready". .pl 1 #once #create Ref .LP .EQ alpha over beta ~=~ pi over 2 .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail The names are alpha, beta and pi. I hope your trouble wasn't any more complicated than that. #log #next 4.1c 10 #] lo΁$ w#0#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L4.1c 12.0$ # $ACIS:L4.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L4.1c,v $ #print Does the neqn input .EQ a over b .EN produce the same output as the input .EQ a over b .EN Answer yes or no. #copyin #user #uncopyin #match yes #log #next 4.1d 10 4.2c 5 #] loޤ$ #0#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L4.1d 12.0$ # $ACIS:L4.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L4.1d,v $ #once #create message .ND .LP You can put fractions over fractions with multiple "over"'s just as you can do multiple subscripts and superscripts, although fractions within fractions are much less common (probably because they are harder for people to read). Anyway, if you want, for example, something like .EQ a over b over c .EN you just type .EQ a over b over c .EN As a drill, change "Example" so it produces an equation that looks like the following one, then type "ready". .pl 1 #once #create Ref .LP .EQ x over x+x over x+x+x .EN .pl 1 #once #create Example .LP .EQ right here .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 5.1a #] loہ$ `#0#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L4.2a 12.0$ # $ACIS:L4.2a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L4.2a,v $ #once #create message .ND .LP Another practice one for using "over". Modify the file "Example" so it produces output that looks like this one, then type "ready". .pl 1 #once #create Ref .LP .EQ a + b over c + d = e over f .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 4.1b 10 #] loÁ$ s#0#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L4.2c 12.0$ # $ACIS:L4.2c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L4.2c,v $ #print Does the neqn input .EQ ~a over b~ .EN produce the same output as the input .EQ a~ over ~b .EN Answer yes or no. #copyin #user #uncopyin #match no #log #next 4.1d 10 #] los$ #0#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1a 12.0$ # $ACIS:L5.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1a,v $ #once #create message .ND .EQ delim $$ .EN .LP So far we have carefuly skirted around a potential problem; maybe you've wondered about it. Suppose we want to produce an equation that looks like this: .EQ x sup { pi + 1 } .EN The superscript is complicated, in that it contains both a $pi$ and a +1, which has to be separated from the $pi$ by a blank. But I already told you that a blank terminates the superscript. What's going on? As the first step to finding out, will the input equation x sup pi + 1 produce the output $x sup {pi + 1}$ ? Answer yes or no. (You can play with the file "Example" if you like.) .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn message | nroff -T$term %s/tinyms - #copyin #user #uncopyin #match no #log #next 5.1b #] loݲ$ u#1#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1b 12.0$ # $ACIS:L5.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1b,v $ #once #create message .ND .EQ delim $$ .EN .LP The problem is really that we need a way to tell neqn that in spite of blanks, a group of things (like the $pi$ and the +1) have to be kept together as a single superscript. The way that this is done is to enclose the group in braces - the characters { and } - like this: .EQ x sup {pi + 1} .EN This tells neqn that everything inside the braces belongs to the superscript, in spite of blanks and tildes. (You don't need blanks before and after braces themselves - like tildes, they act as delimiters.) Modify the file "Example" so that the output looks like the following, then type "ready". (To get $==$, type ==.) .pl 1 #once #create Ref .LP .EQ x sup {pi +1} == y sup z sup {alpha + beta} .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 5.1c 10 5.2b 5 #] loR$ #1#A#~# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1c 12.0$ # $ACIS:L5.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1c,v $ #once #create message .ND .EQ delim $$ .EN .LP Braces are an exceedingly useful construction. Wherever you have a place where you could have used a single thing like the letter "x", you can plug in anything in braces, and the whole thing will be positioned properly. You can use braces with sub and sup and over, and all the other magic words we haven't seen yet. First let's use braces with "over". Modify "Example" to produce this output, then type "ready". (Recall that $partial$ is called "partial".) .pl 1 #once #create Ref .LP .EQ {partial y} over {partial x} ~=~ alpha over {alpha +1} .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 5.1d 10 #] loǁ$ T#1#A## # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1d 12.0$ # $ACIS:L5.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1d,v $ #once #create message .ND .EQ delim $$ .EN .LP You will get lots of practice using braces as we go along. One thing to keep in mind is that braces can appear ______within braces. (Remember that I said that anywhere you could use an "x" you could put something in braces instead. So to get this: .EQ e sup {x sup {pi +1} + y sup {pi +1}} .EN you can type e sup {x sup {pi +1} + y sup {pi +1}} The big superscript (the one on the "e") has a pair of braces that take in everything. Then the "x" and the "y" each have braces to delimit their superscripts. Of course the braces have to go in the right places, or you won't get the output you want. To verify that you are still following this lesson, modify "Example" so it looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ e sup {{x sup {pi +1} + y sup {pi +1}} over 2} .EN .pl 1 #once #create Example .LP .EQ e sup {x sup {pi +1} + y sup {pi +1}} .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget that you need braces for the overall superscript, and also for the "over" part. #log #next 5.1e 10 5.2d 5 #] loV$ #1#A## # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1e 12.0$ # $ACIS:L5.1e 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1e,v $ #print Once you start using braces, there are a number of mistakes that you can make. For example, you can leave a brace out, or you can get them out of order (Like } xxx { ), or you can get them in illegal places. For all of these, neqn tells you "syntax error", then tries to say what file and line numbers are involved. The line numbers are often not exact, but they are very close. When you get such a message, print a line or two before and after the line numbers named in the syntax error message. The file "Example" contains a syntax error. What line does neqn believe it begins on? Type "answer N", where N is the line number. #once #create Example .LP .EQ 3 e sup -x sup 2 + e sup -x sub i sup 2 + e sup{-x sub i}sup 2 .EN .EQ 4 e sup{-{x sub i sup 2 + y sub i sup 2}over 2} = e sup{- x over y} .EN .EQ 5 a over b = c over d = A over B times C over D .EN .EQ 8 B sub a sub 2 + B sub a sup 2 +B{ sub a}sup 2 + (B sub a ) sup 2 + (B sup 2 ) sub a +B sup 2 sup x .EN #copyin #user #uncopyin #match 13 #log #next 5.1f 10 #] lo؁$ 7#2#A## # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1f 12.0$ # $ACIS:L5.1f 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1f,v $ #print Is the construction a {sup pi +1} legal in neqn? Answer yes or no. #copyin #user #uncopyin #match no #log #next 5.1g 10 #] loB$ #2#A## # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1g 12.0$ # $ACIS:L5.1g 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1g,v $ #print It is often possible to leave out braces, but when you do be sure that you get the answer you really wanted. For example, does x sup a over b produce the same output as x sup {a over b} Answer yes or no. #copyin #user #uncopyin #match no #log #next 5.1h 10 5.2g 5 #] lo{$ #2#A# # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.1h 12.0$ # $ACIS:L5.1h 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.1h,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP One thing that you will occasionally need is to be able to get a literal { or } in your output, for an expression like .EQ { "{" a + b "}" } over 2 .EN The way to do this is to place the braces that are really to appear ______inside ______quotes, like this: .EQ { "{" a + b "}" } over 2 .EN .br The quotes temporarily turn off the special meaning of the braces so that you can have them printed. The file "Example" has a lot of square brackets in it. Modify them so they are all braces when they are printed - so they look like this - then type "ready". .pl 1 #once #create Ref .LP .EQ f"{" x sub 1 ,..., x sub n "}" ~=~ "{" x sub 1 ,..., x sub n "}" .EN .pl 1 #once #create Example .LP .EQ f[ x sub 1 ,..., x sub n ] ~=~ [ x sub 1 ,..., x sub n ] .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 6.1a 10 #] loe$ #2#A#"# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.2b 12.0$ # $ACIS:L5.2b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.2b,v $ #once #create message .ND .EQ delim $$ .EN .LP Try another example with braces, for practice. Make the file "Example" produce output that looks like this line, then type "ready". (The character $rho$ is "rho".) .pl 1 #once #create Ref .LP .EQ alpha sub i sup {pi + rho + 1} ~=~ 1 .EN .pl 1 #once #create Example .LP .EQ replace me .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 5.1c 10 #] loߦ$ S#2#A### # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.2d 12.0$ # $ACIS:L5.2d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.2d,v $ #once #create message .ND .EQ delim $$ .EN .LP Modify "Example" so it produces this output, then type "ready". .pl 1 #once #create Ref .LP .EQ {partial e sup {-{x sup 2 + y sup 2} over 2}} over {partial x} ~=~ f(x) .EN .pl 1 #once #create Example .LP .EQ xxxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 5.1e 10 #] loઁ$ I#3#A#$# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L5.2g 12.0$ # $ACIS:L5.2g 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L5.2g,v $ #print Does x sup a over b produce the same output as {x sup a} over b Answer yes or no. #copyin #user #uncopyin #match yes #log #next 5.1h 10 #] lo$ #3#A#%# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L6.1a 12.0$ # $ACIS:L6.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L6.1a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP So far every equation you have typed in has been "displayed" - neatly centered or indented, and offset from the surrounding text. But not all equations are like that. Very often they appear right in the middle of running text as subscripts like $x sub i$ or special characters like $pi$ or $partial$. How are these done? The idea is this. Two characters (which may be identical) are set aside as "delimiters". When the left delimiter is seen anywhere in ___any line, it marks the beginning of an in-line equation. The end is marked by the right delimiter. Between the delimiters, all the normal rules of neqn apply. Suppose we say the delimiters are % signs. Then to get $pi$, you have to type %pi%. To make sure that you can do this much, find the $pi$, $alpha$ and $sum$ characters in "Example" and make them into in-line equations. Use % and % as the delimiter characters. (This is the most frequent choice, by the way.) Type "ready" when you're done. .pl 1 #once #create Ref .EQ delim $$ .EN .LP This line contains some $pi$ and $alpha$ Greek and $sum$ as well. Don't forget that spaces inside dollar signs are ignored, while spaces outside them are significant. .pl 1 #once #create Example .EQ delim $$ .EN .LP This line contains some pi and alpha Greek and sum as well. Don't forget that spaces inside dollar signs are ignored, while spaces outside them are significant. .pl 1 #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 6.1b #] lo$ #3#A#'# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L6.1b 12.0$ # $ACIS:L6.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L6.1b,v $ #print There is one other thing you have to do before you can use a character as a delimiter - you have to tell neqn that you are going to. To do this, as the very first thing in your input you must put these three lines: .EQ delim $$ .EN (If you like, other characters than $ can be used, but we will stick to dollar signs here.) Until you do this, $ signs have no special significance to neqn. Modify the file "Example" by adding the "delim" lines to the beginning, and check that $ signs are now significant. Type "ready" when you are done. #once #create Ref .EQ delim $$ .EN .LP Now is the $times$ for all good $mu$ $epsilon$ $nu$ to come to the aid of their party. .pl 1 #once #create Example .LP Now is the $times$ for all good $mu$ $epsilon$ $nu$ to come to the aid of their party. .pl 1 #user #cmp Ref Example #log #next 6.1c 10 #] lo$ #3#A#(# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L6.1c 12.0$ # $ACIS:L6.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L6.1c,v $ #print One thing to keep in mind is that outside of $ signs, spaces are significant just as they were before. Inside $ signs, spaces are significant only as delimiters, and will not add any space to the output. Furthermore, inside delimiters, new lines also don't matter, just as they didn't matter between the .EQ and .EN. Do the lines Let $alpha$ be the size of the vector $pi$. and Let $ alpha $ be the size of the vector $ pi $. produce the same output? Answer yes or no. #copyin #user #uncopyin #match yes #log #next 6.1d 10 #] loK$ #3#A#/# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L6.1d 12.0$ # $ACIS:L6.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L6.1d,v $ #print Do the inputs Let $x sub i$ and $y sub i$ be $>= z sub i$. and Let $x sub i$ and $y sub i$ be $>=$ $z sub i$. produce the same output? Answer yes or no. #copyin #user #uncopyin #match no #log #next 7.1a #] lo݆$ F#4#A#2# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L7.1a 12.0$ # $ACIS:L7.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L7.1a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP The next construction we're going to look at is one for putting things above and below other things, in a rather specialized way. For example, if you want something like .EQ sum from i to j .EN you type .EQ sum from i to j .EN The words "from" and "to" are more magic, like sub or sup or over. The "from" part is centered under the main piece; the "to" part is centered above it. As a warmup, modify "Example" so it produces output that looks like the following, then type ready. .pl 1 #once #create Ref .EQ delim $$ .EN .LP Let $Q( pi )$ be $sum from {i= pi sub 1} to {i= pi sub 2} x sub i$. .pl 1 #once #create Example .EQ delim $$ .EN .LP Let $Q( pi )$ be $sum {i= pi sub 1} {i= pi sub 2} x sub i$. .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 7.1b 10 #] loݖ$ /#4#B#4# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L7.1b 12.0$ # $ACIS:L7.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L7.1b,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP As you might expect from our previous discussions, any part of a thing from thing to thing construction can be as complicated as you wish. The only limitation is that the individual "thing"'s may well need braces around them to make it clear to neqn which part goes with which. For example, suppose you want .EQ sum from {pi = 0} to {pi = n} .EN Then you have to ensure that the $pi =0$ and $pi =n$ parts are included in braces or they will not work right. Modify file "Example" so the output looks like the example above, then type "ready". .pl 1 #once #create Ref .LP .EQ sum from {pi = 0} to {pi =n} .EN .pl 1 #once #create Example .LP .EQ sum from pi = 0 to pi = n .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 7.1c 10 7.2b 5 #] loف$ #4#B#6# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L7.1c 12.0$ # $ACIS:L7.1c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L7.1c,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP It is also quite permissible to leave out either the "from" part or the "to" part of a from-to construction. For example, modify "Example" so its output looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ lim from {x-> pi /2} ( tan~x) sup {sin~2x}~=~1 .EN .pl 1 #once #create Example .LP .EQ lim from xxx ( tan~x) sup {sin~2x}~=~1 .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 7.1d 10 7.2c 5 #] loM$ o#4#B#7# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L7.1d 12.0$ # $ACIS:L7.1d 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L7.1d,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP Let's do one more example of from-to for practice before we go on to the next topic. Modify "Example" so it produces output that looks like this, then type "ready". .pl 1 #once #create Ref .EQ delim $$ .EN .LP Let $Q( pi )$ be $sum from {i= pi sub 1} to {i= pi sub 2} x sub i$. .pl 1 #once #create Example .EQ delim $$ .EN .LP Let $Q( pi )$ be $sum from {i= pi sub 1} to xxxx x sub i$. .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget to set delimiters before the .LP line, and get the spaces right around the dollar signs. #log #next 8.1a 10 #] loT$ r#4#B#)# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L7.2b 12.0$ # $ACIS:L7.2b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L7.2b,v $ #print Does the input sum from {i = -n} to {i = +n} produce the same output as the input sum from i=-n to i=+n Answer yes or no. #copyin #user #uncopyin #match yes #log #next 7.1c #] loߗ$ )#5#B#*# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L7.2c 12.0$ # $ACIS:L7.2c 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L7.2c,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP Modify file "Example" so it looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ sum to N+n-m x sub mn > 0 .EN .pl 1 #once #create Example .LP .EQ xxx .EN .pl 1 #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 7.1d 10 #] loݠ$ #5#B#+# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L8.1a 12.0$ # $ACIS:L8.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L8.1a,v $ #once #create message .ND .LP The next neqn operation is called "sqrt" - it makes square root signs over things, like this: .EQ sqrt a+b .EN (They don't look very good on a terminal, unfortunately.) This one is very easy - to print the line above, you say .EQ sqrt a+b .EN The "sqrt" operates on the first thing it finds so if you want something more complicated, like .EQ sqrt {pi +1} .EN you have to use braces to enclose the entire thing. This one was printed with .EQ sqrt {pi +1} .EN And that's all there is to sqrt. Modify "Example" so it looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ f(x) ~=~ sqrt {ax sup 2 +bx+c} .EN .pl 1 #once #create Example .LP .EQ f(x).... .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 8.1b 10 #] lo$ #5#B#-# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L8.1b 12.0$ # $ACIS:L8.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L8.1b,v $ #once #create message .ND .LP Since "sqrt thing" is really a single object, you often don't need braces around it, although there may well be braces around "thing" itself. For example, you can say .EQ 1 over sqrt {ax sup2 +bx+c} .EN to produce .EQ 1 over sqrt {ax sup 2 +bx+c} .EN Does the input .EQ e sup sqrt {pi x} .EN produce the same output as .EQ e sup {sqrt {pi x}} .EN Answer yes or no. .pl 1 # #once neqn message | nroff -T$term %s/tinyms - #copyin #user #uncopyin #match yes #log #next 9.1a 10 8.2b 5 #] lo<$ r#5#B#ƀ.# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L8.2b 12.0$ # $ACIS:L8.2b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L8.2b,v $ #print Does the input .EQ e sup sqrt {pi x} .EN produce the same output as .EQ e sup sqrt pi x .EN Answer yes or no. #copyin #user #uncopyin #match no #log #next 9.1a 10 #] loԁ$ #5#B #ƀ8# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L9.1a 12.0$ # $ACIS:L9.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L9.1a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP The next step is to learn about "diacriticals", which is a big word for funny marks on symbols, like a bar over something ($x bar$), or a tilde or hat on something ($x tilde ,~a hat$), or perhaps a dot or dotdot ($T dot ,~U dotdot$), or even an underlining like $abc under$. These are all easy. Each funny character has a name, and all you have to do is put the name after the thing you want the character on. Thus x hat makes $x hat$ y bar makes $y bar$ T dot makes $T dot$ x tilde makes $x tilde$ (notice that we spell tilde) u dotdot makes $u dotdot$ (looks ugly on a terminal) .br and i under makes $i under$. Except for "bar" and "under", these are almost always attached to just a single letter. If you want to put a bar over something longer, like ${2 pi +1} bar$, simply enclose the thing in braces: {2 pi +1} bar Modify "Example" to produce output that looks like this, then type "ready". .pl 1 #once #create Ref .EQ delim $$ .EN .LP Let $x bar$, $y bar$, and $z bar$ be the components of $pi bar$. Let ${alpha +1} bar$ be the mean value of $alpha hat$. .pl 1 #once #create Example .EQ delim $$ .EN .LP Let x bar, y bar, and z bar be the components of pi bar. Let alpha +1 bar be the mean value of alpha hat. .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #fail Don't forget to set delimiters at the beginning, and get the spaces right around the dollar signs. #log #next 9.1b 10 9.2a 5 #] lo$$ }#6#B #ƀ/# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L9.1b 12.0$ # $ACIS:L9.1b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L9.1b,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP You sometimes have to make explicit what you mean when you say "bar", by putting in braces to enclose the parts that you want the bar to be over. For example, what has to be done to make the output .EQ {x sub i} bar .EN Find out (by putting braces in the right place if necessary) in the file "Example", then type "ready" after you have successfully modified it. .pl 1 #once #create Ref .EQ delim $$ .EN .LP .EQ {x sub i} bar .EN .pl 1 #once #create Example .EQ delim $$ .EN .LP .EQ x sub i bar .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 10.1a 10 9.2b 5 #] loR$ @#6#B #ƀ:# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L9.2a 12.0$ # $ACIS:L9.2a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L9.2a,v $ #once #create message .ND .tr %$ .EQ delim $$ .EN .LP Modify "Example" to produce output that looks like this, then type "ready". .pl 1 #once #create Ref .LP .EQ x bar ~=~ E(x) bar ~/~ E( x bar ) .EN .pl 1 #once #create Example .LP .EQ xxxx .EN .pl 1 # #once neqn Ref | nroff >X1 & #once neqn message Ref | nroff -T$term %s/tinyms - #user neqn Example | nroff >X2 #cmp X1 X2 #log #next 9.1b 10 #] lo؁$ #6#B #ƀ;# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L9.2b 12.0$ # $ACIS:L9.2b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L9.2b,v $ #print Which equation prints a longer bar? xyz sub i bar or x yz sub i bar Type "answer N", where N is 1 if it's the first one, 2 if it's the second, and 0 if they are the same length. #copyin #user #uncopyin #match 0 #log #next 10.1a 10 9.3b 5 #] loP$ 8#6#B#ƀ<# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L9.3b 12.0$ # $ACIS:L9.3b 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/L9.3b,v $ #print Does ax bar produce the same output as a x bar Answer yes or no. #copyin #user #uncopyin #match no #log #next 10.1a 10 #] lo$ #6#B#ƀ=# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:tinyms 12.0$ # $ACIS:tinyms 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/eqn/RCS/tinyms,v $ .\" short set of macros to simulate behavior of .\" most common -ms macros: .\" .PP, .LP, .EQ, .EN .\" .de PP .br .sp .ll 60n .fi .ti +5n .. .de LP .br .sp .ll 60n .fi .. .de EQ .sp .ce .. .de EN .sp .. #] loI0ԁ "#h#i#i@P`pN'! __.SYMDEF 597788014 0 10 100666 3072 ` P D D D D l'l1l:lD*K*U*_*j*w********* '5?JUamz""""""%%%%% %/f /f*/f4/f?3F3P3[3g3r3~;b;b;b;b;b;b;bDDDDDDDDDD!K(K2K<KGKQK\KfKqK{KKKTTTTUUUU]p]p]p ]p]p ]p,]p7]pC]pM]pX]pb]pm]px]p]p]paaaaaaiiii}}}}%/9DMWaluPPPPPPPPPPPP PPP%P.P8`?`I`T``gqz.oVncs.oVhc2.1n_clear_.clear.oVncs.oVhc2.1n_command_.command.oVncs.oVhc2.1n_VI_QCons_.VI_QCons_VI_ReadCons_.VI_ReadCons_VI_CheckCons_.VI_CheckCons_VI_SetAuto_.VI_SetAuto_VI_QAuto_.VI_QAuto_VI_Redirect_.VI_Redirect.oVncs.oVhc2.1n_copy_.copy.oVncs.oVhc2.1n_VI_MDefnCur_.VI_MDefnCur_VI_EnCur_.VI_EnCur_VI_DisCur_.VI_DisCur_VI_PosnCur_.VI_PosnCur_VI_FDefnCur_.VI_FDefnCur.oVncs.oVhc2.1n_fontfault_.fontfault_charfault_.charfault.oVncs.oVhc2.1n_VI_GetFont_.VI_GetFont_VI_DropFont_.VI_DropFont.oVncs.oVhc2.1n_VI_Force_.VI_Force.oVncs.oVhc2.1n_VI_MImage_.VI_MImage_VI_FImage_.VI_FImage.oVncs.oVhc2.1n_ucode_loc_VI_Init_.VI_Init_VI_Term_.VI_Term.oVncs.oVhc2.1n_VI_Login_.VI_Login_VI_Logout_.VI_Logout_getstr_.getstr_strjour_.strjour.oVncs.oVhc2.1n_VI_AMove_.VI_AMove_VI_RMove_.VI_RMove_VI_ALine_.VI_ALine_VI_RLine_.VI_RLine_VI_Circle_.VI_Circle.oVncs.oVhc2.1n_VI_Msg_.VI_Msg.oVncs.oVhc2.1n_VI_GetATFont_.VI_GetATFont.oVncs.oVhc2.1n_VI_QColor_.VI_QColor_VI_QPoint_.VI_QPoint_VI_QMerge_.VI_QMerge_VI_QFont_.VI_QFont_VI_QDash_.VI_QDash_VI_QWidth_.VI_QWidth_VI_QClip_.VI_QClip.oVncs.oVhc2.1n_VI_MRead_.VI_MRead_VI_FRead_.VI_FRead.oVncs.oVhc2.1n_VI_Run_.VI_Run.oVncs.oVhc2.1n_VI_Scroll_.VI_Scroll.oVncs.oVhc2.1n_VI_Color_.VI_Color_VI_Clip_.VI_Clip_VI_Merge_.VI_Merge_VI_Font_.VI_Font_VI_Width_.VI_Width_VI_Dash_.VI_Dash.oVncs.oVhc2.1n_vikint_vikoff_nextfontid_fonts_parms_saving_forced_nofault_savefn_savefile_init_yet_jrnl_v_cntl_globals_.globals.oVncs.oVhc2.1n_VI_String_.VI_String.oVncs.oVhc2.1n_VI_Tile_.VI_Tile.oVncs.oVhc2.1n_VI_Copy_.VI_Copy_clear.o 597747969 0 10 100666 491 ` $x(nԱ "@DP+03! "Q"R#S$T%U&V'W(P)S*S\+],^-_.P/S  , $Header:_clear.c 12.0$p&p6p@ p@@P #+3=HPW.oVncs.oVhc2.1n_rcsid_clear_.clear_vikoff_VI_Force_.VI_Force_vikint_parms _command.o 597747974 0 10 100666 897 ` h0nȱ "  (>PT ""d0@3 X! "A0a3\ 2!Q!Q``` "A0a 3\m  (>,PT8TViking not initialized. Call VI_Init Semaphore apparently hung. Abort $Header:_command.c 12.0$pp(0 : pL ^pppp @@TPX P\ P`P %/9?HRX_gnv~.oVncs.oVhc2.1n_rcsid_command_.command_init_yet__iob_fprintf_.fprintf_exit_.exit_vikint_bcopy_.bcopy_v_cntl_ioctl_.ioctl _console.o 597747979 0 10 100666 1167 ` D`@n (> , n (> , n (> , n (> , n (> , n (>x , VI_QCons not supported. 6VI_ReadCons not supported. lVI_CheckCons not supported. VI_SetAuto not supported. VI_QAuto not supported. VI_Redirect not supported. $Header:_console.c 12.0$ pBpPxpppp(@@$P(@H@l@@@ DH&17@JlW6esl.oVncs.oVhc2.1n_rcsid_VI_QCons_.VI_QCons__iob_fprintf_.fprintf_VI_ReadCons_.VI_ReadCons_VI_CheckCons_.VI_CheckCons_VI_SetAuto_.VI_SetAuto_VI_QAuto_.VI_QAuto_VI_Redirect_.VI_Redirect _copy.o 597747985 0 10 100666 364 ` D$lṉP=1cd̍P 4! P$Header:_copy.c 12.0$pp$@@P DH")19@H.oVncs.oVhc2.1n_rcsid_copy_.copy_vikoff_vikint_bcopy_.bcopy_cursor.o 597747991 0 10 100666 2488 ` lxفnk@lP " 3؀Ȉ p-cB p-cB p-cBp-c@p-c@7  2    b0 b0 P  ɁD߈An " 03  "B!, n "  03  "B !, ١nıұ " #!ذȻ p,cB p,cB p,cB `  ` 0 :0 "!"#2#ɡ<ߨ!ٱnl " 03  "Bbb0 m  (>d$_1B(111bФB(11ȱbc@(lbc@(bЍ,7  21  21  2 b0b0P  ɱ<߸A4RError opening file %s $Header:_cursor.c 12.0$p$p.p: J Z j z p pp pp & 2 p:^pnpxp   pppp    r pppp  p "0"L"^"h$r p| p@@P PPP@@ @$@@PDPHPL!PP#P )7?EOV^hs{R #)2<BIPX.oVncs.oVhc2.1n_rcsid_VI_MDefnCur_.VI_MDefnCur_saving_jrnl_savefile_write_.write_VI_Force_.VI_Force_vikoff_vikint_copy_.copy_command_.command_VI_EnCur_.VI_EnCur_VI_DisCur_.VI_DisCur_VI_PosnCur_.VI_PosnCur_VI_FDefnCur_.VI_FDefnCur_strjour_.strjour_open_.open__iob_fprintf_.fprintf_read_.read_close_.close_faults.o 597747996 0 10 100666 800 ` `(h n@D03 @ R!rD @ "0`0bs b0!b0!0 , n03@D0 R#$r30 ,@DSTRcSs30!!!$P#"$mqCdMPTdPHDXUET_LAĴ "4 p$Header:_faults.c 12.0$ pp>pJpfpvpppp&p>pF@@P @ `d'3:BKUl`l.oVncs.oVhc2.1n_rcsid_fontfault_.fontfault_fonts_vikint_command_.command_charfault_.charfault_font.o 597748003 0 10 100666 2364 ` |Xpّnj k0 " "03  "BbД p,c r̔ R b0m  (>d  l  (>d bĐ!0,  (>@d c "P"  0`0b 30 cbФD0bФ@p`01bФBp01bФBp0(i  (>dd: R!!1)  (>d RA Iq9AbЍRAAp1401Sb 30 "p2 0R ɑHߘ!١nı " + "0 R 1pr"0 #03  "BbЍL R r A mlR `j s* q" s*1`j s*3   r 2 p,0bbɡ<ߨhError opening file %s No room in heap. Font %s fails. No room in heap. Font %s fails. No room in heap. Font %s fails. No room in heap. Font %s fails. \notfound$Header:_font.c 12.0$p p*p2 < F pVppp&0p\lpp< pjpv ppp   p"&"F pT"b"@@P P PPPPPPPP@!P |(5=CMT\eov~T\#)0.oVncs.oVhc2.1n_rcsid_VI_GetFont_.VI_GetFont_saving_jrnl_savefile_write_.write_strjour_.strjour_fonts_strcmp_.strcmp_open_.open__iob_fprintf_.fprintf_malloc_.malloc_strlen_.strlen_strcpy_.strcpy_nextfontid_read_.read_lseek_.lseek_VI_DropFont_.VI_DropFont_free_.free_force.o 597748008 0 10 100666 1042 `  8 x@n " 03  "B "^ ! "0a 3  = @" @ '  "! " # $ % & '   4 ,$Header:_force.c 12.0$ pp$p, 6 pH pP \pjt pp p@@P PPPPP  &19?IPX`hq{.oVncs.oVhc2.1n_rcsid_VI_Force_.VI_Force_saving_jrnl_savefile_write_.write_vikoff_vikint_command_.command_v_cntl_ioctl_.ioctl_bcopy_.bcopy_parms_fontfault_.fontfault_charfault_.charfault_image.o 597748014 0 10 100666 1905 ` ` `anbsh@&`   cp"`" " 1 p-cB lp-cB |p-cB p-cBp-cd&`   cЌpAzbcЌ,@DP4b0!Yb R1 4P4b0!b b1 4P4b0!b 1 4bc ጤ c{w 0 aLh1qnm "  03  "BbЍbФ0 l  (>dЍ$|1B(Q!cbB(P Q!/`   c!rJP bc+PMb@! 03b2 A MPMb@!Qb2 A MPMb@!b2 A MP cdAb(P cP  0 b,qLxXError opening file %s $Header:_image.c 12.0$".p<pFpR b r  pp,@fptp~p p &0 :pJp @@ P PPP@4P8P<P@PDP '3:BHRYahowX .oVncs.oVhc2.1n_rcsid_VI_MImage_.VI_MImagelmul$$_saving_jrnl_savefile_write_.writeldiv$$_clear_.clear_vikoff_vikint_copy_.copy_VI_RMove_.VI_RMove_VI_FImage_.VI_FImage_strjour_.strjour_open_.open__iob_fprintf_.fprintf_read_.read_close_.close _init.o 597748023 0 10 100666 2327 ` X((Hxفnk l00 " " Ȯ. b>Ib0m  (>d.02/  (>< "d0c3  (>X.t2 "0a3 ؠȪbc@ؐșp)c@ bЍp)0a3 . Ф PU!@"E1#5$E%E&E'E E,E-E .%/(E)E*%+@O?@O@OO  ɁH߈!nԍ ", h/usr/lib/aed/whim.aedwhim.aedwhim.aedError opening %s /dev/aedError opening /dev/aed Error set output emulator /dev/busVI_Init: microcode version check override $Header:_init.c 12.0$p"p6 J R bprz pppp  p"p0<pJZlxp !p"p#p$p%p&p'p(+0-:p@@0@ P PPPPPPPPP@*P ,P X\'6?IS[clrx !-5=GP\Ycmx.oVncs.oVhc2.1n_rcsid_ucode_loc_init_redirect_VI_Init_.VI_Init_init_yet_saving_access_.access_.blt_open_.open__iob_fprintf_.fprintf_exit_.exit_v_cntl_ioctl_.ioctl_vikint_read_.read_write_.write_close_.close_printf_.printf_command_.command_parms_fonts_nextfontid_vikoff_savefn_savefile_nofault_VI_Term_.VI_Term_VI_Force_.VI_Force_VI_Logout_.VI_Logout _log.o 597748029 0 10 100666 1753 ` pnm " 03 p,BbP>bdЍP cЍT "4 n " 03 p-Bp-m "b0 ٱnk l0bcA@  b P  bɱ8߸!ٱnk p-cAԐ@ b O p->A,ɱ8߸Heap full. Trying to continue, VI_Login(%s) ignored. n$Header:_log.c 12.0$pp(p2 < HpZ dpvpppppp & 2p8DpNpVpp  @@@PD PH PLPPPTPXP\@`Pd@hPl@ &19?IPX_gmt|t|n .oVncs.oVhc2.1n_rcsid_VI_Login_.VI_Login_saving_jrnl_savefile_write_.write_close_.close_open_.open_strlen_.strlen_malloc_.malloc_savefn__iob_fprintf_.fprintf_strcpy_.strcpy_VI_Logout_.VI_Logout_free_.free_getstr_.getstr_read_.read_strjour_.strjour _movdrw.o 597748036 0 10 100666 2041 ` ,8`@١nıұ " "ذȻ p,cB p,cB p,cB# `Д  ` PUPEb@!5b 2A EPEb@!b ҐA EPEb@!b A Eɡ<ߨ!١nı± " "ؠȪ ذȻp+cB p+cB p+cB#PUPEb@!6b 2A EPEb@!b A EPEb@!b ҐA Eɡ<ߨ!١nıұ " "ذȻ p,cB p,cB p,cB# `Д  ` PUPEb@!7b 2A EPEb@!b ҐA EPEb@!b A Eɡ<ߨ!١nı± " "ؠȪ ذȻp+cB p+cB p+cB#PUPEb@!8b 2A EPEb@!b A EPEb@!b ҐA Eɡ<ߨ!ٱnȱ "  p-cB p-cB" ` PUPEb@!>b 2A EPEb@!b A Eɱ8߸Lp$Header:_movdrw.c 12.0$pp(p4 D T ^ p pp$p.p: J Z d n p~ pppp    t p pppp    & p6 p~ppp    p p@@P P@@@@ ,0&19?IPX_gow<@DHp.oVncs.oVhc2.1n_rcsid_VI_AMove_.VI_AMove_saving_jrnl_savefile_write_.write_clear_.clear_vikoff_vikint_VI_RMove_.VI_RMove_VI_ALine_.VI_ALine_VI_RLine_.VI_RLine_VI_Circle_.VI_Circle _msg.o 597748040 0 10 100666 354 ` 8<`n (> , \VI_Msg not supported. $Header:_msg.c 12.0$ p@@ P 8<$-3<F.oVncs.oVhc2.1n_rcsid_VI_Msg_.VI_Msg__iob_fprintf_.fprintf_nfont.o 597748048 0 10 100666 1940 ` t`ّni j0 " $03  "BbذͻД p+c r R  b0l  (>d  k  (>d bĐ!0+  (>@d c "P"  0`0b 30 cbDp!` c 830` ("00b@p!t01bBp0Sb(- #!1bBp0R!`  (""(m  (>dd: R!!1-  (>d RA Mq=AbRAAp1401Sb 3Ҕ0 "p2 0R ɑHߘ!Error opening file %s No room in heap. Font %s fails. No room in heap. Font %s fails. No room in heap. Font %s fails. No room in heap. Font %s fails. $Header:_nfont.c 12.0$p p*p2 < F pVppp&0p\p2BpRl p@@P P PPPPPPPP *9AGQX`isz .oVncs.oVhc2.1n_rcsid_VI_GetATFont_.VI_GetATFont_saving_jrnl_savefile_write_.write_strjour_.strjour_fonts_strcmp_.strcmp_open_.open__iob_fprintf_.fprintf_malloc_.malloc_strlen_.strlen_strcpy_.strcpy_nextfontid_read_.read_lseek_.lseek_qstuff.o 597748055 0 10 100666 1087 ` h<pHnm  " -0 nl m0 "V W 4! nm  " -0 nm  " -0 nl m0 "T U 4! nm  " -0 ١nj k0l@mP "X Y Z [ ɡ<ߨA.d$$Header:_qstuff.c 12.0$ p<Fppzppp p6@p@@P @@@@@ @ hl'3=HOtZ.fxqd}|$.oVncs.oVhc2.1n_rcsid_VI_QColor_.VI_QColor_VI_Force_.VI_Force_parms_VI_QPoint_.VI_QPoint_VI_QMerge_.VI_QMerge_VI_QFont_.VI_QFont_VI_QDash_.VI_QDash_VI_QWidth_.VI_QWidth_VI_QClip_.VI_QClip _read.o 597748061 0 10 100666 1888 ` ``anrp a _` Z` U)`  001 Ќ”Abp1Ҥ03!"s#$% "&#& "0a 3  aPd @" c``P`⫱ aPhQanbs`הp`` " 8 p-cB lp-cB |p-cB p-cB p-cB!X Xb0@$0! (>dЍ(m%1 B$p!1B(`  011 ЌCbq1¤! "m#}$% "&-& "0a 3 d @" cЍp!cd`p⚱ p!,a XhQError opening file %s. $Header:_read.c 12.0$.Lfp p p pp,p6pBRbrp*4 pF pP Z ph|!@@P PPP@4P8P<P@PD P &1;FMT\clv~ .oVncs.oVhc2.1n_rcsid_VI_MRead_.VI_MRead_VI_Force_.VI_Forceldiv$$lmul$$_vikint_parms_command_.command_v_cntl_ioctl_.ioctl_bcopy_.bcopy_VI_FRead_.VI_FRead_saving_jrnl_savefile_write_.write_strjour_.strjour_open_.open__iob_fprintf_.fprintf_close_.close_run.o 597748071 0 10 100666 5166 ` 0p(فnPi 0j  (>d bcФB] zm \bcФB1bB1bBbcФB1bB1bB1bB1bBQA1!0 bcФB1bB1bbcФB1bB1bbcФB1bB1bbcФB!bcФB1bB1bB!m  (>dځbcd y 1!dЍbЍ]bcbЍĈNbcФB1bB1bB1bB1bB!m  (>`dbc@  bc@  1!debbЍdbcbЍVQLbcФB1bB1b3ȁbcbcЍ$ȁbcbcЍȁbcbcЍ! b Ɂl ```," "dP//: P@PBPDP FPHPJP $-3:@ISY`ju ,29AJUajt %/9DQ_lz.oVncs.oVhc2.1n_rcsid_VI_Run_.VI_Run_open_.open__iob_fprintf_.fprintf_read_.read_VI_Force_.VI_Force_VI_AMove_.VI_AMove_VI_Scroll_.VI_Scroll_VI_RMove_.VI_RMove_VI_ALine_.VI_ALine_VI_RLine_.VI_RLine_VI_Circle_.VI_Circle_malloc_.malloc_exit_.exit_VI_MImage_.VI_MImage_free_.free_getstr_.getstr_VI_FImage_.VI_FImage_VI_Tile_.VI_Tile_VI_String_.VI_String_VI_Copy_.VI_Copy_VI_FRead_.VI_FRead_VI_Color_.VI_Color_VI_Clip_.VI_Clip_VI_Merge_.VI_Merge_VI_GetFont_.VI_GetFont_VI_Font_.VI_Font_VI_Dash_.VI_Dash_VI_Width_.VI_Width_VI_MDefnCur_.VI_MDefnCur_VI_FDefnCur_.VI_FDefnCur_VI_EnCur_.VI_EnCur_VI_DisCur_.VI_DisCur_VI_PosnCur_.VI_PosnCur_VI_GetATFont_.VI_GetATFont_VI_DropFont_.VI_DropFont_close_.close_scroll.o 597748077 0 10 100666 1005 ` (` فnı " <؀Ȉ ؐșp)cB p)cB p)cB p)cB p)cBF p)cB ` Ƞ ` Ȱ   `   `д ` !F `  ` !F F  ! ;&PUPEb@!03b2 A EPEb@!b2 A EPEb@!b2 A EPEb@!b2 A EPEb@!b2 ҐA EPEb@!Fb2 A EɁD߈Q$Header:_scroll.c 12.0$p"p,p8 H X h x   p p@@P P '3;AKRZaiqy.oVncs.oVhc2.1n_rcsid_VI_Scroll_.VI_Scroll_saving_jrnl_savefile_write_.write_clear_.clear_vikoff_vikint _set.o 597748085 0 10 100666 2296 ` PhXٱnȱ "  p-cB p-cBܿɱ8߸فnı " 3؀Ȉ ؐșp)cB p)cB p)cB p)cB p)cB "()*+Ҕ      ɁD߈Aٱnȱ " ذȻ p,cB p,cB"PUPEb@!1b 2A EPEb@!b ҐA Eɱ8߸ṉ " + "0 R 1pr"0 03  "Bb"PUPEb@!2b 2A EPEb@!b ҐA E4 ٱnȱ " ذȻ p,cB p,cBؤ"PUPEb@!4b 2A EPEb@!b ҐA Eɱ8߸١nı± " #ؠȪ ذȻp+cB p+cB p+cBԤ#PUPEb@!3b 2A EPEb@!b A EPEb@!b ҐA Eɡ<ߨ!8lnnotfoundJ$Header:_set.c 12.0$pp(p4 D L V pppp p p( p@ pX p|ppp  ppppJpTp\ fpzppppp  ppZpjptp   pp@@P P@@P@,P0@4@ &19?IPXbmt}ln04J.oVncs.oVhc2.1n_rcsid_VI_Color_.VI_Color_saving_jrnl_savefile_write_.write_VI_Force_.VI_Force_parms_VI_Clip_.VI_Clip_VI_Merge_.VI_Merge_clear_.clear_vikoff_vikint_VI_Font_.VI_Font_fonts_strjour_.strjour_VI_Width_.VI_Width_VI_Dash_.VI_Dash_setup.o 597748090 0 10 100666 468 ` ($Header:_setup.c 12.0$@ @ $,8? F NV_gq{.oVncs.oVhc2.1n_rcsid_vikint_vikoff_nextfontid_fonts_parms_saving_forced_nofault_savefn_savefile_init_yet_jrnl_v_cntl_globals_.globals_string.o 597748094 0 10 100666 806 ` 4P8ٱnk "  03  "Bbb ,` -PUPEb@!;b 2A EPEb@!b A EbcЍɱ8߸$Header:_string.c 12.0$pp&p. 8 B ^hpxp@@P P PPP '3;AKRZcmu~.oVncs.oVhc2.1n_rcsid_VI_String_.VI_String_saving_jrnl_savefile_write_.write_strjour_.strjour_strlen_.strlen_clear_.clear_vikoff_vikint_copy_.copy_tile.o 597748099 0 10 100666 901 ` D,x(an*`  bc`̱ " C `f pwp'c`B p'c`B p'c`B p'c`B p'c`B p'c`B1LpbdЍ,PUPEb@!:b 2A EPEb@!b A EPEb@!b A EPEb@!b A EPEb@!b A E!Lc aLhQX$Header:_tile.c 12.0$&2p@pJpV f v pp*@@ P PP DH%/6>DNU]dlt|.oVncs.oVhc2.1n_rcsid_VI_Tile_.VI_Tilelmul$$_saving_jrnl_savefile_write_.write_clear_.clear_vikoff_vikint_copy_.copy vi_copy.o 597748105 0 10 100666 866 ` D,p(فn " P ؀Ȉp(cФB p(cФB p(cФB p(cФB p(cФBF p(cФBJ p(cФBN p(cФB 6 4Fb ! -AJbJ! & $ "b ! bL! 3 "!2"#$%&'BN()** ɁD߈qX$Header:vi_copy.c 12.0$p"p,p8 H X h x  p*@@P P P DH%/7=GNV`ks|.oVncs.oVhc2.1n_rcsid_VI_Copy_.VI_Copy_saving_jrnl_savefile_write_.write_VI_Force_.VI_Force_vikint_command_.command#] :loIx l#o#q#qHXhxZ-! __.SYMDEF 597788022 0 10 100666 5216 ` '.8=FPWafkqx      $ , 2 9 B L T ]0vd0vn0vs0v|0v0v0v0v0v0v0v0v0vEPEPEPEPEPEPEPEP EPEPEP&EP,EP6EP>EPFEPLEPPEPTEPXEP\EP`EPdEPhEPlEPpEPtEPxEP|EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP EPEPEPEPEP EP$EP(EP,EP0EP4EP8EP<EP@EPDEPHEPLEPPEPTEPXEP\EP`EPdEPhEPlEPpEPtEPxEP|EPEPEPEPEPEPEPEPEPEPEPEPMMMMM NNN N+N7Q>QHQMQUQ^SeSoStS|SW W W W W XXXXXZnZnZnZnZn^z^z^z^z^z'`<.`<8`<=`<D`<LanSan]anbanoan}bbbbbhhhhhkpkpkpkpkpnRnR nRnRnR%o,o6o;oBoJqQq[q`qjquqqsssssssvbvbvbvbvbyVyVyVyV yVyVyV'yV5yVDyVOyV[VbVlVqVzVJJJJJJJJJ +2<AGQ\cmrylllllj j j j j ,j 7j C J T Y c n y t t t t .oVncs.oVhc2.1n.oVO_waddch_.waddch.oVncs.oVhc2.1n.oVO_waddstr_.waddstr.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_wclear_.wclear.oVncs.oVhc2.1n.oVO_wclrtobot_.wclrtobot.oVncs.oVhc2.1n.oVO_wclrtoeol_.wclrtoeol.oVncs.oVhc2.1n.oVO__win_mvcur_.mvcur_fgoto_.fgoto_plod_.plod_plodput_.plodput_tabcol_.tabcol.oVncs.oVhc2.1n.oVO__tspace_ospeed_gettmode_.gettmode_setterm_.setterm_zap_.zap_getcap_.getcap.oVncs.oVhc2.1n.oVO__echoit__rawmode_My_term__endwin_ttytype_Def_term__tty_ch_LINES_COLS__res_flg_stdscr_curscr__tty_AM_BS_CA_DA_DB_EO_HC_HZ_IN_MI_MS_NC_NS_OS_UL_XB_XN_XT_XS_XX_AL_BC_BT_CD_CE_CL_CM_CR_CS_DC_DL_DM_DO_ED_EI_K0_K1_K2_K3_K4_K5_K6_K7_K8_K9_HO_IC_IM_IP_KD_KE_KH_KL_KR_KS_KU_LL_MA_ND_NL_RC_SC_SE_SF_SO_SR_TA_TE_TI_UC_UE_UP_US_VB_VS_VE_AL_PARM_DL_PARM_UP_PARM_DOWN_PARM_LEFT_PARM_RIGHT_PARM_PC_GT_NONL_UPPERCASE_normtty__pfast.oVncs.oVhc2.1n.oVO_wdelch_.wdelch.oVncs.oVhc2.1n.oVO_wdeleteln_.wdeleteln.oVncs.oVhc2.1n.oVO_delwin_.delwin.oVncs.oVhc2.1n.oVO_endwin_.endwin.oVncs.oVhc2.1n.oVO_werase_.werase.oVncs.oVhc2.1n.oVO_fullname_.fullname.oVncs.oVhc2.1n.oVO_wgetch_.wgetch.oVncs.oVhc2.1n.oVO_wgetstr_.wgetstr.oVncs.oVhc2.1n.oVO_idlok_.idlok.oVncs.oVhc2.1n.oVO__id_subwins_._id_subwins.oVncs.oVhc2.1n.oVO_initscr_.initscr.oVncs.oVhc2.1n.oVO_winsch_.winsch.oVncs.oVhc2.1n.oVO_winsertln_.winsertln.oVncs.oVhc2.1n.oVO_longname_.longname.oVncs.oVhc2.1n.oVO_wmove_.wmove.oVncs.oVhc2.1n.oVO_mvprintw_.mvprintw_mvwprintw_.mvwprintw.oVncs.oVhc2.1n.oVO_mvscanw_.mvscanw_mvwscanw_.mvwscanw.oVncs.oVhc2.1n.oVO_mvwin_.mvwin.oVncs.oVhc2.1n.oVO_newwin_.newwin_subwin_.subwin__set_subwin__._set_subwin___swflags__._swflags_.oVncs.oVhc2.1n.oVO_overlay_.overlay.oVncs.oVhc2.1n.oVO_overwrite_.overwrite.oVncs.oVhc2.1n.oVO_printw_.printw__sprintw_._sprintw_wprintw_.wprintw.oVncs.oVhc2.1n.oVO__putchar_._putchar.oVncs.oVhc2.1n.oVO__win_wrefresh_.wrefresh.oVncs.oVhc2.1n.oVO_scanw_.scanw__sscans_._sscans_wscanw_.wscanw.oVncs.oVhc2.1n.oVO_scroll_.scroll.oVncs.oVhc2.1n.oVO_touchoverlap_.touchoverlap.oVncs.oVhc2.1n.oVO_wstandout_.wstandout_wstandend_.wstandend.oVncs.oVhc2.1n.oVO_touchwin_.touchwin_touchline_.touchline.oVncs.oVhc2.1n.oVO_tstp_.tstp.oVncs.oVhc2.1n.oVO__unctrladdch.o 597748126 0 10 100777 797 ` |Xx 8١nj ųPQ; .3.P?? DB m b0   ɡ< !ɡ.oVncs.oVhc2.1n.oVO_waddstr_.waddstr_waddch_.waddchbox.o 597748148 0 10 100777 446 ` @T١nR2SSupOcP2c?p3 ŭk?kO ``` ujkpk ukpېRPVRU oP _P SP cS ɡ<ߨ1@(#)box.c 5.1 (Berkeley) 6/7/85$Header:box.c 12.0$@$@(P h'%/<:.oVncs.oVhc2.1n.oVO_box_.box_touchwin_.touchwinclear.o 597748157 0 10 100777 324 ` ,HTnm  !0 \@(#)clear.c 5.1 (Berkeley) 6/7/85$Header:clear.c 12.0$ @(@,P h'T" +93c<.oVncs.oVhc2.1n.oVO_wclear_.wclear_werase_.weraseclrtobot.o 597748167 0 10 100777 436 ` PT١nk R PQ;1@eRu bpS+oj@ 0 mu bpBJ:  u bpR]bcR 0 ɡ<ߨ@(#)clrtobot.c 5.2 (Berkeley) 10/24/85$Header:clrtobot.c 12.0$d@,@0P h'P%1E<H.oVncs.oVhc2.1n.oVO_wclrtobot_.wclrtobot_touchline_.touchlineclrtoeol.o 597748176 0 10 100777 404 ` hPTٱnQBP2o0uepSRlk@ uBdOpԲ SRQBQɱ8߸@(#)clrtoeol.c 5.1 (Berkeley) 6/7/85$Header:clrtoeol.c 12.0$N@,@0P h'T%1E<H.oVncs.oVhc2.1n.oVO_wclrtoeol_.wclrtoeol_touchline_.touchlinecr_put.o 597748206 0 10 100777 3940 ` 8tpn2_3O0?1/ ,A فnذͻؐșr bcs 3 29pɴˎ,ch q1bc "09 :6@  " @D0-p- @D0* q٤0 sذȻp+в3h1 m3 Ј "rٔ @ 2 m2p+ؠȪp* @ @D0*@ 0 p qs`@  " 3hД 'r9 "d m i  b@DbФ0 Qs 1 r 0 ɁDqsذȻlp+qىs@ ߈n03u t4,, an5-4-pM0Aq=l0 " ؀Ȉ@ r oekPU_r k ogjpwe@R]TSZ P WeTe@P[  kP[s}f0gfVo{ s@D001=0=d0r =@ " 5ؠȪpjagᶐ*` &@D0@0Mp 01=r @ " s  aPe@P obk "/kؐș@)  " s}7 SؠȪ@* s}7I[ @ "  "  " @D0-@  " @D0*q 1 q=0s}7,ذȻ11=p+ @D0*t- @  " 0 s q=0 " r pM@ t- A0M " @D0(br pM@ s-q=2ؠȪذȻp*11=0dt- s q=0 r pM@( sb$!nb@8k r )pMb$$_ "YؠȪp*  " L " $@D0 " @D0)0d)0dr @A0Mp* @D0(r pM@ @oذȻp "u t 54 q-"PUubpb@"2V0쉀pM " @D0艀 pM pMt-A0M r @ u p0 1aPr ؀ȈC@r ؀Ȉ;@s}s}s}t-hٱnk l0 bcЌcЌm ⽤nbcbɱ8߸!@(#)cr_put.c 5.1 (Berkeley) 6/7/85h2$Header:cr_put.c 12.0$ `:pF`V p p p p pppp8 pHpl pt pppppFpTp`plp``ppb pn!pp`"pp`p^#pl p~$p p!p p` p`& p8`@d p|%p!p`p`BpN!p\ ph(pt`|(p``p&)pDT*p``hppp  + @(@,@0@4P8P<P@PD@H@L@P@T@X@ h'f  `'p/Oh62>DKKOWd[T_ipYx:CvO/$dV[^SD`\U  e ]: .oVncs.oVhc2.1n.oVO__win_mvcur_.mvcur_fgoto_.fgoto_COLSldiv$$_AM__pfast_NL_CR__putchar_tputs_.tputs_._putchar_LINES_CA_UP_CM_tgoto_.tgoto_strlen_.strlen_plod_.plod_plodput_.plodput_HO_GT_BS_BC_LL_NONL_NC_BT_tabcol_.tabcol_TA_curscr_NDlmul$$cr_tty.o 597748225 0 10 100777 5278 ` Dٱnp,cЍ ɱ8p,cЍR ذȻ0 p,cЍ p " A R=0;## #" p,cЍɱ8߸qnh @ȎؠȪȺbc0! ^ 4 5Z  "d0th3@4 p, !0,p 0 .80,p=% 0 0 .80-c 4 P0 1ʍ< "  "  "  " "p 0 " "p$0030 "p(00 "p,0 " ZsJr:pwp'@@O0פp* @`1bcDc b@1H1 bqP!qPp,$xٱn\bЍp<#Đ@ Ⱦ,bcЍp<0#Đ@  " ɱ8. 00 . p  " 0- "/ɱ8ɱ8߸n03, @(#)cr_tty.c 5.2 (Berkeley) 11/8/85xxxx|dumb:licoambsdadbeohchzinmimsncnsosulxbxnxtxsxxalbcbtcdceclcmcrcsdcdldmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullmandnlpcrcscsesfsosrtatetiucueupusvbvsveALDLUPDOLERIsgug$Header:cr_tty.c 12.0$ XpYp[8[D\pP^v_p`pap^`eXp"g2hpDip^k|kTpp?p>p ppNppOp p0p*1pB$pV`pdpppxoppppqpstpvhpip2xR`\ztp@pBpkBpkJpJpHp@p Bp$`*z@(P,P0P4P8P<P@ PD PH PL PP PTPXP\P`PdPhPlPpPtPxP|PPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;P P?P @P$AP(BP,CP0DP4EP8FP<GP@HPDIPHJPLKPPLPTMPXNP\OP`PPdQPhRPlSPt@xZP|]P@dPfPjP@nPrPuP@wPyP@ h'KS"E&F*U.O2f6\:_>iB[FkJmNrRnVzZ^bfJjCnTrGvHzN~PXVWQRcZhBDMIj`LY{dta^ogsbeupy]}l ~wqx"&v*.26:>|BFOXaSlwU{ Mj \&-3<FKQ/X`dhr}w8.oVncs.oVhc2.1n.oVO_AM_BS_DA_DB_EO_HC_HZ_IN_MI_MS_NC_NS_OS_UL_XB_XN_XT_XS_XX_AL_BC_BT_CD_CE_CL_CM_CR_CS_DC_DL_DM_DO_ED_EI_K0_K1_K2_K3_K4_K5_K6_K7_K8_K9_HO_IC_IM_IP_KD_KE_KH_KL_KR_KS_KU_LL_MA_ND_NL_RC_SC_SE_SF_SO_SR_TA_TE_TI_UC_UE_UP_US_VB_VS_VE_AL_PARM_DL_PARM_UP_PARM_DOWN_PARM_LEFT_PARM_RIGHT_PARM__tspace_ospeed_gettmode_.gettmode__tty_ch__tty_gtty_.gtty__res_flg_stty_.stty_UPPERCASE_GT_NONL_setterm_.setterm_tgetent_.tgetent_ioctl_.ioctl_LINES_COLS_tgetnum_.tgetnum_zap_.zap_tgoto_.tgoto_CA_PC_longname_.longname_ttytype_strncpy_.strncpy_tgetflag_.tgetflag_tgetstr_.tgetstr_getcap_.getcapcurses.o 597748235 0 10 100777 1931 ` \<@(#)curses.c 5.2 (Berkeley) 11/8/85T$Header:curses.c 12.0$unknown@,@ h'(#M)-)*62+?2H,R0[bh rn4z8{KSCEFUOf\_i[kmrnzJDTGHNPXVWQRc ZhBLM I$j(`,a0Y4{8d<t@uDH^LoPgTsXb\e`~dphylp]t}xl|wqxv|S.oVncs.oVhc2.1n.oVO__echoit__rawmode_My_term__endwin_ttytype_Def_term__tty_ch_LINES_COLS__res_flg_stdscr_curscr__tty_AM_BS_CA_DA_DB_EO_HC_HZ_IN_MI_MS_NC_NS_OS_UL_XB_XN_XT_XS_XX_AL_BC_BT_CD_CE_CL_CM_CR_CS_DC_DL_DM_DO_ED_EI_K0_K1_K2_K3_K4_K5_K6_K7_K8_K9_HO_IC_IM_IP_KD_KE_KH_KL_KR_KS_KU_LL_MA_ND_NL_RC_SC_SE_SF_SO_SR_TA_TE_TI_UC_UE_UP_US_VB_VS_VE_AL_PARM_DL_PARM_UP_PARM_DOWN_PARM_LEFT_PARM_RIGHT_PARM_PC_GT_NONL_UPPERCASE_normtty__pfast delch.o 597748246 0 10 100777 390 ` hHTnP2Ԫ2ucSp3dAQo?e0@Qo0  SQBP2P!,? @(#)delch.c 5.1 (Berkeley) 6/7/85$Header:delch.c 12.0$D@(@,P h'"+E6B.oVncs.oVhc2.1n.oVO_wdelch_.wdelch_touchline_.touchlinedeleteln.o 597748257 0 10 100777 646 ` X (ٱnk P`Ъu;bR p’%y `Ъbq 0`ЪcSKq#p3S PbcФ@R u; y bӉ0ªbpS b   ```S P;Pb@y b !ɱ8߸ @(#)deleteln.c 5.1 (Berkeley) 6/7/85$Header:deleteln.c 12.0$@T @,@0P4P8 P h'%*18U@EKWdr.oVncs.oVhc2.1n.oVO_wdeleteln_.wdeleteln_bcopy_.bcopy_touchline_.touchline__id_subwins_._id_subwinsdelwin.o 597748266 0 10 100777 496 ` LT( nm y 1R u-p" R b"u bp" v-w-x-- xb-```x-c x cx ```8#u-bЍ4 @(#)delwin.c 5.1 (Berkeley) 6/7/85$Header:delwin.c 12.0$"BL@(@,P0@ h'"+y18.oVncs.oVhc2.1n.oVO_delwin_.delwin_free_.freeendwin.o 597748276 0 10 100777 775 ` Lh n "03"# " "0d "0dp- V  "0dp-V&44 @(#)endwin.c 5.1 (Berkeley) 6/7/85$Header:endwin.c 12.0$ppp$ . p6 p@ JpT ^ptp~ p@(@,P0 P h'f".+ 5{;DJMQmU_fYnirzg~2.oVncs.oVhc2.1n.oVO_endwin_.endwin__res_flg__tty__tty_ch_stty_.stty_VE__putchar_tputs_.tputs_TE_curscr_SE__endwin erase.o 597748287 0 10 100777 422 ` HTٱnk R .@c2u bS p"eo @ mdB  u bpR]bcR Ԥ ! ɱ8߸@(#)erase.c 5.1 (Berkeley) 6/7/85$Header:erase.c 12.0$^@(@,P h'9"c+E6B.oVncs.oVhc2.1n.oVO_werase_.werase_touchline_.touchlinefullname.o 597748294 0 10 100777 323 ` \L<@C@ %: "e0 : | !Q@ : |E@|!@ :b0@(#)fullname.c 5.1 (Berkeley) 6/7/85$Header:fullname.c 12.0$@,@ h'$/.oVncs.oVhc2.1n.oVO_fullname_.fullname getch.o 597748305 0 10 100777 975 ` 4Tx0١nj V  S Q  R P  ɡ<@  "@03R" " Ű "p 0q2@Ñ1 12@ T P:p-0U QJ@ p-cbc 03R" "bɡ<ߨp@(#)getch.c 5.3 (Berkeley) 4/16/86$Header:getch.c 12.0$DpRp`prpx p pp pp @(@, P0 P4P8P h' \"J+4M>{DMSMZ.`is{Ox@.oVncs.oVhc2.1n.oVO_wgetch_.wgetch__echoit__rawmode__tty__tty_ch_stty_.stty__iob__filbuf_._filbuf_curscr_wmove_.wmove_waddch_.waddch getstr.o 597748317 0 10 100777 390 ` dHTnl m0-  b-    4 !4! @(#)getstr.c 5.1 (Berkeley) 6/7/85$Header:getstr.c 12.0$&@(@,P h'l#^- 5J>.oVncs.oVhc2.1n.oVO_wgetstr_.wgetstr_wgetch_.wgetchidlok.o 597748326 0 10 100777 245 ` D< V &V &H@(#)idlok.c 5.1 (Berkeley) 6/7/85$Header:idlok.c 12.0$@(@ h'MD!).oVncs.oVhc2.1n.oVO_idlok_.idlok id_subwins.o 597748335 0 10 100777 325 ` XL<PT2dxRR RT5`P4?nuopWmn0uo0ߐ1R? xUR@(#)id_subwins.c 5.1 (Berkeley) 6/7/85$Header:id_subwins.c 12.0$@,@ h''5.oVncs.oVhc2.1n.oVO__id_subwins_._id_subwins initscr.o 597748348 0 10 100777 1390 ` HlPٱn "Ȕ " ( 0-,  p-!0-, .  " "0dЍ "0dЍ03  p- $ذȻp+p<@P(0-  ɱ8V &p- $pOFP[f\r.oVncs.oVhc2.1n.oVO_mvprintw_.mvprintw_stdscr_wmove_.wmove__sprintw_._sprintw_mvwprintw_.mvwprintwmvscanw.o 597748405 0 10 100777 608 ` P((n8!91:A;Q8!o 91`0:A;Qp-cd! z1p-A, 0A n819A:Q7!819A:Q! z1w!A, ,A @(#)mvscanw.c 5.1 (Berkeley) 6/7/85\$Header:mvscanw.c 12.0$ p,@ t @(@,P0P4@ h'#-n5<ODMW/aO\l.oVncs.oVhc2.1n.oVO_mvscanw_.mvscanw_stdscr_wmove_.wmove__sscans_._sscans_mvwscanw_.mvwscanwmvwin.o 597748417 0 10 100777 695 ` P0(١nj RZ`S S m ɡr$Header:printw.c 12.0$p @(@,@0@4@8 P< P@P h')D"S+n3P=rHWLQ>[~dnfw.oVncs.oVhc2.1n.oVO_printw_.printw_stdscr__sprintw_._sprintw_wprintw_.wprintw__doprnt_._doprnt__flsbuf_._flsbuf_waddstr_.waddstrputchar.o 597748480 0 10 100777 460 ` H`n"@Du41 54v4#164,$ 3x0v4#* 164,4,4, @(#)putchar.c 5.1 (Berkeley) 6/7/85$Header:putchar.c 12.0$p^t@(@,P h'$:/.5f>H.oVncs.oVhc2.1n.oVO__putchar_._putchar__iob__flsbuf_._flsbufrefresh.o 597748513 0 10 100777 3202 ` |pفnm ذȻ@  "0d "0dؠȪpJPذȻT Q! ԏ! +  +V  ! "@D0 !D  p*ޒ !bЍ ޝ " Q *D+ p*R=;lv b P .bc bɁDv b W P20 S= W w-d,S-P4 2 w d P4v b P0` R= pJQ;P+Q]PMg4   $!4TMB KU ! 0$ R  0 S 0 -!=! T PM@U Q]P<T PM@p* BU Q]P!Rݞ bɁDR=߈ang 3311vbWGPS' !a\wcP!a\ s1Td1TD ȞB03u3c4pCU7;i4s12uGcCp3h;@D@ j2@*   @* ```:01j@@9@{UQ=P-e qAq Ue !]5@)@A> bp1 _ \P=U2 "u"b2p2 "j#@*  @* ```p1:21 "r12 -S* "@D0U !  0 9+*```!a\ " ,@P`fp6VP @DP 0p&V& "0p&V&S' k hR'!s12c' Sp,V V  "  "@D0p,V&D-@    V D p, PT' Q'U! !a\V'" ! a\D-@`f    p @ (p&@D0䑁@)@ JQ=Ue 5 {BLSY[m_gNk9sc|<C:.LG$qgijKz p .oVncs.oVhc2.1n.oVO__win_wrefresh_.wrefresh__endwin_VS__putchar_tputs_.tputs_TI_curscr_CL_werase_.werase_touchwin_.touchwin_CA_._putchar__iob_fflush_.fflush_CE_COLS_strlen_.strlen_SO_SE_MS_scroll_.scroll_UC_AM_XN_mvcur_.mvcurscanw.o 597748523 0 10 100777 764 ` \ @n7!819A:Q7!` 81 "A c&,A n7!819A:Q7!819AA$ ,A ٱnPk0l@A(12cЍ  ɱxbЍ0!bcd ɱx߸1,@(#)scanw.c 5.1 (Berkeley) 6/7/85>r$Header:scanw.c 12.0$p @(@,@0@4@8 P< P@P h'!')n1:rD L>Ul^^h$py:.oVncs.oVhc2.1n.oVO_scanw_.scanw_stdscr__sscans_._sscans_wscanw_.wscanw_wgetstr_.wgetstr_strlen_.strlen__doscan_._doscanscroll.o 597748533 0 10 100777 608 ` P0(ٱnk  ɱ8QPˤ0@bbcdЍ03* 030! ɱ8ɱ8߸@(#)scroll.c 5.1 (Berkeley) 6/7/85$Header:scroll.c 12.0$(2@J pV ` p@(@,P0P4 P h'"+2O:E*QYc:nt.oVncs.oVhc2.1n.oVO_scroll_.scroll_wmove_.wmove_wdeleteln_.wdeleteln_curscr__putchar_._putchar_NONLtoucholap.o 597748544 0 10 100777 450 ` PTّni0T TjjUIURTmPm@R2k?R94 k0S"l%S)$ l  ɑ@Ē bcde ɑ@ߘ!@(#)toucholap.c 5.1 (Berkeley) 6/7/85$Header:toucholap.c 12.0$p@,@0P h'(R7EBN.oVncs.oVhc2.1n.oVO_touchoverlap_.touchoverlap_touchline_.touchlinestandout.o 597748554 0 10 100777 512 ` tPx8@D@ 030鏤 V&@@Db@030 030鏤 V& "  "@(#)standout.c 5.1 (Berkeley) 6/7/856$Header:standout.c 12.0$pp(p8pDpZ pfp@,@0@ h'%1q5i9Dv6PgT.oVncs.oVhc2.1n.oVO_wstandout_.wstandout_SO_UC_wstandend_.wstandend_SEtouchwin.o 597748563 0 10 100777 438 ` TT ٱnk RۤS Pbc@ ɱ8߸W@P1voP Owb R菴 OwbP RA@(#)touchwin.c 5.1 (Berkeley) 6/7/85>$Header:touchwin.c 12.0$@,@0@4@ h'$</E:>F.oVncs.oVhc2.1n.oVO_touchwin_.touchwin_touchline_.touchlinetstp.o 597748574 0 10 100777 1184 ` h\Xnp R]0"Q "2 "B P  0 . 0 03 pRQ0 "] "cЍ "$84@(#)tstp.c 5.1 (Berkeley) 6/7/85$Header:tstp.c 12.0$ pp(p6 > H pR`jt`pp@(@,P0 P4 P8P<P@PDPHPLP h' H'{-3: ApIfQ.Z.`Lhqy]M.oVncs.oVhc2.1n.oVO_tstp_.tstp__tty_COLS_LINES_mvcur_.mvcur_endwin_.endwin__iob_fflush_.fflush_signal_.signal_sigblock_.sigblock_sigsetmask_.sigsetmask_kill_.kill__tty_ch_stty_.stty_curscr_wrefresh_.wrefreshunctrl.o 597748584 0 10 100777 2235 ` @0(@(#)unctrl.c 5.1 (Berkeley) 6/7/85@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,048<$Header:unctrl.c 12.0$^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^~^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^?@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @$@ h'.(#.oVncs.oVhc2.1n.oVO__unctrl #] hloIn |#v#x#x^/! __.SYMDEF 597788029 0 10 100666 5216 ` 'L.L8L=LFLPWafkq4x4444!!!!!!!$!,!2!9!B!L!T!]1d1n1s1|111111111G*G*G*G*G*G*G*G* G*G*G*&G*,G*6G*>G*FG*LG*PG*TG*XG*\G*`G*dG*hG*lG*pG*tG*xG*|G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G*G* G*G*G*G*G* G*$G*(G*,G*0G*4G*8G*<G*@G*DG*HG*LG*PG*TG*XG*\G*`G*dG*hG*lG*pG*tG*xG*|G*G*G*G*G*G*G*G*G*G*G*G*NNNNN PPP P+P7S>SHSMSUS^VeVoVtV|VYxYxYxYxYx[~[~[~[~[~]4]4]4]4]4ababababab'cL.cL8cL=cLDcLLdSd]dbdod}flflflflfll:l:l:l:l:o6o6o6o6o6r<r< r<r<r<%s,s6s;sBsJuQu[u`ujuuuuxhxhxhxhxhxhxh{<{<{<{<{<~R~R~R~R ~R~R~R'~R5~RD~RO~R[blqz +2<AGQ\(c(m(r(y(((((lllll    , 7 CB JB TB YB cB nB yB .oVncs.oVhc2.1n.oVO_waddch_.waddch.oVncs.oVhc2.1n.oVO_waddstr_.waddstr.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_wclear_.wclear.oVncs.oVhc2.1n.oVO_wclrtobot_.wclrtobot.oVncs.oVhc2.1n.oVO_wclrtoeol_.wclrtoeol.oVncs.oVhc2.1n.oVO__win_mvcur_.mvcur_fgoto_.fgoto_plod_.plod_plodput_.plodput_tabcol_.tabcol.oVncs.oVhc2.1n.oVO__tspace_ospeed_gettmode_.gettmode_setterm_.setterm_zap_.zap_getcap_.getcap.oVncs.oVhc2.1n.oVO__echoit__rawmode_My_term__endwin_ttytype_Def_term__tty_ch_LINES_COLS__res_flg_stdscr_curscr__tty_AM_BS_CA_DA_DB_EO_HC_HZ_IN_MI_MS_NC_NS_OS_UL_XB_XN_XT_XS_XX_AL_BC_BT_CD_CE_CL_CM_CR_CS_DC_DL_DM_DO_ED_EI_K0_K1_K2_K3_K4_K5_K6_K7_K8_K9_HO_IC_IM_IP_KD_KE_KH_KL_KR_KS_KU_LL_MA_ND_NL_RC_SC_SE_SF_SO_SR_TA_TE_TI_UC_UE_UP_US_VB_VS_VE_AL_PARM_DL_PARM_UP_PARM_DOWN_PARM_LEFT_PARM_RIGHT_PARM_PC_GT_NONL_UPPERCASE_normtty__pfast.oVncs.oVhc2.1n.oVO_wdelch_.wdelch.oVncs.oVhc2.1n.oVO_wdeleteln_.wdeleteln.oVncs.oVhc2.1n.oVO_delwin_.delwin.oVncs.oVhc2.1n.oVO_endwin_.endwin.oVncs.oVhc2.1n.oVO_werase_.werase.oVncs.oVhc2.1n.oVO_fullname_.fullname.oVncs.oVhc2.1n.oVO_wgetch_.wgetch.oVncs.oVhc2.1n.oVO_wgetstr_.wgetstr.oVncs.oVhc2.1n.oVO_idlok_.idlok.oVncs.oVhc2.1n.oVO__id_subwins_._id_subwins.oVncs.oVhc2.1n.oVO_initscr_.initscr.oVncs.oVhc2.1n.oVO_winsch_.winsch.oVncs.oVhc2.1n.oVO_winsertln_.winsertln.oVncs.oVhc2.1n.oVO_longname_.longname.oVncs.oVhc2.1n.oVO_wmove_.wmove.oVncs.oVhc2.1n.oVO_mvprintw_.mvprintw_mvwprintw_.mvwprintw.oVncs.oVhc2.1n.oVO_mvscanw_.mvscanw_mvwscanw_.mvwscanw.oVncs.oVhc2.1n.oVO_mvwin_.mvwin.oVncs.oVhc2.1n.oVO_newwin_.newwin_subwin_.subwin__set_subwin__._set_subwin___swflags__._swflags_.oVncs.oVhc2.1n.oVO_overlay_.overlay.oVncs.oVhc2.1n.oVO_overwrite_.overwrite.oVncs.oVhc2.1n.oVO_printw_.printw__sprintw_._sprintw_wprintw_.wprintw.oVncs.oVhc2.1n.oVO__putchar_._putchar.oVncs.oVhc2.1n.oVO__win_wrefresh_.wrefresh.oVncs.oVhc2.1n.oVO_scanw_.scanw__sscans_._sscans_wscanw_.wscanw.oVncs.oVhc2.1n.oVO_scroll_.scroll.oVncs.oVhc2.1n.oVO_touchoverlap_.touchoverlap.oVncs.oVhc2.1n.oVO_wstandout_.wstandout_wstandend_.wstandend.oVncs.oVhc2.1n.oVO_touchwin_.touchwin_touchline_.touchline.oVncs.oVhc2.1n.oVO_tstp_.tstp.oVncs.oVhc2.1n.oVO__unctrladdch.o 597748120 0 10 100777 876 ` `08١n`j ųPQ; .34P?? DB m b0   ɡ< !ɡ pP`X| p&p"p`p`Z pf"pt!p)p`)p``p>*p\l+px` p p  p$ *,> @(@0@4@<P@PDPHPL@P@X@`@d@h@ h'f  'p/6O=8EKRKV^dbTfpwY:CvO/$dV[^SD`\U e] :'.oVncs.oVhc2.1n.oVO__win_mvcur_.mvcurmcount_fgoto_.fgoto_COLSldiv$$_AM__pfast_NL_CR__putchar_tputs_.tputs_._putchar_LINES_CA_UP_CM_tgoto_.tgoto_strlen_.strlen_plod_.plod_plodput_.plodput_HO_GT_BS_BC_LL_NONL_NC_BT_tabcol_.tabcol_TA_curscr_NDlmul$$ cr_tty.o 597748216 0 10 100777 5369 ` \ٱn`p,cЍ ɱ8p,cЍR ذȻ0 p,cЍ p " A R=0;## #" p,cЍ ɱ8߸qn`h @ȎؠȪȺbc4!  ^4 5Z  "d0th3@8 p, !0,p 0 .<0,p=% 0 0 .<0-c 4 P0 1ʍ@ "  "  "   " "p$0 " "p(0030 "p,00 "p00 " ZsJr:pwp'D@O0פp* @`1bcHc b@1L1 bqP!qPp,$xٱn`TbЍp<#Đ@ Ⱦ0bcЍp<0#Đ@  " ɱ8. 00 . p  " 0- "/ɱ8ɱ8߸n`03, @(#)cr_tty.c 5.2 (Berkeley) 11/8/85xxxx|dumb:lico0*ambsdadbeohchzinmimsncnsosulxbxnxtxsxxalbcbtcdceclcmcrcsdcdldmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullmandnlpcrcscsesfsosrtatetiucueupusvbvsveALDLUPDOLERIsgug*$Header:cr_tty.c 12.0$ XYpZp$\>\J]pV_|`papbp_X`fYp.h>ipPjpjllTpp?p>p ppNpp Op p*0p61pN$pbappp|ppqpqprptupw ipjp6XDyd`n{p@pBplBplJpJpHp@pBp6X<`B{@(P,P0P4P8P<P@ PD PH PL PP PTPXP\P`PdPhPlPpPtPxP|PPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;P P?P @P$AP(BP,CP0DP4EP8FP<GP@HPDIPHJPLKPPLPTMPXNP\OP`PPdQPhRPlSPt@|[P^P@ePgPkP@oPsPvP@xPzP@ h'KS"E&F*U.O2f6\:_>iB[FkJmNrRnVzZ^bfJjCnTrGvHzN~PXVWQRcZhBDMIj`LY{dta^ogsbeupy]}l ~wqx"&v*.26:>|BFOXaSlwU{ M j\%-4:CM0R*X/_gkoyw8*.oVncs.oVhc2.1n.oVO_AM_BS_DA_DB_EO_HC_HZ_IN_MI_MS_NC_NS_OS_UL_XB_XN_XT_XS_XX_AL_BC_BT_CD_CE_CL_CM_CR_CS_DC_DL_DM_DO_ED_EI_K0_K1_K2_K3_K4_K5_K6_K7_K8_K9_HO_IC_IM_IP_KD_KE_KH_KL_KR_KS_KU_LL_MA_ND_NL_RC_SC_SE_SF_SO_SR_TA_TE_TI_UC_UE_UP_US_VB_VS_VE_AL_PARM_DL_PARM_UP_PARM_DOWN_PARM_LEFT_PARM_RIGHT_PARM__tspace_ospeed_gettmode_.gettmodemcount__tty_ch__tty_gtty_.gtty__res_flg_stty_.stty_UPPERCASE_GT_NONL_setterm_.setterm_tgetent_.tgetent_ioctl_.ioctl_LINES_COLS_tgetnum_.tgetnum_zap_.zap_tgoto_.tgoto_CA_PC_longname_.longname_ttytype_strncpy_.strncpy_tgetflag_.tgetflag_tgetstr_.tgetstr_getcap_.getcap curses.o 597748230 0 10 100777 1931 ` \<@(#)curses.c 5.2 (Berkeley) 11/8/85T$Header:curses.c 12.0$unknown@,@ h'(#M)-)*62+?2H,R0[bh rn4z8{KSCEFUOf\_i[kmrnzJDTGHNPXVWQRc ZhBLM I$j(`,a0Y4{8d<t@uDH^LoPgTsXb\e`~dphylp]t}xl|wqxv|S.oVncs.oVhc2.1n.oVO__echoit__rawmode_My_term__endwin_ttytype_Def_term__tty_ch_LINES_COLS__res_flg_stdscr_curscr__tty_AM_BS_CA_DA_DB_EO_HC_HZ_IN_MI_MS_NC_NS_OS_UL_XB_XN_XT_XS_XX_AL_BC_BT_CD_CE_CL_CM_CR_CS_DC_DL_DM_DO_ED_EI_K0_K1_K2_K3_K4_K5_K6_K7_K8_K9_HO_IC_IM_IP_KD_KE_KH_KL_KR_KS_KU_LL_MA_ND_NL_RC_SC_SE_SF_SO_SR_TA_TE_TI_UC_UE_UP_US_VB_VS_VE_AL_PARM_DL_PARM_UP_PARM_DOWN_PARM_LEFT_PARM_RIGHT_PARM_PC_GT_NONL_UPPERCASE_normtty__pfast delch.o 597748240 0 10 100777 425 ` lL`n`P22ucSp3dAQo?e0@Qo0  SQBP2P!,? @(#)delch.c 5.1 (Berkeley) 6/7/85$Header:delch.c 12.0$ J@(@0P h'"+2E=I.oVncs.oVhc2.1n.oVO_wdelch_.wdelchmcount_touchline_.touchline deleteln.o 597748252 0 10 100777 681 ` \((ٱn`k P`Ъu;bR p’%y `Ъbq 0`ЪcSKq#p3S PbcФ@ R u; y bӉ0ªbpS b   ```S P;Pb@ y b!ɱ8߸@(#)deleteln.c 5.1 (Berkeley) 6/7/85$Header:deleteln.c 12.0$ FZ @,@4P8P< P h'%*18?UGER^ky.oVncs.oVhc2.1n.oVO_wdeleteln_.wdeletelnmcount_bcopy_.bcopy_touchline_.touchline__id_subwins_._id_subwins delwin.o 597748262 0 10 100777 535 ` P`0 n`m y 1R u-p" R b"u bp" v-w-x-- x b-```x-c x cx ```8#u-bЍ4 @(#)delwin.c 5.1 (Berkeley) 6/7/85$Header:delwin.c 12.0$ (HR@(@0P4@ h'"+2y8?.oVncs.oVhc2.1n.oVO_delwin_.delwinmcount_free_.free endwin.o 597748271 0 10 100777 810 ` Pp n` "03"# " "0d "0d p- V  "0d p-V&44 @(#)endwin.c 5.1 (Berkeley) 6/7/85$Header:endwin.c 12.0$ pp$p* 4 p< pFPpZdpzpp@(@0 P4 P h'f".+2 <{BKQMXm\fmYuiyg2.oVncs.oVhc2.1n.oVO_endwin_.endwinmcount__res_flg__tty__tty_ch_stty_.stty_VE__putchar_tputs_.tputs_TE_curscr_SE__endwinerase.o 597748282 0 10 100777 457 ` L`ٱn`k R .@c2u bS p"eo @ mdB  u bpR]bcR Ԥ ! ɱ8߸@(#)erase.c 5.1 (Berkeley) 6/7/85$Header:erase.c 12.0$ d@(@0P h'9"c+2E=I.oVncs.oVhc2.1n.oVO_werase_.werasemcount_touchline_.touchline fullname.o 597748291 0 10 100777 378 ` tPHn`@C@ %: "e0 : | !Q@ : |E@|!@ :b0,! @(#)fullname.c 5.1 (Berkeley) 6/7/85$Header:fullname.c 12.0$ @,@ h'$/6.oVncs.oVhc2.1n.oVO_fullname_.fullnamemcountgetch.o 597748300 0 10 100777 1010 ` 8X0١n`j V  S Q  R P  ɡ<@  "@03R" " Ű "p 0q2@Ñ1 12 @ T P:p-0U QJ@ p-cbc 03R" "bɡ<ߨx@(#)getch.c 5.3 (Berkeley) 4/16/86$Header:getch.c 12.0$ JpXpfpx p~ pppp p @(@0 P4 P8P<P h' `"J+2;ME{KTZMa.gpzOx@.oVncs.oVhc2.1n.oVO_wgetch_.wgetchmcount__echoit__rawmode__tty__tty_ch_stty_.stty__iob__filbuf_._filbuf_curscr_wmove_.wmove_waddch_.waddchgetstr.o 597748310 0 10 100777 429 ` lL`n`l m0-  b-    4 !4! @(#)getstr.c 5.1 (Berkeley) 6/7/85$Header:getstr.c 12.0$ ,@(@0P h'l#^-4 <JE.oVncs.oVhc2.1n.oVO_wgetstr_.wgetstrmcount_wgetch_.wgetch idlok.o 597748321 0 10 100777 308 ` <HHn` V &,V &,! l@(#)idlok.c 5.1 (Berkeley) 6/7/85$Header:idlok.c 12.0$ @(@ h'Md!)0.oVncs.oVhc2.1n.oVO_idlok_.idlokmcountid_subwins.o 597748330 0 10 100777 372 ` hPHn`PT2dxRR RT5`P4?nuopWmn0uo0ߐ1R? xUR0 @(#)id_subwins.c 5.1 (Berkeley) 6/7/85$Header:id_subwins.c 12.0$ @,@ h''5<.oVncs.oVhc2.1n.oVO__id_subwins_._id_subwinsmcountinitscr.o 597748340 0 10 100777 1425 ` LpPٱn` " "( 0-,  p-!0-, .  " "0dЍ "0dЍ 03 $p- (ذȻp+p<@P,0-  ɱ8V &p- (p T`npt ~ppppppp p"2@(@8P< P@ PDPHPLPPPTP h't#z-4)=GPZc3kt~`(mY{V n.oVncs.oVhc2.1n.oVO_initscr_.initscrmcount_My_term_Def_term_setterm_.setterm__tty_ch_isatty_.isatty_gettmode_.gettmode_getenv_.getenv_TI__putchar_tputs_.tputs_VS_tstp_signal_.signal_curscr_delwin_.delwin_LINES_COLS_newwin_.newwin_stdscr insch.o 597748353 0 10 100777 704 ` T0(n`m P-"u bQ p"cS eQ%d S@Ae S AS QMP=PbЍ "P=0!"u b "b   bЍ bЍP  !0 0%!  @(#)insch.c 5.1 (Berkeley) 6/7/85$Header:insch.c 12.0$ NXpt p @(@0P4 P8 P h'"+2E=IPV`ks|.oVncs.oVhc2.1n.oVO_winsch_.winschmcount_touchline_.touchline_LINES_COLS_wrefresh_.wrefresh_scroll_.scrollinsertln.o 597748363 0 10 100777 713 ` \((ٱn`k y[PhRK`@u;bP &P `Ъb0`ЪcSK#p3S PbcФ@ u;y[P ܔP`Ъb0`ЪbpS b   ```S PbcФ@ y  bɱ8ɱ8u;RK߸4@(#)insertln.c 5.1 (Berkeley) 6/7/85$Header:insertln.c 12.0$ Th @,@4P8P< P h' %X18?UGER^ky.oVncs.oVhc2.1n.oVO_winsertln_.winsertlnmcount_bcopy_.bcopy_touchline_.touchline__id_subwins_._id_subwins longname.o 597748372 0 10 100777 390 ` PHn`@ : | !@ : ||!d0@ : | !A@ : |b0,! @(#)longname.c 5.1 (Berkeley) 6/7/85$Header:longname.c 12.0$ @,@ h'$/6.oVncs.oVhc2.1n.oVO_longname_.longnamemcountmove.o 597748382 0 10 100777 332 ` THHn`@ 0 ,S@R0  ,!B 2!,1 @(#)move.c 5.2 (Berkeley) 10/8/85$Header:move.c 12.0$ @(@ h'|!O)0.oVncs.oVhc2.1n.oVO_wmove_.wmovemcountmvprintw.o 597748391 0 10 100777 677 ` `8(n8!91:A;Q`8!o 91`0:A;Qp-cd! z1p-A,  0A n819A:Q`7!819A:Q! z1w!A, ,A @(#)mvprintw.c 5.1 (Berkeley) 6/7/85b$Header:mvprintw.c 12.0$&p2F t @,@4P8 P<@ h'M$/6n>EOMWbmby.oVncs.oVhc2.1n.oVO_mvprintw_.mvprintwmcount_stdscr_wmove_.wmove__sprintw_._sprintw_mvwprintw_.mvwprintw mvscanw.o 597748401 0 10 100777 663 ` X8(n8!91:A;Q`8!o 91`0:A;Qp-cd! z1p-A,  0A n819A:Q`7!819A:Q! z1w!A, ,A @(#)mvscanw.c 5.1 (Berkeley) 6/7/85b$Header:mvscanw.c 12.0$&p2F t @(@0P4 P8@ h'#-4n<COKT^/hObs.oVncs.oVhc2.1n.oVO_mvscanw_.mvscanwmcount_stdscr_wmove_.wmove__sscans_._sscans_mvwscanw_.mvwscanw mvwin.o 597748411 0 10 100777 730 ` T8(١n`j RZ`S S m ɡ 8   >Tpnpzppp@(@0@4P8 P<@D@H@P@X@\@ h'"V+29?GsPyV]$en0|,ED2JP.oVncs.oVhc2.1n.oVO_newwin_.newwinmcount_LINES_COLS_malloc_.malloc_free_.free_subwin_.subwin__set_subwin__._set_subwin___swflags__._swflags__AL_DLoverlay.o 597748440 0 10 100777 883 ` `\00an`g h0TTǴjjUXUkkPR',1!R85# 11S' 2!S85# 21q!xr! a Xr!i fq!b. dEƪu'b,p"b֪uc pcdUXdEr!Rbc` aq!8GbFUXUĉֱӲʲq!6b"ubUp2r! b#0!U fp!b@ "bAbcd @6bap!b 㐡q! a Xĉh!@(#)overlay.c 5.2 (Berkeley) 2/12/86$Header:overlay.c 12.0$   p *@,@4P8P< P@ P h'#-4;UCENZcjOrxz@.oVncs.oVhc2.1n.oVO_overlay_.overlaymcount_bcopy_.bcopy_touchline_.touchline__ctype__wmove_.wmove_waddch_.waddch overwrite.o 597748454 0 10 100777 590 ` Xx qn`g h0T8T'#j j0UXUmmPRGkBRHE k@SGlSHE l@- qHi❴" dE*"uWbRp"b:2ucpcdUXdE\bc qHUXUT8T'x!@(#)overwrite.c 5.1 (Berkeley) 6/7/85$Header:overwrite.c 12.0$  @,@4P8P h'o%18?UGER^.oVncs.oVhc2.1n.oVO_overwrite_.overwritemcount_bcopy_.bcopy_touchline_.touchlineprintw.o 597748464 0 10 100777 915 ` ,h8@n7!819A:Q`7!` 81 "A c),A n7!819A:Q`7!819AA$ ,A ٱn`l Bmȱb0c@d!! !!!! "  !!! ! c bcЍɱL߸1@|@(#)printw.c 5.1 (Berkeley) 6/7/85hD~$Header:printw.c 12.0$ pX @(@0@4@<@D PH PLP h')T"S+2n:hD~OW`XDb~kuf~.oVncs.oVhc2.1n.oVO_printw_.printwmcount_stdscr__sprintw_._sprintw_wprintw_.wprintw__doprnt_._doprnt__flsbuf_._flsbuf_waddstr_.waddstr putchar.o 597748474 0 10 100777 499 ` Ll n`"@Du41 54v4#164,$ 3x0v4#* 164,4,4, @(#)putchar.c 5.1 (Berkeley) 6/7/85$Header:putchar.c 12.0$ pdz@(@0P h'$:/6.<fEO.oVncs.oVhc2.1n.oVO__putchar_._putcharmcount__iob__flsbuf_._flsbuf refresh.o 597748496 0 10 100777 3277 ` pفn`m ذȻ@  "0d "0dؠȪpJPذȻt Q! ԏ! +  +V  ! "@D0 !D  p*ޒ ! bЍޝ " Q *D+ p* R=;lv b P .bc bɁDv b W P20 S= W w-d,S-P4 2 w d P4v b P0` R= pJQ;P+Q]PMj4   $!4TMB KU ! 0$ R  0 S 0 -!=! T PM@U Q]P?T PM@p* BU Q]P!Rݞ  bɁDR=߈an`g 3311vbWGPS' !a\wcP!a\ s1Td1tD ȞB03u3c4pCU7;i4s12uGcCp3h;@D@ j2@*   @* ```:01j@@9@{UQ=P-e qAq Ue !]5@)@A> bp1 _ \P=U2 "u"b2p2 "j#@*  @* ```p1:21 " r12 -S* "@D0U !  0 9+*```!a\ " ,@P`fp6VP @DP 0p&V& "0p&V&S' k hR'!s12c' Sp,V V  "  "@D0p,V&D-@    V D p,PT' Q'U! !a\V'" ! a\D-@`f    p @ (p&@D0䑁@)@ JQ=Ue 5 pR p^ tp|  ppp p , n!p p p"p#p~ ppp p %@,@4 P8P<P@ PD@H@LPP@\P`Pd@l$P h'f *5<2E{ISZYbmfnNr9zc<C:.LG$qgijKz  p.oVncs.oVhc2.1n.oVO__win_wrefresh_.wrefreshmcount__endwin_VS__putchar_tputs_.tputs_TI_curscr_CL_werase_.werase_touchwin_.touchwin_CA_._putchar__iob_fflush_.fflush_CE_COLS_strlen_.strlen_SO_SE_MS_scroll_.scroll_UC_AM_XN_mvcur_.mvcur scanw.o 597748519 0 10 100777 835 ` h8@n7!819A:Q`7!` 81 "A c),A n7!819A:Q`7!819AA$ ,A ٱnP`k0l@A(12cЍ  ɱxbЍ 0!bcdɱx߸1,4@(#)scanw.c 5.1 (Berkeley) 6/7/85 D~$Header:scanw.c 12.0$ pX @(@0@4@<@D PH PLP h' !')0n8 A~K SD\le^o$w:.oVncs.oVhc2.1n.oVO_scanw_.scanwmcount_stdscr__sscans_._sscans_wscanw_.wscanw_wgetstr_.wgetstr_strlen_.strlen__doscan_._doscan scroll.o 597748528 0 10 100777 647 ` T8(ٱn`k  ɱ8QPˤ0@b bcdЍ03*030! ɱ8ɱ8߸@(#)scroll.c 5.1 (Berkeley) 6/7/85$Header:scroll.c 12.0$ .8 FP p\ f p@(@0P4P8 P h'"+29OAL*X`j:u{.oVncs.oVhc2.1n.oVO_scroll_.scrollmcount_wmove_.wmove_wdeleteln_.wdeleteln_curscr__putchar_._putchar_NONL toucholap.o 597748538 0 10 100777 485 ` T`ّn`i0T TjjUIURTmPm@R2k?R94 k0S"l%S)$ l  ɑ@Ē bcde ɑ@ߘ!@(#)toucholap.c 5.1 (Berkeley) 6/7/85$Header:toucholap.c 12.0$ v@,@4P h'(R7>EIU.oVncs.oVhc2.1n.oVO_touchoverlap_.touchoverlapmcount_touchline_.touchline standout.o 597748549 0 10 100777 631 ` XHn`@D@ 030 ,V&@@Db@, n`030 030 ,V& "  ",, @(#)standout.c 5.1 (Berkeley) 6/7/85X$Header:standout.c 12.0$ pp@pdjpvp pp@,@4@ h'%18q<i@KvXWg[.oVncs.oVhc2.1n.oVO_wstandout_.wstandoutmcount_SO_UC_wstandend_.wstandend_SE touchwin.o 597748559 0 10 100777 513 ` \` ٱn`k RۤS Pbc@ ɱ8߸n`W@P1voP Owb R, OwbP R,,A @(#)touchwin.c 5.1 (Berkeley) 6/7/85D$Header:touchwin.c 12.0$ P@,@4@8@ h'$</6EADM.oVncs.oVhc2.1n.oVO_touchwin_.touchwinmcount_touchline_.touchline tstp.o 597748569 0 10 100777 1223 ` lhXn`p R]0"Q "2 "B P  0 . 0 03 pRQ0 "] "cЍ$ "(8@@(#)tstp.c 5.1 (Berkeley) 6/7/85$Header:tstp.c 12.0$ p"p.p< D N pXfpz`pp@(@0 P4 P8P<P@PDPHPLPPP h' H'.{4:A HpPfX.a.gLox]M.oVncs.oVhc2.1n.oVO_tstp_.tstpmcount__tty_COLS_LINES_mvcur_.mvcur_endwin_.endwin__iob_fflush_.fflush_signal_.signal_sigblock_.sigblock_sigsetmask_.sigsetmask_kill_.kill__tty_ch_stty_.stty_curscr_wrefresh_.wrefresh unctrl.o 597748580 0 10 100777 2235 ` @0(@(#)unctrl.c 5.1 (Berkeley) 6/7/85@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,048<$Header:unctrl.c 12.0$^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^~^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^?@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @$@ h'.(#.oVncs.oVhc2.1n.oVO__unctrl #] loI V#z#z#z>xnm . bФ2@. bФ0@.  0 0 n` d0.ؔ  .܍ ,c, nm `0e@>̔0.Ѝ2rsQ0 1]@bdpqQ0 1]@ne d0.Ĕ .ȍ ,r  ,cP, nl m0o@. . 0.2rsQ0 1]@bpqQ0 1]@nm `0e@>0.ؤ2rsQ0 1]@bdpqQ0 1]@@(#)dbm.c 5.3 (Berkeley) 85/08/15dbm: no open database hn2$Header:dbm.c 12.0$"8  ( V  N p"@D@HPLPP@T PX P\@`Pd@hPl@pPt@xP|@!P h' #-8DNnYa~hjrB{* y?n/  -5-< Eu2O\j.oVncs.oVhc2.1n.oVO_dbminit_.dbminit_dbm_close_.dbm_close_dbm_open_.dbm_open_forder_.forder_printf_.printf_dbm_forder_.dbm_forder_fetch_.fetch_dbm_fetch_.dbm_fetch_delete_.delete_dbm_delete_.dbm_delete_store_.store_dbm_store_.dbm_store_firstkey_.firstkey_dbm_firstkey_.dbm_firstkey_nextkey_.nextkey_dbm_nextkey_.dbm_nextkey#] loIՕ I#|#|#|n`m . bФ2@ . bФ0@ .  0 0 n`` d0.Ԕ  .؍ ,c , n`m `0e@>Ĕ0.ȍ2rsQ0 1]@bdpqQ0 1]@n`e d0. . ,r  ,cP, n`l m0o@. . 0.Ԥ2rsQ0 1]@bpqQ0 1]@n`m `0e@>0.Ȥ2rsQ0 1]@bdpqQ0 1]@\@(#)dbm.c 5.3 (Berkeley) 85/08/15dbm: no open database n V$Header:dbm.c 12.0$  (>z  , @n   6$b x(@D@L PP PT@\P`Pd@lPp@xP|@P@#P@'P !(/h9'> GQXcoyn~nB* ,  y8?/)5 D?-J5XgPpuVzdbm.o_rcsid_sccsid_cur_db_no_db.oVncs.oVhc2.1n.oVO_dbminit_.dbminitmcount_dbm_close_.dbm_close_dbm_open_.dbm_open_forder_.forder_printf_.printf_dbm_forder_.dbm_forder_fetch_.fetch_dbm_fetch_.dbm_fetch_delete_.delete_dbm_delete_.dbm_delete_store_.store_dbm_store_.dbm_store_firstkey_.firstkey_dbm_firstkey_.dbm_firstkey_nextkey_.nextkey_dbm_nextkey_.dbm_nextkey#] ln)  ###(8HX)`! __.SYMDEF 597788051 0 10 100666 8096 ` %5DTbq(=Qfw;;;;; ;lXlX'lX,lX;lXFlXUlXelXwlXlXlXlXlXlXlXlXlX lXlX)lX5lXBlXPlX_lXllXzlXlXlXlXlXlXlXlXlX lXlX-lX>lXMlX]lXllX|lXffffffff fff#f+f4f<fEfMfVf^fgfofxffffddddd(((( (('(6(G(Y(i(z((((((((( ((!(.(=(M(ZXaXkXpXyXXXX            ! + 4 > H S ] h q {      0000000000 0 0 0 0 '0 00 80 A0 J0 T0 \0 e0 m0 v0 0 0 0                 # - 6 @ H Q Z d l u ~                 2* 2* )2* .2* 62* ?2* H2* R2* Z2* c2* l2* v2* ~2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* 2* *2* 22* ;2* C2* L2* U2* _2* g2* pK wK K K K K K K K K K K K K K K K K K K "K +K 4K >K FK OK WK `K iK sK {K K K K K K K K K m| m| m| m| m| m|m| m|m|m|%m|.m|6m|?m|Hm|Rm|Zm|cm|lm|vm|m| &/8BKU\fks|"*3<FOYcnw~~~~~&05CR܂Y܂c܂h܂r܂}hhh<<<.oVncs.oVhc2.1n.oVO__emul_op2freg_._emul_op2freg__emul_monadic_._emul_monadic__emul_dyadic_._emul_dyadic__emul_moveop_._emul_moveop__emul_compare_._emul_compare__emul_ldm_stm_._emul_ldm_stm__emul_set_round_._emul_set_round__emul_test_round_._emul_test_round__emul_set_clr_flag_._emul_set_clr_flag__emul_set_clr_trap_._emul_set_clr_trap__emul_test_flag_._emul_test_flag__emul_test_trap_._emul_test_trap__emul_init_mach_._emul_init_mach__emulrtnes.oVncs.oVhc2.1n.oVO__f881_prec_._f881_prec__f881rtnes.oVncs.oVhc2.1n.oVO__fpas_ops_tbl__fromprec__fpa1_storelo_._fpa1_storelo__fpa1_freg2seven_._fpa1_freg2seven__fpa1_seven2freg_._fpa1_seven2freg__fpa1_op2freg_._fpa1_op2freg__fpa1_freg2op_._fpa1_freg2op__fpa1_monadic_._fpa1_monadic__fpa1_dyadic_._fpa1_dyadic__fpa1_move_._fpa1_move__fpa1_storem_._fpa1_storem__fpa1_loadm_._fpa1_loadm__fpa1_setround_._fpa1_setround__fpa1_testround_._fpa1_testround__fpa1_setflag_._fpa1_setflag__fpa1_testflag_._fpa1_testflag__fpa1_settrap_._fpa1_settrap__fpa1_testtrap_._fpa1_testtrap__fpa1_clrflag_._fpa1_clrflag__fpa1_clrtrap_._fpa1_clrtrap__fpa1rtnes.oVncs.oVhc2.1n.oVO__fpas_prec_._fpas_prec__fpas_freg2freg_._fpas_freg2freg__fpa2rtnes.oVncs.oVhc2.1n.oVO__fpfpx_._fpfpx.oVncs.oVhc2.1n.oVO__FPAwl_._FPAwl__FPArl_._FPArl__FPAws_._FPAws__FPArs_._FPArs__FPAir_._FPAir__FPAgets_._FPAgets__FPAputs_._FPAputs.oVncs.oVhc2.1n.oVO_fpgen_.fpgen.oVncs.oVhc2.1n.oVO__opinfo.oVncs.oVhc2.1n.oVO__fp_get_genr_._fp_get_genr__fp_get_fltr_._fp_get_fltr__fp_ea_addrtype_._fp_ea_addrtype__fp_inst_store_._fp_inst_store__fp_new_inst_store_._fp_new_inst_store__fp_inst_load_._fp_inst_load__fp_new_inst_load_._fp_new_inst_load__fp_load_._fp_load__fp_store_._fp_store__fp_getimm_._fp_getimm__fp_opnd2greg_._fp_opnd2greg__num_1s_tbl.oVncs.oVhc2.1n.oVO__fpfprX_findfpm_.findfpm_iskernel_.iskernel.oVncs.oVhc2.1n.oVO_FLT_NaN_DBL_NaN_set_stat_.set_stat_SetException_.SetException_SetOperation_.SetOperation_SetData_.SetData_FPround_.FPround__FPgetst_._FPgetst__FPsetst_._FPsetst_FPdovfl_.FPdovfl_FPfovfl_.FPfovfl_FPdunfl_.FPdunfl_FPfunfl_.FPfunfl.oVncs.oVhc2.1n.oVO__FPrdf_._FPrdf__Erdfa_._Erdfa__FPrdd_._FPrdd__Erdda_._Erdda__FPi2f_._FPi2f__FPi2d_._FPi2d__FPcpf_._FPcpf__FPcpfi_._FPcpfi__Ecpfa_._Ecpfa__FPcpd_._FPcpd__FPcpdi_._FPcpdi__Ecpda_._Ecpda.oVncs.oVhc2.1n.oVO__FPngf_._FPngf__FPngd_._FPngd__FPngfi_._FPngfi__FPngdi_._FPngdi__FPabf_._FPabf__FPabd_._FPabd__FPabfi_._FPabfi__FPabdi_._FPabdi__FPf2d_._FPf2d__FPf2di_._FPf2di__Ef2da_._Ef2da__FPf2d2_._FPf2d2__FPd2f_._FPd2f__FPd2fi_._FPd2fi__Ed2fa_._Ed2fa__FPd2f2_._FPd2f2__FPntf_._FPntf__FPntfi_._FPntfi__FPntd_._FPntd__FPntdi_._FPntdi.oVncs.oVhc2.1n.oVO__FPrnf_._FPrnf__FPrnfi_._FPrnfi__FPtrf_._FPtrf__FPtrfi_._FPtrfi__FPflf_._FPflf__FPflfi_._FPflfi__FPrnd_._FPrnd__FPrndi_._FPrndi__FPtrd_._FPtrd__FPtrdi_._FPtrdi__FPfld_._FPfld__FPfldi_._FPfldi__FPcmf_._FPcmf__FPcmfi_._FPcmfi__Ecmfa_._Ecmfa__FPcmd_._FPcmd__FPcmdi_._FPcmdi__Ecmda_._Ecmda.oVncs.oVhc2.1n.oVO__fADDSUB_._fADDSUB__dADDSUB_._dADDSUB__FPadf_._FPadf__FPadfi_._FPadfi__Eadfa_._Eadfa__FPadd_._FPadd__FPaddi_._FPaddi__Eadda_._Eadda__FPsbf_._FPsbf__FPsbfi_._FPsbfi__Esbfa_._Esbfa__FPsbd_._FPsbd__FPsbdi_._FPsbdi__Esbda_._Esbda__FPadd3_._FPadd3__FPsbd3_._FPsbd3__FPadf3_._FPadf3__FPsbf3_._FPsbf3.oVncs.oVhc2.1n.oVO_dFPMULT_.dFPMULT__FPmlf_._FPmlf__FPmlfi_._FPmlfi__Emlfa_._Emlfa__FPmld_._FPmld__FPmldi_._FPmldi__Emlda_._Emlda__FPmlf3_._FPmlf3__FPmld3_._FPmld3.oVncs.oVhc2.1n.oVO__fFPDIV_._fFPDIV__dFPDIV_._dFPDIV__FPdvf_._FPdvf__FPdvfi_._FPdvfi__Edvfa_._Edvfa__FPdvd_._FPdvd__FPdvdi_._FPdvdi__Edvda_._Edvda__FPdvd3_._FPdvd3__FPdvf3_._FPdvf3.oVncs.oVhc2.1n.oVO__FPsqf_._FPsqf__FPsqd_._FPsqd__FPsqfi_._FPsqfi__Esqfa_._Esqfa__FPsqdi_._FPsqdi__Esqda_._Esqda.oVncs.oVhc2.1n.oVO__FPrmf_._FPrmf__dFPREM_._dFPREM__FPrmfi_._FPrmfi__FPrmd_._FPrmd__FPrmdi_._FPrmdi__Ebmodf_._Ebmodf__Ebmodfi_._Ebmodfi__Ebmodd_._Ebmodd__Ebmoddi_._Ebmoddi.oVncs_FPSETTB_.FPSETTB_FPCLRTB_.FPCLRTB.oVncs.oVhc2.1n.oVO__Ebscalbi_._Ebscalbi.oVncs.oVhc2.1n.oVO__FPemulate_._FPemulate.oVncs.oVhc2.1n.oVO_xFPexception_.xFPexception.oVncs.oVhc2.1n.oVO__FPscalb_._FPscalb.oVncs.oVhc2.1n.oVO__fpfpf.oVncs_fpgetpid_.fpgetpid.oVncs_fpkill_.fpkillemulgen.o 597749050 0 10 100777 7105 ` Xفni@jP|BvDe0QpoL_ŵMX b"NP//2b2s""bsP Rb]p" b c3P??(&`cpqR01S`cp0 p2bp2b0cd ~bp2`b02Rc]pr1Rb]p2`bi02 Rb]p2b\Rb]p2bS2o2s_ResU`c0Ss_RpetC12b2s""bsb#b$70 2b2s""bs2b'2b2s""bs2b  eUP__r  0;  " ɁH bɁHbɁHɁH߈Aanf g01Q|&vҪQpbL021ŀMũH %bpbp  C bp l bpl r10|PqQRbVsp&bs bp20c hP0.sb}pqR01Sa Xsb}p0a X0a X0b`cdepDa Xsb}pc0qb0a Xsb}pb0a Xb0a Xr1 r1 r10 a Xa XhAn|"v"Դ5 SoR`0bpq_01R{@ B b0,b0,,Q anhl0|,v211p jG:1pФpkЪc LŐ`yBb`c`h  bi `q1cbpqS34Rbcde ,p b Mh %0abcdebi `q1cbpqS34Rp b MR0abcdg䔃 F b2bp F b2,bpbcdeps1 b  aLh!&anTk0p;|+v11G6щ3Ѥ3dA4AdCL@7A`sѪdL@2ApcL5yBb`cph v7wA bi `c bpqS89RbcdeDtAp bMh >0abcderA1p b M,+gu rA|p b Mb Mbi `c bpqS89RbcderAx bm `Ъc bpqS89Rbs1dep b MҴx 0qbcdeЍt̔q1FbBhbcp q1FbBbcpbcdP|1 b a`p b Mh!+antm0|-v¤p=LŰ2L`pyBbch x{ bЍk `c bpqS01Rbcdep-"Mbcde"cbЍ a@h!#anlk0p|;väL 0!ŀ*L 1!`yCbc`g p! bh `c bpqS23Rbcdepp+Mq!g bm `Ъc bpqS23Rb1depp b MF s bB`bcp bB bcp+@0 @ +@@0+@ 0+@0  1b baHh!%١nj k0|*v*, /ɡ<"` d c pqT01Scа2# , , * * + +*, ɡ<ߨ!فn|#p3vk0#M"" tC"bpj@M -b"F  ` d `c pqT0 1S`c ` d pqS01T`а Őפ ɁD߈!n|#vФb0c -" P//(8 @ @ @ @ @ @ @ @ 0! |CvDD@GD DTU ZPEE  #!"dЪApeLEMETRc0#cs32c?sCP Rcp34c@0#0 !`0pRdLM@ BbO#pª2b2sbs@ BbOp" bpª2b2sb s 0 b!n|#vp#̤@F%b0c@ <= @0=@ <7 @0=@ <9 @0=@ <; @0=@ -@) @ 4! n|#vp#̤@F'b0c@X << @0=@ <6 @ 0=@ <8 @0=@ <: @0=@ -@* @ 4! C|#v"P@b-" ቀ n o m o n o o  ` oPpnLMc0RcSs32c=sS cp35cP0 0 !C|#v"P@b," ቀ n o m o n o o  ` oPpnLMc0RcSs32c=sS cp35cP0 0 !nm |=6# 0 $Header:emulgen.c 12.0$x<L8~v z P . F N,44,@0,@,dDLT\X`TXB``$6`v ` `*$&&$&&&$&V$n&& . >. ` N`Z@@PPPPPPP P P@ PH P\ P` PpPPPPP@PP@PP@P P@@#P%P @$@(@,@0@4@8@<-P@@D@H@L@P@T@X@\@`@d@h?Pl@t@@@@@@@@@@@@@@@@ @@@ h'"*42J::BZJTR^Zbj6rLz<\V`IJLu. L>yJ[W:et1,}~v0ve4@ 4D L,X .?TS% FhX| \ r`pdN; il.oVncs.oVhc2.1n.oVO__FPabd__FPadd__FPcmd__FPdvd__FPcpd__FPmld__FPngd__FPsbd__FPabf__FPadf__FPcmf__FPdvf__FPcpf__FPmlf__FPngf__FPsbf__emul_op2freg_._emul_op2freg__FPi2d_._FPi2d__FPi2f_._FPi2f__FPf2d_._FPf2d__FPd2f_._FPd2f__FPtrd_._FPtrd__FPtrf_._FPtrf__emul_monadic_._emul_monadic__fpas_prec_._fpas_prec__fp_get_fltr_._fp_get_fltr__emul_dyadic_._emul_dyadic__emul_moveop_._emul_moveop__emul_compare_._emul_compare_ffs_.ffs__emul_ldm_stm_._emul_ldm_stm__emul_set_round_._emul_set_round__emul_test_round_._emul_test_round__emul_set_clr_flag_._emul_set_clr_flag__emul_set_clr_trap_._emul_set_clr_trap__emul_test_flag_._emul_test_flag__emul_test_trap_._emul_test_trap__emul_init_mach_._emul_init_mach_findfpm_.findfpm__emulrtnes f881gen.o 597749050 0 10 100777 12346 ` ( 3 C |"y 鏤#鏤"ؤ rP2rS2D@`c C`c SbA١nj k0l@mP `Рc430Pcd`Ъb `Ъb cdbɡ<ߨQn`0o@0 "\P!,A qng h0i@jPbl bm bp|@b!b' `Ъ0pRP`b1.d``b t10 `b1.dcw!)* *s31sb0 $ $f609$ `bcDba0|h!an|f g0p'L081ŀM9N5x17w  ybpl p'F3w |'y  3bpu1d0Z3!s`bcp@?P@RbpŢܡ6bpŲu|'u ;<`b601cpAe|`bQ,00612cpAp'F2u|'u0{! <`d O@|e\TdIE2c>3ܪ2C b`b16deЍp'F2b0!#""! `bcw AҪ1`0 '$$һ;$|'ys3`bcp@?P@` Pm]`bcp@쉀b)6!|'u `b0cpdeᒔ  `bcdc ܡ6`b006114121cp@Q,|b,RU=v!RbP`b16d`b x10 `byA16ᒔ|'u `bA6cpe< '**Ҫt1:$07$һt1;$s `bcpwba8h!!anlg h0=p(L0:13M9N6bvAs1;!{ bpc@?P@i bŢܡFbŲz1< yfibl s>|(u :`bF01c@ez1`0b"8!0s("pbsRP `byA1FᒤfLiyFfDi`bQ<@0F12c@  0<c3b/#Q@cP<2fi6 Rb^ReS`b1Fd!@8!F7  =bŢܡFv)|(u %?b!@`ce F01b0cA)Q@ %**`bQ<@0F12cA4Q@  0<c3b/2bP,2651p(F""b."Ȫ"u1# Rc^eR`b1Fdp(Fb! ""! `bcM| @Ҫ1`0 ($$һ;$|(ys{;`bc@?P@Be\UV`bc@؉ 4!s|(u `b0cde:s s `bcdx!` ="b.RP`bw1d`b z10 `byAw1js|(u `bcwAe} ;w1b0 $$t!,**Ҫ`0 ($$һ;${ `bc0baHfiѤ1h!%anlf g0p'L0=13M;N50816"7!bpvAu1Zh  b`cp@?P@Ui bpŢܡFbpŲ}1< :x1w!{ :z bp܉l {bpl :u|'u `bF01cpAeVᒤb)B9!`bQ<@0F12cpAf1 <`b0/ Q@`P b)9!0 Rb^ReP`b1FdܡFv)|'u %?bp!@`ce F01b0cpBQ@ %**`bQ<@0F12cpBQ@bP,1 <`d0Oy!p'F""b.BĪB@0 Rb^eT`b1Fdp'Fb! ""! `bcz HҪ1`0 '$$һ;$|'ys `bcp@?P@ @`{ eYP`bcp@ᒰ* *| ?Ҫ1`0 '$$һ;$|'ys`bcp@?P@e\Uy!R`bcp@ԉs|'u `b0cpdes s `bcdܡF`b@0F114121cp@Q<1@`0 =y!2b>RP`b1Fd`b }10 `b{A1Fs|'u `bAFcpeeᒰ* *Ҫt1:$07$һt1;$ `bcpbaHh!%npCGԔ ,M,! npCGԔ ,K,! ang h0p(L`3ab|Ųb|` saaAp(O K" 1! mbm eЪY4Q@ 2A`b0drQlsaa|(u`b0cdeᒉ p(!1!p(OeЪY4QL02c>Cc@<33=tQ5BdNDxC2AM*`bcdeE``bcdrQl`b `bcdp'sbsRP `bcdū`bcdrQl`b saa|(u `bcdeq!  (**һ1`0 ($$<$ba`ep(bp(h!ang h0bxŢ/bxŲp(L3 M¤fdibl p(L|(u 01bpc@ei p(fAi`bQ012c@u  0<c3b/#vQcP<2fi6 Rb^RteS`b1dhp(/N'|(u #5b6!``e !0!1bcAfvQ %* (*`bQ012cArvQdPLu  0<c3b/#$&" Rc^teR`b1dh`b0cdeip(Fb$ c1c7 c1c7 c1c7 c4CK`b B`b |(u `b  Pb!b' |@<b!b' b!b' B b!b' @b!b' B b!b' b!b' Jqb!b' Bb!b'@ BKb!b' Bb!b'@ B#dAdG $dAdG ` dBT dAdG TSdAdG TdAdGP TS[dAdG T#" dAdG $dAdG  dAdG  b!g' s ,**Ҫ1`0 ($$һ;$ba lh!فnh i0p)MbɁDbpl bpm b"""` dbctj `bcdPU`p)tROBP `bcdp)F&' <@/ `bc@de``b 1`0 )$ $= $bɁD߈!١nj k0bll p+Mb0cdeЍ` dЪD$2b!b* 2$2b!b* 24=b!b* 2$2b!b* 2!,;$#+$bɡ@ߨ!فnh i0bhl bhm p)Mb0cdeЍdj `Ъ0=b!b( 2b!b(0 2dD$2b!b( 24;b!b( 2$2 b!b( 20;b!b( 2;`0b!b( 2b!b(cdФTT1`0 )$ $= $bɁH߈!فnh i0b`l p)FM&24`b01cdeᢪ=<`b 20;`b 2= 0`b 2`P;5`b 2M4`b 2;5`b 24 `b 2`b 4 `b 2 )$ $bɁH߈!anf g0bp\j bp\k bp\l p'FM% )1F1@m=9`b 2`b = 0`b 2`0S`b R TPb!b& RS b!b& RTPb!b& R3 b!b& 2F@`b B`bq0cpdep'F% ' b$ c1c6  c1c6 b$ c1c6  `b!b& b!b&cdqQ(ҪA`@ 7$$һc@;$L$aTh!nl m0pG_R 4L MO@ bcЍ?44! no e0pEL N ,bcP,! ؤ@0A|"y c ">02 "0Bp?0p0 @"02b@( $Header:f881gen.c 12.0$_handle_uint_arg: invalid type_handle_uint_res: invalid type%\" 88 #%&( j&$`&8Nv & &&&&& &&&&f&' J' '$& b&!j"t$6$'@% '('('d'('('('D'D'('('4'('('L'('('('h'd'('4'('4'('('('L'4'('('p'T'P'`'\'`'\'`'`$0D `HTh 6f    `Z`p $ 4 @ T  p 4  x  \ rp  j Bp(rrp\ tp ,r r ~!|"""%@&@&@&@&@&@&@&P&@&@&@&P& P&@&@&@&@&@& P&@&@&@& P&@&@&@&P&@'P'@'@' @'@'@'@'@' @'$@'(@',@'0@'4@'8@'<@'@@'D@'H@'L@'P@'T@'X@'\@'`@'d@'h@'l@'p@'t@'x@'|@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@'@(@(@(@( @(@(@(@(@ h'&&3_CTbfq}7:4_'t*.oVncs.oVhc2.1n.oVO__f881_prec_._f881_prec__fp_inst_store_._fp_inst_store__fp_get_genr_._fp_get_genr__fp_getimm_._fp_getimm__fp_load_._fp_load__fp_ea_addrtype_._fp_ea_addrtype__fp_new_inst_store_._fp_new_inst_store__opinfo__fp_get_fltr_._fp_get_fltr__num_1s_tbl__f881rtnesfpa1gen.o 597749049 0 10 100777 13009 ` % 0xqni j0k@lPb!p bLp b1!`Ъb A0ceҪ\PU`Ъb qAc Ҕp q $܊$bqPxAanh i02AjP@1A\0drQa\|)vp8bl bm \br!"bpb` p)K" jfb`jb0de`k b 1!jVqAA3ABTZb0dЍk sAj@jf`bcde``b0qcdPr!#!` b!b( @b!b( b!b(t0qcdP1`0 )$ $= $qA qA)* *ba\hQanf g0h@3Q4 bph 4|'v8bpj bpk `bsAȪBbp1q I``b\c@m PPU2Q`bcd`bc@eq `Ъ`bcdeЍD`bc@e`PPU2Q`bcdrQ` `bc@e`0;`b 2rQ54`b 2Ҫ1`0 '$$һ;$t `bsA0AcpeL'**ba`mlhQang h0i@jPb!pbL 1!Ű`bX"`bpb|(w` (bk 0bpcdem `Ъg0bpcde (*T*v8q! b2!`Ъba0cd`e`ЪbrA0cPҔ`Ъb0cd`e`ЪbrA0cPq! r!"($$ba Xbl q! b2!` 5 `Ъbcde(`ЪbA0ceҪj ``Ъbr1de҉D`Ъba0cd`eҪĪPê`Ъbr1deҔ;bЪ!b'0cd`er bЪ!b'  bЪ!b' b,$$q! r!"ܸ$ba X失hQanf g0h@4Qp'LM@2A@1ARc^Bcp|7w 'bpm tQ0Qb`cpdqQl `bcpdqQ '**v8rA@pqACaib`c@el ;`b@e쉀asbsbpi b`c@el `b0cpdeqAC`bc@e`b0cpdeҙ '$$b`c@e쉀l rA0 |3 ""pba`bpj 'p'K"  3bp3! s!!" `b0desĈÈrA@qACvc4`bde;43:`b 20@`b 2q1s'"pbsbpi `bcde`b0cpdeqAC!` b!b& @b!b& b!b&0cpdeҙ1b0)$ !'$`bcde‰1rA0 |7|3 ""p1$Ҫ:$ba`hAanj k0Ȑ74p+6!L0513v1G2sq ua2"L`p|+yBbpcpm u1p+cM*rb&Mrp+cM K" hbh  4bh 4|+w bh 7`b 0qcdeЍigд} "`b 01qcdeЍ`b 0crAed`i$v1Fb"Ӊ ``b c@eĉU”s `b crAe”` b8!`b A 0crQv1Fb"Ӊ i``b xAce”` x!"+$ $w `b 0csAe +*% *u1 `b cdeЍs `b 01cdsQt +* *ba$ph!anhi j0=@p:<1|!G;{4!9!4"9!t:bL`y!!5!b#L@2A@3AbL0>1?MD|*yBb`s1l ~1qD zp*b Mrbg =rAu!p b Mbh @|*w@w%bg ={ ~1-`b 0acdpef3hpbh @`b sA0Acde3{~1rA[Y|!F #sA@t923a4rAa~y!!p bMbh @bg = `b zp:cM01acdpe`b 0ctAepnf  `b 0ctAepm䉀`b zp:cM01acdpeᲤ4Ef @0`0p*K"8}5rA82 |!F `pghyt!49!``sa3`rщ2b7!=`b 0q1acwAewqfl M <|!F  07p*Kb6!=`b 0q1acvAeᲉ'vq`b 0q1acdperA3`b 0ctAepsAL ErA2p*K" `b 0sA1Acde,b8!@`b 0sA1AcxAeᲉx`b 0cyAe@2A  mrA `b 0cyAeiᲔc `b ctAepCᲔ b!H`b AH0ctQ|!Fb"b.2É! #*"2bp!"#eQVR_`b AHcᲔЎ!H"*$ $rA _sAC `b cyAerA@ b!H`b AH0cyQ|!F2`0b"É `p eQVR8_`b AHcrA@ 3!H"*$) $|!Fb"b.2É! #*2bp!"2eQVS_`b c@|!F sb!Hbm `b AHcP߸UAH`@04`b 2`b  H0 `b 2dЪD4`b 2`b  1H0`b 2=`b 2!H"1`0*$ $=D $|*w~1D`b 0cAep(܉)~1 `b cdpe2D `b 0q1cQAD} ' * **@ ** *baLh!&nm |=6#0 ١nk l0pL @N_MMPO 01쉀Gm M]0Amԉ;m  OM_.m bj p,LP0QbcAeJm `Ъk p,LPbcd ,* *bɡDߨ!anf g0p'M5O2t'D޴ 33bph bp1!PU`bq1@|'Ȱ w44t Bu 6`bcqAeЍ`b0cpdrQ`b]@cqA`b 0cpdrQsstq!"6'$$ |7w:u 6v8`bc@eЍ`b0cpdrQ`bc@eЍ`b0cpdrQ'$҈v$bahh!anf g0p'M5O2t'D޴ 33bph bp1!PPU`bq1@|'Ȱ w44t Au 6`bcrAe`b0cpdqQ`b\crA`b 0cpdqQssؠtq!"6'$$ |7w:u 6v8`bcrAe`b0cpdP`bcrAe`b0cpdP'$҈v$bahh!anf g0p7M-`# hbph `` bpi b$c1c6 md@Hc1c6 Cc1c6B Cc1c6@ CBHc1c6 Cc1c6 Ðc1c6 c1c6 c1c6 c1b6cpdP߸U c1c6 c1c6  c1c6 c1b6cpdP?Uᢔ ҈`'$$$ҙ $baLh!١nj k0p+Mbm bcdP߸Uc4`0 d AdJ !d AdJP T!CTd AdJ T!eЪT_\d AdJ T!d AdJR T!d AdJP T!S\d AdJ T!d AdJQ T!3?d AdJ 4!d AdJ !d AdJ ! ;$ $ɡ<ߨ!فnj k0p+Mb`l bcdP߸Um b`@c 4`SeЪQeZ oeЪQeZ e@Re^Uؔ_ UeЪQeZ eЪQeZ eЪQeZ ѐAE "`+$ $`Ъb cdP?Uh $ $bɁD߈!qnj k0p+Mb\l bcdP߸Um b\H`Ъc CѤd D1eRe^e_t|hЪh xe0XhЪh Xt|hЪh xg0uhЪh xє Ą_eЪQeZ ĄeЪQeZ eЪQeZ ѐ "`0+$ $< $bqHx!فnj k0p+MbXl bcdP߸Um bX@c 4`SeЪQeZ oeЪQeZ e@Re^U_ UeЪQeZ eЪQeZ eЪQeZ ѐAE "`+$ $`Ъb cdP?U` $ $bɁD߈!qnj k0p+MbTl bcdP߸Um bTH`Ъc CѤd D1eRe^e_t|hЪh xe0XhЪh Xt|hЪh xg0uhЪh xє Ą_eЪQeZ ĄeЪQeZ eЪQeZ ѐ "`0+$ $< $bqHx!qnj k0p+MbPl bcdP߸Um bPPd D`42oЪo guoЪo oPoȔ toЪo  toЪo oЪo ?oЪo ѐQU "`+$ $`Ъb cdP?UX $ $bqHx!qnj k0p+MbLl bcdP߸Um bLPd D`42oЪo guoЪo oPoؔ toЪo  toЪo oЪo ?oЪo ѐQU "`+$ $`Ъb cdP?UT $ $bqHx!$Header:fpa1gen.c 12.0$fpa1gen: _fpa1_freg2op,opndtype"lt@RHH`VDpTbrdP//++#T#d#t##L#2### , r @!V#####$$##$ #$$$$H$L$P$T$X$\&B d 2Bhj 6Pv 4 N  >\ <V`r : P h   ` "    N$   H $ "   J$~$ $@^$~$$$  Nl  & >Lj($*@$".J06Nf0Ph*Dh(  (((  "(.,D(P 2J(V T l( x!* !j!(!"@ "@#@#@#@#@#@#P# P# P#@#@#P#P#P#P#@#P#@#@#@#@#@#@#@#!P##P#@#'P$@$)P$@$ @$/P$@$@$@$H@$L@$P@$T@$X@$\@$`@$h@$|@$@$@$@$@$@$@$@$@$@$@$@$@$@$@%@%@%@ h'.")#43#CiSafpM7 ##AL_#:1@On_j/v?#2#,# ,y[$#2 ATBh;q{$c$ M$$r$!h3$HBwR$Lbsp$P$Tx$X8 @0$\!V'$`.oVncs.oVhc2.1n.oVO__fpas_ops_tbl__fromprec__fpa1_storelo_._fpa1_storelo__fp_get_genr_._fp_get_genr__fp_opnd2greg_._fp_opnd2greg__fp_new_inst_store_._fp_new_inst_store__fpa1_freg2seven_._fpa1_freg2seven__fpa1_seven2freg_._fpa1_seven2freg__fp_inst_store_._fp_inst_store__fp_get_fltr_._fp_get_fltr__fp_inst_load_._fp_inst_load__fp_store_._fp_store__fp_load_._fp_load__fpa1_op2freg_._fpa1_op2freg__fpa1_freg2op_._fpa1_freg2op__fpa1_monadic_._fpa1_monadic__fpas_prec_._fpas_prec__fpas_freg2freg_._fpas_freg2freg__fpa1_dyadic_._fpa1_dyadic__fp_new_inst_load_._fp_new_inst_load_findfpm_.findfpm__fpa1_move_._fpa1_move__fpa1_storem_._fpa1_storem__fp_ea_addrtype_._fp_ea_addrtype__fpa1_loadm_._fpa1_loadm__fpa1_setround_._fpa1_setround__fpa1_testround_._fpa1_testround__fpa1_setflag_._fpa1_setflag__fpa1_testflag_._fpa1_testflag__fpa1_settrap_._fpa1_settrap__fpa1_testtrap_._fpa1_testtrap__fpa1_clrflag_._fpa1_clrflag__fpa1_clrtrap_._fpa1_clrtrap__fpa1rtnes fpa2gen.o 597749050 0 10 100777 7219 ` X@ A # 3鏤#鏤"鏤#١nk l0m@oP|w ]DQ@0dɡ@@ D0ɡ@!D"23b"b#p" *"ѪҪ  Ѫ-" Ѫ-"bc@e ɡ@@ߨaanh i0j@gP1pL` aT0 |9|3 "PppL0rp'"bprp ) K/  mbm 1z'`Ъ`bc@ejps bMosrp b l `bcd`epfpĪ|ê>`bcd`e`b   )$ $q )* *baThA١nl mPb@!pSoRL\M_0]poLT0]Qbɡ< ɡuvQbLŠŰMR3Q|vQbL021071M2;1yDbw1i 1@~  sbpl =r1 {bpm Dz1@r1t{1~0oy!F $w10 u<27sQ;Q5~Q͡@3Qr1{bpm D  bpl =`b0cpuAe3ȠrksQp'K" gssQ\ bbpl =`bsQ0Q1cpde^ႉKk `bsQ0Q1cpdeJ`b0cpuAeႤ5Ƞ%k  sQ05p'Kbpl =`bsQ0Q1cpdek (  `b0cpuAeႉȠ`b01cpder17w19pW6QFeЪQ4QRUPU`bcp{A0P21r1 `b0cp|AeЍe021eЪQ84Q vQK% `b0w111cpdeeЪQ4Qbp8!D`b0w111cpxAexeЪQ4Q {r1 `b0cp|AeЍ`bQH0cpuA႔y!F"""" `tQV#Py!F""23! #*"2b!"2tQVSP`bAHcp႔sQ!H%"'$$r1 j`bQH0cp|Ar10y!F"""" ` tQV#R21y!F"""" ` tQVRS`bAHcpr10 2{1!H# -"'$%$y!F"""" `tQVP`bcp@1@ `bcpde ~ `b01cpQ~AL} ,* '*D '**baLeЪQ4Qh!&nm |=6#0 ١nk l0|LpA ɡDpL @N_MMPO 01䉀Gm M]0A艀;m  OM_;쉀.m bj p,LP0QbcAeam `Ъk p,LPbcd ,* *bɡDߨ!فnh i0|)pA )D޴  bcɁDp)M20 ɁD   !`  ```! Ѫ!`  ```bj `bܪcdЍ`bcdP|Up9OC` teP `bcd |>P`bcҪ )$ $bɁD߈!an0!11|CpA a Xq1p#M2 a Xq1tO#D޴ q!f Ȱ r * g``p!bc`deЍg`| P`p!bq1dp ܠfq1#$q1$ba Xh!$Header:fpa2gen.c 12.0$fpa2gen: _fpa2_freg2op,opndtypefpa2gen: _massage_operand,opndtypefpa2gen: _fpa2_monadic,argtype8 txfp :   0   $ Jj p &D`b p  (Z` p, *>p  p< ~p `Db D   p p \p p p > ".$&  T( @@@P P P@PPPP@P@P@@P@@@@ @P@P@ !P$@(#P,%P0@4'P8@@@H@L@TPXP`@h@l@t@x@@@@@@@@@@@@@@@*P+P,P-P.P/P0P1P h'y&[3D V h{A7,:f->P3_io?~.;cM".;HVG8brp0.oVncs.oVhc2.1n.oVO__fpas_prec_._fpas_prec__fpas_freg2freg_._fpas_freg2freg__fpa1_freg2seven_._fpa1_freg2seven__fpa1_seven2freg_._fpa1_seven2freg__fromprec__fp_new_inst_store_._fp_new_inst_store__fpa1_freg2op_._fpa1_freg2op__fp_get_fltr_._fp_get_fltr__fp_get_genr_._fp_get_genr__fp_ea_addrtype_._fp_ea_addrtype__fpa1_storelo_._fpa1_storelo__fpa1_op2freg_._fpa1_op2freg__fpa1_monadic_._fpa1_monadic__fpas_ops_tbl__fpa1_dyadic_._fpa1_dyadic_findfpm_.findfpm__fpa1_move_._fpa1_move__fpa1_storem_._fpa1_storem__fp_getimm_._fp_getimm__fpa1_loadm_._fpa1_loadm__fpa2rtnes__fpa1_setround__fpa1_testround__fpa1_setflag__fpa1_testflag__fpa1_settrap__fpa1_testtrap__fpa1_clrflag__fpa1_clrtrap fpfpx1.o 597749048 0 10 100775 6739 `  @,antm h053l 2/011`0p21Ńu Z !a@ 6 011q120q16spq100q12Ńq1:c8 4!-9!-@"7!-"`` 5x& bЍ"a@"a@bcp,c bp0,b2,P!֤!0j 01 .cdp@ bЍ"a@bpc  j 01#cdp@ubpc $k "cdp@] bЍ"a@!(cpz{Q0 1\qLpcdp@sr bЍ"a@pXn  4>Ph ~  "0:"Nf $& $:D(Xjx*,. .0B`2n2~44 2 :4Jb6v8:<>* X@n B D"F8LH`x JLN  :P J j P  J R T   ,V 8T HJ TR hT t  V T  R X ` ` 6 D \X @ @ P P P P P P P P P P P P P P !P #P %P 'P )P +P -P /P 1P 3P 5P 7P 9P ;P =P ?P AP CP EP GP IP $KP (MP ,OP 0QP 4SP 8UP <WP h'Z ""+;4>FOWz`ju}^&X r":+t3<<DJMUL^>fo@w$46`(TV JL#,p48=|EDN~VF_Zg"p\x$+Iq g.oVncs.oVhc2.1n.oVO__fpfpx_._fpfpx_findfpm_.findfpm__FPArs_._FPArs__FPAir_._FPAir__FPsetst_._FPsetst__FPArl_._FPArl__FPsbd_._FPsbd_SetOperation_.SetOperation__FPi2d_._FPi2d__FPi2f_._FPi2f__FPAwl_._FPAwl__FPd2f_._FPd2f__FPAws_._FPAws__FPf2d_._FPf2d__FPrnd_._FPrnd__FPrnf_._FPrnf__FPtrd_._FPtrd__FPtrf_._FPtrf__FPfld_._FPfld__FPflf_._FPflf__FPadd_._FPadd__FPadf_._FPadf__Ebmodd_._Ebmodd__FPcmd_._FPcmd__FPcmf_._FPcmf__FPsbf_._FPsbf__FPngd_._FPngd__FPngf_._FPngf__FPdvd_._FPdvd__FPdvf_._FPdvf__FPrmd_._FPrmd__FPsqd_._FPsqd__FPsqf_._FPsqf__FPmld_._FPmld__FPmlf_._FPmlf__Ebscalbi_._Ebscalbi__FPabd_._FPabd__FPabf_._FPabf__FPrmdi_._FPrmdi__FPgetst_._FPgetst_set_stat_.set_stat_SetData_.SetData__FPAputs_._FPAputs fpfpx3.o 597749048 0 10 100775 705 ` @"""P"02-0B3633p09p1pqQ01R,! """P"02 "p" "p" ߸"p"0߸3p333? ?"0$Header:fpfpx3.c 12.0$J`v@@@@@@@@ h'"+3<DJMU`^fzvoyag.oVncs.oVhc2.1n.oVO__FPAwl_._FPAwl__FPArl_._FPArl__FPAws_._FPAws__FPArs_._FPArs__FPAir_._FPAir__FPAgets_._FPAgets__FPAputs_._FPAputs fpgen.o 597749048 0 10 100777 4911 ` Dٱnm y- 0 0 1230xM@H.@@  "ZP// D ABH@9=8Mbq20p2`@ c@z-p ? "#ɱ,d@  "P// y Zu ]"9-ɱ,d !ɱ,d ;u  8ȱb0ob1pqS01RrsS23Rt461:~A(bcp |= " p! ɱ,d"ɱ,d"ɱ,d߸anti j0g@hPȱL!Lc@pqS8A01R( ```p0 ` !a@u*# |: " pd#X  }:.pm u* 0v 5  A P TO Xb7*0bcdep w b"2bp A0bcep  }:bp A0bcepw QRb"`PcpC@2bP!%"" !x1d Lk "xȁbck bcdeE3k 0abP!%"" SSpCqxbpc`pk bpcd`ek bpcd`Qk l  w }:.pm hV8{:aqxbpi  |: " pbpcdbcd`ed bp0d$k hbx !xAceF  !xdAc  w }:bp /a@hA@cّ0$<4?T@@2?$?&wK* +K*+GpnoLMZc2c436poLŪrc?4&?4&4$?4$Si^4&54&4$5[4$0=S4+54+4*5K4*Q]T&_T&T$_T$3É7Q mms݀poL3ÐS#"]U15S4&54&4$54$  0 ␱G2m$$2$&#$&(,=>Dɑ@ߘQqnh i0j@$py bk Gb rp)bsRb!b(c@`0`b!b( 2p b!b( #b!`*dK @ ;b( 2b!b( 2b!b(  b!b(  +`c #bqHx1ؤ|CwD DTUPEE  p3M3430`b 2b!ang h0i@6Q1`!2! '菴 ba$ , (mbp1dЍ9,0<2#"` r) 2)"#(9,1)*11+;!PpG_CdPAbLL0M "`0)$ $pɉ(G$M "`0 $ $pbLLBDCMBDDb0$" )$pGQ_ 0 D!3!|9wc3`Ctcp1!"H0|)wb"`B5Ap!cuApf 0r 2 ( bpcj ``b"Hcb`cqdAs!`c!dЍmcd`Ap!ᆤ@p)G2C`@b v  6p)G2AC 08b0!b'" ,"b.Ͳp;8 b+!b'"Rmv!cCK; r!/ PC b菉 b 鏉 (a$!3!H^0$GhA@ّni j0ں( (b" "cк2*(#*(}*!=*! b$2`b!b) 2!" 0b!b) 2b$"/c1c9 #c1c9r* #r*$2*bк  Űbɑ@ߘ1فnh i0(} Ib}9# b(2`b!b( 2## 0b!b( 2r)$2)b$"/c1c8 #c1c8r) #bк  } bɁD߈1̤pGߴ =eReTv 4 1sos0o0n 1o0n 1npnLsURe_tU0Qe0QoRQ _1e0QoRQ _1pGߐ b04G1 ٱ`0pTGUQ 9oPov 10oPpoL0k0om  nРo "ߒQɱ<߸A$Header:fpgen.c 12.1$fpgen: setfloatstatefpgen: fpglue version mismatchfpgen: No space from fpalloc() t t N``.J ` 0`D(pp*`>\`Ndp     @ P$P(P,Pt@xP| P P@@@@@@@P@P@@PP@@@@@P@@@ h'i&'2_>GJ<T\_{fnt{XUf4 .oVncs.oVhc2.1n.oVO__emulrtnes__fpa1rtnes__f881rtnes__fpa2rtnes_iskernel_.iskernel_bzero_.bzero_exit_.exit_fpgen_.fpgen__opinfo_bcopy_.bcopy__fp_getimm_._fp_getimm__fp_get_genr_._fp_get_genr__fp_ea_addrtype_._fp_ea_addrtype__num_1s_tbl_ffs_.ffs fpops.o 597749048 0 10 100777 283 ` 0$Header:fpops.c 12.0$@ h'#.oVncs.oVhc2.1n.oVO__opinfo general.o 597749049 0 10 100777 3571 `  `Pnm -$ "2=$0=$0-&"A@=& & ( (0 nm -* "=*0=*0-+"@B=+ + , ,0 ;QШ_ P4ST`Ъc S`Ъc. !o0d Q.dPO,B ҔP 2 2 Sb01 9Q`@e &e_$R 4R R $(1 ٱn=Qk l0m@b ` c A6c@?4;  ; ; C4",$ $b0ɱ8߸19Q`@e &e_$R 4R R $(1 ٱn=Qk l0m@b` c A6c@?4;  ; ; C4",$ $b0ɱ8߸19Q< &p404 2B_ P4c1c2 c1c2& (e0Td &dO$B  2 2 p$ b(1 ١nj k0l@mP1#<# >0 ʉR?  "2<=b!b* 2b!b*1> 28b`  c A>c@?<: @  : : C  0 "12+$2;$bɡ<ߨQ8ATT 4 <O@ 4 "" *Q"P o0d B TA @ 2 2 C 4 " b(! ٱnoPplL>-#3! +M,"80$RcSsc s3ep4M d%` RcSs3c sSp4dPu` M,$0$M," 0$ 0 bɱ<߸Q$Header:general.c 12.0$|$HVHPB @$@(P,@0@4@8@<@@@D@H@L@P@T@X@\@ h'$(f7<B:,P|_0p_487@nHDBH'L2/>PJWTfMVv4`.oVncs.oVhc2.1n.oVO__fp_get_genr_._fp_get_genr_ffs_.ffs__fp_get_fltr_._fp_get_fltr__fp_ea_addrtype_._fp_ea_addrtype__fp_inst_store_._fp_inst_store__fp_new_inst_store_._fp_new_inst_store__fp_inst_load_._fp_inst_load__fp_new_inst_load_._fp_new_inst_load__fp_load_._fp_load__fp_store_._fp_store__fp_getimm_._fp_getimm__fp_opnd2greg_._fp_opnd2greg__num_1s_tbl xFP0.o 597749045 0 10 100775 375 `  t`n.鏤 |$Header:xFP0.c 12.0$@T@X@ h'b$#;t,6<x@\K.oVncs.oVhc2.1n.oVO__fpfprX_findfpm_.findfpm_iskernel_.iskernel xFP1.o 597749045 0 10 100775 4327 `  tفnm ͢@Ȑkݢ@ݢ@PUݢ@ݢ@@Dݢ@ݢ@cō hň hň ݢ@ݢ@ݢ@ŭ ͢@hň hň ݢ@ݢ@ݢ@ŭ ͢@hň hň ݢ@ݢ@ݢ@ŭ ͢@hň hň ݢ@ݢ@ݢ@ "͢@m m@@@ 㭉ݢ@@@͢@m m bf !ɁDc;3n>3;ݢ@c=3o?3=ݢ@c63eVU536ݢ@c73eWU537ݢ@;dID439ݢ@bɁD߈nl m02D C#" C#"4! ٱnk m0l@2D @#" ?A#" ?B#"B# ɱ8߸1nl m0"H0‘$04! ٱmP_k~e[S R J"RUP%%8<^ b/# ?1b/# .p-!0-*0'?$??$$!/2b/# p-!0-0?$$/2b/# p-!0-0!@0?b0ɱ8߸qnԍ"@, nm @0 ّni j0k@l m @  R"P//"Fj 0 0 :1 0 0 '1 0 1 0 1 0 1 0 1 p-q= S   >ԉ . c p#q3ɑHbp 0q 1  >ԉ . c p#q3ɑHߘ1ّni j0k@m @  4"P//,> #    b0f     . b p"ɑ@b0   . b p"ɑ@ߘ1qnATQX!L1PATQXg 3`@!\` " Xc?#!\X?!T\"h OX b/X, !\,\1\!(i0埨k@ APQX01 2!\X !T!!T(c2!\#!\X%QXbк*2, kb l0˸ Xk=i哨1@ APQX011 2c!\X !T!!T*(c2!\#!\ҪbSX XX Xb! !XȀ  ँX1X`кi哨4@ APQ01 23!\t ҈\TTݱX'@X\&"㒎k +ֻ` !P+cs IT# I !L >.q\cp#q3q\ ' d!L >.q\cp#q3q\T J$ G!L >.q\cp#q3q\!P L03c70#1 >.q\p#q3q\&щXXXXxAqnj k0l@iPm 3` *!\  b!ř㒉0/o0dBR 1\i0㔺2 ݑ\p\ pL p0ph ppp$j p pl@p@tPx@|@@@@@P@@@@@@@ h'`p"(+;4>rG'xO>X^`&i2r#z<q:\m".oVncs.oVhc2.1n.oVO__FPrdf_._FPrdf_findfpm_.findfpm_FLT_NaN__Erdfa_._Erdfa__FPrdd_._FPrdd_DBL_NaN__Erdda_._Erdda__FPi2f_._FPi2f_FPround_.FPround__FPi2d_._FPi2d__FPcpf_._FPcpf__FPcpfi_._FPcpfi__Ecpfa_._Ecpfa__FPcpd_._FPcpd__FPcpdi_._FPcpdi__Ecpda_._EcpdaxFP3.o 597749045 0 10 100775 6611 ` ّnj źl ,cd`m p= `0$ !ؐ@`0 ! p 0   "`b p"ɑ@0   "`b p"ɑ@ߘّnj źl .cd`m p= `0+q %ؐ`0  ! p 0  03p#q3`c p#q3ɑ@0  03p#q3`c p#q3ɑ@ߘnl m0<`0b0b034! ٱnk0l@`Ъb01bЍlɱ8߸ّnj źl cd`m p= `0$ !ؐ@`0 ! p 0   "`b p"ɑ@0   "`b p"ɑ@ߘّnj źl cd`m p= `0+q %ؐ`0  ! p 0  03p#q3`c p#q3ɑ@0  03p#q3`c p#q3ɑ@ߘnl m0<`0b0b014! ٱnk0l@`Ъb01bЍkɱ8߸ّnj l cЪ1(@̪mkp `)  &ؐ@` !b0!Д   03p#q3q=p-ɑ@`@<@ (!p+ ?1 0  03p#q3q=p-ɑ@@D@@ ` A` ```` 1 DC0  03p#q3q=p-ɑ@ߘnl m0 b0bD4! ٱnk l0m@ bp 0  b"ɱ8b0-1=ɱ8߸1n,b-4! anf 4!l Ŷ3`h c1*@p8`0 qXP 'ؠ`0 b0!   "bp"adp8:08qX@D`00  "bp"adө}գi0.P  %?0  "bp"ad 0  "bp"ad @b&" jb/" e%QR 5! EQ012c@de u  ؐq'$U]*)cPt    "bp"ad$  "bp"ad0Q51b`cdpeadQP 5! @ EQ012c@de u   q < @b(" ) %'$U]*)cP   "bp"adbs1d` ad坪0ct b00   "bp"adqXqXhn91:Am  byzQ01RbЍ#0 ٱnk l0m@ bp q\01R  bɱ8b0-ɱ8߸1n,b-4! فnh 3l cЪ1 @mip 0b##5  2ذ@b+-b0Ĥ!   "p-ɁXp 0   "p-ɁX   "p-ɁX@4Ap k  "p-ɁX9 ê 0D$ @ Q01A 2dc tA0 A4A@@4A 㠉s1131 @ j ؠ?  ؠj0 b0    "p-ɁX0  "p-ɁX߈nl m0 b0b4! ang 53|l cЪ1 @mhp8 `0:q 4ذ`0 /!  03p#q3q=p-adp 0 03p#q3q=p-ad "`0q 03p#q3q=p-ad`043 03p#q3q=p-ad`k0p3;1qi,40!#2,@'"Q 0112cdj s t 4) 㦉+ @$0 @ Q011A2cdi t ) 4 $+֙㒔`i&u!!5! @ i`ؐ? ؐ i !bc   03p#q3q=p-ad01 03p#q3q=p-adu!hn91:Am x byzQ01RbЍ0 $Header:xFP3.c 12.0$vj:0t L : t p | N h p p pNp@ Z p p pBpx6@ TpppH&8jt  p p p> p*  p . pV,*  p $. T ` p p   P6    p p . p f p * 0 < P p n p    4p ^p p p>**$0 Dplp@@PP P@@ @@@@@ @$@(@,@0@4P8@<@@@D@H%PL@P)PT+PX-P\@`@d@h@l5Pp@t@x@|@@@ h'V"+;4>XL[epryT2v )j(%0 q%8.:8@@tIDRV\<dmLu ~\L\ d hJ ::pp8 tIt #n|+6 4E=G.oVncs.oVhc2.1n.oVO__FPngf_._FPngf_findfpm_.findfpm_SetOperation_.SetOperation_set_stat_.set_stat_FLT_NaN__FPngd_._FPngd_DBL_NaN__FPngfi_._FPngfi__FPngdi_._FPngdi__FPabf_._FPabf__FPabd_._FPabd__FPabfi_._FPabfi__FPabdi_._FPabdi__FPf2d_._FPf2d_SetData_.SetData__FPf2di_._FPf2di__Ef2da_._Ef2da__FPf2d2_._FPf2d2__FPcpf_._FPcpf__FPd2f_._FPd2f_FPround_.FPround_FPfunfl_.FPfunfl_FPfovfl_.FPfovfl__FPd2fi_._FPd2fi__Ed2fa_._Ed2fa__FPd2f2_._FPd2f2__FPcpd_._FPcpd__FPntf_._FPntf__FPntfi_._FPntfi__FPntd_._FPntd__FPntdi_._FPntdi xFP4.o 597749046 0 10 100775 6305 ` `|n>A?QA?Q3}A@ M1~! `0c ?0!A=A 5 0?1$>!@|!Q801 2dЍ?!s !Dp 0~! !Dp0;>$5> ~b) >!~b( >!@|!~1Q401 2dЍ>!s !Dp 0~! "@Aٱnk l0m@ bpBPo@ "`@  ɱ@0p 0  ɱ@ɱ@H@01bɱ@߸1ٱnk l0m@ bqRpBo@ "`@P  ɱ@0p 0  ɱ@ɱ@KdPE@[01bɱ@߸1nl m003`=0no@eTWMG @@b04 4!4 `Pe@d`lmT!4T 4!4 4 4! ١nj k0l@mP03` <=0eSdCn` ` @@b0ɡ*@@PP@@@@@@ P P@@@@P@@@@@@ @@@@@ @$@(@,@0@4'P8@<)P@@D@H@L@P@T@X@\@ h';#-6@tH<QX_nxQLqq|@yxr:M nJ&m/ l9>$A J(Su j]60e nw4@e D 4L TaHXp.oVncs.oVhc2.1n.oVO_findfpm_.findfpm_FPround_.FPround__FPrnf_._FPrnf_SetOperation_.SetOperation_set_stat_.set_stat__FPrnfi_._FPrnfi__FPtrf_._FPtrf_SetData_.SetData__FPtrfi_._FPtrfi__FPflf_._FPflf__FPflfi_._FPflfi__FPrnd_._FPrnd__FPrndi_._FPrndi__FPtrd_._FPtrd__FPtrdi_._FPtrdi__FPfld_._FPfld__FPfldi_._FPfldi__FPcmf_._FPcmf_FPSETTB_.FPSETTB_FPCLRTB_.FPCLRTB__FPcmfi_._FPcmfi__Ecmfa_._Ecmfa__FPcmd_._FPcmd__FPcmdi_._FPcmdi__Ecmda_._Ecmda xFP5.o 597749046 0 10 100775 8759 ` \xanj 615A4Q7h t1uؐm`0 g3v!#e(fP@b$'b0$'"ֻ  3621 \ u0   " bp"a$p0 t0   " bp"a$p0 ! c "0#a$p   " bp"a$p+0 t0   " bp"a$p0   " bp"a$p00sAt @`1"' 63#0&   " bp"a$p0$sAt @00   " bp"a$p@e@  O 71!0_ 7񨱐l 4 !  ְ? 0? ᳔  "? @岉m @ [ 7㵐"sAt @00   " bp"a$p `  ` ``` 01bcdP a$pֻ8@ MMOQ 012ck x  ֻ N@b'+0w   ,   " bp"a$p"    " bp"a$pbv1da$pw Jb+,0     " bp"a$p sAt @k0   " bp"a$pګhAanl j084A5Q9k A|Qxu1tѪh3խ76pb'$bP'$"ߪf0g֪9   f0of֪1_fPie@WVIRf@oQVA 0 t0u1  03p# q3 c p#q3a,xP@ x0|1  03p# q3 c p#q3a,xP8@63 1!   03p# q3 c p#q3a,x b 03pqS01Rp#q3a,x  03p# q3 c p#q3a,x;P@ x0|1  03p# q3 c p#q3a,x01  03p# q3 c p#q3a,xP1@/0vw!  @s0s0  03p# q3 c p#q3a,x.0,cP?ACQcP7I418"$ Y_%0(  03p# q3 c p#q3a,xp .d 9f@adPOFQ!P@Ac q9qqf0acЫ?6ѐ01i 7O C ! "? 9=321@j0 2$ !9!MB3U "?R 9MDBA@g@p QB# !9!=2 9=2 9MB@4b0 3?Ք  "?d@ 321 2ؠ  "?s 91==07Ґ2-0+vw!  @001  03p# q3 c p#q3a,xp ` `Ъm0Ъ1`  `0cЫ>001<1bcdeЍa,x10: @ JJOQ(01$2c z } А  Y)$*`Ш cЍy   4  03p# q3 c p#q3a,x"   03p# q3 c p#q3a,xbx1da,xy ZgШyybpcЍ    03p# q3 c p#q3a,xcmp 0vw! @Ѐ018  03p# q3 c p#q3a,xgШy׫㚉yhaqnl k0g ŌmŻcЪ1dA (`ЪipIb@ #$ ؠ@b@*! p 0   "bp"qHkp[bP # ؠ@`P ! p 0   "bp"qHbcЍpqHx!qng h0j ŷic1 )@b0 `$ !@` !Ԕ ㌪b0  "bp"qH`m pM`@# @`@ !Ԕ p 0   "bp"qHbpceqHx!nm@ p3v0p3l0-01 ang ŧ2ck `l h3``m ic1a *d`pH `@+sq $؀`@!Ȕ p 0  03p#q3cp#q3a`p c22; q) &؀b(3!Ȕ p 0 q 1  03p#q3cp#q3a`sqX01!bpr1a`q)q)h!ang0h@f k Ŧ2`l ic1 +@bpc `p) $`p ! }0|1 03p#q3cp#q3a XpI`@7qYP $`@ /! p 0  03p#q3cp#q3a X0q1b`r1-a XqYqYhnm@ qCpc_0qCpcS0-1=01 qnl k0g ŌmŻcЪ1dA ,`ЪipIb@ #$ ؠ@b@*! p 0   "bp"qHkp[cP00#% ؠ@bP*! p 0   "bp"qH0 bcЍqHUbcЍqHx!qni j0l kc1 -@b0 `$: !p@c7! 㧪b0   "bp"qHc3h171 @ Q0 12dj sv1 061  Xb0++5:u   4 03p# q3c p#q3a(t"  03p# q3c p#q3a(tbcpd` a(tu Ib0++5:  : 03p# q3c p#q3a(t;;sb}02v 1 03p# q3c p#q3a(t㼉v1haanf g0j Ŷhŗc1dA 0`l pLb@ #$ @b@-!ܔ p 0   "bp"aLip9b0 " @=!ܔ p 0   "bp"aLsbzpRb`caLh!qng h0j ŷic1 1@b0 `$ !@` !Д ㌪b0  "bp"qH`m pM`@# @`@ !Д p 0   "bp"qHbpce-qHx!nm@ p3v0p3l0-01 anf g0j Ŷhŗc1dA 2`l pL0`@*q $`@ !Ĕ p 0  03p#q3cp#q3aTsbzpeSS<0q20 (c=4!Ĕ bp 0 q1  03p#q3cp#q3aTq\011b`caTq2q2h!ani0j@h l kc1 3@bcb +) &`b&!! 㖪b01 03p#q3cp#q3aTb#g,pGb@ 7qWP $``@/! p0 03p#q3cp#q3aT01bc-aTqWqWhnm@ qCpc^0qCpcR0-1=01 nl m@  bcЍy41 nl m@  bcЍ}41 $Header:xFP6.c 12.0$  < t X 2^hppp0pbpppp"pbp$ ` pp(4HprpZppppLpppp@ppD xpp  ( 4 Hp p    4p j p     4p n p  . b |p  p B \ h  p #] ln   ###(8HX)p+/8@<@@PDPH PL PP PTPX@\P`PdPh@lPp@t@x@|@@@@@@@*P@@.P@ h';#-r6@K:R[\enxqLXL2ZL<,\h$ X!!t* 4x< EZM" V_ 2iq^z{<w:.oVncs.oVhc2.1n.oVO_findfpm_.findfpm_FLT_NaN_set_stat_.set_statlmul$$_FPfunfl_.FPfunfl_FPround_.FPround_SetData_.SetData_FPfovfl_.FPfovfl_dFPMULT_.dFPMULT_DBL_NaN_FPdMULT_.FPdMULT_FPdunfl_.FPdunfl_FPdovfl_.FPdovfl__FPmlf_._FPmlf_SetOperation_.SetOperation__FPmlfi_._FPmlfi__Emlfa_._Emlfa__FPmld_._FPmld__FPmldi_._FPmldi__Emlda_._Emlda__FPmlf3_._FPmlf3__FPcpf_._FPcpf__FPmld3_._FPmld3__FPcpd_._FPcpdxFP7.o 597749046 0 10 100775 6255 ` 4qni j0k@lP3g ec mP#؀`P@4A`0_XQ?81oP b0   " bp"q\?0 b0   " bp"q\!    " bp"q\ c "0#q\تb0   " bp"q\k0\*P(!    " bp"q\ c "0#q\(    " bp"q\تb0   " bp"q\b0/ 1b0/ ```-0 b0   " bp"q\b0   " bp"q\%Pb0   " bp"q\bP/ QAbP/ ```4d S SϪQP! P  @` 4d`   01bcФP q\@ aTq2q2h!ani0j@h l kc1 7@bcb +) &`b&!! 㖪b11 03p#q3cp#q3aTb#g,pGb@ 7qWP $``@/! q1 03p#q3cp#q3aT01bcaTqWqWhnm@ qCpc^0qCpcR0-1=01 nl m@  bcЍ41 nl m@  bcЍ\41 $Header:xFP7.c 12.0$X t  :lpp p"pDpv pp ppRp|ppT   p p*LX lpppp pFpvp pp .pfpppDp . p  p p 2 ^ j ~p p  & T np p   , R np p H h p p| p2 Lp*4.p@t@xP|P P PPP@PP@P@@@@@@@@@@)P@@-P@ h't#<-;6@rIS^g\qzqLl2<,L X # -5 >JF :OXlbjs|W:[<.oVncs.oVhc2.1n.oVO__fFPDIV_._fFPDIV_findfpm_.findfpm_FLT_NaN_set_stat_.set_stat_FPfunfl_.FPfunfl_FPround_.FPround_SetData_.SetData_FPfovfl_.FPfovfl__dFPDIV_._dFPDIV_DBL_NaN_FPdunfl_.FPdunfl_FPdovfl_.FPdovfl__FPdvf_._FPdvf_SetOperation_.SetOperation__FPdvfi_._FPdvfi__Edvfa_._Edvfa__FPdvd_._FPdvd__FPdvdi_._FPdvdi__Edvda_._Edvda__FPdvd3_._FPdvd3__FPcpd_._FPcpd__FPdvf3_._FPdvf3__FPcpf_._FPcpf xFP8.o 597749047 0 10 100775 3332 ` ٱnl k cЪ1 <@mp= `0  ذ@;! p 0   "p-ɱ8bЍbЍ[bɱ8߸nl m0 b0b4! ٱnk l0m@ bp 0  bvɱ8bl0-ɱ8߸1anph j Ÿc1 >@`l p q\9:Qy z 03p#q3qQ{A@;A}|Q0~1/7 ~ Z;Q~Q}A0qs1/7~ Z=>Q|Q{A0r!1!/7 ~ Z;XL[epry|DBec+20lB bL)2q<aEO_ W(`.oVncs.oVhc2.1n.oVO__FPsqf_._FPsqf_findfpm_.findfpm_SetOperation_.SetOperation_set_stat_.set_stat_FLT_NaN__FPf2d_._FPf2d__FPsqd_._FPsqd__FPd2f_._FPd2f__FPsqfi_._FPsqfi__Esqfa_._Esqfa_DBL_NaN__FPscalb_._FPscalb__dFPDIV_._dFPDIV__dADDSUB_._dADDSUB_dFPMULT_.dFPMULT_SetData_.SetData__FPsqdi_._FPsqdi__Esqda_._EsqdaxFP9.o 597749047 0 10 100775 4265 `  @ank l0f {mpŬcЪ1dA 8`Ъhp(0` " ؐ@)! p 0   "sbvp"a\jp*` " ؐ@)! p 0   "sbvp"a\+'c/p0q1~23!cdФWba\h!nl m0XL[epry< #M 8p 8l2I B b0)& 2< F7Q$ Z d n3 Ly.oVncs.oVhc2.1n.oVO__FPrmf_._FPrmf_findfpm_.findfpm_SetOperation_.SetOperation_set_stat_.set_stat_FLT_NaN__FPf2d_._FPf2d__FPcpf_._FPcpf__dFPREM_._dFPREM__FPd2f_._FPd2f__FPrmfi_._FPrmfi__FPrmd_._FPrmd_DBL_NaN__FPrmdi_._FPrmdi__dADDSUB_._dADDSUB__FPscalb_._FPscalb__Ebmodf_._Ebmodf__Ebmodfi_._Ebmodfi__Ebmodd_._Ebmodd__Ebmoddi_._Ebmoddi xFPB.o 597749048 0 10 100775 205 ` 0<鏗鏕$Header:xFPB.s 12.0$(@,@ (4,'1.oVncs_FPSETTB_.FPSETTB_FPCLRTB_.FPCLRTB xFPE_bscalb.o 597749048 0 10 100775 1120 ` (anf g0Ŗhȱl <|= cF`m p-0+q 1 p-0` -q 'ؠ*#! r 2p 0 q 1  03p#q3cp#q3a\rQbP## s1s1r!a\$Bե "Rgpg`Pe0_P1oP oPe0__1AoP [G 4@DJ%$"  03p#q3cp#q3a\bcd`a\ 0151b`ca\ RP2Q31p 0 q 1 s1r!a\h!$Header:xFPE_bscalb.c 12.0$64.h pB L ` p@ @PP P P P$P h' %+1;:DXRakv2q,<.oVncs.oVhc2.1n.oVO__Ebscalbi_._Ebscalbi_findfpm_.findfpm_SetOperation_.SetOperation_set_stat_.set_stat_DBL_NaN_SetData_.SetData_FPdovfl_.FPdovfl_FPdunfl_.FPdunflxFPemul.o 597749047 0 10 100775 6430 `  فni j0` 0``@`k@lPoo 0oo09@ " ȍ! ɁDP  " ȍ! ɁDc`bpqS01R,P  -<-l-ɁDcpc3b20,P  " ȍ! ɁD,cP  -<-l-ɁD,cp  " ȍ! ɁDP  -<-l-ɁDc`bpqS01R, .P  " ȍ! ɁD  +c$ bc$P  -<-l-ɁD  +c(bc(єP  " ȍ! ɁD,c,P  -<-l-ɁD,c0  -<-l-ɁDP  " ȍ! ɁDcpc3b20,4J  -<-l-ɁDP  " ȍ! ɁD,c8P  -<-l-ɁD,c<P  " ȍ! ɁD,c@ɔP  -<-l-ɁD,cD  " ȍ! ɁDP  -<-l-ɁDc`mpqS0 1]bH`0-P  -<-l-ɁDcpc3m20 bL20-P  " ȍ! ɁD,cPP  -<-l-ɁD,cTP  " ȍ! ɁDc`bpqS01R,XÔP  -<-l-ɁDcpc3b20,\  " ȍ! ɁDN"@ɁDb q"ɁDp"ɁDN  " ȍ! ɁD"@ɁD  " ȍ! ɁDP  -<-l-ɁDc`mpqS0 1]b` 0-P  -<-l-ɁDcpc3m20 bd0-P  " ȍ! ɁD,chP  -<-l-ɁD,cl  " ȍ! ɁDP  -<-l-ɁDc`mpqS0 1]bpS0-P  -<-l-ɁDcp3`m0=bt%0-b”P 10N  " ȍ! ɁDݒ@bɁD " ȍ! ɁD_ P h~|z.vtr4jhb`LZXVTRPJHjB@><:86420V*(&$"  2 ;0I qS@AH3c` rP{QTapq2FI 9)@vAH'` 6P?QZaGpq ߈!$Header:xFPemul.c 12.0$Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! v`| ` `6L`R\ t`` ` H^`dn ``( @V``lx`` "`,8D\`bl  `"` $(`2>Jb&t`z `(`@*X`^h ,`.` 04`>JVz2` `  `&0 H`R^j4`6 `   ,8 B` L X d |: `  `    < `  , 8 Z> `  `  ` x@ |@ P P P P P P P P P P P P P P !P #P %P 'P )P +P -P /P 1P 3P 5P 7P 9P ;P =P h' |&3;<FNBWalt}46:< '/8J@ILQZ>bk@s|Z"\$TVr:t<^&`( JL&.oVncs.oVhc2.1n.oVO__FPemulate_._FPemulate_findfpm_.findfpm_printf_.printf_set_stat_.set_stat__FPabd_._FPabd__FPabf_._FPabf__FPadd_._FPadd__FPadf_._FPadf__FPd2f_._FPd2f__FPcmd_._FPcmd__FPcmf_._FPcmf__FPcpd_._FPcpd__FPcpf_._FPcpf__FPf2d_._FPf2d__FPi2d_._FPi2d__FPi2f_._FPi2f__FPdvd_._FPdvd__FPdvf_._FPdvf__FPfld_._FPfld__FPflf_._FPflf__FPmld_._FPmld__FPmlf_._FPmlf__FPngd_._FPngd__FPngf_._FPngf__FPrnd_._FPrnd__FPrnf_._FPrnf__FPsbd_._FPsbd__FPsbf_._FPsbf__FPtrd_._FPtrd__FPtrf_._FPtrfxFPexception.o 597749048 0 10 100775 365 ` \l0nԍ8, $Header:xFPexception.c 12.0$, L@P@TPXP h'P(27p?8HNU.oVncs.oVhc2.1n.oVO_xFPexception_.xFPexception_getpid_.getpid_kill_.kill xFPscalb.o 597749047 0 10 100775 1077 ` <ٱnA?QA?Qm }Q~10~1}!ɱ@`P@ŀ "R4P0 |b 03pqS01Rp#q3ɱ@|!d 0Ĥ1 03p#q3q4p$ɱ@?` ?`oPe0__1ذoP oPe0__1AoP [@ 8@DL%$" |! 03p# q3c p#q3ɱ@|A4bɱ@ |!0151cɱ@ RP| #d-0T14 03p#q3q4p$ɱ@(~1߸A$Header:xFPscalb.c 12.0$64xpp2 < Rp~ p@$@(P,P0 P4 P8P h'$$0/;8B2KTq^hs|,<.oVncs.oVhc2.1n.oVO__FPscalb_._FPscalb_findfpm_.findfpm_DBL_NaN_SetData_.SetData_set_stat_.set_stat_FPdovfl_.FPdovfl_FPdunfl_.FPdunfl xFPvect.o 597749047 0 10 100775 2360 ` ,`($Header:xFPvect.c 12.0$@P P$P(P,P0 P4 P8 P< P@ PDPHPLPPPTPXP\P`PdPhPlPpPtPxP|PPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;PP?P @PAPBPCPDP EP$FP(GP h'H"`*^2:B<JS:[dlu}VTpInEtQrMq'm0@8A>IR6Zc4kt|a)_%\!ZLJsN qJ~&e/|7a@JTf\d.oVncs.oVhc2.1n.oVO__fpfpf__FPrdf__FPrdd__FPi2f__FPi2d__FPcpf__FPcpfi__FPcpd__FPcpdi__FPf2d__FPf2di__FPd2f__FPd2fi__FPngf__FPngfi__FPngd__FPngdi__FPabf__FPabfi__FPabd__FPabdi__FPntf__FPntfi__FPntd__FPntdi__FPrnf__FPrnfi__FPrnd__FPrndi__FPtrf__FPtrfi__FPtrd__FPtrdi__FPflf__FPflfi__FPfld__FPfldi__FPcmf__FPcmfi__FPcmd__FPcmdi__FPadf__FPadfi__FPadd__FPaddi__FPsbf__FPsbfi__FPsbd__FPsbdi__FPmlf__FPmlfi__FPmld__FPmldi__FPdvf__FPdvfi__FPdvd__FPdvdi__FPrmf__FPrmfi__FPrmd__FPrmdi__FPsqf__FPsqfi__FPsqd__FPsqdi__FPgetst__FPsetst__FPlmr__FPsmrxxFPgetpid.o 597749048 0 10 100777 152 ` ,$$Header:xxFPgetpid.s 12.0$(@ ( .oVncs_fpgetpid_.fpgetpidxxFPkill.o 597749048 0 10 100777 148 ` ,$%$Header:xxFPkill.s 12.0$(@ (r.oVncs_fpkill_.fpkill#] lnP4 ### 0@P`p* `! __.SYMDEF 597788062 0 10 100666 8096 ` %5DTbq(=Qfw>>>>> >x2x2'x2,x2;x2Fx2Ux2ex2wx2x2x2x2x2x2x2x2x2 x2x2)x25x2Bx2Px2_x2lx2zx2x2x2x2x2x2x2x2x2 x2x2-x2>x2Mx2]x2lx2|x2 #+4<EMV^goxnnnn '6GYiz !.=MZ(a(k(p(y((((TTTTTTTTTT TT!T+T4T>THTST]ThTqT{TTTTTT't't't't't't't't't't 't 't 't 't ''t 0't 8't A't J't T't \'t e't m't v't 't 't 't 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p #1p -1p 61p @1p H1p Q1p Z1p d1p l1p u1p ~1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p 1p M M )M .M 6M ?M HM RM ZM cM lM vM ~M M M M M M M M M M M M M M M M M M M *M 2M ;M CM LM UM _M gM ph wh h h h h h h h h h h h h h h h h h h "h +h 4h >h Fh Oh Wh `h ih sh {h h h h h h h h h       %.6?HRZclv666666666666666 666&6/686B6K6U\fks|"*3<FOYcnwވވވވވ߶߶߶߶߶H&H0H5HCHR FY Fc Fh Fr F}0000.oVncs.oVhc2.1n.oVO__emul_op2freg_._emul_op2freg__emul_monadic_._emul_monadic__emul_dyadic_._emul_dyadic__emul_moveop_._emul_moveop__emul_compare_._emul_compare__emul_ldm_stm_._emul_ldm_stm__emul_set_round_._emul_set_round__emul_test_round_._emul_test_round__emul_set_clr_flag_._emul_set_clr_flag__emul_set_clr_trap_._emul_set_clr_trap__emul_test_flag_._emul_test_flag__emul_test_trap_._emul_test_trap__emul_init_mach_._emul_init_mach__emulrtnes.oVncs.oVhc2.1n.oVO__f881_prec_._f881_prec__f881rtnes.oVncs.oVhc2.1n.oVO__fpas_ops_tbl__fromprec__fpa1_storelo_._fpa1_storelo__fpa1_freg2seven_._fpa1_freg2seven__fpa1_seven2freg_._fpa1_seven2freg__fpa1_op2freg_._fpa1_op2freg__fpa1_freg2op_._fpa1_freg2op__fpa1_monadic_._fpa1_monadic__fpa1_dyadic_._fpa1_dyadic__fpa1_move_._fpa1_move__fpa1_storem_._fpa1_storem__fpa1_loadm_._fpa1_loadm__fpa1_setround_._fpa1_setround__fpa1_testround_._fpa1_testround__fpa1_setflag_._fpa1_setflag__fpa1_testflag_._fpa1_testflag__fpa1_settrap_._fpa1_settrap__fpa1_testtrap_._fpa1_testtrap__fpa1_clrflag_._fpa1_clrflag__fpa1_clrtrap_._fpa1_clrtrap__fpa1rtnes.oVncs.oVhc2.1n.oVO__fpas_prec_._fpas_prec__fpas_freg2freg_._fpas_freg2freg__fpa2rtnes.oVncs.oVhc2.1n.oVO__fpfpx_._fpfpx.oVncs.oVhc2.1n.oVO__FPAwl_._FPAwl__FPArl_._FPArl__FPAws_._FPAws__FPArs_._FPArs__FPAir_._FPAir__FPAgets_._FPAgets__FPAputs_._FPAputs.oVncs.oVhc2.1n.oVO_fpgen_.fpgen.oVncs.oVhc2.1n.oVO__opinfo.oVncs.oVhc2.1n.oVO__fp_get_genr_._fp_get_genr__fp_get_fltr_._fp_get_fltr__fp_ea_addrtype_._fp_ea_addrtype__fp_inst_store_._fp_inst_store__fp_new_inst_store_._fp_new_inst_store__fp_inst_load_._fp_inst_load__fp_new_inst_load_._fp_new_inst_load__fp_load_._fp_load__fp_store_._fp_store__fp_getimm_._fp_getimm__fp_opnd2greg_._fp_opnd2greg__num_1s_tbl.oVncs.oVhc2.1n.oVO__fpfprX_findfpm_.findfpm_iskernel_.iskernel.oVncs.oVhc2.1n.oVO_FLT_NaN_DBL_NaN_set_stat_.set_stat_SetException_.SetException_SetOperation_.SetOperation_SetData_.SetData_FPround_.FPround__FPgetst_._FPgetst__FPsetst_._FPsetst_FPdovfl_.FPdovfl_FPfovfl_.FPfovfl_FPdunfl_.FPdunfl_FPfunfl_.FPfunfl.oVncs.oVhc2.1n.oVO__FPrdf_._FPrdf__Erdfa_._Erdfa__FPrdd_._FPrdd__Erdda_._Erdda__FPi2f_._FPi2f__FPi2d_._FPi2d__FPcpf_._FPcpf__FPcpfi_._FPcpfi__Ecpfa_._Ecpfa__FPcpd_._FPcpd__FPcpdi_._FPcpdi__Ecpda_._Ecpda.oVncs.oVhc2.1n.oVO__FPngf_._FPngf__FPngd_._FPngd__FPngfi_._FPngfi__FPngdi_._FPngdi__FPabf_._FPabf__FPabd_._FPabd__FPabfi_._FPabfi__FPabdi_._FPabdi__FPf2d_._FPf2d__FPf2di_._FPf2di__Ef2da_._Ef2da__FPf2d2_._FPf2d2__FPd2f_._FPd2f__FPd2fi_._FPd2fi__Ed2fa_._Ed2fa__FPd2f2_._FPd2f2__FPntf_._FPntf__FPntfi_._FPntfi__FPntd_._FPntd__FPntdi_._FPntdi.oVncs.oVhc2.1n.oVO__FPrnf_._FPrnf__FPrnfi_._FPrnfi__FPtrf_._FPtrf__FPtrfi_._FPtrfi__FPflf_._FPflf__FPflfi_._FPflfi__FPrnd_._FPrnd__FPrndi_._FPrndi__FPtrd_._FPtrd__FPtrdi_._FPtrdi__FPfld_._FPfld__FPfldi_._FPfldi__FPcmf_._FPcmf__FPcmfi_._FPcmfi__Ecmfa_._Ecmfa__FPcmd_._FPcmd__FPcmdi_._FPcmdi__Ecmda_._Ecmda.oVncs.oVhc2.1n.oVO__fADDSUB_._fADDSUB__dADDSUB_._dADDSUB__FPadf_._FPadf__FPadfi_._FPadfi__Eadfa_._Eadfa__FPadd_._FPadd__FPaddi_._FPaddi__Eadda_._Eadda__FPsbf_._FPsbf__FPsbfi_._FPsbfi__Esbfa_._Esbfa__FPsbd_._FPsbd__FPsbdi_._FPsbdi__Esbda_._Esbda__FPadd3_._FPadd3__FPsbd3_._FPsbd3__FPadf3_._FPadf3__FPsbf3_._FPsbf3.oVncs.oVhc2.1n.oVO_dFPMULT_.dFPMULT__FPmlf_._FPmlf__FPmlfi_._FPmlfi__Emlfa_._Emlfa__FPmld_._FPmld__FPmldi_._FPmldi__Emlda_._Emlda__FPmlf3_._FPmlf3__FPmld3_._FPmld3.oVncs.oVhc2.1n.oVO__fFPDIV_._fFPDIV__dFPDIV_._dFPDIV__FPdvf_._FPdvf__FPdvfi_._FPdvfi__Edvfa_._Edvfa__FPdvd_._FPdvd__FPdvdi_._FPdvdi__Edvda_._Edvda__FPdvd3_._FPdvd3__FPdvf3_._FPdvf3.oVncs.oVhc2.1n.oVO__FPsqf_._FPsqf__FPsqd_._FPsqd__FPsqfi_._FPsqfi__Esqfa_._Esqfa__FPsqdi_._FPsqdi__Esqda_._Esqda.oVncs.oVhc2.1n.oVO__FPrmf_._FPrmf__dFPREM_._dFPREM__FPrmfi_._FPrmfi__FPrmd_._FPrmd__FPrmdi_._FPrmdi__Ebmodf_._Ebmodf__Ebmodfi_._Ebmodfi__Ebmodd_._Ebmodd__Ebmoddi_._Ebmoddi.oVncs_FPSETTB_.FPSETTB_FPCLRTB_.FPCLRTB.oVncs.oVhc2.1n.oVO__Ebscalbi_._Ebscalbi.oVncs.oVhc2.1n.oVO__FPemulate_._FPemulate.oVncs.oVhc2.1n.oVO_xFPexception_.xFPexception.oVncs.oVhc2.1n.oVO__FPscalb_._FPscalb.oVncs.oVhc2.1n.oVO__fpfpf.oVncs_fpgetpid_.fpgetpid.oVncs_fpkill_.fpkillemulgen.o 597749067 0 10 100777 7795 ` 8فn`i@jP|BvDe0QpoL_ŵMX b"TP//2b2s""bsP Rb]p" b c3P??(&`cpqR01S`cp0 p2bp2b 0cd~bp2`b02Rc]pr1Rb]p2`bi02 Rb]p2b\Rb]p2b S2o2s_ResU`c0Ss_RpetC12b2s""bsb#b$70 2b2s""bs2b'2b2s""bs2b   eUP__r  0;  " ɁH bɁHbɁHɁH߈Aan`f g01Q|&vҪQpbL021ŀMũH %bpbp  C bp l bp l r10|PqQRbVsp&bs bp20c h$P0.sb}pqR01Sa Xsb}p0a X0a X0b`cdepDa Xsb}pc0qb0a Xsb}pb0a Xb0a Xr1 r1 r10 a Xa XhAn`|"v"5 SoR`0bpq_01R{@ B b0,b0,,Q anh`l0|,v211p jG:1pФpkЪc LŐ`yBb`c`h  b i `q1cbpqS34Rbcde,p b Mh %0abcde|b i `q1cbpqS34Rp b MR0abcdaܔ F b2tbp F b2 bpbcdepj1 b aLh!&anT`k0p;|+v11G6щ3Ѥ3dA4AdCL@7A`sѪdL@2ApcL5yBb`cph v7wA bi `c bpqS89RbcdeDtAp bMh >0abcderA1p b M,+gu rA|p b Mb Mbi `c bpqS89RbcderAx bm `Ъc bpqS89Rbs1dep b MҴx 0qbcdeЍkq1FbBXbcp q1FbBbcpbcdPp1 b a`p b Mh!+ant`m0|-v¤p=LŰ2L`pyBbch x{ bЍk `c bpqS01Rbcdep-"MbcdecbЍ a@h!#anl`k0p|;väL 0!ŀ*L 1!`yCbc`g p! bh `c bpqS23Rbcdepp+Mq!g bm `Ъc bpqS23Rb1depp b MF s bBHbcp bBbcp+@0 @ +@@0+@ 0+@0  1b baHh!%١n`j k0|*v*, /ɡ<"` d c pqT01Scа2# , , * * + +*, ɡ<ߨ!فn`|#p3vk0#M"" tC"bpj@M -b"F  ` d `c pqT0 1S`c ` d pqS01T`а Őפ ɁD߈!n`|#vҤb0c -" P//(8 @ @ @ @ @ @ @ @ 0! n`|#v""@'" "RU P%%  bЪ!pSdRL$M$BBbO0bs""b%s2@ BbOp"#b000 0! n``0pRdLM@ BbO#pҪ2b2sbs@ BbOp" bpҪ2b2sb s 0 b0! n`|#vp#@F%b0c@ <= @0=@ <7 @0=@ <9 @0=@ <; @0=@ -@) @ 4! n`|#vp#@F'b0c@J << @0=@ <6 @ 0=@ <8 @0=@ <: @0=@ -@* @ 4! n`C|#v"P@b-" ቀ n o m o n o o  ` oPpnLMc0RcSs32c=sS cp35cP0 0 4! n`C|#v"P@b," ቀ n o m o n o o  ` oPpnLMc0RcSs32c=sS cp35cP0 0 4! n`m |=6# 0 B^dB .  j  ^ $Header:emulgen.c 12.0$ !H``#%*#<%#%` ' )N!')+-``!()<'j!133!1333!13N!133 ! ; :! t; ! ` v! ` (! ! j!&!!!M@P P P$P4PTPXP\P|PPPPPPPPP(P\@d"Ph$Pl@p&Pt(Px@*P,P@@0P2P@@@@@@@:P@@@@@@@@ @@LP @(@<@@@P@\@p@t@x@@@@@@@@@@@@ %5FXgBw  h'4J:ZT^ 6%L-<5\=VE`Md\Ils{JLu ^y[:.1<}KvYhewB .4 X j % "6 ^K \nrp;i(emulgen.o_rcsid_emul_d_tbl_ops_emul_s_tbl_ops__emul_freg2freg_._emul_freg2freg__emul_freg2op_._emul_freg2op__emul_rst_fltr_._emul_rst_fltr__emul_get_int_._emul_get_int.oVncs.oVhc2.1n.oVO__FPabd__FPadd__FPcmd__FPdvd__FPcpd__FPmld__FPngd__FPsbd__FPabf__FPadf__FPcmf__FPdvf__FPcpf__FPmlf__FPngf__FPsbf__emul_op2freg_._emul_op2fregmcount__FPi2d_._FPi2d__FPi2f_._FPi2f__FPf2d_._FPf2d__FPd2f_._FPd2f__FPtrd_._FPtrd__FPtrf_._FPtrf__emul_monadic_._emul_monadic__fpas_prec_._fpas_prec__fp_get_fltr_._fp_get_fltr__emul_dyadic_._emul_dyadic__emul_moveop_._emul_moveop__emul_compare_._emul_compare_ffs_.ffs__emul_ldm_stm_._emul_ldm_stm__emul_set_round_._emul_set_round__emul_test_round_._emul_test_round__emul_set_clr_flag_._emul_set_clr_flag__emul_set_clr_trap_._emul_set_clr_trap__emul_test_flag_._emul_test_flag__emul_test_trap_._emul_test_trap__emul_init_mach_._emul_init_mach_findfpm_.findfpm__emulrtnes f881gen.o 597749067 0 10 100777 14689 ` &`<n`3 C |"y #,",1 n` rP2rS2D@`c C`c Sb,A ١n`j k0l@mP `Рc430Pcd`Ъb `Ъb cd bɡ<ߨQn``0o@0 "\P!,A qn`g h0i@jPbl bm bp|@b!b' `Ъ0pRTP`b1.d`\`b t10 `b1.d/`w!)* *s31sb0 $ $f609$ `bc& ba0|h!an|`f g0p'L081ŀM9N5x17w  ybpl p'F3w |'y  3bpu1d03!s`bcp@?P@.bpPŢܡ6bpPŲu|'u ;<`b601cpAeq`bQ,00612cpAp'F2u|'u0{! <`d O@|e\TdIE2c>3`2C b0`b16deЍ8p'F2b0!#""! `bcw AҪ1`0 '$$һ;$|'ys3`bcp@?P@r` Pm]`bcp@쉀b)6!|'u `b0cpde ᒔ  `bcdRܡ6`b006114121cp@Q,|b,RU=v!Rb0P`b16d8`b x10 `byA16n<ᒔ|'u `bA6cpe2 '**Ҫt1:$07$һt1;$s `bcpVba8h!!anl`g h0=p(L0:13M9N6bvAs1\;!{ bpc@?P@i b8ŢܡFb8Ųz1< yfibl s>|(u :`bF01c@ez1`0b"88!0s("pbsRP `byA1FᒤfLiyFfDi`bQ<@0F12c@  0<c3b/#Q@cP<2fi6 Rb^ReS`b1Fd !@8!F7  =b8ŢܡFv)|(u %?b!@`ce F01b0cAQ@ %**`bQ<@0F12cA(Q@  0<c3b/2bP,2651p(F""b."H"u1# Rc^eR`b1Fd p(Fb! ""! `bc,| @Ҫ1`0 ($$һ;$|(ys{;`bc@?P@e\UV`bc@ԉ 4!s|(u `b0cde)s s `bcdx!` ="b.RP`bw1d `b z10 `byAw10$s|(u `bcwAe} ;w1b0 $$t!,**Ҫ`0 ($$һ;${ `bc baHfiѤ1h!%anl`f g0p'L0=13M;N50816"7!bpvAu1h  b`cp@?P@+i bp0ŢܡFbp0Ų}1< :x1w!{ :z bpԉl {bpl :u|'u `bF01cpAeEᒤb)B9!`bQ<@0F12cpAW1 <`b0/ Q@`P b)9!0 Rb^ReP`b1FdܡFv)|'u %?bp!@`ce F01b0cpBQ@ %**`bQ<@0F12cpBQ@bP,1 <`d0Oy!p'F""b.B@B@0 Rb^eT`b1Fdp'Fb! ""! `bcz HҪ1`0 '$$һ;$|'ys `bcp@?P@@`{ eYP`bcp@ᒰ* *| ?Ҫ1`0 '$$һ;$|'ys`bcp@?P@e\Uy!R`bcp@̉s|'u `b0cpdes s `bcdwܡF`b@0F114121cp@Q<1@`0 =y!2b>RP`b1Fd`b }10 `b{A1Fs|'u `bAFcpeUᒰ* *Ҫt1:$07$һt1;$ `bcp|baHh!%n`pCG ,A ,! n`pCG ,B ,! an`g h0p(L`3abŲb` saaAp(O K" 1! mbm eЪY4Q@ 2A`b0drQsaa|(u`b0cdeoᒉ p(!1!p(OeЪY4QL02c>Cc@<33=tQ5BdNDC2AM*`bcde`bcdrQ`b `bcdg'sbsRP `bcdū`bcdrQ`b saa|(u `bcdeq!  (**һ1`0 ($$<$ba`ep(bp(h!an`g h0bŢ/bŲp(L3 M¤fdibl p(L|(u 01bpc@ei p(fAi`bQ012c@u  0<c3b/#vQcP<2fi6 Rb^ReS`b1dp(/N'|(u #5b6!``e !0!1bcAIvQ %* (*`bQ012cAWvQdPLu  0<c3b/#$&" Rc^eR`b1d`b0cde-p(Fb$ c1c7 c1c7 c1c7 c4CK`b B`b |(u `b  Pb!b' |@<b!b' b!b' B b!b' @b!b' B b!b' b!b' Jqb!b' Bb!b'@ BKb!b' Bb!b'@ B#dAdG $dAdG ` dBT dAdG TSdAdG TdAdGP TS[dAdG T#" dAdG $dAdG  dAdG  b!g' s ,**Ҫ1`0 ($$һ;$ba lh!فn`h i0p)MbɁDbl bm b"""` dbcj `bcdPUp)tROBP `bc|dp)F&' <@/ `bc@de`b 1`0 )$ $= $bɁD߈!١n`j k0bl p+Mb0cdeЍy` dЪD$2b!b* 2$2b!b* 24=b!b* 2$2b!b* 2!,;$#+$bɡ@ߨ!فn`h i0bl bm p)Mb0cdeЍj `Ъ0=b!b( 2b!b(0 2dD$2b!b( 24;b!b( 2$2 b!b( 20;b!b( 2;`0b!b( 2b!b(cdФT1`0 )$ $= $bɁH߈!فn`h i0bl p)FM&24`b01cdeᢪ=<`b 20;`b 2= 0`b 2`P;5`b 2M4`b 2;5`b 24 `b 2`b 4 `b 2 )$ $bɁH߈!an`f g0bpj bpk bpl p'FM% )1F1@m=9`b 2`b = 0`b 2`0S`b R TPb!b& RS b!b& RTPb!b& R3 b!b& 2F@`b B`bq0cpdep'F% ' b$ c1c6  c1c6 b$ c1c6  `b!b& b!b&cdqQ(ҪA`@ 7$$һc@;$L$aTh!n`l m0pG_R 4L MO@ bcЍ44! n`o e0pEL N ,bcP,! n`@0A|"y c ">02 "0Bp?0p0 @"02b@0 )" 88 #%&( >'H\'\*n.F_handle_uint_arg: invalid type_handle_uint_res: invalid type'P'@'|'(' l'''' ((4(L(TD`'dl !8't"F#V%%(|&(\(\((\(\(\(((\(\(l(\(\((\(\(\(((\(l(\(l(\(\(\((l(\(\((((((((($Header:f881gen.c 12.0$ DJDDhDDF6DTFzDHHJF\FDHHJF:DDFDJ*FRDlJF>JfLFDD0N^ND 8P JQp VH P S H H ~F Qp F xD S H 0H F Qp PVFDpHHSNFHSFQpVPFD$H6HvSSFFfS$F:QpP^PFDDPDfHtHSFlFNFlDxHHSpFS>FxDHHTpJFN BF D H!DD!NH!ZH"RD"^H#bD#nH#zH#H%*D%D& D@@@@@@@ EP@@@$GP(IP,@4@<@D@L@tKPx@@@MP@@@OP@RP@@@@@@@@@@@@ @@@@$@,@0@8@@@H@L@T@\@d@l@p@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @&`&d"&7&E'HM>V'Pbo'\{\'d't*'|n''.'!2'CU'gFz'(((4 l(L )(T9J(\Yi(lw(|D(`(l( (!8#(9"FP(_#Vo(%(%(&h''@_-f<HU_j{7:4_(f881gen.o_rcsid_f881_tbl_ll_f881_tbl_src_format_f881_tbl_ops__ea_gr_._ea_gr__ea_gr2stk_._ea_gr2stk__mv_stk2gr_._mv_stk2gr__mv_fpscr2gr_._mv_fpscr2gr__mv_gr2fpscr_._mv_gr2fpscr__set_fpcr_._set_fpcr__restore_fpcr_._restore_fpcr__f881_wait_._f881_wait__f881_truncate_._f881_truncate__f881_sub_2to31_._f881_sub_2to31__handle_uint_arg_._handle_uint_arg__handle_uint_res_._handle_uint_res__handle_operand_._handle_operand__f881_monadic_1_._f881_monadic_1__f881_monadic_2_._f881_monadic_2__f881_dyadic_2_._f881_dyadic_2__f881_dyadic_3_._f881_dyadic_3__f881_monadic_._f881_monadic__f881_dyadic_._f881_dyadic__move_fr2opnd_._move_fr2opnd__f881_cmp_all_._f881_cmp_all__f881_movem_._f881_movem__f881_testround_._f881_testround__f881_setround_._f881_setround__f881_test_flag_trap_._f881_test_flag_trap__f881_set_clr_._f881_set_clr__f881_commutative_._f881_commutative__f881_move_._f881_move__f881_init_._f881_init.oVncs.oVhc2.1n.oVO__f881_prec_._f881_precmcount__fp_inst_store_._fp_inst_store__fp_get_genr_._fp_get_genr__fp_getimm_._fp_getimm__fp_load_._fp_load__fp_ea_addrtype_._fp_ea_addrtype__fp_new_inst_store_._fp_new_inst_store__opinfo__fp_get_fltr_._fp_get_fltr__num_1s_tbl__f881rtnes fpa1gen.o 597749066 0 10 100777 13605 ` " qn`i j0k@lPb!p bLp b1!`Ъb A0ce Ҫ\PU`Ъb qAcҔp q $܊$bqPxAan`h i02AjP@1A\0drQa\|)vp8bl bm \br!"bpb` p)K" jfb`jb0de` k b1!jVqAA3ABTZb0dЍ k sAj@jf`bcde``b0qcdPr!#!` b!b( @b!b( b!b(t0qcdP1`0 )$ $= $qA qA)* *ba\hQan`f g0h@3Q4 bph 4|'v8bpj bpk `bsABbp1q I``b\c@m PPU2Q`bcd`bc@eq `Ъ`bcdeЍD`bc@e`PPU2Q`bcdrQ` `bc@e`0;`b 2rQ54`b 2Ҫ1`0 '$$һ;$t `bsA0AcpeF '**ba`mlhQan`g h0i@jPb!pbL 1!Ű`bX"`bpb|(w` (bk 0bpcdem `Ъg0bpcde (*T*v8q! b2!`Ъba0cd`e`ЪbrA0cPҔ`Ъb0cd`e`ЪbrA0cPq! r!"($$ba Xbl q! b2!` 5 `Ъbcde `ЪbA0ceҪj ``Ъbr1de҉D`Ъba0cd`eҪĪPê`Ъbr1deҔ;bЪ!b'0cd`er bЪ!b'  bЪ!b' b,$$q! r!"ܸ$ba X失hQan`f g0h@4Qp'LM@2A@1ARc^Bcp|7w 'bpm tQ0Qb`cpdqQl `bcpdqQH '**v8rA@pqACaib`c@el ;`b@e艀_sbsbpi b`c@el `b0cpdeqAC`bc@e`b0cpdeҙ '$$b`c@e艀l rA0 |3.pba`bpj 'p'K"  3bp3! s!!" `b0desĈÈrA@qACvc4`bde;43:`b 20@`b 2o1s'"pbsbpi `bcde`b0cpdeqAC!` b!b& @b!b& b!b&0cpdeҙ1b0)$ '$`bcde‰1rA0 |7|3.(p1$Ҫ:$ba`hAan`j k0Ȑ74p+6!L0513v1G2sq ua2"L`p|+yBbpcpm u1p+cM*rb&Mrp+cM K" hbh  4bh 4|+w bh 7`b 0qcdeЍigд} "`b 01qcdeЍ `b 0crAe_`i$v1Fb"hӉ ``b c@etU”s `b crAe”` bl8!`b A 0crQpv1Fb"hӉ i``b xAcet”` x!"+$ $w `b 0csAe+*% *u1 `b cdeЍ s `b 01cdsQ t +* *ba$ph!anh`i j0=@p:<1|!G;{4!9!4"9!t:bL`y!!5!b#L@2A@3AbL0>1?MD|*yBb`s1l ~1qD zp*b Mrbxg =rAu!p b Mbxh @|*w@w%bxg ={ ~1-`b 0acdpepf3hpbxh @`b sA0Acdep3{~1rA[Y|!F #sA@t923a4rAa~y!!p bMbxh @bxg = `b zp:cM01acdpe`b 0ctAepynf  `b 0ctAepe`b zp:cM01acdpeᲤ4Ef @0`0p*K"8}5rA82 |!F `pghyt!49!``sa3`rщ2bx7!=`b 0q1acwAewqfl M <|!F  07p*Kbx6!=`b 0q1acvAeᲉ'vq`b 0q1acdperA3`b 0ctAepsAL ErA2p*K" `b 0sA1Acde,bx8!@`b 0sA1AcxAeᲉx`b 0cyAew@2A  mrA `b 0cyAeaᲔc `b ctAep2Ე b\!H`b AH0ctQ`|!Fb"b.2XÉ! #*"2bp!"#eQVR_`b AHcdᲔЎ!H"*$ $rA _sAC `b cyAerA@ b\!H`b AH0cyQ`|!F2`0b"XÉ `p eQVR8_`b AHcdrA@ 3!H"*$) $|!Fb"b.2XÉ! #*2bp!"2eQVS_`b c@d|!F sb\!Hb\m `b AHcP߸UAH`@04`b 2`b  H0 `b 2dЪD4`b 2`b  1H0`b 2=`b 2!H"1`0*$ $=D $|*w~1D`b 0cAep)~1 `b cdpe-쉀D `b 0q1cQAD} ' * **@ ** *baLh!&n`m |=6#0 ١n`k l0pL @N_MMPO 01䉀Gm M]0A_;m  OM_ԉ.m b`j p,LP0QbcAe<m `Ъk p,LPbcd} ,* *bɡDߨ!an`f g0p'M5O2t'D޴ 33bpNt!##d|%%Hb%%P.#Lf#4Vt4%%%#%2#Z% ! T j! # # ! N -   " j/    d / . -  l 6//./b///8/pH`n3/5<n/"Vb~;%#% #j%#%#".J;%#%#4%L#d%~#3@Nf3BPh3tN\t3v3J3   3 !!!!3!"@@@@@@P PP@@ P$P( P,"P0@8$P<@@@H@L@P@@@,P.P@2P@4P@@:P@@@@ @(@0@8@@@H@P@d@h@x@@@@@@@@@@@@@@@@"##(#2#<$HU$a$mth~'."#3#ifM7( #:M$_AXr_:n/?$ D$(),9$tH BXyd[q$ "B;$0c$M!2D$Q_$o$h4$w6$Bp%j%xv#%28 B0%Q!a'% mfpa1gen.o_rcsid_fromint_fromuint_fromsgle_fromdble__fpa1_init_._fpa1_init_shiftflags_shifttraps.oVncs.oVhc2.1n.oVO__fpas_ops_tbl__fromprec__fpa1_storelo_._fpa1_storelomcount__fp_get_genr_._fp_get_genr__fp_opnd2greg_._fp_opnd2greg__fp_new_inst_store_._fp_new_inst_store__fpa1_freg2seven_._fpa1_freg2seven__fpa1_seven2freg_._fpa1_seven2freg__fp_inst_store_._fp_inst_store__fp_get_fltr_._fp_get_fltr__fp_inst_load_._fp_inst_load__fp_store_._fp_store__fp_load_._fp_load__fpa1_op2freg_._fpa1_op2freg__fpa1_freg2op_._fpa1_freg2op__fpa1_monadic_._fpa1_monadic__fpas_prec_._fpas_prec__fpas_freg2freg_._fpas_freg2freg__fpa1_dyadic_._fpa1_dyadic__fp_new_inst_load_._fp_new_inst_load_findfpm_.findfpm__fpa1_move_._fpa1_move__fpa1_storem_._fpa1_storem__fp_ea_addrtype_._fp_ea_addrtype__fpa1_loadm_._fpa1_loadm__fpa1_setround_._fpa1_setround__fpa1_testround_._fpa1_testround__fpa1_setflag_._fpa1_setflag__fpa1_testflag_._fpa1_testflag__fpa1_settrap_._fpa1_settrap__fpa1_testtrap_._fpa1_testtrap__fpa1_clrflag_._fpa1_clrflag__fpa1_clrtrap_._fpa1_clrtrap__fpa1rtnes fpa2gen.o 597749067 0 10 100777 7960 ` T(n`@ A# 3#,",#,1 ١n`k l0m@oP|w ]DQ@0dɡ@@ D0 ɡ@!D"23b"b#p" *"ѪҪ  Ѫ-" Ѫ-"bc@eɡ@@ߨaan`h i0j@gP1pL` (aT0 |9|3.ppL0rp'"bprp ) K/  mb,m 1z'`Ъ`bc@ejps bMosrp b0l `bcd`ep4fpĪ|ê>`bcd`e`b   )$ $q )* *baThA١n`l mPb@!pSoRL\M_0]poLT0]Qb,ɡ< ɡuvQbLŠŰMR3Q|vQbL021071M2;1yDbw1i 1@~  sbpxl =r1 {bpxm Dz1@r1t{1~0oy!F $w10 u<27sQ;Q5~Q͡@3Qr1{bpxm D  bpxl =`b0cpuAe,ȠrksQp'K" gssQ\ bbpxl =`bsQ0Q1cpdeRႉKk `bsQ0Q1cpde>`b0cpuAeႤ5Ƞ%k  sQ05p'Kbpxl =`bsQ0Q1cpdek (  `b0cpuAeႉȠ`b01cpder17w19pW6QFeЪQ4QRUPU`bcp{AH0P21r1 `b0cp|AeЍ^021eЪQ84Q vQK% `b0w111cpdeeЪQ4Qbpx8!D`b0w111cpxAetxeЪQ4Q {r1 `b0cp|AeЍ `bQH0cpuA}႔y!F"""" `tQV#Py!F""23! #*"2b!"2tQVSP`bAHcpH႔sQ!H%"'$$r1 j`bQH0cp|Ar10y!F"""" ` tQV#R21y!F"""" ` tQVRS`bAHcpHr10 2{1!H# -"'$%$y!F"""" `tQVP`bcp@H1@ `bcpde ~ `b01cpQ~A@} ,* '*D '**baLeЪQ4Qh!&n`m |=6#0 ١n`k l0|LpA ɡDpL @N_MMPO 01܉Gm M]0Aw;m  OM_,䉀.m b`j p,LP0QbcAeTm `Ъk p,LPbcd ,* *bɡDߨ!فn`h i0|)pA )D޴  bcɁDp)M20 ɁD   !`  ```! Ѫ!`  ```bXj `bܪcdЍ `bcdP|U$p9OC` teP `bc\d |>P`bc$Ҫ )$ $bɁD߈!an`0!11|CpA a Xq1p#M2 a Xq1tO#D޴ q!Hf Ȱ r * g``p!bc`deЍLg`| P`p!bq1dp ܠfq1#$q1$ba Xh!TJ0fpa2gen: _fpa2_freg2op,opndtypefpa2gen: _massage_operand,opndtypefpa2gen: _fpa2_monadic,argtypeLN,h,h,h,,,,h,h,h,,h,t$Header:fpa2gen.c 12.0$ Vz p"<\$ p&"(*N", (&*L(`*. pf"0j&~&1p4"J1p|"1p"3&& & 8& & & " @& 1p 1p <" 1p 1p " P1p "*05Xj7&Z9(;"<*`"=("*P"@@ @PP!P @H#PL%PP'PT)PX@+P@-P@@/P@@@@@2P@4P@6P@8P:P@cdp @sr bЍ"a@pRKf~ MOQ   @S P p S   M U W  & 2Y >W NM ZU nW z Y W  U [  ` ` < J b[@@ P P PPP P$P(P,P0P4P8P< P@"PD$PH&PL(PP*PT,PX.P\0P`2Pd4Ph6Pl8Pp:PtP|@PBPDPFPHPJPLPNPPPRPTPVPXPZP  |h%'*Z 2";B;KU]fnzw^&X (1r9:BtJ<S[JdlLu>}@$46`(TV!J)2L:CpK8T|\De~mFvZ~"\$+Iq!g+6fpfpx1.o_rcsid.oVncs.oVhc2.1n.oVO__fpfpx_._fpfpxmcount_findfpm_.findfpm__FPArs_._FPArs__FPAir_._FPAir__FPsetst_._FPsetst__FPArl_._FPArl__FPsbd_._FPsbd_SetOperation_.SetOperation__FPi2d_._FPi2d__FPi2f_._FPi2f__FPAwl_._FPAwl__FPd2f_._FPd2f__FPAws_._FPAws__FPf2d_._FPf2d__FPrnd_._FPrnd__FPrnf_._FPrnf__FPtrd_._FPtrd__FPtrf_._FPtrf__FPfld_._FPfld__FPflf_._FPflf__FPadd_._FPadd__FPadf_._FPadf__Ebmodd_._Ebmodd__FPcmd_._FPcmd__FPcmf_._FPcmf__FPsbf_._FPsbf__FPngd_._FPngd__FPngf_._FPngf__FPdvd_._FPdvd__FPdvf_._FPdvf__FPrmd_._FPrmd__FPsqd_._FPsqd__FPsqf_._FPsqf__FPmld_._FPmld__FPmlf_._FPmlf__Ebscalbi_._Ebscalbi__FPabd_._FPabd__FPabf_._FPabf__FPrmdi_._FPrmdi__FPgetst_._FPgetst_set_stat_.set_stat_SetData_.SetData__FPAputs_._FPAputsfpfpx3.o 597749064 0 10 100775 1020 ` pT8@n`"""P"02-0B,1 n`3633p09p1pqQ01R4! n`"""P"02,! n` "p", n` "p", n` ߸"p", n`0߸3p333? ?"0, 4t($Header:fpfpx3.c 12.0$ @ 4@@ @@@$@,@4@ ph%'*t2;B|J4S[tdlu}zag(fpfpx3.o_rcsid.oVncs.oVhc2.1n.oVO__FPAwl_._FPAwlmcount__FPArl_._FPArl__FPAws_._FPAws__FPArs_._FPArs__FPAir_._FPAir__FPAgets_._FPAgets__FPAputs_._FPAputsfpgen.o 597749065 0 10 100777 5687 `  \dٱn`m y- 0 0 1230xM@H.@@  "`P// D ABH@9=8Mbq20p2`@ c@z-p ? "#ɱ,d@  "P// y Xu ["9-ɱ,d !ɱ,d 9u  6ȱb0$ob1pqS01RrsS23Rt461:~A(bcp  |=.p!( ɱ,d"ɱ,d"ɱ,d߸ant`i j0g@hPȱL!Lc@pqS8A01R( ```p0 ` !a@u*# |:.pd#X  }:.pm u* 0v 5  A P TO XbH7*0bcdepLw b"2bp A0bcepL }:bp A0bcepLw QRb"`PcpC@2bP!%"" !x1dPLk "xȁbc#Tk bcdeRX3k 0abP!%"" SSpCqxbpc`pk bpcd`e(Xk bpcd`g\k l  w }:.pm hV6{:aqxbpi |:.(pbpcd`bcd`edbp0dhk hbx !xAcebd !xdAc`  w }:bp /a@hA@cّn`0$<4?T@@2?$?&wK* +K*+GpnoLMZc2c436poLŪrc?4&?4&4$?4$Si^4&54&4$5[4$0=S4+54+4*5K4*Q]T&_T&T$_T$3É7Q mms݀poL3ÐS#"]U15S4&54&4$54$  0 ␱G2m$$2$&#$&(,=>Dɑ@ߘQqn`h i0j@$py bk Gb rp)bsRb!b(c@ `0`b!b( 2p b!b( #b!`*dK @ ;b( 2b!b( 2b!b(  b!b(  +`c #bqHx1n`|CwD DTUPEE  p3M3430`b 2b,! an`g h0i@6Q1`!2! '菴 ba$ , (mbp1dЍ9,0<2#"` r) 2)"#(9,1)*11+;!PpG_CdPAbLL0M "`0)$ $pɉ(G$M "`0 $ $pbLLBDCMBDDb0$" )$pGQ_ 0 D!3!|9wc3Ctcp1!"H0|)wb"B5Ap!cuApf 0r 2 ( bpcj ``b"Hc b`cqdAs!`c!dЍmcd`Ap!ᆤ@p)G2C`@b v  6p)G2AC 08b0!b'" ,"b.Ͳ;8 b+!b'"Rmv!cCK; r!/ PC b菉 b 鏉 (a$!3!H^0$GhA@ّn`i j0ں( (b" "cк2*(#*(}*!=*! b$2`b!b) 2!" 0b!b) 2b$"/c1c9 #c1c9r* #r*$2*bк  Űbɑ@ߘ1فn`h i0(} Ib}9# b(2`b!b( 2## 0b!b( 2r)$2)b$"/c1c8 #c1c8r) #bк  } bɁD߈1n`pGߴ =eReTv 4 1sos0o0n 1o0n 1npnLsURe_tU0Qe0QoRQ _1e0QoRQ _1pGߐ b04G1 ٱn``0pTGUQ 9oPov 10oPpoL0k0om  nРo "ߒQɱ<߸A0fpgen: setfloatstatefpgen: fpglue version mismatchfpgen: No space from fpalloc()D (   N$Header:fpgen.c 12.1$ T``4 P"$H  ,'p'p >)\+) -/`"r)0p ) ) $) " :2  2  Z@PP PPX@xP|!P#P@@@@@@@(P@*P@@,P.P@@@@ @(1P,@4@<@   0@@DO_r  (  N ! .9 ELhV'[ig's_G<\{XpUf 1C4PU[fpgen.o_rcsid_codertnes_RT_instr_len_tbl_block_sig_mask__pick_support_._pick_support__init_global_info_._init_global_info__gen_alternate_._gen_alternate__gen_which_._gen_which__push_and_pop_._push_and_pop__put_imm_vals_._put_imm_vals__relocate_._relocate__push_greg_._push_greg__pop_greg_._pop_greg.oVncs.oVhc2.1n.oVO__emulrtnes__fpa1rtnes__f881rtnes__fpa2rtnesmcount_iskernel_.iskernel_bzero_.bzero_exit_.exit_fpgen_.fpgen__opinfo_bcopy_.bcopy__fp_getimm_._fp_getimm__fp_get_genr_._fp_get_genr__fp_ea_addrtype_._fp_ea_addrtype__num_1s_tbl_ffs_.ffs fpops.o 597749065 0 10 100777 322 ` H$Header:fpops.c 12.0$@ h$')2fpops.o_rcsid.oVncs.oVhc2.1n.oVO__opinfogeneral.o 597749066 0 10 100777 3839 ` Ttxn`m -$ "2=$0=$0-&"A@=& & ( (0 n`m -* "=*0=*0-+"@B=+ + , ,0 n`:Q_ P4ST`c S`c* !o0d Q*dPO(B P 2 2 Sb,1 n`:Q`@e *e_(R 4R R $,1 ٱn`=Qk l0m@b` c A6c@?4;  ; ; C4",$ $b0ɱ8߸1n`:Q`@e *e_(R 4R R $,1 ٱn`=Qk l0m@b` c A6c@?4;  ; ; C4",$ $b0ɱ8߸1n`:Q< *p404 2B_ P4c1c2 c1c2* (e0Td *dO(B  2 2 p$ b,1 ١n`j k0l@mP1#<# >0 ʉR?  "2<=b!b* 2b!b*1> 28b`  c A>c@?<: @  : : C  0 "12+$2;$bɡ<ߨQn`9ATT 4 <O@ 4 "& *Q&P o0d B TA$@ 2 2 C 4 "$ b,! ٱn`oPplL>-#3! +M,"80$RcSsc s3ep4M d%` RcSs3c sSp4dPn ` M,$0$M," 0$ 0 bɱ<߸Q Xj>$Header:general.c 12.0$  H   vJ@@ P@@ @(@0@4@<@D@L@T@\@d@h@Th&'+X9fHOTZ:dhwl_t|7njB*4>?J/Vbo~M4general.o_rcsid.oVncs.oVhc2.1n.oVO__fp_get_genr_._fp_get_genrmcount_ffs_.ffs__fp_get_fltr_._fp_get_fltr__fp_ea_addrtype_._fp_ea_addrtype__fp_inst_store_._fp_inst_store__fp_new_inst_store_._fp_new_inst_store__fp_inst_load_._fp_inst_load__fp_new_inst_load_._fp_new_inst_load__fp_load_._fp_load__fp_store_._fp_store__fp_getimm_._fp_getimm__fp_opnd2greg_._fp_opnd2greg__num_1s_tbl xFP0.o 597749061 0 10 100775 496 ` H|n`., n` , $$Header:xFP0.c 12.0$ 0@T@\@ Hh#'(bL1;:DK<U\$`xFP0.o_rcsid.oVncs.oVhc2.1n.oVO__fpfprX_findfpm_.findfpmmcount_iskernel_.iskernelxFP1.o 597749062 0 10 100775 4580 `  فn`m ͢@Ȑkݢ@ݢ@PUݢ@ݢ@@Dݢ@ݢ@cō hň hň ݢ@ݢ@ݢ@ŭ ͢@hň hň ݢ@ݢ@ݢ@ŭ ͢@hň hň ݢ@ݢ@ݢ@ŭ ͢@hň hň ݢ@ݢ@ݢ@ "͢@m m@@@ 㭉ݢ@@@͢@m m bf !ɁDc;3n>3;ݢ@c=3o?3=ݢ@c63eVU536ݢ@c73eWU537ݢ@;dID439ݢ@bɁD߈n`l m02D C#" C#"4! ٱn`k m0l@2D @#" ?A#" ?B#"B# ɱ8߸1n`l m0"H0‘$04! n`nP~_l}e\S Q J"RUP%%8<^ b/# ?1b/# .p.!0.*0'?$??$$!/2b/# p.!0.0?$$/2b/# p.!0.0!0?b04q n`"@, n`m @0 ّn`i j0k@l m @  R"P//"Fj 0 0 :1 0 0 '1 0 1 0 1 0 1 0 1 p-q= ;   > . c p#q3ɑHbp 0q 1  > . c p#q3ɑHߘ1ّn`i j0k@m @  4"8P//,> #    b0T     . b p"ɑ@b0   . b p"ɑ@ߘ1qnATQX`!L1PATQXg 3`@!\` " Xc?#!\X?!T\"h OX b/X, !\,\1\!(i0埨k@ APQX01 2!\X !T!!T(c2!\#!\X%QXbк*2, kb l0˸ Xk=i哨1@ APQX011 2c|!\X !T!!T*(c2!\#!\ҪbSX XX Xb! !XȀ  ँX1X`кi哨4@ APQ01 2!!\t ҈\TTݱX'@X\&"㒎k +ֻ` !P+cs IT# + !L >.q\cp#q3q\   d!L >.q\cp#q3q\T J$ G!L >.q\cp#q3q\!P L03c70#1 >.q\p#q3q\&щXXXXxAqn`j k0l@iPm 3` *!\  b!ř㒉0/o0dBR 1\i0㔺2 ݑ\4! ٱn`k l0m@ bp 0  bɱ8b0-1=ɱ8߸1n`,b-4! an`f 4!l Ŷ3`h c1*@p8`0 qXP 'ؠ`0 b0ܤ!   "bp"adp8:08qX@D`00  "bp"adө}գi0.P  %?0  "bp"ad 0  "bp"ad @b&" jb/" e%QR 5! EQ012c@de u  ؐq'$U]*)cPt    "bp"ad$  "bp"ad0Q51b`cdpe adQP 5! @ EQ012c@de u   q < @b(" ) %'$U]*)cP   "bp"adbs1d`ad坪0ct b00   "bp"adqXqXhn`91:Am l byzQ01RbЍ0 ٱn`k l0m@` bp q\01R  bɱ8b0-ɱ8߸1n`,b-4! فn`h 3Ll cЪ1 @Pmip 0b##5  2ذ@b+-b0!T   "p-ɁXp 0   "p-ɁX   "p-ɁX@4Ap k  "p-ɁX9 ê 0D$ @ Q01A 2dc tA0 A4A@@4A 㠉s1131 @ j ؠ?  ؠj0 b0 T   "p-ɁX0  "p-ɁX߈n`l m0D b0b4! an`g 538l cЪ1 @A?Q`A?Q3}A@ M1~! `0c ?0!A=A 5 0?1$>!@|!Q801 2dЍ ?!s !Dp 0~! !Dp0;>$5> ~b) >!~b( >!@|!~1Q401 2dЍ >!s !Dp 0~! "@Aٱn`k l0m@ bpBPo@ "`@  ɱ@0p 0  ɱ@ɱ@H@01bɱ@߸1ٱn`k l0m@ bqRpBo@ "`@P  ɱ@0p 0  ɱ@ɱ@KdPE@[01bɱ@߸1n`l m003`=0no@eTWMG @@b04 4!4 `Pe@d`lmT!4T 4!4 4 4! ١n`j k0l@mP03` <=0eSdCn` ` @@b0ɡHJT&V   0 `      : j     & D x 5  5  5 7 H P h  5  5  5 *7 h     5:B5v~57,45px557@@ PP@@ @(@0@8@@PDPH@L@T@X@`Pd@l@p@x@@@@@@@@@@@@@4P@6P@@@@@@@@ $(#8+B4D<ELMVT^gnhx'};t\<XQp|Lq$q-7@?HQy[rc:lMuJm > u 6 4e < \"4* 3<aF$NWxFP4.o_rcsid_xFPint_.xFPint_fFPint_.fFPint_dFPint_.dFPint_fcmpFP_.fcmpFP_dcmpFP_.dcmpFP.oVncs.oVhc2.1n.oVOmcount_findfpm_.findfpm_FPround_.FPround__FPrnf_._FPrnf_SetOperation_.SetOperation_set_stat_.set_stat__FPrnfi_._FPrnfi__FPtrf_._FPtrf_SetData_.SetData__FPtrfi_._FPtrfi__FPflf_._FPflf__FPflfi_._FPflfi__FPrnd_._FPrnd__FPrndi_._FPrndi__FPtrd_._FPtrd__FPtrdi_._FPtrdi__FPfld_._FPfld__FPfldi_._FPfldi__FPcmf_._FPcmf_FPSETTB_.FPSETTB_FPCLRTB_.FPCLRTB__FPcmfi_._FPcmfi__Ecmfa_._Ecmfa__FPcmd_._FPcmd__FPcmdi_._FPcmdi__Ecmda_._Ecmda xFP5.o 597749063 0 10 100775 9140 ` @an`j 615A4Q7h t1uؐm`0 g3v!#e(fP@b$'b0$'"ֻ  3621 \ u0   " bp"a$p0 t0   " bp"a$p0 ! c "0#a$p   " bp"a$p+0 t0   " bp"a$p0   " bp"a$p00sAt @`1"' 63#0&   " bp"a$p0$sAt @00   " bp"a$p@e@  O 71!0_ 7񨱐l 4 !  ְ? 0? ᳔  "? @岉m @ [ 7㵐"sAt @00   " bp"a$p `  ` ``` 01bcdPa$pֻ8@ MMOQ 012ck x  ֻ N@b'+0w   ,   " bp"a$p"    " bp"a$pbv1da$pw Jb+,0     " bp"a$p sAt @k0   " bp"a$pګhAan`l j084A5Q9k A|Qxu1tѪh3խ76pb'$bP'$"ߪf0g֪9   f0of֪1_fPie@WVIRf@oQVA 0 t0u1  03p# q3 c p#q3a,xP@ x0|1  03p# q3 c p#q3a,xP8@63 1!   03p# q3 c p#q3a,x b 03pqS01Rp#q3a,x  03p# q3 c p#q3a,x;P@ x0|1  03p# q3 c p#q3a,x01  03p# q3 c p#q3a,xP1@/0vw!  @s0s0  03p# q3 c p#q3a,x.0,cP?ACQcP7I418"$ Y_%0(  03p# q3 c p#q3a,xp .d 9f@adPOFQ!P@Ac q9qqf0acЫ?6ѐ01i 7O C ! "? 9=321@j0 2$ !9!MB3U "?R 9MDBA@g@p QB# !9!=2 9=2 9MB@4b0 3?Ք  "?d@ 321 2ؠ  "?s 91==07Ґ2-0+vw!  @001  03p# q3 c p#q3a,xp ` `Ъm0Ъ1`  `0cЫ>001<1bcdeЍa,x10: @ JJOQ(01$2c z } А  Y)$*`Ш cЍy   4  03p# q3 c p#q3a,x"   03p# q3 c p#q3a,xbx1d a,xy ZgШyybpcЍ    03p# q3 c p#q3a,xcmp 0vw! @Ѐ018  03p# q3 c p#q3a,xgШy׫㚉yhaqn`l k0g ŌmŻcЪ1dA (`ЪipIb@ #$ ؠ@b@*!ܔ p 0   "bp"qHkp[bP # ؠ@`P !ܔ p 0   "bp"qHbcЍg qHx!qn`g h0j ŷic1 )@b0 `$ !@` !̔ ㌪b0  "bp"qH`m pM`@# @`@ !̔ p 0   "bp"qHbpceqHx!n`m@ p3p0p3f0-01 an`g ŧ2ck `l h3``m ic1a *d`pH `@+sq $؀`@! p 0  03p#q3cp#q3a`p c22; q) &؀b(3! p 0 q 1  03p#q3cp#q3a`sqX01!bpr1a`q)q)h!an`g0h@f k Ŧ2`l ic1 +@bpc `p) $`p ! }0|1 03p#q3cp#q3a XpI`@7qYP $`@ /! p 0  03p#q3cp#q3a X0q1b`r1a XqYqYhn`m@ qCpcY0qCpcM0-1=01 qn`l k0g ŌmŻcЪ1dA ,`ЪipIb@ #$ ؠ@b@*! p 0   "bp"qHkp[cP00#% ؠ@bP*! p 0   "bp"qH0 bcЍqHUbcЍqHx!qn`i j0l kc1 -@b0 `$: !p@c7! 㧪b0   "bp"qHc3hP@@@ h#'(2=D;MWr`ju~\qLB4b2<,D  HX$3T<1 JF\NgPWh_htq-{|c`(X)~'^&%Z#g :#N-k6@<HQZdxFP5.o_rcsid.oVncs.oVhc2.1n.oVO__fADDSUB_._fADDSUBmcount_findfpm_.findfpm_FLT_NaN_set_stat_.set_stat_FPfunfl_.FPfunfl_FPround_.FPround_SetData_.SetData_FPfovfl_.FPfovfl__dADDSUB_._dADDSUB_DBL_NaN_FPdunfl_.FPdunfl_FPdovfl_.FPdovfl__FPadf_._FPadf_SetOperation_.SetOperation__FPadfi_._FPadfi__Eadfa_._Eadfa__FPadd_._FPadd__FPaddi_._FPaddi__Eadda_._Eadda__FPsbf_._FPsbf__FPsbfi_._FPsbfi__Esbfa_._Esbfa__FPsbd_._FPsbd__FPsbdi_._FPsbdi__Esbda_._Esbda__FPadd3_._FPadd3__FPcpd_._FPcpd__FPsbd3_._FPsbd3__FPadf3_._FPadf3__FPcpf_._FPcpf__FPsbf3_._FPsbf3xFP6.o 597749063 0 10 100775 6246 ` \|an`j k06A4Q9h tv 3M `:`0  ªЪҪs3 z bv0   " bp"a,x+(!    " bp"a,x c "0#a,x bt0   " bp"a,xs3bs0   " bp"a,x^ bt0   " bp"a,x+ (!    " bp"a,x c "0#a,xs3bs0   " bp"a,x bs0   " bp"a,x ?c2051- 7!f u!cЌ8!w!cxgbc`pd @7g470fpp: ``bp/b`q: 0q@1bs1de`a,xp o@ 6Q(01$2sAf z: O)@:!'s &0y   ,   " bp"a,x"    " bp"a,xs!cda,xsly !b0     " bp"a,xb0   " bp"a,xhAan`f g0h@iP051m Qx͡t3l 4  倪c73リ  c?リ cP7ţ㠪Y`P㠪Qt   03p# q3c p#q3a(t63P1!  03p# q3c p#q3a(tb 03pqS01Rp#q3a(tP "sb}t0x1 03p# q3c p#q3a(tsb}0¤012 03p# q3c p#q3a(txP sb}t0x1 03p# q3c p#q3a(t6 31!  03p# q3c p#q3a(tb 03pqS01Rp#q3a(tsb}0¤012 03p# q3c p#q3a(t  !Psb}0¤012 03p# q3c p#q3a(t0bcd%  x!y w7vQw0@1b`cd a(tv6yx!w1# >171 @ Q0 12dj sv1 061  Xb0++5:u   4 03p# q3c p#q3a(t"  03p# q3c p#q3a(tbcpd`a(tu Ib0++5:  : 03p# q3c p#q3a(t;;sb}02v 1 03p# q3c p#q3a(t㼉v1haan`f g0j Ŷhŗc1dA 0`l pLb@ #$ @b@-!ؔ p 0   "bp"aLip9b0 " @=!ؔ p 0   "bp"aLsbzpRb`c aLh!qn`g h0j ŷic1 1@b0 `$ !@` !Ȕ ㌪b0  "bp"qH`m pM`@# @`@ !Ȕ p 0   "bp"qHbpce!qHx!n`m@ p3p0p3f0-01 an`f g0j Ŷhŗc1dA 2`l pL0`@*q $`@ ! p 0  03p#q3cp#q3aTsbzpeSS<0q20 (c=4! bp 0 q1  03p#q3cp#q3aTq\011b`caTq2q2h!an`i0j@h l kc1 3@bcb +) &`b&!! 㖪b01 03p#q3cp#q3aTb#g,pGb@ 7qWP $``@/! p0 03p#q3cp#q3aT01bcaTqWqWhn`m@ qCpcX0qCpcL0-1=01 n`l m@  bcЍd 41 n`l m@  bcЍn 41  `   V$Header:xFP6.c 12.0$  p p p6 ph p p  p p( ph p    *f  p  p.: N px p fp pppXpp ppLppP p p  4 @ Tp p  " , F p | p  "  0 L p p  * 2 R" p p b l "  p" <p0&64@@ P PPPP P$@,P0P4P8@@!PD@H@P@X@\@d@h@p@x@|@/P@@3P@ \`%,h6';B;KUr^hs:z\qLL2ZL<,\#$ ,X:I!R \d mZu" ~ V{<w:xFP6.o_rcsid_fFPMULT_.fFPMULT.oVncs.oVhc2.1n.oVOmcount_findfpm_.findfpm_FLT_NaN_set_stat_.set_statlmul$$_FPfunfl_.FPfunfl_FPround_.FPround_SetData_.SetData_FPfovfl_.FPfovfl_dFPMULT_.dFPMULT_DBL_NaN_FPdMULT_.FPdMULT_FPdunfl_.FPdunfl_FPdovfl_.FPdovfl__FPmlf_._FPmlf_SetOperation_.SetOperation__FPmlfi_._FPmlfi__Emlfa_._Emlfa__FPmld_._FPmld__FPmldi_._FPmldi__Emlda_._Emlda__FPmlf3_._FPmlf3__FPcpf_._FPcpf__FPmld3_._FPmld3__FPcpd_._FPcpdxFP7.o 597749063 0 10 100775 6492 ` Xqn`i j0k@lP3g ec mP#؀`P@4A`0_XQ?81oP b0   " bp"q\?0 b0   " bp"q\!    " bp"q\ c "0#q\تb0   " bp"q\k0\*P(!    " bp"q\ c "0#q\(    " bp"q\تb0   " bp"q\b0/ 1b0/ ```-0 b0   " bp"q\b0   " bp"q\%Pb0   " bp"q\bP/ QAbP/ ```4d S SϪQP! P  @` 4d`   01bcФPq\@  j v p p   8 f p p   8 D j p p  d l  p Bp  p\ vp 0-`p1@@ P P PPP P$@,P0P4@<P@@D@L@T@X@`@d@l@t@x@,P@@0P@ h#'(1<;B;KUr^hs|\qLl2<,L  X /8 BJ SJ[ Xdmw W:[T<xFP7.o_rcsid.oVncs.oVhc2.1n.oVO__fFPDIV_._fFPDIVmcount_findfpm_.findfpm_FLT_NaN_set_stat_.set_stat_FPfunfl_.FPfunfl_FPround_.FPround_SetData_.SetData_FPfovfl_.FPfovfl__dFPDIV_._dFPDIV_DBL_NaN_FPdunfl_.FPdunfl_FPdovfl_.FPdovfl__FPdvf_._FPdvf_SetOperation_.SetOperation__FPdvfi_._FPdvfi__Edvfa_._Edvfa__FPdvd_._FPdvd__FPdvdi_._FPdvdi__Edvda_._Edvda__FPdvd3_._FPdvd3__FPcpd_._FPcpd__FPdvf3_._FPdvf3__FPcpf_._FPcpfxFP8.o 597749063 0 10 100775 3516 ` PPٱn`l k cЪ1 <@ mp= `0  ذ@;! p 0   "p-ɱ8bЍbЍabɱ8߸n`l m0 b0b4! ٱn`k l0m@ bp 0  bmɱ8bc0-ɱ8߸1anp`h j Ÿc1 >@`l p q\9:Qy z 03p#q3qQ{A@;A}|Q0~1/7~ Z;Q~Q}A0qs1/7~ Z=>Q|Q{A0r!1!/7~ Z; x   F | ,$Header:xFP9.c 12.0$  4 ` zp p&JR    p> \p  jpp pp.pd xpx!p  . Hp~ p  R Z x p (p  @@ P P PPP @$P(@0@4@<@D@H@PPT PX@`@h@l@t@|@  h#'(r 0:9@;ISXapzr< #M >p 8x2I  Bb)30>& GQ [7 f$ ,o Fy 43 |xFP9.o_rcsid.oVncs.oVhc2.1n.oVO__FPrmf_._FPrmfmcount_findfpm_.findfpm_SetOperation_.SetOperation_set_stat_.set_stat_FLT_NaN__FPf2d_._FPf2d__FPcpf_._FPcpf__dFPREM_._dFPREM__FPd2f_._FPd2f__FPrmfi_._FPrmfi__FPrmd_._FPrmd_DBL_NaN__FPrmdi_._FPrmdi__dADDSUB_._dADDSUB__FPscalb_._FPscalb__Ebmodf_._Ebmodf__Ebmodfi_._Ebmodfi__Ebmodd_._Ebmodd__Ebmoddi_._EbmoddixFPB.o 597749065 0 10 100775 242 `  T鏗鏕$Header:xFPB.s 12.0$@@ (!+4,4>xFPB.orcsid.oVncs_FPSETTB_.FPSETTB_FPCLRTB_.FPCLRTBxFPE_bscalb.o 597749065 0 10 100775 1247 ` DP@an`f g0Ŗhȱl <|= cF `m p-0+q 1 p-0` -q 'ؠ*#! r 2p 0 q 1  03p#q3cp#q3a\rQbP## s1s1r!a\$Bե "Rgpg`Pe0_P1oP oPe0__1AoP [G 4@DJ%$"  03p#q3cp#q3a\bcd`a\ 0151b`ca\ RP2Q31p 0 q 1 s1r!a\h!64$Header:xFPE_bscalb.c 12.0$  4 npHRfp@@ P PPP P$P ,3h='BM+Y`;isX2q,<xFPE_bscalb.o_rcsid_PREP1_MAXSCALEXP.oVncs.oVhc2.1n.oVO__Ebscalbi_._Ebscalbimcount_findfpm_.findfpm_SetOperation_.SetOperation_set_stat_.set_stat_DBL_NaN_SetData_.SetData_FPdovfl_.FPdovfl_FPdunfl_.FPdunfl xFPemul.o 597749064 0 10 100775 9018 `  فn`i j0 ` 0``@`k@lPoo 0oo0:˔@.  ! ɁDP . ! ɁDc`bpqS01R, }P ., .\ . ɁDcpc3b20, SP . ! ɁD,c 6P .܍ .  .8 ɁD,c  .h ! ɁDP . . . ɁDc`bpqS01R, ֔P . ! ɁD  +c bc P .< .l . ɁD  +c bc P .ȍ ! ɁD,c bP . . .H ɁD,c > .x . .ԍ ɁDP . ! ɁDcpc3b20,  .( .X . ɁDP . ! ɁD,c ДP .؍ . .4 ɁD,c ĈP .d ! ɁD,c ȈP . . . ɁD,c ̈k . ! ɁDP .8 .h . ɁDc`mpqS0 1]b Љ00-P .č . .  ɁDcpc3m20 b ԉ0-P .P ! ɁD,c ؈P .t . .Ѝ ɁD,c ܈ĔP . ! ɁDc`bpqS01R, P .$ .T . ɁDcpc3b20, 䈀u . ! ɁDN"@ɁDb q"ɁDp"ɁDN .ԍ ! ɁD"@ɁD . ! ɁDP .  . L . x ɁDc`mpqS0 1]b 艀0-P .  . ؍ .  ɁDcpc3m20 b 쉀0-P . 4 ! ɁD,c P . X .  .  ɁD,c .  ! ɁDP .  . 8 . d ɁDc`mpqS0 1]b M0-P .  . č .  ɁDcp3`m0=b #0-b”P 10N . D ! ɁDݒ@bɁD. h ! ɁD_ P8F~zxvnldfd^\ZXVTNLFDB@><:864 .,*(&$" 8  ;xI W@A1He` PQVapEq^HI k%@AHQ)` tPSQlap q" ߈!Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Invalid FPA operation! opcode = %x Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Emulator can only operate on even registers, or, in the immortal words of Doug Jewett, Shut 'er down, Clancey, she's a-pumpin' mud! Invalid FPA operation! opcode = %x Invalid FPA operation! opcode = %x Invalid FPA operation! opcode = %x $Header:xFPemul.c 12.0$  ~   ,D N f~        &> H fv     & 2 > Vj v    !     2#J V b z%  '   )  4 @ L r+   -  / & 2 J1b l 3   5  V `      7   >9X b z;   =     8? R ^ j A `@@ P P P P P P P P P P P P P "P $P &P (P *P ,P .P 0P 2P 4P 6P 8P :P P @P h&'+ 7DK;T^fBoy46: <%.6?GPJXaLir>z@Z"\$TVr:t<^& `($J-5L>xFPemul.o_rcsid.oVncs.oVhc2.1n.oVO__FPemulate_._FPemulatemcount_findfpm_.findfpm_printf_.printf_set_stat_.set_stat__FPabd_._FPabd__FPabf_._FPabf__FPadd_._FPadd__FPadf_._FPadf__FPd2f_._FPd2f__FPcmd_._FPcmd__FPcmf_._FPcmf__FPcpd_._FPcpd__FPcpf_._FPcpf__FPf2d_._FPf2d__FPi2d_._FPi2d__FPi2f_._FPi2f__FPdvd_._FPdvd__FPdvf_._FPdvf__FPfld_._FPfld__FPflf_._FPflf__FPmld_._FPmld__FPmlf_._FPmlf__FPngd_._FPngd__FPngf_._FPngf__FPrnd_._FPrnd__FPrnf_._FPrnf__FPsbd_._FPsbd__FPsbf_._FPsbf__FPtrd_._FPtrd__FPtrf_._FPtrfxFPexception.o 597749065 0 10 100775 450 ` 44 n`8 , H$Header:xFPexception.c 12.0$   @@ P P4!h+'08>2MTp\8ekrxFPexception.o_rcsid.oVncs.oVhc2.1n.oVO_xFPexception_.xFPexceptionmcount_getpid_.getpid_kill_.killxFPscalb.o 597749064 0 10 100775 1197 ` @P8ٱnA?Q`A?Qm }Q~10~1}!ɱ@`P@ŀ "R4P0 |b 03pqS01Rp#q3ɱ@|!d 0Ĥ1 03p#q3q4p$ɱ@?` ?`oPe0__1ذoP oPe0__1AoP [@ 8@DL%$ " |! 03p# q3c p#q3ɱ@|A4bɱ@ |!0151cɱ@ RP| #d-0T14 03p#q3q4p$ɱ@(~1߸A(64$Header:xFPscalb.c 12.0$ ~ p p8BX p p@@ P PPP P )0h:'? I0T[;dn2wq,<xFPscalb.o_rcsid_PREP1_MAXSCALEXP.oVncs.oVhc2.1n.oVO__FPscalb_._FPscalbmcount_findfpm_.findfpm_DBL_NaN_SetData_.SetData_set_stat_.set_stat_FPdovfl_.FPdovfl_FPdunfl_.FPdunfl xFPvect.o 597749064 0 10 100775 2401 ` ,x($Header:xFPvect.c 12.0$@PP P P P P P P$P(P,P0P4P8P<P@PDPHPLPPPTPXP\P`PdPhPl Pp!Pt"Px#P|$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;PP?P@PAPBPCPDPEPFPGP HPIPh&'+H3`;^CKS<[d:lu}VTpInEtQrM'q08mA@IR>Zc6kt4|a)_%\!ZLJ sNq&J/~7e@|HaQ[efmuxFPvect.o_rcsid.oVncs.oVhc2.1n.oVO__fpfpf__FPrdf__FPrdd__FPi2f__FPi2d__FPcpf__FPcpfi__FPcpd__FPcpdi__FPf2d__FPf2di__FPd2f__FPd2fi__FPngf__FPngfi__FPngd__FPngdi__FPabf__FPabfi__FPabd__FPabdi__FPntf__FPntfi__FPntd__FPntdi__FPrnf__FPrnfi__FPrnd__FPrndi__FPtrf__FPtrfi__FPtrd__FPtrdi__FPflf__FPflfi__FPfld__FPfldi__FPcmf__FPcmfi__FPcmd__FPcmdi__FPadf__FPadfi__FPadd__FPaddi__FPsbf__FPsbfi__FPsbd__FPsbdi__FPmlf__FPmlfi__FPmld__FPmldi__FPdvf__FPdvfi__FPdvd__FPdvdi__FPrmf__FPrmfi__FPrmd__FPrmdi__FPsqf__FPsqfi__FPsqd__FPsqdi__FPgetst__FPsetst__FPlmr__FPsmr xxFPgetpid.o 597749065 0 10 100777 195 `  <$Header:xxFPgetpid.s 12.0$@ ((3xxFPgetpid.orcsid.oVncs_fpgetpid_.fpgetpid xxFPkill.o 597749065 0 10 100777 189 `  <%$Header:xxFPkill.s 12.0$@ ($r-xxFPkill.orcsid.oVncs_fpkill_.fpkill #] loW 7###  .oVncs#] loG p###hx+0`! __.SYMDEF 597788083 0 10 100666 11318 ` ,z,z,z,z,z'/./8/=/E/N1U1_1d1l1u4^|4^4^4^4^666669*9*9*9*9*;;;;;=="='=-=4=:=A=G=N=W=a@"h@"r@"w@"~@"B8B8B8B8B8GGGGGTTTTTXXX XX]&!]&+]&0]&7]&?aFaPaUa]afkmkwk|kkq"q"q"q"q"ssssstftftftftfuu uuu#v*v4v9vAvJxHQxH[xH`xHhxHqyxyyyyzzzzz|B|B|B|B|B~~~~~%.5?DKS&Z&d&i&q&zPPPPPNNNN N#(09@JOV^ReRoRtR|R&&&&&nn nnn!(27@JQ[`isDzDDDD ^^$^)^1^:AKPYcjtyLLLLL z%z/z4z;zCxJxTxYxaxjq{      ) 0 : ? F Nf Uf _f df kf s z      F F F F F < < < < < : : : : %: .D 5D ?D DD LD Ut \t ft kt rt zb b b b b Ɇ Ɇ Ɇ Ɇ Ɇ    ! & , 3l :l Dl Il Ol VҶ ]Ҷ gҶ lҶ rҶ y         & /F 6F @F EF MF V ] g l t }P P P P P 0 0 0 0 0     * / 7 @Z GZ QZ VZ ^Z gP nP xP }P P      : : : : :(/9>FO V ` e m v >} > > > >           "*3,:,D,I,P,X0_0i0n0v066666!~!~!~!~!~%%%%%)2)2()2-)24)2<*C*M*R*Z*c,j,t,y,,.J.J.J.J.J/////1111111 115h$5h.5h35h<5hF5hO5hY5hb5hl92s92}929292929292929292929292929292<<<<<(=/=9=>=E=M>T>^>c>j>r@by@b@b@b@bAAAAAH H H H H KKKKKOLOLOL$OL,OL5P@<P@FP@KP@TP@^P@hP@sRzRRRRRRaaaaadddddjjjj jkk'k,k5k?kGkPm$Wm$am$fm$om$ym$m$nnnnnooooosssss|V|V |V|V|V '16=E|L|V|[|b|jq{\\\.oVncs.oVhc2.1n.oVO_abort__.abort_.oVncs.oVhc2.1n.oVO_besj0__.besj0_.oVncs.oVhc2.1n.oVO_besj1__.besj1_.oVncs.oVhc2.1n.oVO_besjn__.besjn_.oVncs.oVhc2.1n.oVO_besy0__.besy0_.oVncs.oVhc2.1n.oVO_besy1__.besy1_.oVncs.oVhc2.1n.oVO_besyn__.besyn_.oVncs.oVhc2.1n.oVO_bis__.bis__bic__.bic__bit__.bit__setbit__.setbit_.oVncs.oVhc2.1n.oVO_c_abs_.c_abs.oVncs.oVhc2.1n.oVO_c_cos_.c_cos.oVncs.oVhc2.1n.oVO_c_div_.c_div.oVncs.oVhc2.1n.oVO_c_exp_.c_exp.oVncs.oVhc2.1n.oVO_c_log_.c_log.oVncs.oVhc2.1n.oVO_c_sin_.c_sin.oVncs.oVhc2.1n.oVO_c_sqrt_.c_sqrt.oVncs.oVhc2.1n.oVO_cabs_.cabs.oVncs.oVhc2.1n.oVO_d_abs_.d_abs.oVncs.oVhc2.1n.oVO_d_acos_.d_acos.oVncs.oVhc2.1n.oVO_d_asin_.d_asin.oVncs.oVhc2.1n.oVO_d_atan_.d_atan.oVncs.oVhc2.1n.oVO_d_atn2_.d_atn2.oVncs.oVhc2.1n.oVO_d_cnjg_.d_cnjg.oVncs.oVhc2.1n.oVO_d_cos_.d_cos.oVncs.oVhc2.1n.oVO_d_cosh_.d_cosh.oVncs.oVhc2.1n.oVO_d_dim_.d_dim.oVncs.oVhc2.1n.oVO_d_exp_.d_exp.oVncs.oVhc2.1n.oVO_d_imag_.d_imag.oVncs.oVhc2.1n.oVO_d_int_.d_int.oVncs.oVhc2.1n.oVO_d_lg10_.d_lg10.oVncs.oVhc2.1n.oVO_d_log_.d_log.oVncs.oVhc2.1n.oVO_d_mod_.d_mod.oVncs.oVhc2.1n.oVO_d_nint_.d_nint.oVncs.oVhc2.1n.oVO_d_prod_.d_prod.oVncs.oVhc2.1n.oVO_d_sign_.d_sign.oVncs.oVhc2.1n.oVO_d_sin_.d_sin.oVncs.oVhc2.1n.oVO_d_sinh_.d_sinh.oVncs.oVhc2.1n.oVO_d_sqrt_.d_sqrt.oVncs.oVhc2.1n.oVO_d_tan_.d_tan.oVncs.oVhc2.1n.oVO_d_tanh_.d_tanh.oVncs.oVhc2.1n.oVO_dbesj0__.dbesj0_.oVncs.oVhc2.1n.oVO_dbesj1__.dbesj1_.oVncs.oVhc2.1n.oVO_dbesjn__.dbesjn_.oVncs.oVhc2.1n.oVO_dbesy0__.dbesy0_.oVncs.oVhc2.1n.oVO_dbesy1__.dbesy1_.oVncs.oVhc2.1n.oVO_dbesyn__.dbesyn_.oVncs.oVhc2.1n.oVO_derf__.derf_.oVncs.oVhc2.1n.oVO_derfc__.derfc_.oVncs.oVhc2.1n.oVO_ef1asc__.ef1asc_.oVncs.oVhc2.1n.oVO_ef1cmc__.ef1cmc_.oVncs.oVhc2.1n.oVO_erf__.erf_.oVncs.oVhc2.1n.oVO_erfc__.erfc_.oVncs.oVhc2.1n.oVO_exit__.exit_.oVncs.oVhc2.1n.oVO_h_abs_.h_abs.oVncs.oVhc2.1n.oVO_h_dim_.h_dim.oVncs.oVhc2.1n.oVO_h_dnnt_.h_dnnt.oVncs.oVhc2.1n.oVO_h_indx_.h_indx.oVncs.oVhc2.1n.oVO_h_len_.h_len.oVncs.oVhc2.1n.oVO_h_mod_.h_mod.oVncs.oVhc2.1n.oVO_h_nint_.h_nint.oVncs.oVhc2.1n.oVO_h_sign_.h_sign.oVncs.oVhc2.1n.oVO_hl_ge_.hl_ge.oVncs.oVhc2.1n.oVO_hl_gt_.hl_gt.oVncs.oVhc2.1n.oVO_hl_le_.hl_le.oVncs.oVhc2.1n.oVO_hl_lt_.hl_lt.oVncs.oVhc2.1n.oVO_i_abs_.i_abs.oVncs.oVhc2.1n.oVO_i_dim_.i_dim.oVncs.oVhc2.1n.oVO_i_dnnt_.i_dnnt.oVncs.oVhc2.1n.oVO_i_indx_.i_indx.oVncs.oVhc2.1n.oVO_i_len_.i_len.oVncs.oVhc2.1n.oVO_i_mod_.i_mod.oVncs.oVhc2.1n.oVO_i_nint_.i_nint.oVncs.oVhc2.1n.oVO_i_sign_.i_sign.oVncs.oVhc2.1n.oVO_l_ge_.l_ge.oVncs.oVhc2.1n.oVO_l_gt_.l_gt.oVncs.oVhc2.1n.oVO_l_le_.l_le.oVncs.oVhc2.1n.oVO_l_lt_.l_lt.oVncs.oVhc2.1n.oVO_lnblnk__.lnblnk_.oVncs.oVhc2.1n.oVO_long__.long_.oVncs.oVhc2.1n.oVO_id_libF77_xargc_xargv_main_.main_sigdie_sig_act_act_fpe_act_ill_.sigdie.oVncs.oVhc2.1n.oVO_pow_ci_.pow_ci.oVncs.oVhc2.1n.oVO_pow_dd_.pow_dd.oVncs.oVhc2.1n.oVO_pow_di_.pow_di.oVncs.oVhc2.1n.oVO_pow_hh_.pow_hh.oVncs.oVhc2.1n.oVO_pow_ii_.pow_ii.oVncs.oVhc2.1n.oVO_pow_ri_.pow_ri.oVncs.oVhc2.1n.oVO_pow_rr_.pow_rr.oVncs.oVhc2.1n.oVO_pow_zi_.pow_zi.oVncs.oVhc2.1n.oVO_pow_zz_.pow_zz.oVncs.oVhc2.1n.oVO_r_abs_.r_abs.oVncs.oVhc2.1n.oVO_r_acos_.r_acos.oVncs.oVhc2.1n.oVO_r_asin_.r_asin.oVncs.oVhc2.1n.oVO_r_atan_.r_atan.oVncs.oVhc2.1n.oVO_r_atn2_.r_atn2.oVncs.oVhc2.1n.oVO_r_cnjg_.r_cnjg.oVncs.oVhc2.1n.oVO_r_cos_.r_cos.oVncs.oVhc2.1n.oVO_r_cosh_.r_cosh.oVncs.oVhc2.1n.oVO_r_dim_.r_dim.oVncs.oVhc2.1n.oVO_r_exp_.r_exp.oVncs.oVhc2.1n.oVO_r_imag_.r_imag.oVncs.oVhc2.1n.oVO_r_int_.r_int.oVncs.oVhc2.1n.oVO_r_lg10_.r_lg10.oVncs.oVhc2.1n.oVO_r_log_.r_log.oVncs.oVhc2.1n.oVO_r_mod_.r_mod.oVncs.oVhc2.1n.oVO_r_nint_.r_nint.oVncs.oVhc2.1n.oVO_r_sign_.r_sign.oVncs.oVhc2.1n.oVO_r_sin_.r_sin.oVncs.oVhc2.1n.oVO_r_sinh_.r_sinh.oVncs.oVhc2.1n.oVO_r_sqrt_.r_sqrt.oVncs.oVhc2.1n.oVO_r_tan_.r_tan.oVncs.oVhc2.1n.oVO_r_tanh_.r_tanh.oVncs.oVhc2.1n.oVO_irand__.irand__rand__.rand__drand__.drand_.oVncs.oVhc2.1n.oVO_irandm__.irandm__random__.random__drandm__.drandm_.oVncs.oVhc2.1n.oVO_flmax__.flmax__dflmax__.dflmax__flmin__.flmin__dflmin__.dflmin__inmax__.inmax__ffrac__.ffrac__dffrac__.dffrac_.oVncs.oVhc2.1n.oVO_rindex__.rindex_.oVncs.oVhc2.1n.oVO_s_cat_.s_cat.oVncs.oVhc2.1n.oVO_s_cmp_.s_cmp.oVncs.oVhc2.1n.oVO_s_copy_.s_copy.oVncs.oVhc2.1n.oVO_s_paus_.s_paus.oVncs.oVhc2.1n.oVO_s_rnge_.s_rnge.oVncs.oVhc2.1n.oVO_s_stop_.s_stop.oVncs.oVhc2.1n.oVO_short__.short_.oVncs.oVhc2.1n.oVO_signal__.signal__sig_trap_.sig_trap.oVncs.oVhc2.1n.oVO_sinh_.sinh_cosh_.cosh.oVncs.oVhc2.1n.oVO_subout_.subout.oVncs.oVhc2.1n.oVO_tanh_.tanh.oVncs.oVhc2.1n.oVO_traper__.traper_.oVncs.oVhc2.1n.oVO_trapov__.trapov__ovcnt__.ovcnt_.oVncs.oVhc2.1n.oVO_trpfpe__.trpfpe__fpecnt__.fpecnt_.oVncs.oVhc2.1n.oVO_z_abs_.z_abs.oVncs.oVhc2.1n.oVO_z_cos_.z_cos.oVncs.oVhc2.1n.oVO_z_div_.z_div.oVncs.oVhc2.1n.oVO_z_exp_.z_exp.oVncs.oVhc2.1n.oVO_z_log_.z_log.oVncs.oVhc2.1n.oVO_z_sin_.z_sin.oVncs.oVhc2.1n.oVO_z_sqrt_.z_sqrt.oVncs.oVhc2.1n_libF77_idabort_.o 597749088 0 10 100777 743 ` DH8ٱnk l0(>bЍ @+cЍ > bЍ*cЍ $(ɱ8߸!$Header:abort_.c 12.0$abort: calledp ( @ Vb j rz@,P0P4 P8 P<P@P h'q"9+.1:4DKSZbjps}<.oVncs.oVhc2.1n.oVO_abort__.abort___iob_fprintf_.fprintf_nargs_.nargs_fputc_.fputc_f_exit_.f_exit__cleanup_._cleanup_abort_.abort besj0_.o 597749097 0 10 100777 547 ` 4`(nX, $Header:besj0_.c 12.0$`<P#2`,`#`,4#@P"PrPP h'9L"+/4;.oVncs.oVhc2.1n.oVO_besj0__.besj0__j0_.j0FPGLUE besj1_.o 597749103 0 10 100777 547 ` 4`(nX, $Header:besj1_.c 12.0$`<P#2`,`#`,4#@P"PrPP h';L"+/4;.oVncs.oVhc2.1n.oVO_besj1__.besj1__j1_.j1FPGLUE besjn_.o 597749110 0 10 100777 559 ` 8 `(np"X,! $Header:besjn_.c 12.0$`P42`$d#`$8#@P"PrPP h'P"}+/4;.oVncs.oVhc2.1n.oVO_besjn__.besjn__jn_.jnFPGLUE besy0_.o 597749117 0 10 100777 547 ` 4`(nX, $Header:besy0_.c 12.0$`<P#2`,`#`,4#@P"PrPP h'uL"=+/4;.oVncs.oVhc2.1n.oVO_besy0__.besy0__y0_.y0FPGLUE besy1_.o 597749124 0 10 100777 547 ` 4`(nX, $Header:besy1_.c 12.0$`<P#2`,`#`,4#@P"PrPP h'wL"?+/4;.oVncs.oVhc2.1n.oVO_besy1__.besy1__y1_.y1FPGLUE besyn_.o 597749132 0 10 100777 559 ` 8 `(np"X,! $Header:besyn_.c 12.0$`P42`$d#`$8#@P"PrPP h'P"+/4;.oVncs.oVhc2.1n.oVO_besyn__.besyn__yn_.ynFPGLUE bit.o 597749139 0 10 100777 496 ` ,0p"  p#0p"  p#0p" 鏤 p# 鏩/npԔ ,,1 $Header:bit.c 12.0$>b@@@ @$@(@ h'K }'+-]4M:>AQJCbT.oVncs.oVhc2.1n.oVO_bis__.bis__bic__.bic__bit__.bit__setbit__.setbit_c_abs.o 597749146 0 10 100777 473 ` 0` nd X, $Header:c_abs.c 12.0$`4P#2` TE2@P"PrP h'H!)%/W6=.oVncs.oVhc2.1n.oVO_c_abs_.c_abs_cabs_.cabsFPGLUE c_cos.o 597749154 0 10 100777 1300 `  xٱnl m0,|,, ,,DɱHߺ! $Header:c_cos.c 12.0$` `,P#2 `,`#`,P#2 `,`#`,L2 `,T#`,`,L2 ` .H b @P P$ P( P. PF P P PF P P PF P^ P P h'! ).4t:AFLRY`.oVncs.oVhc2.1n.oVO_c_cos_.c_cos_cos_.cos_cosh_.cosh_sin_.sin_sinh_.sinhFPGLUEc_div.o 597749165 0 10 100777 3147 ` X`Xٱnk l0m@P8tTd DP  t0H(tɱH  t04`ɱHߺ1> $Header:c_div.c 12.0$`H>`<l2 `<`<`<T#`<<`<`<l2 `<D`<`<<`<`<<`<$6` <0`<`<`<T#?`<`<42 `<`2 `<`<^` <L2 `<42 `< `2 ` < L2 `\>` <$`<`<n`<Tn#?`<~`<4^2 `<`^2 `<>` <L^2 `<`2 `< 42 ` < L2 `\>l@P"PjPPPPRPPP P"P2PnP~PPPP&P:PPPP2PJPbPPPBPPPP&P:PPPP6PNPPP.PzP h'p!)0<8?.oVncs.oVhc2.1n.oVO_c_div_.c_div_abort_.abortFPGLUE c_exp.o 597749172 0 10 100777 1089 ` tT`ٱnl m0(x( ( ɱHߺ! $Header:c_exp.c 12.0$` `<P#2 `,`#`,P#2 `,`#`,L2 `,L2 ` .H @P P$ P* PB P P PB P P P: P h'!$).49?DJQ.oVncs.oVhc2.1n.oVO_c_exp_.c_exp_exp_.exp_cos_.cos_sin_.sinFPGLUE c_log.o 597749179 0 10 100777 1115 ` ht`nl m0`d b4! `<P#2 ` TE2 ` h#` H2 ` X#2 `XE2 ` D2 $Header:c_log.c 12.0$:B @@P P P Pf P P" Pj P P P h'l!%)0J8%>WEJPW.oVncs.oVhc2.1n.oVO_c_log_.c_log_atan2_.atan2_cabs_.cabs_log_.logFPGLUE c_sin.o 597749187 0 10 100777 1168 ` X hٱnl m0,|,, |,$ɱHߺ! $Header:c_sin.c 12.0$` `,P#2 `,`#`,P#2 `,`#`,L2 `,L2 ` .H \ @P P$ P( P. PF P P PF P P P> P h'!<).4t:AFLRY`.oVncs.oVhc2.1n.oVO_c_sin_.c_sin_sin_.sin_cosh_.cosh_cos_.cos_sinh_.sinhFPGLUEc_sqrt.o 597749197 0 10 100777 2288 ` Hxٱn l m0$t1 J0 (T,l' T TTxbɱHߺ! ` `<P#2 ` PE2 `d##` l"` l2 ` T@`<4#`<D##?`,`#`,@`2 ` ,L2 ` ,h2 "@`<4#`,@@2 `,l@2 `,T `<$` <0` <h2 "@` $Header:c_sqrt.c 12.0$ Z@@P P P* Pz P P. P P PZ P P P2 Pr P P& PZ P P PZ P~ P P P h'"v+%1W8>8EL.oVncs.oVhc2.1n.oVO_c_sqrt_.c_sqrt_cabs_.cabs_sqrt_.sqrtFPGLUEcabs.o 597749205 0 10 100777 1479 ` `ٱn tXh  4 XɱH,TɱHߺA $Header:cabs.c 12.0$` `0T#`<TE`<T#`<<`< `<<`<`<<`<`<``<`<`<$`<(#` ` <`<`<D##?`,(#`,(#` @P"P:PPP6PrPPPP PP*P:PNPrPPPPPPFPnP h'% W'-84;.oVncs.oVhc2.1n.oVO_cabs_.cabs_sqrt_.sqrtFPGLUE d_abs.o 597749212 0 10 100777 448 ` 8Hnq2p" ,|, $Header:d_abs.c 12.0$` x##`<D##@PP h'P!)0.oVncs.oVhc2.1n.oVO_d_abs_.d_absFPGLUEd_acos.o 597749218 0 10 100777 268 ` ( Tnc p#q3, $Header:d_acos.c 12.0$@P h'@"+71i8.oVncs.oVhc2.1n.oVO_d_acos_.d_acos_acos_.acosd_asin.o 597749226 0 10 100777 268 ` ( Tnc p#q3, $Header:d_asin.c 12.0$@P h'.@"+f18.oVncs.oVhc2.1n.oVO_d_asin_.d_asin_asin_.asind_atan.o 597749232 0 10 100777 268 ` ( Tnc p#q3, $Header:d_atan.c 12.0$@P h'"@"+Z18.oVncs.oVhc2.1n.oVO_d_atan_.d_atan_atan_.atand_atn2.o 597749239 0 10 100777 278 ` 0 TnqSpCqpbc,! $Header:d_atn2.c 12.0$@P h'H"+2J:.oVncs.oVhc2.1n.oVO_d_atn2_.d_atn2_atan2_.atan2d_cnjg.o 597749246 0 10 100777 306 ` (`HnqpC0B1,! $Header:d_cnjg.c 12.0$`D33@P h'%@"+2.oVncs.oVhc2.1n.oVO_d_cnjg_.d_cnjgFPGLUEd_cos.o 597749252 0 10 100777 264 ` ( Tnc p#q3, $Header:d_cos.c 12.0$@P h'@!).4.oVncs.oVhc2.1n.oVO_d_cos_.d_cos_cos_.cosd_cosh.o 597749259 0 10 100777 268 ` ( Tnc p#q3, $Header:d_cosh.c 12.0$@P h'<@"+t18.oVncs.oVhc2.1n.oVO_d_cosh_.d_cosh_cosh_.coshd_dim.o 597749266 0 10 100777 548 ` <(H(nX 0,! $Header:d_dim.c 12.0$`,T3`<T3`<<`<(#@PrPPP h'T!)0.oVncs.oVhc2.1n.oVO_d_dim_.d_dimFPGLUEd_exp.o 597749273 0 10 100777 264 ` ( Tnc p#q3, $Header:d_exp.c 12.0$@P h'@!4).4.oVncs.oVhc2.1n.oVO_d_exp_.d_exp_exp_.expd_imag.o 597749279 0 10 100777 195 ` <c r#s3$ $Header:d_imag.c 12.0$@ h'?0"+.oVncs.oVhc2.1n.oVO_d_imag_.d_imag d_int.o 597749287 0 10 100777 771 ` P`8nq2p"  l, $Header:d_int.c 12.0$` x##`<T#`<D##`,T#`<(#,@P"PPP2PP h'h!4)p08?.oVncs.oVhc2.1n.oVO_d_int_.d_int_floor_.floorFPGLUE d_lg10.o 597749294 0 10 100777 369 ` 0d`nc p#q3, $Header:d_lg10.c 12.0$`,D##?{&@P"P h'H"p+06=.oVncs.oVhc2.1n.oVO_d_lg10_.d_lg10_log_.logFPGLUE d_log.o 597749300 0 10 100777 264 ` ( Tnc p#q3, $Header:d_log.c 12.0$@P h'@!5).4.oVncs.oVhc2.1n.oVO_d_log_.d_log_log_.logd_mod.o 597749308 0 10 100777 1019 ` dx`Pnl m0L  Lt4! $Header:d_mod.c 12.0$` <D3 3 `<@#`<(#`<T#`<(#`,T#`<T3 `< D#3 "8@P"PfPPPfPPP6P h'|!6)p08?.oVncs.oVhc2.1n.oVO_d_mod_.d_mod_floor_.floorFPGLUE d_nint.o 597749315 0 10 100777 961 ` XP`Hn\ $ x, $Header:d_nint.c 12.0$`<T3`<@#`<D##?`<T#`<D##?`,T#`<(#4@P"PvPP>PPP*P h'~p"F+p2:A.oVncs.oVhc2.1n.oVO_d_nint_.d_nint_floor_.floorFPGLUE d_prod.o 597749323 0 10 100777 402 ` (Hnl,! $Header:d_prod.c 12.0$`<h22`<4#@PP h'@"l+2.oVncs.oVhc2.1n.oVO_d_prod_.d_prodFPGLUEd_sign.o 597749330 0 10 100777 694 ` HH@nXP,! `,T3`,T#`,<`,@`<X3`<(#$Header:d_sign.c 12.0$@@ P^PPPPVP h'L"Z+2.oVncs.oVhc2.1n.oVO_d_sign_.d_signFPGLUEd_sin.o 597749336 0 10 100777 264 ` ( Tnc p#q3, $Header:d_sin.c 12.0$@P h'@!L).4.oVncs.oVhc2.1n.oVO_d_sin_.d_sin_sin_.sind_sinh.o 597749343 0 10 100777 268 ` ( Tnc p#q3, $Header:d_sinh.c 12.0$@P h'@"b+18.oVncs.oVhc2.1n.oVO_d_sinh_.d_sinh_sinh_.sinhd_sqrt.o 597749349 0 10 100777 268 ` ( Tnc p#q3, $Header:d_sqrt.c 12.0$@P h'@"+188.oVncs.oVhc2.1n.oVO_d_sqrt_.d_sqrt_sqrt_.sqrtd_tan.o 597749357 0 10 100777 264 ` ( Tnc p#q3, $Header:d_tan.c 12.0$@P h'@!@).4.oVncs.oVhc2.1n.oVO_d_tan_.d_tan_tan_.tand_tanh.o 597749364 0 10 100777 268 ` ( Tnc p#q3, $Header:d_tanh.c 12.0$@P h'@"J+18.oVncs.oVhc2.1n.oVO_d_tanh_.d_tanh_tanh_.tanhdbesj0_.o 597749370 0 10 100777 266 ` ( Tnc p#q3, $Header:dbesj0_.c 12.0$@P h'E@#-16.oVncs.oVhc2.1n.oVO_dbesj0__.dbesj0__j0_.j0dbesj1_.o 597749377 0 10 100777 266 ` ( Tnc p#q3, $Header:dbesj1_.c 12.0$@P h'G@#-16.oVncs.oVhc2.1n.oVO_dbesj1__.dbesj1__j1_.j1dbesjn_.o 597749385 0 10 100777 270 ` , TnqCpp"c,! $Header:dbesjn_.c 12.0$@P h'D#Q-16.oVncs.oVhc2.1n.oVO_dbesjn__.dbesjn__jn_.jndbesy0_.o 597749392 0 10 100777 266 ` ( Tnc p#q3, $Header:dbesy0_.c 12.0$@P h'@#-16.oVncs.oVhc2.1n.oVO_dbesy0__.dbesy0__y0_.y0dbesy1_.o 597749398 0 10 100777 266 ` ( Tnc p#q3, $Header:dbesy1_.c 12.0$@P h'@#-16.oVncs.oVhc2.1n.oVO_dbesy1__.dbesy1__y1_.y1dbesyn_.o 597749406 0 10 100777 270 ` , TnqCpp"c,! $Header:dbesyn_.c 12.0$@P h'D#-16.oVncs.oVhc2.1n.oVO_dbesyn__.dbesyn__yn_.ynderf_.o 597749412 0 10 100777 264 ` ( Tnc p#q3, $Header:derf_.c 12.0$@P h'@!c).4.oVncs.oVhc2.1n.oVO_derf__.derf__erf_.erfderfc_.o 597749421 0 10 100777 268 ` ( Tnc p#q3, $Header:derfc_.c 12.0$@P h'@"+q18.oVncs.oVhc2.1n.oVO_derfc__.derfc__erfc_.erfcef1asc_.o 597749427 0 10 100777 282 ` 0 TnpԐpUc@d,A $Header:ef1asc_.c 12.0$@P h']H#O-'5>.oVncs.oVhc2.1n.oVO_ef1asc__.ef1asc__s_copy_.s_copyef1cmc_.o 597749434 0 10 100777 276 ` , TnpUpc@d,A $Header:ef1cmc_.c 12.0$@P h'UD#G-4<.oVncs.oVhc2.1n.oVO_ef1cmc__.ef1cmc__s_cmp_.s_cmperf_.o 597749441 0 10 100777 369 ` (p`n, $Header:erf_.c 12.0$`<P#2@P"P h'm@ ',29.oVncs.oVhc2.1n.oVO_erf__.erf__erf_.erfFPGLUE erfc_.o 597749448 0 10 100777 373 ` (p`n, $Header:erfc_.c 12.0$`<P#2@P"P h'A@!)q/6=.oVncs.oVhc2.1n.oVO_erfc__.erfc__erfc_.erfcFPGLUE exit_.o 597749455 0 10 100777 408 ` 8( nm p- 0 $Header:exit_.c 12.0$  @P P$ P h'P!)1p:DOU\.oVncs.oVhc2.1n.oVO_exit__.exit__f_exit_.f_exit__cleanup_._cleanup_exit_.exith_abs.o 597749462 0 10 100777 189 ` < 菱 $Header:h_abs.c 12.0$@ h',!;).oVncs.oVhc2.1n.oVO_h_abs_.h_abs h_dim.o 597749469 0 10 100777 193 ` <PP"  $Header:h_dim.c 12.0$@ h'0!O).oVncs.oVhc2.1n.oVO_h_dim_.h_dim h_dnnt.o 597749476 0 10 100777 973 ` X\`Hn\ $ x, $Header:h_dnnt.c 12.0$`<T3`<@#`<D##?`<T#`<D##?`,T#`<44@P"PvPP>PPP*P h'p"+p2:A.oVncs.oVhc2.1n.oVO_h_dnnt_.h_dnnt_floor_.floorFPGLUE h_indx.o 597749484 0 10 100777 243 ` H<EAoSmn0 @@]Pё   ,菤 A$Header:h_indx.c 12.0$@ h'`"+.oVncs.oVhc2.1n.oVO_h_indx_.h_indx h_len.o 597749490 0 10 100777 177 ` <b0$Header:h_len.c 12.0$@ h' !i).oVncs.oVhc2.1n.oVO_h_len_.h_len h_mod.o 597749497 0 10 100777 232 ` $HnP3P"Ԍb0,! $Header:h_mod.c 12.0$@ h'<!v)0.oVncs.oVhc2.1n.oVO_h_mod_.h_modldiv$$h_nint.o 597749504 0 10 100777 1045 ` X`Hnt ` X, $Header:h_nint.c 12.0$`<l2`<@"`<P##?`<T#`<P##?`,T#`<44@P"PP*PzPPPrP h'p"+p2:A.oVncs.oVhc2.1n.oVO_h_nint_.h_nint_floor_.floorFPGLUE h_sign.o 597749511 0 10 100777 203 `  <  P $Header:h_sign.c 12.0$@ h'8"+.oVncs.oVhc2.1n.oVO_h_sign_.h_sign hl_ge.o 597749519 0 10 100777 268 ` ( Tnԍ/!,A $Header:hl_ge.c 12.0$ @P h'3@!)08.oVncs.oVhc2.1n.oVO_hl_ge_.hl_ge_s_cmp_.s_cmphl_gt.o 597749526 0 10 100777 276 ` 0 Tnԍ` /!,A $Header:hl_gt.c 12.0$ @P h'BH!)08.oVncs.oVhc2.1n.oVO_hl_gt_.hl_gt_s_cmp_.s_cmphl_le.o 597749533 0 10 100777 272 ` , Tnԍ` /,A $Header:hl_le.c 12.0$ @P h'=D!)08.oVncs.oVhc2.1n.oVO_hl_le_.hl_le_s_cmp_.s_cmphl_lt.o 597749539 0 10 100777 264 ` $ Tnԍ/,A $Header:hl_lt.c 12.0$ @P h'L<!)08.oVncs.oVhc2.1n.oVO_hl_lt_.hl_lt_s_cmp_.s_cmpi_abs.o 597749546 0 10 100777 185 ` <p" "$Header:i_abs.c 12.0$@ h'(!K).oVncs.oVhc2.1n.oVO_i_abs_.i_abs i_dim.o 597749554 0 10 100777 193 ` <pp"  $Header:i_dim.c 12.0$@ h'0!_).oVncs.oVhc2.1n.oVO_i_dim_.i_dim i_dnnt.o 597749561 0 10 100777 973 ` X\`Hn\ $ x, $Header:i_dnnt.c 12.0$`<T3`<@#`<D##?`<T#`<D##?`,T#`<44@P"PvPP>PPP*P h'p"+p2:A.oVncs.oVhc2.1n.oVO_i_dnnt_.i_dnnt_floor_.floorFPGLUE i_indx.o 597749568 0 10 100777 243 ` H<EAoSmn0 @@]Pё   ,菤 A$Header:i_indx.c 12.0$@ h'`"+.oVncs.oVhc2.1n.oVO_i_indx_.i_indx i_len.o 597749575 0 10 100777 177 ` <b0$Header:i_len.c 12.0$@ h' !x).oVncs.oVhc2.1n.oVO_i_len_.i_len i_mod.o 597749583 0 10 100777 232 ` $Hnp3p"Ԍb0,! $Header:i_mod.c 12.0$@ h'"<!)0.oVncs.oVhc2.1n.oVO_i_mod_.i_modldiv$$i_nint.o 597749590 0 10 100777 1045 ` X`Hnt ` X, $Header:i_nint.c 12.0$`<l2`<@"`<P##?`<T#`<P##?`,T#`<44@P"PP*PzPPPrP h'p"+p2:A.oVncs.oVhc2.1n.oVO_i_nint_.i_nint_floor_.floorFPGLUE i_sign.o 597749597 0 10 100777 195 ` <p" "p"$Header:i_sign.c 12.0$@ h'20"+.oVncs.oVhc2.1n.oVO_i_sign_.i_sign l_ge.o 597749603 0 10 100777 266 ` ( Tnԍ/!,A $Header:l_ge.c 12.0$ @P h'a@ '.6.oVncs.oVhc2.1n.oVO_l_ge_.l_ge_s_cmp_.s_cmpl_gt.o 597749610 0 10 100777 274 ` 0 Tnԍ` /!,A $Header:l_gt.c 12.0$ @P h'pH '.6.oVncs.oVhc2.1n.oVO_l_gt_.l_gt_s_cmp_.s_cmpl_le.o 597749618 0 10 100777 270 ` , Tnԍ` /,A $Header:l_le.c 12.0$ @P h'kD '.6.oVncs.oVhc2.1n.oVO_l_le_.l_le_s_cmp_.s_cmpl_lt.o 597749624 0 10 100777 262 ` $ Tnԍ/,A $Header:l_lt.c 12.0$ @P h'z< '.6.oVncs.oVhc2.1n.oVO_l_lt_.l_lt_s_cmp_.s_cmplnblnk_.o 597749631 0 10 100777 209 ` $<d b4!$ @ ```!$$Header:lnblnk_.c 12.0$@ h'<#s-.oVncs.oVhc2.1n.oVO_lnblnk__.lnblnk_ long_.o 597749638 0 10 100777 177 ` <P"$Header:long_.c 12.0$@ h' !%).oVncs.oVhc2.1n.oVO_long__.long_ main.o 597749653 0 10 100777 2581 ` h@n/?bcЍc 0 b  41 ١nl j0`b  b1b0 @  p+> dD@'p+>d@  p+> dD@ p+>$d@p;p#! 0# q#!1#X "s  q#q#@"D*DHq $0LbPɡ<ߨ1$Header:main.c 12.0$@(#)main.c 2.15 8/25/83$Header:fiodefs.h 12.0$hp|  4Hh$0p*** %s: %s: Type=%d?%scompat mode: Code=%dHangupInterrupt!Quit!Illegal Trace TrapIOT TrapEMT TrapArithmetic ExceptionBus errorSegmentation violationSys argOpen pipeAlarmTerminatedSig 16Integer overflowInteger divide by 0Floating point overflow trapFloating divide by zero trapFloating point underflow trapDecimal overflowSubscript rangeFloating point overflowFloating divide by zeroFloating point underflowaddr modeinstructionoperand pp`( 8 H PX p*<x !H@L PP PT PXP\@d@l@t@|@@@@@@@@@@@@@@@@@ @@@$@,@4@<@D@PPPPP P h'%%,83~9@HPYahjqyp,kvapc4f <%.oVncs.oVhc2.1n.oVO_id_libF77_xargc_xargv_main_.main_sigdie_signal_.signal_f_init_.f_init_MAIN__.MAIN__f_exit_.f_exit_sig_act_act_fpe_act_ill_.sigdie_sigsetmask_.sigsetmask_units_fprintf_.fprintf__flsbuf_._flsbuf__cleanup_._cleanup_abort_.abort_exit_.exit pow_ci.o 597749661 0 10 100777 895 ` P$`@nm \!c\ P1$Header:pow_ci.c 12.0$`$T32`4P32`h3`H2 `h3`H2 @P"PvPP.PvPP h'h"'++3U<C.oVncs.oVhc2.1n.oVO_pow_ci_.pow_ci_pow_zi_.pow_ziFPGLUE pow_dd.o 597749668 0 10 100777 274 ` 0 TnqSpCqpbc,! $Header:pow_dd.c 12.0$@P h'H"$+ 06.oVncs.oVhc2.1n.oVO_pow_dd_.pow_dd_pow_.powpow_di.o 597749675 0 10 100777 842 ` HXٱnpp# "  @hɱH" ! @hɱHߺ! $Header:pow_di.c 12.0$` ` T#?` ``,T@3`l#`<(#` ` ``@P6PPPPZPPPPP h'")+2.oVncs.oVhc2.1n.oVO_pow_di_.pow_diFPGLUEpow_hh.o 597749684 0 10 100777 286 ` PHٱnȤPP”   bcѱ bcbɱ8߸!$Header:pow_hh.c 12.0$"2@ h'h"0+:2.oVncs.oVhc2.1n.oVO_pow_hh_.pow_hhlmul$$pow_ii.o 597749691 0 10 100777 390 ` HٱnȤpp”!ɱ8 ɱ8!ɱ8  eЩ_`]!ɱ8 ɱ8  bck bcl bɱ8߸!$Header:pow_ii.c 12.0$@ h' "3+:2.oVncs.oVhc2.1n.oVO_pow_ii_.pow_iilmul$$pow_ri.o 597749699 0 10 100777 854 ` HXٱnpp# "  LtɱH" ! LtɱHߺ! $Header:pow_ri.c 12.0$` ` T#?` ``,`@2`l#`<(#` ` ``@P6PPPPfPPPPP h'"E+2.oVncs.oVhc2.1n.oVO_pow_ri_.pow_riFPGLUEpow_rr.o 597749706 0 10 100777 665 ` <h`0nd0X,! $Header:pow_rr.c 12.0$`4P#2` TE2` h#` <#@P"PrPP.P h'$T"N+ 06=.oVncs.oVhc2.1n.oVO_pow_rr_.pow_rr_pow_.powFPGLUE pow_zi.o 597749716 0 10 100777 1721 ` T`ٱnpl e0p ?0,1 2,3  DɱX bcdP qp%0!1sr%2!3  8L,T |8LɱXߺ1<$$Header:pow_zi.c 12.0$`<<`L<`<T3 `<T3`<`<T3 `<T3`<`<`<`<(3 `<(3 `<T3`<|`<T\3`<L`<T#@`<(3`<(3`L<H@P"P^PPPRPfPPP"P2PFPnPPPPRPfPPP P h'+"U+2x:A.oVncs.oVhc2.1n.oVO_pow_zi_.pow_zi_z_div_.z_divFPGLUE pow_zz.o 597749724 0 10 100777 1598 ` ,0ٱnl k0m@s[rKq pbcLq ps[rKb@cPde  Hp(P(ɱHߺ18 $Header:pow_zz.c 12.0$`08`0X#`0T#`0(3 `0(3 `0(#`0T#`0(3 `0(3 `0` (#` D3 #` D3 #`<8"*H h @P P$ P( P, P0P6PfPPP:PbPPPP.PBPjPPP h'<"f+%1W8=CJJRW]bhmsz.oVncs.oVhc2.1n.oVO_pow_zz_.pow_zz_cabs_.cabs_log_.log_atan2_.atan2_exp_.exp_cos_.cos_sin_.sinFPGLUEr_abs.o 597749731 0 10 100777 640 ` D|H(np  ,@ , $Header:r_abs.c 12.0$`<l2`<@"`<4#`<$@PP&PZP h'w\!)0.oVncs.oVhc2.1n.oVO_r_abs_.r_absFPGLUEr_acos.o 597749738 0 10 100777 375 ` (p`n, $Header:r_acos.c 12.0$`<P#2@P"P h'@"+71i8?.oVncs.oVhc2.1n.oVO_r_acos_.r_acos_acos_.acosFPGLUE r_asin.o 597749746 0 10 100777 375 ` (p`n, $Header:r_asin.c 12.0$`<P#2@P"P h'@"+f18?.oVncs.oVhc2.1n.oVO_r_asin_.r_asin_asin_.asinFPGLUE r_atan.o 597749753 0 10 100777 375 ` (p`n, $Header:r_atan.c 12.0$`<P#2@P"P h'@"+Z18?.oVncs.oVhc2.1n.oVO_r_atan_.r_atan_atan_.atanFPGLUE r_atn2.o 597749759 0 10 100777 477 ` 0` nd0X,! $Header:r_atn2.c 12.0$`4P#2` TE2@P"PrP h'H"+2J:A.oVncs.oVhc2.1n.oVO_r_atn2_.r_atn2_atan2_.atan2FPGLUE r_cnjg.o 597749766 0 10 100777 326 ` $xHnp0,! $Header:r_cnjg.c 12.0$`\22@P h'<"+2.oVncs.oVhc2.1n.oVO_r_cnjg_.r_cnjgFPGLUEr_cos.o 597749773 0 10 100777 371 ` (p`n, $Header:r_cos.c 12.0$`<P#2@P"P h'@!).4;.oVncs.oVhc2.1n.oVO_r_cos_.r_cos_cos_.cosFPGLUE r_cosh.o 597749781 0 10 100777 375 ` (p`n, $Header:r_cosh.c 12.0$`<P#2@P"P h'@"+t18?.oVncs.oVhc2.1n.oVO_r_cosh_.r_cosh_cosh_.coshFPGLUE r_dim.o 597749788 0 10 100777 812 ` DH8np0`,! $Header:r_dim.c 12.0$`,l2`<l2`<T`<0`<l"`<4#@PPPJPzPP h'\!)0.oVncs.oVhc2.1n.oVO_r_dim_.r_dimFPGLUEr_exp.o 597749795 0 10 100777 371 ` (p`n, $Header:r_exp.c 12.0$`<P#2@P"P h'@!).4;.oVncs.oVhc2.1n.oVO_r_exp_.r_exp_exp_.expFPGLUE r_imag.o 597749801 0 10 100777 310 `  lHn, $Header:r_imag.c 12.0$`<P#2@P h'8"+2.oVncs.oVhc2.1n.oVO_r_imag_.r_imagFPGLUEr_int.o 597749809 0 10 100777 967 ` `P`Hnt D, $Header:r_int.c 12.0$`<l2`<@"`<4#`<T#`<$`,T#`<(#:@P"PP*P^PPP*P h'x!)p08?.oVncs.oVhc2.1n.oVO_r_int_.r_int_floor_.floorFPGLUE r_lg10.o 597749817 0 10 100777 457 ` 0` nX, $Header:r_lg10.c 12.0$`<P#2`,D##?{&@P"PrP h'hH"0+06=.oVncs.oVhc2.1n.oVO_r_lg10_.r_lg10_log_.logFPGLUE r_log.o 597749823 0 10 100777 371 ` (p`n, $Header:r_log.c 12.0$`<P#2@P"P h'@!).4;.oVncs.oVhc2.1n.oVO_r_log_.r_log_log_.logFPGLUE r_mod.o 597749831 0 10 100777 1115 ` h`Xnl m0p  4 d4! $Header:r_mod.c 12.0$` <h2 2 `<`<@#`<(#`<T#`<(#`,T#`<`2 `< P#2 (>@P"PPP&PNPPPP~P h'!)p08?.oVncs.oVhc2.1n.oVO_r_mod_.r_mod_floor_.floorFPGLUE r_nint.o 597749838 0 10 100777 1033 ` X`Hnt ` X, $Header:r_nint.c 12.0$`<l2`<@"`<P##?`<T#`<P##?`,T#`<(#4@P"PP*PzPPPrP h'>p"+p2:A.oVncs.oVhc2.1n.oVO_r_nint_.r_nint_floor_.floorFPGLUE r_sign.o 597749846 0 10 100777 818 ` LH8nt 4X 4,! $Header:r_sign.c 12.0$` p"`,l@2`,T`,$@`<p2`<4#@PPPNPrPP h'Rd"+2.oVncs.oVhc2.1n.oVO_r_sign_.r_signFPGLUEr_sin.o 597749853 0 10 100777 371 ` (p`n, $Header:r_sin.c 12.0$`<P#2@P"P h'@!,).4;.oVncs.oVhc2.1n.oVO_r_sin_.r_sin_sin_.sinFPGLUE r_sinh.o 597749860 0 10 100777 375 ` (p`n, $Header:r_sinh.c 12.0$`<P#2@P"P h'Z@""+18?.oVncs.oVhc2.1n.oVO_r_sinh_.r_sinh_sinh_.sinhFPGLUE r_sqrt.o 597749867 0 10 100777 375 ` (p`n, $Header:r_sqrt.c 12.0$`<P#2@P"P h'@"V+188?.oVncs.oVhc2.1n.oVO_r_sqrt_.r_sqrt_sqrt_.sqrtFPGLUE r_tan.o 597749874 0 10 100777 371 ` (p`n, $Header:r_tan.c 12.0$`<P#2@P"P h'@! ).4;.oVncs.oVhc2.1n.oVO_r_tan_.r_tan_tan_.tanFPGLUE r_tanh.o 597749882 0 10 100777 375 ` (p`n, $Header:r_tanh.c 12.0$`<P#2@P"P h'B@" +18?.oVncs.oVhc2.1n.oVO_r_tanh_.r_tanh_tanh_.tanhFPGLUE rand_.o 597749890 0 10 100777 894 ` 40@np"Ԕ , np"Ԕ l, np"Ԕ X\, $Header:rand_.c 12.0$0` <h"O`<4#l` <l##A@H|@P P$@* P P@ P h'"+(2:@GN0V]1heln.oVncs.oVhc2.1n.oVO_irand__.irand__srand_.srand_rand_.rand_rand__.rand_FPGLUE_drand__.drand_random_.o 597749898 0 10 100777 910 ` 40@np"Ԕ , np"Ԕ l, np"Ԕ X\, $Header:random_.c 12.0$0` <h"O`<4#l` <l##A@H|@P P$@* P P@ P h'#-6@EH QKZ0dk?htl~.oVncs.oVhc2.1n.oVO_irandm__.irandm__srandom_.srandom_random_.random_random__.random_FPGLUE_drandm__.drandm_range.o 597749907 0 10 100777 679 ` 48 "G0$ 01q1p!,  80$ 01q1p!, " >0$ <01q1p!, $Header:range.c 12.0$@Vt@@ @$@(@,@0@ h'e"-+q4>qF9@O}X Vbjts{.oVncs.oVhc2.1n.oVO_flmax__.flmax__dflmax__.dflmax__flmin__.flmin__dflmin__.dflmin__inmax__.inmax__ffrac__.ffrac__dffrac__.dffrac_ rindex_.o 597749915 0 10 100777 320 ` X Tّni j0k@lP` m bcde  -)ɑ@ѳ ɑ@ߘA$Header:rindex_.c 12.0$$@P h'9p#+-4<.oVncs.oVhc2.1n.oVO_rindex__.rindex__s_cmp_.s_cmps_cat.o 597749923 0 10 100777 277 ` l<ٱpȤ~ѴnoepnepU @Q!``` !```ɱ8߸Q$Header:s_cat.c 12.0$@ h'!).oVncs.oVhc2.1n.oVO_s_cat_.s_cat s_cmp.o 597749930 0 10 100777 321 ` <mBoSE -@@B@ b@ 菑!1- ?/@  菑1? "?@@B@ !1? ```b@ 菳- @B $菑!- A$Header:s_cmp.c 12.0$@ h'!).oVncs.oVhc2.1n.oVO_s_cmp_.s_cmp s_copy.o 597749938 0 10 100777 267 ` `<oBE /$@1!/ ```dS4 @1!4 ```/ !/ ```A$Header:s_copy.c 12.0$@ h''x"+.oVncs.oVhc2.1n.oVO_s_copy_.s_copy s_paus.o 597749949 0 10 100777 1571 ` 8`ّni j0(>bЍZz 3 : {,@92!&;,,8" 0},2{<@)#* 1; bЍp  0 q<@#11\bЍĤ e >dbФO03/Ѝ>bЍɑ@ߘ!$Header:s_paus.c 12.0$PAUSE: To resume execution, type: go Any other input will terminate the program. STOP To resume execution, type: kill -%d %d Execution resumed after PAUSE. p t  : ` rz`@PP P PPPPPPP@ h'["#+.1:4DfMW3_hq{pq8/.oVncs.oVhc2.1n.oVO_s_paus_.s_paus__iob_fprintf_.fprintf__flsbuf_._flsbuf_isatty_.isatty__filbuf_._filbuf_f_exit_.f_exit__cleanup_._cleanup_exit_.exit_getpid_.getpid_signal_.signal_pause_.pause s_rnge.o 597749959 0 10 100777 935 ` TP(فnh i0j@ذȻ(>bdPp@ _ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bctbctє@ _>8bdp@ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bctbctє@ >lbpx|ɁD߈A$Header:s_rnge.c 12.0$Subscript out of range on file line %d, procedure . Attempt to access the %ld-th element of variable . p$z   ,4 < @PP P P h'ul"=+.1:4DfMWals<{.oVncs.oVhc2.1n.oVO_s_rnge_.s_rnge__iob_fprintf_.fprintf__flsbuf_._flsbuf__cleanup_._cleanup_abort_.abort s_stop.o 597749968 0 10 100777 802 ` 8H0ّni j0g(>bЍ z 3 : {,@92!&;,,8" 0},2{<@)#* 1;FOzZ.oVncs.oVhc2.1n.oVO_signal__.signal__errno_sig_trap_signal_.signal_.sig_trapsinh.o 597749996 0 10 100777 3646 `  x0ٱn,# ,ɱHXɱH#04xɱH4D4$4LɱHߺ!0 ٱnDɱHɱHߺ!0 $Header:sinh.c 12.0$#?޺dO-l6-:N=Ty#?޺dO@ͷ>e`$0`<T#`<#`<`<#@5`<(#` ,D##@`<(#`,0`<(#`,0`<#?`<T#`<(#`<(#`<` ` ,D##@`,0`<`<(P3`<TP3`<P`<TP3`<TP3`<p`<(03`<0`<T03 `<`<T3` <`<P# `,04`<#`<`<#@5`<(#` ,D##@`,0`<(#`,(#8fP@TPZP~PPVPfPPPVP~PPPPPPP&PPPP P@2P@@PP@P@>PNP`@vPP@PP@>PNPP@PRPbPP P RP ~P P h' ',29t ?4F.oVncs.oVhc2.1n.oVO_sinh_.sinh_exp_.expFPGLUE_cosh_.coshsubout.o 597750006 0 10 100777 931 ` TP(فnh i0j@ذȻ(>bdPl@ _ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bcpbcpє@ _>4bdl@ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bcpbcpє@ >hbltxɁD߈A$Header:subout.c 12.0$Subscript out of range on line %d of procedure . Attempt to access the %ld-th element of variable . p$z   ,4 < @PP P P h'l"+.1:4DfMWals<{.oVncs.oVhc2.1n.oVO_subout_.subout__iob_fprintf_.fprintf__flsbuf_._flsbuf__cleanup_._cleanup_abort_.abort tanh.o 597750015 0 10 100777 1436 ` xٱn 0\l DlɱHXɱHߺ!0 $Header:tanh.c 12.0$`$0`<T#`<T#?`<#`<`<T#`<#@5`<(#`,0`,(#`,T#` <D##`,0Th@P P& PJ P P Pv P P P^ P P P P. Pr P h' '-4t:AH.oVncs.oVhc2.1n.oVO_tanh_.tanh_sinh_.sinh_cosh_.coshFPGLUEtraper_.o 597750022 0 10 100777 181 ` <鏤 $Header:traper_.c 12.0$@ h'] #O-.oVncs.oVhc2.1n.oVO_traper__.traper_ trapov_.o 597750032 0 10 100777 290 ` PT鏤 $Header:trapov_.c 12.0$$Header:opcodes.h 12.0$$Header:fiodefs.h 12.0$H@L@ h'X#-\5+>.oVncs.oVhc2.1n.oVO_trapov__.trapov__ovcnt__.ovcnt_trpfpe_.o 597750043 0 10 100777 316 ` hT鏤 $Header:trpfpe_.c 12.0$$Header:opcodes.h 12.0$$Header:operand.h 12.0$$Header:fiodefs.h 12.0$`@d@ h'qp#-t6-@.oVncs.oVhc2.1n.oVO_trpfpe__.trpfpe__fpecnt__.fpecnt_z_abs.o 597750050 0 10 100777 270 ` , TnsRrBq2pb, $Header:z_abs.c 12.0$@P h'D![)%/W6.oVncs.oVhc2.1n.oVO_z_abs_.z_abs_cabs_.cabsz_cos.o 597750058 0 10 100777 932 ` t Xٱnl m0q=p-,s=r-q=p- s=r-\ɱHߺ! $Header:z_cos.c 12.0$` `<T#`,D3 #`,T#`<D3 #` *< N @P P$ P( P. PF P P P2 Pv P h'!}).4t:AFLRY`.oVncs.oVhc2.1n.oVO_z_cos_.z_cos_cos_.cos_cosh_.cosh_sin_.sin_sinh_.sinhFPGLUEz_div.o 597750068 0 10 100777 2131 ` x`ٱnk l0m@8,< 5( 8<L\pPxɱHXlpP8ɱHߺ18 $Header:z_div.c 12.0$`08`<T3 `<`<T#`< @P P$ P h'1t!)0J8%>WEJP.oVncs.oVhc2.1n.oVO_z_log_.z_log_atan2_.atan2_cabs_.cabs_log_.logz_sin.o 597750091 0 10 100777 840 ` t< Pٱnl m0q=p-,s=r-q=p- ,s=r-ɱHߺ! $Header:z_sin.c 12.0$` `<T#`,D3 #`,D3 #` *< N @P P$ P( P. PF P P P" P h'H!).4t:AFLRY`.oVncs.oVhc2.1n.oVO_z_sin_.z_sin_sin_.sin_cosh_.cosh_cos_.cos_sinh_.sinhFPGLUEz_sqrt.o 597750100 0 10 100777 1824 ` xٱn l m0s]rMq=p-$ɱH40,1<\ɱH2,3<(|(XɱHߺ! $Header:z_sqrt.c 12.0$` `\#`H#`<(3 `<(3 ` ` T3 ` <@`<T#`<D##?` <D3 #` <D3 #@` `<(#` T3 `<D3 #` <T3 ` <D3 #@` h@P P& P> P P P P2 PN P P P2 Pv P P P PB P P P. Pr P h'"+%1W8>8EL.oVncs.oVhc2.1n.oVO_z_sqrt_.z_sqrt_cabs_.cabs_sqrt_.sqrtFPGLUEVersion 597750120 0 10 100666 4312 `  4$@ DXl L\ 0@Pdt  4DXl,<L\l ,<Pdt(<Pdx  ( < P ` t  $ 8 L \ p  ( < P ` t  @(#)libF77.a Dec 10 01:41:52 1988@(#)abort_.c 1.1@(#)besj0_.c 1.1@(#)besj1_.c 1.1@(#)besjn_.c 1.1@(#)besy0_.c 1.1@(#)besy1_.c 1.1@(#)besyn_.c 1.1@(#)bit.c 1.1@(#)c_abs.c 1.1@(#)c_cos.c 1.1@(#)c_div.c 1.1@(#)c_exp.c 1.1@(#)c_log.c 5.1 - 86/12/09 - 09:04:29 */@(#)c_sin.c 1.1@(#)c_sqrt.c 5.1 - 86/12/09 - 09:04:38 */@(#)cabs.c 1.1@(#)d_abs.c 1.1@(#)d_acos.c 1.1@(#)d_asin.c 1.1@(#)d_atan.c 1.1@(#)d_atn2.c 1.1@(#)d_cnjg.c 1.1@(#)d_cos.c 1.1@(#)d_cosh.c 1.1@(#)d_dim.c 1.1@(#)d_exp.c 1.1@(#)d_imag.c 1.1@(#)d_int.c 1.1@(#)d_lg10.c 1.1@(#)d_log.c 1.1@(#)d_mod.c 1.1@(#)d_nint.c 1.1@(#)d_prod.c 1.1@(#)d_sign.c 5.1 - 86/12/09 - 09:06:05 */@(#)d_sin.c 1.1@(#)d_sinh.c 1.1@(#)d_sqrt.c 1.1@(#)d_tan.c 1.1@(#)d_tanh.c 1.1@(#)dbesj0_.c 1.1@(#)dbesj1_.c 1.1@(#)dbesjn_.c 1.1@(#)dbesy0_.c 1.1@(#)dbesy1_.c 1.1@(#)dbesyn_.c 1.1@(#)derf_.c 1.1@(#)derfc_.c 1.1@(#)ef1asc_.c 1.1@(#)ef1cmc_.c 1.1@(#)erf_.c 1.1@(#)erfc_.c 1.1@(#)exit_.c 1.1@(#)h_abs.c 1.1@(#)h_dim.c 1.1@(#)h_dnnt.c 1.1@(#)h_indx.c 1.1@(#)h_len.c 1.1@(#)h_mod.c 1.1@(#)h_nint.c 1.1@(#)h_sign.c 1.1@(#)hl_ge.c 1.1@(#)hl_gt.c 1.1@(#)hl_le.c 1.1@(#)hl_lt.c 1.1@(#)i_abs.c 1.1@(#)i_dim.c 1.1@(#)i_dnnt.c 1.1@(#)i_indx.c 1.1@(#)i_len.c 1.1@(#)i_mod.c 1.1@(#)i_nint.c 1.1@(#)i_sign.c 1.1@(#)l_ge.c 1.1@(#)l_gt.c 1.1@(#)l_le.c 1.1@(#)l_lt.c 1.1@(#)lnblnk_.c 1.1@(#)long_.c 1.1@(#)main.c 2.15 8/25/83@(#)pow_ci.c 1.1@(#)pow_dd.c 1.1@(#)pow_di.c 1.1@(#)pow_hh.c 1.1@(#)pow_ii.c 1.2@(#)pow_ri.c 1.1@(#)pow_rr.c 1.1@(#)pow_zi.c 1.1@(#)pow_zz.c 1.1@(#)r_abs.c 1.1@(#)r_acos.c 1.1@(#)r_asin.c 1.1@(#)r_atan.c 1.1@(#)r_atn2.c 1.1@(#)r_cnjg.c 1.1@(#)r_cos.c 1.1@(#)r_cosh.c 1.1@(#)r_dim.c 1.1@(#)r_exp.c 1.1@(#)r_imag.c 1.1@(#)r_int.c 1.1@(#)r_lg10.c 1.1@(#)r_log.c 1.1@(#)r_mod.c 1.1@(#)r_nint.c 1.1@(#)r_sign.c 1.1@(#)r_sin.c 1.1@(#)r_sinh.c 1.1@(#)r_sqrt.c 1.1@(#)r_tan.c 1.1@(#)r_tanh.c 1.1@(#)rand_.c 1.1@(#)random_.c 1.1@(#)range.c 1.2@(#)rindex_.c 1.2@(#)s_cat.c 1.1@(#)s_cmp.c 1.1@(#)s_copy.c 1.1@(#)s_paus.c 1.1@(#)s_rnge.c 1.1@(#)s_stop.c 1.1@(#)short_.c 1.1@(#)signal_.c 1.1@(#)sinh.c 1.1@(#)subout.c 1.1@(#)tanh.c 1.1@(#)traper_.c 1.1@(#)trapov_.c 1.2@(#)trpfpe_.c 1.3@(#)z_abs.c 1.1@(#)z_cos.c 1.1@(#)z_div.c 1.1@(#)z_exp.c 1.1@(#)z_log.c 1.1@(#)z_sin.c 1.1@(#)z_sqrt.c 1.1@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@  .oVncs.oVhc2.1n_libF77_id#]loGP ### 0@P`+P`! __.SYMDEF 597788094 0 10 100666 11318 ` ,z,z,z,z,z'/./8/=/E/N2FU2F_2Fd2Fl2Fu4|44447Z7Z7Z7Z7Z99999>">'>->4>:>A>G>N>W>aAhArAwA~AD D D D D IIIIIV*V*V*V*V*ZZZ ZZ_!_+_0_7_?dFdPdUd]dfmmmwm|mmsssssvvvvvwwwwwxx xxx#zf*zf4zf9zfAzfJ{Q{[{`{h{q}rx}r}r}r}r~~~~~NNNNN>>>>%>.l5l?lDlKlSZdiqzhhhhh ~~#~(~0~9@JOV^eot|tttttPPPPP !.(.2.7.@.JQ[`is z    xxxxxTTTT T$)1:0A0K0P0Y0cjty""""" %/4;C2J2T2Y2a2jbqb{bbb88888 ð ð ð ð ð ) 0 : ? F Nb Ub _b db kb s z J J J J J ʶ ʶ ʶ ʶ ʶ " " " " %" .R 5R ?R DR LR UҴ \Ҵ fҴ kҴ rҴ z ( ( ( ( ( ٠ ٠ ٠ ٠ ٠  L L !L &L ,L 3ݾ :ݾ Dݾ Iݾ Oݾ V0 ]0 g0 l0 r0 y             & / 6 @ E M Vl ]l gl ll tl }     * / 7 @ G Q V ^ g n x }  d d d d d H H H H H " " " " "(/9>FOV`emv}ppppp!!!!! ###"#*#3%l:%lD%lI%lP%lX)_)i)n)v)+++++-----2N2N2N2N2N66666:P:P(:P-:P4:P<<&C<&M<&R<&Z<&c>j>t>y>>?????AAAAACCCCCCC CCG$G.G3G<GFGOGYGbGlKsK}KKKKKKKKKKKKKKKO`O`O`O`O`(Q/Q9Q>QEQMR|TR|^R|cR|jR|rT8yT8T8T8T8UUUUU\\\\\\\\\\`f`f`f`f`fccc$c,c5e<eFeKeTe^ehesgzggggggvbvbvbvbvbzhzhzhzhzhdddd d',5?GPNWNaNfNoNyNN&&&&&VV VVV '16=ELV[bjnqn{nnn.oVncs.oVhc2.1n.oVO_abort__.abort_.oVncs.oVhc2.1n.oVO_besj0__.besj0_.oVncs.oVhc2.1n.oVO_besj1__.besj1_.oVncs.oVhc2.1n.oVO_besjn__.besjn_.oVncs.oVhc2.1n.oVO_besy0__.besy0_.oVncs.oVhc2.1n.oVO_besy1__.besy1_.oVncs.oVhc2.1n.oVO_besyn__.besyn_.oVncs.oVhc2.1n.oVO_bis__.bis__bic__.bic__bit__.bit__setbit__.setbit_.oVncs.oVhc2.1n.oVO_c_abs_.c_abs.oVncs.oVhc2.1n.oVO_c_cos_.c_cos.oVncs.oVhc2.1n.oVO_c_div_.c_div.oVncs.oVhc2.1n.oVO_c_exp_.c_exp.oVncs.oVhc2.1n.oVO_c_log_.c_log.oVncs.oVhc2.1n.oVO_c_sin_.c_sin.oVncs.oVhc2.1n.oVO_c_sqrt_.c_sqrt.oVncs.oVhc2.1n.oVO_cabs_.cabs.oVncs.oVhc2.1n.oVO_d_abs_.d_abs.oVncs.oVhc2.1n.oVO_d_acos_.d_acos.oVncs.oVhc2.1n.oVO_d_asin_.d_asin.oVncs.oVhc2.1n.oVO_d_atan_.d_atan.oVncs.oVhc2.1n.oVO_d_atn2_.d_atn2.oVncs.oVhc2.1n.oVO_d_cnjg_.d_cnjg.oVncs.oVhc2.1n.oVO_d_cos_.d_cos.oVncs.oVhc2.1n.oVO_d_cosh_.d_cosh.oVncs.oVhc2.1n.oVO_d_dim_.d_dim.oVncs.oVhc2.1n.oVO_d_exp_.d_exp.oVncs.oVhc2.1n.oVO_d_imag_.d_imag.oVncs.oVhc2.1n.oVO_d_int_.d_int.oVncs.oVhc2.1n.oVO_d_lg10_.d_lg10.oVncs.oVhc2.1n.oVO_d_log_.d_log.oVncs.oVhc2.1n.oVO_d_mod_.d_mod.oVncs.oVhc2.1n.oVO_d_nint_.d_nint.oVncs.oVhc2.1n.oVO_d_prod_.d_prod.oVncs.oVhc2.1n.oVO_d_sign_.d_sign.oVncs.oVhc2.1n.oVO_d_sin_.d_sin.oVncs.oVhc2.1n.oVO_d_sinh_.d_sinh.oVncs.oVhc2.1n.oVO_d_sqrt_.d_sqrt.oVncs.oVhc2.1n.oVO_d_tan_.d_tan.oVncs.oVhc2.1n.oVO_d_tanh_.d_tanh.oVncs.oVhc2.1n.oVO_dbesj0__.dbesj0_.oVncs.oVhc2.1n.oVO_dbesj1__.dbesj1_.oVncs.oVhc2.1n.oVO_dbesjn__.dbesjn_.oVncs.oVhc2.1n.oVO_dbesy0__.dbesy0_.oVncs.oVhc2.1n.oVO_dbesy1__.dbesy1_.oVncs.oVhc2.1n.oVO_dbesyn__.dbesyn_.oVncs.oVhc2.1n.oVO_derf__.derf_.oVncs.oVhc2.1n.oVO_derfc__.derfc_.oVncs.oVhc2.1n.oVO_ef1asc__.ef1asc_.oVncs.oVhc2.1n.oVO_ef1cmc__.ef1cmc_.oVncs.oVhc2.1n.oVO_erf__.erf_.oVncs.oVhc2.1n.oVO_erfc__.erfc_.oVncs.oVhc2.1n.oVO_exit__.exit_.oVncs.oVhc2.1n.oVO_h_abs_.h_abs.oVncs.oVhc2.1n.oVO_h_dim_.h_dim.oVncs.oVhc2.1n.oVO_h_dnnt_.h_dnnt.oVncs.oVhc2.1n.oVO_h_indx_.h_indx.oVncs.oVhc2.1n.oVO_h_len_.h_len.oVncs.oVhc2.1n.oVO_h_mod_.h_mod.oVncs.oVhc2.1n.oVO_h_nint_.h_nint.oVncs.oVhc2.1n.oVO_h_sign_.h_sign.oVncs.oVhc2.1n.oVO_hl_ge_.hl_ge.oVncs.oVhc2.1n.oVO_hl_gt_.hl_gt.oVncs.oVhc2.1n.oVO_hl_le_.hl_le.oVncs.oVhc2.1n.oVO_hl_lt_.hl_lt.oVncs.oVhc2.1n.oVO_i_abs_.i_abs.oVncs.oVhc2.1n.oVO_i_dim_.i_dim.oVncs.oVhc2.1n.oVO_i_dnnt_.i_dnnt.oVncs.oVhc2.1n.oVO_i_indx_.i_indx.oVncs.oVhc2.1n.oVO_i_len_.i_len.oVncs.oVhc2.1n.oVO_i_mod_.i_mod.oVncs.oVhc2.1n.oVO_i_nint_.i_nint.oVncs.oVhc2.1n.oVO_i_sign_.i_sign.oVncs.oVhc2.1n.oVO_l_ge_.l_ge.oVncs.oVhc2.1n.oVO_l_gt_.l_gt.oVncs.oVhc2.1n.oVO_l_le_.l_le.oVncs.oVhc2.1n.oVO_l_lt_.l_lt.oVncs.oVhc2.1n.oVO_lnblnk__.lnblnk_.oVncs.oVhc2.1n.oVO_long__.long_.oVncs.oVhc2.1n.oVO_id_libF77_xargc_xargv_main_.main_sigdie_sig_act_act_fpe_act_ill_.sigdie.oVncs.oVhc2.1n.oVO_pow_ci_.pow_ci.oVncs.oVhc2.1n.oVO_pow_dd_.pow_dd.oVncs.oVhc2.1n.oVO_pow_di_.pow_di.oVncs.oVhc2.1n.oVO_pow_hh_.pow_hh.oVncs.oVhc2.1n.oVO_pow_ii_.pow_ii.oVncs.oVhc2.1n.oVO_pow_ri_.pow_ri.oVncs.oVhc2.1n.oVO_pow_rr_.pow_rr.oVncs.oVhc2.1n.oVO_pow_zi_.pow_zi.oVncs.oVhc2.1n.oVO_pow_zz_.pow_zz.oVncs.oVhc2.1n.oVO_r_abs_.r_abs.oVncs.oVhc2.1n.oVO_r_acos_.r_acos.oVncs.oVhc2.1n.oVO_r_asin_.r_asin.oVncs.oVhc2.1n.oVO_r_atan_.r_atan.oVncs.oVhc2.1n.oVO_r_atn2_.r_atn2.oVncs.oVhc2.1n.oVO_r_cnjg_.r_cnjg.oVncs.oVhc2.1n.oVO_r_cos_.r_cos.oVncs.oVhc2.1n.oVO_r_cosh_.r_cosh.oVncs.oVhc2.1n.oVO_r_dim_.r_dim.oVncs.oVhc2.1n.oVO_r_exp_.r_exp.oVncs.oVhc2.1n.oVO_r_imag_.r_imag.oVncs.oVhc2.1n.oVO_r_int_.r_int.oVncs.oVhc2.1n.oVO_r_lg10_.r_lg10.oVncs.oVhc2.1n.oVO_r_log_.r_log.oVncs.oVhc2.1n.oVO_r_mod_.r_mod.oVncs.oVhc2.1n.oVO_r_nint_.r_nint.oVncs.oVhc2.1n.oVO_r_sign_.r_sign.oVncs.oVhc2.1n.oVO_r_sin_.r_sin.oVncs.oVhc2.1n.oVO_r_sinh_.r_sinh.oVncs.oVhc2.1n.oVO_r_sqrt_.r_sqrt.oVncs.oVhc2.1n.oVO_r_tan_.r_tan.oVncs.oVhc2.1n.oVO_r_tanh_.r_tanh.oVncs.oVhc2.1n.oVO_irand__.irand__rand__.rand__drand__.drand_.oVncs.oVhc2.1n.oVO_irandm__.irandm__random__.random__drandm__.drandm_.oVncs.oVhc2.1n.oVO_flmax__.flmax__dflmax__.dflmax__flmin__.flmin__dflmin__.dflmin__inmax__.inmax__ffrac__.ffrac__dffrac__.dffrac_.oVncs.oVhc2.1n.oVO_rindex__.rindex_.oVncs.oVhc2.1n.oVO_s_cat_.s_cat.oVncs.oVhc2.1n.oVO_s_cmp_.s_cmp.oVncs.oVhc2.1n.oVO_s_copy_.s_copy.oVncs.oVhc2.1n.oVO_s_paus_.s_paus.oVncs.oVhc2.1n.oVO_s_rnge_.s_rnge.oVncs.oVhc2.1n.oVO_s_stop_.s_stop.oVncs.oVhc2.1n.oVO_short__.short_.oVncs.oVhc2.1n.oVO_signal__.signal__sig_trap_.sig_trap.oVncs.oVhc2.1n.oVO_sinh_.sinh_cosh_.cosh.oVncs.oVhc2.1n.oVO_subout_.subout.oVncs.oVhc2.1n.oVO_tanh_.tanh.oVncs.oVhc2.1n.oVO_traper__.traper_.oVncs.oVhc2.1n.oVO_trapov__.trapov__ovcnt__.ovcnt_.oVncs.oVhc2.1n.oVO_trpfpe__.trpfpe__fpecnt__.fpecnt_.oVncs.oVhc2.1n.oVO_z_abs_.z_abs.oVncs.oVhc2.1n.oVO_z_cos_.z_cos.oVncs.oVhc2.1n.oVO_z_div_.z_div.oVncs.oVhc2.1n.oVO_z_exp_.z_exp.oVncs.oVhc2.1n.oVO_z_log_.z_log.oVncs.oVhc2.1n.oVO_z_sin_.z_sin.oVncs.oVhc2.1n.oVO_z_sqrt_.z_sqrt.oVncs.oVhc2.1n_libF77_idabort_.o 597749084 0 10 100777 778 ` HP8ٱn`k l0(>bЍ @+cЍ >bЍ*cЍ $(,ɱ8߸!$Header:abort_.c 12.0$abort: called p&. F \h px@0P4 P8 P< P@PDP h'q"9+2.8A4KRZaiqpz<.oVncs.oVhc2.1n.oVO_abort__.abort_mcount__iob_fprintf_.fprintf_nargs_.nargs_fputc_.fputc_f_exit_.f_exit__cleanup_._cleanup_abort_.abortbesj0_.o 597749093 0 10 100777 586 ` <l(n` \, $Header:besj0_.c 12.0$`<P#2`,`#`,4# @ P&PvPP h'9T"+26;B.oVncs.oVhc2.1n.oVO_besj0__.besj0_mcount_j0_.j0FPGLUEbesj1_.o 597749100 0 10 100777 586 ` <l(n` \, $Header:besj1_.c 12.0$`<P#2`,`#`,4# @ P&PvPP h';T"+26;B.oVncs.oVhc2.1n.oVO_besj1__.besj1_mcount_j1_.j1FPGLUEbesjn_.o 597749107 0 10 100777 594 ` <l(n`p" \,! $Header:besjn_.c 12.0$`P42`$d#`$8# @ P&PvPP h'T"}+26;B.oVncs.oVhc2.1n.oVO_besjn__.besjn_mcount_jn_.jnFPGLUEbesy0_.o 597749114 0 10 100777 586 ` <l(n` \, $Header:besy0_.c 12.0$`<P#2`,`#`,4# @ P&PvPP h'uT"=+26;B.oVncs.oVhc2.1n.oVO_besy0__.besy0_mcount_y0_.y0FPGLUEbesy1_.o 597749121 0 10 100777 586 ` <l(n` \, $Header:besy1_.c 12.0$`<P#2`,`#`,4# @ P&PvPP h'wT"?+26;B.oVncs.oVhc2.1n.oVO_besy1__.besy1_mcount_y1_.y1FPGLUEbesyn_.o 597749128 0 10 100777 594 ` <l(n`p" \,! $Header:besyn_.c 12.0$`P42`$d#`$8# @ P&PvPP h'T"+26;B.oVncs.oVhc2.1n.oVO_besyn__.besyn_mcount_yn_.ynFPGLUEbit.o 597749136 0 10 100777 671 ` < 0n`p"  p#0,,! n`p"  p#0,,! n`p"  ,p# /,! n`p , ,1 $Header:bit.c 12.0$@$ L@@$@,@4@8@ h'K }'.+$4]@;M,AHQ4QC[.oVncs.oVhc2.1n.oVO_bis__.bis_mcount_bic__.bic__bit__.bit__setbit__.setbit_ c_abs.o 597749143 0 10 100777 512 ` 8l n`d \, $Header:c_abs.c 12.0$`4P#2` TE2 @ P&PvP h'P!)0%6W=D.oVncs.oVhc2.1n.oVO_c_abs_.c_absmcount_cabs_.cabsFPGLUEc_cos.o 597749150 0 10 100777 1335 ` (xٱn`l m00 0000HɱHߺ! $Header:c_cos.c 12.0$` `,P#2 `,`#`,P#2 `,`#`,L2 `,T#`,`,L2 `   4 N h @ P$P( P, P2PJPPPJPPPJPbPP h'! )05;tAHMSY`g.oVncs.oVhc2.1n.oVO_c_cos_.c_cosmcount_cos_.cos_cosh_.cosh_sin_.sin_sinh_.sinhFPGLUE c_div.o 597749160 0 10 100777 3182 ` \lXٱn` k l0m@T<x Xh DT$x4L,xɱH$x4 8dɱHߺ1> $Header:c_div.c 12.0$`H>`<l2 `<`<`<T#`<<`<`<l2 `<D`<`<<`<`<<`<$6` <0`<`<`<T#?`<`<42 `<`2 `<`<^` <L2 `<42 `< `2 ` < L2 `\>` <$`<`<n`<Tn#?`<~`<4^2 `<`^2 `<>` <L^2 `<`2 `< 42 ` < L2 `\> r@ P&PnPPPPVPPPP&P6PrPPPPP*P>PPPP6PNPfPPPFPPPP*P>PPPP:PRPPP2P~P h't!)07<?F.oVncs.oVhc2.1n.oVO_c_div_.c_divmcount_abort_.abortFPGLUEc_exp.o 597749168 0 10 100777 1128 ` |X `ٱn`l m0,| ,,$ɱHߺ! $Header:c_exp.c 12.0$` `<P#2 `,`#`,P#2 `,`#`,L2 `,L2 `   4 N @ P$P( P. PF P P PF P P P> P h'!$)05;@FKQX.oVncs.oVhc2.1n.oVO_c_exp_.c_expmcount_exp_.exp_cos_.cos_sin_.sinFPGLUEc_log.o 597749176 0 10 100777 1154 ` px `n`l m0d h b4! `<P#2 ` TE2 ` h#` H2 ` X#2 `XE2 ` D2 $Header:c_log.c 12.0$  @ H @@ PP P Pj P P& Pn P P P h't!%)07J?%EWLQW^.oVncs.oVhc2.1n.oVO_c_log_.c_logmcount_atan2_.atan2_cabs_.cabs_log_.logFPGLUEc_sin.o 597749183 0 10 100777 1207 ` \(hٱn`l m00 000(ɱHߺ! $Header:c_sin.c 12.0$` `,P#2 `,`#`,P#2 `,`#`,L2 `,L2 `   4 N b @ P$P( P, P2PJPPPJPPPBP h'!<)05;tAHMSY`g.oVncs.oVhc2.1n.oVO_c_sin_.c_sinmcount_sin_.sin_cosh_.cosh_cos_.cos_sinh_.sinhFPGLUE c_sqrt.o 597749192 0 10 100777 2323 ` L ٱn`l m0(x1 J0 ,X 0p'$ X XX|bɱHߺ! ` `<P#2 ` PE2 `d##` l"` l2 ` T@`<4#`<D##?`,`#`,@`2 ` ,L2 ` ,h2 "@`<4#`,@@2 `,l@2 `,T `<$` <0` <h2 "@` $Header:c_sqrt.c 12.0$ &` @@ PP P. P~ P P2 P P P^ P P P6 Pv P P* P^ P P P^ P P P P h'"v+2%8W?E8LS.oVncs.oVhc2.1n.oVO_c_sqrt_.c_sqrtmcount_cabs_.cabs_sqrt_.sqrtFPGLUE cabs.o 597749201 0 10 100777 1514 ` lٱn` $x \l $8 \ɱH0XɱHߺA $Header:cabs.c 12.0$` `0T#`<TE`<T#`<<`< `<<`<`<<`<`<``<`<`<$`<(#` ` <`<`<D##?`,(#`,(#`  @ P&P>PPP:PvPPPPPP.P>PRPvPPPPP"PJPrP h'% W'.48;B.oVncs.oVhc2.1n.oVO_cabs_.cabsmcount_sqrt_.sqrtFPGLUEd_abs.o 597749208 0 10 100777 483 ` <Tn`q2p" ,, $Header:d_abs.c 12.0$` x##`<D## @"PP h'T!)07.oVncs.oVhc2.1n.oVO_d_abs_.d_absmcountFPGLUE d_acos.o 597749215 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_acos.c 12.0$ @ P h'H"+278i?.oVncs.oVhc2.1n.oVO_d_acos_.d_acosmcount_acos_.acos d_asin.o 597749223 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_asin.c 12.0$ @ P h'.H"+2f8?.oVncs.oVhc2.1n.oVO_d_asin_.d_asinmcount_asin_.asin d_atan.o 597749229 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_atan.c 12.0$ @ P h'"H"+2Z8?.oVncs.oVhc2.1n.oVO_d_atan_.d_atanmcount_atan_.atan d_atn2.o 597749236 0 10 100777 313 ` 4$`n`qSpCqpbc,! $Header:d_atn2.c 12.0$ @ P h'L"+29JA.oVncs.oVhc2.1n.oVO_d_atn2_.d_atn2mcount_atan2_.atan2 d_cnjg.o 597749242 0 10 100777 345 ` 0dTn`qpC0B1,! $Header:d_cnjg.c 12.0$`D33 @"P h'%H"+29.oVncs.oVhc2.1n.oVO_d_cnjg_.d_cnjgmcountFPGLUE d_cos.o 597749249 0 10 100777 303 ` 0$`n`c p#q3, $Header:d_cos.c 12.0$ @ P h'H!)05;.oVncs.oVhc2.1n.oVO_d_cos_.d_cosmcount_cos_.cos d_cosh.o 597749256 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_cosh.c 12.0$ @ P h'<H"+2t8?.oVncs.oVhc2.1n.oVO_d_cosh_.d_coshmcount_cosh_.cosh d_dim.o 597749263 0 10 100777 583 ` @,T(n`\ 0,! $Header:d_dim.c 12.0$`,T3`<T3`<<`<(# @"PvPPP h'X!)07.oVncs.oVhc2.1n.oVO_d_dim_.d_dimmcountFPGLUE d_exp.o 597749270 0 10 100777 303 ` 0$`n`c p#q3, $Header:d_exp.c 12.0$ @ P h'H!4)05;.oVncs.oVhc2.1n.oVO_d_exp_.d_expmcount_exp_.exp d_imag.o 597749276 0 10 100777 242 ` ( Hn`c r#s3, $Header:d_imag.c 12.0$ @ h'?@"+2.oVncs.oVhc2.1n.oVO_d_imag_.d_imagmcountd_int.o 597749283 0 10 100777 810 ` Xl8n`q2p"  p, $Header:d_int.c 12.0$` x##`<T#`<D##`,T#`<(# 2@ P&PPP6PP h'p!4)0p7?F.oVncs.oVhc2.1n.oVO_d_int_.d_intmcount_floor_.floorFPGLUEd_lg10.o 597749291 0 10 100777 404 ` 4hln`c p#q3 , $Header:d_lg10.c 12.0$`,D##?{& @ P&P h'L"p+27=D.oVncs.oVhc2.1n.oVO_d_lg10_.d_lg10mcount_log_.logFPGLUEd_log.o 597749297 0 10 100777 303 ` 0$`n`c p#q3, $Header:d_log.c 12.0$ @ P h'H!5)05;.oVncs.oVhc2.1n.oVO_d_log_.d_logmcount_log_.log d_mod.o 597749304 0 10 100777 1054 ` h|lPn`l m0 P  Px 4! $Header:d_mod.c 12.0$` <D3 3 `<@#`<(#`<T#`<(#`,T#`<T3 `< D#3  (>@ P&PjPPPjPPP:P h'!6)0p7?F.oVncs.oVhc2.1n.oVO_d_mod_.d_modmcount_floor_.floorFPGLUEd_nint.o 597749311 0 10 100777 1000 ` `TlHn` ` ( |, $Header:d_nint.c 12.0$`<T3`<@#`<D##?`<T#`<D##?`,T#`<(# $:@ P&PzPPBPPP.P h'~x"F+2p9AH.oVncs.oVhc2.1n.oVO_d_nint_.d_nintmcount_floor_.floorFPGLUEd_prod.o 597749319 0 10 100777 437 ` ,Tn`p,! $Header:d_prod.c 12.0$`<h22`<4# @"PP h'D"l+29.oVncs.oVhc2.1n.oVO_d_prod_.d_prodmcountFPGLUE d_sign.o 597749326 0 10 100777 733 ` PT@n`\T,! `,T3`,T#`,<`,@`<X3`<(#$Header:d_sign.c 12.0$ @@PbPPPPZP h'T"Z+29.oVncs.oVhc2.1n.oVO_d_sign_.d_signmcountFPGLUE d_sin.o 597749333 0 10 100777 303 ` 0$`n`c p#q3, $Header:d_sin.c 12.0$ @ P h'H!L)05;.oVncs.oVhc2.1n.oVO_d_sin_.d_sinmcount_sin_.sin d_sinh.o 597749340 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_sinh.c 12.0$ @ P h'H"b+28?.oVncs.oVhc2.1n.oVO_d_sinh_.d_sinhmcount_sinh_.sinh d_sqrt.o 597749346 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_sqrt.c 12.0$ @ P h'H"+288?.oVncs.oVhc2.1n.oVO_d_sqrt_.d_sqrtmcount_sqrt_.sqrt d_tan.o 597749354 0 10 100777 303 ` 0$`n`c p#q3, $Header:d_tan.c 12.0$ @ P h'H!@)05;.oVncs.oVhc2.1n.oVO_d_tan_.d_tanmcount_tan_.tan d_tanh.o 597749361 0 10 100777 307 ` 0$`n`c p#q3, $Header:d_tanh.c 12.0$ @ P h'H"J+28?.oVncs.oVhc2.1n.oVO_d_tanh_.d_tanhmcount_tanh_.tanh dbesj0_.o 597749367 0 10 100777 305 ` 0$`n`c p#q3, $Header:dbesj0_.c 12.0$ @ P h'EH#-48=.oVncs.oVhc2.1n.oVO_dbesj0__.dbesj0_mcount_j0_.j0 dbesj1_.o 597749374 0 10 100777 305 ` 0$`n`c p#q3, $Header:dbesj1_.c 12.0$ @ P h'GH#-48=.oVncs.oVhc2.1n.oVO_dbesj1__.dbesj1_mcount_j1_.j1 dbesjn_.o 597749380 0 10 100777 305 ` 0$`n`qCpp"c,! $Header:dbesjn_.c 12.0$ @ P h'H#Q-48=.oVncs.oVhc2.1n.oVO_dbesjn__.dbesjn_mcount_jn_.jn dbesy0_.o 597749388 0 10 100777 305 ` 0$`n`c p#q3, $Header:dbesy0_.c 12.0$ @ P h'H#-48=.oVncs.oVhc2.1n.oVO_dbesy0__.dbesy0_mcount_y0_.y0 dbesy1_.o 597749395 0 10 100777 305 ` 0$`n`c p#q3, $Header:dbesy1_.c 12.0$ @ P h'H#-48=.oVncs.oVhc2.1n.oVO_dbesy1__.dbesy1_mcount_y1_.y1 dbesyn_.o 597749401 0 10 100777 305 ` 0$`n`qCpp"c,! $Header:dbesyn_.c 12.0$ @ P h'H#-48=.oVncs.oVhc2.1n.oVO_dbesyn__.dbesyn_mcount_yn_.yn derf_.o 597749409 0 10 100777 303 ` 0$`n`c p#q3, $Header:derf_.c 12.0$ @ P h'H!c)05;.oVncs.oVhc2.1n.oVO_derf__.derf_mcount_erf_.erf derfc_.o 597749416 0 10 100777 307 ` 0$`n`c p#q3, $Header:derfc_.c 12.0$ @ P h'H"+2q8?.oVncs.oVhc2.1n.oVO_derfc__.derfc_mcount_erfc_.erfc ef1asc_.o 597749424 0 10 100777 321 ` 8$`n`ppUc@d,A $Header:ef1asc_.c 12.0$ @ P h']P#O-4'<E.oVncs.oVhc2.1n.oVO_ef1asc__.ef1asc_mcount_s_copy_.s_copy ef1cmc_.o 597749431 0 10 100777 311 ` 0$`n`pUpc@d,A $Header:ef1cmc_.c 12.0$ @ P h'UH#G-4;C.oVncs.oVhc2.1n.oVO_ef1cmc__.ef1cmc_mcount_s_cmp_.s_cmp erf_.o 597749438 0 10 100777 408 ` 0tln` , $Header:erf_.c 12.0$`<P#2 @ P&P h'mH '.39@.oVncs.oVhc2.1n.oVO_erf__.erf_mcount_erf_.erfFPGLUEerfc_.o 597749444 0 10 100777 412 ` 0tln` , $Header:erfc_.c 12.0$`<P#2 @ P&P h'AH!)0q6=D.oVncs.oVhc2.1n.oVO_erfc__.erfc_mcount_erfc_.erfcFPGLUEexit_.o 597749452 0 10 100777 443 ` <, n`m  p-0 $Header:exit_.c 12.0$  $ @ P$P( P h'T!)08pAKV\c.oVncs.oVhc2.1n.oVO_exit__.exit_mcount_f_exit_.f_exit__cleanup_._cleanup_exit_.exit h_abs.o 597749459 0 10 100777 252 ` 4 Hn` , , $Header:h_abs.c 12.0$ @ h'L!;)0.oVncs.oVhc2.1n.oVO_h_abs_.h_absmcounth_dim.o 597749465 0 10 100777 248 ` 0 Hn`PP"  ,! $Header:h_dim.c 12.0$ @ h'H!O)0.oVncs.oVhc2.1n.oVO_h_dim_.h_dimmcounth_dnnt.o 597749472 0 10 100777 1012 ` ``lHn` ` ( |, $Header:h_dnnt.c 12.0$`<T3`<@#`<D##?`<T#`<D##?`,T#`<4 $:@ P&PzPPBPPP.P h'x"+2p9AH.oVncs.oVhc2.1n.oVO_h_dnnt_.h_dnntmcount_floor_.floorFPGLUEh_indx.o 597749479 0 10 100777 294 ` \ Hn`EAoSmn0 @@]Pё  ,4 4A $Header:h_indx.c 12.0$ @ h't"+2.oVncs.oVhc2.1n.oVO_h_indx_.h_indxmcounth_len.o 597749487 0 10 100777 236 ` $ Hn`b0,! $Header:h_len.c 12.0$ @ h'<!i)0.oVncs.oVhc2.1n.oVO_h_len_.h_lenmcounth_mod.o 597749494 0 10 100777 271 ` , Tn`P3P"b0,! $Header:h_mod.c 12.0$ @ h'D!v)07.oVncs.oVhc2.1n.oVO_h_mod_.h_modmcountldiv$$ h_nint.o 597749501 0 10 100777 1084 ` `lHn` x d \, $Header:h_nint.c 12.0$`<l2`<@"`<P##?`<T#`<P##?`,T#`<4 $:@ P&PP.P~PP"PvP h'x"+2p9AH.oVncs.oVhc2.1n.oVO_h_nint_.h_nintmcount_floor_.floorFPGLUEh_sign.o 597749508 0 10 100777 266 ` @ Hn`  P ,,! $Header:h_sign.c 12.0$ @ h'X"+2.oVncs.oVhc2.1n.oVO_h_sign_.h_signmcounthl_ge.o 597749516 0 10 100777 303 ` ,$`n`/!,A $Header:hl_ge.c 12.0$ @ P h'3D!)07?.oVncs.oVhc2.1n.oVO_hl_ge_.hl_gemcount_s_cmp_.s_cmp hl_gt.o 597749523 0 10 100777 311 ` 4$`n`` /!,A $Header:hl_gt.c 12.0$ @ P h'BL!)07?.oVncs.oVhc2.1n.oVO_hl_gt_.hl_gtmcount_s_cmp_.s_cmp hl_le.o 597749529 0 10 100777 311 ` 4$`n`` /,A $Header:hl_le.c 12.0$ @ P h'=L!)07?.oVncs.oVhc2.1n.oVO_hl_le_.hl_lemcount_s_cmp_.s_cmp hl_lt.o 597749536 0 10 100777 303 ` ,$`n`/,A $Header:hl_lt.c 12.0$ @ P h'LD!)07?.oVncs.oVhc2.1n.oVO_hl_lt_.hl_ltmcount_s_cmp_.s_cmp i_abs.o 597749543 0 10 100777 252 ` 4 Hn`p" ,", $Header:i_abs.c 12.0$ @ h'L!K)0.oVncs.oVhc2.1n.oVO_i_abs_.i_absmcounti_dim.o 597749551 0 10 100777 248 ` 0 Hn`pp"  ,! $Header:i_dim.c 12.0$ @ h'H!_)0.oVncs.oVhc2.1n.oVO_i_dim_.i_dimmcounti_dnnt.o 597749557 0 10 100777 1012 ` ``lHn` ` ( |, $Header:i_dnnt.c 12.0$`<T3`<@#`<D##?`<T#`<D##?`,T#`<4 $:@ P&PzPPBPPP.P h'x"+2p9AH.oVncs.oVhc2.1n.oVO_i_dnnt_.i_dnntmcount_floor_.floorFPGLUEi_indx.o 597749565 0 10 100777 294 ` \ Hn`EAoSmn0 @@]Pё  ,4 4A $Header:i_indx.c 12.0$ @ h't"+2.oVncs.oVhc2.1n.oVO_i_indx_.i_indxmcounti_len.o 597749572 0 10 100777 236 ` $ Hn`b0,! $Header:i_len.c 12.0$ @ h'<!x)0.oVncs.oVhc2.1n.oVO_i_len_.i_lenmcounti_mod.o 597749578 0 10 100777 271 ` , Tn`p3p"b0,! $Header:i_mod.c 12.0$ @ h'"D!)07.oVncs.oVhc2.1n.oVO_i_mod_.i_modmcountldiv$$ i_nint.o 597749586 0 10 100777 1084 ` `lHn` x d \, $Header:i_nint.c 12.0$`<l2`<@"`<P##?`<T#`<P##?`,T#`<4 $:@ P&PP.P~PP"PvP h'x"+2p9AH.oVncs.oVhc2.1n.oVO_i_nint_.i_nintmcount_floor_.floorFPGLUEi_sign.o 597749593 0 10 100777 262 ` < Hn`p" "p",,! $Header:i_sign.c 12.0$ @ h'2T"+2.oVncs.oVhc2.1n.oVO_i_sign_.i_signmcountl_ge.o 597749600 0 10 100777 301 ` ,$`n`/!,A $Header:l_ge.c 12.0$ @ P h'aD '.5=.oVncs.oVhc2.1n.oVO_l_ge_.l_gemcount_s_cmp_.s_cmp l_gt.o 597749607 0 10 100777 309 ` 4$`n`` /!,A $Header:l_gt.c 12.0$ @ P h'pL '.5=.oVncs.oVhc2.1n.oVO_l_gt_.l_gtmcount_s_cmp_.s_cmp l_le.o 597749614 0 10 100777 309 ` 4$`n`` /,A $Header:l_le.c 12.0$ @ P h'kL '.5=.oVncs.oVhc2.1n.oVO_l_le_.l_lemcount_s_cmp_.s_cmp l_lt.o 597749621 0 10 100777 301 ` ,$`n`/,A $Header:l_lt.c 12.0$ @ P h'zD '.5=.oVncs.oVhc2.1n.oVO_l_lt_.l_ltmcount_s_cmp_.s_cmp lnblnk_.o 597749628 0 10 100777 264 ` < Hn`d b4!$ @ ```!$,! $Header:lnblnk_.c 12.0$ @ h'T#s-4.oVncs.oVhc2.1n.oVO_lnblnk__.lnblnk_mcountlong_.o 597749635 0 10 100777 236 ` $ Hn`P", $Header:long_.c 12.0$ @ h'<!%)0.oVncs.oVhc2.1n.oVO_long__.long_mcountmain.o 597749646 0 10 100777 2636 ` p@n`/?$bcЍc 0 b  41 ١n`l j0`b  b1b0 @pM@ hذȻp+>D  p+>dDD'p+>dD  p+>$dDD p+>(dDp;p#! 0# q#!1#X "s  q#q#@"H*HLq $0PbTɡ<ߨ1$Header:main.c 12.0$@(#)main.c 2.15 8/25/83$Header:fiodefs.h 12.0$|  ,4H\|,8Dv*** %s: %s: Type=%d?%scompat mode: Code=%dHangupInterrupt!Quit!Illegal Trace TrapIOT TrapEMT TrapArithmetic ExceptionBus errorSegmentation violationSys argOpen pipeAlarmTerminatedSig 16Integer overflowInteger divide by 0Floating point overflow trapFloating divide by zero trapFloating point underflow trapDecimal overflowSubscript rangeFloating point overflowFloating divide by zeroFloating point underflowaddr modeinstructionoperand pp$`. > N V^ p 6H  "H@P PT PXP\P`@h@p@x@@@@@@@@@@@@@@@@@@@@ @(@0@8@@@H@PPPPP!P h'%%,83~$9@G$OW`hhqxp<kv avc4f<%,.oVncs.oVhc2.1n.oVO_id_libF77_xargc_xargv_main_.mainmcount_sigdie_signal_.signal_f_init_.f_init_MAIN__.MAIN__f_exit_.f_exit_sig_act_act_fpe_act_ill_.sigdie_sigsetmask_.sigsetmask_units_fprintf_.fprintf__flsbuf_._flsbuf__cleanup_._cleanup_abort_.abort_exit_.exitpow_ci.o 597749657 0 10 100777 930 ` T(l@n`m `!c` P1$Header:pow_ci.c 12.0$`$T32`4P32`h3`H2 `h3`H2  $@ P&PzPP2PzPP h'l"'+2+:UCJ.oVncs.oVhc2.1n.oVO_pow_ci_.pow_cimcount_pow_zi_.pow_ziFPGLUEpow_dd.o 597749664 0 10 100777 309 ` 4$`n`qSpCqpbc,! $Header:pow_dd.c 12.0$ @ P h'L"$+2 7=.oVncs.oVhc2.1n.oVO_pow_dd_.pow_ddmcount_pow_.pow pow_di.o 597749671 0 10 100777 881 ` TXٱn` tp# "  DlɱH" ! DlɱHߺ! $Header:pow_di.c 12.0$` ` T#?` ``,T@3`l#`<(#` ` `` @"P:PPPP^PPPPP h'")+29.oVncs.oVhc2.1n.oVO_pow_di_.pow_dimcountFPGLUE pow_hh.o 597749680 0 10 100777 321 ` T Tn`PPҔ  bc  bcЌb4! $Header:pow_hh.c 12.0$ (8@ h'l"0+2:9.oVncs.oVhc2.1n.oVO_pow_hh_.pow_hhmcountlmul$$ pow_ii.o 597749688 0 10 100777 425 `  Tn`ppҔ!4 4!4 e_`^!4 4 bcl bcЌm b4! $Header:pow_ii.c 12.0$ @ h' "3+2:9.oVncs.oVhc2.1n.oVO_pow_ii_.pow_iimcountlmul$$ pow_ri.o 597749695 0 10 100777 893 ` TXٱn` tp# "  PxɱH" ! PxɱHߺ! $Header:pow_ri.c 12.0$` ` T#?` ``,`@2`l#`<(#` ` `` @"P:PPPPjPPPPP h'"E+29.oVncs.oVhc2.1n.oVO_pow_ri_.pow_rimcountFPGLUE pow_rr.o 597749703 0 10 100777 704 ` Dll0n`d0 \,! $Header:pow_rr.c 12.0$`4P#2` TE2` h#` <# @ P&PvPP2P h'$\"N+2 7=D.oVncs.oVhc2.1n.oVO_pow_rr_.pow_rrmcount_pow_.powFPGLUEpow_zi.o 597749710 0 10 100777 1760 ` Xlٱnp` l e0p ?0,1 2,3  HɱX bcdP qp%0!1sr%2!3  <P 0X <PɱXߺ1<$$Header:pow_zi.c 12.0$`<<`L<`<T3 `<T3`<`<T3 `<T3`<`<`<`<(3 `<(3 `<T3`<|`<T\3`<L`<T#@`<(3`<(3`L< N@ P&PbPPPVPjPPP&P6PJPrPPPPVPjPPPP h'+ "U+29xAH.oVncs.oVhc2.1n.oVO_pow_zi_.pow_zimcount_z_div_.z_divFPGLUEpow_zz.o 597749720 0 10 100777 1637 ` 08ٱn` l k0m@s[rKq pbc Pq ps[rKb@cPde$Lt,T,ɱHߺ18 $Header:pow_zz.c 12.0$`08`0X#`0T#`0(3 `0(3 `0(#`0T#`0(3 `0(3 `0` (#` D3 #` D3 #`<8 (0 N n @ P$P( P, P0P4P:PjPPP>PfPPP P2PFPnPPP h'<"f+2%8W?DJQJY^diotz.oVncs.oVhc2.1n.oVO_pow_zz_.pow_zzmcount_cabs_.cabs_log_.log_atan2_.atan2_exp_.exp_cos_.cos_sin_.sinFPGLUE r_abs.o 597749728 0 10 100777 679 ` LT(n`t ,D, $Header:r_abs.c 12.0$`<l2`<@"`<4#`<$ @"PP*P^P h'wd!)07.oVncs.oVhc2.1n.oVO_r_abs_.r_absmcountFPGLUE r_acos.o 597749735 0 10 100777 414 ` 0tln` , $Header:r_acos.c 12.0$`<P#2 @ P&P h'H"+278i?F.oVncs.oVhc2.1n.oVO_r_acos_.r_acosmcount_acos_.acosFPGLUEr_asin.o 597749741 0 10 100777 414 ` 0tln` , $Header:r_asin.c 12.0$`<P#2 @ P&P h'H"+2f8?F.oVncs.oVhc2.1n.oVO_r_asin_.r_asinmcount_asin_.asinFPGLUEr_atan.o 597749749 0 10 100777 414 ` 0tln` , $Header:r_atan.c 12.0$`<P#2 @ P&P h'H"+2Z8?F.oVncs.oVhc2.1n.oVO_r_atan_.r_atanmcount_atan_.atanFPGLUEr_atn2.o 597749756 0 10 100777 516 ` 8l n`d0 \,! $Header:r_atn2.c 12.0$`4P#2` TE2 @ P&PvP h'P"+29JAH.oVncs.oVhc2.1n.oVO_r_atn2_.r_atn2mcount_atan2_.atan2FPGLUEr_cnjg.o 597749763 0 10 100777 365 ` ,|Tn`p0,! $Header:r_cnjg.c 12.0$`\22 @"P h'D"+29.oVncs.oVhc2.1n.oVO_r_cnjg_.r_cnjgmcountFPGLUE r_cos.o 597749770 0 10 100777 410 ` 0tln` , $Header:r_cos.c 12.0$`<P#2 @ P&P h'H!)05;B.oVncs.oVhc2.1n.oVO_r_cos_.r_cosmcount_cos_.cosFPGLUEr_cosh.o 597749777 0 10 100777 414 ` 0tln` , $Header:r_cosh.c 12.0$`<P#2 @ P&P h'H"+2t8?F.oVncs.oVhc2.1n.oVO_r_cosh_.r_coshmcount_cosh_.coshFPGLUEr_dim.o 597749785 0 10 100777 847 ` HT8n`t4d,! $Header:r_dim.c 12.0$`,l2`<l2`<T`<0`<l"`<4# @"PPPNP~PP h'`!)07.oVncs.oVhc2.1n.oVO_r_dim_.r_dimmcountFPGLUE r_exp.o 597749791 0 10 100777 410 ` 0tln` , $Header:r_exp.c 12.0$`<P#2 @ P&P h'H!)05;B.oVncs.oVhc2.1n.oVO_r_exp_.r_expmcount_exp_.expFPGLUEr_imag.o 597749798 0 10 100777 349 ` (pTn`, $Header:r_imag.c 12.0$`<P#2 @"P h'@"+29.oVncs.oVhc2.1n.oVO_r_imag_.r_imagmcountFPGLUE r_int.o 597749805 0 10 100777 1002 ` dTlHn` x H, $Header:r_int.c 12.0$`<l2`<@"`<4#`<T#`<$`,T#`<(# $@@ P&PP.PbPPP.P h'|!)0p7?F.oVncs.oVhc2.1n.oVO_r_int_.r_intmcount_floor_.floorFPGLUEr_lg10.o 597749813 0 10 100777 492 ` 4l n` \, $Header:r_lg10.c 12.0$`<P#2`,D##?{& @ P&PvP h'hL"0+27=D.oVncs.oVhc2.1n.oVO_r_lg10_.r_lg10mcount_log_.logFPGLUEr_log.o 597749820 0 10 100777 410 ` 0tln` , $Header:r_log.c 12.0$`<P#2 @ P&P h'H!)05;B.oVncs.oVhc2.1n.oVO_r_log_.r_logmcount_log_.logFPGLUEr_mod.o 597749827 0 10 100777 1154 ` plXn`l m0 t 8 h4! $Header:r_mod.c 12.0$` <h2 2 `<`<@#`<(#`<T#`<(#`,T#`<`2 `< P#2  .D@ P&PPP*PRPPP"PP h'!)0p7?F.oVncs.oVhc2.1n.oVO_r_mod_.r_modmcount_floor_.floorFPGLUEr_nint.o 597749834 0 10 100777 1072 ` `lHn` x d \, $Header:r_nint.c 12.0$`<l2`<@"`<P##?`<T#`<P##?`,T#`<(# $:@ P&PP.P~PP"PvP h'>x"+2p9AH.oVncs.oVhc2.1n.oVO_r_nint_.r_nintmcount_floor_.floorFPGLUEr_sign.o 597749842 0 10 100777 857 ` TT8n`x 8\ 8,! $Header:r_sign.c 12.0$` p"`,l@2`,T`,$@`<p2`<4# @"PPPRPvPP h'Rl"+29.oVncs.oVhc2.1n.oVO_r_sign_.r_signmcountFPGLUE r_sin.o 597749850 0 10 100777 410 ` 0tln` , $Header:r_sin.c 12.0$`<P#2 @ P&P h'H!,)05;B.oVncs.oVhc2.1n.oVO_r_sin_.r_sinmcount_sin_.sinFPGLUEr_sinh.o 597749857 0 10 100777 414 ` 0tln` , $Header:r_sinh.c 12.0$`<P#2 @ P&P h'ZH""+28?F.oVncs.oVhc2.1n.oVO_r_sinh_.r_sinhmcount_sinh_.sinhFPGLUEr_sqrt.o 597749864 0 10 100777 414 ` 0tln` , $Header:r_sqrt.c 12.0$`<P#2 @ P&P h'H"V+288?F.oVncs.oVhc2.1n.oVO_r_sqrt_.r_sqrtmcount_sqrt_.sqrtFPGLUEr_tan.o 597749871 0 10 100777 410 ` 0tln` , $Header:r_tan.c 12.0$`<P#2 @ P&P h'H! )05;B.oVncs.oVhc2.1n.oVO_r_tan_.r_tanmcount_tan_.tanFPGLUEr_tanh.o 597749879 0 10 100777 414 ` 0tln` , $Header:r_tanh.c 12.0$`<P#2 @ P&P h'BH" +28?F.oVncs.oVhc2.1n.oVO_r_tanh_.r_tanhmcount_tanh_.tanhFPGLUErand_.o 597749886 0 10 100777 965 ` @H@n`p"  , n`p" p, n`p" TX, $Header:rand_.c 12.0$6` <h"O`<4#x` <l##A  BLT  @ P$P(@2 P P@ P h'"+2(9AGNU6]d1lxu.oVncs.oVhc2.1n.oVO_irand__.irand_mcount_srand_.srand_rand_.rand_rand__.rand_FPGLUE_drand__.drand_ random_.o 597749894 0 10 100777 981 ` @H@n`p"  , n`p" p, n`p" TX, $Header:random_.c 12.0$6` <h"O`<4#x` <l##A  BLT  @ P$P(@2 P P@ P h'#-4=GEO XKa6kr?{x.oVncs.oVhc2.1n.oVO_irandm__.irandm_mcount_srandom_.srandom_random_.random_random__.random_FPGLUE_drandm__.drandm_ range.o 597749903 0 10 100777 902 ` 0P88n` "G0, n`01q1p!4 n` 80, n`01q1p!4 n` ", n` >0, n`<01q1p!4 $Header:range.c 12.0$,` 8l@ @(@0@8@@@H@ h'eH"-+2qP;,EqXM9`V}`_ ihqzpx.oVncs.oVhc2.1n.oVO_flmax__.flmax_mcount_dflmax__.dflmax__flmin__.flmin__dflmin__.dflmin__inmax__.inmax__ffrac__.ffrac__dffrac__.dffrac_rindex_.o 597749912 0 10 100777 359 ` `$`ّn`i j0k@lP` m bcde  -)ɑ@ѳ ɑ@ߘA$Header:rindex_.c 12.0$ *@ P h'9x#+-4;C.oVncs.oVhc2.1n.oVO_rindex__.rindex_mcount_s_cmp_.s_cmp s_cat.o 597749919 0 10 100777 316 ` t Hٱn`pŤ~ᴼmoep mepU @Q!``` !```ɱ8߸Q$Header:s_cat.c 12.0$ @ h'!)0.oVncs.oVhc2.1n.oVO_s_cat_.s_catmcounts_cmp.o 597749927 0 10 100777 384 `  Hn`nBoSE #.@@B@ b@ ,!1. ?5@  ,1? &?@@B@ !1? ```b@ ,.@B $,!. ,A $Header:s_cmp.c 12.0$ @ h'!)0.oVncs.oVhc2.1n.oVO_s_cmp_.s_cmpmcounts_copy.o 597749934 0 10 100777 318 ` t Hn`oBE /&@1!/ ```,dS4 @1!4 ```/ !/ ```,A $Header:s_copy.c 12.0$ @ h''"+2.oVncs.oVhc2.1n.oVO_s_copy_.s_copymcounts_paus.o 597749944 0 10 100777 1646 ` D`ّn`i j0(>bЍZz 3 : {,@92!&;,,8" 0},2{<@)#* 1;bЍp  0 q<@#11`bЍčȤ e >hbФO03/ԍ>bЍɑ@ߘ!n`, $Header:s_paus.c 12.0$PAUSE: To resume execution, type: go Any other input will terminate the program. STOP To resume execution, type: kill -%d %d Execution resumed after PAUSE.  p&z @fx`@P P P PPPPPPP@ h'[("#+2.8A4KfT^3foxpq8/.oVncs.oVhc2.1n.oVO_s_paus_.s_pausmcount__iob_fprintf_.fprintf__flsbuf_._flsbuf_isatty_.isatty__filbuf_._filbuf_f_exit_.f_exit__cleanup_._cleanup_exit_.exit_getpid_.getpid_signal_.signal_pause_.pauses_rnge.o 597749954 0 10 100777 974 ` \X(فn`h i0j@ذȻ(>bdPt@ _ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bcxbcxє@ _>pbt|ɁD߈A$Header:s_rnge.c 12.0$Subscript out of range on file line %d, procedure . Attempt to access the %ld-th element of variable . p*   2: B@P P P P h'ut"=+2.8A4KfT^hsz<.oVncs.oVhc2.1n.oVO_s_rnge_.s_rngemcount__iob_fprintf_.fprintf__flsbuf_._flsbuf__cleanup_._cleanup_abort_.aborts_stop.o 597749964 0 10 100777 841 ` <P0ّn`i j0g(>bЍz 3 : {,@92!&;,,8" 0},2{<@)#* 1;e`$0`<T#`<#`<`<#@5`<(#` ,D##@`<(#`,0`<(#`,0`<#?`<T#`<(#`<(#`<` ` ,D##@`,0`<`<(P3`<TP3`<P`<TP3`<TP3`<p`<(03 `<0`<T03`<`<T3` <`<P# `,0:`<#`<`<#@5`<(#` ,D##@`,0`<(#`,(# >FrP@XP^PPPZPjPPPZPPPPPPPP*PPPPP @6PD@PP@P@BPRPd@zPP@PP@BPRPP@PZPjPP P ZP P P h'( '.39@t F:M.oVncs.oVhc2.1n.oVO_sinh_.sinhmcount_exp_.expFPGLUE_cosh_.cosh subout.o 597750001 0 10 100777 970 ` \X(فn`h i0j@ذȻ(>bdPp@ _ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bctbctє@ _>8bdp@ 6z;1 :;{+!%;++8" 3}+2{+0: !;+bctbctє@ >lbpx|ɁD߈A$Header:subout.c 12.0$Subscript out of range on line %d of procedure . Attempt to access the %ld-th element of variable . p*   2: B@P P P P h't"+2.8A4KfT^hsz<.oVncs.oVhc2.1n.oVO_subout_.suboutmcount__iob_fprintf_.fprintf__flsbuf_._flsbuf__cleanup_._cleanup_abort_.aborttanh.o 597750011 0 10 100777 1471 ` ٱn`4`p HpɱH \ɱHߺ!0 $Header:tanh.c 12.0$`$0`<T#`<T#?`<#`<`<T#`<#@5`<(#`,0`,(#`,T#` <D##`,0 Zn @ P$P* PN P P Pz P P Pb P P P P2 Pv P h' '.4;tA#]sloG? ### 0@P`+PHO.oVncs.oVhc2.1n.oVO_tanh_.tanhmcount_sinh_.sinh_cosh_.coshFPGLUE traper_.o 597750018 0 10 100777 240 ` $ Hn` , $Header:traper_.c 12.0$ @ h']<#O-4.oVncs.oVhc2.1n.oVO_traper__.traper_mcounttrapov_.o 597750027 0 10 100777 385 ` DX`n`,! n` , $Header:trapov_.c 12.0$$Header:opcodes.h 12.0$$Header:fiodefs.h 12.0$ ,H@P@ h'#-4<+ E.oVncs.oVhc2.1n.oVO_trapov__.trapov_mcount_ovcnt__.ovcnt_ trpfpe_.o 597750037 0 10 100777 411 ` Dp`n`,! n` , $Header:trpfpe_.c 12.0$$Header:opcodes.h 12.0$$Header:operand.h 12.0$$Header:fiodefs.h 12.0$ ,`@h@ h'q#-4=- G.oVncs.oVhc2.1n.oVO_trpfpe__.trpfpe_mcount_fpecnt__.fpecnt_ z_abs.o 597750047 0 10 100777 309 ` 4$`n`sRrBq2pb, $Header:z_abs.c 12.0$ @ P h'L![)0%6W=.oVncs.oVhc2.1n.oVO_z_abs_.z_absmcount_cabs_.cabs z_cos.o 597750054 0 10 100777 971 ` |(Xٱn`l m0q=p-0s=r- q=p-s=r-`ɱHߺ! $Header:z_cos.c 12.0$` `<T#`,D3 #`,T#`<D3 #`  0 B T @ P$P( P, P2PJPPP6PzP h'!})05;tAHMSY`g.oVncs.oVhc2.1n.oVO_z_cos_.z_cosmcount_cos_.cos_cosh_.cosh_sin_.sin_sinh_.sinhFPGLUE z_div.o 597750063 0 10 100777 2170 ` |lٱn` k l0m@<0@ 5, <@P`tT| ɱH\ptT< ɱHߺ18 $Header:z_div.c 12.0$`08`<T3 `<`<T#`< __.SYMDEF 597788109 0 10 100666 7514 ` '#.#8#=#E#N#V#_#g#p*Xw*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X *X*X*X&*X/*X8*X@*XI*XQ*XZ@a@k@p@u@z@~@@@@@@@@@@LxLxLxLxLxLxLxRRRRR R'R/R8RBRJRSRZRbYiYsYxY~YYYYYYYYYYYcvcvcvcvcvcvcv hhh#h,h6h=hFhPh\hghohvh}hhhhhhhhhhhhhhhhhhh hhh!h)h.h5h=hDhMhVh]hfhlhth~hhhhhhhhhhhhh  '16;EIQYbgmu~XXXXX`` ```"`*`3`;`D`N`Y`a`j`r`y``````````````````````(`.`5`=`F`N`W`_`h`p`y```` !'/8@HQYbkrz     ' / 8 A I R \ d m u ~ * * * * * * '* /* 8* B* J* S* [* d* l* uA |A A A A A A A A QB QB QB QB QB QB QB QB QB QB QB QB QB !QB 'QB .QB 6QB ?QB GQB PQB VQB ]fL dfL nfL sfL zfL j j j j j j j j j j j j j j j j j j j j j $j ,j 4j =j Fj Nj Wj `j hj q> x> > > > > > > > > > > > > > >        * 2 ; G T ] g s                (18@GOV^emu~.oVncs.oVhc2.1n.oVO_f_back_.f_back.oVncs.oVhc2.1n.oVO_f_clos_.f_clos_f_exit_.f_exit_flush__.flush_.oVncs.oVhc2.1n.oVO_rdfe_wdfe_s_rdfe_.s_rdfe_c_dfe_.c_dfe_y_getc_y_tab_y_rnew_s_wdfe_.s_wdfe_y_putc_y_wnew_e_rdfe_.e_rdfe_e_wdfe_.e_wdfe_.y_getc_.y_putc_.y_tab_.y_rnew_.y_wnew_y_rend_.y_rend_y_wend_.y_wend.oVncs.oVhc2.1n.oVO_cnt_ret_cp_rp_dfio_en_fio_.en_fio_do_fio_.do_fio_type_f_.type_f_fmt_bg_.fmt_bg.oVncs.oVhc2.1n.oVO_c_le_.c_le_do_lio_.do_lio.oVncs.oVhc2.1n.oVO_eor_uio_do_us_.do_us_due_err_.due_err_do_uio_.do_uio_do_ud_.do_ud.oVncs.oVhc2.1n.oVO_rdue_wdue_s_rdue_.s_rdue_c_due_.c_due_s_wdue_.s_wdue_e_rdue_.e_rdue_e_wdue_.e_wdue.oVncs.oVhc2.1n.oVO_f_end_.f_end_t_runc_.t_runc.oVncs.oVhc2.1n.oVO_tmplate_fortfile_units_reading_external_sequential_formatted_fmtbuf_icptr_icend_fmtptr_doed_doned_doend_donewrec_dorevert_dotab_lioproc_getn_putn_ungetn_svic_cf_curunit_lunit_lfname_recpos_recnum_reclen_cursor_scale_radix_signit_tab_cplus_cblank_elist_errflag_endflag_lquit_l_first_leof_lcount_line_len_ioiflg__fatal_.fatal_prnt_fmt_.prnt_fmt_prnt_ext_.prnt_ext_prnt_int_.prnt_int_ffputc_.ffputc_f_init_.f_init.oVncs.oVhc2.1n.oVO_f_errlist_f_nerr.oVncs.oVhc2.1n.oVO_syl_parenlvl_pc_revloc_pars_f_.pars_f_f_s_.f_s_op_gen_.op_gen_f_list_.f_list_i_tem_.i_tem_ne_d_.ne_d_e_d_.e_d_gt_num_.gt_num_ap_end_.ap_end.oVncs.oVhc2.1n.oVO_icvt_.icvt.oVncs.oVhc2.1n.oVO_z_getc_.z_getc_z_putc_.z_putc_z_wnew_.z_wnew_z_ungetc_.z_ungetc_s_rsfi_.s_rsfi_z_rnew_z_tab_c_si_.c_si_s_wsfi_.s_wsfi_s_rdfi_.s_rdfi_c_di_.c_di_s_wdfi_.s_wdfi_c_fi_.c_fi_.z_rnew_.z_tab_e_rsfi_.e_rsfi_e_wsfi_.e_wsfi_e_rdfi_.e_rdfi_e_wdfi_.e_wdfi_c_li_.c_li_s_rsli_.s_rsli_s_wsli_.s_wsli_e_rsli_.e_rsli_e_wsli_.e_wsli_iiorec__.iiorec__iiopos__.iiopos_.oVncs.oVhc2.1n.oVO_f_inqu_.f_inqu_.ioinit__ioiflg__ioinit_.oVpcc.oVncs.oVncs.oVhc2.1n.oVO_lrd_lchar_lx_ly_ltype_ltab_s_rsle_.s_rsle_l_read_t_getc_.t_getc_e_rsle_.e_rsle_.l_read_t_sep_.t_sep_l_R_.l_R_l_C_.l_C_l_L_.l_L_l_CHAR_.l_CHAR_lr_comm_.lr_comm_get_repet_.get_repet_rd_int_.rd_int_nullfld_.nullfld.oVncs.oVhc2.1n.oVO_lwrt_s_wsle_.s_wsle_t_putc_l_write_.t_putc_e_wsle_.e_wsle_.l_write_lwrt_I_.lwrt_I_lwrt_F_.lwrt_F_lwrt_D_.lwrt_D_lwrt_C_.lwrt_C_lwrt_DC_.lwrt_DC_lwrt_L_.lwrt_L_lwrt_A_.lwrt_A_chk_len_.chk_len_lwrt_0_.lwrt_0.oVncs.oVhc2.1n.oVO_s_rsne_.s_rsne_c_nle_.c_nle_getword_.getword_findit_.findit_getvar_.getvar_s_wsne_.s_wsne.oVncs.oVhc2.1n.oVO_f_open_.f_open_isdev_.isdev_fk_open_.fk_open.oVncs.oVhc2.1n.oVO_rd_ed_.rd_ed_rd_mvcur_.rd_mvcur_rd_I_.rd_I_rd_L_.rd_L_rd_AW_.rd_AW_rd_F_.rd_F_rd_ned_.rd_ned_rd_POS_.rd_POS_rd_H_.rd_H.oVncs.oVhc2.1n.oVO_f_rew_.f_rew.oVncs.oVhc2.1n.oVO_rsfe_wsfe_s_rsfe_.s_rsfe_c_sfe_.c_sfe_x_getc_x_rnew_x_tab_.x_rnew_.x_getc_e_rsfe_.e_rsfe_new_s_wsfe_.s_wsfe_pr_put_x_putc_x_wend_x_wnew_.x_putc_.pr_put_.x_tab_.x_wnew_.x_wend_e_wsfe_.e_wsfe.oVncs.oVhc2.1n.oVO_recloc_rsue_wsue_s_rsue_.s_rsue_c_sue_.c_sue_s_wsue_.s_wsue_e_wsue_.e_wsue_e_rsue_.e_rsue.oVncs.oVhc2.1n.oVO_ini_std_.ini_std_canseek_.canseek_finode_.finode_nowreading_.nowreading_now_acc_.now_acc_nowwriting_.nowwriting_g_char_.g_char_b_char_.b_char_inode_.inode_last_char_.last_char.oVncs.oVhc2.1n.oVO_w_ed_.w_ed_wr_mvcur_.wr_mvcur_wrt_IM_.wrt_IM_wrt_L_.wrt_L_wrt_AW_.wrt_AW_wrt_E_.wrt_E_wrt_G_.wrt_G_wrt_F_.wrt_F_w_ned_.w_ned_wrt_AP_.wrt_AP_wrt_H_.wrt_H.oVncs.oVhc2.1n_libI77_idbackspace.o 597750171 0 10 100777 1537 ` $x\H١n0޿p 0qRؠȪ0ZdP0 e/ɡ@> epZbP"%!%"jp "3Ec 010 @ ?ɡ@>q 0 x 8p*X(bɡ@p* l bɡ@t @ j/ɡ@> jy @=Nb0! ɡ@sڔ bcЌ0cp*c@bɡ@u #p*0A`pZb4AppZ0bPAbɡ@ p*bɡ@p* *```bɡ@ߨ$Header:backspace.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$backspacepp$p.p> pZ pr p p " p: PrT@X P\P`PdPhPlPpPtP h'x"+3R:D_M T[ bnjcqz|eN8.oVncs.oVhc2.1n.oVO_f_back_.f_back_lfname_elist_external_errflag_lunit_errno_fatal_.fatal_units_fk_open_.fk_open_ftell_.ftell_t_runc_.t_runcldiv$$_fseek_.fseek_fread_.fread_rewind_.rewind_last_char_.last_char close.o 597750184 0 10 100777 1599 ` \\P١nj p  0qJذȻ0Kd@0 e/ɡ<> epK@ r* @" @ e/ɡ<> epKb@"$!$"kp @ r/ɡ<> rr* K@" FA ?Z <;" p+q !b q y @=Nb$ ɡ pZ pr p p p ,<Xp, p6P@h PlPpPtPxP|@@@P h's";+3R:D_M T[ bnjcqyuypL.oVncs.oVhc2.1n.oVO_f_clos_.f_clos_lfname_elist_external_errflag_lunit_errno_fatal_.fatal_units_fclose_.fclose_unlink_.unlink_t_runc_.t_runc_free_.free_f_exit_.f_exitldiv$$_flush__.flush__fflush_.fflush dfe.o 597750206 0 10 100777 5714 `  \,8nԤ2R , "y   " ", ">    "  " d/,> d  , nФ1 0 "8y   " "0 ">܍    "  " d/0> db0 nԍ , nԍ , anf g0ݏݟݟؠȪ0ذȻݏݏ` ޟsp rqV0]dP e/aL> ep]bP"%!%"b0-pbp4Ec 0 v@ ?aL>p-ppw0q0 u@ f/aL> fp-t s20@, h/aL> hp-s2tp /c b@p-wޏbaLp-ph!np-x  4s21 "pN0p,p 0q2@112` b4p,X p-8 4 " "4 ">4 4 nm "s21 $ "p0 " n/0> n@Dp4p#! 0#q#ґ!%1#X "s q# p$q1p4q#@"- 0 ٱn "sȔ)p=0p,p,p,A 0-ɱ8 "pPUpE0Bo@p=`C40=k " 5`0 200 "cAp 0 p< p ɱ8p 0 0-ɱ8`C0  " n/ɱ8> np= "A0 bɱ8ljp=߸n "s2Ԕ1 '@Dp$!0$c "@b,``` ١nذȻp+s"! Ap<p 0 "0Ap<0=`0p+s"ؠȪp: pp+s"p  "p0 /0,0-ɡ< ```ߨ鏤 nԍ, $Header:dfe.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read dfewrite dfe 8r 0 8 p. p: H pTpfppz`ppppp`p`pppp pp!Fpf pt% ppp`'p(pp)pp`p`pp pp( p8pPX!|..1p2p3p4p5p6p7p8p9p":p,;p6p@ pPp p@pApp4VpnBpCEFpGp p7pAp,Jh ptpp p7p ppApdMrM p9pApPRE6p7p9p*p@ApJE`'p ppApEAp p,Bp8C@ApHET9p\6pd7p p6p7pApE'pBp 9pX@\@` PdPhPl Pp@t$Px@|-P@@?PDP@IP@LP@OPQP@@@@@ h'  &K .7@ GOXdYq_z n t\B PC K0: Is ;8&W29?Y GMSZk b jSrs{ {R;c c !a):0e7?UGbNW`jsf||m H 0F p 8.oVncs.oVhc2.1n.oVO_rdfe_wdfe_s_rdfe_.s_rdfe_reading_c_dfe_.c_dfe_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_y_getc_getn_rd_ed_doed_rd_ned_doned_y_tab_dotab_y_rnew_donewrec_doend_dorevert_fmtbuf_pars_f_.pars_f_fmt_bg_.fmt_bg_s_wdfe_.s_wdfe_nowwriting_.nowwriting_y_putc_putn_w_ed_w_ned_y_wnew_e_rdfe_.e_rdfe_en_fio_.en_fio_e_wdfe_.e_wdfe_sequential_formatted_external_lfname_elist_reclen_recpos_scale_cursor_radix_signit_endflag_lunit_units_fk_open_.fk_open_cf_recnumlmul$$_fseek_.fseek_cblank_cplus_.y_getc__filbuf_._filbuf_.y_putc__flsbuf_._flsbuf_.y_tab_ftell_.ftell_rewind_.rewind_.y_rnew_.y_wnew_y_rend_.y_rend_y_wend_.y_wenddofio.o 597750227 0 10 100777 2902 ` @nФ0b0@ 0 anf0g@pؠȪ)@Dbc`p  03030 /aL>

< aLذȻp;`0b p 10;p 0  aLbc`dp؀͈p  03030 /aL> d d< aL aL//q0 "p 03030 /aL><`0q 03p  03030 /aL>< aL aLp I0 qrp :0 qp 00 qp &0 qp 0 " d/aL>, d

h1PPPPPP2 *3SUdP55:8>8:82,*(&$*(&$"  鏤)鏤($Header:dofio.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:format.h 12.0$`,too many nested ()too many nested ()impossible code\Jdofio> pF pRpnpxpppppp ppLpdpnpzppppp pp.pFRplptppppppp 2p:pFp`pjpvpppppp p4pHp\pnp~p` p p&p.p6p>pX`\@`@d@h@P@@@ h'(($(,K2 :CK,TX"]Bd_mv} n0\aUT\JXI.oVncs.oVhc2.1n.oVO_cnt_ret_cp_rp_dfio_en_fio_.en_fio_do_fio_.do_fio_pc_syl_doned_errflag_endflag_errno_fatal_.fatal_doend_doed_dorevert_cplus_signit_scale_radix_cblank_type_f_.type_f_fmt_bg_.fmt_bg_cursordolio.o 597750240 0 10 100777 1497 ` th qng0ؐș0ؠȪ>ذȻ0;p @rqR0]dP@ e/qH ep]bP"%!%"b0-pbp3Ec 0 h@ ?qHp;p-p q0 ݏݏݏޏu@ f/qHp; fp-s @L@ i/qHp; ibqHp-px!npb0c@dPep 0A $Header:dolio.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$ext list iopp*p2p: pF pR pb pl ppppppp p(p0p:pRphppX@hPlPp@ h'#H U'/R6AKW__hq x nccUa`O.oVncs.oVhc2.1n.oVO_c_le_.c_le_lfname_elist_formatted_external_sequential_fmtbuf_errflag_endflag_lunit_errno_fatal_.fatal_units_curunit_fk_open_.fk_open_cf_cursor_recpos_scale_cblank_cplus_do_lio_.do_lio_lioproc douio.o 597750252 0 10 100777 1747 ` \`ٱnk l0m@ " Dp+cЌ03p0 " " n/ɱ8> nPUpKbcЍpK$ ". ɱ8p+cЌ03p0PUpKbcЍ ɱ8߸1nPUԔP , ,1 ٱnk l0m@p+cЌ@Dp4204 "s0  " n/ɱ8> n " PUpKbcЍpK$ .܍ɱ8PUpKbcЍ ɱ8߸1nc @DX$  " /, , "( ", ", $Header:douio.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$ eor/uiouiop & p4 p@ pP phrp~ ppp4: pHpZ pj pppppp p2J pX pj ppD@H@L@P PTPX@\P`@d@h@l@p@ h' $5+3<:CcK:S_\c jnrvN}[#'& .oVncs.oVhc2.1n.oVO_eor_uio_do_us_.do_us_readinglmul$$_recpos_reclen_errflag_errno_fatal_.fatal_cf_fread_.fread_due_err_.due_err_fwrite_.fwrite_do_uio_.do_uio_sequential_do_ud_.do_ud_curunit_endflag due.o 597750265 0 10 100777 2460 ` hhnԤ2 , "y   " ", "> , nФ1; 0 "8y   " "0 ">b0 anf g0ؐș0ؠȪݏݏݏݏݿp rqV0]dP e/aL> ep]bP"%!%"b0-pbp4Fc 0 u@ ?aL>Սp-ppw0q0 u @ g/aL> gp-t s20@, h/aL> hp-s2tp c bФ@  .Ս aLbaLp-ph!鏤 nȤ0 "s +030 %p-0A bp]1A! .8b8$Header:due.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read duewrite duep. p: H pTpfppp p ppp(p4p@pHpPpXpbpl p|pppp p p(!pHp`p"$& pp&!p6$J,Z&X@\@` PdPh@lPp@tPx#P|%P@@+P h' &i.17@GOXdYq_z nYW9R:c  c$(:/e6>GQYqbjs[{#.oVncs.oVhc2.1n.oVO_rdue_wdue_s_rdue_.s_rdue_reading_c_due_.c_due_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_s_wdue_.s_wdue_nowwriting_.nowwriting_lfname_elist_formatted_sequential_reclen_recpos_external_endflag_lunit_units_fk_open_.fk_open_cflmul$$_fseek_.fseek_due_err_.due_err_e_rdue_.e_rdue_e_wdue_.e_wdue_fwrite_.fwriteendfile.o 597750278 0 10 100777 1268 ` l@١nĤ0޿p 0qؠȪ0 d0 e/ɡ<> ep b" ! "jp @ r/ɡ<> rx bɡbdeQ  "(>b"""0!bde2 d "d(>,b"""p0!bde(>xb " cp>p NN " ^^ؐșp  Ԕ0 1bp " " bp p  "t . $$0( ,0ɑ L@Dqߘ!ٱnȤ(>bp-p" .!p-p"p-p" *  p-p" * p-p"$c( |c,p-p"$ c( p-p"$*c,ɱ8߸١n(>bذͻ p  @+cp |cp ؠȪp @+c~p p *cɡ<ߨ١nm (>b dؠͪp `ⰉذͻȠ 0 @+ " "c"p  |c @+ *cɡ<ߨnl m0   ^cЍ@bcЍ4! n=( A%cФB=&A0 $Header:err.c 12.0$$Header:fiodefs.h 12.0$%s: [%d] end of file %s: [%d] %s %s: [%d] %s %s: [%d] unknown error number stderrstdinstdoutlogical unit %d, named '%s' lately: %s %s %s %s IO readingwritingsequentialdirectformattedlistunformattedexternalinternaldHnpart of last data: fpart of last string: part of last format: .tmp.FXXXXXXfort.%d324pF6V7pb4pv8p69p4p:p64p6pppL6V'phpp p6 pp$B,D8FBHJJ^p|4p6pLNPPR VR<RNVr4p6p pV pV&4p66F pN pr p pVVVV:4pHZVZfZ,@0@d@p2Pt5Px@|@@APCPEPGPIP@KPMPOPQP@UP@@@@YP h'#-c4=GS^ffm t|\B0KPOtL ca:  %b,U4R;_DMT`]ckus~ n.4,d>n :Hf (p1;FNWcpw<|8i1h.V .oVncs.oVhc2.1n.oVO_tmplate_fortfile_units_reading_external_sequential_formatted_fmtbuf_icptr_icend_fmtptr_doed_doned_doend_donewrec_dorevert_dotab_lioproc_getn_putn_ungetn_svic_cf_curunit_lunit_lfname_recpos_recnum_reclen_cursor_scale_radix_signit_tab_cplus_cblank_elist_errflag_endflag_lquit_l_first_leof_lcount_line_len_ioiflg__fatal_.fatal_flush__.flush___iob_fprintf_.fprintf_sys_nerr_sys_errlist_f_nerr_f_errlist_prnt_fmt_.prnt_fmt_prnt_ext_.prnt_ext_prnt_int_.prnt_int_f_exit_.f_exit__cleanup_._cleanup_signal_.signal_sigsetmask_.sigsetmask_abort_.abort_ftell_.ftell_rewind_.rewind_last_char_.last_char_fgetc_.fgetc_ffputc_.ffputc_fputc_.fputc_f_init_.f_init_ini_std_.ini_std f_errlist.o 597750300 0 10 100666 1036 ` H$Header:f_errlist.c 12.0$(@Ph|  8Ph|error in formatillegal unit numberformatted io not allowedunformatted io not alloweddirect io not allowedsequential io not allowedcan't backspace fileoff beginning of recordcan't stat fileno * after repeat countoff end of recordtruncation failedincomprehensible list inputout of free spaceunit not connectedread unexpected characterblank logical input field'new' file existscan't find 'old' fileunknown system errorrequires seek abilityillegal argumentnegative repeat countillegal operation for unit@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@ !,|4.oVncs.oVhc2.1n.oVO_rcsid_f_errlist_f_nerrfmt.o 597750327 0 10 100777 3875 `  \nФ0 b0 nm @  @ ```( 4 "p0?0Ѥ!@PgbЍ"m  4@  @ ```b4! nm @ X  @ ```bЍXm  4@  @ ```,щ,@ )' "p0030Ѥ"@P 0Ѥ#0@P-4 4 nl @ ) @cЍ9 r! @bcЍ1 r! @1b l q10&@Pc b @ٱnl m0@ AZ 0 :@Pm0 "0@Pay030 @PRj0 1@PE]0 0@P8PA,A Z " n z Ȱ1)AȰ#0"@Ȱ0AA,A Z " p s u Ȱ0A0bP0%0@P1bl @ A _Z \[ q1q10 @Pq11 ɱ@0 !@PqA0/0Pq10$@Pq1L0,Pq1 ɱ@  "P//(Fr0+c@PNb0-!ɱ@A,A,A,A Z  ` l r ꤿ0 9 1bM1q10bAP 0$1@P0 0@P 0 !:AP0ͤ!ɱ@ ɱ@4 %y  "P//: 5 ƈbk  "\P//*b<ZXV߸!١nl k01j t10&@Po@*A Z  - -"P//4DB 8421 btj s&@ . 1bcj 2@*A Z  ` e .(1bDj e 4qQrA-s1 d 4qQrA"s14qQrAs1rAs1R1Q e4 d44t!0؉1 bj s100 @P؉@*  @* ```0 9 1 bj s100 @P؉t0 0@P؉g1 bj s10i@ . 1bj s12rA0 PY؉=1 bj s10 B@ .1buj *s1Ѥ2Ѥ'rA0P/ "p00ݯ ɡP0bɡPщщщߨ!فni j0k@lPp=b0$h, D> dp=0123b010=ɁD߈QP@B  !@B ```0 9 0 9 `PPФ!@B0 9 0S0n@2ԑ!@  !@ ,!@/> d, $Header:fmt.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:format.h 12.0$ F D ( 8 @ `h dt xformat too complex Xbad stringpppt pppjp|p pp p p` p`P`` &p 6 p p p p  p X@\@`@d@h@l@p@t@x@|@@@@@@P@@ h'")-5: =F KFQYV Da xj r{3 (x 8h @xt ` U d^ X n.oVncs.oVhc2.1n.oVO_syl_parenlvl_pc_revloc_pars_f_.pars_f_f_s_.f_s_fmtptr_op_gen_.op_gen_f_list_.f_list_i_tem_.i_tem_ne_d_.ne_d_e_d_.e_d_gt_num_.gt_num_cblank_ap_end_.ap_end_fatal_.fatal fmtlib.o 597750337 0 10 100777 716 ` p$lhanj i0ذͻlnؔ0 00 baL " `0bcn bc*b&@ 5䮤0/bcg bch bpcbcqjbcg bpcb@ bcn bcb@ j0baLh1$Header:fmtlib.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$0123456789abcdefghijklmnopqrstuvwxyzp`Fp^hl@ h' '.6=:D.oVncs.oVhc2.1n.oVO_icvt_.icvt_radix_signitldiv$$lmul$$iio.o 597750359 0 10 100777 6477 `    "p_R &@Dp40 P% "t01 04@%Q0_ @Dp4n "p_R=  0 "t@Dp401 04ՑQ0_ 0 " n/0> n /030 /0> 0 n  "pBA0B03t@  4p,!0,q @ " k/4> kp,Ҥ 4! nԤ @  _, nԤ D  , nԤ @  , nԤ D  , ١nk s ݿt+u;q `p ؠȪ r b @ d/ɡ<> d؍bɡ<ߨnԤqk, nm v 0?t-q `bЍC0 n "p2102t-q `P P%P%P%0 ١nذȻpKppP p`)p7pCp pFpNCpX6pb5plpv=~pppppTpUp`p`VpWp Xp Yp :p B` J)p R\p ZUp d]p 2p 2p p P@P@@@@@@@HP@@@@@@@@@@@@@ h' @"+ 2f9cAGMy DUx^ fo_x n X^ dS\Btc K0 0 P5 g,& l.{7=DJO pR[ aIlhw xp?y |M*aUR::;Ib%- 5j>FO W` hWq y' Y _dOL`  ,    O   * 3 =.oVncs.oVhc2.1n.oVO_z_getc_.z_getc_icend_icptr_recpos_leof_svic_z_putc_.z_putc_z_wnew_.z_wnew_errflag_errno_fatal_.fatal_endflag_z_ungetc_.z_ungetc_s_rsfi_.s_rsfi_reading_rd_ed_doed_rd_ned_doned_getn_z_rnew_donewrec_doend_dorevert_z_tab_dotab_c_si_.c_si_s_wsfi_.s_wsfi_w_ed_w_ned_putn_s_rdfi_.s_rdfi_c_di_.c_di_s_wdfi_.s_wdfi_c_fi_.c_fi_fmtbuf_formatted_external_cplus_cblank_cursor_scale_radix_signit_elist_reclenlmul$$_pars_f_.pars_f_fmt_bg_.fmt_bg_sequential_recnum_.z_rnew_.z_tab_e_rsfi_.e_rsfi_en_fio_.en_fio_e_wsfi_.e_wsfi_e_rdfi_.e_rdfi_e_wdfi_.e_wdfi_c_li_.c_li_s_rsli_.s_rsli_l_read_lioproc_ungetn_l_first_lcount_lquit_s_wsli_.s_wsli_l_write_line_len_e_rsli_.e_rsli_e_wsli_.e_wsli_iiorec__.iiorec__iiopos__.iiopos_ inquire.o 597750377 0 10 100777 1751 ` <0ّni r)030#qIOj 5s9ldbl  t) 0bɑ@@03`@bp r 5k Ad .d@p e/ɑ@> e`@ "bp k q 0t)  0u)  0vɔ  "+0, 0,w)  q;0 0x90   b q+ . yIz90  s ..{I|90    s .$.(}I~90   t s .,.0I9@0  v .4u .<.H.TID9H0  u .\.`.dIL9P0  u .l.p.tIT)X  s 0 \  s p+s;`# !9\0#9`0  u w .|.Idbɑ@ߘ@P$Header:inquire.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$inquiredirectsequentialyesnoyesnoprintformattedunformattedunknownyesnounknownnoyesunknownzeronullpp&p0pD N v pp p6 pBN~D@ P PPPP h'"y+R2: AKfS.\ckcry n|.oVncs.oVhc2.1n.oVO_f_inqu_.f_inqu_elist_lfname_lunit_external_g_char_.g_char_inode_.inode_units_errno_fatal_.fatalldiv$$_b_char_.b_char_ftell_.ftell ioinit.o 597750394 0 10 100777 2990 ` pp̔  qp̔  -Ȥ-rp̔ ψ Ϥu;s+.E ?QuK03s+Д 1QuK03s+.  u[@ s;-`tp̔ D"N A=` "䤠ݮ _l-Dc "P@ =`-`Q@03-`Д ݭ`-Ȕ ١0+1;2K3[ߨMpfzn (i2.2)s(ioinit: logical unit ,i2, opened to ,a)(ioinit: no initialization found for ,a)(ioinit: initializing from ,a,nn)(ioinit: ,a, ,$)(ioinit: cctl=,l,, bzro=,l,, apnd=,l)$xPp&pDp\pp p(P`Xr`z`` `( >`DL d t`~````$ :`@H \`bv`|  `` `*`0>`DR`X` j`p@PPPPPPP PPPPP P$P(@D@T@d@t@@Qs x(09BwKT]{foys' _.ioinit__ioiflg__.f_open_.i_len_.s_cmp_.i_indx_.s_copy_.s_wsfe_.do_fio_.e_wsfe_.s_wsfi_.e_wsfi_.getenv__.lnblnk__.perror__.flush__f_open_i_len_s_cmp_i_indx_s_copy_s_wsfe_do_fio_e_wsfe_s_wsfi_e_wsfi_getenv__lnblnk__perror__flush__ioinit_.oVpcc.oVncslread.o 597750438 0 10 100777 11209 `  P$xnФ2 0 "xy   " "0 ">p b0 np-x  4p,p 0q2@112` b4p,X2 p-8 /( 4 n "xД  0p-p*  0 anh i0j@kPpp  " /aL>T  "@ "`f{ "pc.apF03p " `,  03030 /aL> "  aL!@0 03030 /aL> 4 y 03030 /aL>[8 U 03030 /aL>8I< 2 03030 /aL>$ bp"(P// P "  aLp  " /aL>T & " "X  "03 p#aLp#>T "`f r owP"4HZ "DW ) "DM0) "@03qp#0)81 c "44 "4b@Dqp4021(@Dqp402 1 "cd@p0pi aL{{hA١nذȻp+ ɡ<p-pj c@D03p ,!0+ɡ< / !/ɡ pp-pc.]@D03p , "qp2 "021(  0 ,p-pc.])  " p/0> p 0 nЍ  0 0  0p-p.p-pF 030#N10? "02C1 @D03p 030#1 0 0 " p/0> pԤp-pc.3E @D03p 0T f~t c.3E qn  qH qH  qHp,pg c~3- 9ŧ  z qH@D03bpp qH@D03p p- Ȁ 0-k  " q/qH> q p,pg zCp,pg b~"-74 1z / ,){ p,pg zp,pg b~"-   z   ٴ/p 8b 0-`  " q/qH> qp k { qHz" \q{l @D03bpp qH p,pg z{G@D03bpp qHxnp-pe c^Cp<0  4/@D03p 4 p-pe b^p<0  4@D03bPp 4 np,pm. @D03p- !4 4 $Header:lread.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$list read # list iolist iolist iolist iolist iop`=P3`-`3`=@2 `-@2$` T3r`$0 `T#`(3`(3``(`3`(3`,0 `f@xppVBhpxpp p$p, p^p~ppp pp p6pTp\ p@ PPP@!P@@0@4@8@<@@@D2PJ4P4P4P:4Px@|@@4P@@@4P 4P^4P4P4P4P4P4P:4P4P4P4P*4PV4P4P4P4P"4Pv4P4P4P4P>4P4P4P 4P4Pr4P4P4P :4P b4P @ 4P 4P "4P 24P 4P 4P 4P N4P b4P r4P 4P 4P @ @ @ 8@ <=P @?P DAP H@ L@ h'P&*.-5;C[LU#[Ub`krdzO1tALY_ n!,*3:FRBpGrMRs HX]| c&k\t~B$ 0*ys7 .oVncs.oVhc2.1n.oVO_lrd_lchar_lx_ly_ltype_ltab_s_rsle_.s_rsle_reading_c_le_.c_le_l_first_lquit_l_read_lioproc_t_getc_getn_ungetc_ungetn_curunit_leof_lcount_nowreading_.nowreading_errflag_errno_fatal_.fatal_.t_getc_cf__filbuf_._filbuf_e_rsle_.e_rsle_.l_read_endflag_t_sep_.t_sep_l_R_.l_R_l_C_.l_C_l_L_.l_L_l_CHAR_.l_CHAR_external_b_char_.b_charFPGLUE_lr_comm_.lr_comm_get_repet_.get_repet_rd_int_.rd_int_nullfld_.nullfld_free_.free_malloc_.malloc_realloc_.realloc lwrite.o 597750471 0 10 100777 12124 `  ,T(nФ1 0  P "8y   " "0 "> b0 n"* 03p0PUp5pCA 0CqC$A#1CX Ds@q3# p%q1p5q#@"b0 n03Ԥ*p , , ّnj k0l@p Ј1 1>< wP+p+5T  03030 /ɑ@>pX 03030 /ɑ@> q;p+K\ 03030 /ɑ@>dD,`` 03030 /ɑ@>seq5p%XpEqUd f 03030 /ɑ@>$Ip+h B 03030 /ɑ@>,%bcl  03030 /ɑ@>4kːp Ўդ ɑ@b"2P//@:ߘAnd l>b b5 D@, p=p D@,  Dn7!819A:Q7!# ,!3,A ١nj k0+ ɡ<p= p ɡR ɱXߺ! $ٱnp(| ɱX #HH(bЍ ɱX 6H $x```!0dФXɱX!M0d10RɱXߺ!0$ٱn@Tl "Pt (L.* (lPl % ɱHp= p \ɱHp= p \ɱHp= (p ɱH ɱHp= ,p ɱHh ɱHp= )p \ɱH ɱHߺA< ٱn 4 #||   D )Tdt(Tdt % ɱHp= p ɱHp= p ɱHp= (p ɱH@t (ɱHp= ,p ɱH|t dɱHp= )p ɱH ɱHߺA8 n$+ 4@, p=p 4@,  4 n03`2 "03*p , , $Header:lwrite.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$list write`list iolist iolist iolist iolist iolist iolist iounknown type in lwrite`l!x`<P#2 `4l2`44#` TE2H %ld$|$p` `,`#`,T#`,`,$` `<l2`<l"`<T`<$`<$`<#A.`<#?` `<"`<$`<T#?`<H`<l"A ` <$ ` ` `$0`0T#`<T#`<$`,0`<(3`<<`<`<`<#Bּ`<#?`,0`<`<< `<T#@$` <0`,0`,0r`<<` `#`(`E`(TH#`(d`$@`lD"`<T@`<$@`<$@`<@#A.`<$T`<T#?`T`$@`TL#A.`T`$@`$@`HH`T@#?`$`H`L<`L<`L<`<(#`L<`<(#`L<`L< t`08`<TE`<<`T#Bּ`<```<`<8`<8`<8`<8`<8 r 0. p.`6 p>`F pR pZpdpp~pppppp<Fh pp ppBpL pXplp ppp ppDpN pZpnp ppp pp&`\/f1 p58 pp8p:8p<8p:68pR< f p d p p p p pd@hPlPpPt@xP|@@@@@@@@@-PB-P-P-P4@@.PD0PH@L@P4PT@X@\@`9Pd;Pj-P-P-P6-PN-Pr-P-P-Pf-P-P-P-P-P"-P>-P-P-PR-P-P-P*-PF-P`@f-P-P-P 2-P V-P -P -P -P -P -P -P -P :-P J-P -P -P -P -P @@ F-P -P -P B-P -P -P -P>-P-P-P-Pj-P-P-P6-PZ-P-P-P&-PJ-P-P-P -PR-P-P-P6-P^-P-P-P-Ph@n-P-P-P.-P-P-P-P-P-PV-P-P-P -PD@P@ h'  (1:#@UG OU ^OgqzW9_ ncf ``+H (&.&7l?%rH!Q t[xc.lt#}F$$| ~D$p rx>w=.oVncs.oVhc2.1n.oVO_lwrt_s_wsle_.s_wsle_reading_c_le_.c_le_t_putc_putn_l_write_lioproc_line_len_curunit_leof_nowwriting_.nowwriting_errflag_errno_fatal_.fatal_.t_putc_recpos_cf__flsbuf_._flsbuf_e_wsle_.e_wsle_.l_write_lwrt_I_.lwrt_I_endflag_lwrt_F_.lwrt_F_lwrt_D_.lwrt_D_lwrt_C_.lwrt_C_lwrt_DC_.lwrt_DC_lwrt_L_.lwrt_L_lwrt_A_.lwrt_AFPGLUE_sprintf_.sprintf_strlen_.strlen_chk_len_.chk_len_wrt_L_.wrt_L_lwrt_0_.lwrt_0_scale_wrt_F_.wrt_F_wrt_E_.wrt_Enio.o 597750507 0 10 100777 5929 `  | فni k Ɂ4xݿ "y  bɁ4xsp,p 0q2@112` p,p 0q2@112` & p s/Ɂ4x> s p*$c mbЍ*(c p*, p v/Ɂ4x vcЍ p,p 0q2@C112d $"p s/Ɂ4x> s hp($ Ȉp($ ~b01( p x/Ɂ4x> x >bЍ, p y/Ɂ4x> y bc0h p w/Ɂ4x wcЍ b!4 p x/Ɂ4x> x b01D( p x/Ɂ4x> x > bЍ, p y/Ɂ4x> y bɁ4x߈ّni j0kp,p 0q2@112` b A2## & p,p 0q2@112` b A2## &唠 + (= %b A2# #    p,p 0q2@112` p,X  ɑ@ bɑ@ߘ!nl m0p- p=b b4p-  4! ١nj s* q00 rZ%RP.bq:EY0! U>bɡ@ФФФФФ> urZbq:d0! >bɡ@"P//ߨantk ̔ a@p "y p ba@s؀Ȉp8p 0q# !1#p8X#"  s  q# p8q#! 1# tp8p 0q#&!1#p8X#"  s  q#&p8q#! 1# &tp8p,xp8p 0 q#!1#X#"  s  q#p8q#@"t*tp8p 0q# !1#p8X#"  s  q# p8q#! 1# tp8p,xp8p 0q#=!1#X#"  s  q#=p8q#! 1# =ts, qҤroql`p8p#! 0#q#'!1#p8X "s  q#'p8q#! 1# 'tp8i 6p#! 0#q#@a!1#(p8X "s q#@a p8q1p8q#@"t p8@&atp8p#! 0#q#'!1#X "s  q#'p8q#! 1# 'tю ,| qpF>dbPF> bbzpF>dbo>db`qVpF>hbU>$(bxGhsr&qVpF>00!1b7f@F>@ab*p>D NLNTbp u/a@ȑ>\ up8bx ,|   ȑb" P//0dNp,ܔ ,| p8.hxbpa@*qlZp8h#ٱnl q\P d p e/ɱ8> e q\bP"%!%"bذȻ0+p" 3E<

$ f p+pup g/ɱ8>0 g bɱ8p+p߸$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$namelist read&end&endl Vp0x%x%d%ld%.8f%.18e(%.8f,%.8f)(%.18e,%.18e)%c.%s.TRUEFALSEnamelist io &end `,l2` 8E`,P32` TE2 namelist iostart namelist ionamelist ionamelist io$Header:nio.c 12.0$&p.p6 p@ pH pT ppp&p<\hppp,pDjppp $p<hpp0p!$l|!` p ppp p$%@p'')$'0'~')'D''' ' + 4- J- `- ~- - - - - - "p > J) Z+ v`  + ) /p p * 80p @1p T2p ^ p r4 p  p p @T@h@l PpPtPxP|@P@@@@@ P@ $P&P(P*P,P".P.P.P.Ph@3P h' X"_+l2% :FPYdmyY n$ V@ p  N_d$,- 5>WJ9Wf`jqyFcc.oVncs.oVhc2.1n.oVO_s_rsne_.s_rsne_c_nle_.c_nle_sequential_external_reading_formatted_curunit_nowreading_.nowreading_cf__filbuf_._filbuf_errno_fatal_.fatal_strlen_.strlen_getword_.getword_strcmp_.strcmp__ctype__findit_.findit_getvar_.getvar_errflag_l_read_.l_read_s_wsne_.s_wsne_nowwriting_.nowwriting__flsbuf_._flsbuf_fputs_.fputs_t_putc_.t_putc_sprintf_.sprintfFPGLUE_fmtbuf_recpos_scale_units_fk_open_.fk_open open.o 597750535 0 10 100777 3866 ` Hanf "0ޟݯpذȻ qF0Ld@ e/a\> epL`@ "gt& @A Z  ŀŀȀus03bЍbЍr& s6dЍ 03bЍ "0p Sr bЍr 4x& @A Z  z7v& u @A Z  p6ba\p 2 3@ 1! a\bФ00o@ v/a\> vp n@ u/a\> ubЍ $> bЍ0' }9@ "a\ "cЍe>$bЍ0'd @ , " #>(bЍĔ J9@ "a\ "cЍ219>,bЍ0' 030 0Bȉ9@ "a\ "cЍp'2'@ l/a\>0 lbЍА!11' @ q/a\>8 qq'cЍs:8p'4'u& .@5&@"A Z  ` sw03.D܉,3 A Z " d@ y/a\> y3x& @A Z  z7p 7 "7'v& 9@A (Z %$ 5=6596556 y/a\> yf p u @ s !/5'p 6 "6's t p'ba\Xwh@W١nj0k@lP03$bd "0!12bЍ3! 4!5 6` 78!bɡ0lߨAnc @l @ @l!@l$Header:open.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$openopenopenrarropenopenseqWarning: open: record length ignored on sequential access recl on openopen form=sdfuXpp&p0p@ p\ pt ppp p0 p 0 pH d! p p !"p$ p p !&"p4&J p\ pd n( p *, p .N pX0 p "p6 pN "p2pp*d6D@ PPPPPPPP@ P#P %P'P)P+P-P /P$1P(@<@@@D5P h'"+3R:D_M T[ bnjcqz!x@f.Fs;X tt"6+5e<DSLU$]fkn3wg".oVncs.oVhc2.1n.oVO_f_open_.f_open_lfname_elist_external_errflag_lunit_errno_fatal_.fatal_units_tmplate_strcpy_.strcpy_mktemp_.mktemp_g_char_.g_char_fortfile_sprintf_.sprintf_inode_.inode_f_clos_.f_clos_access_.access_isdev_.isdev_fopen_.fopen_ioiflg__freopen_.freopen_fseek_.fseek_finode_.finode_strlen_.strlen_calloc_.calloc_canseek_.canseek_fputs_.fputs_rewind_.rewind_fk_open_.fk_open_stat_.statrdfmt.o 597750567 0 10 100777 5326 `  P@ٱnk l0m@ " H* Bɱ8q;bdЍkq;b 1q;bdЍ rKq;beЍ: J@DX4 ; ɱ8 d/ɱ8p  "P//lf|zxvtrpNZZ "(ɱ8߸1np0 3@P??^B   Jnq"B,r2qb, "p,q2 "p0 ,q " r23 "o ` ,q@Dp4004 "`#0 , d/,! n "̔  "p4p  x/40 p-p 4p 0 0,4 ang h0i@tp-p IaL_ " W "cOj 9 b "bc>j&a z b "bc*j& s/aLA Z " *  + , - 0 䪔 0 aLh1ّni j03p-p ɑ@A Z " t f ,   t/ɑ@0ɤ ɑ@ߘ!an`1!l0m@2Q(|g0qpjk`loa "p  aTA Z "  030 F+ C-?q9 0 @-e ,d ). &030  h,f*  s/aTl .0lUe Rd O+ L- Ia "p  aTA Z " 9 0 < 030 0 -l e d + --lda "p aT,։fA Z " -:9 0 ` ,030  `᠉,  + *  s/aTl p`m Dam ````i Dai ``` `jDaj ````j Daj ```p ! "f ` Da ```f ` Da ```r q!q!@ aTjA0(ّnj k0l@ 9⼴ؐșp)p ɑ@Ѵ дMذȻp+p ɑ@*   Ѵ /дؐșp)p ɑ@*   Ѵ ˴  Ѵ ``` ɑ@ߘ1ٱnk l0 д*  "p ɱ8*  ,Ѵ ɱ8߸!nl @ܑ@ $ A *  "p 4*  ,@ ޤ 4 $Header:rdfmt.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:format.h 12.0$ D LHp2`$0 `T#``,0 `(#@$```(#@H`T#@$`,0 `,0 `(#@$```(#@H`T#@$`,0 ` T#@$`  `` < P`>M`<p`?`?`@2`(3 z pxpp`p4`ppppppp p p.pBpZpxppppp,pRp^pf|pppLpppXpppprpp&p^p ppp p p p\@`@d@h@l@p@t@x@|@@@@@!P!P !P!PF!Pn!P!P!PJ!Pv!P!P!P*!PR!P!P!P&!P6!PF!PV!Pf!Pv!P!P!P@@@ h' !)1 ;6pFy LS| Y2`9Dgov u| SL xH zKcPtU:.oVncs.oVhc2.1n.oVO_rd_ed_.rd_ed_cursor_rd_mvcur_.rd_mvcur_rd_I_.rd_I_rd_L_.rd_L_rd_AW_.rd_AW_rd_F_.rd_F_cf_errno_rd_ned_.rd_ned_rd_POS_.rd_POS_rd_H_.rd_H_donewrec_tab_recpos_dotab_getn_cblank_radixlmul$$_scaleFPGLUErewind.o 597750577 0 10 100777 1020 ` H`x(١nĤ0޿qRؠȪ0Zp 0dP0 e/ɡ<> epZbP"%!%"jp "3Ec 0 @ ?ɡ<>q 0 t @ j/ɡ<> j8y @=Nb ɡ H @ t "  " d/,> d  , np-x B 4p 0q2@1 12` p, X (p-803p 4 /0#/4p,03 ٱnp-x  ɱ8p ep]bP"%!%"g0}bppb`3Ec 0 x@ ?aL>p-pq0 u@ f/aL> fs @<0 i/aL> ip-ݟݟ` ޏwޟbaLp-h!n̤1̔ 4p,y" " "4 ">p,8v p h  | t "ؔ  " d/4> dԍb4p, nД* 03p0Д 3PUp5pCA 0CqC$A%1CX Ds@q3# p%q1p5q#@""b0 nД*$03@ 0*1,b003p0Д 3PUp5pCA 0CqC$A%1CX Ds@q3# p%q1p5q#@""b0 ١nذȻppL0Kj@ "t 4p=`440=`0  "cAp 0 p=&: "Ap p=0 0 bɡ<p=0 xɡ<0160=p  "pj  0-ɡ<  ɡ<03 pp 0 0-ɡ<ߨn@D03Դ4 "4A03*p, n@D034 "4A03bp0 nԍy, $Header:sfe.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read sfewrite sfe X8 T Pp. p: H pTpfppz`ppppp`ppp`pp pp!D pv$%p&p'p(p%p p(p<$R%pr+/p0p1p2pp3p4p p05p:6pVpn7p p9p(pp.pFR&pZ:pd%pl'pv;p~pp pC ppp"6`>EpH`PEpZ?pbGpjprHpzp`p`pp`pp pp!0'p8&p@%pJ%p^(pMM?p'p&p%p?p>%pR(pMM&p%p p'p(p"Q8(p@Qb'pppEp %p &p (p *Q 4Ep d%p l&p x(p Q EpX@\@` PdPhPl Pp@t#Px@|*P@.P@8P@BP@LP@@PP@@@@ h'   & (.O7@ XG-OXdYq_z n Ht\B# @0K tP: IM8'1c9;AIMyVA^kg PoxR cUa  `wW*97 p?E9 hMSZ& bK |jcsf| teu P T  .oVncs.oVhc2.1n.oVO_rsfe_wsfe_s_rsfe_.s_rsfe_reading_c_sfe_.c_sfe_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_x_getc_getn_rd_ed_doed_rd_ned_doned_x_rnew_doend_dorevert_donewrec_x_tab_dotab_fmtbuf_pars_f_.pars_f_fmt_bg_.fmt_bg_.x_rnew__filbuf_._filbuf_recpos_reclen_cursor_cf_.x_getc_ungetc_.ungetc_e_rsfe_.e_rsfe_en_fio_.en_fio_fo#]loG L###(8HXhx2rmatted_sequential_external_lfname_elist_endflag_lunit_units_fk_open_.fk_open_scale_radix_signit_cblank_cplus_new_s_wsfe_.s_wsfe_nowwriting_.nowwriting_pr_put_putn_x_putc_w_ed_w_ned_x_wend_x_wnew_.x_putc__flsbuf_._flsbuf_.pr_put_.x_tab_fseek_.fseek_.x_wnew_.x_wend_e_wsfe_.e_wsfe sue.o 597750614 0 10 100777 2884 ` p4p١nĤݯ2 ɡ<ذȻp+y   " "ɡ< "> "p]4A!bɡ  p=X# "( p,ɡ ɡ<ߨٱnȤݿ1U ɱ8p,y   " "ɱ8 ">ݿp-/p-4A p,8bɱ8߸qng0ݏݏݟؠȪ0ذȻp 0rqR0]dP0 e/qH> ep]bP"%!%"b0-pbp3Fc 0 o@ ?qH>ɍp-pq0 u @ g/qH> gp-s @ i/qH> ip-t@<0 x/qH> xbqHp-px!ٱnp]b4Ap-k 03p]bP@p]b4Ap-c@ ɱ8߸n03@D "Բ44A , $Header:sue.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read suewrite sue4.p. p< JpVphpr~ppppppBpb pp~pppppp p !p"p#p*$p6pFpP%plp&p p(ppp(Dp\xppp,p,6p>pFpVX@\@` PdPhPl@pPtPxP|@'P@+P@ h'C"(%.6m?HOKW`lYy_ nc:N4W9|e "-5R< CcJS] en[v#..oVncs.oVhc2.1n.oVO_recloc_rsue_wsue_s_rsue_.s_rsue_reading_c_sue_.c_sue_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_recpos_reclen_cf_fread_.fread_endflag_s_wsue_.s_wsue_nowwriting_.nowwriting_ftell_.ftell_fseek_.fseek_sequential_external_formatted_lfname_elist_lunit_units_fk_open_.fk_open_e_wsue_.e_wsue_fwrite_.fwrite_e_rsue_.e_rsueutil.o 597750629 0 10 100777 2185 ` 4x١nm0j@c 22122k0ۤ1bЍ$4+5 `9 8: "R7 Q6 3bЍ2+ɡ<ߨ1nl ,c  U , b@tn>, n> , ٱnk l0q+   ɱ8t p+ m q+pKc t p+cФ@@ a9 !ɱ8@ q+a>>0+ t cФ@ ɱ8߸!e2QcC1R @  Q1R @ ```R @Q1R```P@ T !1Q@ T TQ 1TQ ```nc q!@l @ln"c q!@l @lnm 0AbЍܔ p  0 q=@#1 1=bЍ"0*0 $Header:util.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$tra raXpHp "p<Ldd%  )D@H@L@P@T PX P\@d@h@p@|PPPP@@@$P@@(P h'Vx#-c4=gtGsPSXahp3xY+ W9|6et f.&/6X>D"K8Vbku.oVncs.oVhc2.1n.oVO_ini_std_.ini_std_units_canseek_.canseek_ioiflg__finode_.finode_fstat_.fstat_isatty_.isatty_nowreading_.nowreading_now_acc_.now_acc_nowwriting_.nowwriting_errno_ftell_.ftell_freopen_.freopen_fseek_.fseek_fopen_.fopen_g_char_.g_char_b_char_.b_char_inode_.inode_stat_.stat_last_char_.last_char__filbuf_._filbuf wrtfmt.o 597750671 0 10 100777 8680 `  T(ٱnk l0m@ " yO sɱ@rKq;beЍɱ@q;b ɱ@1q;bdЍAɱ@s[rKq;0d1bpɱ@s[rKq;0e1b_ɱ@s[rKq;0bɱ@rKq;beЍ=ɱ@ d/ɱ@p  "(P// TR.,nl ߸1np0 3P??  x "p,q " r23 "o ` ,q03p# 0#@D`$0 ,q "p20 ,q"h,r2qb, d/,! n "̔  "p4p  x/40 p= p 4p 0 0,4 ّnj0k@RP"p" !p= p ɑH ɑH1dm p10 " A@q!`$ `K p= *p ɑH ɑH+ ⢉⤤ؐșp9 p ɑH p10 03 -p ɑH " 03 +p ɑHq!`ؠȪp: 0p ɑHq!` ذȻ@-p;p ɑHq ɑHߘAnl " ̔ 4@ܑ@, /- 03p 4@,-03p 4 4@, Ӥ 4 ٱnk l0 " [Ȕ ɱ8 @,p=p ɱ8 ɱ8߸!١nj p= p ɡ< p p= tp ɡDbЍ bЍk ,)pppp"ppDpp\-p\@`@d@h@l@p@t@x@|@@@@@ P@@@@@$P&P(P*P*Pn*P*P(@.*PF*P*P*PN*P*P*P*P*P*P*P&*PB*P^*Pz*P@+P*P*P"*Pv*P*P6*PF*PV*P~*P*P*P*P.*PZ*P*P*P*P 2*P h'L '/xx9D|L\U~\D\dluw|=ly? Hx> ^lVbKcDz@P af$F-7$?HOnU\Ud.oVncs.oVhc2.1n.oVO_w_ed_.w_ed_cursor_wr_mvcur_.wr_mvcur_wrt_IM_.wrt_IM_wrt_L_.wrt_L_wrt_AW_.wrt_AW_wrt_E_.wrt_E_wrt_G_.wrt_G_wrt_F_.wrt_F_errno_w_ned_.w_ned_donewrec_recpos_tab_wrt_AP_.wrt_AP_wrt_H_.wrt_H_dotab_putn_icvt_.icvt_cplus_scale_ecvt_.ecvt_sprintf_.sprintf_strlen_.strlenFPGLUE_fcvt_.fcvt_cblankVersion 597750683 0 10 100666 908 ` X$h$8H\l$4D@(#)libI77.a Dec 10 01:51:20 1988@(#)backspace.c 1.6@(#)close.c 1.6@(#)dfe.c 1.4@(#)dofio.c 1.3@(#)dolio.c 1.2@(#)douio.c 1.2@(#)due.c 1.3@(#)endfile.c 1.7@(#)err.c 1.11@(#)f_errlist.c 1.3@(#)fmt.c 1.4@(#)fmtlib.c 1.3@(#)iio.c 1.3@(#)inquire.c 1.3@(#)ioinit.f 1.5@(#)lread.c 1.7@(#)lwrite.c 1.4@(#)nio.c 5.2 - 87/03/20 - 12:07:43 */@(#)open.c 1.10@(#)rdfmt.c 1.5@(#)rewind.c 1.3@(#)sfe.c 1.7@(#)sue.c 1.3@(#)util.c 1.7@(#)wrtfmt.c 1.7@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@  .oVncs.oVhc2.1n_libI77_idioinit.f 597705749 0 10 100664 2463 ` C $Header:ioinit.f 12.0$ C $ACIS:ioinit.f 12.0$ C $Source: /ibm/acis/usr/src/usr.lib/libI77/RCS/ioinit.f,v $ C C ioinit - initialize the I/O system C @(#)ioinit.f 1.5 C synopsis: C logical function ioinit (cctl, bzro, apnd, prefix, vrbose) C logical cctl, bzro, apnd, vrbose C character*(*) prefix C C where: C cctl is .true. to turn on fortran-66 carriage control C bzro is .true. to cause blank space to be zero on input C apnd is .true. to open files at their end C prefix is a string defining environment variables to C be used to initialize logical units. C vrbose is .true. if the caller wants output showing the lu association C C returns: C .true. if all went well C C David L. Wasley C U.C.Bekeley C logical function ioinit (cctl, bzro, apnd, prefix, vrbose) logical cctl, bzro, apnd, vrbose character*(*) prefix automatic iok, fenv, ienv, ename, fname, form, blank logical iok, fenv, ienv integer*2 ieof, ictl, izro character form, blank character*32 ename character*256 fname common /ioiflg/ ieof, ictl, izro if (cctl) then ictl = 1 form = 'p' else ictl = 0 form = 'f' endif if (bzro) then izro = 1 blank = 'z' else izro = 0 blank = 'n' endif open (unit=5, form=form, blank=blank) open (unit=6, form=form, blank=blank) if (apnd) then ieof = 1 else ieof = 0 endif iok = .true. fenv = .false. ienv = .false. lp = len (prefix) if ((lp .gt. 0) .and. (lp .le. 30) .and. (prefix .ne. " ")) then ienv = .true. nb = index (prefix, " ") if (nb .eq. 0) nb = lp + 1 ename = prefix if (vrbose) write (0, 2002) ename(:nb-1) do 200 lu = 0, 19 write (ename(nb:), "(i2.2)") lu call getenv (ename, fname) if (fname .eq. " ") go to 200 open (unit=lu, file=fname, form='f', access='s', err=100) if (vrbose) write (0, 2000) lu, fname(:lnblnk(fname)) fenv = .true. go to 200 100 write (0, 2003) ename(:nb+1) call perror (fname(:lnblnk(fname))) iok = .false. 200 continue endif if (vrbose) then if (ienv .and. (.not. fenv)) write (0, 2001) ename(:nb-1) write (0, 2004) cctl, bzro, apnd call flush (0) endif ioinit = iok return 2000 format ('ioinit: logical unit ', i2,' opened to ', a) 2001 format ('ioinit: no initialization found for ', a) 2002 format ('ioinit: initializing from ', a, 'nn') 2003 format ('ioinit: ', a, ' ', $) 2004 format ('ioinit: cctl=', l, ', bzro=', l, ', apnd=', l) end #]loGn <###p 20`! __.SYMDEF 597788121 0 10 100666 7514 ` '#.#8#=#E#N#V#_#g#p*w******************* ***&*/*8*@*I*Q*ZBRaBRkBRpBRuBRzBR~BRBRBRBRBRBRBRBRBRBRNxNxNxNxNxNxNxTTTTT T'T/T8TBTJTSTZTb\.i\.s\.x\.~\.\.\.\.\.\.\.\.\.\.\.fffffff kkk#k,k6k=kFkPk\kgkokvk}kkkkkkkkkkkkkkkkkkk kkk!k)k.k5k=kDkMkVk]kfklktk~kkkkkkkkkkkkkvvv vv '16;EIQYbgmu~ "*3;DNYajry(.5=FNW_hpy¬¬¬¬¬ !'/8@HQYbkrz      ' / 8 A I R \ d m u ~              3 3 3 3 3 3 '3 /3 83 B3 J3 S3 [3 d3 l3 uKp |Kp Kp Kp Kp Kp Kp Kp Kp [ [ [ [ [ [ [ [ [ [ [ [ [ ![ '[ .[ 6[ ?[ G[ P[ V[ ]p dp np sp zp u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, u, $u, ,u, 4u, =u, Fu, Nu, Wu, `u, hu, q x                      * 2 ; G T ] g s         t t t t t t ttttt t(t1t8t@tGtOtVt^tetmtut~ttttt.oVncs.oVhc2.1n.oVO_f_back_.f_back.oVncs.oVhc2.1n.oVO_f_clos_.f_clos_f_exit_.f_exit_flush__.flush_.oVncs.oVhc2.1n.oVO_rdfe_wdfe_s_rdfe_.s_rdfe_c_dfe_.c_dfe_y_getc_y_tab_y_rnew_s_wdfe_.s_wdfe_y_putc_y_wnew_e_rdfe_.e_rdfe_e_wdfe_.e_wdfe_.y_getc_.y_putc_.y_tab_.y_rnew_.y_wnew_y_rend_.y_rend_y_wend_.y_wend.oVncs.oVhc2.1n.oVO_cnt_ret_cp_rp_dfio_en_fio_.en_fio_do_fio_.do_fio_type_f_.type_f_fmt_bg_.fmt_bg.oVncs.oVhc2.1n.oVO_c_le_.c_le_do_lio_.do_lio.oVncs.oVhc2.1n.oVO_eor_uio_do_us_.do_us_due_err_.due_err_do_uio_.do_uio_do_ud_.do_ud.oVncs.oVhc2.1n.oVO_rdue_wdue_s_rdue_.s_rdue_c_due_.c_due_s_wdue_.s_wdue_e_rdue_.e_rdue_e_wdue_.e_wdue.oVncs.oVhc2.1n.oVO_f_end_.f_end_t_runc_.t_runc.oVncs.oVhc2.1n.oVO_tmplate_fortfile_units_reading_external_sequential_formatted_fmtbuf_icptr_icend_fmtptr_doed_doned_doend_donewrec_dorevert_dotab_lioproc_getn_putn_ungetn_svic_cf_curunit_lunit_lfname_recpos_recnum_reclen_cursor_scale_radix_signit_tab_cplus_cblank_elist_errflag_endflag_lquit_l_first_leof_lcount_line_len_ioiflg__fatal_.fatal_prnt_fmt_.prnt_fmt_prnt_ext_.prnt_ext_prnt_int_.prnt_int_ffputc_.ffputc_f_init_.f_init.oVncs.oVhc2.1n.oVO_f_errlist_f_nerr.oVncs.oVhc2.1n.oVO_syl_parenlvl_pc_revloc_pars_f_.pars_f_f_s_.f_s_op_gen_.op_gen_f_list_.f_list_i_tem_.i_tem_ne_d_.ne_d_e_d_.e_d_gt_num_.gt_num_ap_end_.ap_end.oVncs.oVhc2.1n.oVO_icvt_.icvt.oVncs.oVhc2.1n.oVO_z_getc_.z_getc_z_putc_.z_putc_z_wnew_.z_wnew_z_ungetc_.z_ungetc_s_rsfi_.s_rsfi_z_rnew_z_tab_c_si_.c_si_s_wsfi_.s_wsfi_s_rdfi_.s_rdfi_c_di_.c_di_s_wdfi_.s_wdfi_c_fi_.c_fi_.z_rnew_.z_tab_e_rsfi_.e_rsfi_e_wsfi_.e_wsfi_e_rdfi_.e_rdfi_e_wdfi_.e_wdfi_c_li_.c_li_s_rsli_.s_rsli_s_wsli_.s_wsli_e_rsli_.e_rsli_e_wsli_.e_wsli_iiorec__.iiorec__iiopos__.iiopos_.oVncs.oVhc2.1n.oVO_f_inqu_.f_inqu_.ioinit__ioiflg__ioinit_.oVpcc.oVncs.oVncs.oVhc2.1n.oVO_lrd_lchar_lx_ly_ltype_ltab_s_rsle_.s_rsle_l_read_t_getc_.t_getc_e_rsle_.e_rsle_.l_read_t_sep_.t_sep_l_R_.l_R_l_C_.l_C_l_L_.l_L_l_CHAR_.l_CHAR_lr_comm_.lr_comm_get_repet_.get_repet_rd_int_.rd_int_nullfld_.nullfld.oVncs.oVhc2.1n.oVO_lwrt_s_wsle_.s_wsle_t_putc_l_write_.t_putc_e_wsle_.e_wsle_.l_write_lwrt_I_.lwrt_I_lwrt_F_.lwrt_F_lwrt_D_.lwrt_D_lwrt_C_.lwrt_C_lwrt_DC_.lwrt_DC_lwrt_L_.lwrt_L_lwrt_A_.lwrt_A_chk_len_.chk_len_lwrt_0_.lwrt_0.oVncs.oVhc2.1n.oVO_s_rsne_.s_rsne_c_nle_.c_nle_getword_.getword_findit_.findit_getvar_.getvar_s_wsne_.s_wsne.oVncs.oVhc2.1n.oVO_f_open_.f_open_isdev_.isdev_fk_open_.fk_open.oVncs.oVhc2.1n.oVO_rd_ed_.rd_ed_rd_mvcur_.rd_mvcur_rd_I_.rd_I_rd_L_.rd_L_rd_AW_.rd_AW_rd_F_.rd_F_rd_ned_.rd_ned_rd_POS_.rd_POS_rd_H_.rd_H.oVncs.oVhc2.1n.oVO_f_rew_.f_rew.oVncs.oVhc2.1n.oVO_rsfe_wsfe_s_rsfe_.s_rsfe_c_sfe_.c_sfe_x_getc_x_rnew_x_tab_.x_rnew_.x_getc_e_rsfe_.e_rsfe_new_s_wsfe_.s_wsfe_pr_put_x_putc_x_wend_x_wnew_.x_putc_.pr_put_.x_tab_.x_wnew_.x_wend_e_wsfe_.e_wsfe.oVncs.oVhc2.1n.oVO_recloc_rsue_wsue_s_rsue_.s_rsue_c_sue_.c_sue_s_wsue_.s_wsue_e_wsue_.e_wsue_e_rsue_.e_rsue.oVncs.oVhc2.1n.oVO_ini_std_.ini_std_canseek_.canseek_finode_.finode_nowreading_.nowreading_now_acc_.now_acc_nowwriting_.nowwriting_g_char_.g_char_b_char_.b_char_inode_.inode_last_char_.last_char.oVncs.oVhc2.1n.oVO_w_ed_.w_ed_wr_mvcur_.wr_mvcur_wrt_IM_.wrt_IM_wrt_L_.wrt_L_wrt_AW_.wrt_AW_wrt_E_.wrt_E_wrt_G_.wrt_G_wrt_F_.wrt_F_w_ned_.w_ned_wrt_AP_.wrt_AP_wrt_H_.wrt_H.oVncs.oVhc2.1n_libI77_idbackspace.o 597750165 0 10 100777 1572 ` (|hH١n`0޿p 0qRؠȪ0ZdP0 e/ɡ@> epZbP"%!%"jp "3E c 010 @ ?ɡ@>q 0 x 8p*X(bɡ@p*l bɡ@t @ j/ɡ@> jy @=Nb0! ɡ@sڔ bcЌ0cp*c@bɡ@u #p*0A`pZb4AppZ0bPAbɡ@ p* bɡ@p*$*```bɡ@ߨ$Header:backspace.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$backspace p p*p4 pD p` px p p ( p@ VxT@\ P`PdPhPlPpPtPxP h'|"+2:RAK_T [b inqcx|eN8.oVncs.oVhc2.1n.oVO_f_back_.f_backmcount_lfname_elist_external_errflag_lunit_errno_fatal_.fatal_units_fk_open_.fk_open_ftell_.ftell_t_runc_.t_runcldiv$$_fseek_.fseek_fread_.fread_rewind_.rewind_last_char_.last_charclose.o 597750178 0 10 100777 1674 ` phP١n`j p  0qJذȻ0Kd@0 e/ɡ<> epK@ r* @" @ e/ɡ<> epKb@"$!$"kp @ r/ɡ<> rr* K@" FA ?Z <;" p+ q !b$q y @=Nb( ɡpHP@l PpPtPxP|P@@@P h's";+2:RAK_T [b inqcxuypL.oVncs.oVhc2.1n.oVO_f_clos_.f_closmcount_lfname_elist_external_errflag_lunit_errno_fatal_.fatal_units_fclose_.fclose_unlink_.unlink_t_runc_.t_runc_free_.free_f_exit_.f_exitldiv$$_flush__.flush__fflush_.fflushdfe.o 597750194 0 10 100777 5969 `  8n`2[ , "y   " ", "> \ t  "  " d/,> d , n`1 0 "8y   " "0 ">؍ h t  "  " d/0> db0 n` , n` , an`f g0ݏݟݟؠȪ0ذȻݏݏ` ޟsp rqV0]dP e/aL> ep]bP"%!%"b0-pbp4Ec 0 v@ ?aL>p-ppw0q0 u@ f/aL> fp-t s20@, h/aL> hp-s2tp /c b@ p-wޏbaLp-ph!n`p-x  4s21 "pN0p,p 0q2@112` b4p,X p-8 4 " "4 ">4 4 n`m "s21 $ "p0 " n/0> n@Dp4p#! 0#q#ґ!%1#X "s q# p$q1p4q#@"- 0 ٱn` "s”)p=0p,p, p,A 0-ɱ8 "pPUpE0Bo@p=`C40=k " 5`0 200 "cAp 0 p< p ɱ8p 0 0-ɱ8`C0  " n/ɱ8> np= "A0 bɱ8ljp=߸n` "s21 '@Dp$!0$c "@Ԥb,``` ١n`ذȻp+s"! Ap<p 0 "0Ap<0=`0p+s"ؠȪp: pp+s"p  "p0 /0,0-ɡ< ```ߨn` , n`, $Header:dfe.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read dfewrite dfe L>~B l p4 p@ NpZplpv`ppppp`p`pppp pp$"JRpr p&ppp`(p)pp*pp`p`ppp p& 4pDp\d"//2p3p4p5p6p7p$8p.9p6:p@;pJpp?p pAp Bp:pRtpCpDFGpHp p8p2BpPKppp p8pp p8BBpNN p:pBpQSF&7p08pB:pZppBpzF(ppp BpF,BpNT pbCpnDvBp~F:p7p8p p7p8pBp F (p 8Cp H:p x X@`@d PhPlPp!Pt@|%P@.P@@@PEP@JP@MP@PPRP@@@@@ h'  &K .7>G LNV_kYx_ n \t\B tPC K0: Is ,$;>-W99FY hNTZak i 8qS~z D{R;c  c$(a0:7e>FUNbU^gqzf|mB H lF p .oVncs.oVhc2.1n.oVO_rdfe_wdfe_s_rdfe_.s_rdfemcount_reading_c_dfe_.c_dfe_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_y_getc_getn_rd_ed_doed_rd_ned_doned_y_tab_dotab_y_rnew_donewrec_doend_dorevert_fmtbuf_pars_f_.pars_f_fmt_bg_.fmt_bg_s_wdfe_.s_wdfe_nowwriting_.nowwriting_y_putc_putn_w_ed_w_ned_y_wnew_e_rdfe_.e_rdfe_en_fio_.en_fio_e_wdfe_.e_wdfe_sequential_formatted_external_lfname_elist_reclen_recpos_scale_cursor_radix_signit_endflag_lunit_units_fk_open_.fk_open_cf_recnumlmul$$_fseek_.fseek_cblank_cplus_.y_getc__filbuf_._filbuf_.y_putc__flsbuf_._flsbuf_.y_tab_ftell_.ftell_rewind_.rewind_.y_rnew_.y_wnew_y_rend_.y_rend_y_wend_.y_wend dofio.o 597750216 0 10 100777 3049 ` 0@n`0b0@ 0 an`f0g@pؠȪ)@Dbc`p  03030 /aL>@p 0 `.03*p  03030 /aL>@ aLذȻp;`0b p 10;p 0  aLbc`dp؀͈p  03030 /aL>@p b p0g}p<10<: " d/aL> d@p< "2qb#0p M0 p,!0,* " d/aL> d@p,"q8b02p 0 03 "pBe@Rep 0A0Bp0p 0 pb"""!0*0`.03*p  03030 /aL>@ aL aL//q0 "p 03030 /aL>@`0q 03p  03030 /aL>@ aL aLp I0 qrp :0 qp 00 qp &0 qp 0 " d/aL>0 d@p h p(_D!" "P//Dz,*(Djhzxvtrpnljh>h1n`PPPPPP, n`2 23SUP55:8N@JH:,*(&$:86420. ),(,, $Header:dofio.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:format.h 12.0$h2too many nested ()too many nested ()impossible codepdofio > J pRp^pzpppppppp$pXpppzppppppp*p:pR^pxpppppppp>pFpRplpvpppppp"p,p@pTphpzpp`* 2!p: pBpJpRpZp| `\@`@h@l@P@@@ h'(($(,KX2\:CJhR2[_"dBk_t} n0\aUTpI.oVncs.oVhc2.1n.oVO_cnt_ret_cp_rp_dfio_en_fio_.en_fiomcount_do_fio_.do_fio_pc_syl_doned_errflag_endflag_errno_fatal_.fatal_doend_doed_dorevert_cplus_signit_scale_radix_cblank_type_f_.type_f_fmt_bg_.fmt_bg_cursor dolio.o 597750233 0 10 100777 1552 ` |t qn`g0ؐș0ؠȪ>ذȻ0;p @rqR0]dP@ e/qH ep]bP"%!%"b0-pbp3Ec 0 h@ ?qHp;p-p q0 ݏݏݏޏu@ f/qHp; fp-s @L@ i/qHp; ibqHp-px!n`pb0c@dPep 0A $Header:dolio.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$ext list io p"p0p8 p@ pL pX ph prppppppp&p.p6p@pXpnppX@lPpPt@ h'#T U'.6R=HR^f_ox  nccUapO.oVncs.oVhc2.1n.oVO_c_le_.c_lemcount_lfname_elist_formatted_external_sequential_fmtbuf_errflag_endflag_lunit_errno_fatal_.fatal_units_curunit_fk_open_.fk_open_cf_cursor_recpos_scale_cblank_cplus_do_lio_.do_lio_lioprocdouio.o 597750246 0 10 100777 1838 ` h(`ٱn`k l0m@ " Dp+cЌ03p0 " " n/ɱ8> nPUpKbcЍ pK$ ".ɱ8p+cЌ03p0PUpKbcЍ ɱ8߸1n`PUP ,  ,1 ٱn`k l0m@p+cЌ@Dp4204 "s0  " n/ɱ8> n " PUpKbcЍpK$ .ԍɱ8PUpKbcЍ ɱ8߸1n`c @DX$  " /, , "( ", ", $Header:douio.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$,,eor/uiouio p& , p: pF pV pnxp ppp8F L pZpl p| ppppp&p6 pJb pp p pD@H@L@TPXP\@`Pd@l@p@t@|@ h' $5+3:C:JcR:Z_cj qny}N[#'&,.oVncs.oVhc2.1n.oVO_eor_uio_do_us_.do_usmcount_readinglmul$$_recpos_reclen_errflag_errno_fatal_.fatal_cf_fread_.fread_due_err_.due_err_fwrite_.fwrite_do_uio_.do_uio_sequential_do_ud_.do_ud_curunit_endflagdue.o 597750258 0 10 100777 2587 ` (hn`2 , "y   " ", "> , n`1; 0 "8y   " "0 ">b0 an`f g0ؐș0ؠȪݏݏݏݏݿp rqV0]dP e/aL> ep]bP"%!%"b0-pbp4Fc 0 u@ ?aL>͍p-ppw0q0 u @ g/aL> gp-t s20@, h/aL> hp-s2tp c bФ@  .͍aLbaLp-ph!n` , n`0 "s +030 %p-0A bp]1A! .8b8$Header:due.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read duewrite due("( p4 p@ NpZplpvp pppp.:pFpRpZpbpjptp~ppppp p!p,:"pZprp#%'4> pLpX"ph%|-'X@`@d PhPl@tPx@ P$P&P@@,P h' &i.17>G(N"V_kYx_ nYW9R:c  c!+/:6e=ENX<`qiDq(z[#.oVncs.oVhc2.1n.oVO_rdue_wdue_s_rdue_.s_rduemcount_reading_c_due_.c_due_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_s_wdue_.s_wdue_nowwriting_.nowwriting_lfname_elist_formatted_sequential_reclen_recpos_external_endflag_lunit_units_fk_open_.fk_open_cflmul$$_fseek_.fseek_due_err_.due_err_e_rdue_.e_rdue_e_wdue_.e_wdue_fwrite_.fwrite endfile.o 597750272 0 10 100777 1323 ` t @١n`0޿p 0qؠȪ0 d0 e/ɡ<> ep b" ! "jp @ r/ɡ<> rx bɡbdeQ  "(> b"""0!bde2 d "d(>0b"""p0!bde(>@bdep , "pRP@D@^`0R^h0R^p 0RE F ^x0R>|b " cp>p NN " ^^ؐșp  ؔ0 1bp " " bp p  "t . $($0, 04ɑ L@Dqߘ!ٱn`(>bp-p" .!p-p" p-p"$*  p-p"$* p-p"(c, |c0p-p"( c, p-p"(*c0ɱ8߸١n`(>bذͻ p  @+cp |cp ؠȪp @+cp p *cɡ<ߨ١n`m (>b dؠͪp `ⰉذͻȠ 0 @+ " "c"p  |cܑ @+ *cɡ<ߨn`l m0   ^cЍ@bcЍ4! n`=( A%cФB=&A0 $Header:err.c 12.0$$Header:fiodefs.h 12.0$%s: [%d] end of file %s: [%d] %s %s: [%d] %s %s: [%d] unknown error number stderrstdinstdoutlogical unit %d, named '%s' lately: %s %s %s %s IO readingwritingsequentialdirectformattedlistunformattedexternalinternal@ttpart of last data: rpart of last string: *part of last format: Ltmp.FXXXXXXfort.%d 2485pL7\8ph5p|9p7:p5p;p75p7pppR7\'pnpp p7 p p*C2E>GHIPKdp25p7pMOQQSW&SHSZW~25p7p pW pW62>5pN7^ pf p p pWW2$W4WX2^5pl[z[[,@0@d@t3Px6P|@@@BPDPFPHPJP@LPNPPPRP@VP@@@@ ZP h'#-c4=GS^ffm t|\B0KPOtL ca:  %b,U4R;_DMT`]ckus~ n.4,*>@t:tr'/p8BMU^jw~<|8i1hLV.oVncs.oVhc2.1n.oVO_tmplate_fortfile_units_reading_external_sequential_formatted_fmtbuf_icptr_icend_fmtptr_doed_doned_doend_donewrec_dorevert_dotab_lioproc_getn_putn_ungetn_svic_cf_curunit_lunit_lfname_recpos_recnum_reclen_cursor_scale_radix_signit_tab_cplus_cblank_elist_errflag_endflag_lquit_l_first_leof_lcount_line_len_ioiflg__fatal_.fatalmcount_flush__.flush___iob_fprintf_.fprintf_sys_nerr_sys_errlist_f_nerr_f_errlist_prnt_fmt_.prnt_fmt_prnt_ext_.prnt_ext_prnt_int_.prnt_int_f_exit_.f_exit__cleanup_._cleanup_signal_.signal_sigsetmask_.sigsetmask_abort_.abort_ftell_.ftell_rewind_.rewind_last_char_.last_char_fgetc_.fgetc_ffputc_.ffputc_fputc_.fputc_f_init_.f_init_ini_std_.ini_stdf_errlist.o 597750300 0 10 100666 1036 ` H$Header:f_errlist.c 12.0$(@Ph|  8Ph|error in formatillegal unit numberformatted io not allowedunformatted io not alloweddirect io not allowedsequential io not allowedcan't backspace fileoff beginning of recordcan't stat fileno * after repeat countoff end of recordtruncation failedincomprehensible list inputout of free spaceunit not connectedread unexpected characterblank logical input field'new' file existscan't find 'old' fileunknown system errorrequires seek abilityillegal argumentnegative repeat countillegal operation for unit@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@ !,|4.oVncs.oVhc2.1n.oVO_rcsid_f_errlist_f_nerrfmt.o 597750315 0 10 100777 4074 `  hn`0 b0 n`m @  @ ```( 4 "p0?0Ѥ!@PsbЍ" m  4@  @ ```b4! n`m @ X  @ ```bЍXm  4@  @ ```,щ,@ )' "p0030Ѥ"@P 0Ѥ#0@P-4 4 n`l @ ) @cЍ9 r! @bcЍ4 r! @1bl q10&@Pc b @ٱn`l m0@ AZ 0 :@Pp؈0 "0@Pd؈y030 @PU؈j0 1@PH؈]0 0@P;؈PA,A Z " n z Ȱ1)AȰ#0"@Ȱ0AA,A Z " p s u Ȱ0A0bP؈0%0@P؈1bl @ A _Z \[ q1q10 @P؈q11 ɱ@0 !@P؈qA0/0P؈q10$@P؈q1L0,Pq1 ɱ@  "P//(Fr0+c@PQb0-!ɱ@A,A,A,A Z  ` l r ꤿ0 9 1bS1q10bAP  0$1@P0 0@P 0 !:APؑ0ͤ!ɱ@ ɱ@4 %y  "P//: 5 ƈbk  "zP//*b<ZXV߸!١n`l k01j t10&@Po@*A Z  - -"P//4DB 8421 bwj s&@ . 1bfj 2@*A Z  ` e .(1bGj e 4qQrA-s1 d 4qQrA"s14qQrAs1rAs1R1Q e4 d44t!0̉1 bj s100 @P̉@*  @* ```0 9 1 bj s100 @P̉t0 0@P̉g1 bj s10i@ . 1bj s12rA0 PỶ=1 bj s10 B@ .1bxj *s1Ѥ2Ѥ'rA0P/ "p00ݯ ɡP0bɡPщщщߨ!فn`i j0k@lPp=b0$h, D> dp=0123b010=ɁD߈Qn`P@B  !@B ```0 9 0 9 `PPФ!@B0 9 0S0,! n`@2!@  !@ ,!@/> d, $Header:fmt.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:format.h 12.0$ `L p |   format too complex  bad string pp$pX ppp |pp p  p0 p p` p`n` ` Jp Z p p p p   p X@`@d@l@p@t@|@@@@@@@@@P@@ h'")-5: T=FM `RLX`V h q py3 |x  x  U ^  n.oVncs.oVhc2.1n.oVO_syl_parenlvl_pc_revloc_pars_f_.pars_fmcount_f_s_.f_s_fmtptr_op_gen_.op_gen_f_list_.f_list_i_tem_.i_tem_ne_d_.ne_d_e_d_.e_d_gt_num_.gt_num_cblank_ap_end_.ap_end_fatal_.fatalfmtlib.o 597750332 0 10 100777 755 ` $t$xpan`j i0ذͻlnؔ0 00 baL " `0bcn bc*b&@ 5䮤0/bcg bch bpcbcqjbcg bpcb@ bcn bcb@ j0baLh1$Header:fmtlib.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$0123456789abcdefghijklmnopqrstuvwxyz p`Lpdn    l@ h' '.5=D:K.oVncs.oVhc2.1n.oVO_icvt_.icvtmcount_radix_signitldiv$$lmul$$ iio.o 597750349 0 10 100777 7004 `  dn` "p_R ,@Dp40 P%, "t01 04@%Q0_, ,@Dp4 n` "p_R= 0 "t@Dp401 04ՑQ0_ 0 " n/0> n /030 /0> 0 n`  "pBA0B03t@  4p,!0,q @ " k/4> kp,Ҥ 4! n`   k, n` $  ", n`   , n` $  , ١n`k s ݿt+u;q `p ؠȪ r b @ d/ɡ<> dčbɡ<ߨn`qe, n`m v 0?t-q `bЍ:0 n` "p2102t-q `P P%P%P%0 ١n`ذȻpKpppp@4pLTBzCpDppCpDp>pDp* p2><pF8pN=pVpx~=ppp p*p8pDp=p p28pHpZpt*ppJ3p0X3p4pCp5pp p p  p < Dp LUp TVp \` dp l` tWp ~Xp Yp Zp  p ` *p ]p Vp ^p  3p B J3p Rp Z=p  Dp  pT@\@l@pPt@@@@@@@@?PAP@@@@@@@IP@@@@@@0@8@<@D@L@T@\@ h' "+2 9f@cHNTy $\e mlv_ n <| LS\Btc K00 P 5 &gn- X5{>DKQO `YBb hIow lw? tMfaUR::;Ib# ,4 <EMV ^g oW$x L' Yt _ 0dOL`       6O ' x1 $: D.oVncs.oVhc2.1n.oVO_z_getc_.z_getcmcount_icend_icptr_recpos_leof_svic_z_putc_.z_putc_z_wnew_.z_wnew_errflag_errno_fatal_.fatal_endflag_z_ungetc_.z_ungetc_s_rsfi_.s_rsfi_reading_rd_ed_doed_rd_ned_doned_getn_z_rnew_donewrec_doend_dorevert_z_tab_dotab_c_si_.c_si_s_wsfi_.s_wsfi_w_ed_w_ned_putn_s_rdfi_.s_rdfi_c_di_.c_di_s_wdfi_.s_wdfi_c_fi_.c_fi_fmtbuf_formatted_external_cplus_cblank_cursor_scale_radix_signit_elist_reclenlmul$$_pars_f_.pars_f_fmt_bg_.fmt_bg_sequential_recnum_.z_rnew_.z_tab_e_rsfi_.e_rsfi_en_fio_.en_fio_e_wsfi_.e_wsfi_e_rdfi_.e_rdfi_e_wdfi_.e_wdfi_c_li_.c_li_s_rsli_.s_rsli_l_read_lioproc_ungetn_l_first_lcount_lquit_s_wsli_.s_wsli_l_write_line_len_e_rsli_.e_rsli_e_wsli_.e_wsli_iiorec__.iiorec__iiopos__.iiopos_inquire.o 597750367 0 10 100777 1786 ` @0ّn`i r)030#qIOj 5s9ldbl  t) 0bɑ@@03`@bp r 5k Ad .d@p e/ɑ@> e`@ "bp k q 0t)  0u)  0vɔ  "+0, 0,w)  q;0 0x90   b q+ .yIz90  s ..{I|90    s .(.,}I~90   t s .0.4I9@0  v .8u .@.L.XID9H0  u .`.d.hIL9P0  u .p.t.xIT)X  s 0 \  s p+s;`# !9\0#9`0  u w ..Idbɑ@ߘ@P$Header:inquire.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$inquiredirectsequentialyesnoyesnoprintformattedunformattedunknownyesnounknownnoyesunknownzeronull p p,p6 pJ T |ppp<pHT$D@ P PPPP h'"y+2R9A HRfZ.cjrcy n|.oVncs.oVhc2.1n.oVO_f_inqu_.f_inqumcount_elist_lfname_lunit_external_g_char_.g_char_inode_.inode_units_errno_fatal_.fatalldiv$$_b_char_.b_char_ftell_.ftellioinit.o 597750387 0 10 100777 3029 ` pp̔  qp̔  -Ȥ-rp̔ ψ Ϥu;s+.E ?QuK03s+Д 1QuK03s+.u[@ s;-`tp̔ P"NA=` "䤠ݮ  _l-D c "P@ =`-`Q@03-`Д ݭ`-Ȕ ١0+1;2K3[`ߨMpfzn (i2.2)s(ioinit: logical unit ,i2, opened to ,a)(ioinit: no initialization found for ,a)(ioinit: initializing from ,a,nn)(ioinit: ,a, ,$)(ioinit: cctl=,l,, bzro=,l,, apnd=,l),Xp&pDp\pp p(P`Xr`z`` `( >`DL d t`~````$ :`@H \`bv`|  `` `*`0>`DR`X` j`p@PPPPPPP PPPPP P$P(@H@X@h@x@@Qs x(09BwKT]{foys' %_.ioinit__ioiflg__.f_open_.i_len_.s_cmp_.i_indx_.s_copy_.s_wsfe_.do_fio_.e_wsfe_.s_wsfi_.e_wsfi_.getenv__.lnblnk__.perror__.flush__f_open_i_len_s_cmp_i_indx_s_copy_s_wsfe_do_fio_e_wsfe_s_wsfi_e_wsfi_getenv__lnblnk__perror__flush__ioinit_mcount.oVpcc.oVncs lread.o 597750416 0 10 100777 11464 `  0xxn`2 0 "xy   " "0 ">pb0 n`p-x  4p,p 0q2@112` b4p,X2 p-8 /( 4 n` "x  0p-p*  0 an`h i0j@kPpp  " /aL>H  "@ "`f{ "pc.UpF03p " u0  03030 /aL> "  aL!F4 03030 /aL>舀8 y 03030 /aL>[< U 03030 /aL> 8[@ 2 03030 /aL>( bp"@P// P "  aLp  " /aL>H & " "X  "03 p#aLp#>H "`f r owP"4HZ "HW ) "HM0) "@03qp#0)81 c "84 "8b@Dqp4021(@Dqp402 1 "cdDp0pi aL{{hA١n`ذȻp+ ɡ<p-pj c@D03p ,!0+ɡ< / !/ɡ pp-pc.=@D03p  "qp2 "021  0 p-pc.=)  " p/0> pФ 0 n`  0 0  0p-p.p-pF 030#N10? "02C1 @D03p 030#1 0 0 " p/0> pp-pc.3! @D03p 0T f~t c.3! qn`  qH qH  qHp,pg c~3 9ŧ  z qH@D03bpp qH@D03p p- Ȁ  0-k  " q/qH> q p,pg zCp,pg b~"74 1z / ,){ p,pg zp,pg b~"   z   ٴ/p 8b0-`  " q/qH> qp k { qHz" \q{l @D03bpp qH p,pg z{G@D03bpp qHxn`p-pe c^Cp<0  4/@D03p 4 p-pe b^p<0  4@D03bPp 4 n`p,pm. @D03p- !4 4 $Header:lread.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$list read # list iolist iolist iolist iolist io\,H`=P3`-`3`=@2 `-@2` T3pd`$0 `T#`(3`(3``(`3`(3`,0 `pF`NpV`^pfpnpvppppppp p!p<#np pp p'p,pDNp\plp!ppp'pppp('p4pHhpr'p~pp'ppp'p p4`Rpp'pp2p!ppppp `(p<pPpfp|ppppp4& ,pFpNpnpv!pp pp!p p<pfpnpv!p pDpx!pp!ppp "p 2p f p !p p !p p !p p p p p  0p 8!p Rp ^p p p  p  Np |p p p !p p pp$pNpV!p pBpJ!pjpr!ppp?AppCppp&!pfpn!p pppp!pHpP!p~ pp!p@ PPP@"P@@@@D@H@L@P@T3PZ5P5P 5PJ5P@@@5P@@@5P&5Pz5P5P5P5P5P*5PV5P5P5P5PF5Pr5P5P5P.5P>5P5P5P5P5PZ5P5P5P&5P65P5P5P5P V5P ~5P @ 5P 5P B5P R5P 5P 5P 5P n5P 5P 5P 5P 5P (@ @@ D@ `@ h>P l@P pBP t@ |@ h'@P&*.-5L;C[LS\#bUi`rydO1tALY_ n (,1:\AFINTYs x_,d| j&Hr{pBx Zdrys 7.oVncs.oVhc2.1n.oVO_lrd_lchar_lx_ly_ltype_ltab_s_rsle_.s_rslemcount_reading_c_le_.c_le_l_first_lquit_l_read_lioproc_t_getc_getn_ungetc_ungetn_curunit_leof_lcount_nowreading_.nowreading_errflag_errno_fatal_.fatal_.t_getc_cf__filbuf_._filbuf_e_rsle_.e_rsle_.l_read_endflag_t_sep_.t_sep_l_R_.l_R_l_C_.l_C_l_L_.l_L_l_CHAR_.l_CHAR_external_b_char_.b_charFPGLUE_lr_comm_.lr_comm_get_repet_.get_repet_rd_int_.rd_int_nullfld_.nullfld_free_.free_malloc_.malloc_realloc_.realloclwrite.o 597750454 0 10 100777 12375 `  xn`1 0 P "8y   " "0 ">b0 n`"* 03p0PUp5pCA 0CqC$A#1CX Ds@q3# p%q1p5q#@"b0 n`03*p , , ّn`j k0l@p Ј1 1>@ w舀P+p+5X  03030 /ɑ@>舀t\ 03030 /ɑ@>舀q;p+W` 03030 /ɑ@>舀dD0dd 03030 /ɑ@> 舀seq5p%XpEqUh f 03030 /ɑ@>(Ip+l B 03030 /ɑ@>0%bcp  03030 /ɑ@>8kːp Ўդ ɑ@b"JP//@:ߘAn`d l>bbJ D@, p=p D@,  Dn7!819A:Q`7!# ,!3,A ١n`j k0+ ɡ<p= p ɡRɱXߺ! $ٱnp`, ɱX$ #LL,bЍܔ ɱX 6L (|```!0dФXɱX!M0d10RɱXߺ!0$ٱn`DXp "Tx ,P.* (p Tp % ɱHp= p `ɱHp= p `ɱHp= (p ɱH  ɱHp= ,p ɱHl ɱHp= )p `ɱH ɱHߺA< ٱn`8 #xx  D )Xhx(Xhx %̔ ɱHp= p ɱHp= p ɱHp= (p ɱH@\ ,ɱHp= ,p ɱHs\ hɱHp= )p ɱH ɱHߺA8 n`$+ 4@, p=p 4@,  4 n`03`2 "03*p , , $Header:lwrite.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$list writellist iolist iolist iolist iolist iolist iolist iounknown type in lwrite"`<P#2 `4l2`44#` TE2` %ld$2$` `,`#`,T#`,`,$` `<l2`<l"`<T`<$`<$`<#A.`<#?` `<"`<$`<T#?`<H`<l"A ` <$ ` ` B`$0`0T#`<T#`<$`,0`<(3`<<`<`<`<#Bּ`<#?`,0`<`<< `<T#@$` <0`,0`,0`<<` `#`(`E`(TH#`(d`$@`lD"`<T@`<$@`<$@`<@#A.`<$T`<T#?`T`$@`TL#A.`T`$@`$@`HH`T@#?`$`H`L<`L<`L<`<(#`L<`<(#`L<`L< `08`<TE`<<`T#Bּ`<```<`<8`<8`<8`<8`<8 0. p 4`< pD`L pXp`pjpvppppppHRx~ p p!p p4Zpd!pppp!ppp!pp2\pf!prpp!ppp!pp>`lz02 p6>b p9p;9p"=N9pP;l9p= p  p  p , 2p <p H pd@lPpPtPx@P@@@@@@@@@.PR.P.P.PD@T/PX1P\@`@h5Pl@t@|@:PF%O"X bj.s{#2F$$ ~D$ x>w=.oVncs.oVhc2.1n.oVO_lwrt_s_wsle_.s_wslemcount_reading_c_le_.c_le_t_putc_putn_l_write_lioproc_line_len_curunit_leof_nowwriting_.nowwriting_errflag_errno_fatal_.fatal_.t_putc_recpos_cf__flsbuf_._flsbuf_e_wsle_.e_wsle_.l_write_lwrt_I_.lwrt_I_endflag_lwrt_F_.lwrt_F_lwrt_D_.lwrt_D_lwrt_C_.lwrt_C_lwrt_DC_.lwrt_DC_lwrt_L_.lwrt_L_lwrt_A_.lwrt_AFPGLUE_sprintf_.sprintf_strlen_.strlen_chk_len_.chk_len_wrt_L_.wrt_L_lwrt_0_.lwrt_0_scale_wrt_F_.wrt_F_wrt_E_.wrt_E nio.o 597750489 0 10 100777 6056 `  (Pفn`i w Ɂ4xݿ "y  bɁ4xsp,p 0q2@112 ` p,p 0q2@112 ` & p s/Ɂ4x> s$p*(c mbЍ*,c p*0 p v/Ɂ4x vcЍ$p,p 0q2@C112 d $"p s/Ɂ4x> s$hp(( Ȉp(( ~b01, p x/Ɂ4x> x$>bЍ0 p y/Ɂ4x> y$bc4h p w/Ɂ4x wcЍ$b'8 p x/Ɂ4x> x$b01D, p x/Ɂ4x> x$>bЍ0 p y/Ɂ4x> y$bɁ4x߈ّn`i j0kp,p 0q2@112` b A2## & p,p 0q2@112` b A2## &唠 + (= %b A2# #    p,p 0q2@112` p,X  ɑ@ bɑ@ߘ!n`l m0p- p=b b4p-  4! ١n`j s* q00 rZ%RP.bq:EY0! U>bɡ@ФФФФФ> urZbq:d0! >bɡ@"P//ߨant`k  a@p "y t ba@s؀Ȉp8p 0q# !1#p8X#"  s  q# p8q#! 1# xp8p 0q#&!1#p8X#"  s  q#&p8q#! 1# &xp8p,|p8p 0 q#!1#X#"  s  q#p8q#@"x*xp8p 0q# !1#p8X#"  s  q# p8q#! 1# xp8p,|p8p 0q#=!1#X#"  s  q#=p8q#! 1# =xs, qҤroql`p8p#! 0#q#'!1#p8X "s  q#'p8q#! 1# 'xp8i 6p#! 0#q#@a!1#(p8X "s q#@a p8q1p8q#@"x p8@&axp8p#! 0#q#'!1#X "s  q#'p8q#! 1# 'xю , qpF>dbPF>bbzpF>dbo>db`qVpF> hbU>(,b|Ghsr&qVpF>40!1b7f@F>Dab*p>H NPNXbp u/a@ȑ>` up8b| ,   ȑb" P//0dNp,Д , p8.l|bpa@*qlZp8h#ٱn`l q\P d p e/ɱ8> eq\bP"%!%"bذȻ0+p" 3E@

( fp+pup g/ɱ8>4 gbɱ8p+p߸$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:lio.h 12.0$namelist read&end&end \|0x%x%d%ld%.8f%.18e(%.8f,%.8f)(%.18e,%.18e)%c.%s.TRUEFALSEnamelist io &end `,l2` 8E`,P32` TE2 namelist iostart namelist ionamelist ionamelist io$Header:nio.c 12.0$ ,p4 p< pF pN pZvpp,pBbnppp 2pJpppp*pBhtpp< p&"<"` p p&p. p6 pB&^p((*B(N((*(b((( ( 0, R. h. ~. . . . . . *. @p \ h* x, `  , *  0p 6p N \1p d2p x3p p 5 p  p p @T@l@p PtPxP|P@P@@@@@!P@ %P$'P()P,+P0-P6/P/P/P*/P|@4P h' |"_+29% AMW`ktY n$ \@ |  N_#d+,4 <EWQ9^fgqxFcc.oVncs.oVhc2.1n.oVO_s_rsne_.s_rsnemcount_c_nle_.c_nle_sequential_external_reading_formatted_curunit_nowreading_.nowreading_cf__filbuf_._filbuf_errno_fatal_.fatal_strlen_.strlen_getword_.getword_strcmp_.strcmp__ctype__findit_.findit_getvar_.getvar_errflag_l_read_.l_read_s_wsne_.s_wsne_nowwriting_.nowwriting__flsbuf_._flsbuf_fputs_.fputs_t_putc_.t_putc_sprintf_.sprintfFPGLUE_fmtbuf_recpos_scale_units_fk_open_.fk_openopen.o 597750521 0 10 100777 3937 ` Tan`f "0ޟݯpذȻ qF0Ld@ e/a\> epL`@ "gt& @A Z  ŀŀȀus03bЍbЍr& s6dЍ 03bЍ "0p Sr bЍr 4x& @A Z  z7v& u @A Z  p6ba\p 23@ 1! a\bФ00o@ v/a\> vp n@ u/a\> ubЍ $>$bЍ0' }9@ "a\ "cЍe>(bЍ0'd @ , " #>,bЍȔ J9@ "a\ "cЍ219>0bЍ0' 030 0B̉9@ "a\ "cЍp'2'@ l/a\>4 lbЍԐ!11' @ q/a\>< qq'cЍs:8p'4'u& .D5&@"A Z  ` sw03.H,3 A Z " d@ y/a\> y3x& @A Z  z7p 7 "7'v& 9@A (Z %$ 5=6596556 y/a\> yf p u @ s !/5'p 6 "6's t p'ba\Xwh@W١n`j0k@lP03$bd "0!12bЍ3! 4! 56` 78!bɡ0lߨAn`c @l @ @l!@l$Header:open.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$openopenopenrarropenopenseqWarning: open: record length ignored on sequential access recl on openopen form= sdfud p"p,p6 pF pb pz ppp p6 p 6 pN j" p p "#p% p p ",#p:'P pb pj t) p +- p /Tp^1 p #p< pT #p3p p+pv7D@ PPPPPPPP@!P $P&P(P*P,P .P$0P(2P,@D@H@P6P h'"+2:RAK_T [b inqcx!x@f.Fs;  dt t)62<eCKSS\$dmku3~g".oVncs.oVhc2.1n.oVO_f_open_.f_openmcount_lfname_elist_external_errflag_lunit_errno_fatal_.fatal_units_tmplate_strcpy_.strcpy_mktemp_.mktemp_g_char_.g_char_fortfile_sprintf_.sprintf_inode_.inode_f_clos_.f_clos_access_.access_isdev_.isdev_fopen_.fopen_ioiflg__freopen_.freopen_fseek_.fseek_finode_.finode_strlen_.strlen_calloc_.calloc_canseek_.canseek_fputs_.fputs_rewind_.rewind_fk_open_.fk_open_stat_.stat rdfmt.o 597750551 0 10 100777 5505 `  $@ٱn`k l0m@ " H- Bɱ8q;bdЍq q;b1q;bdЍ' rKq;beЍF J@DX4 ; ɱ8 d/ɱ8p  "P//lf|zxvtrpNZZ "(ɱ8߸1n`p0 3LP??^B   Jnq"T,r2qb , "p,q2 "p0 ,q " r23 "o ` ,q@Dp4004 "`#0 , d/,! n` "  "p4p  x/40 p-p 4p 0 0,4 an`g h0i@tp-p IaL_ " W "cOj 9 b "bc>j&a z b "bc*j& s/aLA Z " *  + , - 0 䪔 0 aLh1ّn`i j03p-p ɑ@A Z " t f ,   t/ɑ@0ɤ ɑ@ߘ!an``1!l0m@2Q,g0qpjk`loa "p  aTA Z "  030 F+ C-?q9 0 D-e ,d ). &030  l,f*  s/aTl .0lUe Rd O+ L- Ia "p  aTA Z " 9 0 @ 030 0 -l e d + --lda "p aT,։fA Z " -:9 0 ` ,030  `᠉,  + *  s/aTl p`m Ham ````i Hai ``` `jHaj ````j Haj ```p ! "f ` Ha ```f ` Ha ```r q!q!D aTjA0(ّn`j k0l@ 9⼴ؐșp)p ɑ@Ѵ дMذȻp+p ɑ@*   Ѵ /дؐșp)p ɑ@*   Ѵ ˴  Ѵ ``` ɑ@ߘ1ٱn`k l0 д*  "p ɱ8*  ,Ѵ ɱ8߸!n`l @ܑ@ $ A *  "p 4*  ,@ ޤ 4 $Header:rdfmt.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$$Header:format.h 12.0$   $| J`$0 `T#``,0 `(#@$```(#@H`T#@$`,0 `,0 `(#@$```(#@H`T#@$`,0 ` T#@$`  `` < P`>M`<p`?`?`@2`(3  p~pp`p*@`pppppp pp,p:pNpfpppppp,Dpjpvp~ p p pVjpp>p|ppp>pppJpp6!ppp >p  p  <p\@d@h@l@p@t@x@@@@@@@"P"P""P2"P^"P"P"P"Pb"P"P"P"PB"Pj"P"P"P>"PN"P^"Pn"P~"P"P"P"P @@@ h' !)08 B6|My S Z| `Jg9nvv $| S x KcPtU:.oVncs.oVhc2.1n.oVO_rd_ed_.rd_edmcount_cursor_rd_mvcur_.rd_mvcur_rd_I_.rd_I_rd_L_.rd_L_rd_AW_.rd_AW_rd_F_.rd_F_cf_errno_rd_ned_.rd_ned_rd_POS_.rd_POS_rd_H_.rd_H_donewrec_tab_recpos_dotab_getn_cblank_radixlmul$$_scaleFPGLUE rewind.o 597750573 0 10 100777 1059 ` Pd(١n`0޿qRؠȪ0Zp 0dP0 e/ɡ<> epZbP"%!%"jp "3E c 0 @ ?ɡ<>q 0 t @ j/ɡ<> j8y @=Nb ɡ    "  " d/,> d , n`p-x B 4p 0q2@1 12` p, X (p-803p 4 /0#/4p,03 ٱn`p-x  ɱ8p ep]bP"%!%"g0}bppb`3Ec 0 x@ ?aL>p-pq0 u@ f/aL> fs @<0 i/aL> ip-ݟݟ` ޏwޟbaLp-h!n`1 4p,y" " "4 ">p,8v      "Ȕ  " d/4> dčb4p, n`* 03p0Д 3PUp5pCA 0CqC$A%1CX Ds@q3# p%q1p5q#@""b0 n`*$03@ 0*1,b003p0Д 3PUp5pCA 0CqC$A%1CX Ds@q3# p%q1p5q#@""b0 ١n`ذȻppL0Kj@ "t 4p=`440=`0  "cAp 0 p=&: "Ap p=0 0 bɡ<p=0 xɡ<0160=p  "pj  0-ɡ<  ɡ<03 pp 0 0-ɡ<ߨn`@D034 "4A03*p, n`@D034 "4A03bp0 n`^, $Header:sfe.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read sfewrite sfe#]WloGn <###p 20 >B 6 p4 p@ NpZplpv`ppppp`ppp`pp pp$"JP p%&p'p(p)p&p  p.)pN%d&p,0p1p 2p3pp&4p25p>pN6pX7ptp8p p:p)pp2Lpdp'px;p&p(pp?pp pDp*p<pFZ`bFpl`tFp~@pHppIpp`p`pp`pp pp""NZ(pb'pj&pt&p)pNN@p(p&'p.&p8@pn&p)pNN'p&p$ p2(pN)pXRn)pvR(ppp Fp B H&p P'p \)p fR pFp  &p 'p )p R Fp X@`@d PhPlPp!Pt@|$P@+P@/P@9P@CP@MP@@QP@@@@ h' X  d& p.O7>G N-V_kYx_ n t\B# 0K P: IM>%.8c@;HPTy]Aekn vR cUa w%W19> FL9 TZa& iK qcBzf teu 6P   .oVncs.oVhc2.1n.oVO_rsfe_wsfe_s_rsfe_.s_rsfemcount_reading_c_sfe_.c_sfe_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_x_getc_getn_rd_ed_doed_rd_ned_doned_x_rnew_doend_dorevert_donewrec_x_tab_dotab_fmtbuf_pars_f_.pars_f_fmt_bg_.fmt_bg_.x_rnew__filbuf_._filbuf_recpos_reclen_cursor_cf_.x_getc_ungetc_.ungetc_e_rsfe_.e_rsfe_en_fio_.en_fio_formatted_sequential_external_lfname_elist_endflag_lunit_units_fk_open_.fk_open_scale_radix_signit_cblank_cplus_new_s_wsfe_.s_wsfe_nowwriting_.nowwriting_pr_put_putn_x_putc_w_ed_w_ned_x_wend_x_wnew_.x_putc__flsbuf_._flsbuf_.pr_put_.x_tab_fseek_.fseek_.x_wnew_.x_wend_e_wsfe_.e_wsfesue.o 597750607 0 10 100777 2995 ` @p١n`ݯ2 ɡ<ذȻp+y   " "ɡ< "> "p]4A!bɡ p=X# "( p,ɡɡ<ߨٱn`ݿ1U ɱ8p,y   " "ɱ8 ">܍ݿp- /p-4Ap,8bɱ8߸qn`g0ݏݏݟؠȪ0ذȻp 0rqR0]dP0 e/qH> ep]bP"%!%"b0-pbp3Fc 0 o@ ?qH>p-pq0 u @ g/qH> gp-s @ i/qH> ip-t@<0 x/qH> xbqHp-px!ٱn`p]b4Ap-k 03p]bP@p]b4Ap-c@ ɱ8߸n`03@D "44A , $Header:sue.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$read suewrite sue:F  p4 pBPp\pnpxpppppp"FN pn p|pppppp  !p"p(#p0$p<%pHpXpb&p~p'p p)pp"p:Vpnppp-p -, RXp`phpt X@`@d PhPlPp@xP|PP@(P@,P@ h'C"(%.6m?FOVK^gsY_ nc:N:W9|e )4<RC JcQZd  lu[}#,F.oVncs.oVhc2.1n.oVO_recloc_rsue_wsue_s_rsue_.s_rsuemcount_reading_c_sue_.c_sue_curunit_nowreading_.nowreading_errflag_errno_fatal_.fatal_recpos_reclen_cf_fread_.fread_endflag_s_wsue_.s_wsue_nowwriting_.nowwriting_ftell_.ftell_fseek_.fseek_sequential_external_formatted_lfname_elist_lunit_units_fk_open_.fk_open_e_wsue_.e_wsue_fwrite_.fwrite_e_rsue_.e_rsue util.o 597750621 0 10 100777 2424 ` ١n`m0j@c 22122k0ۤ1bЍ$4+5 `9 8: "R7 Q6 3bЍD 2+ɡ<ߨ1n`l ,c  U , b@tn`>" , n`> , ٱn`k l0q+   ɱ8t p+m q+pKc t p+cФ@@ a9 !ɱ8@ q+a>> 0+ t cФ@ ɱ8߸!n`e2QcC1R @  Q1R @ ```R @Q1R```,1 n`P@ T !1Q@ T TQ 1TQ ```,1 n`c q!@l @ln`"c q!@l @ln`m 0AbЍ̔ p  0 q=@#1 1=bЍ"0*0 $Header:util.c 12.0$$Header:fio.h 12.0$$Header:fiodefs.h 12.0$Tzra"raR* "pN p .@pZj^& 6BLp*D@L@P@T@\ P`Pd@p@t@@PPPP@@@%P@@)P h'V#-4c;DgzNsWST_how3Y+"W 9|6et f8.%@-R6H=EK"R8\]*ir|.oVncs.oVhc2.1n.oVO_ini_std_.ini_stdmcount_units_canseek_.canseek_ioiflg__finode_.finode_fstat_.fstat_isatty_.isatty_nowreading_.nowreading_now_acc_.now_acc_nowwriting_.nowwriting_errno_ftell_.ftell_freopen_.freopen_fseek_.fseek_fopen_.fopen_g_char_.g_char_b_char_.b_char_inode_.inode_stat_.stat_last_char_.last_char__filbuf_._filbufwrtfmt.o 597750649 0 10 100777 8899 ` 4 4`ٱn`k l0m@ " yR sɱ@rKq;beЍ ɱ@q;bɱ@1q;bdЍSɱ@s[rKq;0d1bɱ@s[rKq;0e1btɱ@s[rKq;0bɱ@rKq;beЍX ɱ@ d/ɱ@p  ".P// TR.,nl ߸1n`p0 3P??  x "p,q " r23 "o ` ,q03p# 0#@D`$0 ,q "p20 ,q"n,r2qb , d/,! n` "  "p4p  x/40 p= p 4p 0 0,4 ّn`j0k@RP"p" !p= p ɑH ɑH1dm p10 " A@q!`$ `K p= *p ɑH ɑH+ ⢉⤤ؐșp9 p ɑH p10 03 -p ɑH " 03 +p ɑHq!`ؠȪp: 0p ɑHq!` ذȻ@-p;p ɑHq ɑHߘAn`l "  4@ܑ@, /- 03p 4@,-03p 4 4@, Ӥ 4 ٱn`k l0 " O ɱ8 @,p=p ɱ8 ɱ8߸!١n`j p= p ɡ< p p= tp ɡDbЍbЍk ,)p+P+P+PL@V+Pn+P+P"+Pv+P+P+P*+P:+P+P+PN+Pj+P+P+P@,P+P+PN+P+P+Pb+Pr+P+P+P+P+P.+PZ+P+P+P+P +P ^+P h' '.6x@KSn\~cDks|w=y? ~x> VhKc\z@P af$+F4>$FOVn\cUk.oVncs.oVhc2.1n.oVO_w_ed_.w_edmcount_cursor_wr_mvcur_.wr_mvcur_wrt_IM_.wrt_IM_wrt_L_.wrt_L_wrt_AW_.wrt_AW_wrt_E_.wrt_E_wrt_G_.wrt_G_wrt_F_.wrt_F_errno_w_ned_.w_ned_donewrec_recpos_tab_wrt_AP_.wrt_AP_wrt_H_.wrt_H_dotab_putn_icvt_.icvt_cplus_scale_ecvt_.ecvt_sprintf_.sprintf_strlen_.strlenFPGLUE_fcvt_.fcvt_cblank Version 597750683 0 10 100666 908 ` X$h$8H\l$4D@(#)libI77.a Dec 10 01:51:20 1988@(#)backspace.c 1.6@(#)close.c 1.6@(#)dfe.c 1.4@(#)dofio.c 1.3@(#)dolio.c 1.2@(#)douio.c 1.2@(#)due.c 1.3@(#)endfile.c 1.7@(#)err.c 1.11@(#)f_errlist.c 1.3@(#)fmt.c 1.4@(#)fmtlib.c 1.3@(#)iio.c 1.3@(#)inquire.c 1.3@(#)ioinit.f 1.5@(#)lread.c 1.7@(#)lwrite.c 1.4@(#)nio.c 5.2 - 87/03/20 - 12:07:43 */@(#)open.c 1.10@(#)rdfmt.c 1.5@(#)rewind.c 1.3@(#)sfe.c 1.7@(#)sue.c 1.3@(#)util.c 1.7@(#)wrtfmt.c 1.7@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@  .oVncs.oVhc2.1n_libI77_id#]kloI  ###80$Header:libI66.c 12.0$$Header:fiodefs.h 12.0$ h's0#.oVncs.oVhc2.1n.oVO_ioiflg_#]mloI ### F#! __.SYMDEF 597788131 0 10 100666 4356 ` HHHHH)0:?GPWafnwp~pppp     ##*#4#9#B%I%S%X%`%i&p&z&&&)))))+++++.....0 000!0*3"13";3"@3"H3"Q5X5b5g5p5z7^7^7^7^7^88888;;;;;=Z=Z=Z=Z=Z?2!?2+?20?29?2C@|J@|T@|Y@|b@|lB$sB$}B$B$B$CnCnCnCnCnDDDDDFFFFFGG!G&G.G7I>IHIMIUI^JeJoJtJ}JKKKKKMMMMMO2O2O2O2O2PP PPP!S(S2S7S=SDT KT UT ZT bT kVHrVH|VHVHVHWWWWW[[[[[^^^^^____&_0b"7b"Ab"Fb"Ob"Yb"cb"nduddddeeeeehhhhhjPjPjPjPjP jPjPoF$oF.oF3oF;oFBoFJoFSoF\oFfoFnoFwoFoFoFoFoFoFoFoF|||||}P}P}P}P}PPP"P'P0P:>A>K>P>W>_fp|.oVncs.oVhc2.1n.oVO_access__.access_.oVncs.oVhc2.1n.oVO_alarm__.alarm_.oVncs.oVhc2.1n.oVO_chdir__.chdir_.oVncs.oVhc2.1n.oVO_chmod__.chmod_.oVncs.oVhc2.1n.oVO_ctime__.ctime_.oVncs.oVhc2.1n.oVO_dutime_dstime_dtime__.dtime_.oVncs.oVhc2.1n.oVO_etime__.etime_.oVncs.oVhc2.1n.oVO_f77lid_.oVncs.oVhc2.1n.oVO_fdate__.fdate_.oVncs.oVhc2.1n.oVO_fgetc__.fgetc_.oVncs.oVhc2.1n.oVO_fork__.fork_.oVncs.oVhc2.1n.oVO_fputc__.fputc_.oVncs.oVhc2.1n.oVO_fseek__.fseek_.oVncs.oVhc2.1n.oVO_fstat__.fstat_.oVncs.oVhc2.1n.oVO_ftell__.ftell_.oVncs.oVhc2.1n.oVO_gerror__.gerror_.oVncs.oVhc2.1n.oVO_getarg__.getarg_.oVncs.oVhc2.1n.oVO_getc__.getc_.oVncs.oVhc2.1n.oVO_getcwd__.getcwd_.oVncs.oVhc2.1n.oVO_getenv__.getenv_.oVncs.oVhc2.1n.oVO_getgid__.getgid_.oVncs.oVhc2.1n.oVO_getlog__.getlog_.oVncs.oVhc2.1n.oVO_getpid__.getpid_.oVncs.oVhc2.1n.oVO_getuid__.getuid_.oVncs.oVhc2.1n.oVO_gmtime__.gmtime_.oVncs.oVhc2.1n.oVO_hostnm__.hostnm_.oVncs.oVhc2.1n.oVO_iargc__.iargc_.oVncs.oVhc2.1n.oVO_idate__.idate_.oVncs.oVhc2.1n.oVO_ierrno__.ierrno_.oVncs.oVhc2.1n.oVO_isatty__.isatty_.oVncs.oVhc2.1n.oVO_itime__.itime_.oVncs.oVhc2.1n.oVO_kill__.kill_.oVncs.oVhc2.1n.oVO_link__.link_.oVncs.oVhc2.1n.oVO_loc__.loc_.oVncs.oVhc2.1n.oVO_lstat__.lstat_.oVncs.oVhc2.1n.oVO_ltime__.ltime_.oVncs.oVhc2.1n.oVO_perror__.perror_.oVncs.oVhc2.1n.oVO_putc__.putc_.oVncs.oVhc2.1n.oVO_qsort__.qsort_.oVncs.oVhc2.1n.oVO_rename__.rename_.oVncs.oVhc2.1n.oVO_signal__.signal__sig_trap_.sig_trap.oVncs.oVhc2.1n.oVO_sleep__.sleep_.oVncs.oVhc2.1n.oVO_stat__.stat_.oVncs.oVhc2.1n.oVO_symlnk__.symlnk_.oVncs.oVhc2.1n.oVO_system__.system__system_.system.oVncs.oVhc2.1n.oVO_tunits_mtget_topen__.topen__tclose__.tclose__tread__.tread__twrite__.twrite__trewin__.trewin__tskipf__.tskipf__tstate__.tstate_.oVncs.oVhc2.1n.oVO_time__.time_.oVncs.oVhc2.1n.oVO_ttynam__.ttynam_.oVncs.oVhc2.1n.oVO_unlink__.unlink_.oVncs.oVhc2.1n.oVO_wait__.wait_.oVncs.oVhc2.1n_libU77_idaccess_.o 597750730 0 10 100777 590 ` $x8١nj0kP y/ɡ0de$ɡ(dߨAA$Header:chmod_.c 12.0$/bin/chmodchmod p8J^pzp p @0P4P8 P< P h'"+2f:.CIPV]zdl.oVncs.oVhc2.1n.oVO_chmod__.chmod__errno_g_char_.g_char_fork_.fork_wait_.wait_execl_.execlctime_.o 597750764 0 10 100777 351 ` <$lnl m0b@cdЍ41 $Header:ctime_.c 12.0$"@P P h'oT"7+W2:BK.oVncs.oVhc2.1n.oVO_ctime__.ctime__ctime_.ctime_b_char_.b_char dtime_.o 597750773 0 10 100777 961 ` h(x@nm b.p t.q (pqh@$Header:dtime_.c 12.0$`l"Bp` <h@2 ` <L`<@@2 `<l2 `<4# @$P* P P PJ P P P h'"*2W;BJQ.oVncs.oVhc2.1n.oVO_dutime_dstime_dtime__.dtime__times_.timesFPGLUE etime_.o 597750781 0 10 100777 889 ` P `@nm bp!tq!(h@$Header:etime_.c 12.0$`l"Bp` <h@2 ` <L`<@@2 `<l2 `<4#@P"PPPBPPP h'h"w+2:A.oVncs.oVhc2.1n.oVO_etime__.etime__times_.timesFPGLUE f77lid_.o 597750787 0 10 100777 244 ` $T$Header:f77lid_.c 12.0$PP P h'O#.49D.oVncs.oVhc2.1n.oVO_f77lid__libU77_id_libI77_id_libF77_idfdate_.o 597750794 0 10 100777 420 ` H( nl m0 0!bcdЍ 8!$Header:fdate_.c 12.0$. @P P$ P h'`"s+18W?GOX.oVncs.oVhc2.1n.oVO_fdate__.fdate__time_.time_ctime_.ctime_b_char_.b_charfgetc_.o 597750805 0 10 100777 657 ` <8nm0p d e/4b" ! "lpL@ r/4y b > "4p 0ppNpb0@4P h'"+2c9|@H.oVncs.oVhc2.1n.oVO_ftell__.ftell__errno_units_ftell_.ftellgerror_.o 597750859 0 10 100777 523 ` t80ne d0030 "22#"d  "d02#"p.cP,! $Header:gerror_.c 12.0$unknown error numberpp*p:pL pZ @4 P h'#U-4>KS^fo.oVncs.oVhc2.1n.oVO_gerror__.gerror__errno_sys_nerr_sys_errlist_f_nerr_f_errlist_b_char_.b_char getarg_.o 597750867 0 10 100777 343 ` p Tnp  "  "bpR^ $ @ Q1!$@$ 1!$ ```1$Header:getarg_.c 12.0$pp@ h'S#-%48;.oVncs.oVhc2.1n.oVO_getarg__.getarg__xargc_xargv getc_.o 597750876 0 10 100777 603 ` <0nm pL@ r/4y b > "4p 0pG.oVncs.oVhc2.1n.oVO_getenv__.getenv__environ_b_char_.b_char getgid_.o 597750900 0 10 100777 270 ` $ Tnԍ, $Header:getgid_.c 12.0$ @P h'Y<#-L5>.oVncs.oVhc2.1n.oVO_getgid__.getgid__getgid_.getgidgetlog_.o 597750907 0 10 100777 363 ` <(lnl m0 .cdЍ 4! $Header:getlog_.c 12.0$ "@ P$P h'T#/-"7BBJS.oVncs.oVhc2.1n.oVO_getlog__.getlog__getlogin_.getlogin_b_char_.b_char getpid_.o 597750913 0 10 100777 270 ` $ Tnԍ, $Header:getpid_.c 12.0$ @P h'<#1-p58>.oVncs.oVhc2.1n.oVO_getpid__.getpid__getpid_.getpidgetuid_.o 597750920 0 10 100777 270 ` $ Tnԍ, $Header:getuid_.c 12.0$ @P h'<#Y-5L>.oVncs.oVhc2.1n.oVO_getuid__.getuid__getuid_.getuidgmtime_.o 597750926 0 10 100777 294 ` < Tnm00p0 $Ԑ19 ```0! $Header:gmtime_.c 12.0$ @P h'{T# -5>.oVncs.oVhc2.1n.oVO_gmtime__.gmtime__gmtime_.gmtimehostnm_.o 597750935 0 10 100777 416 ` T$xٱnk l00@mbЍ bcd ɱ@x "ɱ@x߸!$Header:hostnm_.c 12.0$(> p@P P h'Wl#-e:HPY`.oVncs.oVhc2.1n.oVO_hostnm__.hostnm__gethostname_.gethostname_b_char_.b_char_errnoiargc_.o 597750941 0 10 100777 214 ` H "鏒!$Header:iargc_.c 12.0$p@ h'+("+%2.oVncs.oVhc2.1n.oVO_iargc__.iargc__xargcidate_.o 597750949 0 10 100777 363 ` D$lnm 0!bs0 t1 ul2 4 $Header:idate_.c 12.0$@P P h' \"+18?CO.oVncs.oVhc2.1n.oVO_idate__.idate__time_.time_localtime_.localtime ierrno_.o 597750955 0 10 100777 216 ` H "$Header:ierrno_.c 12.0$p@ h';(#-4.oVncs.oVhc2.1n.oVO_ierrno__.ierrno__errnoisatty_.o 597750964 0 10 100777 397 ` p8`npԔ d  ,b" ! "bp"  ,"` /, $Header:isatty_.c 12.0$$Header:fiodefs.h 12.0$0pN0@4P h''#-c43<E.oVncs.oVhc2.1n.oVO_isatty__.isatty__units_isatty_.isatty itime_.o 597750973 0 10 100777 359 ` @$lnm 0!br0 q1 p2 4 $Header:itime_.c 12.0$@P P h'/X"+18?CO.oVncs.oVhc2.1n.oVO_itime__.itime__time_.time_localtime_.localtime kill_.o 597750980 0 10 100777 365 ` h `np"Ԕ  p31  y/, ", ,! $Header:kill_.c 12.0$(p8Fp@P h'!)06=.oVncs.oVhc2.1n.oVO_kill__.kill__errno_kill_.kill link_.o 597750990 0 10 100777 518 ` $x0١nj0kP  y/ɡ<c@dmbcdЍ @ y/ɡbЍ(y b,7p,p 0p,q2@ 1'12p dЍ4ɡ(dߨ!$Header:perror_.c 12.0$$Header:fiodefs.h 12.0$%d: unknown error number: %s 4p@pNp^pp p p0@X P\ P`PdP h'd#-4>KS^FgqcxW9f4.oVncs.oVhc2.1n.oVO_perror__.perror__errno_sys_nerr_sys_errlist_f_nerr_f_errlist_sprintf_.sprintf_units_nowwriting_.nowwriting__flsbuf_._flsbuf_fprintf_.fprintf putc_.o 597751036 0 10 100777 647 ` <8nl p=0 r/4y bЍ P "4p 0p=q#@ !%1#p=X p s q#@  p-q1p=q#@"@,p=XC "(4 4p=! $Header:putc_.c 12.0$$Header:fiodefs.h 12.0$p$p<Jp p0@4P8 P h'A$!)c07WC9PfYc.oVncs.oVhc2.1n.oVO_putc__.putc__units_errno_nowwriting_.nowwriting__flsbuf_._flsbuf qsort_.o 597751043 0 10 100777 270 ` ( TnpDp3ԍ,A $Header:qsort_.c 12.0$@P h'@"+`2&:.oVncs.oVhc2.1n.oVO_qsort__.qsort__qsort_.qsortrename_.o 597751052 0 10 100777 534 ` $x0ٱnk l0mP@  @ @  y/ɱ8  y/ɱ8c@ddbcЍbc "ɱ8 ɱ8߸AB$Header:rename_.c 12.0$.pRplz p@P P h'#+-4f<.EmM5V.oVncs.oVhc2.1n.oVO_rename__.rename__errno_g_char_.g_char_rename_.renamesignal_.o 597751060 0 10 100777 550 ` $Dx8np"e RepŔ y 4p 05cЍ c-b441 n0!`"23bp0 $Header:signal_.c 12.0$`,pJ`R^h``@P @ h'1##-4>FOzZ.oVncs.oVhc2.1n.oVO_signal__.signal__errno_sig_trap_signal_.signal_.sig_trapsleep_.o 597751068 0 10 100777 266 ` $ Tnp"ԍ, $Header:sleep_.c 12.0$ @P h'<"+2f:.oVncs.oVhc2.1n.oVO_sleep__.sleep__sleep_.sleepstat_.o 597751077 0 10 100777 510 ` $x nm0 y/@t@c@dcb -P0 q0 0 U0  0 0 X0 u0 v0 x0 z0 |0 @t "@t1A$Header:stat_.c 12.0$p0< p@P P h'?!)0f8.AG"N.oVncs.oVhc2.1n.oVO_stat__.stat__errno_g_char_.g_char_stat_.statsymlnk_.o 597751086 0 10 100777 528 ` $x0١nj0kP  y/ɡ<c@dmbcdЍ @ y/ɡ| p>pbp| pp>ppppxpppp bpppp: HpR\ppp p*pPpp,ppp2pB"@@ P$ P(@,P0@4P8@<@@@DPH@LPP@T@X@\!P h'K")i|1:ACJ5Tf\.ekr;yGjYT?>[\$ I#.oVncs.oVhc2.1n.oVO_tunits_mtget_topen__.topen__errno_tclose__.tclose__g_char_.g_char_open_.open_close_.close_tread__.tread__read_.read_twrite__.twrite__trewin__.trewin__tskipf__.tskipf__write_.write__ctype__strlen_.strlen_tstate__.tstate__ioctl_.ioctl time_.o 597751128 0 10 100777 262 ` $ TnԤ , $Header:time_.c 12.0$ @P h' <!m)/6.oVncs.oVhc2.1n.oVO_time__.time__time_.timettynam_.o 597751137 0 10 100777 452 ` d@xnl m0 p dc20102330 # .cdЍ 41 $Header:ttynam_.c 12.0$$Header:fiodefs.h 12.0$*p8L 0@8P<P h'U#-c4[=GOX.oVncs.oVhc2.1n.oVO_ttynam__.ttynam__units_ttyname_.ttyname_b_char_.b_charunlink_.o 597751146 0 10 100777 434 ` h$x n y/0mdЍbЍ "0 0!A $Header:unlink_.c 12.0$p*4 Bp@P P h' #-4f<.EuMV.oVncs.oVhc2.1n.oVO_unlink__.unlink__errno_g_char_.g_char_unlink_.unlinkwait_.o 597751153 0 10 100777 321 ` D `nm b  ""4p0 4 $Header:wait_.c 12.0$p@P h'\!k)/6=.oVncs.oVhc2.1n.oVO_wait__.wait__wait_.wait_errno Version 597751168 0 10 100666 1712 ` $,@Th|,@Pdx,@Tdt  0DXl|@(#)libU77.a Dec 10 01:59:24 1988@(#)access_.c 1.3@(#)alarm_.c 1.1@(#)chdir_.c 1.3@(#)chmod_.c 1.2@(#)ctime_.c 1.1@(#)dtime_.c 1.1@(#)etime_.c 1.1@(#)f77lid_.c 1.1@(#)fdate_.c 1.1@(#)fgetc_.c 1.4@(#)fork_.c 1.1@(#)fputc_.c 1.4@(#)fseek_.c 1.2@(#)fstat_.c 1.3@(#)ftell_.c 1.2@(#)gerror_.c 1.1@(#)getarg_.c 1.1@(#)getc_.c 1.3@(#)getcwd_.c 1.5@(#)getenv_.c 1.1@(#)getgid_.c 1.1@(#)getlog_.c 1.1@(#)getpid_.c 1.1@(#)getuid_.c 1.1@(#)gmtime_.c 1.1@(#)hostnm_.c 1.1@(#)iargc_.c 1.1@(#)idate_.c 1.2@(#)ierrno_.c 1.1@(#)isatty_.c 1.1@(#)itime_.c 1.2@(#)kill_.c 1.1@(#)link_.c 1.2@(#)loc_.c 1.1@(#)lstat_.c 1.2@(#)ltime_.c 1.1@(#)perror_.c 1.2@(#)putc_.c 1.3@(#)qsort_.c 1.1@(#)rename_.c 1.2@(#)signal_.c 1.4@(#)sleep_.c 1.1@(#)stat_.c 1.3@(#)symlnk_.c 1.1@(#)system_.c 1.5@(#)tapeio.c 1.2@(#)time_.c 1.1@(#)ttynam_.c 1.1@(#)unlink_.c 1.2@(#)wait_.c 1.1@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@  .oVncs.oVhc2.1n_libU77_id#]loI  |###  J%! __.SYMDEF 597788138 0 10 100666 4356 ` HHHHH)0:?GPWafnw~     #$*$4$9$B&I&S&X&`&i(p(z(((*****,,,,,000002v 2v2v2v!2v*414;4@4H4Q7X7b7g7p7z9|9|9|9|9|;>;>;>;>;>=====?????A!A+A0A9ACC\JC\TC\YC\bC\lE&sE&}E&E&E&FFFFFHHHHHIIIIIKK!K&K.K7L>LHLMLUL^NeNoNtN}NOOOOOQQQQQSSSSSUvUv UvUvUv!W(W2W7W=WDXKXUXZXbXk[`r[`|[`[`[`\\\\\a a a a a dddddetetetet&et0g7gAgFgOgYgcgnjujjjjkkkkknTnTnTnTnTppppp ppu$u.u3u;uBuJuSu\ufunuwuuuuuuuuLLLLL"'0:AKPW_fp|.oVncs.oVhc2.1n.oVO_access__.access_.oVncs.oVhc2.1n.oVO_alarm__.alarm_.oVncs.oVhc2.1n.oVO_chdir__.chdir_.oVncs.oVhc2.1n.oVO_chmod__.chmod_.oVncs.oVhc2.1n.oVO_ctime__.ctime_.oVncs.oVhc2.1n.oVO_dutime_dstime_dtime__.dtime_.oVncs.oVhc2.1n.oVO_etime__.etime_.oVncs.oVhc2.1n.oVO_f77lid_.oVncs.oVhc2.1n.oVO_fdate__.fdate_.oVncs.oVhc2.1n.oVO_fgetc__.fgetc_.oVncs.oVhc2.1n.oVO_fork__.fork_.oVncs.oVhc2.1n.oVO_fputc__.fputc_.oVncs.oVhc2.1n.oVO_fseek__.fseek_.oVncs.oVhc2.1n.oVO_fstat__.fstat_.oVncs.oVhc2.1n.oVO_ftell__.ftell_.oVncs.oVhc2.1n.oVO_gerror__.gerror_.oVncs.oVhc2.1n.oVO_getarg__.getarg_.oVncs.oVhc2.1n.oVO_getc__.getc_.oVncs.oVhc2.1n.oVO_getcwd__.getcwd_.oVncs.oVhc2.1n.oVO_getenv__.getenv_.oVncs.oVhc2.1n.oVO_getgid__.getgid_.oVncs.oVhc2.1n.oVO_getlog__.getlog_.oVncs.oVhc2.1n.oVO_getpid__.getpid_.oVncs.oVhc2.1n.oVO_getuid__.getuid_.oVncs.oVhc2.1n.oVO_gmtime__.gmtime_.oVncs.oVhc2.1n.oVO_hostnm__.hostnm_.oVncs.oVhc2.1n.oVO_iargc__.iargc_.oVncs.oVhc2.1n.oVO_idate__.idate_.oVncs.oVhc2.1n.oVO_ierrno__.ierrno_.oVncs.oVhc2.1n.oVO_isatty__.isatty_.oVncs.oVhc2.1n.oVO_itime__.itime_.oVncs.oVhc2.1n.oVO_kill__.kill_.oVncs.oVhc2.1n.oVO_link__.link_.oVncs.oVhc2.1n.oVO_loc__.loc_.oVncs.oVhc2.1n.oVO_lstat__.lstat_.oVncs.oVhc2.1n.oVO_ltime__.ltime_.oVncs.oVhc2.1n.oVO_perror__.perror_.oVncs.oVhc2.1n.oVO_putc__.putc_.oVncs.oVhc2.1n.oVO_qsort__.qsort_.oVncs.oVhc2.1n.oVO_rename__.rename_.oVncs.oVhc2.1n.oVO_signal__.signal__sig_trap_.sig_trap.oVncs.oVhc2.1n.oVO_sleep__.sleep_.oVncs.oVhc2.1n.oVO_stat__.stat_.oVncs.oVhc2.1n.oVO_symlnk__.symlnk_.oVncs.oVhc2.1n.oVO_system__.system__system_.system.oVncs.oVhc2.1n.oVO_tunits_mtget_topen__.topen__tclose__.tclose__tread__.tread__twrite__.twrite__trewin__.trewin__tskipf__.tskipf__tstate__.tstate_.oVncs.oVhc2.1n.oVO_time__.time_.oVncs.oVhc2.1n.oVO_ttynam__.ttynam_.oVncs.oVhc2.1n.oVO_unlink__.unlink_.oVncs.oVhc2.1n.oVO_wait__.wait_.oVncs.oVhc2.1n_libU77_idaccess_.o 597750724 0 10 100777 629 ` (@١n`j0kP y/ɡ0de(ɡ(dߨAA$Header:chmod_.c 12.0$/bin/chmodchmod &p>Pdpp p@4P8 P< P@ P h'"+29fA.JPW]dzks.oVncs.oVhc2.1n.oVO_chmod__.chmod_mcount_errno_g_char_.g_char_fork_.fork_wait_.wait_execl_.execl ctime_.o 597750760 0 10 100777 386 ` @(xn`l m0b@cdЍ 41 $Header:ctime_.c 12.0$ ( @ P$P h'oX"7+2W9AIR.oVncs.oVhc2.1n.oVO_ctime__.ctime_mcount_ctime_.ctime_b_char_.b_chardtime_.o 597750769 0 10 100777 996 ` l,@n`m b.p x.q ,pql@$Header:dtime_.c 12.0$`l"Bp` <h@2 ` <L`<@@2 `<l2 `<4#  @(P. P P PN P P P h'"*2W;BIQX.oVncs.oVhc2.1n.oVO_dutime_dstime_dtime__.dtime_mcount_times_.timesFPGLUEetime_.o 597750777 0 10 100777 924 ` T$l@n`m b p!xq!,l@$Header:etime_.c 12.0$`l"Bp` <h@2 ` <L`<@@2 `<l2 `<4# @ P&PPPFPPP h'l"w+29AH.oVncs.oVhc2.1n.oVO_etime__.etime_mcount_times_.timesFPGLUEf77lid_.o 597750784 0 10 100777 244 ` $T$Header:f77lid_.c 12.0$PP P h'O#.49D.oVncs.oVhc2.1n.oVO_f77lid__libU77_id_libI77_id_libF77_idfdate_.o 597750791 0 10 100777 455 ` L, n`l m0 0!b cdЍ8!$Header:fdate_.c 12.0$ " 4 @ P$P( P h'd"s+28?WFNV_.oVncs.oVhc2.1n.oVO_fdate__.fdate_mcount_time_.time_ctime_.ctime_b_char_.b_char fgetc_.o 597750799 0 10 100777 692 ` @@n`m0p d e/4b" ! "lpL@ r/4y b > "4p 0p "4p 0pJYW`j.oVncs.oVhc2.1n.oVO_getc__.getc_mcount_units_errno_nowreading_.nowreading__filbuf_._filbufgetcwd_.o 597750881 0 10 100777 443 ` \( ١n`j k0mbЍl bcd  ɡ< "ɡ<ߨ!A$Header:getcwd_.c 12.0$ ( B p@ P$P h'qt#-4^;CKT[.oVncs.oVhc2.1n.oVO_getcwd__.getcwd_mcount_getwd_.getwd_b_char_.b_char_errno getenv_.o 597750888 0 10 100777 450 ` (l ١n`pĔ (k д @ @ =bdP ɡ<@ ѴpĔ.dP ɡ<ߨA$Header:getenv_.c 12.0$ pBt@$P h'#-4r=EN.oVncs.oVhc2.1n.oVO_getenv__.getenv_mcount_environ_b_char_.b_chargetgid_.o 597750895 0 10 100777 305 ` ($`n`, $Header:getgid_.c 12.0$ @ P h'Y@#-4L<E.oVncs.oVhc2.1n.oVO_getgid__.getgid_mcount_getgid_.getgid getlog_.o 597750904 0 10 100777 398 ` @,xn`l m0 .cdЍ4! $Header:getlog_.c 12.0$ ( @$P(P h'X#/-4">BIQZ.oVncs.oVhc2.1n.oVO_getlog__.getlog_mcount_getlogin_.getlogin_b_char_.b_chargetpid_.o 597750910 0 10 100777 305 ` ($`n`, $Header:getpid_.c 12.0$ @ P h'@#1-4p<8E.oVncs.oVhc2.1n.oVO_getpid__.getpid_mcount_getpid_.getpid getuid_.o 597750917 0 10 100777 305 ` ($`n`, $Header:getuid_.c 12.0$ @ P h'@#Y-4<LE.oVncs.oVhc2.1n.oVO_getuid__.getuid_mcount_getuid_.getuid gmtime_.o 597750923 0 10 100777 329 ` @$`n`m00p0 $Ԑ19 ```0! $Header:gmtime_.c 12.0$ @ P h'{X# -4<E.oVncs.oVhc2.1n.oVO_gmtime__.gmtime_mcount_gmtime_.gmtime hostnm_.o 597750930 0 10 100777 455 ` \( ٱn`k l00@mbЍ bcd ɱ@x "ɱ@x߸!$Header:hostnm_.c 12.0$ . D p@ P$P h'Wt#-4eAOW`g.oVncs.oVhc2.1n.oVO_hostnm__.hostnm_mcount_gethostname_.gethostname_b_char_.b_char_errno iargc_.o 597750938 0 10 100777 273 ` , Tn` "!, $Header:iargc_.c 12.0$ p@ h'+D"+2%9.oVncs.oVhc2.1n.oVO_iargc__.iargc_mcount_xargc idate_.o 597750945 0 10 100777 402 ` L(xn`m 0!b s0 t1 ul2 4 $Header:idate_.c 12.0$  @ P$P h' d"+28??JV.oVncs.oVhc2.1n.oVO_idate__.idate_mcount_time_.time_localtime_.localtimeierrno_.o 597750952 0 10 100777 271 ` ( Tn` ", $Header:ierrno_.c 12.0$ p@ h';@#-4;.oVncs.oVhc2.1n.oVO_ierrno__.ierrno_mcount_errno isatty_.o 597750960 0 10 100777 432 ` t<ln`p d  ,b" ! "bp"  ,"` /, $Header:isatty_.c 12.0$$Header:fiodefs.h 12.0$ 6pT0@8P h''#-4c;3CL.oVncs.oVhc2.1n.oVO_isatty__.isatty_mcount_units_isatty_.isattyitime_.o 597750969 0 10 100777 394 ` D(xn`m 0!b r0 q1 p2 4 $Header:itime_.c 12.0$  @ P$P h'/\"+28??JV.oVncs.oVhc2.1n.oVO_itime__.itime_mcount_time_.time_localtime_.localtimekill_.o 597750977 0 10 100777 404 ` p$l n`p"  p31  y/, ", ,! $Header:kill_.c 12.0$ .p>Lp@ P h'!)07=D.oVncs.oVhc2.1n.oVO_kill__.kill_mcount_errno_kill_.killlink_.o 597750985 0 10 100777 553 ` (8١n`j0kP  y/ɡ<c@dmbcdЍ @ y/ɡbЍ,y b07p,p 0p,q2@ 1'12p$dЍ8ɡ(dߨ!$Header:perror_.c 12.0$$Header:fiodefs.h 12.0$%d: unknown error number: %s :pFpTpd pv p p  0@\ P`PdPhP h'h#-4;ERZeFnxcW9f4.oVncs.oVhc2.1n.oVO_perror__.perror_mcount_errno_sys_nerr_sys_errlist_f_nerr_f_errlist_sprintf_.sprintf_units_nowwriting_.nowwriting__flsbuf_._flsbuf_fprintf_.fprintfputc_.o 597751030 0 10 100777 682 ` @@n`l p=0 r/4y bЍ P "4p 0p=q#@ !%1#p=X p s q#@  p-q1p=q#@" @, p=XC "(4 4p=! $Header:putc_.c 12.0$$Header:fiodefs.h 12.0$ p*pB Pp p0@8P< P h'A(!)0c7>WJ9Wf`j.oVncs.oVhc2.1n.oVO_putc__.putc_mcount_units_errno_nowwriting_.nowwriting__flsbuf_._flsbufqsort_.o 597751040 0 10 100777 305 ` ,$`n`pDp3,A $Header:qsort_.c 12.0$ @ P h'D"+2`9&A.oVncs.oVhc2.1n.oVO_qsort__.qsort_mcount_qsort_.qsort rename_.o 597751048 0 10 100777 573 ` (8ٱn`k l0mP@  @ @  y/ɱ8  y/ɱ8c@ddbcЍbc "ɱ8 ɱ8߸AB$Header:rename_.c 12.0$ 4pXpr p@ P$ P h'#+-4;fC.LmT5].oVncs.oVhc2.1n.oVO_rename__.rename_mcount_errno_g_char_.g_char_rename_.rename signal_.o 597751056 0 10 100777 605 ` ,DHn`p"e RepŔ y 4p 05cЍ c-b441 n`0!`"23bp0 $Header:signal_.c 12.0$ `2pP`X d n``@ P$@ h'1##-4;EMVza.oVncs.oVhc2.1n.oVO_signal__.signal_mcount_errno_sig_trap_signal_.signal_.sig_trap sleep_.o 597751064 0 10 100777 305 ` ,$`n`p", $Header:sleep_.c 12.0$ @ P h'D"+29fA.oVncs.oVhc2.1n.oVO_sleep__.sleep_mcount_sleep_.sleep stat_.o 597751073 0 10 100777 545 ` ((n`m0 y/@t@c@dcb -P0 q0 0 U0  0 0 X0 u0 v0 x0 z0 |0 @t "@t1A$Header:stat_.c 12.0$ p6B p@ P$ P h'?!)07f?.HN"U.oVncs.oVhc2.1n.oVO_stat__.stat_mcount_errno_g_char_.g_char_stat_.stat symlnk_.o 597751082 0 10 100777 563 ` (8١n`j0kP  y/ɡ<c@dmbcdЍ @ y/ɡ\ :F0@8P< P@@D@` PdPhPlPpPtPxP h'#%-4;CLfT.]ecn`v(zF.oVncs.oVhc2.1n.oVO_system__.system_mcount_errno_flush__.flush__g_char_.g_char_system_.system_getenv_.getenv_rindex_.rindex_fork_.fork_execl_.execl__exit_._exit_signal_.signal_wait_.wait tapeio.o 597751110 0 10 100777 3358 ` |١n`j0k@lPp  e ɡR 0@<P@ P h'U#-4c;[DNV_.oVncs.oVhc2.1n.oVO_ttynam__.ttynam_mcount_units_ttyname_.ttyname_b_char_.b_char unlink_.o 597751142 0 10 100777 469 ` l((n` y/0mdЍbЍ "0 0!A $Header:unlink_.c 12.0$ p0: Hp@ P$ P h' #-4;fC.LuT].oVncs.oVhc2.1n.oVO_unlink__.unlink_mcount_errno_g_char_.g_char_unlink_.unlink wait_.o 597751150 0 10 100777 356 ` H$ln`m b  ""4p0 4 $Header:wait_.c 12.0$ "p@ P h'`!k)06=D.oVncs.oVhc2.1n.oVO_wait__.wait_mcount_wait_.wait_errnoVersion 597751168 0 10 100666 1712 ` $,@Th|,@Pdx,@Tdt  0DXl|@(#)libU77.a Dec 10 01:59:24 1988@(#)access_.c 1.3@(#)alarm_.c 1.1@(#)chdir_.c 1.3@(#)chmod_.c 1.2@(#)ctime_.c 1.1@(#)dtime_.c 1.1@(#)etime_.c 1.1@(#)f77lid_.c 1.1@(#)fdate_.c 1.1@(#)fgetc_.c 1.4@(#)fork_.c 1.1@(#)fputc_.c 1.4@(#)fseek_.c 1.2@(#)fstat_.c 1.3@(#)ftell_.c 1.2@(#)gerror_.c 1.1@(#)getarg_.c 1.1@(#)getc_.c 1.3@(#)getcwd_.c 1.5@(#)getenv_.c 1.1@(#)getgid_.c 1.1@(#)getlog_.c 1.1@(#)getpid_.c 1.1@(#)getuid_.c 1.1@(#)gmtime_.c 1.1@(#)hostnm_.c 1.1@(#)iargc_.c 1.1@(#)idate_.c 1.2@(#)ierrno_.c 1.1@(#)isatty_.c 1.1@(#)itime_.c 1.2@(#)kill_.c 1.1@(#)link_.c 1.2@(#)loc_.c 1.1@(#)lstat_.c 1.2@(#)ltime_.c 1.1@(#)perror_.c 1.2@(#)putc_.c 1.3@(#)qsort_.c 1.1@(#)rename_.c 1.2@(#)signal_.c 1.4@(#)sleep_.c 1.1@(#)stat_.c 1.3@(#)symlnk_.c 1.1@(#)system_.c 1.5@(#)tapeio.c 1.2@(#)time_.c 1.1@(#)ttynam_.c 1.1@(#)unlink_.c 1.2@(#)wait_.c 1.1@@@ @@@@@ @$@(@,@0@4@8@<@@@D@H@L@P@T@X@\@`@d@h@l@p@t@x@|@@@@@@@@@@@@@@@@@@@@  .oVncs.oVhc2.1n_libU77_id#]lo0 ### ! __.SYMDEF 597788142 0 10 100666 512 ` DDDD D+D6DBDJDSZdiov&}&&&&&& .oVncs.oVhc2.1n.oVO_allprint_.allprint_printable_.printable_sprint_.sprint.oVncs.oVhc2.1n.oVO_main_.main.oVncs.oVhc2.1n.oVO_yyreject_.yyreject_yyracc_.yyracc.oVncs.oVhc2.1n.oVO_yyless_.yyless.oVncs.oVhc2.1n.oVO_yywrap_.yywrapallprint.o 597751188 0 10 100666 1027 ` Th@n؈ "> 0 ">0 ">0 ">0 ">dЍ0@Dp4p#! 0#q#ґ!1#0X "s q# p$q10p4q#@" 0bЍ 0 bЍ)$  nm @ bM@ 00  b\n\t\b\b\%-3oP$Header:allprint.c 12.0$p 4p>Rp\ppzpp  @@ P$ P(@,@0@4@ !+6=FPYcnzP.oVncs.oVhc2.1n.oVO_rcsid_allprint_.allprint_yyout_fprintf_.fprintf__flsbuf_._flsbuf_printable_.printable_sprint_.sprint main.o 597751192 0 10 100666 358 ` ,(x nԍ , <$Header:main.c 12.0$  @@P P ,!0'.5=CJ.oVncs.oVhc2.1n.oVO_rcsid_main_.main_yylex_.yylex_exit_.exitreject.o 597751196 0 10 100666 1400 ` 8 @فnؐșp p-ؠȪpc#0p 0 p- ذȻpKp$  D0KfɁDؠȪ 0)г -؀Ȉpe % p0e p9p# rB0K@ p$  D0K1ɁD<409@ bɁD/ ɁD߈فni ؠȪp:?)" Bp#r"c! Ap*؀Ȉ,$0*p 0 b@"p*p"r"c! p*, p bbɁD؀Ȉ؀Ȉ߈( 0$Header:reject.c 12.0$ pp$p. p4 R px ppp p p>pHpPpbrpzp ppp pp p@@ P @PP@P ! +6=EMU^ho w0.oVncs.oVhc2.1n.oVO_rcsid_yyreject_.yyreject_yylsp_yyolsp_yyleng_yytext_yyinput_.yyinput_yyfnd_yyracc_.yyracc_yylstate_yyunput_.yyunput_yyprevious_yyoutput_.yyoutput_yyextra_yyback_.yybackyyless.o 597751199 0 10 100666 465 ` p$ ١np j  kk  @* ``` @ 0ɡ<ߨ|$Header:yyless.c 12.0$ pp6 V p@@P p!t)2:BKUa.oVncs.oVhc2.1n.oVO_rcsid_yyless_.yyless_yyleng_yytext_yyunput_.yyunput_yyprevious yywrap.o 597751202 0 10 100666 210 `  H鏤!$Header:yywrap.c 12.0$@@ ! )2.oVncs.oVhc2.1n.oVO_rcsid_yywrap_.yywrap#]lnl H#4#7#7  0 @ P ` p 2X`! __.SYMDEF 597788220 0 10 100666 3118 ` x r r r r r%n,n6n;nBnJQ[`govvvvvv===? ? ? @V@V@V@V@VCCCCC CCNH NH'NH-NH4NH:PAPKPPPWP_PePl_s_}___gggggssstttttttt '16>GNTYJ`JjJoJwJ66666666rrr rrrr!r&~-~7~<~C~G~L~P~U \ f k t | LLLLL&&&&& "f"f"f"#)#3#8#@#I(P(V([)b)l)q)v)|VVVVV___`````n|n|n|oooo oyy!y'z.z8z=zCzJzRz[zczlzrzyzz.oVncs.oVhc2.1n.oVO_acosh_.acosh.oVncs.oVhc2.1n.oVO_asinh_.asinh.oVncs.oVhc2.1n.oVO__atan_._atan.oVncs.oVhc2.1n.oVO__atan2_._atan2.oVncs_.atan2_atan2.oVncs_.atan_atan.oVncs.oVhc2.1n.oVO_atanh_.atanh.oVncs.oVhc2.1n.oVO__asin_._asin__acos_._acos.oVncs_.acos_acos_.asin_asin.oVncs.oVhc2.1n.oVO_hypot_.hypot_cabs_.cabs.oVncs.oVhc2.1n.oVO_cbrt_.cbrt.oVncs.oVhc2.1n.oVO__cosh_._cosh.oVncs_.cosh_cosh.oVncs.oVhc2.1n.oVO_errno_erf_.erf_erfc_.erfc.oVncs.oVhc2.1n.oVO__exp_._exp.oVncs.oVhc2.1n.oVO_exp__E_.exp__E.oVncs_.exp_exp.oVncs.oVhc2.1n.oVO__expm1_._expm1.oVncs_.expm1_expm1.oVncs.oVhc2.1n.oVO_floor_.floor_ceil_.ceil.oVncs.oVhc2.1n.oVO_errno_j0_.j0_y0_.y0.oVncs.oVhc2.1n.oVO_errno_j1_.j1_y1_.y1.oVncs.oVhc2.1n.oVO_errno_jn_.jn_yn_.yn.oVncs.oVhc2.1n.oVO_signgam_lgamma_.lgamma.oVncs.oVhc2.1n.oVO__log_._log.oVncs.oVhc2.1n.oVO__log10_._log10.oVncs_.log10_log10.oVncs.oVhc2.1n.oVO__log1p_._log1p.oVncs_.log1p_log1p.oVncs.oVhc2.1n.oVO_log__L_.log__L.oVncs_.log_log.oVncs.oVhc2.1n.oVO_pow_.pow.oVncs.oVhc2.1n.oVO__sinh_._sinh.oVncs_.sinh_sinh.oVncs.oVhc2.1n.oVO__sqrt_._sqrt.oVncs_.sqrt_sqrt.oVncs.oVhc2.1n.oVO__tanh_._tanh.oVncs_.tanh_tanh.oVncs.oVhc2.1n.oVO__tan_._tan_cos__C_.cos__C_sin__S_.sin__S__sin_._sin__cos_._cos.oVncs_.cos_cos_.sin_sin_.tan_tanacosh.o 597788171 0 10 100777 1727 ` (ٱn@ ɱHLɱHL  DlɱHߺ!8 %W% (Berkeley) %G%?.B=95ys.0(k m0t>s.X(0T>.deЍ(ɱHt^sN(,, >.deЍ(ɱH(, ?, T>.deЍ(|ɱHTr>q.>.deЍ(ɱH, >.deЍ(4ɱHt^sN((t^sN(,080hDd48d4 < < x p  , @ P d t y  4 deЍ( ɱH d tQ P,@P`8t t%PJH tP ,plhd 4xdeЍ(dɱHߺA> 8%W% (Berkeley) %G%?ݬgaO. &֕CmgN`H>`0T#`<TE`0 (#`\>`0 (#`\>` (E` 0E`0 T#`0 T3|`0 $R`< l3`< lR#?` \#` `< $`\>`< `##3@`\>`\>`\>`0 T#` T #` 0#`0T #`0#@N`< T3`< ` <`<(#`4T#`< #@`< (#?`< T#@`< 4 `< T3`< T3`< `< `< `< `< `< `< ` < `< 3`< 3|`< (3`< (#`\>`< N`< @`< T3`< T3`< `< `< ` < `< T3`< `<  ` < `< T3`< 3`< ` < `< `< ( #` D 3#p` T 3h` T #` T 3`` T 3X` T 3P` T 3H` T 3@` T 38` T 30` T 3(` T 3 `< ( #`< DL##`< (\#`< (^#` <`< `#3#`\>$Header:atan2.c 12.0$"Jv 0N `  .< P 4`@@PP P P PP*P~PPPVP~PPP2PP@PP @jPP2PFPjPP@&PPP:PPPPfPP@ BP VP jP P P jP P P P (@ nP |@ P P P P P P 2P FP ZP h@ P @ bP t@ P PPP.P<@P@PPP PP,@rPPPP@P@~PPPPP@P(@nPP@P$@jPx@P@P @fPt@P@P@bPp@PP"PJPrPP@P h'x"+2:D6O[W#`fmt|.oVncs.oVhc2.1n.oVO__atan2_._atan2_isnan_.isnan_copysign_.copysign_finite_.finite_logb_.logb_scalb_.scalbFPGLUE atan2_rtfl.o 597788171 0 10 100777 253 ` \<$Header:atan2_rtfl.s 12.0$`@#E4@"P4P J !).oVncs_.atan2_atan2FPGLUE__atan2 atan_rtfl.o 597788171 0 10 100777 250 ` \<$Header:atan_rtfl.s 12.0$`@#4@"P0P Z &.oVncs_.atan_atanFPGLUE__atanatanh.o 597788170 0 10 100777 827 ` X`Pٱn,$hɱHߺ!0 %W% (Berkeley) %G%`$0` T#`<T#`<(#`<(#` <D##@`,0$Header:atanh.c 12.0$*@@P"PFPPPP>PP h'p!)J08?.oVncs.oVhc2.1n.oVO_atanh_.atanh_log1p_.log1pFPGLUE atrig.o 597788171 0 10 100777 2622 ` `hٱn, ɱH^N Ax , d e0ɱHT| d e0ɱH!ɱHߺ! ٱnД LtɱHL^Nč\ /  4D^Nč l@PɱH!ɱHߺ! <%W% (Berkeley) %G%?` ` T#`0(#` `X3 `\#` ##?`<`<(#`<(#`<(@#` `<(#`<` <(#`  `X3 ` X@#`<l@#`<@`<` <(#`<(#`<D##` $Header:atrig.c 12.0$Fp p"R    p@ @$P(P, P0 P6PNPPPP@>PP:PNPvPPPPPP:PT@ZPh@P PvPPPPP.P h'! )08B6MS8ZaJipwyH~ .oVncs.oVhc2.1n.oVO__asin_._asin_isnan_.isnan_copysign_.copysign_sqrt_.sqrt_atan2_.atan2_errnoFPGLUE__acos_._acosatrig_rtfl.o 597788171 0 10 100777 398 ` `0耑$Header:atrig_rtfl.s 12.0$`@#4`@#4@"P0P\@bPpP i7$y&-fd3:.oVncs_.acos_acosFPGLUE__acos_.asin_asin__asincabs.o 597788172 0 10 100777 3940 `  xnԍ ,A ٱn4p  t^sN@$pt^sN$h r>q.( ɱH @LɱH@((w @LɱH8L,#HX,@Td  HɱH0 t^sN$ɱHɱH@0 t^sN@$,ɱH @LɱH0 ɱHt^sN$xɱHߺA< %W% (Berkeley) %G%@PO3?<e&?f;"?<2r]C`<<`T#` TE` (#`0(#`0T#`0<`<`<`<` l#`L<`<l#`L<`,P #`,P#`<`<<` <`<`<D#3`,T#` <`<T#@`<`<`<(#`<D3#` <`<`<T3`<T3` <`<(#`L<`L<`L<`L<`L<$Header:cabs.c 12.0$>Rj Jx   >f @@@8@XP\ P` Pd PhPnPPPRPzPPP2PBPRPbPPPPP"PrPPPPP@.PPPPPP6PH@zPPP@P@FPZPPPPfPP h'!b)%/W"6[>#GQ6\bio8v}.oVncs.oVhc2.1n.oVO_hypot_.hypot_cabs_.cabs_finite_.finite_copysign_.copysign_logb_.logb_sqrt_.sqrt_isnan_.isnanFPGLUEcbrt.o 597788172 0 10 100777 2002 ` lT١nt!|1AQ!|1(|Q|jpEm@д 1!|ɡP1!| ɡPմK0EmCP0 Dp-3 0 3b@m0 ,\bʤ0p 0 p 0 q1p! ɡPߪA0#%W% (Berkeley) %G%*x)x?__%24??mn?mm`$0`<=T#`<=(p3`,0`H#`,0`<D33|`T3`p` <(p3|`p`<Tp3`<(03` <(P3`<p` <(p3`<Tp3`<(3` )(p3|`)``) `)P` )p`)(3`,0$Header:cbrt.c 12.0$@H@NPrPPPPbPPP&P:PbPvP@P@P@P*P<@RP`@PPP PP.PBPjP h'J |'/6.oVncs.oVhc2.1n.oVO_cbrt_.cbrtuldiv$$FPGLUEcosh.o 597788172 0 10 100777 3015 ` ``8pٱn0H ɱHt^sN 8 I0D  ɱH@P$(PdxɱH(XɱH `  ,T(N,ɱH(ɱHߺ! %W% (Berkeley) %G%@.B9=;9?@.B9??<2r]C` ` T#`0(#` `X#`#@6` #?-V` 3`<D#3` ` (#` `` ` (#@`  ` D#3` `  D3#`<T#`<D#3` `<T3`<<@`<T#?ffffff`<<`<(3x`<D#3` `,D#3` $Header:cosh.c 12.0$B  : @4@PPTPX P\ P` PfP~PPPPnPPzP@P@BP^PPPPPP@.PJP\@PP@&PBPP@PP&PbPt@P@PP@.P h'!)08B6MU^cipx.oVncs.oVhc2.1n.oVO__cosh_._cosh_isnan_.isnan_copysign_.copysign_exp__E_.exp__E_exp_.exp_scalb_.scalbFPGLUE cosh_rtfl.o 597788172 0 10 100777 250 ` \<$Header:cosh_rtfl.s 12.0$` @#4@"P0P t &.oVncs_.cosh_coshFPGLUE__cosherf.o 597788170 0 10 100777 3435 `  hPٱn,-V`Pd$8Q` HɱHt `ɱH,ɱHߺ!0 ٱn\ɱH @hɱHX`Pd$QLɱHߺ!0 ? PBm@U=@I @/@C_@,@E<{ȊLW?~]@U=@J@뙤(!@X@CpuR?@V6@=5@ 4@ \C9@wPXO @SE97ȇ&@#Z}]? Ӊ[vD@V6@^H@Ɋ@g@MG@\k@AU*@a$@1&YEp?`$0` T#` X#`<D##` t##?` D##` ``,3``(38` \3 `<T#`<` ,(#`,0` t##@$`<x## ?`,0`<D##?`<\# `,0` T#` X#`<`###@`,0`<(#`,0` `(#`,3`,#`(3`` T#`<(#`,(#$Header:erf.c 12.0$pp~ @ @@P:PPP*PPPPP2PFPnP@PP.PVPPPnPPP:Pd@h PnPPPzPPPP P2P^PPP P .P h'!&,q29@EK.oVncs.oVhc2.1n.oVO_errno_erf_.erf_erfc_.erfcFPGLUE_exp_.exp exp.o 597788172 0 10 100777 2519 ` `@(ٱn< ɱH nh F ?0<d 4 ddЍɱH  ?0@xɱH 0ɱH ?0@,ɱHߺ!0 %W% (Berkeley) %G%?.B=95y p'.6@6KS\ck[s#|.oVncs.oVhc2.1n.oVO__exp_._exp_isnan_.isnan_copysign_.copysign_exp__E_.exp__E_scalb_.scalb_finite_.finiteFPGLUE exp__E.o 597788172 0 10 100777 2595 ` `Pٱnh(t^sN$0Td$Lt<Px tɱ`r>q.$8ɱ`ߺA?&%W% (Berkeley) %G%?p#.oVncs_.exp_expFPGLUE__exp expm1.o 597788172 0 10 100777 4095 `  pٱn,\ ɱH ?0Dl(Pd @hɱH;( PɱH \ɱHu Mr>q.$< 2 d r>q.M$< HpdЍ$ɱH(  ɱH ɱH( r>q.@$ TɱHߺ!8 H%W% (Berkeley) %G%?.B=95y <ll 8LɱH8$`0b8`t1ɱHߺ!< ٱn@@D0 !0 "0 ɱH4;{<\\X<ɱHl8`0b1 `ɱHߺ!< ٱn4xV`Pd(0PQ@D<x`Ъe08LtɱHߺ!8 (?_0mȃ?!TD-D:X}`C$hJ5~^UvCb'"ci&6-BYyPYݿ$@:w|D:XC m"CZ9żYB٤hZBR-g1AW,4A1 4@LA.|?ATE^AgA` .A>ÇHuA9@j:EATE^AgJA`z!aA>j3GA Q;@of\6?!<KrF_،|{7cRlHkh}=A!<KrA$X A FVh`A X@άr*F@yW2}?RD co4T"C~e\mnBt! yE˔A45AD{3K[pD43! C:WeCU@?}B\BNkH AES'A.HW@ ϣ;? x`<<` T#`T#`<`<` #@ `<(#` (3` T3 ` (#`,(#`,T3 `,(#`,` ,D#3`,(#`L<`<`<`,` (3` `,(3H` <(#`L<`L<`,`<`` (3`` `,(3` <`<T3`<T#`<(#`<(#`L<J`08` D##`  (#@P` T#````(30`(3h` (3`,3`(3` 4D##@ ` 4x`4(3`<8$Header:j0.c 12.0$H`Zt pd`v  `@@@P P$ P* Pf P P PJ PZ P P P@. P P P P& PN Pb Pt@ P P P* P: PN Pv P P P P$@(@,P2 P~ P P P P P P P2 P@@ P P  P * P t@ z P P P  P j P z P P P P P  P B P j P P P P h'!%*/5:@F8MT (X]bh.oVncs.oVhc2.1n.oVO_errno_j0_.j0_cos_.cos_sin_.sin_sqrt_.sqrtFPGLUE_y0_.y0_log_.logj1.o 597788170 0 10 100777 6352 ` DXٱnp(dtK% dTxH $LɱH  (0` cDl!ɱHߺ!? ٱn H@D0| !0 "0ɱH$>T8`4\ɱH)` c!0X08L\ɱHߺ!< ٱn4xV`Pd(hPQ@DTx`Ъeh8LtɱHߺ!8 @?_0mȃ?!TD-D?#h= 홙CǼ_ aBڭzYs@]An:@ɧQa @>JDO#h=C9u"Ck 8YBnxqB^J0A7*--A6aQ@f>?PtFZb)Y0O67?IYb`.wqPtFZbzXY޳w7/2 u?@8:O@ɒ M@(-b @6@pw@A.A%ѣA;B ЀA5īk&CAnHLF@GZ@@{?ĵ\HD~$/waPnC0ZÅcb(bC 3 i C‚ٓA@# D|PG'gDrjaXhCd+pJCx k"B{Bb Aљ=J$A7ڒAR@1q~k?`\?`<T#`<`T#`<<`<`<#@ `<(#` D3#P@` ` T3 ` (#`,T#`,D3 `,D#`,` ,D#3H`,(#`,<`<`t?`<`<`` (3` `(38`<` <(#`t? h`<<` T#`<`L<` #@ ` ` T3 ` (#`,(#`,T3 `,(#`,` ,D#3H`,(#`L<`<`<` (3` `(3X`<(#`<T#`,(#` ,(#?`,`,(3H`` ,`,(#`L<`08` D##`  (#@P` T#````(3X`(3` (3`,3`(3` 4D##@ ` 4x`4(3`<8$Header:j1.c 12.0$T`f :p`  >`@$@(@,P0P4 P: P P P PN P P P PF PX@ P P P Pn P P P P@J Pr P P P2 PF PV Pj P P P P P P|@@P P P  P V P P & P : P P P P 2 P Z P n P @ P P & P : P J P r P P P P * P R P z P P @ P P P PL@R P P P PB PR Pb Pv P P P P PB P P P P h'!h%*/5:@F8MT X ]bh.oVncs.oVhc2.1n.oVO_errno_j1_.j1_cos_.cos_sin_.sin_sqrt_.sqrtFPGLUE_y1_.y1_log_.logjn.o 597788170 0 10 100777 4434 `  Pٱn m TɱHɱH 0< ɱHd--H;\!-HXh|!- ɱHDT!- hD|-(8HX! hɱHߺ1> ٱn l < ! "0ɱHє o`xPɱHxɱHxxALpdAL ɱHߺ18 `H>`<T4`<`<(#`\>` l#`\>` ` ` <` `<T#`T#@`<T#`T#@`B`4` ````<(#`\>`4B`b` b`<V` <v`<V`<TR#?`4` ```F`,(#` ,(#`\>`08`<T4`<#`<8`<8`<P# `<8`X#@`X#`8` `4T#`4(#``<8$Header:jn.c 12.0$.P  p&Hl@@P P PZ P P P PB P P Pj P P P Pb P P P PN P^ Pn P P P P PJ PZ Pn P P P P P. P> PN P^ Pn P P P@ P P& PV P P. Pj P P P 2 P P P  P * P ~ P P P h'!%*.37<C GLPUY^.oVncs.oVhc2.1n.oVO_errno_jn_.jn_j0_.j0_j1_.j1FPGLUE_yn_.yn_y0_.y0_y1_.y1lgamma.o 597788173 0 10 100777 5124 `  08n<l k, , ,! ٱn45`0b,1T|@ɱHߺ!8 ٱn H,X .DD'DɱHߺ!< ٱn(| @PxɱH(|@ɱH `7p`0b1ɱHߺ!0 @(#)lgamma.c 4.4 (Berkeley) 9/11/85?gd@ !TD-?UUUUUEfl?JrdCO{?KhsZ!G6v$e'.Z >b{uI|I I%\6v$HJW@j'Y`fm-{0tTV@gE7? X` X#` @#` #@ j`08`<T#`<` <(#?`<T#` `,(3`<(#?`<(#`,(#`,`,(3` ,`,(#`<8`<<`,T#`,(#`<T#`<`<#?`<T#?`<T#@` <(#`,(#`,`,4` ` #``,(#`,D#3` ,D#3`,D##`L<`$0`<T#`<T#@`< T%W% (Berkeley) %G%?.B=95y`T#`$(#`\>`<T3`<<|`,P #`,P #`4T#`<3`<T3`<`<T3`<(#@` <`<`<`<` `<(3`<(#`,(#`,`,`,`,`,(3`,(#`\>`<$~` <D#3`\>` <(#`\>`<#`\>$Header:log.c 12.0$>` v @p@0@LPPPT PX P\ PbPPP&PP@PPbPPP@P@PP@BPjP~PPPP@.PVP~PPPPP@PPjPP@P.PVPP6P h'? q'.6[>#GMT[ckt{.oVncs.oVhc2.1n.oVO__log_._log_isnan_.isnan_finite_.finite_logb_.logb_scalb_.scalb_log__L_.log__L_errnoFPGLUElog10.o 597788173 0 10 100777 561 ` <`@ٱn tɱHߺ! %W% (Berkeley) %G%?{&` ` T3T`,(#` $Header:log10.c 12.0$@ @$P*PBPP@PP h'\"+06=.oVncs.oVhc2.1n.oVO__log10_._log10_log_.logFPGLUE log10_rtfl.o 597788173 0 10 100777 253 ` \<$Header:log10_rtfl.s 12.0$`@#4@"P0P n !).oVncs_.log10_log10FPGLUE__log10 log1p.o 597788173 0 10 100777 4187 `  l@ٱnD, ɱH0 dv^uN4 ɱHh8d<$v>u.d<xd,@Td(PdTx@T$LɱH! ɱHlɱH DlɱH ɱHdrߺ!> l%W% (Berkeley) %G%?.B=95y` T#`0(#`\>`<T3T`<<^` t#3l`<D#3\`,P #`,(#`4T#`4T#`4`43@`<T3d`<`<`<T3T`<`<`,`<(#@` <`<`<`<` `<(38`<`<`<(#`,(#`,`,`,`,(30`,(#`\>`<$~` <D#3L`\>`<T3L` <(#`\>`<#`\>$Header:log1p.c 12.0$>f Dp@0@\P`Pd Ph Pl PpPvPPP:PP@P&P4@P@P.PVPPPP @P@PP P@^PrPPPPPPPZPl@PPPPP PP.P@@VP~PPP@BPP@P P vP P h'0H"+2:[B#KU6`fmt|.oVncs.oVhc2.1n.oVO__log1p_._log1p_isnan_.isnan_finite_.finite_copysign_.copysign_logb_.logb_scalb_.scalb_log__L_.log__L_errnoFPGLUE log1p_rtfl.o 597788173 0 10 100777 253 ` \<$Header:log1p_rtfl.s 12.0$`@#4@"P0P J !0).oVncs_.log1p_log1pFPGLUE__log1p log__L.o 597788173 0 10 100777 1238 ` hDHnLT\,! %W% (Berkeley) %G%?UUUUU?ٙ$?I$?q!P?Fc̔4/?Ú[?9Q"` H3#` X3` X#` X3` X3` X3` X3` X3`<(#$Header:log__L.c 12.0$@P@VPh@P@PNP\@P@P @VPd@P@P h'"+2.oVncs.oVhc2.1n.oVO_log__L_.log__LFPGLUElog_rtfl.o 597788173 0 10 100777 247 ` \<$Header:log_rtfl.s 12.0$`@#4@"P0P  ?#.oVncs_.log_logFPGLUE__log pow.o 597788174 0 10 100777 11238 ` 8 ٱnH ?0`ɱH  <ɱHx xɱHx L@?P  tɱH>.0xɱH>.00ɱHl ɱH< ɱH ?0  4\ɱH^Nx4_ ɱH@?P 4B\ɱH>.0 H X ɱH! ɱHߺA8 ٱndpl ɱd, ̔ DlɱdDLD0  tB0Y|< (<Px H  H X>. l  bc@dB P h .^4!5Q )d p    $ < | `p$8HXl|(dЍlɱdq1p!ɱd ?0T| H ?0@x|ɱd ?0@ɱd|ߺA?'$8%W% (Berkeley) %G%?.B=95y dr @`@dPhPl Pp@t PzPPPVPd@PPRPvPPPP>PP@PP:PPPjPPP@:PbPP@ P2PnPPPP@ZPPP P >P P P P P bP @ P P P P P P bP P P 2P VP P 6P D@ P P P~PPPbPP@P(@nPPP@PFPPPPPPP>PNP^PPP:PbPP:PP@PP P2PfPPPPFPPP@P@bPPPPPPP*P:PJPbPzPPPPP"P6PPPPPPPP PP*P:PJPrPP P~PPP,@BPP@PP h' %,4[<#EO6Zq`gnu{:.oVncs.oVhc2.1n.oVO_pow_.pow_isnan_.isnan_finite_.finite_copysign_.copysign_drem_.drem_errnoFPGLUE_logb_.logb_scalb_.scalb_log__L_.log__Llmul$$_exp__E_.exp__Esinh.o 597788174 0 10 100777 2374 ` 4Hٱn$H ɱHr>q.r^qNl \`ɱH &0tN `ɱHɱHߺ!0 %W% (Berkeley) %G%@.B9=;9?@.B9??`$0` T#`0(#`,0` (E`0T#`X#`X3\`@@` D3#l`  (#`<T#`<D#3t`(E`,0` T#?ffffff`<(3L`<D#3T`,D#3l`$(#`,(#`,0$Header:sinh.c 12.0$BZv   @4@HPLPP PT PZ P~ P P P& PN P P P@R P P@ P PR Pd@ P P P> PP@f Px@ P@ P P> P h'h!x)08B6MT\ckr.oVncs.oVhc2.1n.oVO__sinh_._sinh_isnan_.isnan_copysign_.copysign_expm1_.expm1_scalb_.scalbFPGLUEsinh_rtfl.o 597788174 0 10 100777 250 ` \<$Header:sinh_rtfl.s 12.0$`@#4@"P0P  &.oVncs_.sinh_sinhFPGLUE__sinhsqrt.o 597788174 0 10 100777 3456 ` 4x8anX!1AQ!14q ȑ1! C1! a\4a\pimm a\ 00 0 ¤ m `1!@6!1ذP_` p) 0 p)` 0)Ⱘ!ci09`0b0 0p90 b00b pؠ 08p 0,# 0 p1 p c r1q! J,1!21 0 r1q!1!21^lNhr1q!1!21^lNht1s!3!41,p 0 p 0 bЍt1s!Pa\1!jA * %W% (Berkeley) %G%B0w;vhMw r#4$F\(s14mV(LF kVTM@s/!* K` `?T#`?(3 `(3`9@#` `9X#`?D##` ?(#` ` `T3 ` >(`3`>( 3`>(3 ``(3`T3` `T 3 `` (3`D33 ` `333 `\#3 `T3 `(E`?T3`?T#?` $Header:sqrt.c 12.0$P    6J l @@PP P P PPPP:PbPPPP>PPPPP6P^PPPPP>PRPPPP"PPP@2PZPPP h'H!)08D|Q ]jun.oVncs.oVhc2.1n.oVO__sqrt_._sqrt_isnan_.isnan_swapfptrap_.swapfptrap_swapfpflag_.swapfpflag_swapround_.swapround_scalb_.scalb_nextdouble_.nextdoubleFPGLUEsqrt_rtfl.o 597788174 0 10 100777 250 ` \<$Header:sqrt_rtfl.s 12.0$`@#4@"P0P 8 H&.oVncs_.sqrt_sqrtFPGLUE__sqrttanh.o 597788174 0 10 100777 2500 ` @@ٱn$H ɱHr>q.r^qNlIL#LtɱH0XɱH @ɱHlɱHߺ!0 %W% (Berkeley) %G%?@`$0` T#`0(#`,0` (E`0T#`X#`#@6`<3\`<(#` T3d`<(P#` <`<D#3\` (E`,0`<`<(#`,T#`,(3d` ,(#`<D##8AB`,0`<(#`,0$Header:tanh.c 12.0$BZ~   @@,P0P4 P8 P> Pb P P P P2 P P Pf Pt@ P P @f P P P@ P P6 PJ Pr P P@ P PZ P P P h'X!`)08B6MT\[d#mt.oVncs.oVhc2.1n.oVO__tanh_._tanh_isnan_.isnan_copysign_.copysign_expm1_.expm1_finite_.finiteFPGLUEtanh_rtfl.o 597788174 0 10 100777 250 ` \<$Header:tanh_rtfl.s 12.0$` @#4@"P0P  &.oVncs_.tanh_tanhFPGLUE__tanhtrig.o 597788174 0 10 100777 8397 ` hٱnH  ɱH^NH^N؍ (  $x ɱH(<d<  <P`tɱH8ɱHߺ!8 ٱn  (PɱH^XNT|^hNdP  XE|,ɱHXD , HɱHtɱHߺ!0 ٱn?x  ɱH^@N@+)i+COe;`08`T#`<(#`<8`0(#`t#3`<`#3#` (E`0T#`<t#3,`<8`<`<(#` T#` T3$` ` #?з m`M` ` ` ` ` (3`<(`#`<p`<p` <`<(#`<8`<(p#`<x` <(#`<8b`$0`<(#`,0`0(#`X#`0T#`03`<3`<(3` (E`<3,`,0`<(3`<`<T#`<`<(#`<(3`,0`<(#`,(#`,(#`,0` ` `0T#`03`<3`<(3`<3,` `<(3` `<` T#?` #?з m`M` `<`<(#`<(3` UUUUU ?a*tcE> پZ=ag+` H3# ` X3` X#` X3` X3` X3` X3`<(#?UUUUU>VlA>q뾒~O>!;`܌Y.`` H##` H@3#` X@3` X@#` X@3` X@3` X@3`<T@3`<(#$Header:trig.c 12.0$F\ z x  t    @x@|PP P@@PPP>PzPP@P(@vPPP@fPPPP2P@@PPP.P>PRPfPx@PPPPPPRPzPPP@PP>PjPPP>PL@P@ FP X@ nP P @ P FP X@ nP ~P P P P @ 6P bP P P P @ P "P >P P @ P $@ P @ P @FPbPt@PPP PPPPP@PP@VPh@P@PNP\@P@P @VPd@P@ PRPd@P@PJPX@P@P@RP`@P h'J< |'[/#8q>EO6Zb`ks_|V b'Y.oVncs.oVhc2.1n.oVO__tan_._tan_finite_.finite_drem_.drem_copysign_.copysign_cos__C_.cos__C_sin__S_.sin__SFPGLUE__sin_._sin__cos_._cos trig_rtfl.o 597788175 0 10 100777 537 `  H耑耑$Header:trig_rtfl.s 12.0$` @#4`@#4`@#4@"P0P\@bPpP@P P ('#)h.V4:?JE.oVncs_.cos_cosFPGLUE__cos_.sin_sin__sin_.tan_tan__tan #]'ln[ #?#C#C ( 8 H X h x +`! __.SYMDEF 597788232 0 10 100666 3118 ` x r r r r r%,6;BJBQB[B`BgBovA$A$A$B^B^B^CCCCCGjGjGjGjGj GjGjRh Rh'Rh-Rh4Rh:T2AT2KT2PT2WT2_T2eT2ld~sd~}d~d~d~mTmTmTmTmTzzz{<{<{<{<{<{<{<{< d'd1d6d>dGfNfTfY`jow222 2222!2&-7<CGLPU\fkt|     ~~~~~bbb      111"3)33383@3I8P8V8[:"b:"l:"q:"v:"|gggggqqqrrrrrJJJ !'.8=CJR[clry```````.oVncs.oVhc2.1n.oVO_acosh_.acosh.oVncs.oVhc2.1n.oVO_asinh_.asinh.oVncs.oVhc2.1n.oVO__atan_._atan.oVncs.oVhc2.1n.oVO__atan2_._atan2.oVncs_.atan2_atan2.oVncs_.atan_atan.oVncs.oVhc2.1n.oVO_atanh_.atanh.oVncs.oVhc2.1n.oVO__asin_._asin__acos_._acos.oVncs_.acos_acos_.asin_asin.oVncs.oVhc2.1n.oVO_hypot_.hypot_cabs_.cabs.oVncs.oVhc2.1n.oVO_cbrt_.cbrt.oVncs.oVhc2.1n.oVO__cosh_._cosh.oVncs_.cosh_cosh.oVncs.oVhc2.1n.oVO_errno_erf_.erf_erfc_.erfc.oVncs.oVhc2.1n.oVO__exp_._exp.oVncs.oVhc2.1n.oVO_exp__E_.exp__E.oVncs_.exp_exp.oVncs.oVhc2.1n.oVO__expm1_._expm1.oVncs_.expm1_expm1.oVncs.oVhc2.1n.oVO_floor_.floor_ceil_.ceil.oVncs.oVhc2.1n.oVO_errno_j0_.j0_y0_.y0.oVncs.oVhc2.1n.oVO_errno_j1_.j1_y1_.y1.oVncs.oVhc2.1n.oVO_errno_jn_.jn_yn_.yn.oVncs.oVhc2.1n.oVO_signgam_lgamma_.lgamma.oVncs.oVhc2.1n.oVO__log_._log.oVncs.oVhc2.1n.oVO__log10_._log10.oVncs_.log10_log10.oVncs.oVhc2.1n.oVO__log1p_._log1p.oVncs_.log1p_log1p.oVncs.oVhc2.1n.oVO_log__L_.log__L.oVncs_.log_log.oVncs.oVhc2.1n.oVO_pow_.pow.oVncs.oVhc2.1n.oVO__sinh_._sinh.oVncs_.sinh_sinh.oVncs.oVhc2.1n.oVO__sqrt_._sqrt.oVncs_.sqrt_sqrt.oVncs.oVhc2.1n.oVO__tanh_._tanh.oVncs_.tanh_tanh.oVncs.oVhc2.1n.oVO__tan_._tan_cos__C_.cos__C_sin__S_.sin__S__sin_._sin__cos_._cos.oVncs_.cos_cos_.sin_sin_.tan_tanacosh.o 597788187 0 10 100777 1863 ` 0ٱn`D ɱHP ɱHP Hp ɱHߺ!8 %W% (Berkeley) %G%?.B=95yPnPPP>PzPP@P @>PzPPPJPrPPP ")0h:'?F:NU\dJksy8acosh.o_rcsid_sccsid_ln2hi_ln2lo.oVncs.oVhc2.1n.oVO_acosh_.acoshmcount_isnan_.isnan_log1p_.log1p_sqrt_.sqrtFPGLUE asinh.o 597788187 0 10 100777 2064 ` @@ٱn`0m l0 bcTɱHw^vNbc$Hh,@Th(,de$ɱH, dde$ɱHbcɱHߺ!0 ,%W% (Berkeley) %G%?.B=95yt.4,k m0u>t.\,4X>.deЍ,ɱHu^tN,00 >.deЍ,ɱH,0 ?0 X>. deЍ,ɱHXs>r.>.deЍ,ɱH0 >.deЍ,8ɱHu^tN,,u^tN,04<4lHd8 D%W% (Berkeley) %G%?ݬgaO. &֕CmgN`H>`0T#`<TE`0 (#`\>`0 (#`\>` (E` 0E`0 T#`0 T3`0 $R`< l3`< lR#?` \#` `< $`\>`< `##3@`\>`\>`\>`0 T#` T #` 0#`0T #`0#@N`< T3`< ` <`<(#`4T#`< #@`< (#?`< T#@`< 4 `< T3`< T3`< `< `< `< `< `< `< ` < `< 3`< 3`< (3 `< (#`\>`< N`< @`< T3`< T3`< `< `< ` < `< T3`< `<  ` < `< T3`< 3`< ` < `< `< ( #` D 3#x` T 3p` T #` T 3h` T 3`` T 3X` T 3P` T 3H` T 3@` T 38` T 30` T 3(`< ( #`< DL##`< (\#`< (^#` <`< `#3# `\>$Header:atan2.c 12.0$ (P| 6T f  4B"V"$$:`@@PPP!P#P%P.%P%P%P%PZ%P%P%P%P6%P%P@%P%P@n%P%P6%PJ%Pn%P%P@*%P%P%P>%P%P%P%Pj%P%P @ F%P Z%P n%P %P %P n%P %P %P %P ,@ r%P @ %P %P %P %P %P "%P 6%P J%P ^%P l@ %P @ f%P x@ %P %P%P"%P2%P@@%P@%P%P%P%P"%P0@v%P%P%P%P@%P @%P%P%P%P%P@%P,@r%P%P@%P(@n%P|@%P@%P$@j%Px@%P@%P @f%Pt@%P%P&%PN%Pv%P%P@%P #+19AG K(O0S8W@[H_PcXg`khoptxyh'6[#atan2.o_rcsid_sccsid_athfhi_athflo_PIo4_at1fhi_at1flo_PIo2_PI_a1_a2_a3_a4_a5_a6_a7_a8_a9_a10_a11.oVncs.oVhc2.1n.oVO__atan2_._atan2mcount_isnan_.isnan_copysign_.copysign_finite_.finite_logb_.logb_scalb_.scalbFPGLUE atan2_rtfl.o 597788187 0 10 100777 253 ` \<$Header:atan2_rtfl.s 12.0$`@#E4@"P4P J !).oVncs_.atan2_atan2FPGLUE__atan2 atan_rtfl.o 597788187 0 10 100777 250 ` \<$Header:atan_rtfl.s 12.0$`@#4@"P0P Z &.oVncs_.atan_atanFPGLUE__atanatanh.o 597788186 0 10 100777 921 ` \Pٱn` 0(lɱHߺ!0  %W% (Berkeley) %G%`$0` T#`<T#`<(#`<(#` <D##@`,0$Header:atanh.c 12.0$  0 @@ P& PJ P P P PB P P \`"h,'1t8@GJNV]atanh.o_rcsid_sccsid.oVncs.oVhc2.1n.oVO_atanh_.atanhmcount_log1p_.log1pFPGLUE atrig.o 597788188 0 10 100777 2753 ` hxٱn`0 ɱH^N  A| 0d e0ɱHXd e0ɱH!ɱHߺ! ٱn`Д LtɱHL^N` / $8H^N p@PɱH!ɱHߺ! P%W% (Berkeley) %G%?` ` T#`0(#` `X3`\#` ##?`<`<(#`<(#`<(@#` `<(#`<` <(#` `X3` X@#`<l@#`<@`<` <(#`<(#`<D##` $Header:atrig.c 12.0$  L vp . ^ p@ @( P, P0P4P:PRPPPP@BPP>PRPzPPPPPP>PX@bPp@PP~PPPPP6P  'h1'6 = ELS[e6pv8}JyXatrig.o_rcsid_sccsid_one.oVncs.oVhc2.1n.oVO__asin_._asinmcount_isnan_.isnan_copysign_.copysign_sqrt_.sqrt_atan2_.atan2_errnoFPGLUE__acos_._acos atrig_rtfl.o 597788188 0 10 100777 398 ` `0耑$Header:atrig_rtfl.s 12.0$`@#4`@#4@"P0P\@bPpP i7$y&-fd3:.oVncs_.acos_acosFPGLUE__acos_.asin_asin__asincabs.o 597788188 0 10 100777 4112 `  ,n` ,A ٱn`8t$ $ u^tND(tu^tN(l  s>r., ɱH DPɱHD,,x DPɱH<P0#L\0DXh$LɱH4 u^tN(ɱHɱHD4 u^tND(0ɱH$ DPɱH4 ɱHu^tN(|ɱHߺA< %W% (Berkeley) %G%@PO3?<e&?f;(?<2r]C`<<`T#` TE` (#`0(#`0T#`0<`<`<`<` l#`L<`<l#`L<`,P #`,P#`<`<<` <`<`<D#3 `,T#` <`<T#@`<`<`<(#`<D3#` <`<`<T3`<T3` <`<(#`L<`L<`L<`L<`L<$Header:cabs.c 12.0$ 4 J^v V,Jr@@ @<@`PdPhPlPpPvPPPZPPPP:PJPZPjPP"PPP*PzPPPPP@6PPPPPP>PP@PPP@P@NPbPPP"PnPP "*18hB'GNbV]%cW(j[r#{68cabs.o_rcsid_sccsid_r2p1hi_r2p1lo_sqrt2.oVncs.oVhc2.1n.oVO_hypot_.hypotmcount_cabs_.cabs_finite_.finite_copysign_.copysign_logb_.logb_sqrt_.sqrt_isnan_.isnanFPGLUEcbrt.o 597788188 0 10 100777 2202 ` p١nt!|1AQ`!|1,Q|jpEm@д 1!|ɡP1!| ɡPմK0EmCP0 Hp-3 0 3b@m0 0 `bʤ0p 0 p 0 q1p!$ɡPߪA0#%W% (Berkeley) %G%*x)x?__%24??mn?mm`$0`<=T#`<=(p3`,0`H#`,0`<D33|`T3`p` <(p3|`p`<Tp3`<(03` <(P3`<p` <(p3`<Tp3`<(3` )(p3|`)``) `)P` )p`)(3`,0$Header:cbrt.c 12.0$@H@RPvPPPPfPPP*P>PfPzP@P@P@P.P@@VPd@PPPP"P2PFPnP pt"%(+.18hB'GJM|T[cjcbrt.o_rcsid_sccsid_B1_B2_C_D_E_F_G.oVncs.oVhc2.1n.oVO_cbrt_.cbrtmcountuldiv$$FPGLUEcosh.o 597788188 0 10 100777 3189 ` hd @pٱn`4L ɱHu^tN$< I0H ɱH@P(,Th|ɱH,\ɱHd  0X,N0ɱH,ɱHߺ! %W% (Berkeley) %G%@.B9=;9?@.B9??<2r]C` ` T#`0(#` `X#`#@6` #?-V` 3`<D#3` ` (#` `` ` (#@`  ` D#3` `  D3#`<T#`<D#3` `<T3`<<@`<T#?ffffff`<<`<(3`<D#3` `,D#3` $Header:cosh.c 12.0$ H"@@4@T PXP\P`PdPjPPPPPrPP~P@P@FPbPPPPPP@2PNP`@PP@*PFPT@PP*PfPx@P@PP@2P hl"*27>hH'MT\cjr|6cosh.o_rcsid_sccsid_mln2hi_mln2lo_lnovfl_max.oVncs.oVhc2.1n.oVO__cosh_._coshmcount_isnan_.isnan_copysign_.copysign_exp__E_.exp__E_exp_.exp_scalb_.scalbFPGLUE cosh_rtfl.o 597788188 0 10 100777 250 ` \<$Header:cosh_rtfl.s 12.0$` @#4@"P0P t &.oVncs_.cosh_coshFPGLUE__cosherf.o 597788186 0 10 100777 3609 `  p(Pٱn` 0 -V`Pd(PPP.PPPP P6PJPrP@P"P2PZPPPrPPP>Ph@pPvPP"PPPPPP:PfPPP P 6P 4#|'.h8'=DIOVq \cjouerf.o_rcsid_torp_p1_q1_p2_q2.oVncs.oVhc2.1n.oVO_errno_erf_.erfmcount_erfc_.erfcFPGLUE_exp_.exp exp.o 597788188 0 10 100777 2709 ` d,H(ٱn`@ ɱH nl F ?0 @h$8hdЍɱH  ?0@xɱH 0ɱH ?0@0ɱHߺ!0 %W% (Berkeley) %G%?.B=95yPP@fPzP@PPPP*PVPPPPFPrP dh| '/7?FhP'U>[pbipx6[#exp.o_rcsid_sccsid_ln2hi_ln2lo_lnhuge_lntiny_invln2.oVncs.oVhc2.1n.oVO__exp_._expmcount_isnan_.isnan_copysign_.copysign_exp__E_.exp__E_scalb_.scalb_finite_.finiteFPGLUE exp__E.o 597788188 0 10 100777 2758 ` Pٱnh`,u^tN(4Th(Px@T|$xɱ`s>r.(<ɱ`ߺA?&%W% (Berkeley) %G%?pPRPzPPPPP@P.P>PNP^PPPNPvP   ($0(8,3h='B@JSZd6ovexp__E.o_rcsid_sccsid_p1_p2_q1_q2.oVncs.oVhc2.1n.oVO_exp__E_.exp__Emcount_copysign_.copysignFPGLUEexp_rtfl.o 597788188 0 10 100777 247 ` \<$Header:exp_rtfl.s 12.0$` @#4@"P0P  >#.oVncs_.exp_expFPGLUE__exp expm1.o 597788189 0 10 100777 4271 `   xٱn`0` ɱH ?0H p,Th$DlɱH;,$TɱH$ `ɱHv Ms>r.(@$ 2 d$s>r.M(@$LtdЍ(ɱH,  ɱH ɱH, s>r.@( XɱHߺ!8 T%W% (Berkeley) %G%?.B=95y \p p<PɱH8(`0b<dx1ɱHߺ!< ٱn`@@D0 !0 "0ɱH4;{\\\\<ɱHp8`0b1d ɱHߺ!< ٱn`8|V`Pd,0TQ@D\|`Ъe0<PxɱHߺ!8 H?_0mȃ?!TD-D:X}`C$hJ5~^UvCb'"ci&6-BYyPYݿ$@:w|D:XC m"CZ9żYB٤hZBR-g1AW,4A1 4@LA.|?ATE^AgA` .A>ÇHuA9@j:EATE^AgJA`z!aA>j3GA Q;@of\6?!<KrF_،|{7cRlHkh}=A!<KrA$X A FVh`A X@άr*F@yW2}?RD co4T"C~e\mnBt! yE˔A45AD{3K[pD43! C:WeCU@?}B\BNkH AES'A.HW@ ϣ;? `<<` T#`T#`<`<` #@ `<(#` (3$` T3 ` (#`,(#`,T3 `,(#`,` ,D#3`,(#`L<`<`<`,` (3` `,(3H` <(#`L<,`L<`,`<`` (3\` `,(3` <`<T3`<T#`<(#`<(#`L<V`08` D##`  (#@P` T#````(3(`(3`` (3`,3`(3` 4D##@ ` 4x`4(3`<8$Header:j0.c 12.0$ N``z  pp`*!b`@@@ P$P(P.PjPPPNP^PP P@2PPPP*PRPfPx@PPP.P>PRPzPPPP(@0@4 P:PPPPPPP&P:PH@PP P 2P |@ P P P "P vP P P P P P "P NP vP P P P \d#$),-t159,=dAEI QVZahk'pw,{8 @j0.o_rcsid_pzero_qzero_tpi_pio4_p1_q1_p2_q2_p3_q3_p4_q4_asympt_.asympt.oVncs.oVhc2.1n.oVO_errno_j0_.j0mcount_cos_.cos_sin_.sin_sqrt_.sqrtFPGLUE_y0_.y0_log_.log j1.o 597788186 0 10 100777 6701 ` Tpٱn`t,hxK($hp| L(PɱH$(4` cHp!ɱHߺ!? ٱn`L@D0| !0 "0ɱH(>p<d8`ɱH)` c !4\4 <P`ɱHߺ!< ٱn`8|V`Pd,hTQ@Dp|`Ъeh<PxɱHߺ!8 \?_0mȃ?!TD-D?#h= 홙CǼ_ aBڭzYs@]An:@ɧQa @>JDO#h=C9u"Ck 8YBnxqB^J0A7*--A6aQ@f>?PtFZb)Y0O67?IYb`.wqPtFZbzXY޳w7/2 u?@8:O@ɒ M@(-b @6@pw@A.A%ѣA;B ЀA5īk&CAnHLF@GZ@@{?ĵ\HD~$/waPnC0ZÅcb(bC 3 i C‚ٓA@# D|PG'gDrjaXhCd+pJCx k"B{Bb Aљ=J$A7ڒAR@1q~k?`\?`<T#`<`T#`<<`<`<#@ `<(#` D3#`@` ` T3 ` (#`,T#`,D3 `,D#`,` ,D#3X`,(#`,<`<`t?`<`<`` (3` `(38`<` <(#`t?&x`<<` T#`<`L<` #@ ` ` T3 ` (#`,(#`,T3 `,(#`,` ,D#3X`,(#`L<`<`<` (3` `(3T`<(#`<T#`,(#` ,(#?`,`,(3X`` ,`,(#`L<`08` D##`  (#@P` T#````(3P`(3` (3`,3`(3` 4D##@ ` 4x`4(3`<8$Header:j1.c 12.0$ Z`l2Fp`J!`@$@,@0P4P8P>PPPPRPPP"PJP\@PPPPrPPP P@NPvPPP6PJPZPnPPPPPP@@ PPP "P ^P P .P BP P P P :P bP vP @ P P .P BP RP zP P P P 2P ZP P P @ P P P PT@^PPPPNP^PnPPPPP&PNPPPP TpxX#`)h-1509h=AE(IQZahk'pwx{8 &j1.o_rcsid_pzero_qzero_tpi_pio4_p1_q1_p2_q2_p3_q3_p4_q4_asympt_.asympt.oVncs.oVhc2.1n.oVO_errno_j1_.j1mcount_cos_.cos_sin_.sin_sqrt_.sqrtFPGLUE_y1_.y1_log_.log jn.o 597788186 0 10 100777 4525 `  `ٱn`m XɱH ɱH 0@ ɱHh- -H; `!-L\l!- ɱHHX!- lH-,<L\! lɱHߺ1> ٱn`l @ ! "0ɱHє o`xTɱHx ɱHxx ALthAL ɱHߺ18 `H>`<T4`<`<(#`\>` l#`\>` ` ` <` `<T#`T#@`<T#`T#@`B`4` ````<(#`\>`4B`b` b`<V` <v`<V`<TR#?`4` ```F`,(#` ,(#`\>`08`<T4`<#`<8`<8`<P# `<8`X#@`X#`8` `4T#`4(#``<8$Header:jn.c 12.0$ 4 V  p2Tx@@ P P P^ P P P PF P P Pn P P P Pf P P P PR Pb Pr P P P P PN P^ Pr P P P P P2 PB PR Pb Pr P P P@$P(P. P^ P P6 Pr P P P : P P P " P 2 P P P P h!'&-16=AFJOV Z_chlqjn.o_rcsid.oVncs.oVhc2.1n.oVO_errno_jn_.jnmcount_j0_.j0_j1_.j1FPGLUE_yn_.yn_y0_.y0_y1_.y1 lgamma.o 597788189 0 10 100777 5447 `  DP8n`<p n,  ,,! ٱn`85`0b01XDɱHߺ!8 ٱn`L0\ .<<' HɱHߺ!< ٱn`,8T|ɱH,8ɱHd7t`0b1ɱHߺ!0 @(#)lgamma.c 4.4 (Berkeley) 9/11/85?gd@ !TD-?UUUUUEfl?JrdCO{?KhsZ!G6v$e'.Z >b{uI|I I%\6v$HJW@j'Y`fm-{0tTV@gE7?$ |` X#` @#` #@ p`08`<T#`<` <(#?`<T#` `,(3`<(#?`<(#`,(#`,`,(3` ,`,(#`<8`<<`,T#`,(#`<T#`<`<#?`<T#?`<T#@` <(#`,(#`,`,4` ` #``,(#`,D#3` ,D#3`,D##`L<`$0`<T#`<T#@`<P jP P BP jP P P P &P 6P JP rP P P !%$)d-28$>pE |JPWha'fAowYplgamma.o_sccsid_goobie_pi_p1_p2_q2_neg_.neg_asym_.asym_pos_.pos.oVncs.oVhc2.1n.oVO_signgam_lgamma_.lgammamcount_log_.logFPGLUE_floor_.floor_sin_.sin log.o 597788189 0 10 100777 3639 `  Hٱn`4| ɱH$ Tq(M,| (4L,\<Pdx0(P`pɱH!< `ɱH(ɱHT(ɱHɱH\ߺ!> `%W% (Berkeley) %G%?.B=95y`T#`$(#`\>`<T3`<<|`,P #`,P #`4T#`<3`<T3`<`<T3 `<(#@` <`<`<`<` `<(3`<(#`,(#`,`,`,`,`,(3`,(#`\>`<$~` <D#3 `\>` <(#`\>`<#`\>$Header:log.c 12.0$  Df|Fp@0@P PTPXP\P`PfPPP*PP@PPfPP P@P@PP@FPnPPPP P@2PZPPPPPP@PPnPP@P2PZPP:P  '.5h?'D?JqQX_g[o#x~log.o_rcsid_sccsid_ln2hi_ln2lo_sqrt2.oVncs.oVhc2.1n.oVO__log_._logmcount_isnan_.isnan_finite_.finite_logb_.logb_scalb_.scalb_log__L_.log__L_errnoFPGLUE log10.o 597788189 0 10 100777 679 ` D@ٱn` $xɱHߺ!  %W% (Berkeley) %G%?{&` ` T3\`,(#` $Header:log10.c 12.0$  @ @( P. PF PT@ P P DH\#*h4'9dAJQV\clog10.o_rcsid_sccsid_ivln10.oVncs.oVhc2.1n.oVO__log10_._log10mcount_log_.logFPGLUE log10_rtfl.o 597788189 0 10 100777 253 ` \<$Header:log10_rtfl.s 12.0$`@#4@"P0P n !).oVncs_.log10_log10FPGLUE__log10 log1p.o 597788189 0 10 100777 4342 `  p8Hٱn`H0  ɱH4 hw^vN8  ɱHl<d@(w>v.d@|h0DXh,ThX|DX(PɱH! ɱHpɱH HpɱH ɱHhrߺ!> x%W% (Berkeley) %G%?.B=95y` T#`0(#`\>`<T3``<<^` t#3x`<D#3h`,P #`,(#`4T#`4T#`4`43H`<T3p`<`<`<T3``<`<`,`<(#@` <`<`<`<` `<(3@`<`<`<(#`,(#`,`,`,`,(38`,(#`\>`<$~` <D#3X`\>`<T3X` <(#`\>`<#`\>$Header:log1p.c 12.0$  DlJp@0@` PdPhPlPpPtPzPPP>PP@P*P8@P@P2PZPPPP$@P@PPP@bPvPPPPPPP^Pp@PPPPPP"P2PD@ZPPPP@FPP@P P zP P  $8"@)H07hA'F0PNW^em[u#~6log1p.o_rcsid_sccsid_ln2hi_ln2lo_sqrt2.oVncs.oVhc2.1n.oVO__log1p_._log1pmcount_isnan_.isnan_finite_.finite_copysign_.copysign_logb_.logb_scalb_.scalb_log__L_.log__L_errnoFPGLUElog1p_rtfl.o 597788189 0 10 100777 253 ` \<$Header:log1p_rtfl.s 12.0$`@#4@"P0P J !0).oVncs_.log1p_log1pFPGLUE__log1p log__L.o 597788190 0 10 100777 1449 ` pHn`PX`,! %W% (Berkeley) %G%?UUUUU?ٙ$?I$?q!P?Fc̔4/?Ú[?9Q"` H3#` X3` X#` X3` X3` X3` X3` X3`<(#$Header:log__L.c 12.0$ @P@ZPl@P@PRP`@P@P@ZPh@P@ P pt $(,048?hI'NV_fmlog__L.o_rcsid_sccsid_L1_L2_L3_L4_L5_L6_L7.oVncs.oVhc2.1n.oVO_log__L_.log__LmcountFPGLUE log_rtfl.o 597788190 0 10 100777 247 ` \<$Header:log_rtfl.s 12.0$`@#4@"P0P  ?#.oVncs_.log_logFPGLUE__log pow.o 597788190 0 10 100777 11556 ` Dٱn`L ?0dɱH  @ɱH| |ɱH| L@?P$xɱH>.4|ɱH>.4 4ɱHp ɱH@ ɱH ?08`ɱH^N|8_$ɱH@?P8B`ɱH>.4 L \ ɱH! ɱHߺA8 ٱnd`tp ɱd0 ̔  HpɱdHLH 4  xB 4 Y@,@T|$L  $ L \>. p  bc@dB T l .^4!5Q )d t   ( @ dt(<L\p,dЍ pɱdq1p!ɱd ?0X L ?0@x ɱd ?0@ ɱdߺA?'$L%W% (Berkeley) %G%?.B=95yPPPnPPP@>PfPP@P6PrPPPP @^PPP P BP P P P "P fP @ P P "P %P P P jP P P :P ^P P >P L@ P PPPPPjPP@"P0@vPPP@&PNPPPPPPPFPVPfPPPBPjPPBPP@PPP:PnPPPPNPPP@P$@jPPPPPP"P2PBPRPjPPPPPP*P>PPPPPPPPP"P2PBPRPzPPPPP"P4@JPP@"PP DH\ d'l/t6|<BGLT[cjht'y ~[#6q: pow.o_rcsid_sccsid_ln2hi_ln2lo_invln2_sqrt2_zero_half_one_two_negone_pow_p_.pow_p.oVncs.oVhc2.1n.oVO_pow_.powmcount_isnan_.isnan_finite_.finite_copysign_.copysign_drem_.drem_errnoFPGLUE_logb_.logb_scalb_.scalb_log__L_.log__Llmul$$_exp__E_.exp__Esinh.o 597788190 0 10 100777 2544 ` 8Pٱn`(L ɱHs>r.s^rNp   ` dɱH & 4 xN$dɱH  ɱHߺ!0 %W% (Berkeley) %G%@.B9=;9?@.B9??`$0` T#`0(#`,0` (E`0T#`X#`X3``@@` D3#t`  (#`<T#`<D#3|`(E`,0` T#?ffffff`<(3P`<D#3X`,D#3t`$(#`,(#`,0$Header:sinh.c 12.0$ H`|@4@L PPPTPXP^PPPP*PRPPP @VPP@PPVPh@PPPBPT@jP|@P@PPBP 8<P"X*`2h7>hH'MlTx\cjr|6sinh.o_rcsid_sccsid_mln2hi_mln2lo_lnovfl_max.oVncs.oVhc2.1n.oVO__sinh_._sinhmcount_isnan_.isnan_copysign_.copysign_expm1_.expm1_scalb_.scalbFPGLUEsinh_rtfl.o 597788190 0 10 100777 250 ` \<$Header:sinh_rtfl.s 12.0$`@#4@"P0P  &.oVncs_.sinh_sinhFPGLUE__sinhsqrt.o 597788190 0 10 100777 3626 ` 888anX!1AQ` !18q ȑ1! C1! a\8a\pimm a\ 0 0 0¤ m `1!@6!1ذP_` p) 0 p)` 0)Ⱘ!ci09`0b0 4p90 b04b pؠ 0<p 00# 0p1  t cr1q! J01!21 0r1q!1!21^lNhr1q!1!21^lNht1s!3!410p 0 p 0 bЍt1s!Ta\1!jA * %W% (Berkeley) %G%B0w;vhMw r#4$F\(s14mV(LF kVTM@s/!* K` `?T#`?(3 `(3`9@#` `9X#`?D##` ?(#` ` `T3 ` >(`3`>( 3`>(3 ``(3`T3` `T 3 `` (3`D33 ` `333 `\#3 `T3`(E`?T3`?T#?` $Header:sqrt.c 12.0$ V<Pr@@ PPPPPPPP>PfPPPPBPPPPP:PbPPPPPBPVPPPP&PPP@6P^PPP  &$,,3:hD'IHPX_fnz| #]ln[ #?#C#C ( 8 H X h x + nsqrt.o_rcsid_sccsid_novf_nunf_zero_table.oVncs.oVhc2.1n.oVO__sqrt_._sqrtmcount_isnan_.isnan_swapfptrap_.swapfptrap_swapfpflag_.swapfpflag_swapround_.swapround_scalb_.scalb_nextdouble_.nextdoubleFPGLUEsqrt_rtfl.o 597788190 0 10 100777 250 ` \<$Header:sqrt_rtfl.s 12.0$`@#4@"P0P 8 H&.oVncs_.sqrt_sqrtFPGLUE__sqrttanh.o 597788190 0 10 100777 2597 ` HHٱn`(L ɱHs>r.s^rNpIP# PxɱH 4 \ɱH$ DɱHpɱHߺ!0 $%W% (Berkeley) %G%?@`$0` T#`0(#`,0` (E`0T#`X#`#@6`<3h`<(#` T3p`<(P#` <`<D#3h` (E`,0`<`<(#`,T#`,(3p` ,(#`<D##8AB`,0`<(#`,0$Header:tanh.c 12.0$  H `   @@0 P4 P8 P<PBPfPPPP6PPPjPx@PP$@jPPP@PP:PNPvPP@PP^PPP HL!h+'0`7`?FMU_6jqy[#tanh.o_rcsid_sccsid.oVncs.oVhc2.1n.oVO__tanh_._tanhmcount_isnan_.isnan_copysign_.copysign_expm1_.expm1_finite_.finiteFPGLUE tanh_rtfl.o 597788191 0 10 100777 250 ` \<$Header:tanh_rtfl.s 12.0$` @#4@"P0P  &.oVncs_.tanh_tanhFPGLUE__tanhtrig.o 597788191 0 10 100777 8971 ` @ٱn`L  ɱH^N L^N؍, (| ɱH,@h@ @TdxɱH<ɱHߺ!8 ٱn`  ,TɱH^TNP^dN`T  \E0ɱH\ D ,$LɱHxɱHߺ!0 ٱn`?t   ɱH^8N4dx^HND|<  PL#bcDɱH`\KɱHdd (xdde|ɱHߺ! n`PX`,! n`PHP,! %W% (Berkeley) %G%?з m`M?!TD-?!TD-@|3!@ !TD-@!TD-??>@+)i+COe;<`08`T#`<(#`<8`0(#`t#3`<`#3#` (E`0T#`<t#3H`<8`<`<(#` T#` T3@` ` #?з m`M` ` ` ` ` (30`<(`#`<p`<p` <`<(#`<8`<(p#`<x` <(#`<8h`$0`<(#`,0`0(#`X#`0T#`03`<3`<(3` (E`<3H`,0`<(3`<`<T#`<`<(#`<(30`,0`<(#`,(#`,(#`,0` ` `0T#`03`<3`<(3`<3H` `<(3` `<` T#?` #?з m`M` `<`<(#`<(30` UUUUU ?a*tcE> پZ=ag+` H3#4` X3,` X#` X3$` X3` X3` X3 `<(#?UUUUU>VlA>q뾒~O>!;`܌Y.x` H##` H@3#` X@3` X@#` X@3` X@3` X@3`<T@3`<(#$Header:trig.c 12.0$ "L$b&&t "$&&& "$,&&"  @x@!P#P%P@@+P+P+PB+P~+P+P@+P,@z+P+P+P@j+P+P+P+P6+PD@+P+P+P2+PB+PV+Pj+P|@+P+P+P+P+P+PV+P~+P+P+P@+P+PF+Pr+P+P+PF+PT@+P@ N+P `@ v+P +P @ "+P N+P `@ v+P +P +P +P +P (@ >+P j+P +P +P +P @ +P .+P J+P +P @ "+P 0@ +P @ +P @R+Pn+P@+P+P+P+P+P+P+P+P@+P\@f+Px@+P@+P^+Pl@+P@+P@f+Pt@+P@+Pf+Px@+P@+P^+Pl@+P@+P@f+Pt@+P "(.59 >(D0I8Q@WH^Pc gko$s,w4{h'JX|[#q6x< _V h&',Y3trig.o_rcsid_sccsid_thresh_PIo4_PIo2_PI3o4_PI_PI2_zero_one_negone_half_small_big_S0_S1_S2_S3_S4_S5_C0_C1_C2_C3_C4_C5.oVncs.oVhc2.1n.oVO__tan_._tanmcount_finite_.finite_drem_.drem_copysign_.copysign_cos__C_.cos__C_sin__S_.sin__SFPGLUE__sin_._sin__cos_._cos trig_rtfl.o 597788191 0 10 100777 537 `  H耑耑$Header:trig_rtfl.s 12.0$` @#4`@#4`@#4@"P0P\@bPpP@P P ('#)h.V4:?JE.oVncs_.cos_cosFPGLUE__cos_.sin_sin__sin_.tan_tan__tan #]lo ;~#H#I#I ! __.SYMDEF 597788238 0 10 100666 1396 ` !'. 5 ? D I O W `gqv} #(.4;AHOW^fls( z( ( ( ( ( ( ( ( -----------4 444 4'4.464>4G4N4V4]4e4k4r4x444.oVncs.oVhc2.1n.oVO_pow_.pow_rpow_.rpow.oVncs.oVhc2.1n.oVO_gcd_.gcd_invert_.invert.oVncs.oVhc2.1n.oVO_msqrt_.msqrt.oVncs.oVhc2.1n.oVO_mdiv_.mdiv_m_div_.m_div_m_dsb_.m_dsb_m_trq_.m_trq.oVncs.oVhc2.1n.oVO_m_in_.m_in_m_out_.m_out_sdiv_.sdiv_s_div_.s_div_min_.min_omin_.omin_mout_.mout_omout_.omout_fmout_.fmout_fmin_.fmin.oVncs.oVhc2.1n.oVO_mult_.mult_m_mult_.m_mult_tradd_.tradd.oVncs.oVhc2.1n.oVO_m_add_.m_add_madd_.madd_msub_.msub_m_sub_.m_sub.oVncs.oVhc2.1n.oVO_move_.move_xfree_.xfree_xalloc_.xalloc_dummy_.dummy_fatal_.fatal_mcan_.mcan_itom_.itom_mcmp_.mcmppow.o 597751944 0 10 100666 1042 ` |lp@an0!f0g@hP13b0>! 1( p& 1*!qbʲbcdbcpde p!cdbcpde ܐp& bbЍa`hA١nl k0m@2>!3! p,c$0!> 1!c @p!B b@!b# Aq1p!B !b#bЍȡkbcdeЍXbbɡLߨ1@(#)pow.c 5.1 (Berkeley) 4/30/85powrpowrpow2$Header:pow.c 12.0$, ^ n   :Zd@(@0P4 P8 P< P@@T@ |!).4;CKTZagnt{.oVncs.oVhc2.1n.oVO_rcsid_sccsid_pow_.pow_xfree_.xfree_xalloc_.xalloc_mult_.mult_mdiv_.mdiv_rpow_.rpowlmul$$gcd.o 597751952 0 10 100666 1378 ` hPّnm0i@0246ȡcȱbctl bcdeЍbcbctbcb b bЍ b ɑ `ߘ1anm 01f@p1579;3>! 4! p!ȁ,cȑ$bcyȡȱ  3bcdebcbcdbcdbcЍbcbcqybc`p!c`d`bbbbbЍba4h1 D@(#)gcd.c 5.2 (Berkeley) 3/13/86invert$Header:gcd.c 12.0$.J Vbt~ ( 4BP\ht      @(@,P0 P4 P8@DPHPLPPP !).4:AGNU](env.oVncs.oVhc2.1n.oVO_rcsid_sccsid_gcd_.gcd_move_.move_mdiv_.mdiv_xfree_.xfree_invert_.invert_xalloc_.xalloc_mult_.mult_madd_.madd_msub_.msubmsqrt.o 597751960 0 10 100666 1330 ` D`qnj k0l@135p:0.p:0 00bqdo0b` "/! 1`055u!> 6!d 0cu!2 `0b Ґ101vAu!2 p o !b$ !b$b$b$qȁȑ mbcpde(b$bpcd,b2deЍ0bpc4 bp$bcp8b$b$bpc8bpcpdp!41-e q*P2bqA8q]P bP<0a0|0 a0|p $q!0p,0-> 41-` 2p-q,b+P2b 2r2p a0|67pzkpq b 21 '!b1A(@b1A @yb ʒʂp,'!>(4f p &b!{bRPB0bcD2!yAk{e cpH r2rb 6q{7!LW1AQ!8t0 u1 q!1bp<71 21`0b121q!020b`ba X0>b1!  dAq9c4P3bB 2 [ibg hp#`iȡ ;bdeH U0aj7p  p ->bdbp$p q!$a Xa Xq!ph1ٱn3k@lPpB2Aq30@2!debq1 p!cЌ0+P,cЌ ,ɱH߸Aanf sh@0Qp>bl mqb Pbcpk0c #p! `b 01Ȕ baPaPhAn@D:., n@D8, n@:, n@8, nd0:,! nd0:,! 4@(#)mout.c 5.2 (Berkeley) 3/13/86b0 m_out%s s_divHn$Header:mout.c 12.0$H p ~  p @ FP `   >#n ppp$p@(@,P0 P4 P8P<P@PD@XP\P`Pd@hPl@p@t@@@@@@@@@ !)/6=ENX_elryb ") /6(=E,LHT0Zna.oVncs.oVhc2.1n.oVO_rcsid_sccsid_m_in_.m_in_xfree_.xfree__filbuf_._filbuflmul$$_mult_.mult_madd_.madd_move_.move__iob_ungetc_.ungetc_m_out_.m_out_fprintf_.fprintf_xalloc_.xalloc_malloc_.malloc_sdiv_.sdiv_free_.free_s_div_.s_divldiv$$_min_.min_omin_.omin_mout_.mout_omout_.omout_fmout_.fmout_fmin_.fmin mult.o 597751996 0 10 100666 1238 ` th0Hnl@q5q30p44pt!22r  !1d3 !1d)bp0 p0 p  q! Lq1 L1anh i0j@ppb > 1*1Ѥpɴ10Ѥ{ab!qbPBb,!q bP"c@d bc` Sq*b q1p"kppɴ p30Ѳː{ab!qbPBb,!q bP"c@d bc`g Sq*b q1p"kppp c 50Ѳːfqb!qbPBb,!q bP"c@d b`cp3p S0`q*b 2q1p"ppc ͪq b  0:aT0 aTh1p0PC  p0@(#)mult.c 5.1 (Berkeley) 4/30/85m_multP$Header:mult.c 12.0$p x@(@,@0 P4 P8@D PH@L@ t!x)/6>GNV\ckt{P.oVncs.oVhc2.1n.oVO_rcsid_sccsid_mult_.mult_m_mult_.m_mult_xfree_.xfree_free_.free_xalloc_.xalloclmul$$_tradd_.traddmadd.o 597752007 0 10 100666 1729 ` |P`١nk l0m@p+!> @0p 0j0q[eZPUEq\eZPUoTd@ Ae @e 1p\5 p 0`0q[ePUoTe\ e @e 1p 0 A `0d 10=0 1-p  ɡ<ɡ<ߨ1nm@pB4Aq5p#2!q30@ % B !1dv4!1dl*2!1d 42!1d 4!1dbЍq1 p!c0-L1ّnj k0l@%0 1p*>1,Ф0p 0 P`0qJdPDoMqKdPdE Ib Bb 1p 0^p 0@qe0Qq bPk `  b_ b_ 1p 0 00 `0q,bP 1p 0 0 cbd,p q,0 `0dP10<ɑ L0 ɑ L1ɑ Lq,ߘ1١nj k0l@p:41p+2!q 5q 30є0 ' 2 !1dE8!1d,2!1d 42!1d4!1d t b r bbq1 p!cЌ0,ɡTߨ1T@(#)madd.c 5.1 (Berkeley) 4/30/85m_addL,m_sub@$Header:madd.c 12.0$  @(@4P8 P<@@@D@H@LPP@\@`@ !)08@IOV,\cLipw@.oVncs.oVhc2.1n.oVO_rcsid_sccsid_m_add_.m_add_xalloc_.xalloc_free_.free_madd_.madd_msub_.msub_xfree_.xfreelmul$$_m_sub_.m_sub util.o 597752013 0 10 100666 1830 ` @ٱnk l0b p 0 p۔ݔɱ8>bЍ%1,P]dPAq cPbB Q] ɱ8ɱ8q,߸!nԪ!$ ,.  ,! nd -(>- "0 nm p 0q-0 0 npRmP0oД`qBc `c 0 0P0000 nl >"Gm 0 > !;1- b40 >!'1- b40 4 nppBĴ@ b@ <0mdЍpbЍ@b<!X@(#)util.c 5.1 (Berkeley) 4/30/85move(|mp: no free space%s Pitomitom1itom2b$Header:util.c 12.0$p4#@(@4@8@<@@@X P\@`@hPlPpPtPx@|P@@@"P !)/6(=EMV]|emv}0P4Pb.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_xfree_.xfree_xalloc_.xalloc_dummy_.dummy_malloc_.malloc_fatal_.fatal__iob_fprintf_.fprintf_fflush_.fflush_sleep_.sleep_abort_.abort_free_.free_mcan_.mcan_itom_.itom_mcmp_.mcmp_msub_.msub#]loI ^#U#U#U ! __.SYMDEF 597788250 0 10 100666 1104 ` 0#6*64696?6FrMrWr\rero v     Z Z Z Z Z%.\5\?\D\K\SZdir|ttttt.oVncs.oVhc2.1n.oVO_arc__.arc_.oVncs.oVhc2.1n.oVO_box__.box_.oVncs.oVhc2.1n.oVO_circle__.circle_.oVncs.oVhc2.1n.oVO_clospl__.clospl_.oVncs.oVhc2.1n.oVO_cont__.cont_.oVncs.oVhc2.1n.oVO_dot__.dot_.oVncs.oVhc2.1n.oVO_erase__.erase_.oVncs.oVhc2.1n.oVO_label__.label_.oVncs.oVhc2.1n.oVO_line__.line_.oVncs.oVhc2.1n.oVO_linemd__.linemd_.oVncs.oVhc2.1n.oVO_move__.move_.oVncs.oVhc2.1n.oVO_openpl__.openpl_.oVncs.oVhc2.1n.oVO_point__.point_.oVncs.oVhc2.1n.oVO_space__.space_arc.o 597752018 0 10 100666 357 ` 8@lnpUpDp3p"}p0~p14a d@(#)arc.c 5.1 (Berkeley) 6/7/85$Header:arc.c 12.0$@$@(P 8!<)\/6;A.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc__.arc__arc_.arc box.o 597752021 0 10 100666 512 ` xD0 ١nj k0l@mPp;p bp=p bp=p bp;p bp;p bp=p bɡ<ߨA@(#)box.c 5.2 (Berkeley) 6/8/85$Header:box.c 12.0$& 4 B P ^@$@(P, P x!|)/6<CIP.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box__.box__move_.move_cont_.contcircle.o 597752024 0 10 100666 361 ` (HlnpDp3p"ԍ,1 X@(#)circle.c 5.1 (Berkeley) 6/7/85$Header:circle.c 12.0$@(@,P (!,)P2<DM.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle__.circle__circle_.circle clospl.o 597752027 0 10 100666 359 ` $Hlnԍ, T@(#)clospl.c 5.2 (Berkeley) 6/8/85$Header:clospl.c 12.0$ @(@,P $!()L2<EO.oVncs.oVhc2.1n.oVO_rcsid_sccsid_clospl__.clospl__closepl_.closepl cont.o 597752030 0 10 100666 353 ` (Hlnp3p"ԍ,! X@(#)cont.c 5.1 (Berkeley) 6/7/85$Header:cont.c 12.0$@(@,P (!,)P08>E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont__.cont__cont_.cont dot.o 597752035 0 10 100666 349 ` 0@lnpUpDp3p"|00Q \@(#)dot.c 5.1 (Berkeley) 6/7/85$Header:dot.c 12.0$@$@(P 0!4)T/6;A.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot__.dot__dot_.dot erase.o 597752038 0 10 100666 353 ` $Hlnԍ, T@(#)erase.c 5.1 (Berkeley) 6/7/85$Header:erase.c 12.0$ @(@,P $!()L1:AI.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase__.erase__erase_.erase label.o 597752041 0 10 100666 397 ` PHlnde@ 0c5S @!QS ```b@0!@L@(#)label.c 5.1 (Berkeley) 6/7/85$Header:label.c 12.0$6@(@,P P!T)x1:AI.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label__.label__label_.label line.o 597752044 0 10 100666 357 ` ,HlnpUpDp3p"ԍ,A \@(#)line.c 5.1 (Berkeley) 6/7/85$Header:line.c 12.0$@(@,P ,!0)T08>E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line__.line__line_.line linemd.o 597752047 0 10 100666 411 ` XHlnde@ 0c5S@ !QS@ b@,!@K@(#)linemd.c 5.1 (Berkeley) 6/7/85$Header:linemd.c 12.0$>@(@,P X!\)2<EO.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemd__.linemd__linemod_.linemod move.o 597752050 0 10 100666 353 ` (Hlnp3p"ԍ,! X@(#)move.c 5.1 (Berkeley) 6/7/85$Header:move.c 12.0$@(@,P (!,)P08>E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move__.move__move_.move open.o 597752052 0 10 100666 357 ` $Hlnԍ, T@(#)open.c 5.2 (Berkeley) 6/8/85$Header:open.c 12.0$ @(@,P $!()L2<DM.oVncs.oVhc2.1n.oVO_rcsid_sccsid_openpl__.openpl__openpl_.openpl point.o 597752055 0 10 100666 357 ` (Hlnp3p"ԍ,! X@(#)point.c 5.1 (Berkeley) 6/7/85$Header:point.c 12.0$@(@,P (!,)P1:AI.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point__.point__point_.point space.o 597752058 0 10 100666 361 ` ,HlnpUpDp3p"ԍ,A \@(#)space.c 5.1 (Berkeley) 6/7/85$Header:space.c 12.0$@(@,P ,!0)T1:AI.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space__.space__space_.space #]loIe )v#X#X#X  ! __.SYMDEF 597788253 0 10 100666 1226 ` x!(27<B I S X ` i Vp Vz V V V V V$+3:DIOV]glu      h h h h h h h!!!!!$H$H$H$H$H$&+&5&:&A&J.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_openvt_.openvt_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_putsi_.putsi.oVncs.oVhc2.1n.oVO_space_.spacearc.o 597752066 0 10 100666 616 ` H@ ١nj k0l@mP "u21 52v2a162$ 3x0 v2a1 622 abbbbЍ!!@ɡ<ߨa@(#)arc.c 4.1 (Berkeley) 6/27/83$Header:arc.c 12.0$p^ h r | @(@,P0 P !).4:CMT\.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arc__iob__flsbuf_._flsbuf_putsi_.putsibox.o 597752070 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 4.1 (Berkeley) 6/27/83$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752073 0 10 100666 570 ` L( ٱnk l0m@03u#! 5#v#c!6#$ "x  v#c! 6#3 cbbbЍɱ8߸1@(#)circle.c 4.1 (Berkeley) 6/27/83$Header:circle.c 12.0$p\ f p z @(@,P0 P !)1:@ISZb.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle__iob__flsbuf_._flsbuf_putsi_.putsiclose.o 597752077 0 10 100666 510 ` \L n , n , @(#)close.c 4.1 (Berkeley) 6/27/83.$Header:close.c 12.0$ p :pD @(@,P0@ \!`)2<BJS\.f.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closevt_.closevt__iob_fflush_.fflush_closepl_.closeplcont.o 597752080 0 10 100666 546 ` L nl m003u#! 5#v#n!6#$ "x  v#n! 6#3 nbbЍ4! @(#)cont.c 4.1 (Berkeley) 6/27/83$Header:cont.c 12.0$pZ d n @(@,P0 P !)/6<EOV^.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont_.cont__iob__flsbuf_._flsbuf_putsi_.putsidot.o 597752083 0 10 100666 616 ` H8 ١nj k0l@mP "u21 52v2d162$ 3x0 v2d1 622 dbbbbЍ `b p" ɡ<ߨQ@(#)dot.c 4.1 (Berkeley) 6/27/83$Header:dot.c 12.0$p^ h r | @(@,P0 P !).4:CMT\.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.dot__iob__flsbuf_._flsbuf_putsi_.putsierase.o 597752086 0 10 100666 469 ` |Hxn03u#!5#v#e!6#,$ "x  v#e!6#,3 e, @(#)erase.c 4.1 (Berkeley) 6/27/83$Header:erase.c 12.0$ pb @(@,P |!)08>GQ.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase__iob__flsbuf_._flsbuf label.o 597752091 0 10 100666 689 ` 8Hx0ٱnk u  5 v-0t2!6--$" 0x-2 v-0t2! 6-= tu @+ 5 5 v=#1(6==$3 @x=Cv=#BJ 16== u =u b@" ͒ 5 v-!6-ɱ8-$="  x  *vM$ɱ8*ɱ8߸h@(#)label.c 4.1 (Berkeley) 6/27/83$Header:label.c 12.0$pX   @(@,P 8!<)`08>GQ.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label__iob__flsbuf_._flsbuf line.o 597752094 0 10 100666 586 ` L0 ١nj k0l@mP "u21 52v2l162$ 3x0 v2l1 622 lbbbbЍɡ<ߨA@(#)line.c 4.1 (Berkeley) 6/27/83$Header:line.c 12.0$p^ h r | @(@,P0 P !)/6<EOV^.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line__iob__flsbuf_._flsbuf_putsi_.putsilinmod.o 597752098 0 10 100666 693 ` 8Hx0ٱnk u  5 v-0f2!6--$" 0x-2 v-0f2! 6-= fu @+ 5 5 v=#1(6==$3 @x=Cv=#BJ 16== u =u b@" ͒ 5 v-!6-ɱ8-$="  x  *vM$ɱ8*ɱ8߸h@(#)linmod.c 4.1 (Berkeley) 6/27/83$Header:linmod.c 12.0$pX   @(@,P 8!<)`2<BKU.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemod__iob__flsbuf_._flsbuf move.o 597752102 0 10 100666 546 ` L nl m003u#! 5#v#m!6#$ "x  v#m! 6#3 mbbЍ4! @(#)move.c 4.1 (Berkeley) 6/27/83$Header:move.c 12.0$pZ d n @(@,P0 P !)/6<EOV^.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move__iob__flsbuf_._flsbuf_putsi_.putsiopen.o 597752106 0 10 100666 323 `  Hl<@(#)open.c 4.1 (Berkeley) 6/27/83$Header:open.c 12.0$@(@,@  !)41:8BK.oVncs.oVhc2.1n.oVO_rcsid_sccsid_openvt_.openvt_openpl_.openpl point.o 597752109 0 10 100666 548 ` L nl m003u#! 5#v#p!6#$ "x  v#p! 6#3 pbbЍ4! @(#)point.c 4.1 (Berkeley) 6/27/83$Header:point.c 12.0$pZ d n @(@,P0 P !)08>GQX`.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point__iob__flsbuf_._flsbuf_putsi_.putsiputsi.o 597752113 0 10 100666 617 ` Hx(nl uMA 5Mv-‘!(6- $ $x ,v=#* 16== uM,=uMA 5Mv-‘!6-4 $ $x ,v=#* 16=4=4,=4 (@(#)putsi.c 4.1 (Berkeley) 6/27/83$Header:putsi.c 12.0$pT j @(@,P !) 08>GQ.oVncs.oVhc2.1n.oVO_rcsid_sccsid_putsi_.putsi__iob__flsbuf_._flsbuf space.o 597752116 0 10 100666 588 ` L0 ١nj k0l@mP "u21 52v2s162$ 3x0 v2s1 622 sbbbbЍɡ<ߨA@(#)space.c 4.1 (Berkeley) 6/27/83$Header:space.c 12.0$p^ h r | @(@,P0 P !)08>GQX`.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space__iob__flsbuf_._flsbuf_putsi_.putsi#]loIbˁ O#\#]#] (! __.SYMDEF 597788258 0 10 100666 1870 ` !(27<B I S X ` i Bp Bz B B B B BLLLLL,,!,&,,,3,:,B,H,O&V&`&e&n&x(8(8(8(8(8**************** ***!*)*1*:*B*K3TR3T\3Ta3Th3Tp58w585858585858:H:H:H:H:H:H:H:H:H:H:H:H:H:H :H:H":H.:H5:H=:HD:HL:HR:HY:H`:Hh:Hm:Hs:Hx:H~.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line_iline_.iline_cont_.cont.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_xnow_ynow_OUTF_ITTY_PTTY_HEIGHT_WIDTH_OFFSET_xscale_xoffset_yscale_botx_boty_obotx_oboty_scalex_scaley_openpl_.openpl_openvt_.openvt.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_deltx_delty_space_.space.oVncs.oVhc2.1n.oVO_abval_.abval_xconv_.xconv_yconv_.yconv_inplot_.inplot_spew_.spew_outplot_.outplot_tobotleft_.tobotleft_reset_.reset_dist2_.dist2_swap_.swap_movep_.movep_xsc_.xsc_ysc_.yscarc.o 597752120 0 10 100666 256 ` @T4@(#)arc.c 4.1 (Berkeley) 6/27/83$Header:arc.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arcbox.o 597752123 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 4.1 (Berkeley) 6/27/83$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752126 0 10 100666 266 ` DT4@(#)circle.c 4.1 (Berkeley) 6/27/83$Header:circle.c 12.0$@(@ ! )01:.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circleclose.o 597752129 0 10 100666 561 ` XT0nԍ , n , @(#)close.c 4.1 (Berkeley) 6/27/83"$Header:close.c 12.0$. p8 @ @(@,@0@4 P8 P X!\)2<E"OU]fmu.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closevt_.closevt_closepl_.closepl__iob_fflush_.fflush_reset_.reset dot.o 597752134 0 10 100666 256 ` @T4@(#)dot.c 4.1 (Berkeley) 6/27/83$Header:dot.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752138 0 10 100666 804 ` D48ٱn *t ɱHߺ `@(#)erase.c 4.1 (Berkeley) 6/27/83` `<T#@P`d ` $Header:erase.c 12.0$@(@,P2 PJ P P P D!H)l08>ELQV<[`ejot.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase_spew_.spewFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5label.o 597752142 0 10 100666 419 ` PHxnl @, 4p 0 @, 4 @(#)label.c 4.1 (Berkeley) 6/27/83$Header:label.c 12.0$$@ p@(@,P P!T)x08>EK.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_spew_.spew_xnow line.o 597752147 0 10 100666 4488 ` h8١nl0m@jPk b l bЍm b e bcdЍ:ɡ<ߨAnl0m be 03 "dЍ 4! qnp l m0j@kPbcde hL$ Ƞ x p  a4 $ h@(#)line.c 4.1 (Berkeley) 6/27/83|`H>` !D##@`!4` l ` l ` l"` Tx`$Header:line.c 12.0$ $ ,8@ L T ppxpp  8 F"@(@,P0 P4 P8 P<@@@D@HPLPPPTPXP\P`!Pf#P#P#P&#P#P#Pj#P#P#P6#PZ#P#P#P#Pz#P#PR#P#P#P#PR#P#P#P h!l)/6;AHPU[bjqy| !!" ', 16 ;@ ExJ<OxT<Z~`<fl<rx<~z<ELT.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_move_.move_label_.labelspace.o 597752164 0 10 100666 1235 ` P4 `nmPPPhB\0A l@(#)space.c 4.1 (Berkeley) 6/27/83EE`d2`d2` ,22x` <22 |$Header:space.c 12.0$ p p@0@6 PDP PP PP@ PP@ P!T)x0|7>FLRY^cjot{,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_deltx_delty_space_.space_botx_botyFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4_scalexLSI5LSF5_scaley subr.o 597752173 0 10 100666 5438 `  "n"0303#, n"03, n "03&:, n '&"  "03, nl gu=1 5=v-!6- $ #x  v-! 6-= u=1 5=v-‘!6-4 $ #x v=,* 16=4=4,=4u= n 0, nԍ@, nB5t(L,A ppB00Cفnh i0p,p ɁD` -T c2 `(Ȱ \0,bpj bT```p,([j  bT```tp-c2`)\0-b#j bT```p-)j ? bT```Kt00ɁDO߈!nlD, nl, t@(#)subr.c 4.1 (Berkeley) 6/27/83BlH`(p`<l`<$@`<$`<$`<4#` 1T#@` 14`14 `4 `<``<4` 1T#@ `@ :`<h2`<l2`<l2`<@l`<h2`<l2`<l2$Header:subr.c 12.0$ p$ * pRpX tpppppp`p"0&:p;p*;p@(@,@0@4@8P<@@@DPH@LPP@T!PX@\@`%Pd@j)P)PF)Pj)P)P)P@@@@)PJ)P~)P)P)PF)Pz)P)P @)P$PPz)PSP)PVPR)P@)P]P)P `Pj)PxcP !)08?GOV_fBnv~l #)07H?F(KP<UZ<_@d<in<sx<} 111<< 1 :<$<*08<>DJ<PV 0[la<gmt<z<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_abval_.abval_xconv_.xconv_xscaleldiv$$_xoffset_yconv_.yconv_yscale_inplot_.inplot_OUTF_PTTY_stty_.stty_spew_.spew_outplot_.outplot__iob_fflush_.fflush_ITTY__flsbuf_._flsbuf_tobotleft_.tobotleft_move_.move_reset_.reset_exit_.exit_dist2_.dist2FPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7_swap_.swap_movep_.movep_xnow_ynowLSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15_xsc_.xscLSI16LSF16_obotxLSI17LSF17_scalexLSI18LSF18_botxLSI19LSF19_ysc_.yscLSI20LSF20_obotyLSI21LSF21_scaleyLSI22LSF22_boty#]loIb Ox#`#a#a (! __.SYMDEF 597788262 0 10 100666 1870 ` !(27<B I S X ` i Bp Bz B B B B BLLLLLjj!j&j,j3j:jBjHjO*V*`*e*n*x+f+f+f+f+f. . . . . . . . . . . . . . . .  . . . !. ). 1. :. B. K6R6\6a6h6p8fw8f8f8f8f8f8f=v=v=v=v=v=v=v=v=v=v=v=v=v=v =v=v"=v.=v5=v==vD=vL=vR=vY=v`=vh=vm=vs=vx=v~.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line_iline_.iline_cont_.cont.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_xnow_ynow_OUTF_ITTY_PTTY_HEIGHT_WIDTH_OFFSET_xscale_xoffset_yscale_botx_boty_obotx_oboty_scalex_scaley_openpl_.openpl_openvt_.openvt.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_deltx_delty_space_.space.oVncs.oVhc2.1n.oVO_abval_.abval_xconv_.xconv_yconv_.yconv_inplot_.inplot_spew_.spew_outplot_.outplot_tobotleft_.tobotleft_reset_.reset_dist2_.dist2_swap_.swap_movep_.movep_xsc_.xsc_ysc_.yscarc.o 597752178 0 10 100666 256 ` @T4@(#)arc.c 4.1 (Berkeley) 6/27/83$Header:arc.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arcbox.o 597752181 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 4.1 (Berkeley) 6/27/83$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752184 0 10 100666 266 ` DT4@(#)circle.c 4.1 (Berkeley) 6/27/83$Header:circle.c 12.0$@(@ ! )01:.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circleclose.o 597752187 0 10 100666 561 ` XT0nԍ , n , @(#)close.c 4.1 (Berkeley) 6/27/83"$Header:close.c 12.0$. p8 @ @(@,@0@4 P8 P X!\)2<E"OU]fmu.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closevt_.closevt_closepl_.closepl__iob_fflush_.fflush_reset_.reset dot.o 597752189 0 10 100666 256 ` @T4@(#)dot.c 4.1 (Berkeley) 6/27/83$Header:dot.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752193 0 10 100666 804 ` D48ٱn *t ɱHߺ `@(#)erase.c 4.1 (Berkeley) 6/27/83` `<T#@P`d ` $Header:erase.c 12.0$@(@,P2 PJ P P P D!H)l08>ELQV<[`ejot.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase_spew_.spewFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5label.o 597752197 0 10 100666 994 ` tTHٱnm @=є0" ɱHp,<p0,b0@=є0ɱHߺ @(#)label.c 4.1 (Berkeley) 6/27/83` ` `,4`,4` `,T#@$Header:label.c 12.0$<d p@(@,P2 PJ Pf P P P P t!x)08>EKRW\af,kp,uz,.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_spew_.spew_xnowFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7line.o 597752204 0 10 100666 4728 ` LH١nl0m@jPk b l bЍm b e bcdЍ:ɡ<ߨAnl0m be 03 "dЍ 4! ّnx j m0i@lPbcde hX0 0  $b LؐșDؠȪLp)p`-0 bЍLp:p"`20 -@ čɑHߚA>" @(#)line.c 4.1 (Berkeley) 6/27/83|`H>`  H##@` 8 ` Ap ` Il ` Il"` ITx`IXx`$Header:line.c 12.0$ $ ,8@ L T pp~pp  ,"@(@,P0 P4 P8 P<@@@D@HPLPPPTPXP\P`!Pf#P#P#P.#P#P #Pv#P#P"#PF#Pj#P#P#P#P#P#Pb#P#P#P"#Pb#P#P#P"#Pb#P L!P)t/6;AHPU[bjqy|   " A', I16 I;@ IExJIOxTELT.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_move_.move_label_.labelspace.o 597752221 0 10 100666 1235 ` P4 `nmPPPhB\0A l@(#)space.c 4.1 (Berkeley) 6/27/83EE`d2`d2` ,22x` <22 |$Header:space.c 12.0$ p p@0@6 PDP PP PP@ PP@ P!T)x0|7>FLRY^cjot{,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_deltx_delty_space_.space_botx_botyFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4_scalexLSI5LSF5_scaley subr.o 597752228 0 10 100666 4550 ` P "n"0303#, n"03, n "03 K PE, n 2&- '&"  "03, n@Du41 54v4#164,$ 3x0v4#"* 164,4,"4, n 0, nԍe, nB5t(L,A ppB00Can1!21032r1p a Xq!-r1p 0` 4k0㰍m b00!bФ>h p!>i ffg`p!  Ƞ@ȠxĪ Tpq bTpq``` #  gvȠxgvȠGTpq bTpq```fchamm٪pȠ@pgqȠxgqĪהpq bTbTpq` bTc&@-Tq!030#r10 __.SYMDEF 597788266 0 10 100666 1402 ` !(27?H O Y ^ c i p u { FFFFFFF!!!!! #.#.#. #.'#./$6$@$E$K$R&Y&c&h&q&{((((((()))))+|+|+|+|+|-b-b -b-b-b 3'31363=3D3J3P3X3`3k3q3w3}3333.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_del_step_.step_arc_.arc_quad_.quad.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_openvt_.openvt_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_obotx_oboty_botx_boty_scalex_scaley_scaleflag_oloy_ohiy_ohix_cont_.cont_putch_.putchbox.o 597752244 0 10 100666 494 ` hD0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.1 (Berkeley) 6/7/85$Header:box.c 12.0$ * 6 B N@$@(P, P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752247 0 10 100666 357 ` ,HlnB0A11e041 \@(#)circle.c 5.1 (Berkeley) 6/7/85$Header:circle.c 12.0$@(@,P ,!0)T1:?E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_arc_.arc arc.o 597752241 0 10 100666 4992 ` @ P8n.anPf g04A5QFXW0Tx01! ! q! q!t0iujbc p!t!3!uQR 1!!1!b`cpuQtAl b`cpsQA2!!&m s!'x Ȁ(/|)yȀ(| b'0T0(8p`ip`i {z{z  Ȁ!1!bc0krq!!r "RP//$"p!ladp!adb&0Td(p`ip`i {z{z Ȁ!1!bc0krMq!!N, U"fP//s! >ads! 7ad x yv!3!ddddddddddja<,$5 鏤!鏤$$5鏤"鏤#5鏤"鏤$ 8@(#)arc.c 5.2 (Berkeley) 6/23/85l 4`<<`8l`EKR.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_move_.move_cont_.contmove.o 597752269 0 10 100666 426 ` 8L nl m0 bcЍ4! l@(#)move.c 5.1 (Berkeley) 6/7/85$Header:move.c 12.0$ @(@,P0 P 8!<)`/6=EKR.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_putch_.putch_cont_.contspace.o 597752278 0 10 100666 1562 ` t\hnmPPPhPUP 0B@d0A L@(#)space.c 5.1 (Berkeley) 6/7/85`d2`d2`t"DC`,l` ,L2`<l ` <L2$Header:space.c 12.0$pp, p@(@. P< P PP Pj P PP" P PP t!x)08>DOV[`glqx},,<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_botx_boty_scaleflagFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4LSI5LSF5LSI6LSF6_scalexLSI7LSF7LSI8LSF8_scaleysubr.o 597752282 0 10 100666 2318 ` x0ّn tL`` `0ŐŢų.-l .),&<l  ) Dݞ +`8- 2ݾ +`"ݾ*@ ```ɑ@ߘ!n@Du41 54v4#164,$ 3x0v4#"* 164,4,"4, @(#)subr.c 5.1 (Berkeley) 6/7/85??`,}h2`,}l2`,}l2`,}@`}h2`}l2`}l2`}@$Header:subr.c 12.0$Xhv'pn))@L@PPT@ZPl@P@.P<@PP@BPP@P@PX@\(P !)07=CKS^djpv},},},},}}}}}.oVncs.oVhc2.1n.oVO_rcsid_sccsid_obotx_oboty_botx_boty_scalex_scaley_scaleflag_oloy_ohiy_ohix_cont_.cont_abs_.absldiv$$_putch_.putchFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9__iob__flsbuf_._flsbuf#]loI ?#j#j#j0@ ! __.SYMDEF 597788271 0 10 100666 1450 ` !(27?H O Y ^ c i p u { zzzzzzz     !L!L!L!L!L ### #(#1#8#@%G%Q%V%\%c'j't'y'')))))))+>+>+>+>+>- - - - -  ///"/)/15\85\B5\G5\N5\U5\[5\a5\i5\q5\|5\5\5\5\5\5\5\5\.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_del_step_.step_arc_.arc_quad_.quad.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_lbl_mv_lbl_umv_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_openvt_.openvt_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_obotx_oboty_botx_boty_scalex_scaley_scaleflag_oloy_ohiy_ohix_oextra_cont_.cont_putch_.putchbox.o 597752301 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 4.1 (Berkeley) 6/27/83$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752304 0 10 100666 357 ` ,HlnB0A11e041 \@(#)circle.c 4.1 (Berkeley) 6/27/83$Header:circle.c 12.0$@(@,P ,!0)T1:?E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_arc_.arc arc.o 597752296 0 10 100666 4992 ` @ P8n.anPf g04A5QFXW0Tx01! ! q! q!t0iujbc p!t!3!uQR 1!!1!b`cpuQtAl b`cpsQA2!!&m s!'x Ȁ(/|)yȀ(| b'0T0(8p`ip`i {z{z  Ȁ!1!bc0krq!!r "RP//$"p!ladp!adb&0Td(p`ip`i {z{z Ȁ!1!bc0krMq!!N, U"fP//s! >ads! 7ad x yv!3!ddddddddddja<,$5 鏤!鏤$$5鏤"鏤#5鏤"鏤$ 8@(#)arc.c 4.3 (Berkeley) 6/23/85l 4`<<`8l` p@(@,P T!X)|08?GMS[a.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase_putch_.putch_ohiy_ohix_oextra_oloy label.o 597752316 0 10 100666 532 ` xpnl ؔ bbؔ@ bb@ bb4 @(#)label.c 4.1 (Berkeley) 6/27/83 HHHHHHJJJJJJJJJJ DDDDDDEEEEEEEEEE$Header:label.c 12.0$ 6 T @P@T P x!|)1:AIPX.oVncs.oVhc2.1n.oVO_rcsid_sccsid_lbl_mv_lbl_umv_label_.label_putch_.putchline.o 597752318 0 10 100666 420 ` 4L nl@mPbcЍ4A h@(#)line.c 4.1 (Berkeley) 6/27/83$Header:line.c 12.0$ @(@,P0 P 4!8)\/6<CIP.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line_move_.move_cont_.contlinemod.o 597752321 0 10 100666 455 ` |Llnl @ dC d adbE c `l s bЍ4 @(#)linemod.c 4.1 (Berkeley) 6/27/83$Header:linemod.c 12.0$d@,@0P |!)2<CK.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemod_putch_.putch open.o 597752327 0 10 100666 323 `  Hl<@(#)open.c 4.1 (Berkeley) 6/27/83$Header:open.c 12.0$@(@,@  !)41:8BK.oVncs.oVhc2.1n.oVO_rcsid_sccsid_openvt_.openvt_openpl_.openpl point.o 597752330 0 10 100666 422 ` 4L nl m0bcЍ4! h@(#)point.c 4.1 (Berkeley) 6/27/83$Header:point.c 12.0$ @(@,P0 P 4!8)\08>EKR.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_move_.move_cont_.contmove.o 597752324 0 10 100666 426 ` 8L nl m0 bcЍ4! l@(#)move.c 4.1 (Berkeley) 6/27/83$Header:move.c 12.0$ @(@,P0 P 8!<)`/6=EKR.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_putch_.putch_cont_.contspace.o 597752334 0 10 100666 1562 ` t\hnmPPPhPUP 0B@d0A L@(#)space.c 4.1 (Berkeley) 6/27/83`d2`d2`t"EC`,l` ,L2`<l ` <L2$Header:space.c 12.0$pp, p@(@. P< P PP Pj P PP" P PP t!x)08>DOV[`glqx},,<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_botx_boty_scaleflagFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4LSI5LSF5LSI6LSF6_scalexLSI7LSF7LSI8LSF8_scaleysubr.o 597752339 0 10 100666 2430 ` |0فn tL`` ŀ`0Ő` Š`0Ű232 .(m .)-&<m  ) fݞ  ,`V+`N( Hݎ&ݾ ,`8+`2ݾ +`"ݾ*@Г Г```ɁD߈!n@Du41 54v4#164,$ 3x0v4#"* 164,4,"4, \@(#)subr.c 4.1 (Berkeley) 6/27/83??T`,h2 `,l20`,l2(`,@`h2$`l24`l2,`@f$Header:subr.c 12.0$jzr(p**@P@TPX@^Pp@P@2P@@PP@FPT@P@P\@`)P !) 0$7(=,C0K4S^8d<j@pDxH~Tf,,,, .oVncs.oVhc2.1n.oVO_rcsid_sccsid_obotx_oboty_botx_boty_scalex_scaley_scaleflag_oloy_ohiy_ohix_oextra_cont_.cont_abs_.absldiv$$_putch_.putchFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9__iob__flsbuf_._flsbuf#]loI` Q#n#n#n8HX*! __.SYMDEF 597788275 0 10 100666 1840 ` ttttt!(27<B I S X ` i $p $z $ $ $ $ $.....!&,3:BHO&V&`&e&n&x(((((**************** ***!*)*1*:*B*K3xR3x\3xa3xh3xp5\w5\5\5\5\;;;;;;;;;;;;;;; ;; ;';/;6;>;D;K;R;Z;_;e;j;p.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line_iline_.iline_cont_.cont.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_xnow_ynow_OUTF_ITTY_PTTY_HEIGHT_WIDTH_OFFSET_xscale_xoffset_yscale_botx_boty_obotx_oboty_scalex_scaley_openpl_.openpl_openvt_.openvt.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_abval_.abval_xconv_.xconv_yconv_.yconv_inplot_.inplot_spew_.spew_outplot_.outplot_tobotleft_.tobotleft_reset_.reset_dist2_.dist2_swap_.swap_movep_.movep_xsc_.xsc_ysc_.yscarc.o 597752346 0 10 100666 256 ` @T4@(#)arc.c 4.1 (Berkeley) 6/27/83$Header:arc.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arcbox.o 597752349 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 4.1 (Berkeley) 6/27/83$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752351 0 10 100666 266 ` DT4@(#)circle.c 4.1 (Berkeley) 6/27/83$Header:circle.c 12.0$@(@ ! )01:.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circleclose.o 597752355 0 10 100666 561 ` XT0nԍ , n , @(#)close.c 4.1 (Berkeley) 6/27/83"$Header:close.c 12.0$. p8 @ @(@,@0@4 P8 P X!\)2<E"OU]fmu.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closevt_.closevt_closepl_.closepl__iob_fflush_.fflush_reset_.reset dot.o 597752357 0 10 100666 256 ` @T4@(#)dot.c 4.1 (Berkeley) 6/27/83$Header:dot.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752362 0 10 100666 804 ` D48ٱn *t ɱHߺ `@(#)erase.c 4.1 (Berkeley) 6/27/83` `<T#@P`d ` $Header:erase.c 12.0$@(@,P2 PJ P P P D!H)l08>ELQV<[`ejot.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase_spew_.spewFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5label.o 597752367 0 10 100666 419 ` PHxnl @, 4p 0 @, 4 @(#)label.c 4.1 (Berkeley) 6/27/83$Header:label.c 12.0$$@ p@(@,P P!T)x08>EK.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_spew_.spew_xnow line.o 597752372 0 10 100666 4488 ` h8١nl0m@jPk b l bЍm b e bcdЍ:ɡ<ߨAnl0m be 03 "dЍ 4! qnp l m0j@kPbcde hL$ Ƞ x p  a4 $ h@(#)line.c 4.1 (Berkeley) 6/27/83|`H>` !D##@`!4` l ` l ` l"` Tx`$Header:line.c 12.0$ $ ,8@ L T ppxpp  8 F"@(@,P0 P4 P8 P<@@@D@HPLPPPTPXP\P`!Pf#P#P#P&#P#P#Pj#P#P#P6#PZ#P#P#P#Pz#P#PR#P#P#P#PR#P#P#P h!l)/6;AHPU[bjqy| !!" ', 16 ;@ ExJ<OxT<Z~`<fl<rx<~z<!PP@p@t@ !)/5;AG$O(V,^fow0}48<@DH     $, )., 38, =B, HNlV_.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xnow_ynow_OUTF_ITTY_PTTY_HEIGHT_WIDTH_OFFSET_xscale_xoffset_yscale_botx_boty_obotx_oboty_scalex_scaley_openpl_.openpl_printf_.printf_gtty_.gtty_reset_signal_.signal_stty_.sttyFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10_openvt_.openvt point.o 597752385 0 10 100666 424 ` 0P nԍ. ,! h@(#)point.c 4.1 (Berkeley) 6/27/83.$Header:point.c 12.0$  @(@0P4 P 0!4)X08>ELT.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_move_.move_label_.labelspace.o 597752388 0 10 100666 1515 ` dPhnmPPPhB@d0A <@(#)space.c 4.1 (Berkeley) 6/27/83`d2`d2`t"E`,l` ,L2`<l ` <L2$Header:space.c 12.0$pp@(@. P< P PP Pj P PP" P PP d!h)08>DKPU\afmrw,|,<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_botx_botyFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4LSI5LSF5LSI6LSF6_scalexLSI7LSF7LSI8LSF8_scaley subr.o 597752396 0 10 100666 5461 `  "n"0303#, n"03, n 5 3/, n  4 , nД+hu=1 5=v-!6- $ #x  v-! 6-= u=*1 5=v=#16=0 $ 3x 0v=#"* 16=0=0"=0u= n 0, nԤ"1E "03 , nB5t(L,A ppB00Cفnh i0p,p ɁD` -L c2 `(Ȱ \0,bnj bL```p,(Yj  bL```pp-c2`)\0-b!j bL```p-) j = bqL```Dp00ɁDO߈!nlD, nl, |@(#)subr.c 4.1 (Berkeley) 6/27/83BlL`(p`<l`<$@`<$`<$`<4#` 1T#@` 14`14 `4 `<``<4` 1T#@ `@ >`<h2`<l2`<l2`<@p`<h2`<l2`<l2$Header:subr.c 12.0$ p$ * pRpX pp>p !"p&#p,%4';p<"(/<5;C<IOU<[a 8fpl<rx<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_abval_.abval_xconv_.xconv_xscaleldiv$$_xoffset_yconv_.yconv_yscale_inplot_.inplot_spew_.spew_outplot_.outplot__iob_fflush_.fflush__flsbuf_._flsbuf_tobotleft_.tobotleft_move_.move_reset_.reset_signal_.signal_OUTF_ITTY_stty_.stty_exit_.exit_dist2_.dist2FPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7_swap_.swap_movep_.movep_xnow_ynowLSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15_xsc_.xscLSI16LSF16_obotxLSI17LSF17_scalexLSI18LSF18_botxLSI19LSF19_ysc_.yscLSI20LSF20_obotyLSI21LSF21_scaleyLSI22LSF22_boty #]loI  ,,#q#r#rP` ! __.SYMDEF 597788279 0 10 100666 1364 ` !(27<B I S X ` i p z  VVVVV  ! & , 3 9 @lGlQlVl_lipz@@@@@@@@@@@@@@@@((((($ + 5 : A H O W%^%h%m%r%x%}%.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closevt_.closevt_closepl_.closepl.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line_cont_.cont.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_xnow_ynow_boty_botx_oboty_obotx_scalex_scaley_vti_openvt_.openvt_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_deltx_delty_space_.space.oVncs.oVhc2.1n.oVO_xsc_.xsc_ysc_.yscarc.o 597752403 0 10 100666 428 ` XDxn;A @(@,P X!\).49@H.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arc_vti_write_.writebox.o 597752406 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 4.1 (Berkeley) 6/27/83$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752409 0 10 100666 438 ` XHxn9!:1;A @(@,P X!\)08=DL.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_vti_write_.writeline.o 597752423 0 10 100666 805 ` X`8ٱnk0l@mP1!b2!b/3!bЍ/4! "1I ɱL߸Anl0m be 03 "dЍ4! @(#)line.c 4.1 (Berkeley) 6/27/83x$Header:line.c 12.0$ ,6 p@ J pT p` p p@(@,P0 P4P8@<@ !)/6;AFLRX]dlrxy.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line_xsc_.xsc_ysc_.ysc_xnow_ynow_vti_write_.write_cont_.cont linmod.o 597752426 0 10 100666 268 ` DT4@(#)linmod.c 4.1 (Berkeley) 6/27/83$Header:linmod.c 12.0$@(@ ! )02<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemodmove.o 597752429 0 10 100666 592 ` \P0(nm0 /1!bЍ/2! "1E <!@(#)move.c 4.1 (Berkeley) 6/27/83$Header:move.c 12.0$ p$ . p8 pD@(@,P0 P4P \!`)/6;AGLRX]dl.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_xsc_.xsc_xnow_ysc_.ysc_ynow_vti_write_.writeopen.o 597752433 0 10 100666 683 ` X n.1., n.1., @(#)open.c 4.2 (Berkeley) 11/10/83??/dev/vt0,/dev/vt0$Header:open.c 12.0$<@D@TPX@ X!\)/5;AHOW_dlu{,.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xnow_ynow_boty_botx_oboty_obotx_scalex_scaley_vti_openvt_.openvt_open_.open_openpl_.openpl point.o 597752436 0 10 100666 594 ` \P0(nm0/1!bЍ/2! "1E <!@(#)point.c 4.1 (Berkeley) 6/27/83$Header:point.c 12.0$ p$ . p8 pD@(@,P0 P4P \!`)08=CINTZ_fn.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_xsc_.xsc_xnow_ysc_.ysc_ynow_vti_write_.writespace.o 597752439 0 10 100666 1235 ` P4 `nmPPPhB\0A l@(#)space.c 4.2 (Berkeley) 11/10/83EE`d2`d2` ,22x` <22 |$Header:space.c 12.0$ p p@0@6 PDP PP PP@ PP@ P!T)x0|7>FLRY^cjot{,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_deltx_delty_space_.space_botx_botyFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4_scalexLSI5LSF5_scaley subr.o 597752443 0 10 100666 1578 ` dhnlD, nl, T@(#)subr.c 4.1 (Berkeley) 6/27/83`<h2`<l2`<l2`<@2`<h2`<l2`<l2$Header:subr.c 12.0$@(@.P@ PP PPPnP@PPP(PPP d!h).4;<@EL<QV^<chn<sx}2<<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xsc_.xscFPGLUELSI2LSF2_obotxLSI3LSF3_scalexLSI4LSF4_botxLSI5LSF5_ysc_.yscLSI6LSF6_obotyLSI7LSF7_scaleyLSI8LSF8_boty#]*loI 3#u#v#vhx ! __.SYMDEF 597788283 0 10 100666 1328 ` ttttt!(27<BISX`i p z  |||||\\\\\ff fff 6'61666<6CJTYbl"s"}"""$$$$$$$$$$$$) ) ) ) ) ,,,,%,-/"4/">/"C/"I/"P/"Y/"c/"m/"x.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closepl_.closepl.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_dbuf_sgttyb_curx_cury_xbot_ybot_scale_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_chex_.chex_outxy20_.outxy20_setcolor_.setcolorarc.o 597752447 0 10 100666 256 ` @T4@(#)arc.c 5.2 (Berkeley) 4/30/85$Header:arc.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arcbox.o 597752450 0 10 100666 494 ` hD0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.3 (Berkeley) 6/5/85$Header:box.c 12.0$ * 6 B N@$@(P, P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752455 0 10 100666 994 ` `P@ّni j0k@.u,! 5,v,Q!6,  $ "x  v,Q!6,  QcЍ bcu,! 5,v,O!6, $ "x  v,O! 6, OcЍ "c,lcBbcЍbЍɑDߘ1\@(#)circle.c 5.2 (Berkeley) 4/30/8501$Header:circle.c 12.0$ pr ~ p@(@0P4 P8 P<P@PDP !)<1:DOU^hq{.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_setcolor_.setcolor__iob__flsbuf_._flsbuf_outxy20_.outxy20_scalelmul$$_chex_.chex_fputs_.fputs_fflush_.fflushclose.o 597752459 0 10 100666 583 ` TX((n.cЍ bЍ &03b4 @(#)close.c 5.2 (Berkeley) 4/30/85Q00204$Header:close.c 12.0$p & 4 p<@(@4P8 P< P T!X)|2<BIQYbjpw.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closepl_.closepl__iob_fputs_.fputs_fflush_.fflush_sgttyb_stty_.stty cont.o 597752464 0 10 100666 419 ` 8Hnd e003 ",! h@(#)cont.c 5.3 (Berkeley) 4/30/85$Header:cont.c 12.0$pp @(@, P 8!<)`/6<BHO.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont_.cont_cury_curx_line_.line dot.o 597752467 0 10 100666 256 ` @T4@(#)dot.c 5.3 (Berkeley) 4/30/85$Header:dot.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752472 0 10 100666 914 ` 4XH0n.u  5 X . cЍ\S>bЍX . cЍ\<>(bЍX .4cЍ\%>P p\ l~ p  p p @,@P P P !)$2<DMSZbjs.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemod_strcmp_.strcmp__iob_fputs_.fputs_fflush_.fflush move.o 597752488 0 10 100666 330 ` DlP%P5D@(#)move.c 5.2 (Berkeley) 4/30/85$Header:move.c 12.0$p p@(@ !)@/6<B.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_curx_curyopen.o 597752492 0 10 100666 1209 ` P@١n,&cЍ4R " ,&cЍ8"03b<.c@. c@ȮФmp*cФBDbc@ .(c@bHɡ@ߨ@(#)open.c 5.2 (Berkeley) 4/30/85}}}G1HHHN[00LFFCFFMFFFFFFFFK0004^15060AL$Header:open.c 12.0$ pp :JpR`n p p ppp@X@PPPPPP !)/7=CIOV ^Pfou{.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dbuf_sgttyb_curx_cury_xbot_ybot_scale_colors_openpl_.openpl__iob_gtty_.gtty_stty_.stty_setbuf_.setbuf_fputs_.fputs_chex_.chex_fflush_.fflush point.o 597752497 0 10 100666 841 ` `@8ٱnl m0. 03u#! 5#v#Q!6# ȳ$ "x  v#Q!6# ȳȳ QcbcЍ.cbɱ8߸!@(#)point.c 5.2 (Berkeley) 4/30/8501O01$Header:point.c 12.0$ pp | pp@(@4P8 P< P@PDP !)08BMS\foy.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_setcolor_.setcolor__iob__flsbuf_._flsbuf_outxy20_.outxy20_fputs_.fputs_fflush_.fflush_curx_cury space.o 597752501 0 10 100666 598 ` DHفnh m0i@jPc8 "k c= "0,0pb#.:00 "c!c`0P "c!c`0PɁD߈A@(#)space.c 5.2 (Berkeley) 4/30/85$Header:space.c 12.0$0:pHpZv p p@(@ !)08?FLR.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.spaceldiv$$_scale_xbot_ybotsubr.o 597752506 0 10 100666 1164 ` |P@ncC@ e1$A 1١nl j003<bЌl "*cЌj ` ` ȱ cA bcB bcФB >0bdeɡLߨ!nD@Bд@E>A ?NA03u#! 5#v#L!6# $ "x  v#L!6#  LcЍ.cЍ 00 @(#)subr.c 5.2 (Berkeley) 4/30/850123456789ABCDEF0%s%s%sxx$Header:subr.c 12.0$@ pJ pR \ pf ppbp@<@@@L@PPT@\P`P !).4;D0NT[bhnw.oVncs.oVhc2.1n.oVO_rcsid_sccsid_hex_chex_.chex_outxy20_.outxy20_xbot_scalelmul$$_ybot__iob_fprintf_.fprintf_setcolor_.setcolor__flsbuf_._flsbuf_fputs_.fputs#]8loI\ Sl#y#z#zp*! __.SYMDEF 597788287 0 10 100666 1160 ` X!(27?HOY^ci%p%z%%%,J,J,J,J,J-----0D0D0D0D0D;;; ;;<%</<4<;<C>J>T>Y>`>h@lo@ly@l~@l@lG$G$G$G$G$G$G$G$G$G$IIIIIL LLLL(.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_currentx_currenty_lowx_lowy_scale_openpl_.openpl.oVncs.oVhc2.1n.oVO_closepl_.closepl.oVncs.oVhc2.1n.oVO_space_.spacebox.o 597752511 0 10 100666 498 ` hH0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.2 (Berkeley) 4/30/85$Header:box.c 12.0$ * 6 B N@(@,P0 P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752514 0 10 100666 393 ` HHl١nj k0lJm01de01bcdeɡDߨ1x@(#)circle.c 5.2 (Berkeley) 4/30/85$Header:circle.c 12.0$0@(@,P H!L)p1:?E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_arc_.arc arc.o 597752523 0 10 100666 7318 `  anD h i01A0Q "| "Xh "TDx!j!4Xh{bc3!bcЌs  @ bcapDX hpi` bpcg b`cЌrpb`p Ȑ p1q!pw؀Ȉ L ``*0 ``+0u,! 5,v,!6, $ "x  v,! 6,< pHp7bЍ  ( T`  `apja?/@(#)arc.c 5.2 (Berkeley) 4/30/85:%d;%dd`\?(`7=T3`7=4`7=To3`5`7=T/#?`5`7=4 `7T3`74 `7`7`74 `? 4`? 4 `?40`?4 `?4`?`?`?4`=4`=4`,P#`<T#`<T#?`<<`t?(`<`<(#`  (#` <(#``>4`>``H`@`H````,3 `,3`X3``t?($Header:arc.c 12.0$p.pT p  $H t ~ pppVd@(@4 P8 P<P@PDPJPPP.PPPPP*P~PPPPP:PnPPP PP*P^PPPPjPPPnPPPPPJPPP:PPPP 2P P P vP P P P P P P P *P >P RP ~P P P P !).4:AGNT[bjpw7=7=7=o57=/57=77 &7,278>7DJ? PV? \b?hn?tz????==,<<<< < "<(.>>H@H $*06<BHNTZ`f.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arc_lowx_scale_lowylmul$$_sqrt_.sqrt_point_.point_move_.move_currentx_currenty__iob__flsbuf_._flsbuf_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21LSI22LSF22LSI23LSF23LSI24LSF24LSI25LSF25LSI26LSF26LSI27LSF27LSI28LSF28LSI29LSF29LSI30LSF30LSI31LSF31LSI32LSF32LSI33LSF33LSI34LSF34LSI35LSF35LSI36LSF36LSI37LSF37LSI38LSF38LSI39LSF39LSI40LSF40LSI41LSF41LSI42LSF42LSI43LSF43LSI44LSF44LSI45LSF45LSI46LSF46LSI47LSF47LSI48LSF48LSI49LSF49LSI50LSF50LSI51LSF51LSI52LSF52LSI53LSF53LSI54LSF54LSI55LSF55LSI56LSF56LSI57LSF57LSI58LSF58LSI59LSF59LSI60LSF60cont.o 597752527 0 10 100666 1660 ` $@hٱn@D, "|4D0, "x4D0-03u#! 5#v#!6#$ "x  v#! 6#3  pMp<.ɱHߺ! @(#)cont.c 5.2 (Berkeley) 4/30/85:%d;%dd` `,P3`,T`3`,`,T@#?`,`,4`<P3` $Header:cont.c 12.0$p pF pP pp pz p@(@4 P8P>PVPPP P^PnPPP !)/6<CMS]clv~,,`,,@,,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont_.cont_lowx_scale_currentx_lowy_currenty__iob__flsbuf_._flsbuf_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11dot.o 597752531 0 10 100666 256 ` @T4@(#)dot.c 5.2 (Berkeley) 4/30/85$Header:dot.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752535 0 10 100666 642 ` T( nu-! 5-v-!6- $ "x  v-! 6-=  .u-! 5-v-!6- $ "x  v-! 6-=  .0 @(#)erase.c 5.2 (Berkeley) 4/30/85[H[J$Header:erase.c 12.0$ pV b @(@4P8 P !)08>GQYb.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase__iob__flsbuf_._flsbuf_printf_.printfline.o 597752540 0 10 100666 2838 ` 0LXٱn l@mP@D0@D  tPUE%@D tObcЍTɱHE#@D`pPUE ɱHbcЍɱHߺA0 d@(#)line.c 5.2 (Berkeley) 4/30/85`$0` T3` 4` TP3` ` T#?`` 4`T3``8`,0`80 `0`0`80` P0 3` p` ` 4`,0`,0$Header:line.c 12.0$p*pP p\ p| p p p  @(@, P0P6PZPPP6PJPPPP6PFP~PPPPP:PPPPP P 0!4)X/6<CMS]cjpw~   P   0 00"(0. 40: @pF LR X^djpv.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line_lowx_scale_currentx_lowy_currenty_cont_.cont_move_.moveFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21LSI22LSF22LSI23LSF23linemod.o 597752542 0 10 100666 272 ` HT8@(#)linemod.c 5.2 (Berkeley) 4/30/85$Header:linemod.c 12.0$@,@ ! )42<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemodpoint.o 597752545 0 10 100666 424 ` 0P nԍ. ,! h@(#)point.c 5.2 (Berkeley) 4/30/85.$Header:point.c 12.0$  @(@0P4 P 0!4)X08>ELT.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_move_.move_label_.labellabel.o 597752548 0 10 100666 361 ` (Llnc ., \@(#)label.c 5.2 (Berkeley) 4/30/85%s$Header:label.c 12.0$@(@0P (!,)P08@I.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_printf_.printf move.o 597752552 0 10 100666 1660 ` $@hٱn@D, "|4D0, "x4D0-03u#! 5#v#!6#$ "x  v#! 6#3  pMp<.ɱHߺ! @(#)move.c 5.2 (Berkeley) 4/30/85:%d;%dm` `,P3`,T`3`,`,T@#?`,`,4`<P3` $Header:move.c 12.0$p pF pP pp pz p@(@4 P8P>PVPPP P^PnPPP !)/6<CMS]clv~,,`,,@,,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_lowx_scale_currentx_lowy_currenty__iob__flsbuf_._flsbuf_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11open.o 597752556 0 10 100666 614 ` Ll n03" 0@P, @(#)open.c 5.2 (Berkeley) 4/30/85?$Header:open.c 12.0$ p2@H@L PPP L!P)t3x=|CIPXajr{.oVncs.oVhc2.1n.oVO_rcsid_sccsid_currentx_currenty_lowx_lowy_scale_openpl_.openpl_closepl_signal_.signal_space_.spaceclose.o 597752559 0 10 100666 676 ` X(0nԤ"103u#! 5#v#!6#$ "x  v#! 6#3  . , @(#)close.c 5.2 (Berkeley) 4/30/85[H$Header:close.c 12.0$ pb n x@(@0P4 P8 P<P !)2<DMS\fnw}.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closepl_.closepl_signal_.signal__iob__flsbuf_._flsbuf_printf_.printf_exit_.exitspace.o 597752564 0 10 100666 1674 ` xٱn "| "0d$ "4\ɱHߺA (@(#)space.c 5.2 (Berkeley) 4/30/85` ` ``,`3````( 3`4` (#@`4` (#@`<@`<`(3` $Header:space.c 12.0$p,pb p@(@. PF P P P2 PZ P P P P PN P^ P P !)08>DKRW\ afk`pu`z @<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_lowx_lowy_scaleFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14#]NloIс /#}#~#~ ! __.SYMDEF 597788291 0 10 100666 1308 ` `````!(27<BISX`i p z    (((((       z'z1z6z<zCJTYbl4s4}444 J J J J J##d*#d4#d9#d@#dH%8O%8Y%8^%8h%8t.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closepl_.closepl.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_minX_rangeX_minY_rangeY_currentx_currenty_COLS_LINES_screenmat_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_dda_line_.dda_linearc.o 597752569 0 10 100666 252 ` <T0@(#)arc.c 5.1 (Berkeley) 5/7/85$Header:arc.c 12.0$@$@ ! ),.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arcbox.o 597752572 0 10 100666 494 ` hD0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.1 (Berkeley) 5/7/85$Header:box.c 12.0$ * 6 B N@$@(P, P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752575 0 10 100666 266 ` DT4@(#)circle.c 5.1 (Berkeley) 5/7/85$Header:circle.c 12.0$@(@ ! )01:.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circleclose.o 597752579 0 10 100666 695 ` X8(qnذȻp .Ȏp ~`   ` b @2bp p b p ڤ"1 qHx@(#)close.c 5.1 (Berkeley) 5/7/85%c $Header:close.c 12.0$pp0 pR d x @(@4 P8 P<P !)2<CIT\emv|.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closepl_.closepl_LINES_COLS_screenmat_printf_.printf_signal_.signal_exit_.exit cont.o 597752582 0 10 100666 439 ` <Hne @D01 *c0! l@(#)cont.c 5.1 (Berkeley) 5/7/85$Header:cont.c 12.0$pp$ @(@, P <!@)d/6@JT_.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont_.cont_currenty_currentx_dda_line_.dda_line dot.o 597752585 0 10 100666 252 ` <T0@(#)dot.c 5.1 (Berkeley) 5/7/85$Header:dot.c 12.0$@$@ ! ),.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752588 0 10 100666 444 ` hDxФp%PUp%dЪBMAMBMA0 bNb2p% ```pѴ @(#)erase.c 5.1 (Berkeley) 5/7/85$Header:erase.c 12.0$pp: p@(@ h!l)08>EP.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase_COLS_LINES_screenmatlabel.o 597752591 0 10 100666 541 ` D0@” 6pp?@DeR^Q^R^Qp4c5cÑ!p0@” p? 0 03p퉏p?@(#)label.c 5.1 (Berkeley) 5/7/85$Header:label.c 12.0$ pp$ p, pvp~p@(@ !)08BHR].oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_currentx_COLS_currenty_screenmat line.o 597752596 0 10 100666 821 ` Hpّnj k0l@mP "c0303k2 "c0303j2ݯݿ`   b *0 *cdeɑDߘA@(#)line.c 5.1 (Berkeley) 5/7/85$Header:line.c 12.0$p & p, 2 p> pFL pR Xpbpjpp@(@,P !)/6=DLSY_gmw.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line_LINESlmul$$_rangeYldiv$$_minY_COLS_rangeX_minX_currentx_currenty_screenmat_dda_line_.dda_line linemod.o 597752599 0 10 100666 268 ` DT4@(#)linemod.c 5.1 (Berkeley) 5/7/85$Header:linemod.c 12.0$@(@ ! )02<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemodmove.o 597752602 0 10 100666 669 ` |D`ٱnk l0 "c0303l2 "c0303k2PݵPɱ8߸!@(#)move.c 5.1 (Berkeley) 5/7/85$Header:move.c 12.0$p" p( . p: pBH pN Tp^pfp@(@ |!)/6=DLSY_gmw.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_LINESlmul$$_rangeYldiv$$_minY_COLS_rangeX_minX_currentx_currenty open.o 597752606 0 10 100666 1023 ` d,X0n.c b.   0!0-.PU0%Z Z0%  0%p  dBLALBLA0 bOb2p% ```p 03" 4A @@(#)open.c 5.1 (Berkeley) 5/7/85TERMcoli$Header:open.c 12.0$&0 pPZ p pp p p@(@<P@PDPHP !)/7=EOY_f.hqy.oVncs.oVhc2.1n.oVO_rcsid_sccsid_minX_rangeX_minY_rangeY_currentx_currenty_COLS_LINES_screenmat_openpl_.openpl_getenv_.getenv_tgetent_.tgetent_tgetnum_.tgetnum_closepl_signal_.signal point.o 597752609 0 10 100666 734 ` Dhٱnk l0 "c0303l2 "c0303k2PݵP`   b *Rɱ8߸!@(#)point.c 5.1 (Berkeley) 5/7/85$Header:point.c 12.0$p" p( . p: pBH pN Tp^pfpp@(@ !)08?FNU[aioy.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_LINESlmul$$_rangeYldiv$$_minY_COLS_rangeX_minX_currentx_currenty_screenmatspace.o 597752612 0 10 100666 408 ` ,D `PP%BPEP5PX@(#)space.c 5.1 (Berkeley) 5/7/85$Header:space.c 12.0$pp p p@(@ ,!0)T08>FLT.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_minX_rangeX_minY_rangeYsubr.o 597752617 0 10 100666 2601 ` X|qnp h0j@kP03!0303l2 "c0303k2bi b)bi  HqH(\8ذȻ؀Ȉ(8`0{dp0,`@`bҐ (qHzQ<$@(#)subr.c 5.1 (Berkeley) 5/7/85`<<`L<`=` ` =4| ` =4 `=T#?`=4p`=4 `=`=`=(#`-P#`,(#`,P#`L<$Header:subr.c 12.0$p*0 p6 < pH pPV p\ bpn|ppp@(@,P0P6PrPPPRPPPPBPRPbPPPPRP X!\)3>ELT[agouz==|===p== ==#)-/5,;A,GMSY.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dda_line_.dda_line_LINESlmul$$_rangeYldiv$$_minY_COLS_rangeX_minX_abs_.abs_currentx_currenty_screenmat_floor_.floorFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16 #][loIc} K###&! __.SYMDEF 597788295 0 10 100666 1176 ` `!X(X2X7X<XBISX`ipz66666 n n n n n"" """ %^'%^1%^6%^<%^C2*J2*T2*Y2*b2*l4s4}444;;;;;;;;;;;????? EEE!E(E0.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closepl_.closepl.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_currentx_currenty_lowx_lowy_scalex_scaley_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_space_.spacearc.o 597752624 0 10 100666 3135 ` HHan` g h0i@jPlpbck mbcЌ!)c f !*c &P$hPbc0!bcpp12bDx10!(!0 bpc.cdeaTja8(@(#)arc.c 5.1 (Berkeley) 5/7/85C(A%d c)[%d,%d]`08 `\# @` .4`.D##?`>D##@L``>T#?`>4 `>` `>` `>``>4H`> 4@ `> H`> H`> T#`> <@`. `P`. 4``. p`. `. <`<8 $Header:arc.c 12.0$ .<Jb  ( @$@8P< P@ PFPvPPPJPPPPvPP6PjPPPPPNPPPPP>P H!L)l.4;AHNU]fmrw|..>>>>>>>H> @> H> H>  > @. %P+. 1`7. =pC. IO. U[ag.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arclmul$$_acos_.acos_move_.move_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21LSI22LSF22LSI23LSF23LSI24LSF24 box.o 597752629 0 10 100666 494 ` hD0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.1 (Berkeley) 5/7/85$Header:box.c 12.0$ * 6 B N@$@(P, P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752632 0 10 100666 515 ` HX(nm@  0.cЍ01 @(#)circle.c 5.1 (Berkeley) 5/7/85C[%d]$Header:circle.c 12.0$" 0 @(@4P8 P< P H!L)p1:AIOV^g.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_point_.point_move_.move_printf_.printf close.o 597752636 0 10 100666 683 ` P((nФ"1u=1 5=v-!6- $ #x  v-! 6-= u=1 5=v-\!6- $ #x  v-\! 6-= \  0 @(#)close.c 5.1 (Berkeley) 5/7/85$Header:close.c 12.0$ pb @(@,P0 P4 P !)2<DMS\fls.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closepl_.closepl_signal_.signal__iob__flsbuf_._flsbuf_exit_.exit cont.o 597752640 0 10 100666 1616 ` 8`n@D "d _ "P " O.cP,!  @(#)cont.c 5.1 (Berkeley) 5/7/85V[%d,%d]`,P3`,T3`,T@#?`(`,4`8P3`8T3`8(#@}`84$Header:cont.c 12.0$ pp: pB pP pp p|@(@8 P>PPP6PFPzPPPFP !)/6<DNT\fnw~,,,@(,8888.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont_.cont_lowx_scalex_currentx_lowy_scaley_currenty_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11dot.o 597752643 0 10 100666 252 ` <T0@(#)dot.c 5.1 (Berkeley) 5/7/85$Header:dot.c 12.0$@$@ ! ),.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752646 0 10 100666 365 ` (Pln. , `@(#)erase.c 5.1 (Berkeley) 5/7/85S(E)$Header:erase.c 12.0$@(@4P (!,)P08@I.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.erase_printf_.printf label.o 597752650 0 10 100666 778 ` H`0 nl .@Lu @ ^ 5 v-B!(6--$" 0x-2v-B4: !6-=b@ u =b@u @,"' 5 v= "#16=-$" 0x-2 v= "#1 6== "u @L@5 v-"!6-4-$"  x  v-"!6-4= "4 @(#)label.c 5.1 (Berkeley) 5/7/85T(S0 H2 D0 I0) "$Header:label.c 12.0$ ph | 0 @(@@PD P H!L)p08@IOXb.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_printf_.printf__iob__flsbuf_._flsbufline.o 597752654 0 10 100666 3215 ` L,hٱn l@mP@D0@D  tPUE,@D@D dtObcЍɱH,<LE*@D@D(P`PUE ɱHbcЍɱHߺA0 `@(#)line.c 5.1 (Berkeley) 5/7/85`$0` T3` 4` TP3` ` T#?`` 4`T3`X3`,#@}`8`,0`80 `p`p`8p` Pp 3` Tp3` (p#@}` ` 4`,0`,0$Header:line.c 12.0$p*pP p\ pj p p p p p*@(@, P0P6PZPPP6PJPPPP6PPPPPVPfPvPPPRPzPPPP L!P)t/6<DNT\flsy   P    0%p+1p7=pC IpO Up[ apg ms y.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line_lowx_scalex_currentx_lowy_scaley_currenty_cont_.cont_move_.moveFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21LSI22LSF22LSI23LSF23LSI24LSF24LSI25LSF25 linemod.o 597752658 0 10 100666 661 ` l0n@s!@o .T,hE. T,d)!@o2!@t-!@t .T,d.,T,l .<T,.LT, \@(#)linemod.c 5.1 (Berkeley) 5/7/85W(P1)W(P00011100)W(P10000000)W(P10001100)W(P11111100)W(P1)$Header:linemod.c 12.0$ <v@(@|P !)2<DM.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemod_printf_.printf move.o 597752663 0 10 100666 1616 ` 8`n@D "d _ "P " O.cP,!  @(#)move.c 5.1 (Berkeley) 5/7/85P[%d,%d]`,P3`,T3`,T@#?`(`,4`8P3`8T3`8(#@}`84$Header:move.c 12.0$ pp: pB pP pp p|@(@8 P>PPP6PFPzPPPFP !)/6<DNT\fnw~,,,@(,8888.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_lowx_scalex_currentx_lowy_scaley_currenty_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11open.o 597752667 0 10 100666 1073 ` D@0n03"u  5 v-02!6--$" 0x-2 v-02! 6-= u  5 v= P#16=-$" 0x-2 v-0P2! 6-= Pu  5 v-p!6--$" x  v-p! 6-= p. 0@Pߍ 0 @(#)open.c 5.1 (Berkeley) 5/7/85??S(I0 T0 [0,0])$Header:open.c 12.0$ p(pr *@P@dPhPlPpP D!H)l3p=tC|IQYajs{.oVncs.oVhc2.1n.oVO_rcsid_sccsid_currentx_currenty_lowx_lowy_scalex_scaley_openpl_.openpl_closepl_signal_.signal__iob__flsbuf_._flsbuf_printf_.printf_space_.space point.o 597752671 0 10 100666 1483 ` @Xn@D@Dd$@DT@D\@Dd$@DT . ,! @(#)point.c 5.1 (Berkeley) 5/7/85V[]` T3` X3` X@#?` ` 8` T3` ,#@}$Header:point.c 12.0$ pp: pF pT pt p~@(@0 P4P:PPP>PNPPP !)08>FPV^hnu}   @    .oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_lowx_scalex_currentx_lowy_scaley_currenty_move_.move_printf_.printfFPGLUELSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9 space.o 597752674 0 10 100666 1431 ` lP Pn "l " h " ",A @(#)space.c 5.1 (Berkeley) 5/7/85` h`8@3`h@`\3`8` H3#@`4` D3#@}$Header:space.c 12.0$p&p: pN p@(@. P P P6 P P P PF P l!p)08>DLT[ `ej@ot@y~.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_lowx_lowy_scalex_scaleyFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9 #]oloIE ###F#! __.SYMDEF 597788303 0 10 100666 1446 ` !0@GQV[a!h!r!w!!+++++/////<.<.<.<.<.=f=f=f =f=fB!B+B0B7B?HZFHZPHZUHZ[HZbXviXvsXvxXvXvaaaaaololololololololololol ololol!ol*v1v;v@vGvOV`eltf{ffffffff.oVncs.oVhc2.1n.oVO_arc_.arc_cross_product_.cross_product.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closepl_.closepl.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_shakehands_currentx_currenty_buffcount_fildes_lowx_lowy_scalex_scaley_sarg_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_handshake_.handshake_buffready_.buffready_itoa_.itoaarc.o 597752682 0 10 100666 6495 `  0فn<l m0j@kPb*c i b+c )l@?PpbcЍɁ 4\l@?P4x!!8,T|> k bc, 4 Ɂߊa?1ٱn4XD ɱHD !ɱH ɱHߺ8 @(#)arc.c 5.1 (Berkeley) 5/7/85 `\?8`,P#` `` T#?` PPP^PPPPRPzPPPPRPPPP2PZPPPP h@ nP P P FP nP P P P "P 6P FP ZP P P &P bP  !$)D.4;@FMU d~t{,   ?<<?<<    q  q 1%+ 117 1=C 1IO<U[<ag<ms<y<     @ A @ AB A A A !' -3 9? EK QW<]c<io<u{<<<<<8.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arclmul$$_pow_.pow_point_.point_cross_product_.cross_productFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21LSI22LSF22LSI23LSF23LSI24LSF24LSI25LSF25LSI26LSF26LSI27LSF27LSI28LSF28LSI29LSF29LSI30LSF30LSI31LSF31LSI32LSF32LSI33LSF33LSI34LSF34LSI35LSF35LSI36LSF36LSI37LSF37LSI38LSF38LSI39LSF39LSI40LSF40LSI41LSF41LSI42LSF42LSI43LSF43LSI44LSF44LSI45LSF45LSI46LSF46LSI47LSF47LSI48LSF48LSI49LSF49LSI50LSF50LSI51LSF51LSI52LSF52LSI53LSF53 box.o 597752685 0 10 100666 494 ` hD0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.1 (Berkeley) 5/7/85$Header:box.c 12.0$ * 6 B N@$@(P, P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752690 0 10 100666 2507 ` Ppٱn k l0m@ TɱHdx@?PX0+<@Th|0޴- ɱHߺ1> @(#)circle.c 5.1 (Berkeley) 5/7/85`H>`\>`<T#?`<` ` <`<`<(#` h` <`d#` ` ` ` ` 8` ` ` ` 8`\>$Header:circle.c 12.0$V x@(@,P0 P6 P~ P P. P P P P PF P P P P P P2 Pj P~ P P P P !)1:AINT[`ejo<ty<~<<<           # )/5;.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_point_.point_pow_.powFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21 close.o 597752695 0 10 100666 800 ` T@0n03u#! 5#v#Z!6# $ "x  v#Z!6#  ZcЍbЍ "!p-03 p-00 @(#)close.c 5.1 (Berkeley) 5/7/85$Header:close.c 12.0$ p` j t p pp@(@,P0 P4P8P !)2<BKU]frz.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closepl_.closepl__iob__flsbuf_._flsbuf_fflush_.fflush_shakehands_fildes_sarg_stty_.stty_close_.closecont.o 597752701 0 10 100666 3294 ` |ّntm0@ؐșؠȪ8AQ4ذȻ4Ae$u  5 v-B12!&6--$" 0x-2v=B!#* 16== u B!= u  5 v=C!#1&6=-$" 0x-2v=C!#* 16== u C!= u  5 v=@!#1&6=-$" 0x-2v=@!#* 16== u @!= u  5 v-A!#6--$"  x v=A!#* 16== A!= 8 /@4 /ɑLߚ!8#l@(#)cont.c 5.1 (Berkeley) 5/7/85`08`p\p  >  @(@, P0 P4P8P<P@@D@H@ !)4@LR[emv~0.oVncs.oVhc2.1n.oVO_rcsid_sccsid_handshake_.handshake_shakehands__iob__flsbuf_._flsbuf_fflush_.fflush_fildes_read_.read_sarg_stty_.stty_exit_.exit_buffready_.buffready_buffcount_itoa_.itoa#]loIc K###&! __.SYMDEF 597788307 0 10 100666 1304 ` \\\\\! ( 2 7 < B <I <S <X <` <i`p`z```hhhhh  B'B1B6B<BC)J)T)Y)b)l,.s,.},.,.,.22222222226|6|6|6|6|< <<<<'D.D8D=DEDNDVD_DgDp.oVncs.oVhc2.1n.oVO_arc_.arc.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_closepl_.closepl.oVncs.oVhc2.1n.oVO_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_erase_.erase.oVncs.oVhc2.1n.oVO_label_.label.oVncs.oVhc2.1n.oVO_line_.line.oVncs.oVhc2.1n.oVO_linemod_.linemod.oVncs.oVhc2.1n.oVO_move_.move.oVncs.oVhc2.1n.oVO_currentx_currenty_lowx_lowy_scale_openpl_.openpl.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_space_.space.oVncs.oVhc2.1n.oVO_putMBP_.putMBP_putMBN_.putMBN_putSBN_.putSBNarc.o 597752768 0 10 100666 890 ` |08فnl m0h@iPb(c k b)c j+!D(c k !H)c + hbcЍɁD߈a@(#)arc.c 5.1 (Berkeley) 5/7/85` \# @` ,4`,D##?$Header:arc.c 12.0$$2@X d @$@(P, P2 P P P |!).4;AHNU\ af,kp,uz.oVncs.oVhc2.1n.oVO_rcsid_sccsid_arc_.arclmul$$_acos_.acos_move_.moveFPGLUELSI2LSF2LSI3LSF3LSI4LSF4box.o 597752771 0 10 100666 494 ` hD0 ١nj k0l@mPbcЍbcЍbcbcbcЍɡ<ߨA@(#)box.c 5.1 (Berkeley) 5/7/85$Header:box.c 12.0$ * 6 B N@$@(P, P h!l).4:AGN.oVncs.oVhc2.1n.oVO_rcsid_sccsid_box_.box_move_.move_cont_.contcircle.o 597752775 0 10 100666 1256 ` D8Pnm@ 003u#! 5#v#t!6#$ "x  v#t! 6#3 t " "d 01 (@(#)circle.c 5.1 (Berkeley) 5/7/85`<P 3`<T3`<T#?`<4$Header:circle.c 12.0$" , pv pp@(@,P0 P4 P8P>PPP6P !)1:AIOV\eou|<<<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_circle_.circle_point_.point_move_.move__iob__flsbuf_._flsbuf_lowx_scale_putMBN_.putMBNFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5close.o 597752779 0 10 100666 545 ` HT (nԤ"1. , @(#)close.c 5.1 (Berkeley) 5/7/85v@}$Header:close.c 12.0$ $ p. @(@0P4 P8 P H!L)p2<DMU^dlu.oVncs.oVhc2.1n.oVO_rcsid_sccsid_closepl_.closepl_signal_.signal_printf_.printf__iob_fflush_.fflush cont.o 597752783 0 10 100666 1646 ` @hٱn @D$ "t,<0, "p,<0-03u#! 5#v#q!6#$ "x  v#q! 6#3 qp=p,ɱHߺ! @(#)cont.c 5.1 (Berkeley) 5/7/85` `,P3`,T`3`,`,T@#?`,`,4`<P3` $Header:cont.c 12.0$p pF pP pp pz p@(@, P0P6PNPPPPVPfPPP !)/6<CMS]clv~,,`,,@,,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_cont_.cont_lowx_scale_currentx_lowy_currenty__iob__flsbuf_._flsbuf_putMBP_.putMBPFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10dot.o 597752786 0 10 100666 252 ` <T0@(#)dot.c 5.1 (Berkeley) 5/7/85$Header:dot.c 12.0$@$@ ! ),.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752790 0 10 100666 264 ` DT4@(#)erase.c 5.1 (Berkeley) 5/7/85$Header:erase.c 12.0$@(@ ! )008.oVncs.oVhc2.1n.oVO_rcsid_sccsid_erase_.eraselabel.o 597752794 0 10 100666 546 ` T nc . 03u#! 5#v#!6#,$ "x  v#!6#,3#, @(#)label.c 5.1 (Berkeley) 5/7/85~'%s$Header:label.c 12.0$ pj @(@4P8 P !)08@IOXb.oVncs.oVhc2.1n.oVO_rcsid_sccsid_label_.label_printf_.printf__iob__flsbuf_._flsbufline.o 597752798 0 10 100666 2838 ` 0LXٱn l@mP@D0@D  tPUE%@D tObcЍTɱHE#@D`pPUE ɱHbcЍɱHߺA0 d@(#)line.c 5.1 (Berkeley) 5/7/85`$0` T3` 4` TP3` ` T#?`` 4`T3``8`,0`80 `0`0`80` P0 3` p` ` 4`,0`,0$Header:line.c 12.0$p*pP p\ p| p p p  @(@, P0P6PZPPP6PJPPPP6PFP~PPPPP:PPPPP P 0!4)X/6<CMS]cjpw~   P   0 00"(0. 40: @pF LR X^djpv.oVncs.oVhc2.1n.oVO_rcsid_sccsid_line_.line_lowx_scale_currentx_lowy_currenty_cont_.cont_move_.moveFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15LSI16LSF16LSI17LSF17LSI18LSF18LSI19LSF19LSI20LSF20LSI21LSF21LSI22LSF22LSI23LSF23linemod.o 597752801 0 10 100666 605 ` `l0n@s!@o .,hE.,d)!@o2!@t-!@t . ,d.,l .,., $@(#)linemod.c 5.1 (Berkeley) 5/7/85vAvDvBvCvEvA$Header:linemod.c 12.0$ <v@(@DP !)2<DM.oVncs.oVhc2.1n.oVO_rcsid_sccsid_linemod_.linemod_printf_.printf move.o 597752805 0 10 100666 1646 ` @hٱn @D$ "t,<0, "p,<0-03u#! 5#v#p!6#$ "x  v#p! 6#3 pp=p,ɱHߺ! @(#)move.c 5.1 (Berkeley) 5/7/85` `,P3`,T`3`,`,T@#?`,`,4`<P3` $Header:move.c 12.0$p pF pP pp pz p@(@, P0P6PNPPPPVPfPPP !)/6<CMS]clv~,,`,,@,,<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_move_.move_lowx_scale_currentx_lowy_currenty__iob__flsbuf_._flsbuf_putMBP_.putMBPFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10open.o 597752809 0 10 100666 872 ` H0n03".  0Ѝ 0% .  0 . 0@P$, @(#)open.c 5.1 (Berkeley) 5/7/85?~VR~W~SvA~*z$Header:open.c 12.0$ p*:JVfr@H@` PdPhPlP !)3=CIPXajr{.oVncs.oVhc2.1n.oVO_rcsid_sccsid_currentx_currenty_lowx_lowy_scale_openpl_.openpl_closepl_signal_.signal_printf_.printf_putMBP_.putMBP_space_.spacepoint.o 597752813 0 10 100666 1548 ` 8hٱn l m0 "$ "t,< "2 "p,< "2 bcЍbcЍɱHߺ! @(#)point.c 5.1 (Berkeley) 5/7/85` `<P 3`<T`3`<`<T@#?`<`<4`<P 3` $Header:point.c 12.0$p$pJ pV pv p @(@, P0P6PNPPPPVPfPPP !)08>EOU_elry<<`<<@<<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_lowx_scale_currentx_lowy_currenty_move_.move_cont_.contFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10space.o 597752816 0 10 100666 1794 ` ٱn( " "<  \ "lɱHߺA0 t@(#)space.c 5.1 (Berkeley) 5/7/85`$0` ``,p3``p`(P3`TP#@ `4` `4` `<``<`(3`,0$Header:space.c 12.0$p,ph p@(@. PR P P P> Pf P P P P6 PJ P P P P !)08>DKRW\ afkppupzPP`<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_space_.space_lowx_lowy_scaleFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12LSI13LSF13LSI14LSF14LSI15LSF15subr.o 597752824 0 10 100666 1753 ` |P(ٱnk l0` "`u  5 v=#1(6==$3 @x=Cv=#"* 16== u "=u b$"? "@ 5 v=#1(6==$3 @x=Cv=#"* 16== u "=u b,2+9# "@ 5 v=#1(6==$3 @x=Cv=#"* 16== u "=u b&"? "@ 5 v=#1(6==$3 @x=Cv=#"* 16== u "=u ,? "@ 5 v=#16=ɱ8=$3 0x 0v=#"* 16=ɱ8=ɱ8"=ɱ8߸!nl ` "`u  5 v=#1(6==$3 @x=Cv=#"* 16== u "=u b&"? "@ 5 v=#1(6==$3 @x=Cv=#"* 16== u "=u ,? "@ 5 v=#16=4=$3 0x 0v=#"* 16=4=4"=4 nR? U@@Du$! 5$v$R!6$,$ "x v4S%* 164,4,%4, @(#)subr.c 5.1 (Berkeley) 5/7/85d$Header:subr.c 12.0$pb x J `   2 L ~p  4 J   pJ d @(@,P0@4@ |!)1:@IS[ddlu.oVncs.oVhc2.1n.oVO_rcsid_sccsid_putMBP_.putMBP__iob__flsbuf_._flsbuf_putMBN_.putMBN_putSBN_.putSBN #]loI[s RP###*! __.SYMDEF 597788311 0 10 100666 1816 ` \\\\\!\(\-\3\9\@\E\KR\aflFsF}FFFFF```````#)0!r7!rA!rF!rK!rQ"X"b"g"m"s"z"$$$$$$$............. ...".*818;8@8F8L8U8_;f;p;u;{;;;=========AAAAAC<C< C<C<C<KV%KV/KV4KV=KVHKVOKVX.oVncs.oVhc2.1n.oVO_del_step_.step_arc_.arc_quad_.quad_abs_.abs.oVncs.oVhc2.1n.oVO_box_.box.oVncs.oVhc2.1n.oVO_imPx_imPy_imP_charset_imPcsize.oVncs.oVhc2.1n.oVO_circle_.circle.oVncs.oVhc2.1n.oVO_imPx_imPy_closepl_.closepl.oVncs.oVhc2.1n.oVO_imPx_imPy_cont_.cont.oVncs.oVhc2.1n.oVO_dot_.dot.oVncs.oVhc2.1n.oVO_imPx_imPy_erase_.erase.oVncs.oVhc2.1n.oVO_imPx_imPy_label_.label.oVncs.oVhc2.1n.oVO_imPx_imPy_obotx_oboty_botx_boty_scalex_scaley_line_.line_putch_.putch_putwd_.putwd.oVncs.oVhc2.1n.oVO_imPx_imPy_linemod_.linemod.oVncs.oVhc2.1n.oVO_imPx_imPy_move_.move.oVncs.oVhc2.1n.oVO_imPx_imPy_openpl_.openpl_setfont_.setfont.oVncs.oVhc2.1n.oVO_point_.point.oVncs.oVhc2.1n.oVO_scale_.scale.oVncs.oVhc2.1n.oVO_PlotRes_scaleflag_space_.spacearc.o 597752835 0 10 100666 4224 ` D$@n.anPf g04A5QFLW$Hl1! ! q! q!t0iujbc p!d!3!uQR 1!!1!b`cpuQtAl b`cpsQAy2!!&m s!'x ȀHyȀH b'PH HXp`ip`i {z{z  Ȁ!1!bc0krq!!r ",P//$"p!adp!adb&PH H(p`ip`i {z{z Ȁ!1!bc0krMq!!N, U"0P//s! >\ads! 7ad x y~!3!ja8,$5 鏤!鏤$$5鏤"鏤#5鏤"鏤$ " H@(#)arc.c 5.1 (Berkeley) 9/21/85D @ D`08`8l`HOW]en.oVncs.oVhc2.1n.oVO_rcsid_sccsid_imPx_imPy_closepl_.closepl_putch_.putch__iob_fflush_.fflushcont.o 597752851 0 10 100666 419 ` 8Hnd e003 ",! h@(#)cont.c 5.1 (Berkeley) 9/21/85$Header:cont.c 12.0$pp @(@, P 8!<)/5`;BHO.oVncs.oVhc2.1n.oVO_rcsid_sccsid_imPx_imPy_cont_.cont_line_.line dot.o 597752855 0 10 100666 256 ` @T4@(#)dot.c 5.1 (Berkeley) 9/21/85$Header:dot.c 12.0$@(@ ! )0.4.oVncs.oVhc2.1n.oVO_rcsid_sccsid_dot_.doterase.o 597752858 0 10 100666 423 ` 8Hn ۍ, h@(#)erase.c 5.1 (Berkeley) 9/21/85$Header:erase.c 12.0$ p"p@(@, P 8!<)/5`<DKS.oVncs.oVhc2.1n.oVO_rcsid_sccsid_imPx_imPy_erase_.erase_putch_.putch label.o 597752862 0 10 100666 2561 ` 4Hّni ذȻp+ tLp-`  !#  "`p-@90 p-Hp+0+ 0b0b@20ɑ@ߘt@(#)label.c 5.1 (Berkeley) 9/21/85`<-h2`<%l2 `<%l2`<%@`PrPPFP !)/5<DKS[elt{<-<%<%<%@# @ 1 4@# l@ щ  є ```, @ bЍc 0@ 0 9```-"3c 003b4 @(#)linemod.c 5.3 (Berkeley) 9/21/85charset=$Header:linemod.c 12.0$` p@,@< P@ P !)/5>HNU\foy.oVncs.oVhc2.1n.oVO_rcsid_sccsid_imPx_imPy_linemod_.linemod_atoi_.atoildiv$$_imPcsize_setfont_.setfont move.o 597752873 0 10 100666 330 ` DlP%P5D@(#)move.c 5.1 (Berkeley) 9/21/85$Header:move.c 12.0$p p@(@ !)/5@;B.oVncs.oVhc2.1n.oVO_rcsid_sccsid_imPx_imPy_move_.moveopen.o 597752876 0 10 100666 1095 ` @X8n ͍  ύ" "p=D Ѝp-# ҍp- "     0 nm ? ݍ"!  cЍ 0! @(#)open.c 5.2 (Berkeley) 9/21/85x$Header:open.c 12.0$  & 0 : pB pV bn x   p  p( @(@, P0@4P8@<P @!D)/5h=FMUblxu.oVncs.oVhc2.1n.oVO_rcsid_sccsid_imPx_imPy_openpl_.openpl_putch_.putch_imP_charset_imPcsize_setfont_.setfont_putwd_.putwd__iob_fprintf_.fprintf point.o 597752879 0 10 100666 353 ` (Hlnd e0,! X@(#)point.c 5.1 (Berkeley) 9/21/85$Header:point.c 12.0$@(@,P (!,)P08>E.oVncs.oVhc2.1n.oVO_rcsid_sccsid_point_.point_line_.line scale.o 597752883 0 10 100666 2014 ` ٱnQ|"|c)Hl DPHɱHi u dɱHߺA H@(#)scale.c 5.1 (Berkeley) 9/21/85` ``4``3|`<l"@"\`<$ `<$`<l"CH` <$ ` <$`<l"?` <L 2` <L2` ` $Header:scale.c 12.0$dp@(@.PFPPPrPPP&PJPnPPP&P8"PrPP !)08CJOTY^ch<mr<w |<<< <<< <.oVncs.oVhc2.1n.oVO_rcsid_sccsid_scale_.scale_scaleflagFPGLUELSI2LSF2LSI3LSF3LSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7LSI8LSF8LSI9LSF9LSI10LSF10LSI11LSF11LSI12LSF12_scalexLSI13LSF13_scaleyLSI14LSF14LSI15LSF15space.o 597752886 0 10 100666 1725 ` HpnmP@PPhPUP 0^@BL0A @(#)space.c 5.2 (Berkeley) 9/21/85`d2`d2`t`T"A`,l` ,L2`<l ` <L2$Header:space.c 12.0$ p p.p@,@2 P@P PP Pn P P. P@Pz P PP !)2=DLRX_dipuz,,<<.oVncs.oVhc2.1n.oVO_rcsid_sccsid_PlotRes_scaleflag_space_.space_botx_botyFPGLUELSI2LSF2_obotxLSI3LSF3_obotyLSI4LSF4LSI5LSF5LSI6LSF6LSI7LSF7_scalexLSI8LSF8LSI9LSF9_scaley #]loA ### ! __.SYMDEF 597788315 0 10 100666 474 ` )3>GQZdny fffffff.oVncs.oVhc2.1n.oVO_tgetent_.tgetent_tnamatch_.tnamatch_tnchktc_.tnchktc_tgetnum_.tgetnum_tgetflag_.tgetflag_tgetstr_.tgetstr.oVncs.oVhc2.1n.oVO_UP_BC_tgoto_.tgoto.oVncs.oVhc2.1n.oVO_ospeed_PC_tputs_.tputstermcap.o 597752908 0 10 100777 2978 ` qng h00}.4i '@ $/ 08l 0b6<0} bpc@sDqH . 08l X qHipcb@Hk bLbqHb@"*  \ۓ >"@Pb< bLDqH)x!AفnpbDi+@ : p,>"@ ɁT@ :둑@ tA c !ɁTȁ9bj@ : @ :```q 1 >"@bɁTjbcH! 1bɁT@ : @ :```hbD`>,"@p b ґbc01ܤ!ɁT߈A@D@4#鏤 e @ 0 AQ@ 0@40 ``` | : 0鏤!0 : | A@40 : |0 :鏤 A@4@4@ : !@ :```:!ٱnc bl @  ɱ8@#@ܔ AБ@ @ ɱ8#ؑ@ 00bA bc 0@bAb0ɱ8߸nd "@ ,@4!@20 A0!@ :!,@ڤ , ne "J@ ,@E!@B@ A@!@@ ,=ܑ! ,! n@pC! E: B2@4!@!@_P)@@_Pe AUU Ф@Ro! @RoA\ ^ A@! :Ap#0C!@(#)termcap.c 5.1 (Berkeley) 6/5/85TERMCAP/etc/termcapTermcap entry too long LRBad termcap entry Infinite tc= loop Termcap entry too long P~4 E^^\\::n r t bf $Header:termcap.c 12.0$`$@d"^`hj``"p#B``d"p@(@\P`Pd@hPl@pPtPxP|@P@@@@@@@@@#-4P<E OVh`'ejn\x`(D!LR;[$ ~':.w84CLVtermcap.o_rcsid_sccsid_tbuf_hopcount_tskip_.tskip_tdecode_.tdecode.oVncs.oVhc2.1n.oVO_tgetent_.tgetent_getenv_.getenv_open_.open_tnamatch_.tnamatch_strcpy_.strcpy_tnchktc_.tnchktc_read_.read_close_.close_write_.write_strlen_.strlen_tgetnum_.tgetnum__ctype_lmul$$_tgetflag_.tgetflag_tgetstr_.tgetstrtgoto.o 597752920 0 10 100777 1069 ` XLX anh f0g@ؠȪpȚ0lp.aP @@% f`&w`ڔ  d 0dbl00 bcЌ0 bcЌ0 һ l`lpY@@RO@  # " @ 030> 03bЍ ɉaq :b$ l#o`@n:@bp!aP@>  F"P//vtrpnjhdb`<4d GB D "i n2r 7ډ>ډt@h1X@(#)tgoto.c 5.1 (Berkeley) 6/5/85OOPS$Header:tgoto.c 12.0$`r pp p D r`@(@8 P< P "h,'1v5C9/@@HOW`!hqtgoto.o_rcsid_sccsid.oVncs.oVhc2.1n.oVO_UP_BC_tgoto_.tgotoldiv$$_strcat_.strcat_strcpy_.strcpy tputs.o 597752931 0 10 100777 752 `  d(ٱnk l@Дɱ8@+dADD dЪBMA$@+dADDdЪBԪ.@+dADT BԔP @+dADD```*bЌm @+ p @+ ɱ8 " %/ ɱ8!b.2`0bЌm ذȻ@+p ```ɱ8߸1l@(#)tputs.c 5.1 (Berkeley) 6/5/855MS7) $Header:tputs.c 12.0$" p p p@H@  $H$+h5':B_FhMYU^:eltputs.o_rcsid_sccsid_tmspc10.oVncs.oVhc2.1n.oVO_ospeed_PC_tputs_.tputs__ctype_lmul$$ldiv$$#]lo) ### ! __.SYMDEF 597788319 0 10 100666 474 ` )3>GQZdny,,,,,,,.oVncs.oVhc2.1n.oVO_tgetent_.tgetent_tnamatch_.tnamatch_tnchktc_.tnchktc_tgetnum_.tgetnum_tgetflag_.tgetflag_tgetstr_.tgetstr.oVncs.oVhc2.1n.oVO_UP_BC_tgoto_.tgoto.oVncs.oVhc2.1n.oVO_ospeed_PC_tputs_.tputstermcap.o 597752899 0 10 100777 3026 ` D4qn`g h0x0}.8i '@ $/ 0<l 0b9@0} bpcDsHqH .0 "@Tb@ bPHqH)x!Aفn`xpbHi+@ : p,>"@ ɁT@ :둑@ tA c !ɁTȁ9bj@ : @ :```q 1 >"@bɁTjbcL! 1bɁT@ : @ :```hbH`>0"@p b ґbc01ܤ!ɁT߈An`@Dx@4# ,e @ 0 AQ@ 8@40 ```| : 0!,0 : | A@40 : |0 : ,A@4@4 n`@ : !@ :```:!, ٱn`k xbl @  ɱ8@+@ܔ A Б@ @ ɱ8#ؑ@ 00bA bc 0@bAb0ɱ8߸n`m "xq@ 0@=!@20 A 0!@ :!0@ڤ 0 n`l m0 "x3@ 4@<!@20 A 0!@@ 4=ܑ!cЍ 4! n`@pC! E: B2@4!@!@_P)@@_Pe AUU Ф@Ro! @RoA\ ^ A@! :Ap#0C4! `@(#)termcap.c 5.1 (Berkeley) 6/5/85TERMCAP/etc/termcapTermcap entry too long XBad termcap entry Infinite tc= loop Termcap entry too long lDE^^\\::n r t bf $Header:termcap.c 12.0$ `*F j (dj`t $v ``Lp^``p@(@`PdPh@l Pp@tPxP|P@P@@@@@@@@@ h'jl#\-4`<(EKRD\g!oxX;[$$:w08.oVncs.oVhc2.1n.oVO_tgetent_.tgetentmcount_getenv_.getenv_open_.open_tnamatch_.tnamatch_strcpy_.strcpy_tnchktc_.tnchktc_read_.read_close_.close_write_.write_strlen_.strlen_tgetnum_.tgetnum__ctype_lmul$$_tgetflag_.tgetflag_tgetstr_.tgetstrtgoto.o 597752914 0 10 100777 1049 `  \L` an`h f0g@ؠȪ|Ț0lp.aP @@% f`&w`ڔ  d 0dbl00 bcЌ0 bcЌ0 һ l`lpY@@RO@  # " @ 030>03bЍ ɉaq :b$ l#o`@n:@bp!aP@>  F"P//vtrpnjhdb`<4d GB D "i n2r 7ډ>ډt@h1d@(#)tgoto.c 5.1 (Berkeley) 6/5/85OOPS$Header:tgoto.c 12.0$ `xppp Jx `@(@< P@ P h'vC"/H)18?GP!Xa.oVncs.oVhc2.1n.oVO_UP_BC_tgoto_.tgotomcountldiv$$_strcat_.strcat_strcpy_.strcpy tputs.o 597752926 0 10 100777 711 ` (h0ٱn`k l@Дɱ8@+dADD dЪBMA$@+dADDdЪBԪ.@+dADT BԔP @+dADD```*bЌm @+ p @+ ɱ8 " %/ ɱ8!b.2`0bЌm ذȻ@+p ```ɱ8߸1x@(#)tputs.c 5.1 (Berkeley) 6/5/855MS7) $Header:tputs.c 12.0$ (p p p@H@ h'"_&p-Y5<E:LS.oVncs.oVhc2.1n.oVO_ospeed_PC_tputs_.tputsmcount__ctype_lmul$$ldiv$$ #]loK X###(! __.SYMDEF 597788322 0 10 100666 164 ` P#*49BL.oVncs.oVhc2.1n.oVO_main_.main.oVncs.oVhc2.1n.oVO_yyerror_.yyerrorlibmai.o 597752935 0 10 100666 353 ` $Hlnԍ, T@(#)libmai.c 5.1 (Berkeley) 8/9/85$Header:libmai.c 12.0$ @(@,P $!()L/6?I.oVncs.oVhc2.1n.oVO_rcsid_sccsid_main_.main_yyparse_.yyparse libzer.o 597752938 0 10 100666 405 ` 4Lxnd (>, h@(#)libzer.c 5.1 (Berkeley) 8/9/85%s $Header:libzer.c 12.0$p @(@0P 4!8)\2<BKU.oVncs.oVhc2.1n.oVO_rcsid_sccsid_yyerror_.yyerror__iob_fprintf_.fprintf #]lc"/###0@P`p2x` PP*n7!819A` cC$N1 ;M,  P"p""7l  "'B@pD0$ $"'A@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p )T8-Hanl m0 "Id0 E

@  :kDb3#H ```.0^L.1^}L!5P.2^qLh 0tq3 @UTb2H.(1@0qX r\.,0@^HLl >@NH#o`!: Db6\Nd#o`!9Db0@hEld I>xbЍmpbЍo@th bcdrx( >|N#o`!9D03l lv|{.r !1@mcl  >#o}`!9D @lBh t!cЍlE|"cЍl?|#cЍl9|/cЍl3|!3!!!>@PQS4A !R$ ```@!ntB1b0s  >Ĥ#o&`!93DblHs!,7!f b5U|"1@lm Ў 00APk  >Ф#n`&.>Nk  >#n`4r 614b@P0   >#n`s!-3!bbФ5Uȱ $4D5$2$1068a0 c@Pj p $t1n`w!x n$brAu1/uj s! $brAq1/cj  p $v1nW`<@ E 1k'|!1k!|"1k|#1k|/1k|b0HbЍ0Hb13b0Hq!Kp 8Db0HipwIT,ȱ $4D5$2$106s!-J3!h!@]nmbФ1@p 4 n "I\Ԕ >&m. pD 7, anؐșOLȩh .*!cAb!  ^.*aP@ h "I\ G@ "  pB>,bR0&mQh pR>@&dmFh0/Ĉ 0Ȉ0@ ^ W@03#XbAB$ @bAB$``` @ !pwN\`fO$p2 .\*7b.pF`@c0#A0F`fMpwNTp72 .p*p7`0b0107@@ Ф 6L0@  @  ```ݏO(@ ^ W@03#XbAB$ @bAB$``` @ !pwN\O$p 2 .)b-pL`@c0#A0LpwMNTp<2 .)p<`0b010<@!@h  SL" JP//bЍ)eaPhnmSLbЍ) 6b@ | :!@:.pl  >$k"Д * bЍ) 4A ١nl PLȰ B .(PL,4>m  q,Mc .(p=O,bj03Idbjw ɡ8tde@40 $. k@5AQ#"#Y  AAQ@40ޤ.D>X9l N\^h0bcЍ^Ȕ  b8ɡ8tb8̔ .t>8ĉl .(Uɡ8tߨand09>!Am"-Tp-9@Y,Ĕ pM>#j.1Yč;̍gWЍ@%ؐșS0)d c@gY !cЍgܤ"cЍgܤ#cЍgܤ/cЍg.R "T-] @DT>#jȤ!4ؠȪTp*1h  @  4p*0@XذȻS0+  pZ>$SLpL#jTȤ!4ap+66  "IT# 4MpZpL>0#j2Ȥ!4?p+0:upI>< "Ih "Iih 2p+03Idl( pZpL>@#iȤ!4 ! &ui PUTpL>L#iȤ!3蔐 31 p+33  pZpL>`#iȍasqpgtb1g r1p+@PT "I>ldЍg "Ii1!qAp+03Ilfq pZpL#>pix "SȔ  bЍ# h bЍGh p+19 4!@ +b`P pgtb`Pp+03a pZpL$>|i+ȉfsqpU0PpL&>i "S #0N "S+ k$h  "S "S0 "S+r1p+9.  pZpL$>hȍv(b`PXsqbpPN! %=i PUTpL#>hȤ!2蔐p: "T  "SĔ  "Thd 03T "Ska03T0 b0gd 03T "SkI.j( 2n舏SLsqh'qnh >5 ؠȪS0* @DSL>&eh.T qHذȻT`Ъ  b `Ъ c3g$є Fvp*$/( I@,2&G<,23P??&42 "ScЍf$ "T|@Hc@g0?pwSbpc@g0 "U| *bp=4 "bc 8!PUS@DS< @0 9 o b1@0 9 %1 @0 9 e RRQb1@0 90$A "T <@cg$0 A "T| <@g0@0 <:n\h2*&$,p*"( p*0@5Hp*"( >I@ L) "U~ ) "U #-03T@-cr8-hM U p*"\( p*3Dbh qHpwST`pwSTYxanj l03bcЍLd b0T*l  a00cЍ6X  "SX "Su $a "T `fSpTp-e/ N^$0ST@(1p2q.x>,N<#d".(!X'b'p0x!T' apT.!`d(hͤD`dh(lՉpذͻU`dӉp.Hgh.T0'{|m @DSL>`#d_.|fh6pwTȞ`  h@/ >bФOg bc#ec a* "pP//>LV8,Xݱ\`Ъc\`ЪcS\`Ъc\`ЪcS\`Ъc "U#\`Ъcs\SؐșSp  "S>ȤBf$ȁPb2@f p P b%P@DSL>̨P$c as`fSĐ3؀ȈS pؐșS0) #db",(b%p PdPbЍe[d p 0y0xs  "S0Ha`  >#b!,(0v!P T +@DSL>0$ebm a0bpa a a(   @DSL>@0$eb;䉏mpp`fSĈ&Ph!A9qni >/HS0,  qH2P I@ S>@DS "S]@0 9 c2:1jQ@0 9 Q@0 9 c2:1jQ@0 9`0a [z XȁgbpcЍ`Lp,Pj .bpcЍ` &p,Pj  <p,/l qH "S4`%Ȱ#cl " "P//p,P \"cI  p,.l qHp,0@0pp,cP I@ U-cp,NP p,.lbcbqHxAqnti0bcЍGȔ b0O0hj  qD 00cЍ1  "S "S $qDQ>0bd^bЍ`7k pwSp'cdc`+  ! b#ed qD < 03U.d !RȰk ⸔ bcdU̴+ p'cdcA`+ /b#(d qD. hPUU@DSL>@!`8l ,]z! b"d @DSL>t&e`lp>bAb` qDp'>Ab`!  qD qDx!A#n "S1AU7,! @DSL>&_ 0C!0 qng h0ibaPؠȪTP ذȻSp Tp-_d p=Sp,bi "U ^T|@ bЍ^d p,cЍbPp >bAbGbp^d p,cpb;p >bGb2b^d p,cb&p >bHbb"RTc p,@bp >bAbkp > bCap,cp@Xp >$bBap,c@XT|@ p,>(Cap,cФ@~Xp >,bOab^fd p,cap >LbAaP Tp-^4d p=p,a0 qLذȻSSS x!RD'QU  1!b0an 1!21$0!a zrȁ @ʑ Űbc    '!```c3; b""cdh p!@    "U9C @ ```xq!c`d`Hܑ ah18G 鏤#鏤 ``` ? J P Q Y ٱnk m0!L m! @!0#bЍ < @ .0/Xl @>,PUSbd[xt.4cdФP'g 'd !1"H@DSbcL:.TL4.lL.03T@ .L! .L$.L $.03IdK$pcbЍ[Eh u >bЍ*m .K$s.Kp  0 q=@#11=bЍ'h$ȼ ?u<1 5#\7" ɱ8 "UX0bɱ8!&+ɱ8 >#d\ ߸n.^ܤ 2A "S 0AԤ ^ؔ ``` %, ّn "ISLp=| >#[x!% pM>(#[x!%.<cU0- @0 .Hc03U0# L0.Pc03T0# T0.\c03U0# `0.hc03T0# l0.|c03T0# 0. 03U0# 0.c03T0# 0.03U #B@ C.j>X.03U #B@B C.v>X.03U #B@ C.>X.03U #B@ C.>X.cؠȪU0* #dZx!p2bYHp*-`  pJ>#Z|x p2bYc p-. c/U.$c/U.(c/U.,c/U.0c/U.4c/U.8c/U. 7p<.8E "IT"pI>#Y!##p<. 'bVK p)؀ȈUp( iSؐșIȮTذȻUpz0- 0pKbcVbXWf p-cd`[ܴ&g pp8.S7p-~p p8.\ p8.xbU p(@DSL>#X!"Up h!G.L!P/S Hq!SL0T "S1Tb @ p-0/SU`c 0pc1pN^0b"XppL>ؤ#eX#!"0q!rSa X "S/SSa XhٱnSp,0t 3 @= @DSL>#Wx!!p,0t3@dЍ=i @DSL>#Wx!!PUUΔP$Ⱦp P p ```@DSL>4#Wx!!q  "UT! "UԱ$p,0t 3dЍ= @DSL>P#Wix!!vذȻUp+ nUp 0p,d0t3< ^@DSL>h#W=x!!Jp+ p,0t~3d< @DSL>#Wx!!+p "p,0t3dЍ< @DSL>#Vx!! ɱ Dɱ DUp+߸فnh i0j@kP Y[Up-0@El 2#4 p]@DSL>#VĤ! b0&0bcdeT>bЍTbЍVd bcЍYmbVɁH߈AA``١nVD0 "ISLp= . p=.,.@lcؠȪT0* D0 .TcذȻT0+ X0 .hcT0, l0 "p*9@DNĔ pJ>t#V.|1D=p+̔  pKp=.p,cTД 3  >03$u#! 5#v#!6#$ "x v#! 6#3!":Ԥ!p+cSД  pKp=.M./V4R!0`DV80,0C/V<  p\pM>$Uz/cЍRN-cЍRH RɡDɡDߨ فnti0.C0j  ^0"QbJ4 Aȱl2bT88bcЍSV &  b!AW<Ik!cAJ&@i  03SL.^bɁD@ Гk@ DҤ@ 0 9 b")!i@ 0 9 03+S؀ȈUbcSytb6H  >!AW=<bcqL Dbc:P .cbVT؉l@ 0 9 b")!i@ 0 9 )bH  >$!AVl!AV8Ƞh jp⩤!cdIf ` . P(ᆔ Ƞ jpbcdVv*  bV0 p1.&(#, p!V aP>l!AVF!aPh!An1!AH! .C 0!0 nhl V yl  Pmb0Pd  b % Pb bЍP!n "U@ UV @ zbUB, A@, d 4 ٱnk l0m@#cdeЍRG03$u#! 5#v#!6#$ "x v#! 6#3!ܤ!-ɱ8߸1anph "I\0ݯXtXp03SLذȻIb=i .  .,.<c>ؐșU0) @0 .Hc-U0- L0 .Pc03T0# T03T0.dc03T0# h03T0.pc03U0# t03U0.|cU0, 9gbp0&ޡbp$5  .cp@$ p2bpPWp,$   p<.@ p2bpP$ p)p)@ "Xp0>䐃p]bdOm`fO$p~؀ȈN\bЍP`bpBbcpNp `fNTpp ؀ȈMbЍPl}`bp2bЍO쐑p >bO p, dh  "03Id# .?p<.??bP0i bcdS) . bc@Ei $b1deЍ  bc@Ei bA "T+ .( !@ l .L  "T1Nx 1H  "X .l?1@ "X .p03Id>03SL.x> "U0>I h 31u$bc@E]i $b1deЍ F bc@EDi b5103$u#! 5# v#!6##1$ "x *vC$32( 13*'(1  "X .03Id>d03SL.>Z "X .>LbaD "T>ȍ ,m 30ؐșXDhp  0 q=@#11=4 ( p  0 q=@#11=bЍ4 ( b48 04< 0pwXhp  0 q=@#11=bЍ4 ( p  0 q=@#11=bЍo4 ( p .03Id= "U0= h 014$bc@Di $b1de bc@Di bi+03$u#! 5# v#!6#$ "x  *vC$3(3*(bЍ@ "I\ WDдbЪ"@bp+rHb5LѴ !@5L "Xl,aDh@dn "XԔ .03Id<. <XD, n.ԍ<p.M!/X| >.<p, anf >h aLؐșXpp 0 "X  "Xl  03XDb`Lp p 0 pb 8 ؠȪI@ N*XcdpI< pȺbc`@  baL "I\X| ".c<3hbLx"0,p)D (>.cЍ<hG0 p)vD'*bЍDd .c<hp 0 Xx$z !ȺXp bcLp bcLl qP~ab *8 ]bo "I\  >,Xtp=b;h0 aLaLhّnk j0NTp  "O$ !ɑ@ؐșMl` p,cK( !ɑ@p ` O$@J03#Xb4Ap]b",!l@Jb4AؐșN\kRbYp 03bKO( !ɑ@ ɑ@p b ߘ!ٱnk l0m@>K($ Ⱦ "I\ bcdЍɱ8bcdЍT ɱ8߸1ٱnk X|p 30 $u-! 5-v- !6- $ "x  v- ! 6-= [8p 0 ɱ8߸qnxg h0i@Xxp bpK;`X|p- : >).:rp 0 >p  0 . :[.cp:Tbp 0 @ cbI( u!c103Xtp0q@q@x1"١nj k0l@$u-! 5- v-!6- $ "x  v-! 6-=)  .cd9.c9@ cbIA  u1.$9.09u-! 5- v-!6-ɡ@| $= "x  *vM$` ɡ@|*V ɡ@|ߨ1nhl .,9 "X|p0d bc0! m>4bdH2mqRbcdHbЍJ03X|p0.DcЍ9Ud&فn "IؠȪSLp: l .$ .,$.<cЍ (ذȻT0+ @0 .PcЍ (T0, T0 .\cЍ (03U0# `0.hcЍ (03U0# l0.pcЍ r(/U؀ȈNTp+F,  O(p-O(p-/M0>tH0  "Id .|$ݎ0 p+ ~4 .$.c@DԤPE"8m .č$ 7p,\< "XDa@  "Y2/QD.$b"pbp"(H L p*P .$ aTɁHO(gp-߈ٱn> k  "IT-.`bO$ b( ɱ8 ɱ8 "I ,/Y0.  bq( ɱ8XDbФ1@(e0 !bF4bФ1@(e0 bb<(!ɱ8߸فnm  ɁD>bЍVh .cЍbؐșؠȪId .ذȻI@ Up  .c7EpbKt . .4c73pb bp .Dc7pbЍJt .L.`cЍ7 pɁD߈qnh G' @cAf  qH  "Id 8F( !qH>bpm  qHtذȻI @ P bЍt bЍLx@ P  qHNTpL@O$p=003XDbF(  +c bqHX@%#XoA o"j/Q@%oApwN\ip2b7p +cK >!qH pLMjЪB`Mp*cF@( bc' !qHp ` qHO$p=p bx١nj k0O(p,>܍F Kp-Id ;E !ɡ ^ PUO(bЍDoTiФ`fNTpp ؀ȈMbEy`bp2bEqXp 줠`fO$p~؀ȈN\bE`bpBbcpD-Tp >bDv\p+`i  "03Id# .4p;.$4aLbЍEj bcdHd* .@9bc@;Yhj bФ1deHlbc@;Fhj bpaLaLhA0HcIf1b0١nTj !1@C4l  .8 ɡpܱ!> @PQS4A !R$ ```@!E$bdCMHbЍD@!  bDbɡp@D$u41 54v4#1#64$ 3x0v4# 1644T4}Tbc@:WPj $bФ1de@Xbc@:>Pj bD ɡpߨA+nd 03I.3 "$03IT22#"m.$cK$u-! 5- v-!6-4 $ "x *v=#c4*c4 فnm 0.`bЍ-dj .$cЍ`.4><#hk .@r`b0lsJt*p1bwpr "r #jb6qth  ɁXc@P x )ذȻITpb|0 0p0 =  bA1ɪ ɁXbɁX߈ٱnk p I 0 q;@#11;B* + ɱ8) (-ѐp 0 q;@#11;-ѐ ```b*פ bɱ8 ߸antf "T1k  a@p+lc wu!0)4j b"*! h gb8 FHc;If7bcAh -bЍB%) g p @x0'cЍB,u!<(c 2b* h &`brb8u b$ PUDbcD1(0ba@b$ a@h#p"pBp#p@ @鏤!鏤 ١nj k0l@mP@03Id .103I. 1{03SL0 .1obcdeЍ1g@D$u$! 5$ v$!6$$ "x  *v4#4 4* ! x$ɡ<ߨAٱnk . .>0.  ɱ8YHL0.4bɱ8p .5 \.+ !ɱ8p 4p  >"@D8 !ɱ8.Kp 0q2@C112 g,, qng h0YH.0/,l X qHipcb@60k bU4bqHb@"*  \ۓ >"@DDb8 b%4"@D ɁT@:둁@tAc !ɁT8bЍ@HiД @ : @ :```q 1 >"@CbɁTibcЍL! bɁT@ : @ :```mb@8D`>,"@Cp b ‘bc?H0!ɁT߈A@DYH@4#鏤 e @ 0 AQ@ 0@40 ``` | : 0鏤!0 : | A@40 : |0 :鏤 A@4@4@ : !@ :```:!ٱnc YHbl @  ɱ8@#@ܔ AБ@ @ ɱ8#ؑ@ 00#XbA b&\c 0@bAb0ɱ8߸nd "YH@ ,@4!@20 A0!@ :!,@ڤ , ne "YHJ@ ,@E!@B@ A@!@@ ,=ܑ! ,! n@pC! E: B2@4!@!@_P)@@_P#Xe AUU Ф@Ro! @RoA\ ^ A@! :Ap#0C!pcPITU0% P@A!@2@29  + - !0 9 `P!P@20 9@ UbPphPITU0% #2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$ePe\@`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$ggp PITU0% pPITU0% nm p-0 1 v-$bЍ$0 pbPITU0% pPITU0% nԍr, فnm qbYP<q1w b$ "p 2bЍ j wȾp+ x Ȼp+ ``` hu lr;p ݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk YPc.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d 0 u 0db`bɡ<ߨe Q^`R n mnl m0 bc c 0   bc 0 b4! p)PITU0% pZPITU0% nnnoo o0oHoTopoooooooopp p,p@pPp`ppppppppqqq,q<qHq\qpqqqqrrr8r\rtrrrsss<sLsdssssttt<t`txttttttuu u4uPutuuuuuvvv0$Header:errlst.c 12.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededRemote file system errorOut of remote working directoriesStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks available1AQ1@DDp;PITU0% @DDp;PITU0% nm DbЍE0 p|PITU0% pqTn 1 @Q  !7!81b@$09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$wnm X= ( 0 DxP  Dxr 5X   "&|  `2 -1} } b2- X ( X ( 3$ $ ,X 8 ,(M r=X -AsM*[0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=DxnYu͔%.l>#X4"# D 9 IT 4p, X v=ij IT 4p, X  !0D0,4u nЍ0m 4D03Y5#  0`Ъ`6>`0 023$0 ```bФ1Dv.!0 nYu͔  4v-p  !0DG0,v-ij 4u ٱnm YuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "&܍, pPITU0% ّn|Œj0X* ( (  ɑD qr1s ` *cd61d 1q0 @ml@ ޑC*1Cd6d Y0 r?*cg |є bЍ k 2X*( X ( 3 "$"& 4X*( 1X*@l@qJKl@&1*c5d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d5, X ( 4 4 nl X< @m ,? X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@ Ii bɑ@r w ɑ@@ a0B 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!p鏤 PITU0% ١nj ȱ!<Jmb< Nb1d "c4t b1d "c4h >"A4` bЍ0d "cЍ4T !ɡXߨfpabort: ...exiting. ١mXSE (213pqs@ ;! ެ  ެ-=M]b&1 *-=M]XSUps㉏qÔ@ j0b0&;1 cXSU(S2301aɭߨ-$Header:fputs.s 12.0$ّni j0k@lPbc;m 2pLM@ q,c pLb5 )pLM q,cdЍq 1 p 0 bɑ@ є ` c2Ⲥbɑ@ߘAّnj k0l@X:( 0l>r ;8pm*0A ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdm 0 > ;0 b0/ )< m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1p>PITU0% pPITU0% ّni j0k@lPbcm X !Vp,!0,s a@)* q<#1 10@ 1bЍ* 012ȁ34 cФA\$;c 0bɁXbA 03IT=bcd$ bɁX2303Y401p 4ɁX߈1@nm .  .>".'J  0 n.Ԕ  ,, ّnN@.>.d @ ɑ@b0Ii bɑ@@ #>k > bk ˑ= `= <0b = =p30#  @   @ ``` ݽȭݭ>bVk ˑ #@  > ,0b7k ˑ @ 0-ɑ@Yjȭ8Yaȭ8]NYNUNߘ@B@ e0@ 菑Q@```!@B@鏤 ٱnHmo@RP @D#XcEA  !_!@RP k p+cЍ* qp, cЍ) p, k bɱ߸.١nj k0l@ mm r  t-p"cd: m ubɡ<ߨ1pWPITU0% pPITU0% ٱn:!d e0  ɱ803Y !(z ɱ8c  @  ```@  ```=bD=bD=bD @  ```$@  ```(@  ```,@  ```- ɱ8߸nl  "hT LN@ D b0' -bЍ)n c bЍ0! cbd p!DNb0 Ս DY p- ..090- $- 0! p2b($  "Y$ Mp!Dp"1(  p-,0 b( c b00!p-p"8( "Y$ p-f,0 p!DAn!014A8Q.#F c -  !0 n.̔ 3Y p- 70Y$c - M4դ nd mb0)  4bЍ'jc bЍ4A @ : !@ :    !ّn &|R.>U.| K ɑP* )J<::i * ɑPb bɑPȱmbcdЍM9 r! :<=$i  bɑPLN|ȑ b0k  ɑPb&c bi ɑP 4p)>% (b,k*% | bЍc bm 0ۤ!ɡ< ɡ$Xt bOc bЍj 0!ɡ< ɡbЍ1j 2pJPUc b0 %0 !ɡ̔ r", ", nN$c ]0->01 2 3.  .$  u$t 0Hnc ->A Q 0 1,_  .  ls r 0@nm l0#e "c > 01dЍ0w  Dr1s!m  Ds! mTq, @ 1-v, @ 6-w, @ 7-x, @ 8-bD!nd l0>bЍ!bЍ#+e "c > 01dЍ0  $Xw1x!mm x! < $Xq, @ 1-v, @ 6-w, @ 7-x, @ 8-b$X!nm@0  0q=0 @ 12v=0 @ 62w=0 @ 72x=0 @ 8201 ّn` m0c ȬdbcdЍ" bde@ +ݬ@b",Dj @ : bɑDibcJr p@ : bɑD,H@ : bɑDbcJO p@ : bɑD,LP TݬXb,\j ݬ`@ @  ```,@ɑDߘ!n.nc 8 p, b q̔ 84 ٱnk ( l b!Đ!m c!6t0 "c 81 8ɱ8߸nl c - h !q" - hv" - hw" - hx" ~- h x $- hq,!c!= h1#q< lv,!Q!= h6#v< lw,!?!= h7#w< lx,!-!p= h8#x< l- h4 nhXp̔ p,cЍ lД !4q̔ 4 ّnj k0l@Д 0  $ ɑ@@:#XbA@  @:bA ``` ё@:bA @+ - @0 A*x XȔ@ @  #  ##ɴ,  ɑ@ 0B*b.A""D A*x X@:bA@@    @:dA@ 0@   ɴc-)@JcA3    ɴ 䔰 0"ɑ@ɑ@ߘ1ٱnqȔ -1c @ )b0E  ݼ4ɱ8bЍ$"  4ɱ8ɱ8߸ّni j0Y(p-Dk *p;b qp<0 b p<0 s+c _k p 6bɑ@ߘ!nm .  .>. "Y(p 00 n.Ԕ =Y(, ّnN@.>T.d @ ɑ@b0i bɑ@@ #> j ݝ> b i >ɑ@   @ ``` bu j hʑbP$  ݭȽݽ>bZ j ʑ #@  > 0b; j ʑ @ 0-ɑ@liȽl`Ƚ\N䉏XN䉏TN䉏PNߘ@B@ e0@ 菑Q@```!@B@鏤 ptPITU0% pPITU0% ّnj mlФ0@J0@Jx XȰ@J +ؐș#XbA" bc D  aA4>@Jn@@.  ɑP0<ĉ@ $"#Y ɑP0<͠,6 ɑP(p1p!(q0 2pq!" r02pq!" rs!20b0ɑP"RUP%%ߘn:!;10C1bЍb8Aّni j0k@lPq@- 0C$  ɑH  ,102͔ 1 .0cde( q!ɑH .0cdex( q!ɑHb ,ɑHߘAفnm q@<,0ӑ4<, 0$ (>@ , , ɁTe , >$ 01dЍ) , , ɁT ,ȼ 'p+cЍ $ (>0dЍ@] , , ɁT , rsb Ҕq@   @ ``` ]#Y(@   @ ``` b0,Dvk h$ (>\@ , ,bɁT q,    ``` cd. Ȩ@   @ ``` b0,Dk h$ (>? , ,bɁT p,    ``` cd Ȩ@   @ ``` b0)Ck h$ (>?P , ,bɁT r,    ``` cd~ ȨYs!F , ,!ɁT>bLk @ # + b6 s! , ,!ɁT>蔰   bj s! , ,bɁT>߈@B@ e0@ 菑Q@```!@B@鏤 ٱnk l0m bcdЍ b@,  !ɱ8@ , @ ,  ```@ פ ɱ8߸!an3!21g@hPȞȱ$bcpds)bcdk!bcpdcbcd[  b"(P//bCe 01s1 "qLd', r!1f ad0&!,p !ad%  ad !d0!adhQ@Y@1!.@A!```p6PITU0% nd0t3@  4!4 p%PITU0% JAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$d p PITU0% pjPITU0% 鏖c ( $Header:lmul.s 12.0$pPITU0% p(PITU0% ١nk up-x 2@j ݭx )P 墲 b)Dbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡbybcdr 1- bc7> bbbcd[ 0- q-$bЍ(bɑ@cD,u3 (9 bɑ@ߘ1 nm p-ٷq-ٲbЍk0 nl b0c@@m 5 u,-8,` u,4 b x,4u 5  ١nm j@kPl0r -bc c bz(bcd `Bbc{ p pqQ0 1]ɡD01pqQ0 1]ɡDߨ!١nj0k@m r-  ɡ< IT ɡc bpbq1di p!a lbcC  r2 a ll0bq1dsQ `ؐ 6r2IT a lx9x7q':@!q'c@I r2 a l a lȱ!0׺ bcdA )ugabcЍ& [!Ic(QP/$ (>8y$r2x9x7q':@q'c@ -r2 a l0!cdЍ bc r2 a lu7xq' 0@{q'1@ r2 a lbp8(቏ȧ(h1Anm 67bpqQ0 1]8!ٱnl m0r Wq-1 Nwb)& *7!v-y 9-v=q :b@q Ƚ(bc@  b0ּ ( bwM=(?p w 7 pqQ0 1\ɱH7 v-w!6- 01pqQ0 1\ɱH߸! nm l05 u-,8-` u-4 bЍ< )y x- +9-x=q :b@q (bc@ L b0P4u 5 4! ١nm s t-  ɡA?Qj kP;m04bЪ!d+P͑@~A`&  ɑ@2 ;`bЪ!b+ }!c 3-!b+ cbd&!ɑ@bЉЪ!ߘ!pPITU0% n0m  @tc bЍg @t@ ITbЍO @t Al |!96,  bbЍ, @t|5 3 4 01 b@te p*0% 1PITU0% n8!91:A;Q8!91:A;Q1$$M% $  0A qnh j0 qHu1Lm@0\`Ъ2 `Ъ 3 bc[k( bcfr jqjgip}zpLbcpp ipq}z bjس* @2@ 9!* ```ij*pLbcp %q᭴ cٓ19 @Sb0d -* @d -*```T19j qHqxAanj k0hؐșusqibc`A!c`l*g 8hpIbcp mmq9;01pIbp hmpIbp1p pѴ܎qi``@-@<,=ђ```mlpIbcpp q  pIbcpp ׈\pIbpcp qiֳ qicl01hЉ#ghЉִr mplmhg| bcЍfr jhphpg0q@@, (a```pp bcGr kдMaPqiqih!anl1!04A3Qq8h qAp$ji $ (qApD>2 aHqAp 0 ?2!ȡ bl & "IT+$ (>2.48Yr! r aH6d2r 8sIt)p"lbA8bذȻITp 0x8 =  bp 5qt)q 3!d $`(>Db`230ˤ 7t)$4)sIp"cЍ!d >\b`2̈Jp)7r!  aHbi 5פ1xAȡ>pb rb Bbc]k b ! .t7zb71(AbP[k b% .7[ؤ80(!* $ (>1it! Bbt1s! Bbs1ͱb Bbcȱ'bcAb ! qAp$7.' bcAN !!"cA' bcA: ! r! baHx p-ВbЍr!  aHha%١nj  1"1@ yk A ɡL!bc@ bɡLITp 0 bE ɡLp 0 b3 0 ɡLp lߨan0k@lPpe ȁDd@ $ . gPrQA#Y  Q QA@ޤ0  b.>,f ` 0qb`cden0  b`x4bab`m4Lb8j  aw:ab` <>b` @>(b`ڀ,f ` a&1D! r b`'4 a ahAA4anl0!k01AlPȁb01 ȡbpA0@ֲ *b@RZ % "Y P @D#XcEA  !@RZ  Y P Y)!@R Y !@R ```Y m Z  Y P !@RZ  Y Pm !+ Oa+ @ ! c@e> ;f - @! c@e* & aH-1 b   aHbc `o@- V+A Zq+A @ -0de Gg -A @-0de 3 aH--c s  aHbc dpbq1 Wp` p baHbpA0@Պ aHhQ@eّnl k0m@  # /ɑ@   ɑ@bc  !ɑ@b@  ɑ@q. GؠȪvȺb0A=  1 ɑ@ޚ@b0.2!1.!bɑ@o @_P @D#XcEA  @_P! ɑ@cܑ1  /ɑ@ߘ1pPITU0% nm q=0uMv=p-] /2- b44q=r 0 1 v b  41 t 4 p 4 ``١lPk@o@ۑЎgT   ɡ<.nܳ  ɡ< F@ .nܑ  ɡ<\  ɡ<$`?@kⳲ   ɡ<  ɡ<@ۑ ,`bɡ<ߨQani f0gPh`lp pבt kpp p ```0@r 8)cdppQ "8<  aP` h0o `b&aPP 00 b .@ \@   aP@`? aP  aPb&aPhQd @4A0 C@4A0A鏲$ ٱȑDEHk pn@ܑ 6* @ \@ @0@ۑ @ b#ɱ . ?@l@ܑ ɱ@ b#ɱ菑DE ɱ߸A@!@" @2!`0@20!8@0!8@"##(#(#(#anf g01A2Q͡hذȻA @ @  ("!(! !(!(!r ()!r @('!(!"#$%Ț ! 0$0r 1p /@ ,bp0./ #r 2z a4 B !4>[Bdpg b`"P//40bpcdQ   a4r!c(q!c!"Ȕ`t! o40cdQ   a4ᒤ*cq!c c c;%ͱ  a4ɑr!cq!c c bc !cdȑ$ᛤ#b*a4h@`an\1!g0h@6Q2q4`<Ar-1 aX,5!.q}s u 0"1@. `fITZ`` 0@ x.`fITɗ >.Vg1qV78q9:qB & .`fITr .fܱV.c`d bVV@ .c` .`fITA .fܱVd@ .c` bVV@ .c` .`fIT  .  "2@ .`` 0@  q1.dpPz'q p- s=;! A;A<!40 k .o `c52c1A@}=!,014@P5$ 2O..cvAP0#(k |2u!t1 r- t1  .} .q  baX.abaXs IT Cr= 0 <0 0mbaX.....=r-r-hA)n. ,, nm X-0@0 r 1 X-(  ( 00 aqp`0d0H@b&c`ccc036p2$c .` c &d c e 8 0 q2rrrrq2! ! !qabpqa$Header:rindex.s 12.0$anl11f@0Ql  aHp,cЍԬ  aHw!08k b"% i  aHbg p g` bpp V ( h  aHp0"#(x@q!``` &p,cЍJ  aHw!1?AQ@=!>1?AQ@B(1!0bpd4bp@8l'ȱb b4b%8g,>0 bpDbp8r Hd >bph4bp8r ^Wrȱf@є C Al=% 0a@m %a#a "$ > b`d%4 b"23mb`;Db`8b@є  l Ť al0p1t2bpctQsA4b8h Ȁ.03wH011cdP,3L a la lxPl a lG.0T X"\%`.ܤ1dm `>,bphb0>&blrbcpdrpbЍ[t Vx 0|h a lhqBnԔ .t>p@ |l , "wH ">PNp !2@.l2A! ,,1 n.\ԍ\, nd .dbnm b02  8 p0 p!8 ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 12.0$|pp213q;p3p i q;t3bpx!  "ɑ$d 0 bɑ$d.dP0 !ɑ$dߘ1فni0j@kP4pIBA0I`^\012303 Yl  !\0 ɁX@D9:00X1h>d213qc,0 Ɂ4xq LH J,P8Z X \` h,HdФA`^\0 \12@303 >,`  bA0ۤ Ɂ4x,\2A0$:Ѥ&!,8 \1$b@ b0 bɁ4x,\1A *Ȕ  d,cq4 "wXq0 1bɁ4xb0 bɁ4x߈Aٱnl 4(^$,H012@303Bm ɱL@DGx0A10>,213q=p0Pp ,`q2t3p,\l`t \ hɱLq-t2bpt!lɱL߸فnh i0j@kP !Ɂ\Gm bA @  @L!Ɂ\bcЍ Ɂ\uATh`!\036R77pSq301123!4bcp "bI "6lɁ\߈aqnQph@9!:17586(`@D9Q$ذȻ:01t1p213q2pӤ4p "q,tt!!  i  v!"x0- x!"10#  p-ޓ -!|vA0BvAqxp7u!DvAp7b4p7vAb4!xA0BxAqp7wb-xAp7b4p7xAb4(`q2scdp bq,txanhP5!f0g@͑d0͡h1ͱl2p3t4э  ad01234u!c`dpeadhqn|Qh@:;!<16789(`@D9LQ(9t011213q2ps4p bq<u!! 2i  w!"͡0* y!"10#  p*ݺ쉀-!wA0BwAqp7v!kwAp7b4p7wAb4!yA0ByAqp7xbTyAp7b4p7yAb4(`q2scdp bq<x!qnh i0j@kP  !q hTm bN̔ @  @T!q hbcЍД q hwh!t1pAlQhpw6770qp123Q4A516!bcdep "bN "6lq hxqn9!:1;AQ6789ͱ+`@D9LQ(9t011213q2p5p "q<u!! .i  w!" ́0( y!"10#  p(۶؉-!wA0BwAqp7v!gwAp7b4p7wAb4!yA0ByAqp7xbPyAp7b4p7yAb4+`q2scdp bq<x!anQp8!917ApŃxp(Ȟc 9͡|pzph00p,H00w0p1t23456y1x!d`ep#g b`,Ԕp Np(c bpa(thفnh i0j@kP !Ɂ\m b @ @  N!Ɂ\bcЍQ Ɂ\uAh!`1\PU68l8|0AqpE1A2314!bcdep "b "6l^Ɂ\߈aفn7!819A:Q56ͱp+`@D9Q901x1t213q2p3p "Ɂ,pt!! i  v!"ٓ1|0# !vA0BvÁ|p8u! vAp8b4 p8vAb4+`q2scdp bɁ,p߈فn:;!<1=A>Q67ͱ+`@D9LQ(9t011213q2p3p "Ɂ<u!! ?i  w!"10# !wA0BwÁp8v!wAp8b4 p8wAb4+`q2scdp bɁ<߈ ( ,"RUP%%@2B4>$6 ($# % !-.&nC^0#<0! nC^0#%0! ٱnk l00c/ <Db bɱ<߸!nCP"a,! n@@#,! n@@# ,! ٱnk l0Ѝ <b bc bɱ8߸!ٱnk l0Ѝ bc bɱ8߸!ٱnk l0Ѝ  bci bɱ8߸!ٱnk l0Ѝ < bH bc? bɱ8߸!nԤD!,! ٱnk l0Ѝ bcB  bɱ8߸!nC^0!0! n@",! ٱnk l0Ѝ <b <bSĔ bc bɱ8߸!pp!PITU0% n1102#3d `  Ls r2r! L@A @@RP!1 鏤!@A鏤 @D:#"$b@d  B:鏤 03:#"#d b00C:P%IT n` b0c l brm c b4! nԍ,1 qn|Qg h0i@,ADj $ (>H 03Y,0 "IT2#ɤèªӨҪ Xb Dk $ (>$H 03Y,0 "IT2#`T L!40^LbpcdPgP!1 2pqW1 2[rsW3 4[5 Q6 7[HPAT}~!12Ѥ345;Lț,bdP!X1b=\ ?|+t2bp+Dp %0"2@`0,  03Y,0 "IT2#d0f~3=dp 0 !h0*bq< bl blbq<xq!n0@1"`23<Qan0!1AQrb 5!3!,6v!4!0t!q"uBt!6Dp&L t!q"qBt!1p !p"x2qCt1p t!A1p !8&a2t!q2t3pg r6Lp&0u1dpP7' "IT9&aؔ ܔ%8&aȑȦ "YE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cUىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cuxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cG@+c?@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4Dm ҝb1 4 u2 `;d dɡ,btj @ #ɡ< bc\  >4btl ɡ<$(>8bqd>XbdЍidɡ<ɡ<ߨ!١nj m04@   @ ``` bl  ɡ<(0 ȼ@   @ ``` ⺐+0-cd؈p b ,ɡ<ߨ1nm e "x> 01dЍ  @s!@@B@ e0@ 菑Q@```!@B@鏤 p@PITU0% pPITU0% a`0d0H@b&c`ccc02d36p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$28np2  ? =01q1b;p ," $ ` 0MAtbH١nj k0l@`bcm bc-p 0 ɡ<ߨ1١n?!1@k@Bڡ>bc3!213q=p3p 03Y,04q-rBbp &Y,q-t2bpx! !!&Ɂ(l߈Anl m01 =b( =b bcЍ4 4! nm 211;0!1drbq!@ 0cM#AI ```@.ij c=b/2b!! 2#20bM2Ab@"b."ij <!pfPITU0% p}PITU0% anݞФܮȰ5ܾΤȤޞ.>&g plb0dp ybcФF$ ,1@   1@ ``` Onb`@(ޞb`:,c 0 ;:>bJ$ .,1 @   1@ ``` b0c0`c#ݓܣܳΐ b0dp# ݎbp[4lb08 b0.,c 0 .1<ěbaLhAnl m0 =bdPr4 4! nl m0  4bcЍ|4! nl m0  4= b . 4uMt=bp4=b?  4=b04s ה !4! nl m0X . 4=b  4bcЍ4bcЍ.4p ה 4! nl m0ؔ =b̔ q =^0bdЍ8 8!ٱnk l01ܤ2 p .Д (<bĔ <b}Д < btД <bkɱ8bɱ8߸! !"RU<$P%%* 0 0 0 0 00012#!00& ```012#nm d0r v- 00s-  ```0r 1pt 1u 20t 10w 1x 20 0! pPITU0% pSPITU0% p~PITU0% ̤pR @T\ q2 0_502q1pRϳT bpoPITU0% فnpR`Pe͵pS;j jhͨڳ АͨũŚ  Ƞi iᚪh͘ٳ А͘͘ŪŪ pTP P0TP```ճ г ```000Ɂ߈1``١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3B Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ!鏤!nԍ,! nԍ>,! nd p qDqDp, qDpDp,!, ,! nd p qDpDp, qDqDp,!, ,! nd m0p,P 0cqDqDp4cqDpDp  4p !4!4  4! nd m0p, 0cqDqDp4cqDpDp  4p !4!4  4! nm0@ 0c  4p !4! nm0@ 0c  4p !4! ne m0p:p 0cq%qBbPp4cqEpDp  4p!!` 0 4!4 ۔ 4! nԍ,! ٱnl @!ɱ8 p )q,rbp  ɱ8!ɱ8q,r03zbdp ɱ8'q,sbp  ɱ8!ɱ8q,s>bdp ɱ8!ɱ8 ɱ8߸1ّni j0m@kPpcЍ  ɑ@pݳVp  G ɑ@!ɑ@bЍ l 0ʔ$ (>J$ ɑ@bcdЍ>(ɑ@ b_,0 !ɑ@   ɑ@p ߘAnd04P,! ١nj m0k@lP  ɡn ɡ@pAbMpAbcЍ^ɡ@bЍ0 !ɡ@ ɡ@ߨ1n@{ !, ,! n0R142325BAnm u  5 0s-Ds 3 !0! nm u  5 4p0bs=Ds 3 !4! nl m@u 5 4s,s 3 !41 nl m@u 5 4s b0c~s 3 !41 st"鏲 tdus2`@鏤 3B5鏤!@u 5sB`C3b@"r."b!"0I3@.60ϿK=$Header:alloca.s 12.0$alloca: Caller probably not compiled with -ma H١nz @Ƚ "Ycannot open printer description fileunknown printerlp/dev/lprplpsd/usr/spool/lpdlolockststatusrmunable to get network name for local machine %s unable to get hostname for remote machine %s %c%s %d %s: connection to %s is down Lost connectioncannot chdir to spooling directorycannot examine spooling area %s: Warning: %s is down: %s: Warning: %s queue is turned off no entries r %s: H )(L04602'!!40T&&'D$ -&lt-FL %s: Warning: no daemon present FFr %s: [job %s] %-10s %-3d %D bytes 8IJ$ (standard input)JK ..., %sK%-2d copies of %-19s%-32s %D bytes ??? bytesMactive%dth%d%s%s$Header:displayq.c 12.0$Rank Owner Job FilesTotal Size thstndrdthththththth@(#)rmjob.c 5.1 (Berkeley) 6/6/85rootMcannot open printer description fileunknown printersd/usr/spool/lpdlolocklp/dev/lprplprm-allThe login name "-all" is reservedcannot chdir to spool directory.cannot access spool directorycannot kill printer daemoncannot restart printer daemon H +!3|,-`$P4rcan't access lock file'& 'h4QDrcannot open %s%s: cannot dequeue %s %s dequeued %s: cannot dequeue %s %s dequeued 06 RRr<Tf%s: %s: Permission denied U2%s %s-all %d %s: connection to %s is down Lost connection&4602'!W$Header:rmjob.c 12.0$@(#)startdaemon.c 5.1 (Berkeley) 6/6/85W4socket/dev/printerconnect%s write4x!8!4602&'Y %s: %s: Unknown error0 $Header:startdaemon.c 12.0$D@(#)lpdchar.c 5.1 (Berkeley) 6/6/85$$>IH> I> Q""E0HD()FF9 I**I  @>ACEIQaA>(>>A @@>AA> "B@@|B< @@^aAA>A>AAA>AAA>>AAA?A<  @ !!!MUU^@!"AAAAAA~!!!>!!!~!@@@@@!|"!!!!!"|@@@~@@@@@@~@@@@!@@@OA!AAAAAAAA>>D8ABDHPhDBA@@@@@@@@AcUIAAAAAAaQIECAAA"AAAAA"~AAA~@@@@"AAAIE"~AAA~HDBA>A@@>A>AAAAAAAA>AAA""AAAAIIUcAAA""AAAA" @< <@ "A<>AC=@@@\bAAb\ Hr+***x**?*D*,*,$>*&++*\*bpasswd.byname7passwd.byname7passwd.byname8X@%dpasswd.byuid4|4)*(->6$Header:getpwent.c 12.0$/etc/passwd*$+0+H+@$Header:getservbyname.c 12.0$+t/etc/servicesr'3&Tr# ,/ w+p $Header:getservent.c 12.0$0L+h$Header:inet_addr.c 12.0$+%d.%d.%d.%d4$Header:inet_ntoa.c 12.0$-|@(#)innetgr.c 1.1 86/09/24 Copyr 1985 Sun Micro$netgroup.byusernetgroup.byhost>-h,Tinnetgr: recursive overflow netgroupinnetgr: netgroup %s called recursively innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup # <8X2\--`**-x-d$Header:innetgr.c 12.0$--$Header:isatty.c 12.0$Hd,.H?:-B-.-g$Header:malloc.c 12.0$.40/):`$Header:mktemp.c 12.0$.pag.dir-0T!-' 0D.b...0H-60ndbm: split not paired 0Ph(<.l.2 :=951-)%! 1ҿ14r(G3f!CY&d;oY7uVV0{- ;T>/ /2[1a=<f`Kvz_lG$6$w CM760!nY)6N1Vp&8DŽ)3+H]<517;+$g )#n0%3a$ ۘ 0Vn29D}1N7R#:86)W{:92}x'L~|\/qvg(0tD0T'!--$Header:opendir.c 12.0$(0P<$Header:printf.c 12.0$00$Header:qsort.c 12.0$2l`%s: unknown host socket: All ports in use rcmd: socketconnect to address %s: Trying %s... %dwrite: setting up stderracceptsocket: protocol failure in circuit setup. )(L<4T1@t4|<g!860!4+-4 2X4!/etc/hosts.equivr/.rhostsr'2D&)L'ɀ>w,$,\)2$Header:rcmd.c 12.0$p2͌>$Header:readdir.c 12.0$22pФLdці$Header:res_comp.c 12.0$3Ѭ%s.%s2C 4222g$Header:res_mkquery.c 12.0$3pTC 4!8!6423h(3A8$Header:res_send.c 12.0$3x&-$Header:rew.c 12.0$3٠0\'-2-!02$Header:scandir.c 12.0$\x۔4 ۰4($Header:setgid.c 12.0$ 4<(DD$Header:setuid.c 12.0$L4dh4$Header:signal.c 12.0$ 4<D@44TDh4|T$Header:sleep.c 12.0$d4ހ<&$Header:sprintf.c 12.0$ 4`$Header:strncpy.c 12.0$5/dev/log/dev/console5<%d>%.15s [%d]: error %d 545")D<6$4\4T4|:h0T260!:\6(44<n$Header:syslog.c 12.0$syslog6+$Header:time.c 12.0$@p7`@(#)yp_bind.c 1.1 86/09/24 Copyr 1985 Sun Micro66=7777$7\26V!->V)6?Dh(4!8!;44 67lload_dom_binding: malloc failure. -<<$$Header:yp_bind.c 12.0$8@(#)yp_enum.c 1.1 86/09/24 Copyr 1985 Sun MicroYP_6648--g478,7:$Header:yp_enum.c 12.0$8@(#)yp_match.c 1.1 86/09/24 Copyr 1985 Sun Micro6648-g$Header:yp_match.c 12.0$8@(#)ypprot_err.c 1.1 86/09/24 Copyr 1985 Sun Micro|$Header:ypprot_err.c 12.0$9@(#)ypv1_xdr.c 1.1 86/09/24 Copyr 1985 Sun Micro99:<G9::<@9:$Header:ypv1_xdr.c 12.0$:D@(#)ypxdr.c 1.1 86/09/24 Copyr 1985 Sun MicroGG999RG*GN::GG:8$Header:ypxdr.c 12.0$LX:ptD@$Header:alarm.c 12.0$@(#)bcmp.c 1.0 84/10/03 IBMzz:L-h(-$Header:calloc.c 12.0$;@(#)clnt_udp.c 1.1 86/09/24 Copyr 1984 Sun Micro;;;;;clntudp_create: out of memory clntudp_create: out of memory -<+@)HD4-I-;4D<3ADDC   J P$Header:clnt_udp.c 12.0$< &' ;KtD@(#)get_myaddress.c 1.1 86/09/24 Copyr 1984 Sun Micro,@get_myaddress: socketget_myaddress: ioctl (get interface configuration)get_myaddress: ioctl4@t$-!$Header:get_myaddress.c 12.0$$Header:getdirentries.c 12.0$-X$Header:getdomainname.c 12.0$-t?@(#)getnetgrent.c 1.1 86/09/24 Copyr 1985 Sun Micro->?--.f.>?/Cycle detected in /etc/netgroup: %s. # syntax error in /etc/netgroup --- %s ?<IP-??0241tnetgroup8X1$Header:getnetgrent.c 12.0$22?2DL?$Header:l10.c 12.0$@3T@ $Header:mul211.c 12.0$@$3$Header:mulu211.c 12.0$@D4($Header:mulu32.c 12.0$$Header:perror.c 12.0$4: Unknown error 64@@(#)pmap_getport.c 1.1 86/09/24 Copyr 1984 Sun Micro<5\;4!$Header:pmap_getport.c 12.0$AP@(#)pmap_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro6PG$Header:pmap_prot.c 12.0$A*A7\(;w5^k(6E$Header:rad2a.c 12.0$7`7|C`C|7rdomainnameserver'w\42+&)$Header:res_init.c 12.0$/etc/resolv.confD @(#)rpc_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro9PGG9G9C:CC;G;<@@$Header:tentothe.c 12.0$H$@(#)xdr.c 1.1 86/09/24@@G@:G@\@A$AB,G|BlGBCLCnD\xdr_bytes: out of memory -<G-EFGErGExdr_string: out of memory FG$Header:xdr.c 12.0$H@(#)xdr_mem.c 1.1 85/05/30 Copyr 1984 Sun MicroHHHHHHHHG,GLGRgGGH*HtHH$Header:xdr_mem.c 12.0$I8@(#)auth_none.c 1.1 86/09/24 Copyr 1984 Sun MicroI(I$I,I0I4ITHCIJ6J<JDJL$Header:auth_none.c 12.0$#]:loK߁ `###8HX0 H(n7!819A` cC$N1 y,  P"p""7l  "4@pD0$ $"4w@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p X8xanl m0pwfpȇ5 np-@-bA0 `3P??4pX&p "d;0p h1"Q * '&."C.":03\0# "`p0/lذȻ 0+(1!  q! ```3ؠͪ\23203X0w2 "\nlj ؠͪ\e "\ j\p 0q7@#117bpm u! j$0(7bcp, "`  ! " 0k*l@  ۪b̴ ݢ ꐡr:p 0q6@#116b`m - " P//`^\ZXVTRJDB@><:86420ؤ`  " 0k`b4!b 1! 4p(! 0(q(@ !#1(X "s q(@  q1q(@"cA0@+c:0  q!δ$p(! 0( q(!G1(X "s  q(q(!71(-c0.p(! 0(q(ґ!%1(X "s q( q1q(@"c0-c0 "X!03X0# 03X0t!̐Hsr "X (u'! 5' v'!6'$ "x  v'! 6',u10 "d -lp- &224 uAp-> 8 @DdPUh>.0AD< Q@adh!p!P (U0% P@A!@2@29  + - !0 9 `P!P@20 9@ UbPnm bЍ0 ``nm X= ( 0 DxP  Dxr 5X   "H  `2 -1 } ba2- X ( X ( 3 $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnpu͔%.l>#X4"# D 9  ( 4p, X v=ij  ( 4p, X  !0)0,4u nЍm 403p5#  0`Ъ`6>`0 023$0 ```bФ1.!0 npu͔  4v-p  !00,v-ij 4u ٱnm puȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍY k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cQd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d , X ( 4 4 nl X< @m ,q X  r,` 0 2 1 3 ( b4 ١nj ȱH!<Jmb< NbEd "c b9d "c >"A bЍ%d "cЍv !}ɡXߨfpabort: ...exiting. ّnj k0l@A +ѤbS@ a. 0 2c 0b@bj bɑ@r w ɑ@@ a0B 0ެ3  ( @ r( ( 12bɑ@ߘ1p>P (U0% pYP (U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP (U0% nd0t3@  4!4 p%P (U0% pP (U0% ١nk -x 22j ݭx ` 墲 bTbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cY@+cQ@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c=@+c5@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cwىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1 u2 `;bc3!$$Header:mulu32.c 12.0$*A7\(;w5^k(> x$Header:rad2a.c 12.0$ ?l$Header:shlun.c 12.0$ | *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2?$Header:spdiv7.c 12.0$ BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ @$Header:tentothe.c 12.0$  ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$#]SloS2 X###hx, @n7!819A` cC$N1 ,  P"p""7l  "<@pD0$ $"<@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p ` 8 ١nؠȪȺ03 4bj .*lb0d? bcb0d- b$ɡ<ߨ@Onm 6bЍ0 pqTn 1 @Q  !7!81b@09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$#X4"# D 9  , 4p, X v=ij  , 4p, X  !00,4u nЍjm 40345#  0`Ъ`6>`0 023$0 ```bФ1^.!0 n4u͔  4v-p  !0/0,v-ij 4u ٱnm 4uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "؍, ّn|Œj0X* ( (  ɑD qr1s ` *cd3d 1q0 @ml@ ޑC*1Cdd Y0 r?*c? |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ١nj ȱ !<J7mb< N0bd "c  bd "c >"A bЍd "cЍ !1ɡXߨfpabort: ...exiting. p>P ,U0% pYP ,U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP ,U0% nd0t3@p  4!4 p%P ,U0% ١nk P-x 20j ݭx ` 墲 bTbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c{@+cs@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cEىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cexA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c7@+c/@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1 u2 `;bc3!$Header:doprnt.c 12.0$, d'B@,t,,,0INFNAN()0  |D$Header:ecvt.c 12.0$2t`\$@2x`\#@2|$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$3t55(5@$Header:l10.c 12.0$H7d$Header:mul211.c 12.0$h7$Header:mulu211.c 12.0$8$Header:mulu32.c 12.0$*A7\(;w5^k(9( |$Header:rad2a.c 12.0$9$Header:shlun.c 12.0$  *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2:$Header:spdiv7.c 12.0$ BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ :$Header:tentothe.c 12.0$  ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$#]jlfJ # ##(2`` U|n7!819A` cC$N1 W,  P"p""7l  "Y,f@pD0$ $"Y,W@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p Z/ 8^MnPd P%hPl PpP%tPx#(P|PPPP`Pnmb0| 0@+.b0. 0- bЍG !ncЍm bЍ5 !n}cЍm @D mcЍm mcЍ?0@Ln "d ",~, n "d ",M, nq>Д0Gc$1.c 0 @(,, #p!1X0m +r $  , p1q>0 @ .24>1>b00 n"m !m  m  /X@pcbЍ  /X@p  @pb@p鏤!nq. 0.0@+1.  D0f3 @" >b$/ D>@( q.c@, D0tDq.nl dp  4p=# 421 "h! 4 ١nm o0`@0Qbcde "0p- b_j 4p jbbcp  +p ```ɡ@ߨAAnmbФ1@  bФ1@ 4 anl j0m@5D .1j<}@D؀Ȉ0( b=Hp "X0L+ " d( " h "  "4>@pqS8A01R( ``` " 030# ">@pqS8A01R( ```b3!s!0kpp˔[Ȏ "U4bcBP  "0@  0xTXO\`,bCP /q>0bBrP #N4 "0ds^d,sght!0"l.<03`pp˔p "ZtŐgp'ذȻ x!k@|p7tc0# (hgp' b0ݿݮbbЍx`-s!bЍx`- "U/t"1!r ̤"cЍ|!1v! !cЍn/cЍh-1b /m c @D04.Hc pw07.P1@f "X06`f`ȁb0Rk  1 "$ .\cpbx!jf|cl PU wcdPi wc;b0.l  b1@; v wc; p;0  "$ .ppp; w; p;0PU vc`dPiQ wc PU bdPi@kp+0/ p>b i >b p >b d p˔@,-Y=..<B<# " pP//N "0dqRd,q[ht!0lN@, p˔ @,-p˔ @,- ..f<2v .ԍ.Z<&bx!i1|ce6!@, p˔ @,- ..4<bx!i |c>0'@, p˔ @,""S .c.<ԓbz03#`B`^PZXVRRPNLHDB@><:86420.,Z Hrʑp˔ @,- @=z  "0P@=i' "Ĥ(ЍX$ԍV` "oؤ z "@ >$ cAP6>( dAP6 PU.,Acf'ݏ(.03@9=  .8,<̀s̀0 .P3@9"  .X,< " s " 0p@pqS8A01R( ``` "n030# "~03#^@=tS.pȎȑȡذȻ8bpt! b0@DU l@ b A"" @ b A""```g  @ b A"" Ť ,0,df ` *3 4lp@ !bwc b` %@ ,@@ ,```@ p@ u d  "  \ +@=d  " ] "!#/$l .*<  ܍/@D0$!(u !\ @ d ,``` "nIt0s "m "p(4@=sS8o$$'Z8p+K0bЍBɱ8ذȻ߸nФ p=CH@ %^ "v @ #B (xD@@Db01Wp=b0b ~H0 ١nȮ@ l A bd!ccc pM@ bbܑ@ Ȱ0bB!ccc pMbbܐ 9ɡDߨn̔ 40w$l .(tpX4h(0! v,1!X2|3!03`gcb@y0 qAMbcЍn0qAM$ .(.pbw|4A ٱnk  ɱ80Pl  /Xɱ8c@T rX s!|  !03` >"@ bXbvH ɱ8q!v \q1. '4"@ Fs`bvsH!ɱ8߸AّnŲ݃ 4 @DD033. 4 .  ɑ@ؐș!1 "1 #1 mρؠȪp U bl0.(>4dЍpp ȭ bl0p- .8>Dtp=#b!u"up-" "xFxj p-""x8xj  <.H2rj 0tq3 @p|bu 0X0 "+ <(d >T',0ɑ@XߘanذȻp+0d^E!aFm p+0d^4c bЍqp;#t>dj p;3t.&@ȍ03p+"tu .> &l݁pMb0 ƍeW b0c "” >PbE bHpMb0 ƍe4 b0cp-X b:  .p=p 0qC@$A1Cb0| h  p-p 0q2@112| h b1cKb5$ {p=p 0qC@$A1Cb0|t h  {6bb!g qqcp<3 pMbpd bp1c pMp 0q4@#114b@|> h  ϔ p=X#  b (pb P Pb02p, pMb0 čdo @`f .Xx0@ pMb0 čdR ؀Ȉgb1b@80 @.A N L "Ȟ`s 0 @.A.qbpv!p;PPbpj!p;TTbpc-4bc'4X b8pMb0 čc b~I< b8b~t@p-X"  "sp;u3.d$p;3^ ^p+4D.3H c.3H ^.3H Y.3H Tp;H y  p<.0pЍ~?Pp;#x 3t.ԍ$ a ȗ a ȗ ؀Ȉp;p;p;p;hBnm "X ""t>dЍ.cЍ@.8$L 033t.\#.x>dЍ0 ١nl "Δ" .c@<0 \S0  @<0  ```  @< ```bA 7C 3M :/ :*Ȯp* cC/ܔ dp*  dȮp* ȼcCܔ Rp* @< 00 ? ^ k c@ pM dc]Wbkk !]c.c pM a];ɡ<ɡ .D!q!/8 adr  ("S Ȁ ar (`ЪЪb!`-bb "e .Tc`< Ȁ 3 \q "$ 6.`b\03Uu#! 5# v#!6#$ "x  *vC$3yx3*ypp1 "ij2 .h q!/8 adp10Ñ401 rϔ̤p10q!!/8. . .  "4 u!ad adh1nD PU.034CcЍYu> bЍ^      $4 ""4 !4,"S )#4  "c  4!4 an3! "41t  "Ŕ" t1.s!ZhsaXj Sp*@݁p Kp*h0-p*@ .$MD̝4`Бp:ȜȔ0  >@bdp:b~dp:0.Dc0bɑ@p͑Ԕ p:p,X p͑Ԕp:.HD ɑ@3ˑu Dp:0 @ .hD ɑ@ "4p:0 h@Ȓ bdp:0 @bU8!U dp& > p& p,2Dp# @> 0&4dp# @>0b3 b17 0b b27"0bb4ȁdbc@?p\ gcdPR8p\ "4ȒBbcQHp\ gcdPR8L  . c badp&hA@١nk l0݃  p;.<  ɡ@ "p 3 "  q+F@j bDj ɡ@  q[rKp;.0v< "p>,dH݁p 0 bcd,Lp 0 ɡ@ߨ!nm B!cЍcIr!@فnj ų y63HX| ɁT03bRLl  ɁTb1@$$P `bs2+`к0 bɁTb!h >0.T>0 ɁT "˔! .>ȑ0 1b0cde(X .01cdeX /XɁTi  "˪lк! r1. db1A#Pbs 3r!\bɁT߈!فnh i0j@.vɁTbk .0 1cde .01cde XɁT "˔! r1.d|sAJ J3Ar1b,sAbIɁT߈1nm `p, @ Dl.l>l0 D "˔! .L @  Dq-dRqMp<.l 01Ȕ /XD "˔! A q=. L! 0:T@l ! 0|K@  5>0bID +q=b%H>lbILbd!PPcHD  ( ! D@Qanti ţD a@Δ fc`̔  .cρXa@b`ذͻܪ+* '.  X b`Ԕ .| xȁ@bc}> bp1q[bc`̔ x NX "֔ -q * ڱ s5ല "p>( "' >D&$ "' >`& "p>| ' "& e > NNȤ%b1da@a@h!@cank 37A>nj  "˔! .cX "@a*6ma -Xp #% "p>K "i *2m?bnC0 asR"16!@bcn>Tbmb0c@b .\c "v1yab_  .lc"v1`a " 0݂012rA5Ab0dj` 5p 0 @!. # 餐g@ : q@ :  :q .b1p@P:  .{!p\hps A "ؔ ;@ D`fSbA"",q@bA""```, )1@bp@P,P .cppw8@ bp g' qbibX b`c icp<3bpdi p 0 "| .K!t} bbv rs !tc`dep^!tnݱt!t4A@|4!bP !M ct13#u5`vrA@2Aqp1qb0di- sȞb# m >bwA|b e bcd^:Ȏ b m ؐșp9 wLxl  e bcd^Ĥ2.0d e0^Ĥ"v1blp)3 " 0rA "p>40AqQuA "( rA>d0A&qQuA+aa쉏*@ؐșh1A;١nl m0 "˔! p<.L< "s J  ɡ<xv<0.v<ؠȪpZ zdPK@(kpZA;bcKDY4bdeЍ*Lɡ<xɡ<xߨ!an$m 61v403X 0#   a "r s2! rAqZ\9. "Д @ "̔ :u 6 "Ĕ 0 '*s ( p 3 "p>8 "$.@xۤ 3-a.HcAeЍJwbcAQc ȁb% gcdЍK2r1 hdЍK* /{ q 0w)p0tw)p"{!p "0 8u @ 1 L0tP0t.TcAeЍJbO!Kc 0'tb>$p0wp( Q1} !@u 1}  p(cAeЍIb!KYc 0'tb!p0p 1.XZ aܑp(  4 0' !3 5!B u ; 1r1r*'$ /v!s"s -p*f !`&Ύ# "! .|^b07( " s b*Q,5!p qj3 z90 P.W0 EcdЍ4 ( !b<8  EcdЍ4 ( !u  b`1J!uHp:!nHt-b!Ic) 0'tq!!p0!px”  g0dЍI# a3 t1p( -cAeЍH8bk!Ic 0'tp 1. tp( դ 0'rApY "p>؍tu 5t a "@/0r1b12bLl U !j /p 3 bc4MPh bcdTbcdЍV4>!Hp:!Hz!  3-3 bcЍ4Xl b5M\ bcuQA`l  bcdЍ4  bcd>Tz bc+MDz03X 0# g0dЍH3ba܉p(!!!!h!A١nl m0@ɡ<K G J ( ɡb( b=,b,!Htc, "pcM ( ^ ^ɡ<  ( ɡ<ߨ1An̤ԍgl  -Ob4 ّnk l0m@ 01bcdPPi  KɑPs!cE ͫds1b0cdp s1bdKͫhs1b0cdp s!fp=bt u   ^ ^ɑPߘAnm0  0Mhe .cЍ  F0 ,P  "p>dЍ y "p>@Rd^TdЍ i K/0XUbP0! anm 01k@ "1! .\p!GؐșX0 q->[ !d03U0!h02 adq->@ q-> 7 op!qذȻ00 q ̠p .( p!r" XŢp,p:qhad݁`bqB0K@ p!q2b@H pK.8c@G\pKb@cd`ep- h  adp,p ݏ adb .P  adtu b .p  adq ! . t!Zmu!Zh adp," e Ubd 0dG g p `&Map%. >t!Z#u!Zq r!Zs!Z adpʤ"1!1/0q r!Y!Ys!\i$s!Y "s  "Δ !Yp,""\H$"Y!\>$u!Y Yt!\/$  .ȍ  GW(t!Yt ! Y  "o, "0 Z+a,Y+0p  bYep p1q-`_4pIq=.܍\bdpIE6 KV( EV(t!Y:u!>`c8m q s!Y*r!>`S8h !d0!h0bpadK ʔL C ̠4pKhaّnj l@: ȾXz0  "M2k>bdȠEXa KU " ,^001Q42ii233Lb4ذȻ4x@ Xp 6>8bpbcp >@K H$ "p0b X  K " +H( K "p K0 # K ^$, |b0!1&$<<فnk l0u @ ɁDt E.ȁȑؠȪpZcdBb0!ud @ . c Am> beDpZbcdAbcdFhɁDȁȑؠȪ߈!B١nj k0l@ x&,t >bsl,x` <t.T x.cdF?, x ubpX ZmLxb0^t N@F4t 0>8bФDx &p*! 0*q*>!1*X "s  q*>q*! 1* >c`|bcdE,X  Lxb0^vt ,xX .@Jbak0X Xp .TJ0 ɡ<Xߨ1Aّnj m0 0 čb$k  ,J Gɑ@ߤ"0!0/0 "cb  X$!I I]D!Јp  !Ĕ Y  "Z- ! cȔ Y-  "VQ>bDk  I\݀ p]bcPpL͔dp]bcPp p]bcdPDpLhp]bcPp p] bcdPDb`U `K1bU \ɑ@bGj  Eɑ@("ɑ@Iߘ! anj ų݃M  .c*H1ݯ `*Hp3 "|>$.80>aT "  $ $*:H́@ vqȰv ^ip*H qx" `pq* 1*030s T  .XaTp 030*Hp3 "|>.aT ӥ Ȱq@ qA@b14a؀Ȉ@h b?* _=`-p 6Ȱi1 ^B ^aT  t |aT`p  [o  q v ϤpH .ؐș vp 3  "p>bcp qp xȤFԔ  >b`9 q9b`2 b` zLȀmM ؐș .c`'b`0dpryx̔ b 0aTaTh!@Uanl "! 03.<,^ aT \ "p> D@aT݁ao ^u .4<@PiD .<QHFLp3|@ em p q w .PH "% .lcj< .cH.H "! >(!P FYT "x X >x؀ȈUȘd_\ Ⱦ.|jAce=`.c <.<, ]Adb0x;sh>]lm Дb0x;`hm .cЍH.ԍ<0. m b>|@PQ&<L0 ^ ^u,LL0<L1bФA ٤֤q "| @ A01,@ "x {  mv,f  wҔ u<.H x @ذȻ@ zcd<.mAce;`k "p>dЍZ@3qAbФ001b VSP.>@/m BؠȪ p:~ͼdpJbc@dp pJ.cЍ@>ͼhpJbc@dp pJ.cЍ@,bЍ[dX bЍ[xaTb"eP//nPn:hAفn4i j0 "!PU.̡qLcC.8=b1q 1   p:.D Ɂ>ppM g;bEk >t ad;+ d#d h ^ ^ݫHbGpԔ y  p:.xd\xȁ>|bdr.cdGp]Abc:ȫbc@Pj .RFq 1 Ɂb&0> fd;d> xd;[bb0bDp-l0 q 1 Ɂ̡.߈1@ّnk l0m@U Z-l0x8j >Zi .c>b[H2>Lb[H bZ`jb0dWIܔ bcd> b0dW8ܔ bZv "ؠȪX0 >|b[Hq-lx S " /.cd>n .cd>f bZ MlbcmL.cd>Q MlbcP7.cd>@ .cd>8 bYMlbc?L.cd>" .cd> .0cd> p .4ɑ@ɑ@ߘ1AٱnXpxt݉p0!112A3QP4T5bФ0debЍq "p F0G0 "  "B|>@NԤ"eЍ$ "x0  "82(ɱPɱP߸aٱn ɱPsXذȻp|0!112A3QP4T5bcde%b "x  "81FɱPɱP߸anl X "s݉p011A2QL3P4T5bcdPbФ0=Lqnl X݉p011A2QL3P4T5bФ0dPbФ0 Lqnm "" @ 4 5>dЍYC "Ĕ @ 0 9U X= "s áp,>dЍÝp,>dЍYp,X44! nm 03΍ "p0@ 5 "^ ^00 ١nj k0lPH@ 03SbA A bA B bA dАC-P-P >b,@D @ PU> b,b0ᢔ @ >bd,@  @ ```TQPAL0X1\2bcЍ,@  @ ``` b4d >$b,b50ɡ Hɡ Hߨne 6̡R53 bl݂$p >bpp=bp݂0p >bpp=bpb4@D0@ Mݡ>bЍ5b4@D0@ 6ݡ>(bЍb4@D0@ ݡ>DbЍb4<}= @  ݔP "UR R%" 4ݡ>`bdPb4 anLl Ф`>Vl0! .cp HRt " 0¤ݏȑhbpA0<x sb@=$uA$ c|b@鈀#ȱig@ q@ ``` .cdp-h`,7<f bЪ"o,7/2&f 2PUbcAh5b9A;0& 17.0&q@q@ ```kp q@ ```PUbcAh5cb9A1& Ĥ161&!iHm 2 .4c@2pЉ`jbc!6k bc b|c @D!i5z!i1q1jFbЍTj  .cЍaPȱb0dPl ZmbcdЍ!Fl@ B`fSbA"2 @ bA"2``` -qb 0 @ cA33  1A o`c52b2psp3r@ b0dP bSQ$aPh1ATّnl 04Hk 00GX݄p , 9 j@* , @DScBA @* , cBA  b!4 cA|0+@* , 23S @* , ```23S = , @* = ,= .pɑ@@ 03SbA @ bA```bj <3xhP??zxvFpnljhfb`\^\ؐș83!3{c|i1+@*ؐș8 `1` d "`0r$2@* OE( 2 .02gpɑ@ؐș8 S1+ -+"ؐș8!3)c]|9+ؐș8\ 7+ؐș8E`:+p@* p  .40pɑ@b"ݿ0 p+3A3ɑ@ؐș8ؐș8ߘ̤lc@ V 8@ .DTUz,PEE@HFD.@><:8640., .1 )1 $111\"  , 1!@P%8bّni @ XSj Sb A @ Pb A ّ@ b A```b0!20cd`c0#@  ( lb0Ґlb2m bcdDWbɑ䉏b Ab Aߘ9ّnذȻ`m p &.cvV(p  bvJ(p)21,bЍv@(q)2',rꐡ ɑ@ߘanbg0ńŕؠȪ % .c`dpvb`%"lk &m  %.uaL 6. c`c - % .,uj Ts ".8uTo~1cw~ % .Lu&9"}`P//t plF&ntZ|. @f@ P/@ ybp~!/ cp~A/dbp4/Zbp=/Pbp@/Fbp4/0)&, & p & q, e/b|!,fc{1,>,  -b0,^| b0(^| b0<^|  b0;^| p+^^, a`ˤ(), , UpkRpkh!ّni j0k@p<0 b{ p<0p۔ p=b{ Ƚp۔ +m 0b{!+c{1-p 2  & -0?Y0ɑ@ߘ1nl "pҔ  p-cz q-4rݔ 4 @R : P !@R : P@DScEA !@RcEA```:! anh ذȻ  .o p݁̔ ḿƔ p)*c qI.$oI @ $   03^  q)CH0@ / "()q &p)>,zܔ  qY~8 aAbPc`e)[e`H|&cp{r  .LoC`ܨ`.l  (\@  "x8\b`P "t8XbU`,1.xe P 4X. HL0P "a Pp,   e ȔPp, P bP5.e P xcPd).e P.e P acPd)@  "! "PuRB|>0\1&zDaTaTh@Uّni ذȻp ̀`m p=b, q-ɑ@p ɑ@ߘang ؠȪ ! .cpn=ذȻ @Sb A q@ b Abp0<[h kb`cpx>b`w4<@b A"" @b A""```g  ! !< > @ ihpb`yb+"@@ >(!!0@ 0!@( 1 1) ```0 @c A33 !@ ^R"A@ғ!@c A```! > cx4 ! . c`mib`aLS@Љkhani j0k@p˔ 0 ,:.  +^"q  . bcq<0}@y0bdPoȁAbce'm a@ ^  +^2##/R P0bcdUCp,('d q>bpvsbФ:Zf ` bpcЍv bpcd+VbФ:Zf `bpcЍvbpcd+=r̔WaPh1Ban<2!i03Ať "" r1p3.dlzlrp,ȱt'd >bvp,w@ !؀ȈS0!bA"",@ bA""```, f 0 0,bA8͙ؐ81@ bA"" @ bA""@ Bb< q @ bA"",  @ bA"", 󑑴@y r! @@Ob`p1P@f @yy@@ bA @ bA~&D” N,* ^! [" pAs1!t*:ȱt>$bu4bvl b`&D ” >0bu@60 !t \ @6 a@60  y@ 4^5 [pAs1!t)axĉs@ !ĉ0!hQAqnm @-'aA-'tB- ""S !0 0 ٱnm @^ILɱ8q- @ ɱ8l ͳL  @ >btp;btAxbv8!&N4cu<1-ɱ8ɱ8߸!Aanf g02AؠȪ  .c`jPbp0tTpb`0,X[X b`0;XRX b`0h0& (b`a@& pb`08 "XX "҈r+Tq+>Is4 @ ( y @  "̔  "  .\ ++qK "p>I0qKI>b@de8+bcS<+03ӈ @/bb0/oCh y @  "̔  "  .Ѝ ( bcq@ b[DHc b@%L ( @D IcЍ5P /@,>bqT03tbqTbcAP9k  q;.dgxba@bXj  ( @D CcЍPZp:q+q\ p*r`!"dp:r(1+p:bq(w*rq`!"dw:q(6+r ) s *  ( p:v*mdЍ$h@ bЍrN`!"dcЍq(7+pbcեlba@+h!@ٱnm J ɱ8d@40  "p@0 A@40LK$M (k @p+cЍ$W bɱ8p;v+ld$xb0 Ttp bcЍ$8 pK "p>bɱ8L(k ¤ ɱ8߸@Nٱnm I  ɱ8k l E  - ڽ  !ɱ8-0 0  2# ɱ8߸andm 01f@gPؐșp9s103 31ؠȪp 2>@8h  .cЍxaPb`< (1C@ .cЍD)* ( ( " 0Ҥ0Pb0d<H ;b:S8 p 0 P !qp)3pA "p>,e݁p 0 bc`dpLp 0 b0d<H b?Ps1 " 02r0 aPhAA'١nj p \p* Hq E>" =q*pdl bpd`,.W$&lbco,>boXq:boXbp[d! hco,k p @Hb0^pɡ<ߨ@O  y"  ```anh b01 2! ").ؔ?܍p! Lm 1c bЍozh ؠȪȱ d0pw(1p*0deti 4! \cЌW0"p1pG!! IcЌW"q1!d! 6cЌW f brpI@!>$p! cЌVf d lb j >4bdm>DbЍcAk  Ga`pI>H?>h@Dxb?>|b? Ub0dЍ;@  . bc@b0dЍ;' bc Ea`pI@~!>d0! cЌVj$} Ub0dЍ:  . 1b?b0dЍ: !>! X!>! J!"G!=! = a` Kp:.c\b9ؠȪȱ d0pw(1h!AXٱnk ̑xb0d# 0݁@ bcC - @,""S b0bd ɱ8b0d"  ɱ8߸ٱnk l0m@>b=! "Ĕ .bbcЍbɱ8ɱ8߸1ّn.>YDi .b Gɑ@ݬ0 bYLHj @4q:b@L+k p:bЍm>bY1Hj bYPb0:P:T ߃ ɑ@ɑ@ߘٱnk l0bmyPm bcdЍm bɱ8 ɱ8߸!0x" 6\""xcr2 "P #lls#\ "xbА03P0:44١nj @ ɡ(d̕x`b p" p20 `` @mI`b   bof (" b2_k  Xɡ(dmc@(c((R($b"c!b,rCrRE2CClRlEClCRECB4#4$#4 bc@(/,b0@Tbc@(q% b0$ɡ(dɡ(dߨ@ٱnk l0t( k<*@.O 00AehD.00DehD.00HehD.c@-H .@y8./]L.5RP .\c8./GL03 hTO >.x_X>&kP<؀ȈlؐșXȠȱp\p %"`p\p 0iݡ.cd,|d!0m p   .8%"`O .cЍ_JX:~h .؍8*"h`bЍ.L 0hAT "g .031|@ 1!m ! 4B?lk bЍ!- *p;bipݑpp- +@ (p+0.Lܔ >bhtp=bht! Mxd >bhd|bi!Cciwp݂,0-..:Lp=.c@D> rn0>bЍ5N/>bЍ5C/O . ^xX "+Ad > 'j4Y0(*0/$>4L0)bq\| xAan1HALQPo D1HALQPpw ,.cp3]ZD,bp,bpؐșX ذȻpL"1@fpf ` p.th0٤  .0c`] 1.8Q00Ae@ !LKo .Dc\U 7.l.800HQep," 7l0!D| <b`1H@,p Ppb`,M@ bЍtc .T\0ٔ X- EaT@I0"hP//|zd`^\XVTJDB@ .\\mc`2!D/J.b0| <baTD,,,bp| <= KaTphA@"cpC@ |$`  <0ٱnk l0> b>J)bT64p+a\ "X b$K8d p qZp,">|01A6464p,r "m @-0Mu2!m `Ъ b $0%De p,">dP6i4p,">6`4p+a\0 "c:H 039 ,@\Le Q lP0 LbЍPf bT`Ƞdb`cM".ذȻ(pKcЍX0 bЍPf `b`cL%"t  .cЍXbЍfP p.cЍXbЍXP b. A `fpVc$\ "pVx u  .cdgXLpK.@P,P:0cЍSX0 bЍPf ` b`cL$ bpa\( bЍ` La\bЍ}`p X Ka\bЍj` Ea\ذȻLh@Wn "1b;, nm0q"@Q d .cЍ$bЍn 0dbL$ " /X K0" 0& ' ) C0( * E0 L0! qni j0.co ذȻ$0 b.m dbcK$ " /X KqH * EqH b  LqH͊dݜp=pwpGb0cpp=bdZ4ͪhpGp=b0cp yIp=b0c4Y "Ĕ  "Δ  "p> ;8(0 bm bcK&$ " /X KqH  qH (  * EqH LqHx!١nl ݜp- ɡ<ؠȪp  $.cbJp >ɡ<"0p-24ذȻp+240 0 0 w,p2@Db@˿8d @ wT0p! X aPذȻb1Xp& @@8. E\ 7ؐșȮ@ "@@D,@ p&">$2,@ p&">8d2,p&"cd2,@  "Δ  "p>HdؙC-C@(""S:b$8`l d0@4  .cad  p 0p!oXbaP`fpwhno l0~ݘ0bc`6$@D, "2|beЍD( "”! "Ĕ  "Δ  "p>dЍX " y\>dЍ2 88Q١nk l0m@1 " >bd1@+SbA"" @+bA""```0@;0 bA"" @;0 bA"" 0  Ȯp* p< p* 0bɡ<ߨ1an+ "U7 !%_ ""' "003,0 ؀Ȉ008.g "(؀Ȉ00(. ȑ A ؠȪpZc.cذȻ$0 ́ "8^     "x "p*30 w!/@Db03 pX@D(.> ֮Zb1,A0 Nm <0 p8.Dd03(bЍ @D(.P>T| ", [p(2!f4a@"gg @&ar1r!@ r!!2!taa4ar!@"Ng @&Hr r!@ta@ ). &pX! >xdЍ^d! _!B1 _u m pJ scЍ$bЍ_!(cЍ_\ c pJ si$@D(.>eЍ 0 ", p: sy(  pJ03, s=$+ .>ߍ,pHp*2|.e b>0 ƍ34p .>ա+0 pHp*2|.e "8\  p*^ ^ "xb>G0m Ў0AP8! c 0s (p 0H{= .(>,4p*E3@0 + .H>L 3pJX .`>d$|0 4|pH.eP!@0 p "Τ "mp*^ ^.>@Db0Fm b1,A0  m 3 !0q3s* @D(.>ԧ "-D "-Dp*0x HpJD>Ѝ/LpJ$s 0b0ib@4PpJ3+b@0Ts p*HXp*\0*03~2^!0q2.ȍz`Y+0 p*XH.>؍3Fp8.dw$ "xbФ0A$d1$010'p1xӔ   xݔ ```p1% p1wC!@ p1pC>p1pS>  . >$c010@ ,bЍh.4>8Ӯ@D(.<>@ӠL "Ĥ.X>\ӎ.l>pӄ.R lp*"H1p "0dN^tbЍhx.>Yl.>Obb0"P//L$ :p8Rr!@hA`nl @LSbA"R @LbA"R```b@ : P @L@ M: PeAUU ДP ܑ@LeAUU```: .>| "p0b4ܑ@LdADD @LdADD``` b4eAUUeAUU! فnh " >+\i X.> ҉dɁDb\Ij b`kb0d(5d 0bcd\dh $b9>ll lb1#`bcIdb0d(d Ҕ .,>04d .D>H+db+1ɁD߈Aanxk 10t [ ! i b0t c b[D2!>+3m  r1.a<r!ؠȪp: pw( ;|.,PT$ tZb0d[ ! i b0dc bZ+t><*i ;t.@bЍ*(a<p:+t ͫh03 bdp b*x(( hqK>\bЍ+,rK>dbЍ+,Kt>lbЍ+,K@ >tbЍ+,uK>|bЍ+y,ͫL   pJ>bЍ+h,xȁ b000,.<'>> gd l4pk`&   b`cy8q& @   ^>bЍ+,&< o& 0p-! 0-q-?!1-X "s  q-?q-! 1- ?cЍ(@oc`03?btb# .p-! 0-q-!%1-X "s q- q 1 q-@"cЍ(@)cЍ(x@ p-! 0-q-?!1- & X "s  q-?q-!1- & ?cЍ(K@&  q&ȡbe*`,  ^q6PP_0b`dЍH qVpF>bЍ*C,rf`͛HؠȪ L   /  / 3pI>bЍ*,q p 3 "p>Lp .P3( .NG$b0 TxbЍ((b0qm r IXr!cЍO\ r1[t.dЍμr!]`1dp  tK|>0'eЍYha<a<,& h1A"ّnj k0ɑ ė 0qU>(l ɑ ė ib0 d^ @R b+m b0 dJ X, b(ɑ ė bcФ@* H    pM>b),xݔ   -  pM>b)xݔb+-c ,+$b' ^ ^ɑ ė ߘ!Bn " X  "Ĕ .M% 4:\ ,V` 03 V d " f03B8Ah4 0Vd.4l "+0)pe @D>D'Xԍt 7x̜pܔ s 0 bЍ|p-@bЍ@pܔ "|\44 an2Ȁؐșpٔ s0p-@bЍ@m.J\1! 03. a&&M`m Ў8H qI f̉0 - dˆX>(bЍ&k  "X" pL.,cЍL 0`b0!b bЍWB!cЍV0&12s̉4p wp Y! 0d#h N6! hl1&8! ^l2&.~} * @- %p<@ b0Vd p('VCФp-00lpc p,=T p :p-B|><'V%ɱ8Xp-1,\p-^^ڇ`p-^ 0izdp-hɱ8ɱ8߸ang Ń0qm >$i .cЍʿa ė  " 0Ҥ "ذȻ0 7|.$I lb0 d  ݃ ( .4cI @ pK7|.\eo!GH0|~!GL0|s q!0ׇiab`T!% c`TYW'ab`T! c`TDv> @$'x 7t.D!2'!03|`21b0 d  Ob#$ " 0p *ݯX^^a ė "lP//&vtpnljfdp`vVa ė h!BanX!\m .Ha\.N8N#Og p62.Hp6!SIl!1Ra .Hu.Hnq&` .Ha.HZ0p . HQ0\b0dpy b1~\ "

bPȡbcRlȱbcR n~ Z݃Z |Ȁ@lpq2ŀށ3ށG  .cGb0/ >b0' 6X03b bVz@ ybc:f bVi@` bc9̔  bVZ@~ Z B Z q @D.,cZ GV2bQ!+cQ_pA$|e icPiG  pA4|.TF " pAD|>x'R+Hq aDpAT|ݮ>bqAO "" .cЍFRbaD݃~h!$nm M|@0 ">'Q "$ b0x4b0l40 anf g00AhP " .E$b`d(. E$`ni@d (a@-c, &Na@bc,AŠ 9Š5    ($ ى @ґ! 1Sd ATE Eّ@ґ!  a@ " .Ec$b(. EX$ bcppAeP0aPp✴kbcpd 4baPhAAٱnŲl0m@ "Ӕ) .cEb.E b ɱ8߸10 b" 3l0鏤 C c @1 "@!@10@! 11@!b0@De@@2SoA0 5!Q@2oA00b@35!Q@2oA 5!Q@2oAnЍ7m  .gb0 ١nj ųmp p ```ڠҪbЍl bcdЍ  mp- Oj !p=N0-p- bɡ<ߨ!ٱnk p;U0 @̃@ , .C 'u-! 5-v- !6- $ "x  v- ! 6-= Vp;b0Mp;0u-! 5- v-!6-ɱ8 $= "x  *vM$+ɱ8*!ɱ8߸" 23S  ١nj  .Cxɡ<Uu  5 v,0"2!6,!,$" 0x,2 v,0"2!6, "cЍu @ ( 5 v,0\2!6,,$" 0x,2 v,0\2! 6, \cЍu Ż   * 5 v,0^2!6,,$" 0x,2 v,0^2! 6, ^cЍju +@Ų 5 v,!&6,,$" 0x,2v,;: !6,bcЍB u bcЍ9u @w 5 v,"!6,,$" x  v,"! 6, "cЍbЍ ɡ<ߨ @B@  43S  !@B@@!@S1 ODS   EDS  P  ݴ! !ٱnk l0m@@ *@ 3, 0; -% *&bcL@  @ ``` @ , ; %ؤ ɱ8߸1nl0m@cK    !@tX @t1n:/ 0 ! !0! ّni j0X`b !0bc3  p   0ɑ@ߘ!qng h0i@t bp@!@!```bp:/j bpLtj'`ވst  nȷ@@.*t  &p(! 0(q(.!1(X "s  q(.q(! 1( .c~bpcp(! 0(q(!!1(X "s  q(!q(! 1( !cSy)cg`t @ʴ   ʴ  ```@.*t  &p(! 0(q(.!1(X "s  q(.q(! 1( .cbpcy)cg@ q@&qHx1nl ݂p  "B|>'eK(bO, p PUX>'dK(44 qn>!g ?1A@i@݂p = "0H, %<X003,0 .X. X0~! qHp-03Hh@0j ͑@~qX)#  X0bpcd4k p X ( X) b8 "p0  qHbp@ !@```bpqHxn "01H, ّnj k0l@mp  0 q<@#11$@NLZ^0!'G p |ɡD*H  x" t r*^ 1 "t"A0}tq1Tb@x*^$ @ q b|*^@  *t b0qx b0@Bbbt| x bNxɡD*^ߨnl , /,x ' bc@QpqS8A01R( ```pߔ  0,c b@ Y\prݑȔ4! ٱnذȻp+ Xp;2# "d "̔ d ̰x>bЍCpK pcЍpKD`>bЍCpK ccЍ ɱ8߸١n><3!ȡ b tRuB̰x>Qs0r1q2bЍCذȻpK tcЍb  c (bD$b:'(c pK dc@,  pK dcb+0D4!7m b0c bЍDd$m p; a,  pK acЍgpK bcЍ_ɡLߨnl " L|>^^'E| 4b0xm >0,  . cЍ44b084 nm - 0d 0 qnTm ؀Ȉ- .>cЍ80 "̔  "s akД @ ӍHk ݟX &b A &l f b0!& &o Фq́|ЎؠȪp 0bФAPG A  "! >#deЍD4BĔ kp- >AĔ p- bФ1p:#D- .7;0p*"D b4bc@ebB[!hcAc pJ fqd9ؠȪr;d7dp;pJ1dp-p;)pJ1pJx@nl ݂p- cAuؔ !4p-  4 n"  ݰ>B@bЍ@Cb0"b."0 فnh b kbXh ̱$ji@  @  @  , ڑȘ@  @  ڑȘ@  @  @  ڑȘ@  @  ڑȘ (@  ! ```bx2SbCi >CA >bCA} 'C $@  A :0 @  @  @  @   bc! ڑ@  @  @   bɁ PMk߈ٱnk l0p- %cO q-  @  !@``` !ɱ8p- ݤ ɱ8߸!ؤ0@RP WS@!eAUU e@RTQOE@!eAUU!e@QECe@TEBe@TE$Be@SE_UP 4@RPb0an  .aPb`d>b`@ b>0b`de>ybaPp>(q^4^8b`dp>ab`?b><^H^Lb`d>Ib`?b>P^\^`b`d>1b`?b>d^t^xb`d>b`?b>|^^b`d>b`? "NaPh!nm . ,jbФ2@+. bФ0@+.  0 0 n` d0.ؔ  .܍4  ,c,E, nm `0e@>̔0.Ѝ32rsQ0 1]@bd,FpqQ0 1]@ne d0.Ĕ .ȍ3 ,r  ,cP,Z, nl m0o@. .3 0.3U2rsQ0 1]@b-pqQ0 1]@nm `0e@>0.3'ؤ2rsQ0 1]@bd-pqQ0 1]@p$Header:abort.s 12.0$pcPXU0% p!PXU0% n1102#3d ;N  Ls r2r! LP@A!@2@29  + - !0 9 `P!P@20 9@ UbPP@A!@2@29  + - !0 9 `P!P@20 9@ UbPphPXU0% #2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$,8@DQx#"$b@d  BQ|鏤 03Q|#"#d b00CQ|P%X @`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$p PXU0% pPXU0% pPXU0% nm p-0 1 v-$bЍ$0 pbPXU0% pPXU0% nԍr, فnm qb̲L<q1w b$ "p 2bЍ j wȾp+ x Ȼp+ ``` hu lr;p ݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk ݲLc.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d 0 u 0db`bɡ<ߨe Q^`R n mnl m0 bc c 0   bc 0 b4! p)PXU0% ,4@\l,8P\h|(@Phx @Tt@Xx <Tx$8L\p(DXl$Header:errlst.c 12.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededRemote file system errorOut of remote working directoriesStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks available@DDp;PXU0% nm bЍI0 ٱnk l0q1. q  ɱ8n m  ɱ8 0-޽3-1-2-@ ab0B( ( A +( bɱ8r w ɱ8߸!npԒ 0q2@112^` b, pqTn 1 @Q  !7!81b@U29A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$``nm X= ( 0 DxP  Dxr 5X   "WL  `2 -1 } b2- X ( X ( 3U $ ,X 8 ,(M r=X -AsM)0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnݲu͔%.l>#X4"# D 9 X 4p, X v=ij X 4p, X  !0D?0,4u nЍm 4D$035#  0`Ъ`6>`0 023$0 ```bФ1C.!0 nݲu͔  4v-p  !0C0,v-ij 4u ٱnm ̲uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "W, pPXU0% ّn|Œj0X* ( (  ɑD qr1s ` *cd6)d 1q0 @ml@ ޑC*1Cd6d Y0 r?*c |є bЍ k 2X*( X ( 3 "U"&r 4X*( 1X*@l@qJKl@&1*c5d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d5x, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@#gi bɑ@r w ɑ@@ a0Bd 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!p鏤 PXU0% ١nj ȱ!<J{mb< Ntb/d "c4l b/d "c4` >"A4X bЍ/d "cЍ4L !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cdEL!hX/(230$b0cdE1X  ,AA ١mXSE (213pqs@ ;! ެ  ެ-=M]bW:1 *-=M]XSUps㉏qÔ@ j0b0W1 cXSU(S2301aɭߨ-$Header:fputs.s 12.0$ ّnj k0l@A +Ѥb@ a. 0 2c 0b@!j bɑ@r w ɑ@@ a0B 0ެ3  ( @ r( ( 12bɑ@ߘ1ّnj k0l@X:( 0l>r ;8pm*0AK ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cd m 0 > ;0 b 0/ ) m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1p>PXU0% np2Д0002XB   r20 q"0A  0 0-0 nm !c  @r0 s0bv"-p# q$ @pPXU0% pPXU0% pYPXU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pbp/PXU0% an7A6A P&9   a lb! 2! 211 Mq10 J̲Ȍ0Ȱq,Ўww! `0r1! dpe" E a l  *$ "'P//Ԥ a l$r݌b+ !ႉ Ҳbp#$r#bp#$r w!    a lȜݜ<31<4q1111rp0r1! dpe"Am Ў}bp#f rbp#j vbp#m re} ,o0b+l !ႉdⲔl0r1! dpe"m R}݌,a la D}t  :}v V4} 156 w!  ݌b+ !bu s10431bpcdЍ}t4q1111rp` t 0)s10#,a la l 15h1@ٱnk 01234 cAQ#<c 0bɱLbФ@;  03X=b ɱL߸@فni j0k@  ɁXA BYCI>0@ 1bЍ( 012ȁ34 cФA\"c 0bɁXbA 03X=bcd$ bɁX2303401p 4ɁX߈1@nm .  .>.%  0 n.Ԕ  9,, ّnN@.>R.d @ ɑ@b0i bɑ@@ #>k > bk ˑ= `= <0b { =p30#  @   @ ``` ݽȭݭ>bVk ˑ #@  > ,0b7k ˑ @ 0-ɑ@ݲjȭ8ݲaȭ8]NYNUNߘ@B@ e0@ 菑Q@```!@B@鏤 ٱnHmo@RP @DScEA  !_!@RP k p+cЍ(3 qp, cЍ(( p, k bɱ߸.١nj k0l@ mm r  t-p"cd: m ubɡ<ߨ1pWPXU0% n̍,m  4.0kl  4cЪ3=2b@t ݼ=b@$w$ bu 4bjH  4 -c @ 1```14 pPXU0% ٱn:!d e0  ɱ803 !(z ɱ8ݼ@ @  ```@  ```=bD5=bD,=bD# @  ```$@  ```(@  ```,@  ```- ɱ8߸nl  "t LN@ D b0- -bЍ'* c bЍ0! cbd p!DNb0 Ս Dݝ p- ..0U0- $- 0! p2b&?$  " Mp!Dp"1(  p-,0 b& c b00!p-p"8( " p-,0 p!DAn!014A8Q&.! ݼ@-  !0 n.̔ 3ݝ p- S0ϝݼ@- bQ?4դ nd mb0/  4bЍ%&c bЍ4A @ : !@ :    !ّn &|R.>].| K ɑP* )J<::i *  ɑPb bɑPȱmbcdЍP r! :<=$i  bɑPPsN|ȑ b0q  ɑPb$hc bi ɑP 4p)># (b,k*"| bЍc bm 0ۤ!ɡ< ɡ"t bOc bЍj 0!ɡ< ɡbЍ1j 2pJPU@b0 %0 !ɡ̔ r", ", nN$ݼ@]0->01 2 3-  .$  u$t 0Hnݼ@->A Q 0 1+]  .  tls r 0@nm l0!Oe "@> 01dЍ/u  Dr1s!m  Ds! -Tq, @ 1-v, @ 6-w, @ 7-x, @ 8-bD!nd l0>bЍPbЍ e "@> 01dЍ/   $Xw1x!mm x! < $Xq, @ 1-v, @ 6-w, @ 7-x, @ 8-b$X!nm@0  0q=0 @ 12v=0 @ 62w=0 @ 72x=0 @ 8201 ّn` m0̼@ȬdbcdЍ  bde@ +ݬ@b",Dj @ : bɑDibcJr p@ : bɑD,H@ : bɑDbcJO p@ : bɑD,LP TݬXb,\j ݬ`@ @  ```,@ɑDߘ!n.nݼ@8 p,bq̔ 84 ٱnk (l bwĐ!m ct0 "@81 8ɱ8߸nl ݼ@- h !q"S- hv"L- hw"E- hx">- h8 $r- hq,!f= h1#q<lv, !T= h6#v<lw,!B= h7#w<tlx,!0= h8#x<bl- h4 nxp̔ p,cЍ(Д !4q̔ 4 ّnj k0l@Д 0  $ ɑ@@:SbA@  @:bA ``` ё@:bA @+ - @0 A*x XȔ@ @  #  ##ɴ,  ɑ@ 0B*b.A""D A*x X@:bA@@    @:dA@ 0@   ɴc)@JcA3    ɴ 䔰 0"ɑ@ɑ@ߘ1ٱnqȔ -1̼@@ )b0  ݼ4ɱ8bЍ#   4ɱ8ɱ8߸ptPXU0% pPXU0% a`0d0H@b&c`ccc0DT36p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$D(ّnj mlФ0@J0@Jx XȰ@J +ؐșSbA" bc D  aA4>@Jn@@.  ɑP0<ĉ@ $"S ɑP0<͠,6 ɑP(p1p!(q0 2pq!" r02pq!" rs!20b0ɑP"RUF2P%%ߘn:!;10C1bЍb8Aّni j0k@lP- 07$  ɑH  ,102͔ 1 .0cde( q!ɑH .0cdex( q!ɑHb ,ɑHߘAفnm <,0ӑ4<, 0U (>- , , ɁTe , >$ 01dЍ) , , ɁT ,ȼ 'p+cЍ U (>0dЍ , , ɁT , rsb Ҕq@   @ ``` ]#Y(@   @ ``` b0,k hU (>\ , ,bɁT q,    ``` cd Ȩ@   @ ``` b0,bk hU (>0 , ,bɁT p,    ``` cd Ȩ@   @ ``` b0) k hU (> , ,bɁT r,    ``` cdl ȨYs!8 , ,!ɁT>bLk @ # + b6 s! , ,!ɁT>蔰   bj s! , ,bɁT>߈@B@ e0@ 菑Q@```!@B@鏤 ٱnk l0m bcdЍ b@,  !ɱ8@ , @ ,  ```@ פ ɱ8߸!an3!21g@hPȞȱ$bcpds)bcdk!bcpdcbcd[  b"LP//b1e 01s1 "d'\ r!1f ad0&!p !ad%  ad !d0!adhQ@Y@1!.@A!```p6PXU0% nd0t3@  4!4 p%PXU0% JAd @ DBDA$M逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$MNvNp PXU0% pjPXU0% 鏖c ( $Header:lmul.s 12.0$OpPXU0% ١nk -x 2Ej ݭx h 墲 b\bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡdX!ɱtdX#ɱdX$ɱd{X%ɱdXX'ɱ<߸!nl0Mm  41@ w a +2@ -  bЍ 4b4! nԔ !, nl  4bcЍ 4&b4p nl m00B !4bcЍ 4! p@_P @DScEA @_P cEAcP , @_P ,```P 0b0ّni j0s9Όbu0mbЍk @ b d bc   s b ɑDbЍk @  ɑDߘ!nrqSpC0s1t2u3c <!``ّni j0k@ ,m  X ɑ@*2 ! Ġ(bc>bbcd| 1- bc> bbcde 0- q-׏$bЍA(bɑ@c,u3 (9 bɑ@ߘ1 nm p-aq-\bЍ0 nl b0c@@m 5 u,-8,` u,4 b x,4u 5  ١nm j@kPl0r -bc c bz(bcd `Bbc{ p pqQ0 1]ɡD01pqQ0 1]ɡDߨ!١nj0k@m r-  ɡ< X ɡc bpbq1di p!a lbcC  r2 a ll0bq1dsQ `ؐ 6r2X a lx9x7q':@q'c@- r2 a l a lȱ!0V bcdA )ugabcЍ& [!Ic(QP/U (>$r2x9x7q':@pq'c@ -r2 a l0!cdЍ bc r2 a lu7xq' 0@-q'1@ r2 a lbp8(቏ȧ(h1Anm 67bpqQ0 1]8!ٱnl m0r Wq-1& Nwb)& *7!v-y 9-v=q :b@q Ƚ(bc@ b0X ( bwM=(?p w 7 pqQ0 1\ɱH7 v-w!6- 01pqQ0 1\ɱH߸! nm l05 u-,8-` u-4 bЍ< )y x- +9-x=q :b@Yq (bc@^ b04u 5 4! ١nm s t-  ɡA?Qj kP;m04bЪ!d+P͑@~A`&  ɑ@2 ;`bЪ!b+ }!c П-!b+ cbdВ!ɑ@bЉЪ!ߘ!anl 11qѤp- @ 2#p-  f hh`ܐp- @>b;0!  a(t!0 ApQ6   p! a(t>bj p! a(t      $ca`c2p!@*`bȱ pg`bcpApQ6!Ogm| Ip- CD ?rcb@ 8bAe6gq1p# (@ %e@B@ @@!Q@B@```@ r 2D S #E  N0ep4, k0 b$b$ q Tb"p b0b$bc 4q Tx!ّn03όcp0Íڬ bɑD' -k mbЍ j  b  pbɑDߘn8!91:A;Q8!91:A;Q1$UM!  $  0A qnh j0 qHϔ1Lm@0\`Ъ2 `Ъ 3 bck( bcfr jqjgip}zpLbcpp ipq}z bjس* @2@ 9!* ```ij*pLbcp %q᭴ cٓ19 @Sb0d -* @d -*```T19j qHqxAanj k0hؐșϔsqibc`٠!c`ql*g 8hpIbcp mmq9;01pIbp hmpIbp1p pѴ܎qi``@-@<,=ђ```mlpIbcpp q  pIbcpp ׈\pIbpcp qiֳ qicl01hЉ#ghЉִr mplmhg| bcЍfr jhphpg0q@@, (a```pp bcGr kдMaPqiqih!pPXU0% nm q=0uMv=p-] 5C2- b44q=r 0 1 v b  41 t 4 p 4 pPXU0% ١lPk@o@ۑЎgT   ɡ<.nܳ  ɡ< F@ .nܑ  ɡ<\  ɡ<$`?@kⳲ   ɡ<  ɡ<@ۑ ,`bɡ<ߨQani f0gPh`lp pבt kpp p ```0@r 8)cdppQ "8<  aP` h0o `b&aPP 00 b .@ \@   aP@`? aP  aPb&aPhQd @4A0 C@4A0A鏲$ ٱȑDEHk pn@ܑ 6* @ \@ @0@ۑ @ b#ɱ . ?@l@ܑ ɱ@ b#ɱ菑DE ɱ߸A@!@" @2!`0@20!8@0!8@"##(#(#(#anf g01A2Q͡hذȻw< @ @  ("!(! !(!(!r ()!r @('!(!"#$%Ț ! 0$0r 1p /@ ,bp0. #r 9F a4 B !4>[BdpWg b`"q:P//40bpcdQ   a4r!c(q!c!"Ȕ`t! o40cdQ   a4ᒤ*cq!c c c;%ͱ  a4ɑr!cq!c c bc !cd$ᛤ#b*a4h@`an\1!g0h@6Q2q4`<w.Vg1qV78q9:qB d& .`fX .fܱV.c`d bVV@ .c` .`fX .fܱVd@ .c` bVV@ .c` .`fXɘ .  "2@.`` 0@ɬ q1.dpP 'q p- s=x;! A;A<!40  .o `c52c1A@}=!,014@P$ 2O..cvAP6(k |2u!t1 r- t1  .  .q  baX.baXs X r= 0 <0 0mbaX.....=r-r-hA)n. Ȍ,, nm &-0@R0 r 1 X-(  ( 00 aqp`0d0H@b&c`ccc0wF36p2$c .` c &d c e 8 0 q2rrrrq2! ! !qabpqa$Header:rindex.s 12.0$wn7!819A:Q7!` 819A:Q #]lf # ##(2`B"UA c%,A n7!819A:Q7!819A:QA$%,A nA?QA?QA(2!1!@0A@! 1?AQ@=!>1?AQ@B(1!0bpd4bp@8l'ȱb b4b%8g,>0 bpDbp8r Hd >bph4bp8r ^Wrȱf@є C Al=% 0a@m %a#a "U > b`d%4 b"23 b`;Db`8b@є  l Ť al0p1t2bpctQsA4b8h Ȁ.03Ф011cdP3}L a la lPl a lG.0*T X"|\%1`.ܤ1Xdm $`>,bphb0>lrbcpdpbЍet x t|h a lhqBnԔ .t>p@ |l , "Ф ">PNp !2@.l2A& ,,1 n.\ԍ\, nd .dbnm b0  8 p0 p!8ّnk m0.$i 20,(j # *ɑDдbcI,, bɑDbɑD>pp   r# ɑD q# ɑDp213q;p3p i q;t3bpx!  "ɑ$d 0 bɑ$d.dA0 !ɑ$dߘ1فni0j@kP4pIBA0I`^\012303 l  !\0 ɁX@Dm`m0X1h>d213qǻ,0 Ɂ4xq LH J,P8 X \` h,HdФA`^\0 \12@303,`  b0ۤ Ɂ4x,\2A 0$:Ѥ&!,8 \1$b@Y b0 bɁ4x,\1A$Ȕ  d,c/4 "q0 1bɁ4xbߣ0 bɁ4x߈Aٱnl 4(^$,H012@303B<m ɱL@D|0A10>,213q=p0Pp ,`q2t3p,\l`t \ hɱLq-t2bpt!xlɱL߸فnh i0j@kP !Ɂ\m b @  @L!Ɂ\bcЍ Ɂ\uATh`!\03j RkLk`pSq301123!4bcp "bI "iɁ\߈aqnQph@9!:17586(`@Dm|Q$ذȻm01t1p213q2pӤ4p "q,tt!!  i  v!"ݪx0- x!"ݟ10#  p-U -!|vA0BvAqxp7u!vAp7b4p7vAb4!xA0BxAqp7wbxAp7b4p7xAb4(`q2scdp bq,txanhP5!f0g@͑d0͡h1ͱl2p3t4э  ad01234u!c`dpeadhqn|Qh@:;!<16789(`@DlQ(l011213q2ps4p bq<u!! 2i  w!"͡0* y!"10#  p*|쉀-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4(`q2scdp bq<x!qnh i0j@kP  !q hm b ̔ @  @T!q hbcЍД q hwh!t1pAlQhpwj ktkx0qp123Q4A516!bcdep "bN "iq hxqn9!:1;AQ6789ͱ+`@DlQ(l011213q2p5p "q<u!! .i  w!"́0( y!"10#  p(x؉-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4+`q2scdp bq<x!anQp8!917ApŃxp(Ȟc 9͡|pzph00p, 00w0p1t23456y1x!d`ep#g b`Ԕp Np(cd bpa(thفnh i0j@kP !Ɂ\m b @ @  N!Ɂ\bcЍQ Ɂ\uAh!`1\PUj kl0AqpE1A2314!bcdep "b "iOɁ\߈aفn7!819A:Q56ͱp+`@DmlQm01x1t213q2p3p "Ɂ,pt!! i  v!"U1|0# !vA0BvÁ|p8u! vAp8b4 p8vAb4+`q2scdp bɁ,p߈فn:;!<1=A>Q67ͱ+`@DlQ(l011213q2p3p "Ɂ<u!! ?i  w!"10# !wA0BwÁp8v!wAp8b4 p8wAb4+`q2scdp bɁ<߈ ( ,"RU\P%%@2B4>$6 ($# % !-.&nC^0)0! nC^0)i0! ٱnk l00c/ <Db bɱ<߸!nCP(,! n@@)`,! n@@)M,! ٱnk l0Ѝ <b bc bɱ8߸!ٱnk l0Ѝ bc bɱ8߸!ٱnk l0Ѝ&R bci bɱ8߸!ٱnk l0Ѝ&1 < bH bc? bɱ8߸!nԤD'`,! ٱnk l0Ѝ bcB'B bɱ8߸!nC^0()0! n@(Y,! ٱnk l0Ѝ <b <b%Ĕ bc bɱ8߸!@A @@RP!1 鏤!@A鏤 n` b0c^l b֢m c4b4! nԍH,1 ``qn|Qg h0i@,oDj U (>H 030 "X2#ɤèªӨҪ Xb ADk U (>$ZH 030 "X2#`T L!40FLbpcdPP!1 2pqW1 2[rsW3 4[5 Q6 7[HPůT}~!12Ѥ345;Lț,bdP'X1b!\ ?|+t2bp+Dp %0"2@`0,  030 "X2#d0f~3ydp 0 *[h0*bq< bEl b>lbq<xq!n0@1"`23<Qan0!1AQrb 5!3!,6v!4!0t!q"uBt!6Dp&L t!q"qBt!1p !p"x2qCt1p t!A1p !8&a2t!q2t3pg r6Lp&0u1dpP!' "X9&aؔ ܔ%8&aȑȦ "(pqRHQLrPX\p݁0 c@P@A "X$ 9&$8&au!v 5!s!w 3!B@s! u!!5!s! 3! ```u!ش u!ش s!ܴ t%8&aД  ȶTl||FPp&01cP, d @ "X$ @ "X# 9&$8&aДD{6Lp&T s$bcQ&E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#ci@+ca@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0c/s@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cM@+cE@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ 4d^4>4Q @R!5] d^4>4 Qd^4>4QP!@R!5]pZPXU0% n.bn}01!4Q n}01 4Q anh4A3Q!D1H!D=!H>/10#}!b~00s10  p .aL p .aL. aL!4 Hm ҝb1 u2 `;ddɡ,btj @ #ɡ< bc\  >4btl ɡ<U(>8b;d>XbdЍ3dɡ<ɡ<ߨ!١nj m04@   @ ``` b*l  ɡ<(0 ȼ@   @ ``` ⺐+0-cdҸp b ,ɡ<ߨ1nm Le "> 01dЍr  @s!@@B@ e0@ 菑Q@```!@B@鏤 p@PXU0% pPXU0% n.Ԕ .>_.,Ͷ , n.Ԕ ,, m @@o P"ADA \A2"!@ єA /# P,  P!@  !@ ``` !@o 菤```n0=  ,!, ١nNĔ@.>.d @ ɡ bC( C    . >bF( F     >bGб( b&,,b$j @ @ # @ # @ ``` ݬ@ ݼb:j ,ɡ<#N؉Nߨnp2  ? =01q1b-p ," $ ` 0MAtbH١nj k0l@`bcm bc-p 0 ɡ<ߨ1١n?!1@k@Bڡ>bc3!213q=p3p 0304q-rBbp &q-t2bpx!!!&Ɂ(l߈Anl m0m =bd =b[ bcЍR4 4! nm 211;0!1dkrbq!@ 0cM#AI ```@.ij c=b/2b!! 2#20bM2Ab@"b."ij <!pfPXU0% p}PXU0% anݞФܮȰ5ܾΤȤޞ.>(g plb0dp ybcФF$ ,1@   1@ ``` Onb`@(ޞb`:,c 0 ;:>bJ͒$ .,1 @   1@ ``` b0+0`c#ݓܣܳΐ b0dp# ݎbp]4lb08 b0.,c 0 .1̃<ěbaLhAnl m03 =bdP4 4! nl m0  4bcЍ4! nl m0  4= b . 4uMt=bp4=b{  4=bl4s ה !4! nl m0 . 4=b?  4bcЍ04bcЍj4p ה 4! nl m0ؔ =bC̔ q =^0bdЍD8 8!ٱnk l01ܤ2 p .Д (<bĔ <bД < bД <bɱ8bɱ8߸! !"RUP%%* 0 0 0 0 00012#!00& ```012#nm d0r v- 00s-  ```0r 1pt 1u 20t 10w 1x 20 0! pPXU0% p~PXU0% ̤pR @T\ q2 0_502q1pRϳT bفnpR`Pe͵pS;j jhͨڳ АͨũŚ  Ƞi iᚪh͘ٳ А͘͘ŪŪ pTP P0TP```ճ г ```000Ɂ߈1١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3` Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ! ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 12.0$(鏤!nԍ,! nԍ>,! nd p qDqDp, qDpDp,!, ,! nd p qDpDp, qDqDp,!, ,! nd m0p,P 0cqDqDp4cqDpDp  4p !4!4  4! nd m0p, 0cqDqDp4cqDpDp  4p !4!4  4! nm0@ 0c  4p !4! nm0@ 0c  4p !4! ne m0p:p 0cq%qBbPp4cqEpDp  4p!!` 0 4!4 ۔ 4! nԍ,! ٱnl @!ɱ8 p )q,rbp  ɱ8!ɱ8q,r03,bdp ɱ8'q,sbp  ɱ8!ɱ8q,s>bdp ɱ8!ɱ8 ɱ8߸1ّni j0m@kPpcЍ  ɑ@pݳVp  G ɑ@!ɑ@bЍF l 0ʔU (>^$ ɑ@bcdЍ>(ɑ@ b,0 !ɑ@   ɑ@p ߘAnd04P,! ١nj m0k@lP  ɡ ɡ@pAbMpAbcЍ^ɡ@bЍ0 !ɡ@ ɡ@ߨ1n@{ !, ,! n0R142325BAnm u  5 0s-D2s 3 !0! nm u  5 4p0bs=D s 3 !4! nl m@u 5 4s,s 3 !41 nl m@u 5 4s b0cs 3 !41 st"鏲 tdus2`@鏤 3B5鏤!@u 5sB`C3b@"r."b!"0o3@.i}$Header:alloca.s 12.0$alloca: Caller probably not compiled with -ma  anh !1l0?0`pwS@dyA``` +  -0@ I?@N nAAF f:p12r1q!a4@A a&AN nB(C)p12r1q!a4 N i n .  0  9  0 +@⑁!,d  p12r1q!a4 e  E @bAb Ƞ TȠT Yb* c b1,Pbu! =b  !,cq!,cs /RE t!c 43%uc4#4!//!/Һ`{3|4`  b `+Д$tQs1 ሐzdPe00 Љe - `PM5`0]4=31 \P4Q3Qs! 3!` ;%[%ܱ(*2,1.00mn.4&!6'+  sa cŢsabcG4!& !$8&bc6g yp Š@`Ib24`@b2T@Ep p!c 8!q q!c  7!r r!c 6!5q"RQ P@!cEN@10B! #!LB!1#@J! HUbY!d!44bP!b!"H4%!Rd : :QTb!b!"4Rb!b!RTb !b!"4R R  T`Yd6 `Pc( $6 P44 Őa`bcS(g h!+ٱnl0 !"#$ &!nb'sbcЌd $# Ű ɱH߸!nl Hm bDb4  8UNT$Header:crt0.c 12.0$$Header:fpglue.s 12.0$\^XfTe0AOFPAFP_PRECISIONh@(#)version.c 5.51 (Berkeley) 5/2/865.51$Header:Version.c 12.0$@(#)conf.c 5.14 (Berkeley) 1/10/86$0@HP\ h|  "* 050451554554,D2mail.aliasesY D`Gl~G(\h(YTjWho are you?postmasterZT[Z$i fX/dev/kmem/vmunixc0^hb^dD`\<D3#?`\<4<fdi$Header:conf.c 12.0$resent-senderresent-fromresent-reply-tosenderfromreply-tofull-namereturn-receipt-toerrors-totoresent-toccresent-ccbccresent-bccmessage-idresent-message-idmessagetextdateresent-datereceivedviamail-from/etc/sendmail.cf/usr/lib/sendmail.cf/etc/sendmail.fc_avenrun @(#) Copyright (c) 1980 Regents of the University of California. All rights reserved. @(#)main.c 5.11 (Berkeley) 1/30/86@(#)sendmail.h 5.8 1/10/86 8 < @main: reentered!-Csendmail.cf-bz-d0-99.1Version %s NAMEsendmailcanonical name: %s a.k.a.: %s newaliasesmailqsmtpdInvalid operation mode %c0-99.1No "from" personMore than one "from" personBad -F flagBad hop count (%s)Bad Message-Id (%s)FjlocalNo local mailer definedprogNo prog mailer defined cannot chdir(%s)mailer %d (%s): P=%s S=%d R=%d M=%ld F= E= ADDRESS TEST MODE Enter

> daemon: cannot forkRecipient names must be specifiedFrom person = "%s" $Y$QefJ Jec 8`Gl~f0iZY,g` 4G(D(Nw~Q8'O&DYT\h UF0T/Q\JlD0'WGJXW B8X c1K`;K K%( l.0 ====finis: stat %d e_flags %o finis, pid=%d0fz@Fx*+-=~%!#@:>?|.{}[] Cannot freezeCannot freezeQH|QiFreeze file out of date Cannot break to %xCannot read freeze file c0dDiQQdisconnect: In %d Out %d don't /dev/nullr/dev/nullw/dev/ttyin background, pid=%dWX`WT^he$Header:main.c 12.0$ @(#)collect.c 5.2 (Berkeley) 6/8/85wCannot create %s354Enter mail, end with "." on a line by itselfFrom EOH collect: unexpected close, from=%stoccbccapparently-toAdding Apparently-To: %s apparently-torCannot reopen %sE`Gl~G$ Q%,H,G DU*Hi)c! WW*L*D*@W!w MAIL DELETED BECAUSE OF LACK OF DISK SPACE 452 Out of disk space for temp filecollect: Cannot write %s/dev/nullwX`%(           $"leatfrom(%s) fGN$Header:collect.c 12.0$SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec@(#)parseaddr.c 5.6 (Berkeley) 4/2/86# --parseaddr(%s) cannot resolve nameparseaddr-->c%(t`Gl~G% !"3$ "3$%prescan: Address too longc=%c, s=%d; Unbalanced ')'Unbalanced '>'ns=%02o tok=prescan: too many tokensUnbalanced '('Unbalanced '<'Unbalanced '"'GW$)lo()<>,;\" F}D*^rewrite: ruleset %2d input:-----trying rule:ap=, rp= ----- rule fails -----rule matches:rewrite: ruleset %d: replacement out of bounds$%c: %x="%s" rewrite: expansion too longrewrite: cannot prescan canonical hostname: %scannot prescan YP result: %s-----callsubr %s rewritten as:rewrite: ruleset %2d returns:G(xGW`4,GQ82~buildaddr: no mailererrorbuildaddr: error: no user %sbuildaddr: unknown mailer %sbuildaddr: no hostbuildaddr: no user55~6F%x=%s: mailer %d (%s), host `%s', user `%s' next=%x, flags=%o, alias %x home="%s", fullname="%s" [NULL] 7remotename(%s) g@@remotename => `%s' +PG$Header:parseaddr.c 12.0$h@(#)alias.c 5.13 (Berkeley) 4/17/86 (with DBM)9alias(%s) %s (%s, %s) aliased to %s aliased to %sch%,,D9`P:$Yellow pages domain is %s Yellow pages found %s as value for %s 1G(jTk^;Yellow pages found %s as value for %s f(Cannot open %s@@.pagrebuilding alias databaserebuilding alias databasealias database out of dateWarning: alias database out of datealias database %srebuilt by %sautof$PaIYPfL@BrCan't open %s Alias file is already being rebuilt.dircannot make %s.pagcannot make %scannot open database %sNon-continuation line starts with spacemissing colonillegal alias name%s... bad addresscannot alias non-local namesYP_LAST_MODIFIED%10.10dYP_MASTER_NAME@%d aliases, longest %d bytes, %d bytes total%d aliases, longest %d bytes, %d bytes totalWWWf0QQT%(UhiPfdEforward(%s) forward: no homez/.forwardforwardingGFG.d$Header:alias.c 12.0$@(#)deliver.c 1.34 87/09/03 SMIF --deliver, mailer=%d, host=`%s', first user=`%s' queuedqueuedf-f-rgToo many parameters to %s before $u send to Message is too large; %ld bytes max,deliver: pv overflow after $u for %sConnecting to %s via %s...,c%,F~G`GlD$~.%(|G`0}8x9::DDNCannot send message for %sH|Ofd^O XIOL @GW (048T\h 04Lh|Pendmailer %s: wait%s delivery program died with signal %d%s delivery program died with %s signalHPopenmailer:[LPC][IPC][TCP]non-clever TCPmail exchanger is %s openmailer: pipe (to mailer)openmailer: pipe (to mailer)openmailer: pipe (from mailer)openmailer: cannot forkCannot dup to zero!Cannot exec '%s' errno=%d wrGQ8G3pcQWf0iTQefUU8U250 Sent554 unknown mailer error %d250 Skipped: : %s%W%s: to=%s, delay=%s, stat=%sfXl gNo ! in UUCP! (%s)From %s d remote from %s XrCannot open %s<<< No Message Collected >>>Fromputbody: read errorputbody: write errorWeTWZa ifUGQ\ SENDALL: mode %c, sendqueue: Mail loop detectedsendall: too many hops (%d max)Too many recipients for no message bodyPossible alias loopNo valid recipientsdeliverableChecking owner-owner-ownerErrors to %s ,@ Bh,D $Header:deliver.c 12.0$ZeroHangupInterruptQuitIllegal instructionTraceIOTEMTFloating point exceptionKillBus errorSegmentation violationBad argument to system callBroken pipeAlarm clockSoftware terminationUrgentStopStop from keyboardContinueChild statusBackground readBackground writeI/OCPU time limit exceededFile size limit exceededVirtual time alarmProfiling timer alarmWindow change$@(#)savemail.c 5.7 (Berkeley) 12/7/85` savemail, ErrorMode = %c Dumping junk mailrootCannot parse root!savemail: ErrorMode x%x state %d wn Message from %s... Errors occurred while sending mail. rCannot open %sTranscript of session is unavailable. Transcript follows: Original message will be saved in dead.letter. savemail: stdout: write errUnable to deliver mailUnable to deliver mailCan't return mail to %sz/dead.letterSaving message in %s/usr/tmp/dead.lettera savemail: unknown state %dsavemail: HELP!!!!savemail: HELP!!!!c%,T$ fU X`FWEW!W`Gl,D"tZGGGeReturn To Sender: msg="%s", depth=%d, CurEnv=%x, returnq=returntosender: infinite recursion on %sfbtoReturned mail: %ssubjectnCan't parse myself!nMail Delivery SubsystemJXK`*@fd*LJlgrCannot open %s ----- Transcript of session is unavailable ----- ----- Transcript of session follows ----- ----- Return message suppressed ----- ----- Unsent message follows ----- ----- Message header follows ----- ----- No message was collected ----- errbody: I/O errorX8+($Header:savemail.c 12.0$&@(#)err.c 5.7 (Berkeley) 11/22/85i%s: SYSERR: %sNOQUEUE%X%Tfzjkh%8kl6%s %s %s X8Wm mh%3.3s%c%s: line %d: %s... : %sfd`%n during with Host %s is downConnection refused by %sName Server Failure for %sError %d~}$Header:err.c 12.0$(@(#)readcf.c 5.10 (Berkeley) 1/11/86p4rcannot open %sinvalid rewrite line "%s"bad ruleset %d (%d max)%sunknown control line "%s"W$UHp~GlFGQ8'`G)'('D'&utoo many %c lines, %d maxurcannot open %se(Wv `=' expectedinvalid rewrite set, %d maxtoo many mailers defined (%d max)d'QXyz`{ ----Rule Set %d: LHS:RHS:cG|6setoption %c=%s (ignored) deiLmorsv (unsafe)(Resetting uid) aliasesUnknown delivery mode %csendmail.hfmqueuesendmail.stDYPYTe\hfHHO$Header:readcf.c 12.0$)\@(#)stab.c 5.2 (Berkeley) 6/7/85STAB: %s %d (hfunc=%d) not found type %d val %lx %lx %lx %lx entered cGGGld`~G$Header:stab.c 12.0$,@(#)headers.c 5.7 (Berkeley) 9/21/85@chompheader: %s chompheader: syntax error, line "%s"chompheader: syntax error, line "%s"resent-fromcdD$G~Gl`~`^~0----- collected header ----- %s: %s message-id%s: message-id=%s---------------------------- precedencereturn-receipt-toerrors-tofull-nameposted-datedate%s: from=%s, size=%ld, class=%d Gh,DFf*D+HKGGcrackaddr(%s) <gcrackaddr=>`%s' }%s: H++fdGhcommaize(%s: %s) %s: , , +GdGp, $Header:headers.c 11.1$.@(#)recipient.c 5.7 (Berkeley) 1/9/86,sendto: %s ctladdr=Found self reference %s Found local alias %s cDT w(GG, recipient: aliasing/forwarding loop brokenCannot mail directly to programs%s in sendq: duplicate suppressed:include:Cannot mail directly to :include:sincluding file %s sendingCannot mail directly to files@User %s (%s) is really on domain server %(~G`%,.df.XG|}.,~`GlGsending to login name %sZ[ [<YPDrCannot open %sCannot fstat %s!%s to %sW.X$,DWataddress overflow@$Header:recipient.c 12.0$0@(#)remote.c 1.5 87/09/03 SMIHELO %s MAIL FROM:<%s> RCPT TO:<%s> /bin/mail -d %swSubject: returned mail for %s Mail error was: %s --- returned mail follows --- DATA . QUIT Error contacting remote server %s GJl`Gl~3p0<0HfdcX8!c4WcUH,Q8>>W/etc/mtabrUnable to open mount table /etc/spool/mail`|`0`D$Header:remote.c 12.0$1 @(#)stats.c 5.8 (Berkeley) 5/2/86Dfgc0dD`^iQ$Header:stats.c 12.0$44@(#)daemon.c 1.28 87/09/03 SMI (with daemon mode) `ZtzInvalid numeric domain spec "%s"(D\p%(zHY1pIPgetrequests: can't create socketcannot get connectiongetrequests: cannot bindgetrequests: cannot listengetrequests: %d network daemon startinggetrequests: acceptgetrequests: forking (fd = %d) daemon: cannot fork.[%s]From %sTCPrwgetreq: returning connected, pid=%df\$f fQtQ^f0c<IQXY~}\fd`GlGU8Z6%s To %swr1H|3Topenhost (%x) makeconnection: no socketmakeconnection: %d Trying %s... %s connected. WQ%$ZlocalhostZ@fG$Header:daemon.c 12.0$;@(#)usersmtp.c 5.7 (Berkeley) 4/2/86|smtpinit: already openuser opensmtpinit: cannot open %s: stat %d errno %d 421 Host %s not found for mailer %s. %.3s %s via %s... %s421 %s: %s, will keep trying for %s greeting waitHELO %sHELO waitVERBONEXgMAIL From:<%s>MAIL From:<@%s%c%s>MAIL wait$@cX8M%H|OzH:IP:F:DHztRCPT To:<%s>RCPT waitHDATADATA wait .%s>>> .result waitG%4final waitQUITsmtpquit %s: stat %d4Wreply network read error45Connected to %s: >>> %s <<< %s %sWH,cGDQ8~:%s To %s: %s>>> %s%s%sfd$Header:usersmtp.c 12.0$?@(#)srvrsmtp.c 5.18 (Berkeley) 1/5/86@@@ @(@0@8@@@H@P@X @` @h@p @x<<< %s GX8GFrom %se220startup421%s Lost input channel to %sHELOFrom %s: %s553%s host name configuration error%s (%s)250%s Hello %s, pleased to meet youMAIL503Sender already specified%s From %s: %sfrom250Sender okRCPT%s From %s: %sto250Recipient ok550Addressee unknownDATA503Need MAIL command503Need RCPT (recipient)collect%s From %s: %swait for quit250Mail accepted221%s delivering mailw250Reset stateFrom %s: %s250-250<%s>%s <%s>554Self destructive alias loopSMTP200OK221%s closing connection200Verbose mode200Only one transactionSend Queue=0-99.1200Debug set500Command unrecognizedsmtp: unknown code %dQT\K(F%,z WH,;Gfd`Gl~GGK ?lKT, lWEX`0JlJX$,D?cJ J501Syntax errorr502HELP not implemented214-504HELP topic unknown214End of HELP infoWGD$Header:srvrsmtp.c 12.0$mailrcptdatarsetvrfyexpnhelpnoopquitheloverbonexshowqwizF@(#)queue.c 5.21 (Berkeley) 4/17/868wqueueup: cannot create temp file %squeueing %s wqueueup: cannot create %sP%ld T%ld D%s M%s S%s E%s fH%s: %s %s: %s R%s queuedqueuedqueueing cannot rename(%s, %s), df=%s%s: queueup, qf=%s, df=%s E`Gl~W$QcWX8dG+HWF+%,dli f̶r+R%s R%s HpXXX Skipping queue run -- load average too high running queuerunqueue %s, pid=%d 8f0HZ3lBC<^f.orderq: cannot open "%s" as "."rorderq: cannot open %s (%d) %32s: pri=%ld c8dLQ8QXQd dҊdowork: %s pri %ld Skipping %s %s: dowork, pid=%d%s: lockedQKJX^K C*LJlrreadqf: no control file %s Running %s +++++ %s rreadqf: cannot open %sreadqf(%s:%d): bad line "%s",D)K֢Mail queue is empty Mail Queue (%d request%ss, only %d printed) --QID-- --Size-- -Priority- ---Q-Time--- -----------Sender/Recipient----------- ) --QID-- -Size- ----Q-Time----- ------------Sender/Recipient------------ r%7s* X (finished) %5ld %10ld %.12s %.38s%5ld %.16s %.45s %57s %.38s %.45s (no control file) fGS,قqfAA%05dqueuename: trying "%s" queuename: Cannot create "%s" in "%s"queuename: assigned id %s, env=%x %s: assigned id%cf%squeuename: %s fdQ QQU %s: unlockG$Header:queue.c 12.0$G @(#)macro.c 5.3 (Berkeley) 9/19/85܌expand() expand ==> cGGF`2define(%c as ) ސ$Header:macro.c 12.0$H@(#)util.c 5.8 (Berkeley) 12/17/85޼ߖOut of memory!!^$Gl``~` %08x=cWG^W"fD^IW!%s: unlink %s %s: unlink-fail %dfiTnet hang reading from %sinput hangzHIPzUig tTyYHzi$Header:util.c 12.0$I@(#)clock.c 5.4 (Berkeley) 12/17/85setevent: intvl=%ld setevent: intvl=%ld, for=%ld, func=%x, arg=%d, ev=%x $gGlZcIpclrevent: ev=%x f0^ltick: now=%ld tick: ev=%x, func=%x, arg=%d, pid=%d QH|f(fTHcF$Header:clock.c 12.0$J@(#)trace.c 5.2 (Berkeley) 6/7/85Xv$Header:trace.c 12.0$L@(#)envelope.c 5.12 (Berkeley) 12/17/85K`H|W:dropenvelope %x id= flags=%o dropenvelope, id=%s, flags=%o, pid=%d(none)Return receiptcGZf,D"tGE@KFxWGl%d%dK`fdGK(^%02d%02d%02d%02d%02dSTS,~DGN`%s: openx%s (no)wCan't create %sW$Q8tsetsender(%s) Unparseable user %s wants to be %spostmastersetsender: can't even parse postmaster!HOMEcannot prescan from (%s)@@fromdomain=L\hYPTZ~GY,YT GG$Header:envelope.c 12.0$M4@(#)sysexits.c 5.2 (Berkeley) 6/7/85MPM`MxMMMMMNNN0N@NPNl554 Unknown status %dfd$Header:sysexits.c 12.0$500 Bad usage501 Data format error550 Cannot open input550 User unknown550 Host unknown554 Service unavailable554 Internal error451 Operating system error554 System file missing550 Can't create output451 I/O error250 Deferred554 Remote protocol error550 Insufficient permissionO@(#)arpadate.c 5.4 (Berkeley) 1/9/86lGMTgmtXS,S8hPOO4O8O@ODOLOPOTO\OdOlOtO|G$Header:arpadate.c 12.0$EET+0200MET+0100WETGMTEET DST+0300MET DST+0200WET DST+0100PP@(#)convtime.c 5.1 (Berkeley) 6/7/85|Bzero seconds%d+%02d:%02d:%02d, %d week%ss, %d day%ss, %d hour%ss, %d minute%ss, %d second%ssfd`$Header:convtime.c 12.0$P@(#)dbm.c 5.3 (Berkeley) 85/08/15dbm: no open database a`Tca a,a<ZaLaxa$Header:dbm.c 12.0$|Qe$Header:alarm.c 12.0$Q<8$Header:atoi.c 12.0$Q\$Header:atol.c 12.0$||hlQQ^$Header:closedir.c 12.0$ Sw/M:/w/b///:/AV/Vw/QR8RhRRR<S8SXf\dSTSL S  2Day Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecS 4 T$Header:ctime.c 12.0$T ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$ RUWlQ$Header:exit.c 12.0$ULY$WP^$Header:fdopen.c 12.0$UpU$Header:fgetc.c 12.0$UX^WdD$Header:filbuf.c 12.0$WtW\nY$Z@Wh$Header:findiop.c 12.0$lWiX^^p~WQ^$Header:flsbuf.c 12.0$WWPc0^$Header:fopen.c 12.0$X `iU$Header:fpabort.c 12.0$XDoLW$Header:fprintf.c 12.0$Xp!Wc0^$Header:freopen.c 12.0$X"^UW$Header:fseek.c 12.0$$ X$(^$Header:ftell.c 12.0$$Header:ftime.c 12.0$$\d%$Header:getdomainname.c 12.0$%%8Y8%TY4%$Header:getenv.c 12.0$%%Z /etc/hosts&edt`dd`)LdYpZ)%d.%d.%d.%d.in-addr.arpafdZ*rWeT*W+4r# Z\p,-YY~Y-m$Header:gethostnamadr.c 12.0$.$Zl/etc/utmp.@iLc0^dDQ$Header:getlogin.c 12.0$/ \<\X/<a,`0\[ `\[x[(`[<~WaZ1[3rWeT^\\,4Ws445r+**[[\$s[[\ \s\7+9+[~[;.;lpasswd.bynamekp;passwd.bynamek8Hf[8\(???^@PA`AClY j<$Header:getpwent.c 12.0$/etc/passwdCD \tD$Header:inet_addr.c 12.0$\F@%d.%d.%d.%dfd$Header:inet_ntoa.c 12.0$^P@(#)innetgr.c 1.1 86/09/24 Copyr 1985 Sun MicroFnetgroup.byusernetgroup.byhostY ^<](GRinnetgr: recursive overflow netgroupinnetgr: netgroup %s called recursively innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup # X8`k~D^^4K`KL*^L^8M$$Header:innetgr.c 12.0$MT^xMp^h$Header:isatty.c 12.0$MNNOx^OtQ^PQQ@^^^`R,$Header:malloc.c 12.0$`@(#)mntent.c 1.1 86/02/03 SMIR|RSgetmntent: 5 fields are missing from the fstab line:%s getmntent: 4 fields are missing from the fstab line:%s getmntent: 3 fields are missing from the fstab line:%s getmntent: 4 fields are missing from the fstab line:%s getmntent: 1 field is missing from the fstab line:%s getmntent: Too many fields on the fstab line:%s _X8_UNWWWUU_VRX`VW~``W%s %s %s %s %d %d $Header:mntent.c 12.0$W.pag.dir^~}c0Q^XXYbaYfaaaYb^iZndbm: split not paired bdX8a]pa]dD^__`am=951-)%! 1ҿ14r(G3f!CY&d;oY7uVV0{- ;T>/ /2[1a=<f`Kvz_lG$6$w CM760!nY)6N1Vp&8DŽ)3+H]<517;+$g )#n0%3a$ ۘ 0Vn29D}1N7R#:86)W{:92}x'L~|\/qazaa`bcc,rr`WrWX$Header:nlist.c 12.0$e@cPe\c0XQ^^$Header:opendir.c 12.0$$Header:pause.c 12.0$f@f(fPflcf/bin/shsh-cY$^ciQqqQU8hWf(ifT$Header:popen.c 12.0$dhoL$Header:printf.c 12.0$d,hd(i$Header:qsort.c 12.0$kdTks$Header:readdir.c 12.0$l8dlTm\dnnoooo$Header:res_comp.c 12.0$do%s.%sDxfddxdd`$Header:res_mkquery.c 12.0$e4rxf\QQidDedew,vx$Header:res_send.c 12.0$e`vW^$Header:rew.c 12.0$ewp<x"xX$Header:scanf.c 12.0$xxex^$Header:setbuf.c 12.0$y\eyxe$Header:setgid.c 12.0$yz$z@z\fzxy$Header:setuid.c 12.0$zf8zfX$Header:signal.c 12.0${T{p{{fp{oLW$Header:sprintf.c 12.0$|Pf$Header:strncpy.c 12.0$gx/dev/log/dev/consoleg<%d>%.15s [%d]: error %d g`fd`gS,~Zyif0f(fTQc0}DiQQiff\q$Header:syslog.c 12.0$syslogg\d$Header:time.c 12.0$hhhhhhh,hhhhhhhhhhhhhhh hDTZNAME+-GMT%s%d:%02dY,Dffd$Header:timezone.c 12.0$METMET DSTEETEET DSTASTADTESTEDTCSTCDTMSTMDTPSTPDTWETWET DSTESTESTCSTCSTWSTi0/dev/X^pXc8dL~}fQ$Header:ttyname.c 12.0$ihti wtt~t$Header:ttyslot.c 12.0$8iT$Header:ungetc.c 12.0$ <Xj@(#)yp_bind.c 1.1 86/09/24 Copyr 1985 Sun Microt`j\jlrjjjjjj~Q^Y ZjDht df\QQttn|Ijtj4load_dom_binding: malloc failure. ^X8q~$Header:yp_bind.c 12.0$k@(#)yp_enum.c 1.1 86/09/24 Copyr 1985 Sun MicroYP_`jjDIlX^^`klklkrm$Header:yp_enum.c 12.0$l@(#)yp_match.c 1.1 86/09/24 Copyr 1985 Sun Microl`jjDIjlX^`T$Header:yp_match.c 12.0$l\@(#)ypprot_err.c 1.1 86/09/24 Copyr 1985 Sun MicroD$Header:ypprot_err.c 12.0$m@(#)ypv1_xdr.c 1.1 86/09/24 Copyr 1985 Sun Micromlm|m}Hmmmm`m$Header:ypv1_xdr.c 12.0$m@(#)ypxdr.c 1.1 86/09/24 Copyr 1985 Sun MicroP}z}Pm`mhmX\|} mm|Z}Hm$Header:ypxdr.c 12.0$@(#)bcmp.c 1.0 84/10/03 IBMn8^dz^$Header:calloc.c 12.0$o @(#)clnt_udp.c 1.1 86/09/24 Copyr 1984 Sun Micronooooclntudp_create: out of memory clntudp_create: out of memory ^X8\dvDZ}yhf\^h~^n|yew0y`yty( :@$Header:clnt_udp.c 12.0$odWrDo@q<q4r$Header:doprnt.c 12.0$$Header:doscan.c 12.0$@(#)doscan.c 4.2 (Berkeley) 82/12/03@qpPUip~(`\/`#`\@22lqx d'B@ <q@fː0INFNAN()0u8|yu{ w q$Header:ecvt.c 12.0$ Xt`\$@x`\#@r(|`U$Header:fread.c 12.0$rP(W`$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$,q4`sD@(#)get_myaddress.c 1.1 86/09/24 Copyr 1984 Sun Micro@get_myaddress: socketget_myaddress: ioctl (get interface configuration)get_myaddress: ioctlf\uU^hQ$Header:get_myaddress.c 12.0$$Header:getdirentries.c 12.0$Xt@(#)getnetgrent.c 1.1 86/09/24 Copyr 1985 Sun Microt~ss~^JׂY sCycle detected in /etc/netgroup: %s. # syntax error in /etc/netgroup --- %s tpX8^tdt٠DfXnetgroup`kڲ$Header:getnetgrent.c 12.0$u/etc/ttysrWeTdW۞\Dܔronoffsecurewindow=tt$Header:getttyent.c 12.0$uD޸yu\$Header:l10.c 12.0$ud,u$Header:mul211.c 12.0$ut$Header:mulu211.c 12.0$u$Header:mulu32.c 12.0$$Header:perror.c 12.0$: Unknown error `ivP@(#)pmap_getport.c 1.1 86/09/24 Copyr 1984 Sun Micro<4n|Q$Header:pmap_getport.c 12.0$v@(#)pmap_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro(|$Header:pmap_prot.c 12.0$w*A7\(;w5^k({ $Header:rad2a.c 12.0$8TxxprdomainnameserverWfD\pWZ@~$Header:res_init.c 12.0$/etc/resolv.confy@(#)rpc_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro(}}t|y(fy<yD}H^>jylyp$Header:rpc_prot.c 12.0$ (yD$Header:shlun.c 12.0${$ *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$Header:spdiv7.c 12.0$|BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ pu$Header:tentothe.c 12.0$}|@(#)xdr.c 1.1 86/09/24`h||t|||xdr_bytes: out of memory ^X8} ^}}Hxdr_string: out of memory `D}P$Header:xdr.c 12.0$~ @(#)xdr_mem.c 1.1 85/05/30 Copyr 1984 Sun Micro}}}}~~~}|`4z$Header:xdr_mem.c 12.0$~LQ8|uy~0$Header:atof.c 12.0$~@(#)auth_none.c 1.1 86/09/24 Copyr 1984 Sun Micro~~~~~$}y( $Header:auth_none.c 12.0$~$Header:dknu.c 12.0$p$Header:dknu16.c 12.0$<qq$Header:swapround.c 12.0$#]loI 9### # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:sendmail.hf 12.0$ # $ACIS:sendmail.hf 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/lib/RCS/sendmail.hf,v $ #@(#)sendmail.hf 1.1 87/09/21 3.2/4.3NFSSRC @(#) sendmail.hf 4.2 6/7/85 cpyr cpyr Sendmail cpyr Copyright (c) 1983 Eric P. Allman cpyr Berkeley, California cpyr cpyr Copyright (c) 1983 Regents of the University of California. cpyr All rights reserved. The Berkeley software License Agreement cpyr specifies the terms and conditions for redistribution. cpyr cpyr @(#)sendmail.hf 4.2 (Berkeley) 6/7/85 cpyr smtp Commands: smtp HELO MAIL RCPT DATA RSET smtp NOOP QUIT HELP VRFY EXPN smtp For more info use "HELP ". smtp To report bugs in the implementation contact eric@Berkeley.ARPA smtp or eric@UCB-ARPA.ARPA. smtp For local information contact postmaster at this site. help HELP [ ] help The HELP command gives help info. helo HELO helo Introduce yourself. I am a boor, so I really don't helo care if you do. mail MAIL FROM: mail Specifies the sender. rcpt RCPT TO: rcpt Specifies the recipient. Can be used any number of times. data DATA data Following text is collected as the message. data End with a single dot. rset RSET rset Resets the system. quit QUIT quit Exit sendmail (SMTP). vrfy VRFY vrfy Not implemented to protocol. Gives some sexy vrfy information. expn EXPN expn Same as VRFY in this implementation. noop NOOP noop Do nothing. send SEND FROM: send replaces the MAIL command, and can be used to send send directly to a users terminal. Not supported in this send implementation. soml SOML FROM: soml Send or mail. If the user is logged in, send directly, soml otherwise mail. Not supported in this implementation. saml SAML FROM: saml Send and mail. Send directly to the user's terminal, saml and also mail a letter. Not supported in this saml implementation. turn TURN turn Reverses the direction of the connection. Not currently turn implemented. #]lo7 ####]loI ####]lo7) #### # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:aliases 12.0$ # $ACIS:aliases 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/lib/RCS/aliases,v $ # @(#)aliases 1.1 87/09/21 3.2/4.3NFSSRC ## # Aliases can have any mix of upper and lower case on the left-hand side, # but the right-hand side should be proper case (usually lower) # # >>>>>>>>>> The program "newaliases" will need to be run after # >> NOTE >> this file is updated for any changes to # >>>>>>>>>> show through to sendmail. # # @(#)aliases 1.8 86/07/16 SMI ## # Following alias is required by the mail protocol, RFC 822 # Set it to the address of a HUMAN who deals with this system's mail problems. Postmaster: root # Alias for mailer daemon; returned messages from our MAILER-DAEMON # should be routed to our local Postmaster. MAILER-DAEMON: postmaster # Aliases to handle mail to programs or files, eg news or vacation decode: "|/usr/bin/uudecode" nobody: /dev/null #Aliases to handle mail to msgs msgs: "|/usr/ucb/msgs -s" allmsgs:allmsgs@ucbvax csmsgs:csmsgs@ucbvax # Sample aliases: # Alias for distribution list, members specified here: #staff:wnj,mosher,sam,ecc,mckusick,sklower,olson,rwh@ernie # Alias for distribution list, members specified elsewhere: #keyboards: :include:/usr/jfarrell/keyboards.list # Alias for a person, so they can receive mail by several names: #epa:eric ####################### # Local aliases below # ####################### #]lo7 ####]lo7= ###un`PF8&$"@@clam.tcspa.ibm.comYP_MASTER_NAME0597788440YP_LAST_MODIFIEDcsmsgs@ucbvaxcsmsgsallmsgs@ucbvaxallmsgs "|/usr/ucb/msgs -s"msgs /dev/nullnobody "|/usr/bin/uudecode"decode postmastermailer-daemon rootpostmaster#]loo$ ,q#(#(#) # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:subsidiary.mc 12.0$ # $ACIS:subsidiary.mc 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/subsidiary.mc,v $ # @(#)subsidiary.mc 1.1 87/09/08 3.2/4.3NFSSRC ########################################################### # # SENDMAIL CONFIGURATION FILE FOR SUBSIDIARY MACHINES # # You should install this file as /etc/sendmail.cf # if your machine is a subsidiary machine (that is, some # other machine in your domain is the main mail-relaying # machine). Then edit the file to customize it for your # network configuration. # # See the manual "System Administration for the Sun Workstation". # Look at "Setting Up The Mail Routing System" in the chapter on # Communications. The Sendmail references in the back of the # manual are also very useful. # # @(#)subsidiary.mc 1.10 87/09/04 SMI; from UCB arpa.mc 3.25 2/24/83 # # local UUCP connections -- not forwarded to mailhost CV # my official hostname Dj$w.$m # major relay mailer DMether # major relay host DRmailhost CRmailhost # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:sunbase.m4 12.0$ # $ACIS:sunbase.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/sunbase.m4,v $ # @(#)sunbase.m4 1.1 87/09/08 3.2/4.3NFSSRC ################################################# # # General configuration information # local domain names # # These can now be set from the domainname system call. # If your YP domain is different from the domain name you would like to have # appear in your mail headers, edit them to be your mail domain name. # Note that the first component of the YP domain name is stripped off unless # it begins with a dot or a plus sign. # DmPodunk.EDU # known hosts in this domain are obtained from gethostbyname() call # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:base.m4 12.1$ # $ACIS:base.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/base.m4,v $ # @(#)base.m4 1.1 87/09/08 3.2/4.3NFSSRC # Version number of configuration file # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:version.m4 12.1$ # $ACIS:version.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/version.m4,v $ # @(#)version.m4 1.1 87/09/08 3.2/4.3NFSSRC DVSMI-4.0Beta ### Standard macros # name used for error messages DnMailer-Daemon # UNIX header format DlFrom $g $d # delimiter (operator) characters Do.:%@!^=/[] # format of a total name Dq$g$?x ($x)$. # SMTP login message De$j Sendmail $v/$V ready at $b ### Options # Remote mode - send through server if mailbox directory is mounted OR # location of alias file OA/etc/aliases # default delivery mode (deliver in background) Odbackground # rebuild the alias file automagically OD # temporary file mode -- 0600 for secure mail, 0644 for permissive OF0600 # default GID Og1 # location of help file OH/usr/lib/sendmail.hf # log level OL9 # default messages to old style Oo # Cc my postmaster on error replies I generate OPPostmaster # queue directory OQ/usr/spool/mqueue # read timeout for SMTP protocols Or15m # status file -- none OS/etc/sendmail.st # queue up everything before starting transmission, for safety Os # return queued mail after this long OT3d # default UID Ou1 ### Message precedences Pfirst-class=0 Pspecial-delivery=100 Pjunk=-100 ### Trusted users T root daemon uucp ### Format of headers H?P?Return-Path: <$g> HReceived: $?sfrom $s $.by $j ($v/$V) id $i; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> HErrors-To: ########################### ### Rewriting rules ### ########################### # Sender Field Pre-rewriting S1 # None needed. # Recipient Field Pre-rewriting S2 # None needed. # Name Canonicalization # Internal format of names within the rewriting rules is: # anything<@host.domain.domain...>anything # We try to get every kind of name into this format, except for local # names, which have no host part. The reason for the "<>" stuff is # that the relevant host name could be on the front of the name (for # source routing), or on the back (normal form). We enclose the one that # we want to route on in the <>'s to make it easy to find. # S3 # handle "from:<>" special case R<> $@@ turn into magic token # basic textual canonicalization R$*<$+>$* $2 basic RFC822 parsing # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later R@$+,$+:$+ @$1:$2:$3 change all "," to ":" R@$+:$+ $@$>6<@$1>:$2 src route canonical R$+:$*;@$+ $@$1:$2;@$3 list syntax R$+@$+ $:$1<@$2> focus on domain R$+<$+@$+> $1$2<@$3> move gaze right R$+<@$+> $@$>6$1<@$2> already canonical # convert old-style names to domain-based names # All old-style names parse from left to right, without precedence. R$-!$+ $@$>6$2<@$1.uucp> uucphost!user R$-.$+!$+ $@$>6$3<@$1.$2> host.domain!user R$+%$+ $@$>3$1@$2 user%host # Final Output Post-rewriting S4 R$+<@$+.uucp> $2!$1 u@h.uucp => h!u R$+ $: $>9 $1 Clean up addr R$*<$+>$* $1$2$3 defocus # Clean up an name for passing to a mailer # (but leave it focused) S9 R@ $@$n handle <> error addr R$*<$*LOCAL>$* $1<$2$m>$3 change local info R<@$+>$*:$+:$+ <@$1>$2,$3:$4 canonical ####################### # Rewriting rules # special local conversions S6 R$*<@$*$=m>$* $1<@$2LOCAL>$4 convert local domain # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:localm.m4 12.1$ # $ACIS:localm.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/localm.m4,v $ # @(#)localm.m4 1.1 87/09/08 3.2/4.3NFSSRC # Local and Program Mailer specification Mlocal, P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=20, A=sh -c $u S10 # None needed. S20 # None needed. # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:etherm.m4 12.1$ # $ACIS:etherm.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/etherm.m4,v $ # @(#)etherm.m4 1.1 87/09/08 3.2/4.3NFSSRC ############################################################ ##### ##### Ethernet Mailer specification ##### ##### Messages processed by this configuration are assumed to remain ##### in the same domain. This really has nothing particular to do ##### with Ethernet - the name is historical. Mether, P=[TCP], F=msDFMuCX, S=11, R=21, A=TCP $h S11 R$*<@$+>$* $@$1<@$2>$3 already ok R$+ $@$1<@$w> tack on our hostname S21 # None needed. # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:uucpm.m4 12.1$ # $ACIS:uucpm.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/uucpm.m4,v $ # @(#)uucpm.m4 1.1 87/09/08 3.2/4.3NFSSRC # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:compat.m4 12.1$ # $ACIS:compat.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/compat.m4,v $ # @(#)compat.m4 1.1 87/09/08 3.2/4.3NFSSRC ########################################################## # General code to convert back to old style UUCP names S5 R$+<@LOCAL> $@ $D!$1 name@LOCAL => sun!name R$+<@$-.LOCAL> $@ $2!$1 u@h.LOCAL => h!u R$+<@$+.uucp> $@ $2!$1 u@h.uucp => h!u R$+<@$*> $@ $2!$1 u@h => h!u # Route-addrs do not work here. Punt til uucp-mail comes up with something. R<@$+>$* $@ @$1$2 just defocus and punt R$*<$*>$* $@ $1$2$3 Defocus strange stuff # UUCP Mailer specification Muucp, P=/usr/bin/uux, F=msDFMhuU, S=13, R=23, A=uux - -r $h!rmail ($u) # Convert uucp sender (From) field S13 R$+ $:$>5$1 convert to old style R$=w!$+ $2 strip local name R$+ $:$w!$1 stick on real host name # Convert uucp recipient (To, Cc) fields S23 R$+ $:$>5$1 convert to old style # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:zerobase.m4 12.1$ # $ACIS:zerobase.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/zerobase.m4,v $ # @(#)zerobase.m4 1.1 87/09/08 3.2/4.3NFSSRC ##### RULESET ZERO PREAMBLE # Ruleset 30 just calls rulesets 3 then 0. S30 R$* $: $>3 $1 First canonicalize R$* $@ $>0 $1 Then rerun ruleset 0 S0 # On entry, the address has been canonicalized and focused by ruleset 3. # Handle special cases..... R@ $#local $:$n handle <> form # For numeric spec, you can't pass spec on to receiver, since rcvr's # are not smart enough to know that [x.y.z.a] is their own name. R<@[$+]>:$* $:$>9 <@[$1]>:$2 Clean it up, then... R<@[$+]>:$* $#ether $@[$1] $:$2 numeric internet spec R<@[$+]>,$* $#ether $@[$1] $:$2 numeric internet spec R$*<@[$+]> $#ether $@[$2] $:$1 numeric internet spec # arrange for local names to be fully qualified R$*<@$%y>$* $1<@$2.LOCAL>$3 user@etherhost # now delete redundant local info R$*<$*$=w.LOCAL>$* $1<$2>$4 thishost.LOCAL R$*<@LOCAL>$* $1<@$m>$2 host == domain gateway R$*<$*$=w.uucp>$* $1<$2>$4 thishost.uucp R$*<$*$=w>$* $1<$2>$4 thishost R$*<$*.>$* $1<$2>$3 drop trailing dot R<@>:$* $@$>30$1 retry after route strip R$*<@> $@$>30$1 strip null trash & retry ################################################ ### Machine dependent part of ruleset zero ### ################################################ # resolve names we can handle locally R<@$=V.uucp>:$+ $:$>9 $1 First clean up, then... R<@$=V.uucp>:$+ $#uucp $@$1 $:$2 @host.uucp:... R$+<@$=V.uucp> $#uucp $@$2 $:$1 user@host.uucp # optimize names of known ethernet hosts R$*<@$%y.LOCAL>$* $#ether $@$2 $:$1<@$2>$3 user@host.here # other non-local names will be kicked upstairs R$+ $:$>9 $1 Clean up, keep <> R$*<@$+>$* $#$M $@$R $:$1<@$2>$3 user@some.where R$*@$* $#$M $@$R $:$1<@$2> strangeness with @ # Local names with % are really not local! R$+%$+ $@$>30$1@$2 turn % => @, retry # everything else is a local name R$+ $#local $:$1 local names #]'lohH$ 3#,#,#- # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:main.mc 12.0$ # $ACIS:main.mc 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/main.mc,v $ # @(#)main.mc 1.1 87/09/08 3.2/4.3NFSSRC ############################################################ # # Sendmail configuration file for "MAIN MACHINES" # # You should install this file as /etc/sendmail.cf # if your machine is the main (or only) mail-relaying # machine in your domain. Then edit the file to # customize it for your network configuration. # # See the manual "System and Network Administration for the Sun # Workstation". Look at "Setting Up The Mail Routing System" in # the chapter on Communications. The Sendmail reference in the # back of the manual is also useful. # # @(#)main.mc 1.13 87/09/04 SMI # ### local info # my official hostname # You have two choices here. If you want the gateway machine to identify # itself as the DOMAIN, use this line: Dj$m # If you want the gateway machine to appear to be INSIDE the domain, use: #Dj$w.$m # Unless you are using sendmail.mx (or have a fully-qualified hostname), use: #Dj$w # major relay mailer - typical choice is "ddn" if you are on the # Defense Data Network (e.g. Arpanet or Milnet) DMuucp # major relay host: use the $M mailer to send mail to other domains DR ddn-gateway CR ddn-gateway # If you want to pre-load the "mailhosts" then use a line like # FS /usr/lib/mailhosts # and then change all the occurences of $%y to be $=S instead. # Otherwise, the default is to use the hosts.byname map if YP # is running (or else the /etc/hosts file if no YP). # valid top-level domains CT arpa com edu gov org net mil # options that you probably want on a mailhost: # checkpoint the queue after this many receipients OC10 # refuse to send tiny messages to more than these recipients Ob10 # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:sunbase.m4 12.0$ # $ACIS:sunbase.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/sunbase.m4,v $ # @(#)sunbase.m4 1.1 87/09/08 3.2/4.3NFSSRC ################################################# # # General configuration information # local domain names # # These can now be set from the domainname system call. # If your YP domain is different from the domain name you would like to have # appear in your mail headers, edit them to be your mail domain name. # Note that the first component of the YP domain name is stripped off unless # it begins with a dot or a plus sign. # DmPodunk.EDU # known hosts in this domain are obtained from gethostbyname() call # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:base.m4 12.1$ # $ACIS:base.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/base.m4,v $ # @(#)base.m4 1.1 87/09/08 3.2/4.3NFSSRC # Version number of configuration file # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:version.m4 12.1$ # $ACIS:version.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/version.m4,v $ # @(#)version.m4 1.1 87/09/08 3.2/4.3NFSSRC DVSMI-4.0Beta ### Standard macros # name used for error messages DnMailer-Daemon # UNIX header format DlFrom $g $d # delimiter (operator) characters Do.:%@!^=/[] # format of a total name Dq$g$?x ($x)$. # SMTP login message De$j Sendmail $v/$V ready at $b ### Options # Remote mode - send through server if mailbox directory is mounted OR # location of alias file OA/etc/aliases # default delivery mode (deliver in background) Odbackground # rebuild the alias file automagically OD # temporary file mode -- 0600 for secure mail, 0644 for permissive OF0600 # default GID Og1 # location of help file OH/usr/lib/sendmail.hf # log level OL9 # default messages to old style Oo # Cc my postmaster on error replies I generate OPPostmaster # queue directory OQ/usr/spool/mqueue # read timeout for SMTP protocols Or15m # status file -- none OS/etc/sendmail.st # queue up everything before starting transmission, for safety Os # return queued mail after this long OT3d # default UID Ou1 ### Message precedences Pfirst-class=0 Pspecial-delivery=100 Pjunk=-100 ### Trusted users T root daemon uucp ### Format of headers H?P?Return-Path: <$g> HReceived: $?sfrom $s $.by $j ($v/$V) id $i; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> HErrors-To: ########################### ### Rewriting rules ### ########################### # Sender Field Pre-rewriting S1 # None needed. # Recipient Field Pre-rewriting S2 # None needed. # Name Canonicalization # Internal format of names within the rewriting rules is: # anything<@host.domain.domain...>anything # We try to get every kind of name into this format, except for local # names, which have no host part. The reason for the "<>" stuff is # that the relevant host name could be on the front of the name (for # source routing), or on the back (normal form). We enclose the one that # we want to route on in the <>'s to make it easy to find. # S3 # handle "from:<>" special case R<> $@@ turn into magic token # basic textual canonicalization R$*<$+>$* $2 basic RFC822 parsing # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later R@$+,$+:$+ @$1:$2:$3 change all "," to ":" R@$+:$+ $@$>6<@$1>:$2 src route canonical R$+:$*;@$+ $@$1:$2;@$3 list syntax R$+@$+ $:$1<@$2> focus on domain R$+<$+@$+> $1$2<@$3> move gaze right R$+<@$+> $@$>6$1<@$2> already canonical # convert old-style names to domain-based names # All old-style names parse from left to right, without precedence. R$-!$+ $@$>6$2<@$1.uucp> uucphost!user R$-.$+!$+ $@$>6$3<@$1.$2> host.domain!user R$+%$+ $@$>3$1@$2 user%host # Final Output Post-rewriting S4 R$+<@$+.uucp> $2!$1 u@h.uucp => h!u R$+ $: $>9 $1 Clean up addr R$*<$+>$* $1$2$3 defocus # Clean up an name for passing to a mailer # (but leave it focused) S9 R@ $@$n handle <> error addr R$*<$*LOCAL>$* $1<$2$m>$3 change local info R<@$+>$*:$+:$+ <@$1>$2,$3:$4 canonical ####################### # Rewriting rules # special local conversions S6 R$*<@$*$=m>$* $1<@$2LOCAL>$4 convert local domain # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:localm.m4 12.1$ # $ACIS:localm.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/localm.m4,v $ # @(#)localm.m4 1.1 87/09/08 3.2/4.3NFSSRC # Local and Program Mailer specification Mlocal, P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=20, A=sh -c $u S10 # None needed. S20 # None needed. # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:etherm.m4 12.1$ # $ACIS:etherm.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/etherm.m4,v $ # @(#)etherm.m4 1.1 87/09/08 3.2/4.3NFSSRC ############################################################ ##### ##### Ethernet Mailer specification ##### ##### Messages processed by this configuration are assumed to remain ##### in the same domain. This really has nothing particular to do ##### with Ethernet - the name is historical. Mether, P=[TCP], F=msDFMuCX, S=11, R=21, A=TCP $h S11 R$*<@$+>$* $@$1<@$2>$3 already ok R$+ $@$1<@$w> tack on our hostname S21 # None needed. # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:uucpm.m4 12.1$ # $ACIS:uucpm.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/uucpm.m4,v $ # @(#)uucpm.m4 1.1 87/09/08 3.2/4.3NFSSRC # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # # Copyright (c) 1983 Regents of the University of California. # All rights reserved. The Berkeley Software License Agreement # specifies the terms and conditions for redistribution. # # $Header:compat.m4 12.1$ # $ACIS:compat.m4 12.1$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/compat.m4,v $ # @(#)compat.m4 1.1 87/09/08 3.2/4.3NFSSRC ########################################################## # General code to convert back to old style UUCP names S5 R$+<@LOCAL> $@ $D!$1 name@LOCAL => sun!name R$+<@$-.LOCAL> $@ $2!$1 u@h.LOCAL => h!u R$+<@$+.uucp> $@ $2!$1 u@h.uucp => h!u R$+<@$*> $@ $2!$1 u@h => h!u # Route-addrs do not work here. Punt til uucp-mail comes up with something. R<@$+>$* $@ @$1$2 just defocus and punt R$*<$*>$* $@ $1$2$3 Defocus strange stuff # UUCP Mailer specification Muucp, P=/usr/bin/uux, F=msDFMhuU, S=13, R=23, A=uux - -r $h!rmail ($u) # Convert uucp sender (From) field S13 R$+ $:$>5$1 convert to old style R$=w!$+ $2 strip local name R$+ $:$w!$1 stick on real host name # Convert uucp recipient (To, Cc) fields S23 R$+ $:$>5$1 convert to old style # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:ddnm.m4 12.0$ # $ACIS:ddnm.m4 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/sendmail/cf.yp/RCS/ddnm.m4,v $ # @(#)ddnm.m4 1.1 87/09/08 3.2/4.3NFSSRC ############################################################ # # DDN Mailer specification # # Send mail on the Defense Data Network # (such as Arpanet or Milnet) Mddn, P=[TCP], F=msDFMuCX, S=22, R=22, A=TCP $h, E=\r\n # map containing the inverse of mail.aliases DZmail.byaddr S22 R$*<@LOCAL>$* $:$1 R$-<@$-> $:$>3${Z$1@$2$} invert aliases R$*<@$+.$*>$* $@$1<@$2.$3>$4 already ok R$+<@$+>$* $@$1<@$2.$m>$3 tack on our domain R$+ $@$1<@$m> tack on our domain ############################################################ # # RULESET ZERO # # This is the ruleset that determines which mailer a name goes to. # Ruleset 30 just calls rulesets 3 then 0. S30 R$* $: $>3 $1 First canonicalize R$* $@ $>0 $1 Then rerun ruleset 0 S0 # On entry, the address has been canonicalized and focused by ruleset 3. # Handle special cases..... R@ $#local $:$n handle <> form # For numeric spec, you can't pass spec on to receiver, since rcvr's # are not smart enough to know that [x.y.z.a] is their own name. R<@[$+]>:$* $:$>9 <@[$1]>:$2 Clean it up, then... R<@[$+]>:$* $#ether $@[$1] $:$2 numeric internet spec R<@[$+]>,$* $#ether $@[$1] $:$2 numeric internet spec R$*<@[$+]> $#ether $@[$2] $:$1 numeric internet spec # resolve the local hostname to "LOCAL". R$*<$*$=w.LOCAL>$* $1<$2LOCAL>$4 thishost.LOCAL R$*<$*$=w.uucp>$* $1<$2LOCAL>$4 thishost.uucp R$*<$*$=w>$* $1<$2LOCAL>$4 thishost # Mail addressed explicitly to the domain gateway (us) R$*<@LOCAL> $@$>30$1 strip our name, retry R<@LOCAL>:$+ $@$>30$1 retry after route strip # deliver to known ethernet hosts explicitly specified in our domain R$*<@$%y.LOCAL>$* $#ether $@$2 $:$1<@$2>$3 user@host.sun.com # etherhost.uucp is treated as etherhost.$m for now. # This allows them to be addressed from uucp as foo!sun!etherhost!user. R$*<@$%y.uucp>$* $#ether $@$2 $:$1<@$2>$3 user@etherhost.uucp # Explicitly specified names in our domain -- that we've never heard of R$*<@$*.LOCAL>$* $#error $:Never heard of host $2 in domain $m # Clean up addresses for external use -- kills LOCAL, route-addr ,=>: R$* $:$>9 $1 Then continue... # resolve UUCP domain R<@$-.uucp>:$+ $#uucp $@$1 $:$2 @host.uucp:... R$+<@$-.uucp> $#uucp $@$2 $:$1 user@host.uucp # Pass Arpanet and Bitnet names up the ladder to our forwarder R$*<@$*.$=T>$* $#$M $@$R $:$1<@$2.$3>$4 user@any.domain # if you are on the DDN, then comment-out the line above and use the # following instead: #R$*<@$*.$+>$* $#ddn $@ $2.$3 $:$1<@$2.$3>$4 user@any.domain # All addresses in the rules ABOVE are absolute (fully qualified domains). # Addresses BELOW can be partially qualified. # deliver to known ethernet hosts R$*<@$%y>$* $#ether $@$2 $:$1<@$2>$3 user@etherhost # other non-local names have nowhere to go; return them to sender. R$*<@$+.$->$* $#error $:Unknown domain $3 R$*<@$+>$* $#error $:Never heard of $2 in domain $m R$*@$* $#error $:I don't understand $1@$2 # Local names with % are really not local! R$+%$+ $@$>30$1@$2 turn % => @, retry # everything else is a local name R$+ $#local $:$1 local names #]5loIo j0#5#6#66! __.SYMDEF 597788475 0 10 100666 3802 ` %5EVgy (8IWfx"1>LVap(&(&(& (&(&)(&9(&J(&\(&o(&}(&(&(&(&(&(&(&(&(& (&(&1(&C(&V(&j(&444444444444444!424D4P4];Pd;Pn;Ps;P;P;P;P;P;P;P;P;P;PCCC$C7CKCUCaCtCCH:H:H:H:H:H:H:H:H:H:H:H:H:#H:1H:ASHSRSWS_ShSySSSSSSSSSSS SS)[0[:[?[F[N]U]_]d]r]]]`````cccccc c c %c 2.oVncs.oVhc2.1n.oVO_xdr_etherstat_.xdr_etherstat_xdr_etheraddrs_.xdr_etheraddrs_xdr_etherhtable_.xdr_etherhtable_xdr_etherhmem_.xdr_etherhmem_xdr_etherhbody_.xdr_etherhbody_xdr_addrmask_.xdr_addrmask.oVncs.oVhc2.1n.oVO_xdr_klm_stats_.xdr_klm_stats_xdr_klm_lock_.xdr_klm_lock_xdr_klm_holder_.xdr_klm_holder_xdr_klm_stat_.xdr_klm_stat_xdr_klm_testrply_.xdr_klm_testrply_xdr_klm_lockargs_.xdr_klm_lockargs_xdr_klm_testargs_.xdr_klm_testargs_xdr_klm_unlockargs_.xdr_klm_unlockargs.oVncs.oVhc2.1n.oVO_xdr_fhstatus_.xdr_fhstatus_xdr_fhandle_.xdr_fhandle_xdr_path_.xdr_path_xdr_mountbody_.xdr_mountbody_xdr_mountlist_.xdr_mountlist_xdr_groups_.xdr_groups_xdr_exportbody_.xdr_exportbody_xdr_exports_.xdr_exports.oVncs.oVhc2.1n.oVO_xdr_nlm_stats_.xdr_nlm_stats_xdr_nlm_holder_.xdr_nlm_holder_xdr_nlm_testrply_.xdr_nlm_testrply_xdr_nlm_stat_.xdr_nlm_stat_xdr_nlm_res_.xdr_nlm_res_xdr_nlm_testres_.xdr_nlm_testres_xdr_nlm_lock_.xdr_nlm_lock_xdr_nlm_lockargs_.xdr_nlm_lockargs_xdr_nlm_cancargs_.xdr_nlm_cancargs_xdr_nlm_testargs_.xdr_nlm_testargs_xdr_nlm_unlockargs_.xdr_nlm_unlockargs.oVncs.oVhc2.1n.oVO_xdr_sm_name_.xdr_sm_name_xdr_my_id_.xdr_my_id_xdr_mon_id_.xdr_mon_id_xdr_mon_.xdr_mon_xdr_sm_stat_.xdr_sm_stat_xdr_res_.xdr_res_xdr_sm_stat_res_.xdr_sm_stat_res_xdr_status_.xdr_status.oVncs.oVhc2.1n.oVO_xdr_rex_start_.xdr_rex_start_xdr_argv_.xdr_argv_xdr_rex_result_.xdr_rex_result_xdr_rex_ttymode_.xdr_rex_ttymode_xdr_rex_ttysize_.xdr_rex_ttysize.oVncs.oVhc2.1n.oVO_xdr_getquota_args_.xdr_getquota_args_gqr_arms_xdr_rquota_xdr_getquota_rslt_.xdr_getquota_rslt_.xdr_rquota.oVncs.oVhc2.1n.oVO_rstat_.rstat_xdr_statstime_havedisk_.havedisk_xdr_stats_.xdr_stats_xdr_statsswtch_.xdr_statsswtch_xdr_timeval_.xdr_timeval_.xdr_statstime.oVncs.oVhc2.1n.oVO_rusers_.rusers_xdr_utmpidlearr_rnusers_.rnusers_xdr_utmp_.xdr_utmp_xdr_utmpidle_.xdr_utmpidle_xdr_utmpptr_.xdr_utmpptr_xdr_utmpidleptr_.xdr_utmpidleptr_xdr_utmparr_.xdr_utmparr_.xdr_utmpidlearr.oVncs.oVhc2.1n.oVO_rwall_.rwall.oVncs.oVhc2.1n.oVO_xdr_sprayarr_.xdr_sprayarr_xdr_spraycumul_.xdr_spraycumul.oVncs.oVhc2.1n.oVO_getrpcport_.getrpcport.oVncs.oVhc2.1n.oVO_yppasswd_.yppasswd_xdr_yppasswd_.xdr_yppasswd_xdr_passwd_.xdr_passwdetherxdr.o 597753945 0 10 100666 1936 ` 0Dhٱnk l0  ɱ8<b  ɱ8< b  ɱ8<b  ɱ8`Ъ` 0b  ɱ8  `Ъ` 0Tb  ɱ8є ɱ8߸!nl m0  4=b  4= b  4=b  4=PUb@  44! ٱnk l0`Ъc b  ɱ8  ɱ8߸!ّnl m0p kp /0!bc  ɑDp!ɑDPU pbcФL  ɑD mpݑߘ!nl m0  4bcЍ  4!4! nl m0  4bcЍ  4!4! @(#)etherxdr.c 1.1 86/09/25 Copyright 1985, 1987 Sun Microsystems, Inc.$Header:etherxdr.c 12.0$, J h  4 R p`|B`V @L@PPT PX@\P`@d@h@lPp@tPx@ 0!4)|8HUco|#4=GUd.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xdr_etherstat_.xdr_etherstat_xdr_timeval_.xdr_timeval_xdr_u_long_.xdr_u_long_xdr_etheraddrs_.xdr_etheraddrs_xdr_etherhtable_xdr_reference_.xdr_reference_.xdr_etherhtable_xdr_etherhmem_.xdr_etherhmem_xdr_bool_.xdr_bool_xdr_etherhbody_.xdr_etherhbody_xdr_int_.xdr_int_xdr_addrmask_.xdr_addrmaskklm_prot.o 597753954 0 10 100666 2194 ` pnԍ  ,!,! nl m0@  4=b  4= b  4=b  4=b  4!4! nl m0  4=b  4=b  4bcЍ  4!4! nԍ>  ,!,! nC^0э, b4!4! nl m0Ĕ  4=bĔ  4bcЍ  4!4! nl m0  4bcЍ  4!4! nԍ  ,!,! @(#)klm_prot.c 1.1 86/09/25 Copyright 1986, 1987 Sun Microsystems, Inc.4z8T@b$Header:klm_prot.c 12.0$ F d2Pp@L@PPT@X P\ P`PdPh@lPp@t@x@P@PPP@@@@ !)88HR]@k4zT \z)d;NXcob.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xdr_klm_stats_.xdr_klm_stats_xdr_enum_.xdr_enum_xdr_klm_lock_.xdr_klm_lock_xdr_string_.xdr_string_xdr_netobj_.xdr_netobj_xdr_int_.xdr_int_xdr_u_int_.xdr_u_int_xdr_klm_holder_.xdr_klm_holder_xdr_bool_.xdr_bool_xdr_klm_stat_.xdr_klm_stat_xdr_klm_testrply_.xdr_klm_testrply_xdr_void_xdr_union_.xdr_union_xdr_klm_lockargs_.xdr_klm_lockargs_xdr_klm_testargs_.xdr_klm_testargs_xdr_klm_unlockargs_.xdr_klm_unlockargsmountxdr.o 597753966 0 10 100666 2098 ` txnl m0  4p bcЍ  4!4! n@  !, ,! n@ !, ,! nl m0  4bcЍ  4!4! ّnl m0p kp /0!bc  ɑDp!ɑDPU蔐 pbcФL  ɑD mpݑߘ!nl m0f  8q-0cb  8p 1 !8PUbcФH8!nl m0=  8r-0cb  8p 2 !8PUbcФH  8!8!ّnl m0p kp /0!bc  ɑDp!ɑDPU pbc@  ɑD mpݑߘ!@(#)mountxdr.c 1.1 86/09/25 Copyright 1984, 1987 Sun Microsystems, Inc.\"D$Header:mountxdr.c 12.0$j Lx` `,|`:`P@L@PPT@X@\ P`@dPh@l@p@tPxP|@@@ !)7FOYf\t"-9FVDgt.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xdr_fhstatus_.xdr_fhstatus_xdr_int_.xdr_int_xdr_fhandle_.xdr_fhandle_xdr_opaque_.xdr_opaque_xdr_path_.xdr_path_xdr_string_.xdr_string_xdr_mountbody_.xdr_mountbody_xdr_mountlist_.xdr_mountlist_xdr_bool_.xdr_bool_xdr_reference_.xdr_reference_xdr_groups_.xdr_groups_xdr_exportbody_.xdr_exportbody_xdr_exports_.xdr_exportsnlm_prot.o 597753975 0 10 100666 2977 ` nԍ  ,!,! nl m0  4=b  4=b  4=b  4=b  4!4! nC^0э4 b4!4! nԍi  ,!,! nl m0  4bcЍ  4!4! nl m0  4bcЍ  4!4! nl m0@  4=b  4= b  4=b  4=b  4=b  4!4! nl m0  4=b  4= b  4=bc  4=0b  4=4b  4!4! nl m0  4=b  4= b  4=b  4!4! nl m0  4=b  4bcЍ  4!4! nl m0  4bcЍ  4!4! 4 $XX p6$Header:nlm_prot.c 12.0$ B ` ~f 4Rp   \ z   Db @@P @ P PPP @(P0@8P@PHPTPX@\@`@d@h@l@p@tPx@|@@@@ !0@JU e4v X"$1`>XLh]op}x6(=.oVncs.oVhc2.1n.oVO_rcsid_xdr_nlm_stats_.xdr_nlm_stats_xdr_enum_.xdr_enum_xdr_nlm_holder_.xdr_nlm_holder_xdr_bool_.xdr_bool_xdr_int_.xdr_int_xdr_netobj_.xdr_netobj_xdr_u_int_.xdr_u_int_xdr_nlm_testrply_.xdr_nlm_testrply_xdr_void_xdr_union_.xdr_union_xdr_nlm_stat_.xdr_nlm_stat_xdr_nlm_res_.xdr_nlm_res_xdr_nlm_testres_.xdr_nlm_testres_xdr_nlm_lock_.xdr_nlm_lock_xdr_string_.xdr_string_xdr_nlm_lockargs_.xdr_nlm_lockargs_xdr_nlm_cancargs_.xdr_nlm_cancargs_xdr_nlm_testargs_.xdr_nlm_testargs_xdr_nlm_unlockargs_.xdr_nlm_unlockargs sm_inter.o 597753983 0 10 100666 1807 ` \hn@  ,!,! nl m0@  4=b  4=b  4bcЍ  4!4! nl m0@  4bcЍ  4!4! nl m0  4=b@  4!4! nԍ  ,!,! nԍ  ,!,! nl m0  4bcЍܔ  4!4! nl m0@̔  4=bԔ  4bc@  4!4! D@(#)sm_inter.c 1.1 86/09/25 Copyright 1984, 1987 Sun Microsystems, Inc.8(0@$Header:sm_inter.c 12.0$Jh X  Rp @L@PPT@X P\@`@d@h@lPp@t@xP|@@@ !)6DP]h8t} (,08 2@>@K.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xdr_sm_name_.xdr_sm_name_xdr_string_.xdr_string_xdr_my_id_.xdr_my_id_xdr_int_.xdr_int_xdr_mon_id_.xdr_mon_id_xdr_mon_.xdr_mon_xdr_opaque_.xdr_opaque_xdr_sm_stat_.xdr_sm_stat_xdr_res_.xdr_res_xdr_enum_.xdr_enum_xdr_sm_stat_res_.xdr_sm_stat_res_xdr_status_.xdr_status rex_xdr.o 597753993 0 10 100666 1927 ` Xٱnk l0Ѝ^ P<b@ E<b@ :< b@ /<b4 &<b <b <b <b bɱ8߸!ّnk l0p pܔ 001bp 101$p```cb  ɑDp Ep!"$m 0ܤ0p!2 b0"b-01p!2```iдbc@(  ɑDp p  bЍ 0 !ɑDp!ߘ!ٱnk l0Ѝ bc@ bɱ8߸!١nl m043210p  2 1 01A bT +=b "1ȱbdV cbdV =b bɡPߨ!ٱnk l0Ѝ bc bɱ8߸!0$Header:rex_xdr.c 12.0$& < R v (d  <Nh| @@@ P P P@P P$P(@,P0@4P8P<@ !0@JUan{  .9EP\,m.oVncs.oVhc2.1n.oVO_rcsid_xdr_rex_start_.xdr_rex_start_xdr_argv_.xdr_argv_xdr_string_.xdr_string_xdr_u_short_.xdr_u_short_xdr_u_long_.xdr_u_long_xdr_u_int_.xdr_u_int_malloc_.malloc_free_.free_xdr_rex_result_.xdr_rex_result_xdr_int_.xdr_int_xdr_rex_ttymode_.xdr_rex_ttymode_xdr_bytes_.xdr_bytes_xdr_short_.xdr_short_xdr_rex_ttysize_.xdr_rex_ttysize rquotaxdr.o 597754000 0 10 100666 1257 ` HpPٱnk l0Ѝ bc bɱ8߸!nC^00! ٱnk l0Ѝ S<b J<b A< b 8<b /<b &<b <b < b <$b bɱ8߸!@(#)rquotaxdr.c 1.1 86/09/25 Copyright 1985, 1987 Sun Microsystems, Inc.Bv$Header:rquotaxdr.c 12.0$" Vp^ (@P@TPX P`@l@pPt@xP|P H!L)<PZenxBv.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xdr_getquota_args_.xdr_getquota_args_xdr_path_.xdr_path_xdr_int_.xdr_int_gqr_arms_xdr_rquota_xdr_getquota_rslt_.xdr_getquota_rslt_xdr_void_xdr_union_.xdr_union_.xdr_rquota_xdr_bool_.xdr_bool_xdr_u_long_.xdr_u_long rstatxdr.o 597754010 0 10 100666 2844 `  pXn0123103CQ<!n012303BR  @t!@ٱnk l0`Ъc b  ɱ8є `Ъ` 0b  ɱ8є <(b  ɱ8<,b  ɱ8<0b  ɱ8<4b  ɱ8<8b  ɱ8<Q;!<10012303AR<A@(#)rwallxdr.c 1.1 86/09/25 Copyright 1985, 1987 Sun Microsystems, Inc.$Header:rwallxdr.c 12.0$p(p@ @L@P P X!\)08HR[e.oVncs.oVhc2.1n.oVO_rcsid_sccsid_rwall_.rwall_xdr_wrapstring_xdr_void_callrpc_.callrpc sprayxdr.o 597754033 0 10 100666 728 ` |0nCP"  ,,! nl m0  4bcЍ  44! @(#)sprayxdr.c 1.1 86/09/25 Copyright 1985, 1987 Sun Microsystems, Inc.:$Header:sprayxdr.c 12.0$H f@L@PPT@X P\ P !)7FQ]m:~.oVncs.oVhc2.1n.oVO_rcsid_sccsid_xdr_sprayarr_.xdr_sprayarr_xdr_bytes_.xdr_bytes_xdr_spraycumul_.xdr_spraycumul_xdr_u_int_.xdr_u_int_xdr_timeval_.xdr_timevalutil.o 597754039 0 10 100666 605 ` dp(ٱnk0l@mP  ɱHsBt2p1b !bcdeЍ ɱH߸A@(#)util.c 1.1 86/09/25 Copyright 1985, 1987 Sun Microsystems, Inc.$Header:util.c 12.0$4 L @H@LPP PT P d!h)5BQahp~.oVncs.oVhc2.1n.oVO_rcsid_sccsid_getrpcport_.getrpcport_gethostbyname_.gethostbyname_bcopy_.bcopy_pmap_getport_.pmap_getport yppasswdxdr.o 597754046 0 10 100666 1643 ` x,`n4!!@pqS8A01R( ```p0A8bЍ  @p~!03AP  ~! @p ~! @p~!012<303AQ$m ~! <  @p @p!@\nl m0  4bcЍ  4!4! nl m0  4=b  4=b  4= b  4=b  4=b  4= b  44! @(#)yppasswdxdr.c 1.1 86/09/25 Copyright 1985, 1987 Sun Microsystems, Inc.passwd.byname8$Header:yppasswdxdr.c 12.0$8\ `pF2P@P@dPh Pl Pp PtPx@|P@@P x!|)3>M]ht8 .oVncs.oVhc2.1n.oVO_rcsid_sccsid_yppasswd_.yppasswd_getdomainname_.getdomainname_yp_master_.yp_master_getrpcport_.getrpcport_free_.free_xdr_yppasswd_xdr_int_callrpc_.callrpc_.xdr_yppasswd_xdr_wrapstring_.xdr_wrapstring_xdr_passwd_.xdr_passwd_.xdr_int #]Qlo #8#8#8 V#!/bin/sh - # # Copyright (c) 1980 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)makewhatis.sh 5.3 (Berkeley) 3/29/86 # trap "rm -f /tmp/whatisx.$$ /tmp/whatis$$; exit 1" 1 2 13 15 MANDIR=${1-/usr/man} rm -f /tmp/whatisx.$$ /tmp/whatis$$ if test ! -d $MANDIR ; then exit 0 ; fi cd $MANDIR top=`pwd` for i in man1 man2 man3 man4 man5 man6 man7 man8 mann manl do if [ -d $i ] ; then cd $i if test "`echo *.*`" != "*.*" ; then /usr/lib/getNAME *.* fi cd $top fi done >/tmp/whatisx.$$ sed /tmp/whatis$$ \ -e 's/\\-/-/' \ -e 's/\\\*-/-/' \ -e 's/ VAX-11//' \ -e 's/\\f[PRIB0123]//g' \ -e 's/\\s[-+0-9]*//g' \ -e 's/.TH [^ ]* \([^ ]*\).* \([^-]*\)/\2(\1) /' \ -e 's/ / /g' /usr/ucb/expand -24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100 \ /tmp/whatis$$ | sort | /usr/ucb/unexpand -a > whatis chmod 664 whatis >/dev/null 2>&1 rm -f /tmp/whatisx.$$ /tmp/whatis$$ exit 0 #]Tlny p#v#v#w8 Xn7!819A` cC$N1 ,  P"p""7l  " @pD0$ $"@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p 8nl m0p->   " p0p-> n  " p0 p-ԍ ``` 4! فnh >ؠȪPd b ɁDb0d ɁD.!THthlb0d ɁD@.A!SBH sBhbr$ " b{( p .c i,b0dI 5@.ASB!H )sBh "b7$p bc0Ⱦ . 3,bc ,,. %,ɁDLȱql߈B@ !@```!@ nl Pu @, :. 7 5 v=#1(6==$3 @x=Cv=#BJ 16== u =u @, .˔ @\dP@40 :.3 5 v=#lP16==$3 @x=Cv=#BlPJ 16==u lP=u A@40Ȓ 5 v= (#16=-$" 0x-2 v-0(2! 6-= (uu @, @, 2 5 v=#1&6==$3 @x=Cv=#BJ 16==I u =@u @, В 5 v= )#16=-$" 0x-2 v-0)2! 6-= )u 5 v- !6-4-$"  x  v- !6-4= 4 anf g00-Xh aLȘ@  \@ ``` \ @    @ ``` Ȯ` Q@ Nb`0,h &(@   !@ ``` !@   @ ``` .cd`:bpbc/fjД` @aLh!nl Pu @, :. 7 5 v=#1(6==$3 @x=Cv=#BJ 16== ܉ u =u @, .˔ @\dP@40 :.3 5 v=#lP16==$3 @x=Cv=#BlPJ 16==܉u lP=܉u A@40Ȓ 5 v-.!6--$" x  v-.! 6-= .@, @, 0u=1 5=v=#1#6= $ 3x 0v=#BJ 16==i=b@, 4 nm 6bЍ0 pqTn 1 @Q  !7!81b@ 09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$ nm X= ( 0 DxP  Dxr 5X   "  `2 -1 } b2- X ( X ( 3P $ ,J 8 ,(? r=X -AsMu0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxn u͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !00,4u nЍm 403 5#  0`Ъ`6>`0 023$0 ```bФ1.!0 n u͔  4v-p  !0_0,v-ij 4u ٱnm  uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "<, ّn|Œj0X* ( (  ɑD qr1s ` *cdUd 1q0 @ml@ ޑC*1Cd<d Y0 r?*c |є bЍ k 2X*( X ( 3 "P"&T 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ١nj ȱD!<Jgmb< N`bd "c. bd "c" >"A bЍd "cЍ !1ɡXߨfpabort: ...exiting. ّnj k0l@A +ѤbS@ a. 0 2c 0b@j bɑ@r w ɑ@@ a0B 0ެ3  ( @ r( ( 12bɑ@ߘ1p>P U0% pYP U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP U0% a`0d0H@b&c`ccc0`36p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$4nd0t3@@  4!4 p%P U0% pP U0% ١nk  -x 2j ݭx  墲 bbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cys@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cK@+cC@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .c^xA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c5xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1 & u2 `; >>4>H>\>l>x>>>>>>>???$?4?H?\?p??????@@ @ @4@L@h@@@@@A A8ATAxAAABBB(BLBpBBBBCC$C<CPCtCCCCCCCDD8DPDtDDDDDD$Header:errlst.c 12.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededRemote file system errorOut of remote working directoriesStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks available耑ّni j0k@lPbcWm X !Vp,!0,s a@)* q<#1 1bc3!#X4"# D 9 Ф 4p, X v=ij Ф 4p, X  !0A0,4u nЍjm 4&03 D5#  0`Ъ`6>`0 023$0 ```bФ1.!0 n Du͔  4v-p  !00,v-ij 4u ٱnm  DuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "l, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c? |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cid s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d$, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ١nj ȱ ,!<Jmb< Nbd "c bud "c >"A bЍad "cЍ !?ɡXߨfpabort: ...exiting. p>PU0% pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% nd0t3@  4!4 p%PU0% ١nk  `-x 2fj ݭx  墲 bbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡ6.&@80( 91)! ;3+# =5-% ?7/'(08@ '/7?&.6>%- 5=$, 4<#+ 3;"* 2:!) 1991)! :2*" ;3+# <4,$?7/'>6.&=5-%      )4%/7(3-!0,1'8"5.*2$                                                                                                                                     4,$Header:crypt.c 12.0$d0$Header:exit.c 12.0$8 D n,$Header:findiop.c 12.0$||$ h8$Header:flsbuf.c 12.0$  |X$Header:fpabort.c 12.0$ H d  $Header:getenv.c 12.0$  $$Header:isatty.c 12.0$ dX 4 z,$T8$Header:malloc.c 12.0$h$@  $*8$Header:calloc.c 12.0$Lh#]~lo: #{#{#| /* lib.b 4.1 83/04/02 */ scale = 20 define e(x){ auto a, b, c, d, e, g, w, y t = scale scale = t + .434*x + 1 w = 0 if(x<0){ x = -x w = 1 } y = 0 while(x>2){ x = x/2 y = y + 1 } a=1 b=1 c=b d=1 e=1 for(a=1;1==1;a++){ b=b*x c=c*a+b d=d*a g = c/d if(g == e){ g = g/1 while(y--){ g = g*g } scale = t if(w==1) return(1/g) return(g/1) } e=g } } define l(x){ auto a, b, c, d, e, f, g, u, s, t if(x <=0) return(1-10^scale) t = scale f=1 scale = scale + scale(x) - length(x) + 1 s=scale while(x > 2){ s = s + (length(x)-scale(x))/2 + 1 if(s>0) scale = s x = sqrt(x) f=f*2 } while(x < .5){ s = s + (length(x)-scale(x))/2 + 1 if(s>0) scale = s x = sqrt(x) f=f*2 } scale = t + length(f) - scale(f) + 1 u = (x-1)/(x+1) scale = scale + 1.1*length(t) - 1.1*scale(t) s = u*u b = 2*f c = b d = 1 e = 1 for(a=3;1==1;a=a+2){ b=b*s c=c*a+d*b d=d*a g=c/d if(g==e){ scale = t return(u*c/d) } e=g } } define s(x){ auto a, b, c, s, t, y, p, n, i t = scale y = x/.7853 s = t + length(y) - scale(y) if(s=0) n = (x/(2*p)+1)/2 if(x<0) n = (x/(2*p)-1)/2 x = x - 4*n*p if(n%2!=0) x = -x scale = t + length(1.2*t) - scale(1.2*t) y = -x*x a = x b = 1 s = x for(i=3; 1==1; i=i+2){ a = a*y b = b*i*(i-1) c = a/b if(c==0){scale=t; return(s/1)} s = s+c } } define c(x){ auto t t = scale scale = scale+1 x = s(x+2*a(1)) scale = t return(x/1) } define a(x){ auto a, b, c, d, e, f, g, s, t if(x==0) return(0) if(x==1) if(scale<52) return(.7853981633974483096156608458198757210492923498437764/1) t = scale f=1 while(x > .5){ scale = scale + 1 x= -(1-sqrt(1.+x*x))/x f=f*2 } while(x < -.5){ scale = scale + 1 x = -(1-sqrt(1.+x*x))/x f=f*2 } s = -x*x b = f c = f d = 1 e = 1 for(a=3;1==1;a=a+2){ b=b*s c=c*a+d*b d=d*a g=c/d if(g==e){ scale = t return(x*c/d) } e=g } } define j(n,x){ auto a,b,c,d,e,g,i,s,k,t t = scale k = 1.36*x + 1.16*t - n k = length(k) - scale(k) if(k>0) scale = scale + k s= -x*x/4 if(n<0){ n= -n x= -x } a=1 c=1 for(i=1;i<=n;i++){ a=a*x c = c*2*i } b=a d=1 e=1 for(i=1;1;i++){ a=a*s b=b*i*(n+i) + a c=c*i*(n+i) g=b/c if(g==e){ scale = t return(g/1) } e=g } } #]loہ$ #}#}#~ the of and to a in that is was he for it with as his on be at by i this had not are but from or have an they which one you were her all she there would their we him been has when who will more no if out so said what up its about into than them can only other new some could time these two may then do first any my now such like our over man me even most made after also did many before must through back years where much your way well down should because each just those people mr how too little state good very make world still own see men work long get here between both life being under never day same another know while last might us great old year off come since against go came right used take three #]ln  h#u#u#v(84 Pn7!819A` cC$N1 7,  P"p""7l  "( @pD0$ $"( @tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p L8tPanl m0hij͹ pz.` b "" aL`f. . khpKX  aL` rb fpvp  0&g p! .pKbp05 g p p 0 bpaLpKh!qng0d BjN͚вckp 0l ª 2` 7(qLrg p c ;!5c bpn   (:bqHp c !  @0@LqH /p c ; g p c ;!c bp'  *9qH g qHxّni j0p pM00e(,p,p @0cPo(p,pM 0ce[( p c lc 0 .,p c 𐱴 p,0 ., p c !@c 0 . ,p c !𐱴 p-0 !ɑDߘ!nl@mP  }1bbcЍ .4Q n` @ .cn,0 . c`,.dcS,! nl m0( A.cdЍ8030 8@, dADD 2@]dADD @,dADD```@]dADD```% Ց%403@]@,@]! n(l m0> >bЍ h. >xcb!@. c|x@2!@d @  A@ ```/Ac@ /6A 6/ 61m0@@ ёA```l >0bDm .4c3xb "؉ӑ1Б1͑1!6nc . 0, nd e0 (>"=4,! n@D "00@P@pP. T$>8b 0 nm 6bЍ0 pqTn 1 @Q  !7!81b@T09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$ nm X= ( 0 DxP  Dxr 5X   "  `2 -1% } b2- X ( X ( 3 $ ,J 8 ,(? r=X -AsM90-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnu͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !0u0,4u nЍHm 4Z035#  0`Ъ`6>`0 023$0 ```bФ14.!0 nu͔  4v-p  !00,v-ij 4u ٱnm uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "p, ّn|Œj0X* ( (  ɑD qr1s ` *cd d 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍ k 2X*( X ( 3 ""&b 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -dX, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0B~ 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ`!<Jmb< Nb3d "c` b'd "cT >"AL bЍd "cЍ@ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd!|X/(230$b0cdX  ,AA p>P U0% pYP U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP U0% nd0t3@h  4!4 p%P U0% pP U0% ١nk -x 2j ݭx J 墲 b>bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c @+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) coىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#ca@+cY@+ y , )p)! 0)q) !1)X "s  q) q)! 1) c+ىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1 u2 `;bc3! %s J%s %ld,$%ld%ld,%ld%s:%s --can't do - -can't access rcan't open program error diffh: %s%s  Bc---change record omitted can't resynchronize$Header:diffh.c 12.0$ ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$8 4$Header:exit.c 12.0$h pl$Header:filbuf.c 12.0$< $  60$Header:findiop.c 12.0$HT>lL$Header:flsbuf.c 12.0$x$Header:fopen.c 12.0$ ,$Header:fpabort.c 12.0$|`l$Header:fprintf.c 12.0$4P4l0$Header:getenv.c 12.0$\ $Header:isatty.c 12.0$Pl 4 $Header:malloc.c 12.0$p`$Header:printf.c 12.0$8 H4G$Header:calloc.c 12.0$xX DTH $Header:doprnt.c 12.0$ d'B@6667(0INFNAN()0    X P  $Header:ecvt.c 12.0$<`\$@<`\#@ <X$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$=?? @  $Header:l10.c 12.0$ A 8$Header:mul211.c 12.0$ <B@$Header:mulu211.c 12.0$ \B$Header:mulu32.c 12.0$ *A7\(;w5^k(Cl P$Header:rad2a.c 12.0$ D$Header:shlun.c 12.0$ T *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2D\$Header:spdiv7.c 12.0$ BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ E@ X$Header:tentothe.c 12.0$#]lnb  #b#b#b 0@P`pH 0n7!819A` cC$N1 ,  P"p""7l  "  @pD0$ $"  @tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p  08L5``n.( "+=,c@DbP#0m  ." 4!L8b"pbp"(I< 8@8!nm !1(  .!!!,rwRuB>0q1bЍ$0Han`i t aT>b 8xl  b!!>hbdЍ$|!> Ab$|!>8ȡPbd#|!>LȁLbd#|!@(>lbd !>b%0bbЍ _m >bd !gsMr=b b!!S>Nbe$Ebc"K.Ѝ+n~ xe(bc`dp$$bФ0  >b d!1b$H b !t f.hbc!! &1DbЍ$ bЍ !X p !1dbЍ%bЍ Vb%b I !#(!1:!#D h bĒ```.$0 .01b0@>Dbd#0bcdP>Pbd# bcdP>\bdb! aTȡPfȁLȡP`ȁL\ȁL@g(h@١n`e j0l@m>N bЍ",>bЍk  .!>(bd >Hbca>Xb>xbd>b>b+>bЍl  bЍ9!|)c"bm bc)c brm bn>b>bbɡdߨ1(nԤ@(c @ .1@@C  ,03+K#` /, n!c  .ܤ!.>09m @ (>4".Lܤ!rA>hbЍbЍ@nl Zm  bXp!tp-4 p!P*U0% p P*U0% pP*U0% pP*U0% nԍr, فnm qb+T<q1w b$ "p 2bЍ j wȾp+ x Ȼp+ ``` hu lr;p ݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk +Tc.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d10 u 0db`bɡ<ߨe Q^`R n mnl m0 bcc0   bc0 b4! 1AQ1@DDp;P*U0% nm bЍ.-0 npԒ 0q2@112` b, nm X= ( 0 DxP  Dxr 5X   " Д  `2 -1w } b 2- X ( X ( 3@ $ ,J 8 ,(? r=X -AsME0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxn+u͔%.l>#X4"# D 9 * 4p, X v=ij * 4p, X  !0.0,4u nЍm 4.03+5#  0`Ъ`6>`0 023$0 ```bФ1.t.!0 n+u͔  4v-p  !0.E0,v-ij 4u ٱnm +uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n " ,, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*co |є bЍ k 2X*( X ( 3 "@"& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -dH, X ( 4 4 nl X< @m ,i X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0B 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!p鏤 P*U0% ١nj ȱ!<J*emb< N*^bd "c< bd "c0 >"A( bЍqd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd/!hX/(230$b0cd/X  ,AA ne0pEA 0Eq5#"1%15X Ds@qE$ q5@#1 15q%@"M"cPE,! p>P*U0% pYP*U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP*U0% ٱn:!d e0  ɱ803+,!(Yz ɱ8+ @  ```@  ```=bD(=bD(=bD( @  ```$@  ```(@  ```,@  ```- ɱ8߸nl  "0 LN@ D b0Fq -bЍ c bЍ0! cbd p!DNb0FE Ս D+,p- ..00- $- 0! p2b$  "+0 Mp!Dp"1FM(  p-,0 b c b00!p-p"8F/( "+0 p-,0 p!DAn!014A8Q. +-   !0 n.̔ 3Z+,p- 0+0+-  fM4դ nd mb0Ds  4bЍc bЍ4A @ : !@ :    !ّn &|R.>.| K ɑP* )J<::i *  ɑPb bɑPȱmbcdЍMs r! :<=$i  bɑPM!N|ȑ b0C  ɑPbc bi ɑP 4p)> (b,k*>| bЍc bm 0ۤ!ɡ< ɡvt bOc bЍj 0!ɡ< ɡbЍ1j 2pJPU+b0 %0 !ɡ̔ r", ", nN$+]0->01 2 3  .$  u$t 0Hn+->A Q 0 1  .  xls r 0@nm l0e "+> 01dЍ  Dr1s!m  Ds! 1Tq, @ 1-v, @ 6-w, @ 7-x, @ 8-bD!nd l0>bЍbЍIe "+> 01dЍ  $Xw1x!mm x!< $Xq, @ 1-v, @ 6-w, @ 7-x, @ 8-b$X!nm@0  0q=0 @ 12v=0 @ 62w=0 @ 72x=0 @ 8201 ّn` m0+ȬdbcdЍ bde@ +ݬ@b",Dj @ : bɑDibcJr p@ : bɑD,H@ : bɑDbcJO p@ : bɑD,LP TݬXb,\j ݬ`@ @  ```,@ɑDߘ!n.n+8 p,bq̔ 84 ٱnk (l bĐ!m cTt0 "+81 8ɱ8߸nl +- h !q"W- hv"P- hw"I- hx"B- h< $v- hq,!j= h1#q<lv,o!X= h6#v<lw,]!F= h7#w<lx,K!4= h8#x<l- h4 n0p̔ p,cЍД !4q̔ 4 ّnj k0l@Д 0  $ ɑ@@:xbA@  @:bA ``` ё@:bA @+ - @0 A*x XȔ@ @  #  ##ɴ,  ɑ@ 0B*b.A""D A*x X@:bA@@    @:dA@ 0@   ɴc)@JcA3    ɴ 䔰 0"ɑ@ɑ@ߘ1ٱnqȔ -1+@ )b0?h  ݼ4ɱ8bЍ  4ɱ8ɱ8߸ptP*U0% ّni j0 0@%8@d^D`br 0bЪ"s bp" ۍ@$  ɑH  ,102͔ 1 .0cde( q!ɑH .0cdex( q!ɑHb ,ɑHߘAفnm 5$<,0ӑ4<, 0@ (> , , ɁTe , >$ 01dЍ , , ɁT ,ȼ 'p+cЍ @ (>0dЍ[ , , ɁT , rsb Ҕq@   @ ``` ]#Y(@   @ ``` b0,Fk h@ (>\ , ,bɁT q,    ``` cdP Ȩ@   @ ``` b0,F\k h@ (> , ,bɁT p,    ``` cd Ȩ@   @ ``` b0)Fk h@ (>N , ,bɁT r,    ``` cd ȨYs! , ,!ɁT>bLk @ # + b6 s! , ,!ɁT>蔰   bj s! , ,bɁT>߈@B@ e0@ 菑Q@```!@B@鏤 ٱnk l0 m bcdЍ b@,  !ɱ8@ , @ ,  ```@ פ ɱ8߸!an3!21g@hPȞȱ$bcpds)bcdk!bcpdcbcd[  b"4P//b ee 01s1 "50d r!1f ad0&!p !ad%  ad !d0!adhQ@Y@1!.@A!```nd0t3@D  4!4 p%P*U0% JAd @ DBDA$6"逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$566鏖c ( $Header:lmul.s 12.0$6pP*U0% ١nk 9T-x 2CDj ݭx  墲 bbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡb !bcdr 1- bc > b bcd[ 0- q-E$bЍ(bɑ@c,u3 (9 bɑ@ߘ1 nm p-q-bЍ0 nl b0c@@m 5 u,-8,` u,4 b x,4u 5  ١nm j@kPl0r -bc c bz(bcd `Bbc{ p pqQ0 1]ɡD01pqQ0 1]ɡDߨ!١nj0k@m r-  ɡ< * ɡc bpbq1di p!a lbcC  r2 a ll0bq1dsQ `ؐ 6r2* a lx9x7q':@}q'c@ G r2 a l a lȱ!0 bcdA )ugabcЍ& [!Ic(QP/@ (>$r2x9x7q':@q'c@ -r2 a l0!cdЍ bc r2 a lu7xq' 0@q'1@ r2 a lbp8(቏ȧ(h1Anm 67bpqQ0 1]8!ٱnl m0r Wq-1 Nwb)& *7!v-y 9-v=q :b@oq Ƚ(bc@ b0 ( bwM=(?p w 7 pqQ0 1\ɱH7 v-w!6- 01pqQ0 1\ɱH߸! nm l05 u-,8-` u-4 bЍ< )y x- +9-x=q :b@q (bc@z b0 4u 5 4! ١nm s t-  ɡA?Qj kP;m04bЪ!d+P͑@~A`&  ɑ@2 ;`bЪ!b+ }!c -!b+ cbd!ɑ@bЉЪ!ߘ!pP*U0% nc mlД0 @ 0<1,0 1 "03*22#".0,1,0 1 ͠Ð"cdd Tqng h09q 1,p  q,"n0,  q TqL c2c20 ```!=  q T@(rqrrrq k 5b@$@(rФ`д r1cb((b#$.> N0ep_, 0 b $b$ q Tb"p b0b$bc/p4q Tx!ّn039cp0ÍR bɑD' k mbЍV j  b pbɑDߘpP*U0% pP*U0% nm -0@T0 r 1 X-(  ( 00 anl11f@0Q;l  aHp,cЍ  aHw!0Pk b" i  aHb>g p g` bpp V ( h  aHp0"#(x@q!``` &p,cЍ(  aHw!Eg pb1 p bcDpQ<q!0baHhA%np"ԑ(p38,! n7!819A:Q7!` 819A:Q "@A c!,A n7!819A:Q7!819A:QA$!,A nA?QA?QA(2!1!@0A@! 1?AQ@=!>1?AQ@B(1!0p213q;p3p i q;t3bpx!V  "ɑ$d 0 bɑ$d.d:`0 !ɑ$dߘ1فni0j@kP4pIBA0I`^\012303 l  !\0 ɁX@DP0X1h>d213q,0 Ɂ4xq LH J,P8 . X \` h,HdФA`^\0 \12@303 ,`  b0ۤ Ɂ4x,\2A&L0$:Ѥ&!,8  \1$b@s bd0 bɁ4x,\1A1Ȕ  d,c4 "9q0 1bɁ4xb30 bɁ4x߈Aٱnl 4(^$,H012@303B m ɱL@D( 0A10>,213q=p0Pp ,`q2t3p,\-l`t \ hɱLq-t2bpt!lɱL߸فnh i0j@kP !Ɂ\m b @  @L!Ɂ\bcЍ Ɂ\uATh`!\03R<PpSq301123!4bcp "bI "7Ɂ\߈aqnQph@9!:17586(`@DlQ$ذȻx01t1p213q2pӤ4p "q,tt!!  i  v!":x0- x!"/10#  p- -!|vA0BvAqxp7u!vAp7b4p7vAb4!xA0BxAqp7wbxAp7b4p7xAb4(`q2scdp bq,txanhP5!f0g@͑d0͡h1ͱl2p3t4э  ad01234u!c`dpeadhqn|Qh@:;!<16789(`@DQ(011213q2ps4p bq<u!! 2i  w!"a͡0* y!"V10#  p* 쉀-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4(`q2scdp bq<x!qnh i0j@kP  !q hm b̔ @  @T!q hbcЍД q hwh!t1pAlQhpwdh0qp123Q4A516!bcdep "bN "5q hxqn9!:1;A0- x!"310#  p-䉀-!vA0BvAqp7u!vAp7b4p7vAb4!xA0BxAqp7wbxAp7b4p7xAb4*`q2scdp bq4|xqnk l0d0lh12qp3q́t4͑x5͡|6# qdlQh01q234bcdЍqdxqn|:;!<1=A>Q6789ͱ+`@DQ(011213q2p5p "q<u!! .i  w!"]́0( y!"R10#  p(؉-!wA0BwAqp7v! wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4+`q2scdp bq<x!anQp8!917ApŃxp(Ȟc 9͡|pzph00p,00w0p1t23456y1x!d`ep#g b`~Ԕp Np(cj bpa(thفnh i0j@kP !Ɂ\m b @ @  N!Ɂ\bcЍQ Ɂ\uAh!`1\PU0AqpE1A2314!bcdep "b "3nɁ\߈aفn7!819A:Q56ͱp+`@D\Qp01x1t213q2p3p "Ɂ,pt!! i  v!"1|0# !vA0BvÁ|p8u! vAp8b4 p8vAb4+`q2scdp bɁ,p߈فn:;!<1=A>Q67ͱ+`@DQ(011213q2p3p "Ɂ<u!! ?i  w!"n10# !wA0BwÁp8v!/wAp8b4 p8wAb4+`q2scdp bɁ<߈ ( ,"RUg(P%%@2B4>$6 ($# % !-.&nC^070! nC^060! ٱnk l00c/ <Db bɱ<߸!nCP67,! n@@6,! n@@6,! ٱnk l0Ѝ <b bc bɱ8߸!ٱnk l0Ѝ bc bɱ8߸!ٱnk l0Ѝ3 bci bɱ8߸!ٱnk l0Ѝ3 < bH bc? bɱ8߸!nԤD4,! ٱnk l0Ѝ bcB4 bɱ8߸!nC^050! n@5,! ٱnk l0Ѝ <b <b3)Ĕ bc bɱ8߸!p@A @@RP!1 鏤!@A鏤 phP*U0% #2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$k,k8@D#"$b@d  B鏤 03#"#d b00CP%* @`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$mmn` b0c:l b~m cb4! nԍ$,1 qn|Qg h0i@,MDj @ (>H 03+80 "*2#ɤèªӨҪ Xb Dk @ (>$H 03+80 "*2#`T L!40 LbpcdP)3P!1 2pqW1 2[rsW3 4[5 Q6 7[HPԉT}~!12Ѥ345;Lț,bdP3X1b,\ ?|+t2bp+Dp %0"2@.\`0,  03+80 "*2#d0f~3'9dp 0 6qh0*bq< b#l blbq<xq!n0@1"`23<Qan0!1AQrb 5!3!,6v!4!0t!q"uBt!6Dp&L t!q"qBt!1p !p"x2qCt1p t!A1p !8&a2t!q2t3pg r6Lp&0u1dpP,' "*9&aؔ ܔ%8&aȑȦ "+HpqRHQLrPX\p݁0 c@P,rA "*$ 9&$8&au!v 5!s!w 3!B@s! u!!5!s! 3! ```u!ش u!ش s!ܴ t%8&aД  ȶTl||FPp&01cP* d @ "*$ @ "*# 9&$8&aДD{6Lp&T s$bcQ1E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cƷ@+cƯ@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0c}s@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cO@+cG@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cě@+cē@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cbxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c9xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c @+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ 4d^4>4Q @R!5] d^4>4 Qd^4>4QP!@R!5]pZP*U0% n.bn}01!4Q n}01 4Q anh4A3Q!D1H!D=!H>/10#}!b~00s10  p .aL p .aL. aL!44m ҝb1 u2 `;U .b ;- 0 0 n.̔ ;- 4 nd mb0  4bЍ+c bЍ 4A @  !@     !nȤ .>. 8, )L4<[ m ,x 8bЍk b8mNb0  8bЍϚc bЍym  8 0J8p->̔ bЍ8,4bЍ/,4d p-!c@ m Ў~ wb8p-!$ib8@+ -  T;N;HA١n` k0;Hbcd_ bH޲I@ +8b0:-<0:l @ : bɡ@cbJ p@ : bɡ@-@] ]Db:@ M(T0őTb0,l @ 0-8ɡ@ߨ!n;, p,;b6q̔ ,4 nm@U  0q=0 @ 12s=0 p 3201 n?0p̔ p,cЍͨ !4q̔ 4 nN`;]->01 2 3  .` ¬u`t Hn;->A Q 0 1  .H vsHr @nm l0ͯHe ";> 01dЍ  Dr1s!tLm s!7t Dq, @ 1-s, p 3-bD!ٱnk (Ml bY0!Bm c0 ";,1 ,ɱ8߸ّnj ;-L 'sp ȑtp,Pđp -Lq"P-Ls"P-LP -Lq*$!=L1#q:tilsp ȡb$!0,p;Zđp 0 ɠb=L3#c bd~-Lɑ `-Lߘ@ٱnk0l@@p+ap->, bЍY|c bm 0ۤ!ɱ8 ɱ8p-!c, ?bЍ5|c p-!m 0ۤ!ɱ8 ɱ8p-!c˷, 0 !ɱ8!ɱ8- p-c˞, ɱ8߸1ٱnk0l@@p+Zp->ˀ$ bЍtc bwm 0ۤ!ɱ8 ɱ8bЍtc p-!9xm r 0ۤ!ɱ8 ɱ8p-!# 0 !ɱ8!ɱ8- r ɱ8߸1n>̍h r", ", nd l0>bЍbЍ˃e ";> 01dЍջ̔  $Xw1x!Hm x! , $Xq, @ 1-s, p 3-b$X!ٱnqȔ -1;@ )b0x  ݼ0ɱ8bЍ̤  0ɱ8ɱ8߸ٱnk CTbcR p 1 ɱ8p bd p 1 bcSɱ8߸nCTp͔ q, `r, Yp, RbMs̔0 1 4 CTq_P p0q0r0s1!菤 1nl CT-0  p 4b044 ١nj k01`m ɡddɡ,btj @ #ɡ< bc\  >4btl ɡ<@(>8b1d>XbdЍ)dɡ<ɡ<ߨ!١nj m04@   @ ``` bl  ɡ<(0 ȼ@   @ ``` ⺐+ 0-cdlp b ,ɡ<ߨ1nm e "C\> 01dЍ8  @s!@@B@ e0@ 菑Q@```!@B@鏤 p@P*U0% pP*U0% a`0d0H@b&c`ccc036p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$\p6P*U0% np2  ? =01q1b+p ," $ ` 0MAtbH١nj k0l@`bcm bc-p 0 ɡ<ߨ1١n?!1@k@Bڡ>bc{3!213q=p3p 03+804q-rBbp &+8q-t2bpx!_!!&Ɂ(l߈Anl m0 =b =b bcЍ4 4! qnh j0 qHE\1Lm@0\`Ъ2 `Ъ 3 bck( bcfr jqjgip}zpLbcpp ipq}z bjس* @2@ 9!* ```ij*pLbcp %q᭴ cٓ19 @Sb0d -* @d -*```T19j qHqxAanj k0hؐșE\sqibc`!c`l*g 8hpIbcp mmq9;01pIbp hmpIbp1p pѴ܎qi``@-@<,=ђ```mlpIbcpp q  pIbcpp ׈\pIbpcp qiֳ qicl01hЉ#ghЉִr mplmhg| bcЍfr jhphpg0q@@, (a```pp bcGr kдMaPqiqih!nm 211;0!1dsrbq!@ 0cM#AI ```@.ij c=b/2b!! 2#20bM2Ab@"b."ij <!nm q=0uMv=p-] #2- b44q=r 0 1 v b  41 t 4 p 4 p}P*U0% nl m0 =bdP4 4! nl m0  4bcЍ4! nl m0  4= b . 4uMt=bp4=bO  4=b@4s ה !4! nl m0h . 4=b  4bcЍ4bcЍ>4p ה 4! nl m0ؔ =b̔ q =^0bdЍ8 8!ٱnk l01ܤ2 p .Д (<bĔ <bД < bД <b{ɱ8bɱ8߸! !"RUDP%%* 0 0 0 0 00012#!00& ```012#nm d0r v- 00s-  ```0r 1pt 1u 20t 10w 1x 20 0! p]P*U0% pP*U0% p~P*U0% ̤pR @T\ q2 0_502q1pRϳT bفnj ȱ(Ɂ8|1032 cdЍ  Ɂ8|2x! y * * s;y* 8!xyQ2 3[89$3541 h.d   j ؐșEl0ɤ c@ Sp b Wp ```.c@ Xb cФ@ 0Ɂ8|߈PElpaP*U0% فnpR`Pe͵pS;j jhͨڳ АͨũŚ  Ƞi iᚪh͘ٳ А͘͘ŪŪ pTP P0TP```ճ г ```000Ɂ߈1١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3 Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ! ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 12.0$T X qC@ r @p A1Cp0qCA1C$ 鏤!nԍ,! nԍ>,! nd p qDqDp, qDpDp,!, ,! nd p qDpDp, qDqDp,!, ,! nd m0p,P 0cqDqDp4cqDpDp  4p !4!4  4! nd m0p, 0cqDqDp4cqDpDp  4p !4!4  4! nm0@ 0c  4p !4! nm0@ 0c  4p !4! ne m0p:p 0cq%qBbPp4cqEpDp  4p!!` 0 4!4 ۔ 4! nԍ,! ٱnl @!ɱ8 p )q,rbp  ɱ8!ɱ8q,r03Epbdp ɱ8'q,sbp  ɱ8!ɱ8q,s>bdp ɱ8!ɱ8 ɱ8߸1ّni j0m@kPpcЍ  ɑ@pݳVp  G ɑ@!ɑ@bЍD l 0ʔ@ (>$ ɑ@bcdЍ>(ɑ@ b,0 !ɑ@   ɑ@p ߘAnd04P,! ١nj m0k@lP  ɡ  ɡ@pAbMpAbcЍ^ɡ@bЍ0 !ɡ@ ɡ@ߨ1n@{ !, ,! n0R142325BAnm u  5 0s-Dɺs 3 !0! nm u  5 4p0bs=Dɔs 3 !4! nl m@u 5 4s,qs 3 !41 nl m@u 5 4s b0cLs 3 !41 st"鏲 tdus2`@鏤 3B5鏤!@u 5sB`C3b@"r."b!"0_3@.M$Header:alloca.s 12.0$alloca: Caller probably not compiled with -ma anh !1l0?0`pwx@dyA``` +  -0@ I?@N nAAF f:p12r1q!a4@A a&AN nB(C)p12r1q!a4 N i n .  0  9  0 +@⑁!,d  p12r1q!a4 e  E @bAb Ƞ TȠT Yb* cm b1,b'u! =b  !,c!,cKs /RE t!c 43%uc4#4!//!/Һ`{3|4`  b `+Д$tQs1 ሐzdPe00 Љe - `PM5`0]4=31 \P4Q3Qs! 3!` ;%[%ܱ(*2,1.00mn.4&!6'+  sa cHŢsabc4!& !$8&bcg yp Š@`Ib24`@b2T@Ep p!c 8!q q!c 7!r r!c 6!5q"RQ P@!cEN@10B! #!LB!1#@J! HUbY!d!44bP!b!"H4%!Rd : :QTb!b!"4Rb!b!RTb !b!"4R R  T`Yd6 `Pc( $6 P44 Őa`bc(g h!+ٱnl0 !"#$ &!nb'sbcЌ%d $# Ű ɱH߸!pP*U0% pSP*U0% poP*U0% plP*U0% nl 4m b0b4 $Header:abort.s 12.0$ NT$Header:crt0.c 12.0$$Header:fpglue.s 12.0$*X H0AOFPAFP_PRECISION@(#) Copyright (c) 1983 Regents of the University of California. All rights reserved. @(#)atrun.c 5.4 (Berkeley) 5/28/86/usr/spool/at./usr/spool/at, gettimeofday%d.%03d.%02d%02d Pr# owner: %127s%*[^ ] # jobname: %127s%*[^ ] # shell: %3s%*[^ ] # notify by mail: %3s%*[^ ] %s: bad spool header yes%s: could not find owner in passwd file %s/%s/usr/spool/at/past/usr/spool/at/past%s/at.err%d/tmpcouldn't create errorfile. /usr/spool/at/dev/null/dev/null/bin/%s/usr/bin/%s/usr/new/%s%s: Can't execl shell   X N , xX 0tx $ %s %s/bin/mailw/bin/mailYour job "%s" was run without any errors. The job you submitted to at, "%s", exited abnormally. A list of the errors that occurred follows: r ----------------- The Atrun Program  ( PHtgettimeofday/usr/spool/at/lasttimedonewcan't update lastfile: /usr/spool/at/lasttimedone%d  $Header:atrun.c 12.0$ T p w/M:/w/b///:/AV/Vw/Hll 8  4, P Day Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec $Header:ctime.c 12.0$8p $Header:exit.c 12.0$$Header:fgetc.c 12.0$$ X (T$Header:filbuf.c 12.0$ +\  "   $Header:findiop.c 12.0$ < X,< (l$Header:flsbuf.c 12.0$ h  P$Header:fopen.c 12.0$$ L P$Header:fpabort.c 12.0$  ($Header:fprintf.c 12.0$  $Header:fputc.c 12.0$D` | $Header:getenv.c 12.0$   m`@ P    N$ l (rr X`l   , fr+**  @   p X    !+#f+ O <%%Ppasswd.byname`%passwd.byname(&4passwd.byname&%dpasswd.byuidP'(,|  )x))X*4+D+-P,$Header:getpwent.c 12.0$/etc/passwd- h-initgroups: %s is in too many groups setgroupsDpN `$Header:initgroups.c 12.0$@(#)innetgr.c 1.1 86/09/24 Copyr 1985 Sun Micro.netgroup.byusernetgroup.byhost /innetgr: recursive overflow netgroupinnetgr: netgroup %s called recursively innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup #  PNPHl334P* 5d$Header:innetgr.c 12.0$45!$Header:isatty.c 12.0$57d7!h8z99,Xlm`:$Header:malloc.c 12.0$:h.pag.dirXONpl ;l;D;@PL<P=nndbm: split not paired nd H@8@<TAAB\CFC=951-)%! 1ҿ14r(G3f!CY&d;oY7uVV0{- ;T>/ /2[1a=<f`Kvz_lG$6$w CM760!nY)6N1Vp&8DŽ)3+H]<517;+$g )#n0%3a$ ۘ 0Vn29D}1N7R#:86)W{:92}x'L~|\/qDD6Dm`E.E$Header:perror.c 12.0$E: Unknown error P<Ft/bin/shsh-c X"X\G ,DH$Header:popen.c 12.0$HhHlH (P$Header:rew.c 12.0$H"( X#tH#4JN$Header:scandir.c 12.0$JJK0$Header:scanf.c 12.0$KK$Header:setgid.c 12.0$KK,L$$Header:setuid.c 12.0$L4LP\Ll $Header:sprintf.c 12.0$LPL$Header:strncpy.c 12.0$PPPQQ$@(#)yp_bind.c 1.1 86/09/24 Copyr 1985 Sun MicroQ@PL\0tRRNlSS 04T4!Tnd$pUvV@$WNXd|Yload_dom_binding: malloc failure. X OZ$Header:yp_bind.c 12.0$|@(#)yp_enum.c 1.1 86/09/24 Copyr 1985 Sun MicroYP_[P4$\HXlm`]\t^8_z`apb>c$Header:yp_enum.c 12.0$@(#)yp_match.c 1.1 86/09/24 Copyr 1985 Sun Microd8P4$e6HXm`f $Header:yp_match.c 12.0$L@(#)ypprot_err.c 1.1 86/09/24 Copyr 1985 Sun Microg$Header:ypprot_err.c 12.0$@(#)ypv1_xdr.c 1.1 86/09/24 Copyr 1985 Sun Micro\lgx(pxggP$Header:ypv1_xdr.c 12.0$@(#)ypxdr.c 1.1 86/09/24 Copyr 1985 Sun Microh(`hF(hlhPXHhi((8iji(\i|(8j&(jTjz$Header:ypxdr.c 12.0$j@(#)bcmp.c 1.0 84/10/03 IBMjkEEmhm nlXndnl$Header:calloc.c 12.0$(@(#)clnt_udp.c 1.1 86/09/24 Copyr 1984 Sun Micro $nclntudp_create: out of memory clntudp_create: out of memory X  " 0)4$X$!* lpq$$#$P$d$t&t:tjtp$Header:clnt_udp.c 12.0$Ttl$Header:closedir.c 12.0$t| ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$u w\ $Header:doprnt.c 12.0$$Header:doscan.c 12.0$@(#)doscan.c 4.2 (Berkeley) 82/12/03X'T)x`\/`#`\@2 d'B@ 0INFNAN()0!'$"&P#($Header:ecvt.c 12.0$tR   P$Header:fdopen.c 12.0$`\$@`\#@  m`$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$$P@(#)get_myaddress.c 1.1 86/09/24 Copyr 1984 Sun Micro8get_myaddress: socketget_myaddress: ioctl (get interface configuration)get_myaddress: ioctl$!$Header:get_myaddress.c 12.0$$Header:getdomainname.c 12.0$P T/etc/grouplDp`P ZN Rr D X`l , tr+ n|l nTgroup.byname`group.byname(8group.bynameXO4m`V+V+ , (>|%dgroup.bygidP0,$Header:getgrent.c 12.0$!t@(#)getnetgrent.c 1.1 86/09/24 Copyr 1985 Sun MicroN  O"l (Cycle detected in /etc/netgroup: %s. # syntax error in /etc/netgroup --- %s !X ِX!L!p|netgroupP$Header:getnetgrent.c 12.0$$@! $!$Header:l10.c 12.0$!!$Header:mul211.c 12.0$!$Header:mulu211.c 12.0$" h$Header:mulu32.c 12.0$"@ Xl$Header:opendir.c 12.0$"@(#)pmap_getport.c 1.1 86/09/24 Copyr 1984 Sun Micro<$Header:pmap_getport.c 12.0$#@(#)pmap_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro(8$Header:pmap_prot.c 12.0$#@p#<Ĉ$Header:qsort.c 12.0$#*A7\(;w5^k((&P$Header:rad2a.c 12.0$#*$Header:readdir.c 12.0$T$p@(#)rpc_prot.c 1.1 86/09/24 Copyr 1984 Sun Microp(X(`Ǽ(8$Ȯ$,$4>(ɦ.ʆʲ$\$`$Header:rpc_prot.c 12.0$Tpˌ$˨$Header:shlun.c 12.0$$**D*H$Header:sleep.c 12.0$&T *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc24$Header:spdiv7.c 12.0$'BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ "$Header:tentothe.c 12.0$'$Header:ungetc.c 12.0$(@(#)xdr.c 1.1 86/09/24PX(4z(8Мdl($Ҭ(,ӌӮԜxdr_bytes: out of memory X (\lՆ(`ղ(X8xdr_string: out of memory P4($Header:xdr.c 12.0$)\@(#)xdr_mem.c 1.1 85/05/30 Copyr 1984 Sun Micro)<)D)H)L)P)T)X)8l׌גm`$jش$Header:xdr_mem.c 12.0$)ٔ)'"$**`*$Header:atof.c 12.0$)$Header:atoi.c 12.0$*@@(#)auth_none.c 1.1 86/09/24 Copyr 1984 Sun Micro*0*,*4*8*<݀)4$*bhpx$Header:auth_none.c 12.0$*d$$Header:dknu.c 12.0$*$Header:dknu16.c 12.0$$Header:getdirentries.c 12.0$4Pl*(h$Header:swapround.c 12.0$#]lo `#o#o#pXhx0 H n7!819A` cC$N1 Q,  P"p""7l  "( @pD0$ $"(@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p L P8x n9!:1;Aݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk  c.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d0 u 0db`bɡ<ߨe Q^`R n mnl m0 bcc0   bc0 b4! nm (bЍ0 nhu͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !00,4u nЍjm 403h5#  0`Ъ`6>`0 023$0 ```bФ1.!0 nhu͔  4v-p  !00,v-ij 4u ٱnm huȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "č, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c? |є bЍ] k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*c7d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m ,W X  r,d 0 2 1 3 ( b4 ١nj ȱ t!<Jmb< Nb-d "c| b!d "cp >"Ah bЍ d "cЍ\ !?ɡXߨfpabort: ...exiting. p>PU0% pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% ptPU0% nd0t3@  4!4 p%PU0% JAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$ ١nk -x 2j ݭx B 墲 b6bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cs@+ck@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0c9s@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c @+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cW@+cO@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb16 u2 `;bc3!?D@`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$?|?qBpBCCCC C1B0Bd ;503;### #0^3_#### #03#### #0$3#### #03#### #03q#### #03#### #03@#### #03 #### #0 A<4"0$$Header:cvd10.s 12.0$@ @B NT$Header:crt0.c 12.0$$Header:fpglue.s 12.0$0AOFPAFP_PRECISION8@HPX`hpx(^|[ (,;])((%s[^ ]*[ ]*|(0%d|%d)/)0*%d)([^0123456789]|$) (^|[ (,;])((\*[ ]*)0*%d)([^0123456789]|$) l$Header:calendar.c 12.0$@(#)calendar.c 4.5 (Berkeley) 84/05/07[Jj]an[Ff]eb[Mm]ar[Aa]pr[Mm]ay[Jj]un[Jj]ul[Aa]ug[Ss]ep[Oo]ct[Nn]ov[Dd]ecw/M:/w/b///:/AV/Vw/8\\d(P$:ZDay Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec\|$Header:ctime.c 12.0$ $Header:exit.c 12.0$hx8 N 4$Header:findiop.c 12.0$ `X Vd$Header:flsbuf.c 12.0$ $Header:fpabort.c 12.0$ 4 0 $Header:getenv.c 12.0$ P l`  $Header:isatty.c 12.0$  0dd|$Header:malloc.c 12.0$x$Header:printf.c 12.0$$@P$Header:time.c 12.0$$  lL@$Header:calloc.c 12.0$0L lA@ $Header:doprnt.c 12.0$  d'B@00 0J0t0INFNAN()0    p h  0$Header:ecvt.c 12.0$6`\$@6`\#@ 6 d$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$79$9@ 9\  ,$Header:l10.c 12.0$ 4:D P$Header:mul211.c 12.0$ T:$Header:mulu211.c 12.0$ t;$Header:mulu32.c 12.0$ *A7\(;w5^k(; h$Header:rad2a.c 12.0$ <`$Header:shlun.c 12.0$ l *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2<$Header:spdiv7.c 12.0$ BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ = p$Header:tentothe.c 12.0$ ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$#]ln` p#x#x#x(8\ h)xn7!819A` cC$N1 G,  P"p""7l  "(@pD0$ $"(@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p L0l8t0qnh i0j@c@#1 `Ъ m@#1 ```bcPl01HbЌm0(b#Lgp'  0!P1'*D"' c q'D"bcdl0  (>d$A(qHxqnp p-0dЍ/p 0 n($p p-0dЍ{p 0 n012A@PC 81nm0 12A@qPk% 81nȤ0 12AMW  81n+0 |12A@;P/ 81n0T12A@P 81n0 12A@P 81nȤ012AKU 81n0L12A@Pw 81n+012A@;P/Y 81n5012A@;P/; 81nq012A@Pm 81ٱnȾp qp pp b0dp p p ɱ8߸nC0!12A@GP=x 81ٱnȍ !0d @ )[4 q w  .>m8.$cЍ\8 O. $0NdЍI8 <$@]  .$0NdЍ*8 ! ]<   -0?# "2"03#$d@4#"    "#p2102 "2 .$0OdЍ8  -0?# "2"03#$d@4#"    "#p2102 "2 .$$0YdЍ8  "@O# "B03#pC$b@ A0C "B 03Pp#$ !0#@B.p 0q2@C112M@d OJ "Lp0 "/#sذȻpKs$cMA0KcM.,0sdЍ8 /* "Lp0@D03Pp#B!0#[@O# "BO03#pC$b@ A0C "B 눀7 $@]  B  .4$0YdЍ8@DA PU$I$@]  .<$0YdЍ8v "!/#@D#p4#"$. 104@DTU$_Z "Lp0@D03Pp#B!0# "#$b-.D0YdЍ28L>b)8 $@]%"    .P$0KdЍ8 $@]%"    .X$0OdЍ8@DTU$. 4D  -0?# "2"03#$d@4#"    "#p2102 "2 .`$0YdЍ8.h$0YdЍ8s.p$0YdЍq8d@DTU$..x$0YdЍT8G03Pp#$ !0#@B.p 0q2@C112 )@d OJ "Lp0 ".uD -# ""03#$d@4#"    "#p2102 "2 .$0YdЍ8.$0YdЍ8@DTU$..$0NdЍ8.$0GdЍ8.$0GdЍ8~.$0GdЍ|8o.$0GdЍm8`.$0PdЍ^8Q.$0PdЍO8B$D ذȻ#0 .0NdЍ88p+-@DcMS], ).$0,dЍ8 .>8.$0NdЍ8@DTU$_Z "Lp0@D03Pp#B!0#$.0PdЍ8>b8.$0JdЍ8.$0NdЍ8$ذȻpK40;$.$0XdЍ|8o.$0gdЍm8`$ذȻpK$40;$@]  $ذȻpKcM40;.$0DdЍ/8" b<. 1@tc .$dЍ8.01@tc .($dЍ8.@1@tc .8$dЍ8.L1@tc .D$dЍ8.X1@tc .P$dЍ8.d1@tc .\$dЍ8$bФ1@t/# D @]  .l>s803#.p$dЍa8 "$pN0.x>܍P8C@DcMSyc^ "P//$zx:prpnlJhfdb`\ "4@NH "4@VH "4@DHo .|0NdЍ8 "4@JH "4@JH "4@JH "4@NHa e o "4@NHi "4@NHn "4@JtH` "# S@Du$!5$ "#""$v4#1564$ "x  "#""$v4#* 1644 L "#""$@D4 L03#p#!0#@Du$! 5$*v4#164$ "x  *v4#4 L@D4* L  $@] .$0YdЍ8 "!/# S@Du$!5$ "#""$v4#1564$ "x  "#""$v4#* 1644 _L "#""$@D4 LL "#p2102@Du$! 5$*v4#1E64$ "x  *v4#4 !L0@D4* L#.$0;dЍ!8 .>8 "#p0.$0"dЍ80.$0"dЍ8פ#.$0EdЍ8.$0,dЍ8.$0EdЍ8ذȻpK$cMbФ1@|#0, 1@]%"     @D.$cM03#.dЍa8TD0, p+!0+0?# "2,03#$b@RED   0 "#p2102 "2 03#0x.$0YdЍ 8.$0EdЍ 8#.$0EdЍ 8դ.$0EdЍ 8ä#.$0EdЍ 8.$0EdЍ 8.$0,dЍ 8.$0,dЍ 8x.$0,dЍ t8g.$0,dЍ f8Y.> hP$A "nP//(D`Xh<~d$@\xNj"Hd,V&$"r>j80d @ ɱ8߸ّni Ť$m@ b1@p c 0 .d  . cd ɑ@ߘ1ٱnl  "$@  "-"$' -"$'```ذȻ$bb1@}c 0 .d  >b } @  '@D$bM.0O bɱ8߸١nk l003u#! 5#v#:! 6#$ "x  v#:!6#0 :03u#! 5# v#!!6#$ "x  *vC$3 0*̍$(, V0>lb 1/q,>ؠȪd4  qL*(> =艀q )0 >lb Ĕ bɡ<ߨ!n03Pp#$ !0#@R.4p 0q2@S112se _Z "Lp0@@D$"  "p2.$10203Pp#$ !0#@R.4p 0q2@S112%e _Z "Lp0@@D$" L03p#O$!0#03Pp#$ !0#@B.4p 0q2@C112d OJ "Lp0@@D$"  "$OJ "Lp0 "@DPp4#104-!OJ "Lp0@DpT "Pp2S102.0PU "Pp2S102 , ١n "p$ 0 "$mͮ ذȻ%ݯ p@D3x q* &p".$ !.@B "4p 0q2@C112 d OJ "-`034C2D=c 3lp<`0c( q,` bȢ((@-/*> "#1>0vĈLCCcC2Dlc 3l<> 4pLc@142c>3(:*q,` bȢ((@-/*> "#1f>02c.3$3l 4p<`0c( *q,` bȢ((@-/*> "#1*>0q p033xÈ2@-/*> "#1>% p+ nr"/( gpdݿ(p2b> "#1>03(pp+r"0! % @ ݿ( "$Ґb@D(p4p#4.04@-/*> "#1>%q "$  $ ɡ<.$ !.@2 "4p 0qB@4A1B>c ?: 03$@No@7PU4q5p#! 0#q#!)1#X "s q#J q%q1q5q#@"  038 $ߨ  p p$!p n.$ !.䉀@B "4p 0q2@C112d OJ ", nPU4qEp41 04q4#1)14X 3s0q4# q%q1q5q#@"> "0383, nP%*ؒ.032!.鏤!nm bЍ0 nm X= ( 0 DxP  Dxr 5X   "  `2 -1 } b=2- X ( X ( 3 $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxn(u͔%.l>#X4"# D 9 ܤ 4p, X v=ij ܤ 4p, X  !00,4u nЍBm 403(5#  0`Ъ`6>`0 023$0 ```bФ1.!0 n(u͔  4v-p  !00,v-ij 4u ٱnm (uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "p, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdzd Y0 r?*c |є bЍ5 k 2X*( X ( 3 ""&\ 4X*( 1X*@l@qJKl@&1*c'd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m ,G X  r,< 0 2 1 3 ( b4 ١nj ȱ-!<Jmb< Nb?d "cl b3d "c` >"AX bЍd "cЍL !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd!X/(230$b0cdX  ,AA ّnj k0l@A +Ѥb@ a. 0 2c 0b@j bɑ@r w ɑ@@ a0BA 0ެ3  ( @ r( ( 12bɑ@ߘ1p>PU0% pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% nd0t3@  4!4 p%PU0% JAd @ DBDA$1逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$011pPU0% ١nk (-x 2*j ݭx Z 墲 bNbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c{@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cIs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cg@+c_@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .c.xA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb16 u2 `;bc3!@=@7@@@<@1@;@ @ @ @ @ @ @ @ @2@-@-@-@-@-@-@-@-@-@-@-@9@7@0/82*+=35:   2----------83,')(46   6 &-----6--4  #6$"# #!#  %+++.+. /   H..   9MNU->;yM@@001p1qMRM=}8w8x}}>}=>=-B  >>>- !  "#     $%  &   '    0 (O QMP 5t6uS@~I) 1 1 1 1 1 1 1 1 1 1 7UW 8 8 8 8 8 8 8 8 8 83r]e||~~3s* e JRTzz!  _#    $+     '     ,-,,,,,,,,,,cJR],,,,,,,,,,,,,,,,,,,,,,,,,,JRz_+,,,,,,,,,,,,,,,,,,,,,,,,,, 0>c 0f+7v7v7v7v7v7v7v7v7v7vAAAAAAAAAApq00EEEEEEEEEEfpppppppppp 0 2: 3 4> 5f 6;-<<<<<<<<<<V,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?>@ABC-DDDDDDDDDDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGFFFFFFFIBJ-FFFFFFFFFFKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLWqqXqqqqqqqqqqqqqqqqqqqqYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZ[ZZZZ\ZZZZZZZZZZZZWv7v]vvvvvvvvvvvvvvvvvvvvYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZ\ZZZZZZZZZZZZW,{<{<{<{<{<{<{<{<{<{<YYYYYYYYYYYYYYYYYYYYYYYYYY^ZZZZZZZZZZZZ\ZZZZZZZZZZZZ W , Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Z Z Z Z Z Z Z Z Z Z Z Z Z \ Z Z Z Z Z Z Z Z Z Z Z Z!W!_!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!\!Z!Z!Z!Z!Z!`!Z!Z!Z!Z!Z!Z"W","Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Y"Z"Z"Z"Z"a"Z"Z"Z"b"Z"Z"Z"Z"\"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z#W}}#c>-}}>->->-#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Y#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#d#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z#Z$e$,$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Y$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$\$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z$Z%W%f%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Y%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z%\%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z%Z&W&,&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Y&Z&Z&Z&Z&Z&Z&Z&g&Z&Z&Z&Z&Z&\&Z&Z&Z&Z&Z&Z&Z&Z&Z&Z&Z&Z'W','Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Y'Z'Z'Z'Z'Z'Z'Z'Z'Z'Z'Z'Z'Z'\'h'Z'Z'Z'Z'Z'Z'Z'Z'Z'Z'Z(i><z(i(<{<<<<<<<<<<<<<<<<<<<<XV+(i(i(j(i(i(i}(i(i(i(i>-V0})V0>-(i(i}(iX(i>-(i(i})k(i<|}(i>->-)l)m)nX(i(i(i(iX(i(i)o)o(i)oVV(i)o)o)o)o)o)o)o)o)o)o)o)o,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCD?D@DADBDCD-DDDDDDDDDDDDDDDDDDDDDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDGDFDFDFDFDFDFDFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGBGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFZWGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGGGFGFGFGFGFGFGFKKZZZZZZZZZZZZZZZZZZZZZZZZZZZ\ZZZZZZZZZZZZZZZZZZZZZZZZKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYKYLLLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLYLNNNNNNNNNNNNNNNNNNNNNNNNNNOOONOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYPPOOPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYPYQQPPQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYQYSSQQSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYTTSTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTYTTYBYY-YFYFYFYFYFYFYFYFYFYFYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY[WYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY\[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z^W\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z\\\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z\Z``W^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^Z^ZaWa`Z`Z``Z`Z`Z`Z`Z`Z`Z`Z`Z`Z`\`Z`Z`Z`Z`Z`Z`Z`Z`Z`Z`Z`ZbWaZaZaZaZaZaZaZaZaZaZaZaZaZa\aZaZaZaaZaZaZaZaZaZaZaZddbZbZbZbZbZbZbZbZbZbZbZbZbZb\bZbZbZbZbbZbZbZbZbZbZbZgWdZdZdZdZdZdZdZdZdZdZdZdZdZd\dZdZdZdZdZdZdZdZdZdZdZdZhWgZgZgZgZggZgZgZgZgZgZgZgZg\gZgZgZgZgZgZgZgZgZgZgZgZhZhZhZhZhZhZhZhZhZhZhZhZhZhhZhZhZhZhZhZhZhZhZhZhZhZii@iiixxAiiiixiiiiiiiiiiiiiixxxxxxxxxxiiiiiiiiiiiiiiii~llmloiiiiiiiimmiiloloiiloiiloiilolommlomlommmmnmlololonnmnnlolommlomlomnonomnomnomnonononoooomoononononooooonooonooonooooooooooooooooooooooCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZZZZZZZZZZZZZ\ZZZZZZZZZZZZZZZZZZZZZZZZZ\ZZZZZZZZZZZZWWzxZZZZZZZZZZZZZ\ZZZZZZZZZZZZZZZZZZZZZZZZZ\ZZZZZZZZZZZZWZZZZZZZZZZZZZ\ZZZZZZZZZZZZWZZZZZZZZZZZZZ\ZZZZZZZZZZZZZZZZZZZZZZZZZ\ZZZZZZZZZZZZomomoooooooooooomnooooooooooooomoooooooooooooooooooooo3p03x-8-3x-3-$3-04`-<6h-H;-P3x-\6-h3-t=-@`-C-3x-3x-3-E-3p-3p-4Xp-4p-4p.6(p.3p. <.,HPp.8Jp.DMp.PP0p.\Rp.hUpp.tXp.Zp.]Pp._p.bp..(`.3x.3i343.3x.3x.4H.3x.53x/44;43x/ 3x/3eP/44/$54/03x/840/@;lPo/Lp/T<r/duh/l3x/|488X/xp/zp/3x/|}p/Xp/p/8`/p/`p/5/f/4f0pw///7/80P0 0905;(0$0,А3xl043xl0<@ll͈l0D8l<HH0L3x0T3x0\3x0d3x0lJ3xp3x0t880|M580405@0h040h8@0005H0P(3x0?45P3x05X00;X4H111?7;11$73x1,97X145;7(1<9861D1L81T;81\61dx1l3x1tl1|l1(Xl1Xll11:813x1; qHxqn)012A@+P% 81nȤ0@12AKUg 81n;012A@=P5I 81n012A@%P+ 81n012A@P  81n012A@] 81nȤ 0812AMW 81n012A@P 81n012A@P 81n+012A@/P){ 81n=012A@CP;] 81n)0 12A@+P%? 81n0x12A@]" 81n012A@P 81nȤ012AKU 81nS0 12A@YPO 81nȤ 012AMW 81nȤ0P12AKU 81nC012A@GP=w 81n012A@PY 81nI012A@OPG; 81n012A@P 81nȤ012AKU 81n0 12A@%P 81nȤ0H12AKU 81nȤ012AKU 81n012A@%P 81nȤ0 12AKUu 81nȤ0x12AKUZ 81nȤ012AKU? 81n;0(12A@=P5! 81nS012A@YPO 81n012A@] 81n0p12A@P| 81n+0(12A@/P)x 81nԍO$d @ & ܍/(   .>@DՀ  "2@J , "\2@d , "E03u#! 5#vCYA 6C$ "x  vCYA6C033 Y*003u#! 5#vC:A 6C$ "x  vC:A6C033 :0 "ؒ!/ Zu/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?0@Dp4#"104?003003u#! 5#vCGA 6C$ "x  vCGA6C033 Gk003u#! 5#vC:A 6C$ "x  vC:A6C033 :=0 "ؒ!/ u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?0@Dp4#"104?0030 b "ؤ3@Z i, U " 3@Z \, H "4@m O, : 5 "4@m :, %  "2@N %,  "ܤ3@N ,  "Ф4@J , "4@J , "3@N , "P3@N , "$3@N , "(3@J , ",3@V , "X3@I , "3@J , "3@J , "5@J , u "3@J |, h03u#! 5#vCNA 6C$ "x  vCNA6C033 N003u#! 5#vC:A 6C$ "x  vC:A6C033 :0 "ؒ!/ u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?90@Dp4#"104?#0030 "83@N , 03u#! 5#vCnA 6C$ "x  vCnA6C033 n003u#! 5#vC:A 6C$ "x  vC:A6C033 :0 "ؒ!/ 2u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?j0@Dp4#"104?T0030 "3@m,  "H4@N, "03@J,03u#! 5#vCZA 6C$ "x  vCZA6C033 Z003u#! 5#vC:A 6C$ "x  vC:A6C033 :0 "ؒ!/Au/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?y0@Dp4#"104?c003003u#! 5#vCNA 6C$ "x  vCNA6C033 N-003u#! 5#vC:A 6C$ "x  vC:A6C033 :0 "ؒ!/u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?0@Dp4#"104?0030$ "2@N+, "44@J, "@4@N, "3@N, "L2@N, "D3@J, "T2@N, "4@s,  "<5@s,  "5@s,  "5@s, |w "@Dd$4#"5 03u#! 5#vCsA 6C$ "x  vCsA6C033 s 003u#! 5#vC:A 6C$ "x  vC:A6C033 : r0 "ؒ!/u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%? *0@Dp4#"104? 0030 03u#! 5#vCsA 6C$ "x  vCsA6C033 s 003u#! 5#vC:A 6C$ "x  vC:A6C033 : 0 "ؒ!/0u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%? h0@Dp4#"104? R003003u#! 5#vCnA 6C$ "x  vCnA6C033 n 003u#! 5#vC:A 6C$ "x  vC:A6C033 : 0 "ؒ!/iu/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%? 0@Dp4#"104? 0030 03u#! 5#vCnA 6C$ "x  vCnA6C033 n U003u#! 5#vC:A 6C$ "x  vC:A6C033 : '0 "ؒ!/u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%? 0@Dp4#"104? 0030L "3@YS,? "<4@mF, 1, "3@J1, " 3@N$,03u#! 5# "vC$A6C$ "x  "vC$* A6C3 W0 "033 G0 "@Dd$4#"5   "n l "a03u#! 5#vCYA 6C$ "x  vCYA6C033 Y 003u#! 5#vC:A 6C$ "x  vC:A6C033 : 0 "ؒ!/;u/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%? s0@Dp4#"104? ]003003u#! 5#vCNA 6C$ "x  vCNA6C033 N '003u#! 5#vC:A 6C$ "x  vC:A6C033 :0 "ؒ!/yu/!5/@Dp4#"v_%104Q<6_$ "x @Dp4#"v_%104* Q 6_@%?0@Dp4#"104?003003u#! 5#vCUA 6C$ "x  vCUA6C033 Ue003u#! 5#vC:A 6C$ "x  vC:A6C033 :70 "ؒ!/@Du$!5$p_%"v4#Q0_1<64$ "x p_%"v4#Q0_* 1 64@#40p_%"Q0_@D40PUP\4W.@Dc@ F8K.> QՀB$3 "$~P//h0B\t4Ld| $. !, ١n "pݿ 0 "mͮ0ذȻpݯ p>֔ q* p.Ø !.@B.p 0q2@C112 d OJ "-`>֔=c 3l,p<`0c q,` bȢ@-/*> "#1>0~È<33c>֔lc 3l<>, 4pLc@142c>3:*q,` bȢ@-/*> "#1d>0:c.343l, 4p<`0c *q,` bȢ@-/*> "#1(>0q p֔8@-/*> "#1>p p+ nr"/` gpdݿÔp2b> "#1>03`pp+r"0! p @ ݿÐ "Ґߎؤb@D`p4p#4.04@-/*> "#1>pq "  Ø ɡ<.Ø !.@2.p 0qB@4A1BGc ?: 03@Ne@P4>p#! 0#q#R!)1#X "s q#RJ .q1>q#@"  >ݿߨ  p p$!p n.Ø !.艀@B.p 0q2@C112d OJ ", nNp4Ԓ1 04q4#1)14X 3s0q4# .q1>q#@"M ">D, nP%*ܒ.032!.nԍx , nm bЍ30 nm X= ( 0 DxP  Dxr 5X   "<  `2 -1 } b2- X ( X ( 3̅ $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxndu͔%.l>#X4"# D 9 Ф 4p, X v=ij Ф 4p, X  !0g0,4u nЍm 4L03d5#  0`Ъ`6>`0 023$0 ```bФ1&.!0 ndu͔  4v-p  !00,v-ij 4u ٱnm duȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -dJ, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ١nj ȱ6!<Jmb< Nbd "c bd "c >"A bЍd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd0!X/(230$b0cdX  ,AA p>PU0% pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% nd0t3@  4!4 p%PU0% JAd @ DBDA$9逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$899١nk Ā-x 2j ݭx L 墲 b@bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡL>X@D#"$b@d  B鏤 03#"#d b00CP% n` b0cl bvm cb4! nԍ,1 pPU0% فnh i0j@kPD 1 0b 0_]@9- +  0 x XJp+! 0+q+2!%1+X "s q+2 q 1 q+@"c#c 0@9- +  0 x X p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c-co b1de/4 2p+! 0+q+@ !%1+X "s q+@  q 1 q+@"cW@)cOД 0p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c&-cɁD߈Qang 21i@@ȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) c}ىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#co@+cg@+ y , )p)! 0)q) !1)X "s  q) q)! 1) c9ىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb16 u2 `;bc3!D     ?EFGH I!J"K#L$M&P 'Q   (R +)S%N #  *T $ +U %O !,V "7f?jOU7g8hBo'Z8iBp     @Fs]glnrvAFtxz|B~/.19;%(,)3=*-7&8C5.//91/;./99;<-W=3///1/0-=>C/95/<;3/=CD..0Z2\>-W.05/21[-W-XDCX14_2;;==..30Z42\-X4563^....0Z0Z2\2]6c;;==@kCCAm5b6XX4_@..A0Z2]\4_4`EqCC[GuXXE6c-YHw@kGAm4`6c6dH@k@l`AmAnIy\\EqbIGu[/6dJ{EqEr@lHwAnGuGvJ\\4aHwHxK}[/``IyErLKb/GvMIyIzLJ{HxM``NJ{J|6ePb/QK}NIzPLQK}K~YM[J|LLdkMMNPK~QbNNRLSPPQQMTRYXS^VWWTddNkkVPWQYXmRSqddkkTRRRSSSV^/WWTT__uaVVWWWWcc_RRaSSmm^/cqqTwYVeWWf__mmeauuqqfcc____haayi{ccccjh^wwuuiejf__}aeeoccffpwwhoiyyp{{jhheiifjjs}}yyo{{sphataioojppt}}sopsstttsX/t/X//XX5485,-;,-545,T-+\5<T-6<T-6DT-6dT-6LT-6TT-<4T-8 T-<<T-6\T- T$Header:fpabort.c 12.0$6P$Header:fprintf.c 12.0$7707,88$Header:getenv.c 12.0$8tX8$Header:isatty.c 12.0$89:;l;x@<$Header:malloc.c 12.0$<P$Header:printf.c 12.0$=,=H=d>$>@@@$@xk4A*$Header:calloc.c 12.0$ALhAhCDl\$Header:doprnt.c 12.0$ d'B@[ [<[f[0INFNAN()0H@$Header:ecvt.c 12.0$a `\$@a$`\#@a(@$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$b,> d@d\dx$Header:l10.c 12.0$ e`($Header:mul211.c 12.0$,e$Header:mulu211.c 12.0$Lf4$Header:mulu32.c 12.0$*A7\(;w5^k(f@$Header:rad2a.c 12.0$g|$Header:shlun.c 12.0$D *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2g$Header:spdiv7.c 12.0$BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ hH$Header:tentothe.c 12.0$#]lnKB #}#}#~@P`p$$`0 8n7!819A` cC$N1 6!,  P"p""7l  "*%@pD0$ $"*%@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p *L88+Land p@ bpaL "711B 03D.,22EmNp=2^(0R,.,$  (T (N0>B$Dp=^(.,~,.,`S  (T (N0> B$$5~ؠȪD@0 03Db@Qp 0 p- uQ^(.,1@D7031E;D `Y䤱ݿDDDDD031؀Ȉ7ؐș1ؤؠȪD@PE@DDHD<DLݾ.,RPER^(0R,.,0 p# b@Qp 0 p# uQ^(B?00t0|bpcEdV~" !0,` cES%, D"0,!0,@ T0, !0, D`fDD` cEC "!0,pF0E -0, 'p,!0,` cES, D"0,pF0E 0,p b! "b(p"0-A" @? !ݾ~ =DȾTє*nP.D%70z`p.DPb p2.L%$p 0 . b`%~bcЍ%~ݞ(ݎ,~ "D!/1Јݾ.,؀Ȉ7( +ؐș1ؠȪD@D<DLEE>(02,.,.1s1>(ݾݾDhє/Ⱦd.X$ؠȪD@0z`p.؀ȈDPȞ`bp2b$p 0 . b$~bcЍ$~#.>l" $ "P//& .8ԍd @bpaL` chEhفnPLh=>0 .  !<.>.<T|..dLd $ x (L P T 0 t I T  ` 5 t, < !  8 , 4P`.PxQ#A.h#;N>.x#1.@Q##N>.#>0$.h. ND"@ 1Ȱ1t  1Ƞ0m * c 233Cp ô+c 233CpӐ!2 b@h i0bЍ@` .012314cde"^N>.P0".".@l m0.ԍ@` ^.0112cdЍ"t.č@l m0.ȍ@` ^.0112cdЍ"V. "P."J.؍Dj l0.Dk m0.D^@01N2A3!41.5!bcd". ^^.x".!.̍Hj k0.Ѝ Hl m0.H^01N2A3!41.5!bcd!.Hj k0.܍Hl m0.H^01N2A3!41.5!bcd!1p-H` d0p].0c!.P!N >`C^ $b @o `0^N >.h0$123!g.(@j k0.@l m0^(.012cd!H>,^S>0b5o@` d0>,^.S>0Sc!+.8X@j k0.P@l m0^8.012cd! .<9@` d0^<. c !Ɂlhߊ?,n.pl, nd., n>, n>Ԕ0 0,P, ١nk l0pL@-w圤r嬤嬉k尤嬉d崤嬉]嬉VĤ嬉OȤ嬑p,@/1ȉ<嬑p,@/1̉*堉$嬤変嬤(T (>0!뀑Ē;pL@-5A % "P//0l~|zxvrnj1č0朔 4栔0. <ؠȪD@0栴Ⱦ(DPbp2bD\AhB .@(` b$A(` bb`@ 0 c:.2! .0gtqf` pP@ 0 c:.2!.{t| p' `r2؀ȈIX080 XpU1HpCbN 2p'r"4!ڳ{1t@)0-*>#1>p8pp'r"0!{ p8@ H⚐0bp#408aL@)/1*>#1>{t @ "H . aL>121>@.8p 0q2@112` 0 c: `0`0 P^`P9>$pCԒA 0CqC$A1C,X "Ds@q3# .$q1,>$q#@",", nP%1*ؒ>#1>qnh s4AؐșD@0bA ؠȪ1 0 ؠȪ10 ` ذȻ7e E5GN U J 0D5209b0031010 cp0,tA@p)cp  D80-D80p)p/ /` e E5N 0b` e E5C1AGqAEqA@p 2΅@DI^` E3AI\OBAO1sAD @O1I\@O3ArAA@ODHqADXpU0!bd0$p9o1d v0 !` 0Ve 520:Y20 209b0cp0,p)cpX C2V03H,|209b0cp0,p)cp5  2؀Ȉ10cp& 020D5؀Ȉ10209b0cp  02r V0 20311J2cp 2r2 "1#ND0311<J Y G UD2,D GD!!c 122e@DLp02Jz2s1N, EJi2N U Z n s DS2JL2cp (C20 =2NJ320 -2Np 0  2U Z ns1J !c 122@Je E!c 122@VeEdi!` 0Ve 52cps0,p91S0R 5!cp`0,p)20=o0`d ED G0`d ED G @DI^pL2AA@D1O d H`  Re %? D`0d $1? rA@n@DI\3ANd ABBeEU Z N m Y sA,R0 ?R D`0d $1? ErA@(U Z"@DI\NEn0 R?( D`0d $1?  JS0-0 b0cp 0310=p`0Jd 42Cd!@DLp4104c 122e΅d v!` 0Ve 52tAA209b0cpN0,p91h E s1, ,D20 p,!0)cp,0,`c V QESDp)cp 2pN Z n s DCg20310#!0)p 03I`0cp؀Ȉ10(!p)0312` e E5d@D1V0R`@d 4)2cp5 0)0311031`00Dd 4` e E5p;2@D1C# "1`  Sd $p, "1`  Sd $0 p,` e ΅U Z d n "1`  Pd $ "I`0*h 0V5!u0)` e 52` d 4΄d !` e 52D !` d ΄B!` d 4΄D !` d ΄d I !` e 5Y2Uϐ!` 0Je 5H2!0)` d E@DI^V ( B D H U`c2Pc;؀Ȉ10cp( 02ZbghvZzVp  cp  0 2r V0 2cp 2r110311 w J2cp 2n$N Z n U s2NNJ0:2p  cp 2V0 2r V0 z2BVn2cpz e2D"POO<r8nx,*h @TJr~LJHFDB^\*XVT2$.,*("$ x20.09b0` e E5117 qAE qA@8EoD;  q\;; 03Lp0q\p)22` e E52d ABBTed ABBfed ABB_e` ce 2222222Dx1qnţذȻ10PU10@D100310D80-` b! "pw7brE;E7؀Ȉ10,L"CQ0TB0C0QH2FQ0T0S0Q:2D"B!qH"F!qH!qHA0K0C0Q2FϤB0C0Q210;0Q2"C "1 ؐșDHp)! c@0-0bp b! "brE2Q0V2V &B #pHb@!$"c'E#Q V#A@ b@!$"c'D#m N##A@bqHB0C1050B2A0C0E0B2,[",VG 8 B&Ppnljhfdb`^\ZXVRjLpHDB@><:864n~., &$"  $zN\0 b! "brE EbqHx!@DD8p4104b0!#"7bER]EPU1P Rd IPDR0Rd I D GPDRV菤 P%1!P%1PU1QV0PU1Q PU1Q0VRd I B PU1QPD`R0菤P1PQOR08 ^U(Pn&2pb(N~|z~|zxvtrpXVT104b0!#"bER] E0anh i0j` 71b EB4U&3)P?? > < : 8 6 4 2 0 . * ( & $ "             nf (   T  $  \ * R1zR ,t1m0311s` wb 0311 0311 6 0311 0311)JYs ```n 0 3+ P?? p=R02?1@NBp=01R` b bcD<` b J` b N Z n U s J` b @NBp=0Ҥ2?1Rʐ` b p=R01p=R02?1N s 0311 n ZJ@NBp=0DPU1n0205RN^N mUPJROEBJ` \b 03101J` Jb PJRp=0"2?1` b REBB` 0Cb 2pw1pbc~00'` b J` b p=B01RU  I " G @RJ}N @RS spYlZsaddkn\@R0311EAJ` b J` b J` b PJR0o2?1` b R^EBPJR` @Rb Bp=0n2?1FRPU1p=QPJR` @Nb B0S1'R@RB0H2?1R@RB0=2?1 RU  "wGI{Jwp=N}YmZia n s_p=N J Y a W s J` b U Z n @NBp=0ܤ2?1R0311 d J` b @NBp=02?1~RU,XVp=@NU J Y I8)N Z n U s'PULp0JB)0(031n00*aLB0`2?1 RN I Y 2D J s J` b n Z00311 0(2U Z d HPJR` @Nb Bp=01RC2D GJ@NBp=02?1Rp=pw1@Nj``b pWEU a``b EU PN0L02?1n s%2U Z V0BUc`n V0BH6BCc`d V0B63aa``b B)c`Z N n s B01c`a``b B02?1c` Jb!*"b, j`` b REBC J `  b PT S 0 *aLN /R ,K )` b EBJDI @NBp=0 1PD0 baL0311 0 baL,j2C# 0 baL1 "Lp0p ?10=` b "Lp%0 baL0 baL10p ?10=` db 3 34P??Cd !p /10-` 5b 0 baL` &b @R` b REB` b REBRRRRRRRRRRRRRRRRh!nm `Ъ @RPU7bBD gG@D`Ъ bBD G U Z H d n vbЪ!-"VbR1p -,0,b4`Ъ bEB D Q V bЍ,/1-4@D! an$8 "h 6`f76a030cEVE DFp6bЍ 0`fl030cEVEDFp6. 0Pa "l D0370=E#EJNp3. 0p=<0=p3. 0p=N p3.$ 0p=<0=E#EPa "p W:9`f76ava030cb`EE , " y1191V B Xz:,030#EEy14 z laܤ<4t>~11@1D =!7!w1;1{191:1z11151j8x101 ?!va030cEVdE;w1171, " pF@4x y1191r621r1!#?!z:%(9p pF,}! 01151 g@~( D&m pF@4s)#"& "m|< "`  "1Ĕ pF>0v4`fpF@4p x 03p#!0#@Dp4104r&p\%0,j0p ~4 D&F03p#!0#tQQ4Qr621@Dp4p\3Q QQD tQQ4QxQQ8Q104r1sQ50<q10q11 11u10 w1171p10eda~11>103p#!V0#p ~< jK0@Dp4 "p~D 0104D&m|< "`  "1Ĕ pF>H4`fp p,r6#0,j 0r621p @Dp4p\~L3Q " !PU0%104r1sQbS0,p ~P03p#!0#  &Vq10 u1151j0p ~X j0p ~\03p#!0# &&B r6215pF@$t C$r11@r12 pF@$i11@j0D&T w{!!{;!p ~d jp0p 03p#~h !0#j^0p ~ptQQ4QxQQ8Q03p#!0# EDp ~t03p# tQQ4QxQQ8Q !0#101q10q11"11u10 w1171p ~x }!!=!{!!;!&C 05111j0 pF.cp 0`f "p p&0@ k0 ;9 8d0"=P//&zxvtr$ljX\ZVTRPNLJHFDB@><:864-1!Y  ```A E I O U y a e i o u @0  "p0 "p0 l030cEVE'p p6.`0@Ddp y10 b"y1?DP0y10 aؠȪp 0 !03p0tQ "p0xQ "p0`fp6@?{! {!!;! "p0/ "p0QDP  "p0ذȻp;0xp, \( C0 031@903|0 y1@D1ȴ4,03t0 ~10#030 1@0030 | | ~10 030 9| 6p /vaEE )vaDm vap6.u0 vap6.l0 .b0val6aEEp,:: z ep  03p3.A0y1.:0{! w10..0.č'0w10.Ѝ0.܍0.0~10 .0p;0p, .0.c2c>3č0 c2 bp0y1 "p0y102p y1 "p0y102p y1 "p010191y12Cpbp0{! "w10 "p0a "p0aw10 "p0a "p0a,a`f76axmp,pFq@4pFm@4j 7P@A!@2@29  + - !0 9 `P!P@20 9@ UbPnm bЍ0 nm X= ( 0 DxP  Dxr 5X   ")  `2 -1 } b32- X ( X ( 3(T $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=DxnIdu͔%.l>#X4"# D 9 1x 4p, X v=ij 1x 4p, X  !00,4u nЍm 403Id5#  0`Ъ`6>`0 023$0 ```bФ1.!0 nIdu͔  4v-p  !0Y0,v-ij 4u ٱnm IduȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "*@, ّn|Œj0X* ( (  ɑD qr1s ` *cd]d 1q0 @ml@ ޑC*1CdDd Y0 r?*c |є bЍ+ k 2X*( X ( 3 "(T"& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m , X  r,2 0 2 1 3 ( b4 ١nj ȱJ!<Jamb< NZb d "c6 bd "c* >"A" bЍd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd!X/(230$b0cdwX  ,AA p>P1xU0% pYP1xU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP1xU0% nd0t3@>  4!4 p%P1xU0% ١nk I-x 2j ݭx . 墲 b"bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cQ@+cI@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cdxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c;xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c @+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1 u2 `;bc3!%d) %3.0f%% (%d) longest sent %d wds at sent %d; shortest sent %d wds at sent %d sentence types: simple %3.0f%% (%d) complex %3.0f%% (%d) compound %3.0f%% (%d) compound-complex %3.0f%% (%d) word usage: verb types as %% of total verbs tobe %3.0f%% (%d) aux %3.0f%% (%d) inf %3.0f%% (%d) passives as %% of non-inf verbs %3.0f%% (%d) types as %% of total prep %3.1f%% (%d) conj %3.1f%% (%d) adv %3.1f%% (%d) noun %3.1f%% (%d) adj %3.1f%% (%d) pron %3.1f%% (%d) nominalizations %3.0f %% (%d) sentence beginnings: subject opener: noun (%d) pron (%d) pos (%d) adj (%d) art (%d) tot %3.0f%% prep %3.0f%% (%d) adv %3.0f%% (%d) verb %3.0f%% (%d) sub_conj %3.0f%% (%d) conj %3.0f%% (%d) expletives %3.0f%% (%d) 'T8`\\?$`\l`\`\<\"A`\ X!p+@-A  "4P//fv !.>, \/ 6 (>0 X"`$ݥp->X \/  (pM>\ X"`dMhݯ  l3 1p+}lܔ %p;.t4p @^pp @^l@0  ^N ">01 SX.ؔ ܔ N>.p><  N.vp " /`ɡDߨ!an2!030r 0? 5!  (rA> " 5!030Q0SذȻ40[03,0S4ḁ0lpw<130 8ma`dFu!c`&$h u!c`@$h d tPv!1tA (46a@ma@FbN2,qwr g@p pasqhA'swppw<@ qwr gA' Ae@WP qWP 0a3qirWP YeprUP U@O0a3qiJp 0 @b2.adq(p ` br1>,0 b`r15,d. Np "  "p2pCA0C q#!1#rUP30 @Fpw<@bNW2>p&@D0$  -@D0$@D0d0 p0,d @p=.X"5pLp 0q4@#114b@< 4 44@Dp4@#104  44 qn<ݥ|0ikhh ~_h qH   ki@ qՐ Kr p-<p0' Mp-"0-2)i i' :p-"0-1)i h ! p- p-kiqH<p-p0p-xn (>mx"J, anؐș#X4"# D 9 $ 4p, X v=ij $ 4p, X  !0}0,4u nЍm 4b035#  0`Ъ`6>`0 023$0 ```bФ1<.!0 nݥu͔  4v-p  !0 0,v-ij 4u ٱnm ̥uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍw k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d`, X ( 4 4 nl X< @m , X  r,~ 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0B: 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ!<Jmb< Nbd "ch bd "c\ >"AT bЍd "cЍH !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd!|X/(230$b0cdX  ,AA p>P$U0% ّni j0k@lPbcm X !Vp,!0,s a@)* q<#1 1E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c @+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cuىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cg@+c_@+ y , )p)! 0)q) !1)X "s  q) q)! 1) c1ىȡP??D."  d@qs< 1/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1 u2 `;bc3! L!PpM@ " "6> vJsJ5T6(>$ wJuJb$Tq*03@Xl r*036Xm Ȏ0ؐș5fbgjs'ct\c0#  s7.4 `!(PbcЍ6daLh!anf0>G50,p$ `m  (>  40bЍ[(i hp1@, 101bЍM(i p1@Ű101bЍA(j p1@,101bЍ4( a d!`pc0123#qp,S$ `pb02p,,bpaPh!nl p,@"! `Ъ p<@#10<@# b4 0 9 bnl ' 4@- !4b  4 nl p  0 q<@#11., ١nl m@ "5bɡ<40cЪ4p,'j0*q 1 r<ͺ"@2s<"@`3 bɡ<ߨ1ang pؐș5ؠȪ'5p '"4  `pk b? .`pk q 0r;r,@Mrs *0`fr\bФ1d`,& =bФ1d`pQ0 p '"4 ..036(p . 0@D6q .aPhA$Header:abort.s 12.0$ nm bЍ 0 nm X= ( 0 DxP  Dxr 5X   "  `2 -15 } b2- X ( X ( 3 $ ,L 8 ,(A r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dx``n6Pu͔%.l>#X4"# D 9 x 4p, X v=ij x 4p, X  !0 0,4u nЍm 4 036P5#  0`Ъ`6>`0 023$0 ```bФ1 .!0 n6Pu͔  4v-p  !0 a0,v-ij 4u ٱnm 6PuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "p, ّn|Œj0X* ( (  ɑD qr1s ` *cded 1q0 @ml@ ޑC*1CdLd Y0 r?*c+ |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0BH 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ8!<Jmb< Nb5d "c b)d "c >"A bЍd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd!|X/(230$b0cdX  ,AA ّni j0k@lPbc!m 2pLM@ q,cpLb} )pLM q,cdЍq 1 p 0 bɑ@ є ` cⲤbɑ@ߘAّnj k0l@X:( 0l>r ;8pm*0A ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdm 0 > ;0 b0/ )x m X  0 X ( r 1 *cd|   ɑ@  ɑ@ߘ1p>PxU0% ّni j0k@lPbcm X !Vp,!0,s a@)* q<#1 11?AQ@=!>1?AQ@B(1!0E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cws@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cI@+cA@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .c\xA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c3xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1 u2 `;bcw3!>>>>>> %srdiff3: can't open %s ,Prdiff3: too many changes p ^vTB%d,%d=%d,%d %d,%d=%d,%d 123`l====%s %d: t%da %d,%dc  &%s%s  H diff3: logic error   %da ======= . %s . %da %s .  x$Header:diff3.c 12.0$8 4$Header:exit.c 12.0$h Dplp$Header:filbuf.c 12.0$<6P$v0$Header:findiop.c 12.0$ pl$Header:flsbuf.c 12.0$H$Header:fopen.c 12.0$ ,$Header:fpabort.c 12.0$Tl$Header:fprintf.c 12.0$, "T$Header:fread.c 12.0$XTl$Header:fseek.c 12.0$(DX"$Header:fwrite.c 12.0$Hd$Header:getenv.c 12.0$ `$Header:isatty.c 12.0$H0 \ t,"$Header:malloc.c 12.0$X$Header:printf.c 12.0$PlX$Header:sprintf.c 12.0$ L h77""#L0#R$Header:calloc.c 12.0$#t#Xx%MXd\ P$Header:doprnt.c 12.0$ d'B@=H=dh==0INFNAN()0 h 4 P   ,$Header:ecvt.c 12.0$CH`\$@CL`\#@$Header:gcvt.c 12.0$CP\EdE tE P $Header:l10.c 12.0$ G $Header:mul211.c 12.0$ GX$Header:mulu211.c 12.0$ G$Header:mulu32.c 12.0$ 4*A7\(;w5^k(H $Header:rad2a.c 12.0$ TI,$Header:shlun.c 12.0$  *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2It$Header:spdiv7.c 12.0$ Д0 625# ...600 n̤̝ N@LV.> &`>bm t,z /1͉-Д)b#m bm 1͉Д r 1 b m bm q̔ $ "1-4DPOO~P~|zxbt^4 ّn Lruܔ s)t q b ```bis &w)y qb ```x) qb ```biblДɑ@ߘفnذȻp۔ t-cЍP4-qݔ21͍Tp K@ tqbX b0 ,@ )r ?"ts+@@r"Xr bX  b4\4kq 1 b `i "h $qM "hh>A^@^Dr 0HL1dɁLɁL߈n̝̔ t, @!qҔ q-pݔ``` q̔4 nrԩ ?t2sB@@ r3r$,r$0,, ٱnk l0p=0 q#p  r2ɱ8p30,)X01¤2p=.@0-ɱ8߸!@D@ q4pb0pD@鏤 nԍ rqRbP rbP, , nm K0s-t-0q-s-0qݔ 8q-pݔ```0r-Д !2- "r20@  ""P//Zv0 nl = 4s,43,t,4>4,q,41,s,403,qܔ +q-41-pݔ!14@ 0 3P??xb4 nd l0hhp >bb0Lp > b4! ١nhhp,>|ͮ 8q pZp,0cd|up >Hb|p >Lb|p >pb|p >b|p >b|p >b|p >(b|p >Dbz|ؠͪ Hp,cdj|b|qp,>PZ|ɡ@ߨnl @ QLhhp]>b0u 1bPe6t,008p]>bP(<nPUhh>"b.BbP , ّnj k0ɑPhhp<ۈp#! 0#q# !1#p,{<ɑP0 sZrJp,>8j<ɑPu tsZrJp,>D01X<ɑP\BbNBA*"b."0!B*"b." 1!C*"b."2!q*3!b0ce2bЍ̝   >bdbOq̔ɱ8߸nm Ј~ 0q-X s-X !0 0 0 0r ? !0q-X s-X t-X !0 0qݔ q-X !0pݔ 0!0@  "P//,B* ّni rq3rӍj &ll@Dp40b@ b@ ```1040 q.S  b @2b 2 ```bɑ@ߘ!ٱnm rq3rÍlФ@L cK@cBAL ```M cBAM ```ɱ8߸!ٱnx0l A< 3JP??@L4\"c_l "*m P 2 bō, m r  "*m 2 "p 0q.\$,(m N>p,0!q 1` ! "p 0r.4$+(rm H  "*m [2- "p 0q.$+(Fm "p 0s.$+(1m "hr  "p0t.+"c,l "*6m P 2 b+g(m bɱPߺ "ٱnxؑp,0!q 1` ! "p 0r.G0*4rm T , #)$m [2- "p 0q.0*4Fm "p 0s.0*41m "hr  "p0t.>$c8l #)I$m p 2 b (*z4m bɱPߺ "ٱntl A, "4P//DBXVTR6f$cj l $)m p -0b$(m r,(N>ԑp1q 2b` ! $(m -w0x  $(m ] "p 0q.9) Jm "p 0r.$) 5m "hr  "p0s.\$c$l $(dm b') m bɱTߺ #nl A, "P// FDXVTRn(c8l %(P//HF\ZXVNj(cЍ,m &'{0g p '0q 2bЍ;4̤&'h0g r->.p2q 3r0s 1j`Ű ` ` 8 p` `  0 "p 0q.<(W@vg &'0g   3rs1  18pq'0122D3 "p ;0r.l<3 "hr  "p0s.(cЍkDm &&0g p '0q 2bЍu4'@g bpqXxnl A, "VP//&PNb`^\ c`l '&ndm p -0q 1r 2s 3b*hk'&Xdm r,|`'&Mdm p -0q 1r 2s O3 "p 0q.p'kt:m "hr  "p0r.D cxl '& dm p -0q 1r 2s 3bh'2tm b4 ١nj hp=b0"hA* "P//ZXVTRPxb0%Xk p=2bcTP2 w\jbcTp2 j\] "p 0q.%d&hJk b'R`k p @ "hr  "p 0r.S8p=b0%dXk p=2bc lP2 \$clp2 \&hk bɡ<ߨٱnk AC hDPOO86420.V~|zHm bcЍ% l bЍPB "p 0q.X&4\/l "p 0r.{X&\l `m bcЍ% l bЍP&\l bɱ8߸!n` ^b" P//"0>LZhvb@|Jm b@|Bm b@a:m b@?2m b@ *m b@$"m b@(m b0c@.,m %L m .cQ0b01 231 " "nm @=1 .(xA q 10 nm @ r-  q-r-bЍ00 nl q,p܍blД44 nl Nq@ r-s- p"s-q"s-nbЍir-s-~t-yu-tq-bЍJbp̍D44 nm s-%`pb!00 p200 p0#b0c0```  p200 p0#b0c0```  p200 p0#b0c0```nl m0(wV014! nl m0(w@014! ١nj k0l@ w(m  r:q*s1-23bɡ<ߨ1١nj k0l@ wm  b` 1-2b p" ``` ( &q. r.!v3-!v4-!v5- k(v15-q 5 1 pq+4-1 pq+3-1 bebɡ<ߨ1nl m0(v014! ١nj0@ k k vml 0 3@ /qA   r.8  s. *2 t.{   rKq;u.    q.$ bbɡ<ߨ!ang h0p q.(u|l  B ̴ r.&Ф8 `f`ᠪb@+"1q.jk ᫴ ak r.Ф  1baLh!nm @  " 0 q.`A q-!X !O  r.č"T "O 0 ٱnk l0+uW\m cbӤ1 b<@b1```,uB\12ɱ8߸!١nФPR@ dQ1QR@ bQQ ```03iXbЌm0bЪ# p jq p  cK o  " pqbɡLߨ!nm @  q.qrbcЍ  r.cdЍ̍!Bv"@  s.cdЍ̍!"4v"@ ١nl (t8j qrbcL  q.cdQ5 B6vB@  r.cd=! A4`к  s.cd, r0 v"r1 bɡ4b94 ,s(m  12bɑ@ߘ1فnm l0@ @  q.QqAqA(sxm  i bc @ r.\@  q M1 ikA?    /1  (1 r.b\     1  1 r.D\ bɁD߈!nl @  q.xAܤ(rq 14 nl m0@ @  q.pbЍm bcЍl bЍ7b4! فnm l0@ @  q.[hqAqA(rm  L bc @ r.<@  q 01 ikA 1      r.k< bɁD߈!ّnl m0@  @  q.XAqAqͤ(r m  ] D r.1,P   bc҉F1-A  8 4   ",!cᨐ!c$1- 1  1 1 bɑ@ߘ!فnl m0@ @  q.ZLqqAAͤ(qm   1" 1   r.D1s.  o`o1j1 g1*(1b c @ T @   q E1 t.C <  t.8 1 )1$1   t.  11 bɁDq,߈!   "12  0 @D`210P菤P0 @D`210P菤Pٱnl m0  "1ɱ8 Ȱ̔.c% bcc1.ɱ8 0c!. Pɱ8Pɱ8bcfcc1.ɱ8Pɱ8߸!١nj @ 031rP?? $0:m q*2|m ,$um q* k r* l A  B"1P//,<L\b.m bc%m bcm bcm bcE m bcm bb (oLm   bɡ<ߨفnh rqr͔ q  rLbciP p̔픱 (os 1bxA3 ɁD߈nl p@  /"3NP//LJ(D--4bЍ0,bЍV44 ٱnk l0B+ " v b(kB+" q.c Y UC r.c H DДs.c 8 4Д 6 4 2 0t. 2$Фx+ q" 5@51A"`0  ?. $bɱ8A;# "4P//֤1Ӥ1߸!ّnl0qx mrtq. ɑ@ )pp x+p r.c s.c ɑ@r=0 9@#"9AA3b@#"  Oɑ@b! #b-t20 @#"A3b@#" O ɑ@ɑ@ҤAϤAߘ!ٱnsȔЎtqA q. 9ɱ8rx r. $ɱ8p bЍZ (mK\10-q -Eɱ8q,@A"` !m'\1-ɱ8(m\q0!bK$ "֜p00 nl` d0mbcՎbЍkd!%n e@e ```cc@1n e@e ```cc_@1nl` d0mbc/bЍ d!%nPU֔@D֘hh>0!bϩ "֠p0j$ 0 nԍ, nhl 0 8 \bebЍd.$c#d!&ٱnd k0d>bԣLmbcdԛLbЍxɱ߸!@@nPU֔@D֘hh>0!b`hX .(P ,#Z60#44 nl` d0mbcBbЍd!%nl` d0mbc'bЍd!%no e@01bcdbЍy8h1n` d0.c ,! n` d0.c,! n` d0.c,! n` d0.c,! nd Sm>bЍӒbЍL!nc ., nc ., nl ",]C0֤p=2#b4l A   .8b <403hz0 p-rB!cPk @4p=r3D4 ٱnȍm A   .bЍ ɱ8֤p\>d*dЍ[^ɡ<ߨ!an!d1hAlQp!d1h!'d؀Ȉ֤p(5it1hqӤ6v   cЍVc .#a(tbЍg !0!A < .$a(tp(6v 6 ؐșhzP bЍD 2qbЍg 2AǤ!hp CqbЍč f p!A < .pXp% ,P yє x%Nc dЍc $@PdpXp% x%4cЍpXp% P P rE"0Pc@r%:P x% m ad cЍc pXtE!Pcx%m Dd cЍpXt5AP p(sB#0Pcp(s"bpm p(x"d cЍpxbpm p(w"d cЍXc P pXqE!Pcc pXpXq5pXP rE#0PcNr%br P r1 dp#c $@Pc2 r!cpbpP 0@Pcs13#bbv!a(tt hdpXp% pXp% hAani itp<c֤ppM؀Ȉְv5b /0!3!p-x"d s1  1!`fhzP& p])0@bk P&pMpr 8x$5! d u1 q c pMsD!PbpMtD#0PbvpMwD-q1W c pMrD!Pbelx$4! d t1 : pMs4pMt$_q!np!gc pMwD- pMr442 2 q1r!wD c pMrD!Pbq!:p!3c p-wBr! p=r3P p-qB#0Pap-q"b Zc 0 P pA  c $@Pa p1~p!Ĥ0pM`0b1r14 ```Pv$ PpMv4v# 6# 0@Pa3+/LT 0|cppMe@p(R pu500q T cpde.0q T03hz0 012e*cp@`q TcdeЍY4q TxA١nj k0l@mP "hz " *d bcc !dФP`\"0dP`\ɡ<  d bcccЍ`bOɡ<ߨAnl i4p  .  "i$*p  .,7P * "hz @Dּ+cP`0X4#c$P "ּ403i$ "hz :@D@Dּ+cP_X4: " "ּ4 nԍ =c AA@  .,@Dhz@ ,@P_,,, nm TS0 nm (20 nm #20 nm !20 nl0m@2341 anf g0h@bpc`R'`  mbЍSl jФpqb@"Tt)ᖔ bp  b bk bЍ1+2baLh1ٱnk l0)Em bj1-bS2- @ !```bɱ8߸!ّnj k0@ A+A:5iк /@ , (5 %'&l r*,s r*2,3 r+|s r+4,5 .t $l ba(b\(bɑ@ߘ!nԤ"S  , ٱnk l0 .c A,bɱ8@ ! bm AL=\bbXbcm !(1-bɱ8߸!n` m0 c@ 0! nc !@ , ٱnk  ɱ8@ lɱ8bq"cP0m ,"lVP//>RA }r-ƈ4!r=N82-q-<j1-s+<3-t+<\4-q˔ Wq,<0M5@1-k p̔ Hq,<0M&@0+k p̔8q-<1-s-{<3-t )4 q-p<1-s 3 r-e<2-s-_<3-t-Y< 4-.(cTDbɱ8߸nl {4r,0 q,숀A x03hz0t  q4q,s,Xq,Rr,s,t,Bs,t :b4qܔ q-pݔ```,O.@H>PbdNtCm  ;6 0 $ bc bp3-b`> bc`p3- bjc bp4-bpbcpp4-bЍxxa Xդ"cd l0!% Ɣp!p! $ bc p!px3-b` p!c`pg3-p! bc p!qpQ4-bpwp!cp_p?k4-A= d Alj @]r ?Vt6@p 4&bЍFm`@Ar ?!:.X|32Aq0 *3tP??vz86420.~|zxvtD |b#bba XcH8hٱnȤД0 Zq Wq@<2A  "hcl A1˔6r  q,B11+6r  q,x 1!1+6r q,v P fp 1+b^p1+pbɱ8߸!nm 4bЍ0 ّnj @  3ɑ@qB۔TC 9A  țb+  7+v :6 cHJ @D֐B0(b@7+v 6 A "hr .v 6 .@cЍs t .d?b v 02r:bd v 0#.ԍAbc rJ l A  .bzɑ@q+ 1,r:b' l r:bPl bbɑ@.ix u pݔ```. q= Gxc A+Jj c "xP//^n țߘanm 0 qcb0`1apA.LЍԉk z-pq0` P N Km q1q&4j A A+ ) @   23 @ $4 q;mi2-Ic d43-@4 .00lppfq` ` .lД cp cp``` "idp00p!k4c bk q !idp,s20 dk p,pr"p,0bВq!IbaTh!nl "id qtrr"84p" v  /bm 'A  ,4 Kl    2ܤ 3,b4b0b^ 4 ٱnk @  ɱ8qbЍ$l @ C  b@Hbɱ8b#(d sA  cЍEHd .c@],*t q,04+s+ !Zd s;"d t;"쉀 1,q,(t 1 q,J1,s,D3,bHbɱ8߸@Dp c233ȴ20nm v  Ȕ  0v 6 bЍv 6 0 ФĴ@DeЪRcEp%"T菐Ѵ nl  !4 "Pp   4bAA,`@ p=b0"̐10= "p002b@4 4 an`l q ih r, 3qrp 0ذȻi`fq'_D0&`Ъf&A"` .p;.(pwpx  .@ p 9 Dwg .`cp숀Ј~`Ъbp `Ъ b t"g #cdpSd `Ъbp2!Ij r+g "cdp9j "h bchj A))q)f """hčm bЍ[  #cdЍ j bЍJg cdpj !cdh s, A )g !d "cpd !ch baTh(فnj k0xq]PbɁL@KB1A+`0 r+ @A0 r bɁLD C  b`l iA+0i$l `h cdui q-`h -cdgm @ !A   (h b`d cJi (cdBm c`4h bv`d #c@4i 03 H4j "֘(A >01!bdeG8d rP2 ch cdɁLbX cBxh . ck\ u(ɁL߈!nl C< 3P??`^\ZNVHPNBJB\V< BE#  @D֐B0(b@F7,v 6 GSm  B\V v  ]A  C  w 2 x t 4 y,3-q, $1-@ 1A0 r5 C<3} 6 : r-`  "քbr6 b4%#,4AL "hh>0C<$bu44B\B\ nl m0 F¤ 24! n8!91:A;Qe 8Q91:ABG0@ 9X cPAe .cPSy!zA@ q$zAp$q"!(Dx!R0v%0 FZm  x!A 1-y12=zA@ q3 p$q4 !(Db0A ١nj v  ɡ:86420.(&$"f  BYg ? r'"234 bp0g bpqHbfbqHb[bqH@*3@*x1nl ;K 0 4@ˎ &Ǝ   ! ( 4Q`P T b0c@@04 b0448(4X8 H(4l9 I 8 H4 "QbP#T   { q̤(49 I)4]b04!4@ 49Q`P )4S Ib049 I 8 H 4 b04b04b@4.(clbЍ?̤+4,' "8P//DxvtrX~.,*z~nlfdb`^\QQ1 anj r ŀ?tsAlA>'bba(tr !/2,ba(tr 2 ba(tba(t  ! & ( .cA} @lPk  q 1 (""jP//@fdLv\XVTRPNLJHFDB>6420.vh~&ba(t r r !2+ r r !2+r r, 2 r r, 2 r r, 2+r r, 2+r r, 2+r r, 2+r r, 2+q,rrq-rfb`?Pi 2b`p1+r,07 @ !17 ```r-08`@ !18 ```U ba(trM+c Aiq]rUqLrDr=r,:56!2 "h1!ȑ b`cp>F1!ȑcd`e'Xq!cdpeЍXK0bq1ebba(thnl0mP"{"P//*(xv!?580,p 4I p-@0 4 p 0 40,4 2,3 s r-2,3 $ "0P//Ф p-T4q p-0,1 4p 0 44A nA2C.],r2,T,DPOO ّnj k0l@A-.cЍ 0 2*3 ?0*1 ɑT"`P//ƔH 5r  .܂DɑTɑT o`B0 ɑT0 ɑTȑ0$cde1 ȑ0#cde$  0#cde 0#cde ɑTߘ1ّnx0j i0k@lP)"P//  !pp<0 lɑH!xɑH!p"p 0+lɑH!$ɑH)"0P//" !p"p<0+lɑH!0ɑH|!$8<dɑH)9"P//\Zvt1p3p,0+lɑH!ɑHAbc,\ɑH)"`P// 1p3p,0;lɑH.ۍ=!pp<00Љ|!Љ!dvЉs) l"4P//nl 0 lɑH 0 lɑHя0 lɑH 0 lɑHߐ0lɑH 0 lɑH. c{@ɑH* "P//z*Z>yΔ p ɑH:!T!ߚQ<"nm @  .ڛA=#W.dx0r !0 0 0 t!0 0 0 D !0"LP//ZX qng tA9sAk0@ 4` ur90$t, ! qH!m bcЍ!qH0/` J,.M$(qH2 !m $cd+Vh 3r91b,bpXLbqH` < bpqH` :@ "h" >"de:H m  #ch #cm `b2bdeЍ:( rm bc9Sk 0 E*$c}m $cve > %dЍ: c  @m < %cTm %cMe >(bdЍ9 #m 'c;m 'c4e >0'dЍ9 m &cЍ"m bpLbqHHxٱn k l0m@PDT 7@ .رPTdth 4ɱHph(P xɱHߺ18 n@Ԕ  ,r .&$!" # %&'(., , ݔ ޔ @   ``anȡذȻ̓4 .~X!a4 `fp0 `gʇ3.  &Z\. b`( !cc1c>32 "0&i ʇ4c<.Ȏ  & \. PQ P```Q P . P```Qc0ba4Q. L"P//p.X#. P*!b.""" !b.2#!b."/!a4. :d$ ` g"q 0$h dPJ@AD AdNʔdAdND"B bʒ#C"P//":\2t~4\r4ht<H   2 > J n>< v 42 ,*  | "  , . B f   l | 6HXhv&*0HXj~  .<Xpv4Rntztnh b6^\Z\r>Rfx8p$FXt*D 0"&,<Z&2>JV`lx$zx*8F^n~&DJ^nT|06Vv70 p#03it#`ܔ "hl .(+d70rq#`  .Dhc ^1p'"lV܍MepN.d0t"fxA"`x$(1 "ipwhl؀Ȉ, "֘|p( ؀Ȉh3(c 0706`fhp L 4M0P 03i4 a p'qc53 r"2c .Ԣt؀Ȉ֬` c83 pH4c332 r"1c .HpHp'q481103hz0 pB#0Q@p"b0׉0p'4MFp' 03ht0 .Ѝip'5M/ipW0&:@M\pW0&0@MOpW@D70&M> "h "i4$ %.0tpW0#0@MLp'MM0& "003410&0։0 "ht .00p' 00 bЉ0&p70b00/c '/0&'p7C  .Mp7 "htpw^ .4Ԙ0։ ؀Ȉ0p(!0340zpcӉ0& "htpw` .Pou "ht m.`_e؀Ȉhl "hp0p(0p(kĈL "ht E.p7=pG7'W>؀Ȉq80,'HẌ"pG7'W#؀Ȉq80'HXz̈pp7 "0 3cЪ233hĉ320000 "hv .Љ00 "ht .ӳ00։0 "hvȀ .ӰЉ0 "hvȀ .ȍӟЉ0 "0& "ht͇ .܍s@ A( r 0.0ec0 "ht . NT0Ƥ 0U0&p7V&؈E'0&p7'V؈9'0&p7'V؈-p7'V؈$ 0Uԉ0& "0034Uԉ 0&p'W=܈p'W6܈ "ht .<p'Vp'V "iT`fք؀Ȉip82 .P0qҨp8b0!##pb108"3205Ҥ,20&p1,20&p10p7v6!p7C .`(p't47B .7Bsp'@ h0'7A* "\HCA Z DDDDBb$p"#bp"271#7A8 -c .Ͽ7p''6# "q30 r1pG@ A q4r110pG@7A#q1 76#7v#p'A78 -3c .p'p6؀Ȉq80'HV8̈ "i`؀Ȉq82 .h q82`0b4p511803i`؀Ȉq(# .ԍh q(# c 3c84p5!x1(u0֤ "0pk؀ȈpH`p7`@b2AW0H "0034-n.D0& "ht <..4$-p&pG03r#s3e@ pWG03r#s3  "0! "4a z .0ϊ0։0&7B777p:7 "Tp07. _p'0+0&p'0+c '+0&G 4Hf0؀Ȉhp  .<0# "!.\*dz؀Ȉpwhp GZ 4H)pG 0Z 7'Op7 !G0&p7'=0&p'0p'50&p'0@+0&p7'@ 0&pG'00&pG7' 0& "00340&' 0&7'p$0&p7 (0&p7'(0&0p0G7',0&p7 0&p7'0&p7'@0&pG'00&pG7'z0&p7.x 00&p7'00&'"4op7'00&'4_p'80&p'0& D60& "0034ۡH'0& "0034ےH0&p0p'4L0&p'4 "0034P0&p0p'ITp0 "0034+:X` d0$c\0& "0034+#X` d0%c\0&030@D4$`0&030@D4#`0&030@D4!ڼ`0&p0pG&0sd0&pG7!hdt0&pG7"]di0&pG7#Rd^0&pG7$GdS0&pG7%<dH0& "0034OP90&4010p'0)X(0&p'0)Oc ')0& "hz 7 (@Yh0&0pG7'Hh0&pG7#=h0&pG7$2h0&pG7%'h0& p7&@h0&p0pG7' h0& "ht .͡pG7)h0& "ht .͊pG7*h0&pG7'h}0&pG7(hr0&p7+@hh0& "ht .SpG7,hQ0&M0I0E0A0 =08030.0p'0@l$0& "ht .pG'0}l 0&'(pc '@ll0& "ht .ԍ'(pc pG'Ol0&'0(c ''0&0֤!ءD0& ؙD0& "0034&H0& "0034(؋0& "0034(X` d0$c؜\0& "0034(X` d0%c؅\k0&7't`0& "hz 7 (@hN0&I0pG7'h=0&pG7#h20&pG7$zh'0&pG7%oh0& p7&@ah0&p 0 "ht .pG7,Fh0&`f֬€È'q2`0 .0ʥt'q2p81p7'p"Oxƍ|'+܍̦܍|'˿p7'&0&p7' 7p'{(zpWG7'ժlp'PUȤ0@]'PUȤ0@O؀ȈpH'&Ypc pH'X5. Ɋh-p',%p7' '. "0034'.(!0& "h A 4Bp'Fp'm'b؀ȈpH% "hz p'ٻc pHX&6p'٫p8HWR.<hp0p' 0%bЉ0&p70  b00%c '%yr0&b00%i0&d0 "p2 pd0BdB102Q0։N0֤J0p'0%qA0&p'0%hc '%810&؀Ȉhp A 4ApA bb rp7!  h!0  \ c !  K٤ Ҥ p' zp' sp' l ep' ^ Wp' Pdddd~dwdp!0 p7" ^!0 z"0 tL7A !0 c7" \! V.(p7 D 0 < c / p7' &'0  c '  0&dݤd֤d!0 7" 0ᄂd!0 "0 p'0#0&p'0#c '#0&p07'(ĉ0&p'0#w0&p'0#n0&p'0#c '#^0&p'0#c '#~N0&p'0#uc '#n>0&p'0#ec '#^.0&p'0#Uc '#%0&p'0#Ec '#0&p 0'0#0c '(ĉ0&'0#c ''ĉ0&7''ĉ0&%Ȉ։$pHh@`ٱnȍ|m ȾD>bdЍ4p>bdЍ*>$bdЍ >4bdЍb0@)ֈ0- .DcƳb0@/֌p .\cƜ "p>t  /|/߀d/T//֠/xN`@b"'^ְ0,Nc@2b4#'O֐0-.`  #'@/ք.#'5ذȻ 0+> `0b"'&/ָp<֤N`@`֨p Nc@243`>3p `> `0`/ִɱ8߸anb0@E/| .cЍ4b0@-/ր .cЍŸ "l>4(.bЍtbЍQ0ɱd 3O03`bB|```ɱdHR4o  03\dBb4|bݲ|ɱd߸A'anj k0l@w "0"` 0` "Œ:qk`Fqv@oA72 "hcpј1&A7b#Zh pf`刀( 7 & q+q2 &@߮l ˆq+q2p"qBbߟl +"bbaPq+q"A C+"b%aP)q;p#q"A q3A q+q"+"baPh /-q+q2@p"q @  b0c{'l bh bcd cl \q+q2bЍl +"6b4baP` b2 ^@#(A##(B#"""hsaP3 舀CB33dp4qDσaP$ % .L` bȒ "ht @  .$>Ȥ - @  ș!- ```` bȒ "h#!A  @ ) șB @ ޤ!cS.)0 qKcl +!bF  !b2 2h A)c!#c d%P܉$l 9 h A)c!c A  d-l Aٔ c@l  baP 4< Up  c@l hmbcςaPp1.8 ch .Tc.&p  "^P//VT 6 c~h .|c&aPA7h1n@@ cAA! t 6l cdЍ &t  03#" u  #" v #" p#Dt ͤ Dnm B v  = c .\w "0"` @-2# V"P//jhf`^ ,+ )/ &`@b "h#A = c A-0 cЍc .$#A0.@{0 鏤 nm .04 0q-`   1 r80- . 04 0p-0 ٱnk b l $|p;lp b|N pAp bcK ɱ<߸nP(0P5P5A`@b2AٱnȤ(9:`5 6 >̔0 @!A  r#xp 5 .|>0 @A# r#xp 6 .|Nؔ@ @!A  .$|.؍΁dv ذȻdp;78@  u- C9 9-:-p;9Nؔ u-  #0A.؍i9-:-p;Nؔu 9 8@  R9-:-p;N؉9 9 @u !7- @v !8-7 8 p  3@@d0,x-˟d #0p;#I.`)$[.H].PV .XOє `Ъ b" ͵ ɱ8"6P//lt߸ّn "d0` l,@p L034bD bɑ@j ה ` .c3Hp-034BLc .(H ɑ@ߘnm "p0 4 .4m0$ "d'%ʞ&ʘc .$4 0`Ъ br $ 0 A b0qPc 0 @ A b0HTc 2<4p<.894! n{  #.(00e =#4#800 فn=!>1?AQ@c =1k0q@,(oPm s<Hy,bЍrLb|PӔ&0r -qx )bTx*q bfXm bx\c bЍ`.숀&r q,ӏdm !ɖcЍ`b.X̓m @  !}cЍ`kA-+ h03d8\ؠȪhz)q-Xi bЍFhXc A-? h q=? h P bXc dЍؚlc $@P(p bXcЍEt q(ˁ1!c"`.,xbjp!4xɁD߈A١nj k0A{   "c #d7j ”   b"""hč1+#c@j { bȲc #d >0#e2 > >#deP$ɡ@ߨ!ٱnzM@ pذȻhzP #0P'b@Hu &.l WXd cװc P uM/P'u=HIv 1.l /Xd "d' ( .c}c P vM/P'v=H. eLɱ8ɱ8߸nl   .Ɉd c@d<gl y 6 "hz  Ld .cc yM/P'-4 ǫLd .cy=G4 "hz $c@P'4bH(4 anDn\` lA6`к b`gh 9S@3r0qvx ,bpFx'q" 0!@ D.0!/@0!bph !!@0!b`ȿ$h b D.8o0 .Pf0n` A&`к b`Ȏ1!.dK012nh`@@r=qvBb`i bpԱx C 8Dbpghi A'`к D2b`ɡUi b`ə.hf A69@D7f b` Db`0i @ r&I  ji 2 .t0  " .0 "".0 "#.܍~0a\ "hzȔ @ bCi D Hp 3 0-c $## "Tp02 @p=3#   < p=r1| 203jLp00#p  3@:]<0-x,Ř@d #0D "d'w,ņ@d 88#D #pA0Dq(d #0D$c\#4d}Dq  00#qAlDr ,,c5 < @> @> @> @ "|d >8#A 0 n.Ԕ 21A0 ,ż8d #49>X( "Ŧ8d >#,. V, nД $ .;bЍod #4 $.,$(8LcT-0X.0X/0X 0X 0 @$<T*0(@,3T 00@4)T 08@<T+0@@DT 0H@L T 0P@TT'0XX 0\X,0`@dT "d >L#30 nm .t *1A0 $ĭd #4*\ "Ğd #cЍ4X0.OH0 ١nk j0l@ "pm b0d s=!3-c 4 G@ D@!A  q.s=@Dr3r-v j r q.2 r 3 2 b0d3*b$bЍ$ɡ< "hz  cdd $c@@P!ɡɡ<ߨ1nm 0 7d !cЍX 0A b0xî$d !cЍ@ 0.x 0! nm l0 =@D "r"cЍm r q.̔2 4@<42 C 3 r 4 s,r5 4.l4 bF d d !cЍ4! nm0` d$ +@1A0 (<d !cЍ04.]H0 bd !cЍ0! ٱnk0l@` b̔ A  q-d #c\bcЍɱ8߸1ّni m0j@ jLp q !p   3k 1p 0 0r 2s˔ !013+ɑ@q bɑ@p, q l p 00,1ɑ@ߘ1ٱnjLpɱ8 pqKq>p-r;s b bp:0 ɱ8߸qni j0 l؀ȈphqIq.s|qI s>p(Kqr9#d.sA|s .cp&(rLp(cpo,rbpb£!s9p(o0q uYtIs9p(p,4q p(=@Pp 4q bpr.|s> "pd-qH"P//6l~qHx!nФ)b0 n@Dvw40102b١n`m N@ "z3{6r7>ؔ0 x"#5$XN4$4ݾ .\@ ؠȪ]/ N@ > bЍ`Nj r$@ /j !@``` lrD>$beЍd/  lbcЍ,h>,b}`j >0bdЍd>@bk`j b:lm ! Cp.003:92֔1ݯhdɡd "hh>DdЍt! MxɡdVߨ(ٱnhdp, b ֔p-chh^ppbPVݾpeP ɱ8q0 r0 s@D:9v;w21t% 40>\84u @!184```t%!\!ɱ8߸n>T#"P//(! 0p &L' -pTq ,r 1 /0#0$T pp-0w-v=2 3MpAMpp]2 %s C C2@tAo 26= H0|(0!.T0.&,0 ّn0֔p-O00 0ذȻ !+0. (;+r 1 0 ֔p-)00 0z 9 {  , Ԥ!ɑ@֘!0Ȟ ؠȪ֔p*00 0z 0 b0 . 0,dx  @24!A ```8Kx+. >(B =(;+#.x+. >(B -(;+# >(. yKz[67 #  0M9["ɑ@ذȻX>(. ߘanf ذȻBhdp-8kip 0q2@s112z,g & tx yw͞c C *5p-p 0q2@s112z,g z !aLp-p 0q2@s112z,g zz : #p-p 0q2@s112z,g  yp-p 0q2@s112zy,g  y 뤠0bA "` p-p 0q2@s112zR,g 0bA :  yp-p 0q2@s112z0,g  y "Ip-p 0q2@s112z,g " z brp-p 0q2@s112y,g " zb. ib.c|z!aLp-p 0q2@s112y,g z刏 Op=bp?0qȋtDp-p 0q2@s112y,g z 1 .q.y͞  ```xp-p 0q2@s112ys,g z !aLz!q.z;  ```xKI A8KI ```x 3p-p 0q2@s112y/,g z  x+r!8+)p-p 0q2@s112y,g z !aLz 0p-p 0q2@s112x,g z !aLp-p 0q2@s112x,g zz;xKI A8KI ```1:;Ky0bA 0 #aL+to q^@O0dA  h`xK@X0eA  2o[y%@0d AD  dBOA o2!% "aL ֔p-0 ݮz;?֘.2hAan345|03q1qwqamE@ "0b+A25 '  "Wbam .QȉDw@ m=A:a4@ \/m-a@ 0&" b f n t v qr1q h  Hq!r7 "0b2AФq!!0!p! 0p!ȇ@ "0bA""  c}`ᐪp! p!@(* 0d / ( , = .`  .0c6-u t #@d Ao"0 "'6-"0 )00-.v-w  @"(0 0 ""1 /0 3 0 ٱnPUvE@4#"1$ɱ8b 2 .p=k0l@@+@  ``` w 6 "ht H .$q-ɱ8ܳԤ$ɱ8߸n@03b@"b2A Np$ @bBBLp$ فnv=@#""1؀Ȉ4l@  1@```16=ݏ0 %Ɂ d@D$p 0AɁ d@D@ 6 0* /w 0A* U V26=q$Ks  3 Ls 3 16=Ɂ dH@.4w 0ACذȻ0dADDBp1n0 @_@NE.  6q,Ɂ dp戀ذȻ0dAD؀Ȉ4l,16=w 0 @#dATEE ,16=0b(ؐș00) "( 0 @= 16= Ɂ dp 6N(c&d nHb Ajw v=0h@(fA)! d A [p 6 -Ɂ dl>bdP}b`0 ި}v=@x@Z .#Ƞ1l@CB P I(1E6=.4f`/Ɂ dB O X b o x z bA  @L$16= h* .H-`v=v=@CB16=0  ,+*Ɂ d/Ɂ dw Pd00d.^# A#bA"" B#b+A""MHb;d e5l0dQ0 A#+ -101@#bA""6c!e16=0 @#bA"" 16=0 @#bA"" bA"" 16=0H؀Ȉ4lC @ AC ```ݏ0 P )Ɂ d (Ɂ d'Ɂ d-06=$Ɂ dp p p p p W@#11߈anh i003<({03"{tp@ -n@:0`#A 6 B 6hrhp h|h~hz`fh d,pw0@ bA"" b"+!k@ bA""   .cb @ d , ՈhxhhthvhiiT0iP+i\&iL!iXpw0@:c n q s x .G@:bsA b"+!k@:bsA .,90ذȻhh@:20 4 h0 sh.Dp 0 .X@:0 <U 1\6MCBNwO# "P//4.~zJp@ - .lcs r q)./lr)/ps) /hp)7̍0Д `pIhhp->|u/p)^؍B܍Mk p->duԉ5֠p + "h .$$biQ2p baLpw0/h!nm hp,  X Nq> "hhtФp,slp,  X Nq> "hhtФp,s^pp,  X Nq> "hht_Фp,s:{ bЍp24 nm >sX, 0.cЍB00 nm p-  X .tp-r0 0 n.1403<(xX, n "|ԍn "i{q "րn  "j{a "ֈm "i{Q "֌m "i{A, nԤ!\, ! @1A!```! @@SP1A 鏤 !鏤!mBoSE -@@B@ b@ 菑!1- ?+@  菑1? ?@@B@ b@ 菑!1? - @B $菑!- A b0d p dp```04nm (10 nl m003i|p# p0(104! ؤ@ PUx d_1@ b_%PUxPUx!ؤ'@ (PUx d_1@ _b_b_%PUxPUx!ؤ$@ %PUx _ d_(1@ b_(%(PUxPUx!nl m0-c @ ё!```b04! nm xE!cЍ0 ! dB@A@1 ! bnd "xOOb@cЌsd 0 @ b4 nld m0Z .,@Zbc @A@ de1є@A ix0d!%qnд@ d1Ѵ@ؠȪiXpbcs[i0  b  ```b# p hqxmp !pG cЍ bpqX " pqxpp; "ip0 .0n 8 e 1X0E cЍbPqXx!nl  4ָ "ִp2 r b4ܳ <02 "2 .0s2͍0-q 1 1 _1 1 1 b4 03i8p#!0#nl `m d0@ b@#菑A@ anhhp,>m0 "r >~HȞ\q pZp,0r 1cdmp,cpmsj` ȎT  p,>PmpFp,clqf`p,cltp,>`l "sx~Ȏt pZp,0u 1v 2s 3r 4cdlv pZ@Ep,>lpZ@EC rp,> @?lp,>̍lqJp,cplxj` Ȟ萱  p,>lpFp,clqf`p,clwwj` Ȟ  p,>lfpFp,cl^qf`ya`hّnkji w0 w@ 8Д (<1) i (3l i1ٔp 0 qp 0 qp+p 0 q0)q0 qq͔bɑ@Ĥߘ!nl 4wܔ p=(ߘqnp-sv   pK c $0+pr p9@ "hh>g@p9@ !0 ( g A#q3(g r 2 ,bp,h p)0d pI c C$d c 7$ l bp,h p)0d pI cp $l bp,h "c@[ $q9 0#bp,q90#xq ,q 1 p(p"@4 bp{,c "@0 $p8 0#bpf,p80#qqq 1 p(p"4  "cp@  $p80#p(0rbp8y  pK c $0+qHqHxٱnȔ ɱ80,c pbФ0@PA^@^D0HL1eɱ@ɱ@߸nԍ4hz, nД bЍhqݔ```0 ٱnȔ ɱ8 "h sON֘p bЍ/ v bhbЍhqݔpT0ɱ8߸nm 7$Q ֘@M.>(0u=t-",0u-"00vMu=t-#B40t-##80tM>*U<#80tM> *D<#80u-e@c t-D0t-"80v]qEpDp5rUpUp3t-SCH0t-"L0u-"P0t=0 #&Tu-"a00u-"W00t-ilp=/X0-0D$POO"~~2:Xb0 nm $c qN@A @ ё1@A ```0 ١nj k0b"l д,`Ъc 0#c pC;@A!01 ```Ѵ bɡ<ߨ!nhԐh 1>d0 221# .d.d.`203֘!2, nqB@ r224r2qBr2>`0 1CN\21ddn0 rC@ 1$rC.X2B 2#N\2B1$.\12``!nm v bflt-IbЍfl\\0 nL}є r L<1Ҕ 2-!L4Q ١nذȻippД 0Q!q 456p0ɡ<ߨّnk i0l@mP "h ؠȪhhp >bbbqy b0q$p >bbbF(i j 45ʤ6 + &"(8P// 8*(bcЍ,6*#cЍ, 6*bЍ_06*q`bɑ@ߘAٱnm t ɱ8s-3-t- 4-r ?:bЍP[m bЍS c )k q-|l bvcЍEq+*1ˉ2mbЍ*m  q͔ q,1,p̔s  " @    bɱ8߸١nj k0b 2!3@l r!1@m 2QbcdЍ*r!`c #>01!*deЍc %@Pɡ Hߨ!ّnj k0l@mP@ #r ? s*t*cdeЍq*}tbdɑ@p 0 bk bd s;![3+bm bd s=!H3-q*d c:d $c@@PH|bVd cЍ c $@P/|ɑ@ߘAank @;3 .Ir A۩ ?ͤs+q0d.bd)bФ0Ah bФ0:i k b` cdf bk b` bcdd c@d`f bФ0j b` p!qB cm bd cЍl kp!prp [b` qG cn` cde4,l p "bm b`` cdLd c@dC4,l b}` cd`1` cd(d 4Ll@pwpbAb<b7bKbaPhang t7@ !A  r.sהbЍ'l bЍ!d #caPAb0)l b0"h f bЍd c`m bd cЍm 0 &$bf bd c`c d4-m  ޔ2bk bd #cdj bk bd cPc dH܉4-b0i }k bwd c,c d$4-m Ab]k bWd c c d4-m  b=k b7d cc d4-m bf bj bk b d #cd #cd c`c d4-bL bLbpLp!aPhnl m0 P24! ١n@2Ĕ4 rCr5 ```. 0;b` 2mp-  D  r ɡ ّnj pb} ɑD@ &r ?s+@ . 0$c@Pl s 30 bI4i :8c d %@QD1H3-ixi4rH/ּhhp->NN$VL ݿ cPd p->0ULp->4ULɱ8߸!nm = 948c 0 tA@A0 .cЍ6<.cЍ.< 0 v 6  t40 فnh i0j@kP ݿ cc~hhp->Uj cd p->U[ cd c@l bc  i  i4ݟi$ݯȍ/ּ z/ !m "ixp20 p cp```001D2 R3-5͔ "i$*v 6 bcd $ "h# bЍ]d "i bc>hɁDɁDhhT߈Qn "i4̔&zi$p , " "^ kc # "ּ*AP4 "ּ "Ĕ 0!1@/߸߄`b p" b2 4p-% 4%  "ּ*@44 nm -/.cЍ 8h "߼uc bЍA$ "߼ec դbЍ/"E\P//bЍ@0 n03̔0 "!`0b"1@<m ix bcЍHp̔ "|&G 4 فni i4p-% 03|.$zp-p 0 $ "hz sI#0PɁDs)ɁD%ɁDq9 Pc @k A03i$p# 0b) q;0 rȔ)$ .G. "q;0 r.D/є .h$ Ѵb"߄hp( H0(4)-؀ȈؠȪi,p* !0*#/i0p*p7+<03i0#21+`к i(p- !0-7+ p !5@ c "߼02p" s"r9 r qv !|7-pr Fqv =ؠȪibЍ!v 6 A q #Xc #e1-p #G B  p #;P bЍ<p "hz sI#0PQɁDs)aɁDщ "߼y߈03pC"""h`$0b@an "l>IStݟpw ؠȪp pqBAC8 c . xv  f8 ؍;b><}(( c@ |ޘ,bp -$?qw8bA }8Az,Hp w8b@|XAH}8,0C5p ˆؔx( q"@A" .,cوq( @A" .Tcp xpUpذȻip+rKքp lpǪd r ; b0|2p+$>*cp@c@p b p+*cp@tp c uS0cECfp+qr  "i pJ q- BC1`0  ;;pJس "|J "րJ "iX "jXݟjHaPYp Vp Sp Pp hn "l>G p=q, B p=ȳ 4 n֐p  bA<p ( 4 nm A-"23hĔ0  0x- qB@!A$ r$RLc q- @AA@ r"RO= Hd p+c@@ T4 "Tp0pzݔ ^qmb`D8CAvb 8 E$=w6 ܕHd p+c@@ #4yVwFC6p+=#(@ 4F$c>d p+>,Npzݔ 4q-x” -pLp+3 dg< " chhc .}=@p$Kdbɑ@d p" bcd+m t 4 "h sMrD "hh>@Kdbɑ@ߘ1nm0 bЍQ0cЍHL  . cЍ{ 00! nm C .{0 b007c u-$5-0! nm l@04:A C   q-/40C-  4 <.cЍ{Z4A b0c2- " b(1-49q-r .(cЍ{+441 nl m0 Jb"WP//~N"6%429 '4&- "h& "h4"4 .c{ .zb4! nm C    .cЍztB  v-`  6  .,cЍzt-h 7-0.LcЍznt0 nm B    .cЍzPv-`  6 0 .$cЍz800 ank l0m@B   .czaL`b #,$یlf 8k0Ƥ!T1&p|ؐșiP  `pj p* !<`pk 6+`pk6+v+@7 03h!@7+q*  !8+8+x+@9 03h!@9+q p q&Il 1.$yI!4+C5p* rd "c(Dh !d !cDh @45 03h!@f4+5q t+Ad q6#D1&q|H`b Ͳ!k *`b p!wj ` bt" c #dDd !cDk @  23aL03h!@2&3aLbp#`pj-Bkh1ّnj k0l@ؐșpٔ ,L$m 10q p- q m iФ,5$m 1p 0 0q ,($r 0122-ɑ@ߘ1an<pp->G0p-> G0p->G0p->(G0p->8G0p->HG0a>X!M&r|q "քr 0I@DؔA PUi>\R!MgД !r<0 p#0s g0є 0;g00k0c 0bp̍JĔؠȪpphqה wwM>tbL - 0 p*>|GY0p*>GR0p*>GK0p*>GD0|]AM}= ,0b9 8A-Ȟ"""h5c p*>G0p*>̍G0p*>܍G0p*>G 0}]p*cdG0޽, "քr`fi (0Hr    pdbcЍL4 0 p*>F0p*>(F0p*>8F0p*>HF0uXr80bd9O 7)"h4 p*>XF0p*>hF0p*>xFz0p*>Fs0rXp*cdFk0޸bppwIĔpp*>AFW0aah@Fn@DhBbN03hb4p803hb4p8nm "h .cЍTbЍ "hz ilp,ipp= 0,0 44 n` d0 c<,! n` d0 c4,! nl0 m bd cЍ4! nm 1A 0 A0 ne @522A5 6$%uEt5P05 %0@B0$0@6048AA5C "m A  """hčd s=!H3-b0 5b00@0.vs0 nl @ r ? s,m t,-4!4 nm @MCr ? s-(l t-(,4q=0 @ !A  r#4D E u- 4.t, 4 qng @72 .u gh A q'1(Ӟ 2( 3(A+"dP//0.q'ry ذͻhp-` ؐșj 4P ,&D q'r" %r7IЌ$ Q 2bp((bqHL q r'  ș p-'!0- r! q'r r7bdE,sr'1)2 r 1 ```#b"""h10r8lp b04+CA7.u280rGp-c0<(‰¤p-`csSrCc1@ qGrDr7p-*Dr7p-0Hbp(bqH"fP//zxnx١nm j0k@0l `0b@ 012bc:02 b0"b!012 ```bc:~ɡDߨ1nhP :hp-D/tp-:)  ֔p-Ic1>02 ɤ@p-44! n̍Ghp-Cl 03tp-@B$.sb(p-9p-c@B$ .sM(44 nc ̍ , n ͤ0, n@D֘ ɤ0a, nl m0 "h .cP g b|8d #cpd #cЍbc@ b|蔐 b|b`|aLhٱnk l0%0cm p 0 {cbɱ8߸!١nl @<3 .md0s,kcqm t,cjj bЍk bc bT!A  p0bЍ k b c b:p!4@ b|Jb?hbɡ@ߨnФ0c0p!3@ 0 ani j0Z aT1A 0 Ydi baTD p 0 "h0m {'s93baT!A 'p 0 %0vm {cbaT@92 3 ݔ4 .lPr `? p 0 blaTp 0 btaTA)0,m s)cak A{t)cWl A(bЍ{bmebЍ{Ym\bЍh bc &@Bc b!bЍh bc &@*c b p '0 bЍ_1!bY0!bSd b`p1c q!bЍZh bTc bNv.abЍDh b>c b8bЍ2h b,c &@c b#]lnY ###88888999(989H9X9h2bbЍg bh b d b`cc bpp 0 vK bck bЍg byh bd #cuc bpTbЍg byh bd #cWc bp6J bcl bЍg byyh bud #c)c bpbЍ~g by[h brd #c c bpqbЍDh b>g b8d #cpf bFg b@d #cpd "c`c bbЍ'h bg bd #cpf bg bd #cpd !c`c byp 0  bcl bЍg bh bxd $ckc bpJbЍg bh bxd $cMc bp,p J0 bЍh b|c b!A  bh ba h %0@vh bЍlcp  0 . c`j-bxbxb<,TbaT & "{P//fdjh!فnm @=3 .j00r ŀ?s-lcpi t-cpj btl btd bck bl bd bcd ('cty&p!3@.|b;4b;4bЍ;4ɁH߈ٱnm l0 "h .cЍEp@=2bЍ0ɱ8bɱ8p 0 r 0?# ~"}ZP//* bbЍM8hk bЍHuXc )k q-w*l bw$cЍLq+w|@1qM@1A$`0 rs-A0 .hY!uTXc )\k vc dЍ\l.8hpbɱ83j4a.@hɱ8߸!nl hS .cE- 0cb,0$S pA "hh>70p!9A8ٱnl @<3 .hx0t@ sLr ? b@cЍTqT@=1A%`0 6r3q-@/A0 *r'kb@c1bc1p!3@ :2U> #eЍ1$p!3@q,vb9ɱ<߸١nl @<3 .g "h .cD_tsLqT@W1A%`0 PrMq-@IA0 DrA0kb@c,1-p!3@30bc1p!3@ r ?"""2b9ɡ@> #eЍǔ3, s4,bɡ@ߨّni j02b 3!3@k s!1@l 3Q 0bcd-s!sc #t>01!*der!3@ɑPߘ!ّnj k0l@mP@ (r ? "͑Ds*0t 0bcdeЍq*ub8@ɑDp 0 btm bs+xd s=!3-btl bsxd s A4.,cBp1&cЍ%<r0 5v  24bdЍ_b0Nb2dЍ cЍ<&cЍ< B-c<; 24bdЍ]. r)c$%.Pc4 0 r9bdr)ċcQ.xc@dbs7ɁH$ "4P//Nd~CI߈!١nj0k@A2B2̫r2Cb"om @ 00?L$hb,@ %bЍɡ<;;?"dh bbЍɡ<ɡ<ߨ1ang 0qAb"؂͈3r ? "h p1.@Qpqt' q45&pqs'r2&!d .c@7t  p Ф0Cx)|q44 "h pqs7r3&!d "hh>2 s7.(@t -q+ &@1+A B q"qd0xc s!3!pՔ pqq7@A!  )1!.@aa`!) b01!1q 22pqs'0q q!q0{씙pqq7#p~܍l 8c#t bq{@74C 0 A 1bpOq!a`hqnm @=3 .b3r A ?ͤs-q04 bЍ4 b0zph b0spi ptj botd c}xm botj botd bc}xc dЍ}xqm botp1q3lp1psp +botq7]p botj bЍotd bc@GbЍpwpbc@Tbq bl bqLxnl m0ݫ@ ے ;cЍ41 qni p qHA+`к  qH@;3;r b*"?#4t@Ls+B/A\dкED )@BC&rBJD?A tR@EBAUdкED 032 r 2trr'rc122,@;3r ?t+@A rs᠍oTb20@;2 r boT0 bqHxnd00,! nm d0$0kbЍ0! nm _RbЍ.]01 n` d0 ^c1,! nl` d0mbc4DbЍld!%nlo `0e@mbcd4'bЍdd1%ndl o0`@0Qbcde4bЍ`hA'ٱn\k l0o@0Q1bcde3bЍa\ɱl߸Q)nl` d0mbc3bЍFXd!%nlo `0e@mbcd3bЍ)Td1%nlo `0e@mbcd3bЍ Pd1%nm 4Vc1>02 Ȥ@AbЍ 0 nl 00@ b114p!e0Ѥ0@ 0 p!Y88nԪ82@Cb@>,1 nl 0@ 1 4p!!0Ѥ0b1@ 10 p!88n>`0#4>`d0 l,, nN\ԳM "h"MBBcЍ5\0 ٱndk `0l@mPU|>bd2 _>dZpbbЍfɱd߸1'nld mPU|>bЍ2_bЍGd%ٱnk 0eb.ժ2mv-c 0 q ɱ8p30l (6-01ɱ8߸nm 0ebЌ.2#" q !0p"  0 ٱnȤ`b v20 60 pb0/c0 e ɱ8߸فnj B  C*>.]1(C*Ųr`b 0.=2i͉b E r t  s3D2A  s3ɁDp"  ()02t  s3A 6 p5-pɁD߈ّnl m0B  !C >.\vs-rb q ɑ@p"  k 601bЍkD(4+bɑ@ߘ!nm0`b 0-2#" E  r 4p" .\l4! nv"Ԕ q,p" .\K,! nq@`b 0-L2#" E  r !4p"  4 ّn`b ͒  v t*pkYb.hjpb.hi  ɑ@ߘّnŲl0m@ؠȪ  ɑ@*t D  r  s ɑ@p" i T*t023ɑ@ߘ1R " 鏤!"t D rs鏤!p" 鏤 ٱnȤ-t p.Xb ```tɱ8߸an "Pؐșp92 adؠȪԤ *pt*qsʴ @u,gDt*4qt,nHt*+q.> [Lt*q@L DPOO q̴sʤ **s .Zsq̤ *ؤЎ˔ш@ щє ```v,p"p"-P v,q"p"$P v,r"p"P  Tݺt,IXTݺt,<Xxvpu pp(p"P  T ݺؐqu p t,XWݺؤ QщNu,P E T@ݺu,P  Tݺt,X*ݺt,X !*@  "bP//(dr q̍\ *ؔЈ9p9|x`д0؀ȈpwfЪbbp"p`l  Hcj#C A r 1s#K 0uʔ -s *@ !@ t,sC( q r( b r s(r"  bcЍ # xq̔ s t)fvl cЍ t)fkd s*c  xѴЈ^| 3b"b* )u=b0-" #b0."?#t-f>i c t-f3c t*d  xϤэsq l* 1p:x +`b rp ut'fh c t'ec bd :xsq l@ V@LHOђєшs,qrp /bp  %Z|qt'tBRpY cP2b: r#"T bp [QpY鉀gppӍ:|s "Pr2b:ݲI 4@`@c #AE *@L.4># x:|s x:|s x:|~shٱnm Јɱ8ɱ8Dɱ8 ɱ8q-s-t-ɱ8r ?0 3P??|q-s-B  vC-`>ɱ8bЍ$k bЍ̔ A  WbcЍ^(r2ɱ8s 3 v;0 C @r2p30```ɱ8qݔ 0q-Wpݔ```ɱ8.T,ɱ8@=C DPOO ɱ8߸١nm t-Xs@;4[q+Xs+ XC++ Y.ɡ Gbcl s @ 3 b0 5A  0bcs  r 2r022s `0 2ɡ<.Tɡ<ɡ<ߨ١nl t,@s@<4Oq,@s,@C,+ M.ɡ (bm s ذ@ 3 b )A  $bc?r 22ɡq-(s- (B  4!C > .bЍmj s ذ@ 3 bЍ:l bcЍC  r2r 2s 3 bЍ(p̔ɡ<(ɡ<ɡ<ߨsB@鏤 @1A0 !ّni  ɑ@s)@24 .Rs)q"0s)s"0s)C ܔ Ԕ P, t) ɑ@qq@ Zq)0s)0B  PC)> J% Hr9bDj C)!t 4 vڔ 9 Ԕ $qMr9C)I0 s  s 3 s 3 qMr9C)4s  3 s r 2 pݔbY0pɑ@t) ɑ@q~q@ :q)<0s)70B  0C)> *% (r9Dt4vҔ qMr9C)0  s 3 qMr9C)4pݔb0pɑ@q)0t)0sbd " q)0s)0ɑ@b0ɑ@ " b0r9C bDv" s3p" ```ɑ@b0r9C baDv20 r2p30```ɑ@q)0s)|0t)w0ɑ@r ?  "FP//q)W0s)R0B  C)`к>ɑ@r9Dj C)!t 4 bd A  `s)r2bHs3ɑ@vڔ NqMr9C)0  s 3 qMr9C)4pݔɑ@qٔ 0q-0pݔ```ɑ@.Pɑ@@9# "jP// ɑ@ߘanj h0aLsq=Ps=bPC  Ԕ bL]|Q=xS `Pb B@ @ QSt( aLqq@ gq9bPs9bP}|q xp Zbp"f-͆uHc@?S2N4.C9@HC*r9qHC& && /t(^2Ll cp0t(^'Lc bd( xP C91 qHr94>9""T2)qpbcEPpaLt( aLqQq@ gq9b'Ps9b!P}|q xp Pbp"f-͆9uHc@?S/N4+C9@HC'r9qHC#60t(]Ll cp=0t(]Lc bdU( xP C91 r9qHC>9""T2)qppaLq8Pt8bPsq9bPs9bPC M|A x@ b@"c-30 uS_U qSr9S  ""T2)aLA@b, Qͽ|s)r xb"f- 8u,/"3C9@,#/r)q<2+r,*(qbc0 ؔ b\L4(t,\L3(rT2v xv xaL Ԕ=|Mx5`c SP u C)@r q% aLq8bPs8bPt8bPaLr ?0 3P??iq9Ps9bPC ]|QMxT bP"c-30 u r q30  ""T2)aLQTb4, 4=|s)r1Mx4`0b RP uC)@r q% r  b0aL14aLͽ| x mb"h-xp .u'/")C)@72%r)q72!( t'[Ll c{0t'[Lc bd( xaLqؔ .q=b PpݔaL.MaL@8C DPOO :aLu8?|Su8?SԈTԈ8h!nD̔ &vܔ qMr0Qbde@> 01Qbde@bЍgD<<And >bPdbЍB0 ne >b@DbЍ"0 ّnj 4*m s >0bdP$ybq:0 d >("0s 1beЍ\bɑH.HF9 d ذȻ>db6bd 0MA  q *?d p b ">tbp b "p 0 b sZ">x@$bsɑH5 uɑHߘ!١nl v ɡ@< d B, "\P// &$" ȾC  ȾȾ єЈؠȪ>be bЍiذȻ0+bp b "Wp 0 C\ ~bP"P//2b <~b "> @O Zb w\">\@B Mb y\">l@ 5 @b ,">| @(@&w\  +w<*he p b ,"> @(@&y 0 b y\">@ bЍr$ɡ@ɡ@ߨٱn4m .cЍFdЪBk+ ɱ>bN}qB0d12 3beЍ`b&d+ɱ߸3nl A m  .cD(A x #$bЍ$4 anf @61 .E|b`1!x& ppؠȪذȻ Sȑ hpᇪdw$  v$rB>b30 s"rB>b)0xdy$  x$rB>bЍ0 s"rB>bЍ0p b "0cCe0p b "p 0 qRA ?q& &c .,Dq&@ rB>dbЍ0 rB>hbЍ0p b ">lCeЍ0p b "p 0 p b qA">x0a0|cx&ؠȪذȻhn̔% . <.$<.D|p=01d0e0~@. ,! ne@2NNcq,1 nd0>],! n$4>B,>7,A nl mP= >  4b0c@(d >b  >bdЍ >$b 4A nԔ$C" B!BB "l>, nԔ$C" B!BB "p>, ّn` j0k@#cL:bdPm .cЍd`i p . Tp)p2bЍ~,5>bЍr,)>bЍf, "i>BbЍU, . cA0b0! nd e0 "l>4,! nA2Cw.Aa,r "*",r "6", "t",03(p0q1b0,03\b0,03d0(p0$Dp0$Dp0$Dp0b0,DΐPOO4Ll* ٱnk l0` pKq> "p$  r> "pdD$` s> "pd@D$ɱ8ɱ8߸!nqRpBp> b, qnm cЍl w}pq> "ldqX r> "ldepqX   "l> d q> "ldt>ؐșpp bu>p bdwy=ؠȪֈp b@0 v.>4!823p*cH<  w.>4!8x 2cp01b1H ``` s>p)dp/qXx b5@qXbcpDqXxx Rm01p*cФH<  w.>@4!28xp!r12qsA@00s s>p)d p! b@p! b@ ```p!q2!3x01pp*cdpi<  w.=4!8s! rqps>p)d qXm  r s>p)d b@ b@ ```bcp3DqXb1%Hxanf 11g@!dq|p,cP@ q.=x!j45p,cФH  r.=a!S npb 8q !r'"h8s>pp-d` qAt>p- ad$b`q1!dadr'"hs> "pd` q bЍadbq1ad c023p1p,HQ  r.<!rt10su! ?bp"""hs> "pd` mt10u t> "pd [ bЍd ```sr!4!523p,1d  r.s;r8qb`q1:!dadpr'"h5s>p-d` t>p-d ad0r'"hs> "pd` u! t t> "pdC  bЍ ```p!c|adbhQanm k0q=..i4p ؀Ȉlp(>$ rp(>, k.8G.@A.P; "hx .h/qM@ Q c@yDi p(>d :qM c@hDi .cܷqM c@XDi qM c@ODd .c.qM c@9Di .c܈)p(> Ei ؠȪߴ0p(>d .čܽp:.̍a0 p(>ԍ Wp qM@ R c@Di .cC.ܒqM c@Di .c-qM c@Di qM c@Dd .cL "hx .]. Wp aLqM.(c@.XؠȪ|p:d0ۆ$.5p:.d0x$p:.@o$qM@ p  p:..p:.,9(p  L:dBbE$ u@;4 .l;s+r0 "i$)@Di,!0:@Di0#40 @Di(!0r q+wB!cpr q+A B q" @ rB#cppL.t;$rqxذȻip*&` f u t&HJag u&HJWc bpèp* P C@` g w' HJ7k v'HJ-c b~y' HJk x'HJc bcp A  q)@A" s r*IHl s*IH|c b6p^ "߸ Hhi t-Fc b "hx .ڷ.ڱs=.ԍ(.܍ڤaLh!n033 @D| ˍ "Ԫ#4 , nqSpCc~,! nd0>j,! nd0>V,! nd0>B,! $Header:abort.s 12.0$ܘ "anh !1l0?0`pw0@dyA``` +  -0@ I?@N nAAF f:p12r1q!a4@A a&AN nB(C)p12r1q!a4 N i n .  0  9  0 +@⑁!,d]  p12r1q!a4 e  E @bAb Ƞ TȠT Yb* c  b1, jb u! =b  !,c!,cys /RE t!c 43%uc4#4!//!/Һ`{3|4`  b `+Д$tQs1 ሐzdPe00 Љe - `PM5`0]4=31 \P4Q3Qs! 3!` ;%[%ܱ(*2,1.00mn.4&!6'+  sa c Ţsabc4!& !$8&bcg yp Š@`Ib24`@b2T@Ep p!c 8!q q!c 7!r r!cx 6!5q"RQ P@!cEN@10B! #!LB!1#@J! HUbY!d!44bP!b!"H4%!Rd : :QTb!b!"4Rb!b!RTb !b!"4R R  T`Yd6 `Pc( $6 P44 Őa`bcˉ(g h!+ٱnl0 !"#$ &!nb'sbcЌ ]d $# Ű ɱH߸!nm bЍ 0 nm X= ( 0 DxP  Dxr 5X   "x  `2 -1 } bu2- X ( X ( 3 $ ,J 8 ,(? r=X -AsM;0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnu͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !0 0,4u nЍ@m 4035#  0`Ъ`6>`0 023$0 ```bФ1.!0 nu͔  4v-p  !00,v-ij 4u ٱnm uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "ԍ, ّn|Œj0X* ( (  ɑD qr1s ` *cd d 1q0 @ml@ ޑC*1Cd d Y0 r?*c |є bЍm k 2X*( X ( 3 ""&Z 4X*( 1X*@l@qJKl@&1*c 3d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m ,U X  r,t 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@!i bɑ@r w ɑ@@ a0B0 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ!<J!mb< Nbd "c byd "c >"A bЍed "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd d!|X/(230$b0cd IX  ,AA ّnj k0l@X:( 0l>r ;8pm*0A+ ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdm 0 > ;0 b,0/ ) m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1p>PU0% np2Д0002XB   r20 q"0Ad  0 0-0 pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% nd0t3@  4!4 p%PU0% JAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$鏖c ( $Header:lmul.s 12.0$pPU0% ١nk -x 2j ݭx . 墲 b"bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡ1?AQ@=!>1?AQ@B(1!0E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#ce@+c]@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0c+s@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cI@+cA@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1 u2 `;bc3! -------------end of expr-------------- 8 NBasic blocks with first and last slots ---------- %2d. %d %d Slots and expressions ---------- tag pointer vtype vclass vstg vleng ADDR memno memoffset istemp ntempelt varleng TEMP memalloc istemp ntempelt varleng EXPR opcode leftp rightp LIST type listp %2d. ---------- End of showbuffer ----------  ( h(%2d) %d %s %d %s 08@HPX`hpx     ( 0 8 @ H P T X \ ` h l t x |                         ( 0 4 < D L T \ d p x  %s %d %s %s %s %d ISCHAR ccp= %d ci= %d cd[0]= %e cd[0]= %e cd[1]= %e %s %d %s %s %s %d memno= %d %d %d %d %d %s %d %s %s %d memalloc= %d %d %d %d ERROR %d NAME %d PRIM %d --- not implemented %s %d %s %s %s %d opcode= %s %d %d LIST %d %s %d END LIST %d showexpr BAD TAG= %d at %d ͼxSELECTIVE OUTPUT %d. NULLIFNGOTOLABELEQCALLCMGOTOSTOPDOHEADENDDOARIFRETURNASGOTOPAUSEASSIGNIOIFNFRTEMP----NAMECONSTEXPRADDRTEMPPRIMLISTIMPLDOERRORunkARGAUTOBSSINITCONSTEXTINTRSTFUNCTCOMMONEQUIVREGLENGNULLPREGunkPARAMVARENTRYMAINBLOCKPROCNAMELIST----PLUSMINUSSTARSLASHPOWERNEGORANDEQVNEQVNOTCONCATLTEQGTLENEGECALLCCALLASSIGNPLUSEQSTAREQCONVLSHIFTMODCOMMAQUESTCOLONABSMINMAXADDRINDIRECTBITORBITANDBITXORBITNOTRSHIFTPARENunkADDRSHORTLONGREALDREALCOMPLEXDCOMPLEXLOGICALCHARSUBRERROR$Header:conv.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:conv.h 12.0$@AG$\"Lp 8)`H*"*X H`\ `\$T3`\,3`\<3`\<4`\ .(P`\  `\< P3 `\$T3`\<`\<43 `\,l2 `\,43 `\   X`\fRETURN statement in main or block dataalternate return in nonsubroutinelgassigned goto variable must be integerl$Header:expr.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$h\h)`hhii,0)pijinvalid complex constant"*X*`\O>@O@O<`_A/c<~ # rwiK^tvuge_`agIJKQPO-+RTSVUWgIJKQPONMgRTSVUWIJKfgpvu76?>,"dm"23%1IJK?=CE&HYn[\Hg,]X9>)*58eb.=^HYgtfvsd ospqrHHwY z~H{HHnmlHHHHkjHh1ffffxy7432-0IJKQ+a   HHHHHHHHHHf !|>}bFgcGs 0 H1::*$HZ)!  "#&'$%(H/ 6u5Dg98H<\H:ZHAHQPyO@NMLK<0IJKQPONM/RTSVUWIJKQPONM,RTSVUW *o.qd!hijkl ;0'2;ZB@ [4L6$IJKQPONM(RTSVUW IJKQRTSVUW    8-IU=FZ%B.7DHC"! W#(&9:;15)X@'E+Y>T RA3VJ?GSIJKQPONMRTSVUWgIJKQPONM RTSVUWIJKQPRTSVUW]gx{|} gggggg4gg8-U=Z.W9:;1XY>TR3V?zSgIFBDHC@EAJG&>1 8<LiW#<(-\   |ki <  D i [6pLo>#ql4_pt- XwL`Ei^G7AA4qT4lg K11  iqqqT44Wa@N@?:5"T44 TYS   2 1%&".$ 9360  '8*#5-(/~+&}sbURQBPONMKF^E@!GGGGGGGHHHHHHL.//IIIIIIIIIIII  ,,,,--MMNNOOZ00SS[[UU\!WW^]]__((``PPadbccee RRfTQgghiFF>>CCCCC7@D??<<BEEAAAA===111111111666522233444;;;;;:::99888###$$$$$$$$$$$$$$ """"%%++++++*&&''''''''JJJJJJJkjjjjjjjjjjjlmmmmVV ))KXYnoooooooooooooopwwwryyyttqqzz{{{{{{suvvx &=F-)C,:"%$(+6*381A2./0;E5@# 7I!D?J<B'49-OOOOOOOTVTGSKSUK  QRKSOKKOKKKMKKLSK[KKKSUSTUVOKOKSLSKKTTKTOKHLOSTUZYXWV\^]`_aLLOSULOOOOLOLOLOMLS QRK  KQRKOLNOLLOLKOLLOOOOLOSLOROGLTOSSLONQRSTUKNLMLOLLLMLLLLLOO   !"#$%&(n    9nnnnni      -r     ./012345678     !"#bj'KMN@ , b%FFFF  nS?SCEG`<BDF_qtx|}p^*(+,0*57:; 12FF S9URIcLAO  =yz\'-./&349+>Hdfhkl):vu{)*6=?A*TVX[ZJaPQ s~]Wegm;w8CDEY[ @(#)yaccpar 4.1 (Berkeley) 2/11/83$Header:yaccpar 12.0$yacc stack overflowsyntax errorstatement cannot be reachedlabel already that of a formatunclassifiable statementlabel %s already definedthere is a branch to label %s from outside blocknamed BLOCKDATAmisplaced entry statement () argument listname declared as argument after usealtenate return argumentSAVE statementSAVE statementPARAMETER statementDOUBLE COMPLEX statementCHARACTER statementAUTOMATIC statementSTATIC statementlength specification *nlength must be a positive integer constantlength specification *(*)INTRINSIC statementequivalencescan only save static variables%s redefinedtype undefined for %s%s set to a nonconstanttoo many dimensionstoo many dimensionsIMPLICIT statementimplicit item must be single lettercannot be a namelist namedeclaration among executablesoverlapping initializations.EQV. operator.NEQV. operatorconcatenation operator //substring operator :substring operator :concatenation operator //no backward DO loopstoo many alternate returnscomputed GOTO list too long"( "L"D"0 "@l#d$dX"tl#DX#*)ph(*kP\hHH)h)<1)x)|/.\)'0%@$%($%((@&(|&%(T t$Header:init.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:io.h 12.0$datan?ratan?datan@atan2Aratan2Adatan2BsinhCrsinhCdsinhDcoshErcoshEdcoshFtanhGrtanhGdtanhHlgeIlgtKlleMlltOepbaseepprecepeminepemax eptiny ephugeepmrspfpexpnQfpabspUfprrspWfpfracYfpmake[fpscal]r_intd_intr_nintd_ninth_ninti_ninth_dnnti_dnntr_absh_absi_absd_absc_absz_absh_modi_modr_modd_modr_signh_signi_signd_signr_dimh_dimi_dimd_dimd_prod h_len i_len h_indx i_indxr_imagd_imagr_cnjgd_cnjgr_sqrtd_sqrtc_sqrtz_sqrtr_expd_expc_expz_expr_logd_logc_logz_logr_lg10d_lg10r_sind_sinc_sinz_sinr_cosd_cosc_cosz_cosr_tand_tanr_asind_asinr_acosd_acosr_atand_atanr_atn2d_atn2r_sinhd_sinhr_coshd_coshr_tanhd_tanh hl_ge l_ge hl_gt l_gt hl_le l_le hl_lt l_lthr_expnir_expnhd_expnid_expnr_abspd_abspr_rrspd_rrspr_fracd_fracr_maked_maker_scald_scal     sqrtexplogsincostanasinacosatanatan2sinhcoshtanhtimpossible intrinsic constantgeneric functionintrcall: bad intrgroup %dbad number of arguments to intrinsic %sbad argument type to intrinsic %s*\/H*X))p)x##+<h+ #P"t̪P\intraddr: %s is not intrinsiccannot pass %s as actualintraddr: impossible f1=%d #H΄$Header:io.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:io.h 12.0$@DLPTX`dlt |Όunlabeled format statementbad format number" p,lϲbad end= clausebad err= clauseiostat must be an integer variablef_backf_rewf_endimpossible iostmt %d"*)p|#PTlLinvalid control %s for statementunknown iocontrol %sP"thillegal positional iocontrolillegal * iocontroliocontrol %s repeated*:no I/O list allowed in NAMELIST read/write`Ԫattempt to i/o array of unknown sizenon-left side in READ list'0( H.*+,-T/ldo_liodo_fiodo_uio*\׮+ attempt to use internal unit array of unknown sizebad unit specifier typebad unit specifierbad REC= clausebad format descriptorunformatted internal I/O not alloweddirect list-directed I/O not alloweddirect namelist I/O not allowedufln$)tbad unit in openbad file in openbad reclf_opendf_closbad unit in close statementinquire by unit or by file, not bothmust inquire by unit or by filef_inqubad unit in I/O motion statement#(2non-character control clause*|ioseta#zimpossible inquire parameter %sn2\0Ttoutolistoutolist#punitfmterrendiostatrecreclfilestatusaccessformblankexistopenednumbernamednamesequentialdirectformattedunformattednextrecbadoffset in iosetbad offset in ioseta .align 2 LCOM.%d: overlapping i/o fields in outolistoffset too large in outolist .space %d $Header:lex.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$T0Jincludes nested too deepr%s/%sr/usr/include/%srCannot open file %st# |x\(Himpossible lexstate %d(h#P8illegal continuation card ignored"vnondigit in statement number field˸unbalanced quotes; closing quote supplied%dH too big"nunbalanced parentheses, statement skippedNot a Fortran 66 keyword: %s"tT\ht!# %$'( &)*$+0,8-D.L3X`4h6t5|7I9:;<=>?@ABCDEFG IJ W(X,[4 <D\HaL]P_T^X`\YdZfunctionname %s too long, truncated to %dbad bit identifierinvalid binary characterP0(K)L=M,O+Q-R*S/T$P:Nassignautomaticbackspaceblockdatacallcharacterclosecommoncomplexcontinuedatadimensiondoubleprecisiondoublecomplexelseifelseendfileendifendentryequivalenceexternalformatfunctiongotoimplicitincludeinquireintrinsicintegerlogicalnoneopenparameterpauseprintprogrampunchreadrealreturnrewindsavestaticstopsubroutinethenundefinedwriteand.or.not.true.false.eq.ne.lt.le.gt.ge.neqv.eqv.$Header:main.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$bad debug number %dinvalid flag -N%cTable size too smallinvalid flag -i%c invalid flag %c arg count %d%s: Bad parse, return code %d missing END statement#P#x\jPjb$"LD,vtː|wcannot open intermediate file %s#Hwriting errorfloating exception during constant evaluation"P( @(#) FORTRAN 77 PASS 1, VERSION 2.10, 16 AUGUST 1980 i/o error on intermediate file %s $Header:misc.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$,L.p@t  B too many digits in floating constant"ɜ namesP#L statement numbers  illegal branch to inner block, statement %smay not branch to a formatillegal label %s"@" ~external symbols `improper use of builtin %sh"t *lzH0/hd\.|out of memory#R(T0123456789abcdef$Header:optcse.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:optim.h 12.0$ *** IDblocks *** idp= %d idaddr= %d initval= %d assgnval= %d nodes: %d *** VALUE NODES *** p= %d opp= %d lc= %d rc= %d rs= %d is_dead= %d n_dups %dtag= %d opco= %d parent= %d dups: %d deps IDs %d \lH|T|Rsamebase#`\<\33`\ `33`\<\334  THdscantreescantree8D#xhTTEMP in prunetrees - cbb /***|* h\!B%d common subexpression use%s eliminated (%d definition%s) ss$Header:optim.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:optim.h 12.0$""<H"d#2s_stops_pausSKtypeputoptP#Th)tlld%&$%l%&.&v&H*'l'TD'-----optbuff----- \8@4( T)p*)s_catL*\*</*|+\buffmnmx#+ -rbuffpower: bad call#$Header:optloop.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:optim.h 12.0$0`0lookup#18H1unmatched do in code bufferinternal error in optloops%d code motion%s performed s\8#\2@3T`3\4O6: l-value expectedO7: l-value expectedO8: subprogram expectedO9: bad tag value7;ɔ`\, #?<X=non-TEMP in assignment to be moved in optloop*/>>6movefrtempHL$Header:proc.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$>missing end statement"D>DO loop or BLOCK IF not closedmissing statement number %s""tj?| `H@Z.MAIN_MAIN %sMAINBLOCK DATA %s: $\pAJinvalid entry nameexternal name already usedlh"A entry %s: hlC)pl*lDretval#EF .using .DATA%d,r14noncharacter entry of character functionmismatched character entry lengthscharacter entry of noncharacter functionl/||.IDId.data 1local variable %s never usedadjustable dimension on non-argumentadjustable leng on nonargumenth"@H(Lb.data 28LĈMM%s: may not appear in namelist%s: ,.pOcommon alignmentadjustable array in commonQ_BLNK__ incompatible lengths for common block %sPQfrtemp#*dR0automatic variable of nonconstant length#Smktmpnadjustable lengthtemporary variable of nonconstant length*XT0DTZaltmpnLHTTmkaltmpnadjustable lengthmkaltmpn reusing offset %d mkaltmpn new offset %d V _BLNK_%s cannot be a common block nameVincompatible common declarationXVincompatible storage declarationsincompatible type declarationsWlengtypeincompatible type-length combinationXincompatible use of intrinsic functioninvalid intrinsic declarationunknown intrinsic functionY>invalid external declarationinvalid external declarationYonly variables may be arraysonly last bound may be asterisk/\Z\ .data .align 2 .globl .oVpcc .globl .oVncs .set .oVpcc,0 .set .oVncs,0 .set v.%d,LCOM.q.%d LCOM.%d .globl .oVpcc .globl .oVncs .set .oVpcc,0 .set .oVncs,0 .globl .oVpcc .globl .oVncs .set .oVpcc,0 .set .oVncs,0 %s: .space %d LCOM.q.%d .globl .oVpcc .globl .oVncs .set .oVpcc,0 .set .oVncs,0 .globl .oVpcc .globl .oVncs .set .oVpcc,0 .set .oVncs,0 %s: .space %d %s  $Header:put.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:pccdefs.h 12.0$ < PQLSPURQTFF: h@>; MB`|` putex1( p ) *Xa>/+ aza*ab4imagpart)x)p#c6Lcimpossible element in concatenationT"d"putconstputconstP*Lp#,`\<\33 fP$Header:putpcc.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:pccdefs.h 12.0$gPδD@gfseek failedfseek failed 2΄#h:hbhhhh putif( p ) non-logical expression in IF statement*"*  i`i br r2 | putbranch<iij(computed goto index must be integer"pj putx( p ) putxputx#HLHd`xp)p,*\T#xnputop*/qrputpower: bad call$stleftp ) adjustable character function putcall( fval ) d\X,putmnmxJd( ^TrB%s-.DATA%d%s-.DATA%d$Header:regalloc.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:optim.h 12.0$(H*regalloc: bad data sent to getaddr# regalloc: bad data sent to getvar*regalloc: lookupaddrregalloc: lookupvar4*SKtypealreg-1missing dohead->nullslot -cbbSKtypealreg-3p#T,-0`|48<)p*|D@Plt|pHregalloc:scanvars4#regalloc:scanassignregalloc:scanopeqregalloc:countrefsregalloc:countrefs(regalloc:regwrite zFN&n/\regalloc:appendassignVPBXunmatched enddo in code bufferinternal error in regallocgarbled doqueue in regalloc regalloc:pushq: DO statement expected regalloc:popq: empty DO queueregalloc:popq: garbled DO queue$Header:stab.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$0 .stabn 0x%x,0,0x%x,%s .stabs "%s",0x%x,0,0x%x,%s  < .stabs "%s",0x%x,0,0,0 \ .stabd 0x%x,0,%d  .stabs "MAIN:F%2d",0x%x,0,0,L%d .stabs "%s:F%2d",0x%x,0,0,L%d entrystab has no nameblock .stabs "%s:F%2d",0x%x,0,0,L%d p#hcvV .stabs "%s:%s",0x%x,0,0,0 /* don't know how to calc loc for stg %d*/ ",0x%x,0,0,%d ",0x%x,0,0,%d ",0x%x,0,0,LCOM.%d ",0x%x,0,0,%s + %d ",0x%x,0,0,-%d `hp| writestabtype .stabs "%s:t%d=r%d;%ld;%ld;",0x%x,0,0,0 #Ęcan't get dbx basetype information"addtypeinfo%dT%d%dT%dar%d;%s;%s;missing length in addtypeinfo for character variable %s%dA%dar%d;1;%s;%d##Hunknownaddrinteger*2integerrealdouble precisioncomplexdouble complexlogicalcharvoiderror$Header:machine.c 12.0$$Header:defs.h 12.0$$Header:ftypes.h 12.0$$Header:defines.h 12.0$$Header:pccdefs.h 12.0$ 8AAƜƢ get r3,4(r2) |dbl rtn(goret) get r2,0(r2) |dbl rtn(goret) lm %%LOWREG%d,-64+L%d+LREGSPACE%d+LOWREG%d*4(sp) | epilogue brx r15 |epilogue ai sp,sp,36+L%d+LREGSPACE%d |epilogue .data .align 2 .ltorg .DATA%d: v.1: .align 2 .text .align 2 | fix it so it works.DP%d: .long .DATA%d<,$ǖ get r15,%d(r%d) | move arguments put r15,%d(r13) | move argumentsL%d: \ %s %ld .short.long: .long L%ld b .int 0x%x .int 0x%x,0x%x `\dE`\4Ȯ .long 0 .long %s+%ld $ .align %d r .align %d  casel r0,$1,$%dL%d:vaxgoto:puttting out .word .word L%d-L%dlϨNget r15,$.long(L%d) | prcmgotoget r15,%d(r15) | prcmgotoci r2,%d | prcmgotober r15 | prcmgotob L%d | prcmgotols r15,0(r2) | prarifa r15,r15 | prarifls r2,4(r2) | prarif - DREALo r15,r2 | prarif - DREALa r2,r2 | prarifbe L%d | prarif - REALbc0 L%d | prarif - REALb L%d | prarif - REALb L%d | prarif - REAL CONSTb L%d | prarif - REAL CONSTb L%d | prarif - REAL CONSTb L%d | prarif - INTEGER CONSTb L%d | prarif - INTEGER CONSTb L%d | prarif - INTEGER CONST`\-T#`\-T3 `\-<`\-$b_%sLCOM.%dL%dLCOM.q.%dmemnameh #L .lcomm %s,%ld ~packbytes#`\<`3`\@2`\ d3`\ D2`\,`3`\,@2Τ$4(DT .long 0x%x,0x%x \hxȈȔȠȨ .globl _%s ,"hX^H .ascii "<%.8s>" .align 2 .text _.MAIN_: .data.globl _MAIN__MAIN_: .long _.MAIN_ .int 0 | profileingb _.%s .globl _%s_%s: .long _.%s.text_.%s:.text b L%d .textL%d:.data _.%s:.data.globl _%s_%s: .long _.%s .int 0 | profileing.text|-----------------| %.8s |-------------------| stm %%LOWREG%d,-100+LOWREG%d*4(sp) | prolog ai r11,sp,-16 | prologue ai sp,sp,-36-L%d-LREGSPACE%d | prologue cal r13,L%d%d(sp) | prologue ai r14,r0,.DATA%d-_%s | prolog cas r14,r0,r0 | prologue .using .DATA%d,r14 | prologue sts r%d,%d(r11) | store argsprolog ai r%d,r13,%d | set up arguments cas r0,r15,r0 | profiling bali r15,mcount | profiling b L%d .ltorg084#$**)tۘ۞DLP .long 0x%x .short 0x%x .byte 0x%x .dlong 0x%x .dlong 0x%x%08x .globl _.%s .comm _%s,%ld .space %d .align 2 _%s: seek error on tmp fileread error on tmp fileseek error on tmp fileread error on tmp file%s: .space %d $Header:machinex.c 12.0$$Header:defines.h 12.0$.byte 0%o,0%o \ %s H .space %ld p%s: ܼ4τpPH$Header:atof.c 12.0$L$Header:atoi.c 12.0$84zH$Header:calloc.c 12.0$4 ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$T$Header:dknu.c 12.0$t`$Header:dknu16.c 12.0$˜͘ $Header:exit.c 12.0$ά4$Header:filbuf.c 12.0$͠x͈>&͔$Header:findiop.c 12.0$ά4X(H$Header:flsbuf.c 12.0$<|Ϡ,$Header:fopen.c 12.0$@@ ː$Header:fpabort.c 12.0$h0$Header:fprintf.c 12.0$Δ,˸$Header:fseek.c 12.0$,μH,$Header:ftell.c 12.0$0$Header:getenv.c 12.0$lӸ$Header:isatty.c 12.0$XhtӴDn 4dH $Header:malloc.c 12.0$ψ\$Header:mulu32.c 12.0$ϰ0$Header:printf.c 12.0$p$Header:shlun.c 12.0$$Header:signal.c 12.0$,0ͼ$Header:sprintf.c 12.0$T($Header:swapround.c 12.0$BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ τ$Header:tentothe.c 12.0$ $Header:ungetc.c 12.0$TpHͼl$&ҔҌӨ$Header:doprnt.c 12.0$ d'B@Ҙ0INFNAN()0τd$Header:ecvt.c 12.0$`\$@`\#@xͼ$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$ Ҍ"""$Header:l10.c 12.0$#\$Header:mul211.c 12.0$ #$Header:mulu211.c 12.0$l*A7\(;w5^k($0$Header:rad2a.c 12.0$ *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$$Header:spdiv7.c 12.0$#]lni  ###8899@  X Tn7!819A` cC$N1 Q,  P"p""7l  " @pD0$ $" @tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p 88فn!+q#> m  ɁD "2@aeЍ  a  ɁDbЍ ~ذȻ@`j 0b`m'=Ԍ ґ0:b0  !ɁD߈!ank l0@ cpw'(> YD!6Hr,>, i\1!̔Kp,@ؠȪ- AؐștؠȪذȻl 034485 7 62qampP0q7@#1O17RLp 0 p  0 Ab v x 򒱑Ĉp,@- ؐștؠȪذȻl 034485 7 62bpP- $ q! d Hpђ 0q7@#117bpP- bc- @!1- ```0c= @b A(1= bs1@T cp0v!w1-@d ADD  !1- bt1@T ?bФ0X 7@ b A 0bc@RS!P p dA  1@RS!P@:b,A nd0e!>n,A ni ],O,A ١nj k0l@mP*TP  ɡ<t bcdeЍɡ<ߨAnl!,A niyd0>,A no R 0 000  ZPA ner,A na,c@dPE,c r ,A ١nj k0l@mP y" DP//zrPzh`*f P l Kr Hw EbcdeЍɡ< s 3@ a ɡ<*7 !bcdeЍg !ɡ< n g  ɡb ]bɡ@ߨ1nl m0  4@-g| @-_| A x w 4ѳ @-H|  4ѳ!4! nl  @,#x  @,x  @,x b4 23  " " $"RUpP%%2420*,*("$"  鏤!鏤 nxp bs-t-$p 0 @ zs!@ang h0 " .c7dp ipb$+#f p&@9 ᢑd p&` `b2,bj0`b P:bк# aL baLh!nm bЍ M0 nm X= ( 0 DxP  Dxr 5X   "  `2 -1{ } b2- X ( X ( 3 $ ,J 8 ,(? r=X -AsMI0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnu͔%.l>#X4"# D 9 | 4p, X v=ij | 4p, X  !0 0,4u nЍm 4 f035#  0`Ъ`6>`0 023$0 ```bФ1 @.!0 nu͔  4v-p  !0 0,v-ij 4u ٱnm uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*cs |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -dd, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@/i bɑ@r w ɑ@@ a0B 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ!<Jmb< Nbd "cl bd "c` >"AX bЍd "cЍL !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd!|X/(230$b0cdX  ,AA ّni j0k@lPbcgm 2pLM@ q,cpLb )pLM q,cdЍq 1 p 0 bɑ@ є ` c/Ⲥbɑ@ߘAp>P|U0% pYP|U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pP|U0% nd0t3@  4!4 p%P|U0% JAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$Zl鏖c ( $Header:lmul.s 12.0$pP|U0% ١nk -x 2j ݭx F 墲 b:bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) ccىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cU@+cM@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1 u2 `;(A1wA`@v1b0! :!?u!` 9/8!A! 1$A(,z1`f8&a0y1& Z0x1&S0ҙbi@0 bi@0 ``` 1# t Ȁ hi /qVr` 菰! " 'i`bͲҙz!c`! p:10 0 # 0 bi@"" %bi@A"2I bd@"0 A 2b!#ev&@"0 qbg@"0 ```) @0cbC! ```b db@414@49004!'p &@0 bi@0 ```4ch@A33X de@D0 Q 2bc 3! &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); } *yyps = yystate; ++yypv; *yypv = yyval; yynewstate: yyn = yypact[yystate]; if( yyn<= YYFLAG ) goto yydefault; /* simple state */ if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0; if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault; if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */ yychar = -1; yyval = yylval; yystate = yyn; if( yyerrflag > 0 ) --yyerrflag; goto yystack; } yydefault: /* default state action */ if( (yyn=yydef[yystate]) == -2 ) { if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0; /* look through exception table */ for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */ while( *(yyxi+=2) >= 0 ){ if( *yyxi == yychar ) break; } if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */ } if( yyn == 0 ){ /* error */ /* error ... attempt to resume parsing */ switch( yyerrflag ){ case 0: /* brand new error */ yyerror( "syntax error" ); yyerrlab: ++yynerrs; case 1: case 2: /* incompletely recovered error ... try again */ yyerrflag = 3; /* find a state where "error" is a legal shift action */ while ( yyps >= yys ) { yyn = yypact[*yyps] + YYERRCODE; if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){ yystate = yyact[yyn]; /* simulate a shift of "error" */ goto yystack; } yyn = yypact[*yyps]; /* the current yyps has no shift onn "error", pop stack */ #ifdef YYDEBUG if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] ); #endif --yyps; --yypv; } /* there is no state on the stack with an error shift ... abort */ yyabort: return(1); case 3: /* no shift yet; clobber input char */ #ifdef YYDEBUG if( yydebug ) printf( "error recovery discards char %d\n", yychar ); #endif if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */ yychar = -1; goto yynewstate; /* try again in the same state */ } } /* reduction by production yyn */ #ifdef YYDEBUG if( yydebug ) printf("reduce %d\n",yyn); #endif yyps -= yyr2[yyn]; yypvt = yypv; yypv -= yyr2[yyn]; yyval = yypv[1]; yym=yyn; /* consult goto table to find next state */ yyn = yyr1[yyn]; yyj = yypgo[yyn] + *yyps + 1; if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]]; switch(yym){ $A } goto yystack; /* stack new state and value */ } #] lo6 !###9 8 / dimensions m *a* kg *b* sec *c* coul *d* candela *e* dollar *f* radian *g* bit *h* erlang *i* degC *j* / constants fuzz 1 pi 3.14159265358979323846 c 2.997925+8 m/sec fuzz g 9.80665 m/sec2 au 1.49597871+11 m fuzz mole 6.022169+23 fuzz e 1.6021917-19 coul fuzz energy c2 force g mercury 1.33322+5 kg/m2-sec2 hg mercury / dimensionless degree 1|180 pi-radian circle 2 pi-radian turn 2 pi-radian grade .9 degree arcdeg 1 degree arcmin 1|60 arcdeg ccs 1|36 erlang arcsec 1|60 arcmin steradian radian2 sphere 4 pi-steradian sr steradian / Time second sec s sec minute 60 sec min minute hour 60 min hr hour day 24 hr da day week 7 day year 365.24219879 day fuzz yr year month 1|12 year ms millisec us microsec / Mass gram millikg gm gram mg milligram metricton kilokg / Avoirdupois lb .45359237 kg lbf lb g ounce 1|16 lb oz ounce dram 1|16 oz dr dram grain 1|7000 lb gr grain shortton 2000 lb ton shortton longton 2240 lb / Apothecary scruple 20 grain apdram 60 grain apounce 480 grain appound 5760 grain / Length meter m cm centimeter mm millimeter km kilometer nm nanometer micron micrometer angstrom decinanometer inch 2.54 cm in inch foot 12 in feet foot ft foot yard 3 ft yd yard rod 5.5 yd rd rod mile 5280 ft mi mile british 1200|3937 m/ft nmile 1852m acre 4840 yd2 cc cm3 liter kilocc ml milliliter / US Liquid gallon 231 in3 imperial 1.20095 gal gallon quart 1|4 gal qt quart pint 1|2 qt pt pint floz 1|16 pt fldr 1|8 floz / US Dry dry 268.8025 in3/gallon fuzz peck 8 dry-quart pk peck bushel 4 peck bu bushel / British brgallon 277.420 in3 fuzz brquart 1|4 brgallon brpint 1|2 brquart brfloz 1|20 brpint brpeck 554.84 in3 fuzz brbushel 4 brpeck / Energy Work newton kg-m/sec2 nt newton joule nt-m cal 4.1868 joule / Electrical coulomb coul ampere coul/sec amp ampere watt joule/sec volt watt/amp ohm volt/amp mho /ohm farad coul/volt henry sec2/farad weber volt-sec / Light cd candela lumen cd sr lux cd sr/m2 / Money / epoch June 16, 1980 Linns Stamp News / (Wall Stree Journal; Manfra, Tordella and Brookes, Inc.) $ dollar argentinapeso .0056 $ australiadollar 1.1460 $ austriaschilling .0793 $ bahamsdollar 1.0300 $ belgiumfranc .0352 $ belizedollar .5500 $ bermudadollar 1.0300 $ brazilcruzeiro .0201 $ canadadollar .8628 $ chilepeso .0303 $ chinayuan .6780 $ chinadollar .0278 $ colombiapeso .0218 $ cypruspound 2.8500 $ denmarkkrone .1814 $ dominicanrepublicpeso 1.0000 $ eastcarribeandollar .3900 $ equadorsucre .0375 $ egyptpound 2.1910 $ fijidollar 1.3000 $ finlandmarkka .2747 $ francefranc .2422 $ germanymark .5647 $ germanmark germanymark greatbritainpound 2.2970 $ britainpound greatbritainpound greecedrachma .0233 $ honduraslempira .5200 $ hongkongdollar .2040 $ icelandpound .0034 $ indiarupee .1285 $ indonesiarupiah .0016 $ / iranrial ?????? iraqdinar 3.40000 $ irelandpound 2.0860 $ israelshekel .0219 $ italylira .0012 $ jamaicadollar .5950 $ japanyen .0045 $ koreawon .0017 $ lebanonpound .2939 $ malaysiadollar .4635 $ mexicopeso .0439 $ netherlandsguilder .5140 $ newzealanddollar .9870 $ nigerianaira 1.6000 $ norwaykrone .2057 $ pakistanrupee .1015 $ paraguayguarani .0081 $ perusol .0037 $ phillippinespeso .1360 $ polandzloty .0300 $ portugalescudo .0204 $ saudiarabiariyal .3003 $ singaporedollar .4684 $ southafricarand 1.2825 $ southkoreawon koreawon spainpeseta .0143 $ sudanpound 2.1000 $ swedenkrona .2391 $ switzerlandfranc .6064 $ tanzaniashilling .1400 $ thailandbhat .0500 $ trinidaddollar .4300 $ turkeylira .0204 $ uruguaynewpeso .1158 $ ussrruble 1.5600 $ russiaruble ussrruble venezuelabolivar .2329 $ yugoslaviadinar .0600 $ zairezaire 1.2300 $ zambiakwacha 1.3600 $ mark germanymark bolivar venezuelabolivar peseta spainpeseta rand southafricarand escudo portugalescudo sol perusol guilder netherlandsguilder peso mexicopeso yen japanyen lira italylira dinar iraqdinar rupee indiarupee drachma greecedrachma franc francefranc markka finlandmarkka sucre equadorsucre pound britainpound poundsterling britainpound cruzeiro brazilcruzeiro ruble ussrruble / rial iranrial / PDP-11 baud bit/sec byte 8 bit word 2 byte block 512 byte K 1024 word tc 578 block rktrack 12 block rkcylinder 2 rktrack rk 203 rkcylinder rptrack 10 block rpcylinder 20 rptracks rp 406 rpcylinder rftrack 8 block rfshoe 8 rftrack rfdisk 16 rfshoe rf 2 rfdisk / Trivia % 1|100 admiraltyknot 6080 ft/hr apostilb cd/pi-m2 are 1+2 m2 arpentcan 27.52 mi arpentlin 191.835 ft astronomicalunit au atmosphere 1.01325+5 nt/m2 atm atmosphere atomicmassunit 1.66044-27 kg fuzz amu atomicmassunit bag 94 lb bakersdozen 13 bar 1+5 nt/m2 barie 1-1 nt/m2 barleycorn 1|3 in barn 1-28 m2 barrel 42 gal barye 1-1 nt/m2 bev 1+9 e-volt biot 10 amp blondel cd/pi-m2 boardfoot 144 in3 bolt 40 yd bottommeasure 1|40 in britishthermalunit 1.05506+3 joule fuzz btu britishthermalunit refrigeration 12000 btu/ton-hour buck dollar cable 720 ft caliber 1-2 in calorie cal carat 205 mg cent centidollar cental 100 lb centesimalminute 1-2 grade centesimalsecond 1-4 grade century 100 year cfs ft3/sec chain 66 ft circularinch 1|4 pi-in2 circularmil 1-6|4 pi-in2 clusec 1-8 mm-hg m3/s coomb 4 bu cord 128 ft3 cordfoot cord crith 9.06-2 gm cubit 18 in cup 1|2 pt curie 3.7+10 /sec dalton amu decade 10 yr dipotre /m displacementton 35 ft3 doppelzentner 100 kg dozen 12 drop .03 cm3 dyne cm-gm/sec2 electronvolt e-volt ell 45 in engineerschain 100 ft engineerslink 100|100 ft equivalentfootcandle lumen/pi-ft2 equivalentlux lumen/pi-m2 equivalentphot cd/pi-cm2 erg cm2-gm/sec2 ev e-volt faraday 9.652+4 coul fathom 6 ft fermi 1-15 m fifth 4|5 qt fin 5 dollar finger 7|8 in firkin 9 gal footcandle lumen/ft2 footlambert cd/pi-ft2 fortnight 14 da franklin 3.33564-10 coul frigorie kilocal furlong 220 yd galileo 1-2 m/sec2 gamma 1-9 weber/m2 gauss 1-4 weber/m2 geodeticfoot british-ft geographicalmile 1852 m gilbert 7.95775-1 amp gill 1|4 pt gross 144 gunterschain 22 yd hand 4 in hectare 1+4 m2 hefnercandle .92 cd hertz /sec hogshead 2 barrel hd hogshead homestead 1|4 mi2 horsepower 550 ft-lb-g/sec hp horsepower hyl gm force sec2/m hz /sec imaginarycubicfoot 1.4 ft3 jeroboam 4|5 gal karat 1|24 kcal kilocal kcalorie kilocal kev 1+3 e-volt key kg khz 1+3 /sec kilderkin 18 gal knot nmile/hr lambert cd/pi-cm2 langley cal/cm2 last 80 bu league 3 mi lightyear c-yr line 1|12 in link 66|100 ft longhundredweight 112 lb longquarter 28 lb lusec 1-6 mm-hg m3/s mach 331.46 m/sec magnum 2 qt marineleague 3 nmile maxwell 1-8 weber metriccarat 200 mg mev 1+6 e-volt mgd megagal/day mh millihenry mhz 1+6 /sec mil 1-2 in millenium 1000 year minersinch 1.5 ft3/min minim 1|60 fldr mo month mpg mile/gal mph mile/hr nail 1|16 yd nauticalmile nmile nit cd/m2 noggin 1|8 qt nox 1-3 lux ns nanosec oersted 2.5+2 pi-amp/m oe oersted pace 36 in palm 3 in parasang 3.5 mi parsec au-radian/arcsec pascal nt/m2 pc parsec pennyweight 1|20 oz percent % perch rd pf picofarad phot lumen/cm2 pica 1|6 in pieze 1+3 nt/m2 pipe 4 barrel point 1|72 in poise gm/cm-sec pole rd poundal ft-lb/sec2 pdl poundal proof 1|200 psi lb-g/in2 quarter 9 in quartersection 1|4 mi2 quintal 100 kg quire 25 rad 100 erg/gm ream 500 registerton 100 ft3 rehoboam 156 floz rhe 10 m2/nt-sec rontgen 2.58-4 curie/kg rood 1.21+3 yd rope 20 ft rutherford 1+6 /sec rydberg 1.36054+1 ev sabin 1 ft2 sack 3 bu seam 8 bu section mi2 shippington 40 ft3 shorthundredweight 100 lb shortquarter 25 lb siemens /ohm sigma microsec skein 120 yd skot 1-3 apostilb slug lb-g-sec2/ft span 9 in spat 4 pi sr spindle 14400 yd square 100 ft2 stere m3 sthene 1+3 nt stilb cd/cm2 stoke 1-4 m2/sec stone 14 lb strike 2 bu surveyfoot british-ft surveyorschain 66 ft surveyorslink 66|100 ft tablespoon 4 fldr teaspoon 4|3 fldr tesla weber/m2 therm 1+5 btu thermie 1+6 cal timberfoot ft3 tnt 4.6+6 m2/sec2 tonne 1+6 gm torr mm hg township 36 mi2 tun 8 barrel water .22491|2.54 kg/m2-sec2 wey 40 bu weymass 252 lb Xunit 1.00202-13m k 1.38047-16 erg/degC #]loI7 #@#@#A Mail Commands t type messages n goto and type next message e edit messages f give head lines of messages d delete messages s file append messages to file u undelete messages R reply to message senders r reply to message senders and all recipients pre make messages go back to /usr/spool/mail m mail to specific users q quit, saving unresolved messages in mbox x quit, do not remove system mailbox h print out active message headers ! shell escape cd [directory] chdir to directory or home if none given A consists of integers, ranges of same, or user names separated by spaces. If omitted, Mail uses the last message typed. A consists of user names or aliases separated by spaces. Aliases are defined in .mailrc in your home directory. #]loI b#B#B#C]set append dot save ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via #]loIS #D#D#E^----------------------------------------------------------- The following ~ escapes are defined: ~~ Quote a single tilde ~b users Add users to "blind" cc list ~c users Add users to cc list ~d Read in dead.letter ~e Edit the message buffer ~h Prompt for to list, subject and cc list ~r file Read a file into the message buffer ~p Print the message buffer ~m messages Read in messages, right shifted by a tab ~s subject Set subject ~t users Add users to to list ~v Invoke display editor on message ~w file Write message onto file. ~? Print this message ~!command Invoke the shell ~|command Pipe the message through the command ----------------------------------------------------------- #]lf_ #`#`#`909@9P9`@  `<n7!819A` cC$N1 ,  P"p""7l  "n@pD0$ $"_@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p  #8 `$anl m0 t/؀Ȉ0(ؐș0)` ؠȪ0 ذȻ0 (/q- >x  . |  .0r= "q-Ylbd (>0bЍ!@D̔A><>TbЍr 2 b"Rt.X0}`r ̔l.``c 3:@}r|rpp:.dp' bЍg! (bp!.'"` p:00:r 2 a Ǔ40:08p p( p / @ /bЍ aLp:h!ne d0(bcPq "cЍ*R >b\! 4! qn`m jDk  bЍqMXMbЍH  bЍqMXMmjФbhL AHE6Ȃb0&Pg p +ؐșlc@> bpnTbphTXq  bȪcdw\b(L bY` (>qMXMPU|bc@d`   bh 1ȮȾ$(->g bcdpޗ{bcpMbceЍ~ qMXMxSh2 *`@@BBK_/t$ e"t$ /t$  "t$ ```PUlprd \@ QA@```Be0@% $QA@% `P 1nl m0P 4 ,  4 ! 4! ٱnȤذȻ "0 MbЍ0ؔ bЍ?p ) "cp\.0@@l03lb@pɱ8.0Xɱ8߸qnk l qHj ^H ERbcD>I:CbЍO /ؠȪpwlp'؀Ȉ"p ؐș"p). 0)p0 "cЍDp 0 .b_j bqHxnФ2." 0lc@"D .Q 0- 03k  {q .0@O@>bE) !0 an.t1 8ĀŸ#m.c:@,.c@0l  b@  ``` ઺ƋjpwذȻp p Dp'(ؠͪز02p .`(>b`4(b`cd-(pM@BJ>b`(p tp *(>bЍ(>,bd(pLp @BJ >0bЍ(  (>4(a@a@hA#an`f}ؠȪp " aLȐذȻ",g"p&do؀ȈB,ipP,cd) 0 p 0 Ȑg@q p `ipP,cd)  p 0 aLhnԍ, PF,P"P" P"(P"$ٱnk B,0*F.P=ƻ@ ! 1 b0P=@ !ɱ8߸ّnj0` Ű  .i F.P- "F0P F4b ɑ@ؐșP  J4b ɑ@(ؐșF0P 8ؠȪF4@D c; @D Tbc.bɑ@ J4@D bcЍ bɑ@ؠȪF4J4ߘ!ṉl0m@. c@ .c@p  441 nԤN4>"Ax030  "h2 2#".!i, n(  << 0@1D2bЍbЍd "cЍO` <qA@D#"$b@d  B 鏤 03 #"#d b00C P% p PU0% pPU0% nm p-0 1 v- bЍ 0 nԍr, فnm qḇ,< q1w b$ "p 2bЍ j wȾp+ x Ȼp+ ``` hu lr;p ݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk ݱ,c.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d0 u 0db`bɡ<ߨe Q^`R n mnl m0 bcWcT0   bcE0 b4! p)PU0% $4LXt$0DTdt0@L`t<`x @Ph@d|$8Tx  4$Header:errlst.c 12.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededRemote file system errorOut of remote working directoriesStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks availablenm (bЍ -0 nݱtu͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !0 0,4u nЍjm 4 03t5#  0`Ъ`6>`0 023$0 ```bФ1 .!0 nݱtu͔  4v-p  !0 0,v-ij 4u ٱnm ̱tuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c? |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*c;d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ١nj ȱ#!<Jmb< NbEd "c b9d "ct >"Al bЍ%d "cЍ` !?ɡXߨfpabort: ...exiting. p>PU0% pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% ptPU0% pPU0% nd00t3@ ,! p6PU0% nd0t3@  4!4 p%PU0% JAd @ DBDA$%逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$$%%pPU0% ١nk ݱ-x 2j ݭx  墲 bbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡ1?AQ@=!>1?AQ@B(1!0DEpCTVPR!TNXR!T FR!4R#pCT T @ RT T !B$4pC@ Rb!Bb"PRbT XRT T HRTR $4pCHRb!PRb$Header:strcpy.s 12.0$04` R%S@1BDEpB$TTT T qB!!! $Header:strlen.s 12.0$1(p PU0% pPU0% pyPU0% p#2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$11n` b0cl bm cb4! nԍ,1 فnh i0j@kPD 1 0b 0_]@9- +  0 x XJp+! 0+q+2!%1+X "s q+2 q 1 q+@"cc#c[ 0@9- +  0 x X p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c-co b1de/4 2p+! 0+q+@ !%1+X "s q+@  q 1 q+@"c@)cД 0p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c-cɁD߈Qang 21i@@ȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0ces@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c7@+c/@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c{@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cJxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c!xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb16 u2 `;bc3!b ɑ@r  qĴؤ 0@D L Ȯ^ 3 ] c@#7L 0@DbP!X    bc &l ɱ@xk@M߸١n!014A8QbЍ@T<\D>bЍHj ɡ@cЍL8 >>0bЍe@A4@%H4>Pb@>pb@>0bde@>b@">b@A4>b@>8bde@>XbdЍ@>db@>b@A4>b@>b@bPɡ@ߨAAPp P%@U0% pP%@U0% pP%@U0% nm p-0 1 v-bЍ0 pP%@U0% nԍr, فnm qb-<"q1w b$ "p 2bЍ j wȾp+ x Ȼp+ ``` hu lr;p ݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk -c.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d0 u 0db`bɡ<ߨe Q^`R n mnl m0 bcc0   bc0 b4! nm (bЍ+0 n-Xu͔%.l>#X4"# D 9 %@ 4p, X v=ij %@ 4p, X  !0,0,4u nЍm 4,03-X5#  0`Ъ`6>`0 023$0 ```bФ1,.!0 n-Xu͔  4v-p  !0,{0,v-ij 4u ٱnm -XuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n " , ّn|Œj0X* ( (  ɑD qr1s ` *cd/d 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d~, X ( 4 4 nl X< @m ,3 X  r, 0 2 1 3 ( b4 ١nj ȱt!<J)1mb< N)*b]d "c bQd "c >"A bЍ=d "cЍ !?ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd.!X/(230$b0cd.X  ,AA p>P%@U0% pYP%@U0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pWP%@U0% pP%@U0% ٱn:!d e0  ɱ803,!(z ɱ8-t @  ```@  ```=bD'=bD'=bD' @  ```$@  ```(@  ```,@  ```- ɱ8߸nl  "2 LN@ D b0A -bЍ c bЍ0! cbd p!DNb0@ Ս D,p- ..0O0- $- 0! p2b$  ", Mp!Dp"1A(  p-,0 b  c b00!p-p"8A( ", p-|,0 p!DAn!014A8Q@. -t-  F !0 n.̔ 3 ,p- M0,-t-  C-4դ nd mb0?  4bЍc bЍ4A @ : !@ :    !ّn &|R.>?.| K ɑP* )J<::i * s ɑPb bɑPȱmbcdЍB r! :<=$i  bɑPBaN|ȑ b0>I  ɑPbc bi ɑP 4p)> (b,k*:| bЍc bm 0ۤ!ɡ< ɡrt bOc bЍj 0!ɡ< ɡbЍ1j 2pJPU-tb0 %0 !ɡ̔ r", ", nN$-t]0->01 2 3  .$  Nu$t 0Hn-t->A Q 0 1  .  ls r 0@nm l0e "-t> 01dЍ  Dr1s!m  Ds!Tq, @ 1-v, @ 6-w, @ 7-x, @ 8-bD!nd l0>bЍbЍEe "-t> 01dЍ}  $Xw1x!mm x!q< $Xq, @ 1-v, @ 6-w, @ 7-x, @ 8-b$X!nm@0  0q=0 @ 12v=0 @ 62w=0 @ 72x=0 @ 8201 ّn` m0-tȬdbcdЍ bde@ +ݬ@b",Dj @ : bɑDibcJr p@ : bɑD,H@ : bɑDbcJO p@ : bɑD,LP TݬXb,\j ݬ`@ @  ```,@ɑDߘ!n.n-t8 p,KbFq̔ 84 ٱnk (ml bĐ!bm cPt0 "-t81 8ɱ8߸nl -t- h !q"- hv"- hw"- hx"- h $- hq,}! = h1#q<lv,k!= h6#v<lw,Y!= h7#w<lx,G!= h8#x<l- h4 n2p̔ p,cЍД !4q̔ 4 ّnj k0l@Д 0  $ ɑ@@:bA@  @:bA ``` ё@:bA @+ - @0 A*x XȔ@ @  #  ##ɴ,  ɑ@ 0B*b.A""D A*x X@:bA@@    @:dA@ 0@   ɴc)@JcA3    ɴ 䔰 0"ɑ@ɑ@ߘ1ٱnqȔ -1-t@ )b0;L  ݼ4ɱ8bЍ  4ɱ8ɱ8߸ptP%@U0% pP%@U0% ّni j0k@lP6- 0:$  ɑH  ,102͔ 1 .0cde( q!ɑH .0cdex( q!ɑHb ,ɑHߘAفnm 6<,0ӑ4<, 0 (>3 , , ɁT:e , >$ 01dЍt , , ɁT ,ȼ 'p+cЍx  (>0dЍ , , ɁT , rsb Ҕq@   @ ``` ]#Y(@   @ ``` b0,\ , ,bɁT q,    ``` cd Ȩ@   @ ``` b0,;k h (>6 , ,bɁT p,    ``` cdT Ȩ@   @ ``` b0);k h (> , ,bɁT r,    ``` cd  ȨYs! , ,!ɁT>bLk @ # + b6 s! , ,!ɁT>蔰   bj s! , ,bɁT>߈@B@ e0@ 菑Q@```!@B@鏤 ٱnk l0 >m bcdЍ j b@,  !ɱ8@ , @ ,  ```@ פ ɱ8߸!an3!21g@hPȞȱ$bcpds)bcdk!bcpdcbcd[  b"/0P//b e 01s1 "6d r!1f ad0&!p !ad%  ad !d0!adhQ@Y@1!.@A!```nd0t3@:N  4!4 p%P%@U0% JAd @ DBDA$0逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$0P01 鏖c ( $Header:lmul.s 12.0$1PpP%@U0% ١nk ;-x 28j ݭx N 墲 bBbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡb}bcdr 1- bc ;> bfbcd[ 0- q-5$bЍ(bɑ@c,u3 (9 bɑ@ߘ1 nm p-q-bЍ0 nl b0c@@m 5 u,-8,` u,4 b x,4u 5  ١nm j@kPl0r -bc c bz(bcd `Bbc{ p pqQ0 1]ɡD01pqQ0 1]ɡDߨ!١nj0k@m r-  ɡ< %@ ɡc bpbq1di p!a lbcC  r2 a ll0bq1dsQ `ؐ 6r2%@ a lx9x7q':@}q'c@ r2 a l a lȱ!0 bcdA )ugabcЍ& [!Ic(QP/ (>$r2x9x7q':@q'c@@ -r2 a l0!cdЍ bc r2 a lu7xq' 0@q'1@ r2 a lbp8(቏ȧ(h1Anm 67bpqQ0 1]8!ٱnl m0r Wq-1H Nwb)& *7!v-y 9-v=q :b@oq Ƚ(bc@X b0 ( bwM=(?p w 7 pqQ0 1\ɱH7 v-w!6- 01pqQ0 1\ɱH߸! nm l05 u-,8-` u-4 bЍ< )y x- +9-x=q :b@q (bc@ b0|4u 5 4! ١nm s t-  ɡA?Qj kP;m04bЪ!d+P͑@~A`&  ɑ@2 ;`bЪ!b+ }!c /-!b+ cbd"!ɑ@bЉЪ!ߘ!pP%@U0% n0m  @tco bЍ @t@ %@bЍ @t l |!6,  b=bЍ| @t|5 3 4 01 b@tnc mlД0 @ 0<1,0 1 "03%@22#".0,1,0 1 ͠Ð"cdN Tqng h0;q 1,p  q,"0,  q TqL c2c20 ```!2A  q T@(rqrrrq k 5b$@(rФ`д r1cb"(b$.> N0ep), 0 b$b$ q Tb"p b0br$bc)4q Tx!ّn03;cp0Í bɑD'k mbЍ@ j  b pbɑDߘpP%@U0% nm q=0uMv=p-] -2- b44q=r 0 1 v b  41 t 4 p 4 nm H-0@0 r 1 X-(  ( 00 nm l0r- #X= NX=s( 2b X ( 3 1-3 0 4X=! pP%@U0% nc 3, pmP%@U0% pnP%@U0% n=!>1?AQ@=!>1?AQ@B(1!0 bЍĔ 0ܤ 4,4&4 nЍq 1.;q j q 0 ١nm j00ذͻ; 9;bЍ ܔ -+\1d++ R +d  \bЍ! 0!ɡPpɤ ɡPߨ!ٱnk l0 ";1+ o! +8 d"1@09m  0 ɱ8c@ bЍؤ 0 ɱ8bЍܺؤ!ɱ8߸!فnk l0;-  ɁDp 1  !++8 "2@/h  -0 ɁDؠȪ%@0c@ k bhȔ  p 0 ݝ 0 bɁD!ɁD߈!ّnj@;451678l^h0 12303B k  0 bɑ$d@DQ#p0 1t>p213q;p3p i q;t3bpx!  "ɑ$d 0 bɑ$d.d.0 !ɑ$dߘ1فni0j@kP4pIBA0I`^\012303 l  !\0 ɁX@DL0X1h>d213q,0 Ɂ4xq LH J,P8 . X \` h,HdФA`^\0 \12@303 ,`  b70ۤ Ɂ4x,\2A!0$:Ѥ&!,8  \1$b@s b0 bɁ4x,\1A(6Ȕ  d,c4 ";q0 1bɁ4xb0 bɁ4x߈Aٱnl 4(^$,H012@303B m ɱL@D#X0A10>,213q=p0Pp ,`q2t3p,\l`t \ hɱLq-t2bpt!٨lɱL߸فnh i0j@kP !Ɂ\m b @  @L!Ɂ\bcЍ Ɂ\uATh`!\03RpSq301123!4bcp "bI "+Ɂ\߈aqnQph@9!:17586(`@DQ$ذȻ 01t1p213q2pӤ4p "q,tt!!  i  v!"x0- x!"10#  p- -!|vA0BvAqxp7u!vAp7b4p7vAb4!xA0BxAqp7wbxAp7b4p7xAb4(`q2scdp bq,txanhP5!f0g@͑d0͡h1ͱl2p3t4э  ad01234u!c`dpeadhqn|Qh@:;!<16789(`@DhQ(011213q2ps4p bq<u!! 2i  w!"͡0* y!"10#  p*쉀-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4(`q2scdp bq<x!qnh i0j@kP  !q hm b̔ @  @T!q hbcЍД q hwh!t1pAlQhpw 0qp123Q4A516!bcdep "bN ")q hxqn9!:1;AQ6789ͱ+`@DhQ(011213q2p5p "q<u!! .i  w!"́0( y!"10#  p(؉-!wA0BwAqp7v! wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4+`q2scdp bq<x!anQp8!917ApŃxp(Ȟc 9͡|pzph00p,>00w0p1t23456y1x!d`ep#g b`"Ԕp Np(cj bpa(thفnh i0j@kP !Ɂ\m b @ @  N!Ɂ\bcЍQ Ɂ\uAh!`1\PU0AqpE1A2314!bcdep "b "'Ɂ\߈aفn7!819A:Q56ͱp+`@DQ01x1t213q2p3p "Ɂ,pt!! i  v!"1|0# !vA0BvÁ|p8u! vAp8b4 p8vAb4+`q2scdp bɁ,p߈فn:;!<1=A>Q67ͱ+`@DhQ(011213q2p3p "Ɂ<u!! ?i  w!"10# !wA0BwÁp8v!/wAp8b4 p8wAb4+`q2scdp bɁ<߈ ( ,"RU`@P%%@2B4>$6 ($# % !-.&nC^0+"0! nC^0+ 0! ٱnk l00c/ <Db bɱ<߸!nCP*G,! n@@+,! n@@*,! ٱnk l0Ѝ <b bc bɱ8߸!ٱnk l0Ѝ bc bɱ8߸!ٱnk l0Ѝ' bci bɱ8߸!ٱnk l0Ѝ' < bH bc? bɱ8߸!nԤD),! ٱnk l0Ѝ bcB( bɱ8߸!nC^0)0! n@),! ٱnk l0Ѝ <b <b'9Ĕ bc bɱ8߸!p@A @@RP!1 鏤!@A鏤 phP%@U0% #2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$dDdP@D#"$b@d  B鏤 03#"#d b00CP%%@ @`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$ffn` b0cl b"m cb4! nԍ,1 qn|Qg h0i@,Dj  (>:H 03,0 "%@2#ɤèªӨҪ Xb Dk  (>$ H 03,0 "%@2#`T L!40$LbpcdPP!1 2pqW1 2[rsW3 4[5 Q6 7[HPՍT}~!12Ѥ345;Lț,bdP'X1b \ ?|+t2bp+Dp %0"2@"`0,  03,0 "%@2#d0f~3}dp 0 (h0*bq< bl blbq<xq!n0@1"`23<Qan0!1AQrb 5!3!,6v!4!0t!q"uBt!6Dp&L t!q"qBt!1p !p"x2qCt1p t!A1p !8&a2t!q2t3pg r6Lp&0u1dpP ' "%@9&aؔ ܔ%8&aȑȦ "-pqRHQLrPX\p݁0 c@P A "%@$ 9&$8&au!v 5!s!w 3!B@s! u!!5!s! 3! ```u!ش u!ش s!ܴ t%8&aД  ȶTl||FPp&01cPH d @ "%@$ @ "%@# 9&$8&aДD{6Lp&T s$bcQ&E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cȣ@+cț@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cis@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c;@+c3@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cƇ@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cNxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c%xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ/10#}!b~00s10  p .aL p .aL. aL!4 m ҝb1^ u2 `;ddɡ,btj @ #ɡ< bc\  >4btl ɡ<(>8b!d>XbdЍdɡ<ɡ<ߨ!١nj m04@   @ ``` bl  ɡ<(0 ȼ@   @ ``` ⺐+m0-cd(p b ,ɡ<ߨ1nm Ҽe "<> 01dЍ  @s!@@B@ e0@ 菑Q@```!@B@鏤 p@P%@U0% pP%@U0% a`0d0H@b&c`ccc0(36p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$p6P%@U0% np2  ? =01q1bp ," $ ` 0MAtbH١nj k0l@`bcm bc-p 0 ɡ<ߨ1١n?!1@k@Bڡ>bc3!213q=p3p 03,04q-rBbp &,q-t2bpx!!!!&Ɂ(l߈Anl m03 =b* =b! bcЍ4 4! nm 211;0!1d1rbq!@ 0cM#AI ```@.ij c=b/2b!! 2#20bM2Ab@"b."ij <!p}P%@U0% nl m0 =bdP^4 4! nl m0w  4bcЍh4! nl m0  4= b . 4uMt=bp4=b+  4=b4s ה !4! nl m0D . 4=b  4bcЍ4bcЍ4p ה 4! nl m0ؔ =b̔ q =^0bdЍ8 8!ٱnk l01ܤ2 p .{Д (<bĔ <biД < b`Д <bWɱ8bɱ8߸! !"RUP%%* 0 0 0 0 00012#!00& ```012#nm d0r v- 00s-  ```0r 1pt 1u 20t 10w 1x 20 0! p]P%@U0% pP%@U0% p~P%@U0% ̤pR @T\ q2 0_502q1pRϳT bفnj ȱ(Ɂ8|1032 cdЍ Ɂ8|2x! y * * s;y* 8!xyQ2 3[89 ,3541 h.d ˞ j ؐș>0ɤ c@cp bgp ```.c@hb˃ cФ@@Ɂ8|߈P>paP%@U0% فnpR`Pe͵pS;j jhͨڳ АͨũŚ  Ƞi iᚪh͘ٳ А͘͘ŪŪ pTP P0TP```ճ г ```000Ɂ߈1١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3 Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ! ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 12.0$P鏤!nԍ,! nԍ>,! nd p qDqDp, qDpDp,!, ,! nd p qDpDp, qDqDp,!, ,! nd m0p,P 0cqDqDp4cqDpDp  4p !4!4  4! nd m0p, 0cqDqDp4cqDpDp  4p !4!4  4! nm0@ 0c  4p !4! nm0@ 0c  4p !4! ne m0p:p 0cq%qBbPp4cqEpDp  4p!!` 0 4!4 ۔ 4! nԍ,! ٱnl @!ɱ8 p )q,rbp  ɱ8!ɱ8q,r03>bdp ɱ8'q,sbp  ɱ8!ɱ8q,s>bdp ɱ8!ɱ8 ɱ8߸1ّni j0m@kPpcЍ  ɑ@pݳVp  G ɑ@!ɑ@bЍ l 0ʔ (> $ ɑ@bcdЍ>(ɑ@ bo,0 !ɑ@   ɑ@p ߘAnd04P,! ١nj m0k@lP  ɡD ɡ@pAbMpAbcЍ^ɡ@bЍ0 !ɡ@ ɡ@ߨ1n@{ !, ,! n0R142325BAnm u  5 0s-Dժs 3 !0! nm u  5 4p0bs=DՄs 3 !4! nl m@u 5 4s,as 3 !41 nl m@u 5 4s b0c<s 3 !41 st"鏲 tdus2`@鏤 3B5鏤!@u 5sB`C3b@"r."b!"03@.Ldg$Header:alloca.s 12.0$alloca: Caller probably not compiled with -ma 4١n> @Ƚ "-pqR3 4]r5 s t]0 1]u 2 8 j=(b@Pbcbcq*t2bp?-q*w20 bp-ɡTߨn ">B(q#sb0cp 0! 鏤!鏤 qBpBCCCC C1B0Bd ;503;### #0^3_#### #03#### #0$3#### #03#### #03q#### #03#### #03@#### #03 #### #0 A<4"0$$Header:cvd10.s 12.0$pSP%@U0% poP%@U0% plP%@U0% $Header:abort.s 12.0$D @NT$Header:crt0.c 12.0$$Header:fpglue.s 12.0$%D$ 0AOFPAFP_PRECISIONNOT super user /tmp/tmp./tmp L 0\@/usr/preserve/Exaa`XXXXXBuffer format error LOSTBuffer read error8xTL$h4@< lI Can't find a name /bin/mail %swthe system went downthe editor was killedLOSTSubject: editor saved ``LOST'' You were editing a file without a name at <%s> on the machine ``%s'' when %s. Since the file had no name, it has been named "LOST". Subject: editor saved ``%s'' You were editing the file "%s" at <%s> on the machine ``%s'' when %s. You can retrieve most of your changes to this file using the "recover" command of the editor. An easy way to do this is to give the command "vi -r %s". This method also works using "ex" and "edit".   h($Header:expreserve.c 12.0$@(#) Copyright (c) 1980 Regents of the University of California. All rights reserved. @(#)expreserve.c 7.13 (Berkeley) 1/22/86L88$Header:closedir.c 12.0$Hhw/M:/w/b///:/AV/Vw/ 00Td H ` : ZDay Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecd \ |$Header:ctime.c 12.0$ ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$  |x$Header:exit.c 12.0$ -X  l  <N4 x$Header:findiop.c 12.0$ `L 8$V 88$Header:flsbuf.c 12.0$  I L$Header:fpabort.c 12.0$  $Header:fprintf.c 12.0$Hd P L$Header:getenv.c 12.0$$  <@fx` @I   \ p G,  dr48   r+**  |      ++ H x 2 ppasswd.byname passwd.byname!Tpasswd.bynamet"%dpasswd.byuid"#L$  $$$$%T&d&(pD$Header:getpwent.c 12.0$/etc/passwd()@(#)innetgr.c 1.1 86/09/24 Copyr 1985 Sun Micro),netgroup.byusernetgroup.byhostD )innetgr: recursive overflow netgroupinnetgr: netgroup %s called recursively innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup #  I tGI`8..2.*/$Header:innetgr.c 12.0$/p$Header:isatty.c 12.0$041X1h423`3$T8fx4x$Header:malloc.c 12.0$4.pag.dir$HGx88 856h6^ 6lL7ndbm: split not paired tg| :h:T;|<<=>=951-)%! 1ҿ14r(G3f!CY&d;oY7uVV0{- ;T>/ /2[1a=<f`Kvz_lG$6$w CM760!nY)6N1Vp&8DŽ)3+H]<517;+$g )#n0%3a$ ۘ 0Vn29D}1N7R#:86)W{:92}x'L~|\/q>r>>fx?@$@@x 88$8$Header:opendir.c 12.0$$Header:perror.c 12.0$A$: Unknown error I P<A/bin/shsh-c <$D80xC( H$Header:popen.c 12.0$CdC $Header:readdir.c 12.0$DL $Header:rew.c 12.0$D8$Header:setbuf.c 12.0$E E($Header:setuid.c 12.0$ELEhE $Header:sprintf.c 12.0$F(Id$Header:strncpy.c 12.0$IIIJ J<|@(#)yp_bind.c 1.1 86/09/24 Copyr 1985 Sun MicroJXI d40@xKLG88LDM lMLlMg| HNOX, PfQ $Rload_dom_binding: malloc failure. $ HS$Header:yp_bind.c 12.0$$@(#)yp_enum.c 1.1 86/09/24 Copyr 1985 Sun MicroYP_TI  U$8fxVWPXYZ[V\$Header:yp_enum.c 12.0$@(#)yp_match.c 1.1 86/09/24 Copyr 1985 Sun Micro]PI  ^N$fx_8$Header:yp_match.c 12.0$@(#)ypprot_err.c 1.1 86/09/24 Copyr 1985 Sun Micro`($Header:ypprot_err.c 12.0$@(#)ypv1_xdr.c 1.1 86/09/24 Copyr 1985 Sun MicroX`# X``,$Header:ypv1_xdr.c 12.0$`@(#)ypxdr.c 1.1 86/09/24 Copyr 1985 Sun Microa4#a^#aaab@#pbb#b$,#pc>#clcT$Header:ypxdr.c 12.0$c@(#)bcmp.c 1.0 84/10/03 IBMdd(??ffg$g|g8$Header:calloc.c 12.0$@(#)clnt_udp.c 1.1 86/09/24 Copyr 1984 Sun Microgclntudp_create: out of memory clntudp_create: out of memory $  HL l$l Hp$8j,j44pm>mRmm$Header:clnt_udp.c 12.0$mm p0h`$Header:doprnt.c 12.0$ d'B@l00INFNAN()0x#!\$Header:ecvt.c 12.0$R < `$Header:fdopen.c 12.0$D 8$ T$Header:filbuf.c 12.0$D `x$Header:fopen.c 12.0$`\$@`\#@ fx$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$`I @(#)get_myaddress.c 1.1 86/09/24 Copyr 1984 Sun Microget_myaddress: socketget_myaddress: ioctl (get interface configuration)get_myaddress: ioctl Hp8$Header:get_myaddress.c 12.0$$Header:getdirentries.c 12.0$$Header:getdomainname.c 12.0$8L@(#)getnetgrent.c 1.1 86/09/24 Copyr 1985 Sun MicroTGH8*bDCycle detected in /etc/netgroup: %s. # syntax error in /etc/netgroup --- %s 0 $$H$8netgroupI t$Header:getnetgrent.c 12.0$$Header:l10.c 12.0$4$Header:mul211.c 12.0$|$Header:mulu211.c 12.0$$Header:mulu32.c 12.0$X@(#)pmap_getport.c 1.1 86/09/24 Copyr 1984 Sun Micro<,8$Header:pmap_getport.c 12.0$@(#)pmap_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro#p$Header:pmap_prot.c 12.0$*A7\(;w5^k(,!$Header:rad2a.c 12.0$@(#)rpc_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro##<#pp.#&2$Header:rpc_prot.c 12.0$ ($Header:shlun.c 12.0$ 0p%4%<%8$Header:sleep.c 12.0$! *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$Header:spdiv7.c 12.0$#BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ $Header:tentothe.c 12.0$$@(#)xdr.c 1.1 86/09/24#l#p8 #\#d$xdr_bytes: out of memory $ #8##pxdr_string: out of memory I l#$Header:xdr.c 12.0$$@(#)xdr_mem.c 1.1 85/05/30 Copyr 1984 Sun Micro$t$|$$$$$$pfx\$Header:xdr_mem.c 12.0$%@(#)auth_none.c 1.1 86/09/24 Copyr 1984 Sun Micro%%% %%$lpv$Header:auth_none.c 12.0$ (#]yloI䁤 (#l#l#m} flat profile: % the percentage of the total running time of the time program used by this function. cumulative a running sum of the number of seconds accounted seconds for by this function and those listed above it. self the number of seconds accounted for by this seconds function alone. This is the major sort for this listing. calls the number of times this function was invoked, if this function is profiled, else blank. self the average number of milliseconds spent in this ms/call function per call, if this function is profiled, else blank. total the average number of milliseconds spent in this ms/call function and its descendents per call, if this function is profiled, else blank. name the name of the function. This is the minor sort for this listing. The index shows the location of the function in the gprof listing. If the index is in parenthesis it shows where it would appear in the gprof listing if it were to be printed. #]|loI #n#n#o call graph profile: The sum of self and descendents is the major sort for this listing. function entries: index the index of the function in the call graph listing, as an aid to locating it (see below). %time the percentage of the total time of the program accounted for by this function and its descendents. self the number of seconds spent in this function itself. descendents the number of seconds spent in the descendents of this function on behalf of this function. called the number of times this function is called (other than recursive calls). self the number of times this function calls itself recursively. name the name of the function, with an indication of its membership in a cycle, if any. index the index of the function in the call graph listing, as an aid to locating it. parent listings: self* the number of seconds of this function's self time which is due to calls from this parent. descendents* the number of seconds of this function's descendent time which is due to calls from this parent. called** the number of times this function is called by this parent. This is the numerator of the fraction which divides up the function's time to its parents. total* the number of times this function was called by all of its parents. This is the denominator of the propagation fraction. parents the name of this parent, with an indication of the parent's membership in a cycle, if any. index the index of this parent in the call graph listing, as an aid in locating it. children listings: self* the number of seconds of this child's self time which is due to being called by this function. descendent* the number of seconds of this child's descendent's time which is due to being called by this function. called** the number of times this child is called by this function. This is the numerator of the propagation fraction for this child. total* the number of times this child is called by all functions. This is the denominator of the propagation fraction. children the name of this child, and an indication of its membership in a cycle, if any. index the index of this child in the call graph listing, as an aid to locating it. * these fields are omitted for parents (or children) in the same cycle as the function. If the function (or child) is a member of a cycle, the propagated times and propagation denominator represent the self time and descendent time of the cycle as a whole. ** static-only parents and children are indicated by a call count of 0. cycle listings: the cycle as a whole is listed with the same fields as a function entry. Below it are listed the members of the cycle, and their contributions to the time and call counts of the cycle. #]lo΁ j#z#z#{ Most commands optionally preceded by integer argument k. Defaults in brackets. Star (*) indicates argument becomes new default. ------------------------------------------------------------------------------- Display next k lines of text [current screen size] z Display next k lines of text [current screen size]* Display next k lines of text [1]* d or ctrl-D Scroll k lines [current scroll size, initially 11]* q or Q or Exit from more s Skip forward k lines of text [1] f Skip forward k screenfuls of text [1] b or ctrl-B Skip backwards k screenfuls of text [1] ' Go to place where previous search started = Display current line number / Search for kth occurrence of regular expression [1] n Search for kth occurrence of last r.e [1] ! or :! Execute in a subshell v Start up /usr/ucb/vi at current line ctrl-L Redraw screen :n Go to kth next file [1] :p Go to kth previous file [1] :f Display current file name and line number . Repeat previous command ------------------------------------------------------------------------------- #]ln ###9x9999999@ (2n7!819A` cC$N1  ,  P"p""7l  "x@pD0$ $"i@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p $(8Dٱnk l0H  (>! 3p<@-)Ad!p $0 2@0 7 # 1@0 7 m > p .>4 @(. 9wm   (N>8! w- 0   (wM>Tq! r-+ .    (N>hQ! r .b)" F %+ !p! q!1 q! |>b@   q! p!0 p! čԔ ``` ɱ@߸!an2p0p q 1 r, !pĤ2 p ؐș p  0 q9@#119b f a5b 0̔!.p  0 q9@#1 19b p * 0 q9@#119b nf a b ̔!r a X.l!>.l Tk )(>NlY4! z8>b h )(>B4! c8qؠȪ'jk-gmȺ:j  mp n0 q9@#1m19 bchp Rjb k GDpp(! 0(q(b!%1(X "s q(b q1q(@"c &c p  0 q9@#119b f b ~䈀b f : >8bd4bcpl m b)(><4p  0 q9@#119b _f  Fj Dp(! 0(q(b!%1(X "s q(b q1q(@"c &c p  0 q9@#119b f  jp  0 q9@#119b f Mpp(! 0(q(b!%1(X "s q(b q1q(@"c &c mєjUbef  KiHpap mrmZpa b>̔!Mp 1p(! 0(q(b!%1(X "s q(b q1q(@"c _&c Wmqj p  0 q9@#119b Tȉf  b0:m Ў{ bcpR艀 l qr8 fq  br _@= TbA"" @=bA""```0 IkД0ш-bA"" 0=-bA""b*!2,  )(>P 4Ȯc)p b. 2b_p  0 q9@#119bf  p~b r .l* 8pp<0 Apq, 63 "H .d&.x>HNlJ >p.l03H.x /a Xp0p<0.x>@@ G.lcP>bЍ bk )(>dЍ N4H>Hp]d =4N>b 44N>b +4b p=bV /a XؠȪ'I@=dp hٱn` k0 "H .cd%Tp, 'cЍ q,  1 bɱ8p,  ɱ8߸!nm "H r=.%r->0  0r-> 0  0 0 ّnj Hp r:.%dr@ / . @ / ```. >b >b Ȟ$,bc bcЍ G bд-.,@ @D TcA @ cA```2!@;`0 / r*@ !```p .4cЍ$cbЍ&D  @ɑ@q 1 ɑ@Ȟ$,ߘ ّni j0 "H .cd$Tb#Tk $>bXb#Tk   (N>e ɑ@H0 b$\ ( T(@@c A33 c@241d!@c A33p @0Lb$\ b`p\Q0\m>(bd%dbcЍh bb0"lk   (>0d 'ɑ@>bЍ  l   (>@dЍ ɑ@'bc@ $pd @bcЍ(3tbc@ $pd @ bbb'Pɑ@ߘ!@an2!31>.80!  "H sAr1.#a\1ȱbpA02(ؠȪH dp .4>8d#vܔ b0\% C>`.Xaf `9p k.d>X#8a\bp0\ bpA0( p .@#p!a\p .|cp#ܔp W@   ,q@ ``` , mpbp>U,g p @Ǒq p\@ #p .cЍ"ܔ >b`dЍ >b`dЍq1p&p&! 0& q&!1&X "s  q&q&@"c`n*c`g gbpA0 ( ip!Mq nX>b`r>b`k>b`sQrAb>bsQrA#>bЍXl  p ;.cЍ"13b0d(   bc`b0d( b p .!b`.X&a\b`4 .X%b`a\a\h!A١nj b>pqS01RrsS23RtuS45RHp km>bЍ#xX. cЍ!>0bЍ \k p .4cЍ! ɡbЍ6Ll   (>dЍhɑ@>0N@^Lh>dN^bh ib i   (>hɑ@>bdh ,>bhN@R r AE eB: >bhN>bhД >bhN>bhNܔ@ >bh>bhb0Ti &ؠȪ'c@ Xd @b1e$bc@ }Xd @ b /b0Ti &ذȻ'c@ _Xd @b1e$bc@ MXd @ bbJ bЍ$)8bɑ@ߘ1 鏤 e dP@@ )Q```@0Q`0B @   AB @ ``` 4d @( < > 4A@@@! @ @ @1 鏤 @!@# 鏩/@C1@ @@! 鏤 @C1@鏤! 0鏤 @B@ e0@ @菑Q@```!@B@鏤 nl p  0 q<@#11<Qm bc#Jb4 pp P'U0% pP'U0% nm p-0 1 v-bЍ0 pP'U0% pZP'U0% 1AQ1@DDp;P'U0% nm bЍy0 ٱnk l0q1. q  ɱ8N m  ɱ8 0-޽3-1-2-@ ab0Ba( ( A +( bɱ8r w ɱ8߸!pqTn 1 @Q  !7!81b@ 09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$nm X= ( 0 DxP  Dxr 5X   "  `2 -19 } b2- X ( X ( 3  $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=DxnHu͔%.l>#X4"# D 9 ' 4p, X v=ij ' 4p, X  !0/0,4u nЍm 4/03H5#  0`Ъ`6>`0 023$0 ```bФ1/.!0 nHu͔  4v-p  !0/0,v-ij 4u ٱnm HuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n " , ّn|Œj0X* ( (  ɑD qr1s ` *cd ?d 1q0 @ml@ ޑC*1Cd &d Y0 r?*c1 |є bЍ k 2X*( X ( 3 " "&  4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m , X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0Bn 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!p鏤 P'U0% ١nj ȱ#h!<J+mb< N+bKd "c b?d "cv >"An bЍ+d "cЍb !AɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd1!hX/(230$b0cd1X  ,AA ١mXSE (213pqs@ ;! ެ  ެ-=M]b :1 *-=M]XSUps㉏qÔ@ j0b0 1 cXSU(S2301aɭߨ-$Header:fputs.s 12.0$$<ّnj k0l@A +Ѥb@ a. 0 2c 0b@Hj bɑ@r w ɑ@@ a0B 0ެ3  ( @ r( ( 12bɑ@ߘ1p>P'U0% ّni j0k@lPbc%m X !Vp,!0,s a@)* q<#1 1. H-   !0 n.̔ 3Hp- o0HH-  =)4դ nd mb0  4bЍc bЍ4A @ : !@ :    !ّn &|R.>.| K ɑP* )J<::i * 9 ɑPb bɑPȱmbcdЍ< r! :<=$i  bɑP<]N|ȑ b0  ɑPb@c bi ɑP 4p)> (b,k*| bЍc bm 0ۤ!ɡ< ɡt bOc bЍj 0!ɡ< ɡbЍ1j 2pJPUHb0 %0 !ɡ̔ r", ", nN$H]0->01 2 3  .$  u$t 0HnH->A Q 0 1  . ls r 0@nm l0'e "H> 01dЍ  Dr1s!m  Ds!Tq, @ 1-v, @ 6-w, @ 7-x, @ 8-bD!nd l0>bЍ(bЍe "H> 01dЍu  $Xw1x!mm x!7< $Xq, @ 1-v, @ 6-w, @ 7-x, @ 8-b$X!nm@0  0q=0 @ 12v=0 @ 62w=0 @ 72x=0 @ 8201 ّn` m0HȬdbcdЍv bde@ +ݬ@b",Dj @ : bɑDibcJr p@ : bɑD,H@ : bɑDbcJO p@ : bɑD,LP TݬXb,\j ݬ`@ @  ```,@ɑDߘ!n.nH8 p,b q̔ 84 ٱnk (3l bOĐ!(m ct0 "H81 8ɱ8߸nl H- h !q"- hv"- hw"- hx"- h $- hq,!= h1#q<plv,!= h6#v<^lw,!= h7#w<Llx,!= h8#x<:l- h4 nNp̔ p,cЍД !4q̔ 4 ّnj k0l@Д 0  $ ɑ@@: TbA@  @:bA ``` ё@:bA @+ - @0 A*x XȔ@ @  #  ##ɴ,  ɑ@ 0B*b.A""D A*x X@:bA@@    @:dA@ 0@   ɴce)@JcA3    ɴ 䔰 0"ɑ@ɑ@ߘ1ٱnqȔ -1H@ )b05H  ݼ4ɱ8bЍ  4ɱ8ɱ8߸a`0d0H@b&c`ccc0<36p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$<ّni j0k@lPRL- 04$  ɑH  ,102͔ 1 .0cde( q!ɑH .0cdex( q!ɑHb ,ɑHߘAفnm RL<,0ӑ4<, 0  (> , , ɁT|e , >$ 01dЍ4 , , ɁT ,ȼ 'p+cЍ   (>0dЍ? , , ɁT , rsb Ҕq@   @ ``` ]#Y(@   @ ``` b0,k h  (>\ , ,bɁT q,    ``` cd Ȩ@   @ ``` b0,@k h  (> , ,bɁT p,    ``` cd Ȩ@   @ ``` b0)k h  (>2 , ,bɁT r,    ``` cd> ȨYs! , ,!ɁT>bLk @ # + b6 s!t , ,!ɁT>蔰   bj s!T , ,bɁT>߈@B@ e0@ 菑Q@```!@B@鏤 ٱnk l0 m bcdЍ  b@,  !ɱ8@ , @ ,  ```@ פ ɱ8߸!an3!21g@hPȞȱ$bcpds)bcdk!bcpdcbcd[  b"C|P//b e 01s1 "RXd r!1f ad0&!p !ad%  ad !d0!adhQ@Y@1!.@A!```nd0t3@3  4!4 p%P'U0% p P'U0% 鏖c ( $Header:lmul.s 12.0$DpP'U0% ١nk V|-x 23j ݭx  墲 b|bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡbbcdr 1- bc > bbcd[ 0- q-$bЍ(bɑ@c>,u3 (9 bɑ@ߘ1 nm p-q-~bЍ]0 nl b0c@@m 5 u,-8,` u,4 b x,4u 5  ١nm j@kPl0r -bc c bz(bcd `Bbc{ p pqQ0 1]ɡD01pqQ0 1]ɡDߨ!١nj0k@m r-  ɡ< ' ɡc bpbq1di p!a lbcC  r2 a ll0bq1dsQ `ؐ 6r2' a lx9x7q':@!q'c@  r2 a l a lȱ!0 bcdA )ugabcЍ& [!Ic(QP/  (>$r2x9x7q':@q'c@ $ -r2 a l0!cdЍ bc r2 a lu7xq' 0@{q'1@ r2 a lbp8(቏ȧ(h1Anm 67bpqQ0 1]8!ٱnl m0r Wq-1 Nwb)& *7!v-y 9-v=q :b@q Ƚ(bc@N b0 ( bwM=(?p w 7 pqQ0 1\ɱH7 v-w!6- 01pqQ0 1\ɱH߸! nm l05 u-,8-` u-4 bЍ< )y x- +9-x=q :b@q (bc@ b0Z4u 5 4! ١nm s t-  ɡ r 2 ɁDɁDiЪȫ,߈o0P@ 01pqQ01R0P@AdOPTQD`C0T1QpqQ01R0AdO1 ّn=1k lPPj@bQPZP b }1dP bɑ@`Ъb PR ɑ@ߘu"2!!鏤 ` #0nP1 @‘! dP?dĐԔ 1bٱnk P[oP?  ɱ80 !ɱ80.m0cPRCcPe`cObP_P[ b έ R ```!ɱ8m0щc߸!ّn=1>A?Qj kP;m04bЪ!d+P͑@~A`&  ɑ@2 ;`bЪ!b+ }!c  -!b+ cbd!ɑ@bЉЪ!ߘ!pP'U0% n0m  @tc bЍ3 @t@ 'bЍ @t 3l |!+6,  bbЍ @t|5 3 4 01 b@te p*0% 1P'U0% qng h0Vq 1,p  q,"0,  q TqL c2c20 ```!  q T@(rqrrrq k 5bp$@(rФ`д r1cb(bS$.> N0ep, -0 b9$b4$ q Tb"p b0b$$bc4q Tx!ّn03Vcp0Í bɑD'k mbЍZ j  b pbɑDߘn8!91:A;Q8!91:A;Q1$ MC $  0A pP'U0% nm q=0uMv=p-] '2- b44q=r 0 1 v b  41 t 4 p 4 nm &-0@\0 r 1 X-(  ( 00 pP'U0% nc ., pmP'U0% pnP'U0% فnj ȱ(Ɂ8|1032 cdЍ.1 Ɂ8|2x! y * * s;y* 8!xyQ2 3[893541 h.d.N  j ؐșW0ɤ c@-p b.#p ```.c@.$by cФ@-Ɂ8|߈PWn=!>1?AQ@=!>1?AQ@B(1!0p213q;p3p i q;t3bpx!ِ  "ɑ$d 0 bɑ$d.d0 !ɑ$dߘ1فni0j@kP4pIBA0I`^\012303 l  !\0 ɁX@DP0X1h>d213qݳ,0 Ɂ4xq LH J,P8 6 X \` h,HdФA`^\0 \12@303 ,`  b0ۤ Ɂ4x,\2AT0$:Ѥ&!,8  \1$b@{ b0 bɁ4x,\1A!:Ȕ  d,c4 "Wq0 1bɁ4xb0 bɁ4x߈Aٱnl 4(^$,H012@303B m ɱL@D%0A10>,213q=p0Pp ,`q2t3p,\gl`t \ hɱLq-t2bpt!NlɱL߸فnh i0j@kP !Ɂ\um bo @  @L!Ɂ\bcЍ Ɂ\uATh`!\03RpSq301123!4bcp "bI "Ɂ\߈aqnQph@9!:17586(`@DQ$ذȻ$01t1p213q2pӤ4p "q,tt!!  i  v!"x0- x!"10#  p-W -!|vA0BvAqxp7u!vAp7b4p7vAb4!xA0BxAqp7wbxAp7b4p7xAb4(`q2scdp bq,txanhP5!f0g@͑d0͡h1ͱl2p3t4э  ad01234u!c`dpeadhqn|Qh@:;!<16789(`@DlQ(011213q2ps4p bq<u!! 2i  w!"͡0* y!"10#  p*~쉀-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4(`q2scdp bq<x!qnh i0j@kP  !q hm b|̔ @  @T!q hbcЍД q hwh!t1pAlQhpw0qp123Q4A516!bcdep "bN "q hxqn9!:1;AQ6789ͱ+`@DlQ(011213q2p5p "q<u!! .i  w!"́0( y!"10#  p(z؉-!wA0BwAqp7v!wAp7b4p7wAb4!yA0ByAqp7xbyAp7b4p7yAb4+`q2scdp bq<x!anQp8!917ApŃxp(Ȟc 9͡|pzph00p, 00w0p1t23456y1x!d`ep#g b`Ԕp Np(cr bpa(thفnh i0j@kP !Ɂ\%m b @ @  N!Ɂ\bcЍQ Ɂ\uAh!`1\PU0AqpE1A2314!bcdep "b "Ɂ\߈aفn7!819A:Q56ͱp+`@DQ01x1t213q2p3p "Ɂ,pt!! i  v!"W1|0# !vA0BvÁ|p8u! vAp8b4 p8vAb4+`q2scdp bɁ,p߈فn:;!<1=A>Q67ͱ+`@DlQ(011213q2p3p "Ɂ<u!! ?i  w!"10# !wA0BwÁp8v!7wAp8b4 p8wAb4+`q2scdp bɁ<߈ ( ,"RUv P%%@2B4>$6 ($# % !-.&nC^0#0! nC^0#0! ٱnk l00c/ <Db bɱ<߸!nCP#,! n@@#,! n@@#,! ٱnk l0Ѝ <b bc bɱ8߸!ٱnk l0Ѝ bc bɱ8߸!ٱnk l0Ѝ  bci bɱ8߸!ٱnk l0Ѝ  < bH bc? bɱ8߸!nԤD!,! ٱnk l0Ѝ bcB! bɱ8߸!nC^0"0! n@",! ٱnk l0Ѝ <b <bĔ bc bɱ8߸!p!P'U0% @A @@RP!1 鏤!@A鏤 phP'U0% #2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$z z,@D#"$b@d  B鏤 03#"#d b00CP%' @`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$||n` b0cl bm cb4! nԍ,1 qn|Qg h0i@,Dj   (>H 03H0 "'2#ɤèªӨҪ Xb Dk   (>$ҘH 03H0 "'2#`T L!40LbpcdPqP!1 2pqW1 2[rsW3 4[5 Q6 7[HPԍT}~!12Ѥ345;Lț,bdP mX1b]\ ?|+t2bp+Dp %0"2@`0,  03H0 "'2#d0f~33dp 0 !Ah0*bq< bl blbq<xq!n0@1"`23<Qan0!1AQrb 5!3!,6v!4!0t!q"uBt!6Dp&L t!q"qBt!1p !p"x2qCt1p t!A1p !8&a2t!q2t3pg r6Lp&0u1dpPe' "'9&aؔ ܔ%8&aȑȦ "HpqRHQLrPX\p݁0 c@PA "'$ 9&$8&au!v 5!s!w 3!B@s! u!!5!s! 3! ```u!ش u!ش s!ܴ t%8&aД  ȶTl||FPp&01cP d @ "'$ @ "'# 9&$8&aДD{6Lp&T s$bcQE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cŗ@+cŏ@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0c]s@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c/@+c'@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c{@+cs@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cBxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cµىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1 l u2 `;dMdɡ,btj @ #ɡ< bc\  >4btl ɡ< (>8bd>XbdЍdɡ<ɡ<ߨ!١nj m04@   @ ``` b$l  ɡ<(0 ȼ@   @ ``` ⺐+70-cd٦p b ,ɡ<ߨ1nm :e "X8> 01dЍ  @s!@@B@ e0@ 菑Q@```!@B@鏤 p@P'U0% pP'U0% ptP'U0% p6P'U0% np2  ? =01q1bp ," $ ` 0MAtbHJAd @ DBDA$逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$|&8١nj k0l@`bcˎm bcˈ-p 0 ɡ<ߨ1١n?!1@k@Bڡ>bck3!213q=p3p 03H04q-rBbp &Hq-t2bpx!S!!&Ɂ(l߈Anl m0} =bt =bk bcЍb4 4! nm 211;0!1drbq!@ 0cM#AI ```@.ij c=b/2b!! 2#20bM2Ab@"b."ij <!p}P'U0% nl m0- =bdP4 4! nl m0  4bcЍ4! nl m0  4= b . 4uMt=bp4=bu  4=bf4s ה !4! nl m0 . 4=b9  4bcЍ*4bcЍd4p ה 4! nl m0ؔ =b=̔ q =^0bdЍ>8 8!ٱnk l01ܤ2 p .Д (<bĔ <bД < bД <bɱ8bɱ8߸! !"RUxP%%* 0 0 0 0 00012#!00& ```012#nm d0r v- 00s-  ```0r 1pt 1u 20t 10w 1x 20 0! p]P'U0% pP'U0% pSP'U0% p~P'U0% ̤pR @T\ q2 0_502q1pRϳT bpoP'U0% plP'U0% paP'U0% فnpR`Pe͵pS;j jhͨڳ АͨũŚ  Ƞi iᚪh͘ٳ А͘͘ŪŪ pTP P0TP```ճ г ```000Ɂ߈1١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3 Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ!pyP'U0% 鏤!nԍ,! nԍ>,! nd p qDqDp, qDpDp,!, ,! nd p qDpDp, qDqDp,!, ,! nd m0p,P 0cqDqDp4cqDpDp  4p !4!4  4! nd m0p, 0cqDqDp4cqDpDp  4p !4!4  4! nm0@ 0c  4p !4! nm0@ 0c  4p !4! ne m0p:p 0cq%qBbPp4cqEpDp  4p!!` 0 4!4 ۔ 4! nԍ,! ٱnl @!ɱ8 p )q,rbp  ɱ8!ɱ8q,r03Z8bdp ɱ8'q,sbp  ɱ8!ɱ8q,s>bdp ɱ8!ɱ8 ɱ8߸1ّni j0m@kPpcЍ  ɑ@pݳVp  G ɑ@!ɑ@bЍ l 0ʔ  (>$ ɑ@bcdЍ>(ɑ@ b,0 !ɑ@   ɑ@p ߘAnd04P,! ١nj m0k@lP  ɡ ɡ@pAbMpAbcЍ^ɡ@bЍá0 !ɡ@ ɡ@ߨ1n@{ !, ,! n0R142325BAnm u  5 0s-Ds 3 !0! nm u  5 4p0bs=Ds 3 !4! nl m@u 5 4s,ܫs 3 !41 nl m@u 5 4s b0c܆s 3 !41 st"鏲 tdus2`@鏤 3B5鏤!@u 5sB`C3b@"r."b!"03@.T+8$Header:alloca.s 12.0$alloca: Caller probably not compiled with -ma |١nZH @Ƚ "HpqR3 4]r5 s t]0 1]u 2 8 j=(b@Pbcbcq*t2bp?-q*w20 bp-ɡTߨn "ZHB(q#sb0cp 0! 鏤!鏤 qBpBCCCC C1B0Bd ;503;### #0^3_#### #03#### #0$3#### #03#### #03q#### #03#### #03@#### #03 #### #0 A<4"0$$Header:cvd10.s 12.0$6ŀŘŠŬ,@P\pƄƘƤƼ,@TtDŽǔǬǼ0LlȌȬ8\|ɬ 0Tpʌʨ 4Xl|ːˤ˸4Xl|̰̔$Header:errlst.c 12.0$Error 0Not ownerNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo childrenNo more processesNot enough memoryPermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate ioctl for deviceText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument too largeResult too largeOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketOption not supported by protocolProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCan't assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerNo buffer space availableSocket is already connectedSocket is not connectedCan't send after socket shutdownToo many references: can't spliceConnection timed outConnection refusedToo many levels of symbolic linksFile name too longHost is downHost is unreachableDirectory not emptyToo many processesToo many usersDisc quota exceededRemote file system errorOut of remote working directoriesStale NFS file handleToo many levels of remote in pathNot a stream deviceTimer expiredOut of stream resourcesNo message of desired typeNot a data messageIdentifier removedDeadlock situation detected/avoidedNo record locks available$Header:abort.s 12.0$  |NT$Header:crt0.c 12.0$$Header:fpglue.s 12.0$' Lp0AOFPAFP_PRECISION@(#) Copyright (c) 1983 Regents of the University of California. All rights reserved. @(#)bugfiler.c 5.5 (Berkeley) 86/05/20.ack.formatsummaryerrors/log.redistBfXXXXXXRpXXXXXXRcXXXXXXUsage: bugfiler [-d] [-mmsg_mode] [maildir] a%s: bugs person is unknown can't chdir to %s can't chdir to %s /usr/lib/unixtomhunixtomh | | l x$ D  p t   cannot create %s wcannot fdopen temp file %s:field truncated ran out of memory Missing %s errorserrorsaCan't open %s %14.14s/%-3d %-51.51s Recv %-51.51s  , L %@  =t]]HL4  ~findheader(%s, %d) x chkfrom(%s) 4bsd-bugsMAILER-DAEMON| xchkindex(%s) usr/src/usr/src/folder = %s  file(%s, %s) Cannot open %s/%s %s/%dcannot open %s cannot create %s d$, $\$Trredistribute(%s, %d), no distribution list %s: %s no redistribution list found w+r%s: couldn't create redistribution list %s, \copy to %s Resent-To: %s, %sSubject: Untitled bug report Folder: %s/%d %s/%dr%s: disappeared? empty bug report? L\/usr/lib/sendmail -i -t -vdodeliver "%s" wdodeliver, "%s" failed %sEOF \XPreply(%s, %s, %s) w+rCan't create %s Reply-To: %s%s 4bsd-bugs@ucbvax.BERKELEY.EDUFrom: %s%s (Bugs Bunny) 4bsd-bugs@ucbvax.BERKELEY.EDUNo one to reply to To: %s Subject: Re: %s In-Acknowledgement-Of: Your message of %s. %s t h*N,$Header:bugfiler.c 12.0$bugsmailFromSubjectIndexDateMessage-IdReply-ToToCcDescriptionRepeat-ByFix 0 $Header:closedir.c 12.0$` X ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$|   $Header:exit.c 12.0$   $Header:fdopen.c 12.0$ P  $$Header:filbuf.c 12.0$ H  ~ $Header:findiop.c 12.0$ (T  !  $Header:flsbuf.c 12.0$ ,! \$Header:fopen.c 12.0$" `" ]T |$Header:fpabort.c 12.0$ # $Header:fprintf.c 12.0$ %D \$Header:freopen.c 12.0$&< &X |T$Header:fwrite.c 12.0$'\ 'x'$Header:getenv.c 12.0$((|T)<L]T\`*,nr P, -b--r+**4dL40+2b+|]044Lpasswd.byname 4passwd.byname50passwd.bynamex5%dpasswd.byuid67(8t8890:@:>innetgr: recursive overflow netgroupinnetgr: netgroup %s called recursively innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup innetgr: syntax error in /etc/netgroup #  |]x\=t^0pBLB~B*tD$Header:innetgr.c 12.0$D@$Header:isatty.c 12.0$DDE, EHFBFF|TG$Header:malloc.c 12.0$H0<HL/$|$Header:mktemp.c 12.0$H.pag.dir]\X\  IJ&LJ~KPTKndbm: split not paired X}X |NN$OP6PQR&=951-)%! 1ҿ14r(G3f!CY&d;oY7uVV0{- ;T>/ /2[1a=<f`Kvz_lG$6$w CM760!nY)6N1Vp&8DŽ)3+H]<517;+$g )#n0%3a$ ۘ 0Vn29D}1N7R#:86)W{:92}x'L~|\/qRRS|TSTD|T`\  $Header:opendir.c 12.0$UDUl/bin/shsh-c L  p t  V P$Header:popen.c 12.0$ W`$Header:printf.c 12.0$W4W`$Header:readdir.c 12.0$\XX $Header:rew.c 12.0$XX"l$Header:setuid.c 12.0$XYY,"h""ZD$Header:sleep.c 12.0$ZT $Header:sprintf.c 12.0$Z ^4$Header:strncpy.c 12.0$_40_P$Header:ungetc.c 12.0$___`@(#)yp_bind.c 1.1 86/09/24 Copyr 1985 Sun Micro`$]8 4D|aa\ bnb$cc}X"dZe$0f2g(gload_dom_binding: malloc failure.  |]i$Header:yp_bind.c 12.0$(@(#)yp_enum.c 1.1 86/09/24 Copyr 1985 Sun MicroYP_j|]kn|Tl mn^odpq"rf$Header:yp_enum.c 12.0$@(#)yp_match.c 1.1 86/09/24 Copyr 1985 Sun Micros]t|Tu$Header:yp_match.c 12.0$@(#)ypprot_err.c 1.1 86/09/24 Copyr 1985 Sun Microu$Header:ypprot_err.c 12.0$@(#)ypv1_xdr.c 1.1 86/09/24 Copyr 1985 Sun Micro\v\&$$\vv0$Header:ypv1_xdr.c 12.0$d@(#)ypxdr.c 1.1 86/09/24 Copyr 1985 Sun Microw%w*&,wPwvwx %xNx%x(0%y &$y8y^X$Header:ypxdr.c 12.0$y@(#)bcmp.c 1.0 84/10/03 IBMyzZZ|\|}`}X}$Header:calloc.c 12.0$@(#)clnt_udp.c 1.1 86/09/24 Copyr 1984 Sun Micro}clntudp_create: out of memory clntudp_create: out of memory  | $&","'L0"d"`!"$"8!.^d$Header:clnt_udp.c 12.0$  4h`\$Header:doprnt.c 12.0$ d'B@l0INFNAN()0%d"t $#!$Header:ecvt.c 12.0$`\$@`\#@$Header:gcvt.c 12.0$`] @(#)get_myaddress.c 1.1 86/09/24 Copyr 1984 Sun Microget_myaddress: socketget_myaddress: ioctl (get interface configuration)get_myaddress: ioctl" X | $Header:get_myaddress.c 12.0$$Header:getdirentries.c 12.0$$Header:getdomainname.c 12.0$ @(#)getnetgrent.c 1.1 86/09/24 Copyr 1985 Sun Micro(\]6Cycle detected in /etc/netgroup: %s. # syntax error in /etc/netgroup --- %s p |dT=t netgroup]xf$Header:getnetgrent.c 12.0$"t$Header:l10.c 12.0$| $Header:mul211.c 12.0$ $Header:mulu211.c 12.0$ (P$Header:mulu32.c 12.0$$Header:perror.c 12.0$: Unknown error ]% @(#)pmap_getport.c 1.1 86/09/24 Copyr 1984 Sun Micro<0 $Header:pmap_getport.c 12.0$!4@(#)pmap_prot.c 1.1 86/09/24 Copyr 1984 Sun Microx%$Header:pmap_prot.c 12.0$!*A7\(;w5^k(#$Header:rad2a.c 12.0$"D@(#)rpc_prot.c 1.1 86/09/24 Copyr 1984 Sun Micro%%%4!""r&$b"0"4$Header:rpc_prot.c 12.0$"x$Header:shlun.c 12.0$@\x# *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$Header:spdiv7.c 12.0$%lBFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ x $$Header:tentothe.c 12.0$&X@(#)xdr.c 1.1 86/09/24%%h%,%l .xdr_bytes: out of memory  |%%2%xdr_string: out of memory ]&,$Header:xdr.c 12.0$&@(#)xdr_mem.c 1.1 85/05/30 Copyr 1984 Sun Micro&&&&&&&& |TX4@`$Header:xdr_mem.c 12.0$'l@(#)auth_none.c 1.1 86/09/24 Copyr 1984 Sun Micro'\'X'`'d'h&!¾ $Header:auth_none.c 12.0$R#] lnd x###9::8< `$n7!819A` cC$N1  ,  P"p""7l  "X @@pD0$ $"X 1@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p |8anm g0d (> P!NTjdؐșdq'>$ Xi  q'+\!(Tr'>( Xj  r'\!Tmb0d>`  bЍVd .,c hbcdelbЍp ,p  0 q*!1*X*" s* q*q*@"ct*c t 7@!"" /bc nhp  0 q*!1*X*"  s  q*q*@"ct}*ctu G@!""?b0: xf b0 x`  &)p  0 q*!1*X*"  s  q*q*@"ct*ctbc hp  0 q*!1*X*"  s  q*q*@"cdt*c]tb0d;` .4c hb |X d (>< PPr' \!T TaLh!A١nj m0k@l  !ɡbp  kb vtm b0dsx !c|>p q c|>p b c|> p S $ c|c b>(b "cz|c b b0! T ca|c bЍ>,b "cN|c b sbcФ@ 0>0Ab4Ɂ  PA @<>Db!Ɂ  P>XbɁ  PɁ  P߈1C١nj k0l` bcЍ@k bɡ<.ɡ /@, > @, >  @,-@, >r  b4@,! nm ,c-1 @@- #1 ```0 nl (!1$m d (>*! bcЍ(b4 nl m.cФE@   @1dbЍ9 ! > b'D  @H >$bD  @! @A١nj00 1 2 Alccm @ 1bE 0*>bФC\ bck bcЍ+ 1* bcЍ" 2*ɡ@ 1bЍ 2*ɡ@ɡ@ߨ1Aّni j0 m plbc 40bɑ@ߘ!@ @@RP!1 鏤 A鏤!nm >č !0>bЍ 0 @ c@ `!1@ SDTU >PEE".B\hrOD=  6 OD+  $OD :  菔  OD @ @@  菤!!١nj  .mL ɡq 2@* / "+@* " +@* "" +@*+@*cЍC @* դ@*>5 @*cЍ* @ bɡ#X4"# D 9  4p, X v=ij  4p, X  !0U0,4u nЍm 4:03l5#  0`Ъ`6>`0 023$0 ```bФ1.!0 nlu͔  4v-p  !00,v-ij 4u ٱnm luȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "P, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*cY |є bЍ k 2X*( X ( 3 "d"&2 4X*( 1X*@l@qJKl@&1*ced s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d , X ( 4 4 nl X< @m ,  X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@)i bɑ@r w ɑ@@ a0B 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ!<Jsmb< Nlbd "c( bd "c >"A bЍd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd !|X/(230$b0cd X  ,AA ١mXSE (213pqs@ ;! ެ  ެ-=M]b8N1 *-=M]XSUps㉏qÔ@ j0b0L1 cXSU(S2301aɭߨ-$Header:fputs.s 12.0$ّnj k0l@X:( 0l>r ;8pm*0A ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdm 0 > ;0 b0/ )J m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1p>PU0% np2Д0002XB   r20 q"0A8  0 0-0 pYPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPU0% a`0d0H@b&c`ccc036p2$c "` c d c e 8 0q2!!!a ! !!a a$Header:index.s 12.0$nd0t3@  4!4 p%PU0% 鏖c ( $Header:lmul.s 12.0$pPU0% ١nk -x 2j ݭx ( 墲 bbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cgىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cY@+cQ@+ y , )p)! 0)q) !1)X "s  q) q)! 1) c#ىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1  u2 `;bc3!Fromremotefrom!!Return-Path: <%s> Return-Path: %s Return-Path: <%s> #0l$#T!   Tunixtomh: Ran out of memory From No from or date fieldDate field not legal date,l ttyx( j  t   4$Header:unixtomh.c 12.0$ (&$Header:calloc.c 12.0$ ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$H P$Header:exit.c 12.0$H(L <$Header:filbuf.c 12.0$lZPB$Header:findiop.c 12.0$` H(tL d$Header:flsbuf.c 12.0$X$Header:fopen.c 12.0$\ $ H $Header:fpabort.c 12.0$  xL$Header:fprintf.c 12.0$4L$Header:fseek.c 12.0$P8l$Header:ftell.c 12.0$d`T$Header:getenv.c 12.0$T $Header:isatty.c 12.0$$@  `:'$Header:malloc.c 12.0$ ($Header:perror.c 12.0$ D: Unknown error $ L !!$% %($$''( (8 * l\t   $Header:doprnt.c 12.0$  d'B@BlB BB0INFNAN()0   x p  8$Header:ecvt.c 12.0$Q0RQL`\$@QP`\#@ QT8'$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$RX $TlT T  4$Header:l10.c 12.0$ <V X$Header:mul211.c 12.0$ \V`$Header:mulu211.c 12.0$ |V$Header:mulu32.c 12.0$ *A7\(;w5^k(W p$Header:rad2a.c 12.0$ X8$Header:shlun.c 12.0$ t *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2X$Header:spdiv7.c 12.0$BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ Yd x$Header:tentothe.c 12.0$#] loI  ###Subject: Short summary of the problem Index: / 4.3BSD Description: Detailed description of the problem, suggestion, or complaint. Repeat-By: Procedure to repeat the problem. Fix: Description of how to fix the problem. If you don't know the fix, don't include this section or "Fix:". ---------- Remove this line and what's below it. (only for reference) ------ ::= bin | etc | games | ideas | include | lib | local | man | misc | new | sys | ucb | usr.bin | usr.lib #] lnb ###9:::(:8L& x dn7!819A` cC$N1 ,  P"p""7l  " 4t@pD0$ $" 4e@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p  X18 2panf g070at`p'>^p ҔaWؐș X5X46T1ȱX98;=?DLPH@><:px32. t]`q7.tatatؐș X5X46T1ȱX98;=?DLPH@><:px32u!N> xc 0kN)(>t$| 5kp'> p ``b0$p'>(jp Qؐș X5X46T1ȱX98;=?DLPH@><:px32r`p'4>,p  00p'cЍp  atp'>8B ".<0pGBAT@ e0RSQcAAT@Cwtaܑtp'>LB  paʑtp'>PB{  qatatX5X46T1ȱX98;=?DLPH@><:px32p'>Tؐș d=  p'! .Xtp7at0N)(>| tThq1v! l <t "T@ .  ݁T@ ``` 0$́T@   ݁T@  0ݱTq1y! % 03#0#ݱTq1x!  03#0#ݱTq1{!  03#0#ݱTq1}!  03#0#ݱTq1!  r03# 0#ݱTq1!D  `03#,0#ݱTq1!L  N03#00#ݱTq1!P  <03#$0#ݱTq1!H  *03#(0#ݱTq1!@  03#40#ݱTq1~! v 03#80#\ "#<|! '03#L0#z! 03#@0# "X0 "\0 "`0 "#D0 "00c`0b p=t. >$5tp .0,t.8&tb0d4 X  .@tX.%.HctȁY>LbB b>PB GFݮ؀Ȉd0  b.Tctp !p .X>\tp,` c .dt.h>lt "l0b0d 0` aؐș X5X46T1ȱX98;=?DLPH@><:px3쉏2h!E9an0!pݟ#H#D<@DX@]03\0Wd .> .ذȻc.>pp,!0,` xb c@(hp,` b (p<2 "/@DX@p\p h "` a03#(ȁbd klg 03#$bd `lf 03#bd Ulj 03#bd Jlk 03#,bd ?ll 03#4bd 4lh @ < 8 4 `0 p,$(:b@pi "X0hp .> 3bcЍ-ȈÔ ; 7 3 `/ p+8<;b@pi "X0hp .0>4bcЍȈ   ` pHbc|p=`0b p0 1 0=d0 `6b@pi` "p0@ b03#bdЍ lj 03# bdЍlk "h !+ )X\  :bAp i;bApi "X0bcЍȈbtc)1bApbti)\p 103#0Abll P@)S8q ```bcЍPB8LqH@)x1nԍ`  #,! @#@ HD ! BA!# b@nl - .4>854.>(4.>4.$>(4.,>04.<>@4.D>H4.L>P4.T>X4.`>d4  u=1 5=v-^!6- $ #x  v-^! 6-= ^ u=ɒ1 5=v-‘!6-4 $ #x v=,* 16=4= 4,= 4 E 7 u= , 'O *e} _ * .M /c \j `% { }\4 u= zu= nФ@D03#@0 03003#( !0b0 ّnj ذȻJ@4bA_A@b A""```_ p bcd b@2b=A _ bɑ@p ɑ@ߘ``qng h0 "#X0r1Bb@0 l X qHipcb@| k b$bqHb@"*  \ۓ >"@(b, b$0qH)x1AفnذȻ#XpbDh*@: p+>"@J ɁT@:둁@tAc !ɁT8bЍ3HiД @ : @ :```r 2 >"@bɁTiqKbcЍL! bɁT@ : @ :```mbbD`>,"@p b ‘bcH0!ɁT߈A@D#X@4#鏤 e @ 0 AQ@ 0@40 ``` | : 0鏤!0 : | A@40 : |0 :鏤 A@4@4@ : !@ :```:!ٱnc #Xbl @  ɱ8@#@ܔ AБ@ @ ɱ8#ؑ@ 00bA b c 0@bAb0ɱ8߸nd "#X@ ,@4!@20 A0!@ :!,@ڤ , ne "#XJ@ ,@E!@B@ A@!@@ ,=ܑ! ,! @BpS!@ :\EQ@B!@Qp#0S``PU#LP !@eA ] e@P  b-菑1!A @R@P bP菑1!A 1ٱnk  ɱ8@  ɱ8"# l #Tݿ#P a 0  p-bɱ8߸١nĤذȻ#Pp;@ @-" pܤ"-!-p,"0,A-!-p,!0,p;p,D B:**⣔0p,m M 0 p;@10;  "bP//zxrpnljhfdb`p,D B:**⣔0ˤp,m M 0 wp;Ўs@  np;p,@0( B **⠔p,m M= 0 cp,--Lp;pL$ B:JJ⣔0pL$B0Lɡݜ@bn|x ␐`bx| 0 0 Dbɑ@ߘ١nk #dc.@!1```v+` b" l@ !@ !@ ȫp:`0b"8@ !@ !@ p:bP`p:3dH`p:3d@`p:3d8`l u d 2 u 0d0 u 0db`bɡ<ߨe Q^`R n mnl m0 bcc0   bc{0 b4! nm 6bЍ {0 pqTn 1 @Q  !7!81b@ `09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$'nm X= ( 0 DxP  Dxr 5X   "  `2 -1 } b2- X ( X ( 3  $ ,J 8 ,(? r=X -AsMG0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxn#u͔%.l>#X4"# D 9 P 4p, X v=ij P 4p, X  !0 a0,4u nЍBm 4 F03#5#  0`Ъ`6>`0 023$0 ```bФ1 .!0 n#u͔  4v-p  !00,v-ij 4u ٱnm #uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n " |, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍ} k 2X*( X ( 3 " "&j 4X*( 1X*@l@qJKl@&1*c{d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d6, X ( 4 4 nl X< @m ,U X  r, 0 2 1 3 ( b4 ١nj ȱ/l!<Jmb< NbMd "c bAd "c >"A bЍ-d "cЍ !1ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd !X/(230$b0cdX  ,AA ّnj k0l@A +Ѥb@ a. 0 2c 0b@*j bɑ@r w ɑ@@ a0B 0ެ3  ( @ r( ( 12bɑ@ߘ1p>PPU0% pYPPU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPPU0% ptPPU0% nd0t3@  4!4 p%PPU0% JAd @ DBDA$2逡/################################# # #c bAﯤ0#!` 鏤0،b0`0؍1ؔ00$Header:ldiv.s 12.0$2363H鏖c ( $Header:lmul.s 12.0$3pPPU0% ١nk #-x 2j ݭx t 墲 bhbɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡ@ 0 @ 0 ```6q 1q 0 ```6T@  6 ```H xW7HA0 `0 P0e ?c2q 0 ```@  ``` rp 20`1ȱ@+ Ϥu1 *p)! 0)q)0!1)X "s  q)0q)! 1) 0cu1y , )p)! 0)q) !1)X "s  q) q)! 1) cىUȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c+@+c#@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+cw@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cIىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1 l u2 `;bcw3!" "." {NONE} {NONE} {NONE} 4a "/" "?" "/" {NONE} {NONE} {NONE} * special keys 67 "\0" "\033\0" "\0" {NONE} {NONE} {NONE} insert 64 "\177" "\177" "\177" {NONE} {NONE} {NONE} delete 08 "\33" "\33" "\33" "\33" {NONE} {NONE} esc 29 "\40" "\40" "\40" "\40" {NONE} {NONE} space 63 "\033A" "\033A" "\033A" {NONE} {NONE} {NONE} up-arrow 60 "\033B" "\033B" "\033B" {NONE} {NONE} {NONE} down-arrow 6a "\033C" "\033C" "\033C" {NONE} {NONE} {NONE} right-arrow 61 "\033D" "\033D" "\033D" {NONE} {NONE} {NONE} left-arrow 6d "\033E" "\033e" "\033E" {NONE} {NONE} {NONE} page-down 65 "\033F" "\033f" "\033F" {NONE} {NONE} {NONE} end 6f "\033G" "\033g" "\033G" {NONE} {NONE} {NONE} page-up 6e "\033H" "\033h" "\033H" {NONE} {NONE} {NONE} home * pf keys 07 "\033S" "\033I" "\033S" {NONE} {NONE} {NONE} f1 0f "\033T" "\033J" "\033T" {NONE} {NONE} {NONE} f2 17 "\033U" "\033K" "\033U" {NONE} {NONE} {NONE} f3 1f "\033V" "\033L" "\033V" {NONE} {NONE} {NONE} f4 27 "\033W" "\033M" "\033W" {NONE} {NONE} {NONE} f5 2f "\033P" "\033N" "\033P" {NONE} {NONE} {NONE} f6 37 "\033Q" "\033O" "\033Q" {NONE} {NONE} {NONE} f7 3f "\033R" "\033X" "\033R" {NONE} {NONE} {NONE} f8 47 "\033Y" "\033-" "\033Y" {NONE} {NONE} {NONE} f9 4f "\033<" "\033>" "\033<" {NONE} {NONE} {NONE} f10 56 "\033[" "\033]" "\033[" {NONE} {NONE} {NONE} f11 5e "\033," "\033." "\033," {NONE} {NONE} {NONE} f12 * other codes 5c "\\" "|" "\\" "\34" {NONE} {NONE} 66 "\b" "\b" "\b" {NONE} {NONE} {NONE} backspace 5a "\r" "\r" "\r" "\r" {NONE} {NONE} enter 79 "\r" "\r" "\r" "\r" {NONE} {NONE} num-enter 0d "\t" "\b" "\t" {NONE} {NONE} {NONE} tab 5b "]" "}" "]" "\35" {NONE} {NONE} 0e "`" "~" "`" {NONE} {NONE} {NONE} * numeric pad 70 "0" "0" "0" {NONE} {NONE} {NONE} num-0 69 "1" "1" "1" {NONE} {NONE} {NONE} num-1 72 "2" "2" "2" {NONE} {NONE} {NONE} num-2 7a "3" "3" "3" {NONE} {NONE} {NONE} num-3 6b "4" "4" "4" {NONE} {NONE} {NONE} num-4 73 "5" "5" "5" {NONE} {NONE} {NONE} num-5 74 "6" "6" "6" {NONE} {NONE} {NONE} num-6 6c "7" "7" "7" {NONE} {NONE} {NONE} num-7 75 "8" "8" "8" {NONE} {NONE} {NONE} num-8 7d "9" "9" "9" {NONE} {NONE} {NONE} num-9 7e "*" "*" "*" {NONE} {NONE} {NONE} num-* 7c "+" "+" "+" {NONE} {NONE} {NONE} num-+ 84 "-" "-" "-" {NONE} {NONE} {NONE} num-- 71 "." "." "." {NONE} {NONE} {NONE} num-. 77 "/" "/" "/" {NONE} {NONE} {NONE} num-/ * keys with meta definitions 5f {FN_SCROLL} {FN_SWAP} {FN_SCROLL} {FN_SWRESET} {FN_SWITCH} {FN_CLICK} scroll-lock 62 {FN_DEBUG} {FN_DEBUG} {FN_DEBUG} {NONE} {FN_KILL} {FN_RESET} pause/break 57 {FN_PRINT} {NONE} {FN_PRINT} {FN_LOG} {NONE} {FN_SET} print-screen 13 {NONE} {NONE} {NONE} {NONE} {NONE} {NONE} world-trade-key 53 {NONE} {NONE} {NONE} {NONE} {NONE} {NONE} world-trade-key #]lnNށ ###%%%%%%%%&H! __.SYMDEF 597790118 0 10 100666 8464 ` !T!T!T!T !T*!T2!T;!TD!TN!TY!Te!Tm!Tv!T!T!T!T!T!T!T!T!T!T!T!T!T!!T/!T=!TL;NS;N];Nb;Nl;Nu;N;N;N;N;N;N;N;N;N@@@@@ @@-@@@J@U@c@r@|@@@@@@@@@@@` ```!`+`4`>`E`M`U`^`i`u`~```````````kkkkkk$k-k7k@kJkSk]kjkxkksssssssssssssss(s5sDsTs]sgsqs|ssssssssss $09DS\fp{ !-7BO]dns|'/7?GP^W^a^f^q^|^^^^^^^^^^^^^^^ ^ ^ ^ $^ .^ 9^ A^ J^ Z^ k^ |^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ '^ 4^ BӮ IӮ SӮ XӮ bӮ mӮ sӮ yӮ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ 'Ӯ :Ӯ KӮ ]Ӯ jӮ xӮ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ Ӯ 3Ӯ FӮ ZӮ kӮ }: : : : : : : : : : : : : : : : #: 2: @: O: ^: n: z: : : : : : : : : : :: ::":*:4:?:N:^:m:}:::::::::::$:1:>:L:Y:g:s:::::::::::::,:;:K:]:p:~::::::::::::":1:?:N:Y:e:t::::::::: ::/:::F:N:W:d:r:z:::::::::::: :1:A:R:b:s::::::::.oVncs.oVhc2.1n.oVO_ch_debug_ch_error_ch_fix_.ch_fix_ch_init_.ch_init_ch_newops_.ch_newops_ch_new_.ch_new_ch_free_.ch_free_ch_sizepattern_.ch_sizepattern_ch_pattern_.ch_pattern_ch_acisread_.ch_acisread_ch_pmpread_.ch_pmpread_ch_aciswrite_.ch_aciswrite_ch_pmpwrite_.ch_pmpwrite_ch_textwrite_.ch_textwrite.oVncs.oVhc2.1n.oVO_cr_debug_cr_init_.cr_init_cr_xyremark_.cr_xyremark_cr_xymark_.cr_xymark__cr_return_._cr_return_cr_free_.cr_free.oVncs.oVhc2.1n.oVO_fnt_debug__fnt_prepend_._fnt_prepend__fnt_acisoffsets_._fnt_acisoffsets_fnt_init_.fnt_init_fnt_set_path_.fnt_set_path_fnt_open_.fnt_open_fnt_close_.fnt_close_fnt_addch_.fnt_addch_fnt_char_.fnt_char_fnt_get_path_.fnt_get_path_fnt_add_dir_.fnt_add_dir.oVncs.oVhc2.1n.oVO__ht_new_._ht_new__he_new_._he_new__hash_._hash_ht_new_.ht_new_ht_rehash_.ht_rehash_ht_copy_.ht_copy_ht_put_.ht_put_ht_get_.ht_get_ht_remove_.ht_remove__ht_print_._ht_print_ht_iterate_.ht_iterate.oVncs.oVhc2.1n.oVO_pu_debug_u_get16_.u_get16_u_get24_.u_get24_u_put16_.u_put16_u_put24_.u_put24_u_direction_.u_direction_u_rotatecoord_.u_rotatecoord.oVncs.oVhc2.1n.oVO_rp_debug_rp_state_rp_active_rp_x_rp_y_rp_pgwidth_rp_pgheight_rp_memory_rp_memused_rp_orient_rp_display_rp_file__rp_loadmap__rp_freespace_._rp_freespace_rp_init_.rp_init_rp_clear_.rp_clear_rp_close_.rp_close_rp_activate_.rp_activate__rp_download_._rp_download_rp_rotate_.rp_rotate_rp_index_.rp_index.oVncs.oVhc2.1n.oVO_pr_debug_pr_constraint_pr_traytmp_pr_tray_pr_copies_pr_tmpcopyknt_pr_open_.pr_open_pr_eject_.pr_eject_pr_set_display_.pr_set_display_pr_image_.pr_image_pr_set_pgwidth_.pr_set_pgwidth_pr_set_pgheight_.pr_set_pgheight.oVncs.oVhc2.1n.oVO_txt_debug_txt_flush_.txt_flush_txt_putc_.txt_putc_txt_putnstr_.txt_putnstr.oVncs.oVhc2.1n.oVO_u_debug_u_error_fil_u_exitfunc_u_error_level__errmsg_._errmsg_u_Date_.u_Date_u_get_hostname_.u_get_hostname_u_isprefix_.u_isprefix_u_SelectStr_.u_SelectStr_optional_optarg_optind_optany_getopt_.getopt.oVncs.oVhc2.1n.oVO_v_p_debug_v_f_debug_v_l_debug_v_debug_v_new_.v_new_v_free_.v_free_v_reset_.v_reset_v_draw_.v_draw_v_move_.v_move_v_flush_.v_flush_v_textflush_.v_textflush_v_join_.v_join_v_nofill_.v_nofill_v_fill_.v_fill_v_no_dflt_fill_.v_no_dflt_fill_v_set_dflt_fill_.v_set_dflt_fill_v_set_width_.v_set_width_v_set_dflt_width_.v_set_dflt_width_v_dflt_width_.v_dflt_width_v_set_ends_.v_set_ends_v_set_dflt_ends_.v_set_dflt_ends_v_dflt_ends_.v_dflt_ends.oVncs.oVhc2.1n.oVO_vp_debug_vp_active_vp_x_vp_y_vp_pgwidth_vp_pgheight_vp_orient_vp_fonts_vp_pending_vp_flushfun_vp_init_.vp_init_vp_rotate_.vp_rotate_vp_vectors_vp_vec_nofill_.vp_vec_nofill_vp_vec_set_width_.vp_vec_set_width_vp_vec_set_ends_.vp_vec_set_ends_vp_vec_fill_.vp_vec_fill_vp_vec_absolute_.vp_vec_absolute_vp_vec_relative_.vp_vec_relative_vp_vec_h_absolute_.vp_vec_h_absolute_vp_vec_v_absolute_.vp_vec_v_absolute_vp_vec_h_relative_.vp_vec_h_relative_vp_vec_v_relative_.vp_vec_v_relative_vp_draw_vectors_.vp_draw_vectors.oVncs.oVhc2.1n.oVO_p_open_.p_open_p_close_.p_close_p_marked_.p_marked_p_get_path_.p_get_path_p_set_path_.p_set_path_p_add_dir_.p_add_dir_p_get_copies_.p_get_copies_p_set_copies_.p_set_copies_p_next_copies_.p_next_copies_p_get_tray_.p_get_tray_p_set_tray_.p_set_tray_p_next_tray_.p_next_tray_p_eject_.p_eject_p_clear_.p_clear_p_set_display_.p_set_display_p_ring_bell_.p_ring_bell_p_jog_.p_jog_p_rotate_.p_rotate_p_get_pgwidth_.p_get_pgwidth_p_set_pgwidth_.p_set_pgwidth_p_get_pgheight_.p_get_pgheight_p_set_pgheight_.p_set_pgheight_p_image_.p_image_p_fnt_activate_.p_fnt_activate_p_fnt_deactivate_.p_fnt_deactivate_p_fnt_open_.p_fnt_open_p_fnt_close_.p_fnt_close_p_fnt_addch_.p_fnt_addch_p_fnt_char_.p_fnt_char_p_ch_width_.p_ch_width_p_ch_height_.p_ch_height_p_ch_LTspace_.p_ch_LTspace_p_ch_RBspace_.p_ch_RBspace_p_ch_totalwidth_.p_ch_totalwidth_p_ch_offset_.p_ch_offset_p_ch_encoding_.p_ch_encoding_p_ch_sizepattern_.p_ch_sizepattern_p_ch_pattern_.p_ch_pattern_p_cr_mark_.p_cr_mark_p_cr_remark_.p_cr_remark_p_cr_xymark_.p_cr_xymark_p_cr_xyremark_.p_cr_xyremark_p_cr_return_.p_cr_return_p_cr_xreturn_.p_cr_xreturn_p_cr_yreturn_.p_cr_yreturn_p_cr_free_.p_cr_free_p_mv_absolute_.p_mv_absolute_p_mv_relative_.p_mv_relative_p_mv_h_absolute_.p_mv_h_absolute_p_mv_v_absolute_.p_mv_v_absolute_p_mv_h_relative_.p_mv_h_relative_p_mv_v_relative_.p_mv_v_relative_p_putchar_.p_putchar_p_putc_.p_putc_p_putstring_.p_putstring_p_puts_.p_puts_p_putnstring_.p_putnstring_p_putnstr_.p_putnstr_p_vec_nofill_.p_vec_nofill_p_vec_fill_.p_vec_fill_p_vec_set_width_.p_vec_set_width_p_vec_set_ends_.p_vec_set_ends_p_vec_absolute_.p_vec_absolute_p_vec_relative_.p_vec_relative_p_vec_h_absolute_.p_vec_h_absolute_p_vec_v_absolute_.p_vec_v_absolute_p_vec_h_relative_.p_vec_h_relative_p_vec_v_relative_.p_vec_v_relativechar.o 597746411 0 10 100666 6589 ` xnd BBN>д4 !,4:.̔ e  tt% 8>NԒ1>д4 > <>, <b,!, nqԔB>0 ? t `   /c  !"###$&3!%#4!1.,!``` ١nj k0l@mP 01234ɡ<ߨQ١nj k0l@mP.x  t x ! "#$@%D3H4L5ɡ<ߨ١nl " ɡ< D   Cu, Фb Д  r tLs >, Wgp 0q8@#118bd @ B>\ > 2 aL aLp 0q8@#118d  $ "xP// <:8Vͮ\  t \ j L5%jp p 0q8@#118b0'p0q1bpp 0q(@! 1(b qkppp 0q(@! 1(b! qkppp 0q(@! 1(b" qkppp 0q(@! 1(b# qpp 0q(@! 1(b$ Hp b *qkpp b!*qkpp b"*qkpp b#*qp b$* b3*Q b"- #P:3*  qݔ sJbcp   % s*4*sJ1esJ$  aL s 0 0 baLhQٱnk l0b ɱ DQ P !R "S #T $:AesL@ |PWQG>b`|SWRG>0b`|TG>Lb`|bp\b`|bpl PЈb`>ldЍ| >pb`| d >tb`| >xb`|Qb@ҹ T` 'p&! 0&q&*!A1&X "s  q&*q&!01& *c`&p&! 0&q&.!1&X "s  q&.q&! 1& .c`𒁴 p&! 0& q&!1&X "s  q&q&@"c`*c`PЎMs'aLh1J.K)JJiz.{BsBrEe UM ECan't free enough CHARs in ch_fix() good luck. TR$Rotated font patterns not supported characters will be printed sideways (sorry). Expected magic byte 0x00, found 0x%.2x completing read T & character %d height= %d, width= %d LTspace= %d, RBspace= %d offset= %d length= %d %d) $Header:char.c 12.0$R vpphp p4p!":J!&N&l`&&(&`&&&&"(@(^(|((*"!.. 0 0 0 0 00 <4 H4 T4 `4 l4 x6 0 0 00 D0 0 0 0 0 \0 p0 . 0 *: <: N: ^: x: : : : :T0000@<@t PxP|@@P@@@@@@ P@@D%PH'PL)PP@T-PX@\/P`@d3Ph5Pl@9P !+5 B$N(Z,fTnw}R#$0=KRZamzhTx &"+5C R[e.oVncs.oVhc2.1n.oVO_rcsid_ch_debug_ch_error_ch_freelist_ch_numfree_ch_maxfree__ch_errpat_ch_fix_.ch_fix_free_.free__errmsg_._errmsg_ch_init_.ch_init_malloc_.malloc_ch_newops_.ch_newops_ch_new_.ch_new_ch_free_.ch_free_ch_sizepattern_.ch_sizepattern_ch_pattern_.ch_pattern_ch_acisread_.ch_acisread_fread_.freadlmul$$_ch_pmpread_.ch_pmpread__filbuf_._filbuf_u_get16_.u_get16_u_get24_.u_get24_ch_aciswrite_.ch_aciswrite_fwrite_.fwrite__flsbuf_._flsbuf_ch_pmpwrite_.ch_pmpwrite_u_put16_.u_put16_u_put24_.u_put24_ch_textwrite_.ch_textwrite_fprintf_.fprintf creg.o 597746418 0 10 100666 1275 ` DDPHnq03S^N`@b1RRA!1.菤!``` q 鏤 2!B0322鏤!nN@ q $!4 "2$1b@!١nj l0m@ q  ɡ@r,ذȻp;2 @D03 0ep;2<  P   Q  b  !ɡ@ߨ1n q  ܔ 11".ܤ!Lp\$Header:creg.c 12.0$`` p p ppp&p6p@@@@@P P$@(@ !+2;HQ[hLvp \#.oVncs.oVhc2.1n.oVO_rcsid_cr_debugL00BSS_cr_regs_cr_freelist_cr_init_.cr_init_cr_xyremark_.cr_xyremark_vp_orient_cr_xymark_.cr_xymark__cr_return_._cr_return_u_direction_.u_direction_vp_pgheight_vp_pgwidth_u_rotatecoord_.u_rotatecoord_vp_x_vp_y_cr_free_.cr_free font.o 597746435 0 10 100666 8200 `  `dД 7383xB8C7#7482鏤!ne `@ P 0 !,%%/, >$@>( @ ,1 antl Д a@ذȻp "c b!ca@ a@rpkp& 8jȾi' bm h hbcm pFbce bc ba@dp& ͔ bЍ$ a@h#ٱnk d0AMm .-!l cb0.X > @ASRBCSRD >b\b9`m b.`m bɱ8B > >D Ԥ ɱ8߸!nd0A, ,B ```> p>, p ,! nl t PNԴ@ 5>̔0 xӔ t- `4 NԒANش@ >̴ xݔ@ > 0>8 0u,>\d4,  4Ԑ>̴ b0c3h̤!4 qng h021v' >k r'4@eb!q Tt' 0@ bp] bq TrP0dPBbJ02sb0ҐQ xt0b1deЍ !qc 0rᐔ qs7c0#x0b1deЍ !q Tx!ٱnk v+>l  ɱ8m > dЍ>4 @b8de- vK>H >t  ɱ8r+ Pc3c1pdBcB0s;c40S 0@os[e_05e0E bؤ!ɱ8߸Bnm r  482-s  483-qMAbЍX<0bФ0@0B >$>,  0 ١nl m0t( x ɡDkЪr b p2b@^P 0qLAGb1@j Nr >b p pR0 dЍ>D Ԥ ɡD0Qb1@e$j qQ] $>d"dЍqQ> dPB >$>̤ ԤbɡDtߨ!١nj k0l@ u+ p (m u+ p0 b1- % 4bcA4!ɡ<ߨ1ٱnk0l@ kpt bЍT0  ɱ8r bЍP  ɱ8q` c1>02>.  .b0.t].1d(+ pM>$>8 .ɱ8 ɱ8߸1nqȔ?!`  0  . 0Ѥ c@P .7Tb1EER`9I&;>PdrM9t9!7 :T H` ZV h` vV \ % = l x   ^ 1 ` 8` dE ` j E B%@(@,@lPp@|PPPP P"P$P@(P*P@@<@0P2P@@6P8P@:PGOXakt~ \v "*;MT\ckw$z#1<HOWbn<{D  (X  p #t. v:xD ~O] ly .oVncs.oVhc2.1n.oVO_rcsid_fnt_debug_fnt_names_fnt_opened_fnt_closed_fnt_fileknt_fnt_filemax_fnt_pattern_fnt_ptrnsize_fnt_offsetops_fnt_datopsL00BSS_fnt_path__fnt_prepend_._fnt_prepend__fnt_found_._fnt_found__errmsg_._errmsg__fnt_pathname_._fnt_pathname_stat_.stat_strlen_.strlen_malloc_.malloc_strcpy_.strcpy_realloc_.realloc_sprintf_.sprintf_free_.free__fnt_datname_._fnt_datname_rindex_.rindex_strcat_.strcat__fnt_offname_._fnt_offname__fnt_getdatfile_._fnt_getdatfile_fclose_.fclose_fopen_.fopen__fnt_pmpoffsets_._fnt_pmpoffsets_fread_.fread_fseek_.fseek_ch_pmpread_.ch_pmpread_ch_free_.ch_free__fnt_acisoffsets_._fnt_acisoffsets_getw_.getw__fnt_getdata_._fnt_getdata_calloc_.calloc__fnt_loadchar_._fnt_loadchar_ch_acisread_.ch_acisread__fnt_skip_._fnt_skip_ftell_.ftell__fnt_ptrn_._fnt_ptrn_fnt_dflpath_fnt_init_.fnt_init_ht_new_.ht_new_ch_newops_.ch_newops_fnt_set_path_.fnt_set_path_fnt_open_.fnt_open_ht_get_.ht_get_ht_put_.ht_put_fnt_close_.fnt_close_fnt_addch_.fnt_addch_fnt_char_.fnt_char_fnt_get_path_.fnt_get_path_fnt_add_dir_.fnt_add_dir_strcmp_.strcmphash.o 597746443 0 10 100666 2578 ` xhn.Ԕ .r,,, n.Ԕ .r,,, nA@Bbb0,! nl  4m 0b41-@0L`@b02AL 2=b4q- ّni j0 ɑ@bk q)pI`ЪcpÔ p,crL"q cp2 q c0l@q)pIѴ  2 ݞbɑ@ߘ!١nj 1 ɡ b q8bp rp ɁD߈1١nj k0p:bЪ"q bp” q,p r̔p:Ѵ !ɡ<ߨ!@  %-2d) $$Header:hash.c 12.0$( h zHt ~ "\**@@ P@ @$@(@,P0@4@8@<P@@D@H@LPP@TPX!P\@`@d@|)P@ x!|*3<ENX`ir@|   &/7@KWbnw$.oVncs.oVhc2.1n.oVO_rcsid_ht_free_he_free_ht_glbl_he_glbl__ht_new_._ht_new_malloc_.malloc__he_new_._he_new__hash_._hashldiv$$_ht_new_.ht_new_calloc_.calloc_ht_rehash_.ht_rehash_free_.free_ht_copy_.ht_copy_ht_put_.ht_put_strcmp_.strcmp_strlen_.strlen_strcpy_.strcpy_ht_get_.ht_get_ht_remove_.ht_remove__ht_print_._ht_print_fprintf_.fprintf_ht_iterate_.ht_iteratepmp_utils.o 597746452 0 10 100666 2170 ` Pnl p  0 q<@#11<p  0 q<@#11$t>0 t ,>< dt>h t ,Q Hl*u_rotatecoord can't rotate U_ROT_ILLEGAL ignored u_rotatecoord -- unknown direction 0x%x ignored $Header:pmp_utils.c 12.0$$LVj8L``Zh@@P @@ P@@ @P !+4>GQZldmw*.oVncs.oVhc2.1n.oVO_rcsid_pu_debug_u_get16_.u_get16__filbuf_._filbuf_u_get24_.u_get24_u_put16_.u_put16__flsbuf_._flsbuf_u_put24_.u_put24_u_direction_.u_direction_u_rotatecoord_.u_rotatecoord__errmsg_._errmsgrp.o 597746474 0 10 100666 7064 ` H١nj N030`bpRP z  { {% kP  t>p#! 0#q#!1#>X "s  q#>q#! 1# ԍ>p#! 0#q#y !)1#X "s q#y  .q1>q#@"y z+:b0 rbɡp 0q#!1#>X#"  s  q#>q#! 1# ȍ>p 0q#!1#X#"  s  q#>q#! 1# ǍذȻ0`l p, 0ܐ  >p 0q#!1#>X#"  s  q#>q#! 1# >p 0q#!1#>X#"  s  q#>q#! 1# ֍>p 0q#!1#!>X#"  s  q#>q#! 1# >p 0q#!1#>X#"  s  q#>q#! 1# ҍ>p 0q#ґ!1#X#"  s  q#>q#!1# !ɡ<ߨnԔ} n>p#! 0#q#!1#>X "s  q#>q#! 1# ֍>@Np#! 0#q#B!1#>X "s  q#B>q#! 1#$>b0 .ܤ./!,> nԔ E>p#! 0#q#!1#>X "s  q#>q#! 1# >.>bb,``` ّni  ɑ@ y p LȰ kФ@ "0`@cpk@A bɑ@0 0Tj 0b"b*1 ```:9 9`b 0y0z 0  # X > \>0 \  : .ݞ  ( ; >p#! 0#q#!1#>X "s  q#>q#! 1# Ӎ>p#! 0#q#!'1#X "s q# .q1>q#@"+ܤ!ɑ@ߘفnh i0bTj Q "Q” P "P,`  $!c`b \ bЍ O> >0 b.` "0p 0H od`@DO "c`кp#0є  " >lp 0q#!1#>lX#"  s  q#>lq#! 1# |>lp 0q#!1#>lX#"  s  q#>lq#! 1# |>lp 0q#!1#->lX#"  s q# >lq1>lq#@"| >l(|>lb>lb R) "R">l S) "S">l T) "T">l>lbX>lp 0q#!1#>lX#"  s  q#>lq#! 1# |>lp 0q#!1#->lX#"  s q# >lq1>lq#@"| >l(|>lp 0q#!1#->lX#"  s q# >lq1>lq#@"| >l+|>lp 0q#‘!1#->lX#"  s q# >lq1>lq#@"| >l,|>lp0   "q#!1#M>lX#" . s *   "q# >lq'1>lq#@"|>l   " |>lp0   "q#!1#M>lX#" . s *   "q# >lq'1>lq#@"|>l   " |>lp0   "q#!G1#X#" + s '   "q# .lq"1>lq#@"|   " |b\ ^l1d`,)>lp#! 0#q#!1#X "s  q#>lq#!1# | bɁD`b ߈!nl .!8cm  8 . ,>p#! 0#q#!1#X "s  q#>q#! 1# N>^0bЍ  ..>p#! 0#q#!1#>X "s  q#>q#! 1# ҍ>p#! 0#q#‘!'1#X "s q# .q1>q#@",!8  y200 y#  PV@&2Can't free any more memory in _rp_activate resetting rp_memused (good luck)  Can't free any more memory in _rp_activate resetting rp_memused (good luck) &$Header:rp.c 12.0$"` (*6`H!`pf%p''2`f`p+`-- p1(2p<2pV3--`p2p R    ' (' <2p H' \2p h' |2p ' 5  F Z    2 Z2p 2p  2p  &2p f2p  2p  2p.2p^z2p79H=?H@8@<P@PD@H@L PP@T$PX@\&P`@*P@,P@0P4P6P 8P$@(P0@ !+5@FLXep| 000 !),2V<@F2QW^8h&s{H%.8DQYb m&y.oVncs.oVhc2.1n.oVO_rcsid_rp_debug_rp_state_rp_active_rp_x_rp_y_rp_pgwidth_rp_pgheight_rp_memory_rp_memused_rp_orient_rp_display_rp_fileL00BSS__rp_mount_tbl__rp_last_mounted__rp_uses__rp_loadmap__rp_fntsize__rp_freespace_._rp_freespace__flsbuf_._flsbuf_bzero_.bzero_rp_init_.rp_init_rp_clear_.rp_clear_free_.free_rp_close_.rp_close_fflush_.fflush_u_put16_.u_put16_rp_activate_.rp_activate_malloc_.malloc__errmsg_._errmsg__rp_download_._rp_download_ch_sizepattern_.ch_sizepattern_ch_errorlmul$$_u_put24_.u_put24_ch_pattern_.ch_pattern_fwrite_.fwrite_rp_rotate_.rp_rotate_u_direction_.u_direction_u_rotatecoord_.u_rotatecoord_rp_index_.rp_indexprinter.o 597746487 0 10 100666 3641 ` dxnm q.. . "- bЍ "032  !0 فnh 030  "  pؔ͞͞Ԕͮ ͮ p$dЍH>( H+`  #cl p]p%! 0%q%!1%p]X "s  q%p]q%! 1% cPp]p%! 0%q%!1%p]X "s  q%p]q%! 1% cPp]bcPLp]bcPLp]bcPPp]b1dT!ɡ<ߨQ鏤 鏤  d:r_image -- unknown encoding 0x%x assuming P_RASTER. good luck T\$Header:printer.c 12.0$ ".8pDNV`phprp pp@""""F"T"`#p"""V&`&np"'p""4p"'p"p p.+<+T,\p"#p" ..(0:2@@ P$P(P,P0P4P8P<@@!PD@H@*P-P/P1P@@ d!+h:lFpOtZxi|r|(2=JV_is: T.?\Q.oVncs.oVhc2.1n.oVO_rcsid_pr_debug_pr_constraint_pr_traytmp_pr_tray_pr_copies_pr_tmpcopyknt_pr_open_.pr_open_ch_init_.ch_init_fnt_init_.fnt_init_cr_init_.cr_init_rp_file_rp_init_.rp_init_rp_clear_.rp_clear_vp_init_.vp_init_vp_orient_rp_orient_rp_rotate_.rp_rotate_pr_eject_.pr_eject_vp_flushfun_vp_pending__flsbuf_._flsbuf_rp_state_pr_set_display_.pr_set_displayldiv$$_rp_display_pr_image_.pr_image__errmsg_._errmsglmul$$_u_put16_.u_put16_u_put24_.u_put24_fwrite_.fwrite_pr_set_pgwidth_.pr_set_pgwidth_pr_set_pgheight_.pr_set_pgheight text.o 597746504 0 10 100666 4199 ` $(`ٱn LL@ ,  ɱ8032 Lp]p%! 0%q%B!1%-p]X "s q%B p]q1p]q%@"cPp]L $cPp]L,1 < "p0ݼݼp, p  p00!ɱ8߸anm Ń aT " ؠȪp  pذȻ L  4| "- bЍ bci Q R) S 1!03QR# S 1!q!p\`R: "8p- 03#  | p-032 K`fp&cBp,2 |p&p  4pwp7p#! 0#q#!1#p7X "s  q#p7q#! 1# p7p,p 0 "p  >pwp7p#! 0#q#!1#p7X "s  q#p7q#! 1# p7p-p "0K K b  q!`B " ` "bp" Ѥ`Д*bc#83 >0!"d >,0!"d>T q!p 0 " p  p0 ( "0baTؠȪ`f " "h!an1!g0h@  a X030 " " pذȻ L q!  2!p " !2!r! " k " ؠȪp Qp " 8p=p#! 0#q#!1#p=X "s  q#p=q#! 1# hp=p*p "0 "p  8p=p#! 0#q#!1#p=X "s  q#p=q#! 1# hp=p,p "0q!032 q!d  "1!q!+`@ q q!cc 0 QR# S j@DQR$ Sjr! p]`Z 5 " /KbKAK+*+ " dEB "b$pB)B$! 2bp + nDb A p >0"d p > 0"d c`p 0 u030  " " p "0( "0!a XnؠȪp]h1 4:Character '%c' off page map (%d,%d) Character (0%o) off page map (%d,%d) not printed (cursor updated, though) ('%c' off page map (%d,%d) Char (0%o) off page map (%d,%d) not printed (cursor updated, though) $Header:text.c 12.0$ `0 p:Hppppp,p\pjp` p pppp p0!pV"phpp$"ppP\$h"p p%p'(p***(pL`Tpjpvp p ppp` p!p,"p>pHpjpvp$p"pp>J$V"pb pn| pppp p,%pL'^(p~***ppp`p p@@P PP@@P#P&P)P@ $!, L3 L> H T _ i(t8:&06BHU[dn{.oVncs.oVhc2.1n.oVO_rcsid_txt_debugL00BSS_txt_charsL00990035_txt_length_txt_width_txt_font_txt_flush_.txt_flush_rp_active_rp_activate_.rp_activate_rp_file__flsbuf_._flsbuf_fwrite_.fwrite_rp_x_rp_state_vp_flushfun_vp_pending_txt_putc_.txt_putc_fnt_char_.fnt_char_ch_error_vp_x_vp_pgwidth_vp_y_vp_pgheight_rp_y_u_put16_.u_put16__rp_loadmap__rp_download_._rp_download__ctype___errmsg_._errmsg_txt_putnstr_.txt_putnstr utils.o 597746512 0 10 100666 2918 ` XPL١nk0l@mPN@ @(Nc  "/Ţ  ɡ@1 L0 >b@|BN2 >b@|5N4 >$b@|(N8 >4b@|N >Db@| N>Tb@|N@0b@cdeЍ|. .>d|.. p!ɡ@ߨQn! 1s0bm : bDnq 2b0@  ">"BD$D> D>4bЍH1 b4 @@B@@ !1@@B@@``` 鏩/ٱnk l0m@Pp;0 b Pp 0 QPp;0bPɱ8߸1n^`PdpDB BNQ^R .菪RbSp!!ّn  ɑ@eReSp@_-  ɑ@A_iPk@۔ U -  ɑ@/A[:  N@ TBO@   . .bɑ@k@ :k @ k@ bɑ@ ?  (pCcx ?ɑ@ߘ1( Warning! Error! Fatal! WSGO! Meta-error! Exiting. fgethostname failed: %s returning "unknown" h:lL%s: unknown option '%c' h$Header:utils.c 12.0$p0`:`n(4Lx` !p"p$(p:@P@ PPP@PPP@P@#P@@@@@4@ X!*\7=`IdXhakrf!/8ESZgpzL:PlX\`dhl.oVncs.oVhc2.1n.oVO_rcsid_u_debug_u_error_fil__iob_u_exitfunc_u_error_level__errmsg_._errmsgL00BSSL14.last_level_fprintf_.fprintf_fflush_.fflush_abort_.abort_u_Date_.u_Date_gettimeofday_.gettimeofday_ctime_.ctime_index_.index_u_get_hostname_.u_get_hostnameL20.been_hereL21.name_gethostname_.gethostname_errno_sys_errlist_sprintf_.sprintf_u_isprefix_.u_isprefix_u_SelectStr_.u_SelectStr_optional_optarg_optind_optany_getarg_.getarg_getopt_.getoptvector.o 597746540 0 10 100666 6419 ` 0xHnl m003p# r0,01Ҥ24! d r dr```03p20#鏤 p2 q   7    @١nj k0l@mP 0123ɡ<ߨAnԔ !, , #鏤! 0鏤 ppB@ 鏤 qqB@ 鏤 rrB@ 鏤 ss" 鏤 鏤!ٱnm k0 "q” u 1 l 0ܤ123ܔ s[rKq;p+4,45bɱ8߸!ٱnl p @  ɱ8mذȻ !r- 2 t- g4 p 0 u mq 5 Д1ˤ!ɱ8߸n 102345, nm r- q- bЍؤ!0 nm r- r3 2 !0 فnj 0 @ ɁDt 4 u 5 qpb0c@[l ƈ?s p  t;b (?c 5+3*k r 2r  23ˤ!1+p ? 0 s+23q 1 !ɁD߈1١nj k0l@t 4 u 5   ɡ tp 6ؠȪp:p 0q#!1#p:X#"  s  q#p:q#! 1# p:p'p p'0 qؠȪp:p 0q#!1#p:X#"  s  q#p:q#! 1# p:q'p q'0 tؠȪp:p 0q#!1#p:X#"  s  q#p:q#! 1# p:p+r  0p 0q#!1#p:X#"  s  q#p:q#! 1# p:r)r 0 p:p,s  0p 0q#!1#p:X#"  s  q#p:q#! 1# p:s)s 0 p:p 0q#!1#p:X#"  s  q#p:q#! 1# p:p 0q#!1#p:X#"  s  q#p:q#! 1# p:p 0q#!1#p:X#"  s  q#p:q#! 1# p: "0p 0q#p !1#*p:X#"  s q#p  p:q1p:q#@" p:p p:p 0q#q !1#*p:X#"  s q#q  p:q1p:q#@" p:q p:p 0q#ґ!1#Bp:X#" s  q#p:q#!21#!*p:p 0q#!1#p:X#"  s  q#p:q#! 1# p:Ř @q&!  q&!!q&"!p:p 0q#!%1#X#"  s q# p*q1p:q#@"(pp: @8q $pp#! 0#q#!1#XCD Bs#Bq# p*q1p:q#@"| t fp#! 0#q#q!1#*p:X "s q#q p:q1p:q#@" p:q p:p#! 0#q#p!31#X "s q#p p*q1p:q#@"p  q'p:p'rwpPuf`p;p!t0 up,0 baPhr20 r# r" ```u30鏤!nl m0 s, s  4   4  uLtPU0b  ..0!ɱ<߸n.Ԕ .!, , n.Ԕ ., nm . .cЍ0 nm .ܔ .cЍ0 ١nj k0l@mP>Ԕ0c >Ԕ 6b " oc`03? "bp >bcc b >0b0cdeɡ@ߨAqnj k0.` ؐșp91p- 0 1 p00 p=ؐșp 0 4pwp7p#! 0#q#!1#p7X "s  q#p7q#! 1# p7p-p=09؀ȈpHؐșp @ 5pwp7p#! 0#q#!1#p7X "s  q#p7q#! 1# p7p(pH0Ip=ؐș09%1Ip=ؐșpY5Dq)؀ȈpHB D5Bb p=09pH1I0 ^5 @ .B   :Kb:Kb 0001bqHq)؀ȈpHˤx!qnj k0.` ؐșp91p- 0 1 p00 p=ؐșp 0 4pwp7p#! 0#q#!1#p7X "s  q#p7q#! 1# p7p-p=09؀ȈpHؐșp @ 5pwp7p#! 0#q#!1#p7X "s  q#p7q#! 1# p7p(pH0Ip=ؐș!p=ؐșpY5Lq)؀ȈpHB L5BbpHp=P0 .2 @ .B Q:0=09K0H1IP 0 .2 @ .B bcdbcdbqHq)؀ȈpHx!فnh ^P.e p p-  p00 ؠȪp:p 0 4ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p*p:0=pLp @ 5ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p,pL0Mp:^0=%1MؠȪp:p-28q pL@ 82@bPp:0=pL1M^0 0 8bP@8bP@00bɁDq pLפ߈فnh ^P.e p p-  p00 ؠȪp:p 0 4ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p*p:0=pLp @ 5ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p,pL0Mp:^0=%1MؠȪp:p-28q pL@ 82@bPp:0=pL1M^@ @ HbP0HbP001bɁDq pLפ߈فnh ^P.e p p-  p00 ؠȪp:p 0 4ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p*p:0=pLp @ 5ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p,pL0Mp:^$1MؠȪp:p-2>q pL@ >2@bPpLp:1M^ 0 0 !80:0= 0 0 bPc@bPc@bɁDq pLФ߈فnh ^P.e p p-  p00 ؠȪp:p 0 4ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p*p:0=pLp @ 5ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p,pL0Mp:^$0=ؠȪp:p-2>q pL@ >2@bPp:0=^pL @ @ !H0L1M @ @ bP0dbP0dbɁDq pLФ߈فnh p, p p0 0 ؐșp)ؠȪp 4ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p)p 0 p,p 4ذȻp;p#! 0#q#!1#p;X "s  q#p;q#! 1# p;p,p 0 bp 0 p 0 !ɁDl߈| P^Z" 6 J h$Header:vp.c 12.0$ ppp"p.p: pB pJ pl pv p ppp(4!l%x'%+%/%23<4p\5p79;% p p` p*>p8?pACpDp?pAC"`2p<`Lp^FHFp% p pD`NpX>pf?pACpDp?p0A<CP`Zpd`tpFHF p6%F pV pz`p>p?pACp Dp?pfArC`p`pFH F p J% Z p j p ` p >p ?p A C p Dp .?p zA C ` p ` p F H F 2p ^% n p ~ p ` p >p ?p A C *p 4Dp B?p A C ` p ` p F (H 8F Pp |% p p ` p >p ?p.A:CHpRDp`?pAC`p`pFFHVFnp p pp>p?p.A:CHpRDp`?pAC p@ @@PP @$P( P,@0$P4&P8@<*P@@D.PH@L2PP6PT8PX:P\@`@PdBPhEPlGPp@t@x@|@@@ !+6<BN[fp|^(7ET]gpz Z,4 ,9<FTaozP"(09AJd[mh"l 6p Jt h x,.oVncs.oVhc2.1n.oVO_rcsid_vp_debug_vp_active_vp_x_vp_y_vp_pgwidth_vp_pgheight_vp_orient_vp_fonts_vp_pending_vp_flushfun_vp_init_.vp_init_rp_pgwidth_rp_pgheight_vp_rotate_.vp_rotate_u_direction_.u_direction_u_rotatecoord_.u_rotatecoord_vp_vectorsL00BSS_vp_vec_last_x_vp_vec_last_y_vp_vec_flush_.vp_vec_flush_v_flush_.v_flush_v_reset_.v_reset_vp_vec_nofill_.vp_vec_nofill_v_new_.v_new_v_nofill_.v_nofill_vp_vec_set_width_.vp_vec_set_width_v_set_width_.v_set_width_vp_vec_set_ends_.vp_vec_set_ends_v_set_ends_.v_set_ends_vp_vec_fill_.vp_vec_fill_rp_activate_.rp_activate_rp_active__rp_loadmap_fnt_char_.fnt_char__rp_download_._rp_download_v_fill_.v_fill_vp_vec_absolute_.vp_vec_absolute_rp_x_rp_file__flsbuf_._flsbuf_u_put16_.u_put16_rp_y_v_move_.v_move_v_draw_.v_draw_vp_vec_relative_.vp_vec_relative_vp_vec_h_absolute_.vp_vec_h_absolute_vp_vec_v_absolute_.vp_vec_v_absolute_vp_vec_h_relative_.vp_vec_h_relative_vp_vec_v_relative_.vp_vec_v_relative_vp_draw_vectors_.vp_draw_vectorspmp.o 597746575 0 10 100666 10257 `  t Pnԍ, nԍ, n03Ԕ0  "  p ""! , nԍ, nԍ, nԍ, " P%  P%  " @P%  @P% nԍ, nԍ, nԍ, nPUp5p#! 0#q#!1# X "s  qCp5qC@$A 1C ō, nPUp5p#! 0#q#!1# X "s  qCp5qC@$A 1C ƍ, nm  bЍ 0 "nԍ, "nԍ, n|00Q 鏤 P%鏤!P鏤!nԍ,! nԍ, nԍ,1 nԍ,! Q" "Q" P" "P" R" "R" S" "S" QR20S b03QR# S  T" "T"  " "" nԍ, nԍ, n03 "ԍ, n@D03ԍ, nԍ,! nԍ,1 n` d0#c,! n` d0!c,! n` d0"c,! nԍ, P%P5b0@Dp0@Dpb0$P%P%03p 0#03p 0#nc ", nԍ,! nm d "cЍ0 nl m0bЍd bcЍ4! n` d0 "c,! nԍ,1 nԍ, nԍ,A nԍ, nԍ, nԍ,! nԍ,! nԍ, nԍ, nԍ, nԍ, "D  6DbZ4Bd<Vp(J|Fp<^@b . P$Header:pmp.c 12.0$ , Lp\pvppp&$p8'pP'pn,p048;pB=f;p=CEHpL6OpLSrWZpZp`dh$lHopbop|opopopopop2RpZpdpp.XzppppppppZp$FjvZp~Zp(Jl  8 Z@@P @ P@@P @$P(@,P0@4@8@<@@@D@H@L/PP@T3PX@\7P`@dh?8 "_pb/8p >b'8p >b8p >b8p >bd8p >bd8@Dj p->d8L "Ԕ C " .pMH"YL. 00@P:BP ">8)T$X\w`` "Ԕ ѤbЍ dbqPx!nm q1CbЍf 0 nl >0m  >b0m bФ0B4 b. cp84 n "Ѝ "ȍ "̍ , nm p-  X .pehp-0 0 n.o403(D, ١nĤ / //d//>`0b"mؠȪ0*>b0!##mذȻ40+.$m/@.#m~̟D0,.`  "moݟL0-.Ȫ"mc/Xp* >`0`p 8>b0!##`<.#p `H.` p-`P/Tɡ<ߨّn ">$.  0> 0>??0?>? "p0>>?0?0????>>?? "P03L2 4 "P32 "HݟDNq͔ Dq,:$v ,p ` k t+:$u+:$p q):$r):$s):$bl(B , j$,bl(1 "H  "L/T " Д q-l~(pݔ```.Ѝi,0>>?0?,>>Ȥ0?d0?h.>0b0"1>  0@aPz10$0@aPz&0.0@iPn0 0@aPz0oH4ɑ@ߘ١n`j k0l@mP D Bm>bЍ=0bЍms42 .b" p  b!+8j  b"ݯݿɡdߨA(ّn ݠtԑ8 .m?TФ! "l0-`bʒ :>0 X. >`9 & #bb!b."# . "h/lk. `bʒ 7>0 \X. >PQ 4P```Q 4P .P 4PQJ U. P"P//t.lT "P b b2`0b/“ !ɑ8x>0 /b!c.#D` jЪ"q l Ci@b!c.#P<#!" !b.ʲb!b.2$2 b!c.#!b.ʲ "P//>Fb>&Rj$~.:^lljhfdb`^&JfBNZfr  * <  $ : \ h t   & d     x D^: R\t$>Z& &@Zt"<VnPvTP(Jt.j:64F&v,BPhxD\|"8V(L*6@LXbnz &>N^x  6 B \ r~ !!:!^!!!ĤؠȪp*WM\p*W`:0 p#03|#Q0d " .(j>h:0vs#`  .Djlg b3p*pZtQ.d0jx|D| d0 " "3 "̔ dc ??l " 03@ | "s2`0 t"cc .jcx`0 "3 @Dq$ r @Dt$cpc .iV "@Ds4#30 343p$q1l " " "̔ ud c ??ls#`  t#cc .ЍixT 3@3C "$@3p*47p " .jp*5 p Z0&:@yp Z0&0@lp Z@D:0&[ " "@$ %.0i`xp Z0#0@9Ӎnp*/l "03܍b/lll " .j?l lp* 0` /lwp:0sb00`c *`/l`*p:C  .,hp:N " .Pil5ؠȪp*!03܍ap c/l " .li " .|i " .ipJ:*&-:*t4@Dq40*D'RpJ:*&:*t4@Dq40*D'-p p* # """/llzlsll " .iĤlYlR " .h l?l8l1 " .Ѝhl " .hl "/l "ͪ .h@  A* r l.0g2l " .|g@Dp4`0 "@b104"32 0,dH/lp 1,d;/lc p 1 0 "   4jؠȪp*#ߍ#0 !A0c e + .elp*/=bC숏\p: *lp:**c  p*@Bp*/lp:t4p:C#{.esp*rn2JC .c@e_BJp:44p:AJATPM% G"P//.,* h2S.c@e(  ""&P//r#JA!c 0 p:A  p:4#5p:JA.c@eB  "P//.c@e .,c@e@Dq40*D$5p p`p:*\/lp*qb:C u)`  "4br 2  u  "@b"  .Hcdt 4 p*0\/lQp*qb:C u)`  "4br 2  u  "@b"  .hcdyt 4 p*0\/lp*qb:hC u)`  "4br 2  u  "@b"  .cd9t 4 ͚p pp ```p*0\G0) l (ai  *q1 *p" q4 p" q5 p" q6 *_b0\/lc *[9) (ai  *q1 *p" q4 p" q5 p" q6 *_ub0[/lc *[S9) (ai  *q1 *p" q4 p" q5 p" q6 *_=b0[c ?l*[oc *[h9)  "h03q.cl @b4Bp 503q1@Dh "q24.bl 4 3b24p 5 "q1l "Xp 0@DdPUp54pJ`0 "Xb0B105.>d؈ "03܍\]/lr " k.dc\U Np GpJ03r#s3e@9pZJ03r#s3* "! "a z. 0bll /lJBJJJp 8J "p05.0c@b9p:C# t4p:Bq#8)p*0ZA/lp*C2 t4p*0Z+c *Y/l= 4 " ! ".L0a}ЈvЈolhp*0Y/l\p*0Yc *Y/lI lApJ:*8 /l2pJ:#8} /l$pJ:$8o /lpJ:%8a /l p:&@8P /lp lpJ:*8: /l " .lb~pJ:)8  /l " .|bdpJ:*8 /lpJ:'7 /lpJ:(7 /lp:+@7 /l " .b!pJ:,7 /ljlcl\lUlN lGl?l7l/p*0@6/l" " .apJ*06/l*Xhc *@5/l " .a*XHc pJ*5/l*0XIc *XB/llp:Bt#+/l!)/l )/l "03܍*D /l "03܍Y)$/lk "03܍Y7(` d0$c),/lQ "03܍Y(` d0%c),/l7:**0/l) " .؍`03@Dܤ$)q4/l " .`03@Dܤ#)R4/l " .`03@Dܤ!)34/l lpJ:*6 /lpJ:#6 /lpJ:$5 /lpJ:%5 /l p:&@5 /lzp ls " .`pJ:,5 /lY*s .$0^x03*1s23303*12*r2p:*p"B8#?<*>@?4D?i<*>Hp:*VZ/lp:*@AL:p*EPPdpZJ:*E{TPUXp*0@@XPUX*0@@X}*Uc PUX@D*@Xcp*E\Vp: b@` E "03܍VW/l- " & 4p*?sdp*Eh*Ehp**l@DX03dpp lp* 0UP /lp:0 $ b00U;c *U /lb00U(/l l@Dd "pRTp cP2@DXc40Q0Rl.<>P^؈wlplip*0T/l]p*0Tc *T/lJ "   4 "#3w-M_t'p:!KExIP|!0K9xID| &*$c !K(xI3| K Kp*Kp*K|p*Kuۤ Knp*Kgͤ K`p*KYllllll!0Jxp:"JxH|!0Jx"0JxH|q:A !0Jx:"Jx!J}xH|SH|Mp: JkxE 0Jcx= %X$c JVx0p:*JMx'*0JDx %9$c *J6xI/llll!0Jx:"J xH|l!0Ix"0IxG|p*0S?/lp*0S3c *S/lp l:*X"/lp*0S /lp*0R/l}p*0Rc *R/ljp*0Rc *R/lWp*0Rc *R/lDp*0Rc *R/l1p*0Rc *Rv/lp*0Rc *Rc/l *0Rc *W/l*0Rlc *Wp/l:*Wb/lՍFߘ@^nФ$()b0 n@Dvw40102b١n`l N@  "z3{6r7>0 x"#5$RPN4$4 .ZT@ ؠȪl/ N@ > bX\j r$@ @/m !@  bNrD>$e\/  bci`b>,~Xj  ذͻĔ mpK>0be\>8bЍbXj q  ꔠ bRxdl  Wh.0Ҥ03:921ݯ| ">pb0W"cД0< q|rs ":9v;w21tSP 08uCA @ "x2Q182A.t"V!0 n>#"6P//b! ݣp % -pq r 1 /a#%$ "pPp"03wv# ;ppp1 $ 03sp 03ppwv# @t Ao"6# G?( ! ..X,0 nXݣ-0.X(;-r 1 z 9 ݣ{  , ߉s!z .W0X.XM0$x  @!A03̳# Oݣx-.X>`B B(;-#ݣx-.X`2B0 .(;-# "06>X7`0 X "yz9"0 فni ݟB "|p 0q2@112\j & "txyщ*, c  C  *< "|p 0q2@112\j  /! "|p 0q2@112\j  "z: # "|p 0q2@112\` .V{|p,>@Dp]@` .$V^p-dp bp,p 0q2@112f\j  ! "|p 0q2@112J\j  "z: 9 Z؀Ȉ|p8bhqذȻ Ip(p 0q2@112\j 6 3q  q ```щ,q "|p 0q2@112\j   (!&q  q ```Ј "̳, 03x#!8#, "̳,= "|p 0q2@112\j ' $03x#!8#, "|p 0q2@112t\j   ! 3 "|p 0q2@112S\j  ! "|p 0q2@1127\j  "̳, "x2182< "z:2y#"0 [#q03 0 @#"" 1q0 k "̳@+"" "̳ "22ty0 @S%"  "rdB@A21 "%2 "ɁDݣz .8T{2 ߈qn "345Ȃ0kgwpX@7#"G' "Y@7q "ȳr.T@B@ r=A:4q\/r-q@0& "   b f n t v @kh H8#"ФȫjȘ@)23 "c` 쳚@ * "d @ / ( , = .|ḅw  .0cЍSx̗bdVlbO0  "! "@y "Z B7Ȥ03v#!6#@ݗܔ <ذȻv;@#-16;эMh, (.HO%.4O#.B O X b o x z v+@ "v6   +*)鉀.פP "wvB@ "v@.w?0 A03bA BbA{n "Д Zd eTݣĤ@ dQ03wv# A+ - "v603v#!@oA6Ӥ8e!6#w3# 1@"bA +03v#!6#w !@""" "@""" "v2162w0g "ݗܳB @ A "ijB   P ( '& "v2@0162$ɱP߸"n "Ԕ .0N @@, n "Д#qL "03 2 .N9P "PݟLt- s  GTc .$MX "P ">@|3\u`MdMhlpt "@% Sx|0 nФ    bЍ " 03@bЍppݔ0 ١nj k0 4K8l Hr<5,Hm<6,Hh<7,Hc<8,H^<9,HY<:,2 p:?(FW@m Д >$GGDSH1ݿ@H,</ "> NN{\Ĕ ">(dЍ{O ">,{EĔ .004deЍQLɡ@ߨ!nm r=&E4H?8c 0 rAH@A0 .cЍM<.cЍM<  t 4  r 20 فnh i0j@kP ">z4p;(Ed ">z4p;(Ed &c@Fzl bc 4i  @ݟ0ݯGR/ GH/ 4Jsm "p20 p p3p```001H2 G 5-G6-G7-G8-G 9-G:-<͔ p+/0cdФPP(x-SR8u=p bQ@(k bЍf, "ܔ p  "ܔ b4%  "RXx(k *e,bɱ8߸ٱnk l0+ D"R,P//DBzxtd ذͻ "܍[m dbcФBU= "܍Em dؤ%cФBU'.cK bQɱ8߸!鏤 n "@̔% "q20 p3.cL.d EE m Q} bk$p̔```O(bЍQP, "p=APj0p=pӔ bЍj4pݔ```4 ١nk "p0 "@$6%3q+p2(Bc &Cm ߞ A "0p0” q- r "0) .IH&q- r " .0IH.TIH b"jp DR0*b""";+08p !0,#/< "85- " F03<#<1-  4p !0, "4!5-  "! !5@/ܤ "r5 s"r7 r˔ qt !N5-p̔r˔  b"͙ؒHpmb`cx0 `i cxcy 0-u8#fpf b tm b`cdgx "Hp 0t r8&@vCҔ, *v( q"@A" .$cGq80 @A# .LcGx "Hr "2`Ъ "@bR!r Hp ` 0 *cЍfpcDfxp 0 " aLhn "Ԕ  " "@$.a, n ">iY "HݟDq- B "H 0 n "8ݟ4гr u=p-@fA "8 0 nm A-"230 & v- qB@!A$ r$wc q- @AA@ r"wc b00 ```  an0!$dpu=$e'i |#Ȑ*w2!k >de{6̗p,> dtr-|d r=p,JԤ$dWr=11x͔ Bqܤ!C 8 8b{Ȑ*w`g2'k >dez؀Ȉp(>dtMr-{d r=p(JԤ$dr=17p̔b{Ȑ*wf`d2$m >$dez̗p,>,dЍtp,>4@Pt $cpu=$dvd p,>Dsp,>LdrdЍs "p0pxݔЎ|q}bpA!C 8 c$c`drq$ rD ">Xs.dE $cwWuGC7`fp&cCp&q7r䰤3daEv  "Ȥ4dec)v'p23 "̌vm "Ȥ=@Pc .cpEwpݔi$c6ݗp->drdsLR$cĤ$ccd p->s7px͔ ;q,vҔ 4pMذȻp+3`q=rCp+3`r=rCp+3`रpM`  "c t3rC3`p p̔aPhDّn "8ؠͪ4H " p*0@PgV4s~qt bA`Ъ "it*p9u!0 .cDt p cucu4*t 7 "4*0u5,03p#!0#o `!0#9,q,rҪv, q" @r"cЌuW m .cDmt 4 " bglp* @ 8 " p*0@Pf4 "8ȪQɑ@ߘn "8ݟ4г1H &u t-  p=.x< p=(<tc .CNt-u 5-4 "8 0 nl A u q, u, 1,xp=b;0-4 ّnj k0@ !A  r.C4b"b"͙ؒݞp cscto0- Ag m  b D1-5ͤ "p02 t-"4 ذȻp+ '3-bct;p 0 bɑ@ߘ1ّni j0k@ .cDV @ %!A  rˤ@ "t 2qA *t  $q=r @ p0. Bh  !ptA;$bd p" bcd0m t 4 Zbɑ@ߘ1n` d0!c,! ٱnm0 bЍx&cЍ;=k HK@  I . cЍB3@` "4+0rl H+c`m "T " HK.001r  234561Ru פ2H\{b\r  ! \bЍ\zb\bɱT߸!nm C .B+X b00:Ec s-:$3-0! nm l@0 L:A C   q-'<0C- 5  0.cЍA0(A b0c*h-  b 1-9 q-r .(cЍA041 nl m0 Fb"dP//vT .`|<%/6 3'&- "{&+x "" .cB{ .A b4! nm C    .cЍA:B  t-`  4  .,cЍA r-+h  5-.LcЍA0 nm B    .cЍ@Dt-`  4  .$cЍ@D0 فnm i0j@B   .cЍ@]`  (>k 60! mt1+дو " k`Ъb p" ! Wt`Ъ c 6# `Ъ c 6#`Ъ l v,@7 03!@7,`Ъb q" ! "t`Ъ c 8# `Ъ c 8#`Ъ l x,@9 03!@q9,`Ъb q”#  q+ N 1 .$?,! t`Ъ c 4#X5p"  d "cDl ! td !cDl @  `Ъ b 4¤503!@d `Ъ h 4Hb@Wv5q `Ъ b t" >d q;#D1+Ѵَ`b ! ktm *`b p! \ti ` b t"  c #dЍ{Dd !ctDm @ 2ۤ3 03!@2+W 3ɁD߈1anp, $=#H/p,$=H/ؤ@0p,P` "@bp" %qRqUP C `PU@o`@PUjpq_0 1Zrs_2 3ZAp" ݔ` "@b`0PUopqR01_rsR23_1 " ` "l "@bp q\01Rr s\23R ` "l`O "@bp q\01Rr s\23R 褰 "$` "@f23pvpѤqqbLrs Pv) .p+r(P!$ " .=T0v)p!(Xp16\0! pr(q"0b]`j @  !A   r.$c><db bhb ]h blc 110 .Lc>d BC) '"kP//j&8d420.,Vw u 3$9 .hc=dB    .c=d.c=d 2s&=9p3&q1r&=9t2&1pwp3 b`csAPx0p -q 'C u 2  r)w  .c=dwڤ  5r 7 r d br1|pՐ "र "b` "@fsr HpvДp q70 s&w A3233mm0pwp q70 s 3pvp qה w-s 7-A=233m0 .$cЍ=1dpwp qהrs&23b`_ " a\hّni j0k@lPs `  "4bp2(5c .<b)r c `  "4bt042 " `  "4bp"0@P_;pٔЎhq=0 aC# V"nP//j, 5r 79 " = ;b0`"5r uS wC@ 5r 79 "@`P TbRcedur-w .,dd @DeD q)rPU 0bpcd ">lde%ll"yP//n8a lhQnݪ() 2*10 U]@ @ !@``` "(0! n9!:1;ACl* ݞ ">012P3deddɑPߘQ``nm 4=Ҥ0 nm (20 nm #20 nm !20 nl0m@23Ҥ042541 anh i0 1!p2q mIѤ 0!r`p!cq!2#2@  ђ.p!@ `p!f@-rvэ3+'2&p!g{x A-3o'1!x2qḴ А p!a\h1ٱnk l0).m bU1-+3f2- @ !```bɱ8߸!ّni j0@ AA9!` 3@ 0, , '&m  r),s r)2-3  r*|s r*4-5 .4 $m bJ(bE(bɑ@ߘ!nԤ"2  , ٱnk l0 .c6 A,.b@ ! brm AL=\bbXbcm !,1-bɱ8߸!n` m0 c@ 0! nc !@ , ٱnl  @ mюbq"c0<,k -}"VP//:PA qr+i0!r;-U42+q+8_1+s,83+t,8Q4+qܔ Lq-80,E<1+l pݔ =q-80,6<0,l pݔ-q+81+s+83+t 4 r+y82+s+s83+t+m8 4+.$cЍ4@bɱ8߸nl {@ 0_@<.4gA dr,1 q,Yt  Tq,s,Dr,s,t,4s,t ,b&qܔ q-pݔ```,/"3FP??BZ(b1 4 nm H\ 1A 0T0Q6H0Ls-43-Eb@=.4bЍB86r q=B A  . 2Ѝ!<bЍ@@ 0 3*P??\t0 qnk @;8ٔ3 .3r Š?s+}3+l A| @  . 2bt+ \h 4mAФ}  b@  @ bcdЍ zX@}0bcpd Xi >bXcq ]q,h q-e !cdP EXH1+xD@  b'"0 06c7#/ *#    rbp2bp0bcЍ\ 4+ c \h bcЍ\e >8>@bd.`k  t@ ߔ@ ٤ Ӵy bc\~3+bcЍ\p4+bdxb'"  "cpd Xj  t@ @  z bc\03+ ubcЍ{\#j4+A; dp vXi @ \r ?Ut<\\4,b/Ek@ @r ?!9.H1h21A: *3P??xvt,86420.nFF ~bqHx١nj Д0 \q Yq@<2 b3bG1+5r q,Bt 11+5r  q,v 1!1+5r q,t  W 1+bO1+pbɡ<ߨ!nm bЍQ0 ١nj @  \ qB۔OC 4A r+  5+t 84 r;&(+N @D4B0b@`5+t 4 A " ./|t 4 .@cЍ0s t .d/>b t 02r:bd t 0#w.ԍ0wAbc rJ l A  ./b ɡfd`bp ` b t"g #cdpd `bp2!k r,g "cdpqk " bcOdk A-)q- """d #cJk !cdBj s( A g !d "cp*d !c#j bqTx'فni j0vqL@b@ 1A*`0 r* @ A0 r b@  C  bkk hA*0Lk \m cd\h q,Mm -cdЍ\l @ !A   {lm b0d cЍ\h (cd\l r)ar94m bd #c@`h ؐșp)`p94i "5lA >01!bde'8d rP2 cN\m cdЍE\bqr9 b* lɁL߈!nl C< x3P??XVTRNHFBB _r<&#lH&L @D4B0b@[V5,t 4 ( m  B  t  B  A  C  u 2 y 6 w,03-q, E`1-@ 1A0 r5 bЍ,B\AL ">X0C<$b+44 ٱnk l0 (em     2bЍBbɱ8߸!n8!91:A;Q8!91:AB70@ -x1r3.)y!vzA@ q$nzAp$q"g!(%@x!\ %t"  'm  x!A 1-y12=zA@ q3 p$q4 !(%@b0A nm t B A B   t  .cЍ)4qC - " t    r-@"8c 233= !""\"+t  4-C 9B t  2v- q" @r "p05 .cЍ)w4qMA=b@ b@ Atrpnljzxrpnlj1 anj r Ő?tsA|Aj2b4br !/2,+br 2 %b"b  ``` ! & .c&7A #7<:862*(&$"pbxb r r !2+ r r !2+r r, 2 r r, 2 r r, 2+r r, 2+r r, 2+r r, 2+r r, ~2+q,rrq-rfb`""depT~m  #cPi #cPm %b`c3deЍKTm W$cЍwPPm bcil 0 #%ccPm %c\Pe > %dЍTm *$cЍJP#m 'cAPm 'c:Pe >('dЍTm &cЍ(Pm bTbɁD߈ٱn k l0m@8  -. /, t<4"8\4ɱHߺ1 nm "-03 2#c bЍ&H 0 nm ̟ p,p'qp<1#̟ p " p2300`0 " b114 "p00 n "@D p42܉ 0. "p0, 03T "L#/sB`@ `@03@3`@034303T"# np"ԍ%|, nl m0@  .dbhbЍhGqLB r @D@@ .$d3:l.q,t .Htd! "#ϑpbztl bЍMxc bo|@4! ٱnm k0qB  t 4  b`r- q.c]d6bcЍxh8, ,q@  r s t .(q,1-q,<lq,t4q,t4bfppݔɱ8߸!١nj k0l@mP:@bc@ s2cdЍ$b$Hɡ<ߨA١nl m0 W@  .0tbЍ\ 01lHm A- 'r-pj R$tk cx2-  bq|%1- 0lm ) .,0t 0l m 0lm >\>d*dЍs#ɡ<ߨ!qn!D1HALQP!D1H!D̟ p,5|1Hqs6t r7.p,p6bpj A*< .$Ԉ[p,6rt4bpԔ kbpЉj tAژ4!Hp !q(`c0#A"< .<Ԉ#tp4  ᔀ .XԈ!H .Ԉ.pԈ!2!PO̟ p<1#Ep<2#q1@ bЍp< 7#bФ0تp<7#r1@,bЍ03 8#i .0 " 00p002bФ0sݟ p=8#p0p=3#p=4#̟ p,w2@Zp@ Vp Qbh bЍc b " bЍ7؈p,w"h bЍd "cm \c bK .Gp,q"!bЍ؈ " p L030Fw"@B艀m ;c qA m b-c pA c " p  dЍ03 q3!TU " w"@ q1P "pє  " x"c rA Td "cЍMm bcЍ& "  " p x"r1  " pE030 r"!'t"!!ݟ p=s#!Lbl p=x#d cl p=w#rd cp=q3  " r"!씰 bTc bbq TxAّnj "|ݟ p-v"l %i p=x#d ck p=p/t# p=x#i Dd cop=s3 ?p=wC-cap=r3 1/-ݟ p=wCcIp=r3  " q" bm bi bc @`@ݟ p=b1AD v#}p=v#t4x#;0 | "03 2 pu| "3ܳ2 "|-ɑ@ߘnm0Ll 1A 0.0s p-Pc bp= b1Tp=Xp=8b1TcЍ\4! ١npppč0j 1A 0< .4pbt, cdeЍ,0  cde 0 cde0cdeЍ6Z4ɡ<ߨA١nj k0l@mP \d bcPcЍ0b!Lɡ<ߨAnm "@& .^P  "0* "@& .,4Д 1P#cФB"JT "H "0* " "H0 nԍ-ؤ1A0 .g,, anj k0l@u "0"` Ő` "łPqK@ q$1A0# RpD@Rq{p q7@Ar  "V1'pwppqk`q&A2bpAg pf`ʤ &q+q2 &@l ˆq+q2p"qBb l +bBb /-q+q2@p"q @  b0cx'l bh bcd cl Sq+q2bЍl +nbdb`b2L N@#'A!B#"""]G3 눀6A#B33~cq3  .`bȒH " @  .$Ȥ -@  !- ````bȒH "# A @ L) B @ p.H)8JԔ !K b2()h bcTc dl 9( h bc7c dl A $cl Zb /< F{  c@l |mpbc/.<:86qb k b0kk hc bEPm b߷ d cЍ'Xl bߩ m bߣ c &@Xd cЍ Xd cXm b߄ c dXc dЍXm b,bq=%Pc p-qB#Xq-q"V j q-bp-qBq= X ɡ<ߨ1nm  .04# s-`   3 A80- . 04 p-0 ٱnk byl $17p;ݗp b. pAp bcPɱ<߸nPdPpPA`@0b2AnФdݪ7 8 3 4 >̔0 @!A  r# xp 3 .|>0 @A# r# xp.|.ؔ @1A0 .$|.؍03l7Iؔ ݪt s- [7 N037#O8#ݪt s-  #0Ϯ.؍ .7-38-ݪt s $8ؔ ݪt  7-8- "t 7 "t70ؔ " 1ݪ5= ؔt !/03l7 ,8 *ݟhp  3@Zd 0M )pM "d #0603l#I.`)1$.H.P .XUє `Ъ b"  0"ļP//lt ١nĤ "l¤` m-F@PURM03bP D -bk ה ` .c3H "03܍ Lc .(H ɡ<ߨnm "pp0 ] .|Rm0  "l'%& c .$|0 0`Ъ br  0 A b0ݎPc 2A?Qc <1l0q@  )Pk s=Hy-bLbЍP0r -qv )b_Tv*q bXk b߿\c b`.숀@ r q-di !c`fbЍۛXi @  !ci`NA)- K03l8?)q)wXk bhٲc A)  j q9j bYXcl q*1!ٌc"`.,bЍp̔+!0 `pɑ@ߘAٱnk l0 "Aܔ"  "Qc #d}k Ҕ @ b l  bЪ"""11,#cm$Lk ""bЍc #W$d >0#e (!> >#de ,uɱ<߸!n̪x, NXs .ڐm \d cЍs< " (.qm ذ\d "l' ( .cЍ03. L4 nl   ..d c@dl ݪw  YPd .cw=Vb4 anѤDn\` bA6 b`^h 9Z@3r0qvv ,bpPv'q" j @  D. 0Ф!Dj bpݠh !Dj b`ٜh b   D.8 0Фn` !A  b`t0!.L 0Ф01nh`@MrJqvBb`}i D.hbpv C'8Dbp fi A' D1b`Ki N.hb`=.hf A69  Db`1i @  r&  4 i 1 .\ 0Д  " .t 0Д  "". 0Д "".č 0Д "#. 0ДЎ=D Hݟhp 2  $0-c $## "p02 ֦Dp=3# b0$@p=  0 00? "Lp0ݟhp  3@ @> @> @> @ "h֬ld >8#d0 n.Ԕ .1A0 (օ(d #41>H(~ "ho(d >#'. , nД  . bЍ<d #4 ., o(8L T-0X.0X/0X 0X 0 @$T*0(@,T 00@4T 08@<T+0@@DT 0H@LT 0P@TT'0XVX 0\NX,0`@dT "hբd >L#Z0 nm .d &1A0 zd #4&P "hkd #cЍ4$H. 80 ١nj k0l@ "hA|m b$d s=!c3-$ @ PUJD0bc`bЍջbնbc aɡ@ߨ1nm 0 5d !cЍ A b0t$d !cЍ . 0! nl m0 5 "hr2$#PU@D0c҇ s]rUrMC= "̍& # "̤=@P&  bЍk d ҽd !c$8!nm0` cC@ )@1A0 b@L<3d !cЍ` .c3BL rd !cЍ0! ٱnk0l@` b̔ A  q-d #cbcЍɱ8߸1! @1A!```! @@SP1A  !!mBoSE - @@B@ b@1 !1- ?(@ $ 1? ? @@B@ b@ !1? - @B $!- A b0d p pDp```04nm (10 nl m003p# p0(104! @  @R1!@ 03b2 `# `ٱnk0b< q12b8/$r2ݪ- l9^b8- l "$@ !```!_! "$ɱ8߸!ٱnm0bЍ<q12b8_/(r2̪, p9 b8G, p03(@@  @ _ b4A@ b4 "(ɱ8߸!nl m0c @ ё!```b04! nm <5!cЍ0 ! dB@A@1 ! bnd " b@c6d 0 @ b0 nld m0Z .<,@Zb@A@ de!є@A b,80d!%ٱnk0b;Ф@ @ c@ 03\bЌ6m0b`Ъ "Dlq p  br;: Eb "H ̟Dq@D\4 "p0 .>  (k 10ܤ mbЍ;D!62+cЍ:bɱ(`߸!AXnl [ "TݟLt  r  "2-Cb "T "Tp0 "P @D`.>4 "2-1 0-s 3 3 _3 3 3 b4 03Dp#!0#nl `m :s=`0 bdc .yh`0 "#3 s=83=`0.0 3 b`dc .L%lb4 nl "8ݟ4p=b9` Gb "8 03< "8# @DT.>db:!!5ݟ8p=0#c9hp=r2345r 2b00 4 ٱnk m0bЍ l H   .cЍ$ Gm    "4,042-bɱ8߸! pB@ p pDp```03p0p00nl m0c  @ ё1 ```4! # b0# b0# b0ne d0&U E',!   ! !```bn "l̔ lp-p0͔4 nl m@c dЍڕ41 ١nj k0l@mP!@0c !c bЍc byd bc ɡ<ߨa١nj k0l@mP!0qc bЍkc beKd bcɡ<ߨQٱnk l0m@bP0Dc bЍ>$d bcfɱ8߸Anl m0b@0d bcЍF41 nԤ@4,! nl m0 (@394! n@Ԕ!r ?  s" t" , q20 @  !AC2`@8 s"@b@ @  ```n@Ԕ !s" ``` , 0 9 "A F "a f " nc !*/$ F.\(?. c ". .b0. p 543210 d0)$c 0  ` .(, nq03 012.ّnj k0Qm Hl  .c$ؐșp  H7(/0)@Dؐșp)B@d "D H(p9#D@#DD "p23D02C@DD "cB0123@@ɑ@ߘ!ّn " "2ذͻ T @H`Ъj s*pqʍRs:bs p,Lc bPp<bp0!b.r$ "p00 nl` d0mbc4bЍ'd!%nl` d0mbc4bЍ d!%nPU@D>0!b. "p00 nԍ, nle 0 mrCbc4~bЍ.$cPv<d!%ٱnd k0d>b4Y`mbcd4Q`bЍɱ߸!@@nPU@D>0!b-t " %b(#,#)\00 nl` d0mbc4bЍd!%nl` d0mbc3 bЍd!%no e@01bcd3bЍ8h1n` d0.c ,! n` d0.c,! n` d0.c,! n` d0.c,! n` e0>0Abd3NbЍ 41@Mnc .9 , nc .%, n@DBbN03b4p803b4p8n̍tp xp=bH 0,0 4 n` d0 c0T,! n` d0 ci,! nl m0b8N 0bЍK NTbc@c4! nl0Pm bJd cЍԺ؍܍A4! nm (1A 0 A0 nФAA2C m A  """>d s=!j3-b 5b00@P0 nl @ r ? s,m t,-!4 nm @ r ? s-(l t-(,q=0 @ !A  r#@ u- ., 4 فnh @82 .  i  AȔ  q(N1) o$2) Ɔ3)A, "P//20   q(r| щ "d` ؠȪtk .P ("D q(r" !rJr8( Q 2 bș,bX q*r "dp,0 r ! q(r !-j02*d r8D*4sr(1*2 r 1 ```#b"""8r9ݗp bb0 .$cx .,co.4ch.Hca   " .dذȻp;Jp;pbB " c03 ԍ}b+ ߴ@y-z-*zذȻp+)/p+@ذȻp+0/c1>02 ɤ@p+d w-x-ɡ<ߨQnm d0 ٤1bЍ0! n "@Д$ 0 "@|"A2 "@rBД@ q$A pDє@9Ф!`  "@y" bЪ"- "@z"<0 n̍$ݗp-)$l 03p-@(S( .L,ݗp-cp-c@(;( .4,4 nl0 "@$ѤФ "H  "L 21@ ̍ " .u, v, 4! n ؤ0, n դ0, n ͤ0, n@D ɤ0X, nm0,l A< = .0bB48bФ4< m0x@4! nd %1T, nԍo %4N0, nc ύ6,, nԍ?Z, nԤQAP  .0(c,,1 nm @ 03@P??~@Dr-B43vbЍi0@ bЍbЍpWs=r-BDDv bЍ^EbЍ-$(:AM4 3P??b`NA= , 04 s=ACc43t=A3 bЍj8A <s-A2b#"t-A" bЍ@s-A }bЍDȍ>H¤s-A2b#" gt=@#"cA# ^r#Ll Vr d2 t-åb;PE4-A= =b,A=dC4 U,}s-A2 $0cfTXc A-K\(A=pb@ `bЍlSbЍYdM.hFr 0?C& DPOO@>:6z,* ~|zx1 l@=. p8١nj r 0?A t*@Ar ?s"Aލ+ m t*<4@ sAAʔ|!` 0 -0 !`  k- g@ `s+A\bҔ M$@ !r ?b 3*b!c@ bbyjl@ sA۔r ?!` 0 -0!`  -@ r ? Abqs@  q;A+$m } c dxkФb0 !3@ b>6! r 0?b0"v\ .s*Ct* <A*"23vbЍ 'q bp 0 vK bck bЍg bh bd #cMc bp bЍg bh bd #c/c bpJ bcl bЍng bh bbd #cc bpbЍkg bxh b_d #cc bpqbЍ1h b+g b%d #cpf b3g b-d #cpȱd "c`Ȫc bjbЍh bg bd #cpȌf bg bd #cpyd !c`rc b2p 0  bcl bЍg bh bd $cCc bpbЍg bh bd $c%c bpp A0 bЍoh bic b!A  bsh bN h %0@h bЍYcp 0 b bbLbaT"P//h!فnm @=3 .0r ŀ?s-lcli t-clj bpl bpd bckk bl bd bcXd ('cLp@p!3@xbz,bu,bЍp,ɁH߈ٱnm l0@=2/(p 0 r ?03P??J4yk s-s,t-c8kk <Tc )k q-Ol bIcЍ@q+D1qM@1A$`0 rs-A0 .X!bTc )k c dЍƂh r .( 0?Qlb3Z4 .0Ytɱ8߸!nФ0c/0,p!9A! 0 ١nk @;3 .",0t@ s˔r ? bcЍcqL@=1A$`0 6r3q-@/A0 *r'jbc1(bc1(p!3@ :2`#r ?cbЍm > #deЍNp!3@q+lbɡ@ߨ١nl @<3 .tsLqT@S1A%`0 LrIq-@EA0 @r=0kb@cPؤ1%p!3@B0bc=ؤ1p!3@/r ?"""v\2b>#eЍ3, 4,b`ɡ@ߨّni j02b 3!3@k s!1@l 3Q 0bcd-s!c #>01!*deZmr!3@ɑPߘ!ّnj k0l@mP@ $r ? ͑Ds*0t 0bcdeЍq* bMp 0 bm b]d s=!ĉ3-b l bJd sbЍ:ɱ8߸!١nj k0l@m b`- (>m cdebЍ ɡ<ߨ1nm c1>02 Ȥ@{bЍ  0 nm 00@ b1@ 1є4 p!h00@ 0p!h4 n ܤ0@4, nm ڤ0@bЍZ` ۤ0@bЍM`0 nԪ82@Cb@7\,1 nm 00@ b1@ 1є4 p!X00@ p! X4 n7!819A:Q7!d " ">|$PU!4A(! . s,,A n "ԍ .V, nl q 12΍l /Dr2ݴ@q-bU 1- "D4 n "@Ԕ& "0* -   030.N, ١n\j k0ruĪتͪvb@1@k$  `b ""c( @D>[ "0!bЍB,bЍ>0 c( :c#4X8< "p002ɡhߨ1)nd0>r ,! n+ .". .nm e@b0d >bЍ?01 ١nm j0lPk>bbd >be̒ >dbЍ̒p-! 0- q-!1-X "s  q-q-@"cЍ*cЍɡPߨAnd0>,! ٱnm `0k@l>bdW> bd >dbЍp-! 0- q-!1-X "s  q-q-@"cЍo*cЍhɱL߸1n(4 >g pAqQ>[4A nm L4 !>pAqQ!> >AbЍ&ll>$AbЍllp-! 0- q-!1-X "s  q-q-@"cЍ*cЍ<lQn|m $4|8!>bd!2!3uQ!>rA0As1tAJd>(AbЍ>4AbЍp-! 0- q-!1-X "s  q-q-@"cЍV*cЍOTq!nl mP=>Rx b0c@(d >bCx >bdЍ9x>$b2x4A nc "ȍJ, ١nl j0k@m #cB c0bЍa `b p" p"S bЍ/ɡ<ߨ1١no j0k@lPAߤ #cBA03w ΍Ebc@.=3v ΍1b bbɡ<ߨAn` d0  f"$P//n><PrX`@ "4dpD "H>D "H>9 "H>. "H>#PU "H> E "H>(.0c'8 "H,! nd 3`0eRY ">R ">R,1 nd e0P "> ">,1 ٱnk "@% X "0)ݞpM!0pMqD#4Ȥ @D!0Ĥr۔ qM!cpݔr۔ qMA B qD@ @ #cqpݔɱ8߸qni rqv˔p &`Ъ h u t(g u(c bp p " Ip E`Ъ h w( g v(}c bp `Ъ h y( gg x(]c bp p A  q;@!A  s r,:jg s,0`c bp pY "ؔ m {)kg bcpg qHxٱnl !AbPd $4! nqSpCc ,! nd0> ,! nd0> ,! nm b0d >bЍ 0! nВ!. щѤb0",P// nd0> ,! nm o0`@ " +P^ "p>0Qde< "p> 01Qde< "p@8Ane ݹp>b@DbЍ0 ٱnm 4*k x ̹p>0bdP$bq- p2(ճd >($0x 1bezbvp.H/r;& d ̹p>db\b5/A  q *=d """p>t7b̢p ذȻpb "p 0 b x]">x@$+ 5 |ɱ@߸!١nm t r=&Ԣd B- "/jP// &$" ȮC  ȮȮ ذȻp>be@b̢0,bЍ p b "|p 0 C] {bP"0 P//2|` <b "> @t@Wb u]">\@g@Jb w]">l@ Z@=b u]">|@&M@0b u]">@(@@#u=*e p b w ">0@&*@ b w]">@@ "pDɡ@ߨٱn4m .cЍ܊ dЪBpk+ !>bNqB0t12 3beЍ|b+ɱ߸3nl Aܔ .c+(A v #bЍ4 ّnk @;1 .|bm v+ fp b` v+ewE@ vErD!>p, sDrD!>e,b!,#v eyE@ xErD!>R, sDrD!>G,ؐșp ؠȪpb "> Q0C/,p b "p 0 A Gq  r+c .,qK@ rD!>d, rD!>h,ذȻp ̹pb ">lQC,p b "p 0 """p>xdЍ,ɑ,lߘ$Header:abort.s 12.0$3anh !1l0?0`pw@dyA``` +  -0@ I?@N nAAF f:p12r1q!a4@A a&AN nB(C)p12r1q!a4 N i n .  0  9  0 +@⑁!,d_  p12r1q!a4 e  E @bAb Ƞ TȠT Yb* c# b1, b ;u! =b  !,c!,cms /RE t!c 43%uc4#4!//!/Һ`{3|4`  b `+Д$tQs1 ሐzdPe00 Љe - `PM5`0]4=31 \P4Q3Qs! 3!` ;%[%ܱ(*2,1.00mn.4&!6'+  sa c ŢsabcA4!& !$8&bc0g yp Š@`Ib24`@b2T@Ep p!c 8!q q!c 7!r r!c 6!5q"RQ P@!cEN@10B! #!LB!1#@J! HUbY!d!44bP!b!"H4%!Rd : :QTb!b!"4Rb!b!RTb !b!"4R R  T`Yd6 `Pc( $6 P44 Őa`bcM(g h!+ٱnl0 !"#$ &!nb'sbcЌ d $# Ű ɱH߸!nm bЍ 30 nm X= ( 0 DxP  Dxr 5X   "<  `2 -1 } b2- X ( X ( 3̋ $ ,J 8 ,(? r=X -AsM 0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnݺ(u͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !00,4u nЍm 403(5#  0`Ъ`6>`0 023$0 ```bФ1.!0 nݺ(u͔  4v-p  !00,v-ij 4u ٱnm ̺(uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cd d 1q0 @ml@ ޑC*1Cd d Y0 r?*c |є bЍ k 2X*( X ( 3 ""& 4X*( 1X*@l@qJKl@&1*c d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d <, X ( 4 4 nl X< @m ,  X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0B 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱC!<J }mb< N vbd "c D bd "c 8 >"A 0 bЍd "cЍ $ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd !|X/(230$b0cd X  ,AA ّnj k0l@X:( 0l>r ;8pm*0A ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdnm 0 > ;0 b,0/ ) m X  0 X ( r 1 *cd<   ɑ@  ɑ@ߘ1p>PU0% np2Д0002XB   r20 q"0A  0 0-0 ّni j0k@lPbcm X !Vp,!0,s a@)* q<#1 1A?QA?QA(2!1!@0A@! 1?AQ@=!>1?AQ@B(1!0p!!0!q!X "s q!  cЍ}!DA@B@S!1E@鏤 Eb@$Header:strcmp.s 12.0$Q` S 5T@QDEpCTVPR!TNXR!T FR!4R#pCT T @ RT T !B$4pC@ Rb!Bb"PRbT XRT T HRTR $4pCHRb!PRb$Header:strcpy.s 12.0$Q` R%S@RDEpB$TTT T qB!!! $Header:strlen.s 12.0$R`@@B@S!1 E@鏤 Eb@$Header:strncmp.s 12.0$S@nl m bb4 ١nk l0    b0 1 2 ɡ HѤ`Ъb .@ `Ъb ```bЪ#c.#0,0!#1,1!P2\2Qɡ H `Ъj b`Ъc3^ Ⱂ  rQpA0Cqb@!dOBbP/1QC 20Lq1 rQ2\ɡ Hߨ! ,0, #################################c bﯤ0 # ##!` 鏤0،b0`0$Header:uldiv.s 12.0$TUl X qC@ r @p A1Cp0qCA1C$ pPU0% pyPU0% p#2#e #Xd0D @C1B!bPd D( QC30BЉ"0Q, pC40B$ @C1B!Ԓ d D pC4!B@ B$pC4BDBDBDB$c44b$C CC1!BB* a3C"ЉBa, pC4$0BpC " B@!BaT%CSrt菐'tɣfh㨺h㸺hиȺhคغhd"3艟٢ pgt4$0 ! rXxpsa!1AQ!1AQA1!$Header:blt.s 12.0$V0V<@Dd#"$b@d  Bh鏤 03h#"#d b00ChP% @`0c 3 !B鏤 DDD ac@e@f@g@h@i@j@k@l@m@n@o@"4̏2a0 $B ֑!B$Header:bzero.s 12.0$XXpPU0% فnh i0j@kPD 1 0b 0_]@9- +  0 x XJp+! 0+q+2!%1+X "s q+2 q 1 q+@"c#c 0@9- +  0 x X p+! 0+q+ґ!%1+X "s q+ q 1 q+@"cv-cno b1de4 2p+! 0+q+@ !%1+X "s q+@  q 1 q+@"c7@)c/Д 0p+! 0+q+ґ!%1+X "s q+ q 1 q+@"c-cɁD߈Qang 21i@@ȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) c]ىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0c}xA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cO@+cG@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡ 4d^4>4Q @R!5] d^4>4 Qd^4>4QP!@R!5]n.bn}01!4Q n}01 4Q anh4A3Q!D1H!D=!H>/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1H u2 `;0 Fє @ 0 0 . q!  0!1! q! ```1: @  q0. ѐ1:q!0. 0 q! ```= .Ѥ bɡ HߨAp@PU0% p6PU0% np2  ? =01q1bIp ," $ ` 0MAtbH١nj k0l@`bcm bc-p 0 ɡ<ߨ1١n?!1@k@Bڡ>bc3!`5\lyTr+w+cannot open intermediate file %sHuXXwriting errorfloating exception during constant evaluationt$Header:main.c 12.0$/usr/include0 }4s .data .textMAIN~(?ss(w4 |characters out of order in implicit:%c-%ctt8`$Header:init.c 12.0$command line+ !%NMJ;MXJN[\]^_`0V'9cs x uC^WinABCe_`a.ABC,qgABCIHGFEJLKNMOABCIHGFEJLKNMObABCIHG JLKNMOwvgwvd d&%degg!"~k@(j6- +@ABCIyszto2YmZUl@>[P?kj_`abchfghnqur@@x@}@@Xopg@@@@ @*g@<Zg  \PONML@@@@@@@@@@KJ;34@@m@z7;0/=, @pQRSTw\v|@f{/r@@t@l @#@g2@@Q:8@[4ffffD6$ ABCIJLKNMOfgt1g$]^) ABCIHGFEJLKNMOABCIHGFEJLKNMOABCIHGFEJLKNMO1ABCIHGFEJLKNMO)ABCIHGFE JLKNMO 7-HT<EY%A.)CGB"! V#(&89:15*W?'D+X=SQ@3UI>FRABCIHGFEJLKNMOABCIHGFEJLKNMOiABCIHGFE]JLKNMOABCIHJLKNMOy|}~gggggggg5gg7-T<Y.V89:1WX=SQ3U>{RggHEACGB?D@IFL{JknB k*(M(kkkkkk:kkk$Wkl'&Bkk$W!vukkfAknkZWGBkuk.unuuPzCCCf kWk|gkq C&Czzxv wZk@kkjrkn0 u++ uunfCZeakk`sZkjjuX5u/-,,(  &%$#    "  *'#0!)!/%&  $.88888888999999=5#66$$::::::::::: 333344>>??@@K77AALMONNPP....DDQQFFR&HHTSSUU,,VVBBY[W\XZZ]] CC^EIJ((((((((((((((((''''"))--1111110222**++++++++;;;;;;;`___________abbbbGG%//<cddddddddddddddelllgnnniiffoopppppphjkk !!!!!!m %<E,(B9!$#'*5)270@1-./:D4?"6H C>I;A&38+,NNNNNNNSUSFRJRTJ PQJRNJJJNJJLJJKRJZJJJRTRSTUNJNJRKRJSNJSSJGKNRSTYXWVU[]\_^`KKNRTKNNNNKNKNNNKNLKRKMNKKNKJNKKNNNNKNRSNJ NFKJMRKLKNNQKNKKKKKKKNKN   "#$&'(:N./0123456789{)Y[\A-{!!!! j@jDFHMacdw=CEGLvu  !!j:l`JPex|ZB]>s   :,?Ib*;+kmorqKOQSUWXfy}^_tnRVgh< prTUz~i@(#)yaccpar 4.1 (Berkeley) 2/11/83$Header:yaccpar 12.0$ (yacc stack overflowsyntax errorstatement cannot be reachedlabel already that of a formatunclassifiable statementlabel %s already definedthere is a branch to label %s from outside blocklabel %s already definednamed BLOCKDATAmisplaced entry statement () argument listname declared as argument after usealtenate return argumentSAVE statementSAVE statementPARAMETER statementDOUBLE COMPLEX statementCHARACTER statementAUTOMATIC statementSTATIC statementlength specification *nlength must be a positive integer constantlength specification *(*)INTRINSIC statementequivalencesqtoo few initializerscan only save static variablesinvalid formal argument in parameter listcannot init parameter cannot init parameter cannot make parametercannot make %s parameterinconsistent storage classesinconsistent storage classesinconsistent storage classestoo many dimensionstoo many dimensionslabels in assigned or computed gotolIMPLICIT statementimplicit item must be single lettercannot be a namelist namedeclaration among executables.EQV. operator.NEQV. operatorconcatenation operator //substring operator :substring operator :hex constantoctal constantbinary constantconcatenation operator //no backward DO loopsalternate returnslt-kkXttt-2$u -drP22qthyu3L3 r4qqtq89Hv7<798us2<>TsH<G Cs(qrtDXCq?>>>r>>>W$U0TUTUX(XVXVUY@zn4mlmTls|k`\,AP3//V/W/Z/ / /[0`0\0^0 ]0_0X0Y0$0,080D0P0X0d0l0t0|00 0"00$0#0&0'0%0(0)0*1+1,1-121(1031851D41L61T71`H1h81p91|:1;1<1=1>1?1@1A1B1C1D1E1F1H1I3-344*includes nested too deepr%s/%sr%s/%srCannot open file %squ$tRqs 5s6impossible lexstate %d-.`./u`8,illegal continuation card ignored--t9p&Invalid # directive%d "%sInvalid # directivenondigit in statement number field|S<<>unbalanced quotes; closing quote supplied%dH too bigtAunbalanced parentheses, statement skipped.CZNot a Fortran 66 keyword: %stDDzfunctionname %s too long, truncated to %dbad bit identifierinvalid binary characterqs(J)K=L,N+P-Q*R/S$O:M$Header:lex.c 12.0$and.or.not.true.false.eq.ne.lt.le.gt.ge.neqv.eqv.assignautomaticbackspaceblockdatacallcharacterclosecommoncomplexcontinuedatadimensiondoubleprecisiondoublecomplexelseifelseendfileendifendentryequivalenceexternalformatfunctiongotoimplicitincludeinquireintrinsicintegerlogicalnamelistnoneopenparameterpauseprintprogrampunchreadrealreturnrewindsavestaticstopsubroutinethenundefinedwrite9Jmissing end statementu 2$JDO loop or BLOCK IF not closedmissing statement number %s .align 2 2tqt 4s335H5<yXK6L964,|LXMAIN %sMAINBLOCK DATA %s: MAIN_srpqr43 xMinvalid entry nameexternal name already usedqrtN entry %s: # .copt label,L.%d8`yyLy~L8P0# .copt label,L.%d~0>z3P6}X?y3RretvaluRR .data _.%s: .data ~~(@yPyy<Snoncharacter entry of character functionmismatched character entry lengthscharacter entry of noncharacter functionD(4CVPVplocal variable %s never usedadjustable dimension on non-argumentadjustable leng on nonargumentth5dX .textY( .data5hYYZj%s.%d%s: %s.%d%s: %s.%d%s: .byte %o,%o %s: .long %s .long %s compiler error in handling namelist variablesmay not appear in namelist .long %s %s: lS< txxC@^common alignmentadjustable array in common s(__BLNK__ incompatible lengths for common block %sQ`.?q`automatic variable of nonconstant lengthu$anmktmpnadjustable length?sbL7 bv_BLNK_%s cannot be a common block namep2stab(tag=%d, stg=%d, class=%d, varno=%d, flavour=%d, saved=%d, type2=%d, name=%.8s, realName=%.8s, commblock=%d) ~8~@~<cincompatible common declarationqcincompatible storage declarationsincompatible type declarationsdlengtypeincompatible type-length combinationelincompatible use of intrinsic functioninvalid intrinsic declarationunknown intrinsic functionieinvalid external declarationinvalid external declarationfdonly variables may be arraysonly last bound may be asteriskDX$Header:proc.c 12.0$;i`1-dim subscript in EQUIVALENCEnonconstant subscript in equivalence adjustable in equivalenceequivalence variable name same as subroutine or function argumentequivalence variable name same as procedure or entrybad storage class in equivalenceinconsistent equivalencebad alignment forced by equivalencesC;tt>qBt?5ds8s4;0;;mattempt to extend common %s backwardinconsistent common usageeqvcommonbad alignment forced by equivalence'd commonqt uospp$Header:equiv.c 12.0$>l%05d %s %010ld %05ld %05ld %dpinvalid repetition count in DATA statementnon-constant initializertoo many initializerst?<=Tqbad impldoblock 0%orpllist emptyattempt to initialize adjustable arrayinitialization of string of nonconstant lengthnonconstant implied DO parameteru`?@ssu$C>DXBunon-character datum initialized with character stringincompatible types in initialization %d %d setdata>LttEFhu>`8 `\>P32 yz\>Ts(z0v.S|$Header:data.c 12.0$T{8s{j>{{{|s|>}(invalid complex constantt??`\<P3 `\<P3 }~mkconvuFh?~DX~(cpexprs,S<q?qu\frexprs6s(pfixtypefunction invocation of subroutinew@@H@BHfixexprleft side of assignment must be variablec_divz_divaddr of addrE?spOTu$C@BC"Dummy procedure not declared EXTERNAL. Code may be wrong.invalid class code %d for functionno substring of function callattempt to use untyped functionrecursive callmkfunct: impossible recursionmkfunct: impossible vprocclass %diqrttu`D(@i AsVattempt to use untyped statement functiondisagreement of argument types in statement function callstatement function definition and argument list differ74Bsubstring of noncharacter %sBBtBmore than %d subscriptssubscripts on scalar variablewrong number of subscripts on %stCDs_rngesubscript on variable %s out of range>s\mkaddr. vtype=%d, vclass=%d mkaddrj u}X8no qualifiers on parameter name %sused as variableadjustable automatic arraytDT6Zattempt to use undefined variable8integer variable assigned a character valueinteger variable assigned a character string -- only first character usedattempted division by zeromkexprG uFP,nonarithmetic operand of arithmetic operatornonarithmetic operand of negationNOT of nonlogicalnonlogical operand of logical operatorillegal comparisonorder comparison of complex datacomparison of nonarithmetic dataconcatenation of nonchar dataImpossible conversionimpossible conversioncktypes<foldGqGr`\<P3 `\<P3 `consnegop`\D33`\D33conspowerinteger ** negative power inline mod of nonintegerO`\<<`\qS<q>st6nested loops with variable %sbad type on do variablebad type on DO parametertoo many DO parameterstoo few DO parameterstoo many DO parameterszero DO incrementDO range never executedtBBs(?74M?DXttBBUbnoninteger assign variable# .copt label,L.%d# .copt label,L.%d>~w\sinvalid type of arithmetic if expressionXRETURN statement in main or block dataalternate return in nonsubroutine~0zassigned goto variable must be integery$Header:exec.c 12.0$jtintrealdblecmplxdcmplxifixidintfloatdfloatsnglichariacharchar achar maxmax0amax0max1amax1dmax1and$or#xor%not&lshiftrshift'minmin0amin0min1amin1dmin1aintdintanintdnintnintidnintabsiabs dabs cabs zabs modamoddmodsignisigndsigndimidimddimdprodlenindeximagaimagdimag conjg!dconjg"sqrt#dsqrt$csqrt%zsqrt&exp'dexp(cexp)zexp*log+alog+dlog,clog-zlog.log10/alog10/dlog100sin1dsin2csin3zsin4cos5dcos6ccos7zcos8tan9dtan:asin;dasinatan?datan@atan2Adatan2BsinhCdsinhDcoshEdcoshFtanhGdtanhHlgeIlgtKlleMlltOepbaseepprecepeminepemax eptiny ephugeepmrspfpexpnQfpabspUfprrspWfpfracYfpmake[fpscal]ior#iand$ieor%ishft_ishftcaibitscbtesteibsetgibclrir_intd_intr_nintd_ninth_ninti_ninth_dnnti_dnntr_absh_absi_absd_absc_absz_absh_modi_modr_modd_modr_signh_signi_signd_signr_dimh_dimi_dimd_dimd_prod h_len i_len h_indx i_indxr_imagd_imagr_cnjgd_cnjgr_sqrtd_sqrtc_sqrtz_sqrtr_expd_expc_expz_expr_logd_logc_logz_logr_lg10d_lg10r_sind_sinc_sinz_sinr_cosd_cosc_cosz_cosr_tand_tanr_asind_asinr_acosd_acosr_atan d_atan r_atn2 d_atn2 r_sinh d_sinh r_cosh d_cosh r_tanh d_tanh hl_ge l_ge hl_gt l_gt hl_le l_le hl_lt l_lthr_expnir_expnhd_expnid_expnr_abspd_abspr_rrspd_rrspr_fracd_fracr_maked_maker_scald_scalshft_hshft_lshftc_hshftc_lbext_hbext_lbtest_hbtest_lbset_hbset_lbclr_hbclr_l     sqrtexplogsincostanasinacosatanatan2sinhcoshtanhlog10absimpossible intrinsic constantgeneric functionabsintrcall: bad intrgroup %dbad number of arguments to intrinsic %sbad argument type to intrinsic %s?s<DXs(s>>>u$u@j`Qqs@Hu`t?~intraddr: %s is not intrinsiccannot pass %s as actualintraddr: impossible f1=%d uX s74??$Header:intr.c 12.0$ppppppqqq qq q$q,q4q<qDqLqTq\qdqpqxqqunlabeled format statementbad format numberu rp- lxx-pbad end= clausebad err= clauseiostat must be an integer variablef_backf_rewf_endimpossible iostmt %drtt?746}X>plu`o|oopDnLinvalid control %s for statementunknown iocontrol %sS<qtqŚillegal positional iocontrolillegal * iocontroliocontrol %s repeated@Ƃno I/O list allowed in NAMELIST read/writemsxn@attempt to i/o array of unknown sizenon-left side in READ listW$XsC?@nBwwTs(do_liodo_fiodo_uioDXw?slspɾyyʐ@Hyattempt to use internal unit array of unknown sizebad unit specifierbad REC= clausebad format descriptorunformatted internal I/O not allowedlist-directed internal I/O not alloweddirect list-directed I/O not alloweddirect namelist I/O not alloweduflnsrPk>spstЌbad unit in openbad file in openbad reclf_openptf_closbad unit in close statementhinquire by unit or by file, not bothmust inquire by unit or by filef_inquppbad unit in I/O motion statementn=Tnon-character control clause?Մ>L>`@>impossible inquire parameter %s$Header:io.c 12.0$unitfmterrendiostatrecreclfilestatusaccessformblankexistopenednumbernamednamesequentialdirectformattedunformattednextrectL0LnsJ،S< 4r"bqڒںtoo many digits in floating constanttdlnamesnQuR܂statement numberssrpXlillegal branch to inner block, statement %smay not branch to a formatillegal label %srPqthu "external symbolsximproper use of builtin %srtpߨs0BpssDXqqsPR<`s>s|out of memoryout of memoryu$|# .copt label,L.%dyy~~# .copt label,L.%d# .copt label,L.%d# .copt label,L.%d>wTw\$Header:misc.c 12.0$v@tttWarning on line %d of %s: %s  &t\Error on line %d of %s: %s Declaration error for %s: %sDeclaration error %stRExecution error %sCompiler error line %d of %s: %s 3Tu$>tImpossible %s %d in routine %sopcodeudtag storage class8typedToo many %s. Try the '-N%s#' option (# currently = %d)Fortran 77 feature used: %sF77 compiler extension used: %s$Header:error.c 12.0$x < PQLSPURQTFF: h@>;MB6@z0qDX@Hys~8~@}Py\?>>Zwimpossible element in concatenationwt(putconstputconstusrpq? ql}X4xxu`\<\33 $Header:put.c 12.0$~0 .align %d_.MAIN_:MAIN__.%s:_.%s_:# .copt pdef,%s .using _%s,r14 # for RTFL b L.%dBL.%dC:~~(Q~L}P~<yy~pxHS<~8~,~4fseek failedfseek failed 2yHu$NMAIN_~@>Dtnon-logical expression in IF statement@t?w8}TyNcomputed goto index must be integeru tputxputxs|}X~wz0z|}8z{t{{zsD>zw|?}Hzu{ubputop?74DXBputpower: bad callwHwt0putcxeqw:putcx1putcx1sz>putcxcmp@Hputch1: bad character conversionputch1putch1{,w{ F putcheqs_copysp putchcmps_cmp s_catw7 {s\ b? hattempt to take address of a registerputaddr}Lu~ (putref: unexpected tagoffset from argputref of STGAUTO with CLPROCBad class in putref()putref(tag=%d, stg=%d, class=%d, numero=%d, %s=%d, type2=%d, name=%s, offset=%d, cookie=%d) flavouraroma3,_exit_adjustable character function# .copt symqqq{ps(2putmnmx6(\p2stab of constantbad tag on symbol blockp2stab(tag=%d, stg=%d, class=%d, varno=%d, flavour=%d, saved=%d, type2=%d, name=%.8s, realName=%.8s, commblock=%d) Pt2l~h<h%lx fwrite failed in p2word .fflush failed in p2flushh 4$Header:putpcc.c 12.0$T 4$4procedure typegoretud( get r0,(ENT%s+%d+16+L.%dA)(r1)|~ t~(}PyL.%d:  .byte.short.longF %s %ld ~%ld %s %s,%s , .long L.%ld  TL.%ld .long %s,%s .long 0x%lx .long 0x%lx,0x%lx `\ XE`\4`\(3!F0x%lx0x%lx,0x%lx .long %s,%s"(0x%lx,0x%lx0x%lx,0x%lx,0x%lx,0x%lx .long %s,%s`\4`3`\H`\<(3#* .long 0 .long %s+%ld ##rpz~@y$@$_%sv.%dL.%dp.%dq.%da.%dmemnameu%%s: .space %ld .lcomm %s,%ld &8 .globl _.%s # aiws #1 .comm _%s,%ld &&&p'f?@wT>) put r15,-40(r1) cal r1,-ENT%s(r1) mr r15,r0 get r0,4(r15) bali r15,L.%d get r15,-40+ENT%s(r1) brx r15 cal r1,ENT%s(r1) .set ENT%s,%d .data .align 2_%s_: .long _.%s_ # aiws 2 .long _%s_ .textq~~~8 ~4y~*(*~p+h$Header:aiws1.c 12.0$+p .stabs "%s",0x%x,0,0,0 S< + .byte 0%o,0%o + %s , .space %ld ,@ .align %d ,vbad alignment u$,%s: $Header:aiws2.c 12.0$,0 .stabn 0x%x,0,0x%x,%s .stabs "%s",0x%x,0,0x%x,%st~(-x .stabd 0x%x,0,%d- .stabs "MAIN:F%2d",0x%x,0,0,L.%d .stabs "%s:F%2d",0x%x,0,0,L.%dentrystab has no nameblock .stabs "%s:F%2d",0x%x,0,0,L.%dqu$qS<0/*cvV .stabs "%s:%s",0x%x,0,0,0 /* don't know how to calc loc for stg %d*/ ",0x%x,0,0,%d ",0x%x,0,0,%d",0x%x,0,0,v.%d",0x%x,0,0,v.%d",0x%x,0,0,%s + %d ",0x%x,0,0,%d 1 (08@LX  writestabtype .stabs "%s:t%d=r%d;%ld;%ld;",0x%x,0,0,0 u1can't get dbx basetype informationt1addtypeinfo%dT%d%dT%dar%d;%s;%s;missing length in addtypeinfo for character variable %s%dA%dar%d;1;%s;%duuX$Header:stab.c 12.0$unknownaddrinteger*2integerrealdouble precisioncomplexdouble complexlogicalcharvoidlogical*1structureerror380p(4$Header:atof.c 12.0$7D$Header:atoi.c 12.0$84 Yh8v4$Header:calloc.c 12.0$ ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$8$Header:dknu.c 12.0$8;@$Header:dknu16.c 12.0$`;\`$Header:exit.c 12.0$;p $Header:filbuf.c 12.0$d(=XL>>??X$Header:findiop.c 12.0$?Xp A8At4$Header:flsbuf.c 12.0$B@$Header:fopen.c 12.0$C S<XT$Header:fpabort.c 12.0$,C$Header:fprintf.c 12.0$XD|$Header:fseek.c 12.0$F F($Header:ftell.c 12.0$FXd$Header:fwrite.c 12.0$GGH$Header:getenv.c 12.0$HPHlx$Header:isatty.c 12.0$HJ<TJXtp0KRKL P4XdL$Header:malloc.c 12.0$tM@$Header:mulu32.c 12.0$M$Header:perror.c 12.0$M: Unknown error S<\N$Header:printf.c 12.0$NOxOFO|$Header:scanf.c 12.0$O,P$Header:shlun.c 12.0$PPHl$Header:signal.c 12.0$PQQ$Header:sprintf.c 12.0$S$Header:swapround.c 12.0$BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ Sp$Header:tentothe.c 12.0$@U$Header:ungetc.c 12.0$UVV$XlXYpY[|0tlh$Header:doprnt.c 12.0$$Header:doscan.c 12.0$@(#)doscan.c 4.2 (Berkeley) 82/12/03sD<|<u8d`\/`#`\@2z6{p d'B@||$x|N|x0INFNAN()0(p$$Header:ecvt.c 12.0$R`\$@`\#@$Header:gcvt.c 12.0$lS< <($Header:l10.c 12.0$$Header:mul211.c 12.0$$Header:mulu211.c 12.0$,*A7\(;w5^k($Header:rad2a.c 12.0$ *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2,$Header:spdiv7.c 12.0$#]lnV @###<<<<===(=8=H=X=h=x=@`!(n7!819A` cC$N1 \n,  P"p""7l  "uv@pD0$ $"ug@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p 8nc .x , n.P14, nm PU "+4Ar[\d @ 4 (PU>q`.,O " X 4 (PU+>LdЍq` "+0 nm @ >p,/ .cЍO 40 ٱnk l0m@PU4dqȴ, .Od " X 4 (>$0deqdɱ<߸1ّni k.@j 8l 8m .w".$w.0cw.DcЍw.LcЍwd.dcЍv9.cv.cv.cv.v.v.Ѝv.v.vɑ@.xd ߘn` d0.cv.$N0,! ١nj m "p 0q2@C1 12lB #@@ "p 0q2@C1 12ltB @bPU1CpX  " X 4 (>edpL\D"tm "p 0q2@1 12l+ "p0q1l "p0q1l,tck c@1!```odDO DbPU1p=Xbɡߨ@Anm g J.MPU "+4dЍp8- .$MԪ-"+   -"+   "+4P1dЍqh- .DM " X @D+bM4 (>XDoi<0 nl m0NG02 1874! anl m04M/"bcЍVM.e ".$h " X 4 (>H`P`0n Ȏ " d 4 (>nĠ(.t$4 (>0nX_" " d 4 (>HdPn.\/"5(.} " d 4 (>tn.o$(z^ " d 4 (>nf.Q$)@ " d 94 (>̍nGĈ+ " d $4 (>܍n2Ĉ " d 4 (>nĈ " d 4 (>n č " d 4 (>,m ""0P$`Űݿ"X_" " d 4 (>Ddm.\$/ x/"h .l$/+ ""/".|$m .$l " d 4 (>dmPU"@ . " x/"^@jP " d 4 (>dPm\ ""cЍ}( | 03 x ""p002bcde{,321 .ԍt`Ъc1#Г. $/".$/"" " d 4 (qA>lĤ!0&0sAr1qbP4 "a` " d 4 (>l. $.0$.@.L$ " d 4 (>\l.p$`03+2Hb&8i " d 4 (>lqčK^m 0 x }0 `2 8 .E$7-p w03+`#7  .6-.)$(&6 " d 4 (>čl!čKm 0 2 %0<6 " X 4 (pM>ԪBDD"čkĤ& 1 " p t1Abe@i@ ""p20ӑ4020.ID " d 4 (>kčJm 0 `2 8- .$7-7-p qw "+7 .6-.$u$t " d 4 (>4kpčJ]m _0 `2 (8-r=CH.DE$7-.P=6- " d 4 (>\k8čJ%m ^0 `2 (8-r=CH7 6 " d 4 (>hk `$Ԡ8 " NxcL ""p03ϓ0 .HDbЍ:PJT4 " d 4 (>j` X(t\ " d 4 (>j.č$k .Ѝz$l .܍s$m `.pY$.cpR$.cpK$.cЍpD$D q8 ^`f 8&r6BHr6%`g & 4'5 " ( ( P4`h 7h8xc@da0(>DbdЍo$.Hco$ U4`h 7h8xc@eda0.Tco$.`co$.lG\ " d 4 (>iġ  " X .cЍo$bЍbh.G\ " d 4 (>i.8ly.m " d 4 (>iz. oX$.cЍoQ$.0cЍoJ$.8cЍoC$ " d 4 (>LiM` [8 @IOp" " d 4 (>\i*čHm 0͡2 .h $4-.t$5- b  d03"p#$0#p8 $0#p7 03"p#$0#p7 8  .8F\Gm 0 `2 p-"""$n " d 4 (>hp=.̍F\.8F\ " d 4 (>h03"p#$0#p8 $0#px7 " d 4 (>hs03"p#$0#p7 p lS8 O8  ֔ d ( % |Ž~ĎÔŎS ^ _ b cA,;"P//`^\ZXVTRPJHFD<:8| 20.,7" P//$vBzNtl:h!ّni j0Ф`b p@ -@ T@ @ ```z@ 0 1.EDd_2 XT.J@ s@̐8̑@ K@,p?@,""" b" !@<`#Б@<#""%@,""" c201@,`2Б@,"""t ߑ@ 0@,"" `0@,0Б@,""0 >Ĥ  "&p0Ȑ " p0 ".p0 "#p0ؐ "+Pp}0 "+pt0Ԑng`ܐYRАK@<.DD@@ 0 "4P//V,H< ^<(xd*zjvJ@ & >(@D4bfH>,4@bfH.0DDѐ3.`  "FgL/' .`  #FYL/&ܔ 4 0kP: TDmX3-\ɑ@ߘ!١nj l0k@mP| .0cdek`ݯ"ݿ""q [1 .#' ' ""/'d ' ' """ 03'p0 ".0#03''| . k%` ""p0= "' p00203" "'p01025 ""2 b0"А1= 62b"?А ". ".8j`bЪ""" .XcЍj` .\j`ɡ@ߨAnl m0 .j03"p# %% 0bcЍ4! nm "& "$>L" ""!/"0'$ "'2#". b0"""  "'$p01 "'2  03DbФ@DbЍQ  03DbФ@C&bЍbФ0@=4@B0 ١nj p lxrbT( bM( ```'|b, .cib1.0 "'|b"""',10 "'|  bcЍ4ɡ<ߨٱnk p;b0"""$R (w+Hw+Bw+xxbc@pqS8A01R( ```a0)!   ; w+ x+ Ѥ  !ɱ8߸ٱnm p b"""$ŲK Vz; Guq m j[bЍ T'|p LbЍ>p c2/',0 x-wͤ0@<bc@pqS8A01R( ```a20 F -H *I 'd "L N O f m  x- w-xɱ8߸١nk l0Фݮbc :Hݯ& 03".hq.hk03Db@BI "' 'bVLؠȪ&p 4 2 .,h?p 03Db@B&p-q0d!P03'p-Tpݤ&bctTɡ<ߨ!ٱnk ` ).gM. gB.g7.;g.Ф   .(g`b"g`b  .,gɱ8߸ang h0j bpc Atpa~j bpc 0t83bp, g .cpgbb\.gW03Dbp@A5038bp@A+p7b0"""$2q  `_ 5[rXř ? S 03'6#^087# #&x  Nbp00 NDbp00bp4B:.܈bpc.i  HbpcIj "+  @p_0p I  + H (  %  "   ;  F  f  K  L  d l  m  rwxǤ "+ 2q' 1bp0wGq$ 01r xGq$ 1bp0b %.pcpf]bW.fRbL.c233"df@ HĈ8 "&rؐș(L0 H0bpcBR p7.2@D"33"č>@0b1xq1 bcpbpc@pqS8A01R( ```a0 w'ȀcKbp1d9 x7r'wLb0Q a0 0'6i b0d> w,q1w,0 w,xx,1w,0@8 xx*cd7b .a0  bh w*c@x*cdb a0 w*cda0 w*1a0 x*cdbi bm h w*0dx*w"cdbx*x"cdbЍȔbx*a0n0 r  # !w v  c@I> c@I>aI0 b0 `Ĕ p ~ Qc> Qc@I>Ĕ p ~  Pc>  Pc@I>b0@0ɁD   >  ;# L P!  ߈1nxc201 "&p0.5, nm l0 00.]R .]Ip=. 2CD"cЍ]9p b PDt=.4]-u=@b]%Nx=.233`]A.]bЍ5.]bЍV)xM4? F@. \ ٔ ^ _ c d f g .L\r-7.P\q  .T\  .\\ ? .d\  .l\.t\.|< ?233`\V=.\W=b\z=$b\q4A wRpw5hp + rC@ a072r2!0 a072r2! a072! qng p'"""$000bpg]rxʼn?rw'2058'0x' 1x'2x'7x'8x'6x'w7x'w7 4h B012w748(0x(1x(2x(8x(7x(67qHxA١nl p Ywp ^'x Lp x-w= EpBp^>r5p wvx,d .[vH03Db@5Tlr,^$cd(  _0 876 bЍ5 ɡ<ߨnl m003@5%@03b5S034b5Jq@D T, n` d0.cZ,! ّnk i003"3 "(X02 22402' "#  .2D "' "&(\ H(\(\ "(X`* "(\"    "   PH " X PU(X.@003(\11cdЍY03"bY "(\  " 4  1 L'P'T $'X"pM#c?000.YpMo@ODO03'bY@.ȍ1D 03'.Y ""T'² .Y{03"bYp03".$Ye.HY_03".TYU  ?\ ""4@D"`L`@c22PU".\Y/`@c22PU".|Y ""p0 4bЍU`k 030bФ@THd "(\ @D(X03".JX 03".@X."p=dX@D'p=bXp=bdX4 c@Sdp=bXb'h " L 03"= .1MX.,XɑHߘ!n."p=Xpp=$bXh0 n "' "&(\ H(\(\."p=d0X2Tp=$bX*T.@X$T "(\ " 4 !/C "& L0 ٱnk l@mP.W .cW.$cW .,cW.@cW.HcWDdɱ8߸Anm0/""' CLx  & "(d076C|4 S/0 " X 03".dЍWo."p=@Wcp=4b@WZ@D'p=LbWNp=`b@WE$0! n.W..W(, nNp p q4.W Hp.233"č/. ,! r  "RUCP%%&$" !"($r3r  !6 7 ! ّni j0 " P# . VD*6.c.x)wҔ..  ђ  ```.4VvD.@VoDb0L$ .L.cЍOL Qc`@I0p.OLb".OLbcM⢓ dpqb0 ".OLb.OL' P.OLaLhّni m0j@   .'.$k;Ok'PbЍ(.,cOYb(.4ON;8bOEbЍ(.@cO9b(.HO.ɑ@ߘ1ٱnk m0l@.`Ъc3pO<' (_   . '/.0cN|p p #2p?233$38 B& B& F  d"20& w+W2x+W0 `0 w+W2x+W0' bB@d24 B@& c233$3 ^ x>2333*x;wK7;&8K ; < 3bP??$"  pnljx;r37BA Ax;r37Ax;p34A & <  > V & ɱ8߸nm ' B5 ^ 4 w d' `' w-WeDHVO' K' f Qx-WBF dT`@`PT*' 2#"$ QQ`T' p    P A ' AT' 01 ang f0h@ .cpd`Fbނ .F} 1gck`pb"""$ " `r   " `p0 TȰ Ȱ Nl`xİ Ew7pA@2 :9  l h : ) &"evP//86420,*(~|zxvt ZҎ^  [  X  U  R(Tw'$b"""$ 3x'r  :  "(T$w7rrG@x'r@p@D$cp pbpƻ(Tx'j$ :) %#x'rw7rC@p3_ = 2 |x'p_    = w'q x'q w'cd(x'c(aLh1ؤ$PU `P B#q2$_$x2233$wR$eD/q rBG F Q$R$=qw2p_rBGF$$xBD$`@ o@$F dq$$bd0BDD$D:Lw2q33x2q33xrBG Fr1c5_$q X$O$ 7P 5P 3wBq43 .r47 +6 )'$Q  P  є8    ; < 3q rBG F $$1nl p  xp wMr-^0e  v  wb6{ b6t 4 ٱnk l0wp  bФ0l Q!bФ@;$ F!p ^? = " h .CbЍ(m 0/p N 0 b1 bc@pqS8A01R( ```a0 ! ɱ8߸!ٱnk r xw˔ Fp,"""$= " h .Cyb4 p   p ^ bФ4 78wb4 b4۶p 0 q!p ^ 'p  @ Bp p ^ " h .,C)b0ۉЉG!p ^ p @ B  " h .PCb0fЉ$!b4b  " d .tBb4Ip 0 ! ɱ8߸!nxBp4^ _ r0 _ b@48!w"p2_ 2 =0@ 8.0! ,! ّni j0xwp ^ixbЪ"""(!` " h .Bpr;bЍa0 1 b0q ? 1x . " h .(BHp ^ .HprLx%

.<;3TdЪBv\DD`0>bЪ"(bp0bЍ?^0 8ɱ<߸!n.nc .>v  , فnj k0p 8 w*(a0 xw b!.mp cSuta0 wOi b0 458b#7)22 2 1 b1֌$"b4P.cd>ba,.>є Éb r   1 b0Ob0Al :0 8r  2 2 2 2 b7, 1 b1$bФ4VP.cЍ=b,.$=b4l w 7 ɁD߈!nm p 8w-xr  o `c2 b0"$-(p co `c2 b0"$t=3`0 o `c2 b0"$$0 ١nk l0m@x,( """`/(p]%PU(bcdЍaxUpK8.T53.|Dc r  p=.8433| " , sp]bP$cq fpK^x;2 Q0]d(2#"`/(_ E.h<b.t<(B1 b0@w .<b.<p3.|p 0 (pK^%x;3p 0 p]T 1 x;x,G.ت233` ":p2a 0p20$)2c>SL5     _ ^ c233$E45 "$p2ac2/) , ١nk l0 " T .703Db@o @)p+")p a/p-p /"b.24 p+" #$ !_ ^ %  c p+"""$ # " T! ":-0$5Kc r r[pK.(0s 17q " T".p7|b0Lj r= " T".|7`s=r*C " T".7Kb0R^j t= " T".7/u=r* q " T".7v   " ( Zv   " , Pv   " ( Fv  " ( < " , 6 " T".6v  :w- " T".6bcЍ@. ' " T!.Ѝ6$p a " T".6 ɡDxMbcX q w=bd $ ߨ!nm 03lp +x "(0AR08- .̤ "(0x bp0l00 فnh i0j@l " X .c6&X@ @ " ( b7}!ᢑ " , b7m!bcB@ bc#Jj 034u#! 5#v#!! 6#$ "x  v#!!6#40 !-@  " bcA@:n.@`1 2 3 L R bcT @ ```03(.H4X03(.L4Xt8.P4X摡p8@*ݴݑ@:bw23.T4Xˑ@:b@:bĈ@:b @*+ - @:bl bЈ@:bl p ^ x 8 x u8 .X4_XbbЈb@:bfԈU@:: b2@::```bb ؈:A -@:b8l p _  .\ C@ Ű;x  .p4XbQ.|3X " bЍ".  ɱ8߸!ّni j0k@lP cؔ  4 (>!4(>4bЍ!0bcde!>HbЍ! " bL"PɑDߘA١nj k0l@ w̭4(>bЍ!|bcde!t>bЍ!mɡ<ߨ1n> p p#"sR$R"3p " 03&` `س0 a0 " 3(`  "&`س0 "&P%+n " @D+`  "&`ش@ $($ pa/+#03 `003&`ش 2(b0$@D .>@, n&08< "+ -p=a wM.&,.cЍ\ " `  "&`ش -(m "+ "+/0100 npa 03\, nԔ .Z a0, nl m001ebc@dp p,"""$qAwqAw,cЍpAx̔ <1ٱnk l0p+"""$ w+cܔx+cbp ɱ8߸!nm 0.L% .T% 0.\%`Ш.dcq3%0 nЍ#m .b0 nȤ211!21F L.%HDG rAq1.%=D.0ht 81n03 ,Д0դ w"vґ>bЍ%L  1>bЍ%L  >bЍ%L  >bЍ%L  > bЍ%L  %w>(bЍ%L  *f>,bЍ%yL  T>0bЍ%hL  C>4bЍ%WL  2>@bЍ%6L   $>HbЍ%&L   - 0 ٱnk l0`b " , .`@ .4cV " , #`o PU(O! >T0QPU(1Q2eЍ$.c'A b0ɱ8p߸!@\nԍ ,! qnxm :!$b. :z x-pF hx-4%z%!x-w"pF hx-w"4x-x"pF hx-x"4ܤ(Pp d fx-i* "#p0z?Ȱl," *,"( #^0 12' &!&$678b0bw `b쐱  x .g _0786 1&x-038@zpb0A8' [b0@8' Ox-p^`x"d B43 V43(1Pb0@8' x-x"d8(P " , "#x=x3GA " , x-8x-x"7x-rx"!,z%x-xp ^hx,d B43 ^43(1Xb0@L8' x,8(Px-w"p^, " , "#x Y .c233"čKb2.$dЍ41 nd0 +>'>#>>>" "P//@ .!,! nm " h p=.2u]CD"cЍd " ( p y"P// *H>.(dt=8b}d[.Dudt=TbmdKu .`bdt=pbZd8.|Rdt=bJd.Ddt=b<du .1dt=b)d.Ѝ!dt=bdu .dt=bdt=.d.dt=$bdu t=.0d.<dt=Lbdt=.Xdp Su .ddp "`P// ,tt=.pdt=.|dvu t=.djl .cdt=bwdbPu t=.gdE.`dt=bXd6u t=.ЍMdt=bEd#t=.=du t=.2dt=b*dt=. "d4 @  p""""$   @鏤 nl p w, ,  w,p x,px w,7 8,X0  wp _ 120w 7082v 6^0 r 2 6=7=0=&w70 0 {8,w,pv w,pMx w,7 8,x,  `x,w70 x,p^x om j0 2 6 7 0xP//L~HFB@N<0 3pP?? 4 nԍ,! nm0_0 12!&6bЍ #7!d 8 " d .cЍ$b(X!ّnj " dpڔ h.p KbЪ"""$ q 0 ? ``` 1 r 2 w* 7+x 8 :0 bڀ(8*w+Z,w+0x 03b4=jpm 80 Ȑ 12w 7 x 8 8F0 pm 701r  "2 r,4!U86-r<<7 8 ɑ@ߘnl p b"""$Nx,wa0bc@pqS8A01R( ```0O x, w,4 nl p b"""$  0 0 ```x, w,4 nm p-"""$ -w-r2x-r0 '7 6#w-r*(h0 12 x 788-w 787-4 ١nj p*h:"""$Ų0wʔx mp*:r r  r 2 r Tr  p h2 b9 $h0 127¤87*x r p h2 bЍ  ɍ$h0 127Ҥ88*r '0x r p h2 bЍ X$h0 127Ҥ88*x |r v&sp*&p hi2 2ڍ)$h0 127¤8V7*( + < L8<& D"P//6Z2VT,Phfdb`^\Z><lfd" ""P// ɡ<ߨnm p 8 & #r  o bc@pqS8A01R( ```h0 1 2 78 0 r20 6! !pP    "RUP%%  "RUBP%%xnm 03>038bФ@bЍ03HbЍ&0 anl 0R h pvb0Lk p *lx(x -^0 1&b0Am x;D[ bЪ"(bp 0b01l .4b@.4b@.4b@.4b@.$z4 .(cЍp4b@.,b4bɳ@.8W4 "  ?r,? }dk _l .`p`c p3d Sc@bpcd/Ԥ c@bDbpcd Pc@Д .$cp3dd  .0cp3d0eddO@I@.@cp3e0d " dЍ@b(Xnm 07nX!6!cЍb(Xnԍ, ٱnk "0' p۳.@ $ q,w v;r,`  r  @  r   "0 " `  "' ` .(@D0p4 4  w 1 v+P!2,v;Xu t+1,2 r  <04  ̤ "0p 0 "' ,<"ɱ8߸nЍ\ m @D.cЍ+b0 n' "0г-RܳI@- ).r=0 . q .q=0 .. r=q-F$  r=q-Gv$ "0 .0 0px@1b0١nk l0.Lm@ E@D4u$! 5$v$@ !'6$$ "x v4@-#* 1644 uP @-40 iP@  A .[L@ b0ATm .yXbcC\Ȯ p p*c`  rbcdp Ȫp .0OXɡ@ߨ!qnxg h0i@j2 4 @3 1 @8Lk @1 p)> r2 @=@ȉbc@kP bpcLcA]Pq 1 qɔ.p @.   Ȕs 3 0bpTd bcX tG.@cЍ"P//~@> r {Jx:u*P5\b`q@x1"ّni j0@:dm p ^x .mr "     r=. d0F;r Pb@Lbɑ@ߘ1qnxi j0k@lq 0 2 4 @3 1 @:@z@ +@bm c@ZbcpcAN bccB@q 1 bd bc@ > r {Lx {Mx=u-ebcФ@b{q@xA"qnxh i0j@ " X B.r(L@D4u$! 5$ v$!!6$$ "x  *v4#4 40*ruPk0 2 4 1 @3 @9bݠDm @9bݗDl pr}hrH. cporH2MrHńŇbc@H2}bcAHbc@EP@ > {Kx;u+eT!bXq@x1"00/1?2O3_Aٱnl0 1 2 4 @3 "0p6 q9 r< s"'Ȱ#$Ӕ&Ҕ/ ,  "1% "  031.58. c@ɱ@x߸ٱnl m0q. ""1.ذȻ"p  <p 1 ,bc@ q `e uEc u@xx% 00{{% ꉀb֤̔ ɱ8߸!n$p bЍp .ԍ 0 ٱnk sˤД b    ?  3 b sm̔ɱ8߸qB@A`@cu x !@A ١nj k0l@s*< m  @ w$m c(b,>-s ? 3p*cd0 ~Mp:. 8~-N4ɡ<ߨ1ّnm k0@ b@. ~;bdЍ ., .L p;\bdЍ q;xb r;b  " $ 4s 0q 0Ҕ0p   `0b u00Ԑ1q 0 s;=. ].0 Ts;.܍ Lt;. Es q '. `l u!$Header:abort.s 12.0$h@A @@RP!1 鏤!@A鏤 nm bЍ 0 nm X= ( 0 DxP  Dxr 5X   "Ĕ  `2 -1 } b2- X ( X ( 34 $ ,J 8 ,(? r=X -AsM 0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxn1 u͔%.l>#X4"# D 9  4p, X v=ij  4p, X  !0 S0,4u nЍm 4 8031 5#  0`Ъ`6>`0 023$0 ```bФ1 .!0 n1 u͔  4v-p  !0 0,v-ij 4u ٱnm 1 uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n " , ّn|Œj0X* ( (  ɑD qr1s ` *cd d 1q0 @ml@ ޑC*1Cd d Y0 r?*c |є bЍ k 2X*( X ( 3 "4"& 4X*( 1X*@l@qJKl@&1*c {d s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d 6, X ( 4 4 nl X< @m ,  X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@{i bɑ@r w ɑ@@ a0B 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ!<Jimb< Nbbd "c> bd "c2 >"A* bЍqd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd !|X/(230$b0cd X  ,AA ّni j0k@lPbcm 2pLM@ q,cpLb )pLM q,cdЍq 1 p 0 bɑ@ є ` cⲤbɑ@ߘAّnj k0l@A +Ѥb@ a. 0 2c 0b@j bɑ@r w ɑ@@ a0BI 0ެ3  ( @ r( ( 12bɑ@ߘ1ّnj k0l@X:( 0l>r ;8pm*0A ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cdm 0 > ;0 bZ0/ ) m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1p>PU0% np2Д0002XB   r20 q"0A:  0 0-0 ّni j0k@lPbcm X !Vp,!0,s a@)* q<#1 11?AQ@=!>1?AQ@B(1!0E ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c/@+c'@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c @+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c{@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cMىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1z u2 `;bc3!1@QPUTSRYXWV2# cbranch: reverse ops 6expression causes compiler loop: try simplifying6# %o) %s %s size %d shift %d size=%d align=%d, , FSAVED SAVED NOPREFMUSTDO PREF %s, SU= %d, FPSU= %d, SVSU= %d 89X :P# reader:oreg2 after ormake #;";00$Header:reader.c 12.0$SANYSAREGSTAREGSBREGSTBREGSCCSNAMESCONSFLDSOREGSTARNMSTARREGINTEMPFORARGSWADD T<4%s, line %d:  65535 get A1,$A4 # local2.c cal2 get A1,$AL # local2.c cal3 mr get , # cal6 get ,%d sis ,1 inc ,%d inc ,%d get A1,$A4 # local3.c cal4 Pstructure size <= 0 or > 65535 get A1,$AL # local2.c cal5 put r14, put ,4+ get r14,%d sis r14,1 inc ,%d inc ,%d get r14, get ,4+ RInvalid offset size in strprint %s ,%d() %s ,%d() Sp %s Invalid offset size in str2print,%d() %s ,%d()   TDTfhTTU@ shumul:op=%d,lop=%d,rop=%d plty=%d, prlval=%ld U%d%sillegal conputVinsputV:upputV`Attempt to output pseudo-register%sInvalid double register combo(r15)bad arg temp+L.%dL(r%d)+L.%dA(r%d)-16(r%d)(%s)adrput of U*illegal addressW%ld%s%s+%ldX(fltread first halffltread second halfXh0Xbad op type in LAddrFix HY# .copt oopsfreg,%d,%d # .copt oopsfreg,%d # .copt oopsfreg,%d $Header:local2.c 12.0$asasr0r1r2r3r4r5r6r7r8r9r10r11r12r13r14r15000102030405getcgethagethgetgetgetloadcloadhaloadhloadloadloadputcputhputhputputputstorecstorehstorehstorestorestorennilzniloooil.BOTCHxxil.BOTCH#xYZ store r%d,%d+L.%dA(r1),r15 put r%d,%d+L.%dA(r1) store r%d,%d+L.%dA(r1),r15 put r%d,%d+L.%dA(r1) mr r%d,r%d %s r%d,%d+L.%dA(r1) "P#p\V""\ store r%d,%d+L.%dA(r1),r15 put r%d,%d+L.%dA(r1) ] 0 d^Xlclhalll??? lc lhll_l$Header:param.c 12.0$'_<_B_X_``>`N##c~+ d# rallo( %o, %d, ) P `#giJ# i# setincr: put reg in temp &&1j# setbin: move fp LH and make ASG op # setbin: get left half into REG # setbin: get right half into AREG # setbin: move LH and make ASG op lsetstr: something other than OREG or NAMEl# setasg: turn REG= into MUSTDO # setasg: move the register setasg: lost register# setasg: rewrite FLD Name -> OREG impossible setasg0020n# setasop: put rh in REG # setasop: rewrite FLD Name -> OREG # setasop: fix op= to = ... op impossible setasopT &(p# OpEqTyMatch: %o) op=%s, t=%o, t1=%o, t2=%o, u=%o # OpEqTyMatch(%o): %o %s %o => %o &`\<P3 rrT#r# setname: fix NAME illegal type %s %s,%s %s %s,%s+%d /`ttL.%d: -t get r%d,%d+ get r%d, 'L'v$Header:order.c 12.0$*wL06only 1 arg to builtin function _C_%s allowed.argument to _C_%s must be float or double.06 cal r2, # gentargs cal r2, # gentargs bad argument to _C_%s must be REG, OREG, or NAME.06 lis r3,%s # gentargs cal r3, # gentargs cal r3, # gentargs bad argument to _C_%s must be REG, OREG, or NAME. lis r2,%d+%s # gentargs )8P 2z\not enought args to builtin function _C_atan2.only 2 args to builtin function _C_atan2 allowed.argument to _C_%s must be float or double.argument to _C_%s must be float or double.06 cal r2, # gentargs cal r2, # gentargs bad argument to _C_%s must be REG, OREG, or NAME.06 lis r3,%s # gentargs lis r2,%d+%s # gentargs $Header:order2.c 12.0$.d !@A @@|tshape( %o, %o), op = %d Pd`httype( %o, %o ) +Tbad setrewmatch called with cookie %o on: match: entry # %d p->in.op %o p->in.type %o q->lshape %o q->ltype %o cookie ok lshape ok ltype ok rshape ok rtype ok needs ok match: calling allo() could not allocate resources match: no match found  X.<+ .,0Expression too complicated, please simplify/`8expand: %s bad table entry L.%dbad table entry L.%d%d%d%d%ld4+bad template (X) get r%d,4+ get r%d, get r%d,4+ - '8-D-,4:--4f cau r%d,0xfe1e(r0) get r%d,0x7c03(r%d) # DMAsync clrcb r15,8 # DMAsync 1 (%d) Bad getlr: %dbad getlr: %c݈$Header:match.c 12.0$2<  # allo(0%o,) type=0%o # Add type 0%o to resc-reg%d # Add type 0%o to resc-reg%d # Add type 0%o to resc-reg%d P/D/`/Hstack overflowfreereg: prefer %d p2bbeg: temporary registers %d n = 0x%x ral = 0x%x maxreg = %d maxfpr = %d jplast = %d freereg: use 0 freereg: use %d 060 0 p.<00rfree(%s) busy = %d (%s) register overfreedillegal freeregister overfreedrbusy(%s) busy = %d (%s) 2T2\2d2l2t2|2RNULLRNOP|# .copt freg,%d 1reclaim( %o, , ) illegal reclaimcannot reclaim put r%d, # 9000 no SAVED reg available in reclaimfaulty register movepotential register overwrite0 `2+ 1 028register %d allocation errorzcall register %d allocation error$Header:allo.c 12.0$RLEFTRRIGHTRESC1RESC2RESC3RESC4RESC5 mr r%d,r%d mr r%d,r%d mr r%d,r%d @KgetAR #rmove cau r15,0xff03(r0) get r3,0x80*(AR)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(AR)|~(8*(0))|~0xfffff000(r15) # fpI_rdd ! cau r15,0xff03(r0) get r3,0x80*(AR)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(AR)|~(8*(0))|~0xfffff000(r15) # fpI_rdd @KgetAR # rmove cau r15,0xff03(r0) get r2,0x80*(AR)|~(8*(AR))|~0xfffff000(r15) # fpI_rdf ! cau r15,0xff03(r0) get r2,0x80*(AR)|~(8*(AR))|~0xfffff000(r15) # fpI_rdf @KmovAL=AR> cau r15,0xff02(r0) put %(AR+1),0x80*(0)|~(8*(AL))|~0x5004(r15) cau r15,0xff02(r0) put rAR,0x80*(06)|~(8*(AL))|~0x5000(r15) # fpI_cpdi ! cau r15,0xff02(r0) put %(AR+1),0x80*(0)|~(8*(AL))|~0x5004(r15) cau r15,0xff02(r0) put rAR,0x80*(06)|~(8*(AL))|~0x5000(r15) # fpI_cpdi @KmovAL=AR> cau r15,0xff02(r0) put rAR,0x80*(06)|~(8*(AL))|~0x5000(r15) # fpI_cpfi ! cau r15,0xff02(r0) put rAR,0x80*(06)|~(8*(AL))|~0x5000(r15) # fpI_cpfi @KmovAL=AR> cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd @KmovAL=AR> cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf P,2 get r12,$L.%dF(r%d) # (save area) get r13,$%d(r0) # (reg words) cau r15,0xfe1e(r0) put r13,0x7c03(r15) # load ZIC cau r15,0xfe3e(r0) # fprsave cau r15,0xfe0a(r0) # fprrestore put r12,0x80*(A1)|~0x7c03(r15) cau r15,0xff03(r0) cau r15,0xff02(r0) get r13,0x80*(A1)|~0xfffff000(r15) put r13,C2(r12) get r13,0x80*(A1)|~0xfffff040(r15) put r13,4+C2(r12) # fprsave get r13,C2(r12) put r13,8*(A1)|~0x5000(r15) get r13,4+C2(r12) put r13,8*(A1)|~0x5004(r15) # fprrestore h NP^hh LP^h LP^h O^h O^h ^h ^h `Lh ah cXh dhfHhghiThjhLlThmhnhLothphqhL rh th thL uh w0h xh xh yh zh |h }lh ~h ,h h h Ph h  h00li t:  |: :@ : O:@ O: :@(:@ H:@\:  h::  ::@:  ::  D:  x::@:@@:  :@ : :  :@:Pc(Tb (%hb ("tb ("b (b@b@    L    | @@@@PP  <,@ O      , `  4 P   h    (   8   H   M4 P? ? ?   ? P$? P8? L?  `? t?   @  @    0  l  t |@    xD   P        D   Đ   Ŝ  ƨ@ư @Ƽ@? '? P?  ? 0 ? H ? QT ? `   l   x   DŽ        @̸ ͔  p  Ҥ @| @Ӽ       <   P  d<' l='x<  ׄ<ؐ<d==4=݈=\=0=  8=  =  =  <  = >' ?'L? P$ O  ( O<  T h 0      ~L``C?  tC? B> B>C? O C? OB>  B>B>O B>O(A?  <A? P @d@>h@> |nLnn%%%NN@N8O<O@Np @ t_@xg@g|@ @ @L;@;n@#]RlnV @###<<<<===(=8=H=X=h=x=@1n@  @aaaaaaaa nilz A1,AL,255 # 1 exts A1,AL # 2 niuo A1,AL,0 # 3 # 4 # 5 # 6 @KgetAL nilz A1,r2,255 # (convert double->char) 7 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf nilz A1,r2,255 # 8 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf nilz A1,r2,255 # 9 @KgetAL exts A1,r2# (convert double->short) 10 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf exts A1,2 # 11 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf exts A1,2 # 12 @KgetAL niuo A1,r2,0 # (convert double->short uns) 13 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf niuo A1,r2,0 # 14 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf niuo A1,r2,0 # 15 @KmovA1=AL> # (convert double->int) 16 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 17 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 18 @KmovA1=AL> # (convert double->int) 6.new cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf mr A1,r2 # 19 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffac00(r15) # fpI_trd cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf mr A1,r2 # 20 @KgetAL nilz A1,r2,255 # (convert float->char) 23 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf nilz A1,r2,255 # 24 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf nilz A1,r2,255 # 25 @KgetAL exts A1,r2 # (convert float->short) 26 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf exts A1,r2 # 27 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf exts A1,r2 # 28 @KgetAL niuo A1,r2,0 # (convert float->uns short) 29 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf niuo A1,r2,0 # 30 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf niuo A1,r2,0 # 31 @KmovA1=AL> # (convert float->int) 32 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf mr A1,r2 # 33 ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(06))|~0xffffbc00(r15) # fpI_trf cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdf mr A1,r2 # 34 @KmovA1=AL # (convert int->float) 38 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c01(r15) # fpII_i2f # 39 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c01(r15) # fpII_i2f # 40 @KmovA1=AL # (convert int(mem)->float) 41 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 42 ! ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 43 @KmovA1=AL # (convert int->float) 44 cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 45 ! cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 46 @KmovA1=AL> # (convert int->float) 47 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c01(r15) # fpII_i2f # 48 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c01(r15) # fpII_i2f # 49 @KmovA1=AL> # (convert int->float) 50 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 51 ! ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 52 @KmovA1=AL> # (convert int->float) 53 cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 54 ! cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0x1c00(r15) # fpI_i2f # 55 @KmovA1=AL # (convert int->double) 68 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc01(r15) # fpII_i2d # 69 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc01(r15) # fpII_i2d # 70 @KmovA1=AL # (convert int->double) 71 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 72 ! ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 73 @KmovA1=AL # (convert int->double) 74 cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 75 ! cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 76 @KmovA1=AL> # (convert int->double) 77 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc01(r15) # fpII_i2d # 78 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc01(r15) # fpII_i2d # 79 @KmovA1=AL> # (convert int->double) 80 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 81 ! ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 82 @KmovA1=AL> # (convert int->double) 83 cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 84 ! cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(A1))|~0xc00(r15) # fpI_i2d # 85 @KgetAL put r2,A1 put r3,D1 # (int->double) 86 cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(06))|~0xc00(r15) # fpI_i2d put r2,A1 put r3,D1 # 87 ! cau r15,0xff08(r0) put AL,0x80*(06)|~(8*(06))|~0xc00(r15) # fpI_i2d put r2,A1 put r3,D1 # 88 @KmovA1=AL # (convert double->float) 100 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x5800(r15) # fpI_d2fi # 101 ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x5802(r15) # fpII_d2fi # 102 @KmovA1=AL> # (convert double->float) 103 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x5800(r15) # fpI_d2fi # 104 ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x5802(r15) # fpII_d2fi # 105 @KmovA1=AL> # (convert double->float) 106 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(06))|~0x5800(r15) # fpI_d2fi put r2,A1 # 107 !XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(06))|~0x5800(r15) # fpI_d2fi put r2,A1 # 108 @KmovAL=AL # REMOVED > (convert double->float) 109 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f # 110 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f # 111 @KmovAL=AL> # (convert double->float) 112 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f # 113 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5800(r15) # fpI_d2f # 114 @KmovA1=AL # (convert float->double) 115 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x6c00(r15) # fpI_f2di # 116 ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x6c01(r15) # fpII_f2di # 117 @KmovA1=AL> # (convert float->double) 118 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x6c00(r15) # fpI_f2di # 119 ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x6c01(r15) # fpII_f2di # 120 @KmovAL=AL # (convert float->double) 124 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d # 125 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d # 126 @KmovAL=AL> # (convert float->double) 127 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d # 128 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(AL))|~0x6c00(r15) # fpI_f2d # 129 @KmovA1=AL # (convert float->double) 130 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 # 131 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 # 132 @KmovA1=AL> # (convert float->double) 133 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 # 134 cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 ! cau r15,0xff00(r0) put r0,0x80*(AL)|~(8*(A1))|~0x6c00(r15) # fpI_f2d2 # 135 # 136 # 141 cas AL,AR,r0 # 142 ZQ AR,ALZq ZA A1,A-L # 143 Zs AR,ALZq Zl A1,A-L # 144 ZQ AR,ALZq ZA A1,A-L # 145 Zs AR,ALZq Zl A1,A-L # 146 ZQ AR,ALZq # 147 lis A1,CR Zs A1,ALZq # 147.1 Zs AR,ALZq # 148 Zo # 149 Zw ZQ r2,ALZq ZQ r3,DLZq # 150 Zw ZQ r2,ALZq # 151 @KgetAR ZQ r3,DLZq ZQ r2,ALZq # (float-reg to mem) 152 cau r15,0xff03(r0) get r3,0x80*(AR)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(AR)|~(8*(0))|~0xfffff000(r15) # fpI_rdd ZQ r3,DLZq ZQ r2,ALZq # 153 cal r2,A+L cau r15,0xfe3e(r0) put r2,0x80*(AR)|~(8*(0))|~0x7c02(r15) # fpII_rdd # 154 @KgetAR ZQ r2,ALZq # (float-reg to float-memory) 155 cau r15,0xff03(r0) get r2,0x80*(AR)|~(8*(AR))|~0xfffff000(r15) # fpI_rdf ZQ r2,ALZq # 156 cal r2,A+L cau r15,0xfe3e(r0) put r2,0x80*(AR)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 157 @KgetAR ZQ r2,ALZq # (float-reg to float-memory) 158 cau r15,0xff03(r0) get r2,0x80*(AR)|~(8*(AR))|~0xfffff000(r15) # fpI_rdf Zs r2,ALZq # 159 cal r2,A+L cau r15,0xfe3e(r0) put r2,0x80*(AR)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 160 @KmovAL=AR # reg->reg 161 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd # 162 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1000(r15) # fpI_cpd # 163 @KmovAL=AR # reg->reg 164 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf # 165 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x1400(r15) # fpI_cpf # 166 Zr A1,A-R Zr A2,DR ZQ A1,ALZq ZQ A2,DLZq # 167 Zr A1,A-R ZQ A1,ALZq Zr A1,DR ZQ A1,DLZq # 168 Zg A1,AR ZQ A1,ALZq # 169 Zr A1,AR Zs A1,ALZq # 170 Zr A1,AR Zs A1,ALZq # 172 @KmovAL=AR # (assign double-reg to float-memory) 173 cau r15,0xff00(r0) put r0,0x80*(AR)|~(8*(AR))|~0x5800(r15) # fpI_d2f cau r15,0xff03(r0) get r2,0x80*(AR)|~(8*(AR))|~0xfffff000(r15) # fpI_rdf ZQ r2,ALZq # 174 cau r15,0xff00(r0) put r0,0x80*(AR)|~(8*(AR))|~0x5800(r15) # fpI_d2f cal r2,A+L cau r15,0xfe3e(r0) put r2,0x80*(AR)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 175 @KmovAL=AR # (assign double-reg to float-memory) 173.1 cau r15,0xff00(r0) put r0,0x80*(AR)|~(8*(AR))|~0x5800(r15) # fpI_d2f cau r15,0xff03(r0) get r2,0x80*(AR)|~(8*(AR))|~0xfffff000(r15) # fpI_rdf Zs r2,ALZq # 174.1 cau r15,0xff00(r0) put r0,0x80*(AR)|~(8*(AR))|~0x5800(r15) # fpI_d2f cal r2,A+L cau r15,0xfe3e(r0) put r2,0x80*(AR)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 175.1 @KmovAL=AR # (assign double-reg to float-memory) 176 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(A1))|~0x1000(r15) # fpI_cpd cau r15,0xff00(r0) put r0,0x80*(A1)|~(8*(A1))|~0x5800(r15) # fpI_d2f cau r15,0xff03(r0) get r2,0x80*(A1)|~(8*(A1))|~0xfffff000(r15) # fpI_rdf ZQ r2,ALZq # 177 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(A1))|~0x1000(r15) # fpI_cpd cau r15,0xff00(r0) put r0,0x80*(A1)|~(8*(A1))|~0x5800(r15) # fpI_d2f cal r2,A+L cau r15,0xfe3e(r0) put r2,0x80*(A1)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 178 ZA A1,A-L mr A2,AR ZF o A1,A2 ZQ A1,ALZq # 179 put AL,A1 # 180 ZS # 181 ZE # 182 ZE # 183 ZT # 184 lis A1,CL # 185 ZO # 186 cal A1,CL(r0) # 187 cal16 A1,CL(r0) # 188 ZY # 189 ZY # 190 put AL,A1 # 191 Zl A1,A-L Zl A2,DL ZQ A1,A3Zq ZQ A2,D3Zq # 192 Zl A1,A-L ZQ A1,A2Zq Zl A1,DL ZQ A1,D2Zq # 193 Zw put r2,A1 put r3,D1 # 194 Zw put r2,A1 # 195 @KgetAL put r3,D1 put r2,A1 # (move double->temp) 196 cau r15,0xff03(r0) get r3,0x80*(AL)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(AL)|~(8*(0))|~0xfffff000(r15) # fpI_rdd put r3,D1 put r2,A1 # 197 cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(AL)|~(8*(0))|~0x7c02(r15) # fpII_rdd # 198 @KgetAL put r2,A1 # (move float->temp) cau r15,0xff03(r0) get r2,0x80*(AL)|~(8*(AL))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 199 cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(AL)|~(8*(0))|~0x7c01(r15) # fpII_rdf #37 @KmovA1=AL> # (copy ROMP float->FP reg) 200 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1400(r15) # fpI_cpf ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1400(r15) # fpI_cpf # 201 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1400(r15) # fpI_cpf ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1400(r15) # fpI_cpf # 202 @KmovA1=AL> # (copy ROMP double->FP reg) 203 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1000(r15) # fpI_cpd ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1000(r15) # fpI_cpd # 204 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1000(r15) # fpI_cpd ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(A1))|~0x1000(r15) # fpI_cpd # 205 # 206 mr A1,AL # 207 mr A1,AL # 208 ZA A1,A-L # 209 Zl A1,A-L # 210 Zl A1,A-L # 211 ZA A1,A-L # 212 @KcpdA1=AL # (load FP [side effects]) 213 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(A1))|~0x5004(r15) cau r15,0xff02(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_cpdi # 214 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(06)|~(8*(A1))|~0x7c02(r15) # fpII_cpdi # 215 @KcpdA1=AL> # (load double from memory) 216 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(A1))|~0x5004(r15) cau r15,0xff02(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_cpdi # 217 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(06)|~(8*(A1))|~0x7c02(r15) # fpII_cpdi # 218 @KcpfA1=AL # (load float from memory [side-effect]) 219 ZA r2,AL cau r15,0xff02(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_cpfi # 220 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(06)|~(8*(A1))|~0x7c01(r15) # fpII_cpfi # 221 @KcpfA1=AL> # (load float from memory) 222 ZA r2,AL cau r15,0xff02(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_cpfi # 223 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(06)|~(8*(A1))|~0x7c01(r15) # fpII_cpfi # 224 @KcpfA1=AL> # (load float from memory) 225 Zl r2,AL cau r15,0xff02(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_cpfi # 226 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(06)|~(8*(A1))|~0x7c01(r15) # fpII_cpfi # 227 @KcpfA1=AL> # (load float from memory) 228 ZA r2,AL cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(A1))|~0x6c00(r15) # fpI_f2di # 229 ! cal r2,AL cau r15,0xfe08(r0) put r2,0x80*(06)|~(8*(A1))|~0x6c01(r15) # fpII_f2di # 230 # 231 ci AL,0 # 232 cli AL,0 # 233 Zl A1,A-L Zl A2,DL o A1,A2 # 234 @KgetAL o r2,r3 # (against 0.0D0) 235 cau r15,0xff03(r0) get r3,0x80*(AL)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(AL)|~(8*(0))|~0xfffff000(r15) # fpI_rdd o r2,r3 # 236 ! cau r15,0xff03(r0) get r3,0x80*(AL)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(AL)|~(8*(0))|~0xfffff000(r15) # fpI_rdd o r2,r3 # 237 Zl A1,A-L niuo A1,A1,0x7fff ci A1,0 # 238 @KgetAL niuo r2,r2,0x7fff # (against 0.0) cau r15,0xff03(r0) get r2,0x80*(AL)|~(8*(AL))|~0xfffff000(r15) # fpI_rdf niuo r2,r2,0x7fff # 239 ! cau r15,0xff03(r0) get r2,0x80*(AL)|~(8*(AL))|~0xfffff000(r15) # fpI_rdf niuo r2,r2,0x7fff # 240 twoc A1,AL # 241 @KnegA1=AL # (unary minus, for side effect) 242 ZA r2,AL cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5400(r15) # fpI_ngfi # 243 cal r2,AL cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5401(r15) # fpII_ngfi # 244 @KnegA1=AL # (unary minus, for value) 245 ZA r2,AL cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5400(r15) # fpI_ngfi # 246 cal r2,AL cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5401(r15) # fpII_ngfi # 247 @KnegAL # (unary minus, for side effect, in reg) 248 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf # 249 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf # 250 @KnegAL # (unary minus, in reg) 251 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf # 252 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5400(r15) # fpI_ngf # 253 @KnegA1=AL # (- double) 254 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_ngdi # 255 cal r2,AL cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5002(r15) # fpII_ngdi # 256 @KnegA1=AL # (- double) 257 XAL2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5000(r15) # fpI_ngdi # 258 cal r2,AL cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(A1))|~0x5002(r15) # fpII_ngdi # 259 @KnegAL # 260 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd # 261 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd # 262 @KnegAL # 263 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd # 264 cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd ! cau r15,0xff01(r0) put r0,0x80*(AL)|~(8*(AL))|~0x5000(r15) # fpI_ngd # 265 onec A1,AL # 266 ZB AL,AL,CR # 267 ZB AL,AL,CR # 268 ZB AL,AR # 269 ZX # 270 ZB A1,AL,CR # 271 ZB A1,AL,CR # 272 ZB AL,AR # 273 OL AL,AR # 274 OLis AL,CR # 275 OLi AL,AL,CR # 276 cas A1,AL,AR # 277 cas A1,AR,AL # 278 inc AL,CR # 279 @syntax error # 280 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(A1))|~0x5004(r15) cau r15,0xff05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x0(r15) # fpI_adid # 281 ! cal r2,AL cau r15,0xfe05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x2(r15) # fpII_adid # 282 @syntax error # 283 ZA r2,AL cau r15,0xff05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x400(r15) # fpI_adif # 284 ! cal r2,AL cau r15,0xfe05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x401(r15) # fpII_adif # 285 @KaddAL=AR # ( += ) 286 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf # 287 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf # 288 @KaddAL=AR # ( += ) 289 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf # 290 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x400(r15) # fpI_adf # 291 @KaddAL=AR # ( += in registers ) 295 ZA r2,AR cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x400(r15) # fpI_adfi # 296 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x401(r15) # fpII_adfi # 297 @KaddAL=AR # ( += ) 298 ZA r2,AR cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x400(r15) # fpI_adfi # 299 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x401(r15) # fpII_adfi # 300 # 301 @KaddAL=AR # ( + ) 302 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add # 303 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add # 304 @KaddAL=AR # ( + ) 305 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add # 306 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x0(r15) # fpI_add # 307 @KaddAL=AR # ( += ) 311 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x0(r15) # fpI_addi # 312 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x2(r15) # fpII_addi # 313 @KaddAL=AR # ( += ) 314 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x0(r15) # fpI_addi # 315 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x2(r15) # fpII_addi # 316 dec AL,CR # 317 @syntax error# 318 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(A1))|~0x5004(r15) cau r15,0xff05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x4000(r15) # fpI_sbid # 319 ! cal r2,AL cau r15,0xfe05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x4002(r15) # fpII_sbid # 320 @syntax error# 321 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff05(r0) put r2,0x80*(AR)|~(8*(06))|~0x4000(r15) # fpI_sbid cau r15,0xff03(r0) get r3,0x80*(06)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdd put r3,D1 put r2,A1 # 322 cal r2,AL cau r15,0xfe05(r0) put r2,0x80*(AR)|~(8*(06))|~0x4002(r15) # fpII_sbid cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(06)|~(8*(0))|~0x7c02(r15) # fpII_rdd # 323 @syntax error #71.2 ZA r2,AL cau r15,0xff05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x4400(r15) # fpI_sbif # 324 ! cal r2,AL cau r15,0xfe05(r0) put r2,0x80*(AR)|~(8*(A1))|~0x4401(r15) # fpII_sbif # 325 @syntax error # 326 ZA r2,AL cau r15,0xff05(r0) put r2,0x80*(AR)|~(8*(06))|~0x4400(r15) # fpI_sbif cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(06))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 327 cal r2,AL cau r15,0xfe05(r0) put r2,0x80*(AR)|~(8*(06))|~0x4401(r15) # fpII_sbif cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(06)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 328 @KsubAL=AR # ( -= ) 329 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf # 330 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf # 331 @KsubAL=AR # ( -= ) 332 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf # 333 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4400(r15) # fpI_sbf # 334 @KsubAL=AR # ( -= ) 338 ZA r2,AR cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4400(r15) # fpI_sbfi # 339 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4401(r15) # fpII_sbfi # 340 @KsubAL=AR # ( -= ) 341 ZA r2,AR cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4400(r15) # fpI_sbfi # 342 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4401(r15) # fpII_sbfi # 343 # 344 @KsubAL=AR # ( -= ) 345 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd # 346 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd # 347 @KsubAL=AR # ( -= ) 348 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd # 349 cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd ! cau r15,0xff01(r0) put r0,0x80*(AR)|~(8*(AL))|~0x4000(r15) # fpI_sbd # 350 @KsubAL=AR # ( -= ) 354 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4000(r15) # fpI_sbdi # 355 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4002(r15) # fpII_sbdi # 356 @KsubAL=AR # ( -= ) 357 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4000(r15) # fpI_sbdi # 358 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(AL))|~0x4002(r15) # fpII_sbdi # 359 # 360 ZC # 361 ZC ci A1,0 # 362 ZC # 363 OL AL,AR # 364 OLis AL,CR # 366 ai A1,AL,CR # 367 sfi A1,AR,CL # 368 nilz A1,A1,0 # 369 ZM # 370 ZM # 371 ZM # 372 ZM # 373 ZM # 374 @KmulAL=AR # ( *= ) 375 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld # 376 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld # 377 @KmulA1=AL+AR # ( * ) 378 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(A1))|~0x5004(r15) cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffffc000(r15) # fpI_mlid # 379 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffffc002(r15) # fpII_mlid # 380 @KmulA1=AL+AR # ( * ) 381 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffffc000(r15) # fpI_mlid cau r15,0xff03(r0) get r3,0x80*(06)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdd put r3,D1 put r2,A1 # 382 cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffffc002(r15) # fpII_mlid cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(06)|~(8*(0))|~0x7c02(r15) # fpII_rdd # 383 @KmulA1=AL+AR # ( * ) 384 ZA r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffffc400(r15) # fpI_mlif # 385 ! ZA r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffffc400(r15) # fpI_mlif # 386 @KmulA1=AL+AR # ( * ) 387 Zl r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffffc400(r15) # fpI_mlif # 388 .1! Zl r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffffc400(r15) # fpI_mlif # 389 @KmulA1=AL+AR # (*) 390 ZA r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffffc400(r15) # fpI_mlif cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(06))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 391 ! ZA r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffffc400(r15) # fpI_mlif cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(06))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 392 @KmulAL=AR # ( *= ) 393 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf # 394 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf # 395 @KmulAL=AR # ( *= ) 396 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf # 397 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc400(r15) # fpI_mlf # 398 @KmulAL=AR # ( *= ) 402 ZA r2,AR cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc400(r15) # fpI_mlfi # 403 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc401(r15) # fpII_mlfi # 404 @KmulAL=AR # ( *= ) 405 ZA r2,AR cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc400(r15) # fpI_mlfi # 406 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc401(r15) # fpII_mlfi # 407 @Fooey 405 FPzmlfi(FA,AL,AR,8) # 406.1 ErrordErroriError407 KmulAL=AR # ( *= ) 405.1 # 408 @KmulAL=AR # ( *= ) 409 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld # 410 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffffc000(r15) # fpI_mld # 411 @KmulAL=AR # ( *= ) 415 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc000(r15) # fpI_mldi # 416 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc002(r15) # fpII_mldi # 417 @KmulAL=AR # ( *= ) 418 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc000(r15) # fpI_mldi # 419 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffffc002(r15) # fpII_mldi # 420 # 421 ZD # 422 ZD # 423 @syntax error # 424 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(A1))|~0x5004(r15) cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffff8000(r15) # fpI_dvid # 425 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffff8002(r15) # fpII_dvid # 426 @syntax error # 427 ZA r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffff8400(r15) # fpI_dvif # 428 ! cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(AR)|~(8*(A1))|~0xffff8401(r15) # fpII_dvif # 429 @syntax error # 430 ZA r2,AL cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffff8400(r15) # fpI_dvif cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(06))|~0xfffff000(r15) # fpI_rdf put r2,A1 # 431 cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffff8401(r15) # fpII_dvif cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(06)|~(8*(0))|~0x7c01(r15) # fpII_rdf # 432 @KdivAL=AR # 433 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf # 434 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf # 435 @KdivAL=AR # 436 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf # 437 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8400(r15) # fpI_dvf # 438 @KdivAL=AR # 442 ZA r2,AR cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8400(r15) # fpI_dvfi # 443 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8401(r15) # fpII_dvfi # 444 @KdivAL=AR # 445 ZA r2,AR cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8400(r15) # fpI_dvfi # 446 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8401(r15) # fpII_dvfi # 447 # 448 @KdivAL=AR # 449 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd # 450 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd # 451 @KdivAL=AR # 452 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd # 453 cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd ! cau r15,0xff02(r0) put r0,0x80*(AR)|~(8*(AL))|~0xffff8000(r15) # fpI_dvd # 454 @KdivAL=AR # 458 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8000(r15) # fpI_dvdi # 459 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8002(r15) # fpII_dvdi # 460 @KdivAL=AR # 461 XAR2 cau r15,0xff02(r0) put %(2+1),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8000(r15) # fpI_dvdi # 462 ! cal r2,AR cau r15,0xfe0a(r0) put r2,0x80*(06)|~(8*(AL))|~0xffff8002(r15) # fpII_dvdi # 463 @syntax error # 464 XAL2 cau r15,0xff02(r0) put r3,0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffff8000(r15) # fpI_dvid cau r15,0xff03(r0) get r3,0x80*(06)|~(8*(0))|~0xfffff040(r15) l r2,0x80*(06)|~(8*(0))|~0xfffff000(r15) # fpI_rdd put r3,D1 put r2,A1 # 465 cal r2,AL cau r15,0xfe06(r0) put r2,0x80*(AR)|~(8*(06))|~0xffff8002(r15) # fpII_dvid cal r2,A+1 cau r15,0xfe3e(r0) put r2,0x80*(06)|~(8*(0))|~0x7c02(r15) # fpII_rdd # 466 # 467 ZD # 468 ZD # 469 onec A1,AL # 470 ci AL,CR ZP # 471 c AL,AR ZP # 472 cli AL,CR ZP # 473 cl AL,AR ZP # 474 @KcmpAL=AR # 475 cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2400(r15) # fpI_cmf cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI! cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2400(r15) # fpI_cmf cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 476 cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2400(r15) # fpI_cmf cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI! cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2400(r15) # fpI_cmf cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 477 @KcmpAL=AR # 478 ZA r2,AR cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(ALZU))|~0x2400(r15) # fpI_cmfi cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 479 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(ALZU))|~0x2401(r15) # fpII_cmfi cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 480 @KcmpAL=AR # 481 cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2000(r15) # fpI_cmd cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI! cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2000(r15) # fpI_cmd cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 482 cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2000(r15) # fpI_cmd cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI! cau r15,0xff01(r0) put r2,0x80*(AR)|~(8*(ALZU))|~0x2000(r15) # fpI_cmd cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 483 @KcmpAL=AR # 484 XAR2 cau r15,0xff02(r0) put %(r3),0x80*(0)|~(8*(06))|~0x5004(r15) cau r15,0xff09(r0) put r2,0x80*(06)|~(8*(ALZU))|~0x2000(r15) # fpI_cmdi cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 485 ! cal r2,AR cau r15,0xfe09(r0) put r2,0x80*(06)|~(8*(ALZU))|~0x2002(r15) # fpII_cmdi cau r15,0xff01(r0) get r2,0x80*(0)|~(8*(0))|~0xffffdfb8(r15) # fpI_rdstr nilz r2,r2,0x600 ZI # 486 lis A1,1 ZN # 487 lis A1,1 ZN # 488 sr AL,AR # 489 sri AL,CR # 490 sr AL,AR # 491 sri AL,CR # 492 sar AL,AR # 493 sari AL,CR # 494 sr AL,AR # 495 sri AL,CR # 496 sar AL,AR # 497 sari AL,CR # 498 sl AL,AR # 499 sli AL,CR # 500 sli AL,CR # 501 sl AL,AR # 502 .long CL # 503 .short CL # 504 .byte CL # 505 b AL # 506 br AL # 507 Zl A1,AL br A1 # 508 Za A1,AL inc A1,CR ZQ A1,ALZq dec A1,CR # 509 Za A1,AL dec A1,CR ZQ A1,ALZq inc A1,CR # 510 too many errorscannot recover from earlier errors: goodbye! compiler error: ݈warning: NAMEpLNAMEqPNAME|STATNAMrTNAME{LTEMPSTRING^REGsTREG_OREGICONLABCONSTLABxADDRvLADDRwPADDR}STADDRFCONSFCON`CCODES~CCODETyLFNOP U- U*U&HUCALLKUFCALLL!M~lFORCEnINIThSCONViPCONVtOCONVLzUNYNOPuOCONVT+h+=!i-( -=!) *  *=) &@h&=`I?:&&||8,DOLR;,OP:= %?%= @<<A<<=0 B>>C>>=0 |@H|=`I^@H^=`IN++ O-- E->FCALLIFCALLP==Q!=R<=S<T>=U>YUGTXUGEWULTVULE]A>>!TYPE6[mCBRANCHgFLDjPMCONVkPVCONV$RETURN oCAST %GOTObSTASG cSTARGdSTCALLfUSTCALL*jout of tree space; recompile with -Ntx option with %s %dx greater thanpop: %d, val: %ld wasted space: %oP Rfreeing blank tree!N  (08@HPX`ltxPTR FTN ARY %sno memory to malloc  .long 0x%lX .long 0x%lX .long 0x%lX outdouble: bad arguments `\<P#undeffargcharshortintlongfloatdoublestrtyuniontyenumtymoetyucharushortunsignedulong??     @ $  ,  4@ 8  @@  H L  T  \@l `@p  h@  p@t` t@x ` |@ ` @|P @ P @ P       @p @ p @ p @x @ x @ x    @H @ H @ H  $ , 0 8 @ D L T XH \L d h` ld t xh |l    `absacosasinatanatan2cosexploglog10sinsqrttan0gentcall should not be invoked except for -f2bad transcendental number: %d. cau r15,0x%4.4x(r0) # fpII_%s put r2,0x80*(%s)|~(8*(%s))|~0x%4.4x(r15) Invalid call to gentcall with %d,x get r2,$%d+L.%dL(r1) balix r15,%s #local3 1 balix r15,_.%s #bali 1 get r0, # gentcall (new) get r15,0() balrx r15,r15 mr r0, get r2,$%d+L.%dL(r1) get r4,$ # gencall put r2,A1 put r3,D1 put r2,A1 @ mr r4,r3 mr r3,r2 lis r2,0+06 bala 0x1240 # fp_d2fi # Here, we really are cau r15,0xff02(r0) put r3,8*(06)|~0x5004(r15) cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(06))|~0x5800(r15) # fp_d2fi cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(06))|~0xfffff000(r15) # fp_rdf cau r15,0xff02(r0) put r3,8*(06)|~0x5004(r15) cau r15,0xff08(r0) put r2,0x80*(06)|~(8*(06))|~0x5800(r15) # fp_d2fi cau r15,0xff03(r0) get r2,0x80*(06)|~(8*(06))|~0xfffff000(r15) # fp_rdf put r2,A1 P ' /`00021''L/HP0-l          Rbbad conditional branch: %s %s L.%d bbntbbtbb %s L.%d :# genfpbranch: %o %s notapplied=%d ci r2,0x200 beq L.%d ci r2,0x200 bne L.%d ci r2,0x200 bhe L.%d ci r2,0x400 beq L.%d ci r2,0x200 beq L.%d ci r2,0x400 bhe L.%d ci r2,0x400 beq L.%d ci r2,0x400 bne L.%d beq L.%d ci r2,0x200 beq L.%d beq L.%d ci r2,0x600 beq L.%d beq L.%d ci r2,0 beq L.%d bne L.%d ble L.%d btb L.%d ble L.%d bl L.%d ci r2,-1 beq L.%d bhe L.%d btb L.%d bhe L.%d bh L.%d btb L.%d bh L.%d '8'< # gettemp: size=%d loc=%d < <O > >O = =O ? ?O *# hardops: got an SCONV one +T&(,08|L8DTb, mts r10, s , m ,%d mfs r10, twoc %s,%s sli %s,%d a %s,%s cas %s,%s,r0 sli %s,%d slpi %s,%d cas %s,%s,%s cas %s,%s,r0 sli %s,%d cas %s,%s,r0 .<>gendiv: no bit set ci %s,0 dec %s,%u ai %s,%s,-%u cau %s,-%u(%s) slpi %s,0 ci %s,0 inc %s,%u ai %s,%s,%u cau %s,%u(%s) dec %s,1 sari %s,%d srpi %s,%d sri %s,%d v nilz %s,%s,%u niuo %s,%s,%u HL.%dɐConstant pool too big`\<\3 3 <%d(%s)<x .long %s+%ld .text XH$Header:local3.c 12.0$sqfsqfisqfasqdsqdisqdasinsinisinacoscosicosatantanitanaexpexpiexpaatanataniatanaacosacosiasinasiniloglogilogalog10log10ilog10alogblogbiatan2atan2iatan2amodfmodfimoddmoddipolypolyiabdabdirnfrnfirndrndiscalbibeqbnebleblbhebhbleblbhebhuldiv$$ldiv$$ulrem$$lrem$$uldiv$$ldiv$$ulrem$$lrem$$, 0 4 P8 H< H@ D H L P  Txd# genfloat --- #- Bad genfloat operatorUnknown genfloat operatorP͒negbnebeqblblebhbheIllegal operator to FP compare %s L.%d .<pp  get_float: non-fp-registerget_float: bad fp-register type 0%o [0%o] д # copy_float(,%s) # Load: use Src type: rewrite 0%o as 0%o # move_float(,%s) type= # SCONV: use Node type: rewrite 0%o as 0%o ݈Vvneed_move_float: bad last_type 0%o(   l՞#-- re-use %s: label=%d  '80L .data 3 .align 2 L.%d: # RTFL %s .short 0x60f0 # cas r0,r15,0 .long FPGLUE .byte 0x%x # %s opcode .byte %d # numoperands .short 0x%x # scratch gpreg .byte %d # size .byte %d # size .byte %d # size .byte 0x%x # scratch_fp .byte 0x%x # operand %d type .byte 0x%x # operand %d .short 0x0 # pad to full word boundary .long 0x%x+L.%dL+L.%dARTFL: OREG from NARGREG unimplemented # operand %d's offset .fill %d,1,0 # Pad to %d size .fill %d,1,0 # Pad to %d size .text tؤ get r15,$L.%d balr r15,r15 # build_arg(0%o,op=%d) type= build_fp_args: unexpected operand 0%oNon-float 0%o (arg %d) to build_arg# build_arg %d: reg=%d optype=0x%x offset=%d <ڈ# Save f.p. registers 0x%x maxfpr=%d # Restore f.p. registers 0x%x maxfpr=%d p۶RTFL: no registers available for FRAME! get r%d,$0x%x+L.%dL+L.%dAIllegal offset reg %d(r1) # Use %d instead #--end %s $Header:local4.c 12.0$cpfcpdmovnegcmpgetaddsubmuldivmove FP result to ROMP registersstore-multipleload-multiple@(#)bcmp.c 1.0 84/10/03 IBM݌ ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$ݰ$Header:exit.c 12.0$Lp$Header:filbuf.c 12.0$1 `&$Header:findiop.c 12.0$0L@0$Header:flsbuf.c 12.0$\$H$Header:fopen.c 12.0$( $Header:fpabort.c 12.0$D$Header:fprintf.c 12.0$D$Header:fread.c 12.0$P H$Header:freopen.c 12.0$4H$Header:fseek.c 12.0$\$Header:ftell.c 12.0$TD$Header:fwrite.c 12.0$Xt$Header:getenv.c 12.0$$Header:isatty.c 12.0$0 0\,DH$Header:malloc.c 12.0$XD$Header:printf.c 12.0$ ($Header:setbuf.c 12.0$D$Header:sprintf.c 12.0$$Header:strncpy.c 12.0$11Lt $Header:calloc.c 12.0$\,xp8!$Header:doprnt.c 12.0$ d'B@*T0INFNAN()0x p$Header:ecvt.c 12.0$`\$@`\#@$Header:gcvt.c 12.0$8$Header:l10.c 12.0$$Header:mul211.c 12.0$$Header:mulu211.c 12.0$$Header:mulu32.c 12.0$x*A7\(;w5^k(  $Header:rad2a.c 12.0$$Header:shlun.c 12.0$ *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2$Header:spdiv7.c 12.0$BFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ $Header:tentothe.c 12.0$#]lnk ,###========>>>(>8B`pn7!819A` cC$N1 *,  P"p""7l  "1V@pD0$ $"1G@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p  c8Hd@03"N,P-L!)xP c \TcЪ1=2@D"8pc0#q1jЪ᭪"8p d "bfXp d 2$bl\p d p4p0p$q2b`ɡ<ߨ!ٱnk l0 ebЍk.ܔ ^  "Z̴`Ъ "|bp"  .>P@7 Dr %  "Z̴`Ъ "|bp"  .p>@ Dsb!,#23pbp bcЍ @ y | bɱ8߸!١nl k0 ""8  (>N,P,!("LNtPԍ,!(I`Ъ  ""8c!  "xj Bźbsym *bs c bЍ!bkr c 0!!c 03xb03xbj <.1q! q!ɡDߨ!nD "p 0,/0m  .04r 2 bk(c  0- "P 81-brxc q-<,brld q-c@@ ,bj(c U 0!cbЍ DbrMd q-c ̬H03xb8rn8!91:A;Q8! r ! cЍ q-I1 2 x!0A ١nl m01` "bp"s F  (>N,PV+VĤ!&*jDk *h cЪ1=333p*p :b0!!c Zqh .Lc0gq! q!ɡDߨ!فnk "P tm "ˆiؠȪp b p"p2bЍ xp b p"rB@ bcЍ` "bp"w" "cЍhbc(1! .c0,q! 0bc20!!c8  (>(NPP*T!&XbЍh  (>pNP*qT!&X "xi (ũbqA bp cЍؔ b 03xb$i q!`03cp33`003Tc:# .c/a,q!y0 "ŽbЍɹɁL߈nTД  (>N,P)p!%ot "xN4m -03xbЍ_@m  m  .L.HbЍLb0 ّni j00 k |`Ъ   "Tbq"h (>N,Pۍ)j!$ lЪͪͪTp b q"c;1!b1>4p b (z "2(b-4p b z  (>LNtP)!!$ bc˵k p!ɑHߘ!١nŲbnm  (>N,P(p!$ytЎq͔ (>LNtP(p!$^t@ y d{,   (>NP(p!$?tbl  (>NP(p!$#tbcA4,L`  "Tbq"$ d  d  ! b0ApbcЍmmЈxbmm 8q@ :  (>$NLP(;p!#txw*y  %0Ah % b0A]pݔ.lc-\Hɡ<ߨٱn  "Z̴`Ъ "|bp"  .>P@2Ȥ D p  (>pNP6'Ф!#ZbЍg\l  (>NP9'Ф!#=b`u<@adŲ +t.cЍ,bge\m  (>NP@R` tDҔ bf"x 5b!*#lgr7bp db1dzbk1 q ubcdp M pJHbB@bkC 4b!*#23tbp (>pNPj&h!"Ul p bbqHx1ّni k0j@ Hq+dl 8b!*#23pbp  (>N,P&w!"bcdLq;bpl ʍPrɑ@ߘ1١nj k0 "PPlm \p,P@} DbЍc= D p  q  |; "X 5bЍh .bЍbV  (>pNP $! 8bЍj~ "X bcij  "Zȴ "P`   "Tbq h t "X MH=DbIMbcBbm U-  2 "Z̴2`0 "|bp   .>D@ | "P  (>dNP $!:L0 b'bcƠm  Ű "Psbä "Zȴ bЍj  "Zȴɡ<ߨnl  $ "ZȐ!$/x.cЍ(bcЍR(є "Zȴ bЍjД bЍi,  "Zȴ "x/<4 ٱnm @-pst 'ou=@]hk c0`l ba ,03bp (>N,PW#/Ԥ!؍}bb`l @ pt ' (>LNtP[#Ԥ!bcpqS01RrsS23RtuS45Rɱ8߸n\̔  h qܔ q  r-03 @dpݔs̔4 n̤ "Zȴ $b^(m baHe .cd'  "Zȴ4 ٱnk r  "r 2,&5$m .0z(0 "ZȐ!b,1-0q=bj42 bɱ8߸!nm q-2 0 nД rҍbД ```0 ّnk l0pp  p-  p 0 qIq-c rbibrݔ㔐  020 ɑ@ߘ!̤lpSp P ppO@drdPrU2l@2Mm@ PP oPl20¤0!nl Д @pL.cЍ&q,~ @Du$! 5$ v$!!6$$ "x  *v4#4G$ 0*;$r̔4 فnl 3m@b0"""`qLG Fq bdЍ/$#bdЍ'$ qL  !Ųj @x } v w!B @ !"*tq  Š@x } v w@ R S T U43  6 @" @ t%t 4bcPpqS01RrsS23RtuS45Rt t%4 @|qy1 t t4 t,c#m4, .x(d t,c'Y4,t,c#XR4, .x(I t,c&>4JH`Ll20.,*(&$"  1ܤ!ɁD߈Aٱnl #m@@c 233`3̔ Ф 8@ Ȥ q  q A8@ l @ L|@ |@ 0|` .vv @ |i$dL  $|RHML p!  D4 - @  4 4  @  4 4  @  4 4  @  4 4  @ \ 4 4  @ \ 4 4  @  D  !4,  P !4,y @  D !4, P !4,U bcЍ KL I P w+ &(*  <LU %QiRST-h t u z1ܤ!tɱHߺA0 n "Zt ,!"@ -p3 ! "| `Ъ "b"`  "Tbq" "| "| `Ъ "b"`  "Tbq"m "| u "p!4 nЍA "| `Ъ "b"`  "Tbq" "| 0 ٱnl T8tܔЎf b  T k  T T T-i :wM$R 5-P 1 "@ +x]u=b@< P=P0  TT T ""@ T bЍ?@ TxMw=u-@D T T ""@ T xMw=bЍ@H  TwM$R z Tx]u=b@m< Tk T ""@ T bЍ?@YwM$R x]%R M Tu=b?L @ c2cp33A@ w]xMu=b?L T+ T ""@ T bЍ?[@@ b"ذȻ`bp""" $ ( .csP b >P R@ H  D 8:FIKbcdf- _=T   R T RvݔЈ "p t <. Xt,5/\ɱ8߸ٱnpȔ !03#  "x"03.p,"@-x0,02-p,01-t,d BD03!443- <.r8xp-d B0344.p p=.0q8 "tҎw "x70k lЪ ""Lb0b@rD D %  "Z̴`Ъ "|bp"  .> @rD , 03"HbЍ@  "t"@r-HN,P&!-T03"@!#q35-T" b0@ -TcЍ_@=b0"""`%5 -=T.Lp$x= Tbw= Tbw=-T   .|p "t T > bp: Tb0 LvݔЈq4 ٱnm0@  i  P (>N,P! P ""Lbp (>LNtPe!ذȻ"@r;bvL-P"s bp2bkL "p# MR.cɱ8߸!nm0 "t R  "Z̴c2 "|b#p20 # .>@ p0D ' R  "Z̴b"03|b2p20 # .>d@ p0, 03"Hb "p#.cL R ""Lbp (>NP8!8< R ""Lbp2b "p#QMR.cLG@ / i +b@w=bDD4x=b=Dw=b7D'w=b0D 5 .co<D@=b0"""`   .@o&D4! nl X(xp-2,,Xp-+,,\p-$,,Lp-,,Pp-,,T,L8,T8tܔ bcvݔ4 ٱnk l003t+T#<P4 b <L+T4@ I C9,L"@rMc rM<Tb06 i2;P0,L"@rMc rM<Tb0xb+  F H K d f {۔ =b tݔɱ8߸!nl  ""LbpҔ (>N,PBȤ!,Lc dЍl<Tb0dЍ4! فn "x%k "Tq-XML=X \b "|<`Ъ "bc20102 "Tb203"Dq XbLT X<\b0cLL<\b0 "| Ƥ "|o` "bhဪဪTp b03"Dqbp bpҔ -`  "Tbq"h B\bc$pݔ9Xb  )XcITbcIL \bc8 "| bɁD߈ٱnk Ѝl +.s .i. cbbcl  .Oɱ8߸nm M.cЍ8d.2d-L@. &d-T@.(d-P@ "p".0d-X~@.8d-\r@0 nФ "| `Ъ "b"`  "Tbq" "| 0 فnŒj0k@ (>N,PXRL!PbUTm ` ؀Ȉlb@"cЍXl  ` bq2bp b!+#23pbp b,b!+#""lcЍX* b,ɁD߈1١nj k0l@@ t wd@:b0"""`y  #b!,#23pbp :\bdJcgc bЍRj ɡ<ߨ1فnj h0i@*`cc bd{ M@ `b pA  =Űb!)#lmq=bp *@:`0b p!y bTc @-m bw-cc bQ{ڔ 3c193-llqP@kop Dqb!+#23|bpc2bQ%tbcЍQt  "Zȴx "P#`Ъ   "Tcq#h y3t"d|  "P ɱ8߸ٱnk l0   (>N,P)L! P%  "c  "bcbbcɱ8߸!nl m0  (>N,P5! a  (>LNtP6! @` "  " b4! nm "@! .cЍ 00@ b1@ 1є4 p!00@ 0p!u4 ٱnŲl0m@ "@!b c .0de ˫bЍEɱ<߸1nm "@! .cЍf00@ b1@ 1є4 p!ؤ00@ p! 4 nc "@!..T .X02$.X\ %, n ͤ0@_ , nN8 ""PBBBP4 ""P.8, nԔ  #`  ", n "$PPU4A$ .hi( "$P, nm0PU4dЍ- .hC0! ٱnk l "p 0q2@1 12   "p 0q2@1 12  @ PUb1C.ԉb oРdDO DbPU1bɱ<߸nl m0PU4dЍ̴- .gЪbܤ4! nԍf, n" "b. """"n.Д ( "tW4 0p  m .0f$ 3-bp ```s0 nm v- 03tu# 5=2 "t46 x bЍ z-  : {-  ; |-  < }-  = ~-  > - } ? -@ s @-D h D-H ] H-L R L-P G P-T < T-X 1 X-\ & \-d  dq -t-!3 0 nФ/\/$T0 n̍Ll  (>N,PP! T3,$X46ܤ*.ܤ8ܤ%$:;<=>@DHLPTX\di h "p! 0 b4 03\p0#03$T3#P%$Tnl m0 " (>N,P̍ ! s 3 34! nm "  (>N,PՍ X!5P/10 nl "  (>N,Pލ &X!\p-2¤@0LbL0M4 ١nj LPbTpq q p˔ " bXboT "pP0 " bXbTT03r b\1' "  (>N,P !/ bXXb!T bT " b`q   b2Xr+@m q b"Xjkq h " bXbT "/bXɡ<ߨnm r q]=.0 1dЍn h.4 0Y0N i @Y@N j PYPN k YN0? ls=.d @Y@N m PYPN$Mt=b8n\Д bЍsݔ```0 ٱnk l0\ * h # .c=bbp t-% sݔɱ8߸!n "&>, nԔ . "'>, nԔ .o "(L>u, nl Ctܔ bc9vݔ4 nm b0D%r]P0}5@0 30 %A$0! فni j0@){"""`Д Kt˔   "@ @  bc@ , $ ,bc0 $) 4h +4 !  $D I9.dk{ h) d  a  "Z̴c2 "|b#p20 # . >x@Ѝc80Dr &   "Z̴c2 "|b#p20 # .>@Ѝb80DsD I;.Rd+cAn, $ɁD߈!nl Btܔ bcvݔ4 nl m0 k 9 uL0z<!  $ %L<. bM@ ,MD <.  4! فnh tؔЎ@=yb0"""`NO~- > j :G&$ 4-M  (>N,P5 B(!, M=.L}ؤ! j$-d 8F$ 2-dMm  (>xNPD (!, M=d.@ؤ d$vݔЈkbAdtȔl@<ycb0"""`YNUOQbc{|   "Z̴c2 "|b#p20 # .>H@ua]0Dr &   "Z̴c2 "|b#p20 # .h>@ua80Ds  (>NPv\(!,ibcc +{- -jm t <.(@JPY t, ) jSL M I GE , @ L:.@ L 1! k +  !  (>TN|P(!m, !  :. ؔ R9,#:E$ G03,p (>NPˍ(!1,0 <.  L. )cAv̔ɁD߈nl m001ebc@dp @,"""`qAtqAt,cЍpAu̔ <1ٱnk l0@+"""` t+cu+cbp ɱ8߸!nm 0.L Dh .T :h 0.\ 0h`Ш.dcq3 h0 n> p p#"sR`R3p "فnh b"vbpb t`@)ш pqu9 ^xcЌ m u9 ^x`-)\ku9` pxcЌ m u9 px`-)\l`cЌ m  9.0de | k@@ t w (>,NTPx!  k u)d b0c! $ "IXɁH߈nhД&$\  h bЍ*(d . t- %,sݔ0 v 03$X! @D$X 0`0 !P%$\nm "$\  (>N,PfmH!Lv x  uP "$X  "$X.- %0 nl  #bЪ!-#x bq q"bЪ!-#x bt "  x,  03tu# 5  `  c103 "t48 4 n "$X 20 nq"xҔ-0  (>N,P!Rc1<3 "t4b0lm <`003t#4c1<3bЍ 6pm .Hc\Bt03$Z<`0b 1024531< "$Xq28! "$X4 nv̔ ` f@,"""`'<0 #2  "Z̴2`0 "|bp"  .>x@\ 5{ܔ '=2  "Z̴2`0 "|bp"  .>@č\ 5tݔv̔4! qng Ńi@@ht'A cЍj b cЍj bci @hu'dcЍk b cЍk bcG 1 db&q7@bd7 % 8 % Rq`x1anf sk@Ņ;t&@2u&@ @0t&A,0cpQH i t&Acpwi { "@;!!1&L u&Acp@Pj "@J;!   )@&1Pu&A(0cФQHj {z; b #bcЍ.j Pu&AcЍj b cЍj !&T1Ab%q6@bdp k 7 % 8 %  R x*bb! #03$\xb0w*bb! #xb0cЪ1=3 "$\xb0 {!c,;!|{0ba0|hQٱnm k0l@ @     (>N,PIU!x  (>HNpPK=!@  x-bX   (>NPO!x@   (>NPQ!w x  (>NN,Ps!q!D-pLq1#D-gLq1#@ q13@r!"kP q13Dr!"`P @A١nk l0,@ 0m (bЪ"v b bp*b <@b,  bcdQp <@bЍm ɡ<ߨ!ّnj k0+D 1bm )bЪ"v b bp,b KDbc,  bcdP-;DbЍ^m {۔ 5u- /,l 'b"v b bp)b uMbc,w  bcdPu=b*l tݔɑ@ߘ!ٱnk  8mܪx b q +ox c 1#q"mܪx b t t"x b u"  ʤ  &bЪ"v bp,b` x+cq3,Abcbc# ɱ8߸ٱnl L<.Fx Ў~bЪ!-#x k.(cЍ/p;0.8& 3.@q .Dq+.Lt .Xt+.`u+.hr bs .ls q;.|p. ɱ8߸n\Д h bЍRsݔ0 n "̔ H\  h bФ1sݔ\  h bЍ0,sݔ\  h tܔ -  ? vݔs̔4 فnh "k tq p | "@ 292  "Z̴2`0 "|bp"  .>x@Wk ~”   (>NP!Ibc-b!Qbl  (>NPc! "b,p@  2 0x -v *w '} $ !t u hw*@  x v w }  b " @ .(@Dc@ p3dpT0dRbl u u)  (>TN|Pƍ!vbcjb`ĉtuhw)@  t u hw)w"@ b-~w)@ W Ut u hlw)w"@ G Edx)@  t u hUx)w"@ Nb"%%-@ t u h2x)w"@ +bD-$@9   x)@ @9b0"""`Y\ vb $b=bɁH߈qng @'"""`łwbk obДxbl  bkXbuG@7beۓH ? " (@.c @ p3d pT0dp 䔈 @ .0c p3d.< %  % bpc&bbbqLxّni @)    (>N,P[b!w)-k 4 i j bcpqS01RrsS23RtuS45Rb0De bb " @ .LPUcwI@p3epU0AdZ@)Hx {  (>NP!w) %t w܉x,xw, %% y z 7٤8 $9bbЍ(t  t @ w) %x) %x)$bc-st @  t `@ \x)@  t u hDx)w"@ =x)Im uI@9beЍ% bb< 9bx)>(bЍw) %x) %bc9.ȍS, 9.S,bb!ɑDߘٱn2L`003Tcbq3t [b\b "!@;.233ed3hvɱ8߸!١nm -L`  "Tbq*!$l bbct =+bc 1@ '1db' !c!c1db !c  vt 9+bcQ -{ {+"cA${+  "!@;.233d@ bcФAʀ(vbɡ@ߨnl @m @N,PK!@  u 1 x 5 w,4-  bЍq j bЍm @-"""` W03bЍN 4 '5 %x "v w }   (>LNtP^!5@<5 =u 1 x w,4-5 ,9jc bpqS01RrsS23RtuS45Ru 1 b4 nl m0@  q 5 k@ |u t-7,r8 qMt=@,0P4",qMu=@,0P4 ",@<.Q#  (> NHP)`!d<2  "Z̴2`0 "|bp"  .h>@Q\ 5,8 ,cЍ8G7 8 8w   v x } z!n\Д h bЍsݔ0 ntД bЍvݔ```0 فnh u`b@8233` wu)xu ` @82CD`4  6 3  0  -,4 '       @8233`3 & Ɣ' bcҵk L@q p  (O k @(cӒ k /) <_  \ ).Ე* P@Pbp Db8tc bЍ4 nb7W q2@b-  "Z̴` "|bp"  .>P@ˍP Db8c bЍ4 a03$` ## 5#6#7#8#9# "# 4# %##` #n#m ;# !# #\ #fi #b #g #V #X #PN ?# #j #@#D#H<# #k =#># &#$#L#dnm 3Hv- !   (>N,PL!SP䉀q bp$. 0 ٱnk 4  $. jv+ 9 bp"v” (>N,Pƍl!;+ 102 "t4v+cЪ24`6+t`Ъ03t#4-4d6+v .H0Mh*۔ v+b0 Lv̔blɱ8߸n$6.$n.(Д +03# 0 Km .0M 4-b  ```t(0 nm u- r5 v- i6 4 0 n.Д ( "@ 8m .0M6Ȥ 0-bБؐ ```p010 n p20.b0 n@; tҍb@; 0 ٱnk H{+v˔ tҍabД ```t+ ܠ4 + ̤? +@ +D̤ @ D+H ̤ Hbkɱ8߸١nŲl0)03v#6 0p!j .0Lm6oȪp ```vb03$`@pqS8A01R( ```5b#VX. 6bɡ<ߨ1١nŢk0`(l b4,1,2 3 ! 5 6 {۔Ў=2  "Z̴2`0 "|bp"  .>p@эL0 Dr &=2  "Z̴2`0 "|bp"  .>@эL0 Dsc  "Z̴` "|bp"  .>`@֍L0 Dr %  "Z̴` "|bp"  .|>@֍L0 Ds (>N P֍!7t 4 44;bɡ<ߨ!n"D$H (>N,PsФ!,1 ٱnRl0${ܤ   ktݔ  ``` )    (>N,P 3!t ; t 4 bЍ^\  ɱ8߸13  t" ```nm  rc@dt  "Z̴` "|bp"  .>X@+Kd 5bcЍ7xbcЍY|41 n\Д O h HbЍ ;bЍ@ bЍ$bЍ (bЍ©,D =.0t- 4bЍl8D <<@sݔ0 nq"Д qpҔbД 0 nm q=3 s r-),>r-3'0 4.I80 nm @ ; t-u- m0dЍbЍ <ٱnk 3l@@+"""`{bdJHm bd-Lm bd?P m bdTm @ b c d f+t  (>N,P$!(ؘX4-cpqS01RrsS23RtuS45R@+"""` bcf\bcЍ2c 7bɱ8   ߸1anbg0h@ŕ@u (>N,PĤ!Ȥbݗb`0 b`c0\b  "Z̴b`` "|bp"  .H>@I u {*c`k 1Д  (>NPĤ!PȈ| S?b  "Z̴b`` "|bp"  .>@@IY @ D"   ) (>\NP{Ĥ!  u 1vۤ5 6 b`c@@*H 5r 4 b0de~ f q80 :d`ep$j pAp q]67Qr 8bc(bcЍ,&Pb`cpec 3p0bpqAeЍ0b` 2{bpa$phQ١nj k0 udPnm  ucdm 7 % 8   Rbɡ<ߨ1anh œj@@ht@{b`, 1ru;bp@)0b@{q(1!q 1bcdq1d4Abc8 m u(AcZTm glb`, gwN,P!ht;bp@).0ru;bp@)"0rbp0 @1!u Jbq1d4m 0bpcdegDm N O@ zww-@   (>HNpP!w-wҔbc؉m 0bpcde&Dm N O@ zw@    (>NPȍA!wݔbcb؉m Qbcdd tPq80 :e4m gt+Q0dd q;@+tP0Pd u 8Qb0dqd tPq80b`em 1Abbc bpHN O'w,@ g  (>NP*!B w.cpELba lr}p^pq|h1١nm l0ŤkP@  (>N,POf8!<t-cd l q=@-0dPl wLwDq=@-0Pl b Bu 8 ibEHbc.4bɡ@ߨAn2 "$Д . @ i P 0 fv" 0P$nm @  (>N,P!f Pw-H P0 nl @ ew,x," Pbw,H FE!w,x,"3bД!.!) &!,,Fm @-u=@&Lw, ! 4  "P//:8" rpnd ّnŒj0ŴlP  "Z̴` "|bp"  .>P@D uҔYq:@*d m  "Z̴` "|bp"  .l>@D 5"bcЍ*b+ܔ bc+   R@  bcd { ^ p q | bɑ@ߘAّni ţk@bt@ v&u9b@%hAb u9@%h (>N,PQ!bЍ'e qIu90b& D .HcЍ~0 (>dNP"!bcdem u9b@%hhbׄbcd#m u9b@%Qhbcderm u   t u)  (>NP<!Xt9b@%hbcde?m qIt90bP% bcde(m uYtIq90bWm q9bd0m t 7 u 8  R.cBYbɑD qtŽZ ^~ pe, "P//&hߘ1١nŢk0l@mPbcdЍS A>bcGcdЍrRɡ<ߨQّni ţl@t)mcdЍ'hk bcЍ MuYq9@ bdm  q9@)d  m 7 % u 8  R @ bЍ@ bcbЍ) $ fbɑ Lߘ1ّnm ţi@t-ȱcdXlbc u bcdЍXj bcdЍ b 0bɑ$dߘ1anh œl@@     '0bcdPHl wy (>N,PBx!|b ; cLYl t(acd`QLj u(qcdpGLk bc`dp 1q8bde yPl bЪ"""`A@ q8bde cPl q8bdl 7 % 8 %   Rba lh1nm Cu= z7 % 8R0! ٱnk m@@+̔  (>N,P !$@+3H+bcdЍu0 3TP??  55ɱ8߸1n"l@mPA6mL78R  %  % 4Q  "n .! .". .nm @M=.BDD@,u-H=b2,=0 (@ -' (t2 b,.(, b0#c 0 @  xMw=.0,.8,t]M N,PzdL!P f0-T [1-T P2-T0 nl p  (>N,P!߬p,0q,1r,24 012nm @ D  (>N,P!g @-D @-@-DQ-@K0 nl "@ ( "Zȴ !bЍ  bЍ)@qB@ bco  "Zȴ4 nl "@ ( "Zȴ !bЍ  bЍ)rB@ bc4  "Zȴ4 nl "@ ( "Zȴ !bЍ J bЍ(pB@ bc  "Zȴ4 ٱnk l0 Dp bn$tMq=|]bP|-+qLz=} b} |]bPcPdo |];@b0dP|]w=b0dPu=|]bP|-8rL{=} b} |]bPcPdA |];@b0dPvsMp=|]bPn|-LpLy=} ba} |]bPcPd |];Db0dPO|]v=b0dPGq= bwqL bc@np= bfpL bc@]ɱ8߸!١nj k0 D4p b "@ 1pK$y=} bs=|Mb@-|-} |Mb@c@d|Mv=b0|M:Db0 "@ *P 'l p Yp<* 03$*p;*$qMt=| bqKz=} b "@ P qL|-c | "%$}M| bc)| :@b0d^u=| br {=}Mb@dN "@ P rL|-c = "%$}M| bc| :@b0dɡ<ߨ!ّnj k@bЍJbЍ&m p   "@ bЍ Dbb "@ , *ؐș$s9| b|)yI| bc| v9b0d| :Db0dp;*  "@ p=* 03$* %ذȻ$tKq;|+ "@ qM|+c w03$zC|#c . q=@D$|$zD"*@ذȻ$|Kc TĔ u;|+ "@ rM|+c ?03${C|#c {Kr=|+@D%*@c !ɑ@ߘ1ّni j0w@ gw@  (>N,Pԍ!۠ Dbp b$tMq=|-qJz=} b "@ %+P !%l q YqL "%c qL bc@$|- t= b$}M| bcK| w=b0d| 9@b0dxq: bu=| br {=}Mb@d` "@ P rL|-c O "%$}M| bc| 9@b0d1sMp=| b)p y=}Mb@d  "@  P pL|-c pLv=b0$|-|Mv=b0$}M| bc| 9Db0dɑ@ߘ!فnh i0j@mPu  (>N,P-Ф!e)|Ų)$ul p   "@ b;h!Dp2hDb =56sٔ (>LNtPIދФ!r<-~|{ !Dr2 b~|03$ b~| }kl5) }dl6)$sMp=|-0t!DpBy=} b&t "@ pL|-c tpLv=b0t|Mv-c  t$}M| bc~| u9b0d~ttMq=| b~t!Dqz=}Mb@d~t "@ qL|-c ~tqLw=b0~t|Mw-c ~t$}M| bc~}| v9b0d~t!Dr{=}Mb@d~t "@ q<|-uMr=|-~t$}M| bc~J| v9b0d~t.͡DpJu $y=b~qtpLu bc~+pLv=b0~btrJ{=v b~ZtrLv bc~  "@ r<(}{ 03$(}p1Dr3(}gɁD߈Qnl pL@ $y-c ~qLz=b0~ rL{=b0~b$vMy-c ~EwMz=b0~>xM{=b0~7v-}Dw-}Dx-}D4 nl m@p p 0 q 1 r $2 0 q1 r2 pM@ p,c }qMqL.2F, "% 0L0 0$1L0 ```%0 ٱnȤfkЪ% p b p V.cЍߟp b p” @<.2CDcߍu,7 .߂y̔@Du$! 5$ v$!!6$$ "x  *v4#4$ 0*$ ɱ8߸ٱnk l0b|em XbЪ"v bpB{Cl?@4b0"""`52: / "@ =i#bЪ"v bp"@ bЪ"v bp"@2  bЪ"v bp" !bc|2 m  ɱ8߸!n2L`003Tcq1db! #x bq2bЍl"10  `0x-bq2bЍY"4 ١nk l0m@> 9! k | / @ ؠȪ`b p w+cdЍ @ b p x+cdЍ ! ɡ<ߨ1ٱnl m0-!@ ذȻ`b p w,cЍ @ b px,cЍ ! ɱ8߸!nm | A{ >< @  4 2x /v ,w )} & # @  w-  x-@ x- w-@ *k j# k@ `b p w-@ b px-4 nm | w{ 5 l1@=b0"""`'$: ! "@  = i@  @=  FbЍ{Д ?< @=4 55 3x 0v -w *} ' $bЍj @=6 8w-^ x-@ x-S w-@ *k j# k@ `b p w-l@ b px-_4 0 q p30 q```b0nm k{ 5 l1@=b0"""`'$: ! "@  = i@  @=  DbЍĔ =@=4 55 3x 0v -w *} ' $bЍ @=6 8w- x-@ x- w-@ "k@ `b p w-u@ b px-h4 nm0b c103xbpl@@ x@   (>N,P4֬L!;P܏! 41 ّni b"v bp < < k lb b@*"""` wJ{ <Ф j @*"""` @*"""` +wJ$b b bc] @*"""`xJb*b bcC є w* x* " @*"""` x*@ ]ɑ@ߘnl m0 8{ 5 l1@,1@ H buO @ y *| 'bc@ ؠȪ`b p w,cG@ b px,c9 ɡ<ߨ!nl m0{ ? l;@N,P! "xD  b+b  (>LNtP^! H -r\+H;H,seɱ8߸1ٱnk l0m@ qN,P_!w{ )k  bЪ"v bp{ } |  bcd kє  ┰k|  (>LNtPvҠ!/b+b  (>NPw҅!< @  5 3x 0v -w *} ' $b @  w+ x+@ x+ w+@ kbɁD߈1فni ţk@lP Hbtm ?bЪ"v bpbc (b $} }( ~; }(cd bcd bcdbctm ä ɁD߈Aّni ţb!*#x bq"tFm [bЪ"v bp[@bcdl 8@   .1db-b! #x buRbcd]l  b! #x buRbcdIl b!*#x bq2bЍtm  bɑDߘ!ٱnk l0m@@;4 35 1x .v +w (} % " @;6 8,w+ x+@ x+ w+@ (>N,Pɍ!̦ l ]L;.LPp k< { 8 l4@;b0"""`*': $ "@  = i@  @;  bF  lbɱ8߸1ّni j0k@ kX~ɔ U}:qܴ Lb0cda0 Cbcd5- bЍ8 bcdz b b! #x bp2 bЍ~8 bcd]}:bdp̔{ 5 l1@9b0"""`'$: ! "@  = i@  @9  "b }:})# dcd0 bcd | ɑ@ߘ1qnh œj@kPД 0brf l 'b"vbprbpcd b   bpcdm bcrdl bqHxAفni ţb!*#x bq"rm qbЪ"v bp[Dbcdl { uXbcdl t  8@   .1dbb! #x btRbcd^l  b! #x btRbcdJl b!*#x bq2bЍqm  bɁH߈!فnh œb!)#xbq"qm bЪ"vbp k  j|~wqK}:4E @< @  5 3x 0v -w *} ' $b`$ @  w*T$ x*@ x*I$ w*@ kEb-b#b Q0brq10 b r1q!dlb0c@dlpb!)#xbq2bЍqm d Ɂ P߈!ٱnk 8+ 4"v bp@ l m) $bЪ"v bp"b @y | cdd  ޤ ɱ8߸!١nj ųbc6|Д:.dRbԔ &`ЪbBbcpl Д <.0dЍ,Ԑє`ЪbԔܔД :.LdbOɡ<ߨ!nm . -  ".-d B03p04 /  =.%<$ 0 ّni ţb!*#x bq"o c 2v cp3&m6c1:3x cq3ob!*#x bq"ok Ob"v bp @ y .| +=`0 "b01,H o c 2v cp3 &<Hob!*#x bq2bok bɑ@ߘ!n@D%p40 6#@1$A/%m$B 2b, ٱnk m@@-"""` ; xMbcwMbc)wMbc@   bcЍ@-"""`xMbc mbЍ{ ɱ8߸1ٱnk m@ M.cш  (> NHPǍ&!ǵb!,#x bp  (>hNPȍ!Ǘb!,#x bsҔ q-m q-mpݔmܪx b s"x b 3ɱ8߸1nl m01dbЍM1bdЍp10 bdЍg8!nl 3m@, H bn c 2v cp3 &=Hn"41 ّni ţŴm< )c2 "b#p¤0,m , @,y, |, , 1#  ٔ bcd  !ɑ@ߘ1فnh i0ŤkP)H Lml Db"v bp b 0bcjL (  (>N,P@ܤ!{bckPbcdeT9Hbmql ɁD߈Aفni0j@kPbm1m cЪ2!HvbFp,b m k~ eq("cjx AHbc*^pN| K{ 5 l1@p-b M| J}-"ci @< @  5 3x 0v -w *} ' $bЍf @  w-Z x-@ x-O w-@ kbbclQl  ɡ<ߨaّni j0k@[@0L1q @   61 Ab b! #Lx buR01bcdG 10 `0x-buR01bcd1 Z[D0L1bcd{۔  u]0L1bcdotݔ  5@   + b! #Lx btR01bcdJ 10 `0x-btR01bcd4ɑ LߘQفni ţk@D K9.%.LieD>L bh.Lcde>L biHDI;. .LkL.@b!*#x bq"k |m 6  2bЪ"v bp} ~8bP >L0bdeTl b!*#x bq2bЍkm    bɁH߈1ّnj ų :.͈Hb!+#x bqbj$m bЪ"v bp" bcj(m bЪ"v bp"  (> NHP !ÊbЪ"v bp"cdhi bcj(m bɑ@ߘ!ٱnk cbcOB "%01bc@ bcabɱ8߸!ّnk c -b!,#x bs"'ؠͪ%   0)c1<3x c3#i 1v m6 bɑ@ߘ!ٱnm  % 0 % $ $th -fB4.h1 0 b0"v bp"m1 0bЍh8bЍN,PaL!P "|b-p""T0 n` "|bp (>N,P(!`Ъ "|bp (>LNtP !`03|bp"Tbp"T4! ّnŒj0k@lP0b5@ " !.cDbH$93b D.0cdDbɑDߘAّnŒj0k@lPbO ePcdlrAq1p!vm PP.P84>P`0 "|b0 =! "%bp0! "D""% .8-cdeĔ 4 b@<4- 5-6-7-8-9-:- -,---0-. =- -/ -L P>-?--@-D-H -Ts X -\ -`-d-ɑ LߘQٱnk s(bdz,m .ch " bc0bɱ8߸n22 0`0 "|bp"  .>P@fp t", nl t  (>N,P~0! 4t,t,L03#  " 4 n22 0`0 "|bp"  .>P@ ,, nФ 1 `Ъ "|bp"  .>P@Ǎ< DqbЍp 0 n22 80`0 "|bpB@  .>P@ލ|Ȥ@0D$" , q p |1#, nBB ȴ@`@ "|bp"  .>P@9X /0! n22 X0`0 "|bp"  .>P@  "/, n22 0`0 "|bpҔ   .>P@xz  (>pNP!z=@   !t'! 0"vP// nBB 0@`@ "|bp"  .>P@ o 00! n22 0`0 "|bp"  .>P@@P "0, nBm0B P@`@ "|bp"  .>P@ =0! nBl0B @`@ "|bpҔ   .>P@&p}-c$p=-4! n22 l0`0 "|bp"  .>P@. }", nBm0B @`@ "|bp"  .>P@6~ 60! nBm0B @`@ "|bp”   .>P@@Oz  (>pNPAvP!T:,cpqS01RrsS23RtuS45R4! n22 д0`0 "|bp"  .>P@J` v", n22 `0`0 "|bp"  .>P@Q z", n22 0`0 "|bp"  .>P@b w", nl @  (>N,PvD!CH<P0 L "@ F2 0`0 "|bp"  .L>@zM u20 {C@ <P tD@ <P```@ v20  30a`6¤| Y `Ъ "|bp"  .>0@ D22 , +q p |"u20 {C@  tD@  ```@ v20  306 |4 n., :dB "|b$pRDEB %, "q p |u% {B@ $ tD@ $ ```@ 24 5%75.,!n22 ,0`0 "|bp"  .>P@U s", nBm0B @`@ "|bp"  .>P@ʍ&L `0! n22 L0`0 "|bp"  .>P@эܤ "`, nBm0B ܴ@`@ "|bp"  .>P@ڍl d0! n22 l0`0 "|bp"  .>P@ "d, n22 0`0 "|bp"  .>P@i "X, n22 0`0 "|bp"  .>P@: r", nRl0R P`P "|bp"  .>P@   3” X41 n22 0`0 "|bp"  .>P@< "\, n22 <0`0 "|bp"  .>P@̤ \, nb0[pm ̴` "|bp"  .>P@6r\ >b4! nb0[m X` "|bp"  .>P@O= ?b4! n22 0`0 "|bp"  .>P@Vx -, n22 x0`0 "|bp"  .>P@] "-, n22 0`0 "|bp"  .>P@f ., n22 혴0`0 "|bp"  .>P@o( ., n22 (0`0 "|bp"  .>P@vO︤ "., nBl0B 츴@`@ "|bpҔ   .>P@HЍŷpy 09-14! n22 D0`0 "|bp"  .>P@Ԥ y", nBl0B Դ@`@ "|bpҔ   .>P@dЍSx 08-14! n22 d0`0 "|bp"  .>P@ x", ١nBm0B @`@ "|bp   .>P@ÍW턤xʔ kp̔ ``` (>pNP͍p븤!뼔p 8 p 0 0 bɡ<ߨ!n22 80`0 "|bp"  .>P@Ȥ "@, n22 ȴ0`0 "|bpҔ   .>P@X L  (>pNPꌤ!{ "PXl-L0 n22 0`0 "|bpҔ   .>P@v려 L (>pNPԤ!+-LYI L P0 n22 T0`0 "|bp"  .>P@# "L, n22 0`0 "|bpҔ   .>P@t-L [p-P0 n22 p0`0 "|bp"  .>P@! "P, n̔BlЪ¤%.`  #c# .0|T00`Ъb"`0b :10 є ō$4 ٱnȤԴش ` "|bp (>N,PHr眤!` "|bp  (>LNtPKR眤!~- W> - W?z- :bk D  :b+ 3t bЍ褰 5D %b p0y-9x-–876 @ -@ӷ ԴQ "%  (>NP~眤!U砤ȴ(bЪ!-"-#l Ԑ.ԍc>`0 "|b0 <ȴ ڍ{ɱ8߸n̤ I`Ъ "|bp (>N,Pe欤!`Ъ "|bp¤7 6 5 ,@ WL,DWL,HWL 4 nm .cЍp<=bh<. bP@b昤 mp, ٱn.8㐴 &`Ъ "|bpRP .cЍ8 EM .(cЍ8 㐴ܤㄴ1`b"`Ъ  k b  "|bpBK .Hc~8.\x8ㄴ ѐ ɱ8߸nȤ " `b qBp20 ^PTԐ`b p208ٱnk l@, #. !""" 9 `Ъ @,Б@, "" 90 Д @ .$c . cЌ&. ɱ8߸ٱn\ hbH,qܔ /p q )q-p# cJs0o /c@pqS8A01R( ```01 m p q   <.4b8 .4t,ΡN,Pi:(!,b! #x bru=r"5-b! #x b2  (>LNtPo(!,u@   (>NPq(!x, (>NPr(!`,b! #x br t=r"24-b! #x b2!` x,br u=r"5-!` x,b2ɱ<߸!ّni ţ@b"""`)d Očyk bLk b c  d  fok t9bpqS01RrsS23RtuS4^5RE C y @ =Pk )P  (>N,P!)c b3pqS01RrsS23RtuS45Ru 1 b1Tk x w)4+ 5 w 4 x 5 w)c*X4+ x)c!X5+x 5     bcV\bɑ@ߘ!nl { 5 l1@N,P^! mb<<0@ є bcЍP" k , hT \  ,d1hbcЍP4! ٱnk j 0T l 0xl @ 03`bp 9w+@bp0 j  (>N,P,@!gDw+t,03̍LbЍ 4,@+"""`  d t,03̍tLbЍ{ 4,{ +- cPl tbɱ8߸١nĔ "ZȐ!N|D/ "ԍNpD/ "NdD/̤ؠͪ\ hbHJH:ذȻp bPjLp+QPk y7+   "Z̴c2 "|b#p20 # .>@hT0,@+cX-7+   "Z̴c2 "|b#p20 # .>$@bT0D^ p q | 03bQU\k   $bJ`b05dsT Hhl? "ȍN@p "ЍN8p "̍N0pɡ<ߨanm0  "Z̴` "|bp"  .>P@    d (>pNP0 !  "Z̴` "|bp"  .>@ D|bPX  M.$cAT =d "dN  "Z̴` "|bp"  .d>@ ~rp z  (>NP !>z=ؠȪp*dpNIp*Pi V` "bp "ЍPj 5` "lbpbb` b`2}(0 M.c 03bOj 03bOi  M.Xc "̍Oi ` "bp{*  t" ```  (>NP؍ ! @@AObca${*  t" ``` ) .cd$ $bcpM*(z=bM$( b0A|,  .cd03bODi {baLh!١nk "Zȴ cb`m P@ ^Lu  I G  "Z̴` "|bp"  .>P@ ~ (>pNPFܤ!bN!bcd  "Zȴɡ<ߨ١nŢk0l@  "Z̴` "|bp"  .>P@ Ҕ (>pNP!s bЍNU !` 03lcpC@y  L.c(DcЍNY "Zȴ * bЍ @^uu;0 .cdЍ(  "Zȴbxgbcɡ<ߨ1nФ. ,03~# ? "Ԫ"03~>.0-d B03~>40. p=.4 "%$ J8 "ԍJ(</%$0 n "%$ЍK "| `Ъ "b"`  "Tbq" "| 0 n "p 0p <.0Ut. p<.` "p0  (>,NTPx!| "~>b4 nФ "Zȴ BbЍGp0  "Z̴`Ъ "|bp"  .>P@ t D ^ p q |  "Zȴ0 n  "Z̴`Ъ "|bp"  .>P@  03bЍRp0 ّnj Lt@  i @;b0"""`m bЪ"P@ҍR D %  "Z̴` "|bp"  .p>@ҍ/ , ?  "Z̴` "|bp"  .>(@ԍ   (>HNpPՍ2 !bcIG  "Zȴˆq+cd2 ^ p q | v'ɑ@ߘ١nRl0m@R  "Z̴R`P "|bp"  .>P@  (>pNPl!Jpk b"b0bcH=dbHɡ<ߨ1nm d "ԍG(-d-dI00 ``ٱnk l0o@(0Qbcde[>bЍTɱ<߸A١nj k0l@mP (>@D3bcdeЍ,$0ɡ<ߨAّni j0k@lP(>@DbЍbcdebЍ,0#ɑ@ߘA١nj k0l@mP (>@DbcdeЍWĤ"Tɡ<ߨAnԍA!>,A ١nj k0l@mP "(  (>@DhbcdeЍ ɡ<ߨAٱnk l0 "( (>@DbЍULbcdNL>bЍGLɱ8߸!no e0(>0Abd)bЍl p#<41 n "̔!B0!0 !0 :p ,p ) "! p=p00#!p zp,:j "!-4 ٱnذͻ\Ȕ M h Fq˔ Cq , "!  (>N,P@!!D!b0H/! !p b:H0-p̔sɱ8߸ٱn\Ȕ N h Gq Dq > "!  (>N,P4!#;2@l !bc@pqS8A01R( ```r/D2,p 0 0psݔɱ8߸n\̔  h qܔ q r-gpݔs̔4 n̍? ]\ ) h " "!q͔ q -`  "Tcy3r, p̔sݔ4 nФ "Zȴ =  "Z̴`Ъ "|bp"  .>P@Ս-d DqbФ1Ahc bЍl  "Zȴ0 فnk l0` ł pc j -c bM$i* pc j -c b(`* "!b1,d .ceЍ70bɁD߈1nm l0@Mb@"""`QqYu=b@@%bcM c bЍx$Bt-cXu-cX5M!t=@#qu3@bЍ(bc,c bЍI$t-cX  ֔ .c@Y04! ّnk0 "!. >>Ȥ "ZȴҎ  "Z̴`Ъ "|bp"  . >l@- DqZbЍ} SbЍŢ,i bc bpqS01RrsS23RtuS45RbЍ9c  bd l cdl "". >>b  "Zȴ҈y #82¤3(0 ɑ@ߘ!ٱn "!$bЍk bЍ[ YNbЍx0!bcdebЍ> EbЍ00 ;bЍW 4bЍ3  (>,NTPVF! " bЍuk .hcd{! " bЍ^k .xcdd ɱ<߸nb݃$3bIl"bAl pc@p(bcЍݖ, " .bЍ0b4 ٱnŲ$l $m b(c bpqS01RrsS23RtuS45Rb81,  q,` "1 4ͤ5 bɱ8߸ٱnm @Mb@"""`qu=b@@hŲbb00b#$c bpqS01RrsS23RtuS45R@-d0-qM $1 beDe qMu=@-0u4ŲbTD2-b$ bcЍ\8b޹< " X.DHb4Lu-mt-hAM.t=@#q)u3@9hU ,t-T@b$c bpqS01RrsS23RtuS45Rt-3  ʔ .c@|ɱ<߸n.\  h qܔ bЍ888pݔ```s̔4 n\̔  h qܔ q r-2pݔs̔4 nl m0@<`0@D`bp} ҈ "xD @,c=u<@v (>N,P!bЍ\ gbЍ$ ^bЍ&d .@cЍ-PF 0cu,@""""` 1u,t,@""""` t,cЍs%t,@bp t,cЍcu<.\   .u4! ١nk l0m@@;H{b0"""`f}mb0bj +4kЪὪb p"==b 0q q"=0b 1lЪͪb s"Tnb 3 Τɱ8߸nД O "P03%(2E.@- - "%(` - -.@- -03%(p "B@B0H "P%(0-d CBB030$<D. p=.H%(p-d B034D. p=. gH0 "%(2b0##"b37012451 "%(2 0 ٱnŲ "\ .cd "P;x m bcЍ<$bcЍ]( "\ 4bЍ?N,@Du$! 5$ v$!!6$$ "x  *v4#40 0* 0hb# "db0,03!V4hhɱ8߸!nm0b; /bcЍ<`   "Tbp” ,` 03Tcq3h cЍp̔4! ٱnm k0p˔d0pN,P,-L!PpMp,c < Tt- uҤ5<YbД 4! nm t->b0"b0Ґ1> "\ bЍ,uݔ0 ١nĤ0 "|2`0 "b"`  "Tb81 "|2 +bЪ"bp"pb= ` 03Tcx8c=, פ "|.lp c c20102ؠȪTp cx#w" p c c20102p c9# "| ɡ<ߨّnyb"bpq  "P9:\1-q-:p-<j S`   "Tbr8`   "TbL t"`b"`b"p=9x q=b:``   "Tbr p=bԪ1 "PP4 nm Ԕ  (>N,P!iд JcЪ2=1=2 "HHb0,/T .HcЍ`bЪ!03PPbФ2/ .hcЍBԤ "P6`  03Tc7#0 4 n.48̴K` Tp-c@0- .c44 "HHp-c@0- .$c "PP4 n.Д ( "XX 8Mm .0 0-bБؐ ```p0 n`   "Tbq2h03|p0r>`   "TbL t"`Ъb"`Ъb"` 03Tcq3h`   "Tbr 4 n`   "Tbr d`   "TbL t"`Ъb"`Ъb" D`   "TbL t"`Ъb"`Ъb"`  "Tc`  bL t"`Ъb"`Ъb"`   "Tb@D%,p462`0 "b ’1044 nԤ0 "P2`0 "Tb60 "P2 "|%, ., qnPp,4i p,4j p "`Ъ   "Tbq"h bc5wH  "P Tp-w"5Lp-w2 5[H "P(`Ъ   "Tbq2h w"c7FPw"5L  "P ڤ "  (>N,P>l!p "|g` "brbc7P`p "TbpҔ -`  "Tcq#h wCbc5^Tpݔbpc4HlpǪǪTp b w2b6X p b w"c6P "| ub43b4.qHxnB#`@03Tcw349,! nm0@"`  03Tcp00#4! ٱnŲ`   "TbpҔ (>N,Pp!  `   "Tbp '0kpݔ   ``` (>HNpP}!]p 0 bЍlɱ8߸!ّn "/Pt 03\0  #Bh`  "Tb12089A$s30p,!3Tp=2d A03``2p=4# p<. "Tt2 "\s"  "T203\s3() "\sr۔`Ъ   "Tb ()2q iЪᝪᝪؠȪTp c rLA2CA "``r#2Tp c 4# r3.(r 7b#u bq"+cxi  (>HNpPՍt!Ux`Ъ   "Tbt"`b r s,+1xj  (>NPڍt!#x`Ъ   "Tbr t"b ciЪᝪᝪؠȪTp c 2 "``r#2p c 4# .Ф0`b s"*xi  (>NP3t!x`Ъ   "Tbt"`b  ͈`Ъ  PUTpEc ( )#2q  r$t!b pErv2 2o(#  "e( r,@m q  Uq  r,@m21`Ъ   "Tb22b(1|*>xj  (>0NXP t!0xq  r,@m101`Ъ   "T`b (`Ъ   "Tbr3`Ъ   "TbL t"`b"`b" cЍ`Ъ   "Tbr s "Tr% "TL t"`Ъb"`Ъb" 0 "Tr ݤ| @A| ɑ@ߘ١nj 4Ű4 "PpBA0B l˪˪Tp c 1 2#() # 0#89#6b@/p c 7#bɡ<ߨnФ <\ bЍsݔ```0 qnؠȪPp*d A03p02k p:.lؠȪPp*` @Dp404m p:.(ऐ "PSdBIAIB03Tpbq"h 7`b 0pbp %*c *`  "Tbq"h `b p0p`b p Ő "P ͙ؐ|ˎp묒`   "Tbr[`   "TbL t"`br`brp .bcpA &`pb p  (>LNtPФ!"`pb p0 |`   "Tbr b@bЍ@  qHxnФ0\ %r- qr"@mt- @m wB@ cЍ%1v" sݔݔ0 .m w$0 ّnj k0\ [:.dKr+xwțc% 8,( cЍ"tf ȡ8b}+b!dz2&!cЍ"tj `2 |\h3*|Whl 4ʠ8bWHX"cЍ"t`0HWEsѤ+cЍ"tk `0HV0,cЍ"t(qb1\bp!mp/r1"btj ` 3 {h2* cЍ"Kt`@XcU# cЍ"6tj {h2**cЍ"(t` 8Ís/j 1 {h4*5 *N2 sj `1 {h4*`,4 ` @ x ȁb|U{sh5*bc5 $*2 rj  1 T]0 ")Y.@xQrj `1  {1h4*4 ȁb|{!h5*bc:ōrj _ `1 `5 {h4*`,4 !{  (>\NPC!rTj ^ `1 5 u4 #cЍ!$tj `$  (>NP" !!`0{O "%01 `&  !2*2 `(  !3*3 "%0 .ԍx؀͈%0 03b@EV2`  (>NPK!$$cЍ t8220,*>&cЍ xtj 2 z h3*zh4*zh 5*-cЍ \t(cЍ Rtj ab`zb`2*3 ` %cЍ 3t2!Ũ )cЍ t`@XcRq$j `1 @:b0"""`!.Pxp 5 p 34 l5 5 p #4   刏| q "( Ӕ % ^{ _9 p Ɏ Ȏ* {"KP//*(&*5a"K:P//^ ,0:b~a\hQ@nm q r-r2-pݔ0 ٱnl m0 (>N,Pڍ-!@ @," 42 z@<.|SK1u<@jŲE@,K"q u@NhP!ju<@,@0Ų qLu<@,eЍŲb2, / (>NP!83LP??ZXB2 ɱ8߸!فnłi0xk xl bxxm  " .bc@°Ţ ebcdZKŢ " .cb}<&@.0qbcAʵD 00q Đbc@ʢD " b@.8FbcЍnH +@ .@qbcɹL "!p0p "`p 0D b1PbnTɁD߈!@nm bЍ6pݔ```v0 n\Д  h r=q-sݔ0 nl q r,wC$2, b(q<!.2,3r,v0c Ȥ@u4r,u8bR~sL< ֍t4r,uZL/ ۤ0@t4r,uLL!bO@@3QP??P$H(T4 nl @,"""` t,u,@\% ("RfP//*0:46420.*(&$"  T PpP^PhRt 00?qLbPtdt btr,tu,t{qLbP0tIt,tmqLbP1t<t,tr,tbu,tVqL@,1t%t,tr,tKu,t?qLbP0tbN& 2qLuN,PF[!|<Tb!2ܔ !` "bp20 6 #L b - m0z30 ` "bp20  #L b - m0z30 (>LNtPn!|=02  "Z̴2`0 "|bp"  .>T@yٗĤ D  ?"\P//jFDdb`^\ZX4-Ȕ # ""! .cdЍp6 ""! .cdЍp% -Ȕ  j  (>tNPq!|bɱ8߸!anŒţk@g` "bp” nLL`@ "TcЪBbKqcpҔ ,  6Tb  6Pb Lc20102 "Tb#yb/ j  (>N,P̍!{u<\b[b$-c`b,`c`\m jk{  ! ` c`Hm u k  ,`<\/c`,>r,  u< s[$ c  ,xc s[$ c ,|c \0c,` \ c`r nz̔ ""!" x .Lcdpebp(aLh1فnłœj@` "bp n;L`0b p`0 "TbqҴ 2 j!=@b/4bR8  @b <;@,4 "" /.c8$'bcz@!bcD~=b4=b4 "" .c$=LbH=PbH $z{ɁD߈1n "|'`Ъ "b"`  "Tb q"2`b "| 4 n̔D\ > h 7btܔ /@-:x-@"@< bc+ @/  @ uw-@"@# bcvݔs̔4 qni j0w9xxwˤp@ 4 /{+@ w,w @+"""`A@@ w w# q7m8w 7@ .؀Ȉd@ pDep011@cp2ce @,0"b(pB@-"b(p"0!p .T.`1!bceЍ D (>dNP}!y9D,c .p7ۉ8@  e a{ ^ kZ V{ S  { Lbcdh B{ bcdO{  .y@    .ȍj@ NO bcdb>2 k* k&{ #{    .܍1@  b $p 78q Tx!nxwx<82 %  %b0AL "@ @ y@ {   z bФ0AL4 nwSx3@Дu /Д.؉U u  Д.(؉A Д.L؉4 c  , %nvopbb@`  xcwcАb001 @TRUU` x 8$ % %w 7$ % %ّni j0k@{  (>N,P{p!wct{*; $r2tB0  30 { ;)m 4- m { ;*l 4,l 4b@ { 3!  ,bЪ"v bp<@0 *rx {  <@*H <@)L ɑ@ߘ1ّni j0k@ wuk { kw@ p  ^ q { |<{) pm Ўu=0,(  @ .PUc@ pCcp0 1ceQuM)Dc t,cAdx@  W{ T P  { IbcdQ,m ?! { bcd0{ @   4.<- .L bcdЍ4@ NO @   .` w 7 x 8 % w) %x) %b0AJ@ $ɑHߘ!nЍ=JW ""03"@D"PU" 40 0 ّn "!E.rP ""q2pbT. aP ""q2pbT. PP ""q2pbT.0?P "" q2pbT ""( "", """̔ "! "Xj " (>DNlPy\!u8`  ""p  (>NPy\!u` q pݔ```4ʍd ԉ28 w *8  (8 88 8 h2* 6l3* ""pqR5 6Z "" kp "" ap "" Yp "" Qp>Gtɑ@ߘnl ^ t q=@@,  b~` Kbpݔ "p(0 (|dm  (>N,P x!t]t0 bh1-234 - l7L8 $tb4 ّnk  @K0@[%" 9|>b0"#!Љc>瓱+>w|,m .У0)jb0dЍs4i  X .,Ќ0~8ᒴ  .Xz0b~8Ფ bpj  (>NPzx t!sx7@+23 930d , @[%" 9_ @ @ A1@[P ,0 .̍0Fbpm  (>N Pwt!s@x(7@+,  ! !#+ -?@#|@ ɑDӑߘAan5!214A3r (>N,PwX8!r8b@#{b 2&r'ctQrAq1!s'v 0!uБ "p01% "䉀2r(^"f q( i bc@pqS8A01R( ```0 2is7b` r7b`a@l+p! (p!q $q!  (>HNpP/u8!qe<:t5q!]4&1b hrh i bc@pqS8A01R( ```0 b`8q 5)` ab`#ucu bpqS01R`1b 2n i )c@pqS8A01R( ```0 r( 2)1b Hr jr kq( ]o /c@pqS8A01R( ```01b  q( c 3sP??L"  0pޔ 1w (>NPau8!pNPut8!pS<`   (> NHPwt8!p6hNP|t8!pNPtZ8!oN Pt?8!o@NhPt"8!oNPs8!o<`u)bq 1r s c   (>NPs8!oaN@Ps8!o<<`b s 3q  "wP//, pȱbcp@ c sl qW$>`b@#y bЍ2,u!crt!rr!03̍l42q!  (>pNPs48!nbsQ@#xbЍm u12r!a$ph1Bnm ) b0c bФA 0! ّni j0Ŵ (>N,P̍r!n?p q ! / q90 p!  (>LNtP͍r!n $pɔq b > ")02q00brNPڍr8!mp !0 0 qp  (>NPr!m0͔ p  (>$NLPq!mr bclmp̔oq  (>lNPq!mc $ɑHߘ1n "̐! "Zȴ j  "Z̴` "|bp"  .>P@Xܤ DҔ < | 9bb +  "Z̴` "|bp"  .p>@'ܤ , w  v!  "Zȴ 4 qn "Đ!r "Zȴr۔r  "Z̴r`p "|bp"  .>P@ D | "p$0 $tl  (>pNPpx!lp| q@bpHm  (>NP px!lP|8ܤ0b x  c p" x ``` 0 j0,0 i008 hbpL2, q bp4,a  (>N(PDplx!k|bpPg5,p "Zȴr) 0hbqHxnl (u r\DL>0t 1bЍp)$x\wL>@bЍp $p̔<١nĤ "Đ! "ZȴŽ  "Z̴` "|bp"  .>P@mȧ8 D |k "p0 s8k  (>pNPro!kK0mb2+b<3+b<4+b$+  "Z̴` "|bp"  .>@=8 ,   "Zȴˆhbɡ<ߨ 2 3SUP55 %'ٱnm l0@ H K#]lnہ ,###========>>>(>8BF I  (>N,Po!ju ( L ' @ 8uˉtlt-( ) Ld q,LB  ɱ8p߸!anf g0h@iP  (>N,PӍnlNPnZkbVA5-@0 3P??  7&7pf`}t(q 0 `Ш-0  (>NP mN,P3m~ !i $@ b"""`22v^\@ ^tu (>LNtP=mP !h$@ D- r L w=0 bpqS01RrsS23RtuS4F5Rp-c bpqS01RrsS23RtuS4-5R.$p q v w u,cЍi쉏lt̔4 ```8 .ɱ8߸!ٱnl m0 (>N,PglP!hZT@ b"""`22<|,u D |  (>LNtPplP!h0Tr  -( 2,p} u,cЍt̔4 ```8 .Yɱ8߸!nm 6xq-{"P//nr \03#pt#tr-r!03ppr-p ;03#pt#tr-r!03ppr-p r- 03̍du-pv r- pn 0 0 01nl p, pҍ[bД ```b4 n.Д * "h>h 0 f m .0A$ 0-b  ```p0 ١nj 'ql bЍo((k .cЍ  "p pbcqJ,bɡ<ߨnl >0 q3q " "p0(nm .00 b 1-.q"4 nl HLm  (>N,PǍjP!fnT0 1b4 nl m0p q ! / q<0 p!  (>N,Pҍj!f2p q ! / q=0 p!  (>LNtPӍjz!f q<0p 0 p 0q=0 1N,Pj0d!ehq=0001p  (>LNtPjd!eh4! nl0m cb4! ٱnl m0 p q- p  (>N,PiĤ!eWȤ p  (>LNtPiĤ!e<bp p 0 p 0q 1-b-ɱ8߸!nqД/r"#r@ mu@  (>N,Pid0!d4 t-q2Lb:t0 nm pM.cЍnq-"P//b2 :F.nf䈀r=.n]bЍ2舀.0nP䈀.@nHr=Hbn@䈀sMr=.Ln6t=pbn.bЍ2x舀.|n!bЍ2k舀r=.n䈀r=.n 䈀LMr=.n䈀rM= .m䈀~sMr=.Ѝmt.mmsM=.mr 03bBaXs]Mr=.mr=J.Dc3u dp4qDmr 9rM=.Lms-aP*.tmbЍ1r=.mu]tMs=.m .Ѝm|bЍ1.mq4 nm bЍpݔ```0 nl pLm@@ "x(x*4cH1, 03#xxq,B4(lp1,q .0{ p 0  bЪ"q b0p 4 ٱnk0Ѐm p bp ```q b 0ɱ8߸!nNN02c p0  2qbp"n   ` >c0! 0ȳ0 b0"b01ȳ0 n.lm<`Ъ.bpB@ .cЍlY< . lN<ijbЪ"bpB@ .4cЍl:<ij 0 n)$p- q-r-|Z,!)$0-,!1-,!2-! "|7`Ъ "bc20102 "Tb#q @bj ,D ,Hbl "| ˍ R "|-`Ъ "b"`  "Tbq,D,Hb0 "| ՍUX4 nl Z-!,@-! >,-!?,-!,D-!,H,Dv,Hp4 an "Z!k "|` "brmpתת`fTpb q " 03)(bGb&pb r<`p "TbL t"`b"`b"` Tp-bq"BDbcE`pp-br :Hb  *Hcd~JbclJ@ Dbcnbb "?!aLhٱnŲ\ D (>N,Pڍd!`} ")$uؤ "ZȴŽS03)$bo 4  "Z̴` "|bp"  .L>@r "  D03)$b:=Dbv 103)$b'  "Z̴` "|bp"  .>@, D |  "Zȴ03)$q#p3s "Zȴ 9  "Z̴`Ъ "|bp"  .$>p@ , 03)$bЍ7  "Zȴɱ8߸nl ,@0~,0,0btܔ bcЍvݔ4 ٱnk l0@ K B3b{|M<bE i <P083<P0<by(Lb! Ӕ F H I | ^ d f p q {ܔ > Lb=bu1=2  "Z̴2`0 "|bp"  .>\@Q D ^ p q | tݔɱ8߸!nl  (>N,PdcL!^P~N,Ptb!^m;@b ~;b;bɱ8߸1nl "Zȴ Y  "Z̴`Ъ "|bp"  .>P@S D %  "Z̴`Ъ "|bp"  .p>@0 , bcЍ5X  "Zȴ4 nl ~L)$p=r br@r <@b0d84 nl "Zȴ Y  "Z̴`Ъ "|bp"  .>P@ D %  "Z̴`Ъ "|bp"  .p>@ , N,P׍`L![Pb%p "q bp"<  4! nl m0 (>N,P_![Z`p- <bЍXLb%"q c,p#04! nl m0 (>N,P_![b%p  "q c,p#04! npBqԪBb0Z:, ٱnl k0m@p p;0 cp 05bp p+ `kmp q]qq, pEp?4T02$ pMp @B0Yɱ8߸1١nj k0l@p p;0 cp 05bp p+ `klp q\q;qڔ pEp#$4T0-Ԓ pp  dBbЍYpp  bФ0dYɡ<ߨ1ّnj k0i@p p;0 cm0p p;0 cp 05bOqYq;q`Д pEp#D$4T0,Ē p bdY[pp  b0dY`ɑ@ߘ1nl m0p=p  bcpLq=q,BY 4! nl m0p=p  bc@q]qpN,P]H,!X0KA p # @bЪ"q cp#$4    ՉbԨ!A p  ɱ8@p#4߸!ّnl .bKqܤp pԤ   .`c b5p . b'ɑ@ߘٱnȍp$W( " . a;,03# 03)42 "03 "P#d B034W0. .0)4 "Pp )40 ذȻp+f85,p+`8k p-Z8l /\<\ bЍS@sݔ```ݍ `Ъ "bp"cdD,!H\ bЍLsݔ```8PbT ")HTbTɱ8߸ّni 03@k h1Rgt|@:b0"""` o= i PaZ{ڔ W   "Z̴c2 "|b#p20 # .>h@S0D /q p |'   "Z̴c2 "|b#p20 # .>@&0, tݔvm޹lɑ@ߘntД - ? vݔ0 ّnj k0m@ .`ip*.,`^bcЍl ")4312@b"bp2bMB @ ")@ .0`(:.L`q*.T`bЍ.``b"bp=.d_t-u  p:*,m 7b!ؐș)4s)q9bd*`  "Tb| q"|2bbФ1PbЍ]ؤдbЪ"bp"c>ܐѴ ,._ "@tb"bp=._st-t ɑ@ߘ1nm l0|-c d}=b0d{=b0d0z=b0d)tݔ - c dvݔ4! nl m0s  (>N,PY!UP* "|2 #`0 "b"`  "Tbqr- q    1ߔ (>HNpPY!UbcЍK4! anŒj0`   "TbqK:Hl cLk b^Ph (>N,PY2!T h "|p0b")!)"؀ȈTpbx"!gЪr}q}rc8#x#5Tpc9#bOaXbi\b` "ം%` "bprp7: bd p7bЍh ,א "ം ݤ``   "Tbprp 3'pcl &'cdep`s '`  "Tbqbr&q   `gps bc`tbcЍ2x`Ъ   "Tb(2bc|bc^baLh!"3`003Tcv03| eQ@Dp4c5 p4c53d0BCACB03TcC6 dA03c4 #c 22122 "Tb26!١nŲ`  03Tb`  cw3w"Ȥ "|*`Ъ "b"`  "Tbwbc bc "| `   "Tbw2bɡ<ߨ!anŢck@lP`  03Tbqh``bs qҔ s bcIl`   "Tbr8`   "TbL t"`b`b b`c+c萑`   "Tbr rxp`   "Tb (s C%c ԉ:2qDr$hubq"ش-ub1`   "Tbt"`b r s'dش-r73`   "Tbt1b #`hs(Bش-3`   "Tbt"`b  ∀ϔ2`   "Tb (r'@m`   "TbL t"N("vbp@ m  (>N,PÍVSd!Qhx-7r(r@ m  (>HNpPȍV6d!Qhu-4`   "Tb Q)`   "Tbs  (>NPҍUd!Qh`   "Tb (`   "Tb (s %c2aLhAn.!.١nj qq   (>N,PU!Q1$cЍk H2+cL%cЍr 2r+ɡ<ߨ!anf g0p6bp! "|k` "blʪʪTp b p6qb( D!+m! +l b"Hb0 i kb\tq6b+j p b wBbpcpt+ ghv" ``` i "| bpk  ` 03Tcq3kcpxbaLh!فnh m0i@w(]H6LzP r-Ly`  "Tb0qZ=.dЍYT k.0 ><>@YT k  b ,3bЍ2T ,@  ( % "bcXc 9=0  k bbd;\b"8b0҉9 mw(]`w(t" 9v" ```b"8bp2y#y992 w([pw('Ldw(t”  ")D - *p`Ъ.8b0v̔`Ъ.8bp2bh ɁD߈1ٱnl m0 (>N,PʍS!O] jb=0bc@{aEbc@sV䉀<2  "Z̴2`0 "|bp"  .H>@ލP0 Dbcd* { bc@s bФ0@#bЍ'/ɱ8߸!anf g0ń@p q 'L`  "TbyҤju7b.cЌVj `'\cЌVy ` {  n n L  (>N,P&R!N)L`  "Tb{ y” ! ` cVZm ) 2" 03Z̴#` 03|cp30  .H>@2y@0D^u9 ^.&cЌV' u9b.cЌV k  9`)\V cV >)  u9 ^-؉ c ܔ )c s-؉ c )Zc \0c)`U \ cUy* b`cp艀! aLh1ٱnk l0Pu, 8|bcЍbc]!ܔ  "Z̴`Ъ "|bp"  .>P@~T 5bcbЍ.lcW% y̔ L n E!ܤ1<j,L`  "Tbq;$  "Z̴`Ъ "|bp"  .>@bT D{ bcdb%Wy̔ɱ8߸!ّnj k0@:b0"""`2^*cA 1 . w[uJ*/m w[uJ@:*#m w[uJ@:*m xZwJu 0!b0cfm u b0c@\Im w 7 x 8  R@:.4 5 #% "8P//$*(& \w*y” xZu b0cdm PC Px*y w*y” u b0cdeum &u:@*@[m 8 % 7 %  Rt   . h@ b c d f.t +t  (>@NhP0P_̤!KЍ7q4-t:pqS01RrsS23RtuS45R j  !  j V V X Xw+ LbɑDߘ!فnŒţk@lP  "Z̴` "|bp"  .>P@N uҔЈZ Wbm  (>lNPYO$!Kl(t=0$dP'Œb bЍ7 m 1bcЍ $bЍ7<(b4ded tcPZMm bc@Zm  "Z̴` "|bp"  .>@l= 5"  RbcЍ, bcdoT ^ p q | bɁH߈AّnŒj0k@lPbt m bc@ZYm 87 %  Rs6bɑ@ߘAّni j0k@{ɔ Mh@l D "@ ,cde%,cde ^ p q | lДɑ@ߘ1anŒj0k@0Q  "Z̴` "|bp"  .>P@ՍX ~Ҕ  "Z̴` "|bp"  .l>@֍7 b ` (>NP׍N\d!IhȀbЍ@g  ,`p "bp,L `  "Tbq"i  hpbpcЍDg  x.cS` (>DNlPMd!Ihb`n@g  2`p "lbp,L `  "Tbq"i bcdЍ\  bpc`aDg  x>.cdR4b40 x(.cR*L`  "Tbq~=b=bbcYl bcAY  %  "Z̴` "|bp"  .>,@0 D^!+  J  "Z̴` "|bp"  .H>@5 DbcdЍ#=@*l=@b' ^ p q | !  j  "Z̴` "|bp"  .>@F u  (>N@PFLd!HPh  "Z̴` "|bp"  .\>@Gb 5` "b0bp1!b Rx <.deQaPhA١nk l0m@@;d{  (>HNpPpLPd!GhKؠȪ)4u:b0cЍN,PbLd!Gh., @;4 5 x v w }  ., ɡ<H 2 = F}IxKt^p# "ƮP//pnljhfdb`HFVTRPNFJ6ߨ1ّni ŤtӔЎ g h@=b0"""`pˆ-cФ@L^ŲZW i  ! -P cФAL w-h9βg50w-g x-g 1ų0w-hx-h 1w-hβg.\@=.<\~ g ")4s39 qfg1@=b0"""` Ӕ ʔ 8  2o4x5u=xq# "ȐP//# "P//j\ZxvtxPnTjHFDb@dr"9)<  hvݔЈbɑ@ߘ1١nm0Ŵ "@ W  "Z̴` "|bp"  .>P@% D .p q |+  "Z̴` "|bp"  .l>@' ,  hҤ  "Z̴` "|bp"  .> @- ~   (>ܔ ٱnk l0@  (>N,PōGܤ!Cq i9m@ :w 1@ bw @ gw _ vݔ (>LNtPՍGܤ!C<@ :w w@  x,@w@ tw@ x )  (>NPGvܤ!C,cN ɱ8߸!nl m0@=H L U= SF P@=b0"""` E0w=bt<  (>N,PG#!B-c7xx=btҔ .L| I K x 4! nw3@ w3 u .c,! فnh @  (>N,P4FH!BDLw@  +ix@   (>LNtP:FH!B$L  R-a@ tҔw@ tjwk@ x  (>NPHFeH!AL  R xZu:@*dk l bj\ R R Rl xYu9@)djl bj< R R RlxXu8@(djl *l 2 & 4u(5,  ")Lp0 0bjR :z :: RRɁD߈ّn͙ؐ)L pI@  ) u t9t$  u0 pD@p͙ؐ)Lιr im@ :w q@ bw  (>N,PET!AX@ gw  (>LNtPEcT!@X@ b (>NPEJT!@Xvݔ (>NPE2T!@X@ :w   w  (>$NLPET!@Xw-d {ݔ -Ql tݔ  d  b  ir z;޹p.03)Lp#0 pB 0tp03)Lp00#b@ )L r-u2 p@f*t"-x-8|-upݔɑ@ߘank Em `   "Tbq6Rf q* q $h i 2)cܭq 0 1p 2b`cg b`Xł` "Tiw;3`0jr;bFThb`: b`$b`("#2}2 (x 8 y 9 " ` "bp p:p+, p:b T " baLh!ٱnl x,` 03Tbq"sd,` kp  (>N,POC!?4p+p+ "q  (>LNtPTC!?\s ss ```,`  "Tbq"cЍp̔ɱ8߸Ԥd @ pD@```| dAPUdTDne E1 e0Q@DdER T1p"  "|p2002@C `@ "b"`  "Tb6BA "|B!ٱnm @Mc@233`WB. ^ p q | u=@-@M( <"w-,l u=@-@M(7 % x &8w-,k x-,l u=@-@M(7 % 8 %  ʔ XX VVɱ8߸ٱnk w+K)L *r,sm ,cЍM,cЍ> w+~2 blXw+2 bcXp̔w+Kɱ8߸ّni )`  "TbqbK6ذͻ)L tr+l ;2  "Z̴2`0 "|bp"  .>|@ˍ rKu4D"@Mm rKu4 :@Lc rKX XXrKV VV i " 7 % 8 % +7+cd:@ bDpbKpmɑ@ߘanf q&i "P2&)`  "Tbvr ũ`   "Tbvpg`   "Tbr c`   "TbL t"`b`bp6b 2m b`c m 0 h  p=`0 "Tbr]qBbc\=b`   "Tbrq6bxi ubbcpy b$b(aLhفn "T ذͻ` "bp ! "ZȐ!ߒi p-h  C` "Tbq"t *:  f@ bcf$ bcf(@ b w:b\(x:blvp=bh e,)Lp-h  -` "Tbq"t @ bc$ b;0vp=bh b߮48؀͈)Lr i ()d)L`  "Tcq33@(pj@ :w X@ bw  (>N,Pl?!;6@ gw  (>LNtPm?!;v (>NPo?s!;@ :w w  (>NP|?T!:w*d)L` ؠȪTp*bq"~2bSp)L` p*bq"2b@prz7p2bЍ @ B n2# "P// (&$"" p q |., n22 x v w }p q | .g, n@2tw"x v w } , nԍ "  "0@>c .K$ ( ,! n̍YH L"03""PU" "0!bdЍPp  (>N,P<T!8tX03"p#q3,\,`̔ Ed4 nԤ 7/)P /"(",//!5 ۟ ""м ""д ""Ь "" ФE3, ٱnk ФX8 E.A ""q2pb,. A ""q2pb. Az ""q2pb .0Ai "" q2pb ""( .D0 "", "23̔0 .X "! .d0p " ""03 "d ""b.< /Ԇ& . "  "̍zЍHԔ؍o܍Ԝ,-40!<ސ ""4H` 5^ </ ""c Ѝ/$(ذȻ"q;p+obI,"q=p-^bЍ8, 0m4" q=p-DbЍ, "", 8ɱ8߸nФ /"(",!- "" "" "" "" @  0 n̤ 5l (>bЍ:qPU)P>\bd:d@4 فni j0Ф`b p@ -@ ~7 "p+0 "$p"0@,{x "Sp0 "&p0 ""p0@  "ps0 "pj0 "" pa0 "hpX0 "TpO0 "pF0 "pp=0 "{p40 " p+0# "2p0 "p0 "dp 0@<.|@ =@ C F ' "pP// |&xv23 "Wp*0 "p!0,4h .b|ݏpG,4h .4N|ݏR03,3h .H:|ݏ,d@<J d h u .h|@ @ ``` "dp0@( "xDp0 "`p0 "p0 "Wp~0 "?pu0 "pl0 "Dpc0 "dpZ0 "\pQ0 "pH0 "x@p?0 "2p60 "p-0 "{p$0 "pp0 "@p0 "p 0bl @ F@ 5 "JP//zdt N\hpt|zxt$4DTѐtbɁD߈!ّni j0V.@Ѵ20`Ъb p"@- # >$@D82D >(@8%D .,@Ѵ ɑ@ߘ!nl &)T0-&1-q p-4,5 4 nut2)T0=1 p-&>q-&90 nm q  2=3M4]& 2- .c$0A nl q  w"lP// XrLu< ˍ%u$s,%t,%v,%w,%IsLr< ̍%X$r< `Ъb t"%|(r v,%w,%&tLs< ԍ%5$r,%`(r,%r tLs<% $q<.U4 nl q  a"P// 2fnw\vLu<.;Fr<.(;r<.4`Ъc t3;rr w\vLs<.8;e#tLs<.P;\r<.`;Tt\sLr<.|;Jq<.4 nl q r  `Ъb t":cr 4 ١nj m0k@b&634bF2*/  / ")T42 56Gb@!03)Tb# !AM@b@!03)Tb# !A  .ɡ<ߨ1nm 5=$6-$7-s 03)Tr# 42u ")h PU)Tu5`0@bB 155u 0 w ")l @D)Tv4`0PbR 164w 0 0! ١nj k023JmbЍ%bЍɖ`c 4# $6*$7*ɡ<ߨ1@nl m@ " .Mc:  >(Mb:n041 @_! nm q   (>N,P4H!0-L ")Tr3  0G`@03)Tb 5AM@`@03)Tb 6A)p ")Tu5 v7 0 nqԔ  (>N,P48!/, nm @-"""`  (>N,P4 !/t]'  (>HNpP3!/)Tr 3 q-wt s<04<4-e "` rM.0#9P!4 nl ` < q  4)l  -`Ъ ")Tb ! "` rL.0#eЍ8s 2 54 ! դ 4 nl 8 @ q : 5 )h ,`Ъ ")Tb ! "` rL.0#eЍ8ts 2 54 !є֤ 4 nm @ ^  (>N,P3!.uݔ ")Tu '&5    (>HNpP2!.j ")Tv 6cЪ1 ")Tc2  "`!.cЍ8P0 ")Tt2uBG `@03)Tb! ! 5AG@D)l `@03)Tb! ! 6AnД!@D)Tsoc5 5 303)Tsm%3 "  (>N,P͍22!- `Р b #0 '"!2 3SU P55 $.0 !! 菒$ ```"RU~P%%nd0q@!0 1 "",! q    @  12@hi!١nk l0q۴;!@ BL :DTPOO*(&$RVTRP0.,*h 1 4K  1 4K1ˉ at+L NDPOO6>^~|zx(?4 :4 54 14 .4+   <   <  0  4+z1ˤ    @ gF  C @   :m N Lf   @ h =W  @ h 0J 0B #= : 7 L DVPOOz fb"j bЍ  1@ ih !ɡ<ߨ!" "RUP%%&$" !"($nm @=.Z-0 n\Д h bЍsݔ0 ntД  bФ0Avݔ0 ّni ţŴ L L  (>N,Pi/!+-{ɔ i   "Z̴c2 "|b#p20 # .H>@k;0Dr &   "Z̴c2 "|b#p20 # .>,@k0Ds,cA;{ɤ! j)L`  "Tbq"$  b !R@@9b0"""`m l    ; "@ = A@ y7P3x) % x)cAw) % 5w)cA-w) % &w)cAb\@9b0"""`  ߔ I.H @9.l233d3 D by ! j b)L`  "Tbq"$ɑ@ߘ1ّni 902  "Z̴2`0 "|bp"  .>P@ ҔЎ "ZȐ!78l L  (>lNP.!))L`  "Tbq  d (>NP-!)yKdbcЍ·NP-!)<bcЍH;dbHɑ@ߘ١nk @ (>N,PӍ-y!)+L`  "Tbq  [bЪ"v bp:@0 $+4H K@:@b0-LKD:Db0$L:@ b͑{ 'v:0 !+ H K@v:b0LKDu:b0Lv: bktې +@͓P+D͍Pɡ<ߨn\Д bЍsݔ```0 ntД  ` n bЍvݔ0 nm jc d_@=t u{ =`w-`` `w-D n@bЍ ( 9@=b0"""` .$w-``w- x-``x-w-``w-  .*, n0 nm L  (>N,P,L!'P-L`  "Tbq"80 ١n` j0#ck ( s 3 j 2: 1 2bk 4*5*1245ɡ<ߨAّni j0k@lP0t:eW4*u:bdeNl 5b$bɑPߘAٱnk l0m@p  (>N,P+wܤ!'u,@  (>LNtP+]ܤ!&0u,t21tNP+6ܤ!&u,b ɱH߸Aqng h0i@jPKk Fl 012t8ebpd4(p q8 p@u0 &Ѥp qZ01Qr sZ23Qu8t3ebpdu84#u8t30  (>N,P*!&Q%cp2¤$cp2u8u3ebpdRu85#u8u30  (>LNtP*!&$cp2u(b bЍjNx  qXxAفnh i0j@kPp;t01p;3 P??&Lb|ebcdxii b|r 1q 2ebcdxUi Zm K bcQL012ebcdx4)  (>N,P)\!%`K bcPL$cd2be| ecx4)bɁT߈Aفnh i0j@kPp q[01Qr s[23Qp+`" P//tpnl 0@ 1212t9mbdeЍ7(4)0u9bdeЍ,(5)$cz2b,p q[01Qr s[23Q@ rӖl 21qӉl 12t9ebd(4)  (>N,P*)0 !$op q[01Qr s[23Qu9bde(5)  (>LNtP-) !$ $c2b},'l p  q9 p@u@ QPbcdЍ0@ 1221t9ebdb(4)  (>NPE( !$2u9ebdB(5)  (>NPG( !$@ QPbcdЍv$ck2b,p  bЍh7a  i bɁT߈Aqni j0m@kP0@*"""` +!t:ebdЍ 4*t:lbde4*u:bde 5* .hp+"4P//$8#c (s 32#ch (s 3l 2m t1|2m 5 1}25r 4 4q۔ 2%c+2q  (> NHP'!#3q 4 4,L1245.#cl ( s 3 m 2: + hl1-2 + gCm4-5bqXxA١nj m0k@lP (>N,Pʍ'=x!"|@ m8bcdeGm bcdeiLNtP&x!"X|bɡ<ߨA١nk p q ! / q;0 p!  (>N,P&̤!" Ф2p˔q jblrLNtP&M̤!!p !0 0 qp  (>NP&+̤!!0͔ p  (>NP&̤!!r bcplmp̔yq  (>$NLP%̤!!xɡTߨ١n (>%P(>`bBb#jq pZ0bЍ%PpZŐ  >4bd%Pɡ@ߨ@b@#0b0212A ّnk @ P Q R T S U V X W YDx@ w˔ i@ i)e"j  (>N,Pa%4! t -\,\ xwb @ ~,\bЍ f@ cp-\t h i uu w˔  u  J H \S du  = \H x5+dj  (>HNpP$! Ft  "t   #%bb + "ɑ@ߘ!١nŢk0Ф b bŢ* ЉۉЉՔ GД < Љ<ߤД x pc pc ҉ ,Д ЉҔ (Ф"P// 8v^D~|zxvtrnjfdb`^\ZFVB@P<4$HF$"  0.,*6&$" ~r NLJ b8 bɡ<ߨ!&!b@ |w"@ ix2wBu0/@^ t h i uw$@^@ t h i u w#@D!A!u08@^ t h i u(w#@^#@ t h i uw$@!^ s v w nm j !@=b0"""` x-``x-!bЍS !w=@ j{x#@w#``w#j!g x-@ ``x-w-``w-K!x-  x-``x-w-r  w-``w-u$!x-]  x-``x-`w-``w-U! 0@  # "fP//D@# "P//NL n@Ԕ"aȤ0t  1# , @03SUP55zxvtrpnljhljh`^b`^\ZXVTR42LJHFDB:864.,*.&$" $" 0u  1#! n"Ԕ `0@^ s1# , nl @,"""`$  w,|@,"""` x,|b4 nm @-& (Hw- x-@ x-  6w-@2w- x-ww-x@ tmw̤ЍH)H b_L lbHH@-"""` x-@HH@-+ ,.x-@GHw-@@  (>N,P !w-GHe& (Ax-w=@t h i uw3@t h i ux"@^?@<#_u  ,w-GHx-GH!"""` w-? w-GuHbЍ*bЍGiH4 ّnl @,& (]w,p x,@ x,p Kw,@Gw,p xwwx@ tjwblm b1n5-  bS jb0nE4-jb1n~94-@,"""` x,@blXm w,0nb4-x,1n[5-@,+ ,Nx,@bl9m w,0nC4-x,1n<5-w,@@  (>N,Ph!flblm x,0n5-w,1n 4-& (fx,w<@t h i uw3@t h i ux"@^@#^fdu  bkm w,1m4-x,1m5-@ o (>HNpPCYh!lY"""` Qwbp I@,d fSm tP@vԤ Db_m p q r  {  |/  "Z̴` "|bp"  .l>@vZԤ , + ɱ8߸nbЍ^'  "Z̴`Ъ "|bp"  .>P@v Dp q r {6  "Z̴`Ъ "|bp"  .l>@u , bЍ^f< C,|< " %  "Z̴`Ъ "|bp"  .> @ču , bЍ^(< , 4 鏤!n"\@m  (>N,P܍D!1H@ r "p q { |  (>HNpPލ}D! HbЍ0 n"\;m  (>N,PM!@ r "p q { |  (>HNpP(!bЍ0 n"[ m  (>N,P$!(@ r "p q { |  (>HNpP$!b(bЍ"0 n ^71 , 鏤 n"[oД t ^7b 0 n"[J t +, n"[-| t+ , ٱnm k0l@/;u 2q 3p]P0-1-@P rr20 dPpUP rr20 ```0R@0-0$P1-ɱ8߸1n.r,1 nl m0@ ^  (>N,PP!cTp, u 20 p" ``` cH4! ٱnk0b[x"b[xͤ-4 m q0  p4 -c !ɱ8߸!ٱnk0b[t"b[t q0m v0-cǔ !ɱ8߸!np . .nm0D`> p^^b `bcd 4h1١nŢm0k@ l 1'4 b$5,@\c qL0bPeU&(bЍV,2,bcY0bC4 .cdЍ8bɡ@ߨ1nc {@l$ bЍUc .dЍb0 ٱnŲbYJm @ p ^ C! "Zȴ 9 ,bY1 %@ @20!^uu=0% tt=0'4 bЍ !p  "Zȴɤ!ɱ8߸p602nФ0>0 @vCa.bc@0p0 n̔ d`-03#@ p0 dm .0plh6lp ```v .c (>NDPvl!pb4 nm  (>N,P~c!@ a (>HNpPJ!a xx0 nД %@ a  (>N,Pl!pvM.cЍm@ݤ0 nl m bcpqS01RrsS23RtuS45R@,"""` t,4-@,"""`u,5-b4 n03@C, nm l0 00 .h” .h@=.2CDcЍh@  Yr=0 @t=.,h+u=.hxuMt=.$hnt .0h.4ht=8bhu=.<hNu=.DzhFr=.Lrhs=Tbjh6 % /"0P//NHF>:86420.,* $  .`.hq-l.d#h 4A ٱn@2Ȫ233` 8t@ t3m bcpqS01RrsS23RtuS45Rq- "1 t@++q+ "1  2 5 4ɱ8߸١nk @;b0"""` !t+艀4+u+5+t+艀 4+ .n0@;_rt q˔P^ u 4 buok bmk "", t@ x "̔ r< bЪ"""̔ r< bЪ"""̔ n",hxm ^  <1 2u 5 4 m x12t 45 45+x 1¤245  <+1 u+@   (>NDP!)u+u b0c@ObcЍu   t+u   (>`NPc!bu (kxd $cpqS01RrsS23RtuS45R q$ "1 54b@b0c@O6r+@.u  (>NPˍ ! (r[>dPr[qKu;"P (>N(Pҍ!jbcЍGu;"@O(=r+@.u  (>DNlP!: (r[>dPq u;b"B@r["O (>NPu!bcЍb0օu;@N@;wQ9bЍQ bcЍt+qb""q Nxuq 1451t@,p q | ";u<@,@Nu@,qP" bЍP @,W,q, "1 bq  br`btZ -Vbctb]JF 2v4=  9HIK^8(# #"6P//2.,*(&$ TR Fbɡ<ߨ١nj @ du adk bcpqS01RrsS23RtuS45Ru;@+@MbЍUHl 5@*ե+q+ "1  2 5 4$bЍSLm  (>N,PZ !t=t* Pɡ<ߨ١nj k0l bcpqS01RrsS23RtuS45R 1 25t 4 4d b@cpqS01RrsS23RtuS45R b@4*52ɡ<ߨ!ّni ţ (>N,P,!90  "Z̴` "|bp"  .H>@kK DbRZk 7 k bcpqS01RrsS23RtuS45R@ bS1+bcQbbR*k @  |4 bSm  " t t) d@  bTf00  " O 5٤"c@Lv"NM2)@ 1! m bcpqS01RrsS23RtuS45R@)M)q- "1  2 5 bc|4-bt;bbb ɑ@ߘ!ٱnm @-"u=@-@LŲ (>N,Ph! .lbRk  Hk +cpqS01RrsS23RtuS45R@--q+ "1  5bЍ4+2ˉbzu=@KŲ (>HNpP>h! lbRbRzŲ4t=@KŲ (>NP h! lbRQ k @=.Ѝhq 0Htq 14Ҥ5$1$ ^ 2 3 @;b0"""`Ţ t+,NTPߍ x!3| "@@-ɱ8߸n)r-Tp !0p@0- .0d!D ")L "Zȴ BbЍG0  "Z̴`Ъ "|bp"  . >l@d D ^ p q |  "Zȴ0 ٱnŲ  "Z̴` "|bp"  .>P@ d ~m ")  (>pNP d![h 03bNl `Ъ "bذȻ)p 0bcr;bЍɱ8߸nl z p-:,p-<,p-=,p-;,|,bDtܔ bЍvݔ```4 ١nk @  i @+"""`VN`Ъ "b0;P003)bЍ@ "ZȴŽҔ  "Z̴` "|bp"  .>P@Hc, D %  "Z̴` "|bp"  .p>@Hc, , ?  "Z̴` "|bp"  .>(@Jcw, ~ (>HNpPK !-bc  "Zȴˆq?2  "Z̴2`0 "|bp"  .>@Qc,, ~ (>(NPPR S!bch{۔ > -cB艀3!-=2  "Z̴2`0 "|bp"  .p>@Xb, D ^ p q | tݔɡ<ߨٱnBm0B  "Z̴B`@ "|bp"  .>P@kb@ ~ (>pNPl !T` "b0bcbɱ8߸!nl p-D:,p-D<,p-D=,p-D;,Lz, L4 ١nj ų "m@l z*H{*H|:} bvTbAPtڔ bcdevݔb<ɡ<ߨ!١nk m0lP 4{ @=2 p q ^ | b0"""`= i   "8?-};-L@  i @-"""` z;ڭNb@};b@{ݔ ? =-de@|1=2  "Z̴2`0 "|bp"  .>\@ԍai| D ^ p q | tݔɡ<ߨA١nųl@mPc2 "b#p""b X  "Z̴c2 "|b#p20 # .>P@a0~ (>pNP?d!h@D)bcg}P@k_( D” Ĉ .lcd^,ܤ "@ Ӥ  "Z̴`Ъ "|bp"  .>@_F( ~ (>NPm0!4b8k  "Z̴`Ъ "|bp"  .8>@_(    (>NP,0!4b8m N`Ъ "lbp)L 6@9< b0"""`=( i$  (>N P0!z49b< !bct@m  ɑ@,#"RP//: ߘn (>4$8, DPQ @1! PQ @A @!!@A @A @@R!1 !@1@# @A e @A @1!@A```bP3` @A 2!@A```b$Header:abort.s 12.0$TP@A!@2@29  + - !0 9 `P!P@20 9@ UbP@D #"$b@d  B 鏤 03 #"#d b00C P%p n` b0cl b^m c b4! nԍ ,1 nm 6bЍ 0 pqTn 1 @Q  !7!81b@09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$Unm X= ( 0 DxP  Dxr 5X   "@  `2 -1 } b2- X ( X ( 3 $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxn)u͔%.l>#X4"# D 9 p 4p, X v=ij p 4p, X  !0U0,4u nЍTm 4:03)5#  0`Ъ`6>`0 023$0 ```bФ1.!0 n)u͔  4v-p  !00,v-ij 4u ٱnm )uȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n ", ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍ k 2X*( X ( 3 ""&n 4X*( 1X*@l@qJKl@&1*cd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -dH, X ( 4 4 nl X< @m ,  X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0BD 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ^!<J{mb< Ntbd "cP bd "cD >"A< bЍd "cЍ0 !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cd !|X/(230$b0cd X  ,AA ّni j0k@lPbcm 2pLM@ q,cpLb )pLM q,cdЍq 1 p 0 bɑ@ є ` cⲤbɑ@ߘAّnj k0l@A +Ѥb@ a. 0 2c 0b@Vj bɑ@r w ɑ@@ a0B 0ެ3  ( @ r( ( 12bɑ@ߘ1ّnj k0l@X:( 0l>r ;8pm*0Am ɑ@)҉X:3 q*r  `-1 p 0 ɑ@ś30 r 1 X ( *cd.m 0 > ;0 bZ0/ ) m X  0 X ( r 1 *cd   ɑ@  ɑ@ߘ1p>PpU0% ّni j0k@lPbcm X !Vp,!0,s a@)* q<#1 11?AQ@=!>1?AQ@B(1!0@+ Ϥu1 *p)! 0)q)0!1)X "s  q)0q)! 1) 0cu1y , )p)! 0)q) !1)X "s  q) q)! 1) cىUȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c+@+c#@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+cw@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cIىȡ/10#}!b~00s10  p .aL p .aL. aL!4m ҝb1z u2 `;bcm3!id == (id)../../../cc/pco/opt/allocate.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/allocate.c_tplAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cTemp Vector for block #%d is Z$Ls\rx8Pstorage for user variable allocation dataTD:Assertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cLoop Temp Vector for loop #%d is vector for blocks enclosed in %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cvector for loop in %d  BAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cLocal Variables Vector is Assertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.c "Assertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cTemp %d useless; zapped ohmCon(FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAllocating &id: %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cdl۸[8dFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.c_m4LAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.c T@storage for %d allocation status entriesFinal allocation vector Final benefit values  _hL  h<FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cFirstId<=( (Identifier) i) && ( (Identifier) i)id == ( (Identifier) i)../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.ca lTqr Allocating Resource # %d   pqVAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/allocate.c^+%s(%d): benefit = %d ..no name..\$Header:allocate.c 12.0$x@(#)allocvect.c 5.2 - 87/03/12 17:19:33(storage for allocation vectorsT4[%d]: benefit %d Ids: $Header:allocvect.c 12.0$@(#)arith.c 5.2.1.1 - 87/08/14 17:22:27division by 0division by 0H @division by 0.0`\$0`\`3`\`3 `\T3`\<0`\<43 `\<(3 `\<0`\<(3 `\<0`\<(3 `\4l#`\ <0`\ <(3 `\<T3 `\<lp#@`\<`\<$`\<(3 `\<"`\<P3 `\<l#`\<T`\<X3 `\<<`\<@3 `\l"`\<0`\<`\T#`\@`3 `\$`\,0$Header:arith.c 12.0$H@(#)availexpr.c 5.3 - 87/05/12 09:29:12$,hl@%4R%Bad optype for op %dHashed Dag for block # %d Z$RpR<RtRdRhmO(Allocating Avail. Exprs. for ids, n = %d+1Allocating Avail. Exprs., n = %dFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/availexpr.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/availexpr.ch *+Assertion failed: file "%s", line %d ../../../cc/pco/opt/availexpr.cNon-identifier available expression %d on leafBad optype for op %d$X\,Assertion failed: file "%s", line %d ../../../cc/pco/opt/availexpr.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/availexpr.cAE %d depends on id %d and globals -FirstId<=((Identifier)d->hash) && ((Identifier)d->hash)hash] != NULL && IDs[(Identifier)d->hash]->id == ((Identifier)d->hash)../../../cc/pco/opt/availexpr.cFirstId<=((Identifier)d->hash) && ((Identifier)d->hash)hash] != NULL && IDs[(Identifier)d->hash]->id == ((Identifier)d->hash)../../../cc/pco/opt/availexpr.cAE %d depends on globals Assertion failed: file "%s", line %d ../../../cc/pco/opt/availexpr.cAE %d depends on id %d LTYPE node found in dependencies for available expression %dBad optype for op %d/t0f1nAssertion failed: file "%s", line %d ../../../cc/pco/opt/availexpr.c13 %d, 4BAE Block: %o (#%d) Gen: Kill: Comp: In: Out: 4$Header:availexpr.c 12.0$ p@(#)benefit.c 5.2 - 87/03/12 17:21:255\Assertion failed: file "%s", line %d ../../../cc/pco/opt/benefit.c$Xf(6Ha6>?PP8nFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/benefit.ca|>9Assertion failed: file "%s", line %d ../../../cc/pco/opt/benefit.c:JAssertion failed: file "%s", line %d ../../../cc/pco/opt/benefit.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/benefit.c$Header:benefit.c 12.0$"@(#)bincode.c 5.2 - 87/03/12 17:35:31"P$P"0"8"@"H"P"X"`"h"p"x""""""""""";p2text(%s) !`;~p2triple(%s(%d), %d, 0x%x) ";p2name(%s) intermediate file read error?$!?F$Header:bincode.c 12.0$FTEXTFEXPRFSWITCHFLBRACFRBRACFEOFFARIFLABELUnknownFRETFOARGFARGCONFFBEGINFFENDFPARAMFETCHFSTABFTRAILERFENTRYFPFHEREFPSAVEFCOPYOUT%@(#)blocks.c 5.2 - 87/03/12 17:21:58?xstorage for basic blocks ?h4XPADA#\AAssertion failed: file "%s", line %d ../../../cc/pco/opt/blocks.c#$XLBBAssertion failed: file "%s", line %d ../../../cc/pco/opt/blocks.cCLAssertion failed: file "%s", line %d ../../../cc/pco/opt/blocks.cCAssertion failed: file "%s", line %d ../../../cc/pco/opt/blocks.c#DAssertion failed: file "%s", line %d ../../../cc/pco/opt/blocks.c#T$$T8EBlock %d @ %x First: %x Last: %x FGindex %d Reachable %c in_loop %c exit %c eligible %c next %x known_stores %c unknown_stores %c Dag: %x num_nodes %d F%$Header:blocks.c 12.0$+@(#)carrier.c 5.3.1.1 - 87/08/28 15:03:45F%s for block #%d OGdInitial carrier choice&GCreating VS temps VS temporaries createdGChecking carriers Final carrier choiceHZ$&HRZhHChoosing %d for node %d FirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/carrier.cFirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/carrier.cRemoving temp %d from %d C&>JP(JCreated temp %d on node %d Make %d not transparent D8mm4K"Assertion failed: file "%s", line %d ../../../cc/pco/opt/carrier.cUnallocated pvc %d removed from node %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/carrier.cUnallocated loop fs %d removed from node %d FirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/carrier.cFirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/carrier.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/carrier.cNode %d cvc %d tmp %d cvc %d replaces %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/carrier.cCarrier set: %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/carrier.cAllocate %d %d deleted from node %d _$X@$Header:carrier.c 12.0$2$@(#)commo.c 5.2 - 87/03/12 17:24:56O\+O+P&2<2D2L2T2\2`2h2p2x222222222PTR FTN ARY %sNAMEpLNAMEqPNAME|STATNAMrTNAME{LTEMPSTRING^REGsTREG_OREGICONLABCONSTLABxADDRvLADDRwPADDR}STADDRFCONSFCON`CCODES~CCODETyLFNOP U- U*U&HUCALLKUFCALLL!M~lFORCEnINIThSCONViPCONVtOCONVLzUNYNOPuOCONVT+h+=!i-( -=!) *  *=) &@h&=`I?:&&||8,DOLR;,OP:= %?%= @<<A<<=0 B>>C>>=0 |@H|=`I^@H^=`IN++ O-- E->FCALLIFCALLP==Q!=R<=S<T>=U>YUGTXUGEWULTVULE]A>>!TYPE6[mCBRANCHgFLDjPMCONVkPVCONV$RETURN oCAST %GOTObSTASG cSTARGdSTCALLfUSTCALLPP$Header:commo.c 12.0$undeffargcharshortintlongfloatdoublestrtyuniontyenumtymoetyucharushortunsignedulong??3@(#)comsubex.c 5.2 - 87/03/12 17:25:10PDAGcost #%d rtemp %d stemp %d eval %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/comsubex.c>($XD8lRp After Common Subexpressions 2O$Header:comsubex.c 12.0$8@(#)cond.c 5.2 - 87/04/27 06:19:47RS"Assertion failed: file "%s", line %d ../../../cc/pco/opt/cond.c$X4hSPhTZAssertion failed: file "%s", line %d ../../../cc/pco/opt/cond.cstorage for %d conditional zones pUpFirstId<=(n->leaf_id) && (n->leaf_id)leaf_id] != NULL && IDs[n->leaf_id]->id == (n->leaf_id)../../../cc/pco/opt/cond.cFirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/cond.cVNELLL4QAPW6Assertion failed: file "%s", line %d ../../../cc/pco/opt/cond.c6Q5QY>Assertion failed: file "%s", line %d ../../../cc/pco/opt/cond.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/cond.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/cond.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/cond.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/cond.cZZAssertion failed: file "%s", line %d ../../../cc/pco/opt/cond.c7[Th7\HTp]<8 8 ^$Zones for block # %d (total %d) Zone %d owner *** %d nodes no nodes value side se dag list: %d _`88$Header:cond.c 12.0$>p@(#)constant.c 5.7 - 87/05/13 14:50:12_9(`TFirstId<=(d->leaf_id) && (d->leaf_id)leaf_id] != NULL && IDs[d->leaf_id]->id == (d->leaf_id)../../../cc/pco/opt/constant.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/constant.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/constant.cconstant node %s(%x) replaced by %s(%x) Assertion failed: file "%s", line %d ../../../cc/pco/opt/constant.c$X<=l:;HdOp %s(%x) with constant operand(s) %s(%x) and %s(%x) folded e0Assertion failed: file "%s", line %d ../../../cc/pco/opt/constant.cOp %s(%x) with constant left operand %s(%x) folded Assertion failed: file "%s", line %d ../../../cc/pco/opt/constant.cTried to fold partial condit. node #%dConditional neither true nor false: node #%dX<leaf_id) && (d->leaf_id)leaf_id] != NULL && IDs[d->leaf_id]->id == (d->leaf_id)../../../cc/pco/opt/constant.c\xc@$Header:constant.c 12.0$?@(#)cost.c 5.2 - 87/03/12 17:26:39l>l>m>(mnFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/cost.cdlfo$FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/cost.c$Header:cost.c 12.0$O\@(#)dag.c 5.5 - 87/05/05 21:29:32opjAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.c4$XqAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cstorage for DAGArrayp 4rr*storage for attached idsrrstorage for attached idsslssA @txstorage for DAG nodesuZFirstId<=(alist->id) && (alist->id)id] != NULL && IDs[alist->id]->id == (alist->id)../../../cc/pco/opt/dag.cFirstId<=(alist->id) && (alist->id)id] != NULL && IDs[alist->id]->id == (alist->id)../../../cc/pco/opt/dag.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dag.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dag.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.c@cwAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cCwhAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cx x2FirstId<=(temp) && (temp)id == (temp)../../../cc/pco/opt/dag.clnAlxBlock # %d @$OtRD@xOO88w8SyEyCan't generate DAG for inst type %d E@fIz,ELQz~Assertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cGJKKXP{Assertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dag.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dag.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dag.c@dlc@D4dLLI8LQPQ8~RpAPR<id == (id)../../../cc/pco/opt/dag.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dag.cbPAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.c?ADDR sym. entry made %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cUnrecognised Leaf op: %d \\xIKRtRdQPeLQQJAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.c6KRhAssertion failed: file "%s", line %d ../../../cc/pco/opt/dag.cېcannonever???(DAG # %d) %s leafid %d (%ld) (%s) (%f) addr %x busy %d tree %x left *** left %d (0x%x) right *** right %d (0x%x) indegree %d refs %d cost %d carrier % d line %d file %s is_fetch %c indirect %d p_v_carrier %c VS_temp %c hash %d AE %d invariant %c in_cond %d evaluated %c Fill %d must use carrier %c embed %s eval_order %d SR # %d RR: { %d} dep.value dep.side dep.induced attached: (%d (%s), leaf %d, killed %d prev %d sticky %c dep.value dep.side ) +LLDAG in 'next' order LJNULL DAG POINTER! O<$Header:dag.c 12.0$Q@(#)dagdepend.c 5.1 - 87/03/12 16:03:15O8P:Assertion failed: file "%s", line %d ../../../cc/pco/opt/dagdepend.c$XAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagdepend.c:HAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagdepend.c^pL8PdPPPAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagdepend.cPAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagdepend.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagdepend.cbP`$Header:dagdepend.c 12.0$S<@(#)daghash.c 5.2 - 87/03/12 17:33:42 Pinvalid optype %d, op %dR4R8|`\l34storage for %d hash table entries ZHash[%d] %x (%s,) +$Header:daghash.c 12.0$W8@(#)daginduce.c 5.4.1.1 - 87/08/12 09:04:45VVVVHS(6\SSRSSS:SAssertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.c$X`SrTHATPvA8B8Assertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.cTtU0Assertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.cThSU UvUlAssertion failed: file "%s", line %d ../../../cc/pco/opt/daginduce.cPreserving %d from %d in block %d V:TpVV7dAfter roots computed in block %d, zone %d restart @ %d for fcn %d After induced dependencies in block %d zone %d T\O8$Header:daginduce.c 12.0$Zl@(#)dagorder.c 5.3 - 87/04/27 06:20:20space for %d code rootsh DrNode %d order is %d WXWŔAdding zone %d owner %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/dagorder.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagorder.c$XA8Ǝ6\WDXAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagorder.cXȨVSY,Y XProcessing %d in block %d Depends for block %d, node %d 8SY4͘Removing cycle in block %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/dagorder.cY@ΈVWXYZAzDag Evaluation order for block %d %d 8(WT<ZЪ$Header:dagorder.c 12.0$w @(#)dagsymbol.c 5.3.1.4 - 87/10/15 - 11:07:18 storage for %d symbol table entriesstorage for %d symbol table entries pѨZ[0[40Assertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.c$XӞAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cZEnter symbol cookie %d type space %s id %d name %s \x+Symbol Table Overflow. Use the '-NJ#' option [(D\>storage for identifier (%d chars)kTk,֪FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.chךFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c]~FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cbFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cڔFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cTFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c۲FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cxFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cX݆FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c>FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cޚAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cFirstId<=(d->indirect) && (d->indirect)indirect] != NULL && IDs[d->indirect]->id == (d->indirect)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c>FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c(FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c^FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c&FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cZFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cxFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.c6FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cjFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cA8FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.c0FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cZstorage for the symbol tablewAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cgi@]`P"Assertion failed: file "%s", line %d ../../../cc/pco/opt/dagsymbol.cTable entry @ %o: id %d text %s key (op %s cookie %d type Any type) node # %d leaf_ref %d last_killed %d temp defs: %d spill code: %d addr? %c use before set %c transparent %c allocated %c fetch action attach shadow id %d, copy elig %c, actual type , common blk %d, can't promote %c, benefit %d tree (@ %lx): +FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/dagsymbol.cu4 Symbol Table Null IDs[%d] !! Broken IDs pointer %d %d %o ***** Error %o %o jmissing argument for -J option-J option needs positive integer argument: found '%s'$Header:dagsymbol.c 12.0${T@(#)dagtree.c 5.2 - 87/03/12 17:38:54Rebuilding Block # %d The block is: LXZ$OxPxXStore Regs Reconstructed tree for # %d Load Regs x{x$xyXdlRAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.c6\$XAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.c_yzyAssertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.cSzH>Assertion failed: file "%s", line %d ../../../cc/pco/opt/dagtree.c+y$Header:dagtree.c 12.0$ @(#)deadstore.c 5.3 - 87/04/27 06:20:320FirstId<=((Identifier)i) && ((Identifier)i)id == ((Identifier)i)../../../cc/pco/opt/deadstore.cFirstId<=((Identifier)i) && ((Identifier)i)id == ((Identifier)i)../../../cc/pco/opt/deadstore.cZ$}`TTFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/deadstore.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/deadstore.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/deadstore.cAbandon %d as unused var in block %d - STATNAME used elsewhere FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/deadstore.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/deadstore.cAbandon %d as unused variable in block %d - appears as leaf Remove %d as an unused variable in block %d Assertion failed: file "%s", line %d ../../../cc/pco/opt/deadstore.cRemove %d from node %x Could not remove %d from node %x $XZhC8FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/deadstore.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/deadstore.cdlFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/deadstore.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/deadstore.cRegister for id %d not reclaimed - use at %x Reg id %d not reclaimed - conflict with %d $Header:deadstore.c 12.0$@(#)duchain.c 5.2 - 87/03/12 17:42:07Lstorage for DU chains (set size = %d).h D0storage for DU chains (set size = %d).Assertion failed: file "%s", line %d ../../../cc/pco/opt/duchain.cp$X DFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/duchain.c FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/duchain.ckt dFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/duchain.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/duchain.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/duchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/duchain.c FFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/duchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/duchain.c $Header:duchain.c 12.0$ P $ Resource exhaustion optimizing %s(): X Internal fatal error optimizing %s(): T hExternal Fault optimizing %s(): Warning: function %s() NWarning: function %s() ; no intermediate optimization done. Assertion "%s" failed. File %s, line %d $Header:erroro.c 12.0$@(#)f77copy.c 5.3 - 87/05/18 08:08:0788Assertion failed: file "%s", line %d ../opt/f77copy.c$XvAssertion failed: file "%s", line %d ../opt/f77copy.c6<FirstId<=(id) && (id)id == (id)../opt/f77copy.cTa|id: %d(%s) Overhead %d f(>?P\tBad optype for op %d[8aj^Copy %s Parameters InOutFirstId<=(id) && (id)id == (id)../opt/f77copy.cCopy %s tree: InOutpXdl8Lid: %d(%s), Eligible %c, Benefit %d Assertion failed: file "%s", line %d ../opt/f77copy.cCopy %d(%s) Y Copy %d(%s) N j b`hCreated copy in/out LNAME: [Dl[v0New LADDR symbol Bad optype for op %d۸\xc@] New Instruction list (after Blocks generated): p$Header:f77copy.c 12.0$@(#)fillspill.c 5.3 - 87/04/17 09:52:01XAssertion failed: file "%s", line %d ../opt/fillspill.cMay Not Promote id %d (%s) Bad context for STADDR (cookie = %d)Bad optype for op %dۘ[8$Xa `\&pre is now: post is now: Bad optype for op %di@dl$4BX8LStatname Tree  RChange benefit for id %d Bad optype for op %d(aP$Header:fillspill.c 12.0$@(#)findloop.c 5.2 - 87/03/12 17:43:59!TLoops in nested order: 80H8"Ҵ#storage for loop table (%d)storage for loop pointers (%d)h % Find loop for %d --> %d &*&'Assertion failed: file "%s", line %d ../../../cc/pco/opt/findloop.c$X( P(|8)*Loop %d: Header: %d PreHeader: %d *** Exits: First sibling: **** %d First child:**** %d +Original Natural Loops Tree root: %d $Header:findloop.c 12.0$@(#)flow.c 5.2 - 87/03/12 17:44:25,X,t`,Th#<-.LAssertion failed: file "%s", line %d ../../../cc/pco/opt/flow.cstorage for %d flow graph nodesstorage for %d DFN entries$Xt /pstorage for FlowGraph, size: %dstorage for DFN, size: %dp0*storage for predecessor links0|1l23(Assertion failed: file "%s", line %d ../../../cc/pco/opt/flow.c5X5X5Assertion failed: file "%s", line %d ../../../cc/pco/opt/flow.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/flow.c6storage for entry point links (%d)storage for switch flow (%d)Assertion failed: file "%s", line %d ../../../cc/pco/opt/flow.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/flow.cstorage for arith. if exitsAssertion failed: file "%s", line %d ../../../cc/pco/opt/flow.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/flow.cxDhWfirst node stacked: %d stack: %d stack: %d Create temp: id %d for A.Ex. %d P(ll[carrier) && (ddef->carrier)carrier] != NULL && IDs[ddef->carrier]->id == (ddef->carrier)../../../cc/pco/opt/gcomsubex.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/gcomsubex.c$Xm]nAssertion failed: file "%s", line %d ../../../cc/pco/opt/gcomsubex.cAvailable expr. %d: cost now %d after %d f>_Modify node %x (use) Modify node %x (def) PdAln8`$Header:gcomsubex.c 12.0$@(#)idiom.c 5.3 - 87/04/09 20:34:45adZ$۔Pb TryASGOP d %x(%s) aop %x(%s) lhs %x(%s) opleft %x(%s) opright %x(%s)%s swappedAssertion failed: file "%s", line %d ../../../cc/pco/opt/idiom.cNo value edge Do as += / -= Do as INCR/DECR Do as ASGOP $Xdeno INCR - mix ICON and floating no INCR - mix FCON and integral no INCR - rhs not constant ffVAssertion failed: file "%s", line %d ../../../cc/pco/opt/idiom.c8g`TrySimpleASGOP: root %x(%s) aop %x(%s) opleft id %d Do as += / -= Do as INCR/DECR Do as ASGOP D4C$Header:idiom.c 12.0$@(#)inliner.c 5.8 - 87/05/05 21:33:20diliHeader Parameter Loads Function code Function trailer Assertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.ccallee has local struct or array, or takes address of a localcallee forbiddencallee too bigmultiple entry pointsd$X4PlAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.ccallee not in filej8T\Llrcan't open inclusion/exclusion fileI/O error reading inclusion/exclusion fileline too long in inclusion/exclusion fileAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cinvalid inliner flagAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cDVkoJAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cdoExprSubst: unknown optypecallee name not manifestthis result type can't be an LNAMEf77 can't inline REAL functionscallee isn't a user's functionrecursive callcumulative size would exceed limitactuals don't match formals%c! Entering %sAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.c%c! Exiting %sAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.c%c! Inliner excuse: %sXXT`@p d0+\x^xAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.czFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/inliner.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/inliner.cf{FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.ch`i@\}formalInfo: op = %d, cookie = %d, name = %s, type = 0%o assign_actual = 0x%x, param_number = %d ~ FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/inliner.ca xAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cinstantiateFormals: not a CALLAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cdlXl\x`]Assertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cLADDR or PADDR as inliner formalimpossible optype: %dlAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/inliner.cimpossible optype: %d$Header:inliner.c 12.0$l@(#)instruct.c 5.2 - 87/03/12 17:53:40`kh+8Lstorage for instructions Rstorage for instruction text (%d)Tk,storage for file namesj8id == (id)../../../cc/pco/opt/livedead.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/livedead.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/livedead.c$X,Z$lFirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/livedead.cptHAssertion failed: file "%s", line %d ../../../cc/pco/opt/livedead.c@Assertion failed: file "%s", line %d ../../../cc/pco/opt/livedead.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/livedead.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/livedead.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/livedead.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/livedead.c %d, id) && (aid->id)id] != NULL && IDs[aid->id]->id == (aid->id)../../../cc/pco/opt/loop.cFirstId<=(aid->id) && (aid->id)id] != NULL && IDs[aid->id]->id == (aid->id)../../../cc/pco/opt/loop.cLoop invariance calculations for loop No nodes marked invariant Exits: Eligible: Marked dag for block # %d: pre-header DAG: Revised DAG for block # %d дOTҸ,`ð ~Assertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.c$X#\Assertion failed: file "%s", line %d ../../../cc/pco/opt/loop.c#\8ü&8Assertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cXAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cB>Node %d (%x, block # %d) marked invariant, %seligible not @$tRP|\@xƘfAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cFirstId<=(dnew->carrier) && (dnew->carrier)carrier] != NULL && IDs[dnew->carrier]->id == (dnew->carrier)../../../cc/pco/opt/loop.cLj|Assertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cFirstId<=(d->carrier) && (d->carrier)carrier] != NULL && IDs[d->carrier]->id == (d->carrier)../../../cc/pco/opt/loop.c(mf>tFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cAttaching temp to %x FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cҔAlnl2loop.c: invalid leaf op: %dloop.c: Bad optype for op %dAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.c$KAPTRhR<XFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cdl\xc@bRpFirstId<=(aid->id) && (aid->id)id] != NULL && IDs[aid->id]->id == (aid->id)../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cNo move for id %d - multiple defs in loop Assertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cNo move for id %d - multiple reaching defs at node %x No move for id %d - aliased FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cMove attached id %d from node %x to node %x CPAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.cReachedByOther called on op %dReachedByOther called on op %dloop.c: Unrecognized leaf in PropagateInvariants, op=%dloop.c: Invalid optype, op=%d"FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/loop.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loop.c˴storage for loop temp data8nstorage for loop invariant work array. New size %dstorage for loop invariant work array. new size %dp$Header:loop.c 12.0$L@(#)loopfs.c 5.3.1.1 - 87/09/28 17:30:13storage for cond'l listT͔ͼstorage for PostExit listlfs_temp) && (o->lfs_temp)lfs_temp] != NULL && IDs[o->lfs_temp]->id == (o->lfs_temp)../../../cc/pco/opt/loopfs.cn؜Assertion failed: file "%s", line %d ../../../cc/pco/opt/loopfs.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loopfs.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loopfs.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/loopfs.c0R\PٌTtemp: %d; DAGs: %x dest: %d, via: %d, viaLabel: %d $Header:loopfs.c 12.0$@(#)ops.c 5.2 - 87/03/12 18:07:18pBad op to ToNAME: %d Bad op to ToADDR %d B$Header:ops.c 12.0$p@(#)opt.c 5.2 - 87/03/12 18:08:35can't rewind stdinD$XAssertion failed: file "%s", line %d ../../../cc/pco/opt/opt.c$XD!x, 2Ls@ jHeader Parameter Loads Function code Function trailer used asm statementcalled %s()used assigned GOTO statementhas irreducible flow graph.dd|$%,HDt|8{&,9hٸD l3&L &|xHP |PX,s"Optimizer Statistics Total Memory: %lu Delta break: %lu $Header:opt.c 12.0$ߌ @(#)option.c 5.4.1.1 - 87/09/18 - 15:46:15 HBad option: N%cDU chain set size invalidHash size invalidUD chain set size invalidJbad option: S%cD wtoo many files for optimizerrwcan't open file޸t$Header:option.c 12.0$$(#)pcc.c 5.7 - 87/05/26 13:48:33x!!`PccReadInst called with tag %dDPccWriteInst called with tag %d!,!Pf maxtreg %d flags %d maxfpreg %d count %d %s rest %d lab1 %d lab2 %dval %d rest %d max arg regs (bytes) %dfop %d val %d rest %dPccWriteInst called with tag %d\h     " 2 ^bStatic id %s changed to label %d L.%dAssertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.c$XAssertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.c%c!var %s allocated offset %d D%c!var %s put in FP-register %d R%c!Var %s put in register %d Assertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.cUser register %d freed ^Assertion failed: file "%s", line %d ../../../cc/pco/ms/pcc.cF`\id) && (aid->id)id] != NULL && IDs[aid->id]->id == (aid->id)../../../cc/pco/opt/prune.cFirstId<=(aid->id) && (aid->id)id] != NULL && IDs[aid->id]->id == (aid->id)../../../cc/pco/opt/prune.cBad optype for op: %d in node %d Making node %s(%x) a no-op $XCpFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/prune.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/prune.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/prune.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/prune.c8Assertion failed: file "%s", line %d ../../../cc/pco/opt/prune.c$Header:prune.c 12.0$@(#)refcount.c 5.2 - 87/03/12 18:19:52Trefcount.c: Bad optype for op %d@Assertion failed: file "%s", line %d ../../../cc/pco/opt/refcount.c$X$Header:refcount.c 12.0$ @(#)rmseqops.c 5.1 - 87/03/12 16:04:198XXdlAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.c$XAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cl jAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.ch Assertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.c UnSequence: unknown optypeAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cfAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.c|lX|Assertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/rmseqops.cLd$Header:rmseqops.c 12.0$@(#)storage.c 5.2 - 87/03/12 18:26:16,0<HT`lx ,8DP| Storage Statistics %s space: %7d hwm: %7d Total Billed Storage: %d $$Header:storage.c 12.0$Alloc VectsBlocks DAG Nodes Sets Set Vects Sym. Table DU ptrs UD ptrs Flowgraph DFN table Preds. Flowexits Instructs Inst. text Labels LoopTable BlockTable Invariants LoopTemps Tree Nodes Att. ids Id. Text Avail. ExprGlCommSubExTemp Defs. $(#)target.c 5.4 - 87/04/06 14:15:27,Assertion failed: file "%s", line %d ../../../cc/pco/ms/target.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cdl$X<(یې(L<XAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cSTAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cImpossible optype for callopyzX^^dp"PFirstId<=(id) && (id)id == (id)../../../cc/pco/ms/target.cFirstId<=(id) && (id)id == (id)../../../cc/pco/ms/target.cf#8FirstId<=(id) && (id)id == (id)../../../cc/pco/ms/target.cFirstId<=(id) && (id)id == (id)../../../cc/pco/ms/target.cFirstId<=(id) && (id)id == (id)../../../cc/pco/ms/target.c$$Assertion failed: file "%s", line %d ../../../cc/pco/ms/target.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cP%^Assertion failed: file "%s", line %d ../../../cc/pco/ms/target.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cx&Assertion failed: file "%s", line %d ../../../cc/pco/ms/target.cAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.c&&&&'@'z'(0Can't promote param to stack (VAssertion failed: file "%s", line %d ../../../cc/pco/ms/target.cd()P$Header:target.c 12.0$@(#)temp.c 5.2 - 87/03/12 18:30:21)).T%c%x*RAllocate temp %s, id is %d Xh\x\c@*LoopTemp %s created; id is %d l+>dl@$Header:temp.c 12.0$ @(#)tree.c 5.4.1.3 - 88/01/19 - 10:58:43 +,L,bstorage for tree nodesAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cP $X->Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.c-Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.c.>X.+. %x) %s register %d%.20le%ld%s%s+%ld %d rval %xsize=%dalign=%d, +0۸16Bad optype for op %dAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cSymbol %s undefined Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cSymbol %s undefined Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.c$,\j8[8\,ۘ^ ]72Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cgdl88Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/tree.cfc@h\:Assertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/tree.cFixType called for op %d<= =hTL=Bad optype for op %dLEAFNOP passed to FinalOptXd@X$Header:tree.c 12.0$ @(#)udchain.c 5.2 - 87/03/12 18:32:43@storage for for UD chains (set size = %d).h A@TB Ddstorage for UD chains (set size = %d).Assertion failed: file "%s", line %d ../../../cc/pco/opt/udchain.cp$XEstorage for Undefined DAGFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.c|FFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/udchain.chkGZ$LGFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/udchain.cFirstId<=(d->indirect) && (d->indirect)indirect] != NULL && IDs[d->indirect]->id == (d->indirect)../../../cc/pco/opt/udchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/udchain.cFirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/udchain.c8J4FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/udchain.cJKTKFirstId<=(a->id) && (a->id)id] != NULL && IDs[a->id]->id == (a->id)../../../cc/pco/opt/udchain.c|M"FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/udchain.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/udchain.cN& %x (%d), NUD Block: %o (#%d) Gen: Kill: In: Out:  4OJ \$Header:udchain.c 12.0$ 8@(#)undef.c 5.3 - 87/04/09 20:31:21O kPlFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/undef.cBad UseBefore Set: id %d ns %d FirstId<=(id) && (id)id == (id)../../../cc/pco/opt/undef.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/undef.cFirstId<=(id) && (id)id == (id)../../../cc/pco/opt/undef.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/undef.cAssertion failed: file "%s", line %d ../../../cc/pco/opt/undef.c$X$Header:undef.c 12.0$ Ssave_restore_fp should not have been called $X$Header:foo.c 12.0$ SDShSSS$Header:memory.c 12.0$ T$$Header:atoi.c 12.0$*p*pTT TToLU2h$Header:calloc.c 12.0$< ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$dUT`$Header:exit.c 12.0$V T$Header:filbuf.c 12.0$h)WP XfXYNY\$Header:findiop.c 12.0$YT([[h$Header:flsbuf.c 12.0$\dDL$Header:fopen.c 12.0$]h kX$Header:fpabort.c 12.0$0^,$Header:fprintf.c 12.0$X^n$Header:fread.c 12.0$_L$Header:freopen.c 12.0$`L$Header:fseek.c 12.0$abn$Header:fwrite.c 12.0$cc4c$Header:getenv.c 12.0$c0cx$Header:isatty.c 12.0$deet dfgDgpThnh\$Header:malloc.c 12.0$hh$Header:printf.c 12.0$i i<iXit$Header:sprintf.c 12.0$lLlhoT0otq |th$Header:doprnt.c 12.0$ d'B@,Hr0INFNAN()0LhD$Header:ecvt.c 12.0$,`\$@0`\#@$Header:gcvt.c 12.0$4tkHdh$Header:l10.c 12.0$$Header:mul211.c 12.0$<$Header:mulu211.c 12.0$$Header:mulu32.c 12.0$L*A7\(;w5^k(h$Header:rad2a.c 12.0$l$Header:shlun.c 12.0$ *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2X$Header:spdiv7.c 12.0$TBFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ <$Header:tentothe.c 12.0$#]slnq `###=======>>> >0X X n7!819A` cC$N1 NZ,  P"p""7l  "Mh_@pD0$ $"Mh_@tD0$o P"0L3#0d30#!0h30#/0P3dQ@`\fpf``pf! d!"@d0 ?p M8M@١nm "7 .a0 ".44- ".43- ".42- ".41- ".40- "T:-p":- #z-x"Sr &5 t 5 s 5 Eq 5 p 5 z>b-H8q,cBP<9- ϗ2   $i u y- "T|^< "T{T;z=q#BQ<7- 9- "T|5< "T{+;y-x" R z=y-p"Dt<7-  9- "Tz:yb(P@8-l zc*D  u-8+    V W' U       "Ty9>$b,m8z-p":- ɭ,hߨ nm:-l ;==?M]@lP>,; %   W+     @      i uߤ }-x" R }-x" R-Ť }-x" S}-z"cЍ.h  p-  "7 ._Eܗ}-p2cl1- ~ rp2}-cl1- ~ q 7~-x"S1}-y"-bp/1 }-z"-Vp/1 }-{"-Jp/1 }-|"->p/1 }-q" W 1 "7 q  .0^.T^ܗq- /ɽ D߸ nm8-9= ^ y" Ry30 `Ey-z20 x-y"_0y-{20 x-y"_y-|20 x-y"_x-z" Sy=y30 _y-z20 x-z"_ٗy-{20 x-z"_ėy-|20 x-z"_zx-{" Ry=y30 _by-z20 x-{"_My-{20 x-{"_8my-|20 x-{"_#Xx-|" Oy=y30 _ Ay-z20 x-|"^-y-{20 x-|"^y-|20 x-|"^ !0 nm8-2" , W" #     "7 .\`!0 nm "7 .\ "7 G0 g 0-0370  0$` p- 0-0370  (` p- 0-0370  ,` p- 0-0370  0` p- 0-0370  %4` p- 0-0370  p s4 nm0 "7 .\" "T2-p"2- 0r-$W u21=0 r48$ "TPPp 0 r-p"2- җp- < ١nm3 "7 .[ "T9-p"9- Jy  'jLu,u"7- w-v5 x" SuwW  V0b&L>@b&Lbhs 3 u-7- Kyu,rb4 "TTTy-p"9- s-ɭ(dߨ nm0 "7 .ZPL "T1-p"1- [q,O KW Fp<2= 0 r-p"2-  r=0 ,W 'w3qy,ܔ > b&!bJ "TLLp 0 q-p"1- p- @ ١nm0 "7 .Y "T3-p"3- s+p4͗   t-p"4-  t͔ W 5͗p4͗   t-p"4-  t͔ oW  dw b%r>,b%jb81-j ?b 2-l b̗q;b#v  8uy 9 = bȗb^̗ "TLLp 0 s-p"3- Cp-ɭTߨ ١nm<-0 "ܑ$p 'p|-`ذȻl p $O`p4 t .t !W "x, Ts->,$*`bS|r 2 t-p"4- ԗr=0 "T||q 1 s-p"3- q-H ٱnm0 "7 .W "T6-p"6- v,ޗW ؗ> b#(uL2M@ɗrė "7 .4W}rMt5͗ "7 .DcWju͔q 5 l 5 x, S3 "u>`b#_(q5͔  x, S3u͔^ q, W  "7 2>|b##() "7 u  W  u->#(u W r-t5 l>b"(W  p 5 1 u4͔ $  W  t-q 1 t-p"4-  Wt͔їW  p 4 t͔ėp4͗x, Spt-x" Srt-x" S3 1t-p"4-x" Spt-x" Srt-x" S3їt͔ _u->"<(>b"4( "7 q=.Vt u- u-p"5-v t v-u  *r-t5 lt up5͗vq,c p 6 t  "T\\p 0 v-p"6- p-ɽT߸ nm9-l . "7 >b!y     4 nm0  "T2-p"2- (p=10=1 r-W@ > 1- j1-r-q 5p"2- ڗ "U 2- rW bM5,r-p"2-  @ ٱnm;-k <=l0w;@L A. B#""IM b00-3—4w;12ɽ<߸ nm;-W yV"`0 zy0 0 p@ L A . B,""IM bS1-q1—q-r2{=u652< nm.TL.3- ss r\qL.00t 1u 2cTkLp,3- D nm:-.0- z=pq,4 $bp,0-  2F&0-0.234518 m8-9= < 05 @" @ x-!8-y=19=@" @ x-@:!8-y=@:19= x=@y=@!0 ٱnm;-k <=l0u;0=0 w;.S$ r>$4     ! ɽ<߸ nm;- iu"2- br2 "7 rMq4rD.SWr-u"0-1 { p-1-v"0- { p-  r=q3.S2#q=0{-vr-5{-v6{-60370 >D- < nm9-l 5, "7 >b4 nm8-c  2 uC@* r30 " s   > !> 0 nm9- < u204 t, 03T0=2 y-u2tp= >{\!p30=2y->j\ 4 nm;-/fc "7 .R'0 "_21 0O 4 "T1-p"1- ݗq-x" Spq > b8W  b0O 4q-x" S q-x" S qb0@ <0-  b0@ <0- p s1 q, b0O }4a &W   "7ܔ b @ q-0O ^4qW  =p :1  bID-x, Sq- +Hq  bL W  bPq-p"1- ' 0O 4< nm9-l Nc$, b0 "7 .Pܗ4 فn-t=xi0M|hbc@Rm< h bc 0@ zI9b D "7 .=hP͝xy)H<-j y9) L-t0O y bP?-l &  y,H*{,H*-tMhc{ ~!|=hbd0~T=-  b0OtT=- c-t>- xq" ~bXp> xq, }`  _b ͝xp"cd d\h ݍd| bcd!`  p)B@@cgd "7 . O! ɍ@ ߈ !nm;-<==M2=4 cr b# " """_0-p-,1-0370 @20 r-"""8  [ qMr=.O@q-@ {=Q4  "7 r=.Oy@r-p-q"0- r 2 }M < nm8-03fԔ1    "7 x->Cx-x" S "T~ >x-i u "T ? "T}=0 nm9-l :=;M "eZ "T@@ "fԔ! p, p, 4 ٱnm<- "7 .N|y,1-k cd ny,W 1 cd Tl>bdNb` "7ؔ |- ɽ@߸ ٱn-hl y,~d?-{,wd>-Ƚhbc \=- ~ b# " """_ b<-.ݗ<  b# " """_-d=d-h cdy,  W   ޗ-lhcC(=- ~ b# " """_ b<-.< -`  "_l, =hN<$-l0,i u5`   "_lȼ bND(P>bFNH F s "7 ;. cL`2~   |  '-`  "_l-lz"< |  rr,`  p "7ؔ -l tȗ "7 =b0##"#"BD_(.,Lɭ@ߨ nm-P4 =2=(12=@ 4 r-=P@1=P!2-@ t 4  t  0OHr-)!2- "7 .=KD4 t b# " """_1- 2 q-,3-0 @ Es-@ r-@" s-!3-@ r-@"s@ (r-c H  "7 qMt=.LKRDq=t-L 0-3s-@p- q-q 1 q q1 q t 4 ,` nP<-d=h==З{"O-̗037ܔ0 \ ؗ b# " "_bp 4Li u- b# " "_bM:q2=ȗ10 -qėKHȔ =ؤ d0 ؐ ؔ~. a! _ \ ؗ b# " "_bp 4Li u- b# " "_bM:q2=ȗ10 -qėHȔ =ؤ d00 ؐ ؔ-̔. ! m-dff ؗ ؔ T Rb# " """_-ȗ ė-Lc h a  ,03fhKt  =-؍)-ė-Ĕ  -q ȗ ȴ q ȗ Ȕ ؐ ؔ -d{"$ "7 .03fhI ؗ b# " """_-ȗ ė "fh-З=ȑ<=ԗ@ @" =Ԑ1=ԗ-А!-@ @"  -@ "7 M=.LIQ=-؍-ė-Ĕ  -q ȗ ȴ q ȗ=Ȕ0 ؐ ؔ}@ nX8-`<-@f! -` @:! -` @  -`!-`@  -`!-`@) n !-`>-@( | -`!-`@( | -`@( H !-`?-~=#: = # }=-`@1==!-`~ }--̍H-ȗ0370 c bHh-ȗ@ m8-9=@@"  ) x-!8-y=19=@@"  ) x=@)y=@)!0 فnm-Hi y)b4-z)[3-ty9)>b0OxM 0-c@2338~ "7 .c@F|>b}>,b Up-1 Mq-x" Sp 6 ~ q=VC$ .0 "7 r3.4FF "~ 2q-V& "7 .P0F+q-p"1-} p-ɽ@߸ ٱnm=->=?M0 x" S~- ޤ }y,C02-z 1 b8=-l Ĥ W   x, S}-y"r͍0 2 }-x" S  }z,r0 y,0 v 0͗}-8=-l e W  \ x, S- L }y,r0 > z=?M "7 .Et~-2- Jr b# " """_ 1- q-q0͗xȗ1͔rb#,","_k+З,"8 + c3FVr-!2-  "7ؔ }- ɽ D߸ ٱnm<-k ==l0y+1- y;)b0Oa`L {+0- $c 32222_bL 2 bEzK;b!}-|]!=-:!=-zE{U2b ɽ@߸ m8-9=:M;]29=@ @ #x-z=@1:=!8-@ y {=0 %x-(!8-@ y x-{=@1;=!8-@ y x-)!8-x-0 ٱnm:-k =/>D bcDx >bDp ɽ8߸ nm<- 0@tD 2ElD.p.zp. sp.lp.ep.^p.Wp. Pp.$Ip.(Bp.,;p.04p.4-p.8&p.<p0 p b# " """_2-1 r, ! p-c2H1-q- r-q 2 r q2 r חp 0 ė|-?OD @ nm:-;=l0c 32222#"_0-q;͗ clb0T!z\q p-q"0-{ q" ```p-{q 1bTp-8 m8- 03_1#0 nm03_#  t24- 0-0-qpbTb8 m8-012prs0 ٱnm:-l ;=k0p 0 q 1 r 2 , ; C{ p p r r s sɽ8߸ m9-:= 0#0-4 ٱn-hl L?-k A >͗-p-l d-l Գ ɗ db# " """_-\\h@ db2tbBؔ bCg,-`=l`#-Cp< ?bCR#03(=+ חcBx~=b lP>>b 6L?-k  l -` lb$ 8 J pp>bBxbBb-p l]hMd-l>AZ-pBb-p l1-\q"-\ J d d* pqMp>bB9x>(bAc1 d -p>Db yɽ@߸ nm0 p-!0- 4 ٱnm=-c "7 .@, "T2-0 p"2- mr `W  p X2 x, S201=#}=1 "Tppr> b 0b>4p (0- rb8p+0-k |   q=bh<0r-p"2- p-ɽ D߸ ّnm-@k 0y+ 3-z+ 2-s l j cb038b:p `bp bc0-sb"""8: ͽ@b p0rbcd1-j bb[ bcYbcd_!ɝPߘ ٱnm;-k y+ D0-l 7 b"""8) W  >b Зp+c^  b!ɽ<߸ nm:-;=0-pq0,; y, { .    z-y9  z9y :> }!8 ٱnm>-x" S  ~y+ 3-z+ }2-s͔  פ `@D8cpǤ "b$p 1b )>-k  W     y+ -,  W+  { 0b>-k j W  a x+ S Q ~z+s͍  C y+r͍  6 qbėp-y 9 y 9 z :    >b p!ɽH߸ ٱnT4-hl =ly, ?-"""8 bH>-l  > .  i u ~{, G+  y, :+ p,czؔ j -h-l >> ~-zB-hzRb=GP-Ѝ>T"0.X-̗ >8" \4`~bPd=-k chb : =b>l  !ɽ@߸ ٱnm<-== !1- q>bnx, Sp 0} 0q-V0  q   !x, S q-x" Sq-y"}͍ R0\ X!q  M!}bcj 0- 7!  {, $0 . p q-x" Sq-z"}͍ 0  !q-p"1- P!ɽ@߸ ٱnm=->=?M  p"2- r-x" Sp  ~ rV q,r З>bwW  ɤ   x, S r-x" Srz,~ t b r   y, Y 1-W< / ~+ =#  g -q ~=rbxD T Pbr{,  0- ~ |,  5 ~ q- %r  p "brb q,W   r-p"2-  ɽ D߸ ٱnm;-k <=l00 y+ 90 ,-0 {  z+,0 {{+|ʹ,0 |+,0 "7 pM|=.:$ؗp-ɽ<߸ m8-WA  7!x" S'!x-x" S!x-x" S! 0 ٱnm?-l =@0 y,2-p 4 @t- 0 ̗r=1- q At  y,k {,д1 t-x" S t-x" St-z"r q1 t>b]b3-k c{       4lq  #"RP//&-z9 -z : -z; -z< t>br=bc1- Rt-p4 p +ɽL߸ nm8- 0370 > "Ttt0 nm 82*v0-102&'56789:;<=4 nm:-l 82*/0-01202r 2V &W '    5262w 7x 8y 9z :{ ;| <} =8 ٱnm;-k Z0-l  b%8, V x,W' x,U p-ɽ<߸ ١nm<-j ==k0 0-l   b9#0)=,c9-bc bɭ@ߨ فnm>-?=h0M@i@]DjPz,0-k c&˗r 2  5˗6˗7˗*0)99+>d70*0)):+> d70;˗<˗=˗>b=4ɍH߈ qnm?-=@i0MDj@]HkP0-l }Lcp@ė&r2  ތ567*0(9,>d7Zb8,0(:,c8[; b8,0(;,c8Cp-<=> }Lx١nm<-==>M2338hp" x" Sp 0} 0|-p"V0L "̍h0-j |c}Ͱ & r 2  ~ 5 6 7 9 : ; < $0(=*>d6ԗ>b5ؗɭ@ߨ ّnm=-i >=j0 "Ѝ 0-k c<&˗r 2  5˗6˗7˗*0'`9+:˗;˗<˗=˗>bɝDߘ m9-:=0103Tp00#03U$p0#pC0M0#@ 1$P%U$y-z 1p 04 m9-:=0103U p00#03U(p0#pC0M0#@ 1$P%U(y-z 1p 04 ٱnm:-k ;=l0bcf\ɽ8߸ m8- %q20pPTp0x-p20qPU$q1x-010 m8-x-p"8- x-0 nm9-l := "7 —.4X. 4Xyr<.,4XV<b2p,0-  "T0- p>bp,0- 8 nm:-c "7 !.2\ "T0- pp\qL.c2\p\0]P8 nm:- %zbo0- (c p-8 nm2 r c1 /U02  2 "0-p"@ )p-p"m1-!""U0 r  q-!r U0p-"0-r 2 p"@ڗ < nm;-71-!""U0$b0-p"@ {=pp,3  b0p,@ < nm;-l @,-;@,- G-!G=0 ;@ 0  p 0 ```p-< m8- T @20K AB r 9 !8-A@20 9 %#З B@1!8-@20 5 #ڗ 0 nm:-0 1 q=2#"8 b>p q"0 q 1  M@"""IM DzM@4S1]A:M@4#"IM `P#A:M1 q]P R%"8 b^p q"0 zM@,A :M@$""IMp-8 nm=->= 0!0-4 @R- +}-@ !=-}-@R@DILcEAŤ 08A 5!=-@Rx X 2 } &= bEA 2 d D f F 2 }-@2#"IM Љ%3 a f r 3 }-@2A F r 3 r t b" !s 4 B  t-$s 4 ,f<J(>,"b.Bb,S<0 nm9-l :=b'4 ٱnm8 "7Ȕ * 03Ts3 "7 ذȻ7p0͗ "70+0˗7p M٣p "'c "7Ȕ ~ "7 ذȻ7p0͗ "70+$0˗ "7̔  "7 ذȻ7p0͗ "70+(0˗ "7̔ "7 ذȻ7p0͗ "70+!k,0˗ "7̔ ȗ "7 ذȻ7p0͗ "70+.00˗ "7̔ "7  "7 ذȻ7p0͗ "70+40˗ "7̔ | "7  "7 ذȻ7p0͗ "70+",0˗ "7̔ R "7 ذȻ7p0͗ "70+40˗ "7̔ 0 "7 ذȻ7p0͗ "70+780˗ "7̔ 03Tt4ɽ<߸ m "T0-p"0- Rp-2Ex A i 7u 4 "Tu,5 "Tv6W "Tw7 "Tx8p-p"0- 4 m1 "T0- p-x" S&q 1 p-p"0- q-8 nmU$1͔ x, Soqy,%!.z,%. "T1- 9q-x" S5&qy, !@LA..` y,bR z,>q-p"1- ɗ 0 p-  "8  "8 p-"8p 0  ԗ "7Ȕ U.,q0 p=.4d0BDD8 ND  NX NlNt,Ip 0  ՗>.|,9>b,/>b,%< nm "7 .,( "T0- p-W ,p-p"0- 4 ٱnm>-  q2x3S y"4!Τ "7 ~->8~y,42-W 1 0 p 3 s͔ x, Sp  r s=V ja0 s X "7 >b}8sW I,D Ap,  9sy<~y+,< .z$b8p-ɽH߸ ١nm<-l ==j00-k c        "Tɭ@ߨ nm  "f ! "[ j0 nmF(j,v  >,0f, RL,44. 8(% $H<   $", $, "j&@D4"q"P//Zdnx nm "f؍  >,: "j" $0 m:-0-1 "h@2#"IM"# pM "fR @54QR A0Mq 1 @5#"IM#p-q-8 m:-1-0 "h@2#"IM : 03f# !# @2#"IM : "h@2: #, # q= "fB @AB 11=p 0 @ , #q-!1-@"""IM p 0 q-!1-@"""IMq-!1-p-8 ٱnԗq @D_ "f0!1  pp "f=4*N1f ,, #>J*     "h@2#"IM : 03f# !# @2#"IM :f, @2# : jȼb ,b,:i  , -,@2#"IM : -,!-,@2#"IM :-,@ n 4 0 "f2=, 0-0 !-0=,1=, "h2 =,-0) "h10b#$,S*  &(, U,, + l   !ɽ@L߸ nmPUf 0 %(%! 21 1 p hq-8 nmPUf%%% @,!% PUf 5(. f<(.t,S  ?"vP//.f:0 /<0 &<,0 < 7@0 0 p-8 ٱnmذȻf  0 bW+>b(1 ,77777777Ĉ9>b' ,77777777Ĉ z  0"xP//~$nz0vH7777777Ĉ777}7u7m7f7_7X7Q7J7777777%7777 ;'037 "7#0372 "7#0372 "7#0372 "7# 77ȗp hɽ<߸ ٱnm-@l =Gk0' D4-  r"@ %A (@0@ p-@) !0-@@@ 1A + B  C  D 0 @A + B 1 @   @B +C 1 @  A   z -=H q bq"-@&D4--@@"""IM t 4 Gt-"0=L5-3-νG !5-u-=@@1=@!5-s-ɽP߸ ٱnm;-k f\bP,x+T0r0bP{9,PUf5 @, #Ȕ ŗ![15 %s%x,Trr {-x"TPUh0r0bP{=G:#PUfbȲ0@ ) %0{=+:# p0@ (``` 0 "h0n{:,b0rd;,03h@ 8# 5, !f    \bP,{-x"T0r0bP'{=<#ɽ<߸ nmhTU$U U( "Tp0j7ܗ0 nmH0-24 nm8-03j0 03U$ 03U(30 ٱnm;-k <=l0@ / -b$А"0r0-=+@ p=|-@!<-10=@p- !0-p-ɽ<߸ nmo0-l  03f؍bt 8 ٱnmE0-k W ' f,"07+<#,b>ɽ<߸ nm0-03fC8BVxBW'xBU# @2#"IM :  "f2 12 @3#"IM :p=# !@ $x# Spp-x" Srp-d03hpbbb8 nm9-x" jkSy-y{, z,@"""IMy-y-y-y{,l z,@"""IMly-fy-^y-Vy-N p: D"0P//&$" trphfdb`^\ZXVTRPNLJHFDB@>(b@!4 z{,8  {A:y<94%02PqL:$qL,:qLqL w y<:<     zy,[8j z,U8|,=/@ u- W ' zW ' z},T&,qL8Mk@W+   xx+ Sr &x=q38=W#```  x-x" SrܗzqLx9i:MbcTX    g zy<@L]A.XB "ILdAM34=@bA t-!4-@"""IMt@ 1- 4>0$n\ zy,*08b`p9y3yP$ \p=1z&tbl>|bll9b,p8-k ctbDx+ rsS "xx58+ "xx(8+ "xx8+ "|xx8+ "oxx8+xx+V x+W' x+U zp: "7 .0 "T:- | . \ zx,V .0>bl7̈bz},qT&,q<8= W#2 C@=x-x" Sp z-Vx=V#&x=q38=#W3  zx, Sr zp,:- ɍ,p߈ ١nmk =j>=k0?Ml@ȗbk 1bc 0=  "d0cep*  "TxxɭDߨ ١nm;-l <=j0y,Lk bFbD "Tx/x:; < "!8,V x,W' x,U     ɭ<ߨ nm8-0370 >x- 0 nm9-cЍ! p- ! 4 ١nm "7 .H`03T nd4- t ocd3-c 0 .#`bh "t` il "7  "7Д s-Fpsy,t2-z,t1-r=l b0cx/t`0-e c512= "7 .8d`p]Prtq*cdP|sbcbcds= nd4- eɭPߨ m8-9=p#9- y-x2Sx= p"9-  0 nm:-;=0-# p-x" Sqp-p-p"0-{ tdz0{ Wpz<0 J,D 'td@! Alb?*p{,^ !!bj {,K !bWbHp-p"0-{ 8 nm:-l > {{Fz̑0͗b5b,> b1-  Nc)1- {-y"@4 q-"r q-"rЗ< m8-9=:MPUk% `!8-d  % `` e05E З0 nm:-l {,!b{b+bcɽ4l߸ nm;-<==M1-#q v{wq,  "Tddy,tc p }-@b"   "Thhy,ptd p }-0b "T``q-q-p"1-|=#~< m@0M "t`BpMc@2 "kc2 @0A0M `@ Pt`4 n-d "t`?- f "7 =.2kop_@O? 0-"kl  @\L -t>0p 1@\L -t>(0p12ܗd=tbܖp, ? @  m8- 0 nm9-l :=;M "e܋p, 4 nm8-  0 nm8-9=<   0 nm:-l ;=~0- &cp-8 nm:-;=!:-{͑;pL@- I;>b@/_pL.dc@̈> b@/_pL.c@̈z #c@qЗ{-p2102@0 gz  : >*WЗ{͑;p >b]/_p .dc̈+.З{͑;p >b4/_p .cüؗܗЗԗԗԗgaė[ЗUЗOܗIܗCؗ=ؗ71ؗܗЗԗ ȗȗ}wqke{-p]0{=p#!0#@ 0 "6P// 4J~zr@nTp >'[Зԗ{=p#!0#@0 Lp ; "P//$8N~|zxvtrpn@hT`^^XDLXnDB@>: >0.#. .  Ȕ J 0ؗd dJ_ .(>d̗$J_ȗ.(PܗL>dbFܗ`>b<ܗ>tb2ܗ>b(ܗ>bܗ>bܗ>b ܗ>bܗ>bܗ>bܗ>bܗ>(bܗ>Pbܗ>dbܗ>xbܗ>bܗ>bܗ>bܗ8 nmq1.t. m.8f.<_.HX.xQ.J.C.̍<.5...'.$ .(.\. ..ȍ..0.4.l..ȍ..,.P.t....(.l..̍. .Hx0 nmq. h0- q1p @DT>(bl"c޳pp-0qN1B "Tr2122q1 "7 .@tp-8 nm;-<=0 .1-{ .>#7.|p"0-  {D>|0#0-p-.|qc>(1-{M`$>(bK"c1q-< nm07.0.0.4q`<(.80 nm "7Д 0 p "_>de "0  8 nm "U  "_>  "T| 0 nm8-03_ 10 nm "7Д "_ "7Ȕ J  "7Ԕ J(bb "_b 4 nm9-0- 7 "7Д (p-"  "_>@# P% ! "_>@# >pM$@p-wB@ "_> ԗpM@ xDpT "_>@# xD@ pD "_>ԗp-y20 . pMz40 .${ "_>(ԗp-{20 .,p-|20 .4p-}B@ "_>8ԗ "7Д Up-  "_><@#ԗp-  "_>L@#tԗp-  "_>`@#`ԗp-  "_>t@#Lԗp-  "_>@#8ԗp- "_>&ԗp- "_>ԗp- "_>ԗp- "_>ԗp- "_>čԗp- "_>Ѝԗp-@ "_>؍ԗp- "_>ԗpMx rT "_>@#ԗp-xB@ Sp 03_p-V"Nm p-xB@ Sr 03_p-V"NP p- "_>Iԗ "_>>ԗp-p"0- Η4 nm8-` 9=d0 "_c0 ٱnmk ܽ.<=l0=M>b  > b 0 . pM|>bp-!0- . ./ɽ<߸ ٱnm:-k >@#>$b@#>@Tp\b@#s\>lb@#t\>b@#>b@#}w\>b@#ry\>b@#g{\> b@#\|\>Lb@#Qz\>xb@#F>b@#<x\>b@#1\L>b@#%\P>b@#\T>,b@# \X>Xb@#\\>b@#>b@#\>b@#>b@#u\>b@#v\>b@#>@b@#\>lb@#~\>b@#\@>b@#\D>b@#|\H>b@#p>Hb@#f\l>Lb@#Z\`>xb@#N\d>b@#B\h>b@#6>b@#,\p>b@# \t>,b@#>Xb@# \x>\b@#\|>b@#\>b@#>b@#ɽ8߸ ٱnm:-k >Tq\@#r\>0b@#ɽ8߸ P@A!@2@29  + - !0 9 `P!P@20 9@ UbPnm 6bЍ E0 pqTn 1 @Q  !7!81b@J09A` w!x1yApqT 01T,߸1 $Header:fgets.s 12.0$nm X= ( 0 DxP  Dxr 5X   "LT  `2 -1 } b2- X ( X ( 3JĴ $ ,J 8 ,(? r=X -AsM0-r=1=X  r !2 p 0 X=( 0 ( X ( 0- Dxq=@#11=Dxnthu͔%.l>#X4"# D 9 T 4p, X v=ij T 4p, X  !0 +0,4u nЍm 4 03th5#  0`Ъ`6>`0 023$0 ```bФ1 .!0 nthu͔  4v-p  !0 0,v-ij 4u ٱnm thuȾT䳼%X  bp Ȼ ɱ8v<p+ X p v< ɱ8߸n "L, ّn|Œj0X* ( (  ɑD qr1s ` *cdd 1q0 @ml@ ޑC*1Cdd Y0 r?*c |є bЍy k 2X*( X ( 3 "J"& 4X*( 1X*@l@qJKl@&1*cSd s 0 1 X ( ɑDbɑDsډsߘ!!nm X $r=0 !q1=X s 0 -d, X ( 4 4 nl X< @m ,s X  r, 0 2 1 3 ( b4 ّni j0k  ɑ@A +@ a. 0Д 2Фc 0b@i bɑ@r w ɑ@@ a0B< 0ޛ3۔  ( @ r( ( 12bɑ@ߘ!١nj ȱ̾H!<JAmb< N:bd "c bd "c  >"A bЍd "cЍ !ɡXߨfpabort: ...exiting. n!1 A$Q(!o 1 A$Q(X/ %(`213$b0cdr!|X/(230$b0cdWX  ,AA ١mXSE (213pqs@ ;! ެ  ެ-=M]bLN1 *-=M]XSUps㉏qÔ@ j0b0L1 cXSU(S2301aɭߨ-$Header:fputs.s 12.0$p>PTU0% pYPTU0% nl p=0 b 4p=0 4 @@B@1 =!b0@@B@1 @=b0鏤 pPTU0% nd0t3@  4!4 p%PTU0% 鏖c ( $Header:lmul.s 12.0$\pPTU0% ١nk t-x 2j ݭx B 墲 b6bɡ<-x ```| (Ƞ|` ! ɡ<` `m p- b p-  ɡ1?AQ@=!>1?AQ@B(1!0u1y , )p)! 0)q) !1)X "s  q) q)! 1) cىUȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#cW@+cO@+e E  ɤs +p)! 0)q)0!1)X "s  q)0q)! 1) 0cs@+ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cىȡE ; 9p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c;@+c3@+e E  s &p  0 q).!1)X)"  s  q).q)! 1) .cxA *p)! 0)q)0!1)X "s  q)0q)! 1) 0cxA@ 3p)! 0)q9@+#1%19X "s q9@+#* q9119q9@#c@+c@+ y , )p)! 0)q) !1)X "s  q) q)! 1) cuىȡ/10#}!b~00s10  p .aL p .aL. aL!4(m ҝb1| u2 `;bc3!Start brToBr ---------- brToBr found:brToBr changed: to:|x0ɀ@*Start brToNext ---------- brToNext found:8Start brAround ---------- brAround: label is:|$t-Start deadCode ---------- Ignored: deadCode: NStart unwind ---------- unwind looking at: label found ldef = %04x; lab = %04x unwind scanning back over: Ignore not UCBRANCH: not UCBRANCH: it branches to:Unwind block starts at: and ends before: Which is %d important lines to be moved. 8Deleted: $Header:jumpopt.c 12.0$p. Block Label Refs Line ldef lchain %4x %11s %4d %4d %4x %4x N@|@jLabel not found in table: %sDeleteLabel: %s refcount now %d label block for %s not found in LabUnRef Unhooked from label chain: Added to label chain: :BrFwd is TRUE:BrFwd is FALSE:BrBkwd is TRUE:BrBkwd is FALSE:$Header:lab.c 12.0$ x           0 @ P ` p t Start LoadOpt pass %d--- See if LOAD: N  x , D$" tryOmitLoad didn't omit a load `x#&tryOmitLoad looking at: %s tryOmitLoad omited a load   -.D %LLooking at r%d: %s Found value in register %d $&B deleteInstr omitted: '&'regChanged r%uNh $(tregStored from %d: %s  `     *u:0xffSet IOaddress for register %d. regLoaded into %d: %s ɀ,delRegRefsTo: %s Marked syn of reg %d as empty; contained %s   .delMemRefsTo: %s Marked synonym of %d as empty; contained %s  2indirectBase found a base register of: %d 4@4 Reg %d copied from RegVar %d with value %s Reg %d copied from reg %d with value %s %s plus synonyms7Given reg %d, invalidate fregs from: to:At line %d fregs is 0x%04x and is changed to 0x%04x 8Skipping post inc/dec. :flushRegs %d %d ; <=l x:()=r0r2r3r4r5r6r7r8r9r10r11r12r13r14r15?l@@T@@AAlA# Added: r%d: '%s'; r0-r15: (empty) ...Added:p0$Header:loadopt.c 12.0$[RegVar(r0)][RegVar(r1)][RegVar(r2)][RegVar(r3)][RegVar(r4)][RegVar(r5)][RegVar(r6)][RegVar(r7)][RegVar(r8)][RegVar(r9)][RegVar(r10)][RegVar(r11)][RegVar(r12)][RegVar(r13)][RegVar(r14)][RegVar(r15)]TDT D Start MrOpt pass %d --- MR found: N   @E-  , < FdropChange looking at: GtformGet: HNtformMod: DJh%s+%s%s-%stryMergeWithGet looking ahead at:in TryMergeWithGet()Nhɀ@.Jlx0LregValueUsed looking at: MLooking ahead at: OReg %d is operand %d PQrAbout to replace:Just modified: Sb deleteMR omitted: $Header:mropt.c 12.0$pS@T^Up-U~ɀ0Ur%dr%dGenerated instruction:|NhVr%dGenerated instruction:W%dGenerated instruction:XGenerated instruction:YZ Z@Z[>[v Statement node -- %s NULL node LineNo: %d FreeRegs: %4x Type: %2x Type Ext. %4x Ld/St: %4x Mods: %2x Mod by: %2x Labels: %s Opcode: %s Operand 1: %s Operand 2a: %s Operand 2b: %s Operand 3: %s Rest: %s *** node->last->next DOES NOT point back to node N]*%s NULL node [%d] %c %s %s %s,%s(%s),%s %s *** node->last->next DOES NOT point back to node ^Data list:Text list:_%s Node at: %6x last=%6x next=%6x $Header:nodes.c 12.0$%H%d%l%t%|%%%%%%%%%%%%%%%%%%%%&&&& &&&&& &$&(&,&0G&4RG&8R&<R&@ &D&L&T "&\ 2&d&l&t `&xD&|T& p& `&D&T& p&&&&`&&& & & && & & & & &&' '' f'h'a' c'( ','0'4 `'8 `'<f'@c'D@c'Hh'La'PPa'Xh'\ i'`f'hh'pa'xc'''pf''''''''''B'B'B'''''((R( R(R(R($R(,(0R(4R(8R(<(Df (Hh (Pc (X(\(` (h (pG(t (| ( ((R(R( ( ( (R(R( (( ( (( ( (( ( (( ( )f )c )c )h ) h )) )()0)8)@0f )D)H)PQ)T)X)\)d )l)pR )tR)xR)| )`)(`)(`)"`)`)`)$`) `)`))`)#`)`)!`)-`)&`)`)+`),`)%`)`)*`))2p)?p)?p)9p)6p*4p*;p* 7p*3p*@p* :p*(5p*08p*8Dp*@=p*H1p*PBp*XCp*\<p*`0p*h.p*lAp*p/*xID*VD*VD*PD*MD*KD*RD*ND*JD*WD*QD*LD*OD*[D*TD*HD*YD*ZD*SD*ED*GD+XD+F+`T+mT+ mT+(gT+0dT+8bT+@iT+HeT+PaT+XnT+`hT+hcT+pfT+xrT+kT+_T+pT+qT+jT+\T+^T+oT+]+s +w`+`+`+~`+{`+y`+`+|`+x`+`+`+z`+}`,`,`,v`,`,`,`,u`, `,$' ,,( ,4),<v,Dw,L*,T+,\x,d,,l-,t.,|/,0,1,2,;,<,4,5,?,6,7,8,9,:,=,>,@-A-B-C-D-E- F-$3-,l-4mA-@nA-Lo-XpA-dqA-prA-sA-tA-uA -$Header:opcodtab.c 12.0$balaxbalixbalrxbrxbxbalabalibalrbrbllimr.coptpdefpend.copt freg.copt label.text.dataeqnetbtnbc0nc0lhehleono aabsaeaeiaiailaisbalabalaxbalibalixbalrbalrxbbbbrbbrxbbxbnbbnbrbnbrxbnbxccalcal16cascauca16cicilcisclcliclilclrblclrbuclrsbclzddecextsgetgethgethagetcincioriowjbjnbllclcslhlhalhaslhslisloadloadhloadhaloadclmlpslsmmc03mc13mc23mc30mc31mc32mc33mfsmftbmftbilmftbiumrmtsmttbmttbilmttbiunninilonilzniuoniuzooioiloiuonecputputhputcssarsarisari16sesetblsetbusetsbsfsfishlshlashrshrasisilsisslslisli16slpslpislpi16srsrisri16srpsrpisrpi16ststcstcssthsthsstmstorestorehstorehastorecstssvctgtetitlttshtwocwaitxxixilxiubbc0bebeqbhbheblblebmbnc0bnebnhbnlbnmbnobnpbntbbnzbobpbtbbznopbc0xbexbeqxbhxbhexblxblexbmxbnc0xbnexbnhxbnlxbnmxbnoxbnpxbntbxbnzxboxbpxbtbxbxbzxnopxbc0rberbeqrbhrbherblrblerbmrbnc0rbnerbnhrbnlrbnmrbnorbnprbntbrbnzrborbprbrbtbrbzrnoprbc0rxberxbeqrxbhrxbherxblrxblerxbmrxbnc0rxbnerxbnhrxbnlrxbnmrxbnorxbnprxbntbrxbnzrxborxbprxbrxbtbrxbzrxnoprxjjc0jejeqjhjhejljlejmjnc0jnejnhjnljnmjnojnpjntbjnzjojpjtbjz.long.short.byte.ascii.fill.text.data.ltorg.globl.comm.align.float.double.using.space.file.line.org.set.stabs.lcomm..entry.drop.direct.stab.staba.stabt.eos.function.bf.ef.bb.eb.xaddr.copt.copt debug.copt pdef.copt pend.copt freg.copt sym.copt oopsfreg.copt fp.copt temp.copt label.d_--._-`$aabX@ @ cTConsEval looked at: %s and returned %ld which is %x in hex. N$Header:opeval.c 12.0$// /$/X/l///////00,0Pehcopt: Invalid error message number: %d copt: %s %s M8e.Jl$Header:opterror.c 12.0$Invalid delimiter found scanning source statement:Ran out of storageToo many file names given:Operand syntax error:Error opening fileInvalid option:Unknown opcode:Instruction has wrong formNo argument for -I option.No argument for -O option.Unexpected end of input file while1f0(004<Jl <15 8iXj,j ******** Register usage in this function: R%d is %s. a register variablea scratch registerspecialunused First register saved: %d First register variable: %d Last register variable: %d I,ɀ.N$Header:optim.c 12.0$20l Start postopt ---------------- N1m2Trying to delay:Looking at:Moved after: -$2$o x0$Header:postopt.c 12.0$3oAH22pApAxpprocessing a function definition33.3320XA`q2reading a data blockqr$s,# .coptT2-3 3u2v".copt 3,wRdD$.z334444 44444 4$4(4,4044ɀ.@|3@~A(6pj04J333 33*-$Header:readpgm.c 12.0$12345678910111213141505 Start reform ---------------- 0000.long form invalid in reform().second label not the last on .long.Next: Prevents deletion of: copt: *** Reform does not recognize this form of branch with execute. Invalid branch with execute in reform. Start reform pass 2 ---------------- N$-5.555@-8.Nɀx0-BDeleted: $Header:reform.c 12.0$7@ Start AddRegVar --- _funct with no _efunct!!! firstReg: %d lastReg: %d nregs: %d N66678766677466-66BALRX optimization -f single instruction reformatting -j branch (Jump) optimization -l Load optimization -m MR optimization -p Post increment/decrement optimizations -r Register variable optimization -s Show all modifications in outfile as comments -t Trace mode; comments illustrate processing done -d Debug mode -z? ? is one of the optimization letters above Debug mode will be turned on (lowercase) or off (uppercase) during that optimization $Header:ropt.c 12.0$A, (0x________ bytes allocated)(0x%lx bytes allocated) Subpool %ld of %d bytes allocated. MNh.N(9999999999-byte request too large)(%d-byte request too large)@h$Header:storage.c 12.0$I .set r%d,%d M8H .text A BHL~%c %c %s%c %s, %s %s,%s,(%s),%s%s %c <<=== NEW %c <<=== MOVED %c <<=== CHANGED %c <<=== DELETED %c <<=== RELOC'd (reform) (jump) (post) (load1) (regvar) (mr) (load2) (balr) %c [%d] FregsUregs dangerous!!! BBN %s: none! r%d %c ********************** %c Summary of changes --- %c Number of functions processed: %ld %c Number of instructions before: %ld %c Number of instructions after: %ld %c %c Balr instructions: %ld %c Balrs changed to Balrx: %ld %c Loads as subject instruction: %ld %c Stores as subject instruction: %ld %c 2-byte instruction as subject: %ld %c %c Branch instructions: %ld %c Branches deleted: %ld %c Unreferenced labels deleted: %ld %c Jumps to jumps unraveled: %ld %c Jumps to jumps labels changed: %ld %c Blocks of code moved (unwind()): %ld %c %c Post inc/dec ops delayed: %ld %c %c Load instructions: %ld %c Store instructions: %ld %c %c Loads deleted: %ld %c Load immediates deleted: %ld %c MRs deleted: %ld %c MRs added to replace loads: %ld %c Post inc/dec skipped: %ld %c Redundant stores: %ld %c %c Number of new register varibles: %ld %c Number of MRs generated: %ld %c Loads dropped: %ld %c Stores dropped: %ld %c %c MR Instructions (in MrOpt()): %ld %c MRs deleted by MrOpt(): %ld %c %c Do nothing Instructions deleted: %ld %c Dead code blocks deleted: %ld %c Dead instructions deleted: %ld %c %c Total storage allocated (bytes): %ld %c Number of subpools allocated: %ld $Header:writepgm.c 12.0$I0 $Header:atoi.c 12.0$JP ((((( AAAAAABBBBBB $Header:ctype_.c 12.0$JxLtN$Header:exit.c 12.0$JXM\MLN4$Header:filbuf.c 12.0$L|thLdNM`Lp$Header:findiop.c 12.0$L0NM\MM&LNM$Header:flsbuf.c 12.0$LLXN M$Header:fopen.c 12.0$M ɀNJl$Header:fpabort.c 12.0$MDdOL$Header:fprintf.c 12.0$$@Mt\Mp$Header:getenv.c 12.0$MP$Header:isatty.c 12.0$@MPNMlØMMMlĄ$Header:malloc.c 12.0$NO$Header:printf.c 12.0$HNDdM$Header:setbuf.c 12.0$NtOL$Header:sprintf.c 12.0$N$Header:strncpy.c 12.0$,u u t̜NMM$Header:calloc.c 12.0$8O TLPDϘNOlOdP$Header:doprnt.c 12.0$O d'B@,OpV0INFNAN()0PTdQQRQ\O$Header:ecvt.c 12.0$`\$@`\#@PPLl$Header:fwrite.c 12.0$$Header:gcvt.c 12.0$Odɀ0LPhQP$Header:l10.c 12.0$PP$Header:mul211.c 12.0$P$$Header:mulu211.c 12.0$Q$Header:mulu32.c 12.0$Qd*A7\(;w5^k(PR$Header:rad2a.c 12.0$Q$Header:shlun.c 12.0$R *J$5A7GI.N&1\ J0 #) "q,D*X)4S%- K~b.Ŵ"\hD p-,[@%K:7l8. 6 R"\0D/%dp_/ ^%}!^KBx. "\ e$+:A $uyl Pc2@$Header:spdiv7.c 12.0$TlBFO}aԀ@P$ k(C@ԥ* _1ɿ. k:v@#xŬb&zx2nh? WYQa@oˏ' :KPf-/×7c}so 7{ $Q$Header:tentothe.c 12.0$#]loɞ$ #y#y#y1,11,21,31,41,51 * * * * root (echo -n ' '; date; echo -n ) >/dev/console 0,15,30,45 * * * * root /usr/lib/atrun 00 1 * * * daemon /usr/new/lib/news/daily 0 0 * * * uucp /usr/local/lib/uucp.daily 7 5,12,18 * * * uucp /usr/local/lib/uucp.6hours 0 2 * * * root /bin/sh /usr/adm/daily 2>&1 | mail root 30 3 * * 6 root /bin/sh /usr/adm/weekly 2>&1 | mail root 30 3 * * 7 nobody (echo weekly find update;/usr/lib/find/updatedb 2>&1) | mail root 30 5 1 * * root /bin/sh /usr/adm/monthly 2>&1 | mail root #]lo$ 6#K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)0.t 6.6 (Berkeley) 5/13/86 .\" .if n .ND .TL Berkeley Software Architecture Manual .br 4.3BSD Edition .AU William Joy, Robert Fabry, .AU Samuel Leffler, M. Kirk McKusick, .AU Michael Karels .AI Computer Systems Research Group Computer Science Division Department of Electrical Engineering and Computer Science University of California, Berkeley Berkeley, CA 94720 .EH 'PS1:6-%''4.3BSD Architecture Manual' .OH '4.3BSD Architecture Manual''PS1:6-%' .AB .FS * UNIX is a trademark of Bell Laboratories. .FE This document summarizes the facilities provided by the 4.3BSD version of the UNIX\|* operating system. It does not attempt to act as a tutorial for use of the system nor does it attempt to explain or justify the design of the system facilities. It gives neither motivation nor implementation details, in favor of brevity. .PP The first section describes the basic kernel functions provided to a UNIX process: process naming and protection, memory management, software interrupts, object references (descriptors), time and statistics functions, and resource controls. These facilities, as well as facilities for bootstrap, shutdown and process accounting, are provided solely by the kernel. .PP The second section describes the standard system abstractions for files and file systems, communication, terminal handling, and process control and debugging. These facilities are implemented by the operating system or by network server processes. .AE .LP .bp .ft B .br .sv 2 .ce TABLE OF CONTENTS .ft R .LP .sp 1 .nf .B "Introduction." .LP .if t .sp .5v .nf .B "0. Notation and types" .LP .if t .sp .5v .nf .B "1. Kernel primitives" .LP .if t .sp .5v .nf .nf \fB1.1. Processes and protection\fP 1.1.1. Host and process identifiers 1.1.2. Process creation and termination 1.1.3. User and group ids 1.1.4. Process groups .LP .nf \fB1.2. Memory management\fP 1.2.1. Text, data and stack 1.2.2. Mapping pages 1.2.3. Page protection control 1.2.4. Giving and getting advice 1.2.5. Protection primitives .LP .if t .sp .5v .nf \fB1.3. Signals\fP 1.3.1. Overview 1.3.2. Signal types 1.3.3. Signal handlers 1.3.4. Sending signals 1.3.5. Protecting critical sections 1.3.6. Signal stacks .LP .if t .sp .5v .nf \fB1.4. Timing and statistics\fP 1.4.1. Real time 1.4.2. Interval time .LP .if t .sp .5v .nf \fB1.5. Descriptors\fP 1.5.1. The reference table 1.5.2. Descriptor properties 1.5.3. Managing descriptor references 1.5.4. Multiplexing requests 1.5.5. Descriptor wrapping .LP .if t .sp .5v .nf \fB1.6. Resource controls\fP 1.6.1. Process priorities 1.6.2. Resource utilization 1.6.3. Resource limits .LP .if t .sp .5v .nf \fB1.7. System operation support\fP 1.7.1. Bootstrap operations 1.7.2. Shutdown operations 1.7.3. Accounting .bp .LP .if t .sp .5v .sp 1 .nf \fB2. System facilities\fP .LP .if t .sp .5v .nf \fB2.1. Generic operations\fP 2.1.1. Read and write 2.1.2. Input/output control 2.1.3. Non-blocking and asynchronous operations .LP .if t .sp .5v .nf \fB2.2. File system\fP 2.2.1 Overview 2.2.2. Naming 2.2.3. Creation and removal 2.2.3.1. Directory creation and removal 2.2.3.2. File creation 2.2.3.3. Creating references to devices 2.2.3.4. Portal creation 2.2.3.6. File, device, and portal removal 2.2.4. Reading and modifying file attributes 2.2.5. Links and renaming 2.2.6. Extension and truncation 2.2.7. Checking accessibility 2.2.8. Locking 2.2.9. Disc quotas .LP .if t .sp .5v .nf \fB2.3. Interprocess communication\fP 2.3.1. Interprocess communication primitives 2.3.1.1.\0 Communication domains 2.3.1.2.\0 Socket types and protocols 2.3.1.3.\0 Socket creation, naming and service establishment 2.3.1.4.\0 Accepting connections 2.3.1.5.\0 Making connections 2.3.1.6.\0 Sending and receiving data 2.3.1.7.\0 Scatter/gather and exchanging access rights 2.3.1.8.\0 Using read and write with sockets 2.3.1.9.\0 Shutting down halves of full-duplex connections 2.3.1.10.\0 Socket and protocol options 2.3.2. UNIX domain 2.3.2.1. Types of sockets 2.3.2.2. Naming 2.3.2.3. Access rights transmission 2.3.3. INTERNET domain 2.3.3.1. Socket types and protocols 2.3.3.2. Socket naming 2.3.3.3. Access rights transmission 2.3.3.4. Raw access .LP .if t .sp .5v .nf \fB2.4. Terminals and devices\fP 2.4.1. Terminals 2.4.1.1. Terminal input 2.4.1.1.1 Input modes 2.4.1.1.2 Interrupt characters 2.4.1.1.3 Line editing 2.4.1.2. Terminal output 2.4.1.3. Terminal control operations 2.4.1.4. Terminal hardware support 2.4.2. Structured devices 2.4.3. Unstructured devices .LP .if t .sp .5v .nf \fB2.5. Process control and debugging\fP .LP .if t .sp .5v .nf \fBI. Summary of facilities\fP .LP .de sh .ds RH \\$1 .bp .NH \\*(ss \s+2\\$1\s0 .PP .PP .. .bp .ds ss 1 .de _d .if t .ta .6i 2.1i 2.6i .\" 2.94 went to 2.6, 3.64 to 3.30 .if n .ta .84i 2.6i 3.30i .. .de _f .if t .ta .5i 1.25i 2.5i 3.5i .\" 3.5i went to 3.8i .if n .ta .7i 1.75i 3.8i 4.8i .. .nr H1 -1 .sh "Notation and types .PP The notation used to describe system calls is a variant of a C language call, consisting of a prototype call followed by declaration of parameters and results. An additional keyword \fBresult\fP, not part of the normal C language, is used to indicate which of the declared entities receive results. As an example, consider the \fIread\fP call, as described in section 2.1: .DS cc = read(fd, buf, nbytes); result int cc; int fd; result char *buf; int nbytes; .DE The first line shows how the \fIread\fP routine is called, with three parameters. As shown on the second line \fIcc\fP is an integer and \fIread\fP also returns information in the parameter \fIbuf\fP. .PP Description of all error conditions arising from each system call is not provided here; they appear in the programmer's manual. In particular, when accessed from the C language, many calls return a characteristic \-1 value when an error occurs, returning the error code in the global variable \fIerrno\fP. Other languages may present errors in different ways. .PP A number of system standard types are defined in the include file .I and used in the specifications here and in many C programs. These include \fBcaddr_t\fP giving a memory address (typically as a character pointer), \fBoff_t\fP giving a file offset (typically as a long integer), and a set of unsigned types \fBu_char\fP, \fBu_short\fP, \fBu_int\fP and \fBu_long\fP, shorthand names for \fBunsigned char\fP, \fBunsigned short\fP, etc. #]loׁ$ p#K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.0.t 6.2 (Berkeley) 5/12/86 .\" .ds ss 1 .sh "Kernel primitives .PP The facilities available to a UNIX user process are logically divided into two parts: kernel facilities directly implemented by UNIX code running in the operating system, and system facilities implemented either by the system, or in cooperation with a \fIserver process\fP. These kernel facilities are described in this section 1. .PP The facilities implemented in the kernel are those which define the \fIUNIX virtual machine\fP in which each process runs. Like many real machines, this virtual machine has memory management hardware, an interrupt facility, timers and counters. The UNIX virtual machine also allows access to files and other objects through a set of \fIdescriptors\fP. Each descriptor resembles a device controller, and supports a set of operations. Like devices on real machines, some of which are internal to the machine and some of which are external, parts of the descriptor machinery are built-in to the operating system, while other parts are often implemented in server processes on other machines. The facilities provided through the descriptor machinery are described in section 2. .ds ss 2 #]lo溁$ t#K#K# .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.1.t 6.2 (Berkeley) 5/12/86 .\" .sh "Processes and protection .NH 3 Host and process identifiers .PP Each UNIX host has associated with it a 32-bit host id, and a host name of up to 64 characters (as defined by MAXHOSTNAMELEN in \fI\fP). These are set (by a privileged user) and returned by the calls: .DS sethostid(hostid) long hostid; hostid = gethostid(); result long hostid; sethostname(name, len) char *name; int len; len = gethostname(buf, buflen) result int len; result char *buf; int buflen; .DE On each host runs a set of \fIprocesses\fP. Each process is largely independent of other processes, having its own protection domain, address space, timers, and an independent set of references to system or user implemented objects. .PP Each process in a host is named by an integer called the \fIprocess id\fP. This number is in the range 1-30000 and is returned by the \fIgetpid\fP routine: .DS pid = getpid(); result int pid; .DE On each UNIX host this identifier is guaranteed to be unique; in a multi-host environment, the (hostid, process id) pairs are guaranteed unique. .NH 3 Process creation and termination .PP A new process is created by making a logical duplicate of an existing process: .DS pid = fork(); result int pid; .DE The \fIfork\fP call returns twice, once in the parent process, where \fIpid\fP is the process identifier of the child, and once in the child process where \fIpid\fP is 0. The parent-child relationship induces a hierarchical structure on the set of processes in the system. .PP A process may terminate by executing an \fIexit\fP call: .DS exit(status) int status; .DE returning 8 bits of exit status to its parent. .PP When a child process exits or terminates abnormally, the parent process receives information about any event which caused termination of the child process. A second call provides a non-blocking interface and may also be used to retrieve information about resources consumed by the process during its lifetime. .DS #include pid = wait(astatus); result int pid; result union wait *astatus; pid = wait3(astatus, options, arusage); result int pid; result union waitstatus *astatus; int options; result struct rusage *arusage; .DE .PP A process can overlay itself with the memory image of another process, passing the newly created process a set of parameters, using the call: .DS execve(name, argv, envp) char *name, **argv, **envp; .DE The specified \fIname\fP must be a file which is in a format recognized by the system, either a binary executable file or a file which causes the execution of a specified interpreter program to process its contents. .NH 3 User and group ids .PP Each process in the system has associated with it two user-id's: a \fIreal user id\fP and a \fIeffective user id\fP, both 16 bit unsigned integers (type \fBuid_t\fP). Each process has an \fIreal accounting group id\fP and an \fIeffective accounting group id\fP and a set of \fIaccess group id's\fP. The group id's are 16 bit unsigned integers (type \fBgid_t\fP). Each process may be in several different access groups, with the maximum concurrent number of access groups a system compilation parameter, the constant NGROUPS in the file \fI\fP, guaranteed to be at least 8. .PP The real and effective user ids associated with a process are returned by: .DS ruid = getuid(); result uid_t ruid; euid = geteuid(); result uid_t euid; .DE the real and effective accounting group ids by: .DS rgid = getgid(); result gid_t rgid; egid = getegid(); result gid_t egid; .DE The access group id set is returned by a \fIgetgroups\fP call*: .DS ngroups = getgroups(gidsetsize, gidset); result int ngroups; int gidsetsize; result int gidset[gidsetsize]; .DE .FS * The type of the gidset array in getgroups and setgroups remains integer for compatibility with 4.2BSD. It may change to \fBgid_t\fP in future releases. .FE .PP The user and group id's are assigned at login time using the \fIsetreuid\fP, \fIsetregid\fP, and \fIsetgroups\fP calls: .DS setreuid(ruid, euid); int ruid, euid; setregid(rgid, egid); int rgid, egid; setgroups(gidsetsize, gidset) int gidsetsize; int gidset[gidsetsize]; .DE The \fIsetreuid\fP call sets both the real and effective user-id's, while the \fIsetregid\fP call sets both the real and effective accounting group id's. Unless the caller is the super-user, \fIruid\fP must be equal to either the current real or effective user-id, and \fIrgid\fP equal to either the current real or effective accounting group id. The \fIsetgroups\fP call is restricted to the super-user. .NH 3 Process groups .PP Each process in the system is also normally associated with a \fIprocess group\fP. The group of processes in a process group is sometimes referred to as a \fIjob\fP and manipulated by high-level system software (such as the shell). The current process group of a process is returned by the \fIgetpgrp\fP call: .DS pgrp = getpgrp(pid); result int pgrp; int pid; .DE When a process is in a specific process group it may receive software interrupts affecting the group, causing the group to suspend or resume execution or to be interrupted or terminated. In particular, a system terminal has a process group and only processes which are in the process group of the terminal may read from the terminal, allowing arbitration of terminals among several different jobs. .PP The process group associated with a process may be changed by the \fIsetpgrp\fP call: .DS setpgrp(pid, pgrp); int pid, pgrp; .DE Newly created processes are assigned process id's distinct from all processes and process groups, and the same process group as their parent. A normal (unprivileged) process may set its process group equal to its process id. A privileged process may set the process group of any process to any value. #]lo"$ !#K#K# .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.2.t 6.8 (Berkeley) 5/14/86 .\" .sh "Memory management\(dg .NH 3 Text, data and stack .PP .FS \(dg This section represents the interface planned for later releases of the system. Of the calls described in this section, only \fIsbrk\fP and \fIgetpagesize\fP are included in 4.3BSD. .FE Each process begins execution with three logical areas of memory called text, data and stack. The text area is read-only and shared, while the data and stack areas are private to the process. Both the data and stack areas may be extended and contracted on program request. The call .DS addr = sbrk(incr); result caddr_t addr; int incr; .DE changes the size of the data area by \fIincr\fP bytes and returns the new end of the data area, while .DS addr = sstk(incr); result caddr_t addr; int incr; .DE changes the size of the stack area. The stack area is also automatically extended as needed. On the VAX the text and data areas are adjacent in the P0 region, while the stack section is in the P1 region, and grows downward. .NH 3 Mapping pages .PP The system supports sharing of data between processes by allowing pages to be mapped into memory. These mapped pages may be \fIshared\fP with other processes or \fIprivate\fP to the process. Protection and sharing options are defined in \fI\fP as: .DS .ta \w'#define\ \ 'u +\w'MAP_HASSEMPHORE\ \ 'u +\w'0x0080\ \ 'u /* protections are chosen from these bits, or-ed together */ #define PROT_READ 0x04 /* pages can be read */ #define PROT_WRITE 0x02 /* pages can be written */ #define PROT_EXEC 0x01 /* pages can be executed */ /* flags contain mapping type, sharing type and options */ /* mapping type; choose one */ #define MAP_FILE 0x0001 /* mapped from a file or device */ #define MAP_ANON 0x0002 /* allocated from memory, swap space */ #define MAP_TYPE 0x000f /* mask for type field */ /* sharing types; choose one */ #define MAP_SHARED 0x0010 /* share changes */ #define MAP_PRIVATE 0x0000 /* changes are private */ /* other flags */ #define MAP_FIXED 0x0020 /* map addr must be exactly as requested */ #define MAP_NOEXTEND 0x0040 /* for MAP_FILE, don't change file size */ #define MAP_HASSEMPHORE 0x0080 /* region may contain semaphores */ #define MAP_INHERIT 0x0100 /* region is retained after exec */ .DE The cpu-dependent size of a page is returned by the \fIgetpagesize\fP system call: .DS pagesize = getpagesize(); result int pagesize; .DE .PP The call: .DS maddr = mmap(addr, len, prot, flags, fd, pos); result caddr_t maddr; caddr_t addr; int *len, prot, flags, fd; off_t pos; .DE causes the pages starting at \fIaddr\fP and continuing for at most \fIlen\fP bytes to be mapped from the object represented by descriptor \fIfd\fP, starting at byte offset \fIpos\fP. The starting address of the region is returned; for the convenience of the system, it may be different than that supplied unless the MAP_FIXED flag is given, in which case the exact address will be used or the call will fail. The actual amount mapped is returned in \fIlen\fP. The \fIaddr\fP, \fIlen\fP, and \fIpos\fP parameters must all be multiples of the pagesize. The parameter \fIprot\fP specifies the accessibility of the mapped pages. The parameter \fIflags\fP specifies the type of object to be mapped, mapping options, and whether modifications made to this mapped copy of the page are to be kept \fIprivate\fP, or are to be \fIshared\fP with other references. Possible types include MAP_FILE, mapping a regular file or character-special device memory, and MAP_ANON, which maps memory not associated with any specific file. The file descriptor used for creating MAP_ANON regions is used only for naming, and may be given as \-1 if no name is associated with the region\(dd. .FS \(dd The current design does not allow a process to specify the location of swap space. In the future we may define an additional mapping type, MAP_SWAP, in which the file descriptor argument specifies a file or device to which swapping should be done. .FE The MAP_NOEXTEND flag prevents the mapped file from being extended despite rounding due to the granularity of mapping. The MAP_HASSEMAPHORE flag allows special handling for regions that may contain semaphores. The MAP_INHERIT flag allows a region to be inherited after an \fIexec\fP. .PP A facility is provided to synchronize a mapped region with the file it maps; the call .DS msync(addr, len); caddr_t addr; int len; .DE writes any modified pages back to the filesystem and updates the file modification time. If \fIlen\fP is 0, all modified pages within the region containing \fIaddr\fP will be flushed; if \fIlen\fP is non-zero, only the pages containing \fIaddr\fP and \fIlen\fP succeeding locations will be examined. Any required invalidation of memory caches will also take place at this time. Filesystem operations on a file which is mapped for shared modifications are unpredictable except after an \fImsync\fP. .PP A mapping can be removed by the call .DS munmap(addr); caddr_t addr; .DE This call deletes the region containing the address given, and causes further references to addresses within the region to generate invalid memory references. .NH 3 Page protection control .PP A process can control the protection of pages using the call .DS mprotect(addr, len, prot); caddr_t addr; int len, prot; .DE This call changes the specified pages to have protection \fIprot\fP\|. Not all implementations will guarantee protection on a page basis; the granularity of protection changes may be as large as an entire region. .NH 3 Giving and getting advice .PP A process that has knowledge of its memory behavior may use the \fImadvise\fP call: .DS madvise(addr, len, behav); caddr_t addr; int len, behav; .DE \fIBehav\fP describes expected behavior, as given in \fI\fP: .DS .ta \w'#define\ \ 'u +\w'MADV_SEQUENTIAL\ \ 'u +\w'00\ \ \ \ 'u #define MADV_NORMAL 0 /* no further special treatment */ #define MADV_RANDOM 1 /* expect random page references */ #define MADV_SEQUENTIAL 2 /* expect sequential references */ #define MADV_WILLNEED 3 /* will need these pages */ #define MADV_DONTNEED 4 /* don't need these pages */ #define MADV_SPACEAVAIL 5 /* insure that resources are reserved */ .DE Finally, a process may obtain information about whether pages are core resident by using the call .DS mincore(addr, len, vec) caddr_t addr; int len; result char *vec; .DE Here the current core residency of the pages is returned in the character array \fIvec\fP, with a value of 1 meaning that the page is in-core. .NH 3 Synchronization primitives .PP Primitives are provided for synchronization using semaphores in shared memory. Semaphores must lie within a MAP_SHARED region with at least modes PROT_READ and PROT_WRITE. The MAP_HASSEMAPHORE flag must have been specified when the region was created. To acquire a lock a process calls: .DS value = mset(sem, wait) result int value; semaphore *sem; int wait; .DE \fIMset\fP indivisibly tests and sets the semaphore \fIsem\fP. If the the previous value is zero, the process has acquired the lock and \fImset\fP returns true immediately. Otherwise, if the \fIwait\fP flag is zero, failure is returned. If \fIwait\fP is true and the previous value is non-zero, the ``want'' flag is set and the test-and-set is retried; if the lock is still unavailable \fImset\fP relinquishes the processor until notified that it should retry. .LP To release a lock a process calls: .DS mclear(sem) semaphore *sem; .DE \fIMclear\fP indivisibly tests and clears the semaphore \fIsem\fP. If the ``want'' flag is zero in the previous value, \fImclear\fP returns immediately. If the ``want'' flag is non-zero in the previous value, \fImclear\fP arranges for waiting processes to retry before returning. .PP Two routines provide services analogous to the kernel \fIsleep\fP and \fIwakeup\fP functions interpreted in the domain of shared memory. A process may relinquish the processor by calling \fImsleep\fP: .DS msleep(sem) semaphore *sem; .DE The process will remain in a sleeping state until some other process issues an \fImwakeup\fP for the same semaphore within the region using the call: .DS mwakeup(sem) semaphore *sem; .DE An \fImwakeup\fP may awaken all sleepers on the semaphore, or may awaken only the next sleeper on a queue. #]loB$ "2#K#K#  .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.3.t 6.2 (Berkeley) 5/12/86 .\" .sh "Signals .PP .NH 3 Overview .PP The system defines a set of \fIsignals\fP that may be delivered to a process. Signal delivery resembles the occurrence of a hardware interrupt: the signal is blocked from further occurrence, the current process context is saved, and a new one is built. A process may specify the \fIhandler\fP to which a signal is delivered, or specify that the signal is to be \fIblocked\fP or \fIignored\fP. A process may also specify that a \fIdefault\fP action is to be taken when signals occur. .PP Some signals will cause a process to exit when they are not caught. This may be accompanied by creation of a \fIcore\fP image file, containing the current memory image of the process for use in post-mortem debugging. A process may choose to have signals delivered on a special stack, so that sophisticated software stack manipulations are possible. .PP All signals have the same \fIpriority\fP. If multiple signals are pending simultaneously, the order in which they are delivered to a process is implementation specific. Signal routines execute with the signal that caused their invocation \fIblocked\fP, but other signals may yet occur. Mechanisms are provided whereby critical sections of code may protect themselves against the occurrence of specified signals. .NH 3 Signal types .PP The signals defined by the system fall into one of five classes: hardware conditions, software conditions, input/output notification, process control, or resource control. The set of signals is defined in the file \fI\fP. .PP Hardware signals are derived from exceptional conditions which may occur during execution. Such signals include SIGFPE representing floating point and other arithmetic exceptions, SIGILL for illegal instruction execution, SIGSEGV for addresses outside the currently assigned area of memory, and SIGBUS for accesses that violate memory protection constraints. Other, more cpu-specific hardware signals exist, such as those for the various customer-reserved instructions on the VAX (SIGIOT, SIGEMT, and SIGTRAP). .PP Software signals reflect interrupts generated by user request: SIGINT for the normal interrupt signal; SIGQUIT for the more powerful \fIquit\fP signal, that normally causes a core image to be generated; SIGHUP and SIGTERM that cause graceful process termination, either because a user has ``hung up'', or by user or program request; and SIGKILL, a more powerful termination signal which a process cannot catch or ignore. Programs may define their own asynchronous events using SIGUSR1 and SIGUSR2. Other software signals (SIGALRM, SIGVTALRM, SIGPROF) indicate the expiration of interval timers. .PP A process can request notification via a SIGIO signal when input or output is possible on a descriptor, or when a \fInon-blocking\fP operation completes. A process may request to receive a SIGURG signal when an urgent condition arises. .PP A process may be \fIstopped\fP by a signal sent to it or the members of its process group. The SIGSTOP signal is a powerful stop signal, because it cannot be caught. Other stop signals SIGTSTP, SIGTTIN, and SIGTTOU are used when a user request, input request, or output request respectively is the reason for stopping the process. A SIGCONT signal is sent to a process when it is continued from a stopped state. Processes may receive notification with a SIGCHLD signal when a child process changes state, either by stopping or by terminating. .PP Exceeding resource limits may cause signals to be generated. SIGXCPU occurs when a process nears its CPU time limit and SIGXFSZ warns that the limit on file size creation has been reached. .NH 3 Signal handlers .PP A process has a handler associated with each signal. The handler controls the way the signal is delivered. The call .DS #include ._f struct sigvec { int (*sv_handler)(); int sv_mask; int sv_flags; }; sigvec(signo, sv, osv) int signo; struct sigvec *sv; result struct sigvec *osv; .DE assigns interrupt handler address \fIsv_handler\fP to signal \fIsigno\fP. Each handler address specifies either an interrupt routine for the signal, that the signal is to be ignored, or that a default action (usually process termination) is to occur if the signal occurs. The constants SIG_IGN and SIG_DEF used as values for \fIsv_handler\fP cause ignoring or defaulting of a condition. The \fIsv_mask\fP value specifies the signal mask to be used when the handler is invoked; it implicitly includes the signal which invoked the handler. Signal masks include one bit for each signal; the mask for a signal \fIsigno\fP is provided by the macro \fIsigmask\fP(\fIsigno\fP), from \fI\fP. \fISv_flags\fP specifies whether system calls should be restarted if the signal handler returns and whether the handler should operate on the normal run-time stack or a special signal stack (see below). If \fIosv\fP is non-zero, the previous signal vector is returned. .PP When a signal condition arises for a process, the signal is added to a set of signals pending for the process. If the signal is not currently \fIblocked\fP by the process then it will be delivered. The process of signal delivery adds the signal to be delivered and those signals specified in the associated signal handler's \fIsv_mask\fP to a set of those \fImasked\fP for the process, saves the current process context, and places the process in the context of the signal handling routine. The call is arranged so that if the signal handling routine exits normally the signal mask will be restored and the process will resume execution in the original context. If the process wishes to resume in a different context, then it must arrange to restore the signal mask itself. .PP The mask of \fIblocked\fP signals is independent of handlers for signals. It delays signals from being delivered much as a raised hardware interrupt priority level delays hardware interrupts. Preventing an interrupt from occurring by changing the handler is analogous to disabling a device from further interrupts. .PP The signal handling routine \fIsv_handler\fP is called by a C call of the form .DS (*sv_handler)(signo, code, scp); int signo; long code; struct sigcontext *scp; .DE The \fIsigno\fP gives the number of the signal that occurred, and the \fIcode\fP, a word of information supplied by the hardware. The \fIscp\fP parameter is a pointer to a machine-dependent structure containing the information for restoring the context before the signal. .NH 3 Sending signals .PP A process can send a signal to another process or group of processes with the calls: .DS kill(pid, signo) int pid, signo; killpgrp(pgrp, signo) int pgrp, signo; .DE Unless the process sending the signal is privileged, it must have the same effective user id as the process receiving the signal. .PP Signals are also sent implicitly from a terminal device to the process group associated with the terminal when certain input characters are typed. .NH 3 Protecting critical sections .PP To block a section of code against one or more signals, a \fIsigblock\fP call may be used to add a set of signals to the existing mask, returning the old mask: .DS oldmask = sigblock(mask); result long oldmask; long mask; .DE The old mask can then be restored later with \fIsigsetmask\fP\|, .DS oldmask = sigsetmask(mask); result long oldmask; long mask; .DE The \fIsigblock\fP call can be used to read the current mask by specifying an empty \fImask\fP\|. .PP It is possible to check conditions with some signals blocked, and then to pause waiting for a signal and restoring the mask, by using: .DS sigpause(mask); long mask; .DE .NH 3 Signal stacks .PP Applications that maintain complex or fixed size stacks can use the call .DS ._f struct sigstack { caddr_t ss_sp; int ss_onstack; }; sigstack(ss, oss) struct sigstack *ss; result struct sigstack *oss; .DE to provide the system with a stack based at \fIss_sp\fP for delivery of signals. The value \fIss_onstack\fP indicates whether the process is currently on the signal stack, a notion maintained in software by the system. .PP When a signal is to be delivered, the system checks whether the process is on a signal stack. If not, then the process is switched to the signal stack for delivery, with the return from the signal arranged to restore the previous stack. .PP If the process wishes to take a non-local exit from the signal routine, or run code from the signal stack that uses a different stack, a \fIsigstack\fP call should be used to reset the signal stack. #]lo$ s#K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.4.t 6.2 (Berkeley) 5/12/86 .\" .sh "Timers .NH 3 Real time .PP The system's notion of the current Greenwich time and the current time zone is set and returned by the call by the calls: .DS #include settimeofday(tvp, tzp); struct timeval *tp; struct timezone *tzp; gettimeofday(tp, tzp); result struct timeval *tp; result struct timezone *tzp; .DE where the structures are defined in \fI\fP as: .DS ._f struct timeval { long tv_sec; /* seconds since Jan 1, 1970 */ long tv_usec; /* and microseconds */ }; struct timezone { int tz_minuteswest; /* of Greenwich */ int tz_dsttime; /* type of dst correction to apply */ }; .DE The precision of the system clock is hardware dependent. Earlier versions of UNIX contained only a 1-second resolution version of this call, which remains as a library routine: .DS time(tvsec) result long *tvsec; .DE returning only the tv_sec field from the \fIgettimeofday\fP call. .NH 3 Interval time .PP The system provides each process with three interval timers, defined in \fI\fP: .DS ._d #define ITIMER_REAL 0 /* real time intervals */ #define ITIMER_VIRTUAL 1 /* virtual time intervals */ #define ITIMER_PROF 2 /* user and system virtual time */ .DE The ITIMER_REAL timer decrements in real time. It could be used by a library routine to maintain a wakeup service queue. A SIGALRM signal is delivered when this timer expires. .PP The ITIMER_VIRTUAL timer decrements in process virtual time. It runs only when the process is executing. A SIGVTALRM signal is delivered when it expires. .PP The ITIMER_PROF timer decrements both in process virtual time and when the system is running on behalf of the process. It is designed to be used by processes to statistically profile their execution. A SIGPROF signal is delivered when it expires. .PP A timer value is defined by the \fIitimerval\fP structure: .DS ._f struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; .DE and a timer is set or read by the call: .DS getitimer(which, value); int which; result struct itimerval *value; setitimer(which, value, ovalue); int which; struct itimerval *value; result struct itimerval *ovalue; .DE The third argument to \fIsetitimer\fP specifies an optional structure to receive the previous contents of the interval timer. A timer can be disabled by specifying a timer value of 0. .PP The system rounds argument timer intervals to be not less than the resolution of its clock. This clock resolution can be determined by loading a very small value into a timer and reading the timer back to see what value resulted. .PP The \fIalarm\fP system call of earlier versions of UNIX is provided as a library routine using the ITIMER_REAL timer. The process profiling facilities of earlier versions of UNIX remain because it is not always possible to guarantee the automatic restart of system calls after receipt of a signal. The \fIprofil\fP call arranges for the kernel to begin gathering execution statistics for a process: .DS profil(buf, bufsize, offset, scale); result char *buf; int bufsize, offset, scale; .DE This begins sampling of the program counter, with statistics maintained in the user-provided buffer. #]lo:$ ##K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.5.t 6.3 (Berkeley) 5/12/86 .\" .sh Descriptors .PP .NH 3 The reference table .PP Each process has access to resources through \fIdescriptors\fP. Each descriptor is a handle allowing the process to reference objects such as files, devices and communications links. .PP Rather than allowing processes direct access to descriptors, the system introduces a level of indirection, so that descriptors may be shared between processes. Each process has a \fIdescriptor reference table\fP, containing pointers to the actual descriptors. The descriptors themselves thus have multiple references, and are reference counted by the system. .PP Each process has a fixed size descriptor reference table, where the size is returned by the \fIgetdtablesize\fP call: .DS nds = getdtablesize(); result int nds; .DE and guaranteed to be at least 20. The entries in the descriptor reference table are referred to by small integers; for example if there are 20 slots they are numbered 0 to 19. .NH 3 Descriptor properties .PP Each descriptor has a logical set of properties maintained by the system and defined by its \fItype\fP. Each type supports a set of operations; some operations, such as reading and writing, are common to several abstractions, while others are unique. The generic operations applying to many of these types are described in section 2.1. Naming contexts, files and directories are described in section 2.2. Section 2.3 describes communications domains and sockets. Terminals and (structured and unstructured) devices are described in section 2.4. .NH 3 Managing descriptor references .PP A duplicate of a descriptor reference may be made by doing .DS new = dup(old); result int new; int old; .DE returning a copy of descriptor reference \fIold\fP indistinguishable from the original. The \fInew\fP chosen by the system will be the smallest unused descriptor reference slot. A copy of a descriptor reference may be made in a specific slot by doing .DS dup2(old, new); int old, new; .DE The \fIdup2\fP call causes the system to deallocate the descriptor reference current occupying slot \fInew\fP, if any, replacing it with a reference to the same descriptor as old. This deallocation is also performed by: .DS close(old); int old; .DE .NH 3 Multiplexing requests .PP The system provides a standard way to do synchronous and asynchronous multiplexing of operations. .PP Synchronous multiplexing is performed by using the \fIselect\fP call to examine the state of multiple descriptors simultaneously, and to wait for state changes on those descriptors. Sets of descriptors of interest are specified as bit masks, as follows: .DS #include nds = select(nd, in, out, except, tvp); result int nds; int nd; result fd_set *in, *out, *except; struct timeval *tvp; FD_ZERO(&fdset); FD_SET(fd, &fdset); FD_CLR(fd, &fdset); FD_ISSET(fd, &fdset); int fs; fs_set fdset; .DE The \fIselect\fP call examines the descriptors specified by the sets \fIin\fP, \fIout\fP and \fIexcept\fP, replacing the specified bit masks by the subsets that select true for input, output, and exceptional conditions respectively (\fInd\fP indicates the number of file descriptors specified by the bit masks). If any descriptors meet the following criteria, then the number of such descriptors is returned in \fInds\fP and the bit masks are updated. .if n .ds bu * .if t .ds bu \(bu .IP \*(bu A descriptor selects for input if an input oriented operation such as \fIread\fP or \fIreceive\fP is possible, or if a connection request may be accepted (see section 2.3.1.4). .IP \*(bu A descriptor selects for output if an output oriented operation such as \fIwrite\fP or \fIsend\fP is possible, or if an operation that was ``in progress'', such as connection establishment, has completed (see section 2.1.3). .IP \*(bu A descriptor selects for an exceptional condition if a condition that would cause a SIGURG signal to be generated exists (see section 1.3.2), or other device-specific events have occurred. .LP If none of the specified conditions is true, the operation waits for one of the conditions to arise, blocking at most the amount of time specified by \fItvp\fP. If \fItvp\fP is given as 0, the \fIselect\fP waits indefinitely. .PP Options affecting I/O on a descriptor may be read and set by the call: .DS ._d dopt = fcntl(d, cmd, arg) result int dopt; int d, cmd, arg; /* interesting values for cmd */ #define F_SETFL 3 /* set descriptor options */ #define F_GETFL 4 /* get descriptor options */ #define F_SETOWN 5 /* set descriptor owner (pid/pgrp) */ #define F_GETOWN 6 /* get descriptor owner (pid/pgrp) */ .DE The F_SETFL \fIcmd\fP may be used to set a descriptor in non-blocking I/O mode and/or enable signaling when I/O is possible. F_SETOWN may be used to specify a process or process group to be signaled when using the latter mode of operation or when urgent indications arise. .PP Operations on non-blocking descriptors will either complete immediately, note an error EWOULDBLOCK, partially complete an input or output operation returning a partial count, or return an error EINPROGRESS noting that the requested operation is in progress. A descriptor which has signalling enabled will cause the specified process and/or process group be signaled, with a SIGIO for input, output, or in-progress operation complete, or a SIGURG for exceptional conditions. .PP For example, when writing to a terminal using non-blocking output, the system will accept only as much data as there is buffer space for and return; when making a connection on a \fIsocket\fP, the operation may return indicating that the connection establishment is ``in progress''. The \fIselect\fP facility can be used to determine when further output is possible on the terminal, or when the connection establishment attempt is complete. .NH 3 Descriptor wrapping.\(dg .PP .FS \(dg The facilities described in this section are not included in 4.3BSD. .FE A user process may build descriptors of a specified type by \fIwrapping\fP a communications channel with a system supplied protocol translator: .DS new = wrap(old, proto) result int new; int old; struct dprop *proto; .DE Operations on the descriptor \fIold\fP are then translated by the system provided protocol translator into requests on the underlying object \fIold\fP in a way defined by the protocol. The protocols supported by the kernel may vary from system to system and are described in the programmers manual. .PP Protocols may be based on communications multiplexing or a rights-passing style of handling multiple requests made on the same object. For instance, a protocol for implementing a file abstraction may or may not include locally generated ``read-ahead'' requests. A protocol that provides for read-ahead may provide higher performance but have a more difficult implementation. .PP Another example is the terminal driving facilities. Normally a terminal is associated with a communications line, and the terminal type and standard terminal access protocol are wrapped around a synchronous communications line and given to the user. If a virtual terminal is required, the terminal driver can be wrapped around a communications link, the other end of which is held by a virtual terminal protocol interpreter. #]lo]$ #K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.6.t 6.2 (Berkeley) 5/12/86 .\" .sh "Resource controls .NH 3 Process priorities .PP The system gives CPU scheduling priority to processes that have not used CPU time recently. This tends to favor interactive processes and processes that execute only for short periods. It is possible to determine the priority currently assigned to a process, process group, or the processes of a specified user, or to alter this priority using the calls: .DS ._d #define PRIO_PROCESS 0 /* process */ #define PRIO_PGRP 1 /* process group */ #define PRIO_USER 2 /* user id */ prio = getpriority(which, who); result int prio; int which, who; setpriority(which, who, prio); int which, who, prio; .DE The value \fIprio\fP is in the range \-20 to 20. The default priority is 0; lower priorities cause more favorable execution. The \fIgetpriority\fP call returns the highest priority (lowest numerical value) enjoyed by any of the specified processes. The \fIsetpriority\fP call sets the priorities of all of the specified processes to the specified value. Only the super-user may lower priorities. .NH 3 Resource utilization .PP The resources used by a process are returned by a \fIgetrusage\fP call, returning information in a structure defined in \fI\fP: .DS ._d #define RUSAGE_SELF 0 /* usage by this process */ #define RUSAGE_CHILDREN -1 /* usage by all children */ getrusage(who, rusage) int who; result struct rusage *rusage; ._f struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ int ru_maxrss; /* maximum core resident set size: kbytes */ int ru_ixrss; /* integral shared memory size (kbytes*sec) */ int ru_idrss; /* unshared data memory size */ int ru_isrss; /* unshared stack memory size */ int ru_minflt; /* page-reclaims */ int ru_majflt; /* page faults */ int ru_nswap; /* swaps */ int ru_inblock; /* block input operations */ int ru_oublock; /* block output operations */ int ru_msgsnd; /* messages sent */ int ru_msgrcv; /* messages received */ int ru_nsignals; /* signals received */ int ru_nvcsw; /* voluntary context switches */ int ru_nivcsw; /* involuntary context switches */ }; .DE The \fIwho\fP parameter specifies whose resource usage is to be returned. The resources used by the current process, or by all the terminated children of the current process may be requested. .NH 3 Resource limits .PP The resources of a process for which limits are controlled by the kernel are defined in \fI\fP, and controlled by the \fIgetrlimit\fP and \fIsetrlimit\fP calls: .DS ._d #define RLIMIT_CPU 0 /* cpu time in milliseconds */ #define RLIMIT_FSIZE 1 /* maximum file size */ #define RLIMIT_DATA 2 /* maximum data segment size */ #define RLIMIT_STACK 3 /* maximum stack segment size */ #define RLIMIT_CORE 4 /* maximum core file size */ #define RLIMIT_RSS 5 /* maximum resident set size */ #define RLIM_NLIMITS 6 #define RLIM_INFINITY 0x7f\&f\&f\&f\&f\&f\&f ._f struct rlimit { int rlim_cur; /* current (soft) limit */ int rlim_max; /* hard limit */ }; getrlimit(resource, rlp) int resource; result struct rlimit *rlp; setrlimit(resource, rlp) int resource; struct rlimit *rlp; .DE .PP Only the super-user can raise the maximum limits. Other users may only alter \fIrlim_cur\fP within the range from 0 to \fIrlim_max\fP or (irreversibly) lower \fIrlim_max\fP. #]lo$ #K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.7.t 6.3 (Berkeley) 5/12/86 .\" .sh "System operation support .PP Unless noted otherwise, the calls in this section are permitted only to a privileged user. .NH 3 Bootstrap operations .PP The call .DS mount(blkdev, dir, ronly); char *blkdev, *dir; int ronly; .DE extends the UNIX name space. The \fImount\fP call specifies a block device \fIblkdev\fP containing a UNIX file system to be made available starting at \fIdir\fP. If \fIronly\fP is set then the file system is read-only; writes to the file system will not be permitted and access times will not be updated when files are referenced. \fIDir\fP is normally a name in the root directory. .PP The call .DS swapon(blkdev, size); char *blkdev; int size; .DE specifies a device to be made available for paging and swapping. .PP .NH 3 Shutdown operations .PP The call .DS unmount(dir); char *dir; .DE unmounts the file system mounted on \fIdir\fP. This call will succeed only if the file system is not currently being used. .PP The call .DS sync(); .DE schedules input/output to clean all system buffer caches. (This call does not require privileged status.) .PP The call .DS reboot(how) int how; .DE causes a machine halt or reboot. The call may request a reboot by specifying \fIhow\fP as RB_AUTOBOOT, or that the machine be halted with RB_HALT. These constants are defined in \fI\fP. .NH 3 Accounting .PP The system optionally keeps an accounting record in a file for each process that exits on the system. The format of this record is beyond the scope of this document. The accounting may be enabled to a file \fIname\fP by doing .DS acct(path); char *path; .DE If \fIpath\fP is null, then accounting is disabled. Otherwise, the named file becomes the accounting file. #] lo$ #K#K# M.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)2.0.t 6.2 (Berkeley) 5/12/86 .\" .ds ss 1 .sh "System facilities This section discusses the system facilities that are not considered part of the kernel. .PP The system abstractions described are: .IP "Directory contexts .br A directory context is a position in the UNIX file system name space. Operations on files and other named objects in a file system are always specified relative to such a context. .IP "Files .br Files are used to store uninterpreted sequence of bytes on which random access \fIreads\fP and \fIwrites\fP may occur. Pages from files may also be mapped into process address space.\(dg A directory may be read as a file. .FS \(dg Support for mapping files is not included in the 4.3 release. .FE .IP "Communications domains .br A communications domain represents an interprocess communications environment, such as the communications facilities of the UNIX system, communications in the INTERNET, or the resource sharing protocols and access rights of a resource sharing system on a local network. .IP "Sockets .br A socket is an endpoint of communication and the focal point for IPC in a communications domain. Sockets may be created in pairs, or given names and used to rendezvous with other sockets in a communications domain, accepting connections from these sockets or exchanging messages with them. These operations model a labeled or unlabeled communications graph, and can be used in a wide variety of communications domains. Sockets can have different \fItypes\fP\| to provide different semantics of communication, increasing the flexibility of the model. .IP "Terminals and other devices .br Devices include terminals, providing input editing and interrupt generation and output flow control and editing, magnetic tapes, disks and other peripherals. They often support the generic \fIread\fP and \fIwrite\fP operations as well as a number of \fIioctl\fP\|s. .IP "Processes .br Process descriptors provide facilities for control and debugging of other processes. .ds ss 2 #]lo $ !#K#K# .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)2.1.t 6.2 (Berkeley) 5/12/86 .\" .sh "Generic operations .PP .PP Many system abstractions support the operations \fIread\fP, \fIwrite\fP and \fIioctl\fP. We describe the basics of these common primitives here. Similarly, the mechanisms whereby normally synchronous operations may occur in a non-blocking or asynchronous fashion are common to all system-defined abstractions and are described here. .NH 3 Read and write .PP The \fIread\fP and \fIwrite\fP system calls can be applied to communications channels, files, terminals and devices. They have the form: .DS cc = read(fd, buf, nbytes); result int cc; int fd; result caddr_t buf; int nbytes; cc = write(fd, buf, nbytes); result int cc; int fd; caddr_t buf; int nbytes; .DE The \fIread\fP call transfers as much data as possible from the object defined by \fIfd\fP to the buffer at address \fIbuf\fP of size \fInbytes\fP. The number of bytes transferred is returned in \fIcc\fP, which is \-1 if a return occurred before any data was transferred because of an error or use of non-blocking operations. .PP The \fIwrite\fP call transfers data from the buffer to the object defined by \fIfd\fP. Depending on the type of \fIfd\fP, it is possible that the \fIwrite\fP call will accept some portion of the provided bytes; the user should resubmit the other bytes in a later request in this case. Error returns because of interrupted or otherwise incomplete operations are possible. .PP Scattering of data on input or gathering of data for output is also possible using an array of input/output vector descriptors. The type for the descriptors is defined in \fI\fP as: .DS ._f struct iovec { caddr_t iov_msg; /* base of a component */ int iov_len; /* length of a component */ }; .DE The calls using an array of descriptors are: .DS cc = readv(fd, iov, iovlen); result int cc; int fd; struct iovec *iov; int iovlen; cc = writev(fd, iov, iovlen); result int cc; int fd; struct iovec *iov; int iovlen; .DE Here \fIiovlen\fP is the count of elements in the \fIiov\fP array. .NH 3 Input/output control .PP Control operations on an object are performed by the \fIioctl\fP operation: .DS ioctl(fd, request, buffer); int fd, request; caddr_t buffer; .DE This operation causes the specified \fIrequest\fP to be performed on the object \fIfd\fP. The \fIrequest\fP parameter specifies whether the argument buffer is to be read, written, read and written, or is not needed, and also the size of the buffer, as well as the request. Different descriptor types and subtypes within descriptor types may use distinct \fIioctl\fP requests. For example, operations on terminals control flushing of input and output queues and setting of terminal parameters; operations on disks cause formatting operations to occur; operations on tapes control tape positioning. .PP The names for basic control operations are defined in \fI\fP. .NH 3 Non-blocking and asynchronous operations .PP A process that wishes to do non-blocking operations on one of its descriptors sets the descriptor in non-blocking mode as described in section 1.5.4. Thereafter the \fIread\fP call will return a specific EWOULDBLOCK error indication if there is no data to be \fIread\fP. The process may \fIselect\fP the associated descriptor to determine when a read is possible. .PP Output attempted when a descriptor can accept less than is requested will either accept some of the provided data, returning a shorter than normal length, or return an error indicating that the operation would block. More output can be performed as soon as a \fIselect\fP call indicates the object is writeable. .PP Operations other than data input or output may be performed on a descriptor in a non-blocking fashion. These operations will return with a characteristic error indicating that they are in progress if they cannot complete immediately. The descriptor may then be \fIselect\fPed for \fIwrite\fP to find out when the operation has been completed. When \fIselect\fP indicates the descriptor is writeable, the operation has completed. Depending on the nature of the descriptor and the operation, additional activity may be started or the new state may be tested. #]lo˸$ \fP: .DS ._d #define O_RDONLY 000 /* open for reading */ #define O_WRONLY 001 /* open for writing */ #define O_RDWR 002 /* open for read & write */ #define O_NDELAY 004 /* non-blocking open */ #define O_APPEND 010 /* append on each write */ #define O_CREAT 01000 /* open with file create */ #define O_TRUNC 02000 /* open with truncation */ #define O_EXCL 04000 /* error on create if file exists */ .DE .PP One of O_RDONLY, O_WRONLY and O_RDWR should be specified, indicating what types of operations are desired to be performed on the open file. The operations will be checked against the user's access rights to the file before allowing the \fIopen\fP to succeed. Specifying O_APPEND causes writes to automatically append to the file. The flag O_CREAT causes the file to be created if it does not exist, owned by the current user and the group of the containing directory. The protection for the new file is specified in \fImode\fP. The file mode is used as a three digit octal number. Each digit encodes read access as 4, write access as 2 and execute access as 1, or'ed together. The 0700 bits describe owner access, the 070 bits describe the access rights for processes in the same group as the file, and the 07 bits describe the access rights for other processes. .PP If the open specifies to create the file with O_EXCL and the file already exists, then the \fIopen\fP will fail without affecting the file in any way. This provides a simple exclusive access facility. If the file exists but is a symbolic link, the open will fail regardless of the existence of the file specified by the link. .NH 4 Creating references to devices .PP The file system allows entries which reference peripheral devices. Peripherals are distinguished as \fIblock\fP or \fIcharacter\fP devices according by their ability to support block-oriented operations. Devices are identified by their ``major'' and ``minor'' device numbers. The major device number determines the kind of peripheral it is, while the minor device number indicates one of possibly many peripherals of that kind. Structured devices have all operations performed internally in ``block'' quantities while unstructured devices often have a number of special \fIioctl\fP operations, and may have input and output performed in varying units. The \fImknod\fP call creates special entries: .DS mknod(path, mode, dev); char *path; int mode, dev; .DE where \fImode\fP is formed from the object type and access permissions. The parameter \fIdev\fP is a configuration dependent parameter used to identify specific character or block I/O devices. .NH 4 Portal creation\(dg .PP .FS \(dg The \fIportal\fP call is not implemented in 4.3BSD. .FE The call .DS fd = portal(name, server, param, dtype, protocol, domain, socktype) result int fd; char *name, *server, *param; int dtype, protocol; int domain, socktype; .DE places a \fIname\fP in the file system name space that causes connection to a server process when the name is used. The portal call returns an active portal in \fIfd\fP as though an access had occurred to activate an inactive portal, as now described. .PP When an inactive portal is accessed, the system sets up a socket of the specified \fIsocktype\fP in the specified communications \fIdomain\fP (see section 2.3), and creates the \fIserver\fP process, giving it the specified \fIparam\fP as argument to help it identify the portal, and also giving it the newly created socket as descriptor number 0. The accessor of the portal will create a socket in the same \fIdomain\fP and \fIconnect\fP to the server. The user will then \fIwrap\fP the socket in the specified \fIprotocol\fP to create an object of the required descriptor type \fIdtype\fP and proceed with the operation which was in progress before the portal was encountered. .PP While the server process holds the socket (which it received as \fIfd\fP from the \fIportal\fP call on descriptor 0 at activation) further references will result in connections being made to the same socket. .NH 4 File, device, and portal removal .PP A reference to a file, special device or portal may be removed with the \fIunlink\fP call, .DS unlink(path); char *path; .DE The caller must have write access to the directory in which the file is located for this call to be successful. .NH 3 Reading and modifying file attributes .PP Detailed information about the attributes of a file may be obtained with the calls: .DS #include stat(path, stb); char *path; result struct stat *stb; fstat(fd, stb); int fd; result struct stat *stb; .DE The \fIstat\fP structure includes the file type, protection, ownership, access times, size, and a count of hard links. If the file is a symbolic link, then the status of the link itself (rather than the file the link references) may be found using the \fIlstat\fP call: .DS lstat(path, stb); char *path; result struct stat *stb; .DE .PP Newly created files are assigned the user id of the process that created it and the group id of the directory in which it was created. The ownership of a file may be changed by either of the calls .DS chown(path, owner, group); char *path; int owner, group; fchown(fd, owner, group); int fd, owner, group; .DE .PP In addition to ownership, each file has three levels of access protection associated with it. These levels are owner relative, group relative, and global (all users and groups). Each level of access has separate indicators for read permission, write permission, and execute permission. The protection bits associated with a file may be set by either of the calls: .DS chmod(path, mode); char *path; int mode; fchmod(fd, mode); int fd, mode; .DE where \fImode\fP is a value indicating the new protection of the file, as listed in section 2.2.3.2. .PP Finally, the access and modify times on a file may be set by the call: .DS utimes(path, tvp) char *path; struct timeval *tvp[2]; .DE This is particularly useful when moving files between media, to preserve relationships between the times the file was modified. .NH 3 Links and renaming .PP Links allow multiple names for a file to exist. Links exist independently of the file linked to. .PP Two types of links exist, \fIhard\fP links and \fIsymbolic\fP links. A hard link is a reference counting mechanism that allows a file to have multiple names within the same file system. Symbolic links cause string substitution during the pathname interpretation process. .PP Hard links and symbolic links have different properties. A hard link insures the target file will always be accessible, even after its original directory entry is removed; no such guarantee exists for a symbolic link. Symbolic links can span file systems boundaries. .PP The following calls create a new link, named \fIpath2\fP, to \fIpath1\fP: .DS link(path1, path2); char *path1, *path2; symlink(path1, path2); char *path1, *path2; .DE The \fIunlink\fP primitive may be used to remove either type of link. .PP If a file is a symbolic link, the ``value'' of the link may be read with the \fIreadlink\fP call, .DS len = readlink(path, buf, bufsize); result int len; result char *path, *buf; int bufsize; .DE This call returns, in \fIbuf\fP, the null-terminated string substituted into pathnames passing through \fIpath\fP\|. .PP Atomic renaming of file system resident objects is possible with the \fIrename\fP call: .DS rename(oldname, newname); char *oldname, *newname; .DE where both \fIoldname\fP and \fInewname\fP must be in the same file system. If \fInewname\fP exists and is a directory, then it must be empty. .NH 3 Extension and truncation .PP Files are created with zero length and may be extended simply by writing or appending to them. While a file is open the system maintains a pointer into the file indicating the current location in the file associated with the descriptor. This pointer may be moved about in the file in a random access fashion. To set the current offset into a file, the \fIlseek\fP call may be used, .DS oldoffset = lseek(fd, offset, type); result off_t oldoffset; int fd; off_t offset; int type; .DE where \fItype\fP is given in \fI\fP as one of: .DS ._d #define L_SET 0 /* set absolute file offset */ #define L_INCR 1 /* set file offset relative to current position */ #define L_XTND 2 /* set offset relative to end-of-file */ .DE The call ``lseek(fd, 0, L_INCR)'' returns the current offset into the file. .PP Files may have ``holes'' in them. Holes are void areas in the linear extent of the file where data has never been written. These may be created by seeking to a location in a file past the current end-of-file and writing. Holes are treated by the system as zero valued bytes. .PP A file may be truncated with either of the calls: .DS truncate(path, length); char *path; int length; ftruncate(fd, length); int fd, length; .DE reducing the size of the specified file to \fIlength\fP bytes. .NH 3 Checking accessibility .PP A process running with different real and effective user ids may interrogate the accessibility of a file to the real user by using the \fIaccess\fP call: .DS accessible = access(path, how); result int accessible; char *path; int how; .DE Here \fIhow\fP is constructed by or'ing the following bits, defined in \fI\fP: .DS ._d #define F_OK 0 /* file exists */ #define X_OK 1 /* file is executable */ #define W_OK 2 /* file is writable */ #define R_OK 4 /* file is readable */ .DE The presence or absence of advisory locks does not affect the result of \fIaccess\fP\|. .NH 3 Locking .PP The file system provides basic facilities that allow cooperating processes to synchronize their access to shared files. A process may place an advisory \fIread\fP or \fIwrite\fP lock on a file, so that other cooperating processes may avoid interfering with the process' access. This simple mechanism provides locking with file granularity. More granular locking can be built using the IPC facilities to provide a lock manager. The system does not force processes to obey the locks; they are of an advisory nature only. .PP Locking is performed after an \fIopen\fP call by applying the \fIflock\fP primitive, .DS flock(fd, how); int fd, how; .DE where the \fIhow\fP parameter is formed from bits defined in \fI\fP: .DS ._d #define LOCK_SH 1 /* shared lock */ #define LOCK_EX 2 /* exclusive lock */ #define LOCK_NB 4 /* don't block when locking */ #define LOCK_UN 8 /* unlock */ .DE Successive lock calls may be used to increase or decrease the level of locking. If an object is currently locked by another process when a \fIflock\fP call is made, the caller will be blocked until the current lock owner releases the lock; this may be avoided by including LOCK_NB in the \fIhow\fP parameter. Specifying LOCK_UN removes all locks associated with the descriptor. Advisory locks held by a process are automatically deleted when the process terminates. .NH 3 Disk quotas .PP As an optional facility, each file system may be requested to impose limits on a user's disk usage. Two quantities are limited: the total amount of disk space which a user may allocate in a file system and the total number of files a user may create in a file system. Quotas are expressed as \fIhard\fP limits and \fIsoft\fP limits. A hard limit is always imposed; if a user would exceed a hard limit, the operation which caused the resource request will fail. A soft limit results in the user receiving a warning message, but with allocation succeeding. Facilities are provided to turn soft limits into hard limits if a user has exceeded a soft limit for an unreasonable period of time. .PP To enable disk quotas on a file system the \fIsetquota\fP call is used: .DS setquota(special, file) char *special, *file; .DE where \fIspecial\fP refers to a structured device file where a mounted file system exists, and \fIfile\fP refers to a disk quota file (residing on the file system associated with \fIspecial\fP) from which user quotas should be obtained. The format of the disk quota file is implementation dependent. .PP To manipulate disk quotas the \fIquota\fP call is provided: .DS #include quota(cmd, uid, arg, addr) int cmd, uid, arg; caddr_t addr; .DE The indicated \fIcmd\fP is applied to the user ID \fIuid\fP. The parameters \fIarg\fP and \fIaddr\fP are command specific. The file \fI\fP contains definitions pertinent to the use of this call. #]%lo˼$ 8#K#K#.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)2.3.t 6.3 (Berkeley) 5/12/86 .\" .sh "Interprocess communications .NH 3 Interprocess communication primitives .NH 4 Communication domains .PP The system provides access to an extensible set of communication \fIdomains\fP. A communication domain is identified by a manifest constant defined in the file \fI\fP. Important standard domains supported by the system are the ``unix'' domain, AF_UNIX, for communication within the system, the ``Internet'' domain for communication in the DARPA Internet, AF_INET, and the ``NS'' domain, AF_NS, for communication using the Xerox Network Systems protocols. Other domains can be added to the system. .NH 4 Socket types and protocols .PP Within a domain, communication takes place between communication endpoints known as \fIsockets\fP. Each socket has the potential to exchange information with other sockets of an appropriate type within the domain. .PP Each socket has an associated abstract type, which describes the semantics of communication using that socket. Properties such as reliability, ordering, and prevention of duplication of messages are determined by the type. The basic set of socket types is defined in \fI\fP: .DS /* Standard socket types */ ._d #define SOCK_DGRAM 1 /* datagram */ #define SOCK_STREAM 2 /* virtual circuit */ #define SOCK_RAW 3 /* raw socket */ #define SOCK_RDM 4 /* reliably-delivered message */ #define SOCK_SEQPACKET 5 /* sequenced packets */ .DE The SOCK_DGRAM type models the semantics of datagrams in network communication: messages may be lost or duplicated and may arrive out-of-order. A datagram socket may send messages to and receive messages from multiple peers. The SOCK_RDM type models the semantics of reliable datagrams: messages arrive unduplicated and in-order, the sender is notified if messages are lost. The \fIsend\fP and \fIreceive\fP operations (described below) generate reliable/unreliable datagrams. The SOCK_STREAM type models connection-based virtual circuits: two-way byte streams with no record boundaries. Connection setup is required before data communication may begin. The SOCK_SEQPACKET type models a connection-based, full-duplex, reliable, sequenced packet exchange; the sender is notified if messages are lost, and messages are never duplicated or presented out-of-order. Users of the last two abstractions may use the facilities for out-of-band transmission to send out-of-band data. .PP SOCK_RAW is used for unprocessed access to internal network layers and interfaces; it has no specific semantics. .PP Other socket types can be defined. .PP Each socket may have a specific \fIprotocol\fP associated with it. This protocol is used within the domain to provide the semantics required by the socket type. Not all socket types are supported by each domain; support depends on the existence and the implementation of a suitable protocol within the domain. For example, within the ``Internet'' domain, the SOCK_DGRAM type may be implemented by the UDP user datagram protocol, and the SOCK_STREAM type may be implemented by the TCP transmission control protocol, while no standard protocols to provide SOCK_RDM or SOCK_SEQPACKET sockets exist. .NH 4 Socket creation, naming and service establishment .PP Sockets may be \fIconnected\fP or \fIunconnected\fP. An unconnected socket descriptor is obtained by the \fIsocket\fP call: .DS s = socket(domain, type, protocol); result int s; int domain, type, protocol; .DE The socket domain and type are as described above, and are specified using the definitions from \fI\fP. The protocol may be given as 0, meaning any suitable protocol. One of several possible protocols may be selected using identifiers obtained from a library routine, \fIgetprotobyname\fP. .PP An unconnected socket descriptor of a connection-oriented type may yield a connected socket descriptor in one of two ways: either by actively connecting to another socket, or by becoming associated with a name in the communications domain and \fIaccepting\fP a connection from another socket. Datagram sockets need not establish connections before use. .PP To accept connections or to receive datagrams, a socket must first have a binding to a name (or address) within the communications domain. Such a binding may be established by a \fIbind\fP call: .DS bind(s, name, namelen); int s; struct sockaddr *name; int namelen; .DE Datagram sockets may have default bindings established when first sending data if not explicitly bound earlier. In either case, a socket's bound name may be retrieved with a \fIgetsockname\fP call: .DS getsockname(s, name, namelen); int s; result struct sockaddr *name; result int *namelen; .DE while the peer's name can be retrieved with \fIgetpeername\fP: .DS getpeername(s, name, namelen); int s; result struct sockaddr *name; result int *namelen; .DE Domains may support sockets with several names. .NH 4 Accepting connections .PP Once a binding is made to a connection-oriented socket, it is possible to \fIlisten\fP for connections: .DS listen(s, backlog); int s, backlog; .DE The \fIbacklog\fP specifies the maximum count of connections that can be simultaneously queued awaiting acceptance. .PP An \fIaccept\fP call: .DS t = accept(s, name, anamelen); result int t; int s; result struct sockaddr *name; result int *anamelen; .DE returns a descriptor for a new, connected, socket from the queue of pending connections on \fIs\fP. If no new connections are queued for acceptance, the call will wait for a connection unless non-blocking I/O has been enabled. .NH 4 Making connections .PP An active connection to a named socket is made by the \fIconnect\fP call: .DS connect(s, name, namelen); int s; struct sockaddr *name; int namelen; .DE Although datagram sockets do not establish connections, the \fIconnect\fP call may be used with such sockets to create an \fIassociation\fP with the foreign address. The address is recorded for use in future \fIsend\fP calls, which then need not supply destination addresses. Datagrams will be received only from that peer, and asynchronous error reports may be received. .PP It is also possible to create connected pairs of sockets without using the domain's name space to rendezvous; this is done with the \fIsocketpair\fP call\(dg: .FS \(dg 4.3BSD supports \fIsocketpair\fP creation only in the ``unix'' communication domain. .FE .DS socketpair(domain, type, protocol, sv); int domain, type, protocol; result int sv[2]; .DE Here the returned \fIsv\fP descriptors correspond to those obtained with \fIaccept\fP and \fIconnect\fP. .PP The call .DS pipe(pv) result int pv[2]; .DE creates a pair of SOCK_STREAM sockets in the UNIX domain, with pv[0] only writable and pv[1] only readable. .NH 4 Sending and receiving data .PP Messages may be sent from a socket by: .DS cc = sendto(s, buf, len, flags, to, tolen); result int cc; int s; caddr_t buf; int len, flags; caddr_t to; int tolen; .DE if the socket is not connected or: .DS cc = send(s, buf, len, flags); result int cc; int s; caddr_t buf; int len, flags; .DE if the socket is connected. The corresponding receive primitives are: .DS msglen = recvfrom(s, buf, len, flags, from, fromlenaddr); result int msglen; int s; result caddr_t buf; int len, flags; result caddr_t from; result int *fromlenaddr; .DE and .DS msglen = recv(s, buf, len, flags); result int msglen; int s; result caddr_t buf; int len, flags; .DE .PP In the unconnected case, the parameters \fIto\fP and \fItolen\fP specify the destination or source of the message, while the \fIfrom\fP parameter stores the source of the message, and \fI*fromlenaddr\fP initially gives the size of the \fIfrom\fP buffer and is updated to reflect the true length of the \fIfrom\fP address. .PP All calls cause the message to be received in or sent from the message buffer of length \fIlen\fP bytes, starting at address \fIbuf\fP. The \fIflags\fP specify peeking at a message without reading it or sending or receiving high-priority out-of-band messages, as follows: .DS ._d #define MSG_PEEK 0x1 /* peek at incoming message */ #define MSG_OOB 0x2 /* process out-of-band data */ .DE .NH 4 Scatter/gather and exchanging access rights .PP It is possible scatter and gather data and to exchange access rights with messages. When either of these operations is involved, the number of parameters to the call becomes large. Thus the system defines a message header structure, in \fI\fP, which can be used to conveniently contain the parameters to the calls: .DS .if t .ta .5i 1.25i 2i 2.7i .if n ._f struct msghdr { caddr_t msg_name; /* optional address */ int msg_namelen; /* size of address */ struct iov *msg_iov; /* scatter/gather array */ int msg_iovlen; /* # elements in msg_iov */ caddr_t msg_accrights; /* access rights sent/received */ int msg_accrightslen; /* size of msg_accrights */ }; .DE Here \fImsg_name\fP and \fImsg_namelen\fP specify the source or destination address if the socket is unconnected; \fImsg_name\fP may be given as a null pointer if no names are desired or required. The \fImsg_iov\fP and \fImsg_iovlen\fP describe the scatter/gather locations, as described in section 2.1.3. Access rights to be sent along with the message are specified in \fImsg_accrights\fP, which has length \fImsg_accrightslen\fP. In the ``unix'' domain these are an array of integer descriptors, taken from the sending process and duplicated in the receiver. .PP This structure is used in the operations \fIsendmsg\fP and \fIrecvmsg\fP: .DS sendmsg(s, msg, flags); int s; struct msghdr *msg; int flags; msglen = recvmsg(s, msg, flags); result int msglen; int s; result struct msghdr *msg; int flags; .DE .NH 4 Using read and write with sockets .PP The normal UNIX \fIread\fP and \fIwrite\fP calls may be applied to connected sockets and translated into \fIsend\fP and \fIreceive\fP calls from or to a single area of memory and discarding any rights received. A process may operate on a virtual circuit socket, a terminal or a file with blocking or non-blocking input/output operations without distinguishing the descriptor type. .NH 4 Shutting down halves of full-duplex connections .PP A process that has a full-duplex socket such as a virtual circuit and no longer wishes to read from or write to this socket can give the call: .DS shutdown(s, direction); int s, direction; .DE where \fIdirection\fP is 0 to not read further, 1 to not write further, or 2 to completely shut the connection down. If the underlying protocol supports unidirectional or bidirectional shutdown, this indication will be passed to the peer. For example, a shutdown for writing might produce an end-of-file condition at the remote end. .NH 4 Socket and protocol options .PP Sockets, and their underlying communication protocols, may support \fIoptions\fP. These options may be used to manipulate implementation- or protocol-specific facilities. The \fIgetsockopt\fP and \fIsetsockopt\fP calls are used to control options: .DS getsockopt(s, level, optname, optval, optlen) int s, level, optname; result caddr_t optval; result int *optlen; setsockopt(s, level, optname, optval, optlen) int s, level, optname; caddr_t optval; int optlen; .DE The option \fIoptname\fP is interpreted at the indicated protocol \fIlevel\fP for socket \fIs\fP. If a value is specified with \fIoptval\fP and \fIoptlen\fP, it is interpreted by the software operating at the specified \fIlevel\fP. The \fIlevel\fP SOL_SOCKET is reserved to indicate options maintained by the socket facilities. Other \fIlevel\fP values indicate a particular protocol which is to act on the option request; these values are normally interpreted as a ``protocol number''. .NH 3 UNIX domain .PP This section describes briefly the properties of the UNIX communications domain. .NH 4 Types of sockets .PP In the UNIX domain, the SOCK_STREAM abstraction provides pipe-like facilities, while SOCK_DGRAM provides (usually) reliable message-style communications. .NH 4 Naming .PP Socket names are strings and may appear in the UNIX file system name space through portals\(dg. .FS \(dg The 4.3BSD implementation of the UNIX domain embeds bound sockets in the UNIX file system name space; this may change in future releases. .FE .NH 4 Access rights transmission .PP The ability to pass UNIX descriptors with messages in this domain allows migration of service within the system and allows user processes to be used in building system facilities. .NH 3 INTERNET domain .PP This section describes briefly how the Internet domain is mapped to the model described in this section. More information will be found in the document describing the network implementation in 4.3BSD. .NH 4 Socket types and protocols .PP SOCK_STREAM is supported by the Internet TCP protocol; SOCK_DGRAM by the UDP protocol. Each is layered atop the transport-level Internet Protocol (IP). The Internet Control Message Protocol is implemented atop/beside IP and is accessible via a raw socket. The SOCK_SEQPACKET has no direct Internet family analogue; a protocol based on one from the XEROX NS family and layered on top of IP could be implemented to fill this gap. .NH 4 Socket naming .PP Sockets in the Internet domain have names composed of the 32 bit Internet address, and a 16 bit port number. Options may be used to provide IP source routing or security options. The 32-bit address is composed of network and host parts; the network part is variable in size and is frequency encoded. The host part may optionally be interpreted as a subnet field plus the host on subnet; this is is enabled by setting a network address mask at boot time. .NH 4 Access rights transmission .PP No access rights transmission facilities are provided in the Internet domain. .NH 4 Raw access .PP The Internet domain allows the super-user access to the raw facilities of IP. These interfaces are modeled as SOCK_RAW sockets. Each raw socket is associated with one IP protocol number, and receives all traffic received for that protocol. This allows administrative and debugging functions to occur, and enables user-level implementations of special-purpose protocols such as inter-gateway routing protocols. #]5lo畁$ 6#K#K# .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)2.4.t 6.2 (Berkeley) 5/12/86 .\" .sh "Terminals and Devices .NH 3 Terminals .PP Terminals support \fIread\fP and \fIwrite\fP I/O operations, as well as a collection of terminal specific \fIioctl\fP operations, to control input character interpretation and editing, and output format and delays. .NH 4 Terminal input .PP Terminals are handled according to the underlying communication characteristics such as baud rate and required delays, and a set of software parameters. .NH 5 Input modes .PP A terminal is in one of three possible modes: \fIraw\fP, \fIcbreak\fP, or \fIcooked\fP. In raw mode all input is passed through to the reading process immediately and without interpretation. In cbreak mode, the handler interprets input only by looking for characters that cause interrupts or output flow control; all other characters are made available as in raw mode. In cooked mode, input is processed to provide standard line-oriented local editing functions, and input is presented on a line-by-line basis. .NH 5 Interrupt characters .PP Interrupt characters are interpreted by the terminal handler only in cbreak and cooked modes, and cause a software interrupt to be sent to all processes in the process group associated with the terminal. Interrupt characters exist to send SIGINT and SIGQUIT signals, and to stop a process group with the SIGTSTP signal either immediately, or when all input up to the stop character has been read. .NH 5 Line editing .PP When the terminal is in cooked mode, editing of an input line is performed. Editing facilities allow deletion of the previous character or word, or deletion of the current input line. In addition, a special character may be used to reprint the current input line after some number of editing operations have been applied. .PP Certain other characters are interpreted specially when a process is in cooked mode. The \fIend of line\fP character determines the end of an input record. The \fIend of file\fP character simulates an end of file occurrence on terminal input. Flow control is provided by \fIstop output\fP and \fIstart output\fP control characters. Output may be flushed with the \fIflush output\fP character; and a \fIliteral character\fP may be used to force literal input of the immediately following character in the input line. .PP Input characters may be echoed to the terminal as they are received. Non-graphic ASCII input characters may be echoed as a two-character printable representation, ``^character.'' .NH 4 Terminal output .PP On output, the terminal handler provides some simple formatting services. These include converting the carriage return character to the two character return-linefeed sequence, inserting delays after certain standard control characters, expanding tabs, and providing translations for upper-case only terminals. .NH 4 Terminal control operations .PP When a terminal is first opened it is initialized to a standard state and configured with a set of standard control, editing, and interrupt characters. A process may alter this configuration with certain control operations, specifying parameters in a standard structure:\(dg .FS \(dg The control interface described here is an internal interface only in 4.3BSD. Future releases will probably use a modified interface based on currently-proposed standards. .FE .DS ._f struct ttymode { short tt_ispeed; /* input speed */ int tt_iflags; /* input flags */ short tt_ospeed; /* output speed */ int tt_oflags; /* output flags */ }; .DE and ``special characters'' are specified with the \fIttychars\fP structure, .DS ._f struct ttychars { char tc_erasec; /* erase char */ char tc_killc; /* erase line */ char tc_intrc; /* interrupt */ char tc_quitc; /* quit */ char tc_startc; /* start output */ char tc_stopc; /* stop output */ char tc_eofc; /* end-of-file */ char tc_brkc; /* input delimiter (like nl) */ char tc_suspc; /* stop process signal */ char tc_dsuspc; /* delayed stop process signal */ char tc_rprntc; /* reprint line */ char tc_flushc; /* flush output (toggles) */ char tc_werasc; /* word erase */ char tc_lnextc; /* literal next character */ }; .DE .NH 4 Terminal hardware support .PP The terminal handler allows a user to access basic hardware related functions; e.g. line speed, modem control, parity, and stop bits. A special signal, SIGHUP, is automatically sent to processes in a terminal's process group when a carrier transition is detected. This is normally associated with a user hanging up on a modem controlled terminal line. .NH 3 Structured devices .PP Structures devices are typified by disks and magnetic tapes, but may represent any random-access device. The system performs read-modify-write type buffering actions on block devices to allow them to be read and written in a totally random access fashion like ordinary files. File systems are normally created in block devices. .NH 3 Unstructured devices .PP Unstructured devices are those devices which do not support block structure. Familiar unstructured devices are raw communications lines (with no terminal handler), raster plotters, magnetic tape and disks unfettered by buffering and permitting large block input/output and positioning and formatting commands. #]<lol$ #K#K# ?.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)2.5.t 6.2 (Berkeley) 5/12/86 .\" .sh "Process and kernel descriptors .PP The status of the facilities in this section is still under discussion. The \fIptrace\fP facility of earlier UNIX systems remains in 4.3BSD. Planned enhancements would allow a descriptor-based process control facility. #]>lo$ #K#K## # Copyright (c) 1986 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)Makefile 6.1 (Berkeley) 5/8/86 # SRCS= 0.t 1.0.t 1.1.t 1.2.t 1.3.t 1.4.t 1.5.t 1.6.t 1.7.t \ 2.0.t 2.1.t 2.2.t 2.3.t 2.4.t 2.5.t a.t MACROS= -msU PRINTER=Pdp TBL= dtbl -${PRINTER} TROFF= ditroff -${PRINTER} paper: paper.${PRINTER} lpr -${PRINTER} -n paper.${PRINTER} paper.${PRINTER}: ${SRCS} ${TBL} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} clean: rm -f paper.[PT]* *.spell errs Errs make.out spell: ${SRCS} @for i in ${SRCS}; do \ echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ done #]@loe$ L#K#K# .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)a.t 6.5 (Berkeley) 5/12/86 .\" .ds RH Summary of facilities .bp .SH \s+2I. Summary of facilities\s0 .PP .de h .br .if n .ne 8 \fB\\$1 \\$2\fP .br .. .nr H1 0 .NH Kernel primitives .LP .h 1.1. "Process naming and protection .in +5 .TS lw(1.6i) aw(3i). sethostid set UNIX host id gethostid get UNIX host id sethostname set UNIX host name gethostname get UNIX host name getpid get process id fork create new process exit terminate a process execve execute a different process getuid get user id geteuid get effective user id setreuid set real and effective user id's getgid get accounting group id getegid get effective accounting group id getgroups get access group set setregid set real and effective group id's setgroups set access group set getpgrp get process group setpgrp set process group .TE .in -5 .h 1.2 "Memory management .in +5 .TS lw(1.6i) aw(3i). memory management definitions sbrk change data section size sstk\(dg change stack section size .FS \(dg Not supported in 4.3BSD. .FE getpagesize get memory page size mmap\(dg map pages of memory msync\(dg flush modified mapped pages to filesystem munmap\(dg unmap memory mprotect\(dg change protection of pages madvise\(dg give memory management advice mincore\(dg determine core residency of pages msleep\(dg sleep on a lock mwakeup\(dg wakeup process sleeping on a lock .TE .in -5 .h 1.3 "Signals .in +5 .TS lw(1.6i) aw(3i). signal definitions sigvec set handler for signal kill send signal to process killpgrp send signal to process group sigblock block set of signals sigsetmask restore set of blocked signals sigpause wait for signals sigstack set software stack for signals .TE .in -5 .h 1.4 "Timing and statistics .in +5 .TS lw(1.6i) aw(3i). time-related definitions gettimeofday get current time and timezone settimeofday set current time and timezone getitimer read an interval timer setitimer get and set an interval timer profil profile process .TE .in -5 .h 1.5 "Descriptors .in +5 .TS lw(1.6i) aw(3i). getdtablesize descriptor reference table size dup duplicate descriptor dup2 duplicate to specified index close close descriptor select multiplex input/output fcntl control descriptor options wrap\(dg wrap descriptor with protocol .FS \(dg Not supported in 4.3BSD. .FE .TE .in -5 .h 1.6 "Resource controls .in +5 .TS lw(1.6i) aw(3i). resource-related definitions getpriority get process priority setpriority set process priority getrusage get resource usage getrlimit get resource limitations setrlimit set resource limitations .TE .in -5 .h 1.7 "System operation support .in +5 .TS lw(1.6i) aw(3i). mount mount a device file system swapon add a swap device umount umount a file system sync flush system caches reboot reboot a machine acct specify accounting file .TE .in -5 .NH System facilities .LP .h 2.1 "Generic operations .in +5 .TS lw(1.6i) aw(3i). read read data write write data scatter-gather related definitions readv scattered data input writev gathered data output standard control operations ioctl device control operation .TE .in -5 .h 2.2 "File system .PP Operations marked with a * exist in two forms: as shown, operating on a file name, and operating on a file descriptor, when the name is preceded with a ``f''. .in +5 .TS lw(1.6i) aw(3i). file system definitions chdir change directory chroot change root directory mkdir make a directory rmdir remove a directory open open a new or existing file mknod make a special file portal\(dg make a portal entry unlink remove a link stat* return status for a file lstat returned status of link chown* change owner chmod* change mode utimes change access/modify times link make a hard link symlink make a symbolic link readlink read contents of symbolic link rename change name of file lseek reposition within file truncate* truncate file access determine accessibility flock lock a file .TE .in -5 .h 2.3 "Communications .in +5 .TS lw(1.6i) aw(3i). standard definitions socket create socket bind bind socket to name getsockname get socket name listen allow queuing of connections accept accept a connection connect connect to peer socket socketpair create pair of connected sockets sendto send data to named socket send send data to connected socket recvfrom receive data on unconnected socket recv receive data on connected socket sendmsg send gathered data and/or rights recvmsg receive scattered data and/or rights shutdown partially close full-duplex connection getsockopt get socket option setsockopt set socket option .TE .in -5 .h 2.4 "Terminals, block and character devices .in +5 .TS lw(1.6i) aw(3i). .TE .in -5 .h 2.5 "Processes and kernel hooks .in +5 .TS lw(1.6i) aw(3i). .TE .in -5 #]Flo$ #K#K#AF ANON AUTOBOOT Behav CLR DEF DGRAM DONTNEED Datagram Datagrams EINPROGRESS EWOULDBLOCK EXCL FD FSIZE Fabry GETFL GETOWN HASSEMAPHORE HASSEMPHORE IGN INCR INET IP IPC ISSET ITIMER Karels Leffler MADV MAXHOSTNAMELEN MSG Manual''PS1:6 McKusick Mclear Mset NB NDELAY NGROUPS NLIMITS NOEXTEND NS OOB PGRP PRIO PROT PS1:6 RB RDM RDONLY RDWR RH RLIM RLIMIT RSS RUSAGE SEQPACKET SETFL SETOWN SIG SIGALRM SIGBUS SIGCHLD SIGCONT SIGEMT SIGFPE SIGHUP SIGILL SIGINT SIGIO SIGIOT SIGKILL SIGPROF SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGURG SIGUSR1 SIGUSR2 SIGVTALRM SIGXCPU SIGXFSZ Sem Sv TCP TRUNC UDP VAX WILLNEED WRONLY XTND accessor accrights accrightslen addr anamelen arg argv arusage astatus behav blkdev brkc bu buf buflen bufsize caddr cbreak chroot cmd datagram datagrams dev dopt dprop ds dst dsttime dsuspc dtype dup2 egid envp eofc erasec errno euid fchmod fchown fcntl fd fdset file.h filename filesystem flushc fromlenaddr fs fstat ftruncate getdtablesize getegid geteuid getgid getgroups gethostid gethostname getitimer getpagesize getpeername getpriority getprotobyname getrlimit getrusage getsockname getsockopt gettimeofday gid gidset gidsetsize hostid idrss iflags inblock incr intrc ioctl.h iov iovec iovlen ispeed isrss itimerval ixrss kbytes killc killpgrp len linefeed lnextc lstat maddr madvise majflt maxrss mclear mincore minflt minuteswest mman.h mmap mprotect mremap mset msg msghdr msglen msgrcv msgsnd msleep msync munmap mwakeup namelen nbytes nd nds newname ngroups nivcsw nl nsignals nswap nvcsw oflag oflags oldmask oldname oldoffset onstack optlen optname optval or'ed or'ing ospeed oss osv oublock ovalue pagesize param param.h path1 path2 pathname pathnames pgrp pid pos prio prot proto pv quitc quota.h readlink readv reboot.h recv recvfrom recvmsg resource.h rgid rlim rlimit rlp ronly rprntc ru ruid rusage sbrk scp sem sendmsg sendto setgroups sethostid sethostname setitimer setpriority setquota setregid setreuid setrlimit setsockopt settimeofday sigblock sigcontext sigmask signal.h signo sigpause sigsetmask sigstack sigvec sockaddr socket.h socketpair socktype sp ss sstk startc stat.h stb stopc suspc sv sw symlink ta time.h timeval timezone tolen tt ttychars ttymode tv tvp tvsec types.h tz tzp uid uio.h umount usec vec wait.h waitstatus werasc writeable writev #]Jlo뛁$ #N#N# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)0.t 6.2 (Berkeley) 5/20/86 .\" .EQ delim $$ .EN .if n .ND .TL A Fast File System for UNIX* .EH 'SMM:14-%''A Fast File System for \s-2UNIX\s+2' .OH 'A Fast File System for \s-2UNIX\s+2''SMM:14-%' .AU Marshall Kirk McKusick, William N. Joy\(dg, Samuel J. Leffler\(dd, Robert S. Fabry .AI Computer Systems Research Group Computer Science Division Department of Electrical Engineering and Computer Science University of California, Berkeley Berkeley, CA 94720 .AB .FS * UNIX is a trademark of Bell Laboratories. .FE .FS \(dg William N. Joy is currently employed by: Sun Microsystems, Inc, 2550 Garcia Avenue, Mountain View, CA 94043 .FE .FS \(dd Samuel J. Leffler is currently employed by: Lucasfilm Ltd., PO Box 2009, San Rafael, CA 94912 .FE .FS This work was done under grants from the National Science Foundation under grant MCS80-05144, and the Defense Advance Research Projects Agency (DoD) under ARPA Order No. 4031 monitored by Naval Electronic System Command under Contract No. N00039-82-C-0235. .FE A reimplementation of the UNIX file system is described. The reimplementation provides substantially higher throughput rates by using more flexible allocation policies that allow better locality of reference and can be adapted to a wide range of peripheral and processor characteristics. The new file system clusters data that is sequentially accessed and provides two block sizes to allow fast access to large files while not wasting large amounts of space for small files. File access rates of up to ten times faster than the traditional UNIX file system are experienced. Long needed enhancements to the programmers' interface are discussed. These include a mechanism to place advisory locks on files, extensions of the name space across file systems, the ability to use long file names, and provisions for administrative control of resource usage. .sp .LP Revised February 18, 1984 .AE .LP .sp 2 CR Categories and Subject Descriptors: D.4.3 .B "[Operating Systems]": File Systems Management \- .I "file organization, directory structures, access methods"; D.4.2 .B "[Operating Systems]": Storage Management \- .I "allocation/deallocation strategies, secondary storage devices"; D.4.8 .B "[Operating Systems]": Performance \- .I "measurements, operational analysis"; H.3.2 .B "[Information Systems]": Information Storage \- .I "file organization" .sp Additional Keywords and Phrases: UNIX, file system organization, file system performance, file system design, application program interface. .sp General Terms: file system, measurement, performance. .bp .ce .B "TABLE OF CONTENTS" .LP .sp 1 .nf .B "1. Introduction" .LP .sp .5v .nf .B "2. Old file system .LP .sp .5v .nf .B "3. New file system organization 3.1. Optimizing storage utilization 3.2. File system parameterization 3.3. Layout policies .LP .sp .5v .nf .B "4. Performance .LP .sp .5v .nf .B "5. File system functional enhancements 5.1. Long file names 5.2. File locking 5.3. Symbolic links 5.4. Rename 5.5. Quotas .LP .sp .5v .nf .B References #]Olo렁$ #N#N# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)1.t 6.1 (Berkeley) 5/14/86 .\" .ds RH Introduction .NH Introduction .PP This paper describes the changes from the original 512 byte UNIX file system to the new one released with the 4.2 Berkeley Software Distribution. It presents the motivations for the changes, the methods used to effect these changes, the rationale behind the design decisions, and a description of the new implementation. This discussion is followed by a summary of the results that have been obtained, directions for future work, and the additions and changes that have been made to the facilities that are available to programmers. .PP The original UNIX system that runs on the PDP-11\(dg .FS \(dg DEC, PDP, VAX, MASSBUS, and UNIBUS are trademarks of Digital Equipment Corporation. .FE has simple and elegant file system facilities. File system input/output is buffered by the kernel; there are no alignment constraints on data transfers and all operations are made to appear synchronous. All transfers to the disk are in 512 byte blocks, which can be placed arbitrarily within the data area of the file system. Virtually no constraints other than available disk space are placed on file growth [Ritchie74], [Thompson78].* .FS * In practice, a file's size is constrained to be less than about one gigabyte. .FE .PP When used on the VAX-11 together with other UNIX enhancements, the original 512 byte UNIX file system is incapable of providing the data throughput rates that many applications require. For example, applications such as VLSI design and image processing do a small amount of processing on a large quantities of data and need to have a high throughput from the file system. High throughput rates are also needed by programs that map files from the file system into large virtual address spaces. Paging data in and out of the file system is likely to occur frequently [Ferrin82b]. This requires a file system providing higher bandwidth than the original 512 byte UNIX one that provides only about two percent of the maximum disk bandwidth or about 20 kilobytes per second per arm [White80], [Smith81b]. .PP Modifications have been made to the UNIX file system to improve its performance. Since the UNIX file system interface is well understood and not inherently slow, this development retained the abstraction and simply changed the underlying implementation to increase its throughput. Consequently, users of the system have not been faced with massive software conversion. .PP Problems with file system performance have been dealt with extensively in the literature; see [Smith81a] for a survey. Previous work to improve the UNIX file system performance has been done by [Ferrin82a]. The UNIX operating system drew many of its ideas from Multics, a large, high performance operating system [Feiertag71]. Other work includes Hydra [Almes78], Spice [Thompson80], and a file system for a LISP environment [Symbolics81]. A good introduction to the physical latencies of disks is described in [Pechura83]. .ds RH Old file system .sp 2 .ne 1i #]Tlo䢁$ #N#N#  .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)2.t 6.1 (Berkeley) 5/14/86 .\" .ds RH Old file system .NH Old File System .PP In the file system developed at Bell Laboratories (the ``traditional'' file system), each disk drive is divided into one or more partitions. Each of these disk partitions may contain one file system. A file system never spans multiple partitions.\(dg .FS \(dg By ``partition'' here we refer to the subdivision of physical space on a disk drive. In the traditional file system, as in the new file system, file systems are really located in logical disk partitions that may overlap. This overlapping is made available, for example, to allow programs to copy entire disk drives containing multiple file systems. .FE A file system is described by its super-block, which contains the basic parameters of the file system. These include the number of data blocks in the file system, a count of the maximum number of files, and a pointer to the \fIfree list\fP, a linked list of all the free blocks in the file system. .PP Within the file system are files. Certain files are distinguished as directories and contain pointers to files that may themselves be directories. Every file has a descriptor associated with it called an .I "inode". An inode contains information describing ownership of the file, time stamps marking last modification and access times for the file, and an array of indices that point to the data blocks for the file. For the purposes of this section, we assume that the first 8 blocks of the file are directly referenced by values stored in an inode itself*. .FS * The actual number may vary from system to system, but is usually in the range 5-13. .FE An inode may also contain references to indirect blocks containing further data block indices. In a file system with a 512 byte block size, a singly indirect block contains 128 further block addresses, a doubly indirect block contains 128 addresses of further singly indirect blocks, and a triply indirect block contains 128 addresses of further doubly indirect blocks. .PP A 150 megabyte traditional UNIX file system consists of 4 megabytes of inodes followed by 146 megabytes of data. This organization segregates the inode information from the data; thus accessing a file normally incurs a long seek from the file's inode to its data. Files in a single directory are not typically allocated consecutive slots in the 4 megabytes of inodes, causing many non-consecutive blocks of inodes to be accessed when executing operations on the inodes of several files in a directory. .PP The allocation of data blocks to files is also suboptimum. The traditional file system never transfers more than 512 bytes per disk transaction and often finds that the next sequential data block is not on the same cylinder, forcing seeks between 512 byte transfers. The combination of the small block size, limited read-ahead in the system, and many seeks severely limits file system throughput. .PP The first work at Berkeley on the UNIX file system attempted to improve both reliability and throughput. The reliability was improved by staging modifications to critical file system information so that they could either be completed or repaired cleanly by a program after a crash [Kowalski78]. The file system performance was improved by a factor of more than two by changing the basic block size from 512 to 1024 bytes. The increase was because of two factors: each disk transfer accessed twice as much data, and most files could be described without need to access indirect blocks since the direct blocks contained twice as much data. The file system with these changes will henceforth be referred to as the .I "old file system." .PP This performance improvement gave a strong indication that increasing the block size was a good method for improving throughput. Although the throughput had doubled, the old file system was still using only about four percent of the disk bandwidth. The main problem was that although the free list was initially ordered for optimal access, it quickly became scrambled as files were created and removed. Eventually the free list became entirely random, causing files to have their blocks allocated randomly over the disk. This forced a seek before every block access. Although old file systems provided transfer rates of up to 175 kilobytes per second when they were first created, this rate deteriorated to 30 kilobytes per second after a few weeks of moderate use because of this randomization of data block placement. There was no way of restoring the performance of an old file system except to dump, rebuild, and restore the file system. Another possibility, as suggested by [Maruyama76], would be to have a process that periodically reorganized the data on the disk to restore locality. .ds RH New file system .sp 2 .ne 1i #]Zloˇ$ ^(#N #N"#  0.\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)3.t 6.1 (Berkeley) 5/14/86 .\" .ds RH New file system .NH New file system organization .PP In the new file system organization (as in the old file system organization), each disk drive contains one or more file systems. A file system is described by its super-block, located at the beginning of the file system's disk partition. Because the super-block contains critical data, it is replicated to protect against catastrophic loss. This is done when the file system is created; since the super-block data does not change, the copies need not be referenced unless a head crash or other hard disk error causes the default super-block to be unusable. .PP To insure that it is possible to create files as large as $2 sup 32$ bytes with only two levels of indirection, the minimum size of a file system block is 4096 bytes. The size of file system blocks can be any power of two greater than or equal to 4096. The block size of a file system is recorded in the file system's super-block so it is possible for file systems with different block sizes to be simultaneously accessible on the same system. The block size must be decided at the time that the file system is created; it cannot be subsequently changed without rebuilding the file system. .PP The new file system organization divides a disk partition into one or more areas called .I "cylinder groups". A cylinder group is comprised of one or more consecutive cylinders on a disk. Associated with each cylinder group is some bookkeeping information that includes a redundant copy of the super-block, space for inodes, a bit map describing available blocks in the cylinder group, and summary information describing the usage of data blocks within the cylinder group. The bit map of available blocks in the cylinder group replaces the traditional file system's free list. For each cylinder group a static number of inodes is allocated at file system creation time. The default policy is to allocate one inode for each 2048 bytes of space in the cylinder group, expecting this to be far more than will ever be needed. .PP All the cylinder group bookkeeping information could be placed at the beginning of each cylinder group. However if this approach were used, all the redundant information would be on the top platter. A single hardware failure that destroyed the top platter could cause the loss of all redundant copies of the super-block. Thus the cylinder group bookkeeping information begins at a varying offset from the beginning of the cylinder group. The offset for each successive cylinder group is calculated to be about one track further from the beginning of the cylinder group than the preceding cylinder group. In this way the redundant information spirals down into the pack so that any single track, cylinder, or platter can be lost without losing all copies of the super-block. Except for the first cylinder group, the space between the beginning of the cylinder group and the beginning of the cylinder group information is used for data blocks.\(dg .FS \(dg While it appears that the first cylinder group could be laid out with its super-block at the ``known'' location, this would not work for file systems with blocks sizes of 16 kilobytes or greater. This is because of a requirement that the first 8 kilobytes of the disk be reserved for a bootstrap program and a separate requirement that the cylinder group information begin on a file system block boundary. To start the cylinder group on a file system block boundary, file systems with block sizes larger than 8 kilobytes would have to leave an empty space between the end of the boot block and the beginning of the cylinder group. Without knowing the size of the file system blocks, the system would not know what roundup function to use to find the beginning of the first cylinder group. .FE .NH 2 Optimizing storage utilization .PP Data is laid out so that larger blocks can be transferred in a single disk transaction, greatly increasing file system throughput. As an example, consider a file in the new file system composed of 4096 byte data blocks. In the old file system this file would be composed of 1024 byte blocks. By increasing the block size, disk accesses in the new file system may transfer up to four times as much information per disk transaction. In large files, several 4096 byte blocks may be allocated from the same cylinder so that even larger data transfers are possible before requiring a seek. .PP The main problem with larger blocks is that most UNIX file systems are composed of many small files. A uniformly large block size wastes space. Table 1 shows the effect of file system block size on the amount of wasted space in the file system. The files measured to obtain these figures reside on one of our time sharing systems that has roughly 1.2 gigabytes of on-line storage. The measurements are based on the active user file systems containing about 920 megabytes of formatted space. .KF .DS B .TS box; l|l|l a|n|l. Space used % waste Organization _ 775.2 Mb 0.0 Data only, no separation between files 807.8 Mb 4.2 Data only, each file starts on 512 byte boundary 828.7 Mb 6.9 Data + inodes, 512 byte block UNIX file system 866.5 Mb 11.8 Data + inodes, 1024 byte block UNIX file system 948.5 Mb 22.4 Data + inodes, 2048 byte block UNIX file system 1128.3 Mb 45.6 Data + inodes, 4096 byte block UNIX file system .TE Table 1 \- Amount of wasted space as a function of block size. .DE .KE The space wasted is calculated to be the percentage of space on the disk not containing user data. As the block size on the disk increases, the waste rises quickly, to an intolerable 45.6% waste with 4096 byte file system blocks. .PP To be able to use large blocks without undue waste, small files must be stored in a more efficient way. The new file system accomplishes this goal by allowing the division of a single file system block into one or more .I "fragments". The file system fragment size is specified at the time that the file system is created; each file system block can optionally be broken into 2, 4, or 8 fragments, each of which is addressable. The lower bound on the size of these fragments is constrained by the disk sector size, typically 512 bytes. The block map associated with each cylinder group records the space available in a cylinder group at the fragment level; to determine if a block is available, aligned fragments are examined. Figure 1 shows a piece of a map from a 4096/1024 file system. .KF .DS B .TS box; l|c c c c. Bits in map XXXX XXOO OOXX OOOO Fragment numbers 0-3 4-7 8-11 12-15 Block numbers 0 1 2 3 .TE Figure 1 \- Example layout of blocks and fragments in a 4096/1024 file system. .DE .KE Each bit in the map records the status of a fragment; an ``X'' shows that the fragment is in use, while a ``O'' shows that the fragment is available for allocation. In this example, fragments 0\-5, 10, and 11 are in use, while fragments 6\-9, and 12\-15 are free. Fragments of adjoining blocks cannot be used as a full block, even if they are large enough. In this example, fragments 6\-9 cannot be allocated as a full block; only fragments 12\-15 can be coalesced into a full block. .PP On a file system with a block size of 4096 bytes and a fragment size of 1024 bytes, a file is represented by zero or more 4096 byte blocks of data, and possibly a single fragmented block. If a file system block must be fragmented to obtain space for a small amount of data, the remaining fragments of the block are made available for allocation to other files. As an example consider an 11000 byte file stored on a 4096/1024 byte file system. This file would uses two full size blocks and one three fragment portion of another block. If no block with three aligned fragments is available at the time the file is created, a full size block is split yielding the necessary fragments and a single unused fragment. This remaining fragment can be allocated to another file as needed. .PP Space is allocated to a file when a program does a \fIwrite\fP system call. Each time data is written to a file, the system checks to see if the size of the file has increased*. .FS * A program may be overwriting data in the middle of an existing file in which case space would already have been allocated. .FE If the file needs to be expanded to hold the new data, one of three conditions exists: .IP 1) There is enough space left in an already allocated block or fragment to hold the new data. The new data is written into the available space. .IP 2) The file contains no fragmented blocks (and the last block in the file contains insufficient space to hold the new data). If space exists in a block already allocated, the space is filled with new data. If the remainder of the new data contains more than a full block of data, a full block is allocated and the first full block of new data is written there. This process is repeated until less than a full block of new data remains. If the remaining new data to be written will fit in less than a full block, a block with the necessary fragments is located, otherwise a full block is located. The remaining new data is written into the located space. .IP 3) The file contains one or more fragments (and the fragments contain insufficient space to hold the new data). If the size of the new data plus the size of the data already in the fragments exceeds the size of a full block, a new block is allocated. The contents of the fragments are copied to the beginning of the block and the remainder of the block is filled with new data. The process then continues as in (2) above. Otherwise, if the new data to be written will fit in less than a full block, a block with the necessary fragments is located, otherwise a full block is located. The contents of the existing fragments appended with the new data are written into the allocated space. .PP The problem with expanding a file one fragment at a a time is that data may be copied many times as a fragmented block expands to a full block. Fragment reallocation can be minimized if the user program writes a full block at a time, except for a partial block at the end of the file. Since file systems with different block sizes may reside on the same system, the file system interface has been extended to provide application programs the optimal size for a read or write. For files the optimal size is the block size of the file system on which the file is being accessed. For other objects, such as pipes and sockets, the optimal size is the underlying buffer size. This feature is used by the Standard Input/Output Library, a package used by most user programs. This feature is also used by certain system utilities such as archivers and loaders that do their own input and output management and need the highest possible file system bandwidth. .PP The amount of wasted space in the 4096/1024 byte new file system organization is empirically observed to be about the same as in the 1024 byte old file system organization. A file system with 4096 byte blocks and 512 byte fragments has about the same amount of wasted space as the 512 byte block UNIX file system. The new file system uses less space than the 512 byte or 1024 byte file systems for indexing information for large files and the same amount of space for small files. These savings are offset by the need to use more space for keeping track of available free blocks. The net result is about the same disk utilization when a new file system's fragment size equals an old file system's block size. .PP In order for the layout policies to be effective, a file system cannot be kept completely full. For each file system there is a parameter, termed the free space reserve, that gives the minimum acceptable percentage of file system blocks that should be free. If the number of free blocks drops below this level only the system administrator can continue to allocate blocks. The value of this parameter may be changed at any time, even when the file system is mounted and active. The transfer rates that appear in section 4 were measured on file systems kept less than 90% full (a reserve of 10%). If the number of free blocks falls to zero, the file system throughput tends to be cut in half, because of the inability of the file system to localize blocks in a file. If a file system's performance degrades because of overfilling, it may be restored by removing files until the amount of free space once again reaches the minimum acceptable level. Access rates for files created during periods of little free space may be restored by moving their data once enough space is available. The free space reserve must be added to the percentage of waste when comparing the organizations given in Table 1. Thus, the percentage of waste in an old 1024 byte UNIX file system is roughly comparable to a new 4096/512 byte file system with the free space reserve set at 5%. (Compare 11.8% wasted with the old file system to 6.9% waste + 5% reserved space in the new file system.) .NH 2 File system parameterization .PP Except for the initial creation of the free list, the old file system ignores the parameters of the underlying hardware. It has no information about either the physical characteristics of the mass storage device, or the hardware that interacts with it. A goal of the new file system is to parameterize the processor capabilities and mass storage characteristics so that blocks can be allocated in an optimum configuration-dependent way. Parameters used include the speed of the processor, the hardware support for mass storage transfers, and the characteristics of the mass storage devices. Disk technology is constantly improving and a given installation can have several different disk technologies running on a single processor. Each file system is parameterized so that it can be adapted to the characteristics of the disk on which it is placed. .PP For mass storage devices such as disks, the new file system tries to allocate new blocks on the same cylinder as the previous block in the same file. Optimally, these new blocks will also be rotationally well positioned. The distance between ``rotationally optimal'' blocks varies greatly; it can be a consecutive block or a rotationally delayed block depending on system characteristics. On a processor with an input/output channel that does not require any processor intervention between mass storage transfer requests, two consecutive disk blocks can often be accessed without suffering lost time because of an intervening disk revolution. For processors without input/output channels, the main processor must field an interrupt and prepare for a new disk transfer. The expected time to service this interrupt and schedule a new disk transfer depends on the speed of the main processor. .PP The physical characteristics of each disk include the number of blocks per track and the rate at which the disk spins. The allocation routines use this information to calculate the number of milliseconds required to skip over a block. The characteristics of the processor include the expected time to service an interrupt and schedule a new disk transfer. Given a block allocated to a file, the allocation routines calculate the number of blocks to skip over so that the next block in the file will come into position under the disk head in the expected amount of time that it takes to start a new disk transfer operation. For programs that sequentially access large amounts of data, this strategy minimizes the amount of time spent waiting for the disk to position itself. .PP To ease the calculation of finding rotationally optimal blocks, the cylinder group summary information includes a count of the available blocks in a cylinder group at different rotational positions. Eight rotational positions are distinguished, so the resolution of the summary information is 2 milliseconds for a typical 3600 revolution per minute drive. The super-block contains a vector of lists called .I "rotational layout tables". The vector is indexed by rotational position. Each component of the vector lists the index into the block map for every data block contained in its rotational position. When looking for an allocatable block, the system first looks through the summary counts for a rotational position with a non-zero block count. It then uses the index of the rotational position to find the appropriate list to use to index through only the relevant parts of the block map to find a free block. .PP The parameter that defines the minimum number of milliseconds between the completion of a data transfer and the initiation of another data transfer on the same cylinder can be changed at any time, even when the file system is mounted and active. If a file system is parameterized to lay out blocks with a rotational separation of 2 milliseconds, and the disk pack is then moved to a system that has a processor requiring 4 milliseconds to schedule a disk operation, the throughput will drop precipitously because of lost disk revolutions on nearly every block. If the eventual target machine is known, the file system can be parameterized for it even though it is initially created on a different processor. Even if the move is not known in advance, the rotational layout delay can be reconfigured after the disk is moved so that all further allocation is done based on the characteristics of the new host. .NH 2 Layout policies .PP The file system layout policies are divided into two distinct parts. At the top level are global policies that use file system wide summary information to make decisions regarding the placement of new inodes and data blocks. These routines are responsible for deciding the placement of new directories and files. They also calculate rotationally optimal block layouts, and decide when to force a long seek to a new cylinder group because there are insufficient blocks left in the current cylinder group to do reasonable layouts. Below the global policy routines are the local allocation routines that use a locally optimal scheme to lay out data blocks. .PP Two methods for improving file system performance are to increase the locality of reference to minimize seek latency as described by [Trivedi80], and to improve the layout of data to make larger transfers possible as described by [Nevalainen77]. The global layout policies try to improve performance by clustering related information. They cannot attempt to localize all data references, but must also try to spread unrelated data among different cylinder groups. If too much localization is attempted, the local cylinder group may run out of space forcing the data to be scattered to non-local cylinder groups. Taken to an extreme, total localization can result in a single huge cluster of data resembling the old file system. The global policies try to balance the two conflicting goals of localizing data that is concurrently accessed while spreading out unrelated data. .PP One allocatable resource is inodes. Inodes are used to describe both files and directories. Inodes of files in the same directory are frequently accessed together. For example, the ``list directory'' command often accesses the inode for each file in a directory. The layout policy tries to place all the inodes of files in a directory in the same cylinder group. To ensure that files are distributed throughout the disk, a different policy is used for directory allocation. A new directory is placed in a cylinder group that has a greater than average number of free inodes, and the smallest number of directories already in it. The intent of this policy is to allow the inode clustering policy to succeed most of the time. The allocation of inodes within a cylinder group is done using a next free strategy. Although this allocates the inodes randomly within a cylinder group, all the inodes for a particular cylinder group can be read with 8 to 16 disk transfers. (At most 16 disk transfers are required because a cylinder group may have no more than 2048 inodes.) This puts a small and constant upper bound on the number of disk transfers required to access the inodes for all the files in a directory. In contrast, the old file system typically requires one disk transfer to fetch the inode for each file in a directory. .PP The other major resource is data blocks. Since data blocks for a file are typically accessed together, the policy routines try to place all data blocks for a file in the same cylinder group, preferably at rotationally optimal positions in the same cylinder. The problem with allocating all the data blocks in the same cylinder group is that large files will quickly use up available space in the cylinder group, forcing a spill over to other areas. Further, using all the space in a cylinder group causes future allocations for any file in the cylinder group to also spill to other areas. Ideally none of the cylinder groups should ever become completely full. The heuristic solution chosen is to redirect block allocation to a different cylinder group when a file exceeds 48 kilobytes, and at every megabyte thereafter.* .FS * The first spill over point at 48 kilobytes is the point at which a file on a 4096 byte block file system first requires a single indirect block. This appears to be a natural first point at which to redirect block allocation. The other spillover points are chosen with the intent of forcing block allocation to be redirected when a file has used about 25% of the data blocks in a cylinder group. In observing the new file system in day to day use, the heuristics appear to work well in minimizing the number of completely filled cylinder groups. .FE The newly chosen cylinder group is selected from those cylinder groups that have a greater than average number of free blocks left. Although big files tend to be spread out over the disk, a megabyte of data is typically accessible before a long seek must be performed, and the cost of one long seek per megabyte is small. .PP The global policy routines call local allocation routines with requests for specific blocks. The local allocation routines will always allocate the requested block if it is free, otherwise it allocates a free block of the requested size that is rotationally closest to the requested block. If the global layout policies had complete information, they could always request unused blocks and the allocation routines would be reduced to simple bookkeeping. However, maintaining complete information is costly; thus the implementation of the global layout policy uses heuristics that employ only partial information. .PP If a requested block is not available, the local allocator uses a four level allocation strategy: .IP 1) Use the next available block rotationally closest to the requested block on the same cylinder. It is assumed here that head switching time is zero. On disk controllers where this is not the case, it may be possible to incorporate the time required to switch between disk platters when constructing the rotational layout tables. This, however, has not yet been tried. .IP 2) If there are no blocks available on the same cylinder, use a block within the same cylinder group. .IP 3) If that cylinder group is entirely full, quadratically hash the cylinder group number to choose another cylinder group to look for a free block. .IP 4) Finally if the hash fails, apply an exhaustive search to all cylinder groups. .PP Quadratic hash is used because of its speed in finding unused slots in nearly full hash tables [Knuth75]. File systems that are parameterized to maintain at least 10% free space rarely use this strategy. File systems that are run without maintaining any free space typically have so few free blocks that almost any allocation is random; the most important characteristic of the strategy used under such conditions is that the strategy be fast. .ds RH Performance .sp 2 .ne 1i #]slo$ %#N##N##  > .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)4.t 6.1 (Berkeley) 5/14/86 .\" .ds RH Performance .NH Performance .PP Ultimately, the proof of the effectiveness of the algorithms described in the previous section is the long term performance of the new file system. .PP Our empirical studies have shown that the inode layout policy has been effective. When running the ``list directory'' command on a large directory that itself contains many directories (to force the system to access inodes in multiple cylinder groups), the number of disk accesses for inodes is cut by a factor of two. The improvements are even more dramatic for large directories containing only files, disk accesses for inodes being cut by a factor of eight. This is most encouraging for programs such as spooling daemons that access many small files, since these programs tend to flood the disk request queue on the old file system. .PP Table 2 summarizes the measured throughput of the new file system. Several comments need to be made about the conditions under which these tests were run. The test programs measure the rate at which user programs can transfer data to or from a file without performing any processing on it. These programs must read and write enough data to insure that buffering in the operating system does not affect the results. They are also run at least three times in succession; the first to get the system into a known state and the second two to insure that the experiment has stabilized and is repeatable. The tests used and their results are discussed in detail in [Kridle83]\(dg. .FS \(dg A UNIX command that is similar to the reading test that we used is ``cp file /dev/null'', where ``file'' is eight megabytes long. .FE The systems were running multi-user but were otherwise quiescent. There was no contention for either the CPU or the disk arm. The only difference between the UNIBUS and MASSBUS tests was the controller. All tests used an AMPEX Capricorn 330 megabyte Winchester disk. As Table 2 shows, all file system test runs were on a VAX 11/750. All file systems had been in production use for at least a month before being measured. The same number of system calls were performed in all tests; the basic system call overhead was a negligible portion of the total running time of the tests. .KF .DS B .TS box; c c|c s s c c|c c c. Type of Processor and Read File System Bus Measured Speed Bandwidth % CPU _ old 1024 750/UNIBUS 29 Kbytes/sec 29/983 3% 11% new 4096/1024 750/UNIBUS 221 Kbytes/sec 221/983 22% 43% new 8192/1024 750/UNIBUS 233 Kbytes/sec 233/983 24% 29% new 4096/1024 750/MASSBUS 466 Kbytes/sec 466/983 47% 73% new 8192/1024 750/MASSBUS 466 Kbytes/sec 466/983 47% 54% .TE .ce 1 Table 2a \- Reading rates of the old and new UNIX file systems. .TS box; c c|c s s c c|c c c. Type of Processor and Write File System Bus Measured Speed Bandwidth % CPU _ old 1024 750/UNIBUS 48 Kbytes/sec 48/983 5% 29% new 4096/1024 750/UNIBUS 142 Kbytes/sec 142/983 14% 43% new 8192/1024 750/UNIBUS 215 Kbytes/sec 215/983 22% 46% new 4096/1024 750/MASSBUS 323 Kbytes/sec 323/983 33% 94% new 8192/1024 750/MASSBUS 466 Kbytes/sec 466/983 47% 95% .TE .ce 1 Table 2b \- Writing rates of the old and new UNIX file systems. .DE .KE .PP Unlike the old file system, the transfer rates for the new file system do not appear to change over time. The throughput rate is tied much more strongly to the amount of free space that is maintained. The measurements in Table 2 were based on a file system with a 10% free space reserve. Synthetic work loads suggest that throughput deteriorates to about half the rates given in Table 2 when the file systems are full. .PP The percentage of bandwidth given in Table 2 is a measure of the effective utilization of the disk by the file system. An upper bound on the transfer rate from the disk is calculated by multiplying the number of bytes on a track by the number of revolutions of the disk per second. The bandwidth is calculated by comparing the data rates the file system is able to achieve as a percentage of this rate. Using this metric, the old file system is only able to use about 3\-5% of the disk bandwidth, while the new file system uses up to 47% of the bandwidth. .PP Both reads and writes are faster in the new system than in the old system. The biggest factor in this speedup is because of the larger block size used by the new file system. The overhead of allocating blocks in the new system is greater than the overhead of allocating blocks in the old system, however fewer blocks need to be allocated in the new system because they are bigger. The net effect is that the cost per byte allocated is about the same for both systems. .PP In the new file system, the reading rate is always at least as fast as the writing rate. This is to be expected since the kernel must do more work when allocating blocks than when simply reading them. Note that the write rates are about the same as the read rates in the 8192 byte block file system; the write rates are slower than the read rates in the 4096 byte block file system. The slower write rates occur because the kernel has to do twice as many disk allocations per second, making the processor unable to keep up with the disk transfer rate. .PP In contrast the old file system is about 50% faster at writing files than reading them. This is because the write system call is asynchronous and the kernel can generate disk transfer requests much faster than they can be serviced, hence disk transfers queue up in the disk buffer cache. Because the disk buffer cache is sorted by minimum seek distance, the average seek between the scheduled disk writes is much less than it would be if the data blocks were written out in the random disk order in which they are generated. However when the file is read, the read system call is processed synchronously so the disk blocks must be retrieved from the disk in the non-optimal seek order in which they are requested. This forces the disk scheduler to do long seeks resulting in a lower throughput rate. .PP In the new system the blocks of a file are more optimally ordered on the disk. Even though reads are still synchronous, the requests are presented to the disk in a much better order. Even though the writes are still asynchronous, they are already presented to the disk in minimum seek order so there is no gain to be had by reordering them. Hence the disk seek latencies that limited the old file system have little effect in the new file system. The cost of allocation is the factor in the new system that causes writes to be slower than reads. .PP The performance of the new file system is currently limited by memory to memory copy operations required to move data from disk buffers in the system's address space to data buffers in the user's address space. These copy operations account for about 40% of the time spent performing an input/output operation. If the buffers in both address spaces were properly aligned, this transfer could be performed without copying by using the VAX virtual memory management hardware. This would be especially desirable when transferring large amounts of data. We did not implement this because it would change the user interface to the file system in two major ways: user programs would be required to allocate buffers on page boundaries, and data would disappear from buffers after being written. .PP Greater disk throughput could be achieved by rewriting the disk drivers to chain together kernel buffers. This would allow contiguous disk blocks to be read in a single disk transaction. Many disks used with UNIX systems contain either 32 or 48 512 byte sectors per track. Each track holds exactly two or three 8192 byte file system blocks, or four or six 4096 byte file system blocks. The inability to use contiguous disk blocks effectively limits the performance on these disks to less than 50% of the available bandwidth. If the next block for a file cannot be laid out contiguously, then the minimum spacing to the next allocatable block on any platter is between a sixth and a half a revolution. The implication of this is that the best possible layout without contiguous blocks uses only half of the bandwidth of any given track. If each track contains an odd number of sectors, then it is possible to resolve the rotational delay to any number of sectors by finding a block that begins at the desired rotational position on another track. The reason that block chaining has not been implemented is because it would require rewriting all the disk drivers in the system, and the current throughput rates are already limited by the speed of the available processors. .PP Currently only one block is allocated to a file at a time. A technique used by the DEMOS file system when it finds that a file is growing rapidly, is to preallocate several blocks at once, releasing them when the file is closed if they remain unused. By batching up allocations, the system can reduce the overhead of allocating at each write, and it can cut down on the number of disk writes needed to keep the block pointers on the disk synchronized with the block allocation [Powell79]. This technique was not included because block allocation currently accounts for less than 10% of the time spent in a write system call and, once again, the current throughput rates are already limited by the speed of the available processors. .ds RH Functional enhancements .sp 2 .ne 1i #]~loT$ , #N$#N%#  \ .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)5.t 6.1 (Berkeley) 5/14/86 .\" .ds RH Functional enhancements .NH File system functional enhancements .PP The performance enhancements to the UNIX file system did not require any changes to the semantics or data structures visible to application programs. However, several changes had been generally desired for some time but had not been introduced because they would require users to dump and restore all their file systems. Since the new file system already required all existing file systems to be dumped and restored, these functional enhancements were introduced at this time. .NH 2 Long file names .PP File names can now be of nearly arbitrary length. Only programs that read directories are affected by this change. To promote portability to UNIX systems that are not running the new file system, a set of directory access routines have been introduced to provide a consistent interface to directories on both old and new systems. .PP Directories are allocated in 512 byte units called chunks. This size is chosen so that each allocation can be transferred to disk in a single operation. Chunks are broken up into variable length records termed directory entries. A directory entry contains the information necessary to map the name of a file to its associated inode. No directory entry is allowed to span multiple chunks. The first three fields of a directory entry are fixed length and contain: an inode number, the size of the entry, and the length of the file name contained in the entry. The remainder of an entry is variable length and contains a null terminated file name, padded to a 4 byte boundary. The maximum length of a file name in a directory is currently 255 characters. .PP Available space in a directory is recorded by having one or more entries accumulate the free space in their entry size fields. This results in directory entries that are larger than required to hold the entry name plus fixed length fields. Space allocated to a directory should always be completely accounted for by totaling up the sizes of its entries. When an entry is deleted from a directory, its space is returned to a previous entry in the same directory chunk by increasing the size of the previous entry by the size of the deleted entry. If the first entry of a directory chunk is free, then the entry's inode number is set to zero to indicate that it is unallocated. .NH 2 File locking .PP The old file system had no provision for locking files. Processes that needed to synchronize the updates of a file had to use a separate ``lock'' file. A process would try to create a ``lock'' file. If the creation succeeded, then the process could proceed with its update; if the creation failed, then the process would wait and try again. This mechanism had three drawbacks. Processes consumed CPU time by looping over attempts to create locks. Locks left lying around because of system crashes had to be manually removed (normally in a system startup command script). Finally, processes running as system administrator are always permitted to create files, so were forced to use a different mechanism. While it is possible to get around all these problems, the solutions are not straight forward, so a mechanism for locking files has been added. .PP The most general schemes allow multiple processes to concurrently update a file. Several of these techniques are discussed in [Peterson83]. A simpler technique is to serialize access to a file with locks. To attain reasonable efficiency, certain applications require the ability to lock pieces of a file. Locking down to the byte level has been implemented in the Onyx file system by [Bass81]. However, for the standard system applications, a mechanism that locks at the granularity of a file is sufficient. .PP Locking schemes fall into two classes, those using hard locks and those using advisory locks. The primary difference between advisory locks and hard locks is the extent of enforcement. A hard lock is always enforced when a program tries to access a file; an advisory lock is only applied when it is requested by a program. Thus advisory locks are only effective when all programs accessing a file use the locking scheme. With hard locks there must be some override policy implemented in the kernel. With advisory locks the policy is left to the user programs. In the UNIX system, programs with system administrator privilege are allowed override any protection scheme. Because many of the programs that need to use locks must also run as the system administrator, we chose to implement advisory locks rather than create an additional protection scheme that was inconsistent with the UNIX philosophy or could not be used by system administration programs. .PP The file locking facilities allow cooperating programs to apply advisory .I shared or .I exclusive locks on files. Only one process may have an exclusive lock on a file while multiple shared locks may be present. Both shared and exclusive locks cannot be present on a file at the same time. If any lock is requested when another process holds an exclusive lock, or an exclusive lock is requested when another process holds any lock, the lock request will block until the lock can be obtained. Because shared and exclusive locks are advisory only, even if a process has obtained a lock on a file, another process may access the file. .PP Locks are applied or removed only on open files. This means that locks can be manipulated without needing to close and reopen a file. This is useful, for example, when a process wishes to apply a shared lock, read some information and determine whether an update is required, then apply an exclusive lock and update the file. .PP A request for a lock will cause a process to block if the lock can not be immediately obtained. In certain instances this is unsatisfactory. For example, a process that wants only to check if a lock is present would require a separate mechanism to find out this information. Consequently, a process may specify that its locking request should return with an error if a lock can not be immediately obtained. Being able to conditionally request a lock is useful to ``daemon'' processes that wish to service a spooling area. If the first instance of the daemon locks the directory where spooling takes place, later daemon processes can easily check to see if an active daemon exists. Since locks exist only while the locking processes exist, lock files can never be left active after the processes exit or if the system crashes. .PP Almost no deadlock detection is attempted. The only deadlock detection done by the system is that the file to which a lock is applied must not already have a lock of the same type (i.e. the second of two successive calls to apply a lock of the same type will fail). .NH 2 Symbolic links .PP The traditional UNIX file system allows multiple directory entries in the same file system to reference a single file. Each directory entry ``links'' a file's name to an inode and its contents. The link concept is fundamental; inodes do not reside in directories, but exist separately and are referenced by links. When all the links to an inode are removed, the inode is deallocated. This style of referencing an inode does not allow references across physical file systems, nor does it support inter-machine linkage. To avoid these limitations .I "symbolic links" similar to the scheme used by Multics [Feiertag71] have been added. .PP A symbolic link is implemented as a file that contains a pathname. When the system encounters a symbolic link while interpreting a component of a pathname, the contents of the symbolic link is prepended to the rest of the pathname, and this name is interpreted to yield the resulting pathname. In UNIX, pathnames are specified relative to the root of the file system hierarchy, or relative to a process's current working directory. Pathnames specified relative to the root are called absolute pathnames. Pathnames specified relative to the current working directory are termed relative pathnames. If a symbolic link contains an absolute pathname, the absolute pathname is used, otherwise the contents of the symbolic link is evaluated relative to the location of the link in the file hierarchy. .PP Normally programs do not want to be aware that there is a symbolic link in a pathname that they are using. However certain system utilities must be able to detect and manipulate symbolic links. Three new system calls provide the ability to detect, read, and write symbolic links; seven system utilities required changes to use these calls. .PP In future Berkeley software distributions it may be possible to reference file systems located on remote machines using pathnames. When this occurs, it will be possible to create symbolic links that span machines. .NH 2 Rename .PP Programs that create a new version of an existing file typically create the new version as a temporary file and then rename the temporary file with the name of the target file. In the old UNIX file system renaming required three calls to the system. If a program were interrupted or the system crashed between these calls, the target file could be left with only its temporary name. To eliminate this possibility the \fIrename\fP system call has been added. The rename call does the rename operation in a fashion that guarantees the existence of the target name. .PP Rename works both on data files and directories. When renaming directories, the system must do special validation checks to insure that the directory tree structure is not corrupted by the creation of loops or inaccessible directories. Such corruption would occur if a parent directory were moved into one of its descendants. The validation check requires tracing the descendents of the target directory to insure that it does not include the directory being moved. .NH 2 Quotas .PP The UNIX system has traditionally attempted to share all available resources to the greatest extent possible. Thus any single user can allocate all the available space in the file system. In certain environments this is unacceptable. Consequently, a quota mechanism has been added for restricting the amount of file system resources that a user can obtain. The quota mechanism sets limits on both the number of inodes and the number of disk blocks that a user may allocate. A separate quota can be set for each user on each file system. Resources are given both a hard and a soft limit. When a program exceeds a soft limit, a warning is printed on the users terminal; the offending program is not terminated unless it exceeds its hard limit. The idea is that users should stay below their soft limit between login sessions, but they may use more resources while they are actively working. To encourage this behavior, users are warned when logging in if they are over any of their soft limits. If users fails to correct the problem for too many login sessions, they are eventually reprimanded by having their soft limit enforced as their hard limit. .ds RH Acknowledgements .sp 2 .ne 1i #]lo$ #N&#N'# .\" Copyright (c) 1986 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)6.t 6.1 (Berkeley) 5/14/86 .\" .nr H2 1 .ds RH Acknowledgements .SH \s+2Acknowledgements\s0 .PP We thank Robert Elz for his ongoing interest in the new file system, and for adding disk quotas in a rational and efficient manner. We also acknowledge Dennis Ritchie for his suggestions on the appropriate modifications to the user interface. We appreciate Michael Powell's explanations on how the DEMOS file system worked; many of his ideas were used in this implementation. Special commendation goes to Peter Kessler and Robert Henry for acting like real users during the early debugging stage when file systems were less stable than they should have been. The criticisms and suggestions by the reviews contributed significantly to the coherence of the paper. Finally we thank our sponsors, the National Science Foundation under grant MCS80-05144, and the Defense Advance Research Projects Agency (DoD) under ARPA Order No. 4031 monitored by Naval Electronic System Command under Contract No. N00039-82-C-0235. .ds RH References .nr H2 1 .sp 2 .SH \s+2References\s0 .LP .IP [Almes78] 20 Almes, G., and Robertson, G. "An Extensible File System for Hydra" Proceedings of the Third International Conference on Software Engineering, IEEE, May 1978. .IP [Bass81] 20 Bass, J. "Implementation Description for File Locking", Onyx Systems Inc, 73 E. Trimble Rd, San Jose, CA 95131 Jan 1981. .IP [Feiertag71] 20 Feiertag, R. J. and Organick, E. I., "The Multics Input-Output System", Proceedings of the Third Symposium on Operating Systems Principles, ACM, Oct 1971. pp 35-41 .IP [Ferrin82a] 20 Ferrin, T.E., "Performance and Robustness Improvements in Version 7 UNIX", Computer Graphics Laboratory Technical Report 2, School of Pharmacy, University of California, San Francisco, January 1982. Presented at the 1982 Winter Usenix Conference, Santa Monica, California. .IP [Ferrin82b] 20 Ferrin, T.E., "Performance Issuses of VMUNIX Revisited", ;login: (The Usenix Association Newsletter), Vol 7, #5, November 1982. pp 3-6 .IP [Kridle83] 20 Kridle, R., and McKusick, M., "Performance Effects of Disk Subsystem Choices for VAX Systems Running 4.2BSD UNIX", Computer Systems Research Group, Dept of EECS, Berkeley, CA 94720, Technical Report #8. .IP [Kowalski78] 20 Kowalski, T. "FSCK - The UNIX System Check Program", Bell Laboratory, Murray Hill, NJ 07974. March 1978 .IP [Knuth75] 20 Kunth, D. "The Art of Computer Programming", Volume 3 - Sorting and Searching, Addison-Wesley Publishing Company Inc, Reading, Mass, 1975. pp 506-549 .IP [Maruyama76] Maruyama, K., and Smith, S. "Optimal reorganization of Distributed Space Disk Files", CACM, 19, 11. Nov 1976. pp 634-642 .IP [Nevalainen77] 20 Nevalainen, O., Vesterinen, M. "Determining Blocking Factors for Sequential Files by Heuristic Methods", The Computer Journal, 20, 3. Aug 1977. pp 245-247 .IP [Pechura83] 20 Pechura, M., and Schoeffler, J. "Estimating File Access Time of Floppy Disks", CACM, 26, 10. Oct 1983. pp 754-763 .IP [Peterson83] 20 Peterson, G. "Concurrent Reading While Writing", ACM Transactions on Programming Languages and Systems, ACM, 5, 1. Jan 1983. pp 46-55 .IP [Powell79] 20 Powell, M. "The DEMOS File System", Proceedings of the Sixth Symposium on Operating Systems Principles, ACM, Nov 1977. pp 33-42 .IP [Ritchie74] 20 Ritchie, D. M. and Thompson, K., "The UNIX Time-Sharing System", CACM 17, 7. July 1974. pp 365-375 .IP [Smith81a] 20 Smith, A. "Input/Output Optimization and Disk Architectures: A Survey", Performance and Evaluation 1. Jan 1981. pp 104-117 .IP [Smith81b] 20 Smith, A. "Bibliography on File and I/O System Optimization and Related Topics", Operating Systems Review, 15, 4. Oct 1981. pp 39-54 .IP [Symbolics81] 20 "Symbolics File System", Symbolics Inc, 9600 DeSoto Ave, Chatsworth, CA 91311 Aug 1981. .IP [Thompson78] 20 Thompson, K. "UNIX Implementation", Bell System Technical Journal, 57, 6, part 2. pp 1931-1946 July-August 1978. .IP [Thompson80] 20 Thompson, M. "Spice File System", Carnegie-Mellon University, Department of Computer Science, Pittsburg, PA 15213 #CMU-CS-80, Sept 1980. .IP [Trivedi80] 20 Trivedi, K. "Optimal Selection of CPU Speed, Device Capabilities, and File Assignments", Journal of the ACM, 27, 3. July 1980. pp 457-473 .IP [White80] 20 White, R. M. "Disk Storage Technology", Scientific American, 243(2), August 1980. #]lo$ #N(#N(# # # Copyright (c) 1986 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)Makefile 5.2 (Berkeley) 5/20/86 # SRCS= 0.t 1.t 2.t 3.t 4.t 5.t 6.t MACROS= -msU PRINTER=Pdp EQN= deqn -${PRINTER} TBL= dtbl -${PRINTER} TROFF= ditroff -${PRINTER} paper: paper.${PRINTER} lpr -${PRINTER} -n paper.${PRINTER} paper.${PRINTER}: ${SRCS} ${TBL} ${SRCS} | ${EQN} | ${TROFF} ${MACROS} -t > paper.${PRINTER} clean: rm -f paper.[PT]* *.spell errs Errs make.out spell: ${SRCS} @for i in ${SRCS}; do \ echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ done #]loL$ ##Of#Of#.\" @(#)e.mac 6.1 (Berkeley) 5/22/86 .\" .ds . \&\s+2.\s0\& .de UC \&\\$3\s-1\\$1\s0\\$2 .. .de UL .if t \&\\$3\f3\\$1\f1\\$2 .if n \&\\$3\f2\\$1\f1\\$2 .. .de IT \&\\$3\f2\\$1\fP\\$2 .. .de UI \f3\\$1\fI\\$2\fR\\$3 .. .de P1 .if n .ls 1 .nf .if n .ta 5 10 15 20 25 30 35 40 45 50 55 60 .if t .ta .3i .6i .9i 1.2i 1.5i 1.8i .tr -\- . use first argument as indent if present .if \\n(.$ .DS I \\$1 .if !\\n(.$ .DS I 5 .bd 1 2 .. .de P2 .br .bd 1 2 .DE .bd 1 .tr -- .if n .ls 2 .. .hy 14 . 2=not last lines; 4= no -xx; 8=no xx- .tr *\(** .nr PI .2i #]lo&$ >#Og#Og#.\" @(#)e0 6.1 (Berkeley) 5/22/86 .\" .EH 'USD:12-%''A Tutorial Introduction to the \s-2UNIX\s+2 Text Editor' .OH 'A Tutorial Introduction to the \s-2UNIX\s+2 Text Editor''USD:12-%' .\".RP .TL A Tutorial Introduction to the \s-2UNIX\s+2 Text Editor .AU Brian W. Kernighan .AI .MH .AB .PP Almost all text input on the .UX operating system is done with the text-editor .IT ed . This memorandum is a tutorial guide to help beginners get started with text editing. .PP Although it does not cover everything, it does discuss enough for most users' day-to-day needs. This includes printing, appending, changing, deleting, moving and inserting entire lines of text; reading and writing files; context searching and line addressing; the substitute command; the global commands; and the use of special characters for advanced editing. .AE #]loခ$ x#Oh#Oh# 0 .\" @(#)e1 6.1 (Berkeley) 5/22/86 .\" .nr PS 9 .nr VS 11 .if t .2C .SH Introduction .PP .ul Ed is a ``text editor'', that is, an interactive program for creating and modifying ``text'', using directions provided by a user at a terminal. The text is often a document like this one, or a program or perhaps data for a program. .PP This introduction is meant to simplify learning .ul ed. The recommended way to learn .ul ed is to read this document, simultaneously using .ul ed to follow the examples, then to read the description in section I of the .ul .UC UNIX .ul Programmer's Manual, all the while experimenting with .ul ed. (Solicitation of advice from experienced users is also useful.) .PP Do the exercises! They cover material not completely discussed in the actual text. An appendix summarizes the commands. .SH Disclaimer .PP This is an introduction and a tutorial. For this reason, no attempt is made to cover more than a part of the facilities that .ul ed offers (although this fraction includes the most useful and frequently used parts). When you have mastered the Tutorial, try .ul Advanced Editing on .ul .UC UNIX . Also, there is not enough space to explain basic .UC UNIX procedures. We will assume that you know how to log on to .UC UNIX , and that you have at least a vague understanding of what a file is. For more on that, read .ul .UC UNIX .ul for Beginners. .PP You must also know what character to type as the end-of-line on your particular terminal. This character is the .UC RETURN key on most terminals. Throughout, we will refer to this character, whatever it is, as .UC RETURN . .SH Getting Started .PP We'll assume that you have logged in to your system and it has just printed the prompt character, usually either a .UL $ or a .UL % . The easiest way to get .ul ed is to type .P1 ed (followed by a return) .P2 You are now ready to go \- .ul ed is waiting for you to tell it what to do. .SH Creating Text \- the Append command ``a'' .PP As your first problem, suppose you want to create some text starting from scratch. Perhaps you are typing the very first draft of a paper; clearly it will have to start somewhere, and undergo modifications later. This section will show how to get some text in, just to get started. Later we'll talk about how to change it. .PP When .ul ed is first started, it is rather like working with a blank piece of paper \- there is no text or information present. This must be supplied by the person using .ul ed; it is usually done by typing in the text, or by reading it into .ul ed from a file. We will start by typing in some text, and return shortly to how to read files. .PP First a bit of terminology. In .ul ed jargon, the text being worked on is said to be ``kept in a buffer.'' Think of the buffer as a work space, if you like, or simply as the information that you are going to be editing. In effect the buffer is like the piece of paper, on which we will write things, then change some of them, and finally file the whole thing away for another day. .PP The user tells .ul ed what to do to his text by typing instructions called ``commands.'' Most commands consist of a single letter, which must be typed in lower case. Each command is typed on a separate line. (Sometimes the command is preceded by information about what line or lines of text are to be affected \- we will discuss these shortly.) .ul Ed makes no response to most commands \- there is no prompting or typing of messages like ``ready''. (This silence is preferred by experienced users, but sometimes a hangup for beginners.) .PP The first command is .ul append, written as the letter .P1 a .P2 all by itself. It means ``append (or add) text lines to the buffer, as I type them in.'' Appending is rather like writing fresh material on a piece of paper. .PP So to enter lines of text into the buffer, just type an .UL a followed by a .UC RETURN , followed by the lines of text you want, like this: .P1 a Now is the time for all good men to come to the aid of their party. \*. .P2 .PP The only way to stop appending is to type a line that contains only a period. The ``\*.'' is used to tell .ul ed that you have finished appending. (Even experienced users forget that terminating ``\*.'' sometimes. If .ul ed seems to be ignoring you, type an extra line with just ``\*.'' on it. You may then find you've added some garbage lines to your text, which you'll have to take out later.) .PP After the append command has been done, the buffer will contain the three lines .P1 Now is the time for all good men to come to the aid of their party. .P2 The .UL a '' `` and ``\*.'' aren't there, because they are not text. .PP To add more text to what you already have, just issue another .UL a command, and continue typing. .SH Error Messages \- ``?'' .PP If at any time you make an error in the commands you type to .ul ed, it will tell you by typing .P1 ? .P2 This is about as cryptic as it can be, but with practice, you can usually figure out how you goofed. #]loh$ x#Oi#Oj# 8.\" @(#)e2 6.1 (Berkeley) 5/22/86 .\" .SH Writing text out as a file \- the Write command ``w'' .PP It's likely that you'll want to save your text for later use. To write out the contents of the buffer onto a file, use the .ul write command .P1 w .P2 followed by the filename you want to write on. This will copy the buffer's contents onto the specified file (destroying any previous information on the file). To save the text on a file named .UL junk , for example, type .P1 w junk .P2 Leave a space between .UL w and the file name. .ul Ed will respond by printing the number of characters it wrote out. In this case, .ul ed would respond with .P1 68 .P2 (Remember that blanks and the return character at the end of each line are included in the character count.) Writing a file just makes a copy of the text \- the buffer's contents are not disturbed, so you can go on adding lines to it. This is an important point. .ul Ed at all times works on a copy of a file, not the file itself. No change in the contents of a file takes place until you give a .UL w command. (Writing out the text onto a file from time to time as it is being created is a good idea, since if the system crashes or if you make some horrible mistake, you will lose all the text in the buffer but any text that was written onto a file is relatively safe.) .SH Leaving ed \- the Quit command ``q'' .PP To terminate a session with .IT ed , save the text you're working on by writing it onto a file using the .UL w command, and then type the command .P1 q .P2 which stands for .IT quit . The system will respond with the prompt character .UL $ "" ( or .UL % ). At this point your buffer vanishes, with all its text, which is why you want to write it out before quitting.\(dg .FS \(dg Actually, .IT ed will print .UL ? if you try to quit without writing. At that point, write if you want; if not, another .UL q will get you out regardless. .FE .SH Exercise 1: .PP Enter .ul ed and create some text using .P1 a \&. . . text . . . \&\fB.\fR .P2 Write it out using .UL w . Then leave .ul ed with the .UL q command, and print the file, to see that everything worked. (To print a file, say .P1 pr filename .P2 or .P1 cat filename .P2 in response to the prompt character. Try both.) .SH Reading text from a file \- the Edit command ``e'' .PP A common way to get text into the buffer is to read it from a file in the file system. This is what you do to edit text that you saved with the .UL w command in a previous session. The .ul edit command .UL e fetches the entire contents of a file into the buffer. So if you had saved the three lines ``Now is the time'', etc., with a .UL w command in an earlier session, the .ul ed command .P1 e junk .P2 would fetch the entire contents of the file .UL junk into the buffer, and respond .P1 68 .P2 which is the number of characters in .UL junk . .ul If anything was already in the buffer, it is deleted first. .PP If you use the .UL e command to read a file into the buffer, then you need not use a file name after a subsequent .UL w command; .ul ed remembers the last file name used in an .UL e command, and .UL w will write on this file. Thus a good way to operate is .P1 ed e file [editing session] w q .P2 This way, you can simply say .UL w from time to time, and be secure in the knowledge that if you got the file name right at the beginning, you are writing into the proper file each time. .PP You can find out at any time what file name .ul ed is remembering by typing the .ul file command .UL f . In this example, if you typed .P1 f .P2 .ul ed would reply .P1 junk .P2 .SH Reading text from a file \- the Read command ``r'' .PP Sometimes you want to read a file into the buffer without destroying anything that is already there. This is done by the .ul read command .UL r . The command .P1 r junk .P2 will read the file .UL junk into the buffer; it adds it to the end of whatever is already in the buffer. So if you do a read after an edit: .P1 e junk r junk .P2 the buffer will contain .ul two copies of the text (six lines). .P1 Now is the time for all good men to come to the aid of their party. Now is the time for all good men to come to the aid of their party. .P2 Like the .UL w and .UL e commands, .UL r prints the number of characters read in, after the reading operation is complete. .PP Generally speaking, .UL r is much less used than .UL e . .SH Exercise 2: .PP Experiment with the .UL e command \- try reading and printing various files. You may get an error .UL ?name , where .UL name is the name of a file; this means that the file doesn't exist, typically because you spelled the file name wrong, or perhaps that you are not allowed to read or write it. Try alternately reading and appending to see that they work similarly. Verify that .P1 ed filename .P2 is exactly equivalent to .P1 ed e filename .P2 What does .P1 f filename .P2 do? .SH Printing the contents of the buffer \- the Print command ``p'' .PP To .ul print or list the contents of the buffer (or parts of it) on the terminal, use the print command .P1 p .P2 The way this is done is as follows. Specify the lines where you want printing to begin and where you want it to end, separated by a comma, and followed by the letter .UL p . Thus to print the first two lines of the buffer, for example, (that is, lines 1 through 2) say .P1 1,2p (starting line=1, ending line=2 p) .P2 .ul Ed will respond with .P1 Now is the time for all good men .P2 .PP Suppose you want to print .ul all the lines in the buffer. You could use .UL 1,3p as above if you knew there were exactly 3 lines in the buffer. But in general, you don't know how many there are, so what do you use for the ending line number? .ul Ed provides a shorthand symbol for ``line number of last line in buffer'' \- the dollar sign .UL $ . Use it this way: .P1 1,$p .P2 This will print .ul all the lines in the buffer (line 1 to last line.) If you want to stop the printing before it is finished, push the .UC DEL or Delete key; .ul ed will type .P1 ? .P2 and wait for the next command. .PP To print the .ul last line of the buffer, you could use .P1 $,$p .P2 but .ul ed lets you abbreviate this to .P1 $p .P2 You can print any single line by typing the line number followed by a .UL p . Thus .P1 1p .P2 produces the response .P1 Now is the time .P2 which is the first line of the buffer. .PP In fact, .ul ed lets you abbreviate even further: you can print any single line by typing .ul just the line number \- no need to type the letter .UL p . So if you say .P1 $ .P2 .ul ed will print the last line of the buffer. .PP You can also use .UL $ in combinations like .P1 $\-1,$p .P2 which prints the last two lines of the buffer. This helps when you want to see how far you got in typing. .SH Exercise 3: .PP As before, create some text using the .UL a command and experiment with the .UL p command. You will find, for example, that you can't print line 0 or a line beyond the end of the buffer, and that attempts to print a buffer in reverse order by saying .P1 3,1p .P2 don't work. #]ló$ #Ok#Ol# @.\" @(#)e3 6.1 (Berkeley) 5/22/86 .\" .SH The current line \- ``Dot'' or ``.'' .PP Suppose your buffer still contains the six lines as above, that you have just typed .P1 1,3p .P2 and .ul ed has printed the three lines for you. Try typing just .P1 p (no line numbers) .P2 This will print .P1 to come to the aid of their party. .P2 which is the third line of the buffer. In fact it is the last (most recent) line that you have done anything with. (You just printed it!) You can repeat this .UL p command without line numbers, and it will continue to print line 3. .PP The reason is that .ul ed maintains a record of the last line that you did anything to (in this case, line 3, which you just printed) so that it can be used instead of an explicit line number. This most recent line is referred to by the shorthand symbol .P1 \&\*. (pronounced ``dot''). .P2 Dot is a line number in the same way that .UL $ is; it means exactly ``the current line'', or loosely, ``the line you most recently did something to.'' You can use it in several ways \- one possibility is to say .P1 \&\*.,$p .P2 This will print all the lines from (including) the current line to the end of the buffer. In our example these are lines 3 through 6. .PP Some commands change the value of dot, while others do not. The .UL p command sets dot to the number of the last line printed; the last command will set both \*. and .UL $ to 6. .PP Dot is most useful when used in combinations like this one: .P1 \&\*.+1 (or equivalently, \*.+1p) .P2 This means ``print the next line'' and is a handy way to step slowly through a buffer. You can also say .P1 \&\*.\-1 (or \*.\-1p ) .P2 which means ``print the line .ul before the current line.'' This enables you to go backwards if you wish. Another useful one is something like .P1 \&\*.\-3,\*.\-1p .P2 which prints the previous three lines. .PP Don't forget that all of these change the value of dot. You can find out what dot is at any time by typing .P1 \&\*.= .P2 .ul Ed will respond by printing the value of dot. .PP Let's summarize some things about the .UL p command and dot. Essentially .UL p can be preceded by 0, 1, or 2 line numbers. If there is no line number given, it prints the ``current line'', the line that dot refers to. If there is one line number given (with or without the letter .UL p ), it prints that line (and dot is set there); and if there are two line numbers, it prints all the lines in that range (and sets dot to the last line printed.) If two line numbers are specified the first can't be bigger than the second (see Exercise 2.) .PP Typing a single return will cause printing of the next line \- it's equivalent to .UL .+1p . Try it. Try typing a .UL \- ; you will find that it's equivalent to .UL .\-1p . .SH Deleting lines: the ``d'' command .PP Suppose you want to get rid of the three extra lines in the buffer. This is done by the .ul delete command .P1 d .P2 Except that .UL d deletes lines instead of printing them, its action is similar to that of .UL p . The lines to be deleted are specified for .UL d exactly as they are for .UL p : .P1 \fIstarting line, ending line\fP d .P2 Thus the command .P1 4,$d .P2 deletes lines 4 through the end. There are now three lines left, as you can check by using .P1 1,$p .P2 And notice that .UL $ now is line 3! Dot is set to the next line after the last line deleted, unless the last line deleted is the last line in the buffer. In that case, dot is set to .UL $ . .SH Exercise 4: .PP Experiment with .UL a , .UL e , .UL r , .UL w , .UL p and .UL d until you are sure that you know what they do, and until you understand how dot, .UL $ , and line numbers are used. .PP If you are adventurous, try using line numbers with .UL a , .UL r and .UL w as well. You will find that .UL a will append lines .ul after the line number that you specify (rather than after dot); that .UL r reads a file in .ul after the line number you specify (not necessarily at the end of the buffer); and that .UL w will write out exactly the lines you specify, not necessarily the whole buffer. These variations are sometimes handy. For instance you can insert a file at the beginning of a buffer by saying .P1 0r filename .P2 and you can enter lines at the beginning of the buffer by saying .P1 0a \&. . . \fItext\fP . . . \*. .P2 Notice that .UL .w is .ul very different from .P1 \*. w .P2 .SH Modifying text: the Substitute command ``s'' .PP We are now ready to try one of the most important of all commands \- the substitute command .P1 s .P2 This is the command that is used to change individual words or letters within a line or group of lines. It is what you use, for example, for correcting spelling mistakes and typing errors. .PP Suppose that by a typing error, line 1 says .P1 Now is th time .P2 \- the .IT e has been left off .IT the . You can use .UL s to fix this up as follows: .P1 1s/th/the/ .P2 This says: ``in line 1, substitute for the characters .IT th the characters .IT the .'' To verify that it works .IT ed "" ( will not print the result automatically) say .P1 p .P2 and get .P1 Now is the time .P2 which is what you wanted. Notice that dot must have been set to the line where the substitution took place, since the .UL p command printed that line. Dot is always set this way with the .UL s command. .PP The general way to use the substitute command is .P1 \fIstarting\(hyline, ending\(hyline\fP s/\fIchange this\fP/\fIto this\fP/ .P2 Whatever string of characters is between the first pair of slashes is replaced by whatever is between the second pair, in .ul all the lines between .ul starting-line and .ul ending-line. Only the first occurrence on each line is changed, however. If you want to change .ul every occurrence, see Exercise 5. The rules for line numbers are the same as those for .UL p , except that dot is set to the last line changed. (But there is a trap for the unwary: if no substitution took place, dot is .ul not changed. This causes an error .UL ? as a warning.) .PP Thus you can say .P1 1,$s/speling/spelling/ .P2 and correct the first spelling mistake on each line in the text. (This is useful for people who are consistent misspellers!) .PP If no line numbers are given, the .UL s command assumes we mean ``make the substitution on line dot'', so it changes things only on the current line. This leads to the very common sequence .P1 s/something/something else/p .P2 which makes some correction on the current line, and then prints it, to make sure it worked out right. If it didn't, you can try again. (Notice that there is a .UL p on the same line as the .UL s command. With few exceptions, .UL p can follow any command; no other multi-command lines are legal.) .PP It's also legal to say .P1 s/ . . . // .P2 which means ``change the first string of characters to .IT nothing '', `` i.e., remove them. This is useful for deleting extra words in a line or removing extra letters from words. For instance, if you had .P1 Nowxx is the time .P2 you can say .P1 s/xx//p .P2 to get .P1 Now is the time .P2 Notice that .UL // (two adjacent slashes) means ``no characters'', not a blank. There .ul is a difference! (See below for another meaning of .UL // .) #]loޡ$ #Ol#Om# H .\" @(#)e4 6.1 (Berkeley) 5/22/86 .\" .SH Exercise 5: .PP Experiment with the substitute command. See what happens if you substitute for some word on a line with several occurrences of that word. For example, do this: .P1 a the other side of the coin \*. s/the/on the/p .P2 You will get .P1 on the other side of the coin .P2 A substitute command changes only the first occurrence of the first string. You can change all occurrences by adding a .UL g (for ``global'') to the .UL s command, like this: .P1 s/ . . . / . . . /gp .P2 Try other characters instead of slashes to delimit the two sets of characters in the .UL s command \- anything should work except blanks or tabs. .PP (If you get funny results using any of the characters .P1 ^ \*. $ [ * \e & .P2 read the section on ``Special Characters''.) .SH Context searching \- ``/ . . . /'' .PP With the substitute command mastered, you can move on to another highly important idea of .ul ed \- context searching. .PP Suppose you have the original three line text in the buffer: .P1 Now is the time for all good men to come to the aid of their party. .P2 Suppose you want to find the line that contains .IT their so you can change it to .IT the . Now with only three lines in the buffer, it's pretty easy to keep track of what line the word .IT their is on. But if the buffer contained several hundred lines, and you'd been making changes, deleting and rearranging lines, and so on, you would no longer really know what this line number would be. Context searching is simply a method of specifying the desired line, regardless of what its number is, by specifying some context on it. .PP The way to say ``search for a line that contains this particular string of characters'' is to type .P1 /\fIstring of characters we want to find\fP/ .P2 For example, the .ul ed command .P1 /their/ .P2 is a context search which is sufficient to find the desired line \- it will locate the next occurrence of the characters between slashes (``their''). It also sets dot to that line and prints the line for verification: .P1 to come to the aid of their party. .P2 ``Next occurrence'' means that .ul ed starts looking for the string at line .UL .+1 , searches to the end of the buffer, then continues at line 1 and searches to line dot. (That is, the search ``wraps around'' from .UL $ to 1.) It scans all the lines in the buffer until it either finds the desired line or gets back to dot again. If the given string of characters can't be found in any line, .ul ed types the error message .P1 ? .P2 Otherwise it prints the line it found. .PP You can do both the search for the desired line .ul and a substitution all at once, like this: .P1 /their/s/their/the/p .P2 which will yield .P1 to come to the aid of the party. .P2 There were three parts to that last command: context search for the desired line, make the substitution, print the line. .PP The expression .UL /their/ is a context search expression. In their simplest form, all context search expressions are like this \- a string of characters surrounded by slashes. Context searches are interchangeable with line numbers, so they can be used by themselves to find and print a desired line, or as line numbers for some other command, like .UL s . They were used both ways in the examples above. .PP Suppose the buffer contains the three familiar lines .P1 Now is the time for all good men to come to the aid of their party. .P2 Then the .ul ed line numbers .P1 /Now/+1 /good/ /party/\-1 .P2 are all context search expressions, and they all refer to the same line (line 2). To make a change in line 2, you could say .P1 /Now/+1s/good/bad/ .P2 or .P1 /good/s/good/bad/ .P2 or .P1 /party/\-1s/good/bad/ .P2 The choice is dictated only by convenience. You could print all three lines by, for instance .P1 /Now/,/party/p .P2 or .P1 /Now/,/Now/+2p .P2 or by any number of similar combinations. The first one of these might be better if you don't know how many lines are involved. (Of course, if there were only three lines in the buffer, you'd use .P1 1,$p .P2 but not if there were several hundred.) .PP The basic rule is: a context search expression is .ul the same as a line number, so it can be used wherever a line number is needed. .SH Exercise 6: .PP Experiment with context searching. Try a body of text with several occurrences of the same string of characters, and scan through it using the same context search. .PP Try using context searches as line numbers for the substitute, print and delete commands. (They can also be used with .UL r , .UL w , and .UL a .) .PP Try context searching using .UL ?text? instead of .UL /text/ . This scans lines in the buffer in reverse order rather than normal. This is sometimes useful if you go too far while looking for some string of characters \- it's an easy way to back up. .PP (If you get funny results with any of the characters .P1 ^ \*. $ [ * \e & .P2 read the section on ``Special Characters''.) .PP .ul Ed provides a shorthand for repeating a context search for the same string. For example, the .ul ed line number .P1 /string/ .P2 will find the next occurrence of .UL string . It often happens that this is not the desired line, so the search must be repeated. This can be done by typing merely .P1 // .P2 This shorthand stands for ``the most recently used context search expression.'' It can also be used as the first string of the substitute command, as in .P1 /string1/s//string2/ .P2 which will find the next occurrence of .UL string1 and replace it by .UL string2 . This can save a lot of typing. Similarly .P1 ?? .P2 means ``scan backwards for the same expression.'' #]loP$ Y#On#Oo# P .\" @(#)e5 6.1 (Berkeley) 5/22/86 .\" .SH Change and Insert \- ``c'' and ``i'' .PP This section discusses the .ul change command .P1 c .P2 which is used to change or replace a group of one or more lines, and the .ul insert command .P1 i .P2 which is used for inserting a group of one or more lines. .PP ``Change'', written as .P1 c .P2 is used to replace a number of lines with different lines, which are typed in at the terminal. For example, to change lines .UL .+1 through .UL $ to something else, type .P1 \&.+1,$c \&. . . \fItype the lines of text you want here\fP . . . \*. .P2 The lines you type between the .UL c command and the .UL . will take the place of the original lines between start line and end line. This is most useful in replacing a line or several lines which have errors in them. .PP If only one line is specified in the .UL c command, then just that line is replaced. (You can type in as many replacement lines as you like.) Notice the use of .UL . to end the input \- this works just like the .UL . in the append command and must appear by itself on a new line. If no line number is given, line dot is replaced. The value of dot is set to the last line you typed in. .PP ``Insert'' is similar to append \- for instance .P1 /string/i \&. . . \fItype the lines to be inserted here\fP . . . \*. .P2 will insert the given text .ul before the next line that contains ``string''. The text between .UL i and .UL . is .ul inserted before the specified line. If no line number is specified dot is used. Dot is set to the last line inserted. .SH Exercise 7: .PP ``Change'' is rather like a combination of delete followed by insert. Experiment to verify that .P1 \fIstart, end\fP d i .ul \&. . . text . . . \*. .P2 is almost the same as .P1 \fIstart, end\fP c .ul \&. . . text . . . \*. .P2 These are not .ul precisely the same if line .UL $ gets deleted. Check this out. What is dot? .PP Experiment with .UL a and .UL i , to see that they are similar, but not the same. You will observe that .P1 \fIline\(hynumber\fP a \&. . . \fItext\fP . . . \*. .P2 appends .ul after the given line, while .P1 \fIline\(hynumber\fP i \&. . . \fItext\fP . . . \*. .P2 inserts .ul before it. Observe that if no line number is given, .UL i inserts before line dot, while .UL a appends after line dot. .SH Moving text around: the ``m'' command .PP The move command .UL m is used for cutting and pasting \- it lets you move a group of lines from one place to another in the buffer. Suppose you want to put the first three lines of the buffer at the end instead. You could do it by saying: .P1 1,3w temp $r temp 1,3d .P2 (Do you see why?) but you can do it a lot easier with the .UL m command: .P1 1,3m$ .P2 The general case is .P1 \fIstart line, end line\fP m \fIafter this line\fP .P2 Notice that there is a third line to be specified \- the place where the moved stuff gets put. Of course the lines to be moved can be specified by context searches; if you had .P1 First paragraph \&. . . end of first paragraph. Second paragraph \&. . . end of second paragraph. .P2 you could reverse the two paragraphs like this: .P1 /Second/,/end of second/m/First/\-1 .P2 Notice the .UL \-1 : the moved text goes .ul after the line mentioned. Dot gets set to the last line moved. .SH The global commands ``g'' and ``v'' .PP The .ul global command .UL g is used to execute one or more .ul ed commands on all those lines in the buffer that match some specified string. For example .P1 g/peling/p .P2 prints all lines that contain .UL peling . More usefully, .P1 g/peling/s//pelling/gp .P2 makes the substitution everywhere on the line, then prints each corrected line. Compare this to .P1 1,$s/peling/pelling/gp .P2 which only prints the last line substituted. Another subtle difference is that the .UL g command does not give a .UL ? if .UL peling is not found where the .UL s command will. .PP There may be several commands (including .UL a , .UL c , .UL i , .UL r , .UL w , but not .UL g ); in that case, every line except the last must end with a backslash .UL \e : .P1 g/xxx/\*.-1s/abc/def/\e \&\*.+2s/ghi/jkl/\e \&\*.-2,\*.p .P2 makes changes in the lines before and after each line that contains .UL xxx , then prints all three lines. .PP The .UL v command is the same as .UL g , except that the commands are executed on every line that does .ul not match the string following .UL v : .P1 v/ /d .P2 deletes every line that does not contain a blank. #]loā$ #Op#Oq# X.\" @(#)e6 6.1 (Berkeley) 5/22/86 .\" .SH Special Characters .PP You may have noticed that things just don't work right when you used some characters like \*., .UL * , .UL $ , and others in context searches and the substitute command. The reason is rather complex, although the cure is simple. Basically, .ul ed treats these characters as special, with special meanings. For instance, .ul in a context search or the first string of the substitute command only, \*. means ``any character,'' not a period, so .P1 /x\*.y/ .P2 means ``a line with an .UL x , .ul any character, and a .UL y ,'' .ul not just ``a line with an .UL x , a period, and a .UL y .'' A complete list of the special characters that can cause trouble is the following: .P1 ^ \*. $ [ * \e .P2 .ul Warning: The backslash character .UL \e is special to .ul ed. For safety's sake, avoid it where possible. If you have to use one of the special characters in a substitute command, you can turn off its magic meaning temporarily by preceding it with the backslash. Thus .P1 s/\e\e\e\*.\e*/backslash dot star/ .P2 will change .UL \e.* into ``backslash dot star''. .PP Here is a hurried synopsis of the other special characters. First, the circumflex .UL ^ signifies the beginning of a line. Thus .P1 /^string/ .P2 finds .UL string only if it is at the beginning of a line: it will find .P1 string .P2 but not .P1 the string... .P2 The dollar-sign .UL $ is just the opposite of the circumflex; it means the end of a line: .P1 /string$/ .P2 will only find an occurrence of .UL string that is at the end of some line. This implies, of course, that .P1 /^string$/ .P2 will find only a line that contains just .UL string , and .P1 /^\*.$/ .P2 finds a line containing exactly one character. .PP The character .UL . , as we mentioned above, matches anything; .P1 /x\*.y/ .P2 matches any of .P1 x+y x-y x y x\*.y .P2 This is useful in conjunction with .UL * , which is a repetition character; .UL a* is a shorthand for ``any number of .UL a 's,'' so .UL .* matches any number of anythings. This is used like this: .P1 s/\*.*/stuff/ .P2 which changes an entire line, or .P1 s/\*.*,// .P2 which deletes all characters in the line up to and including the last comma. (Since .UL .* finds the longest possible match, this goes up to the last comma.) .PP .UL [ is used with .UL ] to form ``character classes''; for example, .P1 /[0123456789]/ .P2 matches any single digit \- any one of the characters inside the braces will cause a match. This can be abbreviated to .UL [0\-9] . .PP Finally, the .UL & is another shorthand character \- it is used only on the right-hand part of a substitute command where it means ``whatever was matched on the left-hand side''. It is used to save typing. Suppose the current line contained .P1 Now is the time .P2 and you wanted to put parentheses around it. You could just retype the line, but this is tedious. Or you could say .P1 s/^/(/ s/$/)/ .P2 using your knowledge of .UL ^ and .UL $ . But the easiest way uses the .UL & : .P1 s/\*.*/(&)/ .P2 This says ``match the whole line, and replace it by itself surrounded by parentheses.'' The .UL & can be used several times in a line; consider using .P1 s/\*.*/&? &!!/ .P2 to produce .P1 Now is the time? Now is the time!! .P2 .PP You don't have to match the whole line, of course: if the buffer contains .P1 the end of the world .P2 you could type .P1 /world/s//& is at hand/ .P2 to produce .P1 the end of the world is at hand .P2 Observe this expression carefully, for it illustrates how to take advantage of .ul ed to save typing. The string .UL /world/ found the desired line; the shorthand .UL // found the same word in the line; and the .UL & saves you from typing it again. .PP The .UL & is a special character only within the replacement text of a substitute command, and has no special meaning elsewhere. You can turn off the special meaning of .UL & by preceding it with a .UL \e : .P1 s/ampersand/\e&/ .P2 will convert the word ``ampersand'' into the literal symbol .UL & in the current line. #]lo$ n#Or#Or# {.\" @(#)e7 6.1 (Berkeley) 5/22/86 .\" .sp 2 .SH Summary of Commands and Line Numbers .PP The general form of .ul ed commands is the command name, perhaps preceded by one or two line numbers, and, in the case of .UL e , .UL r , and .UL w , followed by a file name. Only one command is allowed per line, but a .UL p command may follow any other command (except for .UL e , .UL r , .UL w and .UL q ). .LP .UL a : Append, that is, add lines to the buffer (at line dot, unless a different line is specified). Appending continues until \*. is typed on a new line. Dot is set to the last line appended. .LP .UL c : Change the specified lines to the new text which follows. The new lines are terminated by a \*., as with .UL a . If no lines are specified, replace line dot. Dot is set to last line changed. .LP .UL d : Delete the lines specified. If none are specified, delete line dot. Dot is set to the first undeleted line, unless .UL $ is deleted, in which case dot is set to .UL $ . .LP .UL e : Edit new file. Any previous contents of the buffer are thrown away, so issue a .UL w beforehand. .LP .UL f : Print remembered filename. If a name follows .UL f the remembered name will be set to it. .LP .UL g : The command .P1 g/\(hy\(hy\(hy/commands .P2 will execute the commands on those lines that contain .UL --- , which can be any context search expression. .LP .UL i : Insert lines before specified line (or dot) until a \*. is typed on a new line. Dot is set to last line inserted. .LP .UL m : Move lines specified to after the line named after .UL m . Dot is set to the last line moved. .LP .UL p : Print specified lines. If none specified, print line dot. A single line number is equivalent to .IT line-number .UL p . A single return prints .UL .+1 , the next line. .LP .UL q : Quit .IT ed . Wipes out all text in buffer if you give it twice in a row without first giving a .UL w command. .LP .UL r : Read a file into buffer (at end unless specified elsewhere.) Dot set to last line read. .LP .UL s : The command .P1 s/string1/string2/ .P2 substitutes the characters .UL string1 into .UL string2 in the specified lines. If no lines are specified, make the substitution in line dot. Dot is set to last line in which a substitution took place, which means that if no substitution took place, dot is not changed. .UL s changes only the first occurrence of .UL string1 on a line; to change all of them, type a .UL g after the final slash. .LP .UL v : The command .P1 v/\(hy\(hy\(hy/commands .P2 executes .UL commands on those lines that .ul do not contain .UL --- . .LP .UL w : Write out buffer onto a file. Dot is not changed. .LP .UL .= : Print value of dot. .UL = "" ( by itself prints the value of .UL $ .) .LP .UL ! : The line .P1 !command\(hyline .P2 causes .UL command-line to be executed as a .UC UNIX command. .LP .UL /-----/ : Context search. Search for next line which contains this string of characters. Print it. Dot is set to the line where string was found. Search starts at .UL .+1 , wraps around from .UL $ to 1, and continues to dot, if necessary. .LP .UL ?-----? : Context search in reverse direction. Start search at .UL .\-1 , scan to 1, wrap around to .UL $ . #]lou$ z##V@#] x.\" @(#)ascii.7 6.1 (Berkeley) 5/20/85 .\" .TH ASCII 7 "May 20, 1985" .AT 3 .SH NAME ascii \- map of ASCII character set .SH SYNOPSIS .B cat /usr/pub/ascii .SH DESCRIPTION .I Ascii is a map of the ASCII character set, to be printed as needed. It contains: .nf .cs R 20 |000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel| |010 bs |011 ht |012 nl |013 vt |014 np |015 cr |016 so |017 si | |020 dle|021 dc1|022 dc2|023 dc3|024 dc4|025 nak|026 syn|027 etb| |030 can|031 em |032 sub|033 esc|034 fs |035 gs |036 rs |037 us | |040 sp |041 ! |042 " |043 # |044 $ |045 % |046 & |047 \' | |050 ( |051 ) |052 * |053 + |054 , |055 \- |056 . |057 / | |060 0 |061 1 |062 2 |063 3 |064 4 |065 5 |066 6 |067 7 | |070 8 |071 9 |072 : |073 ; |074 < |075 = |076 > |077 ? | |100 @ |101 A |102 B |103 C |104 D |105 E |106 F |107 G | |110 H |111 I |112 J |113 K |114 L |115 M |116 N |117 O | |120 P |121 Q |122 R |123 S |124 T |125 U |126 V |127 W | |130 X |131 Y |132 Z |133 [ |134 \\ |135 ] |136 ^ |137 _ | |140 \` |141 a |142 b |143 c |144 d |145 e |146 f |147 g | |150 h |151 i |152 j |153 k |154 l |155 m |156 n |157 o | |160 p |161 q |162 r |163 s |164 t |165 u |166 v |167 w | |170 x |171 y |172 z |173 { |174 | |175 } |176 ~ |177 del| | 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel| | 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si | | 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb| | 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us | | 20 sp | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 \' | | 28 ( | 29 ) | 2a * | 2b + | 2c , | 2d \- | 2e . | 2f / | | 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 | | 38 8 | 39 9 | 3a : | 3b ; | 3c < | 3d = | 3e > | 3f ? | | 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G | | 48 H | 49 I | 4a J | 4b K | 4c L | 4d M | 4e N | 4f O | | 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W | | 58 X | 59 Y | 5a Z | 5b [ | 5c \\ | 5d ] | 5e ^ | 5f _ | | 60 \` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g | | 68 h | 69 i | 6a j | 6b k | 6c l | 6d m | 6e n | 6f o | | 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w | | 78 x | 79 y | 7a z | 7b { | 7c | | 7d } | 7e ~ | 7f del| .fi .cs R .SH FILES /usr/pub/ascii #]lo!i$  ##VA#].\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)environ.7 6.1 (Berkeley) 5/20/85 .\" .TH ENVIRON 7 "May 20, 1985" .UC 5 .SH NAME environ \- user environment .SH SYNOPSIS .B extern char **environ; .SH DESCRIPTION An array of strings called the `environment' is made available by .IR execve (2) when a process begins. By convention these strings have the form .RI ` name = value '. The following names are used by various commands: .TP "\w'TERMCAP 'u" PATH The sequence of directory prefixes that .I sh, time, .IR nice (1), etc., apply in searching for a file known by an incomplete path name. The prefixes are separated by `:'. .IR Login (1) sets PATH=:/usr/ucb:/bin:/usr/bin. .TP HOME A user's login directory, set by .IR login (1) from the password file .IR passwd (5). .TP TERM The kind of terminal for which output is to be prepared. This information is used by commands, such as .I nroff or .IR plot (1G), which may exploit special terminal capabilities. See .I /etc/termcap .RI ( termcap (5)) for a list of terminal types. .TP SHELL The file name of the users login shell. .TP TERMCAP The string describing the terminal in TERM, or the name of the termcap file, see .IR termcap (5), termcap (3X). .TP EXINIT A startup list of commands read by .IR ex (1), .IR edit (1), and .IR vi (1). .TP USER The login name of the user. .TP PRINTER The name of the default printer to be used by .IR lpr (1), .IR lpq (1), and .IR lprm (1). .PP Further names may be placed in the environment by the .I export command and `name=value' arguments in .IR sh (1), or by the .I setenv command if you use .IR csh (1). Arguments may also be placed in the environment at the point of an .IR execve (2). It is unwise to conflict with certain .IR sh (1) variables that are frequently exported by `.profile' files: MAIL, PS1, PS2, IFS. .SH SEE ALSO csh(1), ex(1), login(1), sh(1), execve(2), system(3), termcap(3X), termcap(5) #]lo$ %##VC#] .\" Copyright (c) 1980 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)eqnchar.7 6.1 (Berkeley) 5/20/85 .\" .TH EQNCHAR 7 "May 20, 1985" .UC 3 .EQ tdefine ciplus % "\o'\(pl\(ci'" % ndefine ciplus % O+ % tdefine citimes % "\o'\(mu\(ci'" % ndefine citimes % Ox % tdefine =wig % "\(eq\h'-\w'\(eq'u-\w'\s-2\(ap'u/2u'\v'-.4m'\s-2\z\(ap\(ap\s+2\v'.4m'\h'\w'\(eq'u-\w'\s-2\(ap'u/2u'" % ndefine =wig % ="~" % tdefine bigstar % "\o'\(pl\(mu'" % ndefine bigstar % X|- % tdefine =dot % "\z\(eq\v'-.6m'\h'.2m'\s+2.\s-2\v'.6m'\h'.1m'" % ndefine =dot % = dot % tdefine orsign % "\s-2\v'-.15m'\z\e\e\h'-.05m'\z\(sl\(sl\v'.15m'\s+2" % ndefine orsign % \e/ % tdefine andsign % "\s-2\v'-.15m'\z\(sl\(sl\h'-.05m'\z\e\e\v'.15m'\s+2" % ndefine andsign % /\e % tdefine =del % "\v'.3m'\z=\v'-.6m'\h'.3m'\s-1\(*D\s+1\v'.3m'" % ndefine =del % = to DELTA % tdefine oppA % "\s-2\v'-.15m'\z\e\e\h'-.05m'\z\(sl\(sl\v'-.15m'\h'-.75m'\z-\z-\h'.2m'\z-\z-\v'.3m'\h'.4m'\s+2" % ndefine oppA % V- % tdefine oppE %"\s-3\v'.2m'\z\(em\v'-.5m'\z\(em\v'-.5m'\z\(em\v'.55m'\h'.9m'\z\(br\z\(br\v'.25m'\s+3" % ndefine oppE % E/ % tdefine incl % "\s-1\z\(or\h'-.1m'\v'-.45m'\z\(em\v'.7m'\z\(em\v'.2m'\(em\v'-.45m'\s+1" % ndefine incl % C_ % tdefine nomem % "\o'\(mo\(sl'" % ndefine nomem % C-/ % tdefine angstrom % "\fR\zA\v'-.3m'\h'.2m'\(de\v'.3m'\fP\h'.2m'" % ndefine angstrom % A to o % tdefine star %{ roman "\v'.5m'\s+3*\s-3\v'-.5m'"}% ndefine star % * % tdefine || % \(or\(or % tdefine wig % "\z>\v'.4m'\(ap\v'-.4m'" % ndefine >wig %{ > from "~" }% tdefine langle % "\s-3\b'\(sl\e'\s0" % ndefine langle %<% tdefine rangle % "\s-3\b'\e\(sl'\s0" % ndefine rangle %>% tdefine hbar % "\zh\v'-.6m'\h'.05m'\(ru\v'.6m'" % ndefine hbar % h\u-\d % ndefine ppd % _| % tdefine ppd % "\o'\(ru\s-2\(or\s+2'" % tdefine <-> % "\o'\(<-\(->'" % ndefine <-> % "<-->" % tdefine <=> % "\s-2\z<\v'.05m'\h'.2m'\z=\h'.55m'=\h'-.6m'\v'-.05m'>\s+2" % ndefine <=> % "<=>" % tdefine |< % "\o'<\(or'" % ndefine |< % <| % tdefine |> % "\o'>\(or'" % ndefine |> % |> % tdefine ang % "\v'-.15m'\z\s-2\(sl\s+2\v'.15m'\(ru" % ndefine ang % /_ % tdefine rang % "\z\(or\h'.15m'\(ru" % ndefine rang % L % tdefine 3dot % "\v'-.8m'\z.\v'.5m'\z.\v'.5m'.\v'-.2m'" % ndefine 3dot % .\u.\u.\d\d % tdefine thf % ".\v'-.5m'.\v'.5m'." % ndefine thf % ..\u.\d % tdefine quarter % roman \(14 % ndefine quarter % 1/4 % tdefine 3quarter % roman \(34 % ndefine 3quarter % 3/4 % tdefine degree % \(de % ndefine degree % nothing sup o % tdefine square % \(sq % ndefine square % [] % tdefine circle % \(ci % ndefine circle % O % tdefine blot % "\fB\(sq\fP" % ndefine blot % HIX % tdefine bullet % \(bu % ndefine bullet % oxe % tdefine -wig % "\(~=" % ndefine -wig % - to "~" % tdefine wig % \(ap % ndefine wig % "~" % tdefine prop % \(pt % ndefine prop % oc % tdefine empty % \(es % ndefine empty % O/ % tdefine member % \(mo % ndefine member % C- % tdefine cup % \(cu % ndefine cup % U % define cap % \(ca % define subset % \(sb % define supset % \(sp % define !subset % \(ib % define !supset % \(ip % .EN .SH NAME eqnchar \- special character definitions for eqn .SH SYNOPSIS .B eqn /usr/pub/eqnchar [ files ] .B \(bv troff [ options ] .PP .B neqn /usr/pub/eqnchar [ files ] .B \(bv nroff [ options ] .SH DESCRIPTION .I Eqnchar contains .I troff and .I nroff character definitions for constructing characters that are not available on the Graphic Systems typesetter. These definitions are primarily intended for use with .I eqn and .IR neqn . It contains definitions for the following characters .PP .nf .ta \w'angstrom 'u \n(.lu/3u +\w'angstrom 'u \n(.lu*2u/3u +\w'angstrom 'u .EQ "ciplus" ciplus "|\||" || "square" square .EN .EQ "citimes" citimes "langle" langle "circle" circle .EN .EQ "wig" wig "rangle" rangle "blot" blot .EN .EQ "-wig" -wig "hbar" hbar "bullet" bullet .EN .EQ ">wig" >wig "ppd" ppd "prop" prop .EN .EQ "" <-> "empty" empty .EN .EQ "=wig" =wig "<=>" <=> "member" member .EN .EQ "star" star "|\|<" |< "nomem" nomem .EN .EQ "bigstar" bigstar "|\|>" |> "cup" cup .EN .EQ "=dot" =dot "ang" ang "cap" cap .EN .EQ "orsign" orsign "rang" rang "incl" incl .EN .EQ "andsign" andsign "3dot" 3dot "subset" subset .EN .EQ "=del" =del "thf" thf "supset" supset .EN .EQ "oppA" oppA "quarter" quarter "!subset" !subset .EN .EQ "oppE" oppE "3quarter" 3quarter "!supset" !supset .EN .EQ "angstrom" angstrom "degree" degree .EN .SH FILES /usr/pub/eqnchar .SH SEE ALSO troff(1), eqn(1) #]lo$ $##VD#]  .\" Copyright (c) 1980 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)hier.7 6.1 (Berkeley) 5/20/85 .\" .TH HIER 7 "May 20, 1985" .UC 4 .SH NAME hier \- file system hierarchy .SH DESCRIPTION The following outline gives a quick tour through a representative directory hierarchy. .na .nh .IP / root .PD 0 .IP /vmunix the kernel binary (UNIX itself) .IP /lost+found directory for connecting detached files for .IR fsck (8) .IP /dev/ devices (4) .RS .IP MAKEDEV shell script to create special files .IP MAKEDEV.local site specific part of MAKEDEV .IP console main console, .IR tty (4) .IP tty* terminals, .IR tty (4) .IP hp* disks, .IR hp (4) .IP rhp* raw disks, .IR hp (4) .IP up* UNIBUS disks .IR up (4) .IP ... .RE .IP /bin/ utility programs, cf /usr/bin/ (1) .RS .IP as assembler .IP cc C compiler executive, cf /lib/ccom, /lib/cpp, /lib/c2 .IP csh C shell .IP ... .RE .IP /lib/ object libraries and other stuff, cf /usr/lib/ .RS .IP libc.a system calls, standard I/O, etc. (2,3,3S) .IP ... .IP ccom C compiler proper .IP cpp C preprocessor .IP c2 C code improver .IP ... .RE .IP /etc/ essential data and maintenance utilities; sect (8) .RS .IP dump dump program .IR dump (8) .IP passwd password file, .IR passwd (5) .IP group group file, .IR group (5) .IP motd message of the day, .IR login (1) .IP termcap description of terminal capabilities, .IR termcap (5) .IP ttytype table of what kind of terminal is on each port, .IR ttytype (5) .IP mtab mounted file table, .IR mtab (5) .IP dumpdates dump history, .IR dump (8) .IP fstab file system configuration table .IR fstab (5) .IP disktab disk characteristics and partition tables, .IR disktab (5) .IP hosts host name to network address mapping file, .IR hosts (5) .IP networks network name to network number mapping file, .IR networks (5) .IP protocols protocol name to protocol number mapping file, .IR protocols (5) .IP services network services definition file, .IR services (5) .IP remote names and description of remote hosts for .IR tip (1C), .IR remote (5) .IP phones private phone numbers for remote hosts, as described in .IR phones (5) .IP ttys properties of terminals, .IR ttys (5) .IP getty part of .IR login , .IR getty (8) .IP init the parent of all processes, .IR init (8) .IP rc shell program to bring the system up .IP rc.local site dependent portion of .I rc .IP cron the clock daemon, .IR cron (8) .IP mount .IR mount (8) .IP ... .RE .IP /sys/ system source .RS .IP h/ header (include) files .RS .IP acct.h .IR acct (5) .IP stat.h .IR stat (2) .IP ... .RE .IP sys/ machine independent system source .RS .IP init_main.c .IP uipc_socket.c .IP ufs_syscalls.c .IP ... .RE .IP conf/ site configuration files .RS .IP GENERIC .IP ... .RE .IP net/ general network source .IP netinet/ DARPA Internet network source .IP netimp/ network code related to use of an IMP .RS .IP if_imp.c .IP if_imphost.c .IP if_imphost.h .IP ... .RE .IP vax/ source specific to the VAX .RS .IP locore.s .IP machdep.c .IP ... .RE .IP vaxuba/ device drivers for hardware which resides on the UNIBUS .RS .IP uba.c .IP dh.c .IP up.c .IP ... .RE .IP vaxmba/ device drivers for hardware which resides on the MASBUS .RS .IP mba.c .IP hp.c .IP ht.c .IP ... .RE .IP vaxif network interface drivers for the VAX .RS .IP if_en.c .IP if_ec.c .IP if_vv.c .IP ... .RE .RE .IP /tmp/ temporary files, usually on a fast device, cf /usr/tmp/ .RS .IP e* used by .IR ed (1) .IP ctm* used by .IR cc (1) .IP ... .RE .IP /usr/ general-pupose directory, usually a mounted file system .RS .IP adm/ administrative information .RS .IP wtmp login history, .IR utmp (5) .IP messages hardware error messages .IP tracct phototypesetter accounting, .IR troff (1) .IP lpacct line printer accounting .IR lpr (1) .IP "vaacct, vpacct" varian and versatec accounting .IR vpr (1), .IR vtroff (1), .IR pac (8) .RE .RE .IP /usr\t/bin .RS utility programs, to keep /bin/ small .IP tmp/ temporaries, to keep /tmp/ small .RS .IP stm* used by .IR sort (1) .IP raster used by .IR plot (1G) .RE .IP dict/ word lists, etc. .RS .IP words principal word list, used by .IR look (1) .IP spellhist history file for .IR spell (1) .RE .IP games/ .RS .IP hangman .IP lib/ library of stuff for the games .RS .IP quiz.k/ what .IR quiz (6) knows .RS .IP index category index .IP africa countries and capitals .IP ... .RE .IP ... .RE .IP ... .RE .IP include/ standard #include files .RS .IP a.out.h object file layout, .IR a.out (5) .IP stdio.h standard I/O, .IR intro (3S) .IP math.h (3M) .IP ... .IP sys/ system-defined layouts, cf /sys/h .IP net/ symbolic link to sys/net .IP machine/ symbolic link to sys/machine .IP ... .RE .IP lib/ object libraries and stuff, to keep /lib/ small .RS .IP atrun scheduler for .IR at (1) .IP lint/ utility files for lint .RS .IP lint[12] subprocesses for .IR lint (1) .IP llib-lc dummy declarations for /lib/libc.a, used by .IR lint (1) .IP llib-lm dummy declarations for /lib/libc.m .IP ... .RE .IP struct/ passes of .IR struct (1) .IP ... .IP tmac/ macros for .IR troff (1) .RS .IP tmac.an macros for .IR man (7) .IP tmac.s macros for .IR ms (7) .IP ... .RE .IP font/ fonts for .IR troff (1) .RS .IP ftR Times Roman .IP ftB Times Bold .IP ... .RE .IP uucp/ programs and data for .IR uucp (1C) .RS .IP L.sys remote system names and numbers .IP uucico the real copy program .IP ... .RE .IP units conversion tables for .IR units (1) .IP eign list of English words to be ignored by .IR ptx (1) .RE .RE .br .ne 5 .IP /usr/\tman/ .RS volume 1 of this manual, .IR man (1) .RS .IP man0/ general .RS .IP intro introduction to volume 1, .IR ms (7) format .IP xx template for manual page .RE .IP man1/ chapter 1 .RS .IP as.1 .IP mount.1m .IP ... .RE .IP ... .IP cat1/ preformatted pages for section 1 .IP ... .RE .IP msgs/ messages, cf .IR msgs (1) .RS .IP bounds highest and lowest message .RE .IP new/ binaries of new versions of programs .IP preserve/ editor temporaries preserved here after crashes/hangups .IP public/ binaries of user programs - write permission to everyone .IP spool/ delayed execution files .RS .IP at/ used by .IR at (1) .IP lpd/ used by .IR lpr (1) .RS .IP lock present when line printer is active .IP cf* copy of file to be printed, if necessary .IP df* daemon control file, .IR lpd (8) .IP tf* transient control file, while .I lpr is working .RE .IP uucp/ work files and staging area for .IR uucp (1C) .RS .IP LOGFILE summary log .IP LOG.* log file for one transaction .RE .IP mail/ mailboxes for .IR mail (1) .RS .TP .I name mail file for user .I name .TP .IR name .lock lock file while .I name is receiving mail .RE .IP secretmail/ like .IR mail / .IP uucp/ work files and staging area for .IR uucp (1C) .RS .IP LOGFILE summary log .IP LOG.* log file for one transaction .IP mqueue/ mail queue for .IR sendmail (8) .RE .RE .TP .I wd initial working directory of a user, typically .I wd is the user's login name .RS .TP .BR . profile set environment for .IR sh (1), .IR environ (7) .TP .BR . project what you are doing (used by ( .IR finger (1) ) .TP .BR . cshrc startup file for .IR csh (1) .TP .BR . exrc startup file for .IR ex (1) .TP .BR . plan what your short-term plans are (used by .IR finger (1) ) .TP .BR . netrc startup file for various network programs .TP .BR . msgsrc startup file for .IR msgs (1) .TP .BR . mailrc startup file for .IR mail (1) .IP calendar user's datebook for .IR calendar (1) .RE .IP doc/ papers, mostly in volume 2 of this manual, typically in .IR ms (7) format .RS .IP as/ assembler manual .IP c C manual .IP ... .RE .RE .RE .IP /usr/\tsrc/ .RS .IP source programs for utilities, etc. .RS .IP bin/ source of commands in /bin .RS .IP as/ assembler .IP ar.c source for .IR ar (1) .IP ... .RE .IP usr.bin/ source for commands in /usr/bin .RS .IP troff/ source for .I nroff and .IR troff (1) .RS .IP font/ source for font tables, /usr/lib/font/ .RS .IP ftR.c Roman .IP ... .RE .IP term/ terminal characteristics tables, /usr/lib/term/ .RS .IP tab300.c DASI 300 .IP ... .RE .IP ... .RE .RE .IP ucb source for programs in /usr/ucb .IP games/ source for /usr/games .IP lib/ source for programs and archives in /lib .RS .IP libc/ C runtime library .RS .IP csu/ startup and wrapup routines needed with every C program .RS .IP crt0.s regular startup .IP mcrt0.s modified startup for .I cc \-p .RE .IP sys/ system calls (2) .RS .IP access.s .IP brk.s .IP ... .RE .RE .IP stdio/ standard I/O functions (3S) .RS .IP fgets.c .IP fopen.c .IP ... .RE .IP gen/ other functions in (3) .RS .IP abs.c .IP ... .RE .IP net/ network functions in (3N) .RS .IP gethostbyname.c .IP ... .RE .RE .IP local/ source which isn't normally distributed .IP new/ source for new versions of commands and library routines .IP old/ source for old versions of commands and library routines .IP ucb/ binaries of programs developed at UCB .RS .IP ... .IP edit editor for beginners .IP ex command editor for experienced users .IP ... .IP mail mail reading/sending subsystem .IP man on line documentation .IP ... .IP pi Pascal translator .IP px Pascal interpreter .IP ... .IP vi visual editor .RE .RE .ad .SH SEE ALSO ls(1), apropos(1), whatis(1), whereis(1), finger(1), which(1), ncheck(8), find(1), grep(1) .SH BUGS The position of files is subject to change without notice. #]lo%ہ$ (##VF#] G.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)intro.7 6.1 (Berkeley) 5/20/85 .\" .TH INTRO 7 "May 20, 1985" .UC 5 .SH NAME miscellaneous \- miscellaneous useful information pages .SH DESCRIPTION This section contains miscellaneous documentation, mostly in the area of text processing macro packages for .IR troff (1). .sp 2 .nf .ta 1.25i ascii map of ASCII character set environ user environment eqnchar special character definitions for eqn hier file system hierarchy mailaddr mail addressing description man macros to typeset manual pages me macros for formatting papers ms macros for formatting manuscripts term conventional names for terminals .fi #]loƁ$ ##VG#] .\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)mailaddr.7 6.3 (Berkeley) 5/6/86 .\" .TH MAILADDR 7 "May 6, 1986" .UC 5 .SH NAME mailaddr \- mail addressing description .SH DESCRIPTION Mail addresses are based on the ARPANET protocol listed at the end of this manual page. These addresses are in the general format .PP user@domain .PP where a domain is a hierarchical dot separated list of subdomains. For example, the address .PP eric@monet.Berkeley.ARPA .PP is normally interpreted from right to left: the message should go to the ARPA name tables (which do not correspond exactly to the physical ARPANET), then to the Berkeley gateway, after which it should go to the local host monet. When the message reaches monet it is delivered to the user ``eric''. .PP Unlike some other forms of addressing, this does not imply any routing. Thus, although this address is specified as an ARPA address, it might travel by an alternate route if that were more convenient or efficient. For example, at Berkeley the associated message would probably go directly to monet over the Ethernet rather than going via the Berkeley ARPANET gateway. .SS Abbreviation. .PP Under certain circumstances it may not be necessary to type the entire domain name. In general anything following the first dot may be omitted if it is the same as the domain from which you are sending the message. For example, a user on ``calder.Berkeley.ARPA'' could send to ``eric@monet'' without adding the ``.Berkeley.ARPA'' since it is the same on both sending and receiving hosts. .PP Certain other abbreviations may be permitted as special cases. For example, at Berkeley ARPANET hosts can be referenced without adding the ``.ARPA'' as long as their names do not conflict with a local host name. .SS Compatibility. .PP Certain old address formats are converted to the new format to provide compatibility with the previous mail system. In particular, .PP host:user .PP is converted to .PP user@host .PP to be consistent with the .IR rcp (1C) command. .PP Also, the syntax: .PP host!user .PP is converted to: .PP user@host.UUCP .PP This is normally converted back to the ``host!user'' form before being sent on for compatibility with older UUCP hosts. .PP The current implementation is not able to route messages automatically through the UUCP network. Until that time you must explicitly tell the mail system which hosts to send your message through to get to your final destination. .SS Case Distinctions. .PP Domain names (i.e., anything after the ``@'' sign) may be given in any mixture of upper and lower case with the exception of UUCP hostnames. Most hosts accept any combination of case in user names, with the notable exception of MULTICS sites. .SS Differences with ARPA Protocols. .PP Although the UNIX addressing scheme is based on the ARPA mail addressing protocols, there are some significant differences. .PP At the time of this writing DARPA is converting to real domains. The following rules may be useful: .PP \(bu The syntax ``user@host.ARPA'' is being split up into ``user@host.COM'', ``user@host.GOV'', and ``user@host.EDU'' for commercial, government, and educational institutions respectively. .PP \(bu The syntax ``user@host'' (with no dots) has traditionally referred to the ARPANET. In the future this semantic will not be continued \(em instead, the host will be assumed to be in your organization. You should start using one of the syntaxes above. .PP \(bu Host names of the form ``ORG-NAME'' (e.g., MIT-MC or CMU-CS-A) will be changing to ``NAME.ORG.XXX'' (where `XXX' is COM, GOV, or EDU). For example, MIT-MC will change to MC.MIT.EDU. In some cases names will be split apart even if they do not have dashes. For example, USC-ISIF will probably change to F.ISI.USC.EDU. .SS Route-addrs. .PP Under some circumstances it may be necessary to route a message through several hosts to get it to the final destination. Normally this routing is done automatically, but sometimes it is desirable to route the message manually. Addresses which show these relays are termed ``route-addrs.'' These use the syntax: .PP <@hosta,@hostb:user@hostc> .PP This specifies that the message should be sent to hosta, from there to hostb, and finally to hostc. This path is forced even if there is a more efficient path to hostc. .PP Route-addrs occur frequently on return addresses, since these are generally augmented by the software at each host. It is generally possible to ignore all but the ``user@host'' part of the address to determine the actual sender. .SS Postmaster. .PP Every site is required to have a user or user alias designated ``postmaster'' to which problems with the mail system may be addressed. .SS Other Networks. .PP Some other networks can be reached by giving the name of the network as the last component of the domain. .I "This is not a standard feature" and may not be supported at all sites. For example, messages to CSNET or BITNET sites can often be sent to ``user@host.CSNET'' or ``user@host.BITNET'' respectively. .SH BERKELEY The following comments apply only to the Berkeley environment. .SS What's My Address? .PP If you are on a local machine, say monet, your address is .PP yourname@monet.Berkeley.ARPA .PP However, since most of the world does not have the new software in place yet, you will have to give correspondents slightly different addresses. From the ARPANET, your address would be: .PP yourname%monet@Berkeley.ARPA .PP From UUCP, your address would be: .PP ucbvax!yourname%monet .PP .SS Computer Center. .PP The Berkeley Computer Center is in a subdomain of Berkeley. Messages to the computer center should be addressed to: .PP user%host.CC@Berkeley.ARPA .PP The alternate syntax: .PP user@host.CC .PP may be used if the message is sent from inside Berkeley. .PP For the time being Computer Center hosts are known within the Berkeley domain, i.e., the ``.CC'' is optional. However, it is likely that this situation will change with time as both the Computer Science department and the Computer Center grow. .SH BUGS The RFC822 group syntax (``group:user1,user2,user3;'') is not supported except in the special case of ``group:;'' because of a conflict with old berknet-style addresses. .PP Route-Address syntax is grotty. .PP UUCP- and ARPANET-style addresses do not coexist politely. .SH SEE ALSO mail(1), sendmail(8); Crocker, D. H., .ul Standard for the Format of Arpa Internet Text Messages, RFC822. #]lo$ ##VH#].\" @(#)man.7 6.3 (Berkeley) 5/15/86 .\" .TH MAN 7 "May 15, 1986" .AT 3 .SH NAME man \- macros to typeset manual .SH SYNOPSIS .B nroff \-man\ file ... .PP .B troff \-man\ file ... .SH DESCRIPTION These macros are used to lay out pages of this manual. A skeleton page may be found in the file /usr/man/man0/xx. .PP Any text argument .I t may be zero to six words. Quotes may be used to include blanks in a `word'. If .I text is empty, special treatment is applied to the next input line with text to be printed. In this way .BR . I may be used to italicize a whole line, or .BR . SM may be followed by .BR . B to make small bold letters. .PP A prevailing indent distance is remembered between successive indented paragraphs, and is reset to default value upon reaching a non-indented paragraph. Default units for indents .I i are ens. .PP Type font and size are reset to default values before each paragraph, and after processing font and size setting macros. .PP These strings are predefined by .BR \-man : .IP \e*R .if t `\*R', `(Reg)' in .if t .I nroff. .if n `(Reg)', trademark symbol in .if n .I troff. .IP \e*S Change to default type size. .SH FILES /usr/lib/tmac/tmac.an .br /usr/man/man0/xx .SH SEE ALSO troff(1), man(1) .SH BUGS Relative indents don't nest. .SH REQUESTS .ta \w'.TH n c x v m'u +\w'Cause 'u +\w'Argument\ 'u .di xx \ka .br .di .in \nau .ti0 Request Cause If no Explanation .ti0 Break Argument .ti0 .tr ~. ~B \fIt\fR no \fIt\fR=n.t.l.* Text .I t is bold. .ti0 ~BI \fIt\fR no \fIt\fR=n.t.l. Join words of .I t alternating bold and italic. .ti0 ~BR \fIt\fR no \fIt\fR=n.t.l. Join words of .I t alternating bold and Roman. .ti0 ~DT no .5i 1i... Restore default tabs. .ti0 ~HP \fIi\fR yes \fIi\fR=p.i.* Set prevailing indent to .I i. Begin paragraph with hanging indent. .ti0 ~I \fIt\fR no \fIt\fR=n.t.l. Text .I t is italic. .ti0 ~IB \fIt\fR no \fIt\fR=n.t.l. Join words of .I t alternating italic and bold. .ti0 ~IP \fIx i\fR yes \fIx\fR="" Same as .TP with tag .I x. .ti0 ~IR \fIt\fR no \fIt\fR=n.t.l. Join words of .I t alternating italic and Roman. .ti0 ~LP yes - Same as .PP. .ti0 ~PD \fId\fR no \fId\fR=.4v Interparagraph distance is .I d. .ti0 ~PP yes - Begin paragraph. Set prevailing indent to .5i. .ti0 ~RE yes - End of relative indent. Set prevailing indent to amount of starting .RS. .ti0 ~RB \fIt\fR no \fIt\fR=n.t.l. Join words of .I t alternating Roman and bold. .ti0 ~RI \fIt\fR no \fIt\fR=n.t.l. Join words of .I t alternating Roman and italic. .ti0 ~RS \fIi\fR yes \fIi\fR=p.i. Start relative indent, move left margin in distance .I i. Set prevailing indent to .5i for nested indents. .ti0 ~SH \fIt\fR yes \fIt\fR=n.t.l. Subhead. .ti0 ~SM \fIt\fR no \fIt\fR=n.t.l. Text .I t is small. .ti0 ~TH \fIn c x v m\fR yes - Begin page named .I n of chapter .IR c; .I x is extra commentary, e.g. `local', for page foot center; .I v alters page foot left, e.g. `4th Berkeley Distribution'; .I m alters page head center, e.g. `Brand X Programmer's Manual'. Set prevailing indent and tabs to .5i. .ti0 ~TP \fIi\fR yes \fIi\fR=p.i. Set prevailing indent to .I i. Begin indented paragraph with hanging tag given by next text line. If tag doesn't fit, place it on separate line. .PP .ti0 * n.t.l. = next text line; p.i. = prevailing indent #]lo$ ##VK#] .\" Copyright (c) 1980 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)me.7 6.3 (Berkeley) 5/6/86 .\" .hc % .TH ME 7 "May 6, 1986" .UC 3 .SH NAME me \- macros for formatting papers .SH SYNOPSIS .B "nroff \-me" [ options ] file ... .br .B "troff \-me" [ options ] file ... .SH DESCRIPTION This package of .I nroff and .I troff macro definitions provides a canned formatting facility for tech%nical papers in various formats. When producing 2-column output on a terminal, filter the output through .IR col (1). .PP The macro requests are defined below. Many .I nroff and .I troff requests are unsafe in conjunction with this package, however, these requests may be used with impunity after the first .pp: .nf .IP .ta \w'.sz +n 'u \&.bp begin new page \&.br break output line here \&.sp n insert n spacing lines \&.ls n (line spacing) n=1 single, n=2 double space \&.na no alignment of right margin \&.ce n center next n lines \&.ul n underline next n lines \&.sz +n add n to point size .fi .PP Output of the .I eqn, .I neqn, .I refer, and .IR tbl (1) preprocessors for equations and tables is acceptable as input. .SH FILES /usr/lib/tmac/tmac.e .br /usr/lib/me/* .SH "SEE ALSO" eqn(1), troff(1), refer(1), tbl(1) .br \-me Reference Manual, Eric P. Allman .br Writing Papers with Nroff Using \-me .tr &. .SH REQUESTS In the following list, \*(lqinitialization\*(rq refers to the first .pp, .lp, .ip, .np, .sh, or .uh macro. This list is incomplete; see .I "The \-me Reference Manual" for interesting details. .PP .ta \w'.eh \'x\'y\'z\' 'u +\w'Initial 'u +\w'Cause 'u .br .di x \ka .br .di .in \nau .ti0 Request Initial Cause Explanation .ti0 Value Break .br .in \nau .ti0 \&.(c - yes Begin centered block .ti0 \&.(d - no Begin delayed text .ti0 \&.(f - no Begin footnote .ti0 \&.(l - yes Begin list .ti0 \&.(q - yes Begin major quote .ti0 \&.(x \fIx\fR - no Begin indexed item in index .I x .ti0 \&.(z - no Begin floating keep .ti0 \&.)c - yes End centered block .ti0 \&.)d - yes End delayed text .ti0 \&.)f - yes End footnote .ti0 \&.)l - yes End list .ti0 \&.)q - yes End major quote .ti0 \&.)x - yes End index item .ti0 \&.)z - yes End floating keep .ti 0 \&.++ \fIm H\fR - no Define paper section. .I m defines the part of the paper, and can be .B C (chapter), .B A (appendix), .B P (preliminary, e.g., abstract, table of contents, etc.), .B B (bibliography), .B RC (chapters renumbered from page one each chapter), or .B RA (appendix renumbered from page one). .ti 0 \&.+c \fIT\fR - yes Begin chapter (or appendix, etc., as set by .++). .I T is the chapter title. .ti0 \&.1c 1 yes One column format on a new page. .ti0 \&.2c 1 yes Two column format. .ti0 \&.EN - yes Space after equation produced by .I eqn or .IR neqn . .ti0 \&.EQ \fIx y\fR - yes Precede equation; break out and add space. Equation number is .IR y . The optional argument \fIx\fR may be .I I to indent equation (default), .I L to left-adjust the equation, or .I C to center the equation. .ti0 \&.GE - yes End \fIgremlin\fP picture. .ti0 \&.GS - yes Begin \fIgremlin\fP picture. .ti0 \&.PE - yes End \fIpic\fP picture. .ti0 \&.PS - yes Begin \fIpic\fP picture. .ti0 \&.TE - yes End table. .ti0 \&.TH - yes End heading section of table. .ti0 \&.TS \fIx\fR - yes Begin table; if \fIx\fR is .I H table has repeated heading. .ti 0 \&.ac \fIA N\fR - no Set up for ACM style output. .I A is the Author's name(s), .I N is the total number of pages. Must be given before the first initialization. .ti0 \&.b \fIx\fR no no Print .I x in boldface; if no argument switch to boldface. .ti 0 \&.ba \fI+n\fR 0 yes Augments the base indent by .I n. This indent is used to set the indent on regular text (like paragraphs). .ti0 \&.bc no yes Begin new column .ti0 \&.bi \fIx\fR no no Print .I x in bold italics (nofill only) .ti0 \&.bu - yes Begin bulleted paragraph .ti0 \&.bx \fIx\fR no no Print \fIx\fR in a box (nofill only). .ti 0 \&.ef \fI\'x\'y\'z\'\fR \'\'\'\' no Set even footer to x y z .ti 0 \&.eh \fI\'x\'y\'z\'\fR \'\'\'\' no Set even header to x y z .ti 0 \&.fo \fI\'x\'y\'z\'\fR \'\'\'\' no Set footer to x y z .ti 0 \&.hx - no Suppress headers and footers on next page. .ti0 \&.he \fI\'x\'y\'z\'\fR \'\'\'\' no Set header to x y z .ti0 \&.hl - yes Draw a horizontal line .ti0 \&.i \fIx\fR no no Italicize .I x; if .I x missing, italic text follows. .ti0 \&.ip \fIx y\fR no yes Start indented paragraph, with hanging tag .IR x . Indentation is .I y ens (default 5). .ti0 \&.lp yes yes Start left-blocked paragraph. .ti 0 \&.lo - no Read in a file of local macros of the form .BI \&.* x. Must be given before initialization. .ti0 \&.np 1 yes Start numbered paragraph. .ti 0 \&.of \fI\'x\'y\'z\'\fR \'\'\'\' no Set odd footer to x y z .ti 0 \&.oh \fI\'x\'y\'z\'\fR \'\'\'\' no Set odd header to x y z .ti 0 \&.pd - yes Print delayed text. .ti0 \&.pp no yes Begin paragraph. First line indented. .ti0 \&.r yes no Roman text follows. .ti 0 \&.re - no Reset tabs to default values. .ti 0 \&.sc no no Read in a file of special characters and diacritical marks. Must be given before initialization. .ti0 \&.sh \fIn x\fR - yes Section head follows, font automatically bold. .I n is level of section, .I x is title of section. .ti 0 \&.sk no no Leave the next page blank. Only one page is remembered ahead. .ti0 \&.sm \fIx\fR - no Set .I x in a smaller pointsize. .ti 0 \&.sz \fI+n\fR 10p no Augment the point size by .I n points. .ti 0 \&.th no no Produce the paper in thesis format. Must be given before initialization. .ti 0 \&.tp no yes Begin title page. .ti0 \&.u \fIx\fR - no Underline argument (even in \fItroff\fR). (Nofill only). .ti0 \&.uh - yes Like .sh but unnumbered. .ti0 \&.xp \fIx\fR - no Print index .I x. #]lo($ ##VL#] .so man7/intro.7 #]lo z$ ~##VM#] .\" Copyright (c) 1980 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)ms.7 6.1 (Berkeley) 5/20/85 .\" .TH MS 7 "May 20, 1985" .UC 4 .ds ]W UCB Computer Center .SH NAME ms \- text formatting macros .SH SYNOPSIS \fBnroff \-ms\fP [ options ] file ... .br \fBtroff \-ms\fP [ options ] file ... .SH DESCRIPTION This package of \fInroff\fP\| and \fItroff\fP\| macro definitions provides a formatting facility for various styles of articles, theses, and books. When producing 2-column output on a terminal or lineprinter, or when reverse line motions are needed, filter the output through \fIcol\fP\|(1). All external \-ms macros are defined below. Many \fInroff\fP\| and \fItroff\fP\| requests are unsafe in conjunction with this package. However, the first four requests below may be used with impunity after initialization, and the last two may be used even before initialization: .sp .2 .ta 5n 12n .nf .bp begin new page .br break output line .sp n insert n spacing lines .ce n center next n lines .ls n line spacing: n=1 single, n=2 double space .na no alignment of right margin .fi .sp .2 Font and point size changes with \ef and \es are also allowed; for example, ``\efIword\efR'' will italicize \fIword.\fP Output of the \fItbl, eqn,\fP and \fIrefer\fP\|(1) preprocessors for equations, tables, and references is acceptable as input. .SH FILES /usr/lib/tmac/tmac.x .br /usr/lib/ms/x.??? .SH "SEE ALSO" eqn(1), refer(1), tbl(1), troff(1) .SH REQUESTS .if n .in 0 .ds x \fIx\fP\| .ds y \fIy\fP\| .ds z \fI y\fP .ds Y \fIx y\fP .tr _. .ta \w'MacroNam'u +\w'InitialVal'u +\w'Break? 'u .sp .3 .nf Macro Initial Break? \0 Explanation Name Value Reset? .sp .3 _AB \*x \- y begin abstract; if \*x=no don't label abstract _AE \- y end abstract _AI \- y author's institution _AM \- n better accent mark definitions _AU \- y author's name _B \*x \- n embolden \*x; if no \*x, switch to boldface _B1 \- y begin text to be enclosed in a box _B2 \- y end boxed text and print it _BT date n bottom title, printed at foot of page _BX \*x \- n print word \*x in a box _CM if t n cut mark between pages _CT \- y,y chapter title: page number moved to CF (TM only) _DA \*x if n n force date \*x at bottom of page; today if no \*x _DE \- y end display (unfilled text) of any kind _DS \*Y I y begin display with keep; \*x=I,L,C,B; \*y=indent _ID\*z 8n,.5i y indented display with no keep; \*y=indent _LD \- y left display with no keep _CD \- y centered display with no keep _BD \- y block display; center entire block _EF \*x \- n even page footer \*x (3 part as for .tl) _EH \*x \- n even page header \*x (3 part as for .tl) _EN \- y end displayed equation produced by \fIeqn\fP _EQ \*Y \- y break out equation; \*x=L,I,C; \*y=equation number _FE \- n end footnote to be placed at bottom of page _FP \- n numbered footnote paragraph; may be redefined _FS \*x \- n start footnote; \*x is optional footnote label _HD undef n optional page header below header margin _I \*x \- n italicize \*x; if no \*x, switch to italics _IP \*Y \- y,y indented paragraph, with hanging tag \*x; \*y=indent _IX \*Y \- y index words \*x \*y and so on (up to 5 levels) _KE \- n end keep of any kind _KF \- n begin floating keep; text fills remainder of page _KS \- y begin keep; unit kept together on a single page _LG \- n larger; increase point size by 2 _LP \- y,y left (block) paragraph. _MC \*x \- y,y multiple columns; \*x=column width _ND \*x if t n no date in page footer; \*x is date on cover _NH \*Y \- y,y numbered header; \*x=level, \*x=0 resets, \*x=S sets to \*y _NL 10p n set point size back to normal _OF \*x \- n odd page footer \*x (3 part as for .tl) _OH \*x \- n odd page header \*x (3 part as for .tl) _P1 if TM n print header on 1st page _PP \- y,y paragraph with first line indented _PT - % - n page title, printed at head of page _PX \*x \- y print index (table of contents); \*x=no suppresses title _QP \- y,y quote paragraph (indented and shorter) _R on n return to Roman font _RE 5n y,y retreat: end level of relative indentation _RP \*x \- n released paper format; \*x=no stops title on 1st page _RS 5n y,y right shift: start level of relative indentation _SH \- y,y section header, in boldface _SM \- n smaller; decrease point size by 2 _TA 8n,5n n set tabs to 8n 16n ... (nroff) 5n 10n ... (troff) _TC \*x \- y print table of contents at end; \*x=no suppresses title _TE \- y end of table processed by \fItbl\fP _TH \- y end multi-page header of table _TL \- y title in boldface and two points larger _TM off n UC Berkeley thesis mode _TS \*x \- y,y begin table; if \*x=H table has multi-page header _UL \*x \- n underline \*x, even in \fItroff\fP _UX \*x \- n UNIX; trademark message first time; \*x appended _XA \*Y \- y another index entry; \*x=page or no for none; \*y=indent _XE \- y end index entry (or series of .IX entries) _XP \- y,y paragraph with first line exdented, others indented _XS \*Y \- y begin index entry; \*x=page or no for none; \*y=indent _1C on y,y one column format, on a new page _2C \- y,y begin two column format _]- \- n beginning of \fIrefer\fP\| reference _[0 \- n end of unclassifiable type of reference _[N \- n N= 1:journal-article, 2:book, 3:book-article, 4:report .fi .if t .bp .DT .SH REGISTERS Formatting distances can be controlled in \-ms by means of built-in number registers. For example, this sets the line length to 6.5 inches: .sp .3 .nr LL 6.5i .sp .3 Here is a table of number registers and their default values: .sp .3 .nf .ta .5i +\w'Name\0'u +\w'paragraph distance 'u +\w'Takes Effect 'u Name Register Controls Takes Effect Default .sp .3 PS point size paragraph 10 VS vertical spacing paragraph 12 LL line length paragraph 6i LT title length next page same as LL FL footnote length next .FS 5.5i PD paragraph distance paragraph 1v (if n), .3v (if t) DD display distance displays 1v (if n), .5v (if t) PI paragraph indent paragraph 5n QI quote indent next .QP 5n FI footnote indent next .FS 2n PO page offset next page 0 (if n), \(ap1i (if t) HM header margin next page 1i FM footer margin next page 1i FF footnote format next .FS 0 (1, 2, 3 available) .fi .sp .3 When resetting these values, make sure to specify the appropriate units. Setting the line length to 7, for example, will result in output with one character per line. Setting FF to 1 suppresses footnote superscripting; setting it to 2 also suppresses indentation of the first line; and setting it to 3 produces an .IP-like footnote paragraph. .PP Here is a list of string registers available in \-ms; they may be used anywhere in the text: .sp .3 .nf .ta .5i 1.1i Name String's Function .sp .3 \e*Q quote (" in \fInroff,\fP\| `` in \fItroff\fP ) \e*U unquote (" in \fInroff,\fP\| '' in \fItroff\fP ) \e*\- dash (-- in \fInroff,\fP \(em in \fItroff\fP ) \e*(MO month (month of the year) \e*(DY day (current date) \e** automatically numbered footnote \e*\' acute accent (before letter) \e*\` grave accent (before letter) \e*\d^ \ucircumflex (before letter) \e*, cedilla (before letter) \e*: umlaut (before letter) \e*\d~ \utilde (before letter) .fi .sp .3 When using the extended accent mark definitions available with .AM, these strings should come after, rather than before, the letter to be accented. .SH BUGS Floating keeps and regular keeps are diverted to the same space, so they cannot be mixed together with predictable results. #]lo"$ ##VN#].\" Copyright (c) 1980 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)term.7 6.1 (Berkeley) 5/20/85 .\" .TH TERM 7 "May 20, 1985" .UC 4 .SH NAME term \- conventional names for terminals .SH DESCRIPTION Certain commands use these terminal names. They are maintained as part of the shell environment (see .IR sh (1), environ (7)). .LP .nf .ta \w'450\-12\-8 'u adm3a Lear Seigler Adm-3a 2621 Hewlett-Packard HP262? series terminals hp Hewlett-Packard HP264? series terminals c100 Human Designed Systems Concept 100 h19 Heathkit H19 mime Microterm mime in enhanced ACT IV mode 1620 DIABLO 1620 (and others using HyType II) 300 DASI/DTC/GSI 300 (and others using HyType I) 33 TELETYPE\*R Model 33 37 TELETYPE Model 37 43 TELETYPE Model 43 735 Texas Instruments TI735 (and TI725) 745 Texas Instruments TI745 dumb terminals with no special features dialup a terminal on a phone line with no known characteristics network a terminal on a network connection with no known characteristics 4014 Tektronix 4014 vt52 Digital Equipment Corp. VT52 .fi .PP The list goes on and on. Consult /etc/termcap (see .IR termcap (5)) for an up-to-date and locally correct list. .PP Commands whose behavior may depend on the terminal either consult TERM in the environment, or accept arguments of the form .BR \-Tterm, where .I term is one of the names given above. .SH SEE ALSO stty(1), tabs(1), plot(1G), sh(1), environ(7) ex(1), clear(1), more(1), ul(1), tset(1), termcap(5), termcap(3X), ttytype(5) .br troff(1) for .I nroff .SH BUGS The programs that ought to adhere to this nomenclature do so only fitfully. #]loĿہ$ C#%#WA#ž ( ` "/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs.h 12.0$ */ /* $ACIS:afs.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidafs = "$Header:afs.h 12.0$"; #endif /* * AFS system call opcodes */ #define AFSOP_START_R 0 /* no aux parms */ #define AFSOP_START_CALLBACK 1 /* no aux parms */ #define AFSOP_START_RFTP 2 /* no aux parms */ #define AFSOP_START_AFS 3 /* no aux parms */ #define AFSOP_START_BKG 4 /* no aux parms */ #define AFSOP_ADDCELL 5 /* parm 2 = cell str */ #define AFSOP_CACHEINIT 6 /* parms 2-4 -> cache sizes */ #define AFSOP_CACHEINFO 7 /* the cacheinfo file */ #define AFSOP_VOLUMEINFO 8 /* the volumeinfo file */ #define AFSOP_CACHEFILE 9 /* a random cache file (V*) */ #define AFSOP_CACHEINODE 10 /* random cache file by inode */ #define AFSOP_AFSLOG 11 /* output log file */ #define AFSOP_ROOTVOLUME 12 /* non-standard root volume name */ #define AFSOP_STARTLOG 14 /* temporary: Start afs logging */ #define AFSOP_ENDLOG 15 /* temporary: End afs logging */ #define AFSOP_GO 100 /* whether settime is being done */ /* not for initialization: debugging assist */ #define AFSOP_CHECKLOCKS 200 /* dump lock state */ #define AFSCALL 181 /* generic undefined vice id */ #define UNDEFVID (-1) /* The basic defines for the Andrew file system better keep things powers of two so "& (foo-1)" hack works for masking bits */ #define VCBS 16 /* max callbacks per server to queue */ #define MAXHOSTS 8 /* max hosts per single volume */ #define NBRS 10 /* max number of queued daemon requests */ #define NUSERS 16 /* hash table size for unixuser table */ #define NSERVERS 16 /* hash table size for server table */ #define NVOLS 64 /* hash table size for volume table */ #define NFENTRIES 256 /* hash table size for disk volume table */ #define VCSIZE 128 /* stat cache hash table size */ #define DCSIZE 64 /* disk cache hash table size */ #define PIGGYSIZE 1350 /* max piggyback size */ #define MAXVOLS 50 /* max vols we can store */ #define MAXMULTI 3 /* max conns per single user/fs pair */ #define TOKENTIMEOUT (26*3600) /* time after which to timeout conns with tokens */ #define NOTOKTIMEOUT (2*3600) /* time after which to timeout conns sans tokens */ /* below here used only for kernel procedures */ #ifdef KERNEL /* background request structure */ #define BPARMS 4 #define BOP_NOOP 0 /* leave 0 unused */ #define BOP_FETCH 1 /* parm1 is chunk to get */ #define BOP_STORE 2 /* parm1 is chunk to store */ /* protocol is: refCount is incremented by user to take block out of free pool. Next, BSTARTED is set when daemon finds request. This prevents other daemons from picking up the same request. Finally, when request is done, refCount is zeroed. BDONE and BWAIT are used by dudes waiting for operation to proceed to a certain point before returning. */ #define BSTARTED 1 /* request picked up by a daemon */ #define BUVALID 2 /* code is valid (store) */ #define BUWAIT 4 /* someone is waiting for BUVALID */ struct brequest { struct vcache *vnode; /* vnode to use, with vrefcount bumped */ struct ucred *cred; /* credentials to use for operation */ long parm[BPARMS]; /* random parameters */ long code; /* return code */ short refCount; /* use counter for this structure */ char opcode; /* what to do (store, fetch, etc) */ char flags; /* free, etc */ }; struct SecretToken { char data[56]; }; struct ClearToken { long AuthHandle; char HandShakeKey[8]; long ViceId; long BeginTimestamp; long EndTimestamp; }; struct VenusFid { long Cell; /* better sun packing if at end of structure */ struct ViceFid Fid; }; struct vrequest { long uid; /* user id making the request */ long busyCount; /* how many busies we've seen so far */ char initd; /* if non-zero, non-uid fields meaningful */ char accessError; /* flags for overriding error return code */ char volumeError; /* encountered a missing volume */ char networkError; /* encountered network problems */ }; #define LOCALCELL 1 /* local cell's number is always 1 */ #define CPrimary 1 /* on if this is the primary cell */ struct cell { struct cell *next; long cell; /* unique id assigned by venus */ char *cellName; /* char string name of cell */ struct server *cellHosts[MAXHOSTS]; /* volume *location* hosts for this cell */ short states; /* state flags */ }; /* the unixuser flag bit definitions */ #define UHasTokens 1 /* are the st and ct fields valid (ever set)? */ #define UTokensBad 2 /* are tokens bad? */ struct unixuser { struct unixuser *next; /* next hash pointer */ long uid; /* search based on uid and cell */ long cell; long vid; /* corresponding vice id in specified cell */ short refCount; /* reference count for allocation */ char states; /* flag info */ char primary; /* true iff primary identity */ long tokenTime; /* last time tokens were set, used for timing out conn data */ struct SecretToken st; /* the tokens */ struct ClearToken ct; }; struct conn { /* Per-connection block. */ struct conn *next; /* Next dude same server. */ struct lock lock; /* lock */ struct unixuser *user; /* user validated with respect to. */ struct r_connection *id; /* RPC connid. */ struct server *server; /* server associated with this conn */ short refCount; /* reference count for allocation */ char tag; /* which conn for this this is */ char forceConnectFS; /* Should we try again with these tokens? */ }; /* * Queues implemented with both pointers and short offsets into a disk file. */ struct afs_q { struct afs_q *next; struct afs_q *prev; }; struct afs_sq { short next; short prev; }; #define SQNULL -1 /* Fid comparison routines */ #define FidCmp(a,b) ((a)->Fid.Unique != (b)->Fid.Unique \ || (a)->Fid.Vnode != (b)->Fid.Vnode \ || (a)->Fid.Volume != (b)->Fid.Volume \ || (a)->Cell != (b)->Cell) /* * Operations on circular queues implemented with pointers. Note: these queue objects are * always located at the beginning of the structures they are linking. */ #define QInit(q) ((q)->prev = (q)->next = (q)) #define QAdd(q,e) ((e)->next = (q)->next, (e)->prev = (q), \ (q)->next->prev = (e), (q)->next = (e)) #define QRemove(e) ((e)->next->prev = (e)->prev, (e)->prev->next = (e)->next) #define QNext(e) ((e)->next) #define QPrev(e) ((e)->prev) /* do lots of address arithmetic to go from lruq to the base of the vcache structure. Don't move struct vnode, since we think of a struct vcache as a specialization of a struct vnode */ #define QTOV(e) ((struct vcache *)(((char *) (e)) - (((char *)(&(((struct vcache *)(e))->lruq))) - ((char *)(e))))) /* * Operations on circular dcache queues implemented with short file offsets. Note: these queue * objects are never located at the beginning of the structures they are linking, so we always * need to provide the queue's name in the dcache record. */ #define sQInit(q) ((q).next = (q).prev = SQNULL) #define sQAdd(q, qname, eidx) (Fill this in) #define sQRemove(q, qname, eidx) (Fill this in) #define sQNext(qname, eidx, nextidx) (Fill this in) #define sQPrev(qname, eidx, previdx) (Fill this in) struct server { struct server *next; struct cell *cell; /* cell in which this host resides */ struct conn *conns; /* all user connections to this server */ struct ViceFid vcbs[VCBS]; long host; /* in network byte order, except subsys */ long portal; /* in network byte order */ long subsys; /* in host order */ long creatingVol; /* vol whose reference created this struct */ char isDown; /* result of decision if server is down. */ char vcbCount; /* count of vcbs */ }; /* state bits for volume */ #define VRO 1 /* volume is readonly */ #define VRecheck 2 /* recheck volume info with server */ #define VBackup 4 /* is this a backup volume? */ #define VSearched 8 /* checked fvol table for .. info yet? */ struct volume { /* One structure per volume, describing where the volume is located and where its mount points are. */ struct volume *next; /* Next volume in hash list. */ long cell; /* the cell in which the volume resides */ struct lock lock; /* the lock for this structure */ long volume; /* This volume's ID number. */ char *name; /* This volume's name, or 0 if unknown */ struct server *serverHost[MAXHOSTS]; /* servers serving this volume */ struct VenusFid dotdot; /* dir to access as .. */ struct VenusFid mtpoint; /* The mount point for this volume. */ long roVol; long backVol; long rwVol; /* For r/o vols, original read/write volume. */ long accessTime; /* last time we used it */ long vtix; /* volume table index */ short refCount; /* reference count for allocation */ char states; /* snuck here for alignment reasons */ }; /* format of an entry in volume info file */ struct fvolume { long cell; /* cell for this entry */ long volume; /* volume */ long next; /* has index */ struct VenusFid dotdot; /* .. value */ struct VenusFid mtpoint; /* mt point's fid */ }; /* vcache state bits */ #define CStatd 1 /* has this file ever been stat'd? */ #define CDeleted 2 /* has this file been deleted? (UNUSED) */ #define CRO 4 /* is it on a read-only volume */ #define CMValid 8 /* is the mount point info valid? */ #define CCore 0x10 /* storing a core file, needed since we don't get an open */ #define CDataMod 0x20 /* data was modified >= 1 time after fetched into this vnode */ #define CSafeStore 0x40 /* close must wait for store to finish (should be in fd) */ #define CPSIZE 2 #define vrefCount v.v_count struct vcache { struct vnode v; /* Has reference count in v.v_count */ struct afs_q lruq; /* lru q next and prev */ struct vcache *hnext; /* Hash next */ struct VenusFid fid; struct mstat { long Length; long DataVersion; long Date; long Owner; short Mode; unsigned char LinkCount; /* vnode type is in v.v_type */ } m; struct lock lock; /* The lock on the vcache contents. */ long parentVnode; /* Parent dir, if a file. */ long parentUnique; struct VenusFid *mvid; /* Either parent dir (if root) or root (if mt pt) */ char *linkData; /* Link data if a symlink. */ long randomUid[CPSIZE]; /* random users' ids and access rights. */ long callback; /* The callback host, if any */ long cbExpires; /* time the callback expires */ short opens; /* The numbers of opens, read or write, on this file. */ short execsOrWriters; /* The number of execs (if < 0) or writers (if > 0) of this file. */ short flockCount; /* count of flock readers, or -1 if writer */ unsigned char chunkShift; /* log chunksize in bytes */ char randomAccess[CPSIZE]; /* watch for more rights in prs_fs.h */ char anyAccess; /* System:AnyUser's access to this. */ char mvstat; /* 0->normal, 1->mt pt, 2->root. */ char states; /* state bits */ }; /*---------------------------------------------------------------------- * AFS Data cache definitions * * Each entry describes a Unix file on the local disk that is * is serving as a cached copy of all or part of a Vice file. * Entries live in circular queues for each hash table slot * * Which queue is this thing in? Good question. * A struct dcache entry is in the freeDSlot queue when not associated with a cache slot (file). * Otherwise, it is in the DLRU queue. The freeDSlot queue uses the lruq.next field as * its "next" pointer. * * Cache entries in the DLRU queue are either associated with vice files, in which case * they are hashed by hvNextp and hcNextp pointers, or they are in the freeDCList * and are not associated with any vice file. This last list uses the hvNextp pointer for * its "next" pointer. * * Note that the DLRU and freeDSlot queues are *memory* queues, while the hvNextp and * hcNextp hash lists and the freeDCList all go through the disk elements. Think of the * memory queues as lower-level queues caching a number of the disk entries. *----------------------------------------------------------------------*/ #define NULLIDX (-1) /* null index definition */ /* struct dcache states bits */ #define DDataMod 1 /* Data modified */ #define DEntryMod 2 /* Entry itself modified */ #define DHeadChunk 4 /* entry is head chunk; in hvNextp list */ #define DWriting 8 /* file being written (used for cache validation) */ #define DFetching 0x10 /* file is currently being fetched */ #define DWaiting 0x20 /* someone waiting for file */ #define DFetchReq 0x40 /* someone is waiting for DFetching to go on */ /* flags in afs_indexFlags array */ #define IFEverUsed 1 /* index entry has >= 1 byte of data */ #define IFFree 2 /* index entry in freeDCList */ #define IFDataMod 4 /* file needs to be written out */ struct afs_ioctl { caddr_t in, out; /* Data to be transferred in, or out */ short in_size; /* Size of input buffer <= 2K */ short out_size; /* Maximum size of output buffer, <= 2K */ }; struct fcache { short hvNextp; /* Next in vnode hash table, or freeDCList */ short hcNextp; /* Next index in [fid, chunk] hash table */ short chunkNextp; /* File queue of all chunks for a single vnode */ struct VenusFid fid; /* Fid for this file */ long modTime; /* last time this entry was modified */ long versionNo; /* Associated data version number */ long chunk; /* Relative chunk number */ long inode; /* Unix inode for this chunk */ long chunkBytes; /* Num bytes in this chunk */ char states; /* Has this chunk been modified? */ }; struct dcache { struct afs_q lruq; /* Free queue for in-memory images */ short refCount; /* Associated reference count. */ short index; /* The index in the CacheInfo file*/ long validPos; /* number of valid bytes during fetch */ struct fcache f; /* disk image */ }; #define DCHASHSIZE 1024 #define DVHASHSIZE 1024 /* The PFlush algorithm makes use of the fact that Fid.Unique is not used in below hash algorithms. Change it if need be so that flushing algorithm doesn't move things from one hash chain to another */ #define DCHash(v, c) ((((v)->Fid.Vnode + (v)->Fid.Volume + (c))) & (DCHASHSIZE-1)) /*Vnode, Chunk -> Hash table index*/ #define DVHash(v) ((((v)->Fid.Vnode + (v)->Fid.Volume )) & (DVHASHSIZE-1)) /*Vnode -> Other hash table index*/ /* don't hash on the cell, our callback-breaking code sometimes fails to compute the cell correctly, and only scans one hash bucket */ #define VCHash(fid) (((fid)->Fid.Volume + (fid)->Fid.Vnode) & (VCSIZE-1)) extern short afs_dvhashTable[DVHASHSIZE]; /*Data cache hash table (on vnodes)*/ extern short afs_dchashTable[DCHASHSIZE]; /*Ditto, on [fid, chunk]*/ extern struct dcache **afs_indexTable; /*Pointers to in-memory dcache entries*/ extern long afs_cacheFiles; /*Size of afs_indexTable*/ extern long afs_cacheBlocks; /*1K blocks in cache*/ extern long afs_cacheStats; /*Stat entries in cache*/ extern struct vcache *afs_vhashTable[VCSIZE]; /*Stat cache hash table*/ extern long afs_initState; /*Initialization state*/ extern struct VenusFid afs_rootFid; /*Root for whole file system*/ extern long afs_missedCBs; /*Count of missed callbacks*/ extern struct brequest afs_brs[NBRS]; /* request structures */ #define UHash(auid) ((auid) & (NUSERS-1)) #define VHash(avol) ((avol)&(NVOLS-1)) #define SHash(aserv) ((aserv) & (NSERVERS-1)) #define FVHash(acell,avol) (((avol)+(acell)) & (NFENTRIES-1)) extern long dc_sync(); /* Args: * vnode *vp vnode whose pages must be flushed * */ extern long dc_init(); /* * Args: * None. */ extern long dc_xfer(); /* * Args: * vnode *vp Ptr to vnode involved. * struct uio *uio transfer info cntg positions and lengths of buffer and file * enum uio_rw reading UIO_READ and UIO_WRITE */ extern struct cell *afs_GetCell(); extern struct cell *afs_GetCellByName(); extern struct unixuser *afs_GetUser(); extern struct volume *afs_GetVolume(); extern struct volume *afs_GetVolumeByName(); extern struct conn *afs_Conn(); extern struct conn *afs_ConnByHost(); extern struct conn *afs_ConnByMHosts(); extern struct server *afs_GetServer(); extern struct cell *afs_NewCell(); extern struct dcache *afs_GetDCache(); extern struct dcache *afs_FindDCache(); extern struct dcache *afs_NewDCache(); extern struct dcache *afs_GetDSlot(); extern struct vcache *afs_GetVCache(); extern struct brequest *afs_BQueue(); #endif KERNEL #]loB/$ &#%#_F#_F ~ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs_daemons.c 12.3$ */ /* $ACIS:afs_daemons.c 12.3$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs_daemons.c,v $ */ #ifndef lint static char *rcsid = "$Header:afs_daemons.c 12.3$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/buf.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" #include "../afs/prs_fs.h" #include "../afs/dir.h" /* background request queue size */ struct lock afs_xbrs; /* lock for brs */ int brsInit = 0; short afs_brsDaemons = 0; /* number of daemons waiting for brs requests */ short afs_brsWaiters = 0; /* number of users waiting for brs buffers */ struct brequest afs_brs[NBRS]; /* request structures */ extern char afs_rootVolumeName[]; extern struct VenusFid afs_rootFid; extern struct osi_dev cacheDev; extern char *afs_indexFlags; extern struct lock afs_xvcache; extern struct vcache *afs_NewVCache(); extern int afs_running; afs_daemons_cleanup() { bzero(&afs_xbrs, sizeof(afs_xbrs)); brsInit = 0; afs_brsDaemons = 0; afs_brsWaiters = 0; bzero(afs_brs, sizeof(afs_brs)); } afs_Daemon() { register long code; long now; long last3MinCheck, last10MinCheck, last60MinCheck; last3MinCheck = last10MinCheck = last60MinCheck = 0; afs_rootFid.Fid.Volume = 0; while (afs_initState < 101) osi_Sleep(&afs_initState); /* start off with afs_initState >= 101 (basic init done) */ while(afs_running) { now = osi_Time(); /* things to do every minute */ afs_CheckSize(0); /* make sure we're under disk quota */ DFlush(); /* write out dir buffers */ afs_WriteThroughDSlots(); /* write through cacheinfo entries */ afs_KeepFlocksAlive(); /* keep flocks held */ if (last3MinCheck + 180 < now) { afs_dp("checking down servers periodically\n"); afs_CheckServers(1); /* only check down servers */ last3MinCheck = now; } if (last10MinCheck + 600 < now) { afs_dp("checking working servers periodically\n"); afs_CheckServers(0); afs_GCUserData(); /* gc old conns */ last10MinCheck = now; } if (last60MinCheck + 3600 < now) { afs_dp("checking volume names periodically\n"); afs_CheckRootVolume(); afs_CheckVolumeNames(); last60MinCheck = now; } if (afs_initState < 300) { /* while things ain't rosy */ code = afs_CheckRootVolume(); if (code == 0) afs_initState = 300; /* succeeded */ if (afs_initState < 200) afs_initState = 200; /* tried once */ osi_Wakeup(&afs_initState); } /* finally sleep for a minute and see what's up */ code = osi_NetWait((struct osi_socket *) 0, 60*1000, (struct osi_NetHandle *) 0); if (code) afs_dp("afs_daemon: netwait code %d\n", code); }; } afs_CheckRootVolume () { register struct conn *tconn; register struct cell *tcell; struct vrequest treq; struct BBS rootVolData; char rootVolName[32]; register struct volume *tvp; register long code; afs_dp("searching for root volume\n"); afs_InitReq(&treq, &osi_cred); if (*afs_rootVolumeName == 0) { rootVolData.MaxSeqLen = 32; rootVolData.SeqLen = 0; rootVolData.SeqBody = rootVolName; tcell = afs_GetCell(LOCALCELL); /* better be here by now */ if (!tcell) panic("afs_daemon: no primary cell"); do { tconn = afs_ConnByMHosts(tcell->cellHosts, tcell->cell, &treq); #ifdef NINTERFACE if (tconn) code = AFS_GetRootVolume(tconn->id, &rootVolData); #else if (tconn) code = RViceGetRootVolume(tconn->id, &rootVolData); #endif else code = -1; } while (afs_Analyze(tconn, code, (struct ViceFid *) 0, &treq)); } else { strcpy(rootVolName, afs_rootVolumeName); code = 0; } if (code) afs_dp("failed to get root volname, code %d\n", code); else { tvp = afs_GetVolumeByName(rootVolName, LOCALCELL, 1, (struct vrequest *) 0); if (tvp) { afs_rootFid.Cell = LOCALCELL; afs_rootFid.Fid.Volume = tvp->volume; afs_rootFid.Fid.Vnode = 1; afs_rootFid.Fid.Unique = 1; afs_initState = 300; /* won */ osi_Wakeup(&afs_initState); afs_PutVolume(tvp); } } if (afs_rootFid.Fid.Volume) return 0; else return ENOENT; } /* parm 0 to the fetch is the chunk number; parm 1 is null or a dcache entry to wakeup */ BPrefetch(ab) register struct brequest *ab; { register struct dcache *tdc; register struct vcache *tvc; long offset, len; struct vrequest treq; afs_InitReq(&treq, ab->cred); /* probably should keep credentials */ tvc = ab->vnode; tdc = afs_GetDCache(tvc, ab->parm[0], &treq, &offset, &len, 1); if (tdc) { afs_PutDCache(tdc); } /* now, dude may be waiting for us to clear DFetchReq bit; do so */ tdc = (struct dcache *) (ab->parm[1]); if (tdc) { /* can't use tdc from GetDCache since afs_GetDCache may fail, but someone may be waiting for our wakeup anyway */ tdc->f.states &= ~DFetchReq; osi_Wakeup(&tdc->validPos); } } /* already write-locked vcache */ BStore(ab) register struct brequest *ab; { register struct dcache *tdc; register struct vcache *tvc; register long code; struct vrequest treq; afs_InitReq(&treq, ab->cred); code = 0; tvc = ab->vnode; UpgradeSToWLock(&tvc->lock); tvc->execsOrWriters--; if (tvc->execsOrWriters == 0) { /* put the file back */ tdc = afs_FindDCache(tvc, 0); if (tdc) { ConvertWToSLock(&tvc->lock); code = afs_StoreDCache(tvc, tdc, &treq); UpgradeSToWLock(&tvc->lock); afs_PutDCache(tdc); tdc->f.states &= ~DWriting; tdc->f.states |= DEntryMod; if (code) { /* failed to store, invalidate bad cache info */ tvc->states &= ~CStatd; afs_indexFlags[tdc->index] &= ~IFDataMod; tdc->f.versionNo = -1; } } else afs_dp("warning, no file on close\n"); } ReleaseWriteLock(&tvc->lock); /* now set final return code, and wakeup anyone waiting */ if ((ab->flags & BUVALID) == 0) { ab->code = code; /* set final code */ ab->flags |= BUVALID; if (ab->flags & BUWAIT) { ab->flags &= ~BUWAIT; osi_Wakeup(ab); } } } /* release a held request buffer */ afs_BRelease(ab) register struct brequest *ab; { ObtainWriteLock(&afs_xbrs); if (--ab->refCount <= 0) { ab->flags = 0; } if (afs_brsWaiters) osi_Wakeup(&afs_brsWaiters); ReleaseWriteLock(&afs_xbrs); } /* return true if bkg fetch daemons are all busy */ int afs_BBusy() { if (afs_brsDaemons > 0) return 0; return 1; } struct brequest *afs_BQueue(aopcode, avc, ause, aparm0, aparm1, aparm2, aparm3, aparm4) register short aopcode; long ause; register struct vcache *avc; long aparm1, aparm2, aparm3, aparm0; { register int i; register struct brequest *tb; ObtainWriteLock(&afs_xbrs); while (1) { tb = afs_brs; for(i=0;irefCount == 0) break; } if (i < NBRS) { /* found a buffer */ tb->opcode = aopcode; tb->vnode = avc; tb->cred = u.u_cred; /* really should get this as a parm */ crhold(tb->cred); avc->vrefCount++; tb->refCount = ause+1; tb->parm[0] = aparm0; tb->parm[1] = aparm1; tb->parm[2] = aparm2; tb->parm[3] = aparm3; tb->flags = 0; tb->code = 0; /* if daemons are waiting for work, wake them up */ if (afs_brsDaemons > 0) { osi_Wakeup(&afs_brsDaemons); } ReleaseWriteLock(&afs_xbrs); return tb; } /* no free buffers, sleep a while */ afs_brsWaiters++; ReleaseWriteLock(&afs_xbrs); osi_Sleep(&afs_brsWaiters); ObtainWriteLock(&afs_xbrs); afs_brsWaiters--; } } afs_BackgroundDaemon() { register struct brequest *tb; register int i; int foundAny; long code; /* initialize subsystem */ if (brsInit == 0) { Lock_Init(&afs_xbrs); bzero(afs_brs, sizeof(afs_brs)); brsInit = 1; } ObtainWriteLock(&afs_xbrs); while (afs_running) { /* find a request */ tb = afs_brs; foundAny = 0; for(i=0;irefCount > 0) && !(tb->flags & BSTARTED)) { /* new request, not yet picked up */ tb->flags |= BSTARTED; ReleaseWriteLock(&afs_xbrs); foundAny = 1; afs_dp("bkg found request %d\n", tb->opcode); if (tb->opcode == BOP_FETCH) code = BPrefetch(tb); else if (tb->opcode == BOP_STORE) code = BStore(tb); else panic("background bop"); if (tb->vnode) { tb->vnode->vrefCount--; /* fix up reference count */ tb->vnode = (struct vcache *) 0; } if (tb->cred) { tb->cred->cr_ref--; tb->cred = (struct ucred *) 0; } afs_BRelease(tb); /* this grabs and releases afs_xbrs lock */ ObtainWriteLock(&afs_xbrs); } } if (!foundAny) { /* wait for new request */ afs_brsDaemons++; afs_dp("bkg about to wait\n"); ReleaseWriteLock(&afs_xbrs); osi_Sleep(&afs_brsDaemons); if (afs_running) ObtainWriteLock(&afs_xbrs); afs_dp("bkg woke up\n"); afs_brsDaemons--; } } } #]loG$ !S#%#_W#_W  /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs_gfs_subr.c 12.1$ */ /* $ACIS:afs_gfs_subr.c 12.1$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs_gfs_subr.c,v $ */ #ifndef lint static char *rcsid = "$Header:afs_gfs_subr.c 12.1$"; #endif #ifdef vax #include "../h/param.h" #include "../h/systm.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/file.h" #include "../h/stat.h" #include "../h/fs_types.h" #include "../h/mount.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/ioctl.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../net/if.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" /* Emulates the lookupname() SunOS routine */ int gop_lookupname(fnamep, seg, followlink, parent, gpp) char *fnamep; /* user pathname */ int seg; /* addr space that name is in */ int followlink; /* follow sym links */ struct gnode **parent; /* Return Ptr for parent dir -- ignored */ struct gnode **gpp; /* Return Ptr to component gnode */ { register struct nameidata *ndp = &u.u_nd; if (seg == AFS_UIOUSER) { if ((ndp->ni_dirp = km_alloc(MAXPATHLEN, KM_SLEEP)) == NULL) return(EIO); if (u.u_error = copyinstr(fnamep, ndp->ni_dirp, MAXPATHLEN, (u_int *)0)){ km_free(ndp->ni_dirp, MAXPATHLEN); return(u.u_error); } } else ndp->ni_dirp = fnamep; ndp->ni_nameiop = LOOKUP; if (followlink) ndp->ni_nameiop |= FOLLOW; *gpp = gfs_namei(ndp); if (seg == AFS_UIOUSER) km_free(ndp->ni_dirp, MAXPATHLEN); if (*gpp == NULL) { return(u.u_error); } gfs_unlock(*gpp); return(0); } int gop_rdwr(rw, gp, base, len, offset, segflg, unit, aresid) enum uio_rw rw; register struct gnode *gp; register caddr_t base; int len, offset, segflg; register int *aresid; int unit; /* Ignored by GFS; in Sun allowes for "IO as atomic unit" */ { int error; gfs_lock(gp); error = rdwri(rw, gp, base, len, offset, segflg, aresid); gfs_unlock(gp); return(error); } /* The two routines below emulate Sun's VOP_RDRW() getattr() and setattr() routines; it's used so that minimal changes will be required for a common in-kernel venus */ int vop_rdwr(gp, uiop, rw, syncflg, cred) struct gnode *gp; struct uio *uiop; int rw; int syncflg; struct ucred *cred; { int error; if ((gp->g_mode & GFMT) == GFREG) { gfs_lock(gp); error = GRWGP(gp, uiop, rw, syncflg, cred); gfs_unlock(gp); } else { error = u.u_error = EINVAL; } return (error); } int vop_getattr(gp, vap, cred) struct gnode *gp; register struct vattr *vap; struct ucred *cred; { int ret; ret = GGETVAL(gp); gfs_lock(gp); vap->va_type = IFTOVT(gp->g_mode); vap->va_mode = gp->g_mode; vap->va_uid = gp->g_uid; vap->va_gid = gp->g_gid; vap->va_fsid = gp->g_dev; vap->va_nodeid = gp->g_number; vap->va_nlink = gp->g_nlink; vap->va_size = gp->g_size; vap->va_atime = gp->g_atime; vap->va_mtime = gp->g_mtime; vap->va_ctime = gp->g_ctime; vap->va_rdev = gp->g_rdev; vap->va_blocks = gp->g_blocks; switch(gp->g_mode & GFMT) { case GFBLK: vap->va_blocksize = BLKDEV_IOSIZE; break; case GFCHR: vap->va_blocksize = MAXBSIZE; break; default: vap->va_blocksize = gp->g_mp->m_fs_data->fd_bsize; break; } gfs_unlock(gp); return (0); } int vop_setattr(gp, vap, cred) register struct gnode *gp; register struct vattr *vap; struct ucred *cred; { int chtime = 0; int error = 0; struct timeval atime; struct timeval mtime; atime = time; mtime = time; /* * cannot set these attributes */ if ((vap->va_nlink != -1) || (vap->va_blocksize != -1) || (vap->va_rdev != -1) || (vap->va_blocks != -1) || (vap->va_fsid != -1) || (vap->va_nodeid != -1)) { return (EINVAL); } gfs_lock(gp); /* * Change file access modes. Must be owner or su. */ if (vap->va_mode != -1) { error = OWNER(gp, cred); if (error) { goto out; } gp->g_mode &= GFMT; gp->g_mode |= vap->va_mode & ~GFMT; if (cred->cr_uid != 0) { gp->g_mode &= ~GSVTX; /* XXX Why? */ if (!groupmember(gp->g_gid)) gp->g_mode &= ~GSGID; } gp->g_flag |= GCHG; /* Remember to xrele text if su ever allowed over net. */ } /* * Change file ownership (must be su). */ if ( ((vap->va_uid != -1) && (vap->va_uid != gp->g_uid)) || ((vap->va_gid != -1) && (vap->va_gid != gp->g_gid)) ) { if (!suser()) { error = u.u_error; goto out; } error = chown2(gp, vap->va_uid, vap->va_gid); if (error) goto out; } /* * Truncate file. Must have write permission and not be a directory. */ if (vap->va_size != -1) { if ((gp->g_mode & GFMT) == GFDIR) { error = EISDIR; goto out; } if (access(gp, GWRITE)) { error = u.u_error; goto out; } (void)GTRUNC(gp, vap->va_size, cred); } /* * Change file access or modified times. */ if (vap->va_atime.tv_sec != -1) { if (access(gp, GREAD) && access(gp, GWRITE)) { error = u.u_error; goto out; } atime.tv_sec = vap->va_atime.tv_sec; atime.tv_usec = vap->va_atime.tv_usec; chtime++; } if (vap->va_mtime.tv_sec != -1) { if (access(gp, GWRITE)) { error = u.u_error; goto out; } mtime.tv_sec = vap->va_mtime.tv_sec; mtime.tv_usec = vap->va_mtime.tv_usec; chtime++; } if (chtime) { gp->g_flag |= GACC|GUPD|GCHG; gp->g_ctime = time; } out: (void) GUPDATE(gp, &atime, &mtime, 1, cred); gfs_unlock(gp); return (error); } /* * Perform chown operation on gnode gp. This is similar to chown1() * in gfs_syscalls.c, but we leave some preliminary error checking and * the GUPDATE operation for the caller to do. This routine should not * exist; please merge these someday. */ struct dquot *inoquota(); chown2(gp, uid, gid) register struct gnode *gp; register int uid, gid; { #ifdef QUOTA register long change; #endif if (uid == -1) uid = gp->g_uid; if (gid == -1) gid = gp->g_gid; #ifdef QUOTA if (gp->g_uid == uid) change = 0; else change = gp->g_blocks; (void) chkdq(gp, -change, 1); (void) chkiq(gp->g_dev, gp, gp->g_uid, 1); dqrele(gp->g_dquot); #endif gp->g_uid = uid; gp->g_gid = gid; gp->g_flag |= (GCHG | GCID); if (u.u_ruid != 0) gp->g_mode &= ~(GSUID|GSGID); #ifdef QUOTA gp->g_dquot = inoquota(gp); (void) chkdq(gp, change, 1); (void) chkiq(gp->g_dev, (struct gnode *)NULL, uid, 1); return (u.u_error); #else return(0); #endif } uniqtime(tv) register struct timeval *tv; { static struct timeval last; static int uniq; while (last.tv_usec != time.tv_usec || last.tv_sec != time.tv_sec) { last = time; uniq = 0; } *tv = last; tv->tv_usec += uniq++; } /* * Copy an mbuf to the contiguous area pointed to by cp. * Skip bytes and copy bytes. * Returns the number of bytes not transferred. * The mbuf is NOT changed. */ int m_cpytoc(m, off, len, cp) register struct mbuf *m; register int off, len; register caddr_t cp; { register int ml; if (m == NULL || off < 0 || len < 0 || cp == NULL) panic("m_cpytoc"); while (off && m) if (m->m_len <= off) { off -= m->m_len; m = m->m_next; continue; } else break; if (m == NULL) return (len); ml = imin(len, m->m_len - off); bcopy(mtod(m, caddr_t)+off, cp, (u_int)ml); cp += ml; len -= ml; m = m->m_next; while (len && m) { ml = m->m_len; bcopy(mtod(m, caddr_t), cp, (u_int)ml); cp += ml; len -= ml; m = m->m_next; } return (len); } /* * Set vattr structure to a null value. */ void vattr_null(vap) struct vattr *vap; { register int n; register char *cp; n = sizeof(struct vattr); cp = (char *)vap; while (n--) { *cp++ = -1; } } /* XXXXXXXXXXX THESE are defined somewhere on the darn kernel XXXXXXXXX */ void bzero(sp, len) register char *sp; int len; { register int n; if ((n = len) <= 0) return; do *sp++ = 0; while (--n); } char * strncpy(s1, s2, n) register char *s1, *s2; register int n; { register char *os1 = s1; while (--n >= 0) if ((*s1++ = *s2++) == '\0') while (--n >= 0) *s1++ = '\0'; return (os1); } char * strcpy(s1, s2) register char *s1, *s2; { register char *os1; os1 = s1; while (*s1++ = *s2++) ; return (os1); } #endif vax #](lo /$ V#%#_j#_j 8,/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs_gfsops.c 12.1$ */ /* $ACIS:afs_gfsops.c 12.1$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs_gfsops.c,v $ */ #ifndef lint static char *rcsid = "$Header:afs_gfsops.c 12.1$"; #endif #ifdef vax #include "../h/param.h" #include "../h/systm.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/file.h" #include "../h/stat.h" #include "../h/fs_types.h" #include "../h/mount.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/ioctl.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../net/if.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" /* * Convert between vnode types and gnode formats */ enum vtype gftovt_tab[] = { VNON, VCHR, VDIR, VBLK, VREG, VLNK, VSOCK, VFIFO, VBAD }; int vttogf_tab[] = { 0, GFREG, GFDIR, GFBLK, GFCHR, GFLNK, GFSOCK,GFPORT, GFMT }; /* * afs vfs operations. */ struct mount *afs_gmount(); extern int afs_statfs(); struct gnode *ufs_gget(); struct gnode *ufs_galloc(); int ufs_gfree(), ufs_fcntl(), ufs_seek(); struct fs_data *afs_getfsdata(); extern int afs_strategy(); /* defined in afs_vnodeops.c */ int afs_gumount(); int afs_sbupdate(); struct gnode *afs_namei(); int afs_glink(); int afs_unlink(); struct gnode *afs_gmkdir(); int afs_grmdir(); struct gnode *afs_makenode(); int afs_grename(); int afs_readdir(); int afs_rele(); int afs_syncgp(); int afs_trunc(); int afs_getval(); int afs_rwgp(); int afs_stat(); int afs_lock(); int afs_unlock(); int afs_update(); int afs_gopen(); int afs_gclose(); int afs_select(); int afs_greadlink(); int afs_gsymlink(); struct fs_data *afs_getfsdata(); int afs_gbmap(); struct mount_ops AFS_mount_ops = { afs_gumount, afs_sbupdate, /* NOOP for afs */ 0, /* find a usage for gget? */ afs_getfsdata, }; struct gnode_ops AFS_gnode_ops = { afs_namei, afs_glink, afs_unlink, afs_gmkdir, afs_grmdir, afs_makenode, afs_grename, afs_readdir, afs_rele, afs_syncgp, afs_trunc, afs_getval, afs_rwgp, 0, /* find a usage or rlock? */ ufs_seek, /* use standard UFS seek */ afs_stat, afs_lock, afs_unlock, afs_update, afs_gopen, afs_gclose, afs_select, afs_greadlink, afs_gsymlink, 0, /* no usage for fcntl yet */ 0, /* find a usage for freegn? */ afs_gbmap }; struct mount_ops *afs_mount_ops = &AFS_mount_ops; struct gnode_ops *afs_ops = &AFS_gnode_ops; /* * afs_mount is called from the generic mount system call */ struct mount * afs_gmount(special, path, flag, mp, ops) caddr_t special, path; int flag; struct mount *mp; char *ops; { extern struct vfs *afs_globalVFS; extern int afs_root(); struct gnode *rootgp = NULL; /* root gnode */ struct vfs *vfsp; /* nfs-like vfs handle */ int error; vfsp = MP_TO_VFSP(mp); mp->m_bufp = (struct buf *) (NODEV); /* to reserve this slot */ mp->m_dev = getpdev(); /* should be NODEV? */ mp->iostrat = afs_strategy; /* set it immediately */ mp->m_ops = afs_mount_ops; mp->m_fstype = GT_AFS; mp->m_flags = (flag ? M_RONLY : 0); afs_globalVFS = vfsp; afs_globalVFS->vfs_data = (char *)mp; mp->m_bsize = 8192; error = afs_root(vfsp, &rootgp); #ifdef AFSDEBUG afs_dp("Leaving afs_mount: mp=%x, m_dev=%x, m_ops=%x, err=%d\n", mp, mp->m_dev, mp->m_ops, error); #endif if (error) goto mount_error; /* * check_mountp will verify local mount point exists and is * ok to mount on. */ if (!(check_mountp(mp, path))) goto mount_error; mp->m_rootgp = (struct gnode *) rootgp; return(mp); mount_error: if (rootgp) { GRELE((struct gnode *)rootgp); } return((struct mount *)NULL); } /* Not used yet; don't umount afs */ afs_gumount(mp, force) register struct mount *mp; register int force; /* XXX ignored */ { register struct gnode *gp = mp->m_gnodp; register struct gnode *rgp = mp->m_rootgp; afs_rele(rgp); gp->g_flag &= ~GMOUNT; GRELE(gp); return(0); } afs_sbupdate(mp) register struct mount *mp; { return 0; } afs_gget(){} /* Currently unused */ int afs_glink(gp, ndp) register struct gnode *gp; register struct nameidata *ndp; { u.u_error = afs_link(gp, ndp->ni_pdir, ndp->ni_cp, u.u_cred); afs_rele(gp); gput(ndp->ni_pdir); return(u.u_error); } afs_unlink(gp, ndp) register struct gnode *gp; register struct nameidata *ndp; { u.u_error = afs_remove(ndp->ni_pdir, ndp->ni_cp, u.u_cred); return(u.u_error); } /* * GET_FILENAME leaves a pointer to the last component of a pathname * in cp. It is used to patch up an awkwardness in the GFS mkdir * interface; GFS passes us the full pathname of the directory to * be created, but we must send only the last component over the wire. */ #define GET_FILENAME(pnamep, cp) \ { (cp) = &(pnamep)[strlen(pnamep)]; \ while (((cp) > (pnamep)) && (*(cp) != '/')) (cp)--; \ if (*(cp) == '/') (cp)++; \ } struct gnode * afs_gmkdir(pgp, name, mode) register struct gnode *pgp; register char *name; register int mode; { struct vattr va; struct gnode *gp; register char *cp; GET_FILENAME(name, cp); vattr_null(&va); va.va_type = VDIR; va.va_mode = (mode & 0777) & ~u.u_cmask; u.u_error = afs_mkdir(pgp, cp, &va, &gp, u.u_cred); gput(pgp); return(u.u_error ? NULL : gp); } afs_grmdir(gp, ndp) register struct gnode *gp; register struct nameidata *ndp; { if (gp == ndp->ni_pdir) { u.u_error = EINVAL; afs_rele(gp); gput(ndp->ni_pdir); return(u.u_error); } if ((gp->g_mode & GFMT) != GFDIR) u.u_error = ENOTDIR; if (gp->g_dev != ndp->ni_pdir->g_dev) u.u_error = EBUSY; if (!u.u_error) u.u_error = afs_rmdir(ndp->ni_pdir, ndp->ni_cp, u.u_cred); gput(gp); gput(ndp->ni_pdir); return(u.u_error); } struct gnode * afs_makenode(mode,dev, ndp) register int mode; register dev_t dev; struct nameidata *ndp; { struct vattr _va; register struct vattr *va = &_va; struct gnode *vpp; /* * replication of the gross mknod hack */ vattr_null(va); switch (mode & GFMT) { case GFREG: va->va_type = VREG; break; case GFCHR: va->va_type = VCHR; printf("afs_makenode: making chr file '%s'\n",ndp->ni_cp); break; case GFBLK: va->va_type = VBLK; printf("afs_makenode: making blk file '%s'\n",ndp->ni_cp); break; case GFPORT: va->va_type = VFIFO; printf("afs_makenode: making fifo file '%s'\n",ndp->ni_cp); break; case GFSOCK: va->va_type = VSOCK; printf("afs_makenode: making sock file '%s'\n",ndp->ni_cp); break; default: u.u_error = EINVAL; goto bad; } va->va_mode = (mode & ~u.u_cmask) & 0xffff; va->va_size = 0; va->va_rdev = dev; u.u_error = afs_create(ndp->ni_pdir, ndp->ni_cp, va, NONEXCL, mode, &vpp, u.u_cred); bad: gput(ndp->ni_pdir); if (u.u_error) return(NULL); else { afs_lock(vpp); return(vpp); } } afs_grename(gp, ssd, srcndp, tsd, targetndp, flag) register struct gnode *gp; struct gnode *ssd, *tsd; register struct nameidata *srcndp, *targetndp; { register struct gnode *tgp; register char *tcp, *scp; scp = srcndp->ni_cp; afs_unlock(srcndp->ni_pdir); if (srcndp->ni_pdir != gp) afs_unlock(gp); if (!strcmp(scp, ".") || !strcmp(scp, "..")) { u.u_error = EINVAL; goto free_src; } tgp = GNAMEI(targetndp); if(u.u_error) goto free_src; tcp = targetndp->ni_cp; if(!strcmp(tcp, ".") || !strcmp(tcp, "..")) { u.u_error = EINVAL; goto free_targ; } if (gp->g_mp != targetndp->ni_pdir->g_mp) { u.u_error = EXDEV; goto free_targ; } if (ISREADONLY(gp->g_mp)) { u.u_error = EROFS; goto free_targ; } u.u_error = afs_rename(srcndp->ni_pdir, scp, targetndp->ni_pdir, tcp, u.u_cred); free_targ: if(tgp) gput(tgp); gput(targetndp->ni_pdir); free_src: afs_rele(gp); afs_rele(srcndp->ni_pdir); return(u.u_error); } afs_rele(gp) register struct gnode *gp; { struct gnode *vp; if(gp->g_count <= 0) panic("afs_rele: zero count"); if(gp->g_count == 1) afs_inactive(gp, u.u_cred); /* Check the count again before freeing up the gnode, in case * another reference has been created (we may block in the * afs_inactive call). * We have to worry about this because the gnode is still in the * cache during the period that we are making it inactive. */ if (--gp->g_count == 0) { /* FIX THIS TOO, PLEASE.... freegnode(gp); */ } } afs_syncgp(gp, cred) register struct gnode *gp; register struct ucred *cred; { return(u.u_error = afs_fsync(gp, cred)); } afs_trunc(gp, newsize, cred) register struct gnode *gp; register unsigned newsize; register struct ucred *cred; { struct vattr va; vattr_null(&va); va.va_size = newsize; return(u.u_error = afs_setattr(gp, &va, cred)); } afs_getval(gp) register struct gnode *gp; { struct vattr vattr; int locked = 0; /* don't hold gnode locked while going over the net */ /* it should be locked now, but check in case there is */ /* a way to get here with it unlocked */ if (gp->g_flag & GLOCKED) { locked = 1; gfs_unlock(gp); } u.u_error = afs_getattr(gp, &vattr, u.u_cred); /* XXXXXXXX More to do -- CAREFUL XXXXXXXXXXXX */ gp->g_number = vattr.va_nodeid; gp->g_mode = vattr.va_mode; gp->g_nlink = vattr.va_nlink; gp->g_uid = vattr.va_uid; gp->g_gid = vattr.va_gid; gp->g_rdev = (dev_t)vattr.va_rdev; gp->g_size = vattr.va_size; gp->g_atime.tv_sec = vattr.va_atime.tv_sec; gp->g_atime.tv_usec = vattr.va_atime.tv_usec; gp->g_mtime.tv_sec = vattr.va_mtime.tv_sec; gp->g_mtime.tv_usec = vattr.va_mtime.tv_usec; gp->g_ctime.tv_sec = vattr.va_ctime.tv_sec; gp->g_ctime.tv_usec = vattr.va_ctime.tv_usec; /* FIX THIS PLEASE.... gp->g_mp->m_fs_data->fd_otsize = vattr.va_blocksize; */ gp->g_blocks = vattr.va_blocks; /* lock gnode again if it was locked coming in */ /* (and hope it wasn't changed in any important way!!) */ if (locked) gfs_lock(gp); return(u.u_error); } afs_rwgp(gp, uiop, rw, ioflag, cred) register struct gnode *gp; register struct uio *uiop; enum uio_rw rw; int ioflag; struct ucred *cred; { return(afs_rdwr(gp, uiop, rw, ioflag, cred)); } afs_stat(gp, sb) register struct gnode *gp; register struct stat *sb; { struct vattr vattr; if (u.u_error = afs_getattr(gp, &vattr, u.u_cred)) { bzero(sb, sizeof(struct stat)); return(u.u_error); } sb->st_dev = vattr.va_fsid; sb->st_ino = vattr.va_nodeid; sb->st_mode = vattr.va_mode; sb->st_nlink = vattr.va_nlink; sb->st_uid = vattr.va_uid; sb->st_gid = vattr.va_gid; sb->st_rdev = (dev_t)vattr.va_rdev; sb->st_size = vattr.va_size; sb->st_atime = vattr.va_atime.tv_sec; sb->st_spare1 = vattr.va_atime.tv_usec; sb->st_mtime = vattr.va_mtime.tv_sec; sb->st_spare2 = vattr.va_mtime.tv_usec; sb->st_ctime = vattr.va_ctime.tv_sec; sb->st_spare3 = vattr.va_ctime.tv_usec; sb->st_blksize = vattr.va_blocksize; sb->st_blocks = vattr.va_blocks; sb->st_spare4[0] = sb->st_spare4[1] = 0; return (0); } afs_lock(gp) /* XXXXXXXX */ register struct gnode *gp; { if (gp->g_count <= 0) panic("afs_lock: unrefed gnode"); while (gp->g_flag & GLOCKED) { gp->g_flag |= GWANT; sleep((caddr_t)gp, PINOD); } gp->g_flag |= GLOCKED; } afs_unlock(gp) /* XXXXXXXXX */ register struct gnode *gp; { if (!(gp->g_flag & GLOCKED)) panic("afs_unlock: locked gnode isn't"); gp->g_flag &= ~GLOCKED; if (gp->g_flag&GWANT) { gp->g_flag &= ~GWANT; wakeup((caddr_t)gp); } } afs_update(gp, atime, mtime, wait, cred) register struct gnode *gp; register struct timeval *atime, *mtime; register int wait; register struct ucred *cred; { struct vattr va; register int error; /* Implement wait for? */ vattr_null(&va); if (gp->g_flag & GCHG) { if(gp->g_flag & GCID) { va.va_uid = gp->g_uid; va.va_gid = gp->g_gid; } if(gp->g_flag & GCMODE) va.va_mode = gp->g_mode; /* Should this be in there too?? if (gp-_flag & GCHLNK) va.va_nlink = gp->g_nlink; */ gp->g_flag &= ~(GCID | GCMODE | GCLINK | GCHG); } if (gp->g_flag & GACC) { gp->g_flag &= ~GACC; /* * fixes 2002 /dev/tty* problem when * pointer is uninitialized */ if (atime != NULL) { va.va_atime.tv_sec = atime->tv_sec; va.va_atime.tv_usec = atime->tv_usec; } else { va.va_atime.tv_sec = time.tv_sec; va.va_atime.tv_usec = time.tv_usec; } } if (gp->g_flag & GUPD) { gp->g_flag &= ~GUPD; /* * fixes 2002 /dev/tty* problem when * pointer is uninitialized */ if (mtime != NULL) { va.va_mtime.tv_sec = mtime->tv_sec; va.va_mtime.tv_usec = mtime->tv_usec; } else { va.va_mtime.tv_sec = time.tv_sec; va.va_mtime.tv_usec = time.tv_usec; } } error = afs_setattr(gp, &va, cred); return(error); } afs_gopen(gp, ioflag) struct gnode *gp; int ioflag; { return(afs_open(&gp, ioflag, u.u_cred)); } afs_gclose(gp, ioflag) struct gnode *gp; int ioflag; { return(afs_close(gp, ioflag, u.u_cred)); } afs_select(gp, which, cred) struct gnode *gp; int which; struct ucred *cred; { return(EOPNOTSUPP); } afs_greadlink(gp, uio) register struct gnode *gp; register struct uio *uio; { return(u.u_error = afs_readlink(gp, uio, u.u_cred)); } afs_gsymlink(ndp, to) register struct nameidata *ndp; register char *to; { struct vattr va; vattr_null(&va); va.va_mode = (0777 & ~u.u_cmask) & 0xffff; afs_unlock(ndp->ni_pdir); u.u_error = afs_symlink(ndp->ni_pdir, ndp->ni_cp, &va, to, u.u_cred); afs_rele(ndp->ni_pdir); return(u.u_error); } struct fs_data * afs_getfsdata(mp) register struct mount *mp; { register struct fs_data *fsdata = mp->m_fs_data; struct statfs statfs; u.u_error = afs_statfs(mp, &statfs); if (!u.u_error) { fsdata->fd_fstype = GT_AFS; fsdata->fd_gtot = 0; fsdata->fd_gfree = 0; fsdata->fd_btot = statfs.f_blocks; fsdata->fd_bfree = statfs.f_bfree; fsdata->fd_bfreen = statfs.f_bavail; /* fsdata->fd_mtsize = fsdata->fd_otsize = MP_TO_MIP(mp)->mi_stsize; */ } return(fsdata); } afs_gbmap(gp, gbn, rw, size, sync) register struct gnode *gp; /* gnode */ register daddr_t gbn; /* virtual block */ int rw, size, sync; /* ignore for afs */ { daddr_t lbn; afs_bmap(gp,gbn,(struct gnode **)0, &lbn); return((int)lbn); } /* * The routine afs_namei performs pathname lookup in remote filesystems, * with some side effects. Note it's trying to imitate what Sun's lookupname() * does. Unlike the ufs namei, we leave a pointer to the last pathname component * in ndp->ni_cp. Other AFS code depends on this. */ struct gnode * afs_namei(ndp) register struct nameidata *ndp; { struct gnode *gpp, *gp; register char *slash, *ptr, *cp, *ncp; int lockparent, flag, i; char name[AFS_MAXNAMLEN+1]; struct uio _auio; register struct uio *auio = &_auio; struct iovec _aiov; register struct iovec *aiov = &_aiov; struct mount *mpp; int name_len; afs_dp("Entering afs_namei to look up %s\n", ndp->ni_cp); flag = ndp->ni_nameiop & (LOOKUP | CREATE | DELETE); lockparent = ndp->ni_nameiop & LOCKPARENT; gp = ndp->ni_pdir; afs_unlock(gp); #ifdef AFSDEBUG if (gp == NULL) panic("afs_namei: no parent"); if ((flag != LOOKUP) && (flag != CREATE) && (flag != DELETE)) panic("afs_namei: bad flags"); #endif AFSDEBUG cp = ndp->ni_cp; while (*cp == '/') cp++; while(*cp) { /* * Find the next pathname component, move it into name[]. */ for (i = 0; cp[i] != 0 && cp[i] != '/'; i++) { if (i == AFS_MAXNAMLEN) u.u_error = ENAMETOOLONG; if (cp[i] & 0200) u.u_error = EINVAL; if (u.u_error) { afs_rele(gp); return(NULL); } name[i] = cp[i]; } name_len = i + 1; name[i] = '\0'; ncp = cp + i; /* * If we're at the root of a filesystem and the next * component is ".." then we just bounce back to caller. */ if((name[0] == '.') && (name[1] == '.') && !name[2] && ((gp == gp->g_mp->m_rootgp) || (gp == u.u_rdir))) { afs_rele(gp); /* * Necessary for no .. * Check if at the root directory (/) * If so, set gp to itself */ if (gp->g_mp->m_gnodp != (struct gnode *) NULL) gp = gp->g_mp->m_gnodp; gfs_lock(gp); gp->g_count++; gp->g_flag |= GINCOMPLETE; ndp->ni_pdir = gp; /* * Check if at the root of the * filesystem. If so, strip off .. */ if (gp == gp->g_mp->m_rootgp || gp == u.u_rdir) ndp->ni_cp = ncp; else ndp->ni_cp = cp; return(gp); } /* * Now look up the current pathname component. */ u.u_error = afs_lookup(gp, name, &gpp, u.u_cred); /* * Take appropriate action if the lookup fails. * Negate the error if the file doesn't exist and * the operation is create. */ if (u.u_error) { if ((flag == CREATE) && (cp[i] == '\0') && (u.u_error == ENOENT) && !access(gp, GWRITE)) { u.u_error = 0; afs_lock(gp); ndp->ni_pdir = gp; ndp->ni_cp = cp; } else { afs_rele(gp); } return(NULL); } /* * The lookup has succeeded. If we've hit a mount point * traverse it if it's type AFS, else bounce back to * caller. * * XXX Should check that unmount is not in progress on fs. */ if (gpp->g_flag & GMOUNT) { mpp = gpp->g_mpp; if (mpp->m_fstype != GT_AFS) { afs_rele(gp); afs_rele(gpp); gp = mpp->m_rootgp; gfs_lock(gp); gp->g_count++; ndp->ni_cp = ncp; ndp->ni_pdir = gp; gp->g_flag |= GINCOMPLETE; return(gp); } else { afs_rele(gp); gp = gpp; gpp = mpp->m_rootgp; gpp->g_count++; } } /* * Check for symbolic links */ afs_dp("afs_namei: check for slink mode 0x%x GFLNK 0x%x flag 0x%x\n",gpp->g_mode&GFMT, GFLNK, ndp->ni_nameiop&FOLLOW); if ((gpp->g_mode & GFMT) == GFLNK && ((ndp->ni_nameiop & FOLLOW) || *ncp == '/')) { u_int pathlen = strlen(ncp) + 1; /* g_size is used quite often often by the GFS layer implying the correct gnode size. * Since we don't want to feel the AFS related code with g_size's we refer to the * equivalent m.Length and hope for the best... */ gpp->g_size = ((struct vcache *)gpp)->m.Length; if (gpp->g_size + pathlen >= MAXPATHLEN - 1) { afs_dp("afs_namei: slink name too long\n"); u.u_error = ENAMETOOLONG; afs_rele(gp); afs_rele(gpp); return (NULL); } if (++ndp->ni_slcnt > MAXSYMLINKS) { afs_dp("afs_namei: too many slinks\n"); u.u_error = ELOOP; afs_rele(gp); afs_rele(gpp); return (NULL); } aiov->iov_base = ndp->ni_dirp; aiov->iov_len = auio->uio_resid = gpp->g_size; auio->uio_iov = aiov; auio->uio_iovcnt = 1; auio->uio_segflg = UIO_SYSSPACE; auio->uio_offset = 0; ovbcopy(ncp, ndp->ni_dirp + gpp->g_size, pathlen); u.u_error = afs_readlink((struct vnode *)gpp, auio, u.u_cred); if (u.u_error) { afs_dp("afs_namei: afs_readlink returned error\n"); afs_rele(gp); afs_rele(gpp); return (NULL); } cp = ndp->ni_dirp; afs_rele(gpp); afs_dp("cp=%s\n", cp); if (*cp == '/') { afs_dp("afs_namei: slink name starts with slash\n"); afs_rele(gp); while (*cp == '/') cp++; if ((gp = u.u_rdir) == NULL) gp = rootdir; afs_lock(gp); gp->g_count++; ndp->ni_cp = cp; ndp->ni_pdir = gp; gp->g_flag |= GINCOMPLETE; return(gp); } else { afs_dp("afs_namei: slink name does not start with slash\n"); continue; } } /* * The lookup has succeeded and we haven't hit a mount * point. Handle the case where this is the last component * of the pathname. */ while (*ncp == '/') ncp++; if (*ncp == '\0') { /* ** Not applicable to AFS! ** if (ndp->ni_nameiop & NOCACHE) dnlc_purge_vp(gpp); */ if ((flag == DELETE) && access(gp, GWRITE)) { afs_rele(gp); afs_rele(gpp); return(NULL); } ndp->ni_cp = cp; if (lockparent) { if (gp != gpp) afs_lock(gp); ndp->ni_pdir = gp; } else { afs_rele(gp); } /* * Copy in the last component name in * ni_dent for accounting. */ bcopy(ndp->ni_cp, ndp->ni_dent.d_name, name_len); ndp->ni_dent.d_namlen = name_len; afs_lock(gpp); gpp->g_flag &= ~GINCOMPLETE; return(gpp); } /* * The lookup has succeeded, but this is not the last * component of the pathname. */ afs_rele(gp); gp = gpp; cp = ncp; } /* * "Temporary" hack for handling null pathnames, which denote the * starting directory by convention. If the path is null and the * operation is a create or delete we return EISDIR for hysterical * reasons. Note: we can also get here if the pathname resolves * to an afs mount point. */ if (flag != LOOKUP) { if (gp == gp->g_mp->m_rootgp) { if (flag == CREATE) if ((gp->g_mode & GFMT) == GFDIR) u.u_error = EEXIST; else { afs_lock(gp); gp->g_flag &= ~GINCOMPLETE; return(gp); } else u.u_error = EBUSY; } else u.u_error = EISDIR; afs_rele(gp); return(NULL); } afs_lock(gp); gp->g_flag &= ~GINCOMPLETE; return(gp); } printgnode(gp) struct gnode *gp; { afs_dp("g_count=%d, g_flag=%X, g_dev=%x, gr_dev=%x, g_blocks=%D, g_shlocks=%d, g_exlocks=%d\n", gp->g_count, gp->g_flag, gp->g_dev, gp->g_rdev, gp->g_blocks, gp->g_shlockc, gp->g_exlockc); afs_dp("g_number=%x, g_id=%X, g_mode=%x, g_nlink=%x, g_uid=%x, g_gid=%x\n", gp->g_number, gp->g_id, gp->g_mode, gp->g_nlink, gp->g_uid, gp->g_gid); if (gp->g_mp) afs_dp("g_mp=%x ", gp->g_mp); if (gp->g_ops) afs_dp("g_ops=%x",gp->g_ops); afs_dp("\n"); } #endif vax #]?lo$ Q#%#_#_   (@ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs_pioctl.c 12.3$ */ /* $ACIS:afs_pioctl.c 12.3$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs_pioctl.c,v $ */ #ifndef lint static char *rcsid = "$Header:afs_pioctl.c 12.3$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../h/ioctl.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" #include "../afs/prs_fs.h" #include "../afs/dir.h" struct VenusFid afs_rootFid; long afs_waitForever=0; short afs_waitForeverCount = 0; extern struct osi_dev cacheDev; extern long afs_cacheBlocks; extern struct cell *afs_cells; extern long afs_origCacheBlocks; extern struct unixuser *afs_users[NUSERS]; extern struct server *afs_servers[NSERVERS]; extern struct lock afs_xvcache; /* lock: alloc new stat cache entries */ extern struct lock afs_xserver; extern struct lock afs_xcell; extern struct lock afs_xconn; extern struct lock afs_xuser; extern struct lock afs_xdcache; /* lock: alloc new disk cache entries */ extern long afs_mariner, afs_marinerHost; static int PBogus(), PSetAcl(), PGetAcl(), PSetTokens(), PGetVolumeStatus(); static int PSetVolumeStatus(), PFlush(), PNewStatMount(), PGetTokens(), PUnlog(); static int PCheckServers(), PCheckVolNames(), PCheckAuth(), PFindVolume(); static int PViceAccess(), PWaitForever(), PSetCacheSize(), PPrefetch(); static int PRemoveCallBack(), PNewCell(), PListCells(), PRemoveMount(); static int PMariner(), PGetUserCell(), PGetWSCell(), PGetFileCell(), PVenusLogging(), PNoop(); static int (*(pioctlSw[]))() = { PBogus, /* 0 */ PSetAcl, /* 1 */ PGetAcl, /* 2 */ PSetTokens, /* 3 */ PGetVolumeStatus, /* 4 */ PSetVolumeStatus, /* 5 */ PFlush, /* 6 */ PBogus, /* 7 */ PGetTokens, /* 8 */ PUnlog, /* 9 */ PCheckServers, /* 10 */ PCheckVolNames, /* 11 */ PCheckAuth, /* 12 */ PBogus, /* 13 -- used to be quick check time */ PFindVolume, /* 14*/ PPrefetch, /* 15 -- used to be prefetch */ PBogus, /* 16 -- used to be testing code */ PNoop, /* 17 -- used to be enable group */ PNoop, /* 18 -- used to be disable group */ PBogus, /* 19 -- used to be list group */ PViceAccess, /* 20 */ PUnlog, /* 21 -- unlog *is* unpag in this system */ PBogus, /* 22 -- used to be fast getwd */ PWaitForever, /* 23 */ PSetCacheSize, /* 24 */ PRemoveCallBack, /* 25 -- flush only the callback */ PNewCell, /* 26 */ PListCells, /* 27 */ PRemoveMount, /* 28 -- delete mount point */ PNewStatMount, /* 29 -- new style mount point stat */ PGetFileCell, /* 30 -- get cell name for input file */ PGetWSCell, /* 31 -- get cell name for workstation */ PMariner, /* 32 - set/get mariner host */ PGetUserCell, /* 33 -- get cell anem for user */ PVenusLogging, /* 34 - Enable/Disable logging */ }; /* stolen from vice.h */ #define _AFSIOCTL(id) ((unsigned int ) _IOW(V, id, struct afs_ioctl)) #define _VALIDAFSIOCTL(com) (com >= _AFSIOCTL(0) && com <= _AFSIOCTL(255)) afs_pioctl_cleanup() { bzero(&afs_rootFid, sizeof(afs_rootFid)); afs_waitForever=0; afs_waitForeverCount = 0; } HandleIoctl(avc, afile, acom, adata) register struct vcache *avc; struct file *afile; register long acom; struct afs_ioctl *adata; { register long code; code = 0; switch(acom & 0xff) { case 1: avc->states |= CSafeStore; break; /* case 2 used to be abort store, but this is no longer provided, since it is impossible to implement under normal Unix. */ case 3: { /* return the name of the cell this file is open on */ register struct cell *tcell; register long i; tcell = afs_GetCell(avc->fid.Cell); if (tcell) { i = strlen(tcell->cellName) + 1; /* bytes to copy out */ if (i > adata->out_size) { /* 0 means we're not interested in the output */ if (adata->out_size != 0) code = EFAULT; } else { /* do the copy */ code = copyout(tcell->cellName, adata->out, i); } } else code = ENOTTY; } break; default: code = EINVAL; break; } return code; /* so far, none implemented */ } /* unlike most calls here, this one uses u.u_error to return error conditions, since this is really an intercepted chapter 2 call, rather than a vnode interface call. */ afs_xioctl () { struct a { int fd; int com; caddr_t cmarg; } *uap; register struct file *fd; struct vcache *tvc; struct afs_ioctl data; int ioctlDone; register int cmd; ioctlDone = 0; uap = (struct a *)u.u_ap; fd = getf(uap->fd); if (!fd) return; cmd = uap->com; /* first determine whether this is any sort of vnode */ if (fd->f_type == DTYPE_VNODE) { /* good, this is a vnode; next see if it is an AFS vnode */ tvc = (struct vcache *) fd->f_data; /* valid, given a vnode */ if (tvc->v.v_op == afs_ops) { /* This is an AFS vnode */ if (((cmd >> 8) & 0xff) == 'V') { /* this is a VICEIOCTL call */ u.u_error = copyin(uap->cmarg, (caddr_t) &data, sizeof (data)); if (u.u_error) return; u.u_error = HandleIoctl(tvc, fd, cmd, &data); ioctlDone = 1; } } } if (!ioctlDone) ioctl(); return; } afs_pioctl() { extern rmt_ioctl1(); struct a { char *path; int cmd; caddr_t cmarg; int follow; } *uap; struct afs_ioctl data; int com; struct vnode *vp; uap = (struct a *) u.u_ap; if (uap->follow) uap->follow = 1; /* compat. with old venus */ com = uap->cmd; if (! _VALIDAFSIOCTL(com)) { u.u_error = EINVAL; return; } u.u_error = copyin(uap->cmarg, (caddr_t) &data, sizeof (data)); if (u.u_error) return; u.u_error = gop_lookupname(uap->path, AFS_UIOUSER, uap->follow, (struct vnode **) 0, &vp); if (u.u_error) return(u.u_error); if (vp) { if (vp->v_op == afs_ops) { u.u_error = HandlePioctl(vp, com, &data, uap->follow, u.u_cred); VN_RELE(vp); return; } VN_RELE(vp); u.u_error = EINVAL; /* Not supported on non-remote files */ } } HandlePioctl(avc, acom, ablob, afollow, acred) register struct vcache *avc; long acom; struct ucred *acred; register struct afs_ioctl *ablob; int afollow; { struct vrequest treq; register long code; register long function; long inSize, outSize; char *inData, *outData; afs_dp("in afs_pioctl (%x), com %d\n", avc, acom); afs_InitReq(&treq, acred); function = acom & 0xff; if (function >= (sizeof(pioctlSw) / sizeof(char *))) { return EINVAL; /* out of range */ } inSize = ablob->in_size; if (inSize >= PIGGYSIZE) return E2BIG; inData = osi_AllocSendSpace(); if (inSize > 0) { code = copyin(ablob->in, inData, inSize); } else code = 0; if (code) { osi_FreeSendSpace(inData); return code; } outData = osi_AllocSendSpace(); outSize = 0; code = (*pioctlSw[function])(avc, function, &treq, inData, outData, inSize, &outSize); osi_FreeSendSpace(inData); if (code == 0 && ablob->out_size > 0) { if (outSize > ablob->out_size) outSize = ablob->out_size; if (outSize >= PIGGYSIZE) code = E2BIG; else code = copyout(outData, ablob->out, outSize); } osi_FreeSendSpace(outData); return afs_CheckCode(code, &treq); } static PSetAcl(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register long code; struct conn *tconn; #ifdef NINTERFACE struct AFSAccessList acl; struct AFSStoreStatus InStatus; struct AFSFetchStatus OutStatus; #else struct CBS acl; struct BBS OptionalData; struct ViceStatus tstat; struct BD BDesc; #endif if ((acl.SeqLen = strlen(ain)+1) > 1000) return EINVAL; acl.SeqBody = ain; #ifdef NINTERFACE acl.MaxSeqLen = acl.SeqLen + 1; #else OptionalData.MaxSeqLen = 0; OptionalData.SeqLen = 0; #endif do { tconn = afs_Conn (&avc->fid, areq); if (tconn) { #ifdef NINTERFACE code = AFS_StoreACL(tconn->id, (struct AFSFid *) &avc->fid.Fid, &InStatus, &acl, &OutStatus); #else code = RViceStoreP(tconn->id, &avc->fid.Fid, StoreNeither, &acl, &OptionalData, &BDesc, &tstat, 0); #endif } else code = -1; } while (afs_Analyze(tconn, code, &avc->fid, areq)); /* now we've forgotten all of the access info */ avc->callback = 0; return code; }; static PGetAcl(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { #ifdef NINTERFACE struct AFSAccessList acl; struct AFSFetchStatus OutStatus; #else BBS acl, OptionalData; ViceFid bidfid; ViceStatus tstat; struct BD BDesc; #endif long code; struct conn *tconn; #ifndef NINTERFACE bidfid.Volume = 0; #endif acl.MaxSeqLen = 1000; acl.SeqLen = 0; acl.SeqBody = aout; do { tconn = afs_Conn(&avc->fid, areq); if (tconn) { *aout = 0; #ifdef NINTERFACE code = AFS_FetchACL(tconn->id, (struct AFSFid *) &avc->fid.Fid, &acl, &OutStatus); #else OptionalData.MaxSeqLen = 0; OptionalData.SeqLen = 0; OptionalData.SeqBody = (char *) 1; /* prevent xdr malloc */ code = RViceFetchP(tconn->id, &avc->fid.Fid, &bidfid, FetchNoData, &BDesc, &acl, &OptionalData, &tstat); #endif } else code = -1; } while (afs_Analyze(tconn, code, &avc->fid, areq)); if (code == 0) *aoutSize = (acl.SeqLen == 0 ? 1 : acl.SeqLen); return code; } static PNoop() { return 0; } static PBogus() { return EINVAL; } static PGetFileCell(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { register struct cell *tcell; tcell = afs_GetCell(avc->fid.Cell); if (!tcell) return ESRCH; strcpy(aout, tcell->cellName); *aoutSize = strlen(aout) + 1; return 0; } static PGetWSCell(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { register struct cell *tcell, *cellOne; ObtainReadLock(&afs_xcell); cellOne = (struct cell *) 0; for(tcell = afs_cells; tcell; tcell=tcell->next) { if (tcell->states & CPrimary) break; if (tcell->cell == 1) cellOne = tcell; } ReleaseReadLock(&afs_xcell); if (!tcell) { /* no primary cell, use cell #1 */ if (!cellOne) return ESRCH; tcell = cellOne; } strcpy(aout, tcell->cellName); *aoutSize = strlen(aout) + 1; return 0; } static PGetUserCell(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { register long i; register struct unixuser *tu; register struct cell *tcell; /* return the cell name of the primary cell for this user */ i = UHash(areq->uid); ObtainWriteLock(&afs_xuser); for(tu = afs_users[i]; tu; tu = tu->next) { if (tu->uid == areq->uid && tu->primary) { tu->refCount++; ReleaseWriteLock(&afs_xuser); break; } } if (tu) { tcell = afs_GetCell(tu->cell); afs_PutUser(tu); if (!tcell) return ESRCH; else { strcpy(aout, tcell->cellName); *aoutSize = strlen(aout)+1; /* 1 for the null */ } } else { ReleaseWriteLock(&afs_xuser); *aout = 0; *aoutSize = 1; } return 0; } static PSetTokens(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { long i; register long code; struct SecretToken secret; struct CBS cbsSecret; register struct conn *tc; register struct unixuser *tu; struct ClearToken clear; register struct cell *tcell; long flag; bcopy(ain, &i, sizeof(long)); ain += sizeof(long); if (i != sizeof(struct SecretToken)) { return EINVAL; } bcopy(ain, &secret, sizeof(struct SecretToken)); ain += sizeof(struct SecretToken); bcopy(ain, &i, sizeof(long)); ain += sizeof(long); if (i != sizeof(struct ClearToken)) { return EINVAL; } bcopy(ain, &clear, sizeof(struct ClearToken)); ain += sizeof(struct ClearToken); if (ainSize != 2*sizeof(long) + sizeof(struct SecretToken) + sizeof(struct ClearToken)) { /* still stuff left? we've got primary flag and cell name. Set these */ bcopy(ain, &flag, sizeof(long)); /* primary id flag */ ain += sizeof(long); /* skip id field */ /* rest is cell name, look it up */ tcell = afs_GetCellByName(ain); if (tcell) { i = tcell->cell; } else { return ESRCH; } } else { /* default to cell 1, primary id */ flag = 1; /* primary id */ i = 1; /* cell number */ tcell = afs_GetCell(1); if (!tcell) return EIO; } /* now we just set the tokens */ tu = afs_GetUser(areq->uid, i); /* i has the cell # */ /* next we check the tokens */ cbsSecret.SeqLen = sizeof(struct SecretToken); cbsSecret.SeqBody = (char *) &secret; do { tc = afs_ConnByMHosts(tcell->cellHosts, tcell->cell, areq); #ifdef NINTERFACE if (tc) code = AFS_CheckToken(tc->id, clear.ViceId, &cbsSecret); #else if (tc) code = RViceCheckToken(tc->id, clear.ViceId, &cbsSecret); #endif else code = -1; } while(afs_Analyze(tc, code, 0, areq)); if (code) { afs_PutUser(tu); return code; } tu->vid = clear.ViceId; tu->st = secret; tu->ct = clear; tu->states |= UHasTokens; tu->states &= ~UTokensBad; afs_SetPrimary(tu, flag); tu->tokenTime =osi_Time(); afs_ResetUserConns(tu); afs_PutUser(tu); return 0; } static PGetVolumeStatus(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { char volName[32]; char offLineMsg[256]; char motd[256]; register struct conn *tc; register long code; struct VolumeStatus volstat; register char *cp; struct BBS Name, OfflineMsg, MOTD; Name.SeqBody = (char *) volName; Name.MaxSeqLen = 32; Name.SeqLen = 0; OfflineMsg.SeqBody = (char *) offLineMsg; OfflineMsg.MaxSeqLen = 256; OfflineMsg.SeqLen = 0; MOTD.SeqBody = (char *) motd; MOTD.MaxSeqLen = 256; MOTD.SeqLen = 0; do { tc = afs_Conn(&avc->fid, areq); if (tc) #ifdef NINTERFACE code = AFS_GetVolumeStatus(tc->id, avc->fid.Fid.Volume, &volstat, &Name, &OfflineMsg, &MOTD); #else code = RViceGetVolumeStatus(tc->id, avc->fid.Fid.Volume, &volstat, &Name, &OfflineMsg, &MOTD); #endif else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); if (code) return code; /* Copy all this junk into msg->im_data, keeping track of the lengths. */ cp = aout; bcopy(&volstat, cp, sizeof(VolumeStatus)); cp += sizeof(VolumeStatus); strcpy(cp, volName); cp += strlen(volName)+1; strcpy(cp, offLineMsg); cp += strlen(offLineMsg)+1; strcpy(cp, motd); cp += strlen(motd)+1; *aoutSize = (cp - aout); return 0; } static PSetVolumeStatus(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { char volName[32]; char offLineMsg[256]; char motd[256]; register struct conn *tc; register long code; struct VolumeStatus volstat; register char *cp; struct BBS Name, OfflineMsg, MOTD; /* Copy the junk out, using cp as a roving pointer. */ cp = ain; bcopy(cp, &volstat, sizeof(VolumeStatus)); cp += sizeof(VolumeStatus); strcpy(volName, cp); Name.SeqLen = strlen(volName)+1; cp += Name.SeqLen; strcpy(offLineMsg, cp); OfflineMsg.SeqLen = strlen(offLineMsg)+1; cp += OfflineMsg.SeqLen; strcpy(motd, cp); MOTD.SeqLen = strlen(motd)+1; Name.SeqBody = (char *) volName; Name.MaxSeqLen = 32; OfflineMsg.SeqBody = (char *) offLineMsg; OfflineMsg.MaxSeqLen = 256; MOTD.SeqBody = (char *) motd; MOTD.MaxSeqLen = 256; do { tc = afs_Conn(&avc->fid, areq); if (tc) #ifdef NINTERFACE code = AFS_SetVolumeStatus(tc->id, avc->fid.Fid.Volume, &volstat, &Name, &OfflineMsg, &MOTD); #else code = RViceSetVolumeStatus(tc->id, avc->fid.Fid.Volume, &volstat, &Name, &OfflineMsg, &MOTD); #endif else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); if (code) return code; cp = aout; bcopy(&volstat, cp, sizeof(VolumeStatus)); cp += sizeof(VolumeStatus); strcpy(cp, volName); cp += strlen(volName)+1; strcpy(cp, offLineMsg); cp += strlen(offLineMsg)+1; strcpy(cp, motd); cp += strlen(motd)+1; *aoutSize = cp - aout; return 0; } static PFlush(avc, afun, areq, ain, aout, ainSize, aoutSize) register struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register int i; short us; struct VenusFid tfid; register struct dcache *tdc; /* note how none of VCHash, DCHash or DVHash use Fid.Unique as part of their hashing algorithm. Thus, this invalidation code doesn't move items from one bucket to another. Don't forget to change this if you change the hash algorithms */ ObtainWriteLock(&avc->lock); avc->states &= ~CStatd; /* next reference will re-stat cache entry */ /* now find the disk cache entries */ afs_TryToSmush(avc); ReleaseWriteLock(&avc->lock); return 0; } static PNewStatMount(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register long code; register struct vcache *tvc; register struct dcache *tdc; struct VenusFid tfid; long offset, len; code = afs_VerifyVCache(avc, areq); if (code) return code; if (vType(avc) != VDIR) { return ENOTDIR; } tdc = afs_GetDCache(avc, 0, areq, &offset, &len, 1); if (!tdc) return ENOENT; code = dir_Lookup(&tdc->f.inode, ain, &tfid.Fid); if (code) { afs_PutDCache(tdc); return code; } tfid.Cell = avc->fid.Cell; tfid.Fid.Volume = avc->fid.Fid.Volume; afs_PutDCache(tdc); /* we're done with the data */ tvc = afs_GetVCache(&tfid, areq); if (!tvc) return ENOENT; if (vType(tvc) != VLNK) { afs_PutVCache(tvc); return EINVAL; } ObtainWriteLock(&tvc->lock); code = afs_HandleLink(tvc, areq); if (code == 0) { if (tvc->linkData) { /* we have the data */ strcpy(aout, tvc->linkData); *aoutSize = strlen(tvc->linkData)+1; } else code = EIO; } ReleaseWriteLock(&tvc->lock); afs_PutVCache(tvc); return code; } static PGetTokens(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register struct cell *tcell; register long i; register struct unixuser *tu; register char *cp; long iterator; int newStyle; /* weird interface. If input parameter is present, it is an integer and we're supposed to return the parm'th tokens for this unix uid. If not present, we just return tokens for cell 1. If counter out of bounds, return EDOM. If no tokens for the particular cell, return ENOTCONN. Also, if this mysterious parm is present, we return, along with the tokens, the primary cell indicator (a long 0) and the cell name at the end, in that order. */ if (newStyle = (ainSize > 0)) { bcopy(ain, &iterator, sizeof(long)); } i = UHash(areq->uid); ObtainReadLock(&afs_xuser); for(tu = afs_users[i]; tu; tu=tu->next) { if (newStyle) { if (tu->uid == areq->uid && (tu->states & UHasTokens)) { if (iterator-- == 0) break; /* are we done yet? */ } } else { if (tu->uid == areq->uid && tu->cell == 1) break; } } if (tu) tu->refCount++; ReleaseReadLock(&afs_xuser); if (!tu) { return EDOM; } if ((tu->states & UHasTokens) == 0) { afs_PutUser(tu); return ENOTCONN; } /* use iterator for temp */ cp = aout; iterator = sizeof(struct SecretToken); /* send size */ bcopy(&iterator, cp, sizeof(long)); cp += sizeof(long); bcopy(&tu->st, cp, sizeof(struct SecretToken)); /* copy out st */ cp += sizeof(struct SecretToken); iterator = sizeof(struct ClearToken); bcopy(&iterator, cp, sizeof(long)); cp += sizeof(long); bcopy(&tu->ct, cp, sizeof(struct ClearToken)); cp += sizeof(struct ClearToken); if (newStyle) { /* put out primary id and cell name, too */ iterator = tu->primary; bcopy(&iterator, cp, sizeof(long)); cp += sizeof(long); tcell = afs_GetCell(tu->cell); if (tcell) { strcpy(cp, tcell->cellName); cp += strlen(tcell->cellName)+1; } else *cp++ = 0; } *aoutSize = cp - aout; afs_PutUser(tu); return 0; } static PUnlog(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register long i; register struct unixuser *tu; i = UHash(areq->uid); ObtainWriteLock(&afs_xuser); for(tu=afs_users[i]; tu; tu=tu->next) { if (tu->uid == areq->uid) { tu->vid = UNDEFVID; tu->states &= ~UHasTokens; afs_ResetUserConns(tu); } } ReleaseWriteLock(&afs_xuser); return 0; } static PMariner(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { long newHostAddr; long oldHostAddr; if (afs_mariner) bcopy(&afs_marinerHost, &oldHostAddr, sizeof(long)); else oldHostAddr = 0xffffffff; /* disabled */ bcopy(ain, &newHostAddr, sizeof(long)); if (newHostAddr == 0xffffffff) { /* disable mariner operations */ afs_mariner = 0; } else if (newHostAddr) { afs_mariner = 1; afs_marinerHost = newHostAddr; } bcopy(&oldHostAddr, aout, sizeof(long)); *aoutSize = sizeof(long); return 0; } static PCheckServers(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register char *cp; register int i; register struct server *ts; afs_CheckServers(1); /* check down servers */ afs_CheckServers(0); /* check up servers */ /* now return the current down server list */ cp = aout; ObtainReadLock(&afs_xserver); for(i=0;inext) { if (ts->isDown) { bcopy(&ts->host, cp, sizeof(long)); cp += sizeof(long); } } } ReleaseReadLock(&afs_xserver); *aoutSize = cp - aout; return 0; } static PCheckVolNames(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { afs_CheckRootVolume(); afs_CheckVolumeNames(); return 0; } static PCheckAuth(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register int i; register struct server *ts; register struct conn *tc; register struct unixuser *tu; long retValue; retValue = 0; tu = afs_GetUser(areq->uid, 1); /* check local cell authentication */ if (!tu) retValue = EACCES; else { /* we have a user */ ObtainReadLock(&afs_xserver); ObtainReadLock(&afs_xconn); /* any tokens set? */ if ((tu->states & UHasTokens) == 0) retValue = EACCES; /* all connections in cell 1 working? */ for(i=0;inext) { for(tc = ts->conns; tc; tc=tc->next) { if (tc->user == tu && (tu->states & UTokensBad)) retValue = EACCES; } } } ReleaseReadLock(&afs_xserver); ReleaseReadLock(&afs_xconn); afs_PutUser(tu); } bcopy(&retValue, aout, sizeof(long)); *aoutSize = sizeof(long); return 0; } static PPrefetch(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { afs_BQueue(BOP_FETCH, avc, 0, 0, (char *) 0); return 0; } static PFindVolume(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register struct volume *tvp; register struct server *ts; register long i; register char *cp; tvp = afs_GetVolume(&avc->fid, areq); if (tvp) { cp = aout; for(i=0;iserverHost[i]; if (!ts) break; bcopy(&ts->host, cp, sizeof(long)); cp += sizeof(long); } *aoutSize = cp - aout; afs_PutVolume(tvp); return 0; } return ENODEV; } static PViceAccess(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register long code; long temp; bcopy(ain, &temp, sizeof(long)); code = afs_VerifyVCache(avc, areq); if (code) return code; code = afs_AccessOK(avc,temp, areq); if (code) return 0; else return EACCES; } static PWaitForever(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { return EINVAL; /* never worked */ } static PSetCacheSize(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { long newValue; bcopy(ain, &newValue, sizeof(long)); if (newValue == 0) afs_cacheBlocks = afs_origCacheBlocks; else afs_cacheBlocks = newValue; afs_CheckSize(0); return 0; } static PRemoveCallBack(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { register struct conn *tc; register long code; #ifdef NINTERFACE struct AFSFid * Fids_Array[2]; struct AFSCallBack CallBacks_Array[2]; #endif if (avc->states & CRO) return 0; /* read-only-ness can't change */ ObtainWriteLock(&avc->lock); if (avc->callback) { do { tc = afs_Conn(&avc->fid, areq); #ifdef NINTERFACE Fids_Array[0] = (struct AFSFid *) &avc->fid.Fid; if (tc) code = AFS_GiveUpCallBacks(tc->id, Fids_Array, 1, CallBacks_Array, 1); #else if (tc) code = RViceRemoveCallBack(tc->id, &avc->fid.Fid); #endif /* don't set code on failure since we wouldn't use it */ } while (afs_Analyze(tc, code, &avc->fid, areq)); avc->callback = 0; } ReleaseWriteLock(&avc->lock); return 0; } static PNewCell(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { /* create a new cell */ long cellHosts[MAXHOSTS]; /* about 8 */ register struct cell *tcell; register long code; bcopy(ain, cellHosts, MAXHOSTS*sizeof(long)); tcell = afs_NewCell(ain + MAXHOSTS*sizeof(long), cellHosts); if (tcell) code = 0; else code = EINVAL; return code; } static PListCells(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; char *ain, *aout; long ainSize; long *aoutSize; /* set this */ { long whichCell; register struct cell *tcell; register long i; register char *cp; bcopy(ain, &whichCell, sizeof(long)); ObtainReadLock(&afs_xcell); for(tcell=afs_cells; tcell; tcell=tcell->next) { if (whichCell == 0) break; whichCell--; } if (tcell) { cp = aout; bzero(cp, MAXHOSTS*sizeof(long)); for(i=0;icellHosts[i] == 0) break; bcopy(&tcell->cellHosts[i]->host, cp, sizeof(long)); cp += sizeof(long); } cp = aout + MAXHOSTS*sizeof(long); strcpy(cp, tcell->cellName); cp += strlen(tcell->cellName)+1; *aoutSize = cp - aout; } ReleaseReadLock(&afs_xcell); if (tcell) return 0; else return EDOM; } static PRemoveMount(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { register long code; long offset, len; register struct conn *tc; register struct dcache *tdc; #ifdef NINTERFACE struct AFSFetchStatus OutDirStatus; #endif struct ViceStatus dstat; /* "ain" is the name of the file in this dir to remove */ code = afs_VerifyVCache(avc, areq); if (code) return code; if (vType(avc) != VDIR) return ENOTDIR; tdc = afs_GetDCache(avc, 0, areq, &offset, &len, 1); /* test for error below */ ObtainWriteLock(&avc->lock); do { tc = afs_Conn(&avc->fid, areq); if (tc) { #ifdef NINTERFACE code = AFS_RemoveFile(tc->id, (struct AFSFid *) &avc->fid.Fid, ain, &OutDirStatus); AFSFetchStToViceSt(&OutDirStatus, &dstat); #else code = RViceRemove(tc->id, &avc->fid.Fid, ain, &dstat); #endif } else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); if (code) { if (tdc) afs_PutDCache(tdc); ReleaseWriteLock(&avc->lock); return afs_CheckCode(code, areq); } if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(avc, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Delete(&tdc->f.inode, ain); if (code) tdc->f.versionNo = -1; /* surprise error -- invalid value */ /* DEntryMod set by local hero */ } afs_PutDCache(tdc); /* drop ref count */ } ReleaseWriteLock(&avc->lock); return 0; } static PVenusLogging(avc, afun, areq, ain, aout, ainSize, aoutSize) struct vcache *avc; int afun; struct vrequest *areq; register char *ain; char *aout; long ainSize; long *aoutSize; /* set this */ { long code, inputValue, outValue; long afsdeb, rdeb, rftpdeb, log; extern long afs_debug, r_debug, rftp_debug, LogFileInUse; bcopy(ain, &inputValue,sizeof(long)); afsdeb = (inputValue >> 24) & 0xff; rdeb = (inputValue >> 16) & 0xff; rftpdeb = (inputValue >> 8) & 0xff; log = inputValue & 0xff; if (afsdeb != 99) afs_debug = afsdeb; if (rdeb != 99) r_debug = rdeb; if (rftpdeb != 99) rftp_debug = rftpdeb; if (log == 1) StartLogFile(); else if (log == 0) { EndLogFile(); afs_debug = r_debug = rftp_debug = 0; /* Automatic shuting down with "off" */ } else if (log == 99) { outValue = (afs_debug << 24) + (r_debug << 16) + (rftp_debug << 8) + (LogFileInUse & 0xff); bcopy(&outValue, aout, sizeof(long)); } return 0; } #]`lo_d$ #%#_#_ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs_vfsops.c 12.6$ */ /* $ACIS:afs_vfsops.c 12.6$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs_vfsops.c,v $ */ #ifndef lint static char *rcsid = "$Header:afs_vfsops.c 12.6$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" int afs_mount(); int afs_unmount(); int afs_root(); int afs_statfs(); int afs_sync(); int afs_vget(); struct vfs *afs_globalVFS = 0; extern int afs_running; extern int afs_daemons_running; extern short afs_brsDaemons; extern char *r_GetRequest_sleep_addr; extern struct r_server *afs_server; extern int selwait; extern int brsInit; extern int initd; extern int r_initialized; extern int kmem_tally; extern int kmem_alloc_tallies; extern int kmem_free_tallies; struct vfsops afs_vfsops = { afs_mount, afs_unmount, afs_root, afs_statfs, afs_sync, #ifdef AFS_VFS34 afs_vget, #endif }; afs_vfsops_cleanup() { afs_globalVFS = 0; } afs_mount(afsp, path, data) struct vfs *afsp; char *path; caddr_t data; { afs_globalVFS = afsp; afsp->vfs_bsize = 8192; return 0; } afs_unmount (afsp) struct vfs *afsp; { /* * make sure we are mounted */ if (afsp != afs_globalVFS) { return EINVAL; } /* * remove all the user connections */ afs_Clear_Users(); /* * turn of the kernel daemons */ afs_running = 0; osi_Wakeup(&afs_brsDaemons); /* Wakeup afs_BackgroundDaemon */ osi_Wakeup(r_GetRequest_sleep_addr); /* Wakeup r_GetRequest */ wakeup(&selwait); while (afs_daemons_running > 0) { sleep(&afs_daemons_running,PZERO-1); } /* * invalidate the cache and free the memory */ afs_FreeCache(); /* * clear global data structures */ soclose(afs_server->socket); DCleanUp(); afs_daemons_cleanup(); afs_pioctl_cleanup(); afs_vfsops_cleanup(); afs_vnodeops_cleanup(); afs_test_cleanup(); buffer_cleanup(); cache_cleanup(); callback_cleanup(); osi_cleanup(); osi_file_cleanup(); osinet_cleanup(); physio_cleanup(); r_cleanup(); resource_cleanup(); rftp_cleanup(); return 0; } afs_root (afsp, avpp) struct vfs *afsp; struct vnode **avpp; { register long code; struct vrequest treq; register struct vcache *tvp; afs_InitReq(&treq, &osi_cred); if (code = afs_CheckInit()) return code; tvp = afs_GetVCache(&afs_rootFid, &treq); /* we really want this to stay around */ if (!tvp) return ENOENT; if (tvp->vrefCount < 20000) tvp->vrefCount++; tvp->v.v_flag |= VROOT; /* No-op on Ultrix 2.2 */ afs_globalVFS = afsp; *avpp = (struct vnode *) tvp; return 0; } afs_sync(afsp) struct vfs *afsp; { return 0; } afs_statfs(afsp, abp, avcp) register struct vfs *afsp; struct statfs *abp; register struct vcache *avcp;{ register struct conn *tc; struct vrequest treq; struct VolumeStatus volstat; struct BBS Name, OfflineMsg, MOTD; char name[32],offmsg[256],motd[256]; int code; afs_InitReq(&treq, u.u_cred); Name.SeqBody = name; Name.MaxSeqLen = sizeof(name); Name.SeqLen = 0; OfflineMsg.SeqBody = offmsg; OfflineMsg.MaxSeqLen = sizeof(offmsg); OfflineMsg.SeqLen = 0; MOTD.SeqBody = motd; MOTD.MaxSeqLen = sizeof(motd); MOTD.SeqLen = 0; do { tc = afs_Conn(&avcp->fid, &treq); if (tc) { #ifdef NINTERFACE code = AFS_GetVolumeStatus(tc->id, avcp->fid.Fid.Volume, &volstat, &Name, &OfflineMsg, &MOTD); #else code = RViceGetVolumeStatus(tc->id, avcp->fid.Fid.Volume,&volstat, &Name, &OfflineMsg, &MOTD); #endif } else { code = -1; } } while (afs_Analyze(tc, code, &avcp->fid, &treq)); if (code) return(afs_CheckCode(code,&treq)); abp->f_bsize = 1024; abp->f_blocks = volstat.MaxQuota ? volstat.MaxQuota:volstat.PartMaxBlocks; if (abp->f_blocks < volstat.BlocksInUse) { abp->f_blocks = volstat.BlocksInUse; } abp->f_bfree = abp->f_blocks - volstat.BlocksInUse; abp->f_bavail = MIN(abp->f_bfree,volstat.PartBlocksAvail); abp->f_files = -1; abp->f_ffree = -1; bcopy((caddr_t)&afsp->vfs_fsid, (caddr_t)&abp->f_fsid, sizeof(fsid_t)); return(0); } #ifdef AFS_VFS34 /* get a vnode by fid; not used by us */ afs_vget() { panic("afs vget"); } #endif #]floۛ$ 4#%#_#_ H X h x  N/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afs_vnodeops.c 12.2$ */ /* $ACIS:afs_vnodeops.c 12.2$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afs_vnodeops.c,v $ */ #ifndef lint static char *rcsid = "$Header:afs_vnodeops.c 12.2$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/buf.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #ifdef sun #include "../h/fcntl.h" #endif #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" #include "../afs/prs_fs.h" #include "../afs/dir.h" struct VenusFid afs_rootFid; extern struct osi_dev cacheDev; extern char *afs_indexFlags; extern struct vcache *afs_FindVCache(); extern struct lock afs_xvcache; extern long afs_missedCBs; extern struct vcache *afs_NewVCache(); extern struct DirEntry *dir_GetBlob(); #ifdef AFS_VFS32 extern int minphys(); #endif int afs_open(); int afs_close(); int afs_rdwr(); int afs_xioctl(); int afs_select(); int afs_getattr(); int afs_setattr(); int afs_access(); int afs_lookup(); int afs_create(); int afs_remove(); int afs_link(); int afs_rename(); int afs_mkdir(); int afs_rmdir(); int afs_readdir(); int afs_symlink(); int afs_readlink(); int afs_fsync(); int afs_inactive(); int afs_bmap(); int afs_strategy(); int afs_badop(); int afs_noop(); #define SMAR 20 /* size of a mariner name */ #define NMAR 10 /* number of mariner names */ static char marinerNames[NMAR][SMAR]; static struct vcache *marinerVCs[NMAR]; static marinerPtr = 0; /* pointer to next mariner slot to use */ static pagCounter = 0; struct vnodeops afs_vnodeops = { afs_open, afs_close, afs_rdwr, afs_badop, afs_noop, afs_getattr, afs_setattr, afs_access, afs_lookup, afs_create, afs_remove, afs_link, afs_rename, afs_mkdir, afs_rmdir, afs_readdir, afs_symlink, afs_readlink, afs_fsync, afs_inactive, afs_bmap, afs_strategy, afs_badop, /* bread */ afs_badop, /* brelse */ #ifdef AFS_VFS30 minphys, #endif #ifdef AFS_VFS32 afs_badop, /* lock control */ afs_noop, /* fid */ minphys, #endif #ifdef AFS_VFS34 afs_badop, /* lock ctrl */ afs_noop, /* fid */ #endif }; #ifndef vax struct vnodeops *afs_ops = &afs_vnodeops; #endif /* vnode file operations, and our own */ extern int vno_rw(); extern int vno_ioctl(); extern int vno_select(); extern int vno_close(); extern int afs_closex(); struct fileops afs_fileops = { vno_rw, vno_ioctl, vno_select, afs_closex, }; static char fileModeMap[8] = { PRSFS_ADMINISTER, PRSFS_ADMINISTER, PRSFS_ADMINISTER | PRSFS_WRITE, PRSFS_ADMINISTER | PRSFS_WRITE, PRSFS_ADMINISTER | PRSFS_READ, PRSFS_ADMINISTER | PRSFS_READ, PRSFS_ADMINISTER | PRSFS_READ | PRSFS_WRITE, PRSFS_ADMINISTER | PRSFS_READ | PRSFS_WRITE }; afs_vnodeops_cleanup() { bzero(&afs_rootFid, sizeof(afs_rootFid)); bzero(marinerNames, sizeof(marinerNames)); bzero(marinerVCs, sizeof(marinerVCs)); marinerPtr = 0; pagCounter = 0; } afs_InitReq(av, acred) register struct vrequest *av; register struct ucred *acred; { register long temp; #ifdef AFS_SHORTGID register short *tptr; #else register long *tptr; #endif register int i; #ifdef AFS_SHORTGID av->uid = acred->cr_uid; /* default, if no pag is set */ tptr = (short *) acred->cr_groups; for(i=0; i>12) & 0xf) == 0xa){ av->uid = temp; break; } } av->initd = 0; #else av->uid = acred->cr_uid; /* default, if no pag is set */ tptr = (long *) acred->cr_groups; for(i=0; i>24) & 0xff) == 'A'){ av->uid = temp; break; } } av->initd = 0; #endif } /* we don't send multiple read flocks to the server, but rather just count them up ourselves. Of course, multiple write locks are incompatible. Note that we should always try to release a lock, even if we have a network problem sending the release command through, since often a lock is released on a close call, when the user can't retry anyway. At least once we dump it from our structure, it will no longer be kept alive, and the server should time it out within a few minutes. */ HandleFlock(avc, fd, acom, areq) register struct vcache *avc; struct file *fd; register struct vrequest *areq; register long acom; { register struct conn *tc; register long code; long lockType; code = 0; /* default when we don't make any network calls */ ObtainWriteLock(&avc->lock); if (acom & LOCK_UN) { if (avc->flockCount == 0) { ReleaseWriteLock(&avc->lock); return ENOTTY; /* no lock held */ } /* unlock the lock */ if (avc->flockCount > 0) avc->flockCount--; else if (avc->flockCount == -1) avc->flockCount = 0; if (avc->flockCount == 0) { do { tc = afs_Conn(&avc->fid, areq); #ifdef NINTERFACE if (tc) code = AFS_ReleaseLock(tc->id, (struct AFSFid *) &avc->fid.Fid); #else if (tc) code = RViceReleaseLock(tc->id, &avc->fid.Fid); #endif else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); } fd->f_flag &= ~(FEXLOCK | FSHLOCK); } else { /* set a new lock */ if ((avc->flockCount != 0 && (acom & LOCK_EX)) || (avc->flockCount < 0 && (acom & LOCK_SH))) { /* incompatible modes, bounce */ code = EWOULDBLOCK; } else { /* compatible here, try to send call to file server */ lockType = ((acom & LOCK_EX)? LockWrite : LockRead); do { tc = afs_Conn(&avc->fid, areq); #ifdef NINTERFACE if (tc) code = AFS_SetLock(tc->id, (struct AFSFid *) &avc->fid.Fid, lockType); #else if (tc) code = RViceSetLock(tc->id, &avc->fid.Fid, lockType); #endif else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); } if (code == 0) { if (acom & LOCK_EX) { avc->flockCount = -1; fd->f_flag |= FEXLOCK; } else { avc->flockCount++; fd->f_flag |= FSHLOCK; } } } ReleaseWriteLock(&avc->lock); /* now there's a race here: we could have locked the file after someone else stored a file newer than the one we fetched from the server when we did our open syscall. So, we update our stat info (including file's DataVersion number), and when we read data, we'll fetch new stuff from server if need be. */ if (code == 0 && !(acom & LOCK_UN)) { /* if we're locking the file, check that we have the right data */ code = afs_VerifyVCache(avc, areq); if (code) { /* can't get right data, so better punt and unlock the file */ HandleFlock(avc, fd, LOCK_UN, areq); /* don't care about the return code since we're failing anyway */ } } return code; } static AddPag(aval) long aval; { register int i, foundSlot; register long temp; #ifdef AFS_SHORTGID register short *tptr; #else register long *tptr; #endif u.u_cred = crcopy(u.u_cred); #ifdef AFS_SHORTGID tptr = (short *) u.u_cred->cr_groups; #else tptr = (long *) u.u_cred->cr_groups; #endif foundSlot = 0; for(i=0;i> 12) & 0xf) == 0xa) { #else if (((temp >> 24) & 0xff) == 'A') { #endif foundSlot = 1; break; } } if (i == NGROUPS) { /* if no free slots and no pag group slot, we fail. */ return E2BIG; } else { /* otherwise, there is room, so setup slot properly */ *tptr = aval; if (!foundSlot) { /* maintain proper termination, if there is room */ if (i < NGROUPS-1) *(tptr+1) = NOGROUP; } } return 0; } #ifdef AFS_GETDIRHACK /* routine for setting f_offset to correct value */ afs_AdvanceFD(afd, aoffset, asize) register struct file *afd; long aoffset; long asize; { register struct vcache *tvc; tvc = (struct vcache *) afd->f_data; if (vType(tvc) == VDIR && tvc->v.v_op == afs_ops) { afd->f_offset = aoffset << 4; } else afd->f_offset += asize; } #endif afs_xsetgroups() { struct vrequest treq; afs_dp("in afs_xsetgroups\n"); afs_InitReq(&treq, u.u_cred); setgroups(); #ifdef AFS_SHORTGID if (((treq.uid >> 12) & 0xf) == 0xa) { #else if (((treq.uid >> 24) & 0xff) == 'A') { #endif /* we've already done a setpag, so now we redo it */ AddPag(treq.uid); } } afs_xflock () { struct a { int fd; int com; } *uap; struct file *fd; struct vrequest treq; struct vcache *tvc; int flockDone; flockDone = 0; uap = (struct a *)u.u_ap; fd = getf(uap->fd); if (!fd) return; afs_InitReq(&treq, u.u_cred); /* first determine whether this is any sort of vnode */ if (fd->f_type == DTYPE_VNODE) { /* good, this is a vnode; next see if it is an AFS vnode */ tvc = (struct vcache *) fd->f_data; /* valid, given a vnode */ if (tvc->v.v_op == afs_ops) { /* This is an AFS vnode, so do the work */ u.u_error = HandleFlock(tvc, fd, uap->com, &treq); flockDone = 1; fd->f_ops = &afs_fileops; } } if (!flockDone) flock(); return; } /* * Pags are implemented as follows: the set of groups whose long representation * is '41XXXXXX' hex are used to represent the pags. Being a member of such * a group means you are authenticated as pag XXXXXX (note that 0x41 == 'A', for * Andrew file system). You are never authenticated as multiple pags at once. * * The function afs_InitReq takes a credential field and formats the * corresponding venus request structure. The uid field in the vrequest structure * is set to the *pag* you are authenticated as, or the uid, if you aren't * authenticated with a pag. * * The basic motivation behind pags is this: just because your unix uid is N doesn't mean * that you should have the same privileges as anyone logged in on the machine as user N, * since this would enable the superuser on the machine to sneak in and make use of * anyone's authentication info, even that which is only accidentally left behind * when someone leaves a public workstation. * * The Andrew file system doesn't use the unix uid for anything except a handle with * which to find the actual authentication tokens anyway, so the pag is an alternative * handle which is somewhat more secure (although of course not absolutely secure). */ afs_setpag () { #ifdef AFS_SHORTGID u.u_error = AddPag((0xa << 12) + (pagCounter++ & 0xfff)); #else u.u_error = AddPag(('A' << 24) + (pagCounter++ & 0xffffff)); #endif afs_dp("setpag returning %d\n", u.u_error); } afs_AddMarinerName(aname, avc) register char *aname; register struct vcache *avc; { register int i; register char *tp; i = marinerPtr++; if (i >= NMAR) { i = 0; marinerPtr = 1; } tp = marinerNames[i]; strncpy(tp, aname, SMAR); tp[SMAR-1] = 0; marinerVCs[i] = avc; return 0; } char *afs_GetMariner(avc) register struct vcache *avc; { register int i; for(i=0; ilock); tvc->m.Date = osi_Time(); ReleaseWriteLock(&tvc->lock); } if (tvc->m.DataVersion == 0 && writing) { /* we just created this file, so make sure that we eventually store something back, otherwise salvager will delete the fragment. */ ObtainWriteLock(&tvc->lock); tdc = afs_GetDCache(tvc, 0, &treq, &offset, &len, 0); if (tdc) { afs_indexFlags[tdc->index] |= IFDataMod; afs_PutDCache(tdc); } ReleaseWriteLock(&tvc->lock); } ObtainReadLock(&tvc->lock); if (writing) tvc->execsOrWriters++; tvc->opens++; ReleaseReadLock(&tvc->lock); done: return afs_CheckCode(code, &treq); } /* this stupid routine is used to release the flocks held on a particular file descriptor. Sun doesn't pass file descr. info through to the vnode layer, and yet we must unlock flocked files on the *appropriate* (not first, as in System V) close call. Thus this code. How does this code get invoked? The afs FLOCK plugs in the new afs file ops structure into any afs file when it gets flocked. N.B: Intercepting close syscall doesn't trap aborts or exit system calls. */ afs_closex(afd) register struct file *afd; { struct vrequest treq; register struct vcache *tvc; long flags; int closeDone; long code; /* setup the credentials */ afs_InitReq(&treq, u.u_cred); closeDone = 0; /* we're the last one. If we're an AFS vnode, clear the flags, close the file and release the lock when done. Otherwise, just let the regular close code work. */ if (afd->f_type == DTYPE_VNODE) { tvc = (struct vcache *) afd->f_data; if (tvc->v.v_op == afs_ops) { VN_HOLD((struct vnode *) tvc); flags = afd->f_flag & (FSHLOCK | FEXLOCK); afd->f_flag &= ~(FSHLOCK | FEXLOCK); code = vno_close(afd); if (flags) HandleFlock(tvc, afd, LOCK_UN, &treq); VN_RELE((struct vnode *) tvc); closeDone = 1; } } /* now, if close not done, do it */ if (!closeDone) { code = vno_close(afd); } return code; /* return code from vnode layer */ } /* handle any closing cleanup stuff */ afs_close(avc, aflags, acred) register struct vcache *avc; long aflags; struct ucred *acred; { register long code; register struct brequest *tb; struct vrequest treq; int coredump; afs_dp("close file %x flags %x\n", avc, aflags); if (aflags == -1) { /* special flags means core dump */ aflags = FWRITE; coredump = 1; } else coredump = 0; afs_InitReq(&treq, acred); ObtainReadLock(&avc->lock); /* so write locker never sees opens change */ avc->opens--; ReleaseReadLock(&avc->lock); code = 0; if (aflags & (FWRITE | FTRUNC)) { register struct dcache *tdc; /* don't do coredumps locally due to stack space limitations at VN_RELE time */ if (afs_BBusy() && !coredump) { /* do it yourself if daemons are all busy */ ObtainWriteLock(&avc->lock); avc->execsOrWriters--; if (avc->execsOrWriters == 0) { /* put the file back */ tdc = afs_FindDCache(avc, 0); if (tdc) { ConvertWToSLock(&avc->lock); code = afs_StoreDCache(avc, tdc, &treq); UpgradeSToWLock(&avc->lock); tdc->f.states &= ~DWriting; tdc->f.states |= DEntryMod; if (code) { /* failed to store, invalidate bad cache info */ avc->states &= ~CStatd; afs_indexFlags[tdc->index] &= ~IFDataMod; tdc->f.versionNo = -1; } afs_PutDCache(tdc); } else afs_dp("warning, no file on close\n"); } ReleaseWriteLock(&avc->lock); } else { /* at least one daemon is idle, so ask it to do the store. Also, note that queued routine BStore unlocks this entry */ ObtainSharedLock(&avc->lock); tb = afs_BQueue(BOP_STORE, avc, 1, acred->cr_uid); /* sleep waiting for the store to start, then retrieve error code */ while ((tb->flags & BUVALID) == 0) { tb->flags |= BUWAIT; osi_Sleep(tb); } code = tb->code; afs_BRelease(tb); } /* VNOVNODE is "acceptable" error code from close, since may happen when deleting a file on another machine while it is open here. */ if (code == VNOVNODE) code = 0; /* some codes merit specific complaint */ if (code < 0) { uprintf("afs: failed to store file (network problems)\n"); } else if (code == ENOSPC) { uprintf("afs: failed to store file (partition full)\n"); } else if (code == EDQUOT) { uprintf("afs: failed to store file (over quota)\n"); } else if (code != 0) uprintf("afs: failed to store file (%d)\n", code); /* finally, we flush any text pages lying around here; check coredump flag just in case, to minimize stack usage in VN_RELE */ if ((avc->states & CDataMod) && !coredump) { avc->states &= ~CDataMod; /* do this first, in case of race */ osi_FlushText(avc); } } return afs_CheckCode(code, &treq); } /* called on writes */ afs_write(avc, auio, aio, acred) register struct vcache *avc; struct uio *auio; int aio; struct ucred *acred; { long totalLength; long transferLength; long filePos; long startDate; register struct dcache *tdc; long offset, len, error; struct uio tuio; struct osi_file *tfile; register long code; struct vrequest treq; if (avc->execsOrWriters <= 0) { /* bozos at Sun don't open core files for writing */ afs_dp("opening core file\n"); avc->states |= CCore; avc->opens++; /* make file look open */ avc->execsOrWriters++; } startDate = osi_Time(); afs_InitReq(&treq, acred); /* otherwise we read */ totalLength = auio->afsio_resid; filePos = auio->afsio_offset; error = 0; transferLength = 0; tuio.afsio_iov = auio->afsio_iov; tuio.afsio_iovcnt = auio->afsio_iovcnt; tuio.afsio_seg = auio->afsio_seg; #ifdef AFS_UIOFMODE tuio.afsio_fmode = auio->afsio_fmode; #endif afs_dp("W"); afs_CheckSize(totalLength>>10); /* totalLength bounds the amount we'll grow this file */ ObtainWriteLock(&avc->lock); if (aio & IO_APPEND) { /* append mode, start it at the right spot */ filePos = auio->afsio_offset = avc->m.Length; } avc->m.Date = startDate; /* avoid counting lock-waiting time in file date (for ranlib) */ while (totalLength > 0) { /* read the cached info */ tdc = afs_GetDCache(avc, filePos, &treq, &offset, &len, 0); if (!tdc) { error = EIO; break; } afs_indexFlags[tdc->index] |= IFDataMod; /* so it doesn't disappear */ if (tdc->f.states & DWriting == 0) { /* don't mark entry as mod if we don't have to */ tdc->f.states |= (DEntryMod | DWriting); } tfile = osi_UFSOpen(&cacheDev, tdc->f.inode); if (!tfile) panic("afswrite open"); len = totalLength; /* write this amount by default */ if ((1<chunkShift) < len + offset) { /* it won't all fit in this chunk, so write as much as will fit */ len = (1<chunkShift) - offset; afs_dp("write doesn't all fit, chunksize is %d, newlen %d\n", 1<chunkShift, len); } /* mung uio structure to be right for this transfer */ tuio.afsio_resid = len; tuio.afsio_offset = offset; code = VOP_RDWR(tfile->vnode, &tuio, UIO_WRITE, 0, &osi_cred); if (code) { error = code; tdc->f.versionNo = -1; /* bad data */ osi_Truncate(tfile, 0); /* fake truncate the segment */ afs_AdjustSize(tdc, 0); /* sets f.chunkSize to 0 */ afs_indexFlags[tdc->index] &= ~IFDataMod; /* don't bother storing back */ afs_PutDCache(tdc); osi_Close(tfile); break; } /* otherwise we've written some, fixup length, etc and continue with next seg */ len = len - tuio.afsio_resid; /* compute amount really transferred */ /* compute new file size */ if (offset + len > tdc->f.chunkBytes) afs_AdjustSize(tdc, offset+len); totalLength -= len; transferLength += len; filePos += len; if (filePos > avc->m.Length) avc->m.Length = filePos; osi_Close(tfile); afs_PutDCache(tdc); } ReleaseWriteLock(&avc->lock); auio->afsio_resid -= transferLength; auio->afsio_offset += transferLength; return afs_CheckCode(error, &treq); } /* the read/write entry point */ afs_rdwr(avc, auio, arw, aio, acred) register struct vcache *avc; struct uio *auio; enum uio_rw arw; int aio; struct ucred *acred; { long totalLength; long transferLength; long filePos; register struct dcache *tdc; long offset, len, error; struct uio tuio; struct osi_file *tfile; register long code; struct vrequest treq; if (arw == UIO_WRITE) return afs_write(avc, auio, aio, acred); #ifdef AFS_GETDIRHACK /* for systems that sometimes call read on dirs, intercept appropriately */ if (vType(avc) == VDIR) { auio->afsio_offset >>= 4; /* avoid block truncation effects in seekdir */ return afs_readdir(avc, auio, acred); } #endif if (avc->v.v_type == VREG) avc->states |= CDataMod; /* data has been read since last text flush */ afs_dp("R"); afs_InitReq(&treq, acred); /* otherwise we read */ totalLength = auio->afsio_resid; filePos = auio->afsio_offset; error = 0; transferLength = 0; tuio.afsio_iov = auio->afsio_iov; tuio.afsio_iovcnt = auio->afsio_iovcnt; tuio.afsio_seg = auio->afsio_seg; #ifdef AFS_UIOFMODE tuio.afsio_fmode = auio->afsio_fmode; #endif ObtainReadLock(&avc->lock); while (totalLength > 0) { /* read all of the cached info */ if (filePos >= avc->m.Length) break; /* all done */ /* a tricky question: does the presence of the DFetching flag mean that we're fetching the latest version of the file? No. The server could update the file as soon as the fetch responsible for the setting of the DFetching flag completes. However, the presence of the DFetching flag (visible under a read lock since it is set and cleared only under a write lock) means that we're fetching as good a version as was known to this client at the time of the last call to afs_VerifyVCache, since the latter updates the stat cache's m.DataVersion field under a write lock, and from the time that the DFetching flag goes on (before the fetch starts), to the time it goes off (after the fetch completes), afs_GetDCache keeps at least a read lock (actually it keeps an S lock) on the cache entry. This means that if the DFetching flag is set, we can use that data for any reads that must come from the current version of the file (current == m.DataVersion). Another way of looking at this same point is this: if we're fetching some data and then try do an afs_VerifyVCache, the VerifyVCache operation will not complete until after the DFetching flag is turned off and the dcache entry's f.versionNo field is updated. Note, by the way, that if DFetching is set, m.DataVersion > f.versionNo (the latter is not updated until after the fetch completes). */ tdc = (struct dcache *) 0; if (!afs_BBusy()) { /* create dc entry; offset and len are *not* set in a type 2 request */ tdc = afs_GetDCache(avc, filePos, &treq, &offset, &len, 2); if (tdc) { /* see if we need better data */ if (avc->m.DataVersion != tdc->f.versionNo) { /* now see if data is already coming in */ if (!(tdc->f.states & DFetching)) { /* data not yet moving, start bkg daemon to get some */ tdc->f.states |= DFetchReq; afs_BQueue(BOP_FETCH, avc, 0, filePos, (char *) tdc); while (tdc->f.states & DFetchReq) { afs_dp("waiting for fetch ack %x\n", tdc); /* don't need waiting flag on this one */ ReleaseReadLock(&avc->lock); osi_Sleep(&tdc->validPos); ObtainReadLock(&avc->lock); } } /* data is now streaming in. Wait for some interesting stuff. */ while ((tdc->f.states & DFetching) && tdc->validPos <= filePos) { afs_dp("waiting for data %x\n", avc); /* too early: wait for DFetching flag to vanish, or data to appear */ tdc->f.states |= DWaiting; ReleaseReadLock(&avc->lock); osi_Sleep(&tdc->validPos); ObtainReadLock(&avc->lock); } /* fetching flag gone or data is here */ if (tdc->f.states & DFetching) { /* still fetching, some new data is here: compute length and offset */ offset = filePos - (tdc->f.chunk << 10); len = tdc->validPos - filePos; } else { /* no longer fetching, verify data version (avoid new GetDCache call) */ if (avc->m.DataVersion == tdc->f.versionNo) { offset = filePos - (tdc->f.chunk << 10); len = tdc->f.chunkBytes - offset; } else { /* don't have current data, so get it below */ afs_PutDCache(tdc); tdc = (struct dcache *) 0; } } } else { /* data is current */ offset = filePos - (tdc->f.chunk << 10); len = tdc->f.chunkBytes - offset; } } } if (!tdc) { ReleaseReadLock(&avc->lock); tdc = afs_GetDCache(avc, filePos, &treq, &offset, &len, 1); ObtainReadLock(&avc->lock); } if (!tdc) { error = EIO; break; } if (len <= 0) { /* better safe than sorry */ afs_PutDCache(tdc); break; } tfile = osi_UFSOpen(&cacheDev, tdc->f.inode); if (!tfile) panic("afsread open"); if (len > totalLength) len = totalLength; /* will read len bytes */ /* mung uio structure to be right for this transfer */ tuio.afsio_resid = len; tuio.afsio_offset = offset; code = VOP_RDWR(tfile->vnode, &tuio, UIO_READ, 0, &osi_cred); if (code) { error = code; afs_PutDCache(tdc); osi_Close(tfile); break; } /* otherwise we've read some, fixup length, etc and continue with next seg */ len = len - tuio.afsio_resid; /* compute amount really transferred */ totalLength -= len; transferLength += len; filePos += len; osi_Close(tfile); afs_PutDCache(tdc); } ReleaseReadLock(&avc->lock); auio->afsio_resid -= transferLength; auio->afsio_offset += transferLength; return afs_CheckCode(error, &treq); } /* copy out attributes from cache entry */ afs_CopyOutAttrs(avc, attrs) register struct vattr *attrs; register struct vcache *avc; { register struct volume *tvp; attrs->va_type = vType(avc); attrs->va_mode = avc->m.Mode; attrs->va_uid = avc->m.Owner; attrs->va_gid = 32767; /* not really, means this is a vice file */ attrs->va_fsid = 1; if (avc->mvstat == 2) { tvp = afs_GetVolume(&avc->fid, 0); /* The mount point's vnode. */ if (tvp) { attrs->va_nodeid = tvp->mtpoint.Fid.Vnode + (tvp->mtpoint.Fid.Volume << 16); afs_PutVolume(tvp); } else attrs->va_nodeid = 0; } else attrs->va_nodeid = avc->fid.Fid.Vnode + (avc->fid.Fid.Volume << 16); attrs->va_nlink = avc->m.LinkCount; attrs->va_size = avc->m.Length; attrs->va_blocksize = 8192; attrs->va_atime.tv_sec = attrs->va_mtime.tv_sec = attrs->va_ctime.tv_sec = avc->m.Date; attrs->va_atime.tv_usec = attrs->va_mtime.tv_usec = attrs->va_ctime.tv_usec = 0; attrs->va_rdev = 1; attrs->va_blocks = (attrs->va_size? ((attrs->va_size + 1023)>>10) << 1 : 1); return 0; } afs_getattr(avc, attrs, acred) register struct vcache *avc; register struct vattr *attrs; struct ucred *acred; { register long code; struct vrequest treq; afs_dp("getattr %x\n", avc); afs_InitReq(&treq, acred); code = afs_VerifyVCache(avc, &treq); if (code == 0) { code = afs_CopyOutAttrs(avc, attrs); } return afs_CheckCode(code, &treq); } /* merge useful properties into status block */ afs_VAttrToVS(av, avc, avs) register struct vattr *av; register struct ViceStatus *avs; register struct vcache *avc; { avs->Mode = (av->va_mode != ((unsigned short) -1)? (av->va_mode & 0xffff) : avc->m.Mode); avs->Owner = (av->va_uid != -1? av->va_uid : avc->m.Owner); avs->Length = (av->va_size != -1? av->va_size : avc->m.Length); avs->Date = (av->va_mtime.tv_sec != -1? av->va_mtime.tv_sec : avc->m.Date); return 0; } afs_setattr(avc, attrs, acred) register struct vcache *avc; register struct vattr *attrs; struct ucred *acred; { struct vrequest treq; register struct dcache *tdc; struct ViceStatus tvstat; register long code; long offset, len; struct osi_file *tfile; afs_dp("setattr %x\n", avc); if (avc->states & CRO) { code=EROFS; goto done; } afs_InitReq(&treq, acred); /* if file size has changed, we need write access, otherwise (e.g. chmod) give it a shot; if it fails, we'll discard the status info */ if (attrs->va_size != 0xffffffff && !afs_AccessOK(avc, PRSFS_WRITE, &treq)) { code = EACCES; goto done; } afs_VAttrToVS(attrs, avc, &tvstat); /* interpret request */ code = 0; if (attrs->va_size != -1) { ObtainWriteLock(&avc->lock); /* don't set "setlocks" parm in getdcache, since we already have lock. Flag 2 means that we don't care about actually fetching the data, since we're going to truncate the file immediately anyway. */ tvstat.Date = avc->m.Date = osi_Time(); /* truncate modifies file */ if (attrs->va_size == 0) tdc = afs_GetDCache(avc, 0, &treq, &offset, &len, 2); else tdc = afs_GetDCache(avc, 0, &treq, &offset, &len, 0); if (tdc) { if (avc->m.Length > attrs->va_size) { avc->m.Length = attrs->va_size; } /* shrink the cached file */ if (tdc->f.chunkBytes > attrs->va_size) { afs_dp("truncating file %x locally\n", avc); tfile = osi_UFSOpen(&cacheDev, tdc->f.inode); if (tfile) { afs_AdjustSize(tdc, attrs->va_size); osi_Truncate(tfile, attrs->va_size); osi_Close(tfile); } } /* now put the file back, if it is not open for writing */ if (avc->execsOrWriters > 0) { /* file is open for writing, close will store back */ tdc->f.states |= (DWriting | DEntryMod); afs_indexFlags[tdc->index] |= IFDataMod; } else { /* file is not open now, so send back now */ ConvertWToSLock(&avc->lock); code = afs_StoreDCache(avc, tdc, &treq); UpgradeSToWLock(&avc->lock); } afs_PutDCache(tdc); /* purge page cache again */ if (avc->states & CDataMod) { avc->states &= ~CDataMod; /* do this first, in case of race */ osi_FlushText(avc); } } ReleaseWriteLock(&avc->lock); } if (code == 0) { ObtainSharedLock(&avc->lock); /* lock entry */ code = afs_WriteVCache(avc, &tvstat, &treq); /* send request */ ReleaseSharedLock(&avc->lock); /* release lock */ } if (code) avc->states &= ~CStatd; /* error? erase any changes we made to vcache entry */ done: return afs_CheckCode(code, &treq); } afs_access(avc, amode, acred) register struct vcache *avc; register long amode; struct ucred *acred; { register long code; struct vrequest treq; afs_dp("access %x mode %x\n", avc, amode); afs_InitReq(&treq, acred); code = afs_VerifyVCache(avc, &treq); if (code) return afs_CheckCode(code, &treq); /* if we're looking for write access and we have a read-only file system, report it */ if ((amode & VWRITE) && (avc->states & CRO)) { return EROFS; } code = 1; /* Default from here on in is access ok. */ if (vType(avc) == VDIR) { if (amode & VEXEC) code = afs_AccessOK(avc, PRSFS_LOOKUP, &treq); if (code && (amode & VWRITE)) { code = afs_AccessOK(avc, PRSFS_INSERT, &treq); if (!code) code = afs_AccessOK(avc, PRSFS_DELETE, &treq); } if (code && (amode & VREAD)) code = afs_AccessOK(avc, PRSFS_LOOKUP, &treq); } else { if (amode & VEXEC) { code = afs_AccessOK(avc, PRSFS_READ, &treq); if (code && (avc->m.Mode & 0100) == 0) code = 0; } if (code && (amode & VWRITE)) code = afs_AccessOK(avc, PRSFS_WRITE, &treq); if (code && (amode & VREAD)) code = afs_AccessOK(avc, PRSFS_READ, &treq); } if (code) return 0; /* if access is ok */ else return afs_CheckCode(EACCES, &treq); /* failure code */ } /* call under write lock, evaluate mvid field from a mt pt */ EvalMountPoint(avc, advc, areq) register struct vcache *avc; struct vcache *advc; /* the containing dir */ register struct vrequest *areq; { register long code; register struct volume *tvp; struct VenusFid tfid; struct cell *tcell; char *cpos; char type; if (avc->mvid && (avc->states & CMValid)) return 0; /* done while racing */ code = afs_HandleLink(avc, areq); if (code) return code; /* now link name is inavc->linkData, get appropriate volume info */ type = avc->linkData[0]; cpos = index(&avc->linkData[1], ':'); if (cpos) { /* parse cellular mt point */ *cpos = 0; code = 0; tcell = afs_GetCellByName(&avc->linkData[1]); if (tcell) { tvp = afs_GetVolumeByName(cpos+1, tcell->cell, 1, areq); } else { code = ENODEV; } *cpos = ':'; /* put it back */ if (code) return code; } else { tvp = afs_GetVolumeByName(&avc->linkData[1], avc->fid.Cell, 1, areq); } if (!tvp) { return ENOENT; } /* don't allocate mvid field until we're sure we have something to put in */ if (avc->states & CRO) { if (tvp->states & VBackup) { /* watch for backups within backups */ afs_PutVolume(tvp); return ELOOP; } if (type == '#' && tvp->roVol) { /* there is a readonly volume, and we should map to it */ tfid.Fid.Volume = tvp->roVol; /* remember volume we really want */ tfid.Cell = tvp->cell; afs_PutVolume(tvp); /* release the old volume */ tvp = afs_GetVolume(&tfid, areq); /* get the new one */ if (!tvp) { return ENOENT; /* oops, can't do it */ } } } if (avc->mvid == 0) avc->mvid = (struct VenusFid *) osi_Alloc(sizeof(struct VenusFid)); avc->mvid->Cell = tvp->cell; avc->mvid->Fid.Volume = tvp->volume; avc->mvid->Fid.Vnode = 1; avc->mvid->Fid.Unique = 1; avc->states |= CMValid; tvp->mtpoint = avc->fid; /* setup back pointer to mtpoint */ tvp->dotdot = advc->fid; afs_PutVolume(tvp); return 0; } ENameOK(aname) register char *aname; { register char tc; if (aname[0] == '@') { aname++; if (!strncmp(aname, "cputype", 7)) return 0; if (!strncmp(aname, "sys", 3)) return 0; if (!strncmp(aname, "hostname", 8)) return 0; } /* check remainder of name for bogus chars */ while(tc = (*aname++)) { if (tc & 0x80) return 0; } return 1; } HandleAtName(aname, aresult) register char *aname; register char *aresult; { if (!strncmp(aname, "@sys", 4)) { #ifdef sun #ifdef mc68020 strcpy(aresult, "sun3_35"); strcpy(aresult+7, aname+4); #else strcpy(aresult, "sun2_35"); strcpy(aresult+7, aname+4); #endif #endif sun #ifdef ibm032 strcpy(aresult, "rt_r3"); strcpy(aresult+5, aname+4); #endif #ifdef vax strcpy(aresult, "vax_22"); strcpy(aresult+6, aname+4); #endif vax } else if (!strncmp(aname, "@cputype", 8)) { #ifdef sun #ifdef mc68020 strcpy(aresult, "sun3"); strcpy(aresult+4, aname+8); #else strcpy(aresult, "sun2"); strcpy(aresult+4, aname+8); #endif #endif sun #ifdef ibm032 strcpy(aresult, "ibm032"); strcpy(aresult+6, aname+8); #endif #ifdef vax strcpy(aresult, "vax2"); strcpy(aresult+4, aname+8); #endif } else if (!strncmp(aname, "@hostname", 9)) { strcpy(aresult,hostname); } else strcpy(aresult, aname); } afs_lookup(adp, aname, avcp, acred) register struct vcache *adp, **avcp; char *aname; struct ucred *acred; { struct vrequest treq; char *tname; register struct vcache *tvc; struct vcache *uvc; register long code; int evalFlag; register struct dcache *tdc; long dirOffset, dirLen, theDir; struct VenusFid tfid; /* lookup the name aname in the appropriate dir, and return a cache entry on the resulting fid */ afs_dp("lookup dir %x, name %s\n", adp, aname); afs_InitReq(&treq, acred); if (aname[0] == '@') { tname = (char *) osi_AllocSendSpace(); HandleAtName(aname, tname); } else { tname = aname; } code = afs_VerifyVCache(adp, &treq); if (code) goto done; /* watch for ".." in a volume root */ if (adp->mvstat == 2 && tname[0] == '.' && tname[1] == '.' && tname[2] == 0) { /* looking up ".." in root via special hacks */ if (adp->mvid == (struct VenusFid *) 0 || adp->mvid->Fid.Volume == 0) { afs_dp("afs: punting on '..' call for %x\n", adp); code = ENOTTY; goto done; } /* otherwise we have the fid here, so we use it */ tvc = afs_GetVCache(adp->mvid, &treq); if (!tvc) { code = ENOENT; goto done; } else { *avcp = tvc; code = 0; goto done; } } /* now check the access */ if (!afs_AccessOK(adp, PRSFS_LOOKUP, &treq)) { code = EACCES; goto done; } /* now we have to lookup the next fid */ tdc = afs_GetDCache(adp, 0, &treq, &dirOffset, &dirLen, 1); if (!tdc) { code = EIO; goto done; } /* now we will just call dir package with appropriate inode. Dirs are always fetched in their entirety for now */ ObtainReadLock(&adp->lock); theDir = tdc->f.inode; code = dir_Lookup(&theDir, tname, &tfid.Fid); ReleaseReadLock(&adp->lock); afs_PutDCache(tdc); if (code) { goto done; } /* new fid has same cell and volume */ tfid.Cell = adp->fid.Cell; tfid.Fid.Volume = adp->fid.Fid.Volume; afs_dp("lookup fid is %x.%x.%x.%x\n", tfid.Cell, tfid.Fid.Volume, tfid.Fid.Vnode, tfid.Fid.Unique); /* now get the status info */ tvc = afs_GetVCache(&tfid, &treq); if (tvc) { tvc->parentVnode = adp->fid.Fid.Vnode; tvc->parentUnique = adp->fid.Fid.Unique; if (tvc->mvstat == 1) { afs_dp("crossing mt point %x\n", tvc); /* a mt point, possibly unevaluated */ if (tvc->mvid == (struct VenusFid *) 0 || !(tvc->states & CMValid)) { afs_dp("trying to eval mt point\n"); ObtainWriteLock(&tvc->lock); code = EvalMountPoint(tvc, adp, &treq); if (code) afs_dp("evalmountpoint error %d\n", code); ReleaseWriteLock(&tvc->lock); evalFlag = 1; } else evalFlag = 0; /* next, we want to continue using the target of the mt point */ if (tvc->mvid) { /* now lookup target, to set .. pointer */ afs_dp("mount point is to %x.%x.%x.%x\n", tvc->fid.Cell, tvc->fid.Fid.Volume, tvc->fid.Fid.Vnode, tvc->fid.Fid.Unique); uvc = tvc; /* remember for later */ tvc = afs_GetVCache(tvc->mvid, &treq); afs_PutVCache(uvc); /* we're done with it */ if (!tvc) { code = ENOENT; goto done; } /* now, if we came via a new mt pt (say because of a new release of a R/O volume), we must reevaluate the .. ptr to point back to the appropriate place */ if (evalFlag) { ObtainWriteLock(&tvc->lock); if (tvc->mvid == (struct VenusFid *) 0) { tvc->mvid = (struct VenusFid *) osi_Alloc(sizeof(struct VenusFid)); } /* setup backpointer */ *tvc->mvid = adp->fid; ReleaseWriteLock(&tvc->lock); } } else { afs_dp("failed to find mt pt\n"); afs_PutVCache(tvc); code = ENOENT; goto done; } } *avcp = tvc; afs_dp("lookup returning ce %x\n", tvc); code = 0; } else code = ENOENT; done: /* put the network buffer back, if need be */ if (tname != aname) osi_FreeSendSpace(tname); if (code == 0) { afs_AddMarinerName(aname, tvc); } return afs_CheckCode(code, &treq); } afs_create(adp, aname, attrs, aexcl, amode, avcp, acred) register struct vcache *adp; char *aname; struct vattr *attrs; enum vcexcl aexcl; int amode; struct vcache **avcp; struct ucred *acred; { long origCBs; struct vrequest treq; register long code; register struct conn *tc; struct ViceFid bidFid; struct VenusFid newFid; struct ViceStatus vstat, dstat; #ifdef NINTERFACE struct AFSStoreStatus InStatus; struct AFSFetchStatus OutFidStatus, OutDirStatus; struct AFSCallBack CallBack; long now; #endif register struct dcache *tdc; long offset, len, host; register struct vcache *tvc; afs_dp("creating file %s in %x with mode %x\n", aname, adp, amode); if (!ENameOK(aname)) { code = EINVAL; goto done; } bidFid.Volume = 0; afs_InitReq(&treq, acred); code = afs_VerifyVCache(adp, &treq); if (code) goto done; tdc = afs_GetDCache(adp, 0, &treq, &offset, &len, 1); ObtainWriteLock(&adp->lock); if (tdc) { /* see if file already exists. If it does, we only set the size attributes (to handle O_TRUNC) */ code = dir_Lookup(&tdc->f.inode, aname, &newFid.Fid); if (code == 0) { afs_PutDCache(tdc); ReleaseWriteLock(&adp->lock); if (aexcl != NONEXCL) { code = EEXIST; goto done; } /* found the file, so use it */ newFid.Cell = adp->fid.Cell; newFid.Fid.Volume = adp->fid.Fid.Volume; tvc = afs_GetVCache(&newFid, &treq); if (tvc) { len = attrs->va_size; /* only do the truncate */ if (len != 0xffffffff) { /* do a truncate */ vattr_null(attrs); attrs->va_size = len; tvc->execsOrWriters++; /* pretend we are writing, to avoid store */ code = afs_setattr(tvc, attrs, acred); tvc->execsOrWriters--; if (code) { afs_PutVCache(tvc); goto done; } } *avcp = tvc; } else code = ENOENT; /* make sure vrefCount bumped only if code == 0 */ goto done; } } origCBs = afs_missedCBs; /* if changes, we don't really have a callback */ vstat.Date = osi_Time(); vstat.Owner = 0; vstat.Mode = attrs->va_mode & 0xffff; /* only care about protection bits */ /* why do we hold the afs_xvcache lock for the entire create operation? Everywhere else we obtain a callback, we first hold the appropriate cache entry, so that we can detect race conditions when a break callback message hits simultaneously with the callback-obtaining fetch (or whatever) call. However, this is impossible with create, since we don't know the fid of the new file until the operation finishes. We rely on the afs_missedCBs field to tell us if a break callback message arrived for this file before we created the entry, but unless we hold the afs_xvcache entry, someone could create and delete the entry before we see it. The result would be that we would think we have a callback, but the break callback message could have been applied to the ephemeral cache entry. Thus we hold the lock (afs_xvcache) that prevents others from creating or deleting new cache entries. We only need it in R mode during the create, but need it in W mode when we actually create the entry below. We should really use S mode if this is a contention hot-spot. */ ObtainWriteLock(&afs_xvcache); do { tc = afs_Conn(&adp->fid, &treq); if (tc) { host = tc->server->host; /* remember for callback processing */ #ifdef NINTERFACE ViceStToAFSStoreSt(&vstat, &InStatus); now = osi_Time(); code = AFS_CreateFile(tc->id, (struct AFSFid *) &adp->fid.Fid, aname, &InStatus, (struct AFSFid *) &newFid.Fid, &OutFidStatus, &OutDirStatus, &CallBack); AFSFetchStToViceSt(&OutFidStatus, &vstat); AFSFetchStToViceSt(&OutDirStatus, &dstat); AFSCallBackStToViceSt(&CallBack, &vstat); vstat.CallBackTime += now; #else code = RViceCreate(tc->id, &adp->fid.Fid, &bidFid, aname, &vstat, &newFid.Fid, &dstat); #endif } else code = -1; } while(afs_Analyze(tc, code, &adp->fid, &treq)); if (code == EEXIST && aexcl == NONEXCL) { /* if we get an EEXIST in nonexcl mode, just do a lookup */ if (tdc) afs_PutDCache(tdc); ReleaseWriteLock(&adp->lock); ReleaseWriteLock(&afs_xvcache); code = afs_lookup(adp, aname, avcp, acred); goto done; } if (code) { ReleaseWriteLock(&adp->lock); ReleaseWriteLock(&afs_xvcache); if (tdc) afs_PutDCache(tdc); goto done; } /* otherwise, we should see if we can make the change to the dir locally */ if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(adp, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Create(&tdc->f.inode, aname, &newFid.Fid); if (code) { tdc->f.versionNo = -1; /* surprise error -- use invalid value */ /* DEntryMod set by local hero */ } } afs_PutDCache(tdc); } newFid.Cell = adp->fid.Cell; newFid.Fid.Volume = adp->fid.Fid.Volume; ReleaseWriteLock(&adp->lock); /* If the RViceCreate worked (newFid has a new fid to use), then we shouldn't have the entry in the vcache, since the afs_xvcache lock has been held to prevent the creation of new entries since the file has been created. Thus we can ignore the possibility that the cache entry already exists. */ tvc = afs_NewVCache(&newFid, host); if (tvc) { /* add the callback in */ if (origCBs == afs_missedCBs) { tvc->states |= CStatd; /* we've fake entire thing, so don't stat */ tvc->cbExpires = vstat.CallBackTime; } else tvc->callback = 0; afs_ProcessVStat(tvc, &vstat); *avcp = tvc; code = 0; } else code = ENOENT; ReleaseWriteLock(&afs_xvcache); done: if (code == 0) { afs_AddMarinerName(aname, *avcp); /* return the new status in vattr (barf) */ afs_CopyOutAttrs(*avcp, attrs); } return afs_CheckCode(code, &treq); } /* * Check to see if we can track the change locally: requires that * we have sufficiently recent info in data cache. If so, we * know the new DataVersion number, and place it correctly in both the * data and stat cache entries. This routine returns 1 if we should * do the operation locally, and 0 otherwise. * * This routine must be called with the stat cache entry write-locked. */ afs_LocalHero(avc, adc, astat, aincr) register struct vcache *avc; register ViceStatus *astat; register struct dcache *adc; register int aincr; { register long avers; avers = astat->DataVersion; /* this *is* the version number, no matter what */ avc->m.DataVersion = avers; avc->m.Length = astat->Length; avc->m.Date = astat->Date; adc->f.states |= DEntryMod; if (avers == adc->f.versionNo + aincr) { /* we've been tracking things correctly */ adc->f.versionNo = avers; return 1; } else { adc->f.versionNo = -1; return 0; } } afs_remove(adp, aname, acred) register struct vcache *adp; char *aname; struct ucred *acred; { struct vrequest treq; struct ViceStatus dstat; register struct dcache *tdc; struct VenusFid unlinkFid; register long code; register struct conn *tc; long offset, len; #ifdef NINTERFACE struct AFSFetchStatus OutDirStatus; #endif afs_dp("remove dir %x, name %s\n", adp, aname); afs_InitReq(&treq, acred); code = afs_VerifyVCache(adp, &treq); if (code) return afs_CheckCode(code, &treq); tdc = afs_GetDCache(adp, 0, &treq, &offset, &len, 1); /* test for error below */ ObtainWriteLock(&adp->lock); do { tc = afs_Conn(&adp->fid, &treq); if (tc) { #ifdef NINTERFACE code = AFS_RemoveFile(tc->id, (struct AFSFid *) &adp->fid.Fid, aname, &OutDirStatus); AFSFetchStToViceSt(&OutDirStatus, &dstat); #else code = RViceRemove(tc->id, &adp->fid.Fid, aname, &dstat); #endif } else code = -1; } while (afs_Analyze(tc, code, &adp->fid, &treq)); if (code) { if (tdc) afs_PutDCache(tdc); ReleaseWriteLock(&adp->lock); return afs_CheckCode(code, &treq); } unlinkFid.Fid.Vnode = 0; if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(adp, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Lookup(&tdc->f.inode, aname, &unlinkFid.Fid); if (code) unlinkFid.Fid.Vnode = 0; else { unlinkFid.Cell = adp->fid.Cell; unlinkFid.Fid.Volume = adp->fid.Fid.Volume; } code = dir_Delete(&tdc->f.inode, aname); if (code) tdc->f.versionNo = -1; /* surprise error -- invalid value */ /* DEntryMod set by local hero */ } afs_PutDCache(tdc); /* drop ref count */ } ReleaseWriteLock(&adp->lock); /* now, get vnode for unlinked dude, and see if we should force it from cache. adp is now the deleted files vnode. Note that we call FindVCache instead of GetVCache since if the file's really gone, we won't be able to fetch the status info anyway. */ ObtainReadLock(&afs_xvcache); adp = afs_FindVCache(&unlinkFid); ReleaseReadLock(&afs_xvcache); if (adp) { ObtainWriteLock(&adp->lock); adp->states &= ~CStatd; /* link count, ctime are wrong; we don't have correct value */ afs_TryToSmush(adp); ReleaseWriteLock(&adp->lock); afs_PutVCache(adp); } return 0; } afs_link(avc, adp, aname, acred) register struct vcache *avc; register struct vcache *adp; char *aname; struct ucred *acred; { struct vrequest treq; struct ViceStatus dstat, ustat; register struct dcache *tdc; register long code; register struct conn *tc; long offset, len; #ifdef NINTERFACE struct AFSFetchStatus OutFidStatus, OutDirStatus; #endif afs_dp("hard link %x in dir %x with name %s\n", avc, adp, aname); /* create a hard link; new entry is aname in dir adp */ afs_InitReq(&treq, acred); if (avc->fid.Cell != adp->fid.Cell || avc->fid.Fid.Volume != adp->fid.Fid.Volume) { code = EXDEV; goto done; } code = afs_VerifyVCache(adp, &treq); if (code) goto done; tdc = afs_GetDCache(adp, 0, &treq, &offset, &len, 1); /* test for error below */ ObtainWriteLock(&adp->lock); do { tc = afs_Conn(&adp->fid, &treq); if (tc) { #ifdef NINTERFACE code = AFS_Link(tc->id, (struct AFSFid *) &adp->fid.Fid, aname, (struct AFSFid *) &avc->fid.Fid, &OutFidStatus, &OutDirStatus); AFSFetchStToViceSt(&OutFidStatus, &ustat); AFSFetchStToViceSt(&OutDirStatus, &dstat); #else code = RViceLink(tc->id, &adp->fid.Fid, aname, &avc->fid.Fid, &ustat, &dstat); #endif } else code = -1; } while (afs_Analyze(tc, code, &adp->fid, &treq)); if (code) { if (tdc) afs_PutDCache(tdc); ReleaseWriteLock(&adp->lock); goto done; } if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(adp, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Create(&tdc->f.inode, aname, &avc->fid.Fid); if (code) tdc->f.versionNo = -1; /* surprise error -- invalid value */ } afs_PutDCache(tdc); /* drop ref count */ } ReleaseWriteLock(&adp->lock); ObtainWriteLock(&avc->lock); /* correct link count */ /* we could lock both dir and file; since we get the new fid status back, you'd think we could put it in the cache status entry at that point. Note that if we don't lock the file over the rpc call, we have no guarantee that the status info returned in ustat is the most recent to store in the file's cache entry */ avc->states &= ~CStatd; /* don't really know new link count */ ReleaseWriteLock(&avc->lock); code = 0; done: return afs_CheckCode(code, &treq); } afs_rename(aodp, aname1, andp, aname2, acred) register struct vcache *aodp, *andp; char *aname1, *aname2; struct ucred *acred; { struct vrequest treq; register struct conn *tc; register long code; long returnCode; int oneDir, doLocally; struct ViceStatus dstat1, dstat2; struct VenusFid unlinkFid, fileFid; struct vcache *tvc; struct dcache *tdc1, *tdc2; long offset, len; #ifdef NINTERFACE struct AFSFetchStatus OutOldDirStatus, OutNewDirStatus; #endif afs_InitReq(&treq, acred); afs_dp("rename d1 %x name %s to d2 %x name %s\n", aodp, aname1, andp, aname2); /* verify the latest versions of the stat cache entries */ code = afs_VerifyVCache(aodp, &treq); if (code) goto done; code = afs_VerifyVCache(andp, &treq); if (code) goto done; /* lock in appropriate order, after some checks */ if (aodp->fid.Cell != andp->fid.Cell || aodp->fid.Fid.Volume != andp->fid.Fid.Volume) { code = EXDEV; goto done; } oneDir = 0; if (andp->fid.Fid.Unique == aodp->fid.Fid.Unique) { ObtainWriteLock(&andp->lock); oneDir = 1; /* only one dude locked */ } else if (andp->fid.Fid.Unique < aodp->fid.Fid.Unique) { ObtainWriteLock(&andp->lock); /* lock smaller one first */ ObtainWriteLock(&aodp->lock); } else { ObtainWriteLock(&aodp->lock); /* lock smaller one first */ ObtainWriteLock(&andp->lock); } /* locks are now set, proceed to do the real work */ do { tc = afs_Conn(&aodp->fid, &treq); #ifdef NINTERFACE if (tc) { code = AFS_Rename(tc->id, (struct AFSFid *) &aodp->fid.Fid, aname1, (struct AFSFid *) &andp->fid.Fid, aname2, &OutOldDirStatus, &OutNewDirStatus); AFSFetchStToViceSt(&OutOldDirStatus, &dstat1); AFSFetchStToViceSt(&OutNewDirStatus, &dstat2); } else code = -1; #else if (tc) code = RViceRename(tc->id, &aodp->fid.Fid, aname1, &andp->fid.Fid, aname2, &dstat1, &dstat2); else code = -1; #endif } while (afs_Analyze(tc, code, &andp->fid, &treq)); returnCode = code; /* remember for later */ /* Now we try to do things locally. This is really loathsome code. */ if (code == 0) { tdc1 = tdc2 = 0; tdc1 = afs_GetDCache(aodp, 0, &treq, &offset, &len, 0); if (!oneDir) tdc2 = afs_GetDCache(andp, 0, &treq, &offset, &len, 0); else tdc2 = tdc1; if (tdc1 && tdc2) { /* see if version numbers increased properly */ doLocally = 0; unlinkFid.Fid.Vnode = 0; if (oneDir) { /* number increases by 1 for whole rename operation */ if (afs_LocalHero(aodp, tdc1, &dstat1, 1)) { doLocally = 1; } } else { /* two separate dirs, each increasing by 1 */ if (afs_LocalHero(aodp, tdc1, &dstat1, 1) && afs_LocalHero(andp, tdc2, &dstat2, 1)) doLocally = 1; else { /* local hero might not have invalidated both */ tdc1->f.versionNo = -1; tdc2->f.versionNo = -1; } } /* now really do the work */ if (doLocally) { /* first lookup the fid of the dude we're moving */ code = dir_Lookup(&tdc1->f.inode, aname1, &fileFid.Fid); if (code == 0) { /* delete the source */ code = dir_Delete(&tdc1->f.inode, aname1); if (code) tdc1->f.versionNo = -1; /* mysterious failure */ /* first see if target is there */ code = dir_Lookup(&tdc2->f.inode, aname2, &unlinkFid.Fid); if (code == 0) { /* target already exists, and will be unlinked by server */ code = dir_Delete(&tdc2->f.inode, aname2); if (code) tdc2->f.versionNo = -1; /* oops */ } code = dir_Create(&tdc2->f.inode, aname2, &fileFid.Fid); if (code) tdc2->f.versionNo = -1; } } } if (tdc1) afs_PutDCache(tdc1); if ((!oneDir) && tdc2) afs_PutDCache(tdc2); } /* update dir link counts */ aodp->m.LinkCount = dstat1.LinkCount; if (!oneDir) andp->m.LinkCount = dstat2.LinkCount; /* release locks */ ReleaseWriteLock(&aodp->lock); if (!oneDir) ReleaseWriteLock(&andp->lock); /* now, some more details. if unlinkFid.Fid.Vnode then we should decrement the link count on this file. Note that if fileFid is a dir, then we don't have to invalidate its ".." entry, since its DataVersion # should have changed. However, interface is not good enough to tell us the *file*'s new DataVersion, so we're stuck. Our hack: delete mark the data as having an "unknown" version (effectively discarding the ".." entry */ if (unlinkFid.Fid.Vnode) { unlinkFid.Fid.Volume = aodp->fid.Fid.Volume; unlinkFid.Cell = aodp->fid.Cell; tvc = afs_GetVCache(&unlinkFid, &treq); if (tvc) { ObtainWriteLock(&tvc->lock); tvc->states &= ~CStatd; /* don't have old name's file's new status */ /* if this was last guy (probably) discard from cache. Never hurts to do this, even if this isn't the last link: at worst we'll fetch the file again. TryToSmush won't get rid of the file if it is important (e.g. modified or locked) */ if (tvc->m.LinkCount == 1) { /* try to discard from cache to save space */ afs_TryToSmush(tvc); } ReleaseWriteLock(&tvc->lock); afs_PutVCache(tvc); } } /* now handle ".." invalidation */ if (!oneDir) { fileFid.Fid.Volume = aodp->fid.Fid.Volume; fileFid.Cell = aodp->fid.Cell; tvc = afs_GetVCache(&fileFid, &treq); if (tvc && (vType(tvc) == VDIR)) { tdc1 = afs_FindDCache(tvc, 0); if (tdc1) { tdc1->f.versionNo = -1; /* mark it as unknown */ tdc1->f.states |= DEntryMod; afs_PutDCache(tdc1); /* put it back */ } afs_PutVCache(tvc); } } code = returnCode; done: return afs_CheckCode(code, &treq); } afs_mkdir(adp, aname, attrs, avcp, acred) register struct vcache *adp; register struct vcache **avcp; char *aname; struct vattr *attrs; struct ucred *acred; { struct vrequest treq; register long code; register struct conn *tc; struct VenusFid newFid; struct ViceStatus vstat, dstat; register struct dcache *tdc; long offset, len; register struct vcache *tvc; #ifdef NINTERFACE struct AFSStoreStatus InStatus; struct AFSFetchStatus OutFidStatus, OutDirStatus; struct AFSCallBack CallBack; long now; #endif afs_dp("mkdir %s in %x\n", aname, adp); if(!ENameOK(aname)) { code = EINVAL; goto done; } afs_InitReq(&treq, acred); code = afs_VerifyVCache(adp, &treq); if (code) goto done; vstat.Date = osi_Time(); vstat.Owner = 0; vstat.Mode = attrs->va_mode & 0xffff; /* only care about protection bits */ tdc = afs_GetDCache(adp, 0, &treq, &offset, &len, 1); ObtainWriteLock(&adp->lock); do { tc = afs_Conn(&adp->fid, &treq); if (tc) { #ifdef NINTERFACE ViceStToAFSStoreSt(&vstat, &InStatus); now = osi_Time(); code = AFS_MakeDir(tc->id, (struct AFSFid *) &adp->fid.Fid, aname, &InStatus, (struct AFSFid *) &newFid.Fid, &OutFidStatus, &OutDirStatus, &CallBack); AFSFetchStToViceSt(&OutFidStatus, &vstat); AFSFetchStToViceSt(&OutDirStatus, &dstat); AFSCallBackStToViceSt(&CallBack, &vstat); vstat.CallBackTime += now; /* DON'T forget to Set the callback value... */ #else code = RViceMakeDir(tc->id, &adp->fid.Fid, aname, &vstat, &newFid.Fid, &dstat); #endif } else code = -1; } while(afs_Analyze(tc, code, &adp->fid, &treq)); if (code) { ReleaseWriteLock(&adp->lock); if (tdc) afs_PutDCache(tdc); goto done; } /* otherwise, we should see if we can make the change to the dir locally */ if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(adp, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Create(&tdc->f.inode, aname, &newFid.Fid); if (code) tdc->f.versionNo = -1; /* surprise error -- use invalid value */ } afs_PutDCache(tdc); } adp->m.LinkCount = dstat.LinkCount; newFid.Cell = adp->fid.Cell; newFid.Fid.Volume = adp->fid.Fid.Volume; ReleaseWriteLock(&adp->lock); /* now we're done with parent dir, create the real dir's cache entry */ tvc = afs_GetVCache(&newFid, &treq); if (tvc) { code = 0; *avcp = tvc; } else code = ENOENT; done: return afs_CheckCode(code, &treq); } afs_rmdir(adp, aname, acred) register struct vcache *adp; char *aname; struct ucred *acred; { struct vrequest treq; struct ViceStatus dstat; register struct dcache *tdc; register long code; register struct conn *tc; long offset, len; #ifdef NINTERFACE struct AFSFetchStatus OutDirStatus; #endif afs_dp("rmdir of %s from %x\n", aname, adp); afs_InitReq(&treq, acred); code = afs_VerifyVCache(adp, &treq); if (code) goto done; tdc = afs_GetDCache(adp, 0, &treq, &offset, &len, 1); /* test for error below */ ObtainWriteLock(&adp->lock); do { tc = afs_Conn(&adp->fid, &treq); if (tc) { #ifdef NINTERFACE code = AFS_RemoveDir(tc->id, (struct AFSFid *) &adp->fid.Fid, aname, &OutDirStatus); AFSFetchStToViceSt(&OutDirStatus, &dstat); #else code = RViceRemoveDir(tc->id, &adp->fid.Fid, aname, &dstat); #endif } else code = -1; } while (afs_Analyze(tc, code, &adp->fid, &treq)); if (code) { if (tdc) afs_PutDCache(tdc); ReleaseWriteLock(&adp->lock); goto done; } if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(adp, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Delete(&tdc->f.inode, aname); if (code) tdc->f.versionNo = -1; /* surprise error -- invalid value */ } afs_PutDCache(tdc); /* drop ref count */ } ReleaseWriteLock(&adp->lock); /* don't worry about link count since dirs can not be hardlinked */ code = 0; done: return afs_CheckCode(code, &treq); } /* BlobScan is supposed to ensure that the blob reference refers to a valid directory entry. It consults the allocation map in the page header to determine whether a blob is actually in use or not. More formally, BlobScan is supposed to return a new blob number which is just like the input parameter, only it is advanced over header or free blobs. Note that BlobScan switches pages if necessary. BlobScan may return either 0 or an out-of-range blob number for end of file. */ static BlobScan(afile, ablob) long *afile; register long ablob; { register long relativeBlob; long pageBlob; register struct PageHeader *tpe; register long i; /* advance ablob over free and header blobs */ while (1) { pageBlob = ablob & ~(EPP-1); /* base blob in same page */ tpe = (struct PageHeader *) dir_GetBlob(afile, pageBlob); if (!tpe) return 0; /* we've past the end */ relativeBlob = ablob - pageBlob; /* relative to page's first blob */ /* first watch for headers */ if (pageBlob == 0) { /* first dir page has extra-big header */ /* first page */ if (relativeBlob < DHE+1) relativeBlob = DHE+1; } else { /* others have one header blob */ if (relativeBlob == 0) relativeBlob = 1; } /* make sure blob is allocated */ for(i = relativeBlob; i < EPP; i++) { if (tpe->freebitmap[i>>3] & (1<<(i&7))) break; } /* now relativeBlob is the page-relative first allocated blob, or EPP (if there are none in this page). */ DRelease(tpe, 0); if (i != EPP) return i+pageBlob; ablob = pageBlob + EPP; /* go around again */ } /* never get here */ } /* * Read directory entries. * There are some weird things to look out for here. The uio_offset * field is either 0 or it is the offset returned from a previous * readdir. It is an opaque value used by the server to find the * correct directory block to read. The byte count must be at least * vtoblksz(vp) bytes. The count field is the number of blocks to * read on the server. This is advisory only, the server may return * only one block's worth of entries. Entries may be compressed on * the server. * * This routine encodes knowledge of Vice dirs. */ afs_readdir(avc, auio, acred) register struct vcache *avc; struct uio *auio; struct ucred *acred; { struct vrequest treq; register struct dcache *tdc; long us; register long code; long offset, len, nextBlob; struct DirEntry *tde; struct direct dirEntry; /* big, contains 255 byte entry name */ long origOffset; /* opaque value is pointer into a vice dir; use bit map to decide if the entries are in use. Always assumed to be valid. 0 is special, means start of a new dir. Long inode, followed by short reclen and short namelen. Namelen does not include the null byte. Followed by null-terminated string. */ afs_InitReq(&treq, acred); /* setup request structure */ /* update the cache entry */ code = afs_VerifyVCache(avc, &treq); if (code) goto done; /* get a reference to the entire directory */ tdc = afs_GetDCache(avc, 0, &treq, &offset, &len, 1); if (!tdc) { code = ENOENT; goto done; } ObtainReadLock(&avc->lock); origOffset = auio->afsio_offset; nextBlob = origOffset >> 5; /* entry we want */ /* scan for the next interesting entry */ us = BlobScan(&tdc->f.inode, nextBlob); /* scan for in-use blob */ if (us == 0) { afs_PutDCache(tdc); ReleaseReadLock(&avc->lock); code = 0; goto done; } /* otherwise up point at this blob */ tde = (struct DirEntry *) dir_GetBlob(&tdc->f.inode, us); if (tde == (struct DirEntry *) 0) { afs_PutDCache(tdc); ReleaseReadLock(&avc->lock); code = 0; goto done; } /* copy the name structure out to user space */ /* volume << 16 + vnode is the d_fileno field */ dirEntry.d_fileno = (avc->fid.Fid.Volume << 16) + ntohl(tde->fid.vnode); dirEntry.d_reclen = 512; dirEntry.d_namlen = strlen(tde->name); /* don't count terminating null */ strcpy(dirEntry.d_name, tde->name); code = uiomove(&dirEntry, sizeof(dirEntry), UIO_READ, auio); auio->afsio_resid -= (512 - sizeof(dirEntry)); /* pretend we read 512 bytes */ auio->afsio_offset = (us + dir_NameBlobs(tde->name)) << 5; /* skip entry */ DRelease(tde, 0); afs_PutDCache(tdc); ReleaseReadLock(&avc->lock); done: return afs_CheckCode(code, &treq); } afs_symlink(adp, aname, attrs, atargetName, acred) register struct vcache *adp; register char *atargetName; char *aname; struct vattr *attrs; struct ucred *acred; { struct vrequest treq; register long code; register struct conn *tc; struct VenusFid newFid; struct ViceStatus vstat, dstat; register struct dcache *tdc; long offset, len, alen, host; register struct vcache *tvc; #ifdef NINTERFACE struct AFSStoreStatus InStatus; struct AFSFetchStatus OutFidStatus, OutDirStatus; #endif afs_dp("symlink dir %s in %x\n", aname, adp); afs_InitReq(&treq, acred); code = afs_VerifyVCache(adp, &treq); if (code) return afs_CheckCode(code, &treq); vstat.Date = osi_Time(); vstat.Owner = 0; alen = strlen(atargetName); /* we want it to include the null */ if (*atargetName == '#' || *atargetName == '%' || *atargetName == '$') vstat.Mode = 0644; /* mt pt: null from "." at end */ else { vstat.Mode = 0755; alen++; /* add in the null */ } tdc = afs_GetDCache(adp, 0, &treq, &offset, &len, 1); ObtainWriteLock(&adp->lock); ObtainWriteLock(&afs_xvcache); /* prevent others from creating this entry */ do { tc = afs_Conn(&adp->fid, &treq); if (tc) { host = tc->server->host; #ifdef NINTERFACE ViceStToAFSStoreSt(&vstat, &InStatus); code = AFS_Symlink(tc->id, (struct AFSFid *) &adp->fid.Fid, aname, atargetName, &InStatus, (struct AFSFid *) &newFid.Fid, &OutFidStatus, &OutDirStatus); AFSFetchStToViceSt(&OutFidStatus, &vstat); AFSFetchStToViceSt(&OutDirStatus, &dstat); #else code = RViceSymLink(tc->id, &adp->fid.Fid, aname, atargetName, &vstat, &newFid.Fid, &dstat); #endif } else code = -1; } while(afs_Analyze(tc, code, &adp->fid, &treq)); if (code) { ReleaseWriteLock(&adp->lock); ReleaseWriteLock(&afs_xvcache); if (tdc) afs_PutDCache(tdc); goto done; } /* otherwise, we should see if we can make the change to the dir locally */ if (tdc) { /* we have the thing in the cache */ if (afs_LocalHero(adp, tdc, &dstat, 1)) { /* we can do it locally */ code = dir_Create(&tdc->f.inode, aname, &newFid.Fid); if (code) tdc->f.versionNo = -1; /* surprise error -- use invalid value */ } afs_PutDCache(tdc); } newFid.Cell = adp->fid.Cell; newFid.Fid.Volume = adp->fid.Fid.Volume; ReleaseWriteLock(&adp->lock); /* now we're done with parent dir, create the link's entry. Note that no one can get a pointer to the new cache entry until we release the xvcache lock. */ tvc = afs_NewVCache(&newFid, host); tvc->cbExpires = 0x7fffffff; /* never expires, they can't change */ afs_ProcessVStat(tvc, &vstat); tvc->states |= CStatd; /* have valid info */ if (!tvc->linkData) { tvc->linkData = (char *) osi_Alloc(alen); strncpy(tvc->linkData, atargetName, alen-1); tvc->linkData[alen-1] = 0; } ReleaseWriteLock(&afs_xvcache); afs_PutVCache(tvc); code = 0; done: return afs_CheckCode(code, &treq); } /* call under write-lock to read link into memory */ afs_HandleLink(avc, areq) register struct vcache *avc; struct vrequest *areq; { register struct dcache *tdc; register char *tp; struct osi_file *tfile; long offset, len, alen; register long code; /* two different formats, one for links protected 644, have a "." at the end of the file name, which we turn into a null. Others, protected 755, we add a null to the end of */ if (!avc->linkData) { tdc = afs_GetDCache(avc, 0, areq, &offset, &len, 0); if (!tdc) { return EIO; } /* otherwise we have the data loaded, go for it */ if (len > 1024) { afs_PutDCache(tdc); return EFAULT; } tfile = osi_UFSOpen(&cacheDev, tdc->f.inode); if (!tfile) { afs_PutDCache(tdc); return EIO; } if (avc->m.Mode & 0111) alen = len+1; /* regular link */ else alen = len; /* mt point */ tp = osi_Alloc(alen); /* make room for terminating null */ code = osi_Read(tfile, tp, len); tp[alen-1] = 0; osi_Close(tfile); afs_PutDCache(tdc); if (code != len) { osi_Free(tp, alen); return EIO; } avc->linkData = tp; } return 0; } afs_readlink(avc, auio, acred) register struct vcache *avc; struct uio *auio; struct ucred *acred; { register long code; struct vrequest treq; register char *tp; afs_dp("readlink %x\n", avc); afs_InitReq(&treq, acred); code = afs_VerifyVCache(avc, &treq); if (code) goto done; if (vType(avc) != VLNK) { code = EINVAL; goto done; } ObtainWriteLock(&avc->lock); code = afs_HandleLink(avc, &treq); /* finally uiomove it to user-land */ if (code == 0) { tp = avc->linkData; if (tp) code = uiomove(tp, strlen(tp), UIO_READ, auio); else code = EIO; } ReleaseWriteLock(&avc->lock); done: return afs_CheckCode(code, &treq); } afs_fsync(avc, acred) register struct vcache *avc; struct ucred *acred; { register struct dcache *tdc; register long code; struct vrequest treq; afs_dp("fsync file %x\n", avc); afs_InitReq(&treq, acred); ObtainSharedLock(&avc->lock); code = 0; if (avc->execsOrWriters > 0) { /* put the file back */ tdc = afs_FindDCache(avc, 0); if (tdc) { code = afs_StoreDCache(avc, tdc, &treq); afs_PutDCache(tdc); } else afs_dp("warning, no file on fsync\n"); } ReleaseSharedLock(&avc->lock); return afs_CheckCode(code, &treq); } afs_inactive(avc, acred) register struct vcache *avc; struct ucred *acred; { /* at this point, there are no references to the vnode, even in core page structures, so we can clear the flag indicating that someone might have an outstanding core page reference. */ avc->states &= ~CDataMod; if (avc->states & CCore) { /* barf */ avc->vrefCount++; avc->states &= ~CCore; afs_dp("doing delayed core store\n"); afs_close(avc, -1, acred); /* special flags field means core dump */ avc->vrefCount--; } return 0; /* lru should do everything for us */ } afs_bmap(avc, abn, anvp, anbn) register struct vcache *avc; long abn, *anbn; struct vcache **anvp; { if (anvp) *anvp = avc; if (anbn) *anbn = abn * (8192 / DEV_BSIZE); /* in 512 byte units */ return 0; } /* basic strategy routine, assuming stuff mapped in. */ afs_ustrategy(abp) register struct buf *abp; { register long code; struct uio tuio; struct iovec tiovec[1]; afs_dp("strategy %x\n", abp->b_vp); if ((abp->b_flags & B_READ) == B_READ) { /* read b_bcount bytes into kernel address b_un.b_addr starting at byte DEV_BSIZE * b_blkno. Bzero anything we can't read, and finally call iodone(abp). File is in abp->b_vp. Credentials are from u area?? */ tuio.afsio_iov = tiovec; tuio.afsio_iovcnt = 1; tuio.afsio_offset = DEV_BSIZE * abp->b_blkno; tuio.afsio_seg = AFS_UIOSYS; #ifdef AFS_UIOFMODE tuio.afsio_fmode = 0; #endif tuio.afsio_resid = abp->b_bcount; tiovec[0].iov_base = abp->b_un.b_addr; tiovec[0].iov_len = abp->b_bcount; /* are user's credentials valid here? probably, but this sure seems like the wrong things to do. */ code = afs_rdwr((struct vcache *) abp->b_vp, &tuio, UIO_READ, 0, u.u_cred); if (code == 0) { if (tuio.afsio_resid > 0) bzero(abp->b_un.b_addr + abp->b_bcount - tuio.afsio_resid, tuio.afsio_resid); } iodone(abp); } else { /* we shouldn't get called for writing until mmap is implemented. */ panic("afs_strategy write"); } return code; } /* real strategy */ afs_strategy (abp) register struct buf *abp; { return osi_MapStrategy(afs_ustrategy, abp); } /* avc must be held, its parent must be unlocked. Returns true if any of the requested access modes are allowed. */ afs_AccessOK (avc, arights, areq) register struct vcache *avc; struct vrequest *areq; long arights; { register struct vcache *tvc; #ifdef NINTERFACE struct AFSFetchStatus OutStatus; struct AFSCallBack CallBack; #else BBS dummybs, OptionalData; struct BD BDesc; /* Unused, prevent xdr coredumps */ ViceFid bidfid; #endif ViceStatus tstat; struct VenusFid aclfid; register long i, mask; long code; int canLockFid; struct conn *newconn; /* This routine checks that the access bits in a directory permit a particular access to work. It makes use of the fact that GetVStat clears the access information before it stats a directory, and that GetVStat was recently called on the directory in question, either, if this is a file, in the next few lines, or, if this is a directory, when the first parameter to this function was computed. Note that avc's ref count is assumed to be bumped. It should not be otherwise locked. Its parent is assumed to unlocked. */ /* This next used to use different mode bits for owner and others. */ mask = (avc->m.Mode & 0700) >> 6; if (vType(avc) == VDIR) { tvc = avc; aclfid = avc->fid; mask = -1; /* ignore mode bits for dirs */ canLockFid = 0; /* means aclfid is same as avc */ } else { /* possible race: new cache entry between IWalk (setting parent field) and here. In this case, avc->parentVnode is 0, and we don't know who our parent really is. This will get fixed when we fix the stat interface to return parent info. For now, venus doesn't block these operations; they'll fail later. */ if (avc->parentVnode == 0) return 1; /* fail operation later */ aclfid.Cell = avc->fid.Cell; aclfid.Fid.Volume = avc->fid.Fid.Volume; aclfid.Fid.Vnode = avc->parentVnode; aclfid.Fid.Unique = avc->parentUnique; tvc = afs_GetVCache(&aclfid, areq); if (tvc == 0) return 0; mask = fileModeMap[mask]; canLockFid = 1; /* means new fid */ } if ((mask & arights & tvc->anyAccess) == arights) { if (canLockFid) afs_PutVCache(tvc); return 1; } for(i=0;iuid == tvc->randomUid[i]) { if (canLockFid) afs_PutVCache(tvc); return ((mask & arights & tvc->randomAccess[i]) == arights); } } /* If we make it here, we just don't know the answer. */ #ifndef NINTERFACE bidfid.Volume = 0; dummybs.SeqLen = 0; dummybs.MaxSeqLen = 0; dummybs.SeqBody = (char *) 1; /* prevent xdr from allocating space */ OptionalData.MaxSeqLen = 0; OptionalData.SeqLen = 0; OptionalData.SeqBody = (char *) 1; /* prevent xdr malloc */ #endif do { newconn = afs_Conn(&aclfid, areq); #ifdef NINTERFACE if (newconn){ code = AFS_FetchStatus(newconn->id, (struct AFSFid *) &aclfid.Fid, &OutStatus, &CallBack); AFSFetchStToViceSt(&OutStatus, &tstat); AFSCallBackStToViceSt(&CallBack, &tstat); } else code = -1; #else if (newconn) code = RViceFetchP(newconn->id, &aclfid.Fid, &bidfid, FetchNoData, &BDesc, &OptionalData, &dummybs, &tstat); else code = -1; #endif } while (afs_Analyze(newconn, code, &aclfid, areq)); if (code != 0) { if (canLockFid) afs_PutVCache(tvc); return 0; } for(i=0; irandomUid[i] = tvc->randomUid[i+1]; tvc->randomAccess[i] = tvc->randomAccess[i+1]; } tvc->randomUid[CPSIZE-1] = areq->uid; tvc->randomAccess[CPSIZE-1] = tstat.MyAccess; if (canLockFid) afs_PutVCache(tvc); return ((mask & tstat.MyAccess & arights) == arights); } #ifdef NINTERFACE ViceStToAFSStoreSt(ViceStat, AFSStoreStat) struct ViceStatus * ViceStat; struct AFSStoreStatus * AFSStoreStat; { AFSStoreStat->Mask = 0; if (ViceStat->Date != 0) { AFSStoreStat->ClientModTime = ViceStat->Date; AFSStoreStat->Mask |= AFS_SETMODTIME; } if (ViceStat->Owner != 0) { AFSStoreStat->Owner = ViceStat->Owner; AFSStoreStat->Mask |= AFS_SETOWNER; } if (ViceStat->Mode != 0) { AFSStoreStat->UnixModeBits = ViceStat->Mode; AFSStoreStat->Mask |= AFS_SETMODE; } } AFSFetchStToViceSt(AFSFetchStat, ViceStat) struct AFSFetchStatus * AFSFetchStat; struct ViceStatus * ViceStat; { ViceStat->InterfaceVersion = AFSFetchStat->InterfaceVersion; ViceStat->VnodeType = AFSFetchStat->FileType; ViceStat->LinkCount = AFSFetchStat->LinkCount; ViceStat->Length = AFSFetchStat->Length; ViceStat->DataVersion = AFSFetchStat->DataVersion; ViceStat->Author = AFSFetchStat->Author; ViceStat->Owner = AFSFetchStat->Owner; ViceStat->MyAccess = AFSFetchStat->CallerAccess; ViceStat->AnyAccess = AFSFetchStat->AnonymousAccess; ViceStat->Mode = AFSFetchStat->UnixModeBits; ViceStat->Date = AFSFetchStat->ClientModTime; } AFSCallBackStToViceSt(CallBack, ViceStat) struct AFSCallBack * CallBack; struct ViceStatus * ViceStat; { ViceStat->CallBackTime = CallBack->ExpirationTime; } #endif NINTERFACE #]loWG$ h#%#_#_ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:afstest.c 12.7$ */ /* $ACIS:afstest.c 12.7$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/afstest.c,v $ */ #ifndef lint static char *rcsid = "$Header:afstest.c 12.7$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" struct afsop_cell { long hosts[MAXHOSTS]; char cellName[100]; }; char afs_rootVolumeName[64]=""; extern struct rftp_server *afs_rftpServer; extern long afs_reusedFiles; long afs_initState = 0; long afs_setTime = 0; int afs_running = 0; int afs_daemons_running = 0; afs_test_cleanup() { bzero(afs_rootVolumeName, sizeof(afs_rootVolumeName)); afs_initState = 0; afs_setTime = 0; afs_running = 0; afs_daemons_running = 0; } afs_test () { register struct a { long parm; long parm2; long parm3; long parm4; long parm5; long parm6; } *uap = (struct a *)u.u_ap; long code; if (!suser()) { /* exit with u.u_error set to EPERM if not superuser */ u.u_error = EPERM; return; } afs_running = 1; if (uap->parm == AFSOP_START_R) { /* never comes back (R server) */ afs_daemons_running++; osi_Init(); afs_initState = AFSOP_START_CALLBACK; osi_Wakeup(&afs_initState); osi_Invisible(); afs_ResourceInit(); afs_daemons_running--; wakeup(&afs_daemons_running); osi_exit(); } else if (uap->parm == AFSOP_START_CALLBACK) { /* callback server */ afs_daemons_running++; while (afs_initState < AFSOP_START_CALLBACK) osi_Sleep(&afs_initState); afs_initState = AFSOP_START_RFTP; osi_Wakeup(&afs_initState); osi_Invisible(); afs_RCallBackServer(); afs_daemons_running--; wakeup(&afs_daemons_running); osi_exit(); } else if (uap->parm == AFSOP_START_RFTP) { /* rftp server */ afs_daemons_running++; while (afs_initState < AFSOP_START_RFTP) osi_Sleep(&afs_initState); afs_initState = AFSOP_START_AFS; osi_Wakeup(&afs_initState); osi_Invisible(); afs_RFTPInit(); afs_daemons_running--; wakeup(&afs_daemons_running); osi_exit(); } else if (uap->parm == AFSOP_START_AFS) { /* afs daemon */ afs_daemons_running++; while (afs_initState < AFSOP_START_AFS) osi_Sleep(&afs_initState); afs_initState = AFSOP_START_BKG; DInit(20); osi_Wakeup(&afs_initState); osi_Invisible(); afs_Daemon(); afs_daemons_running--; wakeup(&afs_daemons_running); osi_exit(); } else if (uap->parm == AFSOP_START_BKG) { afs_daemons_running++; while (afs_initState < AFSOP_START_BKG) osi_Sleep(&afs_initState); afs_initState = AFSOP_GO; /* start the bkg daemon */ osi_Invisible(); afs_BackgroundDaemon(); afs_daemons_running--; wakeup(&afs_daemons_running); osi_exit(); } else if (uap->parm == AFSOP_ADDCELL) { /* add a cell. Parameter 2 is 8 hosts (in net order), parm 3 is the null-terminated name. Parameter 4 is the length of the name, including the null. Parm 5 is the home cell flag (integer) */ struct afsop_cell tcell; struct cell *tcp; code = copyin(uap->parm2, tcell.hosts, sizeof(tcell.hosts)); if (code) return code; if (uap->parm4 > sizeof(tcell.cellName)) return EFAULT; code = copyin(uap->parm3, tcell.cellName, uap->parm4); if (code) return code; tcp = afs_NewCell(tcell.cellName, tcell.hosts); if (uap->parm5) tcp->states |= CPrimary; /* mark this as primary cell */ return code; } else if (uap->parm == AFSOP_CACHEINIT) { code = afs_CacheInit(uap->parm2, uap->parm3, uap->parm4); return code; } else if (uap->parm == AFSOP_CACHEINODE) { /* do it by inode */ code = afs_InitCacheFile((char *) 0, uap->parm2); return code; } else if (uap->parm == AFSOP_ROOTVOLUME) { long bufferSize; if (uap->parm2) { code = copyinstr(uap->parm2, afs_rootVolumeName, sizeof(afs_rootVolumeName), &bufferSize); afs_rootVolumeName[sizeof(afs_rootVolumeName)-1] = 0; } else code = 0; return code; } else if (uap->parm == AFSOP_CACHEFILE || uap->parm == AFSOP_CACHEINFO || uap->parm == AFSOP_VOLUMEINFO || uap->parm == AFSOP_AFSLOG) { char tbuffer[256]; long bufferSize; code = copyinstr(uap->parm2, tbuffer, 256, &bufferSize); if (code) return code; tbuffer[255] = 0; /* null-terminate the name */ /* we now have the cache dir copied in. Call the cache init routines */ if (uap->parm == AFSOP_CACHEFILE) code = afs_InitCacheFile(tbuffer, 0); else if (uap->parm == AFSOP_CACHEINFO) code = afs_InitCacheInfo(tbuffer); else if (uap->parm == AFSOP_VOLUMEINFO) code = afs_InitVolumeInfo(tbuffer); else if (uap->parm == AFSOP_AFSLOG) code = afs_SetLogFile(tbuffer); return code; } else if (uap->parm == AFSOP_STARTLOG) code = StartLogFile(); else if (uap->parm == AFSOP_ENDLOG) code = EndLogFile(); else if (uap->parm == AFSOP_GO) { /* the generic initialization calls come here. One parameter: should we do the set-time operation on this workstation */ while (afs_initState < AFSOP_GO) osi_Sleep(&afs_initState); afs_initState = 101; afs_setTime = uap->parm2; osi_Wakeup(&afs_initState); printf("found %d cache files.\n", afs_reusedFiles); } else if (uap->parm == AFSOP_CHECKLOCKS) { afs_CheckLocks(); #ifdef AFSDEBMEM osi_Dump(); #endif } return 0; } /* * Initstate in the range 0 < x < 100 are early initialization states. * Initstate of 100 means a AFSOP_START operation has been done. After this, * the cache may be initialized. * Initstate of 101 means a AFSOP_GO operation has been done. This operation * is done after all the cache initialization has been done. * Initstate of 200 means that the volume has been looked up once, possibly * incorrectly. * Initstate of 300 means that the volume has been *successfully* looked up. */ afs_CheckInit() { if (afs_initState <= 100) return ENXIO; /* never finished init phase */ if (afs_initState == 101) { /* init done, wait for afs_daemon */ while (afs_initState < 200) osi_Sleep(&afs_initState); } if (afs_initState == 200) return ETIMEDOUT; /* didn't find root volume */ else return 0; } #]loɁ$ #%#W[#ž N/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:auxinode.h 12.0$ */ /* $ACIS:auxinode.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/auxinode.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidauxinode = "$Header:auxinode.h 12.0$"; #endif /* * Auxilliary include file for vice changes to inodes. */ #ifdef i_gen #define i_vicemagic i_ic.ic_gen #define VICEMAGIC 0x84fa1cb6 #define i_vicep1 i_ic.ic_spare[0] #define i_vicep2 i_ic.ic_spare[1] #define i_vicep3 i_ic.ic_spare[2] #define i_vicep4 i_ic.ic_spare[3] #define di_vicemagic di_ic.ic_gen #define di_vicep1 di_ic.ic_spare[0] #define di_vicep2 di_ic.ic_spare[1] #define di_vicep3 di_ic.ic_spare[2] #define di_vicep4 di_ic.ic_spare[3] #else i_gen #define i_vicemagic i_ic.ic_spare[0] #define VICEMAGIC 0x84fa1cb6 #define i_vicep1 i_ic.ic_spare[1] #define i_vicep2 i_ic.ic_spare[2] #define i_vicep3 i_ic.ic_spare[3] #define i_vicep4 i_ic.ic_spare[4] #define di_vicemagic di_ic.ic_spare[0] #define di_vicep1 di_ic.ic_spare[1] #define di_vicep2 di_ic.ic_spare[2] #define di_vicep3 di_ic.ic_spare[3] #define di_vicep4 di_ic.ic_spare[4] #endif i_gen /* KAZAR-RA */ #define IFILLING 0x1000 /* file currently being filled from network */ #define IFILLWAIT 0x2000 /* someone is waiting for this data */ #define IFILLERR 0x4000 /* an error occurred during the fetch --> set EIO */ #]lo<$ &p#%#_#_  /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:buffer.c 12.5$ */ /* $ACIS:buffer.c 12.5$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/buffer.c,v $ */ #ifndef lint static char *rcsid = "$Header:buffer.c 12.5$"; #endif /* File buffer.c Author Mike Kazar Date Now */ #ifdef ibm032 #include "../h/param.h" #endif ibm032 #include "../h/time.h" #include "../h/kernel.h" #include "../afs/osi.h" #include "../afs/lock.h" #include "../h/buf.h" /* allocate space from Unix buffer pool */ #define USEBUFFER 0 /* number of pages per Unix buffer, when we're using Unix buffer pool */ #define NPB 4 /* page size */ #define PAGESIZE 2048 /* log page size */ #define LOGPS 11 /* page hash table size */ #define PHSIZE 32 /* the pHash macro */ #define pHash(fid) ((fid)[0] & (PHSIZE-1)) struct BufferBlock { struct BufferBlock *next; struct buf *addr; } *BufferList = 0; struct buffer { long fid[5]; /* Unique cache key + i/o addressing */ long page; long accesstime; struct buffer *hashNext; char *data; char lockers; char dirty; char hashIndex; } *Buffers; char *BufferData; static struct lock afs_bufferLock; static struct buffer *phTable[PHSIZE]; /* page hash table */ static struct buffer *LastBuffer; int nbuffers; int timecounter; static int calls=0, ios=0; struct buffer *newslot(); buffer_cleanup() { Buffers=0; BufferData=0; bzero( &afs_bufferLock, sizeof(afs_bufferLock)); bzero(phTable, sizeof(phTable)); LastBuffer=0; nbuffers=0; timecounter=0; calls=0; ios=0; } #ifdef notdef /* we don't use this one */ int DStat (abuffers, acalls, aios) int *abuffers, *acalls, *aios; { *abuffers = nbuffers; *acalls = calls; *aios = ios; } #endif DCleanUp () { #if USEBUFFER struct BufferBlock *tb; int freed = 0; while (BufferList) { tb=BufferList->next; brelse( BufferList->addr ); BufferList = tb; freed++; } #else osi_Free( BufferData, nbuffers * PAGESIZE ); #endif osi_Free( Buffers, nbuffers * sizeof(struct buffer) ); } int DInit (abuffers) int abuffers; { /* Initialize the venus buffer system. */ register int i; register struct buffer *tb; #if USEBUFFER struct buf *tub; /* unix buffer for allocation */ struct BufferBlock *bb; #endif #if USEBUFFER /* round up to next multiple of NPB, since we allocate multiple pages per chunk */ nbuffers = ((abuffers-1) | (NPB-1)) + 1; #else nbuffers = abuffers; #endif Lock_Init(&afs_bufferLock); Buffers = (struct buffer *) osi_Alloc(nbuffers * sizeof(struct buffer)); #if !USEBUFFER BufferData = (char *) osi_Alloc(nbuffers * PAGESIZE); #endif timecounter = 0; LastBuffer = Buffers; for(i=0;ib_un.b_addr; bb->next = BufferList; bb->addr = tub; BufferList = bb; BufferData = (char *) (bb + 1); } #endif /* Fill in each buffer with an empty indication. */ tb = &Buffers[i]; dirp_Zap(tb->fid); tb->accesstime = tb->lockers = 0; #if USEBUFFER tb->data = &BufferData[PAGESIZE * (i&(NPB-1))]; #else tb->data = &BufferData[PAGESIZE*i]; #endif tb->hashIndex = 0; tb->dirty = 0; } return 0; } char *DRead(fid,page) register long *fid; register int page; { /* Read a page from the disk. */ register struct buffer *tb; ObtainWriteLock(&afs_bufferLock); calls++; if (LastBuffer->page == page && dirp_Eq(LastBuffer->fid, fid)) { tb = LastBuffer; tb->accesstime = ++timecounter; tb->lockers++; ReleaseWriteLock(&afs_bufferLock); return tb->data; } for(tb=phTable[pHash(fid)]; tb; tb=tb->hashNext) { if (tb->page == page && dirp_Eq(tb->fid, fid)) { tb->lockers++; tb->accesstime = ++timecounter; LastBuffer = tb; ReleaseWriteLock(&afs_bufferLock); return tb->data; } } /* can't find it */ tb = newslot(fid, page); tb->lockers++; if (!dirp_Read(fid,tb->page,tb->data)) { dirp_Zap(tb->fid); /* disaster */ tb->lockers--; ReleaseWriteLock(&afs_bufferLock); return 0; } ios++; /* Note that findslot sets the page field in the buffer equal to what it is searching for. */ ReleaseWriteLock(&afs_bufferLock); return tb->data; } static FixupBucket(ap) register struct buffer *ap; { register struct buffer **lp, *tp; register int i; /* first try to get it out of its current hash bucket, in which it might not be */ i = ap->hashIndex; lp = &phTable[i]; for(tp = *lp; tp; tp=tp->hashNext) { if (tp == ap) { *lp = tp->hashNext; break; } lp = &tp->hashNext; } /* now figure the new hash bucket */ i = pHash(ap->fid); ap->hashIndex = i; /* remember where we are for deletion */ ap->hashNext = phTable[i]; /* add us to the list */ phTable[i] = ap; } struct buffer *newslot (afid,apage) long *afid, apage; { /* Find a usable buffer slot */ register long i; long lt,pt; register struct buffer *lp, *pp, *tp; lp = 0; /* last non-pure */ pp = 0; /* last pure */ lt = 999999999; pt = 999999999; tp = Buffers; for (i=0;ilockers == 0) { if (tp->dirty) { if (tp->accesstime < lt) { lp = tp; lt = tp->accesstime; } } else if (tp->accesstime < pt) { pp = tp; pt = tp->accesstime; } } } /* If we make it here, the buffer is not in memory. Find an already-used buffer and trash it. If the buffer is dirty, try not to use it. If it must be used, don't forget to write it out first. */ if (pp == 0) { /* There are no unlocked buffers that don't need to be written to the disk. The variable lx gives the index of the buffer to write out to the disk. */ if (lp == 0) Die ("all buffers locked"); if (!dirp_Write(lp->fid,lp->page,lp->data)) Die("writing bogus buffer"); lp->dirty = 0; pp = lp; /* The buffer to use from now on. */ } /* Now fill in the header. */ dirp_Cpy(pp->fid, afid); /* set this */ pp->page = apage; pp->accesstime = ++timecounter; FixupBucket(pp); /* move to the right hash bucket */ LastBuffer = pp; return pp; } DRelease (bp,flag) register struct buffer *bp; int flag; { /* Release a buffer, specifying whether or not the buffer has been modified by the locker. */ register int index; #if USEBUFFER register struct buffer *tp; #endif if (!bp) return; #if USEBUFFER /* look for buffer by scanning Unix buffers for appropriate address */ tp = Buffers; for(index = 0; index < nbuffers; index += NPB, tp += NPB) { if ((long)bp >= (long)tp->data && (long)bp < (long)tp->data + PAGESIZE*NPB) { /* we found the right range */ index += ((long)bp - (long)tp->data) >> LOGPS; break; } } #else index = (((char *)bp)-((char *)BufferData))>>LOGPS; #endif bp = &(Buffers[index]); ObtainWriteLock(&afs_bufferLock); bp->lockers--; if (flag) bp->dirty=1; ReleaseWriteLock(&afs_bufferLock); } DVOffset (ap) register struct buffer *ap; { /* Return the byte within a file represented by a buffer pointer. */ register struct buffer *bp; register int index; #if USEBUFFER register struct buffer *tp; #endif bp=ap; #if USEBUFFER /* look for buffer by scanning Unix buffers for appropriate address */ tp = Buffers; for(index = 0; index < nbuffers; index += NPB, tp += NPB) { if ((long)bp >= (long)tp->data && (long)bp < (long)tp->data + PAGESIZE*NPB) { /* we found the right range */ index += ((long)bp - (long)tp->data) >> LOGPS; break; } } #else index = (((char *)bp)-((char *)BufferData))>>LOGPS; #endif if (index<0 || index >= nbuffers) return -1; bp = &(Buffers[index]); return PAGESIZE*bp->page+((char *)ap)-bp->data; } DZap (fid) register long *fid; { /* Destroy all buffers pertaining to a particular fid. */ register struct buffer *tb; ObtainWriteLock(&afs_bufferLock); for(tb=phTable[pHash(fid)]; tb; tb=tb->hashNext) if (dirp_Eq(tb->fid,fid)) { dirp_Zap(tb->fid); tb->dirty = 0; } ReleaseWriteLock(&afs_bufferLock); } #ifdef notdef /* we don't seem to use this one */ DFlushEntry (fid) register long *fid; { /* Flush pages modified by one entry. */ register struct buffer *tb; ObtainWriteLock(&afs_bufferLock); for(tb = phTable[pHash(fid)]; tb; tb=tb->hashNext) if (tb->dirty && dirp_Eq(tb->fid, fid)) { if (dirp_Write(tb->fid, tb->page, tb->data)) tb->dirty = 0; } ReleaseWriteLock(&afs_bufferLock); } #endif DFlush () { /* Flush all the modified buffers. */ register int i; register struct buffer *tb; tb = Buffers; ObtainWriteLock(&afs_bufferLock); for(i=0;idirty && dirp_Write(tb->fid, tb->page, tb->data)) tb->dirty = 0; /* Clear the dirty flag */ } ReleaseWriteLock(&afs_bufferLock); } char *DNew (fid,page) register int page; register long *fid; { /* Same as read, only do *not* even try to read the page, since it probably doesn't exist. */ register struct buffer *tb; ObtainWriteLock(&afs_bufferLock); if ((tb = newslot(fid,page)) == 0) { ReleaseWriteLock(&afs_bufferLock); return 0; } tb->lockers++; ReleaseWriteLock(&afs_bufferLock); return tb->data; } #]loU$ #%#_#_  P ` p*l6/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:cache.c 12.3$ */ /* $ACIS:cache.c 12.3$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/cache.c,v $ */ #ifndef lint static char *rcsid = "$Header:cache.c 12.3$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../h/stat.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" extern char *afs_GetMariner(); extern struct vfs *afs_globalVFS; extern struct rftp_server *afs_rftpServer; /* rftp server for afs */ /* convenient release macro for use when afs_PutDCache would cause deadlock on afs_xdcache lock */ #define lockedPutDCache(ad) ((ad)->refCount--) struct osi_dev cacheDev; /* cache device */ struct lock afs_xvcache; /* lock: alloc new stat cache entries */ long afs_mariner = 0; struct lock afs_xdcache; /* lock: alloc new disk cache entries */ struct lock afs_xvcb; static long cacheCounter=0; /* number of disk cache entries */ static long rftpSession = 1; /* rftp session counter */ static long cacheInfoModTime=0; struct vcache *freeVCList = 0; /* free list for stat cache entries */ short freeDCList = NULLIDX; /* free list for disk cache entries */ long freeDCCount = 0; /* count of elts in freeDCList */ struct dcache *freeDSList = 0; /* free list for disk slots */ long cacheInode; long volumeInode; struct afs_q VLRU, DLRU; short afs_dvhashTable[DVHASHSIZE]; /*Data cache hash table*/ short afs_dchashTable[DCHASHSIZE]; /* Data cache hash table*/ struct dcache **afs_indexTable; /*pointers to dcache entries */ long *afs_indexTimes; /*Dcache entry Access times */ char *afs_indexFlags; /* only one: is there data there? */ long afs_indexCounter=0; /* fake time for marking index entries */ long afs_cacheFiles; /* size of afs_indexTable */ long afs_cacheBlocks; /* 1K blocks in cache */ long afs_origCacheBlocks; /* from boot */ long afs_cacheStats; /* stat entries in cache */ struct vcache *afs_vhashTable[VCSIZE]; /* stat cache hash table */ static struct vcache *afs_vcache_array; static struct dcache *afs_dcache_array; long afs_blocksUsed; /* number of blocks in use */ long afs_reusedFiles = 0; /* number of files reused */ /* Initialization order is important. Must first call afs_CacheInit. Next must call cache file and volume file initialization routines. Next must call individual cache entry initialization routines. In this routine, astatSize is the number of stat cache (vnode) entries to allocate. afiles is the number of disk files to allocate to the cache ablocks is the max number of 1024 byte units that all of the files in the cache may occupy This routine should only be called at initialization time, since it reclaims no resources and doesn't sufficiently synchronize with other processes. */ #define DDSIZE 100 /* max # of struct dcache's resident at any time */ cache_cleanup() { bzero(&cacheDev, sizeof(cacheDev)); bzero(&afs_xvcache,sizeof(afs_xvcache)); afs_mariner = 0; bzero(&afs_xdcache,sizeof(afs_xdcache)); bzero(&afs_xvcb, sizeof(afs_xvcb)); cacheCounter=0; rftpSession = 1; cacheInfoModTime=0; freeVCList = 0; freeDCList = NULLIDX; freeDCCount = 0; freeDSList = 0; long cacheInode=0; long volumeInode=0; bzero(&VLRU, sizeof(VLRU)); bzero(&DLRU, sizeof(DLRU)); bzero(afs_dvhashTable, sizeof(afs_dvhashTable)); bzero(afs_dchashTable, sizeof(afs_dchashTable)); afs_indexTable=0; afs_indexTimes=0; afs_indexFlags=0; afs_indexCounter=0; afs_cacheFiles=0; afs_cacheBlocks=0; afs_origCacheBlocks=0; afs_cacheStats=0; bzero(afs_vhashTable, sizeof(afs_vhashTable)); afs_vcache_array = 0; afs_dcache_array = 0; afs_blocksUsed=0; long afs_reusedFiles = 0; } afs_CheckSize(aextra) register long aextra; { register long counter; counter = 0; if (afs_cacheBlocks > afs_blocksUsed + aextra) return 0; aextra += 300; /* do a bunch extra */ while (afs_cacheBlocks <= afs_blocksUsed + aextra) { /* we're using more than we should */ ObtainWriteLock(&afs_xdcache); afs_GetDownD(5, 1); /* need space */ ReleaseWriteLock(&afs_xdcache); if (++counter > 100) break; /* safety? */ } return 0; } /* make adjustment for the new size in the disk cache entry */ afs_AdjustSize(adc, anewSize) register struct dcache *adc; register long anewSize; { register long oldSize; oldSize = adc->f.chunkBytes; adc->f.chunkBytes = anewSize; adc->f.states |= DEntryMod; oldSize = ((oldSize-1)|1023)+1; /* round up both sizes */ anewSize = ((anewSize-1)|1023)+1; afs_blocksUsed += ((anewSize - oldSize) >> 10); } afs_FreeCache() { register long i; /* first free the hash chains */ for (i=0; i < VCSIZE; i++) { afs_vhashTable[i] = 0; } /* free the memory */ osi_Free(afs_vcache_array,afs_cacheStats * sizeof(struct vcache)); afs_vcache_array = 0; osi_Free(afs_dcache_array,DDSIZE * sizeof(struct dcache)); afs_dcache_array = 0; osi_Free(afs_indexTable, afs_cacheFiles * sizeof(struct dcache *)); afs_indexTable = 0; osi_Free(afs_indexTimes, afs_cacheFiles * sizeof(long)); afs_indexTimes = 0; osi_Free(afs_indexFlags, afs_cacheFiles * sizeof(char)); afs_indexFlags = 0; afs_cacheFiles = 0; afs_cacheStats = 0; afs_origCacheBlocks = afs_cacheBlocks = 0; afs_blocksUsed = 0; } afs_CacheInit(astatSize, afiles, ablocks) long afiles; long astatSize, ablocks; { register struct vcache *tvp; register struct dcache *tdp; register long i; printf("Starting afs cache scan..."); Lock_Init(&afs_xvcache); Lock_Init(&afs_xdcache); Lock_Init(&afs_xvcb); /* initialize hash tables */ for(i=0;i MAXATONCE) anumber = MAXATONCE; /* all we can do */ /* decrement anumber first for all dudes in free list */ if (!aneedSpace) { anumber -= freeDCCount; if (anumber <= 0) return; /* enough already free */ } /* find oldest entries for reclamation */ victimPtr = 0; maxVictim = 0; /* select victims from access time array */ for(i=0;i < afs_cacheFiles; i++) { /* check to see if data not yet written, or if already in free list */ if (afs_indexFlags[i] & (IFDataMod | IFFree)) continue; tdc = afs_indexTable[i]; vtime = afs_indexTimes[i]; if (aneedSpace) { /* if we need data, we may have whole cache in active region */ if (tdc) { /* active guy, but may be necessary to use */ if (tdc->refCount != 0) continue; /* can not use this one */ vtime = afs_indexCounter+1; /* try not to use this guy */ } else { /* only on disk, don't bother with guys sans data */ if ((afs_indexFlags[i] & IFEverUsed) == 0) continue; } } else { /* if we only need slots, we need not consider the active files at all */ if (tdc) continue; /* don't reclaim ones in use */ } if (victimPtr < anumber) { /* if there's at least one free victim slot left */ victims[victimPtr] = i; victimTimes[victimPtr] = vtime; if (vtime > maxVictim) maxVictim = vtime; victimPtr++; } else if (vtime < maxVictim) { /* we're older than youngest victim, so we replace at least one victim */ /* find youngest (largest LRU) victim */ for(j=0;jrefCount--; /* put it back */ anumber--; } return; } /* this routine must be called with the afs_xdcache lock held (in write mode) */ afs_FlushDCache(adc) register struct dcache *adc; { register struct dcache *udc; register long i; register short us; struct osi_file *tfile; struct dcache tmpdc; /* we know this guy's in the LRUQ. We'll move dude into DCQ below */ afs_dp("flushing %x (slot %d) bytes: %d\n", adc, adc->index, adc->f.chunkBytes); DZap(&adc->f.inode); /* if this guy is in the hash table, pull him out */ if (adc->f.fid.Fid.Volume != 0) { /* remove entry from first hash chains */ i = DCHash(&adc->f.fid, adc->f.chunk); us = afs_dchashTable[i]; if (us == adc->index) { /* first dude in the list */ afs_dchashTable[i] = adc->f.hcNextp; } else { /* somewhere on the chain */ while (us != NULLIDX) { /* * Supply a temporary dcache structure to use in looking up the * next slot in case it's not already in memory- we're here because * there's a shortage of them! */ udc = afs_GetDSlot(us, &tmpdc); if (udc->f.hcNextp == adc->index) { /* found item pointing at the one to delete */ udc->f.hcNextp = adc->f.hcNextp; afs_WriteDCache(udc, 1); lockedPutDCache(udc); /* fix refCount*/ break; } us = udc->f.hcNextp; lockedPutDCache(udc); } if (us == NULLIDX) panic("dcache hc"); } /* remove entry from *other* hash chain */ i = DVHash(&adc->f.fid); us = afs_dvhashTable[i]; if (us == adc->index) { /* first dude in the list */ afs_dvhashTable[i] = adc->f.hvNextp; } else { /* somewhere on the chain */ while (us != NULLIDX) { /* * Same as above: don't ask the slot lookup to grab an in-memory * dcache structure - we can't spare one. */ udc = afs_GetDSlot(us, &tmpdc); if (udc->f.hvNextp == adc->index) { /* found item pointing at the one to delete */ udc->f.hvNextp = adc->f.hvNextp; afs_WriteDCache(udc, 1); lockedPutDCache(udc); /* fix refCount */ break; } us = udc->f.hvNextp; lockedPutDCache(udc); } if (us == NULLIDX) panic("dcache hv"); } } /* format the entry to look like it has no associated file any more */ adc->f.fid.Fid.Volume = 0; /* invalid */ /* free its space */ tfile = osi_UFSOpen(&cacheDev, adc->f.inode); if (!tfile) panic("flushdcache truncate"); osi_Truncate(tfile, 0); afs_AdjustSize(adc, 0); /* fix up size */ osi_Close(tfile); /* finally put the entry in the free list */ adc->f.hvNextp = freeDCList; freeDCList = adc->index; freeDCCount++; /* dude will be used by next time appears in afs_indexTable */ afs_indexFlags[adc->index] |= (IFFree|IFEverUsed); adc->f.states |= DEntryMod; } afs_GetDownDSlot(anumber) int anumber; { register struct afs_q *tq, *nq; register struct dcache *tdc; register long ix; if (CheckLock(&afs_xdcache) != -1) panic("getdowndslot nolock"); /* decrement anumber first for all dudes in free list */ for(tdc = freeDSList; tdc; tdc = (struct dcache *)tdc->lruq.next) anumber--; if (anumber <= 0) return; /* enough already free */ for(tq = DLRU.prev; tq != &DLRU && anumber > 0; tq = nq) { tdc = (struct dcache *) tq; /* q is first elt in dcache entry */ nq = QPrev(tq); /* in case we remove it */ if (tdc->refCount == 0) { if ((ix=tdc->index) == NULLIDX) panic("getdowndslot"); /* pull the entry out of the lruq and put it on the free list */ QRemove(&tdc->lruq); /* write-through if modified */ if (tdc->f.states & DEntryMod) { tdc->f.states &= ~DEntryMod; afs_WriteDCache(tdc, 1); } /* finally put the entry in the free list */ afs_indexTable[ix] = (struct dcache *) 0; afs_indexTimes[ix] = afs_indexCounter++; tdc->index = NULLIDX; tdc->lruq.next = (struct afs_q *) freeDSList; freeDSList = tdc; anumber--; } } } /* This routine is responsible for moving at least one, (up to anumber) entries from the LRU queue to the free queue. Anumber is just a hint, but this routine must (if possible) move at least one entry, or its caller will panic. This routine must be called with afs_xvcache write-locked. */ afs_GetDownV(anumber) int anumber; { register struct afs_q *tq; struct afs_q *uq; register struct vcache *tvc; if (CheckLock(&afs_xvcache) != -1) panic("getdownv lock"); /* decrement anumber first for all dudes in free list */ for(tvc = freeVCList; tvc; tvc = (struct vcache *) (tvc->lruq.next)) anumber--; if (anumber <= 0) return; /* enough already free */ for(tq = VLRU.prev; tq != &VLRU && anumber > 0; tq = uq) { tvc = QTOV(tq); uq = QPrev(tq); if (tvc->vrefCount == 0) { afs_FlushVCache(tvc); anumber--; } } return; } /* this routine must be called with the afs_xvcache lock held for writing */ afs_FlushVCache(avc) register struct vcache *avc; { register long i; register struct vcache **uvc, *wvc; if (avc->vrefCount != 0) return EBUSY; /* pull the entry out of the lruq and put it on the free list */ QRemove(&avc->lruq); /* remove entry from the hash chain */ i = VCHash(&avc->fid); uvc = &afs_vhashTable[i]; for(wvc = *uvc; wvc; uvc = &wvc->hnext, wvc = *uvc) { if (avc == wvc) { *uvc = avc->hnext; break; } } if (!wvc) panic("flushvcache"); /* not in correct hash bucket */ if (avc->mvid) osi_Free(avc->mvid, sizeof(struct VenusFid)); if (avc->linkData) osi_Free(avc->linkData, strlen(avc->linkData)+1); /* put the entry in the free list and free the callback */ avc->lruq.next = (struct afs_q *) freeVCList; freeVCList = avc; if ((avc->states & CRO) == 0 && avc->callback) { afs_QueueVCB(&avc->fid); } return 0; } afs_QueueVCB(afid) register struct VenusFid *afid; { register struct server *ts; register struct conn *tc; struct volume *tv; register long code; register struct ViceFid *tfid; int foundFlag; struct vrequest treq; #ifdef NINTERFACE struct AFSCallBack CallBacks_Array[1]; #endif tv = afs_GetVolume(afid, (struct vrequest *)0); if (!tv) return EINVAL; /* otherwise, serverHost[0] is the server of interest */ ts = tv->serverHost[0]; afs_PutVolume(tv); if (!ts) return EINVAL; /* now obtain vcb lock, purge queued delete callbacks if need be, and add this one, if it isn't already in the list */ ObtainWriteLock(&afs_xvcb); if (ts->vcbCount >= VCBS) { afs_InitReq(&treq, &osi_cred); do { tc = afs_ConnByHost(ts, ts->cell->cell, &treq, 0); #ifdef NINTERFACE if (tc) code = AFS_GiveUpCallBacks(tc->id, (struct AFSFid *) ts->vcbs, ts->vcbCount, CallBacks_Array, ts->vcbCount); #else if (tc) code = RViceRemoveCallBackBulk(tc->id, ts->vcbs, ts->vcbCount); #endif else code = -1; } while(afs_Analyze(tc, code, 0, &treq)); /* code doesn't matter, server may have done the work */ ts->vcbCount = 0; } foundFlag = 0; tfid = ts->vcbs; for(code = 0; code < ts->vcbCount; tfid++, code++) { if (afid->Fid.Volume == tfid->Volume && afid->Fid.Unique == tfid->Unique && afid->Fid.Vnode == tfid->Vnode) { foundFlag = 1; break; } } if (!foundFlag) ts->vcbs[ts->vcbCount++] = afid->Fid; ReleaseWriteLock(&afs_xvcb); } afs_RemoveVCB(afid) register struct VenusFid *afid; { register int i; struct volume *tv; register struct server *ts; register struct ViceFid *tfid; tv = afs_GetVolume(afid, 0); if (!tv) return EINVAL; /* otherwise, serverHost[0] is the server of interest */ ts = tv->serverHost[0]; afs_PutVolume(tv); if (!ts) return EINVAL; ObtainWriteLock(&afs_xvcb); tfid = ts->vcbs; for(i=0; ivcbCount; i++,tfid++) { if (afid->Fid.Volume == tfid->Volume && afid->Fid.Unique == tfid->Unique && afid->Fid.Vnode == tfid->Vnode) { tfid->Volume = 0; break; } } ReleaseWriteLock(&afs_xvcb); } /* This routine is responsible for allocating a new cache entry from the free list. It formats the cache entry and inserts it into the appropriate hash tables. It must be called with afs_xvcache write-locked so as to prevent several processes from trying to create a new cache entry simultaneously. The afid parameter is the file id of the file whose cache entry is being created. */ struct vcache *afs_NewVCache(afid, ahost) long ahost; /* host to create callback from */ register struct VenusFid *afid; { register struct vcache *tvc; register long i; /* pull out a free cache entry */ if (!freeVCList) afs_GetDownV(5); if (!freeVCList) { /* none free, making one is better than a panic */ tvc = (struct vcache *) osi_Alloc(sizeof (struct vcache)); } else { tvc = freeVCList; /* take from free list */ freeVCList = (struct vcache *) (tvc->lruq.next); } bzero(&tvc->v, sizeof(struct vnode)); tvc->parentVnode = 0; tvc->mvid = (struct VenusFid *) 0; tvc->linkData = (char *) 0; tvc->cbExpires = 0; tvc->opens = 0; tvc->execsOrWriters = 0; tvc->flockCount = 0; tvc->anyAccess = 0; tvc->states = 0; tvc->fid = *afid; tvc->vrefCount = 1; /* us */ i = VCHash(afid); tvc->hnext = afs_vhashTable[i]; afs_vhashTable[i] = tvc; QAdd(&VLRU, &tvc->lruq); /* put in lruq */ Lock_Init(&tvc->lock); for(i=0;irandomUid[i] = -1; tvc->callback = ahost; /* to minimize chance that clear request is lost */ tvc->chunkShift = 30; /* initialize vnode data, note vrefCount is v.v_count */ tvc->v.v_op = afs_ops; if (afid->Fid.Vnode == 1 && afid->Fid.Unique == 1) tvc->mvstat = 2; else tvc->mvstat = 0; if (afs_globalVFS == (struct vfs *) 0) panic("afs globalvfs"); vSetVfsp(tvc, afs_globalVFS); vSetType(tvc, VREG); #ifdef vax tvc->v.g_dev = afs_globalVFS->vfs_data->m_dev; #endif return tvc; } afs_KeepFlocksAlive() { register struct vcache *tvc; register int i; register struct conn *tc; register long code; struct vrequest treq; afs_InitReq(&treq, &osi_cred); ObtainWriteLock(&afs_xvcache); for(i=0;ihnext) { /* if this entry has an flock, send a keep-alive call out */ if (tvc->flockCount != 0) { /* what we should probably do is bump the vrefCount count, release the xvcache lock, lock the entry, and then make the call, undoing all of this later, but perhaps that's overdoing things a bit. Nevertheless, this does hold the xvcache lock for quite a while, which is almost certainly an error */ tvc->vrefCount++; ReleaseWriteLock(&afs_xvcache); ObtainWriteLock(&tvc->lock); do { tc = afs_Conn(&tvc->fid, &treq); #ifdef NINTERFACE if (tc) code = AFS_ExtendLock(tc->id, &tvc->fid.Fid); #else if (tc) code = RViceExtendLock(tc->id, &tvc->fid.Fid); #endif else code = -1; } while(afs_Analyze(tc, code, &tvc->fid, &treq)); ReleaseWriteLock(&tvc->lock); ObtainWriteLock(&afs_xvcache); tvc->vrefCount--; /* our tvc ptr is still good until now */ } } } ReleaseWriteLock(&afs_xvcache); } /* make sure a cache entry is up-to-date, status-wise */ int afs_VerifyVCache(avc, areq) register struct vrequest *areq; register struct vcache *avc; { register struct vcache *tvc; ObtainReadLock(&avc->lock); /* first convert an expired callback into a non-callback */ if (avc->callback && avc->cbExpires <= osi_Time()) avc->callback = 0; /* check if we're all done */ if ((avc->states & CStatd) && ((avc->states & CRO) || avc->callback)) { ReleaseReadLock(&avc->lock); return 0; } ReleaseReadLock(&avc->lock); /* otherwise we must fetch the status info */ tvc = afs_GetVCache(&avc->fid, areq); if (!tvc) return ENOENT; afs_PutVCache(tvc); /* put back; caller has already incremented vrefCount */ return 0; } /* This function takes a fid and a vrequest structure, and is responsible for storing the status information *only* back to the server. This routine must be called with a read lock held on the item */ afs_WriteVCache(avc, astatus, areq) register struct vcache *avc; register struct ViceStatus *astatus; struct vrequest *areq; { register long code; register struct conn *tc; #ifdef NINTERFACE struct AFSStoreStatus InStatus; struct AFSFetchStatus OutStatus; #else struct BBS optData, accessList; struct BD bulk; /* store the file */ optData.SeqLen = optData.MaxSeqLen = 0; optData.SeqBody = (char *) 1; accessList.SeqLen = accessList.MaxSeqLen = 0; accessList.SeqBody = (char *) 1; #endif do { tc = afs_Conn(&avc->fid, areq); if (tc) { #ifdef NINTERFACE ViceStToAFSStoreSt(astatus, &InStatus); code = AFS_StoreStatus(tc->id, (struct AFSFid *) &avc->fid.Fid, &InStatus, &OutStatus); AFSFetchStToViceSt(&OutStatus, astatus); #else code = RViceStoreP(tc->id, &avc->fid.Fid, StoreStatus, &accessList, &optData, &bulk, astatus, astatus->Length); #endif } else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); if (code == 0) { /* success, do the changes locally */ afs_SimpleVStat(avc, astatus); /* now update the date, too. SimpleVStat didn't do this, since it thought we were doing this after fetching new status over a file being written. */ avc->m.Date = astatus->Date; } else { /* failure, set up to check with server next time */ avc->states &= ~CStatd; /* turn off stat valid flag */ } return code; } /* This function takes a file id and a Venus request structure, and is responsible for fetching the status information associated with the file. The file is identified by afid. The user whose authentication tokens will be used is specified by areq. The cache entry is returned with an increased vrefCount field. The entry must be discarded by calling afs_PutVCache when you are through using the pointer to the cache entry. You should not hold any locks when calling this function, except locks on other vcache entries. If you lock more than one vcache entry simultaneously, you should lock them in this order: 1. Lock all files first, then directories. 2. Within a particular type, lock entries in Fid.Vnode order. This locking hierarchy is convenient because it allows locking of a parent dir cache entry, given a file (to check its access control list). It also allows renames to be handled easily by locking directories in a constant order. */ struct vcache *afs_GetVCache(afid, areq) register struct VenusFid *afid; struct vrequest *areq; { register long code, i; register struct conn *tc; register struct vcache *tvc; #ifdef NINTERFACE struct AFSFetchStatus OutStatus; struct AFSCallBack CallBack; #else struct BBS optData, accessList; struct ViceFid bidfid; struct BD bulk; #endif struct volume *tvp; struct ViceStatus status; ObtainWriteLock(&afs_xvcache); i = VCHash(afid); for(tvc = afs_vhashTable[i]; tvc; tvc = tvc->hnext) { if (tvc->fid.Fid.Unique == afid->Fid.Unique && tvc->fid.Fid.Volume == afid->Fid.Volume && tvc->fid.Cell == afid->Cell && tvc->fid.Fid.Vnode == afid->Fid.Vnode) { break; } } if (!tvc) { /* no cache entry, better grab one */ tvc = afs_NewVCache(afid, 0); } else { tvc->vrefCount++; QRemove(&tvc->lruq); /* move to lruq head */ QAdd(&VLRU, &tvc->lruq); } ReleaseWriteLock(&afs_xvcache); ObtainReadLock(&tvc->lock); /* first convert an expired callback into a non-callback */ if (tvc->callback && tvc->cbExpires <= osi_Time()) tvc->callback = 0; /* check if we're all done */ if ((tvc->states & CStatd) && ((tvc->states & CRO) || tvc->callback)) { ReleaseReadLock(&tvc->lock); return tvc; } ReleaseReadLock(&tvc->lock); ObtainWriteLock(&tvc->lock); for(i=0;irandomUid[i] = -1; tvp = afs_GetVolume(afid, areq); /* copy useful per-volume info */ if (tvp) { if (tvp->states & VRO) tvc->states |= CRO; /* now copy ".." entry back out of volume structure, if necessary */ if (tvc->mvstat == 2 && tvp->dotdot.Fid.Volume != 0) { if (!tvc->mvid) tvc->mvid = (struct VenusFid *) osi_Alloc(sizeof(struct VenusFid)); *tvc->mvid = tvp->dotdot; } afs_PutVolume(tvp); } /* stat the file */ #ifndef NINTERFACE optData.SeqLen = optData.MaxSeqLen = 0; optData.SeqBody = (char *) 1; accessList.SeqLen = accessList.MaxSeqLen = 0; accessList.SeqBody = (char *) 1; bidfid.Volume = 0; #endif afs_RemoveVCB(afid); do { tc = afs_Conn(afid, areq); if (tc) { tvc->callback = tc->server->host; #ifdef NINTERFACE i = osi_Time(); code = AFS_FetchStatus(tc->id, (struct AFSFid *) &afid->Fid, &OutStatus, &CallBack); AFSFetchStToViceSt(&OutStatus, &status); AFSCallBackStToViceSt(&CallBack, &status); status.CallBackTime += i; #else code = RViceFetchP(tc->id, &afid->Fid, &bidfid, FetchNoData, &bulk, &accessList, &optData, &status); #endif if (code == 0 && status.CallBackTime != 0) { tvc->cbExpires = status.CallBackTime; } else tvc->callback = 0; } else code = -1; } while (afs_Analyze(tc, code, afid, areq)); if (code) { ReleaseWriteLock(&tvc->lock); ObtainWriteLock(&afs_xvcache); tvc->vrefCount--; ReleaseWriteLock(&afs_xvcache); return (struct vcache *) 0; } tvc->states |= CStatd; afs_ProcessVStat(tvc, &status); ReleaseWriteLock(&tvc->lock); return tvc; } /* This function is called to decrement the reference count on a cache entry. */ afs_PutVCache(avc) register struct vcache *avc; { ObtainWriteLock(&afs_xvcache); /* can we use read lock here? */ avc->vrefCount--; ReleaseWriteLock(&afs_xvcache); } /* find a vcache entry. Must be called with the afs_xvcache lock at least held at read level. */ struct vcache *afs_FindVCache(afid) register struct VenusFid *afid; { register struct vcache *tvc; register long i; i = VCHash(afid); for(tvc = afs_vhashTable[i]; tvc; tvc = tvc->hnext) { if (tvc->fid.Fid.Unique == afid->Fid.Unique && tvc->fid.Fid.Volume == afid->Fid.Volume && tvc->fid.Cell == afid->Cell && tvc->fid.Fid.Vnode == afid->Fid.Vnode) { break; } } if (tvc) { tvc->vrefCount++; QRemove(&tvc->lruq); QAdd(&VLRU, &tvc->lruq); } return tvc; } /* This function is called to decrement the reference count on a disk cache entry */ afs_PutDCache(ad) register struct dcache *ad; { ObtainWriteLock(&afs_xdcache); if (ad->refCount <= 0) panic("putdcache"); --ad->refCount; ReleaseWriteLock(&afs_xdcache); return 0; } /* try to discard all data associated with this file from the cache */ afs_TryToSmush(avc) register struct vcache *avc; { register struct dcache *tdc; register int index; tdc = afs_FindDCache(avc, 0); if (tdc) { index = tdc->index; ObtainWriteLock(&afs_xdcache); lockedPutDCache(tdc); /* undo FindDCache's increment */ /* if data is back on server, and refCount is 0 then we are only user of this dude, and we can discard it */ afs_dp("Considering smushing %x\n", avc); if ((afs_indexFlags[index] & IFDataMod) == 0 && tdc->refCount == 0) { /* can discard this dude, for sure */ afs_FlushDCache(tdc); afs_dp("Smushed %x\n", avc); } ReleaseWriteLock(&afs_xdcache); } } struct dcache *afs_FindDCache(avc, abyte) register struct vcache *avc; /*Held*/ long abyte; { long chunk; register long i, index; register struct dcache *tdc; chunk = (abyte >> avc->chunkShift); #ifdef notdef /* compute but don't use yet */ offset = abyte & ((1<chunkShift)-1); #endif /* * Hash on the [fid, chunk] and get the corresponding dcache index after * write-locking the dcache. */ i = DCHash(&avc->fid, chunk); ObtainWriteLock(&afs_xdcache); for(index = afs_dchashTable[i]; index != NULLIDX;) { tdc = afs_GetDSlot(index, (struct dcache *)0); if (!FidCmp(&tdc->f.fid, &avc->fid) && chunk == tdc->f.chunk) { break; /* leaving refCount high for caller */ } index = tdc->f.hcNextp; lockedPutDCache(tdc); } ReleaseWriteLock(&afs_xdcache); if (index != NULLIDX) { afs_indexTimes[tdc->index] = afs_indexCounter++; return tdc; } else return (struct dcache *) 0; } /* routine called on writes; tell people waiting for data that more has arrived */ static int CacheWriteProc(afile, acode) register struct osi_file *afile; register long acode; { register struct dcache *tdc; tdc = (struct dcache *) osi_GetFileRock(afile); if (acode >= 0) { tdc->validPos += acode; } if (tdc->f.states & DWaiting) { tdc->f.states &= ~DWaiting; osi_Wakeup(&tdc->validPos); } } /* This function is called to obtain a reference to data stored in the disk cache. Passed in are an unlocked vcache entry, the byte position in the file desired and a Venus request structure identifying the requesting user. This function is responsible for locating a chunk of data containing the desired byte and returning a reference to the disk cache entry, with its reference count incremented. In addition, *aoffset is set to the offset within the chunk where the request byte resides, and *alen is set to the number of bytes of data after the desired byte (including the desired byte) which can be read from this chunk. Flags are 1->set locks, 2->return after creating entry. */ struct dcache *afs_GetDCache(avc, abyte, areq, aoffset, alen, aflags) register struct vcache *avc; /*Held*/ long abyte; int aflags; /* should we set locks? */ long *aoffset, *alen; /*Return values*/ register struct vrequest *areq; { register long i, code; char *piggyBank; int setLocks; long chunk; long localSession; long index; struct BD bdesc; struct BBS optData, dummyBS; #ifdef NINTERFACE long Segment = 0; /* Not used yet */ struct AFSFetchStatus OutStatus; struct AFSCallBack CallBack; #else struct ViceFid bidFid; #endif register struct dcache *tdc; struct ViceStatus vstat; struct osi_file *file; struct rftp_conn *rftpHandle; register struct conn *tc; /* * Determine the chunk number and offset within the chunk corresponding to the * desired byte. */ chunk = (abyte >> avc->chunkShift); #ifdef notdef /* don't really compute until know how to use */ offset = abyte & ((1<chunkShift)-1); #endif /* * Hash on the [fid, chunk] and get the corresponding dcache index after * write-locking the dcache. */ i = DCHash(&avc->fid, chunk); setLocks = aflags & 1; ObtainWriteLock(&afs_xdcache); for(index = afs_dchashTable[i]; index != NULLIDX;) { tdc = afs_GetDSlot(index, (struct dcache *)0); if (!FidCmp(&tdc->f.fid, &avc->fid) && chunk == tdc->f.chunk) { ReleaseWriteLock(&afs_xdcache); break; /* leaving refCount high for caller */ } index = tdc->f.hcNextp; lockedPutDCache(tdc); } /* * If we didn't find the entry, we'll create one. */ if (index == NULLIDX) { afs_dp("getdcache failed to find %x.%d\n", avc, chunk); if (freeDCList == NULLIDX) afs_GetDownD(5, 0); /* just need slots */ if (freeDCList == NULLIDX) panic("getdcache"); afs_indexFlags[freeDCList] &= ~IFFree; tdc = afs_GetDSlot(freeDCList, 0); freeDCList = tdc->f.hvNextp; freeDCCount--; /* * Fill in the newly-allocated dcache record. */ tdc->f.fid = avc->fid; tdc->f.versionNo = -1; /* invalid value */ tdc->f.chunk = chunk; if (tdc->lruq.prev == &tdc->lruq) panic("lruq 1"); /* now add to the two hash chains */ tdc->f.hcNextp = afs_dchashTable[i]; /* i still set from above DCHash call */ afs_dchashTable[i] = tdc->index; i = DVHash(&avc->fid); tdc->f.hvNextp = afs_dvhashTable[i]; afs_dvhashTable[i] = tdc->index; tdc->f.states = DEntryMod; ReleaseWriteLock(&afs_xdcache); } /* here we check for 0 length fetch */ if ((chunk << avc->chunkShift) >= avc->m.Length) { /* no data in file to read at this position */ if (avc->m.DataVersion != tdc->f.versionNo) { if (setLocks) ObtainWriteLock(&avc->lock); file = osi_UFSOpen(&cacheDev, tdc->f.inode); if (!file) panic("getdcache open0"); osi_Truncate(file, 0); afs_AdjustSize(tdc, 0); osi_Close(file); tdc->f.versionNo = avc->m.DataVersion; tdc->f.states |= DEntryMod; if (setLocks) ReleaseWriteLock(&avc->lock); afs_dp("faking 0 byte entry\n"); } } /* * Here we have the unlocked entry in tdc, with its refCount incremented. * We must read in the whole chunk iff the version number doesn't match. */ if (aflags & 2) { /* don't need data, just a unique dcache entry */ afs_indexTimes[tdc->index] = afs_indexCounter++; return tdc; /* check if we're done */ } if (setLocks) ObtainReadLock(&avc->lock); if (avc->m.DataVersion != tdc->f.versionNo) { if (setLocks) { ReleaseReadLock(&avc->lock); ObtainWriteLock(&avc->lock); } /* watch for standard race condition */ if (avc->m.DataVersion == tdc->f.versionNo) { if (setLocks) ReleaseWriteLock(&avc->lock); goto done; } if (avc->m.Length > tdc->f.chunkBytes) { /* pre-reserve space for file */ afs_AdjustSize(tdc, avc->m.Length); /* changes chunkBytes */ } if (afs_mariner) afs_MarinerLog("fetch$Fetching", avc); /* right now, we only have one tool, and it's a hammer. So, we fetch the whole file. */ DZap(&tdc->f.inode); /* pages in cache may be old */ file = osi_UFSOpen(&cacheDev, tdc->f.inode); if (!file) panic("getdcache open"); osi_SetFileProc(file, CacheWriteProc); osi_SetFileRock(file, (char *) tdc); piggyBank = osi_AllocSendSpace(); afs_RemoveVCB(&avc->fid); tdc->f.states |= DWriting; tdc->f.states |= DFetching; /* merge if lasts long */ if (tdc->f.states & DFetchReq) { tdc->f.states &= ~DFetchReq; osi_Wakeup(&tdc->validPos); } tdc->validPos = tdc->f.chunk << 10; /* last valid position in this chunk */ do { bdesc.host = 0; bdesc.portal = ntohs(htons(3536)); /* lookup */ localSession = rftpSession++; /* no context swaps between use and bump */ bdesc.session = localSession; optData.MaxSeqLen = PIGGYSIZE; optData.SeqLen = 0; optData.SeqBody = piggyBank; #ifndef NINTERFACE dummyBS.SeqLen = dummyBS.MaxSeqLen = 0; dummyBS.SeqBody = (char *) 1; /* don't allocate space */ bidFid.Volume = 0; #endif tc = afs_Conn(&avc->fid, areq); if (tc) { avc->callback = tc->server->host; rftpHandle = (struct rftp_conn *) rftp_GetFile(afs_rftpServer, file, tc->server->host, htons(2002), localSession, 0); ConvertWToSLock(&avc->lock); #ifdef NINTERFACE i = osi_Time(); code = AFS_FetchData(tc->id, (struct AFSFid *) &avc->fid.Fid, &bdesc, Segment, &optData, &OutStatus, &CallBack); AFSFetchStToViceSt(&OutStatus, &vstat); AFSCallBackStToViceSt(&CallBack, &vstat); vstat.CallBackTime += i; #else code = RViceFetchP(tc->id, &avc->fid.Fid, &bidFid, FetchData, &bdesc, &dummyBS, &optData, &vstat); #endif UpgradeSToWLock(&avc->lock); } else { code = -1; rftpHandle = (struct rftp_conn *) 0; } if (code == 0) { if (vstat.Length <= PIGGYSIZE) { /*We're currently at file offset 0, thanks to the open above*/ code = osi_Write(file, piggyBank, vstat.Length); if (code != optData.SeqLen) code = EIO; else code = 0; rftp_FreeConnection(rftpHandle); } else code = rftp_GetWait(rftpHandle); if (vstat.CallBackTime == 0) avc->callback = 0; else avc->cbExpires = vstat.CallBackTime; osi_Truncate(file, vstat.Length); /* prune it */ } else { if (rftpHandle) rftp_FreeConnection(rftpHandle); } } while(afs_Analyze(tc, code, &avc->fid, areq)); tdc->f.states &= ~DFetching; if (tdc->f.states & DWaiting) { tdc->f.states &= ~DWaiting; osi_Wakeup(&tdc->validPos); } osi_FreeSendSpace(piggyBank); if (avc->execsOrWriters == 0) tdc->f.states &= ~DWriting; /* now, if code != 0, we have an error and should punt */ if (code) { osi_Truncate(file, 0); /* discard old data */ afs_AdjustSize(tdc, 0); osi_Close(file); tdc->f.versionNo = -1; /* invalid value */ tdc->refCount--; if (setLocks) ReleaseWriteLock(&avc->lock); return (struct dcache *) 0; } /* otherwise we copy in the just-fetched info */ osi_Close(file); afs_AdjustSize(tdc, vstat.Length); /* new size */ afs_ProcessVStat(avc, &vstat); /* copy appropriate fields into vcache */ tdc->f.versionNo = vstat.DataVersion; tdc->f.states |= DEntryMod; /* if data ever existed for this vnode, and this is a text object, do some clearing. Now, you'd think you need only do the flush when VTEXT is on, but VTEXT is turned off when the text object is freed, while pages are left lying around in memory marked with this vnode. If we would reactivate (create a new text object from) this vnode, we could easily stumble upon some of these old pages in pagein. So, we always flush these guys. Sun has a wonderful lack of useful invariants in this system. */ if (avc->states & CDataMod) { avc->states &= ~CDataMod; /* do this first, in case of race */ osi_FlushText(avc); } if (setLocks) ReleaseWriteLock(&avc->lock); } else { if (setLocks) ReleaseReadLock(&avc->lock); } done: /* fixup lru info */ afs_indexTimes[tdc->index] = afs_indexCounter++; /* return the data */ *aoffset = abyte - (tdc->f.chunk << 10); *alen = (tdc->f.chunkBytes - *aoffset); return tdc; } /* simple copy of stat info into cache. */ afs_SimpleVStat(avc, astat) register struct vcache *avc; register struct ViceStatus *astat; { if (avc->execsOrWriters <= 0) { /* if writing the file, don't fetch over this value */ avc->m.Length = astat->Length; avc->m.Date = astat->Date; } avc->m.Owner = astat->Owner; avc->m.Mode = astat->Mode; if (vType(avc) == VREG) { avc->m.Mode |= S_IFREG; } else if (vType(avc) == VDIR) { avc->m.Mode |= S_IFDIR; } else if (vType(avc) == VLNK) { avc->m.Mode |= S_IFLNK; if ((avc->m.Mode & 0111) == 0) avc->mvstat = 1; } } /* copy astat block into vcache info; must be called under a write lock */ afs_ProcessVStat(avc, astat) register struct vcache *avc; register struct ViceStatus *astat; { if (avc->execsOrWriters <= 0) { /* if writing the file, don't fetch over these values */ avc->m.Length = astat->Length; avc->m.Date = astat->Date; } avc->m.DataVersion = astat->DataVersion; avc->m.Owner = astat->Owner; avc->m.Mode = astat->Mode; avc->m.LinkCount = astat->LinkCount; if (astat->VnodeType == File) { vSetType(avc, VREG); avc->m.Mode |= S_IFREG; } else if (astat->VnodeType == Directory) { vSetType(avc, VDIR); avc->m.Mode |= S_IFDIR; } else if (astat->VnodeType == SymbolicLink) { vSetType(avc, VLNK); avc->m.Mode |= S_IFLNK; if ((avc->m.Mode & 0111) == 0) avc->mvstat = 1; } avc->anyAccess = astat->AnyAccess; } /* This function is called only during initialization, and is passed one parameter, a file name. This file is declared to be the volume info storage file for the Andrew file system. It must be already truncated to 0 length. Warning: data will be written to this file over time by the Andrew file system. */ afs_InitVolumeInfo (afile) register char *afile; { register long code; register struct osi_file *tfile; struct vnode *filevp; code = gop_lookupname(afile, AFS_UIOSYS, 0, (struct vnode *) 0, &filevp); if (code) return ENOENT; volumeInode = VTOI(filevp)->i_number; VN_RELE(filevp); tfile = osi_UFSOpen(&cacheDev, volumeInode); osi_Truncate(tfile, 0); osi_Close(tfile); return 0; } /* This function is called only during initialization, and is passed one parameter, a file name. This file is assumed to be the cache info file for venus, and will be used as such. This file should *not* be truncated to 0 length; its contents describe what data is really in the cache. Warning: data will be written to this file over time by the Andrew file system. */ afs_InitCacheInfo (afile) register char *afile; { register long code; struct osi_stat tstat; register struct osi_file *tfile; struct vnode *filevp; code = gop_lookupname(afile, AFS_UIOSYS, 0, (struct vnode *) 0, &filevp); if (code) return ENOENT; cacheInode = VTOI(filevp)->i_number; cacheDev.dev = VTOI(filevp)->i_dev; dirp_SetCacheDev(&cacheDev); /* tell dir package where cache is */ VN_RELE(filevp); tfile = osi_UFSOpen(&cacheDev, cacheInode); if (!tfile) panic("initcacheinfo"); osi_Stat(tfile, &tstat); cacheInfoModTime = tstat.mtime; osi_Close(tfile); return 0; } /* This function is called only during initialization. It is passed one parameter: a file name of a file in the cache. The file specified will be written to be the Andrew file system. */ int afs_InitCacheFile(afile, ainode) long ainode; char *afile; { register long code; struct vnode *filevp; long index; int fileIsBad; struct osi_file *tfile; struct osi_stat tstat; register struct dcache *tdc; index = cacheCounter; if (index >= afs_cacheFiles) return EINVAL; ObtainWriteLock(&afs_xdcache); tdc = afs_GetDSlot(index, (struct dcache *)0); ReleaseWriteLock(&afs_xdcache); /* note, leaves newly-formatted cache entry in LRUQ */ if (!tdc) { VN_RELE(filevp); panic("initcachefile 1"); } if (afile) { code = gop_lookupname(afile, AFS_UIOSYS, 0, (struct vnode *) 0, &filevp); if (code) { afs_PutDCache(tdc); return code; } /* otherwise we have a VN_HOLD on filevp. Get the useful info out and return. we make use here of the fact that the cache is in the UFS file system, and just record the inode number. */ tdc->f.inode = VTOI(filevp)->i_number; VN_RELE(filevp); } else { tdc->f.inode = ainode; } tdc->f.chunkBytes = 0; fileIsBad = 0; if ((tdc->f.states & DWriting) || tdc->f.fid.Fid.Volume == 0) fileIsBad = 1; tfile = osi_UFSOpen(&cacheDev, tdc->f.inode); if (!tfile) panic("initcachefile open"); code = osi_Stat(tfile, &tstat); if (code) panic("initcachefile stat"); /* if file changed within T (120?) seconds of cache info file, it's probably bad. In addition, if slot changed within last T seconds, the cache info file may be incorrectly identified, and so slot may be bad. */ if (cacheInfoModTime < tstat.mtime + 120) fileIsBad = 1; if (cacheInfoModTime < tdc->f.modTime + 120) fileIsBad = 1; if (fileIsBad) { tdc->f.fid.Fid.Volume = 0; /* not in the hash table */ if (tstat.size != 0) osi_Truncate(tfile, 0); /* put entry in free cache slot list */ tdc->f.hvNextp = freeDCList; tdc->f.chunkBytes = 0; freeDCList = index; freeDCCount++; afs_indexFlags[index] |= IFFree; } else { /* we must put this entry in the appropriate hash tables */ code = DCHash(&tdc->f.fid, tdc->f.chunk); tdc->f.hcNextp = afs_dchashTable[code]; /* i still set from above DCHash call */ afs_dchashTable[code] = tdc->index; code = DVHash(&tdc->f.fid); tdc->f.hvNextp = afs_dvhashTable[code]; afs_dvhashTable[code] = tdc->index; tdc->f.chunkBytes = 0; /* assumed old size */ afs_AdjustSize(tdc, tstat.size); /* adjust to new size */ if (tstat.size > 0) afs_indexFlags[index] |= IFEverUsed; /* has nontrivial amt. of data */ afs_reusedFiles++; /* initialize index times to file's mod times; init indexCounter to max thereof */ afs_indexTimes[index] = tstat.atime; if (afs_indexCounter < tstat.atime) afs_indexCounter = tstat.atime; } osi_Close(tfile); tdc->f.states &= ~(DWriting|DEntryMod); afs_WriteDCache(tdc, 0); /* don't set f.modTime; we're just cleaning up */ afs_PutDCache(tdc); cacheCounter++; return 0; } /* This function is responsible for ensuring the cache info file is up-to-date. */ afs_WriteThroughDSlots() { register struct dcache *tdc; register long i; ObtainWriteLock(&afs_xdcache); for(i=0;if.states & DEntryMod)) { tdc->f.states &= ~DEntryMod; afs_WriteDCache(tdc, 1); } } ReleaseWriteLock(&afs_xdcache); } /* This function is responsible for returning a particular dcache entry, named by its slot index. If the entry is already present, it is returned, otherwise the contents are read from the CacheInfo file. If the caller has supplied us with a pointer to an in-memory dcache structure, we place the info there. Otherwise, we allocate a dcache entry from the free list and use it. We return the address of the in-memory copy of the file record. This entry's refCount field has been incremented; use afs_PutDCache() to release it. This function must be called with the afs_xdcache lock write-locked. */ struct dcache *afs_GetDSlot(aslot, tmpdc) register long aslot; register struct dcache *tmpdc; { register long code; register struct dcache *tdc; register struct osi_file *tfile; if (CheckLock(&afs_xdcache) != -1) panic("getdslot nolock"); if (aslot < 0 || aslot >= afs_cacheFiles) panic("getdslot slot"); tdc = afs_indexTable[aslot]; if (tdc) { QRemove(&tdc->lruq); /* move to queue head */ QAdd(&DLRU, &tdc->lruq); tdc->refCount++; return tdc; } /* otherwise we should read it in from the cache file */ tfile = osi_UFSOpen(&cacheDev, cacheInode); if (!tfile) panic("CacheInfo"); /* * If we weren't passed an in-memory region to place the file info, we have * to allocate one. */ if (tmpdc == (struct dcache *)0) { if (!freeDSList) afs_GetDownDSlot(5); if (!freeDSList) panic("getdslot 17"); tdc = freeDSList; freeDSList = (struct dcache *) tdc->lruq.next; tdc->f.states &= ~DEntryMod; /* up-to-date, not in free q */ QAdd(&DLRU, &tdc->lruq); if (tdc->lruq.prev == &tdc->lruq) panic("lruq 3"); } else { tdc = tmpdc; tdc->f.states = 0; } /* * Seek to the aslot'th entry and read it in. */ osi_Seek(tfile, sizeof(struct fcache) * aslot); code = osi_Read(tfile, (char *)(&tdc->f), sizeof(struct fcache)); if (code != sizeof(struct fcache)) { tdc->f.fid.Cell = 0; tdc->f.fid.Fid.Volume = 0; tdc->f.chunk = -1; tdc->f.versionNo = -1; tdc->f.hcNextp = tdc->f.hvNextp = tdc->f.chunkNextp = NULLIDX; tdc->f.states |= DEntryMod; } tdc->refCount = 1; tdc->index = aslot; /* * If we didn't read into a temporary dcache region, update the slot pointer table. */ if (tmpdc == (struct dcache *)0) afs_indexTable[aslot] = tdc; osi_Close(tfile); return tdc; } /* This function is called to write a particular dcache entry back to its home in the CacheInfo file. It has one parameter, the dcache entry. The reference count is not changed. This function must be called with the afs_xdcache lock at least read-locked. */ int afs_WriteDCache(adc, atime) int atime; register struct dcache *adc; { register struct osi_file *tfile; register long code; if (atime) adc->f.modTime = osi_Time(); tfile = osi_UFSOpen(&cacheDev, cacheInode); if (!tfile) panic("cacheinfo 2"); /* * Seek to the right dcache slot and write the in-memory image out to disk. */ osi_Seek(tfile, sizeof(struct fcache) * adc->index); code = osi_Write(tfile, (char *)(&adc->f), sizeof(struct fcache)); osi_Close(tfile); if (code != sizeof(struct fcache)) return EIO; return 0; } /* this function is called under a shared lock to write a dcache entry back to the server. */ int afs_StoreDCache(avc, adc, areq) register struct vcache *avc; struct vrequest *areq; register struct dcache *adc; { register struct conn *tc; char *piggyBank; register long code; struct rftp_conn *rftpHandle; struct BD BDesc; struct BBS OptionalData; struct CBS dummyAcl; #ifdef NINTERFACE struct AFSStoreStatus InStatus; struct AFSFetchStatus OutStatus; long Segment = 0; /* Whole file for now */ #endif long localSession; struct ViceStatus newStatus; struct osi_file *tfile; /* store the file */ if (afs_mariner) afs_MarinerLog("store$Storing", avc); afs_dp("storing file %x\n", avc); dummyAcl.SeqLen = 0; dummyAcl.SeqBody = (char *) 1; piggyBank = osi_AllocSendSpace(); do { tc = afs_Conn(&avc->fid, areq); if (tc) { /* The writes done before a store back will clear setuid-ness in cache file. */ tfile = osi_UFSOpen(&cacheDev, adc->f.inode); /* So fchmod below works */ if (!tfile) panic("bad inode in store"); localSession = rftpSession++; /* no context swaps between use and incr */ rftpHandle = (struct rftp_conn *) rftp_SendFile(afs_rftpServer, tfile, tc->server->host, htons(2002), localSession, 0); BDesc.host = 0; BDesc.portal = ntohs(htons(3536)); BDesc.session = localSession; newStatus.Owner = avc->m.Owner; newStatus.Mode = avc->m.Mode; newStatus.Date = avc->m.Date; if (adc->f.chunkBytes <= PIGGYSIZE) { OptionalData.MaxSeqLen = PIGGYSIZE; OptionalData.SeqBody = piggyBank; OptionalData.SeqLen = osi_Read(tfile, piggyBank, PIGGYSIZE); } else { OptionalData.MaxSeqLen = 0; OptionalData.SeqLen = 0; } #ifdef NINTERFACE ViceStToAFSStoreSt(&newStatus, &InStatus); code = AFS_StoreData(tc->id, (struct AFSFid *) &avc->fid.Fid, &InStatus, Segment, adc->f.chunkBytes, &BDesc, &OptionalData, &OutStatus); AFSFetchStToViceSt(&OutStatus, &newStatus); #else code = RViceStoreP(tc->id, &avc->fid.Fid, StoreStatusData, &dummyAcl, &OptionalData, &BDesc, &newStatus, adc->f.chunkBytes); #endif if (code == 0) { if (OptionalData.MaxSeqLen != 0) { /* did piggyback call */ rftp_FreeConnection(rftpHandle); code = 0; } /* we don't look at return code, since we don't care if dally failed, and other side will notice if data doesn't get through. */ else rftp_SendWait(rftpHandle); } else rftp_FreeConnection(rftpHandle); osi_Close(tfile); } else code = -1; } while (afs_Analyze(tc, code, &avc->fid, areq)); osi_FreeSendSpace(piggyBank); /* now copy stuff back out */ UpgradeSToWLock(&avc->lock); /* keep out others for a while */ if (code == 0) { afs_ProcessVStat(avc, &newStatus); adc->f.versionNo = avc->m.DataVersion; afs_indexFlags[adc->index] &= ~IFDataMod; } else { adc->f.versionNo = -1; } adc->f.states |= DEntryMod; ConvertWToSLock(&avc->lock); afs_dp("store done\n"); return code; } #]loX $ #%#_#_ 8/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:callback.c 12.4$ */ /* $ACIS:callback.c 12.4$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/callback.c,v $ */ #ifndef lint static char *rcsid = "$Header:callback.c 12.4$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" #include "../afs/prs_fs.h" #include "../afs/dir.h" extern struct r_server *afs_server; extern struct vcache *afs_FindVCache(); extern struct server *afs_FindServer(); extern int afs_running; long afs_missedCBs = 0; long afs_connectBacks = 0; callback_cleanup() { afs_missedCBs = 0; afs_connectBacks = 0; } static ClearCallBack(aconn, afid) register struct r_connection *aconn; register struct ViceFid *afid; { register struct vcache *tvc; register int i; register long otherHost; register struct server *tserve; int didAny; struct VenusFid localFid; otherHost = r_PeerHost(aconn); /* hosts are always in network order */ tserve = afs_FindServer(otherHost); /* cell is don't care value */ /* normally cell field is valid, but this could be call from previous boot */ localFid.Cell = ((tserve && tserve->cell)? tserve->cell->cell : 0); localFid.Fid.Volume = afid->Volume; localFid.Fid.Vnode = afid->Vnode; localFid.Fid.Unique = afid->Unique; if (tserve == 0) afs_missedCBs++; /* may have missed accidentally */ if (afid->Volume == 0) { #ifdef notdef /* clear all callbacks from this host -- this is not really used yet, as it is still used as volume == 0 is still used as a probe from the file server */ afs_missedCBs++; /* including any missed via create race */ for (i=0;ihnext) { if (tvc->callback == otherHost) tvc->callback = 0; } #endif } else if (afid->Vnode == 0) { /* Clear callback for the whole volume. */ afs_missedCBs++; /* in case we were doing a create */ for (i=0;ihnext) { if (tvc->fid.Fid.Volume == afid->Volume && (!tserve || tvc->fid.Cell == localFid.Cell)) tvc->callback = 0; } } else { /* a particular fid was specified */ i = VCHash(&localFid); didAny = 0; for(tvc = afs_vhashTable[i]; tvc; tvc = tvc->hnext) { if (tvc->fid.Fid.Vnode == afid->Vnode && tvc->fid.Fid.Volume == afid->Volume && tvc->fid.Fid.Unique == afid->Unique && (!tserve || tvc->fid.Cell ==localFid.Cell)) { tvc->callback = 0; didAny = 1; } } if (!didAny) afs_missedCBs++; /* missed it in the cache */ } } RCallBackBulk(aconn, afids, anumFids) register struct r_connection *aconn; register struct ViceFid *afids; register long anumFids; { register int i; afs_dp("received callback bulk\n"); for(i=0;iVolume != 0) ClearCallBack(aconn, afid); return 0; } /* store has started; currently not used */ RCallBackReceivedStore(aconn, afid) register struct r_connection *aconn; register struct ViceFid *afid; { long otherHost; register struct server *ts; struct VenusFid localFid; struct vcache *tvc; register struct brequest *tb; register int i; otherHost = r_PeerHost(aconn); /* hosts are always in network order */ ts = afs_FindServer(otherHost); /* cell is don't care value */ /* normally cell field is valid, but this could be call from previous boot */ if (!ts || !ts->cell) return 0; localFid.Cell = ts->cell->cell; localFid.Fid.Volume = afid->Volume; localFid.Fid.Vnode = afid->Vnode; localFid.Fid.Unique = afid->Unique; afs_dp("received callback store\n"); tvc = afs_FindVCache(&localFid); if (tvc) { tb = afs_brs; for (i=0;irefCount > 0 && tvc == tb->vnode) { afs_dp("bkg store found %x\n", tvc); /* if CSafeStore is on, then we don't awaken the guy waiting for the store until the whole store has finished. Otherwise, we do it now. Note that if CSafeStore is on, the BStore routine actually wakes up the user, instead of us. */ if ((tvc->states & CSafeStore) == 0) { tb->code = 0; tb->flags |= BUVALID; if (tb->flags & BUWAIT) { tb->flags &= ~BUWAIT; osi_Wakeup(tb); } } else afs_dp("safestore ignoring %x\n"); break; } } tvc->vrefCount--; /* don't obtain any locks in callback code */ } return 0; } RCallBackConnectBack(aconn) register struct r_connection *aconn; { register struct vcache *tvc; register int i; register long otherHost; otherHost = r_PeerHost(aconn); /* hosts are always in network order */ /* clear all callbacks from this host */ afs_missedCBs++; /* including any missed via create race */ afs_connectBacks++; for (i=0;ihnext) { if (tvc->callback == otherHost) tvc->callback = 0; } return 0; } afs_RCallBackServer() { struct r_connection *tconn; struct r_packet *tp; register struct r_server *tserver; while (1) { if (afs_server) break; osi_Sleep(&afs_server); } tserver = afs_server; while (afs_running) { r_GetRequest(tserver, &tconn, &tp); if (afs_running) RCallBack_ExecuteRequest(tconn, tp); } } #] lo8$ +#%#` #`  /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:dir.c 12.2$ */ /* $ACIS:dir.c 12.2$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/dir.c,v $ */ #ifndef lint static char *rcsid = "$Header:dir.c 12.2$"; #endif /* File: dir.cx Author: Mike Kazar Quote: Speed Kills Quoted Celebrity: Forest Baskett Date: Now */ #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../afs/osi.h" #include "../afs/dir.h" char *DRelease(); static struct DirEntry *FindItem(); struct DirEntry *dir_GetBlob(); struct DirEntry *DRead(); struct DirEntry *DNew(); int dir_NameBlobs (name) char * name; {/* Find out how many entries are required to store a name. */ register int i; i = strlen(name)+1; return 1+((i+15)>>5); } int dir_Create (dir, entry, vfid) char *dir; char *entry; long *vfid; {/* Create an entry in a file. Dir is a file representation, while entry is a string name. */int blobs, firstelt; register int i; register struct DirEntry *ep; short *pp; register struct DirHeader *dhp; /* check name quality */ if (*entry == 0) return EINVAL; /* First check if file already exists. */ ep = FindItem(dir,entry,&pp); if (ep) {DRelease(ep, 0); DRelease(pp, 0); return EEXIST; } blobs = dir_NameBlobs(entry); /* number of entries required */ firstelt = FindBlobs(dir,blobs); if (firstelt < 0) return EFBIG; /* directory is full */ /* First, we fill in the directory entry. */ep = dir_GetBlob(dir,firstelt); if (ep == 0) return EIO; ep->flag = FFIRST; ep->fid.vnode = htonl(vfid[1]); ep->fid.vunique = htonl(vfid[2]); strcpy(ep->name,entry); /* Now we just have to thread it on the hash table list. */dhp = (struct DirHeader *) DRead(dir,0); if (!dhp) {DRelease(ep, 1); return EIO;} i = DirHash(entry); ep->next = dhp->hashTable[i]; dhp->hashTable[i] = htons(firstelt); DRelease(dhp,1); DRelease(ep,1); return 0; } int dir_Length (dir) char *dir; {int i,ctr; struct DirHeader *dhp; dhp = (struct DirHeader *) DRead(dir,0); if (!dhp) return 0; ctr=0; for(i=0;ialloMap[i] != EPP) ctr++; DRelease(dhp,0); return ctr*PAGESIZE; } dir_Delete (dir, entry) char *dir; char *entry; {/* Delete an entry from a directory, including update of all free entry descriptors. */int nitems, index; register struct DirEntry *firstitem; short *previtem; firstitem = FindItem(dir,entry,&previtem); if (firstitem == 0) return ENOENT; *previtem = firstitem->next; DRelease(previtem,1); index = DVOffset(firstitem)/32; nitems = dir_NameBlobs(firstitem->name); DRelease(firstitem,0); FreeBlobs(dir,index,nitems); return 0; } static FindBlobs (dir,nblobs) char *dir; int nblobs; {/* Find a bunch of contiguous entries; at least nblobs in a row. */register int i, j, k; int failed; register struct DirHeader *dhp; struct PageHeader *pp; dhp = (struct DirHeader *) DRead(dir,0); /* read the dir header in first. */ if (!dhp) return -1; for(i=0;ialloMap[i] >= nblobs) /* if page could contain enough entries */ {/* If there are EPP free entries, then the page is not even allocated. */ if (dhp->alloMap[i] == EPP) {/* Add the page to the directory. */ AddPage(dir,i); dhp->alloMap[i] = EPP-1; } pp = (struct PageHeader *) DRead(dir,i); /* read the page in. */ if (!pp) {DRelease(dhp, 1); break;} for(j=0;j<=EPP-nblobs;j++) {failed = 0; for(k=0;kfreebitmap[(j+k)>>3]>>((j+k)&7)) & 1) {failed = 1; break; } if (!failed) break; failed = 1; } if (!failed) {/* Here we have the first index in j. We clean up the allocation maps and free up any resources we've got allocated. */ dhp->alloMap[i] -= nblobs; DRelease(dhp,1); for (k=0;kfreebitmap[(j+k)>>3] |= 1<<((j+k)&7); DRelease(pp,1); return j+i*EPP; } DRelease(pp, 0); /* This dir page is unchanged. */ } } /* If we make it here, the directory is full. */ DRelease(dhp, 0); return -1; } static AddPage (dir,pageno) char *dir; int pageno; {/* Add a page to a directory. */register int i; register struct PageHeader *pp; if (pageno==0) Die("bogus call to addpage"); pp = (struct PageHeader *) DNew(dir,pageno); /* Get a new buffer labelled dir,pageno */ pp->tag = htonl(1234); pp->freecount = EPP-1; /* The first dude is already allocated */ pp->freebitmap[0] = 0x01; for (i=1;ifreebitmap[i] = 0; DRelease(pp,1); } static FreeBlobs(dir,firstblob,nblobs) char *dir; register int firstblob; int nblobs; {/* Free a whole bunch of directory entries. */register int i; int page; struct DirHeader *dhp; struct PageHeader *pp; page = firstblob/EPP; firstblob -= EPP*page; /* convert to page-relative entry */ dhp = (struct DirHeader *) DRead(dir,0); if (!dhp) return; dhp->alloMap[page] += nblobs; DRelease(dhp,1); pp = (struct PageHeader *) DRead(dir,page); if (pp) for (i=0;ifreebitmap[(firstblob+i)>>3] &= ~(1<<((firstblob+i)&7)); DRelease(pp,1); } int dir_MakeDir (dir,me,parent) char *dir; long *me; long *parent; {/* Format an empty directory properly. Note that the first 13 entries in a directory header page are allocated, 1 to the page header, 4 to the allocation map and 8 to the hash table. */ register int i; register struct DirHeader *dhp; dhp = (struct DirHeader *) DNew(dir,0); dhp->header.tag = htonl(1234); dhp->header.freecount = (EPP-DHE-1); dhp->header.freebitmap[0] = 0xff; dhp->header.freebitmap[1] = 0x1f; for(i=2;iheader.freebitmap[i] = 0; dhp->alloMap[0]=(EPP-DHE-1); for(i=1;ialloMap[i] = EPP; for(i=0;ihashTable[i] = 0; DRelease(dhp,1); dir_Create(dir,".",me); dir_Create(dir,"..",parent); /* Virtue is its own .. */ return 0; } dir_Lookup (dir, entry, fid) char *dir; char *entry; register long *fid; {/* Look up a file name in directory. */ register struct DirEntry *firstitem; short *previtem; firstitem = FindItem(dir,entry,&previtem); if (firstitem == 0) return ENOENT; DRelease(previtem,0); fid[1] = ntohl(firstitem->fid.vnode); fid[2] = ntohl(firstitem->fid.vunique); DRelease(firstitem,0); return 0; } dir_EnumerateDir (dir,hookproc,hook) char *dir; long hook; int (*hookproc)(); {/* Enumerate the contents of a directory. */ register int i; int num; register struct DirHeader *dhp; register struct DirEntry *ep; dhp = (struct DirHeader *) DRead(dir,0); if (dhp) for(i=0;ihashTable[i]); while (num != 0) {/* Walk down the hash table list. */ ep = dir_GetBlob(dir,num); if (!ep) break; num = ntohs(ep->next); (*hookproc) (hook, ep->name, ntohl(ep->fid.vnode), ntohl(ep->fid.vunique)); DRelease(ep,0); } } DRelease(dhp,0); return 0; } dir_IsEmpty (dir) char *dir; {/* Enumerate the contents of a directory. */ register int i; int num; register struct DirHeader *dhp; register struct DirEntry *ep; dhp = (struct DirHeader *) DRead(dir,0); if (!dhp) return 0; for(i=0;ihashTable[i]); while (num != 0) {/* Walk down the hash table list. */ ep = dir_GetBlob(dir,num); if (!ep) break; if (strcmp(ep->name,"..") && strcmp(ep->name,".")) { DRelease(ep, 0); DRelease(dhp, 0); return 1; } num = ntohs(ep->next); DRelease(ep,0); } } DRelease(dhp,0); return 0; } struct DirEntry *dir_GetBlob (dir, blobno) char *dir; long blobno; {/* Return a pointer to an entry, given its number. */ struct DirEntry *ep; ep=DRead(dir,blobno>>LEPP); if (!ep) return 0; return (struct DirEntry *) (((long)ep)+32*(blobno&(EPP-1))); } static DirHash (string) register char *string; {/* Hash a string to a number between 0 and NHASHENT. */ register char tc; register int hval; register int tval; hval = 0; while(tc=(*string++)) {hval *= 173; hval += tc; } tval = hval & (NHASHENT-1); if (tval == 0) return tval; else if (hval < 0) tval = NHASHENT-tval; return tval; } static struct DirEntry *FindItem (dir,ename,previtem) char *dir; char *ename; short **previtem; {/* Find a directory entry, given its name. This entry returns a pointer to a locked buffer, and a pointer to a locked buffer (in previtem) referencing the found item (to aid the delete code). If no entry is found, however, no items are left locked, and a null pointer is returned instead. */ register int i; register struct DirHeader *dhp; register short *lp; register struct DirEntry *tp; i = DirHash(ename); dhp = (struct DirHeader *) DRead(dir,0); if (!dhp) return 0; if (dhp->hashTable[i] == 0) {/* no such entry */ DRelease(dhp,0); return 0; } tp = dir_GetBlob(dir,ntohs(dhp->hashTable[i])); if (!tp) {DRelease(dhp, 0); return 0;} lp = &(dhp->hashTable[i]); while(1) {/* Look at each hash conflict entry. */ if (!strcmp(ename,tp->name)) {/* Found our entry. */ *previtem = lp; return tp; } DRelease(lp,0); lp = &(tp->next); if (tp->next == 0) {/* The end of the line */ DRelease(lp,0); /* Release all locks. */ return 0; } tp = dir_GetBlob(dir,ntohs(tp->next)); if (!tp) {DRelease(lp, 0); return 0;} } } #]lo $ #%#Wh#ž >/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:dir.h 12.0$ */ /* $ACIS:dir.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/dir.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiddir = "$Header:dir.h 12.0$"; #endif /* File: dir.hx Author: Mike Kazar Quote: Speed Kills Quoted Celebrity: Forest Baskett Date: Now */ #define PAGESIZE 2048 /* bytes per page */ #define NHASHENT 128 /* entries in the hash tbl */ #define MAXPAGES 128 /* max pages in a dir */ #define EPP 64 /* dir entries per page */ #define LEPP 6 /* log above */ /* When this next field changs, it is crucial to modify MakeDir, since the latter is responsible for marking these entries as allocated. Also change the salvager. */ #define DHE 12 /* entries in a dir header above a pages header alone. */ #define FFIRST 1 #define FNEXT 2 /* typedef char *File; */ struct MKFid {/* A file identifier. */ long vnode; /* file's vnode slot */ long vunique; /* the slot incarnation number */ }; struct PageHeader {/* A page header entry. */ long tag; char freecount; /* unused, info in dirHeader structure */ char freebitmap[EPP/8]; char padding[32-(5+EPP/8)]; }; struct DirHeader {/* A directory header object. */struct PageHeader header; char alloMap[MAXPAGES]; /* one byte per 2K page */ short hashTable[NHASHENT]; }; struct DirEntry {/* A directory entry */ char flag; char length; /* currently unused */ short next; struct MKFid fid; char name[16]; }; struct DirXEntry {/* A directory extension entry. */ char name[32]; }; struct DirPage0 {/* A page in a directory. */ struct DirHeader header; struct DirEntry entry[1]; }; struct DirPage1 {/* A page in a directory. */ struct PageHeader header; struct DirEntry entry[1]; }; #]lok$ #%#`#` %/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:encrypt.c 12.1$ */ /* $ACIS:encrypt.c 12.1$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/encrypt.c,v $ */ #ifndef lint static char *rcsid = "$Header:encrypt.c 12.1$"; #endif /* all this just to get r.h */ #include "../h/types.h" #include "../h/socket.h" #include "../h/file.h" #include "../h/stat.h" #include "../netinet/in.h" #include "../h/time.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #define R_INTERNALS 1 #include "../afs/osi.h" #include "../afs/r.h" void Encrypt(FromBuffer, ToBuffer, HowManyBytes, WhichKey) char *FromBuffer; /* Input string*/ char *ToBuffer; /* Output string. Can be equal to input */ long HowManyBytes; /* The number of bytes FromBuffer. */ struct r_encryptionKey *WhichKey; /* The encryption key to be used. */ { /* Does a trivial Exclusive-OR of FromBuffer, cycling through bytes in Key. */ register unsigned char *p, *q, *r, *s; register long i; p = (unsigned char *)FromBuffer; /* ptr to next input char */ q = (unsigned char *)WhichKey; /* ptr to next key char */ r = q + RKEYSIZE; /* right limit of q */ s = (unsigned char *)ToBuffer; /* ptr to next output char */ for (i = HowManyBytes; i > 0; i--) { *s++ = (*p++) ^ (*q); if (++q >= r) q = (unsigned char *)WhichKey; } } void Decrypt(FromBuffer, ToBuffer, HowManyBytes, WhichKey) char *FromBuffer; /* Input string */ char *ToBuffer; /* Output string. Can be equal to input */ long HowManyBytes; /* The number of bytes in Buffer */ struct r_encryptionKey *WhichKey; /* The decryption key to be used */ { Encrypt(FromBuffer, ToBuffer, HowManyBytes, WhichKey); } #]lo'$ =#%#`+#`+ ( 0 /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:inodestuff.c 12.2$ */ /* $ACIS:inodestuff.c 12.2$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/inodestuff.c,v $ */ #ifndef lint static char *rcsid = "$Header:inodestuff.c 12.2$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/systm.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../afs/auxinode.h" #include "../h/buf.h" #include "../ufs/mount.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../afs/osi.h" #include "../afs/lock.h" /* All this below will be more organized soon... scout honors */ #ifdef vax /* get an existing gnode.*/ struct gnode * igetinode(dev, gnode) dev_t dev; gno_t gnode; { register struct mount *mp; register struct gnode *gp; GETMP(mp, dev); if (mp == NULL || (mp == (struct mount *) MSWAPX)) { u.u_error = ENXIO; return; } gp = gfs_gget(dev, mp, gnode, 0); if (gp == NULL) { u.u_error = ENOENT; /* Well... */ return; } if (gp->g_mode == 0) { /* Not an allocated inode */ gforget(gp); u.u_error = ENOENT; return; } if (gp->g_nlink == 0 || (gp->g_mode&GFMT) != GFREG) { gput(gp); u.u_error = ENOENT; return; } return gp; } /* * Really horrible fudge to allow us to drop an inode we got with iget but * which isn't really allocated. */ gforget(gp) struct gnode *gp; { extern struct gnode *gfreeh, **gfreet; gp->g_flag = 0; if (gfreeh) { *gfreet = gp; gp->g_freeb = gfreet; } else { gfreeh = gp; gp->g_freeb = &gfreeh; } gp->g_freef = NULL; gfreet = &gp->g_freef; } /* * icreate system call -- create an inode */ icreate() { register struct a { int dev; int near_gnode; int param1; int param2; int param3; int param4; } *uap = (struct a *) u.u_ap; register struct gnode *gp, *newgp; register struct mount *mp; if (!suser()) return; GETMP(mp, (dev_t)uap->dev); if (mp == NULL || (mp == (struct mount *) MSWAPX)) { u.u_error = EINVAL; return; } gp = gfs_gget((dev_t)uap->dev, mp, 2, 0); if (gp == NULL) { u.u_error = ENOENT; /\comment{* Well... */} return; } newgp = GALLOC(gp, 0, 0); gput(gp); if (newgp == NULL) return; newgp->g_flag |= GACC|GUPD|GCHG; newgp->g_nlink = 1; newgp->g_uid = 0; newgp->g_gid = -2; newgp->g_mode = GFREG; G_TO_I(newgp)->di_vicemagic = VICEMAGIC; G_TO_I(newgp)->di_vicep1 = uap->param1; G_TO_I(newgp)->di_vicep2 = uap->param2; G_TO_I(newgp)->di_vicep3 = uap->param3; G_TO_I(newgp)->di_vicep4 = uap->param4; u.u_r.r_val1 = newgp->g_number; gput(newgp); return; } /* * iopen system call -- open an inode for reading/writing * Restricted to super user. * Any IFREG files. */ iopen() { register struct a { int dev; int inode; int usermode; } *uap = (struct a *) u.u_ap; register struct file *fp; register struct gnode *gp; extern struct fileops gnodeops; if (!suser()) return; gp = ggetinode((dev_t)uap->dev, (gno_t)uap->inode); if (u.u_error) return; if (gp->g_gid != -2 && G_TO_I(gp)->di_vicemagic != VICEMAGIC) { gput(gp); u.u_error = EPERM; return; } fp = falloc(); if (fp == NULL) { gput(gp); return; } gfs_unlock(gp); fp->f_flag = (uap->usermode-FOPEN)&FMASK; fp->f_type = DTYPE_VNODE; fp->f_ops = &gnodeops; fp->f_data = (caddr_t)gp; return; } /* * Support for iinc() and idec() system calls--increment or decrement * count on inode. * Restricted to super user. * Only VICEMAGIC type inodes. */ iincdec(amount) int amount; { register struct a { int dev; int inode; long inode_p1; } *uap = (struct a *) u.u_ap; register struct gnode *gp; if (!suser()) return; gp = ggetinode((dev_t)uap->dev, (gno_t)uap->inode); if (u.u_error) return; if (G_TO_I(gp)->di_vicemagic != VICEMAGIC) u.u_error = EPERM; else if (G_TO_I(gp)->di_vicep1 != uap->inode_p1) u.u_error = ENXIO; else gp->g_nlink += amount; if (gp->g_nlink == 0) gp->g_vicemagic = 0; gp->g_flag |= GCHG; gput(gp); } iinc() { iincdec(1); } idec() { iincdec(-1); } /* * Support for iread/iwrite system calls. * Restricted to super user. * Only inodes with owner and group == -1. * NB: VICEMAGIC inodes default to this owner and group. */ ireadwrite(rw) { register struct a { int dev; int inode; long inode_p1; unsigned int offset; char *cbuf; unsigned int count; } *uap = (struct a *) u.u_ap; register struct gnode *gp; unsigned int resid; daddr_t db[NDADDR], ib[NIADDR]; int size; if (!suser()) return; gp = ggetinode((dev_t)uap->dev, (gno_t)uap->inode); if (u.u_error) return; if (gp->g_gid != -2 && G_TO_I(gp)->di_vicemagic != VICEMAGIC) { gput(gp); u.u_error = EPERM; return; } if (G_TO_I(gp)->di_vicep1 != uap->inode_p1) { gput(gp); u.u_error = ENXIO; return; } bcopy(G_TO_I(gp)->di_db, db, sizeof db); bcopy(G_TO_I(gp)->di_ib, ib, sizeof ib); size = gp->g_size; resid = 0; gfs_unlock(gp); u.u_error = rdwri( rw, gp, (caddr_t) uap->cbuf, uap->count, uap->offset, 0, &resid); u.u_r.r_val1 = uap->count - resid; if (size == gp->g_size && bcmp(G_TO_I(gp)->di_db,db,sizeof db) == 0 && bcmp(G_TO_I(gp)->di_ib,ib,sizeof ib) == 0) { gp->g_flag &= ~(GUPD|GACC|GCHG); } gput(gp); } iread() { ireadwrite(UIO_READ); } iwrite() { ireadwrite(UIO_WRITE); } #else vax struct fs * trygetfs(dev) dev_t dev; { register struct mount *mp; mp = getmp(dev); if (mp == NULL) { return(NULL); } return (mp->m_bufp->b_un.b_fs); } #ifdef sun /* get an existing inode. Common code for iopen, iread/write, iinc/dec. */ /* Also used by rmt_remote to support passing of inode number from venus */ struct inode * igetinode(dev, inode) dev_t dev; ino_t inode; { register struct inode *ip; register struct fs *fs; fs = trygetfs(dev); if (fs == NULL) { u.u_error = ENXIO; return; } ip = iget(dev, fs, inode); if (ip == NULL) { u.u_error = ENOENT; /* Well... */ return; } if (ip->i_mode == 0) { /* Not an allocated inode */ iforget(ip); u.u_error = ENOENT; return; } if (ip->i_nlink == 0 || (ip->i_mode&IFMT) != IFREG) { iput(ip); u.u_error = ENOENT; return; } return ip; } /* * Really horrible fudge to allow us to drop an inode we got with iget but * which isn't really allocated. */ iforget(ip) struct inode *ip; { extern struct inode *ifreeh, **ifreet; ip->i_flag = 0; if (ifreeh) { *ifreet = ip; ip->i_freeb = ifreet; } else { ifreeh = ip; ip->i_freeb = &ifreeh; } ip->i_freef = NULL; ifreet = &ip->i_freef; } /* * icreate system call -- create an inode */ icreate() { register struct a { int dev; int near_inode; int param1; int param2; int param3; int param4; } *uap = (struct a *) u.u_ap; register struct inode *ip, *newip; struct fs *fs; if (!suser()) return; fs = trygetfs((dev_t)uap->dev); if (fs == NULL) return; /* Shouldn t be doing following line */ ip = iget((dev_t)uap->dev, fs, 2); /* AN example inode from this file system, just to satisfy ialloc */ if (ip == NULL) { u.u_error = ENOENT; /* Well... */ return; } newip = ialloc(ip, 0, 0); iput(ip); if (newip == NULL) return; imark(newip, IACC|IUPD|ICHG); newip->i_nlink = 1; newip->i_uid = 0; newip->i_gid = -2; newip->i_mode = IFREG; newip->i_vnode.v_type = VREG; newip->i_vicemagic = VICEMAGIC; newip->i_vicep1 = uap->param1; newip->i_vicep2 = uap->param2; newip->i_vicep3 = uap->param3; newip->i_vicep4 = uap->param4; u.u_r.r_val1 = newip->i_number; iput(newip); return; } /* * iopen system call -- open an inode for reading/writing * Restricted to super user. * Any IFREG files. */ iopen() { register struct a { int dev; int inode; int usermode; } *uap = (struct a *) u.u_ap; register struct file *fp; register struct inode *ip; struct vnode *vp; extern struct fileops vnodefops; if (!suser()) return; ip = igetinode((dev_t)uap->dev, (ino_t)uap->inode); if (u.u_error) return; if (ip->i_gid != -2 && ip->i_vicemagic != VICEMAGIC) { iput(ip); u.u_error = EPERM; return; } fp = falloc(); if (fp == NULL) { iput(ip); return; } iunlock(ip); fp->f_flag = (uap->usermode-FOPEN)&FMASK; fp->f_type = DTYPE_VNODE; fp->f_ops = &vnodefops; vp = ITOV(ip); fp->f_data = (caddr_t)vp; return; } /* * Support for iinc() and idec() system calls--increment or decrement * count on inode. * Restricted to super user. * Only VICEMAGIC type inodes. */ iincdec(amount) int amount; { register struct a { int dev; int inode; long inode_p1; } *uap = (struct a *) u.u_ap; register struct inode *ip; if (!suser()) return; ip = igetinode((dev_t)uap->dev, (ino_t)uap->inode); if (u.u_error) return; if (ip->i_vicemagic != VICEMAGIC) u.u_error = EPERM; else if (ip->i_vicep1 != uap->inode_p1) u.u_error = ENXIO; else ip->i_nlink += amount; if (ip->i_nlink == 0) ip->i_vicemagic = 0; ip->i_flag |= ICHG; iput(ip); } iinc() { iincdec(1); } idec() { iincdec(-1); } /* * Support for iread/iwrite system calls. * Restricted to super user. * Only inodes with owner and group == -1. * NB: VICEMAGIC inodes default to this owner and group. */ ireadwrite(rw) { register struct a { int dev; int inode; long inode_p1; unsigned int offset; char *cbuf; unsigned int count; } *uap = (struct a *) u.u_ap; register struct inode *ip; unsigned int resid; daddr_t db[NDADDR], ib[NIADDR]; int size; if (!suser()) return; ip = igetinode((dev_t)uap->dev, (ino_t)uap->inode); if (u.u_error) return; if (ip->i_gid != -2 && ip->i_vicemagic != VICEMAGIC) { iput(ip); u.u_error = EPERM; return; } if (ip->i_vicep1 != uap->inode_p1) { iput(ip); u.u_error = ENXIO; return; } bcopy(ip->i_db, db, sizeof db); bcopy(ip->i_ib, ib, sizeof ib); size = ip->i_size; resid = 0; iunlock(ip); u.u_error = rdwri( rw, ip, (caddr_t) uap->cbuf, uap->count, uap->offset, 0, &resid); u.u_r.r_val1 = uap->count - resid; if (size == ip->i_size && bcmp(ip->i_db,db,sizeof db) == 0 && bcmp(ip->i_ib,ib,sizeof ib) == 0) { /* Don t write out the inode if it hasn t really changed. We don t care about inode dates in file server files */ ip->i_flag &= ~(IUPD|IACC|ICHG); } VN_RELE(ITOV(ip)); } iread() { ireadwrite(UIO_READ); } iwrite() { ireadwrite(UIO_WRITE); } #endif sun #ifdef ibm032 extern struct fs *trygetfs(); /* * Really horrible fudge to allow us to drop an inode we got with iget but * which isn't really allocated. */ iforget(ip) struct inode *ip; { extern struct inode *ifreeh, **ifreet; ip->i_flag = 0; if (ifreeh) { *ifreet = ip; ip->i_freeb = ifreet; } else { ifreeh = ip; ip->i_freeb = &ifreeh; } ip->i_freef = NULL; ifreet = &ip->i_freef; } /* get an existing inode. Common code for iopen, iread/write, iinc/dec. */ /* Also used by rmt_remote to support passing of inode number from venus */ struct inode * igetinode(dev, inode) dev_t dev; ino_t inode; { register struct inode *ip; register struct fs *fs; fs = trygetfs(dev); if (u.u_error) return (struct inode *) 0; /* Note: should optimize here--annoying that iget immediately does another getfs... */ ip = iget(dev, fs, inode); if (ip == NULL) { u.u_error = ENOENT; /* Well... */ return (struct inode *) 0; } if (ip->i_mode == 0) { /* Not an allocated inode */ iforget(ip); u.u_error = ENOENT; return (struct inode *) 0; } if (ip->i_nlink == 0 || (ip->i_mode&IFMT) != IFREG) { iput(ip); u.u_error = ENOENT; return (struct inode *) 0; } return ip; } /* * icreate system call -- create an inode */ icreate() { register struct a { int dev; int near_inode; int param1; int param2; int param3; int param4; } *uap = (struct a *) u.u_ap; register struct inode *ip, *newip; struct fs *fs; if (!suser()) return; fs = trygetfs((dev_t)uap->dev); if (u.u_error) return; /* Shouldn t be doing following line */ ip = iget((dev_t)uap->dev, fs, 2); /* AN example inode from this file system, just to satisfy ialloc */ if (u.u_error) return; newip = ialloc(ip, 0, 0); iput(ip); if (u.u_error) return; newip->i_flag |= IACC|IUPD|ICHG; newip->i_nlink = 1; newip->i_uid = 0; newip->i_gid = -2; newip->i_mode = IFREG; newip->i_vnode.v_type = VREG; newip->i_vicemagic = VICEMAGIC; newip->i_vicep1 = uap->param1; newip->i_vicep2 = uap->param2; newip->i_vicep3 = uap->param3; newip->i_vicep4 = uap->param4; u.u_r.r_val1 = newip->i_number; iput(newip); return; } /* * iopen system call -- open an inode for reading/writing * Restricted to super user. * Any IFREG files. */ iopen() { register struct a { int dev; int inode; int usermode; } *uap = (struct a *) u.u_ap; register struct file *fp; register struct inode *ip; register struct vnode *vp; extern struct fileops vnodefops; if (!suser()) return; ip = igetinode((dev_t)uap->dev, (ino_t)uap->inode); if (u.u_error) return; if (ip->i_gid != (gid_t)-2 && ip->i_vicemagic != VICEMAGIC) { iput(ip); u.u_error = EPERM; return; } fp = falloc(); if (fp == NULL) { iput(ip); return; } iunlock(ip); fp->f_flag = (uap->usermode-FOPEN)&FMASK; fp->f_type = DTYPE_VNODE; fp->f_ops = &vnodefops; vp=&(ip->i_vnode); fp->f_data = (caddr_t)vp; return; } /* * Support for iinc() and idec() system calls--increment or decrement * count on inode. * Restricted to super user. * Only VICEMAGIC type inodes. */ iincdec(amount) int amount; { register struct a { int dev; int inode; long inode_p1; } *uap = (struct a *) u.u_ap; register struct inode *ip; if (!suser()) return; ip = igetinode((dev_t)uap->dev, (ino_t)uap->inode); if (u.u_error) return; if (ip->i_vicemagic != VICEMAGIC) u.u_error = EPERM; else if (ip->i_vicep1 != uap->inode_p1) u.u_error = ENXIO; else ip->i_nlink += amount; if (ip->i_nlink == 0) ip->i_vicemagic = 0; ip->i_flag |= ICHG; iput(ip); } iinc() { iincdec(1); } idec() { iincdec(-1); } /* * Support for iread/iwrite system calls. * Restricted to super user. * Only inodes with owner and group == -1. * NB: VICEMAGIC inodes default to this owner and group. */ ireadwrite(rw) { register struct a { int dev; int inode; long inode_p1; unsigned int offset; char *cbuf; unsigned int count; } *uap = (struct a *) u.u_ap; register struct inode *ip; unsigned int resid; daddr_t db[NDADDR], ib[NIADDR]; int size; if (!suser()) return; ip = igetinode((dev_t)uap->dev, (ino_t)uap->inode); if (u.u_error) return; if (ip->i_gid != (gid_t)-2 && ip->i_vicemagic != VICEMAGIC) { iput(ip); u.u_error = EPERM; return; } if (ip->i_vicep1 != uap->inode_p1) { iput(ip); u.u_error = ENXIO; return; } bcopy(ip->i_db, db, sizeof db); bcopy(ip->i_ib, ib, sizeof ib); size = ip->i_size; resid = 0; iunlock(ip); u.u_error = rdwri( rw, ip, (caddr_t) uap->cbuf, uap->count, uap->offset, 0, &resid); u.u_r.r_val1 = uap->count - resid; ilock(ip); if (size == ip->i_size && bcmp(ip->i_db,db,sizeof db) == 0 && bcmp(ip->i_ib,ib,sizeof ib) == 0) { /* Don t write out the inode if it hasn t really changed. We don t care about inode dates in file server files */ ip->i_flag &= ~(IUPD|IACC|ICHG); } iput(ip); } iread() { ireadwrite(UIO_READ); } iwrite() { ireadwrite(UIO_WRITE); } #endif ibm032 #endif vax #]-loff$ #%#`<#`< 5/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:lock.c 12.1$ */ /* $ACIS:lock.c 12.1$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/lock.c,v $ */ #ifndef lint static char *rcsid = "$Header:lock.c 12.1$"; #endif /*******************************************************************\ * * * Information Technology Center * * Carnegie-Mellon University * * * * * * * \*******************************************************************/ /* Locking routines for Vice. */ #ifdef ibm032 #include "../h/param.h" #endif ibm032 #include "../h/time.h" #include "../h/kernel.h" #include "../afs/osi.h" #include "../afs/lock.h" #define FALSE 0 #define TRUE 1 Lock_Init(lock) register struct lock *lock; { lock -> readers_reading = 0; lock -> excl_locked = 0; lock -> wait_states = 0; lock -> num_waiting = 0; } Lock_Obtain(lock, how) register struct lock *lock; int how; { switch (how) { case READ_LOCK: lock->num_waiting++; do { lock -> wait_states |= READ_LOCK; osi_Sleep(&lock->readers_reading); } while (lock->excl_locked & WRITE_LOCK); lock->num_waiting--; lock->readers_reading++; break; case WRITE_LOCK: lock->num_waiting++; do { lock -> wait_states |= WRITE_LOCK; osi_Sleep(&lock->excl_locked); } while (lock->excl_locked || lock->readers_reading); lock->num_waiting--; lock->excl_locked = WRITE_LOCK; break; case SHARED_LOCK: lock->num_waiting++; do { lock->wait_states |= SHARED_LOCK; osi_Sleep(&lock->excl_locked); } while (lock->excl_locked); lock->num_waiting--; lock->excl_locked = SHARED_LOCK; break; case BOOSTED_LOCK: lock->num_waiting++; do { lock->wait_states |= WRITE_LOCK; osi_Sleep(&lock->excl_locked); } while (lock->readers_reading); lock->num_waiting--; lock->excl_locked = WRITE_LOCK; break; default: panic("afs locktype"); } } /* release a lock, giving preference to new readers */ Lock_ReleaseR(lock) register struct lock *lock; { if (lock->wait_states & READ_LOCK) { lock->wait_states &= ~READ_LOCK; osi_Wakeup(&lock->readers_reading); } else { lock->wait_states &= ~EXCL_LOCKS; osi_Wakeup(&lock->excl_locked); } } /* release a lock, giving preference to new writers */ Lock_ReleaseW(lock) register struct lock *lock; { if (lock->wait_states & EXCL_LOCKS) { lock->wait_states &= ~EXCL_LOCKS; osi_Wakeup(&lock->excl_locked); } else { lock->wait_states &= ~READ_LOCK; osi_Wakeup(&lock->readers_reading); } } /* Wait for some change in the lock status. Lock_Wait(lock) register struct lock *lock; { if (lock->readers_reading || lock->excl_locked) return 1; lock->wait_states |= READ_LOCK; osi_Sleep(&lock->readers_reading); return 0; } */ #]1lo$$ #%#Wo#ž H/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:lock.h 12.0$ */ /* $ACIS:lock.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/lock.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidlock = "$Header:lock.h 12.0$"; #endif #ifndef __AFSLOCK_INCLUDE__ #define __AFSLOCK_INCLUDE__ 1 /*******************************************************************\ * * * Information Technology Center * * Carnegie-Mellon University * * * * * * * \*******************************************************************/ /* Include file for using Vice locking routines. */ /* The following macros allow multi statement macros to be defined safely, i.e. - the multi statement macro can be the object of an if statement; - the call to the multi statement macro may be legally followed by a semi-colon. BEGINMAC and ENDMAC have been tested with both the portable C compiler and Hi-C. Both compilers were from the Palo Alto 4.2BSD software releases, and both optimized out the constant loop code. For an example of the use of BEGINMAC and ENDMAC, see the definition for ReleaseWriteLock, below. An alternative to this, using "if(1)" for BEGINMAC is not used because it may generate worse code with pcc, and may generate warning messages with hi-C. */ #define BEGINMAC do { #define ENDMAC } while (0) /* all locks wait on excl_locked except for READ_LOCK, which waits on readers_reading */ struct lock { unsigned char wait_states; /* type of lockers waiting */ unsigned char excl_locked; /* anyone have boosted, shared or write lock? */ unsigned char readers_reading; /* # readers actually with read locks */ unsigned char num_waiting; /* probably need this soon */ }; #define READ_LOCK 1 #define WRITE_LOCK 2 #define SHARED_LOCK 4 /* this next is not a flag, but rather a parameter to Lock_Obtain */ #define BOOSTED_LOCK 6 /* next defines wait_states for which we wait on excl_locked */ #define EXCL_LOCKS (WRITE_LOCK|SHARED_LOCK) #ifdef notdef #define ObtainReadLock(lock)\ if (!((lock)->excl_locked & WRITE_LOCK) && !(lock)->wait_states)\ (lock) -> readers_reading++;\ else\ Lock_Obtain(lock, READ_LOCK) #endif #define ObtainReadLock(lock)\ if (!((lock)->excl_locked & WRITE_LOCK))\ (lock) -> readers_reading++;\ else\ Lock_Obtain(lock, READ_LOCK) #define ObtainWriteLock(lock)\ if (!(lock)->excl_locked && !(lock)->readers_reading)\ (lock) -> excl_locked = WRITE_LOCK;\ else\ Lock_Obtain(lock, WRITE_LOCK) #ifdef notdef #define ObtainSharedLock(lock)\ if (!(lock)->excl_locked && !(lock)->wait_states)\ (lock) -> excl_locked = SHARED_LOCK;\ else\ Lock_Obtain(lock, SHARED_LOCK) #endif #define ObtainSharedLock(lock)\ if (!(lock)->excl_locked)\ (lock) -> excl_locked = SHARED_LOCK;\ else\ Lock_Obtain(lock, SHARED_LOCK) #define UpgradeSToWLock(lock)\ if (!(lock)->readers_reading)\ (lock)->excl_locked = WRITE_LOCK;\ else\ Lock_Obtain(lock, BOOSTED_LOCK) /* this must only be called with a WRITE or boosted SHARED lock! */ #define ConvertWToSLock(lock)\ BEGINMAC\ (lock)->excl_locked = SHARED_LOCK; \ if((lock)->wait_states) \ Lock_ReleaseR(lock); \ ENDMAC #define ConvertWToRLock(lock) \ BEGINMAC\ (lock)->excl_locked &= ~(SHARED_LOCK | WRITE_LOCK);\ (lock)->readers_reading++;\ Lock_ReleaseR(lock);\ ENDMAC #define ConvertSToRLock(lock) \ BEGINMAC\ (lock)->excl_locked &= ~(SHARED_LOCK | WRITE_LOCK);\ (lock)->readers_reading++;\ Lock_ReleaseR(lock);\ ENDMAC #define ReleaseReadLock(lock)\ BEGINMAC\ if (!--(lock)->readers_reading && (lock)->wait_states)\ Lock_ReleaseW(lock) ; \ ENDMAC #define ReleaseWriteLock(lock)\ BEGINMAC\ (lock)->excl_locked &= ~WRITE_LOCK;\ if ((lock)->wait_states) Lock_ReleaseR(lock);\ ENDMAC /* can be used on shared or boosted (write) locks */ #define ReleaseSharedLock(lock)\ BEGINMAC\ (lock)->excl_locked &= ~(SHARED_LOCK | WRITE_LOCK);\ if ((lock)->wait_states) Lock_ReleaseR(lock);\ ENDMAC /* I added this next macro to make sure it is safe to nuke a lock -- Mike K. */ #define LockWaiters(lock)\ ((int) ((lock)->num_waiting)) #define CheckLock(lock)\ ((lock)->excl_locked? (int) -1 : (int) (lock)->readers_reading) #define WriteLocked(lock)\ ((lock)->excl_locked != 0) /* You can also use the lock package for handling parent locks for independently-lockable sets of small objects. The concept here is that the parent lock is at the same level in the locking hierarchy as the little locks, but certain restrictions apply. The general usage pattern is as follows. You have a set of entries to search. When searching it, you have a "scan" lock on the table. If you find what you're looking for, you drop the lock down to a "hold" lock, lock the entry, and release the parent lock. If you don't find what you're looking for, you create the entry, downgrade the "scan" lock to a "hold" lock, lock the entry and unlock the parent. To delete an item from the table, you initially obtain a "purge" lock on the parent. Unlike all of the other parent lock modes described herein, in order to obtain a "purge" lock mode, you must have released all locks on any items in the table. Once you have obtained the parent lock in "purge" mode, you should check to see if the entry is locked. If its not locked, you are free to delete the entry, knowing that no one else can attempt to obtain a lock on the entry while you have the purge lock held on the parent. Unfortunately, if it *is* locked, you can not lock it yourself and wait for the other dude to release it, since the entry's locker may need to lock another entry before unlocking the entry you want (which would result in deadlock). Instead, then, you must release the parent lock, and try again "later" (see Lock_Wait for assistance in waiting until later). Unfortunately, this is the best locking paradigm I've yet come up with. What are the advantages to this scheme? First, the use of the parent lock ensures that two people don't try to add the same entry at the same time or delete an entry while someone else is adding it. It also ensures that when one process is deleting an entry, no one else is preparing to lock the entry. Furthermore, when obtaining a lock on a little entry, you are only holding a "hold" lock on the parent lock, so that others may come in and search the table during this time. Thus it will not hold up the system if a little entry takes a great deal of time to free up. Here's how to compute the compatibility matrix: The invariants are: add no deletions, additions allowed, additions will be performed, will obtain little locks hold no deletions, additions allowed, no additions will be performed, will obtain little locks purge no deletions or additions allowed, deletions will be performed, don't obtain little locks When we compute the locking matrix, we note that hold is compatible with hold and add. Add is compatible only with hold. purge is not compatible with anything. This is the same matrix as obtained by mapping add->S, hold->read and purge->write locks. Thus we can use the locks above to solve this problem, and we do. */ #endif __AFSLOCK_INCLUDE__ #]:lo-$  #%#Ws#ſ U# # 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 # LICENSED MATERIALS - PROPERTY OF IBM # REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 # # $Header:locks.x 12.0$ # $ACIS:locks.x 12.0$ # $Source: /ibm/acis/usr/sys/afs/RCS/locks.x,v $ Locking order (in order of locking) -- 1. VCache entries. Multiple ones can be locked, in which case they're locked in order of vnode within the same volume. afs_AccessOK is called before locking other entries. 3.. afs_xvcache and afs_xdcache. Must be able to load new cache entries while holding locks on others. Note this means you can't lock a cache entry while holding either of these locks. 4. afs_xvcb. Volume callback lock. 5. afs_xvolume -- allows low-level server etc stuff to happen while creating a volume? 6. afs_xuser -- afs_xuser locked before afs_xserver and afs_xconn in PUnlog. 7. afs_xcell -- locked before server in afs_GetCell. 8. afs_xserver -- afs_xserver locked before afs_xconn in afs_ResetUserConns. 9. afs_xconn -- see above 10. Individual volume locks. Must be after afs_xvolume so we can iterate over all volumes without others being inserted/deleted. Same hack doesn't work for cache entry locks since we need to be able to lock multiple cache entries (but not multiple volumes) simultaneously. #]=loT$  #%#`Q#`Q @/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:osi.c 12.7$ */ /* $ACIS:osi.c 12.7$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/osi.c,v $ */ #ifndef lint static char *rcsid = "$Header:osi.c 12.7$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/systm.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/cmap.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/buf.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../h/vmsystm.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../h/proc.h" #include "../rpc/types.h" #include "../afs/osi.h" #include "../afs/lock.h" long osi_memUsage = 0; static int dumping = 0; #ifdef AFSDEBMEM static struct osimem *memlist; #endif struct osimem { struct osimem *next; #ifdef AFSDEBMEM long size; long addr; #endif AFSDEBMEM }; static int afs_purges = 0; osi_cleanup() { osi_memUsage = 0; dumping = 0; #ifdef AFSDEBMEM memlist = 0; #endif afs_purges = 0; } /* flush text cache */ osi_FlushText(vp) register struct vnode *vp; { afs_purges++; mpurge(vp); if (vp->v_flag & VTEXT) xrele(vp); /* this this, anyway */ } /* procedure for making our processes as invisible as we can */ osi_Invisible() { /* called once per "kernel" lwp to make it invisible */ register struct proc *q, *p = u.u_procp; register int i; float_exit(p); untimeout(realitexpire, (caddr_t)p); vrelvm(); /* ASSUMES we were not vforked */ for (i = 0; i <= u.u_lastfile; i++) { struct file *f = u.u_ofile[i]; if (f) { (void) vno_lockrelease(f); closef(f); u.u_ofile[i] = NULL; } u.u_pofile[i] = 0; } VN_RELE(u.u_cdir); if (u.u_rdir) VN_RELE(u.u_rdir); /* * Run away from our parent. */ if (q = p->p_ysptr) q->p_osptr = p->p_osptr; if (q = p->p_osptr) q->p_ysptr = p->p_ysptr; if ((q = p->p_pptr)->p_cptr == p) q->p_cptr = p->p_osptr; /* * Get adopted by process 0. */ p->p_pptr = &proc[0]; p->p_ppid = 0; p->p_osptr = proc[0].p_cptr; if (proc[0].p_cptr) proc[0].p_cptr->p_ysptr = p; p->p_ysptr = NULL; proc[0].p_cptr = p; p->p_flag |= SSYS; } /* procedure to destroy our lwp when unmounting */ osi_exit() { register int i; register struct proc *p, *q; register int x; struct mbuf *m = m_getclr(M_WAIT, MT_ZOMBIE); #ifdef PGINPROF vmsizmon(); #endif p = u.u_procp; p->p_flag &= ~(STRC|SULOCK|SSYS); p->p_flag |= SWEXIT; p->p_sigignore = ~0; p->p_cpticks = 0; p->p_pctcpu = 0; for (i = 0; i < NSIG; i++) u.u_signal[i] = SIG_IGN; u.u_rlimit[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY; acct(); crfree(u.u_cred); /* * Freeing the user structure and kernel stack * for the current process: have to run a bit longer * using the pages which are about to be freed... * vrelu will block memory allocation by raising ipl. */ vrelu(u.u_procp, 0); vrelpt(u.u_procp); if (*p->p_prev = p->p_nxt) /* off allproc queue */ p->p_nxt->p_prev = p->p_prev; if (p->p_nxt = zombproc) /* onto zombproc */ p->p_nxt->p_prev = &p->p_nxt; p->p_prev = &zombproc; zombproc = p; multprog--; p->p_stat = SZOMB; noproc = 1; i = PIDHASH(p->p_pid); x = p - proc; if (pidhash[i] == x) pidhash[i] = p->p_idhash; else { for (i = pidhash[i]; i != 0; i = proc[i].p_idhash) if (proc[i].p_idhash == x) { proc[i].p_idhash = p->p_idhash; goto done; } panic("osi_exit"); } done: p->p_xstat = 0; /* we exitted without error ... */ p->p_ru = mtod(m, struct rusage *); *p->p_ru = u.u_ru; ruadd(p->p_ru, &u.u_cru); p->p_cptr = NULL; /* * Process 0 never waits for us, Get adopted by process 1. */ if (q = p->p_ysptr) q->p_osptr = p->p_osptr; if (q = p->p_osptr) q->p_ysptr = p->p_ysptr; if ((q = p->p_pptr)->p_cptr == p) q->p_cptr = p->p_osptr; /* * Get adopted by process 1. */ p->p_pptr = &proc[1]; p->p_ppid = 1; p->p_osptr = proc[1].p_cptr; if (proc[1].p_cptr) proc[1].p_cptr->p_ysptr = p; p->p_ysptr = NULL; proc[1].p_cptr = p; /* have init clean us up */ psignal(p->p_pptr, SIGCHLD); wakeup((caddr_t)p->p_pptr); swtch(); } /* call procedure aproc with arock as an argument, in ams milliseconds */ int osi_CallProc(aproc, arock, ams) register int (*aproc); register char *arock; long ams; { /* hz is in cycles/second, and timeout's 3rd parm is in cycles(barf!) */ return timeout(aproc, arock, (ams * hz)/1000 + 1); } /* cancel a timeout, whether or not it has already occurred */ int osi_CancelProc(aproc, arock) register int (*aproc); register char *arock; { return untimeout(aproc, arock); } /* get the time in seconds */ long osi_Time() { struct timeval tv; osi_GetTime(&tv); return tv.tv_sec; } /* set the real time */ osi_SetTime(atv) register struct timeval *atv; { register int s; /* stolen from kern_time.c */ boottime.tv_sec += atv->tv_sec - time.tv_sec; s = splclock(); time = *atv; (void) splx(s); resettodr(); return 0; } char *osi_Alloc(x) long x; { register struct osimem *tm; #ifdef ibm032 x += 4; /* rt strlen overruns end of string */ #endif osi_memUsage += x; #ifdef AFSDEBMEM tm = (struct osimem *) kmem_alloc(x+12); #else tm = (struct osimem *) kmem_alloc(x); #endif AFSDEBMEM #ifdef AFSDEBMEM tm->next = memlist; memlist = tm; tm->size = x; tm->addr = *((long *)((char *)&x - 4)); /* try to find return address */ return (char *) ((long)tm + 12); #else return (char *) tm; #endif AFSDEBMEM } osi_Free(x,asize) register char *x; register long asize; { register struct osimem *tm, **lm, *um; #ifdef ibm032 asize += 4; /* rt strlen overruns end of strings */ #endif osi_memUsage -= asize; #ifdef AFSDEBMEM while(dumping) osi_Sleep(&dumping); /* not bulletproof, but good enough */ tm = (struct osimem *) ((long)x - 12); lm = &memlist; for(um=memlist; um; lm = &um->next, um = *lm) { if (um == tm) break; } if (um) *lm = tm->next; kmem_free(tm,asize+12); #else kmem_free((struct osimem *)x, asize); #endif } osi_Dump(){ register struct osimem *tm; register long *val; dumping = 1; #ifdef AFSDEBMEM for(tm=memlist; tm; tm=tm->next) { val = (long *) ((long)tm + 12); printf("block at %x size %d addr %x: ", tm, tm->size, tm->addr); if (tm->size >= 4) printf("%x ", val[0]); if (tm->size >= 8) printf("%x ", val[1]); if (tm->size >= 12) printf("%x ", val[2]); if (tm->size >= 16) printf("%x ", val[3]); if (tm->size >= 20) printf("%x ", val[4]); printf("\n"); } #endif AFSDEBMEM dumping = 0; osi_Wakeup(&dumping); } #]Elo$  #%#Wv#ſ/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:osi.h 12.0$ */ /* $ACIS:osi.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/osi.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidosi = "$Header:osi.h 12.0$"; #endif #include "../h/types.h" #include "../h/param.h" /* this is just a dummy type decl, we're really using struct sockets here */ struct osi_socket { int junk; }; struct osi_stat { long size; /* file size in bytes */ long blksize; /* optimal transfer size in bytes */ long mtime; /* modification date */ long atime; /* access time */ }; struct osi_file { struct vnode *vnode; long offset; int (*proc)(); /* proc, which, if not null, is called on writes */ char *rock; /* rock passed to proc */ }; struct osi_dev { long dev; }; struct osi_WaitHandle { caddr_t proc; /* process waiting */ }; #define osi_SetFileProc(x,p) ((x)->proc=(p)) #define osi_SetFileRock(x,r) ((x)->rock=(r)) #define osi_GetFileProc(x) ((x)->proc) #define osi_GetFileRock(x) ((x)->rock) #define osi_Seek(x,p) ((x)->offset = (p)) #define osi_Sleep(x) sleep((caddr_t) x,PZERO-2) #define osi_Wakeup(x) wakeup((caddr_t) x) #define osi_NullHandle(x) ((x)->proc == (caddr_t) 0) #define osi_PACKETSIZE 1600 /* packet buffer size */ #define osi_NPACKETS 20 /* number of cluster packets to allocate */ extern struct osi_socket *osi_NewSocket(); extern struct osi_file *osi_UFSOpen(); extern struct ucred osi_cred; extern char *osi_Alloc(); extern char *osi_AllocSendSpace(); #ifdef sun /* sun definitions here */ #define AFS_VFS34 1 #define AFS_UIOFMODE 1 #define AFS_ACTFLAG 1 /* is m_act mbuf a chain or a flag */ #define afsio_iov uio_iov #define afsio_iovcnt uio_iovcnt #define afsio_offset uio_offset #define afsio_seg uio_seg #define afsio_fmode uio_fmode #define afsio_resid uio_resid #define AFS_UIOSYS UIOSEG_KERNEL #define AFS_UIOUSER UIOSEG_USER #define AFS_CLBYTES MCLBYTES #define osi_GetTime(x) uniqtime(x) #endif #ifdef ibm032 /* rt definitions here */ #define AFS_VFS32 1 /* or use AFS_VFS32 if using a newer kernel */ #define AFS_SHORTGID 1 /* are group id's short? */ #define AFS_GETDIRHACK 1 /* have read call readdir temporarily for compat reasons */ #define afsio_iov uio_iov #define afsio_iovcnt uio_iovcnt #define afsio_offset uio_offset #define afsio_seg uio_segflg #define afsio_resid uio_resid #define AFS_UIOSYS UIO_SYSSPACE #define AFS_UIOUSER UIO_USERSPACE #define AFS_CLBYTES MB_CLBYTES #define osi_GetTime(x) microtime(x) #endif #ifdef vax /* Mvax Ultrix-2.2 definitions here */ #define AFS_GETDIRHACK 1 /* have read call readdir (a la RTs) */ #define afsio_iov uio_iov #define afsio_iovcnt uio_iovcnt #define afsio_offset uio_offset #define afsio_seg uio_segflg #define afsio_resid uio_resid #define AFS_UIOSYS UIO_SYSSPACE #define AFS_UIOUSER UIO_USERSPACE #define IO_UNIT 1 #define AFS_CLBYTES CLBYTES #define osi_GetTime(x) uniqtime(x) extern struct gnode_ops *afs_ops; #define vType(vc) IFTOVT((vc)->v.g_mode) #define vSetType(vc,type) (vc)->v.g_mode = VTTOIF((type)) #define vSetVfsp(vc,vfsp) (vc)->v.g_mp = (struct mount *)(vfsp)->vfs_data #define iunlock(gp) gfs_unlock((gp)) #define AFS_MAXNAMLEN 255 #else /* GFS-based defines/macros for sun & ibm032 */ extern struct vnodeops *afs_ops; #define vType(vc) (vc)->v.v_type #define vSetType(vc,type) (vc)->v.v_type = (type) #define vSetVfsp(vc,vfsp) (vc)->v.v_vfsp = (vfsp) #define gop_lookupname(fnamep,segflg,followlink,dirvpp,compvpp) \ lookupname((fnamep),(segflg),(followlink),(dirvpp),(compvpp)) #define gop_rdwr(rw,gp,base,len,offset,segflg,unit,aresid) \ vn_rdwr((rw),(gp),(base),(len),(offset),(segflg),(unit),(aresid)) #endif #]JloV $ 3#%#`f#`f /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:osifile.c 12.2$ */ /* $ACIS:osifile.c 12.2$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/osifile.c,v $ */ #ifndef lint static char *rcsid = "$Header:osifile.c 12.2$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/systm.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/cmap.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/buf.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../h/proc.h" #include "../afs/osi.h" #include "../afs/lock.h" #if defined(vax) || defined(ibm032) #include "../h/vm.h" #include "../h/map.h" #include "../machine/pte.h" #endif vax || ibm032 #ifdef ibm032 #include "../machine/mmu.h" #endif ibm032 static init=0; struct ucred osi_cred; struct vattr tvattr; struct lock afs_xosi; /* lock is for tvattr */ osi_file_cleanup() { init=0; bzero(&osi_cred, sizeof(osi_cred)); bzero(&tvattr, sizeof(tvattr)); bzero(&afs_xosi, sizeof(afs_xosi)); } struct osi_file *osi_UFSOpen(adev, ainode) register struct osi_dev *adev; long ainode; { register struct inode *ip; register struct osi_file *afile; if (!init) { bzero(&osi_cred, sizeof(struct ucred)); Lock_Init(&afs_xosi); crhold(&osi_cred); /* don't let it evaporate, since it is static */ init = 1; } afile = (struct osi_file *) osi_Alloc(sizeof(struct osi_file)); u.u_error = 0; ip = (struct inode *) igetinode((dev_t) adev->dev, (ino_t)ainode); if (u.u_error) return (struct osi_file *) 0; iunlock(ip); afile->vnode = ITOV(ip); afile->offset = 0; afile->proc = (int (*)()) 0; return afile; } osi_Stat(afile, astat) register struct osi_file *afile; register struct osi_stat *astat; { register long code; ObtainWriteLock(&afs_xosi); code = VOP_GETATTR(afile->vnode, &tvattr, &osi_cred); if (code == 0) { astat->size = tvattr.va_size; astat->blksize = tvattr.va_blocksize; astat->mtime = tvattr.va_mtime.tv_sec; astat->atime = tvattr.va_atime.tv_sec; } ReleaseWriteLock(&afs_xosi); return code; } osi_Close(afile) register struct osi_file *afile; { VN_RELE(afile->vnode); osi_Free(afile, sizeof(struct osi_file)); return 0; } osi_Truncate(afile, asize) register struct osi_file *afile; long asize; { struct ucred *oldCred; register long code; ObtainWriteLock(&afs_xosi); vattr_null(&tvattr); tvattr.va_size = asize; /* note that this credential swapping crap is only necessary because of ufs's references directly to u.u_cred instead of to credentials parameter. Probably should fix ufs some day. */ oldCred = u.u_cred; /* remember old credentials pointer */ u.u_cred = &osi_cred; /* temporarily use superuser credentials */ code = VOP_SETATTR(afile->vnode, &tvattr, &osi_cred); u.u_cred = oldCred; /* restore */ ReleaseWriteLock(&afs_xosi); return code; } /* Generic read interface */ osi_Read(afile, aptr, asize) register struct osi_file *afile; char *aptr; long asize; { unsigned int resid; register long code; code = gop_rdwr(UIO_READ, afile->vnode, (caddr_t) aptr, asize, afile->offset, AFS_UIOSYS, IO_UNIT, &resid); if (code == 0) { code = asize - resid; afile->offset += code; } else { u.u_error = code; code = -1; } return code; } /* Generic write interface */ osi_Write(afile, aptr, asize) register struct osi_file *afile; char *aptr; long asize; { unsigned int resid; register long code; code = gop_rdwr(UIO_WRITE, afile->vnode, (caddr_t) aptr, asize, afile->offset, AFS_UIOSYS, IO_UNIT, &resid); if (code == 0) { code = asize - resid; afile->offset += code; } else { u.u_error = code; code = -1; } if (afile->proc) { (*afile->proc)(afile, code); } return code; } /* BARF CITY: this work should be handled by physstrat in ca/machdep.c. This routine written from the RT NFS port strategy routine. It has been generalized a bit, but should still be pretty clear. */ int osi_MapStrategy(aproc, bp) int (*aproc)(); register struct buf *bp; { long returnCode; #if defined(vax) || defined(ibm032) if (bp->b_flags & B_PHYS) { register int npte; register int n; register long a; register struct pte *pte, *kpte; caddr_t va; int o; caddr_t saddr; #ifdef ibm032 struct hatipt_entry *ipte; u_int vp; long saddrtag; /* puke */ #endif ibm032 /* * Buffer's data is in userland, or in some other * currently inaccessable place. We get a hunk of * kernel address space and map it in. */ o = (int)bp->b_un.b_addr & PGOFSET; npte = btoc(bp->b_bcount + o); while ((a = rmalloc(kernelmap, (long)clrnd(npte))) == NULL) { kmapwnt++; sleep((caddr_t)kernelmap, PSWP+4); } kpte = &Usrptmap[a]; pte = vtopte(bp->b_proc, btop(bp->b_un.b_addr)); #ifdef vax for (n = npte; n--; kpte++, pte++) *(int *)kpte = PG_NOACC | (*(int *)pte & PG_PFNUM); va = (caddr_t)kmxtob(a); vmaccess(&Usrptmap[a], va, npte); #endif vax #ifdef ibm032 va = (caddr_t)kmxtob(a); vp = btop(va); for (n = npte; n; kpte++, pte++, vp++, n--) { *(int *)kpte = *(int *)pte & PG_PFNUM; ipte = &MMU_HATIPT[*(int *)kpte]; if (n == npte) saddrtag = ipte->key_addrtag; else if (saddrtag != ipte->key_addrtag) printf("AFS temp map confusion\n"); ipte->key_addrtag = MMU_SID_SYSTEM << MMU_VPAGE_BITS; mapin(kpte, vp, (u_int)(PG_V|PG_KW | *(int *)kpte), 1); } #endif ibm032 saddr = bp->b_un.b_addr; bp->b_un.b_addr = va + o; /* * do the io */ returnCode = (*aproc)(bp); /* * Release kernel maps */ bp->b_un.b_addr = saddr; kpte = &Usrptmap[a]; #ifdef vax for (n = npte; n-- ; kpte++) *(int *)kpte = PG_NOACC; #endif vax #ifdef ibm032 for (n = npte; n--; kpte++, vp++) { ipte = &MMU_HATIPT[*(int *)kpte & PG_PFNUM]; mapout(kpte, 1); *(int *)kpte = PG_NOACC; /* who cares? */ ipte->key_addrtag = saddrtag; } #endif ibm032 rmfree(kernelmap, (long)clrnd(npte), a); } else #endif vax || ibm032 returnCode = (*aproc) (bp); return returnCode; } #]Rlo2с$ 0#%#`v#`v X  /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:osinet.c 12.3$ */ /* $ACIS:osinet.c 12.3$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/osinet.c,v $ */ #ifndef lint static char *rcsid = "$Header:osinet.c 12.3$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/systm.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/cmap.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/buf.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../h/proc.h" #include "../h/file.h" #include "../rpc/types.h" #include "../afs/osi.h" #include "../afs/lock.h" extern int selwait; extern long afs_debug; extern struct mbuf *mclgetx(); extern int afs_running; #ifdef ibm032 extern int maxtextcache; #endif long osi_allocs = 0; static struct osi_packet { struct osi_packet *next; } *freePacketList = 0; osinet_cleanup() { selwait = 0; #ifdef ibm032 maxtextcache = 0; #endif osi_allocs = 0; freePacketList = 0; } /* for mclgetx, called when mbuf chain is freed */ static dummyfun(aparm) char *aparm; { osi_FreeSendSpace(aparm); } /* note that this routine doesn't adjust the mclrefcnt array, so you can't free these buffers later. However, this could be added if we decide to start freeing these things someday. */ static char *AllocDouble() { struct mbuf tbuf; register struct mbuf *tb1, *tb2, **lb; int s; if (osi_PACKETSIZE <= AFS_CLBYTES) { /* try to allocate a cluster mbuf */ osi_allocs++; if (mclget(&tbuf)) return mtod(&tbuf, char *); } else if (osi_PACKETSIZE <= 2*AFS_CLBYTES) { /* try to allocate two adjacent cluster mbufs */ osi_allocs += 2; s = splimp(); if (!mclfree) /* make sure there's some free clusters */ m_clalloc(1, MPG_CLUSTERS); lb = &mclfree; for(tb1 = *lb; tb1; tb1 = *lb) { tb2 = tb1->m_next; if ((long)tb1 == AFS_CLBYTES + (long)tb2) { /* tb2 immediately precedes tb1 in memory */ *lb = tb2->m_next; /* pull both dudes out of the list */ mbstat.m_clfree -= 2; splx(s); return (char *) tb2; } else if ((long)tb1 + AFS_CLBYTES == (long)tb2) { /* tb1 immediately precedes tb2 in memory */ *lb = tb2->m_next; /* pull both dudes from list */ mbstat.m_clfree -= 2; splx(s); return (char *) tb1; } lb = &tb1->m_next; } splx(s); } return (char *) kmem_alloc(osi_PACKETSIZE); } /* free packet received by osi_NetReceive. Now, osi_NetReceive may return either a packet ala osi_AllocSendSpace, in which case we want to actually free both the mbuf and the data (put in freePacketList), or it may have received an mbuf from the driver, in which case we also call the generic mbuf free routine. What is tricky is that packets allocated osi_AllocSendSpace, when freed, do not free their data area, since that will be retransmitted again and again (and eventually freed using osi_FreeSendSpace), but packets allocated by osi_NetReceive also allocate their space from freePacketList, but have a different free procedure that actually frees the data space when the mbuf is freed. */ osi_FreeRecvBuffer(ambuf) register struct mbuf *ambuf; { m_free(ambuf); } /* free space allocated by AllocSendSpace. Also called by mclput when freeing a packet allocated by osi_NetReceive. */ osi_FreeSendSpace(adata) register struct osi_packet *adata; { adata->next = freePacketList; freePacketList = adata; return 0; } /* osi-layer initialization code */ osi_Init() { #ifdef ibm032 maxtextcache = -2; #endif ibm032 } /* allocate space for sender */ char *osi_AllocSendSpace() { register struct osi_packet *tp; if (!freePacketList) return AllocDouble(); tp = freePacketList; freePacketList = tp->next; return (char *) tp; } /* turn a socket into a greedy socket */ int osi_xgreedy() { register struct a { int fdes; } *uap = (struct a *)u.u_ap; register struct file *tf; register struct socket *ts; tf = getf(uap->fdes); if (!tf) { u.u_error = EBADF; return; } if (tf->f_type != DTYPE_SOCKET) { u.u_error = ENOTSOCK; return; } ts = (struct socket *) tf->f_data; u.u_error = soreserve(ts, 32766, 32766); } /* allocate a new socket at specified address */ struct osi_socket *osi_NewSocket(aport) short aport; { /* network byte order */ register long code; struct socket *newSocket; register struct mbuf *nam; struct sockaddr_in myaddr; code = socreate(AF_INET, &newSocket, SOCK_DGRAM, 0); if (code) return (struct osi_socket *) 0; code = soreserve(newSocket, 50000, 50000); if (code) soreserve(newSocket, 32766, 32766); myaddr.sin_family = AF_INET; myaddr.sin_port = aport; myaddr.sin_addr.s_addr = 0; nam = m_get(M_WAIT, MT_SONAME); nam->m_len = sizeof(myaddr); bcopy(&myaddr, mtod(nam, caddr_t), sizeof(myaddr)); code = sobind(newSocket, nam); if (code) { soclose(newSocket); m_freem(nam); return (struct osi_socket *) 0; } return (struct osi_socket *) newSocket; } /* free socket allocated by osi_NetSocket */ int osi_FreeSocket(asocket) register struct socket *asocket; { soclose(asocket); return 0; } /* send asize bytes at adata from asocket to host at addr. * * Now, why do we allocate a new buffer when we could theoretically use the one pointed to by adata? * Because PRU_SEND returns after queueing the message, not after sending it. If the sender changes * the data after queueing it, we'd see the already-queued data change. One attempt to fix this * without adding a copy would be to have this function wait until the datagram is sent; however this * doesn't work well. In particular, if a host is down, and an ARP fails to that host, this packet * will be queued until the ARP request comes back, which could be hours later. We can't block * in this routine that long, since it prevents RPC timeouts from happening. */ int osi_NetSend(asocket, addr, adata, asize) register struct socket *asocket; char *adata; register long asize; struct sockaddr_in *addr; { register struct mbuf *tm, *um; register long code; char *dbuffer; /* setup m_act field in pb->mchain properly */ if (asize > osi_PACKETSIZE) return -1; dbuffer = osi_AllocSendSpace(); tm = mclgetx(dummyfun, dbuffer, dbuffer, asize, M_WAIT); bcopy(adata, dbuffer, asize); #ifdef AFS_ACTFLAG tm->m_act = (struct mbuf *) 1; #else #ifndef vax tm->m_act = (struct mbuf *) 0; #endif #endif /* setup mbuf corresponding to destination address */ um = m_get(M_WAIT, MT_SONAME); if (!um) return 1; bcopy(addr, mtod(um, caddr_t), sizeof(*addr)); um->m_len = sizeof(*addr); /* note that udp_usrreq frees funny mbuf. We hold onto data, but mbuf around it is gone. we free address ourselves. */ if (afs_debug & 2) afs_dp("sendto: %x.%d\n", mtod(um, struct sockaddr_in *)->sin_addr.s_addr, mtod(um, struct sockaddr_in *)->sin_port); code = (*asocket->so_proto->pr_usrreq)(asocket, PRU_SEND, tm, um, 0); m_free(um); if (code) afs_dp("PRU_SEND code %d\n", code); return code; } /* receive a packet from asocket, putting address in *addr, and data in adata. max size is in *asize, and asize is set to actual size. Return 0 or error code. */ int osi_NetReceive(asocket, addr, ambuf, adata, asize) struct socket *asocket; struct mbuf **ambuf; char **adata; long *asize; struct sockaddr_in *addr; { int priority; register long temp; register struct sockbuf *tsbuf; register struct mbuf *tm, *om, *data; sblock(&asocket->so_rcv); priority = splnet(); /* peel off the buffers until we run out, or until we see the m_act switch set on the mbuf chain. Apparently this has changed from a chain to a flag from 4.2 to Sun3/Unix 4.3. The m_act switch is set on the address mbuf at the beginnig of every udp packet. It is *also* set on the last data packet in an mbuf chain. Don't forget to decrement sb_cc, so that select doesn't think there's stuff left to read. */ tsbuf = &asocket->so_rcv; om = tsbuf->sb_mb; #ifdef AFS_ACTFLAG /* pull packet off chain appropriately */ sbfree(tsbuf, om); for(tm=om->m_next; tm; tm = tm->m_next) { if (afs_debug & 2) afs_dp("psize %d, %x %x %x %x %x %x %x %x\n", tm->m_len, mtod(tm, long *)[0], mtod(tm, long *)[1], mtod(tm, long *)[2], mtod(tm, long *)[3], mtod(tm, long *)[4], mtod(tm, long *)[5], mtod(tm, long *)[6], mtod(tm, long *)[7]); sbfree(tsbuf, tm); if (tm->m_act) break; } /* tm now points to the last mbuf in the chain. We set the next guy in the socket from this guy's next field, and zero out tm's next field, turning our mbuf chain into a packet. */ if (tm) { asocket->so_rcv.sb_mb = tm->m_next; tm->m_next = (struct mbuf *) 0; } else panic("afs receive"); #else #ifdef vax tm=om; if (tm && tm->m_type == MT_SONAME){ /* Better be! */ bcopy((caddr_t) mtod(om, caddr_t), addr, sizeof(*addr)); data = sbdroprecord(tsbuf); } for (tm=data; tm; tm=tm->m_next) sbfree(tsbuf, tm); tsbuf->sb_mb = data->m_act; #else /* adjust socket quota usage */ for(tm=om; tm; tm = tm->m_next) { if (afs_debug & 2) afs_dp("psize %d, %x %x %x %x %x %x %x %x\n", tm->m_len, mtod(tm, long *)[0], mtod(tm, long *)[1], mtod(tm, long *)[2], mtod(tm, long *)[3], mtod(tm, long *)[4], mtod(tm, long *)[5], mtod(tm, long *)[6], mtod(tm, long *)[7]); sbfree(tsbuf, tm); } /* pull packet off chain appropriately; have to admit true 4.3 approach is cleaner */ tsbuf->sb_mb = om->m_act; om->m_act = (struct mbuf *) 0; #endif vax #endif splx(priority); sbunlock(&asocket->so_rcv); #ifdef vax om = tm = data; #else /* om now points at the whole packet, including address mbuf */ /* the first mbuf contains only the from address information (16 bytes) */ bcopy((caddr_t) mtod(om, caddr_t), addr, sizeof(*addr)); tm = om->m_next; /* tm is now the first data (rather than addr) mbuf */ #endif if (!tm) panic("afsr rdata"); if (tm->m_next) { /* if multiple mbufs, make a copy and return it */ *adata = osi_AllocSendSpace(); *ambuf = (struct mbuf *) 0; /* means pure data */ temp = m_cpytoc(tm, 0, 100000, *adata); *asize = 100000 - temp; m_freem(om); /* and free all mbufs */ } else { /* otherwise we have all the data in one mbuf, so we return it to the user */ #ifndef vax /* For Ultrix we've freed it above.. */ m_free(om); /* free address mbuf */ #endif *ambuf = tm; *adata = mtod(tm, char *); *asize = tm->m_len; } return 0; } osi_InitWaitHandle (achandle) register struct osi_WaitHandle *achandle; { achandle->proc = (caddr_t) 0; } /* cancel osi_NetWait */ osi_CancelNetWait(achandle) struct osi_WaitHandle *achandle; { caddr_t proc; proc = achandle->proc; if (proc == 0) return; achandle->proc = (caddr_t) 0; /* so dude can figure out he was signalled */ unselect(proc); } /* wait for data on asocket, or ams ms later. asocket may be null. Returns 0 if timeout, 1 if data is available and 2 if signalled */ int osi_NetWait(asocket, ams, achandle) register struct socket *asocket; register struct osi_WaitHandle *achandle; long ams; { register int code; register int priority; code = 0; if (achandle) achandle->proc = (caddr_t) 0; priority = splnet(); if (asocket) { if (soreadable(asocket)) { splx(priority); return 1; } } /* if here, we found no packets. Wait for timeout or data */ if (ams == 0) return 0; if (asocket) { sbselqueue(&asocket->so_rcv); } if (achandle) achandle->proc = (caddr_t) u.u_procp; osi_CallProc(unselect, (char *) u.u_procp, ams); sleep(&selwait, PZERO-2); osi_CancelProc(unselect, (char *) u.u_procp); if (achandle) { if (achandle->proc == 0) code = 2; /* CancelNetWait was called */ else achandle->proc = (caddr_t) 0; } /* one last chance for data to have arrived */ if (asocket && code == 0) { if (soreadable(asocket)) { code = 1; } } splx(priority); return code; } #]`lo$ #%#`#` h x J%/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:r.c 12.2$ */ /* $ACIS:r.c 12.2$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/r.c,v $ */ #ifndef lint static char *rcsid = "$Header:r.c 12.2$"; #endif /* A quick remote procedure call package using pure source routing. Mike Kazar David Nichols July, 1986 */ #include "../h/types.h" #include "../h/socket.h" #include "../h/file.h" #include "../h/stat.h" #include "../netinet/in.h" #include "../h/time.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #define R_INTERNALS 1 #include "../afs/osi.h" #include "../afs/r.h" #include "../afs/lock.h" int r_debug = 0; extern int afs_running; char *r_GetRequest_sleep_addr; int r_SocketListener(); #define PACKETSIZE 1500 /* normal size of a packet */ #define NPACKETS 10 /* number of them to preallocate */ #define SMALLPACKETSIZE 100 /* size of a "small" packet */ #define NRETRIES 10 /* number of retries before giving up */ #define RETRYINTERVAL 2 /* time between retries, in seconds */ #define CHTableSize 128 /* size of the connection hash table */ #define CHTableMask 0x7f /* mask for quick mod operation */ #define MAXREPLYRETRIES 10 /* times to retry the reply */ #define IDLECONNECTIONTIME 700 /* time before we can toss an idle connection */ /* Globals that the client can change before initializing. */ int r_sendVersion = 3; int r_nPackets = NPACKETS; /* number of packets to allocate */ int r_packetSize = PACKETSIZE; /* the size of them */ int r_nRetries = NRETRIES; /* number of retries on a call */ int r_retryInterval = RETRYINTERVAL; /* in seconds */ int r_idleConnectionTime = IDLECONNECTIONTIME; /* in seconds */ int (*r_FreeConnProc)(); /* proc to call when conn freed */ int (*r_GetKeys)(); /* client's get keys routine / called on SL stack */ int (*r_WhoIsThisReally)(); /* server's decode routine / called on SL stack */ int r_errno = 0; /* for better error detection */ long r_epoch; /* for client use in detecting crashes */ static u_short myPortal = 0; /* identification of this rpc */ static struct r_packet *pbFreeList; /* the free packet list */ static short pbFreeWaiters = 0; /* how many waiting for free packets */ static struct r_packet *slExtraSendPacket; /* these two for emergency use */ static struct r_packet *slExtraRecvPacket; static struct r_server *allServers = 0; struct lock afs_rlock; static struct r_connection *connHashTable[CHTableSize]; static long nextSid = 0; /* next sid to give out */ int r_packetFlakiness = 0; /* # of packet of each 100 to discard on sending */ long r_freeCount; /* number of free packets */ struct r_stat r_stat; /* r statistics block */ int r_initialized = FALSE; /* true after call to r_Init */ #define CHash(a,b,c) (((long)(a)+(long)(b)+(long)(c)) & CHTableMask) /*********Manually insert queue package here*********/ /* we do this to avoid library name conflicts */ static struct q *qFreeList=0; static QInit (aq) register struct q *aq; { aq->prev = aq->next = aq; aq->data = aq->data2 = 0; } static struct q *QNew () { register struct q *tq; if (qFreeList) { tq = qFreeList; qFreeList = tq->next; } else tq = (struct q *) osi_Alloc(sizeof (struct q)); if (tq != 0) QInit(tq); return tq; } static QFree(aq) register struct q *aq; { aq->next = qFreeList; qFreeList = aq; } static QAddBefore (aq, ae) register struct q *aq, *ae; { ae->next = aq; ae->prev = aq->prev; aq->prev->next = ae; aq->prev = ae; } static QRemove (ae) register struct q *ae; { ae->next->prev = ae->prev; ae->prev->next = ae->next; } r_cleanup() { r_debug = 0; r_GetRequest_sleep_addr = 0; r_sendVersion = 3; r_nPackets = NPACKETS; r_packetSize = PACKETSIZE; r_nRetries = NRETRIES; r_retryInterval = RETRYINTERVAL; r_idleConnectionTime = IDLECONNECTIONTIME; r_errno = 0; r_epoch = 0; myPortal = 0; pbFreeList = 0; pbFreeWaiters = 0; slExtraSendPacket = 0; slExtraRecvPacket = 0; allServers = 0; bzero(&afs_rlock, sizeof(afs_rlock)); bzero(connHashTable, sizeof(connHashTable)); nextSid = 0; r_packetFlakiness = 0; r_freeCount = 0; bzero(&r_stat, sizeof(r_stat)); r_initialized = FALSE; qFreeList=0; } struct r_server *r_NewServer(aport) u_short aport; { register struct r_server *ts; struct osi_socket *newSocket; r_Init(); /* make sure packets have been created */ ObtainWriteLock(&afs_rlock); newSocket = osi_NewSocket(aport); if (newSocket == (struct osi_socket *) 0) return (struct r_server *) 0; ts = (struct r_server *) kmem_alloc(sizeof(struct r_server)); bzero(ts, sizeof(struct r_server)); ts->socket = newSocket; ts->next = allServers; QInit(&ts->requestWaiters); QInit(&ts->lastAckConns); allServers = ts; ReleaseWriteLock(&afs_rlock); return ts; } /* Find a connection given the client host, portal and sid. */ struct r_connection *r_FindConn (ahost, aportal, asid) register u_long ahost; register u_short aportal; register long asid; { register int i; register struct r_connection *tconn; i = CHash(ahost, aportal, asid); for(tconn=connHashTable[i]; tconn; tconn=tconn->hnext) { if (tconn->isClient && ahost == 0 && aportal == myPortal && asid == tconn->sid) return tconn; if (!tconn->isClient && tconn->host == ahost && tconn->portal == aportal & tconn->sid == asid) return tconn; } /* otherwise return 0 */ return 0; } /* get a connection out of the lastAckConns queue */ static int RemQueue(as, aconn) struct r_server *as; register struct r_connection *aconn; { register struct q *tq; aconn->flags &= ~CFINQUEUE; for (tq = as->lastAckConns.next; tq != &as->lastAckConns; tq=tq->next) { if (tq->data == (long) aconn) { QRemove(tq); QFree(tq); return 0; } } return -1; } r_SetAuth(aconn, awho) register struct r_connection *aconn; register long awho; { char *stp, *ctp; char ctpSpace[8]; /* the space for the key */ char stpSpace[100]; /* space for the secret token */ long len; ObtainWriteLock(&afs_rlock); aconn->auth.who = awho; if (r_GetKeys) { /* now, if there is a getkeys procedure, we should make sure we have the encryption key so we can send the first packet encrypted. */ ctp = ctpSpace; /* in case r_GetKeys proc doesn't provide own space */ stp = stpSpace; if (r_GetKeys(awho, &stp, &len, &ctp, aconn) == 0) { bcopy((char *) ctp, (char *) &aconn->auth.key, sizeof(struct r_encryptionKey)); } } ReleaseWriteLock(&afs_rlock); } /* Initialize the package. Supply a port address in network order, or give a zero and R will pick one for you. */ r_Init () { register int i; register struct r_packet *tp; register int ps; register char *space; if (r_initialized) return 0; r_initialized = TRUE; Lock_Init(&afs_rlock); /* Clean out the connection hash table. */ for (i=0; i < CHTableSize; i++) connHashTable[i] = 0; /* Allocate some packets. */ if (r_packetSize < SMALLPACKETSIZE) r_packetSize = SMALLPACKETSIZE; ps = sizeof(struct r_packet); ps = ((ps - 1) | 3) + 1; /* round up to next multiple of 4 */ space = osi_Alloc((2+r_nPackets) * ps); /* alloc in one blob to avoid fragmentation */ for(i=0; i < r_nPackets; i++) { tp = (struct r_packet *) (space + (2+i)*ps); /* two emergency packets */ tp->next = pbFreeList; pbFreeList = tp; } r_freeCount = r_nPackets; /* slExtraSendPacket always has associated data buffer. Emergency Receive buffer, on the other hand, has data buffer repeated allocated and deallocated in socket listener, so as to enable use of driver-provided mbufs. */ tp = (struct r_packet *) (space); tp->data = osi_AllocSendSpace(); xdrmem_create(&tp->xdrs, tp->data, r_packetSize, XDR_ENCODE); slExtraSendPacket = tp; tp = (struct r_packet *) (space+ps); tp->data = 0; tp->mbuf = 0; slExtraRecvPacket = tp; r_epoch = osi_Time(); return 0; } /* Make a new client connection. */ struct r_connection *r_NewConn(aserver, ahost, aportal) struct r_server *aserver; u_long ahost; u_short aportal; { register struct r_connection *tconn; register int i; long localSid; ObtainWriteLock(&afs_rlock); localSid = (r_epoch << 16) | (++nextSid & 0xFFFF); i = CHash(0, 0, localSid); tconn = (struct r_connection *) osi_Alloc(sizeof (struct r_connection)); bzero((char *) tconn, sizeof(struct r_connection)); tconn->hnext = connHashTable[i]; connHashTable[i] = tconn; tconn->isClient = TRUE; tconn->host = ahost; tconn->portal = aportal; tconn->auth.who = R_NOAUTH; tconn->sid = localSid; tconn->seqno = osi_Time(); /* Never will be zero */ tconn->server = aserver; tconn->state = CIDLE; tconn->retryCount = r_nRetries; ReleaseWriteLock(&afs_rlock); return tconn; } /* Make a new server connection. Called only by socket listener */ static struct r_connection *r_NewSConn(aserver, cHost, cPortal, cSid) u_long cHost; u_short cPortal; struct r_server *aserver; long cSid; { register struct r_connection *tconn; register int i; i = CHash(cHost, cPortal, cSid); tconn = (struct r_connection *) osi_Alloc(sizeof (struct r_connection)); bzero((char *) tconn, sizeof(struct r_connection)); tconn->hnext = connHashTable[i]; connHashTable[i] = tconn; tconn->isClient = FALSE; tconn->server = aserver; tconn->host = cHost; tconn->auth.who = R_NOAUTH; tconn->portal = cPortal; tconn->sid = cSid; tconn->state = SIDLE; return tconn; } /* free a client connection, don't obtain lock */ static FreeConnection (aconn) register struct r_connection * aconn; { register int i; register struct r_connection *tc, **lc; #ifdef DEBUG if (r_debug) printf("F: freeing connection sid %x\n", aconn->sid); #endif /* we only call this on a server conn if it is safe to nuke it, thus only check client conns */ if (aconn->isClient) { if (aconn->state != CIDLE) { aconn->flags |= CFDODELETE; return; } i = CHash(0, 0, aconn->sid); } else { if (aconn->flags & CFINQUEUE) { RemQueue(aconn->server, aconn); } i = CHash(aconn->host, aconn->portal, aconn->sid); } lc = &connHashTable[i]; for(tc = *lc; tc; tc=tc->hnext) { if (tc == aconn) { *lc = aconn->hnext; if (aconn->callp) FreePacket(aconn->callp); if (aconn->reply) FreePacket(aconn->reply); if (r_FreeConnProc && !aconn->isClient) (*r_FreeConnProc)(aconn); osi_Free((char *) aconn, sizeof(struct r_connection)); return; } lc = &tc->hnext; } } /* free connection under monitor lock */ r_FreeConnection(aconn) register struct r_connection *aconn; { ObtainWriteLock(&afs_rlock); FreeConnection(aconn); ReleaseWriteLock(&afs_rlock); } /* Allocate a packet with an XDR gismo set up for it. */ static struct r_packet *r_AllocPacket (asize, xdrOp, wait) register int asize; /* packet size */ register enum xdr_op xdrOp; /* xdr direction for xdr gismo */ int wait; /* if false, don't wait, just return */ { register struct r_packet *tp; if (asize > r_packetSize) return 0; /* Do something worse? */ while (1) { if (pbFreeList) { r_freeCount--; tp = pbFreeList; pbFreeList = tp->next; tp->header.flags = 0; tp->mbuf = (struct mbuf *) 0; tp->data = (char *) 0; #ifdef DEBUG if (r_debug) printf("Alloc: %x\n", tp); #endif #ifdef DEBUG tp->next = 0; /* means packet is allocated; checked in r_FreePacket */ #endif return tp; } if (!wait) return NULL; pbFreeWaiters++; osi_Sleep((char *) &pbFreeList); pbFreeWaiters--; } } /* free packet without locks */ static FreePacket(apacket) register struct r_packet *apacket; { /* XDR_DESTROY(&apacket->xdrs); save a few cycles on noop destroy */ r_freeCount++; /* free associated packet data */ if (apacket->mbuf) { osi_FreeRecvBuffer(apacket->mbuf); apacket->mbuf = (struct mbuf *) 0; } else if (apacket->data) { osi_FreeSendSpace(apacket->data); } apacket->data = (char *) 0; apacket->next = pbFreeList; pbFreeList = apacket; if (pbFreeWaiters) osi_Wakeup((char *) &pbFreeList); } r_FreePacket(apacket) register struct r_packet *apacket; { /* XDR_DESTROY(&apacket->xdrs); save a few cycles on noop destroy */ ObtainWriteLock(&afs_rlock); r_freeCount++; /* free associated packet data */ if (apacket->mbuf) { osi_FreeRecvBuffer(apacket->mbuf); apacket->mbuf = (struct mbuf *) 0; } else if (apacket->data) { osi_FreeSendSpace(apacket->data); } apacket->data = (char *) 0; apacket->next = pbFreeList; pbFreeList = apacket; if (pbFreeWaiters) osi_Wakeup((char *) &pbFreeList); ReleaseWriteLock(&afs_rlock); } /* Allocate a packet for receiving. */ static struct r_packet *r_AllocRecvPacket(size) int size; { /* Right now, assume this is the socket listener calling: don't wait. */ return r_AllocPacket(size, XDR_DECODE, FALSE); } /* don't change these two without changing r.h's declaration of the structure */ #define HEADER_WORDS 8 /* 4 byte words in xdr header */ #define CLEAR_WORDS 5 /* 4 byte words sent in the clear */ /* Pack or unpack the header of a packet. this routine is generally very messy, because in here we put all the smartness for handling incompatible versions */ bool_t xdr_rheader(xdrs, header) XDR *xdrs; register struct r_header *header; { register long *buf; long temp; register long tsize; if (xdrs->x_op == XDR_FREE) return TRUE; /* DANGER! Make sure the two parts of this if statement match! */ if (xdrs->x_op == XDR_ENCODE) { /* This is the snap-compatible transmitter. */ /* and don't forget to change the protocol version */ /* clear words is 5, and header words is 8 */ if ((buf = XDR_INLINE(xdrs, HEADER_WORDS*BYTES_PER_XDR_UNIT)) == NULL) return FALSE; IXDR_PUT_LONG(buf, (RPROTOVERSION << 16) | (HEADER_WORDS << 8) | header->flags); IXDR_PUT_LONG(buf, header->who); IXDR_PUT_LONG(buf, header->sid); IXDR_PUT_LONG(buf, 0x10001); /* fragment 1 of 1 */ IXDR_PUT_LONG(buf, (header->opcode << 24) | (CLEAR_WORDS << 16) | header->length); /* encryption starts here */ IXDR_PUT_LONG(buf, header->epoch); IXDR_PUT_LONG(buf, header->seqno); IXDR_PUT_LONG(buf, -1L); /* checksum not computed */ } else { xdr_long(xdrs, &temp); if ((temp>>16) == 2) { /* old stuff for compatability. eventuall get rid of this code! */ tsize = temp & 0xFFFF; if ((buf = XDR_INLINE(xdrs, (tsize-1)*BYTES_PER_XDR_UNIT)) == NULL) return FALSE; header->sid = IXDR_GET_LONG(buf); header->seqno = IXDR_GET_LONG(buf); header->who = IXDR_GET_LONG(buf); temp = IXDR_GET_LONG(buf); header->opcode = temp >> 16; header->flags = temp & 0xFFFF; header->epoch = IXDR_GET_LONG(buf); header->headerSize = HEADER_WORDS; header->clearSize = CLEAR_WORDS; } else { /* new snap-compatible version */ tsize = (temp&0xff00)>>8; header->headerSize = tsize; if ((buf = XDR_INLINE(xdrs, (tsize-1)*BYTES_PER_XDR_UNIT)) == NULL) return FALSE; header->flags = temp & 0xff; header->who = IXDR_GET_LONG(buf); header->sid = IXDR_GET_LONG(buf); IXDR_GET_LONG(buf); /* skip fragmentation junk */ tsize = IXDR_GET_LONG(buf); header->opcode = (tsize>>24) & 0xff; header->clearSize = (tsize >> 16) & 0xff; /* throw away message length */ header->epoch = IXDR_GET_LONG(buf); header->seqno = IXDR_GET_LONG(buf); /* throw away checksum for now */ IXDR_GET_LONG(buf); } } return TRUE; } /* Allocate a packet for sending. */ struct r_packet *r_AllocSendPacket(size) int size; { register struct r_packet *tp; ObtainWriteLock(&afs_rlock); tp = r_AllocPacket(size, XDR_ENCODE, TRUE); ReleaseWriteLock(&afs_rlock); if (tp == NULL) return tp; /* The header is uninitialized, but reserve the space anyway */ tp->data = osi_AllocSendSpace(); xdrmem_create(&tp->xdrs, tp->data, r_packetSize, XDR_ENCODE); XDR_SETPOS(&tp->xdrs, HEADER_WORDS*BYTES_PER_XDR_UNIT); return tp; } /* Send a packet on a connection and wait for a reply. */ struct r_packet *r_SendPacket(aconn, apacket) register struct r_connection *aconn; register struct r_packet *apacket; { register int code; register struct r_packet *tp; int retries; int retryInterval = r_retryInterval; r_stat.outCalls++; retries = 0; r_errno = 0; /* see if we're doing an abbreviated call */ while (aconn->state != CIDLE) { ++aconn->nWaiters; osi_Sleep((char *) aconn); --aconn->nWaiters; } ObtainWriteLock(&afs_rlock); apacket->header.sid = aconn->sid; apacket->header.flags = aconn->encryptionLevel << HELShift; apacket->header.seqno = aconn->seqno; apacket->header.who = aconn->auth.who; apacket->header.opcode = OCall; apacket->header.epoch = r_epoch; apacket->header.length = (int) XDR_GETPOS(&apacket->xdrs); XDR_SETPOS(&apacket->xdrs, 0); if (!xdr_rheader(&apacket->xdrs, &apacket->header)) { FreePacket(apacket); r_errno = R_ERROR; ReleaseWriteLock(&afs_rlock); return NULL; } /* time to actually send the data */ r_sendto(apacket, aconn, 1); /* encrypt it the first time */ aconn->state = CSENT; while (1) { /* what can you do but retry anyway if fails? */ ReleaseWriteLock(&afs_rlock); code = osi_NetWait(0, retryInterval*1000, &aconn->handler); ObtainWriteLock(&afs_rlock); /* now see if we're done */ if (code == 2) { /* signalled */ if (aconn->flags & CFGOTBUSY) { /* Great, just slow down now. */ if (aconn->flags & CFNOLWP) retryInterval = r_retryInterval << 2; else retryInterval = r_retryInterval << 1; aconn->flags &= ~(CFGOTBUSY|CFNOLWP); retries = 0; continue; /* skip first retransmit */ } if (tp=aconn->reply) { if (tp->header.seqno == aconn->seqno /* and other tests */) { aconn->reply = 0; aconn->state = CIDLE; aconn->seqno++; FreePacket(apacket); if (aconn->nWaiters != 0) osi_Wakeup((char *) aconn); /* wakeup others waiting for conn */ else if (aconn->flags & CFDODELETE) FreeConnection(aconn); if ((tp->header.flags & HError) == 0) { ReleaseWriteLock(&afs_rlock); return tp; } else { r_errno = R_ERROR; r_stat.inErrors++; FreePacket(tp); ReleaseWriteLock(&afs_rlock); return 0; } } /* if we get here, we got a bogus response packet */ FreePacket(tp); aconn->reply = NULL; } } else { /* a timeout */ if (++retries >= aconn->retryCount) { aconn->state = CIDLE; aconn->seqno++; FreePacket(apacket); /* check for race between delivery and IOMGR timeout */ if (tp = aconn->reply) { FreePacket(tp); aconn->reply = 0; } if (aconn->nWaiters != 0) osi_Wakeup((char *) aconn); /* wakeup others waiting for conn */ else if (aconn->flags & CFDODELETE) FreeConnection(aconn); r_stat.callDeads++; r_errno = R_TIMEOUT; ReleaseWriteLock(&afs_rlock); return 0; } } r_sendto(apacket, aconn, 0); r_stat.outCallsX++; } } /* Servers should call this instead of r_SendResponse it they don't intend to respond to a request. */ r_NoResponse(aconn) register struct r_connection *aconn; { register struct r_packet *tp; tp = r_AllocSendPacket(100); tp->header.flags |= HError; return r_SendResponse(aconn, tp); } /* Send a reply packet. */ r_SendResponse (aconn, apacket) register struct r_connection *aconn; register struct r_packet *apacket; { register struct q *tq; ObtainWriteLock(&afs_rlock); r_stat.outResps++; aconn->reply = apacket; aconn->replyRetries = 0; aconn->state = SIDLE; apacket->header.sid = aconn->sid; apacket->header.seqno = aconn->seqno; apacket->header.who = R_NOAUTH; /* later will be set from connection */ apacket->header.opcode = OResponse; apacket->header.length = (int) XDR_GETPOS(&apacket->xdrs); XDR_SETPOS(&apacket->xdrs, 0); if (!xdr_rheader(&apacket->xdrs, &apacket->header)) { FreePacket(apacket); aconn->reply = NULL; ReleaseWriteLock(&afs_rlock); return -1; } r_sendto(apacket, aconn, 1); aconn->timeResponseSent = osi_Time(); #ifdef DEBUG if (aconn->flags & CFINQUEUE) panic("r inqueue"); #endif tq = QNew(); tq->data = (long) aconn; /* queue of connections needing retransmission */ QAddBefore(&aconn->server->lastAckConns, tq); aconn->flags |= CFINQUEUE; ReleaseWriteLock(&afs_rlock); return 0; } /* call after a getrequest, if you decide you can not handle the request right now */ r_SendBusy (aconn) register struct r_connection *aconn; { register struct r_packet *tpacket; tpacket = r_AllocSendPacket(100); ObtainWriteLock(&afs_rlock); aconn->state = SIDLE; tpacket->header.sid = aconn->sid; tpacket->header.seqno = --aconn->seqno; /* back out sequence increment */ tpacket->header.who = R_NOAUTH; /* later will be set from connection */ tpacket->header.opcode = OAckCall; tpacket->header.length = 4*HEADER_WORDS; XDR_SETPOS(&tpacket->xdrs, 0); if (!xdr_rheader(&tpacket->xdrs, &tpacket->header)) { FreePacket(tpacket); ReleaseWriteLock(&afs_rlock); return -1; } r_sendto(tpacket, aconn, 1); aconn->timeResponseSent = osi_Time(); FreePacket(tpacket); ReleaseWriteLock(&afs_rlock); return 0; } /* Get the next incoming request packet. */ r_GetRequest(aserver, aconn, apacket) struct r_server *aserver; struct r_connection **aconn; struct r_packet **apacket; { register struct q *tq; ObtainWriteLock(&afs_rlock); tq = QNew(); QAddBefore(&aserver->requestWaiters, tq); ReleaseWriteLock(&afs_rlock); r_GetRequest_sleep_addr = (char *) tq; osi_Sleep((char *) tq); *aconn = (struct r_connection *) tq->data; *apacket = (struct r_packet *) tq->data2; ObtainWriteLock(&afs_rlock); QFree(tq); ReleaseWriteLock(&afs_rlock); return 0; } /* Decrypt or encrypt (based on encryptp) a packet (ap), from connection aconn, whose length, counting headers, is alen. Note that trashing the rgen opcode field in the data part of the packet will be sufficient to ensure that no fake calls get through. Eventually we should ensure there's a magic number in the encrypted header to check. */ SecretPacket(ap, aconn, encryptp) register struct r_packet *ap; int encryptp; register struct r_connection *aconn; { register long len; register char *pos; /* see if we should not encrypt this packet */ if (aconn->auth.who == R_NOAUTH || !(ap->header.opcode == OCall || ap->header.opcode == OResponse)) return; len = ap->header.length; /* full enchilada, headers only is same, only stop after HEADER_WORDS */ if (aconn->encryptionLevel == RSECURE) { if (encryptp) { pos = ap->data + 4*CLEAR_WORDS; Encrypt (pos, pos, len - 4*CLEAR_WORDS, &aconn->auth.key); } else { pos = ap->data + 4*ap->header.clearSize; Decrypt (pos, pos, len - 4*ap->header.clearSize, &aconn->auth.key); /* if we're decrypting, we should give the user all the right stuff in the header structure. Note that we might re-xdr only the encrypted stuff, but that would require duplicating in another part of the code the incredibly hairy (during times of incompatible changes) xdr_rheader and it's just probably not worth it, 'least right now */ XDR_SETPOS(&ap->xdrs, 0); xdr_rheader(&ap->xdrs, &ap->header); } } } #define LASLEEP 4 /* how often to retransmit last acks */ #define IDLESLEEP 60 /* how often to check for idle connections */ r_SocketListener (as) struct r_server *as; { struct timeval tv; int emergency; /* TRUE when we're out of packet bufs */ register long code; register struct r_connection *tconn, *nconn; register struct q *tq; struct q *nq; struct r_packet *ap; register struct r_packet *tp; struct r_packet *tp2; char *stp; struct r_encryptionKey *ctp; char secretTokenSpace[100]; struct r_encryptionKey keySpace; long lastTime, laLastTime, now; struct sockaddr_in tfrom; long len; register int i; #ifdef DEBUG struct timeval delay; #endif lastTime = 0; laLastTime = 0; ObtainWriteLock(&afs_rlock); while (afs_running) { /* give up memory associated with slExtraRecvPacket, now that we're done with it */ tp = slExtraRecvPacket; if (tp->mbuf) { osi_FreeRecvBuffer(tp->mbuf); tp->mbuf = (struct mbuf *) 0; } else if (tp->data) { osi_FreeSendSpace(tp->data); } tp->data = (char *) 0; /* if no last acks to re-transmit, just watch for server conns to knock off */ tv.tv_sec = (as->lastAckConns.next == &as->lastAckConns? IDLESLEEP : 2); ReleaseWriteLock(&afs_rlock); code = osi_NetWait(as->socket, tv.tv_sec * 1000, 0); ObtainWriteLock(&afs_rlock); now = osi_Time(); /* Check to see what must be retransmitted. */ if (laLastTime + LASLEEP < now) { laLastTime = now; for (tq = as->lastAckConns.next; tq != &as->lastAckConns; tq=nq) { nq = tq->next; tconn = (struct r_connection *) tq->data; if (tconn->reply != NULL && tconn->timeResponseSent + LASLEEP < now && tconn->replyRetries < MAXREPLYRETRIES) { /* Time to retransmit. */ r_sendto(tconn->reply, tconn, 0); tconn->replyRetries++; tconn->timeResponseSent = now; r_stat.outRespsX++; } else if (tconn->reply == NULL || (tconn->timeResponseSent+LASLEEP < now && tconn->replyRetries >= MAXREPLYRETRIES)) { if (tconn->reply != NULL) FreePacket(tconn->reply); tconn->reply = NULL; tconn->flags &= ~CFINQUEUE; r_stat.replyDeads++; QRemove(tq); QFree(tq); } } } /* Check for idle connections. */ if (lastTime + IDLESLEEP < now) { lastTime = now; for (i = 0; i < CHTableSize; ++i) { tconn = connHashTable[i]; while (tconn != NULL) { nconn = tconn->hnext; /* connection has been idle for a while */ if (tconn->state == SIDLE && tconn->timeResponseSent + r_idleConnectionTime < now) { /* Toss connection */ FreeConnection(tconn); } /* connection has been waiting for token response for a while */ else if (tconn->state == SAUTHWAIT && tconn->timeResponseSent + (r_idleConnectionTime>>1) < now) { FreeConnection(tconn); } tconn=nconn; } } } if (code != 1) /* Cancel or timeout */ continue; /* we have a packet */ emergency = FALSE; tp = r_AllocRecvPacket(r_packetSize); if (tp == NULL) { tp = slExtraRecvPacket; if (tp->data) panic("slrecv data"); /* watch for memory leaks */ emergency = TRUE; #ifdef DEBUG if (r_debug) printf("emergency packet\n"); #endif } code = osi_NetReceive(as->socket, &tfrom, &tp->mbuf, &tp->data, &len); if (code != 0) { if (!emergency) FreePacket(tp); continue; /* done with processing */ } xdrmem_create(&tp->xdrs, tp->data, r_packetSize, XDR_DECODE); XDR_SETPOS(&tp->xdrs, 0); tp->header.length = len; if (!xdr_rheader(&tp->xdrs, &tp->header)) { if (!emergency) FreePacket(tp); continue; } #ifdef DEBUG if (r_debug) { osi_GetTime(&delay); printf("R: op = %d, seqno = %d, port=%d, sid=%x (%d.%d)\n", tp->header.opcode, tp->header.seqno & 0xff, tfrom.sin_port, tp->header.sid, delay.tv_sec, delay.tv_usec); } #endif /* Find the connection this packet belongs to if there is one. */ if (tp->header.opcode == OCall || tp->header.opcode == OAckResponse || tp->header.opcode == OKeys) /* We're the server */ tconn = r_FindConn((long) tfrom.sin_addr.s_addr, (long) tfrom.sin_port, tp->header.sid); else tconn = r_FindConn(0, myPortal, tp->header.sid); /* if we have a connection */ if (tconn) { /* decrypt packet (except for those for which we must create a new conn */ if (tconn->encryptionLevel != RAUTHONLY) SecretPacket(tp, tconn, 0); /* Process acknowledgement of reply */ if (tconn->reply != NULL && (tp->header.opcode == OCall || tp->header.opcode == OAckResponse) && tp->header.seqno > tconn->seqno) { FreePacket(tconn->reply); /* Now see if we can use the packet we just freed. */ if (emergency && (tp2 = r_AllocRecvPacket(r_packetSize)) != NULL) { slExtraRecvPacket = tp2; emergency = FALSE; } tconn->reply = NULL; if (tconn->flags & CFINQUEUE) RemQueue(as, tconn); } } else { /* no connection */ if (tp->header.opcode != OCall) { /* No connection? Only call packets can do anything useful (create a new conn) so throw away the packet unless we've got a OCall opcode. */ if (!emergency) FreePacket(tp); continue; } } /* Now do switch statement on opcode. */ /* The OAckResponse case has already been handled. */ /* Note that OKeys and OGetKeys packets use the calls' sequence #, and the */ /* connection state sequence number is not changed during the authentication */ /* information exchange */ if (tp->header.opcode == OKeys) { /* we have just received the keys for the connection */ if (tconn->state == SAUTHWAIT) { if (r_WhoIsThisReally) { i = XDR_GETPOS(&tp->xdrs); code = (*r_WhoIsThisReally) (tconn, tp->data+i, tp->header.length - i); if (code != 0) tconn->auth.who = R_NOAUTH; tconn->flags |= CFKEYVALID; } /* free auth packet and continue processing old held packet */ if (!emergency) FreePacket(tp); tp = tconn->callp; tconn->callp = 0; emergency = FALSE; tconn->state = SIDLE; /* decrypt the held packet; can't do before have keys! */ if (tconn->encryptionLevel != RAUTHONLY) SecretPacket(tp, tconn, 0); /* we now continue processing with the old call packet!! */ } else { if (!emergency) FreePacket(tp); continue; } /* FALL THROUGH TO HANDLE NEWLY-DECRYPTED OCall PACKET!!!! */ } if (tp->header.opcode == OGetKeys) { /* Need to ask user for keys. */ stp = (char *) secretTokenSpace; /* GetKey may also supply own ptr */ ctp = &keySpace; if (r_GetKeys && ((*r_GetKeys)(tp->header.who, &stp, &len, &ctp, tconn)) == 0) { /* we have good tokens here */ bcopy((char *) ctp, (char *) &tconn->auth.key, sizeof(struct r_encryptionKey)); /* and ship the encrypted secret key to the other side */ ap = slExtraSendPacket; ap->header.sid = tp->header.sid; ap->header.seqno = tp->header.seqno; ap->header.who = tp->header.who; ap->header.opcode = OKeys; ap->header.flags = 0; ap->header.length = len + 4*HEADER_WORDS; XDR_SETPOS(&ap->xdrs, 0); xdr_rheader(&ap->xdrs, &ap->header); /* avoid using xdr_opaque to avoid sending length, since opaque adds chars */ bcopy((char *) stp, (char *) (ap->data + 4*HEADER_WORDS), (int) len); r_sendto(ap, tconn, 1); } /* finally free the packet, or drop emergency receive packet */ if (!emergency) FreePacket(tp); } else if (tp->header.opcode == OCall) { if (!tconn) { /* should check bounds here if desired */ tconn = r_NewSConn(as, (long) tfrom.sin_addr.s_addr, (long) tfrom.sin_port, tp->header.sid); tconn->seqno = 0; tconn->epoch = 0; tconn->encryptionLevel = (tp->header.flags >> HELShift) & HEncryptionLevel; } if (tp->header.who != R_NOAUTH) { /* packet contains authentication information */ if (!(tconn->flags&CFKEYVALID)) { if (emergency) continue; /* can't hold emergency packet in callp */ SLSendAck(OGetKeys, tp->header.seqno, tconn, tp->header.who); tconn->state = SAUTHWAIT; /* used to keep the oldest packet, but always should keep newest */ if (tconn->callp) { /* already checked emergency above */ FreePacket(tconn->callp); } tconn->callp = tp; /* start clock on leaving SAUTHWAIT */ tconn->timeResponseSent = osi_Time(); continue; } } if (tp->header.epoch != tconn->epoch) { /* other side crashed and re-started */ /* tconn->epoch will be set later, when we send the call to the lwp */ tconn->seqno = tp->header.seqno-1; /* force re-sync */ } /* switch on state */ /* packet may be still encrypted, so don't look at sequence number yet */ /* if we are in SAUTHWAIT mode, the CFKEYVALID flag is off, and we handled */ /* this case above. */ if (tconn->state == SBUSY) { if (tconn->seqno == tp->header.seqno) { SLSendAck(OAckCall, tp->header.seqno, tconn, tp->header.who); r_stat.outBusies++; } if (!emergency) FreePacket(tp); continue; } /* Here we have an idle connection and a new call. */ if (tconn->seqno == tp->header.seqno) { /* retransmission, just resend tconn->reply */ if (tconn->reply) code = r_sendto(tconn->reply, tconn, 0); if (!emergency) FreePacket(tp); continue; } else if (tp->header.seqno < tconn->seqno) { /* Out of sequence, toss it. */ r_stat.inOldPackets++; if (!emergency) FreePacket(tp); continue; } if (emergency) { /* no free packets, we can still keep other side alive */ SLSendBusy(OAckCall, tp->header.seqno, tconn, tp->header.who); continue; /* Can't sit on emergency packets */ } /* make sure that we're still not retransmitting last reply. Obscure paths in OCall (e.g. new epochs) can handle a call even when early ack code didn't think it could. So we are conservative here and toss the reply packet if it is present. */ if (tconn->flags & CFINQUEUE) { RemQueue(tconn->server, tconn); } if (tconn->reply) { r_FreePacket(tconn->reply); tconn->reply = (struct r_packet *) 0; } /* now find a process that can handle a new request */ if (as->requestWaiters.next != &as->requestWaiters) { r_stat.inCalls++; tconn->seqno = tp->header.seqno; /* only bump when call is accepted */ tconn->epoch = tp->header.epoch; tconn->state = SBUSY; QRemove(tq = as->requestWaiters.next); tq->data = (long) tconn; tq->data2 = (long) tp; osi_Wakeup((char *) tq); /* both tq and packet are free'd by the guy in r_GetRequest */ } else { /* send a busy packet to avoid timeouts on busy servers */ SLSendBusy(OAckCall, tp->header.seqno, tconn, tp->header.who); r_stat.outBusies++; FreePacket(tp); /* no one waiting for it */ } } else if (tp->header.opcode == OAckCall) { if (tconn->state == CSENT) { /* Find the lwp waiting for this. */ r_stat.inBusies++; if (!osi_NullHandle(&tconn->handler)) { tconn->flags |= CFGOTBUSY; /* test for other busy cause */ if (tp->header.flags & HError) tconn->flags |= CFNOLWP; osi_CancelNetWait(&tconn->handler); } } if (!emergency) FreePacket(tp); } else if (tp->header.opcode == OResponse) { /* See if this is a retransmit of the reply */ if (!(tconn->state == CSENT && tp->header.seqno == tconn->seqno)) { SLSendAck(OAckResponse, tp->header.seqno+1, tconn, tp->header.who); if (!emergency) FreePacket(tp); continue; } /* Else we must have a reply. */ if (emergency) continue; /* Can't give it away */ /* find the lwp waiting for the response */ if (!osi_NullHandle(&tconn->handler)) { tconn->reply = tp; osi_CancelNetWait(&tconn->handler); /* cancel net wait resets the handle, too */ } else FreePacket(tp); } else { /* unrecognized or ack response packet */ if (!emergency) FreePacket(tp); } } } static SLSendBusy(opcode, seqno, aconn, awho) int opcode; long awho; long seqno; register struct r_connection *aconn; { register struct r_packet *p; p = slExtraSendPacket; p->header.sid = aconn->sid; p->header.seqno = seqno; p->header.who = awho; p->header.opcode = opcode; p->header.flags = HError; /* ONLY DIFFERENCE with SLSendAck */ XDR_SETPOS(&p->xdrs, 0); p->header.length = 4*HEADER_WORDS; xdr_rheader(&p->xdrs, &p->header); r_sendto(p, aconn, 1); } static SLSendAck(opcode, seqno, aconn, awho) int opcode; long awho; long seqno; register struct r_connection *aconn; { register struct r_packet *p; p = slExtraSendPacket; p->header.sid = aconn->sid; p->header.seqno = seqno; p->header.who = awho; p->header.opcode = opcode; p->header.flags = 0; XDR_SETPOS(&p->xdrs, 0); p->header.length = 4*HEADER_WORDS; xdr_rheader(&p->xdrs, &p->header); r_sendto(p, aconn, 1); } /* Send a single packet. */ int r_sendto(pb, aconn, aencrypt) register struct r_packet *pb; /* packet to send */ struct r_connection *aconn; /* connection to send it on */ int aencrypt; /* should we (re)enrypt? */ { struct sockaddr_in addr; #ifdef DEBUG struct timeval delay; #endif if (pb == 0) panic("r sendto"); addr.sin_family = AF_INET; addr.sin_port = aconn->portal; addr.sin_addr.s_addr = aconn->host; if (aconn->encryptionLevel != RAUTHONLY && aencrypt) { SecretPacket(pb, aconn, 1); } #ifdef DEBUG if (r_debug) { osi_GetTime(&delay); printf("S: op = %d, seqno = %d, port=%x, sid=%x (%d.%d)...\n", pb->header.opcode, pb->header.seqno & 0xff, addr.sin_port, pb->header.sid, delay.tv_sec, delay.tv_usec); } #endif return osi_NetSend(aconn->server->socket, &addr, pb->data, pb->header.length); } #]lof$ .#%#`#` /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:physio.c 12.2$ */ /* $ACIS:physio.c 12.2$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/physio.c,v $ */ #ifndef lint static char *rcsid = "$Header:physio.c 12.2$"; #endif /* File physio.cx Author Mike Kazar NOTE This is NOT the standard physio.cx for venus or, yet alone, vice. It is a test one for use in src/dir. Date Now */ /* First we have the kernel hacks' include files. */ #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../afs/osi.h" #define PAGESIZE 2048 static struct osi_dev cacheDevice; physio_cleanup() { bzero(&cacheDevice, sizeof(cacheDevice)); } dirp_SetCacheDev (adev) register struct osi_dev *adev; { bcopy(adev, &cacheDevice, sizeof(cacheDevice)); } dirp_Read (fid, block, data) long *fid; /* View the fid as longs. */ long block; char *data; { struct osi_file *tf; long code; tf = osi_UFSOpen(&cacheDevice, fid[0]); if (!tf) Die("physio open"); osi_Seek(tf, block * PAGESIZE); code = osi_Read(tf, data, PAGESIZE); osi_Close(tf); if (code < PAGESIZE) return 0; return 1; /* success */ } dirp_Write(fid, block, data) long *fid; /* View the fid as longs. */ long block; char *data; { struct osi_file *tf; long code; tf = osi_UFSOpen(&cacheDevice, fid[0]); if (!tf) Die("physio open"); osi_Seek(tf, block * PAGESIZE); code = osi_Write(tf, data, PAGESIZE); if (code < 0) Die("physio read"); osi_Close(tf); return 1; /* success */ } /* The following three routines provide the fid routines used by the buffer and directory packages. */ int dirp_Zap (afid) register long *afid; {/* Zero out a file */ *afid = 0; } int dirp_Eq (afid, bfid) register long *afid, *bfid; { if (*afid != *bfid) return 0; return 1; } /* assign one fid to another */ int dirp_Cpy (dfid,sfid) register long *dfid, *sfid; { *dfid = *sfid; } /* general afs abort */ Die(arg) char *arg; {/* Print an error message and then exit. */ char buffer[100]; strcpy(buffer, "afs error -- "); strcpy(&buffer[strlen(buffer)], arg); /* uggggh! very fun, sun */ panic(buffer); } #]lo5$ c#%#W#ſ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidprs_fs = "$Header:prs_fs.h 12.0$"; #endif /* $Header:prs_fs.h 12.0$ */ /* $ACIS:prs_fs.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/prs_fs.h,v $ */ /* M.Satyanarayanan Information Technology Center Carnegie-Mellon University */ #ifndef _PRSFS_ #define _PRSFS_ /* An access list is associated with each directory. Possession of each of the following rights allows the possessor the corresponding privileges on ALL files in that directory */ #define PRSFS_READ 1 /*Read files*/ #define PRSFS_WRITE 2 /*Write and write-lock existing files*/ #define PRSFS_INSERT 4 /*Insert and write-lock new files*/ #define PRSFS_LOOKUP 8 /*Enumerate files and examine access list */ #define PRSFS_DELETE 16 /*Remove files*/ #define PRSFS_LOCK 32 /*Read-lock files*/ #define PRSFS_ADMINISTER 64 /*Set access list of directory*/ #endif #]lo$ #%#W#ſ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:r.h 12.0$ */ /* $ACIS:r.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/r.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidr = "$Header:r.h 12.0$"; #endif /* r.h -- definitions for r remote procedure call package Mike Kazar July, 1986 */ #ifdef R_INTERNALS #define RPROTOVERSION 3 /* here are the opcode definitions */ #define OCall 1 /* a call */ #define OResponse 2 /* the reply */ #define OAckCall 3 /* not a response, but acks a call */ #define OAckResponse 4 /* not a call, but acks a reply */ #define OGetKeys 5 /* please send authenticator */ #define OKeys 6 /* here is authenticator */ /* Values for flags in header */ #define HError 1 /* response auto. generated in response to an error */ /* n.b. next two used to get encryption level from bits 2 and 4 */ #define HEncryptionLevel 3 /* mask for encryption level */ #define HELShift 1 /* encryption level shift */ /* values for conn.state for client */ #define CIDLE 0x69 /* 'i' idle */ #define CSENT 0x77 /* 'w' sent request */ /* value for conn.state for server */ #define SIDLE 0x49 /* 'I' idle */ #define SBUSY 0x42 /* 'B' doing request */ #define SAUTHWAIT 0x41 /* 'A' waiting for OKeys pkt */ #endif R_INTERNALS /* Connection flags */ #define CFGOTBUSY 1 /* connection got an OAckCall packet */ #define CFINQUEUE 2 /* connection is in the lastAckConns queue */ #define CFKEYVALID 4 /* the auth.key field is valid */ #define CFDODELETE 8 /* delete this dude when next idle */ #define CFNOLWP 0x20 /* busy due to no free lwp's */ /* define r_errno values */ #define R_ERROR 1 /* random decoding error */ #define R_TIMEOUT 2 /* actual timeout */ #define RKEYSIZE 8 /* an encryption key for r */ struct r_encryptionKey { char data[RKEYSIZE]; }; struct q { struct q *next; struct q *prev; long data, data2; }; extern struct q *QNew(); /* The stuff in a packet header. This struct does not define the format, though. */ /* don't change this without changing r.c's xdr_rheader function */ struct r_header { long sid; /* the source subsys id */ unsigned long seqno; /* sequence number */ long who; /* auth info */ unsigned long epoch; /* when the rpc pkg started */ short length; /* in bytes, counting header; ignored on input */ char opcode; /* operation code */ char flags; /* flags like SYN */ char headerSize; /* the size of the header in words (in xdr representation) */ char clearSize; /* the amount of the header in the clear (in words, in xdr rep.) */ }; /* A packet buffer. */ struct r_packet { struct r_packet *next; /* next guy in the free list */ XDR xdrs; /* xdr structure for packing/unpacking */ struct r_header header; /* the unpacked header */ struct mbuf *mbuf; /* mbuf handle, or null */ char *data; /* pointer to data */ }; /* structure representing a single R server. Consists of a udp socket where packets * arrive, along with enough info for us to use them. */ struct r_server { struct q requestWaiters; /* users waiting for incoming requests */ struct q lastAckConns; /* conns waiting for last ack */ struct r_server *next; /* next server in list */ struct osi_socket *socket; /* associated server socket */ short states; /* always have those states */ u_short port; }; /* A connection. */ struct r_connection { struct r_connection *hnext; /* next in hash table */ u_long host; /* other guys' host */ u_short portal; /* other guys' udp port */ long sid; /* client's subport (always the client!) */ struct authInfo { long who; /* who we're authenticated as */ struct r_encryptionKey key; /* pointer to the handshake/session encryption key */ long authLevel; /* authentication level (further qualifies who field) */ long expirationTime; /* when the token expires */ } auth; unsigned long seqno; /* sequence number */ long timeResponseSent; /* guess */ struct r_packet *callp; /* call packet stored here while getting keys */ struct r_packet *reply; /* reply packet stored here until acked */ struct osi_WaitHandle handler; /* the lwp process handling this call */ struct r_server *server; /* associated server */ char *rock; /* a rock for the client to use in any way desired */ unsigned long epoch; /* the other dude's epoch value on the last call */ short replyRetries; /* number of times we're retried the reply */ unsigned char nWaiters; /* number of lwp's waiting for this connection */ char state; /* status */ char flags; /* flags */ char isClient; /* client or server connection? */ char encryptionLevel; /* the level we are using for encryption */ char retryCount; /* max retries for this conn */ }; /* values for encryptionLevel (fits in two bits par HEncryptionLevel) */ #define RAUTHONLY 0 /* must be zero, or init'd in r_New{Server}Conn */ #define RHEADERSONLY 1 #define RSECURE 2 /* Variables that the client can set before calling r_Init. */ extern int r_nPackets; /* number of packets to allocate */ extern int r_encryptionLevel; /* RAuthOnly, RHeadersOnly, RSecure */ extern int (*r_GetKeys)(); /* client's get keys routine / called on SL stack */ extern int (*r_WhoIsThisReally)(); /* server's decode routine / called on SL stack */ extern int r_packetSize; /* the size of them */ extern int r_nRetries; /* number of timeouts on a call */ extern int r_retryInterval; /* in seconds */ extern int (*r_FreeConnProc)(); /* proc to call with aconn when freeing server conn */ #define R_NOAUTH (-1L) /* value for auth param of r_SendPacket */ #define r_GetAuth(ac) (ac)->auth.who #define r_GetEpoch(ac) (ac)->epoch #define r_PeerHost(ac) (ac)->host #define r_PeerPortal(ac) (ac)->portal #define r_SetLevel(ac,al) (ac)->encryptionLevel=(al) #define r_GetLevel(ac) (ac)->encryptionLevel #define r_SetRetries(ac,val) (ac)->retryCount = (val) #define r_GetRetries(ac,val) ((ac)->retryCount) #define r_ResetRetries(ac) (ac)->retryCount = r_nRetries #define r_Busy(ac) ((ac)->state != CIDLE) struct r_stat { long inCalls; /* total incoming calls */ long inBusies; /* number of incoming busies */ long inErrors; /* number of response error packets */ long inOldPackets; /* out of seq packets */ long outCalls; /* total outgoing calls */ long outCallsX; /* output retransmissions */ long outResps; /* output send responses */ long outRespsX; /* and retransmissions of same */ long outBusies; /* busy packets we've sent */ long callDeads; /* number of dead calls */ long replyDeads; /* number of dead replies */ }; extern int r_Init(); extern struct r_packet *r_AllocSendPacket(); extern int r_FreePacket(); extern struct r_connection *r_NewConn(); extern struct r_server *r_NewServer(); extern struct r_packet *r_SendPacket(); extern int r_GetRequest(); extern int r_SendResponse(); #]loX$ #%#`#` P(/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:resource.c 12.3$ */ /* $ACIS:resource.c 12.3$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/resource.c,v $ */ #ifndef lint static char *rcsid = "$Header:resource.c 12.3$"; #endif #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #define R_INTERNALS 1 #include "../afs/r.h" #include "../afs/rftp.h" #include "../afs/lock.h" #include "../afs/volerrors.h" #include "../afs/voldefs.h" #include "../afsint/rvice.h" #include "../afsint/rvaux.h" #include "../afs/afs.h" /* This file contains routines used for dealing with users, volumes, cells * and connections. They are related, unfortunately, as follows: * * 1. A unix uid and a cell map * to a viceid and a set of tokens for authenticating as that vice user. * * 2. A vice fid (including cell) maps to the set of servers providing service * for the cell and volume of the file named by the fid. * * 3. A viceid and server maps to a particular connection that can be used * for authenticating as the particular user to that file server. * * The most-often performed operation starts with a Unix uid and a vice fid, * and iterates through all the connections to the servers that both provide * service for the file named by the fid and are authenticated as the uid * pair in the specified cell (the authentication is expressed as a cell, viceid * pair). * * Note that afs_rlock is the parent lock for cells, users, servers and volumes. * See large comment in lock.h about how parent locking really works. */ struct server *afs_FindServer (); extern char *afs_cv2string(); extern long rftp_window; extern char *afs_GetMariner(); extern long afs_waitForever; extern short afs_waitForeverCount; static long fvTable[NFENTRIES]; long afs_debug = 0; /* general console debug flag */ extern long volumeInode; extern long afs_setTime; long afs_setTimeHost=0; /* last host we used for time */ struct osi_dev cacheDev; /* cache device */ long afs_volCounter = 1; /* for allocating volume indices */ struct cell *afs_cells = 0; struct unixuser *afs_users[NUSERS]; struct server *afs_servers[NSERVERS]; struct volume *afs_volumes[NVOLS]; extern struct lock afs_xvcache; /* lock for cache */ struct lock afs_xconn; /* allocation lock for new things */ struct lock afs_xvolume; /* allocation lock for volumes */ struct lock afs_xuser; /* allocation lock for unixusers */ struct lock afs_xcell; /* allocation lock for cells */ struct lock afs_xserver; /* allocation lock for servers */ struct r_server *afs_server; /* server for andrew file system */ struct volume *afs_freeVolList; struct rftp_server *afs_rftpServer; /* rftp server for afs */ extern struct vcache *afs_vhashTable[]; extern struct dcache **afs_indexTable; extern char *afs_indexFlags; long afs_marinerHost; unsigned short afs_marinerPort; long afs_logFileInode = 0; static cellCounter = 1; resource_cleanup() { bzero(fvTable, sizeof(fvTable)); afs_setTimeHost=0; bzero(&cacheDev, sizeof(cacheDev)); afs_volCounter = 1; afs_cells = 0; bzero(afs_users, sizeof(afs_users)); bzero(afs_servers, sizeof(afs_servers)); bzero(afs_volumes, sizeof(afs_volumes)); bzero(&afs_xconn, sizeof(afs_xconn)); bzero(&afs_xvolume, sizeof(afs_xvolume)); bzero(&afs_xuser, sizeof(afs_xuser)); bzero(&afs_xcell, sizeof(afs_xcell)); bzero(&afs_xserver, sizeof(afs_xserver)); afs_server = 0; afs_freeVolList = 0; afs_rftpServer = 0; bzero(afs_vhashTable, sizeof(afs_vhashTable)); afs_indexTable = 0; afs_marinerHost = 0; afs_marinerPort = 0; afs_logFileInode = 0; cellCounter = 1; } static char mbuffer[100]; afs_MarinerLog(astring, avc) register struct vcache *avc; register char *astring; { register long code; struct sockaddr_in taddr; register char *tp, *up; taddr.sin_family = AF_INET; taddr.sin_addr.s_addr = afs_marinerHost; taddr.sin_port = htons(2106); tp = mbuffer; strcpy(tp, astring); tp += strlen(astring); *tp++ = ' '; up = afs_GetMariner(avc); strcpy(tp, up); tp += strlen(up); *tp++ = '\n'; /* note, console doesn't want a terminating null */ code = osi_NetSend(afs_server->socket, &taddr, mbuffer, tp-mbuffer); if (code) printf("afs_mariner code %d\n", code); } /* called with afs_xuser, afs_xserver and afs_xconn locks held, to delete appropriate conn structures for au */ static RemoveUserConns(au) register struct unixuser *au; { register int i; register struct server *ts; register struct conn *tc, **lc; for(i=0;inext) { lc = &ts->conns; for(tc = *lc; tc; lc = &tc->next, tc = *lc) { if (tc->user == au && tc->refCount == 0) { *lc = tc->next; r_FreeConnection(tc->id); osi_Free(tc, sizeof(struct conn)); break; /* at most one instance per server */ } } } } } /* called from afs_Daemon to garbage collect unixusers no longer using system, and their R conns */ afs_GCUserData() { register struct unixuser *tu, **lu, *nu; register int i; long now, delFlag; /* obtain locks in valid order */ ObtainWriteLock(&afs_xuser); ObtainWriteLock(&afs_xserver); ObtainWriteLock(&afs_xconn); now = osi_Time(); for(i=0;irefCount == 0 && tu->uid != 0) { if (tu->states & UHasTokens) { if (tu->tokenTime < now - TOKENTIMEOUT) delFlag = 1; } else { if (tu->tokenTime < now - NOTOKTIMEOUT) delFlag = 1; } } nu = tu->next; if (delFlag) { *lu = tu->next; RemoveUserConns(tu); osi_Free(tu, sizeof(struct unixuser)); } else { lu = &tu->next; } } } ReleaseWriteLock(&afs_xuser); ReleaseWriteLock(&afs_xserver); ReleaseWriteLock(&afs_xconn); } /* called by unmount to clear all the user tokens */ afs_Clear_Users() { register struct unixuser *tu, **lu, *nu; register int i; /* obtain locks in valid order */ ObtainWriteLock(&afs_xuser); ObtainWriteLock(&afs_xserver); ObtainWriteLock(&afs_xconn); for(i=0;inext; *lu = tu->next; RemoveUserConns(tu); osi_Free(tu, sizeof(struct unixuser)); } } ReleaseWriteLock(&afs_xuser); ReleaseWriteLock(&afs_xserver); ReleaseWriteLock(&afs_xconn); } afs_FinalizeReq(areq) register struct vrequest *areq; { if (areq->initd) return; areq->busyCount = 0; areq->accessError = 0; areq->volumeError = 0; areq->networkError = 0; areq->initd = 1; } afs_CheckCode(acode, areq) register long acode; register struct vrequest *areq; { if (acode) afs_dp("returning code %d\n", acode); if (!areq || !areq->initd) return acode; if (areq->networkError) return ETIMEDOUT; if (acode == 0) return 0; if (areq->accessError) return EACCES; if (areq->volumeError) return ENODEV; return acode; } /* sleep for atime seconds */ static VSleep(atime) register long atime; { osi_NetWait(0, atime * 1000, 0); } #define CVBS 20 char *afs_cv2string(aval) register unsigned long aval; { static char tbuffer[CVBS]; register char *tp; register int i; int any; any = 0; tp = &tbuffer[CVBS]; *(--tp) = 0; while (aval != 0) { i = aval % 10; *(--tp) = '0' + i; aval /= 10; any = 1; } if (!any) *(--tp) = '0'; return tp; } /* * All of the vol cache routines must be called with the afs_xvolume * lock held in exclusive mode, since they use static variables. * In addition, we don't want two people adding the same volume * at the same time. */ static struct fvolume staticFVolume; static long FVIndex = -1; struct fvolume *afs_GetVolCache(aslot) register long aslot; { register struct osi_file *tfile; register long code; if (FVIndex != aslot) { tfile = osi_UFSOpen(&cacheDev, volumeInode); if (!tfile) panic("open volumeinode"); osi_Seek(tfile, sizeof(struct fvolume) * aslot); code = osi_Read(tfile, &staticFVolume, sizeof(struct fvolume)); if (code != sizeof(struct fvolume)) panic("read volumeinfo"); osi_Close(tfile); FVIndex = aslot; } return &staticFVolume; } struct fvolume *afs_FindVolCache(acell, avol) register long avol; register long acell; { register long i; register struct fvolume *tf; i = FVHash(acell,avol); for(i=fvTable[i]; i!=0; i=tf->next) { tf = afs_GetVolCache(i); if (tf->cell == acell && tf->volume == avol) return tf; } return (struct fvolume *) 0; } afs_WriteVolCache() { register struct osi_file *tfile; register long code; if (FVIndex < 0 || FVIndex >= afs_volCounter) panic("volumeinfo alloc"); tfile = osi_UFSOpen(&cacheDev, volumeInode); if (!tfile) panic("open volumeinode"); osi_Seek(tfile, sizeof(struct fvolume) * FVIndex); code = osi_Write(tfile, &staticFVolume, sizeof(struct fvolume)); if (code != sizeof(struct fvolume)) panic("write volumeinfo"); osi_Close(tfile); return 0; } /* routine to get a slot from the volume list--must be called under afs_xvolume lock (write-locked). */ struct volume *afs_GetVolSlot() { register struct volume *tv, **lv; register long i; long bestTime; struct volume *bestVp, **bestLp; if (!afs_freeVolList) { /* get free slot */ bestTime = 0x7fffffff; bestVp = 0; bestLp = 0; for(i=0;inext, tv = *lv) { if (tv->refCount == 0) { /* is this one available? */ if (tv->accessTime < bestTime) { /* best one available? */ bestTime = tv->accessTime; bestLp = lv; bestVp = tv; } } } } if (!bestVp) panic("getvolslot none"); tv = bestVp; *bestLp = tv->next; if (tv->name) osi_Free(tv->name, strlen(tv->name)+1); tv->name = (char *) 0; /* now write out volume structure to file */ if (tv->vtix < 0) { tv->vtix = afs_volCounter++; /* now put on hash chain */ i = FVHash(tv->cell, tv->volume); staticFVolume.next = fvTable[i]; fvTable[i]=tv->vtix; } else { /* haul the guy in from disk so we don't overwrite hash table next chain*/ afs_GetVolCache(tv->vtix); } FVIndex = tv->vtix; staticFVolume.volume = tv->volume; staticFVolume.cell = tv->cell; staticFVolume.mtpoint = tv->mtpoint; staticFVolume.dotdot = tv->dotdot; afs_WriteVolCache(); } else { tv = afs_freeVolList; afs_freeVolList = tv->next; } return tv; } /* reset volume name to volume id mapping cache */ afs_CheckVolumeNames() { register long i; register struct volume *tv; register struct vcache *tvc; ObtainReadLock(&afs_xvolume); for(i=0;inext) { ObtainWriteLock(&tv->lock); tv->states |= VRecheck; if (tv->name) { osi_Free(tv->name, strlen(tv->name)+1); tv->name = (char *) 0; } ReleaseWriteLock(&tv->lock); } } ReleaseReadLock(&afs_xvolume); /* next ensure all mt points are re-evaluated */ ObtainWriteLock(&afs_xvcache); for(i=0;ihnext) { tvc->states &= ~CMValid; } } ReleaseWriteLock(&afs_xvcache); } static ServerDown(aserver) register struct server *aserver; { unsigned host_id; bcopy(&aserver->host, &host_id, sizeof host_id); printf("afs: Lost contact with server %d.%d.%d.%d\n", host_id >> 24, (host_id >> 16) & 0xff, (host_id >> 8) & 0xff, host_id & 0xff); aserver->isDown = 1; } /* return true if we have any callback promises from this server */ static HaveCallBacksFrom(aserver) struct server *aserver; { long thost; register long now; register int i; register struct vcache *tvc; now = osi_Time(); /* for checking for expired callbacks */ /* thost = aserver->host; /* host we're looking for */ bcopy(&aserver->host, &thost, sizeof thost); for(i=0;ihnext) { /* check to see if this entry has an unexpired callback promise from the required host */ if (thost == tvc->callback && tvc->cbExpires >= now) return 1; } } return 0; } #define MINCHANGE 2 /* check down servers (if adown), or running servers (if !adown) */ afs_CheckServers(adown) int adown; { struct vrequest treq; register struct server *ts; register struct conn *tc; register long i; register long code; long start, end, delta; struct timeval tv; afs_InitReq(&treq, &osi_cred); ObtainReadLock(&afs_xserver); for(i=0;inext) { /* see if this server is the type we're checking this time */ if (adown != ts->isDown) continue; /* get a connection, even if host is down; bumps conn ref count */ if (ts->cell) tc = afs_ConnByHost(ts, ts->cell->cell, &treq, 1); else continue; /* can't do anything without a connection */ if (!tc) continue; if (ts->isDown || HaveCallBacksFrom(ts)) { if (ts->isDown) r_SetRetries(tc->id, 2); start = osi_Time(); /* time the gettimeofday call */ #ifdef notdef code = AFS_GetTime(tc->id, &tv.tv_sec, &tv.tv_usec); #else code = RViceGetTime(tc->id, &tv.tv_sec, &tv.tv_usec); #endif end = osi_Time(); /* if we're supposed to set the time, and the call worked quickly (same second response) and this is the host we use for the time and the time is really different, then really set the time */ if (code == 0 && start == end && afs_setTime != 0 && (afs_setTimeHost == 0 || tc->server->host == afs_setTimeHost)) { /* set the time */ delta = end - tv.tv_sec; /* how many secs fast we are */ /* see if clock has changed enough to make it worthwhile */ if (delta >= MINCHANGE || delta <= -MINCHANGE) { osi_SetTime(&tv); if (delta > 0) printf("afs: setting clock back %d seconds.\n", delta); else printf("afs: setting clock ahead %d seconds.\n", -delta); } /* afs_setTimeHost = tc->server->host; */ bcopy(&tc->server->host, &afs_setTimeHost, sizeof(afs_setTimeHost)); } r_ResetRetries(tc->id); if (code >= 0 && ts->isDown) { unsigned host_id; bcopy(&ts->host, &host_id, sizeof host_id); /* server back up */ printf("afs: Server %d.%d.%d.%d back up\n", host_id >> 24, (host_id >> 16) & 0xff, (host_id >> 8) & 0xff, host_id & 0xff); ts->isDown = 0; if (afs_waitForeverCount) { osi_Wakeup(&afs_waitForever); } } else if (code < 0 && !ts->isDown) { /* server crashed */ ServerDown(ts); } } afs_PutConn(tc); /* done with it now */ } /* for each server loop */ } /* for each server hash bucket loop */ ReleaseReadLock(&afs_xserver); } int afs_ResetAccessCache(auser) register struct unixuser *auser; { register int i, j; register struct vcache *tvc; ObtainWriteLock(&afs_xvcache); for(i=0;ihnext) { for(j=0;jrandomUid[j] == auser->uid) tvc->randomUid[j] = -1; } } } ReleaseWriteLock(&afs_xvcache); } /* ensure all connections make use of new tokens. Discard incorrectly-cached access info. */ int afs_ResetUserConns (auser) register struct unixuser *auser; { register int i; register struct server *ts; register struct conn *tc; ObtainWriteLock(&afs_xserver); ObtainWriteLock(&afs_xconn); for(i=0;inext) { for (tc = ts->conns; tc; tc=tc->next) { if (tc->user == auser) tc->forceConnectFS = 1; } } } ReleaseWriteLock(&afs_xconn); ReleaseWriteLock(&afs_xserver); afs_ResetAccessCache(auser); } /* warning: probably shouldn't bump refCount without afs_xuser lock */ struct unixuser *afs_FindUser(auid, acell) long acell; register long auid; { register struct unixuser *tu; register long i; i = UHash(auid); for(tu = afs_users[i]; tu; tu = tu->next) { if (tu->uid == auid && tu->cell == acell) { tu->refCount++; return tu; } } return (struct unixuser *) 0; } afs_GetKeys(awho, astp, alen, actp, aconn) register long awho; register char **astp; long *alen; register char **actp; struct r_connection *aconn; { /* Find the keys for this user */ long host; register struct unixuser *tu; struct server *ts; host = r_PeerHost(aconn); ts = afs_FindServer(host); afs_dp("in getkeys, looking for user %x, host %x\n", awho, host); if (!ts) return -1; tu = afs_FindUser(awho, ts->cell->cell); /* find this vice user on this host */ if (!tu || !(tu->states & UHasTokens)) { /* generic fake tokens, not useful if vice is running authenticated */ if (tu) awho = tu->uid; /* use uid, not pag */ strcpy(*astp, "UID="); strcpy((*astp) + 4, afs_cv2string(awho)); *alen = strlen(*astp)+1; } else { /* use the real token */ *astp = (char *) &tu->st; *actp = (char *) tu->ct.HandShakeKey; *alen = sizeof(struct SecretToken); } if (tu) afs_PutUser(tu); return 0; } afs_ResourceInit() { register long i; register struct volume *tv; Lock_Init(&afs_xconn); Lock_Init(&afs_xuser); Lock_Init(&afs_xvolume); Lock_Init(&afs_xcell); Lock_Init(&afs_xserver); r_GetKeys = afs_GetKeys; r_nRetries = 30; afs_server = r_NewServer(htons(3535)); /* create volume list structure */ tv = (struct volume *) osi_Alloc(MAXVOLS * sizeof(struct volume)); for(i=0;inext) { if (!strcmp(tc->cellName, acellName)) { ReleaseWriteLock(&afs_xcell); return tc; } } ReleaseWriteLock(&afs_xcell); return (struct cell *) 0; } struct cell *afs_GetCell(acell) register long acell; { register struct cell *tc; ObtainWriteLock(&afs_xcell); for(tc = afs_cells; tc; tc=tc->next) { if (tc->cell == acell) { ReleaseWriteLock(&afs_xcell); return tc; } } ReleaseWriteLock(&afs_xcell); return (struct cell *) 0; } struct cell *afs_NewCell(acellName, acellHosts) char *acellName; register long *acellHosts; { register struct cell *tc; register long i, temp; struct server *ts; ObtainWriteLock(&afs_xcell); for(tc = afs_cells; tc; tc = tc->next) { if (!strcmp(tc->cellName, acellName)) { break; } } if (!tc) { tc = (struct cell *) osi_Alloc(sizeof(struct cell)); tc->next = afs_cells; afs_cells = tc; tc->cellName = (char *) osi_Alloc(strlen(acellName)+1); strcpy(tc->cellName, acellName); tc->cell = cellCounter++; tc->states = 0; } bzero(tc->cellHosts, sizeof(tc->cellHosts)); for(i=0; icellHosts[i] = afs_GetServer(temp, 0); ts->cell = tc; } ReleaseWriteLock(&afs_xcell); return tc; } struct unixuser *afs_GetUser(auid, acell) long acell; register long auid; { register struct unixuser *tu; register long i; i = UHash(auid); ObtainWriteLock(&afs_xuser); for(tu = afs_users[i]; tu; tu = tu->next) { if (tu->uid == auid && tu->cell == acell) { tu->refCount++; ReleaseWriteLock(&afs_xuser); return tu; } } tu = (struct unixuser *) osi_Alloc(sizeof(struct unixuser)); tu->next = afs_users[i]; afs_users[i] = tu; tu->uid = auid; tu->cell = acell; tu->vid = UNDEFVID; tu->states = 0; tu->primary = 0; tu->refCount = 1; tu->tokenTime = osi_Time(); ReleaseWriteLock(&afs_xuser); return tu; } afs_PutUser(au) register struct unixuser *au; { --au->refCount; } /* set the primary flag on a unixuser structure, ensuring that exactly one dude has the flag set at any time for a particular unix uid. */ afs_SetPrimary(au, aflag) register struct unixuser *au; register int aflag; { register struct unixuser *tu; register int i; struct unixuser *pu; i = UHash(au->uid); pu = (struct unixuser *) 0; ObtainWriteLock(&afs_xuser); /* see if anyone is this uid's primary cell yet; recording in pu the corresponding user */ for(tu=afs_users[i]; tu; tu=tu->next) { if (tu->uid == au->uid && tu->primary) pu = tu; } if (pu && !(pu->states & UHasTokens)) { /* primary user has unlogged, don't treat him as primary any longer; note that we want to treat him as primary until now, so that people see a primary identity until now. */ pu->primary = 0; pu = (struct unixuser *) 0; } if (aflag == 1) { /* setting au to be primary */ if (pu) pu->primary = 0; au->primary = 1; } else if (aflag == 0) { /* we don't know if we're supposed to be primary or not */ if (!pu || au == pu) { au->primary = 1; } else au->primary = 0; } ReleaseWriteLock(&afs_xuser); } /* note that areq may be null, in which case we don't bother to set any request status information. */ struct volume *afs_GetVolume(afid, areq) struct vrequest *areq; register struct VenusFid *afid; { register struct volume *tv; register long i; char tbuffer[50]; i = VHash(afid->Fid.Volume); ObtainWriteLock(&afs_xvolume); for(tv = afs_volumes[i]; tv; tv=tv->next) { if(tv->volume == afid->Fid.Volume && tv->cell == afid->Cell && (tv->states & VRecheck) == 0) { tv->refCount++; ReleaseWriteLock(&afs_xvolume); return tv; } } strcpy(tbuffer, afs_cv2string(afid->Fid.Volume)); ReleaseWriteLock(&afs_xvolume); return afs_GetVolumeByName(tbuffer, afid->Cell, 0, areq); } struct volume *afs_GetVolumeByName(aname, acell, agood, areq) struct vrequest *areq; long acell; int agood; register char *aname; { register long code, i; register struct volume *tv; struct VolumeInfo volInfo; struct cell *tcell; long *p; struct fvolume *tf; register struct conn *tconn; struct vrequest treq; /* allow null request if we don't care about ENODEV/ETIMEDOUT distinction */ if (!areq) { areq = &treq; afs_InitReq(&treq, &osi_cred); } ObtainWriteLock(&afs_xvolume); for(code=0;codenext) { if (tv->name && !strcmp(aname,tv->name) && tv->cell == acell && (tv->states&VRecheck) == 0) { tv->refCount++; ReleaseWriteLock(&afs_xvolume); return tv; } } } /* here we don't think we'll find one, so we make the call and then see if we have the appropriate volume. */ ReleaseWriteLock(&afs_xvolume); tcell = afs_GetCell(acell); if (!tcell) { return (struct volume *) 0; } afs_dp("getvolumebyname about to look for volume %s\n", aname); do { tconn = afs_ConnByMHosts(tcell->cellHosts, tcell->cell, areq); #ifdef NINTERFACE if (tconn) code = AFS_GetVolumeInfo(tconn->id, aname, &volInfo); #else if (tconn) code = RViceGetVolumeInfo(tconn->id, aname, &volInfo); #endif else code = -1; } while (afs_Analyze(tconn, code, (struct ViceFid *) 0, areq)); if (code) { return (struct volume *) 0; } /* otherwise we create the entry and insert this info */ code = volInfo.Vid; /* volume number */ i = VHash(code); ObtainWriteLock(&afs_xvolume); for(tv = afs_volumes[i]; tv; tv=tv->next) { if (tv->volume == code) { break; } } if (!tv) { tv = afs_GetVolSlot(); bzero(tv, sizeof(struct volume)); tv->cell = tcell->cell; Lock_Init(&tv->lock); tv->volume = code; tv->next = afs_volumes[i]; /* thread into list */ afs_volumes[i] = tv; tf = afs_FindVolCache(tv->cell, code); if (tf) { tv->vtix = FVIndex; tv->mtpoint = tf->mtpoint; tv->dotdot = tf->dotdot; } else tv->vtix = -1; } p = (long *) &volInfo.Type0; tv->rwVol = p[readwriteVolume]; tv->roVol = p[readonlyVolume]; tv->backVol = p[backupVolume]; if (volInfo.Type != RWVOL) tv->states |= VRO; if (volInfo.Type == BACKVOL) tv->states|= VBackup; tv->refCount++; tv->states &= ~VRecheck; /* just checked it */ tv->accessTime = osi_Time(); ReleaseWriteLock(&afs_xvolume); ObtainWriteLock(&tv->lock); InstallVolumeInfo(tv, &volInfo, acell); if (agood) { if (!tv->name) { tv->name = osi_Alloc(strlen(aname) + 1); strcpy(tv->name, aname); } } ReleaseWriteLock(&tv->lock); return tv; } /* call this with the volume structure locked */ InstallVolumeInfo(av, avi, acell) register struct volume *av; register struct VolumeInfo *avi; { register int i; register struct server *ts; register unsigned long *servers; servers = &avi->Server0; if (avi->ServerCount > MAXHOSTS) panic("InstallVolumeInfo"); for(i=0;iServerCount; i++) { ts = afs_GetServer(htonl(*servers), acell); av->serverHost[i] = ts; servers++; } } afs_PutVolume(av) register struct volume *av; { av->refCount--; } struct server *afs_FindServer (aserver) register long aserver; { register struct server *ts; register int i; i = SHash(aserver); for(ts = afs_servers[i]; ts; ts=ts->next) { if (ts->host == aserver) { break; } } return ts; } struct server *afs_GetServer (aserver, acell) long acell; long aserver; { register struct server *ts; register int i; i = SHash(aserver); ObtainWriteLock(&afs_xserver); for(ts = afs_servers[i]; ts; ts=ts->next) { if (ts->host == aserver) { ReleaseWriteLock(&afs_xserver); return ts; } } ts = (struct server *) osi_Alloc(sizeof(struct server)); bzero(ts, sizeof(struct server)); if (acell) ts->cell = afs_GetCell(acell); /* ts->host = aserver; */ bcopy(&aserver, &ts->host, sizeof aserver); ts->next = afs_servers[i]; afs_servers[i] = ts; ReleaseWriteLock(&afs_xserver); return ts; } struct conn *afs_Conn (afid, areq) register struct VenusFid *afid; register struct vrequest *areq; { register long cell; register struct volume *tv; register struct conn *tconn; cell = afid->Cell; tv = afs_GetVolume(afid, areq); if (!tv) { return (struct conn *) 0; } tconn = afs_ConnByMHosts(tv->serverHost, cell, areq); afs_PutVolume(tv); return tconn; } /* forceConnectFS is set whenever we must recompute the connection. UTokensBad is true only if we know that the tokens are bad. We thus clear this flag when we get a new set of tokens. Having force... true and UTokensBad true simultaneously means that the tokens went bad and we're supposed to create a new, unauthenticated, connection. */ struct conn *afs_ConnByHost(aserver, acell, areq, aforce) register struct server *aserver; long acell; register struct vrequest *areq; int aforce; { register struct unixuser *tu; register struct conn *tc; struct conn *uc; int maxTag; if (aserver->isDown && !aforce) return (struct conn *) 0; /* known down */ tu = afs_GetUser(areq->uid, acell); if (tu->states & UTokensBad) { /* tokens are bad, use user 0 instead */ afs_PutUser(tu); tu = afs_GetUser(0, acell); } ObtainSharedLock(&afs_xconn); maxTag = -1; /* biggest tag seen so far */ uc = (struct conn *) 0; /* conn when all are busy and can't make new one */ for(tc = aserver->conns; tc; tc=tc->next) { if (tc->user == tu) { /* if conn is not busy, we can use it */ if (!r_Busy(tc->id)) break; uc = tc; /* remember someone in case we're desperate */ if (tc->tag > maxTag) maxTag = tc->tag; /* compute largest tag seen */ } } if (!tc && maxTag >= MAXMULTI-1) tc = uc; /* too many conns, don't make new one */ if (!tc) { UpgradeSToWLock(&afs_xconn); tc = (struct conn *) osi_Alloc(sizeof(struct conn)); Lock_Init(&tc->lock); tc->user = tu; tc->tag = maxTag+1; tc->server = aserver; tc->refCount = 0; /* bumped below */ tc->forceConnectFS = 1; tc->id = (struct r_connection *) 0; tc->next = aserver->conns; aserver->conns = tc; ConvertWToSLock(&afs_xconn); } tc->refCount++; ReleaseSharedLock(&afs_xconn); if (tc->forceConnectFS) { ObtainWriteLock(&tc->lock); if (tc->id) r_FreeConnection(tc->id); tc->id = r_NewConn(afs_server, aserver->host, htons(2003)); if (tu->vid != UNDEFVID) { r_SetAuth(tc->id, tu->uid); } tc->forceConnectFS = 0; /* apparently we're appropriately connected now */ ReleaseWriteLock(&tc->lock); } afs_PutUser(tu); return tc; } struct conn *afs_ConnByMHosts(ahosts, acell, areq) register struct server *ahosts[]; long acell; register struct vrequest *areq; { register long i; register struct conn *tconn; register struct server *ts; /* try to find any connection from the set */ while (1) { for(i=0;istates |= VRecheck; if (tv->name) osi_Free(tv->name, strlen(tv->name)+1); tv->name = (char *) 0; } afs_PutConn(ac) register struct conn *ac; { ac->refCount--; } /* the connection should be held (by refCount) (afs_Conn locks it). It will be released when this routine is done. */ int afs_Analyze(aconn, acode, afid, areq) register struct conn *aconn; long acode; register struct vrequest *areq; struct VenusFid *afid; { long *pp; register long i, code; struct server *tsp; struct VolumeInfo volInfo; register struct volume *tvp; long returnCode; char tname[20]; afs_dp("analyzing conn %x, code %d, for user %d\n", aconn, acode, areq->uid); if (!aconn) { afs_FinalizeReq(areq); areq->networkError = 1; return 0; /* Fail if no connection. */ } /* Find server associated with this connection. */ tsp = aconn->server; /* If network troubles, mark server as having bogued out again. */ if (acode < 0) ServerDown(tsp); if (acode == 0) { afs_PutConn(aconn); return 0; } afs_FinalizeReq(areq); if (acode == VBUSY) { printf("afs: Waiting for busy volume %u\n", (afid? afid->Fid.Volume : 0)); if (areq->busyCount++ > 20) returnCode = 0; else { VSleep(20); /* poll periodically */ returnCode = 1; } } else if (acode == VICETOKENDEAD) { /* 1235 */ struct unixuser *tu; tu = afs_FindUser(areq->uid, tsp->cell->cell); if (tu) printf("afs: Tokens for user of AFS id %d have expired\n", tu->vid); else /* The else case shouldn't be possible and should probably be replaced by a panic? */ printf("afs: Tokens for user %d have expired\n", areq->uid); aconn->forceConnectFS = 0; /* don't check until new tokens set */ aconn->user->states |= UTokensBad; returnCode = 1; /* Try again (as root). */ } /* Check for access violation. */ else if (acode == EACCES) { /* should mark access error in non-existent per-user global structure */ areq->accessError = 1; returnCode = 0; } /* Check for bad volume data base / missing volume. */ else if (acode == VNOVOL) { /* should set something so ENODEV can be returned by caller */ areq->volumeError = 1; returnCode = 0; } /* Check for moving volume. */ else if (acode == VMOVED) { returnCode = 0; /* default */ if (afid) { strcpy(tname, afs_cv2string(afid->Fid.Volume)); #ifdef NINTERFACE code = AFS_GetVolumeInfo(aconn->id, tname, &volInfo); #else code = RViceGetVolumeInfo(aconn->id, tname, &volInfo); #endif printf("afs: Volume %u moved\n", afid->Fid.Volume); if (code) { afs_dp("afs: can't find my way home (code %d)\n", code); } else { tvp = afs_GetVolume(afid, (struct vrequest *) 0); if (tvp) { for(i=0;iserverHost[i] = (struct server *) 0; pp = (long *) (&volInfo.Server0); for(i=0;iserverHost[i] = afs_GetServer(htonl(*pp), afid->Cell); pp++; } VSleep(1); /* Better safe than sorry. */ returnCode = 1; /* try again */ } } } } else if (acode >= 0) returnCode = 0; /* Other random Vice error. */ if (acode < 0) { /* If we get here, code < 0 and we have network/Server troubles. * areq->networkError is not set here, since we always * retry in case there is another server. However, if we find * no connection (aconn == 0) we set the networkError flag. */ tsp->isDown = 1; VSleep(1); /* Just a hack for desperate times. */ returnCode = 1; } /* now unlock the connection and return */ afs_PutConn(aconn); return returnCode; } afs_SetLogFile(afile) register char *afile; { register long code; register struct osi_file *tfile; struct vnode *filevp; code = gop_lookupname(afile, AFS_UIOSYS, 0, (struct vnode *) 0, &filevp); if (code) { return code; } /* otherwise we have a VN_HOLD on filevp. Get the useful info out and return. we make use here of the fact that the cache is in the UFS file system, and just record the inode number. */ afs_logFileInode = VTOI(filevp)->i_number; VN_RELE(filevp); tfile = osi_UFSOpen(&cacheDev, afs_logFileInode); osi_Truncate(tfile, 0); osi_Close(tfile); return 0; } int LogFileInUse = 0; struct osi_file *Logtfile; StartLogFile() { if (LogFileInUse) osi_Close(Logtfile); Logtfile = osi_UFSOpen(&cacheDev, afs_logFileInode); if (!Logtfile) panic("open LogFile"); osi_Truncate(Logtfile, 0); /* to start afresh */ LogFileInUse = 1; } EndLogFile() { if (!LogFileInUse) return; /* Should we complain here? */ LogFileInUse = 0; osi_Close(Logtfile); } afs_dp(a,b,c,d,e,f,g,h,i,j) long a,b,c,d,e,f,g,h,i,j; { if (afs_debug) if (LogFileInUse) fprint(a,b,c,d,e,f,g,h,i,j); else printf(a,b,c,d,e,f,g,h,i,j); } fprint(fmt, x1) char *fmt; unsigned x1; { fprf(fmt, &x1); } fprf(fmt, adx) register char *fmt; register u_int *adx; { register int b, c, i; char *s; int any; loop: while ((c = *fmt++) != '%') { if(c == '\0') return; puttofile(c); } again: c = *fmt++; /* THIS CODE IS VAX DEPENDENT IN HANDLING %l? AND %c */ switch (c) { case 'l': goto again; case 'x': case 'X': b = 16; goto number; case 'd': case 'D': case 'u': /* what a joke */ b = 10; goto number; case 'o': case 'O': b = 8; number: fprintn((u_long)*adx, b); break; case 'c': b = *adx; for (i = 24; i >= 0; i -= 8) if (c = (b >> i) & 0x7f) puttofile(c); break; case 'b': b = *adx++; s = (char *)*adx; fprintn((u_long)b, *s++); any = 0; if (b) { puttofile('<'); while (i = *s++) { if (b & (1 << (i-1))) { if (any) puttofile(','); any = 1; for (; (c = *s) > 32; s++) puttofile(c); } else for (; *s > 32; s++) ; } if (any) puttofile('>'); } break; case 's': s = (char *)*adx; while (c = *s++) puttofile(c); break; case '%': puttofile('%'); break; } adx++; goto loop; } /* * Printn prints a number n in base b. * We don't use recursion to avoid deep kernel stacks. */ fprintn(n, b) u_long n; { char prbuf[11]; register char *cp; if (b == 10 && (int)n < 0) { puttofile('-'); n = (unsigned)(-(int)n); } cp = prbuf; do { *cp++ = "0123456789abcdef"[n%b]; n /= b; } while (n); do puttofile(*--cp); while (cp > prbuf); } puttofile(c) register int c; { static int bufindex = 0; static char filebuffer[4096]; int code; if (c == '\n') { filebuffer[bufindex++] = '\r'; filebuffer[bufindex++] = c; code = osi_Write(Logtfile, filebuffer, bufindex); if (code != bufindex) printf("puttofile: osi_write"); /* the printf should be replaced by panic! */ bufindex = 0; return; } filebuffer[bufindex++] = c; } /* run everywhere, checking locks */ afs_CheckLocks() { register int i; printf("Looking for locked data structures.\n"); printf("conn %x, volume %x, user %x, cell %x, server %x\n", afs_xconn, afs_xvolume, afs_xuser, afs_xcell, afs_xserver); { register struct vcache *tvc; for(i=0;ihnext) { if (tvc->vrefCount) printf("Stat cache entry at %x is held\n", tvc); if (CheckLock(&tvc->lock)) printf("Stat entry at %x is locked\n", tvc); } } } { register struct dcache *tdc; for(i=0;irefCount) printf("Disk entry %d at %x is held\n", i, tdc); } if (afs_indexFlags[i] & IFDataMod) printf("Disk entry %d at %x has IFDataMod flag set.\n", i, tdc); } } { register struct server *ts; register struct conn *tc; for(i=0;inext) { if (ts->isDown) printf("Server entry for host %x (at %x) is marked down\n", ts->host, ts); for(tc = ts->conns; tc; tc=tc->next) { if (CheckLock(&tc->lock)) printf("conn at %x (server %x) is locked\n", tc, ts->host); if (tc->refCount) printf("conn at %x (server %x) is held\n", tc, ts->host); } } } } { register struct volume *tv; for(i=0;inext) { if (CheckLock(&tv->lock)) printf("volume at %x is locked\n", tv); if (tv->refCount) printf("volume at %x is held\n", tv); } } } { register struct unixuser *tu; for(i=0;inext) { if (tu->refCount) printf("user at %x is held\n", tu); } } } } #]lo$ k#%#`#`  6/* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:rftp.c 12.3$ */ /* $ACIS:rftp.c 12.3$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/rftp.c,v $ */ #ifndef lint static char *rcsid = "$Header:rftp.c 12.3$"; #endif /* * R File Transfer Package * * Other possible optimizations: * 1. Use readv to read in data in 4Kbyte chunks if the file is big enough. Effects * kernel disk readahead, as well as cutting down on the number of read * system calls. * * Ethernet limits are currently used as the generic system limits. An ethernet hardware * packet can have 1500 data bytes (plus 4 bytes cksum, 12 bytes of addrs, * 2 bytes of type). * From that 1500, there's a 20 byte IP header and an 8 byte udp header. * That leaves 1472 as the maximum udp data size before fragmentation. */ #include "../h/types.h" #include "../h/param.h" #include "../h/time.h" #include "../h/kernel.h" #include "../h/socket.h" #include "../h/socketvar.h" #include "../h/protosw.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/file.h" #include "../h/uio.h" #include "../h/vfs.h" #include "../h/vnode.h" #include "../ufs/inode.h" #include "../netinet/in.h" #include "../h/mbuf.h" #include "../rpc/types.h" #include "../rpc/xdr.h" #include "../afs/lock.h" #include "../afs/osi.h" #define RFTP_INTERNALS 1 #include "../afs/rftp.h" #ifndef NULL #define NULL 0 #endif #define NPACKETS 20 /* number of packets to allocate */ #define SMALLPACKETSIZE 200 /* another packet size */ #define PACKETSIZE 1472 /* packetsize */ #define APACKETSIZE 1472 /* packetsize */ #define READAHEAD 1 /* # of packets to read ahead */ #define RECVTIMEOUT 60 /* timeout on receive */ #define TIMEOUT 2 /* time to wait before rexmit */ #define MAXRETRIES 25 /* number of rexmits before punting */ #define WINDOW 8 /* send-ahead window */ #define DALLY 40 /* how long to wait for OEnd */ #define CHECKPERIOD 30 /* the period to check for dead connections */ #define REXMITDELAY 1 /* must be < the period for retransmissions */ int rftp_debug = 0; int initd = 0; int rftp_SocketListener(); extern int afs_running; struct osi_socket *rftp_ts_socket; /* here are the globals that users can change before calling init */ long rftp_readAhead = READAHEAD; /* number of packets to keep ready to go */ long rftp_nPackets = NPACKETS; /* total packets we can use */ long rftp_packetSize = PACKETSIZE; /* size of packet we'll send */ long rftp_allocSize = APACKETSIZE; /* size of packet buffer for max reception */ long rftp_timeout = TIMEOUT; /* timeout on ack request */ long rftp_window = WINDOW; /* max outstanding packets */ long rftp_recvTimeout = RECVTIMEOUT; /* the time the recv side waits for active conns */ long rftp_dally = DALLY; /* the receiver's dally time */ long rftp_maxRetries = MAXRETRIES; /* max attempts to get through */ /* these globals are really just for debugging */ struct rftp_stat rftp_stat; /* the debugging structure */ /* these globals are for status monitoring */ int rftp_freeCount=0; /* the count of above, for window calcs */ static struct lock afs_rftpLock; static struct rftp_server *allServers = 0; static long rftpAckPos; /* how far in advance to ask for an ack */ static struct rftp_conn *freeConnList; /* free connection list */ static struct rftp_packet *rftpFreeList; static struct rftp_packet *emergencyPacket[3]; /* 0 not used */ rftp_cleanup() { initd = 0; rftp_ts_socket = 0; rftp_readAhead = READAHEAD; rftp_nPackets = NPACKETS; rftp_packetSize = PACKETSIZE; rftp_allocSize = APACKETSIZE; rftp_timeout = TIMEOUT; rftp_window = WINDOW; rftp_recvTimeout = RECVTIMEOUT; rftp_dally = DALLY; rftp_maxRetries = MAXRETRIES; bzero(&rftp_stat, sizeof(rftp_stat)); rftp_freeCount=0; bzero(&afs_rftpLock, sizeof(afs_rftpLock)); allServers = 0; rftpAckPos = 0; freeConnList = 0; rftpFreeList = 0; bzero(emergencyPacket, sizeof(emergencyPacket)); } static struct rftp_packet *QPop(aq) register struct rftp_packet **aq; { register struct rftp_packet *tq; tq = (*aq); (*aq) = tq->next; return tq; } static QAppend(aq, ap) register struct rftp_packet **aq; register struct rftp_packet *ap; { register struct rftp_packet **lq; register struct rftp_packet *tq; lq = aq; for(tq = *aq; tq; tq = tq->next) { lq = &tq->next; } *lq = ap; ap->next = 0; return; } #define HEADER_WORDS 5 /* Pack or unpack the header of a packet. */ static bool_t xdr_rftpHeader(xdrs, header) XDR *xdrs; register struct rftp_header *header; { register long *buf; long temp; if (xdrs->x_op == XDR_FREE) return TRUE; if ((buf = XDR_INLINE(xdrs, HEADER_WORDS*BYTES_PER_XDR_UNIT)) == NULL) return FALSE; /* DANGER! Make sure the two parts of this if statement match! */ if (xdrs->x_op == XDR_ENCODE) { IXDR_PUT_LONG(buf, header->protocolVersion); IXDR_PUT_LONG(buf, header->sid); IXDR_PUT_LONG(buf, header->seqno); IXDR_PUT_LONG(buf, header->who); IXDR_PUT_LONG(buf, header->opcode << 16 | header->flags); } else { header->protocolVersion = IXDR_GET_LONG(buf); header->sid = IXDR_GET_LONG(buf); header->seqno = IXDR_GET_LONG(buf); header->who = IXDR_GET_LONG(buf); temp = IXDR_GET_LONG(buf); header->opcode = temp >> 16; header->flags = temp & 0xFFFF; } return TRUE; } /* Send a single packet. */ /* Note that unlike in r, we do not assume that the packet length is derived from the xdr pointer, but rather that it has been left in packet.length. This saves us a lot of grief when we are changing the header during retransmissions */ static int rftp_sendto(ac, pb) register struct rftp_conn *ac; register struct rftp_packet *pb; { struct sockaddr_in addr; #ifdef DEBUG struct timeval delay; #endif rftp_stat.outPackets++; addr.sin_family = AF_INET; addr.sin_port = ac->portal; addr.sin_addr.s_addr = ac->host; #ifdef DEBUG if (rftp_debug) { osi_GetTime(&delay); printf("S: op = %d, seqno = %d, port=%d, sid=%x flags=%x (%d.%d)\n", pb->header.opcode, pb->header.seqno & 0xff, addr.sin_port, pb->header.sid, pb->header.flags, delay.tv_sec, delay.tv_usec); } #endif return osi_NetSend(ac->server->socket, &addr, pb->data,pb->length); } static struct rftp_conn *NewConn (aserver, remoteHost, remotePort, remoteSid) register struct rftp_server *aserver; long remoteHost, remotePort, remoteSid; { register struct rftp_conn *tc; if (tc=freeConnList) { freeConnList = tc->next; } else tc = (struct rftp_conn *) osi_Alloc(sizeof (struct rftp_conn)); /* now fill in some reasonable defaults */ tc->next = aserver->connList; aserver->connList = tc; tc->host = remoteHost; tc->portal = remotePort; tc->sid = remoteSid; tc->key = 0; tc->server = aserver; tc->flags = 0; tc->fd = (struct osi_file *) 0; tc->code = -1000; if (aserver->bigSleep) osi_CancelNetWait(&aserver->slHandle); /* startup sl again */ return tc; } static struct rftp_conn *FindConn (aserver, remoteHost, remotePortal, remoteSid) register struct rftp_server *aserver; register long remoteHost; register long remotePortal; register long remoteSid; { register struct rftp_conn *tc; for(tc = aserver->connList; tc; tc=tc->next) { if (tc->sid == remoteSid && remoteHost == tc->host && remotePortal == tc->portal) return tc; } return 0; } /* free when lock already held */ static FreeConnection (ac) register struct rftp_conn *ac; { register struct rftp_conn *tc, **lc; register struct rftp_packet *tq; struct rftp_packet *nq; lc = &ac->server->connList; for(tc = *lc; tc; tc=tc->next) { if (tc == ac) { /* found the element to delete */ /* free any packets for sender */ if (tc->flags & CFSender) { for(tq = tc->s.send.ra; tq; tq=nq) { nq = tq->next; rftp_FreePacket(tq); } for(tq = tc->s.send.rxmit; tq; tq=nq) { nq = tq->next; rftp_FreePacket(tq); } } *lc = tc->next; tc->next = freeConnList; freeConnList = tc; ReleaseWriteLock(&afs_rftpLock); return; } lc = &tc->next; } /* not found */ return; } /* free under lock */ rftp_FreeConnection (ac) register struct rftp_conn *ac; { ObtainWriteLock(&afs_rftpLock); FreeConnection(ac); ReleaseWriteLock(&afs_rftpLock); } struct rftp_server *rftp_NewServer(aportal) u_short aportal; { register struct rftp_server *ts; if (!initd) { rftp_Init(); initd = 1; } bzero(rftp_stat, sizeof(rftp_stat)); ObtainWriteLock(&afs_rftpLock); ts = (struct rftp_server *) osi_Alloc(sizeof(struct rftp_server)); bzero(ts, sizeof(struct rftp_server)); osi_InitWaitHandle(&ts->slHandle); ts->slCheckTime = 0; ts->slRetryTime = 0; ts->socket = osi_NewSocket(aportal); rftp_ts_socket = ts->socket; if (ts->socket == (struct osi_socket *) 0) return (struct rftp_server *) 0; ts->connList = (struct rftp_conn *) 0; ts->states = 0; ts->bigSleep = 0; ts->port = aportal; /* in network byte order */ ts->next = allServers; allServers = ts; ReleaseWriteLock(&afs_rftpLock); return ts; } rftp_KillServer() { osi_FreeSocket( rftp_ts_socket ); } static rftp_Init () { register int i; register struct rftp_packet *tp; register char *space; register int ps; rftp_freeCount = 0; Lock_Init(&afs_rftpLock); rftpAckPos = (rftp_window-1)>>1; if (rftpAckPos < 0) rftpAckPos = 0; /* Allocate some packets. */ if (rftp_allocSize < SMALLPACKETSIZE) rftp_allocSize = SMALLPACKETSIZE; ps = sizeof(struct rftp_packet); /* force rouding to 4 byte boundary */ ps = ((ps - 1) | 3) + 1; /* use one allocation to avoid fragmentation problems */ space = osi_Alloc((2 + rftp_nPackets) * ps); /* two extra for emergencyPackets */ tp = emergencyPacket[1] = (struct rftp_packet *) (space); tp->mbuf = 0; tp->data = 0; tp = emergencyPacket[2] = (struct rftp_packet *) (space+ps); tp->mbuf = 0; tp->data = 0; for(i=0; i < rftp_nPackets; i++) { tp = (struct rftp_packet *) (space + (2+i)*ps); /* skip two emergency packets */ tp->mbuf = 0; tp->data = 0; tp->next = rftpFreeList; rftpFreeList = tp; rftp_freeCount++; } return 0; } /* note that there are two emergency packets, one for the socket listener to receive with, and the other for it to send acknowledgements with. Data is never associated with free packets, only allocated ones, even emergency packets. */ /* get a packet, priority tells how badly we need the packet */ static struct rftp_packet *rftp_AllocPacket(xop, priority) int priority; register enum xdr_op xop; { /* xdr direction for xdr gismo */ register struct rftp_packet *tp; tp = 0; if (rftpFreeList) { tp = rftpFreeList; rftpFreeList = tp->next; rftp_freeCount--; } if (tp == 0 && priority > 0) tp = emergencyPacket[priority]; if (tp == 0) return 0; if (xop == XDR_ENCODE) { tp->data = osi_AllocSendSpace(); xdrmem_create(&tp->xdr, tp->data, rftp_allocSize, xop); } tp->header.flags = 0; return tp; } static rftp_FreePacket (ap) register struct rftp_packet *ap; { /* put back the data */ if (ap->mbuf) { osi_FreeRecvBuffer(ap->mbuf); ap->mbuf = (struct mbuf *) 0; } else if (ap->data) { osi_FreeSendSpace(ap->data); } ap->data = (char *) 0; if (emergencyPacket[1] == ap || emergencyPacket[2] == ap) return; ap->next = rftpFreeList; rftpFreeList = ap; rftp_freeCount++; } /* If await > 0, then we wait. If it is == 0 we return early, if it is < 0 we return early and won't start the transfer until SendStart is called. */ long rftp_SendFile (as, fd, remoteHost, remotePortal, remoteSid, await) struct rftp_server *as; struct osi_file *fd; int await; long remoteHost, remotePortal, remoteSid; { register struct rftp_conn *tc; register long code; struct osi_stat tstat; struct timeval; ObtainWriteLock(&afs_rftpLock); rftp_stat.sendCalls++; tc = NewConn(as, remoteHost, remotePortal, remoteSid); tc->flags |= CFSender; tc->fd = fd; tc->s.send.ra = tc->s.send.rxmit = 0; tc->s.send.filePosn = 0; tc->s.send.raQSize = 0; tc->s.send.nextSend = 0; tc->s.send.retries = 0; tc->s.send.lastAck = -1; if (osi_Stat(fd, &tstat) != 0) { ReleaseWriteLock(&afs_rftpLock); rftp_FreeConnection(tc); rftp_stat.deads++; rftp_stat.lastCode = RFTP_NOTOPEN; return RFTP_NOTOPEN; } tc->s.send.bytesLeft = tstat.size; tc->s.send.blksize = tstat.blksize; /* do optimal-sized reads ... */ if (tstat.size == 0) tc->flags |= CFEmptyFile; /* force at least one output packet */ tc->s.send.laTime = osi_Time(); tc->code = -1000; if (await == 0) { /* comment next line for compatability */ tc->flags |= CFWait; ReleaseWriteLock(&afs_rftpLock); return (long) tc; } tc->flags |= CFMayTimeOut; CheckSender(tc); ReleaseWriteLock(&afs_rftpLock); if (tc->code == -1000) osi_Sleep(tc); /* don't forget to free the connection */ code = tc->code; rftp_FreeConnection(tc); return code; } /* procedure */ long rftp_SendWait(aconn) register struct rftp_conn *aconn; { register long code; ObtainWriteLock(&afs_rftpLock); aconn->flags |= CFMayTimeOut; CheckSender(aconn); ReleaseWriteLock(&afs_rftpLock); if (aconn->code == -1000) osi_Sleep(aconn); code = aconn->code; rftp_FreeConnection(aconn); return code; } static CheckSender (tc) register struct rftp_conn *tc; { register struct rftp_packet *tq; register long code, i; long now, window, ackPos, len, goal; /* called on the data sender side only */ if (tc->flags & CFWait) return; now = osi_Time(); { /* if we have a zero-length file, must send an empty OData packet anyway */ if (tc->s.send.bytesLeft == 0 && (tc->flags & CFEmptyFile)) { tq=rftp_AllocPacket(XDR_ENCODE, 0); if (tq) {/* allocate an empty data packet */ tq->header.seqno = tc->s.send.nextSend++; tq->header.sid = tc->sid; tq->header.opcode = OData; tq->header.flags |= (HFAckMe | HFEnd); tq->length = HEADER_WORDS*BYTES_PER_XDR_UNIT; tc->s.send.laTime = now; tc->flags &= ~CFEmptyFile; xdr_rftpHeader(&tq->xdr, &tq->header); rftp_sendto(tc, tq); /* now put packet at end of retransmission queue */ QAppend(&tc->s.send.rxmit, tq); } else return; } /* check to see if we're all done, except for the OEnd packet */ else if (tc->s.send.ra == 0 && tc->s.send.rxmit == 0 && tc->s.send.bytesLeft == 0) { tc->code = 0; osi_Wakeup(tc); return; } /* check to see if the other side has not responded */ if (tc->s.send.retries > rftp_maxRetries && (tc->flags & CFMayTimeOut)) { tc->code = RFTP_TIMEOUT; rftp_stat.lastCode = RFTP_TIMEOUT; rftp_stat.deads++; osi_Wakeup(tc); return; } /* check if there's unacknowledged data */ /* and either the data is older than rftp_timeout, or that an error occurred */ if (tc->s.send.rxmit && ((tc->flags & CFNAck) || (tc->s.send.laTime+rftp_timeout < now))) { /* re-transmit from last acknowledged packet */ rftp_stat.outRexmits++; tc->flags &= ~CFNAck; tc->s.send.retries++; for (tq=tc->s.send.rxmit; tq; tq=tq->next) { /* ask for ack on the last packet of a retransmitted set */ if (tq->next == 0) tq->header.flags |= HFAckMe; else tq->header.flags &= ~HFAckMe; XDR_SETPOS(&tq->xdr, 0); xdr_rftpHeader(&tq->xdr, &tq->header); rftp_sendto(tc, tq); } tc->s.send.laTime = now; } /* otherwise if no acks outstanding, send more data if we can */ else { /* first compute the window */ window = tc->s.send.lastAck + rftp_window; /* window will be last to send */ if (window > rftp_freeCount + tc->s.send.nextSend) window = rftp_freeCount + tc->s.send.nextSend; /* also compute acknowledgement request position */ ackPos = window - rftpAckPos; /* now if rftp_window much bigger than number of free packets, rftpAckPos could be bigger than window, so force an ack request somewhere within range */ if (ackPos < tc->s.send.nextSend) ackPos = tc->s.send.nextSend; /* first send from read-ahead queue */ while ((tq=tc->s.send.ra) && tq->header.seqno <= window) { QPop(&tc->s.send.ra); /* pull off of queue */ tc->s.send.raQSize--; if (tq->header.seqno == ackPos || (tq->header.flags & HFEnd)) { tq->header.flags |= HFAckMe; tc->s.send.laTime = now; } else tq->header.flags &= ~HFAckMe; /* patch the header again */ XDR_SETPOS(&tq->xdr, 0); xdr_rftpHeader(&tq->xdr, &tq->header); rftp_sendto(tc, tq); /* send the packet */ QAppend(&tc->s.send.rxmit, tq); /* save for retransmission */ } /* next try to get any remaining data from file that we're allowed to send */ while(tc->s.send.bytesLeft > 0 && tc->s.send.nextSend <= window) { /* first try to get a packet */ if (!(tq=rftp_AllocPacket(XDR_ENCODE, 0))) break; /* no packets, nothing to do */ tq->header.seqno = tc->s.send.nextSend++; tq->header.sid = tc->sid; tq->header.opcode = OData; if (tq->header.seqno == ackPos) { tq->header.flags |= HFAckMe; tc->s.send.laTime = now; } else tq->header.flags &= ~HFAckMe; xdr_rftpHeader(&tq->xdr, &tq->header); /* get the data into the packet from the file */ len = HEADER_WORDS*BYTES_PER_XDR_UNIT; goal = ((tc->s.send.filePosn-1) | tc->s.send.blksize) + 1 - tc->s.send.filePosn; if (goal >= rftp_packetSize - len || goal < (rftp_packetSize>>2)) goal = rftp_packetSize - len; code = osi_Read(tc->fd, tq->data+len, goal); if (code < 0) { tc->code = RFTP_IOERR; rftp_stat.deads++; rftp_stat.lastCode = RFTP_IOERR; osi_Wakeup(tc); return; } tq->length = len+code; tc->s.send.filePosn += code; tc->s.send.bytesLeft -= code; if (tc->s.send.bytesLeft == 0) { /* turn on ack and eof flags if we hit EOF */ XDR_SETPOS(&tq->xdr, 0); tq->header.flags |= (HFEnd | HFAckMe); xdr_rftpHeader(&tq->xdr, &tq->header); tc->s.send.laTime = now; } /* finally send the packet */ rftp_sendto(tc, tq); /* now put packet at end of retransmission queue */ QAppend(&tc->s.send.rxmit, tq); } /* file reading while loop */ } /* no acks outstanding else clause */ /* try to do some read ahead */ for(i=tc->s.send.raQSize; is.send.bytesLeft <= 0) break; if (!(tq=rftp_AllocPacket(XDR_ENCODE, 0))) break; /* no packets, nothing to do */ tq->header.seqno = tc->s.send.nextSend++; tq->header.sid = tc->sid; tq->header.opcode = OData; xdr_rftpHeader(&tq->xdr, &tq->header); /* get the data into the packet from the file */ len = HEADER_WORDS*BYTES_PER_XDR_UNIT; goal = ((tc->s.send.filePosn-1) | tc->s.send.blksize) + 1 - tc->s.send.filePosn; if (goal >= rftp_packetSize - len || goal < (rftp_packetSize>>2)) goal = rftp_packetSize - len; code = osi_Read(tc->fd, tq->data+len, goal); if (code < 0) { tc->code = RFTP_IOERR; rftp_stat.deads++; rftp_stat.lastCode = RFTP_IOERR; osi_Wakeup(tc); return; } tq->length = len+code; tc->s.send.bytesLeft -= code; tc->s.send.filePosn += code; if (tc->s.send.bytesLeft == 0) { /* turn on eof flag if we hit EOF, ack is handled at actual transmission time */ XDR_SETPOS(&tq->xdr, 0); tq->header.flags |= HFEnd; xdr_rftpHeader(&tq->xdr, &tq->header); } /* now put packet at end of the read-ahead queue */ QAppend(&tc->s.send.ra, tq); tc->s.send.raQSize++; } } /* main body (it used to be a loop) */ } /* procedure */ static SendAck(ac, aopcode, aflags, aseq) struct rftp_conn *ac; long aopcode, aflags, aseq; { register struct rftp_packet *tp; tp = rftp_AllocPacket(XDR_ENCODE, 2); tp->header.opcode = aopcode; tp->header.seqno = aseq; tp->header.sid = ac->sid; tp->header.flags = aflags; xdr_rftpHeader(&tp->xdr, &tp->header); tp->length = HEADER_WORDS*BYTES_PER_XDR_UNIT; rftp_sendto(ac, tp); rftp_FreePacket(tp); } long rftp_GetFile (as, fd, remoteHost, remotePortal, remoteSid, await) struct rftp_server *as; struct osi_file *fd; int await; long remoteHost, remotePortal, remoteSid; { register struct rftp_conn *tc; register long code; ObtainWriteLock(&afs_rftpLock); rftp_stat.recvCalls++; tc = NewConn(as, remoteHost, remotePortal, remoteSid); tc->fd = fd; tc->s.recv.seqno = 0; /* these numbers must be small enough so that when rftp_timeout is added, they're stll > 0 */ code = osi_Time(); tc->s.recv.lgTime = code; tc->s.recv.endTime = code; tc->s.recv.lastActive = code; if (!await) { ReleaseWriteLock(&afs_rftpLock); return (long) tc; } else { tc->flags |= CFSendGo; SendAck(tc, OGo, 0, 0); } tc->flags |= CFMayTimeOut; ReleaseWriteLock(&afs_rftpLock); osi_Sleep(tc); code = tc->code; /* connection is freed after DALLY seconds by socket listener. */ /* This gives sender time to retransmit for lost acknowledgements. */ return code; } long rftp_GetWait(aconn) register struct rftp_conn *aconn; { register long code; ObtainWriteLock(&afs_rftpLock); aconn->flags |= CFMayTimeOut; ReleaseWriteLock(&afs_rftpLock); if (aconn->code == -1000) osi_Sleep(aconn); code = aconn->code; /* connection freed in socket listener after DALLY seconds */ return code; } rftp_SocketListener (as) register struct rftp_server *as; { register long code, i; register struct rftp_conn *tc; struct rftp_conn *nc; struct timeval delay; struct sockaddr_in tfrom; register struct rftp_packet *tp, *tq; long packetLength, now, recheckConn; ObtainWriteLock(&afs_rftpLock); recheckConn = 0; tc = 0; while(afs_running) { /* check if last conn should be nudged */ /* tc is still valid here from the lookup after the FindConn call, or it is null */ /* depends upon lack of lwp context swaps that would allow conn to be freed */ /* it could be a receiver connection, so check before calling CheckSender */ if (recheckConn && tc && (tc->flags & CFSender)) { /* before calling checksender, make sure we've read all we've been sent */ recheckConn = 0; CheckSender(tc); tc = (struct rftp_conn *) 0; } /* read a packet */ if (as->connList) delay.tv_sec = 1; else { delay.tv_sec = 1000; as->bigSleep = 1; } delay.tv_usec = 0; ReleaseWriteLock(&afs_rftpLock); code = osi_NetWait(as->socket, delay.tv_sec * 1000, &as->slHandle); ObtainWriteLock(&afs_rftpLock); as->bigSleep = 0; if (code == 2) continue; /* signalled */ now = osi_Time(); /* check for required retranmissions */ if (as->slRetryTime + REXMITDELAY <= now) { as->slRetryTime = now; for (tc = as->connList; tc; tc=tc->next) { if (tc->flags & CFSender) { /* a sender connection */ CheckSender(tc); } else { /* a receiver connection */ if ((tc->flags & CFSendGo) && tc->s.recv.lgTime + 2 < now) { tc->s.recv.lgTime = now; SendAck(tc, OGo, 0, 0); /* this packet acked by any OData packet */ } } } } /* check for timeout */ if (as->slCheckTime + CHECKPERIOD <= now) { as->slCheckTime = now; for(tc = as->connList; tc; tc=nc) { nc = tc->next; /* avoid lossage when freeing tc */ if ((tc->flags & CFSender) == 0) { if ((tc->flags & CFEnd) && tc->s.recv.endTime + rftp_dally < now) { FreeConnection(tc); } else if (tc->s.recv.lastActive + rftp_recvTimeout < now && (tc->flags & CFMayTimeOut)) { tc->code = RFTP_TIMEOUT; rftp_stat.deads++; rftp_stat.lastCode = RFTP_TIMEOUT; osi_Wakeup(tc); } } } } if (code == 0) continue; /* no packet, just a timeout */ /* ok, try to read the packet */ tp = rftp_AllocPacket(XDR_DECODE, 1); if (tp->data) panic("rftp decode"); packetLength = rftp_allocSize; /* currently ignored */ code = osi_NetReceive(as->socket, &tfrom, &tp->mbuf, &tp->data, &packetLength); if (code != 0) panic("rftp receive"); xdrmem_create(&tp->xdr, tp->data, rftp_allocSize, XDR_DECODE); rftp_stat.inPackets++; xdr_rftpHeader(&tp->xdr, &tp->header); #ifdef DEBUG if (rftp_debug) { osi_GetTime(&delay); printf("R: op = %d, seqno = %d, port=%d, sid=%x flags %x (%d.%d).\n", tp->header.opcode, tp->header.seqno & 0xff, tfrom.sin_port, tp->header.sid, tp->header.flags, delay.tv_sec, delay.tv_usec); } #endif tc = FindConn(as, tfrom.sin_addr.s_addr, tfrom.sin_port, tp->header.sid); /* find the connection */ if (!tc) { rftp_FreePacket(tp); continue; } if (tp->header.opcode == OData) { /* we have some data we're suppose to process */ if(tc->flags & CFSendGo) tc->flags &= ~CFSendGo; if (tp->header.seqno == tc->s.recv.seqno) { if (tp->header.flags & HFAckMe) SendAck(tc, OAck, 0, tc->s.recv.seqno); tc->s.recv.lastActive = now; /* we made some progress */ tc->s.recv.seqno++; /* we've got it now */ tc->flags &= ~CFNAck; i = (long) XDR_GETPOS(&tp->xdr); code = osi_Write(tc->fd, tp->data+i, packetLength-i); if (code != packetLength-i) { tc->code = RFTP_IOERR; rftp_stat.deads++; rftp_stat.lastCode = RFTP_IOERR; recheckConn = 1; rftp_FreePacket(tp); osi_Wakeup(tc); continue; } if (tp->header.flags & HFEnd) { tc->flags |= CFEnd; tc->s.recv.endTime = now; tc->code = 0; osi_Wakeup(tc); /* wake up the guy in rftp_GetFile*/ } } else if (tp->header.seqno < tc->s.recv.seqno) { /* earlier packet, just resend ack (not NAck, can cause loops) */ if (tp->header.flags & HFAckMe) SendAck(tc, OAck, 0, tc->s.recv.seqno-1); } else if ((tc->flags & CFNAck) == 0) /* && (tp->header.seqno > tc->s.recv.seqno) */ { /* here we send an ONAck packet; we've missed some data */ rftp_stat.outNacks++; rftp_FreePacket(tp); SendAck(tc, ONAck, 0, tc->s.recv.seqno-1); tc->flags |= CFNAck; /* no more until made some progress */ continue; } } else if (tp->header.opcode == OAck || tp->header.opcode == ONAck) { /* got an ack, so find sending connection and handle it */ /* note we can get a NAck r.e. same packet just acked */ if (tp->header.seqno >= tc->s.send.lastAck) { /* this packet is a new acknowledgement */ if (tp->header.seqno > tc->s.send.lastAck) tc->s.send.retries = 0; /* made progress again */ /* peel off and free the acked packets */ while (tq=tc->s.send.rxmit) { if (tq->header.seqno <= tp->header.seqno) { tc->s.send.rxmit = tq->next; rftp_FreePacket(tq); } else break; } /* now check if something unexpected happened */ if (tp->header.opcode == ONAck) tc->flags |= CFNAck; /* update the acked packet state */ tc->s.send.lastAck = tp->header.seqno; /* finally wakeup the dude who is waiting */ recheckConn = 1; } } else if (tp->header.opcode == OGo) { tc->flags &= ~CFWait; recheckConn = 1; } /* we used to handle OEnd packets here; they're ignored these days */ /* free the packet */ rftp_FreePacket(tp); } /* the outer while loop */ } /* the whole program */ #]lo$ #%#W#ſ ( /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:rftp.h 12.0$ */ /* $ACIS:rftp.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/rftp.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidrftp = "$Header:rftp.h 12.0$"; #endif #define RFTP_NOTOPEN (-101) #define RFTP_TIMEOUT (-102) #define RFTP_IOERR (-103) /* the values for header.opcode */ #define OData 1 /* this packet contains data */ #define OAck 2 /* this packet acknowledges data */ #define ONAck 3 /* negative acknowledgement -> something is wrong */ #define OEnd 4 /* this packet acks the last ack of a transfer, ending the dally */ #define OGo 5 /* you can start sending now */ /* the values for header.flags */ #define HFAckMe 1 /* this OData packet should be acked */ #define HFEnd 2 /* this OData packet is the last one containing data */ /* the values for rftp_conn.flags */ #define CFSender 0x1 /* this is the sender's connection (both) */ #define CFNAck 0x2 /* received/sent nack (send /recv side respectively) */ #define CFEnd 0x4 /* received an end (recv only) */ #define CFEmptyFile 0x8 /* need to force sending an empty packet */ #define CFMayTimeOut 0x10 /* this connection may time out */ #define CFWait 0x20 /* this connection is waiting for safe start */ #define CFSendGo 0x40 /* keep sending go's until we get some data */ struct rftp_server { struct osi_WaitHandle slHandle; /* socket listener's wait handle */ struct rftp_server *next; /* next server in list */ struct osi_socket *socket; /* associated server socket */ struct rftp_conn *connList; /* connections for this server */ long slCheckTime; /* dead conn check time */ long slRetryTime; /* retransmit-check time */ short states; /* always have those states */ short bigSleep; /* sleep for a long time? */ u_short port; }; struct rftp_stat { long outNacks; long outRexmits; long sendCalls; long recvCalls; long inPackets; long outPackets; long deads; long lastCode; }; struct rftp_conn { struct rftp_conn *next; /* the next dude in the free/in-use list */ long host; /* other host */ long portal; /* other portal */ long sid; /* the sid */ char *key; /* key set from rpc connection */ short flags; /* some status flags */ struct osi_file *fd; /* the file descriptor in which to put/get the data */ struct rftp_server *server; /* the associated server */ long code; /* transfer's success code */ union { struct { /* receiver's state */ long seqno; /* next packet expected */ long lastActive; /* last time we heard from the other side */ long endTime; /* time the end flag went on */ long lgTime; /* last time we sent a go packet */ } recv; struct { /* sender's state */ long window; /* first packet we can't send send due to window limitations */ long lastAck; /* the last packet acked */ long laTime; /* the time the last ack was sent */ long retries; /* number of retries in a row without any progress */ long nextSend; /* the next packet to read from file */ long bytesLeft; /* bytes left to read */ long filePosn; /* position in the file */ struct rftp_packet *rxmit; /* the retransmission queue (sent once) */ struct rftp_packet *ra; /* the read ahead queue (never sent) */ long raQSize; /* number of entries in here */ short blksize; /* file system blocksize for sender */ short fd; /* the file descr we're dealing with */ } send; } s; /* generic state */ }; struct rftp_header { long protocolVersion; long sid; long seqno; long who; short opcode; short flags; }; struct rftp_packet { struct rftp_packet *next; /* next guy in the free list or conn queue */ XDR xdr; /* xdr structure for packing/unpacking */ long length; /* packet length including header */ struct rftp_header header; /* the unpacked header */ struct mbuf *mbuf; /* associated network buffer structure */ char *data; /* data starts here. */ }; struct rftp_server *rftp_NewServer(); #]lo $ #%#W#ſ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:voldefs.h 12.0$ */ /* $ACIS:voldefs.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/voldefs.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidvoldefs = "$Header:voldefs.h 12.0$"; #endif /* System: VICE-TWO Module: voldefs.h Institution: The Information Technology Center, Carnegie-Mellon University */ /* If you add volume types here, be sure to check the definition of volumeWriteable in volume.h */ #define readwriteVolume RWVOL #define readonlyVolume ROVOL #define backupVolume BACKVOL #define RWVOL 0 #define ROVOL 1 #define BACKVOL 2 /* All volumes will have a volume header name in this format */ #define VFORMAT "V%010lu.vol" #define VMAXPATHLEN 64 /* Maximum length (including null) of a volume external path name */ /* Pathname for the maximum volume id ever created by this server */ #define MAXVOLIDPATH "/vice/vol/maxvolid" /* Pathname for server id definitions--the server id is used to allocate volume numbers */ #define SERVERLISTPATH "/vice/db/servers" /* Values for connect parameter to VInitVolumePackage */ #define CONNECT_FS 1 #define DONT_CONNECT_FS 0 #]lo $ #%#W#ſ /* * 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 * LICENSED MATERIALS - PROPERTY OF IBM * REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 */ /* $Header:volerrors.h 12.0$ */ /* $ACIS:volerrors.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/afs/RCS/volerrors.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsiderrors = "$Header:volerrors.h 12.0$"; #endif /* System: VICE-TWO Module: errors.h Institution: The Information Technology Center, Carnegie-Mellon University */ /* * Vice2 error codes * 3/20/85 * Note: all of the errors listed here are currently generated by the volume * package. Other vice error codes, should they be needed, could be included * here also. */ #define VREADONLY EROFS /* Attempt to write a read-only volume */ /* Special error codes, which may require special handling (other than just passing them through directly to the end user) are listed below */ #define VICE_SPECIAL_ERRORS 101 /* Lowest special error code */ #define VSALVAGE 101 /* Volume needs salvage */ #define VNOVNODE 102 /* Bad vnode number quoted */ #define VNOVOL 103 /* Volume not attached, doesn't exist, not created or not online */ #define VVOLEXISTS 104 /* Volume already exists */ #define VNOSERVICE 105 /* Volume is not in service (i.e. it's is out of funds, is obsolete, or somesuch) */ #define VOFFLINE 106 /* Volume is off line, for the reason given in the offline message */ #define VONLINE 107 /* Volume is already on line */ #define VDISKFULL ENOSPC /* Partition is "full", i.e. rougly within n% of full */ #define VOVERQUOTA EDQUOT /* Volume max quota exceeded */ #define VBUSY 110 /* Volume temporarily unavailable; try again. The volume should be available again shortly; if it isn't something is wrong. Not normally to be propagated to the application level */ #define VMOVED 111 /* Volume has moved to another server; do a VGetVolumeInfo to THIS server to find out where */ #]loĭ$ H#&#Z#  [&/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:if_imp.c 12.0$ */ /* $ACIS:if_imp.c 12.0$ */ /* $Source: /ibm/acis/usr/sys/netimp/RCS/if_imp.c,v $ */ #ifndef lint static char *rcsid = "$Header:if_imp.c 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)if_imp.c 7.1 (Berkeley) 6/4/86 */ #include "imp.h" #if NIMP > 0 /* * ARPANET IMP interface driver. * * The IMP-host protocol is handled here, leaving * hardware specifics to the lower level interface driver. */ #include "../machine/pte.h" #include "param.h" #include "systm.h" #include "mbuf.h" #include "buf.h" #include "protosw.h" #include "socket.h" #include "vmmac.h" #include "time.h" #include "kernel.h" #include "errno.h" #include "ioctl.h" #if defined(vax) #include "../vax/cpu.h" #include "../vax/mtpr.h" #include "../vaxuba/ubareg.h" #include "../vaxuba/ubavar.h" #endif /* defined(vax) */ #include "../net/if.h" #include "../net/route.h" #include "../net/netisr.h" #include "../netinet/in.h" #include "../netinet/in_systm.h" #include "../netinet/in_var.h" #include "../netinet/ip.h" #include "../netinet/ip_var.h" /* define IMPLEADERS here to get leader printing code */ #include "if_imp.h" #include "if_imphost.h" /* * IMP software status per interface. * (partially shared with the hardware specific module) * * Each interface is referenced by a network interface structure, * imp_if, which the routing code uses to locate the interface. * This structure contains the output queue for the interface, its * address, ... IMP specific structures used in connecting the * IMP software modules to the hardware specific interface routines * are stored here. The common structures are made visible to the * interface driver by passing a pointer to the hardware routine * at "attach" time. * * NOTE: imp_if and imp_cb are assumed adjacent in hardware code. */ struct imp_softc { struct ifnet imp_if; /* network visible interface */ struct impcb imp_cb; /* hooks to hardware module */ u_char imp_state; /* current state of IMP */ char imp_dropcnt; /* used during initialization */ } imp_softc[NIMP]; struct ifqueue impintrq; int impqmaxlen = IFQ_MAXLEN; /* * Messages from IMP regarding why * it's going down. */ static char *impmessage[] = { "in 30 seconds", "for hardware PM", "to reload software", "for emergency reset" }; #define HOSTDEADTIMER 10 /* How long to wait when down */ int impdown(), impinit(), impioctl(), impoutput(); #if !defined(ibm370) /* * IMP attach routine. Called from hardware device attach routine * at configuration time with a pointer to the UNIBUS device structure. * Sets up local state and returns pointer to base of ifnet+impcb * structures. This is then used by the device's attach routine * set up its back pointers. */ impattach(ui, reset) struct uba_device *ui; int (*reset)(); { struct imp_softc *sc; register struct ifnet *ifp; #ifdef lint impintr(); #endif if (ui->ui_unit >= NIMP) { printf("imp%d: not configured\n", ui->ui_unit); return (0); } sc = &imp_softc[ui->ui_unit]; ifp = &sc->imp_if; /* UNIT COULD BE AMBIGUOUS */ ifp->if_unit = ui->ui_unit; ifp->if_name = "imp"; ifp->if_mtu = IMPMTU - sizeof(struct imp_leader); ifp->if_reset = reset; ifp->if_init = impinit; ifp->if_ioctl = impioctl; ifp->if_output = impoutput; /* reset is handled at the hardware level */ if_attach(ifp); return ((int)ifp); } #endif /* !defined(ibm370) */ /* * IMP initialization routine: call hardware module to * setup UNIBUS resources, init state and get ready for * NOOPs the IMP should send us, and that we want to drop. */ impinit(unit) int unit; { int s = splimp(); register struct imp_softc *sc = &imp_softc[unit]; if (sc->imp_if.if_addrlist == 0) return; if ((*sc->imp_cb.ic_init)(unit) == 0) { sc->imp_state = IMPS_DOWN; sc->imp_if.if_flags &= ~IFF_UP; splx(s); return; } sc->imp_state = IMPS_INIT; impnoops(sc); impintrq.ifq_maxlen = impqmaxlen; splx(s); } #ifdef IMPLEADERS int impprintfs = 0; #endif /* * ARPAnet 1822 input routine. * Called from hardware input interrupt routine to handle 1822 * IMP-host messages. Type 0 messages (non-control) are * passed to higher level protocol processors on the basis * of link number. Other type messages (control) are handled here. */ impinput(unit, m) int unit; register struct mbuf *m; { register struct imp_leader *ip; register struct imp_softc *sc = &imp_softc[unit]; struct ifnet *ifp; register struct host *hp; register struct ifqueue *inq; struct control_leader *cp; struct in_addr addr; struct mbuf *next; struct sockaddr_in *sin; /* * Pull the interface pointer out of the mbuf * and save for later; adjust mbuf to look at rest of data. */ ifp = *(mtod(m, struct ifnet **)); IF_ADJ(m); /* verify leader length. */ if (m->m_len < sizeof(struct control_leader) && (m = m_pullup(m, sizeof(struct control_leader))) == 0) return; cp = mtod(m, struct control_leader *); if (cp->dl_mtype == IMPTYPE_DATA) if (m->m_len < sizeof(struct imp_leader) && (m = m_pullup(m, sizeof(struct imp_leader))) == 0) return; ip = mtod(m, struct imp_leader *); #ifdef IMPLEADERS if (impprintfs) printleader("impinput", ip); #endif inq = &impintrq; /* check leader type */ if (ip->il_format != IMP_NFF) { sc->imp_if.if_collisions++; /* XXX */ goto rawlinkin; } if (ip->il_mtype != IMPTYPE_DATA) { /* If not data packet, build IP addr from leader (BRL) */ imp_leader_to_addr(&addr, ip, &sc->imp_if); } switch (ip->il_mtype) { case IMPTYPE_DATA: /* * Data for a protocol. Dispatch to the appropriate * protocol routine (running at software interrupt). * If this isn't a raw interface, advance pointer * into mbuf past leader. */ switch (ip->il_link) { case IMPLINK_IP: m->m_len -= sizeof(struct imp_leader); m->m_off += sizeof(struct imp_leader); schednetisr(NETISR_IP); inq = &ipintrq; break; default: break; } break; /* * IMP leader error. Reset the IMP and discard the packet. */ case IMPTYPE_BADLEADER: /* * According to 1822 document, this message * will be generated in response to the * first noop sent to the IMP after * the host resets the IMP interface. */ if (sc->imp_state != IMPS_INIT) { impmsg(sc, "leader error"); hostreset(((struct in_ifaddr *)&sc->imp_if.if_addrlist)->ia_net); impnoops(sc); } break; /* * IMP going down. Print message, and if not immediate, * set off a timer to insure things will be reset at the * appropriate time. */ case IMPTYPE_DOWN: if (sc->imp_state < IMPS_INIT) break; if ((ip->il_link & IMP_DMASK) == 0) { sc->imp_state = IMPS_GOINGDOWN; timeout(impdown, (caddr_t)sc, 30 * hz); } impmsg(sc, "going down %s", (u_int)impmessage[ip->il_link&IMP_DMASK]); break; /* * A NOP usually seen during the initialization sequence. * Compare the local address with that in the message. * Reset the local address notion if it doesn't match. */ case IMPTYPE_NOOP: if (sc->imp_state == IMPS_DOWN) { sc->imp_state = IMPS_INIT; sc->imp_dropcnt = IMP_DROPCNT; } if (sc->imp_state == IMPS_INIT && --sc->imp_dropcnt > 0) break; sin = (struct sockaddr_in *)&sc->imp_if.if_addrlist->ifa_addr; if (ip->il_imp != 0) { struct in_addr leader_addr; imp_leader_to_addr(&leader_addr, ip, &sc->imp_if); if (sin->sin_addr.s_addr != leader_addr.s_addr) { impmsg(sc, "address reset to x%x (%d/%d)", ntohl(leader_addr.s_addr), (u_int)ip->il_host, ntohs(ip->il_imp)); sin->sin_addr.s_addr = leader_addr.s_addr; } } sc->imp_state = IMPS_UP; sc->imp_if.if_flags |= IFF_UP; break; /* * RFNM or INCOMPLETE message, send next * message on the q. We could pass incomplete's * up to the next level, but this currently isn't * needed. */ case IMPTYPE_RFNM: case IMPTYPE_INCOMPLETE: if (hp = hostlookup(addr)) { hp->h_timer = HOSTTIMER; if (hp->h_rfnm == 0) hp->h_flags &= ~HF_INUSE; else if (next = hostdeque(hp)) (void) impsnd(&sc->imp_if, next); } goto drop; /* * Host or IMP can't be reached. Flush any packets * awaiting transmission and release the host structure. * Enqueue for notifying protocols at software interrupt time. */ case IMPTYPE_HOSTDEAD: case IMPTYPE_HOSTUNREACH: if (hp = hostlookup(addr)) { hp->h_flags |= (1 << (int)ip->il_mtype); hostfree(hp); hp->h_timer = HOSTDEADTIMER; } break; /* * Error in data. Clear RFNM status for this host and send * noops to the IMP to clear the interface. */ case IMPTYPE_BADDATA: impmsg(sc, "data error"); if (hp = hostlookup(addr)) hp->h_rfnm = 0; impnoops(sc); break; /* * Interface reset. */ case IMPTYPE_RESET: impmsg(sc, "interface reset"); /* clear RFNM counts */ hostreset(((struct in_ifaddr *)&sc->imp_if.if_addrlist)->ia_net); impnoops(sc); break; default: sc->imp_if.if_collisions++; /* XXX */ break; } rawlinkin: if (inq == &impintrq) schednetisr(NETISR_IMP); /* * Re-insert interface pointer in the mbuf chain * for the next protocol up. */ if (M_HASCL(m) && (mtod(m, int) & CLOFSET) < sizeof(struct ifnet *)) { struct mbuf *n; MGET(n, M_DONTWAIT, MT_HEADER); if (n == 0) goto drop; n->m_next = m; m = n; m->m_len = 0; m->m_off = MMINOFF + sizeof(struct ifnet *); } m->m_off -= sizeof(struct ifnet *); m->m_len += sizeof(struct ifnet *); *(mtod(m, struct ifnet **)) = ifp; if (IF_QFULL(inq)) { IF_DROP(inq); goto drop; } IF_ENQUEUE(inq, m); return; drop: m_freem(m); } /* * Bring the IMP down after notification. */ impdown(sc) struct imp_softc *sc; { int s = splimp(); sc->imp_state = IMPS_DOWN; impmsg(sc, "marked down"); hostreset(((struct in_ifaddr *)&sc->imp_if.if_addrlist)->ia_net); if_down(&sc->imp_if); splx(s); } /*VARARGS2*/ impmsg(sc, fmt, a1, a2, a3) struct imp_softc *sc; char *fmt; u_int a1; { printf("imp%d: ", sc->imp_if.if_unit); printf(fmt, a1, a2, a3); printf("\n"); } struct sockproto impproto = { PF_IMPLINK }; struct sockaddr_in impdst = { AF_IMPLINK }; struct sockaddr_in impsrc = { AF_IMPLINK }; /* * Pick up the IMP "error" messages enqueued earlier, * passing these up to the higher level protocol * and the raw interface. */ impintr() { register struct mbuf *m; register struct control_leader *cp; struct ifnet *ifp; int s; for (;;) { s = splimp(); IF_DEQUEUEIF(&impintrq, m, ifp); splx(s); if (m == 0) return; cp = mtod(m, struct control_leader *); imp_leader_to_addr(&impsrc.sin_addr, (struct imp_leader *)cp, ifp); impproto.sp_protocol = cp->dl_link; impdst.sin_addr = IA_SIN(ifp->if_addrlist)->sin_addr; if (cp->dl_mtype == IMPTYPE_HOSTDEAD || cp->dl_mtype == IMPTYPE_HOSTUNREACH) switch (cp->dl_link) { case IMPLINK_IP: pfctlinput((int)cp->dl_mtype, (struct sockaddr *)&impsrc); break; default: raw_ctlinput((int)cp->dl_mtype, (struct sockaddr *)&impsrc); break; } raw_input(m, &impproto, (struct sockaddr *)&impsrc, (struct sockaddr *)&impdst); } } /* * ARPAnet 1822 output routine. * Called from higher level protocol routines to set up messages for * transmission to the imp. Sets up the header and calls impsnd to * enqueue the message for this IMP's hardware driver. */ impoutput(ifp, m0, dst) register struct ifnet *ifp; struct mbuf *m0; struct sockaddr *dst; { register struct imp_leader *imp; register struct mbuf *m = m0; int dlink, len; int error = 0; /* * Don't even try if the IMP is unavailable. */ if (imp_softc[ifp->if_unit].imp_state != IMPS_UP) { error = ENETDOWN; goto drop; } switch (dst->sa_family) { case AF_INET: { struct ip *ip = mtod(m, struct ip *); dlink = IMPLINK_IP; len = ntohs((u_short)ip->ip_len); break; } case AF_IMPLINK: len = 0; do len += m->m_len; while (m = m->m_next); m = m0; goto leaderexists; default: printf("imp%d: can't handle af%d\n", ifp->if_unit, dst->sa_family); error = EAFNOSUPPORT; goto drop; } /* * Add IMP leader. If there's not enough space in the * first mbuf, allocate another. If that should fail, we * drop this sucker. */ if (m->m_off > MMAXOFF || MMINOFF + sizeof(struct imp_leader) > m->m_off) { m = m_get(M_DONTWAIT, MT_HEADER); if (m == 0) { error = ENOBUFS; goto drop; } m->m_next = m0; m->m_len = sizeof(struct imp_leader); } else { m->m_off -= sizeof(struct imp_leader); m->m_len += sizeof(struct imp_leader); } imp = mtod(m, struct imp_leader *); imp->il_format = IMP_NFF; imp->il_mtype = IMPTYPE_DATA; imp_addr_to_leader(imp, ((struct sockaddr_in *)dst)->sin_addr.s_addr); /* BRL */ imp->il_length = htons((u_short)len << 3); /* BRL */ imp->il_link = dlink; imp->il_flags = imp->il_htype = imp->il_subtype = 0; leaderexists: return (impsnd(ifp, m)); drop: m_freem(m0); return (error); } /* * Put a message on an interface's output queue. * Perform RFNM counting: no more than 8 message may be * in flight to any one host. */ impsnd(ifp, m) struct ifnet *ifp; struct mbuf *m; { register struct imp_leader *ip; register struct host *hp; struct impcb *icp; int s, error; ip = mtod(m, struct imp_leader *); /* * Do RFNM counting for data messages * (no more than 8 outstanding to any host) */ s = splimp(); if (ip->il_mtype == IMPTYPE_DATA) { struct in_addr addr; imp_leader_to_addr(&addr, ip, ifp); /* BRL */ if ((hp = hostlookup(addr)) == 0) hp = hostenter(addr); if (hp && (hp->h_flags & (HF_DEAD|HF_UNREACH))) { error = hp->h_flags&HF_DEAD ? EHOSTDOWN : EHOSTUNREACH; hp->h_flags &= ~HF_INUSE; goto bad; } /* * If IMP would block, queue until RFNM */ if (hp) { #ifndef NORFNM if (hp->h_rfnm < 8) #endif { hp->h_timer = HOSTTIMER; hp->h_rfnm++; goto enque; } if (hp->h_qcnt < 8) { /* high water mark */ HOST_ENQUE(hp, m); goto start; } } error = ENOBUFS; goto bad; } enque: if (IF_QFULL(&ifp->if_snd)) { IF_DROP(&ifp->if_snd); error = ENOBUFS; if (ip->il_mtype == IMPTYPE_DATA) hp->h_rfnm--; bad: m_freem(m); splx(s); return (error); } IF_ENQUEUE(&ifp->if_snd, m); start: icp = &imp_softc[ifp->if_unit].imp_cb; if (icp->ic_oactive == 0) (*icp->ic_start)(ifp->if_unit); splx(s); return (0); } /* * Put three 1822 NOOPs at the head of the output queue. * Part of host-IMP initialization procedure. * (Should return success/failure, but noone knows * what to do with this, so why bother?) * This routine is always called at splimp, so we don't * protect the call to IF_PREPEND. */ impnoops(sc) register struct imp_softc *sc; { register i; register struct mbuf *m; register struct control_leader *cp; sc->imp_dropcnt = IMP_DROPCNT; for (i = 0; i < IMP_DROPCNT + 1; i++) { if ((m = m_getclr(M_DONTWAIT, MT_HEADER)) == 0) return; m->m_len = sizeof(struct control_leader); cp = mtod(m, struct control_leader *); cp->dl_format = IMP_NFF; cp->dl_link = i; cp->dl_mtype = IMPTYPE_NOOP; IF_PREPEND(&sc->imp_if.if_snd, m); } if (sc->imp_cb.ic_oactive == 0) (*sc->imp_cb.ic_start)(sc->imp_if.if_unit); } /* * Process an ioctl request. */ impioctl(ifp, cmd, data) register struct ifnet *ifp; int cmd; caddr_t data; { struct ifaddr *ifa = (struct ifaddr *) data; int s = splimp(), error = 0; switch (cmd) { case SIOCSIFADDR: if (ifa->ifa_addr.sa_family != AF_INET) { error = EINVAL; break; } if ((ifp->if_flags & IFF_RUNNING) == 0) impinit(ifp->if_unit); break; default: error = EINVAL; } splx(s); return (error); } #ifdef IMPLEADERS printleader(routine, ip) char *routine; register struct imp_leader *ip; { printf("%s: ", routine); printbyte((char *)ip, 12); printf("il_format, ip->il_network, ip->il_flags); if (ip->il_mtype <= IMPTYPE_READY) printf("%s,", impleaders[ip->il_mtype]); else printf("%x,", ip->il_mtype); printf("htype=%x,host=%x,imp=%x,link=", ip->il_htype, ip->il_host, ntohs(ip->il_imp)); if (ip->il_link == IMPLINK_IP) printf("ip,"); else printf("%x,", ip->il_link); printf("subtype=%x,len=%x>\n",ip->il_subtype,ntohs(ip->il_length)>>3); } printbyte(cp, n) register char *cp; int n; { register i, j, c; for (i=0; i>((1-j)*4))&0xf], 0); putchar(' ', 0); } putchar('\n', 0); } #endif /* * Routine to convert from IMP Leader to InterNet Address. * * This procedure is necessary because IMPs may be assigned Class A, B, or C * network numbers, but only have 8 bits in the leader to reflect the * IMP "network number". The strategy is to take the network number from * the ifnet structure, and blend in the host-on-imp and imp-on-net numbers * from the leader. * * There is no support for "Logical Hosts". * * Class A: Net.Host.0.Imp * Class B: Net.net.Host.Imp * Class C: Net.net.net.(Host4|Imp4) */ imp_leader_to_addr(ap, ip, ifp) struct in_addr *ap; register struct imp_leader *ip; struct ifnet *ifp; { register u_long final; register struct sockaddr_in *sin; int imp = ntohs(ip->il_imp); sin = (struct sockaddr_in *)(&ifp->if_addrlist->ifa_addr); final = ntohl(sin->sin_addr.s_addr); if (IN_CLASSA(final)) { final &= IN_CLASSA_NET; final |= (imp & 0xFF) | ((ip->il_host & 0xFF)<<16); } else if (IN_CLASSB(final)) { final &= IN_CLASSB_NET; final |= (imp & 0xFF) | ((ip->il_host & 0xFF)<<8); } else { final &= IN_CLASSC_NET; final |= (imp & 0x0F) | ((ip->il_host & 0x0F)<<4); } ap->s_addr = htonl(final); } /* * Function to take InterNet address and fill in IMP leader fields. */ imp_addr_to_leader(imp, a) register struct imp_leader *imp; u_long a; { register u_long addr = ntohl(a); imp->il_network = 0; /* !! */ if (IN_CLASSA(addr)) { imp->il_host = ((addr>>16) & 0xFF); imp->il_imp = addr & 0xFF; } else if (IN_CLASSB(addr)) { imp->il_host = ((addr>>8) & 0xFF); imp->il_imp = addr & 0xFF; } else { imp->il_host = ((addr>>4) & 0xF); imp->il_imp = addr & 0xF; } imp->il_imp = htons(imp->il_imp); } #endif #]lo-$ #&#Z# 8 /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:if_imp.h 12.0$ */ /* $ACIS:if_imp.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/netimp/RCS/if_imp.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidif_imp = "$Header:if_imp.h 12.0$"; #endif /* if_imp.h 6.1 83/07/29 */ /* * Structure of IMP 1822 long leader. */ struct control_leader { u_char dl_format; /* leader format */ u_char dl_network; /* src/dest network */ u_char dl_flags; /* leader flags */ u_char dl_mtype; /* message type */ u_char dl_htype; /* handling type */ u_char dl_host; /* host number */ u_short dl_imp; /* imp field */ u_char dl_link; /* link number */ u_char dl_subtype; /* message subtype */ }; struct imp_leader { struct control_leader il_dl; #define il_format il_dl.dl_format #define il_network il_dl.dl_network #define il_flags il_dl.dl_flags #define il_mtype il_dl.dl_mtype #define il_htype il_dl.dl_htype #define il_host il_dl.dl_host #define il_imp il_dl.dl_imp #define il_link il_dl.dl_link #define il_subtype il_dl.dl_subtype u_short il_length; /* message length */ }; #define IMP_DROPCNT 2 /* # of noops from imp to ignore */ /* insure things are even... */ #define IMPMTU ((8159 / NBBY) & ~01) /* * IMP-host flags */ #define IMP_NFF 0xf /* 96-bit (new) format */ #define IMP_TRACE 0x8 /* trace message route */ #define IMP_DMASK 0x3 /* host going down mask */ /* * IMP-host message types. */ #define IMPTYPE_DATA 0 /* data for protocol */ #define IMPTYPE_BADLEADER 1 /* leader error */ #define IMPTYPE_DOWN 2 /* imp going down */ #define IMPTYPE_NOOP 4 /* noop seen during initialization */ #define IMPTYPE_RFNM 5 /* request for new messages */ #define IMPTYPE_HOSTDEAD 6 /* host doesn't respond */ #define IMPTYPE_HOSTUNREACH 7 /* host unreachable */ #define IMPTYPE_BADDATA 8 /* data error */ #define IMPTYPE_INCOMPLETE 9 /* incomplete message, send rest */ #define IMPTYPE_RESET 10 /* reset complete */ /* non-blocking IMP interface */ #define IMPTYPE_RETRY 11 /* IMP refused, try again */ #define IMPTYPE_NOTIFY 12 /* IMP refused, will notify */ #define IMPTYPE_TRYING 13 /* IMP refused, still rexmt'ng */ #define IMPTYPE_READY 14 /* ready for next message */ /* * IMPTYPE_DOWN subtypes. */ #define IMPDOWN_GOING 0 /* 30 secs */ #define IMPDOWN_PM 1 /* hardware PM */ #define IMPDOWN_RELOAD 2 /* software reload */ #define IMPDOWN_RESTART 3 /* emergency restart */ /* * IMPTYPE_BADLEADER subtypes. */ #define IMPLEADER_ERR 0 /* error flip-flop set */ #define IMPLEADER_SHORT 1 /* leader < 80 bits */ #define IMPLEADER_TYPE 2 /* illegal type field */ #define IMPLEADER_OPPOSITE 3 /* opposite leader type */ /* * IMPTYPE_HOSTDEAD subtypes. */ #define IMPHOST_NORDY 1 /* ready-line negated */ #define IMPHOST_TARDY 2 /* tardy receiving mesgs */ #define IMPHOST_NOEXIST 3 /* NCC doesn't know host */ #define IMPHOST_IMPSOFT 4 /* IMP software won't allow mesgs */ #define IMPHOST_PM 5 /* host down for scheduled PM */ #define IMPHOST_HARDSCHED 6 /* " " " " hardware work */ #define IMPHOST_SOFTSCHED 7 /* " " " " software work */ #define IMPHOST_RESTART 8 /* host down for emergency restart */ #define IMPHOST_POWER 9 /* down because of power outage */ #define IMPHOST_BREAKPOINT 10 /* host stopped at a breakpoint */ #define IMPHOST_HARDWARE 11 /* hardware failure */ #define IMPHOST_NOTUP 12 /* host not scheduled to be up */ /* 13-14 currently unused */ #define IMPHOST_COMINGUP 15 /* host in process of coming up */ /* * IMPTYPE_HOSTUNREACH subtypes. */ #define IMPREACH_IMP 0 /* destination IMP can't be reached */ #define IMPREACH_HOSTUP 1 /* destination host isn't up */ #define IMPREACH_LEADER 2 /* host doesn't support long leader */ #define IMPREACH_PROHIBITED 3 /* communication is prohibited */ /* * IMPTYPE_INCOMPLETE subtypes. */ #define IMPCOMPLETE_SLOW 0 /* host didn't take data fast enough */ #define IMPCOMPLETE_TOOLONG 1 /* message was too long */ #define IMPCOMPLETE_TIMEOUT 2 /* mesg transmission time > 15 sec. */ #define IMPCOMPLETE_FAILURE 3 /* IMP/circuit failure */ #define IMPCOMPLETE_NOSPACE 4 /* no resources within 15 sec. */ #define IMPCOMPLETE_IMPIO 5 /* src IMP I/O failure during receipt */ /* * IMPTYPE_RETRY subtypes. */ #define IMPRETRY_BUFFER 0 /* IMP buffer wasn't available */ #define IMPRETRY_BLOCK 1 /* connection block unavailable */ /* * Data structure shared between IMP protocol module and hardware * interface driver. Used to allow layering of IMP routines on top * of varying device drivers. NOTE: there's a possible problem * with ambiguity in the ``unit'' definition which is implicitly * shared by the both IMP and device code. If we have two IMPs, * with each on top of a device of the same unit, things won't work. * The assumption is if you've got multiple IMPs, then they all run * on top of the same type of device, or they must have different units. */ struct impcb { char ic_oactive; /* output in progress */ int (*ic_init)(); /* hardware init routine */ int (*ic_start)(); /* hardware start output routine */ }; /* * State of an IMP. */ #define IMPS_DOWN 0 /* unavailable, don't use */ #define IMPS_GOINGDOWN 1 /* been told we go down soon */ #define IMPS_INIT 2 /* coming up */ #define IMPS_UP 3 /* ready to go */ #define IMPS_RESET 4 /* reset in progress */ #define IMPTV_DOWN (30*60) /* going down timer 30 secs */ #ifdef IMPLEADERS char *impleaders[IMPTYPE_READY+1] = { "DATA", "BADLEADER", "DOWN", "bad", "NOOP", "RFNM", "HOSTDEAD", "HOSTUNREACH", "BADDATA", "INCOMPLETE", "RESET", "RETRY", "NOTIFY", "TRYING", "READY" }; #endif #]lo]$ #&#Z# H /* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:if_imphost.c 12.0$ */ /* $ACIS:if_imphost.c 12.0$ */ /* $Source: /ibm/acis/usr/sys/netimp/RCS/if_imphost.c,v $ */ #ifndef lint static char *rcsid = "$Header:if_imphost.c 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)if_imphost.c 7.1 (Berkeley) 6/4/86 */ #include "imp.h" #if NIMP > 0 /* * Host table manipulation routines. * Only needed when shipping stuff through an IMP. * * Everything in here is called at splimp from * from the IMP protocol code (if_imp.c), or * interlocks with the code at splimp. */ #include "param.h" #include "mbuf.h" #include "syslog.h" #include "../netinet/in.h" #include "../netinet/in_systm.h" #include "if_imp.h" #include "if_imphost.h" /* * Head of host table hash chains. */ struct mbuf *hosts; /* * Given an internet address * return a host structure (if it exists). */ struct host * hostlookup(addr) struct in_addr addr; { register struct host *hp; register struct mbuf *m; register int hash = HOSTHASH(addr); for (m = hosts; m; m = m->m_next) { hp = &mtod(m, struct hmbuf *)->hm_hosts[hash]; if (hp->h_addr.s_addr == addr.s_addr) { hp->h_flags |= HF_INUSE; return (hp); } } return ((struct host *)0); } /* * Enter a reference to this host's internet * address. If no host structure exists, create * one and hook it into the host database. */ struct host * hostenter(addr) struct in_addr addr; { register struct mbuf *m, **mprev; register struct host *hp, *hp0 = 0; register int hash = HOSTHASH(addr); mprev = &hosts; while (m = *mprev) { mprev = &m->m_next; hp = &mtod(m, struct hmbuf *)->hm_hosts[hash]; if ((hp->h_flags & HF_INUSE) == 0) { if (hp->h_addr.s_addr == addr.s_addr) goto foundhost; if (hp0 == 0) hp0 = hp; continue; } if (hp->h_addr.s_addr == addr.s_addr) goto foundhost; } /* * No current host structure, make one. * If our search ran off the end of the * chain of mbuf's, allocate another. */ if (hp0 == 0) { m = m_getclr(M_DONTWAIT, MT_HTABLE); if (m == NULL) return ((struct host *)0); *mprev = m; hp0 = &mtod(m, struct hmbuf *)->hm_hosts[hash]; } mtod(dtom(hp0), struct hmbuf *)->hm_count++; hp = hp0; hp->h_addr = addr; hp->h_timer = 0; hp->h_flags = 0; foundhost: hp->h_flags |= HF_INUSE; return (hp); } /* * Mark a host structure free and set it's * timer going. */ hostfree(hp) register struct host *hp; { hp->h_flags &= ~HF_INUSE; hp->h_timer = HOSTTIMER; hp->h_rfnm = 0; } /* * Reset a given network's host entries. */ hostreset(net) u_long net; { register struct mbuf *m; register struct host *hp, *lp; struct hmbuf *hm; struct mbuf *mnext; for (m = hosts; m; m = mnext) { mnext = m->m_next; hm = mtod(m, struct hmbuf *); hp = hm->hm_hosts; lp = hp + HPMBUF; while (hm->hm_count > 0 && hp < lp) { if (in_netof(hp->h_addr) == net) { hp->h_flags &= ~HF_INUSE; hostrelease(hp); } hp++; } } } /* * Remove a host structure and release * any resources it's accumulated. */ hostrelease(hp) register struct host *hp; { register struct mbuf *m, **mprev, *mh = dtom(hp); /* * Discard any packets left on the waiting q */ if (m = hp->h_q) { register struct mbuf *n; do { n = m->m_act; m_freem(m); m = n; } while (m != hp->h_q); hp->h_q = 0; } hp->h_flags = 0; hp->h_rfnm = 0; if (--mtod(mh, struct hmbuf *)->hm_count) return; mprev = &hosts; while ((m = *mprev) != mh) mprev = &m->m_next; *mprev = m_free(mh); } /* * Remove a packet from the holding q. * The RFNM counter is also bumped. */ struct mbuf * hostdeque(hp) register struct host *hp; { register struct mbuf *m; hp->h_rfnm--; HOST_DEQUE(hp, m); if (m) return (m); if (hp->h_rfnm == 0) hostfree(hp); return (0); } /* * Host data base timer routine. * Decrement timers on structures which are * waiting to be deallocated. On expiration * release resources, possibly deallocating * mbuf associated with structure. */ hostslowtimo() { register struct mbuf *m; register struct host *hp, *lp; struct hmbuf *hm; struct mbuf *mnext; int s = splimp(); for (m = hosts; m; m = mnext) { mnext = m->m_next; hm = mtod(m, struct hmbuf *); hp = hm->hm_hosts; lp = hp + HPMBUF; for (; hm->hm_count > 0 && hp < lp; hp++) { if (hp->h_timer && --hp->h_timer == 0) { if (hp->h_rfnm) log(LOG_WARNING, "imp?: host %x, lost %d rfnms\n", ntohl(hp->h_addr.s_addr), hp->h_rfnm); hostrelease(hp); } } } splx(s); } #endif #]lo$ #&#Z# X/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:if_imphost.h 12.0$ */ /* $ACIS:if_imphost.h 12.0$ */ /* $Source: /ibm/acis/usr/sys/netimp/RCS/if_imphost.h,v $ */ #if !defined(lint) && !defined(LOCORE) && defined(RCS_HDRS) static char *rcsidif_imphost = "$Header:if_imphost.h 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)if_imphost.h 7.1 (Berkeley) 6/4/86 */ /* * Host structure used with IMP's. * Used to hold outgoing packets which * would exceed allowed RFNM count. * * These structures are packed into * mbuf's and kept as small as possible. */ struct host { struct mbuf *h_q; /* holding queue */ struct in_addr h_addr; /* host's address */ u_char h_qcnt; /* size of holding q */ u_char h_timer; /* used to stay off deletion */ u_char h_rfnm; /* # outstanding rfnm's */ u_char h_flags; /* see below */ }; /* * A host structure is kept around (even when there are no * references to it) for a spell to avoid constant reallocation * and also to reflect IMP status back to sites which aren't * directly connected to the IMP. When structures are marked * free, a timer is started; when the timer expires the structure * is scavenged. */ #define HF_INUSE 0x1 #define HF_DEAD (1<>24)+(a).s_addr) % HPMBUF) #endif #if defined(ibm370) #define HOSTHASH(a) ((((a).s_addr>>24)+(a).s_addr) % HPMBUF) #endif /* defined(ibm370) */ /* * In-line expansions for queuing operations on * host message holding queue. Queue is maintained * as circular list with the head pointing to the * last message in the queue. */ #define HOST_ENQUE(hp, m) { \ register struct mbuf *n; \ (hp)->h_qcnt++; \ if ((n = (hp)->h_q) == 0) \ (hp)->h_q = (m)->m_act = (m); \ else { \ (m)->m_act = n->m_act; \ (hp)->h_q = n->m_act = (m); \ } \ } #define HOST_DEQUE(hp, m) { \ if ((m) = (hp)->h_q) { \ if ((m)->m_act == (m)) \ (hp)->h_q = 0; \ else { \ (m) = (m)->m_act; \ (hp)->h_q->m_act = (m)->m_act; \ } \ (hp)->h_qcnt--; \ (m)->m_act = 0; \ } \ } struct hmbuf { int hm_count; /* # of struct's in use */ struct host hm_hosts[HPMBUF]; /* data structures proper */ }; #ifdef KERNEL struct host *hostlookup(); struct host *hostenter(); struct mbuf *hostdeque(); #endif #] lo$ #&#Z# -/* * 5799-WZQ (C) COPYRIGHT = NONE * LICENSED MATERIALS - PROPERTY OF IBM */ /* $Header:raw_imp.c 12.0$ */ /* $ACIS:raw_imp.c 12.0$ */ /* $Source: /ibm/acis/usr/sys/netimp/RCS/raw_imp.c,v $ */ #ifndef lint static char *rcsid = "$Header:raw_imp.c 12.0$"; #endif /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)raw_imp.c 7.1 (Berkeley) 6/4/86 */ #include "param.h" #include "mbuf.h" #include "socket.h" #include "protosw.h" #include "socketvar.h" #include "errno.h" #include "../net/if.h" #include "../net/route.h" #include "../net/raw_cb.h" #include "../netinet/in.h" #include "../netinet/in_systm.h" #include "../netinet/in_var.h" #include "if_imp.h" /* * Raw interface to IMP. */ /* * Generate IMP leader and pass packet to impoutput. * The user must create a skeletal leader in order to * communicate message type, message subtype, etc. * We fill in holes where needed and verify parameters * supplied by user. */ rimp_output(m, so) register struct mbuf *m; struct socket *so; { struct mbuf *n; int len, error = 0; register struct imp_leader *ip; register struct sockaddr_in *sin; register struct rawcb *rp = sotorawcb(so); struct in_ifaddr *ia; struct control_leader *cp; /* * Verify user has supplied necessary space * for the leader and check parameters in it. */ if ((m->m_off > MMAXOFF || m->m_len < sizeof(struct control_leader)) && (m = m_pullup(m, sizeof(struct control_leader))) == 0) { error = EMSGSIZE; /* XXX */ goto bad; } cp = mtod(m, struct control_leader *); if (cp->dl_mtype == IMPTYPE_DATA) if (m->m_len < sizeof(struct imp_leader) && (m = m_pullup(m, sizeof(struct imp_leader))) == 0) { error = EMSGSIZE; /* XXX */ goto bad; } ip = mtod(m, struct imp_leader *); if (ip->il_format != IMP_NFF) { error = EMSGSIZE; /* XXX */ goto bad; } #ifdef notdef if (ip->il_link != IMPLINK_IP && (ip->il_linkil_link>IMPLINK_HIGHEXPER)) { error = EPERM; goto bad; } #endif /* * Fill in IMP leader -- impoutput refrains from rebuilding * the leader when it sees the protocol family PF_IMPLINK. * (message size calculated by walking through mbuf's) */ for (len = 0, n = m; n; n = n->m_next) len += n->m_len; ip->il_length = htons((u_short)(len << 3)); sin = (struct sockaddr_in *)&rp->rcb_faddr; imp_addr_to_leader(ip, sin->sin_addr.s_addr); /* BRL */ /* no routing here */ ia = in_iaonnetof(in_netof(sin->sin_addr)); if (ia) return (impoutput(ia->ia_ifp, m, (struct sockaddr *)sin)); error = ENETUNREACH; bad: m_freem(m); return (error); } #]lo$ #J#Bi#Ƅ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L0 12.0$ # $ACIS:L0 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L0,v $ #next 1.1a 5 #]lo²$ #J#Bj#Ƅ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L1.1a 12.0$ # $ACIS:L1.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L1.1a,v $ #print This script deals with the use of the "-ms" macro package to produce Bell Laboratories style documents. Before trying it, you should be familiar with the editor. To test that, please enter the file typed below, _______exactly __as __is, into file "decl". Then type "ready". #create Ref .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. #print Ref #user #cmp decl Ref #log #next 2.1a 10 #]loʾ9$ #K#Bk#Ƅ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L10.1a 12.0$ # $ACIS:L10.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L10.1a,v $ #print What if you don't want the cover sheet? Nroff has an option to print only special pages. In particular, nroff -ms -o1- files ... will begin printing at page 1, and skip page 0, the cover sheet. If you only want the cover sheet, you need the command nroff -ms -o0 files ... which prints only page zero. Try printing only the cover sheet of the file "decl". Then type "ready" as usual. #once nroff -ms -o0 decl >X1 & #create decl .RP .TL Declaration of Independence .AU Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #copyout #user #uncopyout if (-z X1) echo Zero X1 tail -66 .ocopy >X2 cat X1 >/dev/tty #cmp X1 X2 #log #next 11.1a 10 #]loʷ$  #K#Bn#Ƅ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L11.1a 12.0$ # $ACIS:L11.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L11.1a,v $ #print The most complex format is the TM (technical memorandum) format. If you use that, instead of the IM format, you get the usual "MEMORANDUM FOR FILE" message. In addition, you usually want to specify the TM number, case numbers, and so forth. The command line for TM format (which should also be the first line given) should read: .TM memo-no. case-no. filing-no. so that, for example, the command line .TM 75-1274-1 39199 39199-11 indicates a TM number of 75-1274-1, a charging case number of 39199, and a filing case number of 39199-11. Suppose the number for this memo is 75-1776-1 and the charging and filing cases are both 12345 Edit the file "decl" for TM format and run it off. #create Ref .TM 75-1776-1 12345 12345 .TL Declaration of Independence .AU Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #once nroff -ms Ref >X1 & #create decl .IM .TL Declaration of Independence .AU Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #copyout #user #uncopyout tail -66 .ocopy >X2 #cmp X1 X2 #log #next 12.1a 10 #]loʵ$ I#K#Bp#Ƅ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L12.1a 12.0$ # $ACIS:L12.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L12.1a,v $ #print With a TM you want a cover sheet. The cover sheet doesn't look too nice when printed on a computer terminal, but you should know how to set it up so that you can put it on the typesetter, which does an attractive job of imitating the official printed form. Basically you must make two changes to get a cover sheet with normal formatting. First, you should add to each .AU line the author's room number and extension. For example, .AU "MH 2C-569" "6377" M. E. Lesk indicates that Lesk's room is MH 2C-569 and his extension is 6377. The room number is enclosed in quotes to indicate that it is one unit, even though it contains a blank. The quotes around the extension are harmless but unnecessary. Also, you must add the command .CS 1 2 3 4 5 6 after the ".AE" line. The six numbers are (from left to right) the number of pages of text, number of pages of "other", the total number of pages, the number of references, the number of figures and the number of tables. Try editing the usual file "decl" to indicate that Mr. Jefferson's room number is MH 2A-111 and his extension is 1776. Request a cover sheet with the above meaningless numbers, just to see where they go. Then run off the document again. #create Ref .TM 75-1776-1 12345 12345 .TL Declaration of Independence .AU "MH 2A-111" 1776 Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .CS 1 2 3 4 5 6 .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #once nroff -ms Ref >X1 & #create decl .TM 75-1776-1 12345 12345 .TL Declaration of Independence .AU Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #copyout #user #uncopyout tail -132 .ocopy >X2 #cmp X1 X2 #log #next 13.1a 10 #]!loʶw$ ]#K#Bq#Ƅ 0# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L13.1a 12.0$ # $ACIS:L13.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L13.1a,v $ #print A couple of details about TM formats. (1) The computer has this habit of putting the real date on things. Typically BTL authors wish to lie about the date. There is a command for this: .DA July 4, 1776 will replace the current date everywhere by the specified date. (2) Also about the date: most people don't like it on each page. The normal date command is thus: .ND July 4, 1776 which says "no date on each page; in the TM heading area where the date is needed, use July 4, 1776". Either date command should be placed just after the .TM line. (3) There may be other keywords. These are indicated by the sequence .OK word 1 word 2 inserted before the .AB line. All right. Change "decl" to show a date of July 4, 1776, using the ".ND" date command; and add as "other keywords" "Democracy" and "Tyranny". Then run off ONLY the cover sheet (remember nroff -ms -o0 file ...?). End with "ready". #create Ref .TM 75-1776-1 12345 12345 .ND July 4, 1776 .TL Declaration of Independence .AU "MH 2A-111" 1776 Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .OK Democracy Tyranny .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .CS 1 2 3 4 5 6 .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #once nroff -ms -o0 Ref >X1 & #create decl .TM 75-1776-1 12345 12345 .TL Declaration of Independence .AU "MH 2A-111" 1776 Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .CS 1 2 3 4 5 6 .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #copyout #user #uncopyout tail -66 .ocopy >X2 #cmp X1 X2 #log #next 14.1a 10 #]&loʷɁ$  #K#Br#Ƅ # # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L14.1a 12.0$ # $ACIS:L14.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L14.1a,v $ #print What if there are several authors? Well, you use several .AU commands. Suppose we promote Richard Henry Lee to co-author of our file "decl". Then we could have .TM memo and case numbers .ND fake date .TL Declaration of Independence .AU room and phone for Jefferson Thomas Jefferson .AU room and phone for Lee Richard Henry Lee .AI as before ... as the top of the file. Rearrange "decl" this way and run it off. Then type "ready". Make Lee's room number MH 2B-222 and his extension 1824. #create Ref .TM 75-1776-1 12345 12345 .ND July 4, 1776 .TL Declaration of Independence .AU "MH 2A-111" 1776 Thomas Jefferson .AU "MH 2B-222" 1824 Richard Henry Lee .AI The Continental Congress Philadelphia, Pa. 19104 .OK tyranny democracy .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .CS 1 2 3 4 5 6 .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #once nroff -ms Ref >X1 & #create decl .TM 75-1776-1 12345 12345 .ND July 4, 1776 .TL Declaration of Independence .AU "MH 2A-111" 1776 Thomas Jefferson .AI The Continental Congress Philadelphia, Pa. 19104 .OK tyranny democracy .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .CS 1 2 3 4 5 6 .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #copyout #user #uncopyout tail -132 .ocopy >X2 #cmp X1 X2 #log #next 15.1a 10 #]+loʄ$ 4b#L#Bu#Ƅ @ P# # 5799-WZQ (C) COPYRIGHT = NONE # LICENSED MATERIALS - PROPERTY OF IBM # # $Header:L15.1a 12.0$ # $ACIS:L15.1a 12.0$ # $Source: /ibm/acis/usr/src/usr.lib/learn/macros/RCS/L15.1a,v $ #print Here's a new document. In the file "Ascent" is a supposed memo. It begins immediately with the text, but the paragraphs are marked with ".PP" commands. Add the initial material as follows and run it off as a TM: Title: Ascending the Riffelberg Author: Mark Twain Author's address: Hannibal, Mo. TM number: 75-1868-1 Case number 39199 File number: 39425-2 Author's room number: MH 2C-520 Author's extension: 9876 Abstract: Why climb Everest? Because it is there, said Mallory. Other keywords: Mountaineering Cover sheet numbers: just use 1 2 3 4 5 6 OK? You can still look at "decl" to see the format. #create Ref .TM 75-1868-1 39199 39425-2 .TL Ascending the Riffelberg .AU "MH 2C-520" 9876 Mark Twain .AI Hannibal, Mo. .OK Mountaineering .AB Why climb Everest? Because it is there, said Mallory. .AE .CS 1 2 3 4 5 6 .PP I sat silent some time, then turned to Harris and said: ``My mind is made up.'' Something in my tone struck him; and when he glanced at my eye and read what was written there, his face paled perceptibly. He hesitated a moment, then said: ``Speak.'' I answered, with perfect calmness: ``I WILL ASCEND THE RIFFELBERG.'' If I had shot my poor friend he could not have fallen from his chair more suddenly. If I had been his father he could not have pleaded harder to get me to give up my purpose. But I turned a deaf ear to all he said. When he perceived at last that nothing could alter my determination, he ceased to urge, and for a while the deep silence was broken only by his sobs. I sat in marble resolution, with my eyes fixed upon vacancy, for in spirit I was already wrestling with the perils of the mountains, and my friend sat gazing at me in adoring admiration through his tears. At last he threw himself upon me in a loving embrace and exclaimed in broken tones: ``Your Harris will never desert you. We will die together!'' I cheered the noble fellow with praises, and soon his fears were forgotten and he was eager for the adventure. He wanted to summon the guides at once and leave at two in the morning, as he supposed the custom was; but I explained that nobody was looking at that hour; and that the start in the dark was not usually made from the village but from the first night's resting-place on the mountainside. I said we would leave the village at 3 or 4 p.m. on the morrow; meantime he could notify the guides, and also let the public know of the attempt which we proposed to make. .PP I went to bed, but not to sleep. No man can sleep when he is about to undertake one of these Alpine exploits. I tossed feverishly all night long, and was glad enough when I heard the clock strike half past eleven and knew it was time to get up for dinner. I rose, jaded and rusty, and went to the noon meal, where I found myself the center of interest and curiosity; for the news was already abroad. It is not easy to eat calmly when you are a lion, but it is very pleasant, nevertheless. .PP As usual, at Zermatt, when a great ascent is about to be undertaken, everybody, native and foreign, laid aside his own projects and took up a good position to observe the start. The expedition consisted of 198 persons, including the mules; or 205, including the cows. .PP It was full four o'clock in the afternoon before my cavalcade was entirely ready. At that hour it began to move. In point of numbers and spectacular effect, it was the most imposing expedition that had ever marched from Zermatt. .PP I commanded the chief guide to arrange the men and animals in single file, twelve feet apart, and lash them all together on a strong rope. He objected that the first two miles was a dead level, with plenty of room, and that the rope was never used except in very dangerous places. But I would not listen to that. My reading had taught me that many serious accidents had happened in the Alps simply from not having the people tied up soon enough; I was not going to add one to the list. The guide then obeyed my order. .PP When the procession stood at ease, roped together, and ready to move, I never saw a finer sight. It was 3,122 feet long - over half a mile; every man but Harris and me was on foot, and had on his green veil and his blue goggles, and his white rag around his hat, and his coil of rope over one shoulder and under the other, and his ice-ax in his belt, and carried his Alpenstock in his left hand, his umbrella (closed) in his right, and his crutches slung at his back. .PP The burdens of the pack-mules and the horns of the cows were decked with the Edelweiss and the Alpine rose. .PP I and my agent were the only persons mounted. We were in the post of danger in the extreme rear, and tied securely to five guides apiece. Our armor-bearers carried our ice-axes, Alpenstocks, and other implements for us. We were mounted upon very small donkeys, as a measure of safety; in time of peril we could straighten our legs and stand up, and let the donkey walk from under. Still, I cannot recommend this sort of animal - at least for excursions of mere pleasure - because his ears interrupt the view. I and my agent possessed the regulation mountaineering costumes, but concluded to leave them behind. Out of respect for the great numbers of tourists of both sexes who would be assembled in front of the hotels to see us pass, and also out of respect for the many tourists whom we expected to encounter on our expedition, we decided to make the ascent in evening dress. .PP At fifteen minutes past four I gave the command to move, and my subordinates passed it along the line. The great crowd in front of the Monte Rosa hotel parted in twain, with a cheer, as the procession approached; and as the head of it was filing by I gave the order - unlimber - make ready - hoist - and with one impulse up went my half-mile of umbrellas. It was a beautiful sight, and a total surprise to the spectators. Nothing like that had ever been seen in the Alps before. The applause it brought forth was deeply gratifying to me, and I rode by with my plug hat in my hand to testify my appreciation of it. It was the only testimony I could offer, for I was too full to speak. #once #create Ascent .PP I sat silent some time, then turned to Harris and said: ``My mind is made up.'' Something in my tone struck him; and when he glanced at my eye and read what was written there, his face paled perceptibly. He hesitated a moment, then said: ``Speak.'' I answered, with perfect calmness: ``I WILL ASCEND THE RIFFELBERG.'' If I had shot my poor friend he could not have fallen from his chair more suddenly. If I had been his father he could not have pleaded harder to get me to give up my purpose. But I turned a deaf ear to all he said. When he perceived at last that nothing could alter my determination, he ceased to urge, and for a while the deep silence was broken only by his sobs. I sat in marble resolution, with my eyes fixed upon vacancy, for in spirit I was already wrestling with the perils of the mountains, and my friend sat gazing at me in adoring admiration through his tears. At last he threw himself upon me in a loving embrace and exclaimed in broken tones: ``Your Harris will never desert you. We will die together!'' I cheered the noble fellow with praises, and soon his fears were forgotten and he was eager for the adventure. He wanted to summon the guides at once and leave at two in the morning, as he supposed the custom was; but I explained that nobody was looking at that hour; and that the start in the dark was not usually made from the village but from the first night's resting-place on the mountainside. I said we would leave the village at 3 or 4 p.m. on the morrow; meantime he could notify the guides, and also let the public know of the attempt which we proposed to make. .PP I went to bed, but not to sleep. No man can sleep when he is about to undertake one of these Alpine exploits. I tossed feverishly all night long, and was glad enough when I heard the clock strike half past eleven and knew it was time to get up for dinner. I rose, jaded and rusty, and went to the noon meal, where I found myself the center of interest and curiosity; for the news was already abroad. It is not easy to eat calmly when you are a lion, but it is very pleasant, nevertheless. .PP As usual, at Zermatt, when a great ascent is about to be undertaken, everybody, native and foreign, laid aside his own projects and took up a good position to observe the start. The expedition consisted of 198 persons, including the mules; or 205, including the cows. .PP It was full four o'clock in the afternoon before my cavalcade was entirely ready. At that hour it began to move. In point of numbers and spectacular effect, it was the most imposing expedition that had ever marched from Zermatt. .PP I commanded the chief guide to arrange the men and animals in single file, twelve feet apart, and lash them all together on a strong rope. He objected that the first two miles was a dead level, with plenty of room, and that the rope was never used except in very dangerous places. But I would not listen to that. My reading had taught me that many serious accidents had happened in the Alps simply from not having the people tied up soon enough; I was not going to add one to the list. The guide then obeyed my order. .PP When the procession stood at ease, roped together, and ready to move, I never saw a finer sight. It was 3,122 feet long - over half a mile; every man but Harris and me was on foot, and had on his green veil and his blue goggles, and his white rag around his hat, and his coil of rope over one shoulder and under the other, and his ice-ax in his belt, and carried his Alpenstock in his left hand, his umbrella (closed) in his right, and his crutches slung at his back. .PP The burdens of the pack-mules and the horns of the cows were decked with the Edelweiss and the Alpine rose. .PP I and my agent were the only persons mounted. We were in the post of danger in the extreme rear, and tied securely to five guides apiece. Our armor-bearers carried our ice-axes, Alpenstocks, and other implements for us. We were mounted upon very small donkeys, as a measure of safety; in time of peril we could straighten our legs and stand up, and let the donkey walk from under. Still, I cannot recommend this sort of animal - at least for excursions of mere pleasure - because his ears interrupt the view. I and my agent possessed the regulation mountaineering costumes, but concluded to leave them behind. Out of respect for the great numbers of tourists of both sexes who would be assembled in front of the hotels to see us pass, and also out of respect for the many tourists whom we expected to encounter on our expedition, we decided to make the ascent in evening dress. .PP At fifteen minutes past four I gave the command to move, and my subordinates passed it along the line. The great crowd in front of the Monte Rosa hotel parted in twain, with a cheer, as the procession approached; and as the head of it was filing by I gave the order - unlimber - make ready - hoist - and with one impulse up went my half-mile of umbrellas. It was a beautiful sight, and a total surprise to the spectators. Nothing like that had ever been seen in the Alps before. The applause it brought forth was deeply gratifying to me, and I rode by with my plug hat in my hand to testify my appreciation of it. It was the only testimony I could offer, for I was too full to speak. #once nroff -ms Ref >X1 & #create decl .TM 75-1776-1 12345 12345 .ND July 4, 1776 .TL Declaration of Independence .AU "MH 2A-111" 1776 Thomas Jefferson .AU "MH 2B-222" 1824 James Madison .AI The Continental Congress Philadelphia, Pa. 19104 .OK tyranny democracy .AB This paper describes advances in scattering theory of colonies from mother countries. .AE .PP When in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth the separate and equal station to which the laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation. .PP We hold these truths to be self-evident, that all men are created equal, that they are endowed by their creator with certain unalienable rights, that among these are life, liberty, and the pursuit of happiness. That to secure these rights, governments are instituted among men, deriving their just powers from the consent of the governed. That whenever any form of government becomes destructive of these ends, it is the right of the people to alter or to abolish it, and to institute new government, laying its foundation on such principles and organizing its powers in such form, as to them shall seem most likely to effect their safety and happiness. #create script 1,$-264d w q #copyout #user #uncopyout e - .ocopy