    begin
      string (255) file
      string (1) key
      integer   adr, adr1, pos, conad, type, start,end, flag, pattern, j
      externallongrealfnspec  cputime alias  "S#CPUTIME"
      longreal  call overhead, t0, t inline, t call
      externalroutinespec  emas3string(stringname  vec,val)
      externalroutinespec  emas3integer(stringname  vec,integername  val)
    external  routine  spec  CONNECT alias  "s#connect"(string  (255) FILE,
       integer  MODE, HOLE, PROT, integername  CONAD, TYPE, START, END, FLAG)
      externalintegerfnspec  search(integer  start,finish,key)
      externalintegerfnspec  search back(integer  start,finish,key)
      t0 = cputime
      call overhead = cputime - t0
      emas3string("File;fileormem;?;;",file)
      connect(file,0,0,0,conad,type,start,end,flag)
      write(flag,0)and   newline and  stop  unless  flag=0
      cycle
        emas3string("Key;any;?;;",key)
        pattern = char no(key,1)
        t0 = cputime
        adr1 = search back(conad+start,conad+end,pattern) for  j = 999,-1,0
        t call = cputime - t0 - call overhead
        t0 = cputime
        for  j = 999, -1, 0 cycle
           adr = conad+end
           adr = adr - 1 while  adr >= conad+start and  byteinteger(adr) # pattern
        repeat
        t inline = cputime - t0 - call overhead
        print fl(t inline,8); print fl(t call,8); newline
        if  adr1 = 0 then  printstring("Not Found") else  c
          write(conad+end-adr,0) and  write(conad+end-adr1,10)
        new line
      repeat
    endofprogram