code: async def _get_cdn_client(self, cdn_redirect):
          
          # TODO Implement
          raise NotImplementedError
          session = self._exported_sessions.get(cdn_redirect.dc_id)
          if not session:
              dc = await self._get_dc(cdn_redirect.dc_id, cdn=True)
              session = self.session.clone()
              await session.set_dc(dc.id, dc.ip_address, dc.port)
              self._exported_sessions[cdn_redirect.dc_id] = session
  
          self._log[__name__].info('Creating new CDN client')
          client = TelegramBareClient(
              session, self.api_id, self.api_hash,
              proxy=self._sender.connection.conn.proxy,
              timeout=self._sender.connection.get_timeout()
          )
  
          # This will make use of the new RSA keys for this specific CDN.
          #
          # We won't be calling GetConfigRequest because it's only called
          # when needed by ._get_dc, and also it's static so it's likely
          # set already. Avoid invoking non-CDN methods by not syncing updates.
          client.connect(_sync_updates=False)
          return client
docs: Similar to ._borrow_exported_client, but for CDNs