code: func (cs *ChangesSync) GetOutputChange(addr addrs.AbsOutputValue) *OutputChangeSrc {
  	if cs == nil {
  		panic("GetOutputChange on nil ChangesSync")
  	}
  	cs.lock.Lock()
  	defer cs.lock.Unlock()
  
  	return cs.changes.OutputValue(addr)
  }
docs: // GetOutputChange searches the set of output value changes for one matching
  // the given address, returning it if it exists.
  //
  // If no such change exists, nil is returned.
  //
  // The returned object is a deep copy of the change recorded in the plan, so
  // callers may mutate it although it's generally better (less confusing) to
  // treat planned changes as immutable after they've been initially constructed.