text: # This file was automatically generated by SWIG (http://www.swig.org).
  # Version 2.0.12
  #
  # Do not make changes to this file unless you know what you are doing--modify
  # the SWIG interface file instead.
  
  
  
  
  """
  IDA Plugin SDK API wrapper: tryblks
  """
  
  
  from sys import version_info
  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('_ida_tryblks', [dirname(__file__)])
          except ImportError:
              import _ida_tryblks
              return _ida_tryblks
          if fp is not None:
              try:
                  _mod = imp.load_module('_ida_tryblks', fp, pathname, description)
              finally:
                  fp.close()
              return _mod
      _ida_tryblks = swig_import_helper()
      del swig_import_helper
  else:
      import _ida_tryblks
  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):
          self.__dict__[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(self,class_type,name):
      if (name == "thisown"): return self.this.own()
      method = class_type.__swig_getmethods__.get(name,None)
      if method: return method(self)
      raise AttributeError(name)
  
  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
  
  
  try:
      import weakref
      weakref_proxy = weakref.proxy
  except:
      weakref_proxy = lambda x: x
  
  
  import ida_idaapi
  
  import sys
  _BC695 = sys.modules["__main__"].IDAPYTHON_COMPAT_695_API
  
  if _BC695:
  
  
  
  
  
  
      def bc695redef(func):
          ida_idaapi._BC695.replace_fun(func)
          return func
  
  import ida_range
  class tryblks_t(object):
      """
      Proxy of C++ qvector<(tryblk_t)> class
      """
      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, *args):
          """
          __init__(self) -> tryblks_t
          __init__(self, x) -> tryblks_t
          """
          this = _ida_tryblks.new_tryblks_t(*args)
          try: self.this.append(this)
          except: self.this = this
      __swig_destroy__ = _ida_tryblks.delete_tryblks_t
      __del__ = lambda self : None;
      def push_back(self, *args):
          """
          push_back(self, x)
          push_back(self) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_push_back(self, *args)
  
      def pop_back(self, *args):
          """
          pop_back(self)
          """
          return _ida_tryblks.tryblks_t_pop_back(self, *args)
  
      def size(self, *args):
          """
          size(self) -> size_t
          """
          return _ida_tryblks.tryblks_t_size(self, *args)
  
      def empty(self, *args):
          """
          empty(self) -> bool
          """
          return _ida_tryblks.tryblks_t_empty(self, *args)
  
      def at(self, *args):
          """
          at(self, _idx) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_at(self, *args)
  
      def qclear(self, *args):
          """
          qclear(self)
          """
          return _ida_tryblks.tryblks_t_qclear(self, *args)
  
      def clear(self, *args):
          """
          clear(self)
          """
          return _ida_tryblks.tryblks_t_clear(self, *args)
  
      def resize(self, *args):
          """
          resize(self, _newsize, x)
          resize(self, _newsize)
          """
          return _ida_tryblks.tryblks_t_resize(self, *args)
  
      def grow(self, *args):
          """
          grow(self, x=tryblk_t())
          """
          return _ida_tryblks.tryblks_t_grow(self, *args)
  
      def capacity(self, *args):
          """
          capacity(self) -> size_t
          """
          return _ida_tryblks.tryblks_t_capacity(self, *args)
  
      def reserve(self, *args):
          """
          reserve(self, cnt)
          """
          return _ida_tryblks.tryblks_t_reserve(self, *args)
  
      def truncate(self, *args):
          """
          truncate(self)
          """
          return _ida_tryblks.tryblks_t_truncate(self, *args)
  
      def swap(self, *args):
          """
          swap(self, r)
          """
          return _ida_tryblks.tryblks_t_swap(self, *args)
  
      def extract(self, *args):
          """
          extract(self) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_extract(self, *args)
  
      def inject(self, *args):
          """
          inject(self, s, len)
          """
          return _ida_tryblks.tryblks_t_inject(self, *args)
  
      def __eq__(self, *args):
          """
          __eq__(self, r) -> bool
          """
          return _ida_tryblks.tryblks_t___eq__(self, *args)
  
      def __ne__(self, *args):
          """
          __ne__(self, r) -> bool
          """
          return _ida_tryblks.tryblks_t___ne__(self, *args)
  
      def begin(self, *args):
          """
          begin(self) -> tryblk_t
          begin(self) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_begin(self, *args)
  
      def end(self, *args):
          """
          end(self) -> tryblk_t
          end(self) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_end(self, *args)
  
      def insert(self, *args):
          """
          insert(self, it, x) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_insert(self, *args)
  
      def erase(self, *args):
          """
          erase(self, it) -> tryblk_t
          erase(self, first, last) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_erase(self, *args)
  
      def find(self, *args):
          """
          find(self, x) -> tryblk_t
          find(self, x) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t_find(self, *args)
  
      def has(self, *args):
          """
          has(self, x) -> bool
          """
          return _ida_tryblks.tryblks_t_has(self, *args)
  
      def add_unique(self, *args):
          """
          add_unique(self, x) -> bool
          """
          return _ida_tryblks.tryblks_t_add_unique(self, *args)
  
      def _del(self, *args):
          """
          _del(self, x) -> bool
          """
          return _ida_tryblks.tryblks_t__del(self, *args)
  
      def __len__(self, *args):
          """
          __len__(self) -> size_t
          """
          return _ida_tryblks.tryblks_t___len__(self, *args)
  
      def __getitem__(self, *args):
          """
          __getitem__(self, i) -> tryblk_t
          """
          return _ida_tryblks.tryblks_t___getitem__(self, *args)
  
      def __setitem__(self, *args):
          """
          __setitem__(self, i, v)
          """
          return _ida_tryblks.tryblks_t___setitem__(self, *args)
  
      front = ida_idaapi._qvector_front
      back = ida_idaapi._qvector_back
      __iter__ = ida_idaapi._bounded_getitem_iterator
  
  tryblks_t_swigregister = _ida_tryblks.tryblks_t_swigregister
  tryblks_t_swigregister(tryblks_t)
  
  class catchvec_t(object):
      """
      Proxy of C++ qvector<(catch_t)> class
      """
      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, *args):
          """
          __init__(self) -> catchvec_t
          __init__(self, x) -> catchvec_t
          """
          this = _ida_tryblks.new_catchvec_t(*args)
          try: self.this.append(this)
          except: self.this = this
      __swig_destroy__ = _ida_tryblks.delete_catchvec_t
      __del__ = lambda self : None;
      def push_back(self, *args):
          """
          push_back(self, x)
          push_back(self) -> catch_t
          """
          return _ida_tryblks.catchvec_t_push_back(self, *args)
  
      def pop_back(self, *args):
          """
          pop_back(self)
          """
          return _ida_tryblks.catchvec_t_pop_back(self, *args)
  
      def size(self, *args):
          """
          size(self) -> size_t
          """
          return _ida_tryblks.catchvec_t_size(self, *args)
  
      def empty(self, *args):
          """
          empty(self) -> bool
          """
          return _ida_tryblks.catchvec_t_empty(self, *args)
  
      def at(self, *args):
          """
          at(self, _idx) -> catch_t
          """
          return _ida_tryblks.catchvec_t_at(self, *args)
  
      def qclear(self, *args):
          """
          qclear(self)
          """
          return _ida_tryblks.catchvec_t_qclear(self, *args)
  
      def clear(self, *args):
          """
          clear(self)
          """
          return _ida_tryblks.catchvec_t_clear(self, *args)
  
      def resize(self, *args):
          """
          resize(self, _newsize, x)
          resize(self, _newsize)
          """
          return _ida_tryblks.catchvec_t_resize(self, *args)
  
      def grow(self, *args):
          """
          grow(self, x=catch_t())
          """
          return _ida_tryblks.catchvec_t_grow(self, *args)
  
      def capacity(self, *args):
          """
          capacity(self) -> size_t
          """
          return _ida_tryblks.catchvec_t_capacity(self, *args)
  
      def reserve(self, *args):
          """
          reserve(self, cnt)
          """
          return _ida_tryblks.catchvec_t_reserve(self, *args)
  
      def truncate(self, *args):
          """
          truncate(self)
          """
          return _ida_tryblks.catchvec_t_truncate(self, *args)
  
      def swap(self, *args):
          """
          swap(self, r)
          """
          return _ida_tryblks.catchvec_t_swap(self, *args)
  
      def extract(self, *args):
          """
          extract(self) -> catch_t
          """
          return _ida_tryblks.catchvec_t_extract(self, *args)
  
      def inject(self, *args):
          """
          inject(self, s, len)
          """
          return _ida_tryblks.catchvec_t_inject(self, *args)
  
      def __eq__(self, *args):
          """
          __eq__(self, r) -> bool
          """
          return _ida_tryblks.catchvec_t___eq__(self, *args)
  
      def __ne__(self, *args):
          """
          __ne__(self, r) -> bool
          """
          return _ida_tryblks.catchvec_t___ne__(self, *args)
  
      def begin(self, *args):
          """
          begin(self) -> catch_t
          begin(self) -> catch_t
          """
          return _ida_tryblks.catchvec_t_begin(self, *args)
  
      def end(self, *args):
          """
          end(self) -> catch_t
          end(self) -> catch_t
          """
          return _ida_tryblks.catchvec_t_end(self, *args)
  
      def insert(self, *args):
          """
          insert(self, it, x) -> catch_t
          """
          return _ida_tryblks.catchvec_t_insert(self, *args)
  
      def erase(self, *args):
          """
          erase(self, it) -> catch_t
          erase(self, first, last) -> catch_t
          """
          return _ida_tryblks.catchvec_t_erase(self, *args)
  
      def find(self, *args):
          """
          find(self, x) -> catch_t
          find(self, x) -> catch_t
          """
          return _ida_tryblks.catchvec_t_find(self, *args)
  
      def has(self, *args):
          """
          has(self, x) -> bool
          """
          return _ida_tryblks.catchvec_t_has(self, *args)
  
      def add_unique(self, *args):
          """
          add_unique(self, x) -> bool
          """
          return _ida_tryblks.catchvec_t_add_unique(self, *args)
  
      def _del(self, *args):
          """
          _del(self, x) -> bool
          """
          return _ida_tryblks.catchvec_t__del(self, *args)
  
      def __len__(self, *args):
          """
          __len__(self) -> size_t
          """
          return _ida_tryblks.catchvec_t___len__(self, *args)
  
      def __getitem__(self, *args):
          """
          __getitem__(self, i) -> catch_t
          """
          return _ida_tryblks.catchvec_t___getitem__(self, *args)
  
      def __setitem__(self, *args):
          """
          __setitem__(self, i, v)
          """
          return _ida_tryblks.catchvec_t___setitem__(self, *args)
  
      front = ida_idaapi._qvector_front
      back = ida_idaapi._qvector_back
      __iter__ = ida_idaapi._bounded_getitem_iterator
  
  catchvec_t_swigregister = _ida_tryblks.catchvec_t_swigregister
  catchvec_t_swigregister(catchvec_t)
  
  class try_handler_t(ida_range.rangevec_t):
      """
      Proxy of C++ try_handler_t class
      """
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      disp = _swig_property(_ida_tryblks.try_handler_t_disp_get, _ida_tryblks.try_handler_t_disp_set)
      fpreg = _swig_property(_ida_tryblks.try_handler_t_fpreg_get, _ida_tryblks.try_handler_t_fpreg_set)
      def __init__(self, *args):
          """
          __init__(self) -> try_handler_t
          """
          this = _ida_tryblks.new_try_handler_t(*args)
          try: self.this.append(this)
          except: self.this = this
      def clear(self, *args):
          """
          clear(self)
          """
          return _ida_tryblks.try_handler_t_clear(self, *args)
  
      __swig_destroy__ = _ida_tryblks.delete_try_handler_t
      __del__ = lambda self : None;
  try_handler_t_swigregister = _ida_tryblks.try_handler_t_swigregister
  try_handler_t_swigregister(try_handler_t)
  
  class seh_t(try_handler_t):
      """
      Proxy of C++ seh_t class
      """
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      filter = _swig_property(_ida_tryblks.seh_t_filter_get, _ida_tryblks.seh_t_filter_set)
      seh_code = _swig_property(_ida_tryblks.seh_t_seh_code_get, _ida_tryblks.seh_t_seh_code_set)
      def clear(self, *args):
          """
          clear(self)
          """
          return _ida_tryblks.seh_t_clear(self, *args)
  
      def __init__(self, *args):
          """
          __init__(self) -> seh_t
          """
          this = _ida_tryblks.new_seh_t(*args)
          try: self.this.append(this)
          except: self.this = this
      __swig_destroy__ = _ida_tryblks.delete_seh_t
      __del__ = lambda self : None;
  seh_t_swigregister = _ida_tryblks.seh_t_swigregister
  seh_t_swigregister(seh_t)
  
  class catch_t(try_handler_t):
      """
      Proxy of C++ catch_t class
      """
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      obj = _swig_property(_ida_tryblks.catch_t_obj_get, _ida_tryblks.catch_t_obj_set)
      type_id = _swig_property(_ida_tryblks.catch_t_type_id_get, _ida_tryblks.catch_t_type_id_set)
      def __init__(self, *args):
          """
          __init__(self) -> catch_t
          """
          this = _ida_tryblks.new_catch_t(*args)
          try: self.this.append(this)
          except: self.this = this
      __swig_destroy__ = _ida_tryblks.delete_catch_t
      __del__ = lambda self : None;
  catch_t_swigregister = _ida_tryblks.catch_t_swigregister
  catch_t_swigregister(catch_t)
  
  class tryblk_t(ida_range.rangevec_t):
      """
      Proxy of C++ tryblk_t class
      """
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      level = _swig_property(_ida_tryblks.tryblk_t_level_get, _ida_tryblks.tryblk_t_level_set)
      def cpp(self, *args):
          """
          cpp(self) -> catchvec_t
          """
          return _ida_tryblks.tryblk_t_cpp(self, *args)
  
      def seh(self, *args):
          """
          seh(self) -> seh_t
          """
          return _ida_tryblks.tryblk_t_seh(self, *args)
  
      __swig_destroy__ = _ida_tryblks.delete_tryblk_t
      __del__ = lambda self : None;
      def __init__(self, *args):
          """
          __init__(self) -> tryblk_t
          __init__(self, r) -> tryblk_t
          """
          this = _ida_tryblks.new_tryblk_t(*args)
          try: self.this.append(this)
          except: self.this = this
      def get_kind(self, *args):
          """
          get_kind(self) -> uchar
          """
          return _ida_tryblks.tryblk_t_get_kind(self, *args)
  
      def empty(self, *args):
          """
          empty(self) -> bool
          """
          return _ida_tryblks.tryblk_t_empty(self, *args)
  
      def is_seh(self, *args):
          """
          is_seh(self) -> bool
          """
          return _ida_tryblks.tryblk_t_is_seh(self, *args)
  
      def is_cpp(self, *args):
          """
          is_cpp(self) -> bool
          """
          return _ida_tryblks.tryblk_t_is_cpp(self, *args)
  
      def clear(self, *args):
          """
          clear(self)
          """
          return _ida_tryblks.tryblk_t_clear(self, *args)
  
      def set_seh(self, *args):
          """
          set_seh(self) -> seh_t
          """
          return _ida_tryblks.tryblk_t_set_seh(self, *args)
  
      def set_cpp(self, *args):
          """
          set_cpp(self) -> catchvec_t
          """
          return _ida_tryblks.tryblk_t_set_cpp(self, *args)
  
  tryblk_t_swigregister = _ida_tryblks.tryblk_t_swigregister
  tryblk_t_swigregister(tryblk_t)
  
  
  def get_tryblks(*args):
    """
    get_tryblks(tbv, range) -> size_t
  
  
    Retrieve try block information from the specified address range. Try
    blocks are sorted by starting address and their nest levels
    calculated.
    
    @param tbv: output buffer; may be NULL (C++: tryblks_t  *)
    @param range: address range to change (C++: const  range_t  &)
    @return: number of found try blocks
    """
    return _ida_tryblks.get_tryblks(*args)
  
  def del_tryblks(*args):
    """
    del_tryblks(range)
  
  
    Delete try block information in the specified range.
    
    @param range: the range to be cleared (C++: const  range_t  &)
    """
    return _ida_tryblks.del_tryblks(*args)
  
  def add_tryblk(*args):
    """
    add_tryblk(tb) -> int
  
  
    Add one try block information.
    
    @param tb: try block to add. (C++: const  tryblk_t  &)
    @return: error code; 0 means good
    """
    return _ida_tryblks.add_tryblk(*args)
  TBERR_OK = _ida_tryblks.TBERR_OK
  """
  ok
  """
  TBERR_START = _ida_tryblks.TBERR_START
  """
  bad start address
  """
  TBERR_END = _ida_tryblks.TBERR_END
  """
  bad end address
  """
  TBERR_ORDER = _ida_tryblks.TBERR_ORDER
  """
  bad address order
  """
  TBERR_EMPTY = _ida_tryblks.TBERR_EMPTY
  """
  empty try block
  """
  TBERR_KIND = _ida_tryblks.TBERR_KIND
  """
  illegal try block kind
  """
  TBERR_NO_CATCHES = _ida_tryblks.TBERR_NO_CATCHES
  """
  no catch blocks at all
  """
  TBERR_INTERSECT = _ida_tryblks.TBERR_INTERSECT
  """
  range would intersect inner tryblk
  """
  
  def find_syseh(*args):
    """
    find_syseh(ea) -> ea_t
  
  
    Find the start address of the system eh region including the argument.
    
    @param ea: search address (C++: ea_t)
    @return: start address of surrounding tryblk, otherwise BADADDR
    """
    return _ida_tryblks.find_syseh(*args)
  
  