text: #pragma clang diagnostic ignored "-Wparentheses-equality"
  #include "stdlib_stringz.h"
  
  void
  stdlib_stringz_Dispose_(stdlib_stringz_t_ *str_)
  {
  (*str_)=(stdlib_stringz_t_ )NULL;
  }
  void
  stdlib_stringz_New_(stdlib_stringz_t_ *out_,OBXC_INTEGER size_)
  {
  OBXC_INTEGER i_=0;
  OBXC_NEW_ARRAY((OBXC_BYTE**)&(*out_),(size_+1),1);
  i_=0;
  G1002:;
  if((i_!=*((OBXC_INTEGER*)(*out_)-1)))goto G1003;
  goto G1001;
  G1003:;
  (*out_)[i_]=0;
  i_=(i_+1);
  goto G1002;
  G1001:;
  }
  OBXC_INTEGER
  stdlib_stringz_Length_(OBXC_BYTE str_[],OBXC_INTEGER str_len)
  {
  OBXC_INTEGER len_=0;
  len_=0;
  G1005:;
  if(((len_!=str_len)&&(str_[len_]!=0)))goto G1006;
  goto G1004;
  G1006:;
  len_=(len_+1);
  goto G1005;
  G1004:;
  return len_;
  }
  void
  stdlib_stringz_Break_(OBXC_BYTE str_[],OBXC_INTEGER str_len,OBXC_BYTE delim_[],OBXC_INTEGER delim_len,OBXC_INTEGER *pos_)
  {
  stdlib_strings_Break_(&str_[0],(stdlib_stringz_Length_(str_,str_len)-0),&delim_[0],(stdlib_stringz_Length_(delim_,delim_len)-0),(OBXC_INTEGER *)&(*pos_));
  }
  OBXC_INTEGER
  stdlib_stringz_Compare_(OBXC_BYTE lhs_[],OBXC_INTEGER lhs_len,OBXC_BYTE rhs_[],OBXC_INTEGER rhs_len)
  {
  return stdlib_strings_Compare_(&lhs_[0],(stdlib_stringz_Length_(lhs_,lhs_len)-0),&rhs_[0],(stdlib_stringz_Length_(rhs_,rhs_len)-0));
  }
  void
  stdlib_stringz_Find_(OBXC_BYTE str_[],OBXC_INTEGER str_len,OBXC_INTEGER byte_,OBXC_INTEGER *pos_)
  {
  stdlib_strings_Find_(&str_[0],(stdlib_stringz_Length_(str_,str_len)-0),byte_,(OBXC_INTEGER *)&(*pos_));
  }
  void
  stdlib_stringz_Search_(OBXC_BYTE str_[],OBXC_INTEGER str_len,OBXC_BYTE substr_[],OBXC_INTEGER substr_len,OBXC_INTEGER *pos_)
  {
  stdlib_strings_Search_(&str_[0],(stdlib_stringz_Length_(str_,str_len)-0),&substr_[0],(stdlib_stringz_Length_(substr_,substr_len)-0),(OBXC_INTEGER *)&(*pos_));
  }
  void
  stdlib_stringz_Span_(OBXC_BYTE dst_[],OBXC_INTEGER dst_len,OBXC_BYTE src_[],OBXC_INTEGER src_len,OBXC_INTEGER *pos_)
  {
  stdlib_strings_Span_(&dst_[0],(stdlib_stringz_Length_(dst_,dst_len)-0),&src_[0],(stdlib_stringz_Length_(src_,src_len)-0),(OBXC_INTEGER *)&(*pos_));
  }
  void
  stdlib_stringz_Splice_(OBXC_BYTE dst_[],OBXC_INTEGER dst_len,OBXC_INTEGER pos_,OBXC_INTEGER count_,OBXC_BYTE src_[],OBXC_INTEGER src_len,stdlib_stringz_t_ *out_)
  {
  OBXC_INTEGER dstLen_=0;
  OBXC_INTEGER headLen_=0;
  OBXC_INTEGER outLen_=0;
  OBXC_INTEGER srcLen_=0;
  OBXC_INTEGER tailLen_=0;
  OBXC_INTEGER newTail_=0;
  OBXC_INTEGER origTail_=0;
  assert (((0<=pos_)&&((pos_+count_)<=stdlib_stringz_Length_(dst_,dst_len))));
  dstLen_=stdlib_stringz_Length_(dst_,dst_len);
  srcLen_=stdlib_stringz_Length_(src_,src_len);
  headLen_=pos_;
  origTail_=(headLen_+count_);
  tailLen_=(dstLen_-origTail_);
  outLen_=((headLen_+srcLen_)+tailLen_);
  OBXC_NEW_ARRAY((OBXC_BYTE**)&(*out_),(outLen_+1),1);
  COPY(&(*out_)[0],(headLen_-0),1,&dst_[0],(headLen_-0));
  COPY(&(*out_)[headLen_],((headLen_+srcLen_)-headLen_),1,src_,src_len);
  newTail_=(headLen_+srcLen_);
  COPY(&(*out_)[newTail_],((newTail_+tailLen_)-newTail_),1,&dst_[origTail_],((origTail_+tailLen_)-origTail_));
  (*out_)[outLen_]=0;
  }
  void
  stdlib_stringz_Concat_(OBXC_BYTE dst_[],OBXC_INTEGER dst_len,OBXC_BYTE src_[],OBXC_INTEGER src_len,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Splice_(dst_,dst_len,stdlib_stringz_Length_(dst_,dst_len),0,src_,src_len,(stdlib_stringz_t_ *)&(*out_));
  }
  void
  stdlib_stringz_Substring_(OBXC_BYTE str_[],OBXC_INTEGER str_len,OBXC_INTEGER begin_,OBXC_INTEGER end_,stdlib_stringz_t_ *out_)
  {
  assert ((((0<=begin_)&&(begin_<=end_))&&(end_<=stdlib_stringz_Length_(str_,str_len))));
  stdlib_stringz_Splice_((OBXC_BYTE*)"", 0,0,0,&str_[begin_],(end_-begin_),(stdlib_stringz_t_ *)&(*out_));
  }
  void
  stdlib_stringz_Copy_(OBXC_BYTE str_[],OBXC_INTEGER str_len,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Substring_(str_,str_len,0,stdlib_stringz_Length_(str_,str_len),(stdlib_stringz_t_ *)&(*out_));
  }
  void
  stdlib_stringz_Delete_(OBXC_BYTE dst_[],OBXC_INTEGER dst_len,OBXC_INTEGER pos_,OBXC_INTEGER count_,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Splice_(dst_,dst_len,pos_,count_,(OBXC_BYTE*)"", 0,(stdlib_stringz_t_ *)&(*out_));
  }
  OBXC_BOOLEAN
  stdlib_stringz_Empty_(stdlib_stringz_t_ str_)
  {
  return (stdlib_stringz_Length_(str_,*((OBXC_INTEGER *)(str_)-1))==0);
  }
  static OBXC_BOOLEAN
  stdlib_stringz_Equals_(OBXC_BYTE lhs_[],OBXC_INTEGER lhs_len,OBXC_BYTE rhs_[],OBXC_INTEGER rhs_len)
  {
  OBXC_INTEGER lhs_len_=0;
  OBXC_INTEGER rhs_len_=0;
  lhs_len_=stdlib_stringz_Length_(lhs_,lhs_len);
  rhs_len_=stdlib_stringz_Length_(rhs_,rhs_len);
  return ((lhs_len_==rhs_len_)&&stdlib_strings_Equal_(&lhs_[0],(lhs_len_-0),&rhs_[0],(rhs_len_-0)));
  }
  void
  stdlib_stringz_Init_(stdlib_stringz_t_ *out_,OBXC_BYTE src_[],OBXC_INTEGER src_len)
  {
  stdlib_stringz_Copy_(src_,src_len,(stdlib_stringz_t_ *)&(*out_));
  }
  void
  stdlib_stringz_Insert_(OBXC_BYTE dst_[],OBXC_INTEGER dst_len,OBXC_INTEGER pos_,OBXC_BYTE src_[],OBXC_INTEGER src_len,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Splice_(dst_,dst_len,pos_,0,src_,src_len,(stdlib_stringz_t_ *)&(*out_));
  }
  void
  stdlib_stringz_Replace_(OBXC_BYTE dst_[],OBXC_INTEGER dst_len,OBXC_INTEGER pos_,OBXC_BYTE src_[],OBXC_INTEGER src_len,stdlib_stringz_t_ *out_)
  {
  OBXC_INTEGER count_=0;
  if((stdlib_stringz_Length_(src_,src_len)<=(stdlib_stringz_Length_(dst_,dst_len)-pos_)))goto G1008;
  if(((stdlib_stringz_Length_(dst_,dst_len)-pos_)<=stdlib_stringz_Length_(src_,src_len)))goto G1009;
  OBXC_ABORT(__FILE__,__LINE__);
  G1008:;
  count_=stdlib_stringz_Length_(src_,src_len);
  goto G1007;
  G1009:;
  count_=(stdlib_stringz_Length_(dst_,dst_len)-pos_);
  G1007:;
  stdlib_stringz_Splice_(dst_,dst_len,pos_,count_,src_,src_len,(stdlib_stringz_t_ *)&(*out_));
  }
  void
  stdlib_stringz_ToAscii_(OBXC_BYTE str_[],OBXC_INTEGER str_len,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Copy_(str_,str_len,(stdlib_stringz_t_ *)&(*out_));
  stdlib_strings_ToAscii_((*out_),*((OBXC_INTEGER *)((*out_))-1));
  }
  void
  stdlib_stringz_ToLower_(OBXC_BYTE str_[],OBXC_INTEGER str_len,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Copy_(str_,str_len,(stdlib_stringz_t_ *)&(*out_));
  stdlib_strings_ToLower_(&(*out_)[0],(stdlib_stringz_Length_((*out_),*((OBXC_INTEGER *)((*out_))-1))-0));
  }
  void
  stdlib_stringz_ToString_(OBXC_BYTE str_[],OBXC_INTEGER str_len,stdlib_string_t_ *out_)
  {
  stdlib_string_Init_((stdlib_string_t_ *)&(*out_),&str_[0],(stdlib_stringz_Length_(str_,str_len)-0));
  }
  void
  stdlib_stringz_ToUpper_(OBXC_BYTE str_[],OBXC_INTEGER str_len,stdlib_stringz_t_ *out_)
  {
  stdlib_stringz_Copy_(str_,str_len,(stdlib_stringz_t_ *)&(*out_));
  stdlib_strings_ToUpper_(&str_[0],(stdlib_stringz_Length_(str_,str_len)-0));
  }
  void
  stdlib_stringz_Token_(OBXC_BYTE str_[],OBXC_INTEGER str_len,OBXC_BYTE delim_[],OBXC_INTEGER delim_len,stdlib_stringz_t_ *out_)
  {
  OBXC_INTEGER begin_=0;
  OBXC_INTEGER end_=0;
  begin_=0;
  stdlib_strings_Token_(&str_[0],(stdlib_stringz_Length_(str_,str_len)-0),&delim_[0],(stdlib_stringz_Length_(delim_,delim_len)-0),(OBXC_INTEGER *)&begin_,(OBXC_INTEGER *)&end_);
  if((begin_==stdlib_stringz_Length_(str_,str_len)))goto G1011;
  if((begin_!=stdlib_stringz_Length_(str_,str_len)))goto G1012;
  OBXC_ABORT(__FILE__,__LINE__);
  G1011:;
  (*out_)=(stdlib_stringz_t_ )NULL;
  goto G1010;
  G1012:;
  stdlib_stringz_Copy_(&str_[begin_],(end_-begin_),(stdlib_stringz_t_ *)&(*out_));
  G1010:;
  }
  void
  stdlib_stringz__init__()
  {
  static OBXC_BOOLEAN done=0;
  if(!done){
  stdlib_string__init__();
  stdlib_strings__init__();
  done=1;
  }
  }
  