def clean_text(identifica, ementa, fulltext):
    """
    Given a DOU article titles `identifica` and an abstract `ementa`, 
    remove the first title in `identifica`, `ementa` and the hard-coded
    footnote from the full text of the DOU article `fulltext`.
    """
    # ATTENTION: this code should reproduce the cleaning performed in BigQuery,
    # since its resulting text was used to train the model.
    
    if identifica == None:
        return fulltext

    if fulltext == None:
        return None
    
    # Remove primeiro título que aparece no artigo (e tudo que vem antes):
    first_identifica = identifica.split(' | ')[0]
    text_pos   = fulltext.find(first_identifica) + len(first_identifica)
    clean_text = fulltext[text_pos:]
    
    # Remove rodapé:
    clean_text = clean_text.replace('Este conteúdo não substitui o publicado na versão certificada.', '')
    
    if ementa == None:
        return clean_text
    
    # Remove ementa:
    clean_text = clean_text.replace(ementa, '')
    
    return clean_text