def load(self, state_id=None):
state = None<EOL>if state_id is None:<EOL><INDENT>state_count = self.count_running_states()<EOL>if state_count == <NUM_LIT:1>:<EOL><INDENT>state_id = self._running_state_ids[<NUM_LIT:0>]<EOL><DEDENT>elif state_count == <NUM_LIT:0>:<EOL><INDENT>raise NoAliveStates<EOL><DEDENT>else:<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT><DEDENT>if state_id == -<NUM_LIT:1>:<EOL><INDENT>state = self.initial_state<EOL><DEDENT>else:<EOL><INDENT>state = self._executor._workspace.load_state(state_id, delete=False)<EOL>self._executor.forward_events_from(state, True)<EOL><DEDENT>return state<EOL>
Load one of the running or final states.

            :param state_id: If None it assumes there is a single running state
            :type state_id: int or None