'Step a path forward. Optionally takes any argument applicable to project.factory.successors.
:param jumpkind:          the jumpkind of the previous exit.
:param addr address:      to execute at instead of the state\'s ip.
:param whitelist:         a list of stmt indexes to which to confine execution.
:param last_stmt:         a statement index at which to stop execution.
:param thumb:             whether the block should be lifted in ARM\'s THUMB mode.
:param backup_state:      a state to read bytes from instead of using project memory.
:param opt_level:         the VEX optimization level to use.
:param insn_bytes:        a string of bytes to use for the block instead of #the project.
:param size:              the maximum size of the block, in bytes.
:param num_inst:          the maximum number of instructions.
:param traceflags:        traceflags to be passed to VEX. Default: 0
:param strong_reference   whether or not to keep a strong reference to the previous state. Default: False
:returns:   An array of paths for the possible successors.'

def step(self, throw=None, **run_args):

    if ('max_size' in run_args):
        l.warning('"max_size"    has    been    deprecated    in    Path.step().    Please    use    "size"    instead.')
        size = run_args.pop('max_size')
        run_args['size'] = size
    if ((self._run_args != run_args) or (not self._run)):
        self._run_args = run_args
        self._make_successors(throw=throw)
    self.state._inspect('path_step', BP_BEFORE)
    if self._run_error:
        return [self.copy(error=self._run_error, traceback=self._run_traceback)]
    strong_reference = run_args.get('strong_reference', False)
    out = [Path(self._project, s, path=self, strong_reference=strong_reference) for s in self._run.flat_successors]
    if (('insn_bytes' in run_args) and ('addr' not in run_args) and (len(out) == 1) and isinstance(self._run, simuvex.SimIRSB) and ((self.addr + self._run.irsb.size) == out[0].state.se.any_int(out[0].state.regs.ip))):
        out[0].state.regs.ip = self.addr
    for p in out:
        p.state._inspect('path_step', BP_AFTER)
    return out
