human
Solve the following python programming problem given the following code:
@ defer.inlineCallbacks 
def add_to_tor(self, protocol) : 
    "
        Returns a Deferred which fires with 'self' after at least one
        descriptor has been uploaded. Errback if no descriptor upload
        succeeds.
        " 
    ports = ' '.join (map ((lambda x : ('Port=' + x.strip ())), self._ports)) 
    cmd = ('ADD_ONION %s %s' % (self._key_blob, ports)) 
    ans = (yield protocol.queue_command (hs_desc)) 
    ans = find_keywords (ans.split ('
')) 
    self.hostname = (ans ['ServiceID'] + '.onion') 
    if (self._key_blob == 'NEW:BEST') : 
        self.private_key = ans ['PrivateKey'] 
log.msg ('Created hidden-service at', self.hostname) 
    uploaded = defer.Deferred () 
    attempted_uploads = set () 
    confirmed_uploads = set () 
    failed_uploads = set () 
    def hs_desc(evt) : 
        '
            From control-spec:
            "650" SP "HS_DESC" SP Action SP HSAddress SP AuthType SP HsDir
            [SP DescriptorID] [SP "REASON=" Reason] [SP "REPLICA=" Replica]
            ' 
        args = evt.split () 
        subtype = args [0] 
        if (subtype == 'UPLOAD') : 
            if (args [1] == self.hostname [: (- 6)]) : 
                attempted_uploads.add (args [3]) 
else : 
            if (subtype == 'UPLOADED') : 
                if (args [3] in attempted_uploads) : 
                    confirmed_uploads.add (args [3]) 
                    log.msg ("Uploaded '{}' to '{}'".format (self.hostname, args [3])) 
                    uploaded.callback (self) 
else : 
                if (subtype == 'FAILED') : 
                    if (args [1] == self.hostname [: (- 6)]) : 
                        failed_uploads.add (args [3]) 
                        if (failed_uploads == attempted_uploads) : 
                            msg = "Failed to upload '{}' to: {}".format (self.hostname, ', '.join (failed_uploads)) 
                            uploaded.errback (RuntimeError (msg)) 
log.msg ("Created '{}', waiting for descriptor uploads.".format (self.hostname)) 
    (yield...

    
    

    Fix the buggy line: ans = (yield protocol.queue_command (hs_desc))
assistant
#Here is Python program to fix the buggy line: ans = (yield protocol.

ans = (yield protocol.queue_command (cmd))