code: func deserialize(token string) (*tokenserver.MachineTokenEnvelope, *tokenserver.MachineTokenBody, error) {
  	tokenBinBlob, err := base64.RawStdEncoding.DecodeString(token)
  	if err != nil {
  		return nil, nil, err
  	}
  	envelope := &tokenserver.MachineTokenEnvelope{}
  	if err := proto.Unmarshal(tokenBinBlob, envelope); err != nil {
  		return nil, nil, err
  	}
  	body := &tokenserver.MachineTokenBody{}
  	if err := proto.Unmarshal(envelope.TokenBody, body); err != nil {
  		return envelope, nil, err
  	}
  	return envelope, body, nil
  }
docs: // deserialize parses MachineTokenEnvelope and MachineTokenBody.