text: # This file was automatically generated by SWIG (http://www.swig.org).
  # Version 3.0.5
  #
  # Do not make changes to this file unless you know what you are doing--modify
  # the SWIG interface file instead.
  
  
  
  
  
  from sys import version_info
  if version_info >= (3, 0, 0):
      new_instancemethod = lambda func, inst, cls: _cstatgen.SWIG_PyInstanceMethod_New(func)
  else:
      from new import instancemethod as new_instancemethod
  if version_info >= (2, 6, 0):
      def swig_import_helper():
          from os.path import dirname
          import imp
          fp = None
          try:
              fp, pathname, description = imp.find_module('_cstatgen', [dirname(__file__)])
          except ImportError:
              import _cstatgen
              return _cstatgen
          if fp is not None:
              try:
                  _mod = imp.load_module('_cstatgen', fp, pathname, description)
              finally:
                  fp.close()
              return _mod
      _cstatgen = swig_import_helper()
      del swig_import_helper
  else:
      import _cstatgen
  del version_info
  try:
      _swig_property = property
  except NameError:
      pass  # Python < 2.2 doesn't have 'property'.
  
  
  def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
      if (name == "thisown"):
          return self.this.own(value)
      if (name == "this"):
          if type(value).__name__ == 'SwigPyObject':
              self.__dict__[name] = value
              return
      method = class_type.__swig_setmethods__.get(name, None)
      if method:
          return method(self, value)
      if (not static):
          object.__setattr__(self, name, value)
      else:
          raise AttributeError("You cannot add attributes to %s" % self)
  
  
  def _swig_setattr(self, class_type, name, value):
      return _swig_setattr_nondynamic(self, class_type, name, value, 0)
  
  
  def _swig_getattr_nondynamic(self, class_type, name, static=1):
      if (name == "thisown"):
          return self.this.own()
      method = class_type.__swig_getmethods__.get(name, None)
      if method:
          return method(self)
      if (not static):
          return object.__getattr__(self, name)
      else:
          raise AttributeError(name)
  
  def _swig_getattr(self, class_type, name):
      return _swig_getattr_nondynamic(self, class_type, name, 0)
  
  
  def _swig_repr(self):
      try:
          strthis = "proxy of " + self.this.__repr__()
      except:
          strthis = ""
      return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
  
  try:
      _object = object
      _newclass = 1
  except AttributeError:
      class _object:
          pass
      _newclass = 0
  
  
  
  def _swig_setattr_nondynamic_method(set):
      def set_attr(self, name, value):
          if (name == "thisown"):
              return self.this.own(value)
          if hasattr(self, name) or (name == "this"):
              set(self, name, value)
          else:
              raise AttributeError("You cannot add attributes to %s" % self)
      return set_attr
  
  
  class SwigPyIterator(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  
      def __init__(self, *args, **kwargs):
          raise AttributeError("No constructor defined - class is abstract")
      __repr__ = _swig_repr
      __swig_destroy__ = _cstatgen.delete_SwigPyIterator
      def __iter__(self):
          return self
  SwigPyIterator.value = new_instancemethod(_cstatgen.SwigPyIterator_value, None, SwigPyIterator)
  SwigPyIterator.incr = new_instancemethod(_cstatgen.SwigPyIterator_incr, None, SwigPyIterator)
  SwigPyIterator.decr = new_instancemethod(_cstatgen.SwigPyIterator_decr, None, SwigPyIterator)
  SwigPyIterator.distance = new_instancemethod(_cstatgen.SwigPyIterator_distance, None, SwigPyIterator)
  SwigPyIterator.equal = new_instancemethod(_cstatgen.SwigPyIterator_equal, None, SwigPyIterator)
  SwigPyIterator.copy = new_instancemethod(_cstatgen.SwigPyIterator_copy, None, SwigPyIterator)
  SwigPyIterator.next = new_instancemethod(_cstatgen.SwigPyIterator_next, None, SwigPyIterator)
  SwigPyIterator.__next__ = new_instancemethod(_cstatgen.SwigPyIterator___next__, None, SwigPyIterator)
  SwigPyIterator.previous = new_instancemethod(_cstatgen.SwigPyIterator_previous, None, SwigPyIterator)
  SwigPyIterator.advance = new_instancemethod(_cstatgen.SwigPyIterator_advance, None, SwigPyIterator)
  SwigPyIterator.__eq__ = new_instancemethod(_cstatgen.SwigPyIterator___eq__, None, SwigPyIterator)
  SwigPyIterator.__ne__ = new_instancemethod(_cstatgen.SwigPyIterator___ne__, None, SwigPyIterator)
  SwigPyIterator.__iadd__ = new_instancemethod(_cstatgen.SwigPyIterator___iadd__, None, SwigPyIterator)
  SwigPyIterator.__isub__ = new_instancemethod(_cstatgen.SwigPyIterator___isub__, None, SwigPyIterator)
  SwigPyIterator.__add__ = new_instancemethod(_cstatgen.SwigPyIterator___add__, None, SwigPyIterator)
  SwigPyIterator.__sub__ = new_instancemethod(_cstatgen.SwigPyIterator___sub__, None, SwigPyIterator)
  SwigPyIterator_swigregister = _cstatgen.SwigPyIterator_swigregister
  SwigPyIterator_swigregister(SwigPyIterator)
  
  class VecInt(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecInt_swiginit(self,_cstatgen.new_VecInt(*args))
      __swig_destroy__ = _cstatgen.delete_VecInt
  VecInt.iterator = new_instancemethod(_cstatgen.VecInt_iterator, None, VecInt)
  VecInt.__nonzero__ = new_instancemethod(_cstatgen.VecInt___nonzero__, None, VecInt)
  VecInt.__bool__ = new_instancemethod(_cstatgen.VecInt___bool__, None, VecInt)
  VecInt.__len__ = new_instancemethod(_cstatgen.VecInt___len__, None, VecInt)
  VecInt.pop = new_instancemethod(_cstatgen.VecInt_pop, None, VecInt)
  VecInt.__getslice__ = new_instancemethod(_cstatgen.VecInt___getslice__, None, VecInt)
  VecInt.__setslice__ = new_instancemethod(_cstatgen.VecInt___setslice__, None, VecInt)
  VecInt.__delslice__ = new_instancemethod(_cstatgen.VecInt___delslice__, None, VecInt)
  VecInt.__delitem__ = new_instancemethod(_cstatgen.VecInt___delitem__, None, VecInt)
  VecInt.__getitem__ = new_instancemethod(_cstatgen.VecInt___getitem__, None, VecInt)
  VecInt.__setitem__ = new_instancemethod(_cstatgen.VecInt___setitem__, None, VecInt)
  VecInt.append = new_instancemethod(_cstatgen.VecInt_append, None, VecInt)
  VecInt.empty = new_instancemethod(_cstatgen.VecInt_empty, None, VecInt)
  VecInt.size = new_instancemethod(_cstatgen.VecInt_size, None, VecInt)
  VecInt.clear = new_instancemethod(_cstatgen.VecInt_clear, None, VecInt)
  VecInt.swap = new_instancemethod(_cstatgen.VecInt_swap, None, VecInt)
  VecInt.get_allocator = new_instancemethod(_cstatgen.VecInt_get_allocator, None, VecInt)
  VecInt.begin = new_instancemethod(_cstatgen.VecInt_begin, None, VecInt)
  VecInt.end = new_instancemethod(_cstatgen.VecInt_end, None, VecInt)
  VecInt.rbegin = new_instancemethod(_cstatgen.VecInt_rbegin, None, VecInt)
  VecInt.rend = new_instancemethod(_cstatgen.VecInt_rend, None, VecInt)
  VecInt.pop_back = new_instancemethod(_cstatgen.VecInt_pop_back, None, VecInt)
  VecInt.erase = new_instancemethod(_cstatgen.VecInt_erase, None, VecInt)
  VecInt.push_back = new_instancemethod(_cstatgen.VecInt_push_back, None, VecInt)
  VecInt.front = new_instancemethod(_cstatgen.VecInt_front, None, VecInt)
  VecInt.back = new_instancemethod(_cstatgen.VecInt_back, None, VecInt)
  VecInt.assign = new_instancemethod(_cstatgen.VecInt_assign, None, VecInt)
  VecInt.resize = new_instancemethod(_cstatgen.VecInt_resize, None, VecInt)
  VecInt.insert = new_instancemethod(_cstatgen.VecInt_insert, None, VecInt)
  VecInt.reserve = new_instancemethod(_cstatgen.VecInt_reserve, None, VecInt)
  VecInt.capacity = new_instancemethod(_cstatgen.VecInt_capacity, None, VecInt)
  VecInt_swigregister = _cstatgen.VecInt_swigregister
  VecInt_swigregister(VecInt)
  
  class VecDouble(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecDouble_swiginit(self,_cstatgen.new_VecDouble(*args))
      __swig_destroy__ = _cstatgen.delete_VecDouble
  VecDouble.iterator = new_instancemethod(_cstatgen.VecDouble_iterator, None, VecDouble)
  VecDouble.__nonzero__ = new_instancemethod(_cstatgen.VecDouble___nonzero__, None, VecDouble)
  VecDouble.__bool__ = new_instancemethod(_cstatgen.VecDouble___bool__, None, VecDouble)
  VecDouble.__len__ = new_instancemethod(_cstatgen.VecDouble___len__, None, VecDouble)
  VecDouble.pop = new_instancemethod(_cstatgen.VecDouble_pop, None, VecDouble)
  VecDouble.__getslice__ = new_instancemethod(_cstatgen.VecDouble___getslice__, None, VecDouble)
  VecDouble.__setslice__ = new_instancemethod(_cstatgen.VecDouble___setslice__, None, VecDouble)
  VecDouble.__delslice__ = new_instancemethod(_cstatgen.VecDouble___delslice__, None, VecDouble)
  VecDouble.__delitem__ = new_instancemethod(_cstatgen.VecDouble___delitem__, None, VecDouble)
  VecDouble.__getitem__ = new_instancemethod(_cstatgen.VecDouble___getitem__, None, VecDouble)
  VecDouble.__setitem__ = new_instancemethod(_cstatgen.VecDouble___setitem__, None, VecDouble)
  VecDouble.append = new_instancemethod(_cstatgen.VecDouble_append, None, VecDouble)
  VecDouble.empty = new_instancemethod(_cstatgen.VecDouble_empty, None, VecDouble)
  VecDouble.size = new_instancemethod(_cstatgen.VecDouble_size, None, VecDouble)
  VecDouble.clear = new_instancemethod(_cstatgen.VecDouble_clear, None, VecDouble)
  VecDouble.swap = new_instancemethod(_cstatgen.VecDouble_swap, None, VecDouble)
  VecDouble.get_allocator = new_instancemethod(_cstatgen.VecDouble_get_allocator, None, VecDouble)
  VecDouble.begin = new_instancemethod(_cstatgen.VecDouble_begin, None, VecDouble)
  VecDouble.end = new_instancemethod(_cstatgen.VecDouble_end, None, VecDouble)
  VecDouble.rbegin = new_instancemethod(_cstatgen.VecDouble_rbegin, None, VecDouble)
  VecDouble.rend = new_instancemethod(_cstatgen.VecDouble_rend, None, VecDouble)
  VecDouble.pop_back = new_instancemethod(_cstatgen.VecDouble_pop_back, None, VecDouble)
  VecDouble.erase = new_instancemethod(_cstatgen.VecDouble_erase, None, VecDouble)
  VecDouble.push_back = new_instancemethod(_cstatgen.VecDouble_push_back, None, VecDouble)
  VecDouble.front = new_instancemethod(_cstatgen.VecDouble_front, None, VecDouble)
  VecDouble.back = new_instancemethod(_cstatgen.VecDouble_back, None, VecDouble)
  VecDouble.assign = new_instancemethod(_cstatgen.VecDouble_assign, None, VecDouble)
  VecDouble.resize = new_instancemethod(_cstatgen.VecDouble_resize, None, VecDouble)
  VecDouble.insert = new_instancemethod(_cstatgen.VecDouble_insert, None, VecDouble)
  VecDouble.reserve = new_instancemethod(_cstatgen.VecDouble_reserve, None, VecDouble)
  VecDouble.capacity = new_instancemethod(_cstatgen.VecDouble_capacity, None, VecDouble)
  VecDouble_swigregister = _cstatgen.VecDouble_swigregister
  VecDouble_swigregister(VecDouble)
  
  class VecString(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecString_swiginit(self,_cstatgen.new_VecString(*args))
      __swig_destroy__ = _cstatgen.delete_VecString
  VecString.iterator = new_instancemethod(_cstatgen.VecString_iterator, None, VecString)
  VecString.__nonzero__ = new_instancemethod(_cstatgen.VecString___nonzero__, None, VecString)
  VecString.__bool__ = new_instancemethod(_cstatgen.VecString___bool__, None, VecString)
  VecString.__len__ = new_instancemethod(_cstatgen.VecString___len__, None, VecString)
  VecString.pop = new_instancemethod(_cstatgen.VecString_pop, None, VecString)
  VecString.__getslice__ = new_instancemethod(_cstatgen.VecString___getslice__, None, VecString)
  VecString.__setslice__ = new_instancemethod(_cstatgen.VecString___setslice__, None, VecString)
  VecString.__delslice__ = new_instancemethod(_cstatgen.VecString___delslice__, None, VecString)
  VecString.__delitem__ = new_instancemethod(_cstatgen.VecString___delitem__, None, VecString)
  VecString.__getitem__ = new_instancemethod(_cstatgen.VecString___getitem__, None, VecString)
  VecString.__setitem__ = new_instancemethod(_cstatgen.VecString___setitem__, None, VecString)
  VecString.append = new_instancemethod(_cstatgen.VecString_append, None, VecString)
  VecString.empty = new_instancemethod(_cstatgen.VecString_empty, None, VecString)
  VecString.size = new_instancemethod(_cstatgen.VecString_size, None, VecString)
  VecString.clear = new_instancemethod(_cstatgen.VecString_clear, None, VecString)
  VecString.swap = new_instancemethod(_cstatgen.VecString_swap, None, VecString)
  VecString.get_allocator = new_instancemethod(_cstatgen.VecString_get_allocator, None, VecString)
  VecString.begin = new_instancemethod(_cstatgen.VecString_begin, None, VecString)
  VecString.end = new_instancemethod(_cstatgen.VecString_end, None, VecString)
  VecString.rbegin = new_instancemethod(_cstatgen.VecString_rbegin, None, VecString)
  VecString.rend = new_instancemethod(_cstatgen.VecString_rend, None, VecString)
  VecString.pop_back = new_instancemethod(_cstatgen.VecString_pop_back, None, VecString)
  VecString.erase = new_instancemethod(_cstatgen.VecString_erase, None, VecString)
  VecString.push_back = new_instancemethod(_cstatgen.VecString_push_back, None, VecString)
  VecString.front = new_instancemethod(_cstatgen.VecString_front, None, VecString)
  VecString.back = new_instancemethod(_cstatgen.VecString_back, None, VecString)
  VecString.assign = new_instancemethod(_cstatgen.VecString_assign, None, VecString)
  VecString.resize = new_instancemethod(_cstatgen.VecString_resize, None, VecString)
  VecString.insert = new_instancemethod(_cstatgen.VecString_insert, None, VecString)
  VecString.reserve = new_instancemethod(_cstatgen.VecString_reserve, None, VecString)
  VecString.capacity = new_instancemethod(_cstatgen.VecString_capacity, None, VecString)
  VecString_swigregister = _cstatgen.VecString_swigregister
  VecString_swigregister(VecString)
  
  class VecVecString(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecVecString_swiginit(self,_cstatgen.new_VecVecString(*args))
      __swig_destroy__ = _cstatgen.delete_VecVecString
  VecVecString.iterator = new_instancemethod(_cstatgen.VecVecString_iterator, None, VecVecString)
  VecVecString.__nonzero__ = new_instancemethod(_cstatgen.VecVecString___nonzero__, None, VecVecString)
  VecVecString.__bool__ = new_instancemethod(_cstatgen.VecVecString___bool__, None, VecVecString)
  VecVecString.__len__ = new_instancemethod(_cstatgen.VecVecString___len__, None, VecVecString)
  VecVecString.pop = new_instancemethod(_cstatgen.VecVecString_pop, None, VecVecString)
  VecVecString.__getslice__ = new_instancemethod(_cstatgen.VecVecString___getslice__, None, VecVecString)
  VecVecString.__setslice__ = new_instancemethod(_cstatgen.VecVecString___setslice__, None, VecVecString)
  VecVecString.__delslice__ = new_instancemethod(_cstatgen.VecVecString___delslice__, None, VecVecString)
  VecVecString.__delitem__ = new_instancemethod(_cstatgen.VecVecString___delitem__, None, VecVecString)
  VecVecString.__getitem__ = new_instancemethod(_cstatgen.VecVecString___getitem__, None, VecVecString)
  VecVecString.__setitem__ = new_instancemethod(_cstatgen.VecVecString___setitem__, None, VecVecString)
  VecVecString.append = new_instancemethod(_cstatgen.VecVecString_append, None, VecVecString)
  VecVecString.empty = new_instancemethod(_cstatgen.VecVecString_empty, None, VecVecString)
  VecVecString.size = new_instancemethod(_cstatgen.VecVecString_size, None, VecVecString)
  VecVecString.clear = new_instancemethod(_cstatgen.VecVecString_clear, None, VecVecString)
  VecVecString.swap = new_instancemethod(_cstatgen.VecVecString_swap, None, VecVecString)
  VecVecString.get_allocator = new_instancemethod(_cstatgen.VecVecString_get_allocator, None, VecVecString)
  VecVecString.begin = new_instancemethod(_cstatgen.VecVecString_begin, None, VecVecString)
  VecVecString.end = new_instancemethod(_cstatgen.VecVecString_end, None, VecVecString)
  VecVecString.rbegin = new_instancemethod(_cstatgen.VecVecString_rbegin, None, VecVecString)
  VecVecString.rend = new_instancemethod(_cstatgen.VecVecString_rend, None, VecVecString)
  VecVecString.pop_back = new_instancemethod(_cstatgen.VecVecString_pop_back, None, VecVecString)
  VecVecString.erase = new_instancemethod(_cstatgen.VecVecString_erase, None, VecVecString)
  VecVecString.push_back = new_instancemethod(_cstatgen.VecVecString_push_back, None, VecVecString)
  VecVecString.front = new_instancemethod(_cstatgen.VecVecString_front, None, VecVecString)
  VecVecString.back = new_instancemethod(_cstatgen.VecVecString_back, None, VecVecString)
  VecVecString.assign = new_instancemethod(_cstatgen.VecVecString_assign, None, VecVecString)
  VecVecString.resize = new_instancemethod(_cstatgen.VecVecString_resize, None, VecVecString)
  VecVecString.insert = new_instancemethod(_cstatgen.VecVecString_insert, None, VecVecString)
  VecVecString.reserve = new_instancemethod(_cstatgen.VecVecString_reserve, None, VecVecString)
  VecVecString.capacity = new_instancemethod(_cstatgen.VecVecString_capacity, None, VecVecString)
  VecVecString_swigregister = _cstatgen.VecVecString_swigregister
  VecVecString_swigregister(VecVecString)
  
  class VecVecVecString(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecVecVecString_swiginit(self,_cstatgen.new_VecVecVecString(*args))
      __swig_destroy__ = _cstatgen.delete_VecVecVecString
  VecVecVecString.iterator = new_instancemethod(_cstatgen.VecVecVecString_iterator, None, VecVecVecString)
  VecVecVecString.__nonzero__ = new_instancemethod(_cstatgen.VecVecVecString___nonzero__, None, VecVecVecString)
  VecVecVecString.__bool__ = new_instancemethod(_cstatgen.VecVecVecString___bool__, None, VecVecVecString)
  VecVecVecString.__len__ = new_instancemethod(_cstatgen.VecVecVecString___len__, None, VecVecVecString)
  VecVecVecString.pop = new_instancemethod(_cstatgen.VecVecVecString_pop, None, VecVecVecString)
  VecVecVecString.__getslice__ = new_instancemethod(_cstatgen.VecVecVecString___getslice__, None, VecVecVecString)
  VecVecVecString.__setslice__ = new_instancemethod(_cstatgen.VecVecVecString___setslice__, None, VecVecVecString)
  VecVecVecString.__delslice__ = new_instancemethod(_cstatgen.VecVecVecString___delslice__, None, VecVecVecString)
  VecVecVecString.__delitem__ = new_instancemethod(_cstatgen.VecVecVecString___delitem__, None, VecVecVecString)
  VecVecVecString.__getitem__ = new_instancemethod(_cstatgen.VecVecVecString___getitem__, None, VecVecVecString)
  VecVecVecString.__setitem__ = new_instancemethod(_cstatgen.VecVecVecString___setitem__, None, VecVecVecString)
  VecVecVecString.append = new_instancemethod(_cstatgen.VecVecVecString_append, None, VecVecVecString)
  VecVecVecString.empty = new_instancemethod(_cstatgen.VecVecVecString_empty, None, VecVecVecString)
  VecVecVecString.size = new_instancemethod(_cstatgen.VecVecVecString_size, None, VecVecVecString)
  VecVecVecString.clear = new_instancemethod(_cstatgen.VecVecVecString_clear, None, VecVecVecString)
  VecVecVecString.swap = new_instancemethod(_cstatgen.VecVecVecString_swap, None, VecVecVecString)
  VecVecVecString.get_allocator = new_instancemethod(_cstatgen.VecVecVecString_get_allocator, None, VecVecVecString)
  VecVecVecString.begin = new_instancemethod(_cstatgen.VecVecVecString_begin, None, VecVecVecString)
  VecVecVecString.end = new_instancemethod(_cstatgen.VecVecVecString_end, None, VecVecVecString)
  VecVecVecString.rbegin = new_instancemethod(_cstatgen.VecVecVecString_rbegin, None, VecVecVecString)
  VecVecVecString.rend = new_instancemethod(_cstatgen.VecVecVecString_rend, None, VecVecVecString)
  VecVecVecString.pop_back = new_instancemethod(_cstatgen.VecVecVecString_pop_back, None, VecVecVecString)
  VecVecVecString.erase = new_instancemethod(_cstatgen.VecVecVecString_erase, None, VecVecVecString)
  VecVecVecString.push_back = new_instancemethod(_cstatgen.VecVecVecString_push_back, None, VecVecVecString)
  VecVecVecString.front = new_instancemethod(_cstatgen.VecVecVecString_front, None, VecVecVecString)
  VecVecVecString.back = new_instancemethod(_cstatgen.VecVecVecString_back, None, VecVecVecString)
  VecVecVecString.assign = new_instancemethod(_cstatgen.VecVecVecString_assign, None, VecVecVecString)
  VecVecVecString.resize = new_instancemethod(_cstatgen.VecVecVecString_resize, None, VecVecVecString)
  VecVecVecString.insert = new_instancemethod(_cstatgen.VecVecVecString_insert, None, VecVecVecString)
  VecVecVecString.reserve = new_instancemethod(_cstatgen.VecVecVecString_reserve, None, VecVecVecString)
  VecVecVecString.capacity = new_instancemethod(_cstatgen.VecVecVecString_capacity, None, VecVecVecString)
  VecVecVecString_swigregister = _cstatgen.VecVecVecString_swigregister
  VecVecVecString_swigregister(VecVecVecString)
  
  class VecVecInt(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecVecInt_swiginit(self,_cstatgen.new_VecVecInt(*args))
      __swig_destroy__ = _cstatgen.delete_VecVecInt
  VecVecInt.iterator = new_instancemethod(_cstatgen.VecVecInt_iterator, None, VecVecInt)
  VecVecInt.__nonzero__ = new_instancemethod(_cstatgen.VecVecInt___nonzero__, None, VecVecInt)
  VecVecInt.__bool__ = new_instancemethod(_cstatgen.VecVecInt___bool__, None, VecVecInt)
  VecVecInt.__len__ = new_instancemethod(_cstatgen.VecVecInt___len__, None, VecVecInt)
  VecVecInt.pop = new_instancemethod(_cstatgen.VecVecInt_pop, None, VecVecInt)
  VecVecInt.__getslice__ = new_instancemethod(_cstatgen.VecVecInt___getslice__, None, VecVecInt)
  VecVecInt.__setslice__ = new_instancemethod(_cstatgen.VecVecInt___setslice__, None, VecVecInt)
  VecVecInt.__delslice__ = new_instancemethod(_cstatgen.VecVecInt___delslice__, None, VecVecInt)
  VecVecInt.__delitem__ = new_instancemethod(_cstatgen.VecVecInt___delitem__, None, VecVecInt)
  VecVecInt.__getitem__ = new_instancemethod(_cstatgen.VecVecInt___getitem__, None, VecVecInt)
  VecVecInt.__setitem__ = new_instancemethod(_cstatgen.VecVecInt___setitem__, None, VecVecInt)
  VecVecInt.append = new_instancemethod(_cstatgen.VecVecInt_append, None, VecVecInt)
  VecVecInt.empty = new_instancemethod(_cstatgen.VecVecInt_empty, None, VecVecInt)
  VecVecInt.size = new_instancemethod(_cstatgen.VecVecInt_size, None, VecVecInt)
  VecVecInt.clear = new_instancemethod(_cstatgen.VecVecInt_clear, None, VecVecInt)
  VecVecInt.swap = new_instancemethod(_cstatgen.VecVecInt_swap, None, VecVecInt)
  VecVecInt.get_allocator = new_instancemethod(_cstatgen.VecVecInt_get_allocator, None, VecVecInt)
  VecVecInt.begin = new_instancemethod(_cstatgen.VecVecInt_begin, None, VecVecInt)
  VecVecInt.end = new_instancemethod(_cstatgen.VecVecInt_end, None, VecVecInt)
  VecVecInt.rbegin = new_instancemethod(_cstatgen.VecVecInt_rbegin, None, VecVecInt)
  VecVecInt.rend = new_instancemethod(_cstatgen.VecVecInt_rend, None, VecVecInt)
  VecVecInt.pop_back = new_instancemethod(_cstatgen.VecVecInt_pop_back, None, VecVecInt)
  VecVecInt.erase = new_instancemethod(_cstatgen.VecVecInt_erase, None, VecVecInt)
  VecVecInt.push_back = new_instancemethod(_cstatgen.VecVecInt_push_back, None, VecVecInt)
  VecVecInt.front = new_instancemethod(_cstatgen.VecVecInt_front, None, VecVecInt)
  VecVecInt.back = new_instancemethod(_cstatgen.VecVecInt_back, None, VecVecInt)
  VecVecInt.assign = new_instancemethod(_cstatgen.VecVecInt_assign, None, VecVecInt)
  VecVecInt.resize = new_instancemethod(_cstatgen.VecVecInt_resize, None, VecVecInt)
  VecVecInt.insert = new_instancemethod(_cstatgen.VecVecInt_insert, None, VecVecInt)
  VecVecInt.reserve = new_instancemethod(_cstatgen.VecVecInt_reserve, None, VecVecInt)
  VecVecInt.capacity = new_instancemethod(_cstatgen.VecVecInt_capacity, None, VecVecInt)
  VecVecInt_swigregister = _cstatgen.VecVecInt_swigregister
  VecVecInt_swigregister(VecVecInt)
  
  class VecVecVecInt(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecVecVecInt_swiginit(self,_cstatgen.new_VecVecVecInt(*args))
      __swig_destroy__ = _cstatgen.delete_VecVecVecInt
  VecVecVecInt.iterator = new_instancemethod(_cstatgen.VecVecVecInt_iterator, None, VecVecVecInt)
  VecVecVecInt.__nonzero__ = new_instancemethod(_cstatgen.VecVecVecInt___nonzero__, None, VecVecVecInt)
  VecVecVecInt.__bool__ = new_instancemethod(_cstatgen.VecVecVecInt___bool__, None, VecVecVecInt)
  VecVecVecInt.__len__ = new_instancemethod(_cstatgen.VecVecVecInt___len__, None, VecVecVecInt)
  VecVecVecInt.pop = new_instancemethod(_cstatgen.VecVecVecInt_pop, None, VecVecVecInt)
  VecVecVecInt.__getslice__ = new_instancemethod(_cstatgen.VecVecVecInt___getslice__, None, VecVecVecInt)
  VecVecVecInt.__setslice__ = new_instancemethod(_cstatgen.VecVecVecInt___setslice__, None, VecVecVecInt)
  VecVecVecInt.__delslice__ = new_instancemethod(_cstatgen.VecVecVecInt___delslice__, None, VecVecVecInt)
  VecVecVecInt.__delitem__ = new_instancemethod(_cstatgen.VecVecVecInt___delitem__, None, VecVecVecInt)
  VecVecVecInt.__getitem__ = new_instancemethod(_cstatgen.VecVecVecInt___getitem__, None, VecVecVecInt)
  VecVecVecInt.__setitem__ = new_instancemethod(_cstatgen.VecVecVecInt___setitem__, None, VecVecVecInt)
  VecVecVecInt.append = new_instancemethod(_cstatgen.VecVecVecInt_append, None, VecVecVecInt)
  VecVecVecInt.empty = new_instancemethod(_cstatgen.VecVecVecInt_empty, None, VecVecVecInt)
  VecVecVecInt.size = new_instancemethod(_cstatgen.VecVecVecInt_size, None, VecVecVecInt)
  VecVecVecInt.clear = new_instancemethod(_cstatgen.VecVecVecInt_clear, None, VecVecVecInt)
  VecVecVecInt.swap = new_instancemethod(_cstatgen.VecVecVecInt_swap, None, VecVecVecInt)
  VecVecVecInt.get_allocator = new_instancemethod(_cstatgen.VecVecVecInt_get_allocator, None, VecVecVecInt)
  VecVecVecInt.begin = new_instancemethod(_cstatgen.VecVecVecInt_begin, None, VecVecVecInt)
  VecVecVecInt.end = new_instancemethod(_cstatgen.VecVecVecInt_end, None, VecVecVecInt)
  VecVecVecInt.rbegin = new_instancemethod(_cstatgen.VecVecVecInt_rbegin, None, VecVecVecInt)
  VecVecVecInt.rend = new_instancemethod(_cstatgen.VecVecVecInt_rend, None, VecVecVecInt)
  VecVecVecInt.pop_back = new_instancemethod(_cstatgen.VecVecVecInt_pop_back, None, VecVecVecInt)
  VecVecVecInt.erase = new_instancemethod(_cstatgen.VecVecVecInt_erase, None, VecVecVecInt)
  VecVecVecInt.push_back = new_instancemethod(_cstatgen.VecVecVecInt_push_back, None, VecVecVecInt)
  VecVecVecInt.front = new_instancemethod(_cstatgen.VecVecVecInt_front, None, VecVecVecInt)
  VecVecVecInt.back = new_instancemethod(_cstatgen.VecVecVecInt_back, None, VecVecVecInt)
  VecVecVecInt.assign = new_instancemethod(_cstatgen.VecVecVecInt_assign, None, VecVecVecInt)
  VecVecVecInt.resize = new_instancemethod(_cstatgen.VecVecVecInt_resize, None, VecVecVecInt)
  VecVecVecInt.insert = new_instancemethod(_cstatgen.VecVecVecInt_insert, None, VecVecVecInt)
  VecVecVecInt.reserve = new_instancemethod(_cstatgen.VecVecVecInt_reserve, None, VecVecVecInt)
  VecVecVecInt.capacity = new_instancemethod(_cstatgen.VecVecVecInt_capacity, None, VecVecVecInt)
  VecVecVecInt_swigregister = _cstatgen.VecVecVecInt_swigregister
  VecVecVecInt_swigregister(VecVecVecInt)
  
  class VecVecDouble(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecVecDouble_swiginit(self,_cstatgen.new_VecVecDouble(*args))
      __swig_destroy__ = _cstatgen.delete_VecVecDouble
  VecVecDouble.iterator = new_instancemethod(_cstatgen.VecVecDouble_iterator, None, VecVecDouble)
  VecVecDouble.__nonzero__ = new_instancemethod(_cstatgen.VecVecDouble___nonzero__, None, VecVecDouble)
  VecVecDouble.__bool__ = new_instancemethod(_cstatgen.VecVecDouble___bool__, None, VecVecDouble)
  VecVecDouble.__len__ = new_instancemethod(_cstatgen.VecVecDouble___len__, None, VecVecDouble)
  VecVecDouble.pop = new_instancemethod(_cstatgen.VecVecDouble_pop, None, VecVecDouble)
  VecVecDouble.__getslice__ = new_instancemethod(_cstatgen.VecVecDouble___getslice__, None, VecVecDouble)
  VecVecDouble.__setslice__ = new_instancemethod(_cstatgen.VecVecDouble___setslice__, None, VecVecDouble)
  VecVecDouble.__delslice__ = new_instancemethod(_cstatgen.VecVecDouble___delslice__, None, VecVecDouble)
  VecVecDouble.__delitem__ = new_instancemethod(_cstatgen.VecVecDouble___delitem__, None, VecVecDouble)
  VecVecDouble.__getitem__ = new_instancemethod(_cstatgen.VecVecDouble___getitem__, None, VecVecDouble)
  VecVecDouble.__setitem__ = new_instancemethod(_cstatgen.VecVecDouble___setitem__, None, VecVecDouble)
  VecVecDouble.append = new_instancemethod(_cstatgen.VecVecDouble_append, None, VecVecDouble)
  VecVecDouble.empty = new_instancemethod(_cstatgen.VecVecDouble_empty, None, VecVecDouble)
  VecVecDouble.size = new_instancemethod(_cstatgen.VecVecDouble_size, None, VecVecDouble)
  VecVecDouble.clear = new_instancemethod(_cstatgen.VecVecDouble_clear, None, VecVecDouble)
  VecVecDouble.swap = new_instancemethod(_cstatgen.VecVecDouble_swap, None, VecVecDouble)
  VecVecDouble.get_allocator = new_instancemethod(_cstatgen.VecVecDouble_get_allocator, None, VecVecDouble)
  VecVecDouble.begin = new_instancemethod(_cstatgen.VecVecDouble_begin, None, VecVecDouble)
  VecVecDouble.end = new_instancemethod(_cstatgen.VecVecDouble_end, None, VecVecDouble)
  VecVecDouble.rbegin = new_instancemethod(_cstatgen.VecVecDouble_rbegin, None, VecVecDouble)
  VecVecDouble.rend = new_instancemethod(_cstatgen.VecVecDouble_rend, None, VecVecDouble)
  VecVecDouble.pop_back = new_instancemethod(_cstatgen.VecVecDouble_pop_back, None, VecVecDouble)
  VecVecDouble.erase = new_instancemethod(_cstatgen.VecVecDouble_erase, None, VecVecDouble)
  VecVecDouble.push_back = new_instancemethod(_cstatgen.VecVecDouble_push_back, None, VecVecDouble)
  VecVecDouble.front = new_instancemethod(_cstatgen.VecVecDouble_front, None, VecVecDouble)
  VecVecDouble.back = new_instancemethod(_cstatgen.VecVecDouble_back, None, VecVecDouble)
  VecVecDouble.assign = new_instancemethod(_cstatgen.VecVecDouble_assign, None, VecVecDouble)
  VecVecDouble.resize = new_instancemethod(_cstatgen.VecVecDouble_resize, None, VecVecDouble)
  VecVecDouble.insert = new_instancemethod(_cstatgen.VecVecDouble_insert, None, VecVecDouble)
  VecVecDouble.reserve = new_instancemethod(_cstatgen.VecVecDouble_reserve, None, VecVecDouble)
  VecVecDouble.capacity = new_instancemethod(_cstatgen.VecVecDouble_capacity, None, VecVecDouble)
  VecVecDouble_swigregister = _cstatgen.VecVecDouble_swigregister
  VecVecDouble_swigregister(VecVecDouble)
  
  class VecDoubleDict(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
      def __iter__(self):
          return self.key_iterator()
      def iterkeys(self):
          return self.key_iterator()
      def itervalues(self):
          return self.value_iterator()
      def iteritems(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecDoubleDict_swiginit(self,_cstatgen.new_VecDoubleDict(*args))
      __swig_destroy__ = _cstatgen.delete_VecDoubleDict
  VecDoubleDict.iterator = new_instancemethod(_cstatgen.VecDoubleDict_iterator, None, VecDoubleDict)
  VecDoubleDict.__nonzero__ = new_instancemethod(_cstatgen.VecDoubleDict___nonzero__, None, VecDoubleDict)
  VecDoubleDict.__bool__ = new_instancemethod(_cstatgen.VecDoubleDict___bool__, None, VecDoubleDict)
  VecDoubleDict.__len__ = new_instancemethod(_cstatgen.VecDoubleDict___len__, None, VecDoubleDict)
  VecDoubleDict.__getitem__ = new_instancemethod(_cstatgen.VecDoubleDict___getitem__, None, VecDoubleDict)
  VecDoubleDict.__delitem__ = new_instancemethod(_cstatgen.VecDoubleDict___delitem__, None, VecDoubleDict)
  VecDoubleDict.has_key = new_instancemethod(_cstatgen.VecDoubleDict_has_key, None, VecDoubleDict)
  VecDoubleDict.keys = new_instancemethod(_cstatgen.VecDoubleDict_keys, None, VecDoubleDict)
  VecDoubleDict.values = new_instancemethod(_cstatgen.VecDoubleDict_values, None, VecDoubleDict)
  VecDoubleDict.items = new_instancemethod(_cstatgen.VecDoubleDict_items, None, VecDoubleDict)
  VecDoubleDict.__contains__ = new_instancemethod(_cstatgen.VecDoubleDict___contains__, None, VecDoubleDict)
  VecDoubleDict.key_iterator = new_instancemethod(_cstatgen.VecDoubleDict_key_iterator, None, VecDoubleDict)
  VecDoubleDict.value_iterator = new_instancemethod(_cstatgen.VecDoubleDict_value_iterator, None, VecDoubleDict)
  VecDoubleDict.__setitem__ = new_instancemethod(_cstatgen.VecDoubleDict___setitem__, None, VecDoubleDict)
  VecDoubleDict.asdict = new_instancemethod(_cstatgen.VecDoubleDict_asdict, None, VecDoubleDict)
  VecDoubleDict.empty = new_instancemethod(_cstatgen.VecDoubleDict_empty, None, VecDoubleDict)
  VecDoubleDict.size = new_instancemethod(_cstatgen.VecDoubleDict_size, None, VecDoubleDict)
  VecDoubleDict.clear = new_instancemethod(_cstatgen.VecDoubleDict_clear, None, VecDoubleDict)
  VecDoubleDict.swap = new_instancemethod(_cstatgen.VecDoubleDict_swap, None, VecDoubleDict)
  VecDoubleDict.get_allocator = new_instancemethod(_cstatgen.VecDoubleDict_get_allocator, None, VecDoubleDict)
  VecDoubleDict.begin = new_instancemethod(_cstatgen.VecDoubleDict_begin, None, VecDoubleDict)
  VecDoubleDict.end = new_instancemethod(_cstatgen.VecDoubleDict_end, None, VecDoubleDict)
  VecDoubleDict.rbegin = new_instancemethod(_cstatgen.VecDoubleDict_rbegin, None, VecDoubleDict)
  VecDoubleDict.rend = new_instancemethod(_cstatgen.VecDoubleDict_rend, None, VecDoubleDict)
  VecDoubleDict.count = new_instancemethod(_cstatgen.VecDoubleDict_count, None, VecDoubleDict)
  VecDoubleDict.erase = new_instancemethod(_cstatgen.VecDoubleDict_erase, None, VecDoubleDict)
  VecDoubleDict.find = new_instancemethod(_cstatgen.VecDoubleDict_find, None, VecDoubleDict)
  VecDoubleDict.lower_bound = new_instancemethod(_cstatgen.VecDoubleDict_lower_bound, None, VecDoubleDict)
  VecDoubleDict.upper_bound = new_instancemethod(_cstatgen.VecDoubleDict_upper_bound, None, VecDoubleDict)
  VecDoubleDict_swigregister = _cstatgen.VecDoubleDict_swigregister
  VecDoubleDict_swigregister(VecDoubleDict)
  
  class VecVecDoubleDict(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def __iter__(self):
          return self.iterator()
      def __iter__(self):
          return self.key_iterator()
      def iterkeys(self):
          return self.key_iterator()
      def itervalues(self):
          return self.value_iterator()
      def iteritems(self):
          return self.iterator()
  
      def __init__(self, *args):
          _cstatgen.VecVecDoubleDict_swiginit(self,_cstatgen.new_VecVecDoubleDict(*args))
      __swig_destroy__ = _cstatgen.delete_VecVecDoubleDict
  VecVecDoubleDict.iterator = new_instancemethod(_cstatgen.VecVecDoubleDict_iterator, None, VecVecDoubleDict)
  VecVecDoubleDict.__nonzero__ = new_instancemethod(_cstatgen.VecVecDoubleDict___nonzero__, None, VecVecDoubleDict)
  VecVecDoubleDict.__bool__ = new_instancemethod(_cstatgen.VecVecDoubleDict___bool__, None, VecVecDoubleDict)
  VecVecDoubleDict.__len__ = new_instancemethod(_cstatgen.VecVecDoubleDict___len__, None, VecVecDoubleDict)
  VecVecDoubleDict.__getitem__ = new_instancemethod(_cstatgen.VecVecDoubleDict___getitem__, None, VecVecDoubleDict)
  VecVecDoubleDict.__delitem__ = new_instancemethod(_cstatgen.VecVecDoubleDict___delitem__, None, VecVecDoubleDict)
  VecVecDoubleDict.has_key = new_instancemethod(_cstatgen.VecVecDoubleDict_has_key, None, VecVecDoubleDict)
  VecVecDoubleDict.keys = new_instancemethod(_cstatgen.VecVecDoubleDict_keys, None, VecVecDoubleDict)
  VecVecDoubleDict.values = new_instancemethod(_cstatgen.VecVecDoubleDict_values, None, VecVecDoubleDict)
  VecVecDoubleDict.items = new_instancemethod(_cstatgen.VecVecDoubleDict_items, None, VecVecDoubleDict)
  VecVecDoubleDict.__contains__ = new_instancemethod(_cstatgen.VecVecDoubleDict___contains__, None, VecVecDoubleDict)
  VecVecDoubleDict.key_iterator = new_instancemethod(_cstatgen.VecVecDoubleDict_key_iterator, None, VecVecDoubleDict)
  VecVecDoubleDict.value_iterator = new_instancemethod(_cstatgen.VecVecDoubleDict_value_iterator, None, VecVecDoubleDict)
  VecVecDoubleDict.__setitem__ = new_instancemethod(_cstatgen.VecVecDoubleDict___setitem__, None, VecVecDoubleDict)
  VecVecDoubleDict.asdict = new_instancemethod(_cstatgen.VecVecDoubleDict_asdict, None, VecVecDoubleDict)
  VecVecDoubleDict.empty = new_instancemethod(_cstatgen.VecVecDoubleDict_empty, None, VecVecDoubleDict)
  VecVecDoubleDict.size = new_instancemethod(_cstatgen.VecVecDoubleDict_size, None, VecVecDoubleDict)
  VecVecDoubleDict.clear = new_instancemethod(_cstatgen.VecVecDoubleDict_clear, None, VecVecDoubleDict)
  VecVecDoubleDict.swap = new_instancemethod(_cstatgen.VecVecDoubleDict_swap, None, VecVecDoubleDict)
  VecVecDoubleDict.get_allocator = new_instancemethod(_cstatgen.VecVecDoubleDict_get_allocator, None, VecVecDoubleDict)
  VecVecDoubleDict.begin = new_instancemethod(_cstatgen.VecVecDoubleDict_begin, None, VecVecDoubleDict)
  VecVecDoubleDict.end = new_instancemethod(_cstatgen.VecVecDoubleDict_end, None, VecVecDoubleDict)
  VecVecDoubleDict.rbegin = new_instancemethod(_cstatgen.VecVecDoubleDict_rbegin, None, VecVecDoubleDict)
  VecVecDoubleDict.rend = new_instancemethod(_cstatgen.VecVecDoubleDict_rend, None, VecVecDoubleDict)
  VecVecDoubleDict.count = new_instancemethod(_cstatgen.VecVecDoubleDict_count, None, VecVecDoubleDict)
  VecVecDoubleDict.erase = new_instancemethod(_cstatgen.VecVecDoubleDict_erase, None, VecVecDoubleDict)
  VecVecDoubleDict.find = new_instancemethod(_cstatgen.VecVecDoubleDict_find, None, VecVecDoubleDict)
  VecVecDoubleDict.lower_bound = new_instancemethod(_cstatgen.VecVecDoubleDict_lower_bound, None, VecVecDoubleDict)
  VecVecDoubleDict.upper_bound = new_instancemethod(_cstatgen.VecVecDoubleDict_upper_bound, None, VecVecDoubleDict)
  VecVecDoubleDict_swigregister = _cstatgen.VecVecDoubleDict_swigregister
  VecVecDoubleDict_swigregister(VecVecDoubleDict)
  
  class Exception(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, msg):
          _cstatgen.Exception_swiginit(self,_cstatgen.new_Exception(msg))
      __swig_destroy__ = _cstatgen.delete_Exception
  Exception.message = new_instancemethod(_cstatgen.Exception_message, None, Exception)
  Exception_swigregister = _cstatgen.Exception_swigregister
  Exception_swigregister(Exception)
  
  class StopIteration(Exception):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, msg):
          _cstatgen.StopIteration_swiginit(self,_cstatgen.new_StopIteration(msg))
      __swig_destroy__ = _cstatgen.delete_StopIteration
  StopIteration_swigregister = _cstatgen.StopIteration_swigregister
  StopIteration_swigregister(StopIteration)
  
  class IndexError(Exception):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, msg):
          _cstatgen.IndexError_swiginit(self,_cstatgen.new_IndexError(msg))
      __swig_destroy__ = _cstatgen.delete_IndexError
  IndexError_swigregister = _cstatgen.IndexError_swigregister
  IndexError_swigregister(IndexError)
  
  class ValueError(Exception):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, msg):
          _cstatgen.ValueError_swiginit(self,_cstatgen.new_ValueError(msg))
      __swig_destroy__ = _cstatgen.delete_ValueError
  ValueError_swigregister = _cstatgen.ValueError_swigregister
  ValueError_swigregister(ValueError)
  
  class SystemError(Exception):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, msg):
          _cstatgen.SystemError_swiginit(self,_cstatgen.new_SystemError(msg))
      __swig_destroy__ = _cstatgen.delete_SystemError
  SystemError_swigregister = _cstatgen.SystemError_swigregister
  SystemError_swigregister(SystemError)
  
  class RuntimeError(Exception):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, msg):
          _cstatgen.RuntimeError_swiginit(self,_cstatgen.new_RuntimeError(msg))
      __swig_destroy__ = _cstatgen.delete_RuntimeError
  RuntimeError_swigregister = _cstatgen.RuntimeError_swigregister
  RuntimeError_swigregister(RuntimeError)
  
  class VCFstream(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, vcf):
          _cstatgen.VCFstream_swiginit(self,_cstatgen.new_VCFstream(vcf))
      __swig_destroy__ = _cstatgen.delete_VCFstream
      sampleCount = _swig_property(_cstatgen.VCFstream_sampleCount_get, _cstatgen.VCFstream_sampleCount_set)
  VCFstream.GetSampleNames = new_instancemethod(_cstatgen.VCFstream_GetSampleNames, None, VCFstream)
  VCFstream.GetGenomeCoordinates = new_instancemethod(_cstatgen.VCFstream_GetGenomeCoordinates, None, VCFstream)
  VCFstream.Extract = new_instancemethod(_cstatgen.VCFstream_Extract, None, VCFstream)
  VCFstream.Next = new_instancemethod(_cstatgen.VCFstream_Next, None, VCFstream)
  VCFstream.GetChrom = new_instancemethod(_cstatgen.VCFstream_GetChrom, None, VCFstream)
  VCFstream.GetPosition = new_instancemethod(_cstatgen.VCFstream_GetPosition, None, VCFstream)
  VCFstream.GetInfo = new_instancemethod(_cstatgen.VCFstream_GetInfo, None, VCFstream)
  VCFstream.CountSampleGenotypes = new_instancemethod(_cstatgen.VCFstream_CountSampleGenotypes, None, VCFstream)
  VCFstream.IsBiAllelic = new_instancemethod(_cstatgen.VCFstream_IsBiAllelic, None, VCFstream)
  VCFstream.GetGenotypes = new_instancemethod(_cstatgen.VCFstream_GetGenotypes, None, VCFstream)
  VCFstream_swigregister = _cstatgen.VCFstream_swigregister
  VCFstream_swigregister(VCFstream)
  
  class DataLoader(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self):
          _cstatgen.DataLoader_swiginit(self,_cstatgen.new_DataLoader())
      __swig_destroy__ = _cstatgen.delete_DataLoader
  DataLoader.clone = new_instancemethod(_cstatgen.DataLoader_clone, None, DataLoader)
  DataLoader.LoadVariants = new_instancemethod(_cstatgen.DataLoader_LoadVariants, None, DataLoader)
  DataLoader.LoadSamples = new_instancemethod(_cstatgen.DataLoader_LoadSamples, None, DataLoader)
  DataLoader_swigregister = _cstatgen.DataLoader_swigregister
  DataLoader_swigregister(DataLoader)
  
  class MendelianErrorChecker(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self):
          _cstatgen.MendelianErrorChecker_swiginit(self,_cstatgen.new_MendelianErrorChecker())
      __swig_destroy__ = _cstatgen.delete_MendelianErrorChecker
  MendelianErrorChecker.clone = new_instancemethod(_cstatgen.MendelianErrorChecker_clone, None, MendelianErrorChecker)
  MendelianErrorChecker.Apply = new_instancemethod(_cstatgen.MendelianErrorChecker_Apply, None, MendelianErrorChecker)
  MendelianErrorChecker.CountMendelianErrors = new_instancemethod(_cstatgen.MendelianErrorChecker_CountMendelianErrors, None, MendelianErrorChecker)
  MendelianErrorChecker_swigregister = _cstatgen.MendelianErrorChecker_swigregister
  MendelianErrorChecker_swigregister(MendelianErrorChecker)
  
  class GeneticHaplotyper(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, chrom):
          _cstatgen.GeneticHaplotyper_swiginit(self,_cstatgen.new_GeneticHaplotyper(chrom))
      __swig_destroy__ = _cstatgen.delete_GeneticHaplotyper
      data = _swig_property(_cstatgen.GeneticHaplotyper_data_get, _cstatgen.GeneticHaplotyper_data_set)
  GeneticHaplotyper.clone = new_instancemethod(_cstatgen.GeneticHaplotyper_clone, None, GeneticHaplotyper)
  GeneticHaplotyper.Apply = new_instancemethod(_cstatgen.GeneticHaplotyper_Apply, None, GeneticHaplotyper)
  GeneticHaplotyper.Print = new_instancemethod(_cstatgen.GeneticHaplotyper_Print, None, GeneticHaplotyper)
  GeneticHaplotyper_swigregister = _cstatgen.GeneticHaplotyper_swigregister
  GeneticHaplotyper_swigregister(GeneticHaplotyper)
  
  class HaplotypeCoder(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, size):
          _cstatgen.HaplotypeCoder_swiginit(self,_cstatgen.new_HaplotypeCoder(size))
      __swig_destroy__ = _cstatgen.delete_HaplotypeCoder
  HaplotypeCoder.clone = new_instancemethod(_cstatgen.HaplotypeCoder_clone, None, HaplotypeCoder)
  HaplotypeCoder.Execute = new_instancemethod(_cstatgen.HaplotypeCoder_Execute, None, HaplotypeCoder)
  HaplotypeCoder.Print = new_instancemethod(_cstatgen.HaplotypeCoder_Print, None, HaplotypeCoder)
  HaplotypeCoder.GetHaplotypes = new_instancemethod(_cstatgen.HaplotypeCoder_GetHaplotypes, None, HaplotypeCoder)
  HaplotypeCoder.GetAlleleFrequencies = new_instancemethod(_cstatgen.HaplotypeCoder_GetAlleleFrequencies, None, HaplotypeCoder)
  HaplotypeCoder.CountRecombinations = new_instancemethod(_cstatgen.HaplotypeCoder_CountRecombinations, None, HaplotypeCoder)
  HaplotypeCoder_swigregister = _cstatgen.HaplotypeCoder_swigregister
  HaplotypeCoder_swigregister(HaplotypeCoder)
  
  
  def reset_ped(ped):
      return _cstatgen.reset_ped(ped)
  reset_ped = _cstatgen.reset_ped
  class HaplotypingEngine(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
  
      def __init__(self, verbose=0):
          _cstatgen.HaplotypingEngine_swiginit(self,_cstatgen.new_HaplotypingEngine(verbose))
      __swig_destroy__ = _cstatgen.delete_HaplotypingEngine
  HaplotypingEngine.clone = new_instancemethod(_cstatgen.HaplotypingEngine_clone, None, HaplotypingEngine)
  HaplotypingEngine.Execute = new_instancemethod(_cstatgen.HaplotypingEngine_Execute, None, HaplotypingEngine)
  HaplotypingEngine.CountMendelianErrors = new_instancemethod(_cstatgen.HaplotypingEngine_CountMendelianErrors, None, HaplotypingEngine)
  HaplotypingEngine_swigregister = _cstatgen.HaplotypingEngine_swigregister
  HaplotypingEngine_swigregister(HaplotypingEngine)
  
  
  
  