def __init__(self, name=None, region=None, region_base_addr=None, bits=None, val=None):
self._name = '<STR_LIT>' % next(vs_id_ctr) if name is None else name<EOL>if bits is None:<EOL><INDENT>raise ClaripyVSAError('<STR_LIT>')<EOL><DEDENT>self._bits = bits<EOL>self._si = StridedInterval.empty(bits)<EOL>self._regions = {}<EOL>self._region_base_addrs = {}<EOL>self._reversed = False<EOL>if region is not None and region_base_addr is not None and val is not None:<EOL><INDENT>if isinstance(region_base_addr, numbers.Number):<EOL><INDENT>region_base_addr = StridedInterval(bits=self._bits, stride=<NUM_LIT:1>,<EOL>lower_bound=region_base_addr,<EOL>upper_bound=region_base_addr)<EOL><DEDENT>if isinstance(val, numbers.Number):<EOL><INDENT>val = StridedInterval(bits=bits, stride=<NUM_LIT:0>, lower_bound=val, upper_bound=val)<EOL><DEDENT>if isinstance(val, StridedInterval):<EOL><INDENT>self._set_si(region, region_base_addr, val)<EOL><DEDENT>else:<EOL><INDENT>raise ClaripyVSAError("<STR_LIT>" % type(val))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if region is not None or val is not None:<EOL><INDENT>raise ClaripyVSAError("<STR_LIT>")<EOL><DEDENT><DEDENT>
Constructor.

:param str name: Name of this ValueSet object. Only for debugging purposes.
:param str region: Region ID.
:param int region_base_addr: Base address of the region.
:param int bits: Size of the ValueSet.
:param val: an initial offset