LAYOUT_EN = '''`~!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL:"|ZXCVBNM<>?'''
LAYOUT_RU = '''ёЁ!"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ/ЯЧСМИТЬБЮ,'''
FREQUENT_URLS = [
    '''<a href="/conjugaison/etre">être</a>''',
    '''<a href="/conjugaison/avoir">avoir</a>''',
    '''<a href="/conjugaison/faire">faire</a>''',
    '''<a href="/conjugaison/dire">dire</a>''',
    '''<a href="/conjugaison/pouvoir">pouvoir</a>''',
    '''<a href="/conjugaison/aller">aller</a>''',
    '''<a href="/conjugaison/voir">voir</a>''',
    '''<a href="/conjugaison/vouloir">vouloir</a>''',
    '''<a href="/conjugaison/venir">venir</a>''',
    '''<a href="/conjugaison/devoir">devoir</a>''',
    '''<a href="/conjugaison/prendre">prendre</a>''',
    '''<a href="/conjugaison/trouver">trouver</a>''',
    '''<a href="/conjugaison/donner">donner</a>''',
    '''<a href="/conjugaison/falloir">falloir</a>''',
    '''<a href="/conjugaison/parler">parler</a>''',
    '''<a href="/conjugaison/mettre">mettre</a>''',
    '''<a href="/conjugaison/savoir">savoir</a>''',
    '''<a href="/conjugaison/passer">passer</a>''',
    '''<a href="/conjugaison/regarder">regarder</a>''',
    '''<a href="/conjugaison/aimer">aimer</a>''',
    '''<a href="/conjugaison/croire">croire</a>''',
    '''<a href="/conjugaison/demander">demander</a>''',
    '''<a href="/conjugaison/rester">rester</a>''',
    '''<a href="/conjugaison/repondre">répondre</a>''',
    '''<a href="/conjugaison/entendre">entendre</a>''',
    '''<a href="/conjugaison/penser">penser</a>''',
    '''<a href="/conjugaison/arriver">arriver</a>''',
    '''<a href="/conjugaison/connaitre">connaître</a>''',
    '''<a href="/conjugaison/devenir">devenir</a>''',
    '''<a href="/conjugaison/sentir">sentir</a>''',
    '''<a href="/conjugaison/sembler">sembler</a>''',
    '''<a href="/conjugaison/tenir">tenir</a>''',
    '''<a href="/conjugaison/comprendre">comprendre</a>''',
    '''<a href="/conjugaison/rendre">rendre</a>''',
    '''<a href="/conjugaison/attendre">attendre</a>''',
    '''<a href="/conjugaison/sortir">sortir</a>''',
    '''<a href="/conjugaison/vivre">vivre</a>''',
    '''<a href="/conjugaison/reprendre">reprendre</a>''',
    '''<a href="/conjugaison/entrer">entrer</a>''',
    '''<a href="/conjugaison/porter">porter</a>''',
    '''<a href="/conjugaison/chercher">chercher</a>''',
    '''<a href="/conjugaison/revenir">revenir</a>''',
    '''<a href="/conjugaison/appeler">appeler</a>''',
]
VOWELS_LIST = ['a', 'ê', 'é', 'h', 'e', 'â', 'i', 'o', 'ô', 'u', 'w', 'y',
               'œ', ]
VERB_TEMPLATE_NAMES = [
    ('VERB_INFINITIVE', 'VERB_INFINITIVE'),
    ('VERB_PRESENT_1', 'VERB_PRESENT_1'),
    ('VERB_PRESENT_2', 'VERB_PRESENT_2'),
    ('VERB_PRESENT_3', 'VERB_PRESENT_3'),
    ('VERB_PRESENT_4', 'VERB_PRESENT_4'),
    ('VERB_PRESENT_5', 'VERB_PRESENT_5'),
    ('VERB_PRESENT_6', 'VERB_PRESENT_6'),
    ('VERB_IMPERFECT_1', 'VERB_IMPERFECT_1'),
    ('VERB_IMPERFECT_2', 'VERB_IMPERFECT_2'),
    ('VERB_IMPERFECT_3', 'VERB_IMPERFECT_3'),
    ('VERB_IMPERFECT_4', 'VERB_IMPERFECT_4'),
    ('VERB_IMPERFECT_5', 'VERB_IMPERFECT_5'),
    ('VERB_IMPERFECT_6', 'VERB_IMPERFECT_6'),
    ('VERB_FUTURE_1', 'VERB_FUTURE_1'),
    ('VERB_FUTURE_2', 'VERB_FUTURE_2'),
    ('VERB_FUTURE_3', 'VERB_FUTURE_3'),
    ('VERB_FUTURE_4', 'VERB_FUTURE_4'),
    ('VERB_FUTURE_5', 'VERB_FUTURE_5'),
    ('VERB_FUTURE_6', 'VERB_FUTURE_6'),
    ('VERB_SIMPLE_PAST_1', 'VERB_SIMPLE_PAST_1'),
    ('VERB_SIMPLE_PAST_2', 'VERB_SIMPLE_PAST_2'),
    ('VERB_SIMPLE_PAST_3', 'VERB_SIMPLE_PAST_3'),
    ('VERB_SIMPLE_PAST_4', 'VERB_SIMPLE_PAST_4'),
    ('VERB_SIMPLE_PAST_5', 'VERB_SIMPLE_PAST_5'),
    ('VERB_SIMPLE_PAST_6', 'VERB_SIMPLE_PAST_6'),
    ('VERB_SUBJUNCTIVE_PRESENT_1', 'VERB_SUBJUNCTIVE_PRESENT_1'),
    ('VERB_SUBJUNCTIVE_PRESENT_2', 'VERB_SUBJUNCTIVE_PRESENT_2'),
    ('VERB_SUBJUNCTIVE_PRESENT_3', 'VERB_SUBJUNCTIVE_PRESENT_3'),
    ('VERB_SUBJUNCTIVE_PRESENT_4', 'VERB_SUBJUNCTIVE_PRESENT_4'),
    ('VERB_SUBJUNCTIVE_PRESENT_5', 'VERB_SUBJUNCTIVE_PRESENT_5'),
    ('VERB_SUBJUNCTIVE_PRESENT_6', 'VERB_SUBJUNCTIVE_PRESENT_6'),
    ('VERB_SUBJUNCTIVE_IMPERFECT_1', 'VERB_SUBJUNCTIVE_IMPERFECT_1'),
    ('VERB_SUBJUNCTIVE_IMPERFECT_2', 'VERB_SUBJUNCTIVE_IMPERFECT_2'),
    ('VERB_SUBJUNCTIVE_IMPERFECT_3', 'VERB_SUBJUNCTIVE_IMPERFECT_3'),
    ('VERB_SUBJUNCTIVE_IMPERFECT_4', 'VERB_SUBJUNCTIVE_IMPERFECT_4'),
    ('VERB_SUBJUNCTIVE_IMPERFECT_5', 'VERB_SUBJUNCTIVE_IMPERFECT_5'),
    ('VERB_SUBJUNCTIVE_IMPERFECT_6', 'VERB_SUBJUNCTIVE_IMPERFECT_6'),
    ('VERB_CONDITIONAL_PRESENT_1', 'VERB_CONDITIONAL_PRESENT_1'),
    ('VERB_CONDITIONAL_PRESENT_2', 'VERB_CONDITIONAL_PRESENT_2'),
    ('VERB_CONDITIONAL_PRESENT_3', 'VERB_CONDITIONAL_PRESENT_3'),
    ('VERB_CONDITIONAL_PRESENT_4', 'VERB_CONDITIONAL_PRESENT_4'),
    ('VERB_CONDITIONAL_PRESENT_5', 'VERB_CONDITIONAL_PRESENT_5'),
    ('VERB_CONDITIONAL_PRESENT_6', 'VERB_CONDITIONAL_PRESENT_6'),
    ('VERB_IMPERATIVE_PRESENT_II_S', 'VERB_IMPERATIVE_PRESENT_II_S'),
    ('VERB_IMPERATIVE_PRESENT_I_P', 'VERB_IMPERATIVE_PRESENT_I_P'),
    ('VERB_IMPERATIVE_PRESENT_II_P', 'VERB_IMPERATIVE_PRESENT_II_P'),
    ('VERB_PRESENT_PARTICIPLE', 'VERB_PRESENT_PARTICIPLE'),
    ('VERB_PAST_PARTICIPLE_S_M', 'VERB_PAST_PARTICIPLE_S_M'),
    ('VERB_PAST_PARTICIPLE_S_F', 'VERB_PAST_PARTICIPLE_S_F'),
    ('VERB_PAST_PARTICIPLE_P_M', 'VERB_PAST_PARTICIPLE_P_M'),
    ('VERB_PAST_PARTICIPLE_P_F', 'VERB_PAST_PARTICIPLE_P_F'),
]
TEMPLATE_VERBS = {
    'VERB_INFINITIVE': ["infinitive", "infinitive-present", "0"],
    'VERB_PRESENT_1': ["indicative", "present", "0"],
    'VERB_PRESENT_2': ["indicative", "present", "1"],
    'VERB_PRESENT_3': ["indicative", "present", "2"],
    'VERB_PRESENT_4': ["indicative", "present", "3"],
    'VERB_PRESENT_5': ["indicative", "present", "4"],
    'VERB_PRESENT_6': ["indicative", "present", "5"],
    'VERB_IMPERFECT_1': ["indicative", "imperfect", "0"],
    'VERB_IMPERFECT_2': ["indicative", "imperfect", "1"],
    'VERB_IMPERFECT_3': ["indicative", "imperfect", "2"],
    'VERB_IMPERFECT_4': ["indicative", "imperfect", "3"],
    'VERB_IMPERFECT_5': ["indicative", "imperfect", "4"],
    'VERB_IMPERFECT_6': ["indicative", "imperfect", "5"],
    'VERB_FUTURE_1': ["indicative", "future", "0"],
    'VERB_FUTURE_2': ["indicative", "future", "1"],
    'VERB_FUTURE_3': ["indicative", "future", "2"],
    'VERB_FUTURE_4': ["indicative", "future", "3"],
    'VERB_FUTURE_5': ["indicative", "future", "4"],
    'VERB_FUTURE_6': ["indicative", "future", "5"],
    'VERB_SIMPLE_PAST_1': ["indicative", "simple-past", "0"],
    'VERB_SIMPLE_PAST_2': ["indicative", "simple-past", "1"],
    'VERB_SIMPLE_PAST_3': ["indicative", "simple-past", "2"],
    'VERB_SIMPLE_PAST_4': ["indicative", "simple-past", "3"],
    'VERB_SIMPLE_PAST_5': ["indicative", "simple-past", "4"],
    'VERB_SIMPLE_PAST_6': ["indicative", "simple-past", "5"],
    'VERB_SUBJUNCTIVE_PRESENT_1': ["subjunctive", "present", "0"],
    'VERB_SUBJUNCTIVE_PRESENT_2': ["subjunctive", "present", "1"],
    'VERB_SUBJUNCTIVE_PRESENT_3': ["subjunctive", "present", "2"],
    'VERB_SUBJUNCTIVE_PRESENT_4': ["subjunctive", "present", "3"],
    'VERB_SUBJUNCTIVE_PRESENT_5': ["subjunctive", "present", "4"],
    'VERB_SUBJUNCTIVE_PRESENT_6': ["subjunctive", "present", "5"],
    'VERB_SUBJUNCTIVE_IMPERFECT_1': ["subjunctive", "imperfect", "0"],
    'VERB_SUBJUNCTIVE_IMPERFECT_2': ["subjunctive", "imperfect", "1"],
    'VERB_SUBJUNCTIVE_IMPERFECT_3': ["subjunctive", "imperfect", "2"],
    'VERB_SUBJUNCTIVE_IMPERFECT_4': ["subjunctive", "imperfect", "3"],
    'VERB_SUBJUNCTIVE_IMPERFECT_5': ["subjunctive", "imperfect", "4"],
    'VERB_SUBJUNCTIVE_IMPERFECT_6': ["subjunctive", "imperfect", "5"],
    'VERB_CONDITIONAL_PRESENT_1': ["conditional", "present", "0"],
    'VERB_CONDITIONAL_PRESENT_2': ["conditional", "present", "1"],
    'VERB_CONDITIONAL_PRESENT_3': ["conditional", "present", "2"],
    'VERB_CONDITIONAL_PRESENT_4': ["conditional", "present", "3"],
    'VERB_CONDITIONAL_PRESENT_5': ["conditional", "present", "4"],
    'VERB_CONDITIONAL_PRESENT_6': ["conditional", "present", "5"],
    'VERB_IMPERATIVE_PRESENT_II_S': ["imperative", "imperative-present", "0"],
    'VERB_IMPERATIVE_PRESENT_I_P': ["imperative", "imperative-present", "1"],
    'VERB_IMPERATIVE_PRESENT_II_P': ["imperative", "imperative-present", "2"],
    'VERB_PRESENT_PARTICIPLE': ["participle", "present-participle", "0"],
    'VERB_PAST_PARTICIPLE_S_M': ["participle", "past-participle", "0"],
    'VERB_PAST_PARTICIPLE_S_F': ["participle", "past-participle", "2"],
    'VERB_PAST_PARTICIPLE_P_M': ["participle", "past-participle", "1"],
    'VERB_PAST_PARTICIPLE_P_F': ["participle", "past-participle", "3"]
}

POLLY_EMPTY_MOOD_NAMES = [
    ('indicative', 'composé-past'),
    ('indicative', 'pluperfect'),
    ('indicative', 'simple-past'),
    ('indicative', 'antérieur-past'),
    ('indicative', 'future'),
    ('indicative', 'antérieur-future'),
]

MOODS = [
    ('infinitive', "Infinitif"),
    ('indicative', "Indicatif"),
    ('subjunctive', "Subjonctif"),
    ('conditional', "Conditionnel"),
    ('imperative', "Impératif"),
    ('participle', "Participe"),
    ('gerund', "Gérondif"),
]

TENSES = [
    ('infinitive-present', 'présent'),
    ('present', "présent"),
    ('past', "passé"),
    ('composé-past', "passé composé"),
    ('imperfect', "imparfait"),
    ('pluperfect', "plus que parfait"),
    ('future', "futur simple"),
    ('simple-past', "passé simple"),
    ('antérieur-future', "futur antérieur"),
    ('antérieur-past', "passé antérieur"),
    ('past-first', "passé"),
    ('past-second', "passé deuxième forme"),
    ('imperative-present', 'présent'),
    ('present-participle', 'présent'),
    ('past-participle', 'passé'),
]

MOODS_TENSES = [
    ('infinitive_present', 'Infinitif Present'),
    ('infinitive_past', 'Infinitif Passé'),
    ('indicative_present', 'Indicatif Present'),
    ('indicative_composé_past', 'Indicatif Passe Compose'),
    ('indicative_imperfect', 'Indicatif Imparfait'),
    ('indicative_pluperfect', 'Indicatif Plus Que Parfait'),
    ('indicative_simple_past', 'Indicatif Passe Simple'),
    ('indicative_antérieur_past', 'Indicatif Passe Antérieur'),
    ('indicative_future', 'Indicatif Future Simple'),
    ('indicative_antérieur_future', 'Indicatif Future Antérieur'),
    ('subjunctive_present', 'Subjonctif Present'),
    ('subjunctive_past', 'Subjonctif Passé'),
    ('subjunctive_imperfect', 'Subjonctif Imparfait'),
    ('subjunctive_pluperfect', 'Subjonctif Plus Que Parfait'),
    ('conditional_present', 'Conditionnel Present'),
    ('conditional_past', 'Conditionnel Passé'),
    ('imperative_present', 'Impératif Present'),
    ('imperative_past', 'Impératif Passé'),
    ('participle_present', 'Participe Present'),
    ('participle_past', 'Participe Passé'),
    ('gerund_present', 'Gérondif Present'),
    ('gerund_past', 'Gérondif Passé'),
]

PERSONS_LIST = [
    ('person_1', 'person_I_S'),
    ('person_2', 'person_II_S'),
    ('person_3', 'person_III_S'),
    ('person_4', 'person_I_P'),
    ('person_5', 'person_II_P'),
    ('person_6', 'person_III_P'),
    ('person_pp_1', 'Singular Past Participle'),
    ('person_pp_2', 'Plural Past Participle'),
    ('person_pp_3', 'Compose Past Participle')
]

KEY_TO_MOOD_TENSE = {
    'infinitive_present': 'infinitive_present',
    'infinitive_past': 'infinitive_past',
    'indicative_present': 'indicative_present',
    'indicative_composé-past': 'indicative_composé_past',
    'indicative_imperfect': 'indicative_imperfect',
    'indicative_pluperfect': 'indicative_pluperfect',
    'indicative_simple-past': 'indicative_simple_past',
    'indicative_antérieur-past': 'indicative_antérieur_past',
    'indicative_future': 'indicative_future',
    'indicative_antérieur-future': 'indicative_antérieur_future',
    'subjunctive_present': 'subjunctive_present',
    'subjunctive_past': 'subjunctive_past',
    'subjunctive_imperfect': 'subjunctive_imperfect',
    'subjunctive_pluperfect': 'subjunctive_pluperfect',
    'conditional_present': 'conditional_present',
    'conditional_past-first': 'conditional_past',
    'imperative_present': 'imperative_present',
    'imperative_past': 'imperative_past',
    'participle_present': 'participle_present',
    'participle_past': 'participle_past',
    'gerund_present': 'gerund_present',
    'gerund_past': 'gerund_past',
}

KEY_TO_PERSON = {
    'person_I_S': 'person_1',
    'person_II_S': 'person_2',
    'person_III_S': 'person_3',
    'person_I_P': 'person_4',
    'person_II_P': 'person_5',
    'person_III_P': 'person_6',
    'singular': 'person_pp_1',
    'plural': 'person_pp_2',
    'compose': 'person_pp_3',
}

SWITCHES_CHOICES = [
    ('active', "ACTIVE",),
    ('pronominal', "REFLEXIVE",),
    ('voix_passive', "PASSIVE",),
    ('question', "QUESTION",),
    ('negation', "NEGATIVE",),
    ('pronominal_en', "S-EN",),
    ('question_pronominal', "QUESTION_REFLEXIVE",),
    ('pronominal_negation', "REFLEXIVE_NEGATIVE",),
    ('question_voix_passive', "QUESTION_PASSIVE",),
    ('negation_voix_passive', "NEGATIVE_PASSIVE",),
    ('question_negation', "QUESTION_NEGATIVE",),
    ('question_pronominal_en', 'QUESTION_S-EN',),
    ('pronominal_en_negation', 'S-EN_NEGATIVE',),
    ('question_pronominal_negation', "QUESTION_REFLEXIVE_NEGATIVE",),
    ('question_negation_voix_passive', "QUESTION_NEGATIVE_PASSIVE",),
    ('question_pronominal_en_negation', 'QUESTION_S-EN_NEGATIVE',),
]

KEY_TO_SWITCH = {
    "": 'active',
    "REFLEXIVE": 'pronominal',
    "PASSIVE": 'voix_passive',
    "QUESTION": 'question',
    "NEGATIVE": 'negation',
    "S-EN": 'pronominal_en',
    "QUESTION_REFLEXIVE": 'question_pronominal',
    "REFLEXIVE_NEGATIVE": 'pronominal_negation',
    "QUESTION_PASSIVE": 'question_voix_passive',
    "NEGATIVE_PASSIVE": 'negation_voix_passive',
    "QUESTION_NEGATIVE": 'question_negation',
    'QUESTION_S-EN': 'question_pronominal_en',
    'S-EN_NEGATIVE': 'pronominal_en_negation',
    "QUESTION_REFLEXIVE_NEGATIVE": 'question_pronominal_negation',
    "QUESTION_NEGATIVE_PASSIVE": 'question_negation_voix_passive',
    'QUESTION_S-EN_NEGATIVE': 'question_pronominal_en_negation',
}

PERSONS = {
    'infinitive-present': [
        (0, '—')
    ],
    'imperative-present': [
        (0, 'форма \u00abты\u00bb'),
        (1, 'форма \u00abмы\u00bb'),
        (2, 'форма \u00abвы\u00bb'),
    ],
    'past-participle': [
        (0, 'м. р., ед. ч.'),
        (1, 'м. р., мн. ч.'),
        (2, 'ж. р., ед. ч.'),
        (3, 'ж. р., мн. ч.'),
    ],
    'present-participle': [
        (0, '—')
    ],
    'other': [
        (0, 'форма \u00abя\u00bb'),
        (1, 'форма \u00abты\u00bb'),
        (2, 'форма \u00abон\u00bb'),
        (3, 'форма \u00abмы\u00bb'),
        (4, 'форма \u00abвы\u00bb'),
        (5, 'форма \u00abони\u00bb'),
    ]
}

TEMPLATE_NAME = {
    'indicative': "Indicatif",
    'present': "Présent",
    'imperfect': "Imparfait",
    'simple-past': "Passé simple",
    'future': "Futur simple",
    'composé-past': "Passé composé",
    'pluperfect': "Plus que parfait",
    'antérieur-past': "Passé antérieur",
    'antérieur-future': "Futur antérieur",
    'subjunctive': "Subjonctif",
    'past': "Passé",
    'conditional': "Conditionnel",
    'past-first': "Passé",
    'past-second': "Passé deuxième forme",
    'imperative': "Impératif",
    'infinitive': "Infinitif",
    'gerund': "Gérondif",
    'participle': "Participe",
}
SHORT_LIST = {
    'indicative': ["simple-past", "antérieur-past"],
    'subjunctive': ["imperfect", "pluperfect"],
    'conditional': ["past-second"],
    'imperative': ["past"],
    'gerund': [],
    'infinitive': [],
    'participle': [],
}
AUDIO_LIST = [
    "être",
    "avoir",
    "faire",
    "dire",
    "pouvoir",
    "aller",
    "voir",
    "vouloir",
    "venir",
    "devoir",
    "prendre",
    "trouver",
    "donner",
    "falloir",
    "parler",
    "mettre",
    "savoir",
    "passer",
    "regarder",
    "aimer",
    "croire",
    "demander",
    "rester",
    "répondre",
    "entendre",
    "penser",
    "arriver",
    "connaître",
    "devenir",
    "sentir",
    "sembler",
    "tenir",
    "comprendre",
    "rendre",
    "attendre",
    "sortir",
    "vivre",
    "reprendre",
    "entrer",
    "porter",
    "chercher",
    "revenir",
    "appeler",
    "mourir",
    "partir",
    "jeter",
    "suivre",
    "écrire",
    "montrer",
    "tomber",
    "ouvrir",
    "arrêter",
    "perdre",
    "commencer",
    "paraître",
    "marcher",
    "lever",
    "permettre",
    "asseoir",
    "écouter",
    "monter",
    "apercevoir",
    "recevoir",
    "servir",
    "finir",
    "rire",
    "crier",
    "jouer",
    "tourner",
    "garder",
    "reconnaître",
    "quitter",
    "manger",
    "courir",
    "continuer",
    "oublier",
    "descendre",
    "cacher",
    "poser",
    "tirer",
    "présenter",
    "ajouter",
    "agir",
    "retrouver",
    "offrir",
    "apprendre",
    "tuer",
    "retourner",
    "rencontrer",
    "envoyer",
    "dormir",
    "pousser",
    "rappeler",
    "lire",
    "changer",
    "compter",
    "occuper",
    "frapper",
    "travailler",
    "expliquer",
    "obtenir",
    "rentrer",
    "pleurer",
    "essayer",
    "répéter",
    "payer",
    "apporter",
    "boire",
    "sourire",
    "coucher",
    "causer",
    "exister",
    "raconter",
    "serrer",
    "songer",
    "manquer",
    "nommer",
    "conduire",
    "saisir",
    "demeurer",
    "remettre",
    "disparaître",
    "battre",
    "toucher",
    "apparaître",
    "souffrir",
    "fermer",
    "accepter",
    "tendre",
    "naître",
    "sauver",
    "avancer",
    "traverser",
    "souvenir",
    "couvrir",
    "gagner",
    "former",
    "plaire",
    "embrasser",
    "oser",
    "refuser",
    "décider",
    "produire",
    "charger",
    "mêler",
    "cesser",
    "ressembler",
    "chanter",
    "empêcher",
    "approcher",
    "prier",
    "espérer",
    "échapper",
    "glisser",
    "briller",
    "brûler",
    "placer",
    "juger",
    "suffire",
    "atteindre",
    "annoncer",
    "élever",
    "acheter",
    "mener",
    "préparer",
    "assurer",
    "deviner",
    "considérer",
    "appartenir",
    "représenter",
    "tromper",
    "vendre",
    "craindre",
    "emporter",
    "rouler",
    "posséder",
    "réveiller",
    "aider",
    "découvrir",
    "choisir",
    "prononcer",
    "taire",
    "rêver",
    "appuyer",
    "étendre",
    "trembler",
    "défendre",
    "créer",
    "maintenir",
    "indiquer",
    "promettre",
    "relever",
    "abandonner",
    "ignorer",
    "exprimer",
    "accompagner",
    "adresser",
    "observer",
    "séparer",
    "marier",
    "prévoir",
    "amener",
    "obliger",
    "éclairer",
    "poursuivre",
    "livrer",
    "contenir",
    "fuir",
    "couler",
    "proposer",
    "éprouver",
    "retenir",
    "attacher",
    "voler",
    "surprendre",
    "briser",
    "imaginer",
    "diriger",
    "parvenir",
    "pénétrer",
    "remarquer",
    "éviter",
    "établir",
    "réussir",
    "pencher",
    "habiter",
    "entourer",
    "déclarer",
    "étonner",
    "dresser",
    "durer",
    "fixer",
    "désirer",
    "arracher",
    "entraîner",
    "soutenir",
    "couper",
    "douter",
    "retirer",
    "promener",
    "forcer",
    "examiner",
    "revoir",
    "remplir",
    "terminer",
    "tenter",
    "remonter",
    "installer",
    "soulever",
    "allumer",
    "imposer",
    "respirer",
    "baisser",
    "souffler",
    "attirer",
    "prêter",
    "amuser",
    "éclater",
    "réunir",
    "traiter",
    "traîner",
    "employer",
    "marquer",
    "prouver",
    "importer",
    "exiger",
    "reposer",
    "danser",
    "saluer",
    "accorder",
    "achever",
    "avouer",
    "distinguer",
    "emmener",
    "agiter",
    "hésiter",
    "sonner",
    "composer",
    "enlever",
    "rejoindre",
    "ramener",
    "étudier",
    "partager",
    "chasser",
    "interrompre",
    "éloigner",
    "réduire",
    "engager",
    "éteindre",
    "recommencer",
    "sauter",
    "plaindre",
    "préférer",
    "révéler",
    "subir",
    "rapporter",
    "coûter",
    "réfléchir",
    "remercier",
    "déposer",
    "fumer",
    "affirmer",
    "convenir",
    "vêtir",
    "accomplir",
    "résoudre",
    "plonger",
    "détruire",
    "intéresser",
    "disposer",
    "lisser",
    "verser",
    "obéir",
    "lutter",
    "prétendre",
    "construire",
    "soumettre",
    "peser",
    "troubler",
    "répandre",
    "résister",
    "protéger",
    "enfermer",
    "creuser",
    "grandir",
    "enfoncer",
    "envelopper",
    "prévenir",
    "inspirer",
    "ramasser",
    "endormir",
    "inventer",
    "presser",
    "confier",
    "effacer",
    "reculer",
    "user",
    "nourrir",
    "remplacer",
    "souhaiter",
    "signer",
    "interroger",
    "dominer",
    "commander",
    "supposer",
    "dépasser",
    "accuser",
    "habiller",
    "condamner",
    "menacer",
    "écraser",
    "céder",
    "écarter",
    "réclamer",
    "dessiner",
    "conclure",
    "lier",
    "admettre",
    "attaquer",
    "respecter",
    "pendre",
    "supporter",
    "figurer",
    "profiter",
    "accrocher",
    "calmer",
    "satisfaire",
    "valoir",
    "signifier",
    "inquiéter",
    "assister",
    "inviter",
    "déchirer",
    "risquer",
    "parcourir",
    "rejeter",
    "renoncer",
    "veiller",
    "transformer",
    "tracer",
    "contenter",
    "mériter",
    "précipiter",
    "rompre",
    "caresser",
    "étouffer",
    "animer",
    "casser",
    "fonder",
    "franchir",
    "abattre",
    "discuter",
    "fatiguer",
    "consentir",
    "regretter",
    "joindre",
    "vaincre",
    "consulter",
    "haïr",
    "repousser",
    "exécuter",
    "exposer",
    "voyager",
    "renverser",
    "rassurer",
    "retomber",
    "décrire",
    "mentir",
    "armer",
    "étaler",
    "essuyer",
    "précéder",
    "désigner",
    "détacher",
    "recueillir",
    "croiser",
    "entretenir",
    "surveiller",
    "réserver",
    "confondre",
    "dégager",
    "parer",
    "visiter",
    "détourner",
    "plier",
    "accueillir",
    "redevenir",
    "approuver",
    "emparer",
    "aborder",
    "heurter",
    "noyer",
    "semer",
    "guider",
    "piquer",
]

GENDER_MASCULINE = 'm'
GENDER_FEMININE = 'f'

ETRE = 'etre'
AVOIR = 'avoir'

VOWEL = 'vowel_1'
NOT_VOWEL = 'vowel_0'

VOICE_ACTIVE = 'active'
VOICE_PASSIVE = 'passive'
VOICE_REFLEXIVE = 'reflexive'
COMPLICATED_TENSES = {
    ('indicative', 'past'): 'past-participle',
    ('indicative', 'composé-past'): 'past-participle',
    ('indicative', 'antérieur-past'): 'past-participle',
    ('indicative', 'antérieur-future'): 'past-participle',
    ('indicative', 'pluperfect'): 'past-participle',
    ('subjunctive', 'past'): 'past-participle',
    ('subjunctive', 'pluperfect'): 'past-participle',
    ('conditional', 'past-first'): 'past-participle',
    ('conditional', 'past-second'): 'past-participle',
    ('imperative', 'past'): 'past-participle',
    ('imperative', 'present'): 'imperative-present',
    ('infinitive', 'past'): 'past-participle',
    ('infinitive', 'present'): 'infinitive-present',
    ('gerund', 'past'): 'past-participle',
    ('gerund', 'present'): 'present-participle',
    ('participle', 'present'): 'present-participle',
    ('participle', 'past'): 'past-participle',

}

OS_LIST = [
    'ios',
    'windows',
    'android',
    'linux',
]
