code: func (cfg *Config) PrepareTopic(c context.Context, eid *dm.Execution_ID) (topic pubsub.Topic, token string, err error) {
  	topic = pubsub.NewTopic(info.TrimmedAppID(c), notifyTopicSuffix)
  	if err := topic.Validate(); err != nil {
  		panic(fmt.Errorf("failed to validate Topic %q: %s", topic, err))
  	}
  	token, err = encodeAuthToken(c, eid, cfg.Name)
  	return
  }
docs: // PrepareTopic returns a pubsub topic that notifications should be sent to, and
  // is meant to be called from the D.Run method.
  //
  // It returns the full name of the topic and a token that will be used to route
  // PubSub messages back to the Distributor. The publisher to the topic must be
  // instructed to put the token into the 'auth_token' attribute of PubSub
  // messages. DM will know how to route such messages to D.HandleNotification.