96  Pascal User Manual  program WaitingList(Input,O ·.put);  { Program 10.1 - Simulate  client waiting list;  serve th,  first 3.  }  const  NameLength  15;  type  Namelndex =  1 ..  NameLengt~;  NameString= packed arra'l  [Namelndex]  of Char;  Natural = O .. Maxlnt;  ClientPointer = iClient;  Client =  var  record  Name: NameString;  Nxt: ClientPointer  end;  Head,  Tail: ClientPointe  Name: packed array  [Name ndex]  of Char;  procedure ReadName;  var  c: Namelndex;  begin  for c  :=  1  to NameLength  10  if Eoln(Input)  then Name[c]  else begin  Read(Input,Name[c]);  Write (Output,Name [c]  end;  Readln(Input);  Writeln(1 (.'put)  end { ReadName };  procedure AddClientToList;  var  NewClient: ClientPo.  ,','r;  begin  New(NewClient);  ,  ,  if Head = nil then Head:  ~ewClient  else Tail i. Nxt  : =  NewCliE  It;  NewClienti.Name  :=  Name;  NewClienti.Nxt·=  nil;  Tail  :=  NewClient  end { AddClientToList };  procedure ServeClient (HowMa:lY:  Natural); 