CONTRACTIONS = {
    # expanded => contracted form (lowercased)
    # list by João Silva:
    "a_ a": "à",
    "a_ as": "às",
    "a_ o": "ao",
    "a_ os": "aos",
    "a_ aquela": "àquela",
    "a_ aquelas": "àquelas",
    "a_ aquele": "àquele",
    "a_ aqueles": "àqueles",
    "a_ onde": "aonde",
    "com_ mim": "comigo",
    "com_ ti": "contigo",
    "com_ nós": "connosco",
    "com_ vós": "convosco",
    "com_ si": "consigo",
    "de_ a": "da",
    "de_ as": "das",
    "de_ o": "do",
    "de_ os": "dos",
    "de_ uma": "duma",
    "de_ umas": "dumas",
    "de_ um": "dum",
    "de_ uns": "duns",
    "de_ ela": "dela",
    "de_ elas": "delas",
    "de_ ele": "dele",
    "de_ eles": "deles",
    "de_ entre": "dentre",
    "de_ esta": "desta",
    "de_ estas": "destas",
    "de_ este": "deste",
    "de_ estes": "destes",
    "de_ essa": "dessa",
    "de_ essas": "dessas",
    "de_ esse": "desse",
    "de_ esses": "desses",
    "de_ isto": "disto",
    "de_ isso": "disso",
    "de_ aquela": "daquela",
    "de_ aquelas": "daquelas",
    "de_ aquele": "daquele",
    "de_ aqueles": "daqueles",
    "de_ aquilo": "daquilo",
    "de_ aqueloutros": "daqueloutros",
    "de_ aí": "daí",
    "de_ ali": "dali",
    "de_ aqui": "daqui",
    "de_ onde": "donde",
    "de_ antes": "dantes",
    "em_ a": "na",
    "em_ as": "nas",
    "em_ o": "no",
    "em_ os": "nos",
    "em_ uma": "numa",
    "em_ umas": "numas",
    "em_ um": "num",
    "em_ uns": "nuns",
    "em_ ela": "nela",
    "em_ elas": "nelas",
    "em_ ele": "nele",
    "em_ eles": "neles",
    "em_ esta": "nesta",
    "em_ estas": "nestas",
    "em_ este": "neste",
    "em_ estes": "nestes",
    "em_ essa": "nessa",
    "em_ essas": "nessas",
    "em_ esse": "nesse",
    "em_ esses": "nesses",
    "em_ outra": "noutra",
    "em_ outras": "noutras",
    "em_ outro": "noutro",
    "em_ outros": "noutros",
    "em_ isto": "nisto",
    "em_ isso": "nisso",
    "em_ aquela": "naquela",
    "em_ aquelas": "naquelas",
    "em_ aquele": "naquele",
    "em_ aqueles": "naqueles",
    "em_ aquilo": "naquilo",
    "esta_ outra": "estoutra",
    "por_ a": "pela",
    "por_ as": "pelas",
    "por_ o": "pelo",
    "por_ os": "pelos",
    # handle some cases using old orthography (from the early 20th century):
    "de_ èles": "dèles",  # ?
    "de_ êla": "dêla",
    "de_ êlas": "dêlas",
    # "de_ êle": "dê",  # repeated key further ahead
    # "de_ êles": "dê",  # repeated key further ahead
    "de_ êsta": "dêsta",
    "de_ êstas": "dêstas",
    "de_ êste": "dêste",
    "de_ êstes": "dêstes",
    "de_ êssa": "dêssa",
    "de_ êssas": "dêssas",
    "de_ êsse": "dêsse",
    "de_ êsses": "dêsses",
    "de_ êla": "dêla",
    "de_ êlas": "dêlas",
    "de_ êle": "dêle",
    "de_ êles": "dêles",
    "de_ aquêles": "daquêles",
    "em_ êla": "nêla",
    "em_ êlas": "nêlas",
    "em_ êle": "nêle",
    "em_ êles": "nêles",
    # handle contraction of clitic pronouns:
    "me_ a": "ma",
    "me_ as": "mas",
    "me_ o": "mo",
    "me_ os": "mos",
    "me_ -a": "ma",
    "me_ -as": "mas",
    "me_ -o": "mo",
    "me_ -os": "mos",
    "te_ a": "ta",
    "te_ as": "tas",
    "te_ o": "to",
    "te_ os": "tos",
    "te_ -a": "ta",
    "te_ -as": "tas",
    "te_ -o": "to",
    "te_ -os": "tos",
    "lhe_ a": "lha",
    "lhe_ as": "lhas",
    "lhe_ o": "lho",
    "lhe_ os": "lhos",
    "lhe_ -a": "lha",
    "lhe_ -as": "lhas",
    "lhe_ -o": "lho",
    "lhe_ -os": "lhos",
    # added by Luis Gomes:
    "-me_ a": "-ma",
    "-me_ as": "-mas",
    "-me_ o": "-mo",
    "-me_ os": "-mos",
    "-me_ -a": "-ma",
    "-me_ -as": "-mas",
    "-me_ -o": "-mo",
    "-me_ -os": "-mos",
    "-te_ a": "-ta",
    "-te_ as": "-tas",
    "-te_ o": "-to",
    "-te_ os": "-tos",
    "-te_ -a": "-ta",
    "-te_ -as": "-tas",
    "-te_ -o": "-to",
    "-te_ -os": "-tos",
    "-lhe_ a": "-lha",
    "-lhe_ as": "-lhas",
    "-lhe_ o": "-lho",
    "-lhe_ os": "-lhos",
    "-lhe_ -a": "-lha",
    "-lhe_ -as": "-lhas",
    "-lhe_ -o": "-lho",
    "-lhe_ -os": "-lhos",
    "a_ aquilo": "àquilo",
    "de_ outra": "doutra",
    "de_ outras": "doutras",
    "de_ outro": "doutro",
    "de_ outros": "doutros",
    "em_ alguns": "nalguns",
    "em_ algum": "nalgum",
    "em_ algumas": "nalgumas",
    "em_ alguma": "nalguma",
}
