with BigNumPkg.Even; use BigNumPkg.Even;
with ada.text_io; use ada.text_io; 
 
procedure bneclient  is 

   --  Print an even with some spaces in front of it
   procedure put_even(e : Even_BigNum) is
   begin
      put("   ");
      put(e, 1);  -- Calls inherited put for Even_BigNum
   end put_even;

   use BigNumPkg;
   b : BigNum;
   b_less, b_more : Even_BigNum;
begin
   while not end_of_file loop
      get(b);
      put(b, 1);  -- Calls put for BigNum
      put_line(" " & is_even(b)'img);

      if not is_even(b) then
         b_less := make_even (b, First);
         b_more := make_even (b, Last);
         put_even(b_less);
         put_even(b_more);
         new_line;
      end if;
   end loop;

   put_even(make_even(One, First));
   put_even(make_even(One, Last));

   put_even(make_even(Last, First));
   put_even(make_even(Last, Last));  -- Raises an exception
   new_line;

end bneclient;