char  * tmp;
char  * tmp, tag_buff [100];
static void  Get_Strings_And_Offsets    (vector <char *> & s, vector <char *> & q, vector <int> & offset,     const Celera_Message_t & msg, Bank_t & read_bank)//  Populate  s  and  offset  with reads and their unitig positions//  for the unitig in  msg  with reads coming from  read_bank.//   read_bank  must already be opened.  Put the corresponding quality-value//  strings for the reads into  q .  {   const vector <Celera_IMP_Sub_Msg_t> &  frgs = msg . getIMPList ();   Read_t  read;   Ordered_Range_t  position;   int  prev_offset;   int  i, n;   n = s . size ();   for  (i = 0;  i < n;  i ++)     free (s [i]);   s . clear ();   n = q . size ();   for  (i = 0;  i < n;  i ++)     free (q [i]);   q . clear ();   offset . clear ();   prev_offset = 0;   n = msg . getNumFrags ();   for  (i = 0;  i < n;  i ++)     {      char  * tmp;      string  seq;      string  qual;      Range_t  clear;      int  this_offset;      int  a, b, j, len, qlen;      read . setIID ( frgs [i] . getId () );      position = frgs [i] . getPosition ();      a = position . getBegin ();      b = position . getEnd ();      read_bank . fetch (read);      clear = read . getClearRange ();      if  (Verbose > 2)	cerr << read;      seq = read . getSeqString (clear);      qual = read . getQualString (clear);      if  (b < a)          {           Reverse_Complement (seq);           reverse (qual . begin (), qual . end ());          }      len = seq . length ();      tmp = strdup (seq . c_str ());      for  (j = 0;  j < len;  j ++)        tmp [j] = tolower (tmp [j]);      s . push_back (tmp);      qlen = qual . length ();      if  (len != qlen)          {           sprintf               (Clean_Exit_Msg_Line,                "ERROR:  Sequence length (%d) != quality length (%d) for read %d\n",                    len, qlen, read . getIID( ));           Clean_Exit (Clean_Exit_Msg_Line, __FILE__, __LINE__);          }      tmp = strdup (qual . c_str ());      q . push_back (tmp);      this_offset = Min (a, b);      offset . push_back (this_offset - prev_offset);      prev_offset = this_offset;     }      return;  }