procedure find_call(var t : post_str);
var i,j : integer;
begin
  writeln;
  multiple := 0;
  j := max_old div 2;
  i := j ;
  while ( j <> 0 ) do
  begin
    j := j div 2;
    if (t = net_list[i]^.suffix)
    then
      begin
        while (i > 2) AND (t = net_list[i-1]^.suffix) do i := i - 1;
        repeat
          multiple := multiple + 1;
          call[multiple] := i;
          i := i + 1;
        until (t <> net_list[i]^.suffix);
        exit;
      end
    else
      if (t < net_list[i]^.suffix) OR (net_list[i]^.suffix = '')
      then i := i - j
      else i := i + j;
  end;
end;

function new_there(pre: pre_str; a: area_str; suf: post_str):boolean;
var i : integer;
begin
  for i := 1 to new_pntr do
    if (suf = new_list[i]^.suffix) AND (pre = new_list[i]^.prefix)
       AND (a = net_list[i]^.area)
    then
      begin
        new_there := TRUE;
        exit;
      end;
  new_there := FALSE;
end;

