code: def get_fd(self, fd):
          
          try:
              fd = self.state.solver.eval_one(fd)
          except SimSolverError:
              ideal = self._pick_fd()
              self.state.solver.add(fd == ideal)
              if not self.state.solver.satisfiable():
                  raise SimPosixError("Tried to do operation on symbolic but partially constrained file descriptor")
              fd = ideal
              new_filename = b'/tmp/angr_implicit_%d' % self.autotmp_counter
              l.warning("Tried to look up a symbolic fd - constrained to %d and opened %s", ideal, new_filename)
              self.autotmp_counter += 1
              if self.open(new_filename, Flags.O_RDWR, preferred_fd=fd) != fd:
                  raise SimPosixError("Something went wrong trying to open implicit temp")
  
          return self.fd.get(fd)
docs: Looks up the SimFileDescriptor associated with the given number (an AST).
          If the number is concrete and does not map to anything, return None.
          If the number is symbolic, constrain it to an open fd and create a new file for it.