code: func (p *RemoteProvider) GetConfigClient(c context.Context, a backend.Authority) config.Interface {
  	p.cacheLock.RLock()
  	impl, ok := p.cache[a]
  	p.cacheLock.RUnlock()
  	if ok {
  		return impl
  	}
  
  	p.cacheLock.Lock()
  	defer p.cacheLock.Unlock()
  
  	if impl, ok := p.cache[a]; ok {
  		return impl
  	}
  
  	// Create our remote implementation.
  	impl = remote.New(p.Host, p.Insecure, func(c context.Context) (*http.Client, error) {
  		var opts []auth.RPCOption
  		if a == backend.AsUser && p.testUserDelegationToken != "" {
  			opts = append(opts, auth.WithDelegationToken(p.testUserDelegationToken))
  		}
  		t, err := auth.GetRPCTransport(c, rpcAuthorityKind(a), opts...)
  		if err != nil {
  			return nil, err
  		}
  		return &http.Client{Transport: t}, nil
  	})
  	if p.cache == nil {
  		p.cache = make(map[backend.Authority]config.Interface, 3)
  	}
  	p.cache[a] = impl
  
  	return impl
  }
docs: // GetConfigClient implements Provider.