code: def explore(self, stash='active', n=None, find=None, avoid=None, find_stash='found', avoid_stash='avoid', cfg=None,
                  num_find=1, **kwargs):
          
          num_find += len(self._stashes[find_stash]) if find_stash in self._stashes else 0
          tech = self.use_technique(Explorer(find, avoid, find_stash, avoid_stash, cfg, num_find))
  
          try:
              self.run(stash=stash, n=n, **kwargs)
          finally:
              self.remove_technique(tech)
  
          return self
docs: Tick stash "stash" forward (up to "n" times or until "num_find" states are found), looking for condition "find",
          avoiding condition "avoid". Stores found states into "find_stash' and avoided states into "avoid_stash".
  
          The "find" and "avoid" parameters may be any of:
  
          - An address to find
          - A set or list of addresses to find
          - A function that takes a state and returns whether or not it matches.
  
          If an angr CFG is passed in as the "cfg" parameter and "find" is either a number or a list or a set, then
          any states which cannot possibly reach a success state without going through a failure state will be
          preemptively avoided.