code: func (s *State) DeepCopy() *State {
  	if s == nil {
  		return nil
  	}
  
  	copy, err := copystructure.Config{Lock: true}.Copy(s)
  	if err != nil {
  		panic(err)
  	}
  
  	return copy.(*State)
  }
docs: // DeepCopy performs a deep copy of the state structure and returns
  // a new structure.