code: func (s *Server) fetchRemoteLegacyACLs(lastRemoteIndex uint64) (*structs.IndexedACLs, error) {
  	defer metrics.MeasureSince([]string{"leader", "fetchRemoteACLs"}, time.Now())
  
  	args := structs.DCSpecificRequest{
  		Datacenter: s.config.ACLDatacenter,
  		QueryOptions: structs.QueryOptions{
  			Token:         s.tokens.ReplicationToken(),
  			MinQueryIndex: lastRemoteIndex,
  			AllowStale:    true,
  		},
  	}
  	var remote structs.IndexedACLs
  	if err := s.RPC("ACL.List", &args, &remote); err != nil {
  		return nil, err
  	}
  	return &remote, nil
  }
docs: // FetchRemoteACLs is used to get the remote set of ACLs from the ACL
  // datacenter. The lastIndex parameter is a hint about which remote index we
  // have replicated to, so this is expected to block until something changes.