diff --git a/hal/__init__.pyc b/hal/__init__.pyc
deleted file mode 100644
index 25c441ac864005d1acb9132f955e54e39131da90..0000000000000000000000000000000000000000
Binary files a/hal/__init__.pyc and /dev/null differ
diff --git a/hal/admin.pyc b/hal/admin.pyc
deleted file mode 100644
index 69d66c83931705d59a9adb641640eb38bc319dc9..0000000000000000000000000000000000000000
Binary files a/hal/admin.pyc and /dev/null differ
diff --git a/hal/countries.csv b/hal/countries.csv
index 557d0f2d1050691a28009205b4d254da392caeaa..4950db4e99033b566720af49f1edbb659ba13eed 100644
--- a/hal/countries.csv
+++ b/hal/countries.csv
@@ -1,170 +1,170 @@
-AF:AFGHANISTAN:Afghanistan:Afghanistan
-AL:ALBANIA:Albanie:Albania
-DZ:ALGERIA:Algérie:Algeria
-AO:ANGOLA:Angola:Angola
-AQ:ANTARCTICA:Antarctique:Antarctica
-AR:ARGENTINA:Argentine:Argentina
-AM:ARMENIA:Arménie:Armenia
-AU:AUSTRALIA:Australie:Australia
-AT:AUSTRIA:Autriche:Austria
-AZ:AZERBAIJAN:Azerbaïdjan:Azerbaijan
-BH:BAHRAIN:Bahrein:Bahrain
-BD:BANGLADESH:Bangladesh:Bangladesh
-BY:BELARUS:Bélarus:Belarus
-BE:BELGIUM:Belgique:Belgium
-BZ:BELIZE:Bélize:Belize
-BJ:BENIN:Bénin:Benin
-BT:BHUTAN:Bhoutan:Bhutan
-BO:BOLIVIA:Bolivie:Bolivia
-BA:BOSNIA AND HERZEGOVINA:Bosnie-Herzégovine:Bosnia and Herzegovina
-BW:BOTSWANA:Botswana:Botswana
-BR:BRAZIL:Brésil:Brazil
-BG:BULGARIA:Bulgarie:Bulgaria
-BF:BURKINA FASO:Burkina Faso:Burkina Faso
-BI:BURUNDI:Burundi:Burundi
-KH:CAMBODIA:Cambodge:Cambodia
-CM:CAMEROON:Cameroun:Cameroon
-CA:CANADA:Canada:Canada
-CV:CAPE VERDE:Cap-vert:Cape Verde
-CF:CENTRAL AFRICAN REPUBLIC:République-centrafricaine:Central African Republic
-TD:CHAD:Tchad:Chad
-CL:CHILE:Chili:Chile
-CN:CHINA:Chine:China
-CO:COLOMBIA:Colombie:Colombia
-KM:COMOROS:Comores:Comoros
-CG:CONGO:Congo:Congo
-CD:DEMOCRATIC REPUBLIC OF CONGO:RDC:Democratic Republic of Congo
-CR:COSTA RICA:Costa-Rica:Costa Rica
-CI:IVORY COAST:Côte-d'Ivoire:Ivory Coast
-HR:CROATIA:Croatie:Croatia
-CU:CUBA:Cuba:Cuba
-CY:CYPRUS:Chypre:Cyprus
-CZ:CZECH REPUBLIC:Tchèquie:Czech Republic
-DK:DENMARK:Danemark:Denmark
-DJ:DJIBOUTI:Djibouti:Djibouti
-DO:DOMINICAN REPUBLIC:République-Dominicaine:Dominican Republic
-EC:ECUADOR:Equateur:Ecuador
-EG:EGYPT:Egypte:Egypt
-SV:EL SALVADOR:Salvador:El Salvador
-GQ:EQUATORIAL GUINEA:Guinée-équatoriale:Equatorial Guinea
-ER:ERITREA:Erythrée:Eritrea
-EE:ESTONIA:Estonie:Estonia
-ET:ETHIOPIA:Ethiopie:Ethiopia
-FJ:FIJI:Fidji:Fiji
-FI:FINLAND:Finlande:Finland
-FR:FRANCE:France:France
-GA:GABON:Gabon:Gabon
-GM:GAMBIA:Gambie:Gambia
-GE:GEORGIA:Géorgie:Georgia
-DE:GERMANY:Allemagne:Germany
-GH:GHANA:Ghana:Ghana
-GR:GREECE:Grèce:Greece
-GL:GREENLAND:Groenland:Greenland
-GT:GUATEMALA:Guatemala:Guatemala
-GN:GUINEA:Guinée:Guinea
-GW:GUINEA-BISSAU:Guinée-Bissau:Guinea-Bissau
-GY:GUYANA:Guyana:Guyana
-HT:HAITI:Haïti:Haiti
-HN:HONDURAS:Honduras:Honduras
-HK:HONG KONG:Hong-Kong:Hong Kong
-HU:HUNGARY:Hongrie:Hungary
-IS:ICELAND:Islande:Iceland
-IN:INDIA:Inde:India
-ID:INDONESIA:Indonesie:Indonesia
-IR:IRAN:Iran:Iran
-IQ:IRAQ:Iraq:Iraq
-IE:IRELAND:Irlande:Ireland
-IL:ISRAEL:Israël:Israel
-IT:ITALY:Italie:Italy
-JM:JAMAICA:Jamaïque:Jamaica
-JP:JAPAN:Japon:Japan
-JO:JORDAN:Jordanie:Jordan
-KZ:KAZAKHSTAN:Kazakhstan:Kazakhstan
-KE:KENYA:Kenya:Kenya
-KR:KOREA:Corée:Korea
-KW:KUWAIT:Koweït:Kuwait
-KG:KYRGYZSTAN:Kirghizistan:Kyrgyzstan
-LV:LATVIA:Lettonie:Latvia
-LB:LEBANON:Liban:Lebanon
-LS:LESOTHO:Lesotho:Lesotho
-LR:LIBERIA:Libéria:Liberia
-LY:LIBYA:Libye:Libya
-LI:LIECHTENSTEIN:Liechtenstein:Liechtenstein
-LT:LITHUANIA:Lituanie:Lithuania
-LU:LUXEMBOURG:Luxembourg:Luxembourg
-MO:MACAO:Macao:Macao
-MK:MACEDONIA:Macédoine:Macedonia
-MG:MADAGASCAR:Madagascar:Madagascar
-MW:MALAWI:Malawi:Malawi
-MY:MALAYSIA:Malaisie:Malaysia
-ML:MALI:Mali:Mali
-MT:MALTA:Malte:Malta
-MR:MAURITANIA:Mauritanie:Mauritania
-MX:MEXICO:Mexique:Mexico
-MD:MOLDOVA:Moldavie:Moldova
-MN:MONGOLIA:Mongolie:Mongolia
-MA:MOROCCO:Maroc:Morocco
-MZ:MOZAMBIQUE:Mozambique:Mozambique
-MM:MYANMAR:Myanmar:Myanmar
-NA:NAMIBIA:Namibie:Namibia
-NP:NEPAL:Népal:Nepal
-NL:NETHERLANDS:Pays-Bas:Netherlands
-NC:NEW CALEDONIA:Nouvelle-Calédonie:New Caledonia
-NZ:NEW ZEALAND:Nouvelle-Zélande:New Zealand
-NI:NICARAGUA:Nicaragua:Nicaragua
-NE:NIGER:Niger:Niger
-NG:NIGERIA:Nigéria:Nigeria
-NO:NORWAY:Norvège:Norway
-OM:OMAN:Oman:Oman
-PK:PAKISTAN:Pakistan:Pakistan
-PS:PALESTINE:Palestine:Palestine
-PA:PANAMA:Panama:Panama
-PG:PAPUA NEW GUINEA:Papouasie-Nouvelle-Guinée:Papua New Guinea
-PY:PARAGUAY:Paraguay:Paraguay
-PE:PERU:Pérou:Peru
-PH:PHILIPPINES:Philippines:Philippines
-PL:POLAND:Pologne:Poland
-PT:PORTUGAL:Portugal:Portugal
-PR:PUERTO RICO:Porto-Rico:Puerto Rico
-QA:QATAR:Qatar:Qatar
-RO:ROMANIA:Roumanie:Romania
-RU:RUSSIA:Russie:Russia
-RW:RWANDA:Rwanda:Rwanda
-WS:SAMOA:Samoa:Samoa
-SA:SAUDI ARABIA:Arabie-Saoudite:Saudi Arabia
-SN:SENEGAL:Sénégal:Senegal
-RS:SERBIA:Serbie:Serbia
-SL:SIERRA LEONE:Sierra-Leone:Sierra Leone
-SG:SINGAPORE:Singapour:Singapore
-SK:SLOVAKIA:Slovaquie:Slovakia
-SI:SLOVENIA:Slovénie:Slovenia
-SO:SOMALIA:Somalie:Somalia
-ZA:SOUTH AFRICA:Afrique du Sud:South Africa
-ES:SPAIN:Espagne:Spain
-LK:SRI LANKA:Sri-Lanka:Sri Lanka
-SD:SUDAN:Soudan:Sudan
-SR:SURINAME:Surinam:Suriname
-SZ:SWAZILAND:Swaziland:Swaziland
-SE:SWEDEN:Suède:Sweden
-CH:SWITZERLAND:Suisse:Switzerland
-SY:SYRIA:Syrie:Syria
-TW:TAIWAN:Taïwan:Taiwan
-TJ:TAJIKISTAN:Tadjikistan:Tajikistan
-TZ:TANZANIA:Tanzanie:Tanzania
-TH:THAILAND:Thaïlande:Thailand
-TG:TOGO:Togo:Togo
-TN:TUNISIA:Tunisie:Tunisia
-TR:TURKEY:Turquie:Turkey
-TM:TURKMENISTAN:Turkménistan:Turkmenistan
-UG:UGANDA:Ouganda:Uganda
-UA:UKRAINE:Ukraine:Ukraine
-AE:UNITED ARAB EMIRATES:Emirats-arabes-unis:United Arab Emirates
-GB:UNITED KINGDOM:Royaume-Uni:United Kingdom
-US:USA:USA:Usa
-UY:URUGUAY:Uruguay:Uruguay
-UZ:UZBEKISTAN:Ouzbékistan:Uzbekistan
-VU:VANUATU:Vanuatu:Vanuatu
-VN:VIETNAM:Viet-Nam:Vietnam
-YE:YEMEN:Yémen:Yemen
-ZW:ZIMBABWE:Zimbabwe:Zimbabwe
-XX:UNKNOWN COUNTRY:Pays inconnu:Unknown Country
+AF;AFGHANISTAN;Afghanistan;Afghanistan
+AL;ALBANIA;Albanie;Albania
+DZ;ALGERIA;Algérie;Algeria
+AO;ANGOLA;Angola;Angola
+AQ;ANTARCTICA;Antarctique;Antarctica
+AR;ARGENTINA;Argentine;Argentina
+AM;ARMENIA;Arménie;Armenia
+AU;AUSTRALIA;Australie;Australia
+AT;AUSTRIA;Autriche;Austria
+AZ;AZERBAIJAN;Azerbaïdjan;Azerbaijan
+BH;BAHRAIN;Bahrein;Bahrain
+BD;BANGLADESH;Bangladesh;Bangladesh
+BY;BELARUS;Bélarus;Belarus
+BE;BELGIUM;Belgique;Belgium
+BZ;BELIZE;Bélize;Belize
+BJ;BENIN;Bénin;Benin
+BT;BHUTAN;Bhoutan;Bhutan
+BO;BOLIVIA;Bolivie;Bolivia
+BA;BOSNIA AND HERZEGOVINA;Bosnie-Herzégovine;Bosnia and Herzegovina
+BW;BOTSWANA;Botswana;Botswana
+BR;BRAZIL;Brésil;Brazil
+BG;BULGARIA;Bulgarie;Bulgaria
+BF;BURKINA FASO;Burkina Faso;Burkina Faso
+BI;BURUNDI;Burundi;Burundi
+KH;CAMBODIA;Cambodge;Cambodia
+CM;CAMEROON;Cameroun;Cameroon
+CA;CANADA;Canada;Canada
+CV;CAPE VERDE;Cap-vert;Cape Verde
+CF;CENTRAL AFRICAN REPUBLIC;République-centrafricaine;Central African Republic
+TD;CHAD;Tchad;Chad
+CL;CHILE;Chili;Chile
+CN;CHINA;Chine;China
+CO;COLOMBIA;Colombie;Colombia
+KM;COMOROS;Comores;Comoros
+CG;CONGO;Congo;Congo
+CD;DEMOCRATIC REPUBLIC OF CONGO;RDC;Democratic Republic of Congo
+CR;COSTA RICA;Costa-Rica;Costa Rica
+CI;IVORY COAST;Côte-d'Ivoire;Ivory Coast
+HR;CROATIA;Croatie;Croatia
+CU;CUBA;Cuba;Cuba
+CY;CYPRUS;Chypre;Cyprus
+CZ;CZECH REPUBLIC;Tchèquie;Czech Republic
+DK;DENMARK;Danemark;Denmark
+DJ;DJIBOUTI;Djibouti;Djibouti
+DO;DOMINICAN REPUBLIC;République-Dominicaine;Dominican Republic
+EC;ECUADOR;Equateur;Ecuador
+EG;EGYPT;Egypte;Egypt
+SV;EL SALVADOR;Salvador;El Salvador
+GQ;EQUATORIAL GUINEA;Guinée-équatoriale;Equatorial Guinea
+ER;ERITREA;Erythrée;Eritrea
+EE;ESTONIA;Estonie;Estonia
+ET;ETHIOPIA;Ethiopie;Ethiopia
+FJ;FIJI;Fidji;Fiji
+FI;FINLAND;Finlande;Finland
+FR;FRANCE;France;France
+GA;GABON;Gabon;Gabon
+GM;GAMBIA;Gambie;Gambia
+GE;GEORGIA;Géorgie;Georgia
+DE;GERMANY;Allemagne;Germany
+GH;GHANA;Ghana;Ghana
+GR;GREECE;Grèce;Greece
+GL;GREENLAND;Groenland;Greenland
+GT;GUATEMALA;Guatemala;Guatemala
+GN;GUINEA;Guinée;Guinea
+GW;GUINEA-BISSAU;Guinée-Bissau;Guinea-Bissau
+GY;GUYANA;Guyana;Guyana
+HT;HAITI;Haïti;Haiti
+HN;HONDURAS;Honduras;Honduras
+HK;HONG KONG;Hong-Kong;Hong Kong
+HU;HUNGARY;Hongrie;Hungary
+IS;ICELAND;Islande;Iceland
+IN;INDIA;Inde;India
+ID;INDONESIA;Indonesie;Indonesia
+IR;IRAN;Iran;Iran
+IQ;IRAQ;Iraq;Iraq
+IE;IRELAND;Irlande;Ireland
+IL;ISRAEL;Israël;Israel
+IT;ITALY;Italie;Italy
+JM;JAMAICA;Jamaïque;Jamaica
+JP;JAPAN;Japon;Japan
+JO;JORDAN;Jordanie;Jordan
+KZ;KAZAKHSTAN;Kazakhstan;Kazakhstan
+KE;KENYA;Kenya;Kenya
+KR;KOREA;Corée;Korea
+KW;KUWAIT;Koweït;Kuwait
+KG;KYRGYZSTAN;Kirghizistan;Kyrgyzstan
+LV;LATVIA;Lettonie;Latvia
+LB;LEBANON;Liban;Lebanon
+LS;LESOTHO;Lesotho;Lesotho
+LR;LIBERIA;Libéria;Liberia
+LY;LIBYA;Libye;Libya
+LI;LIECHTENSTEIN;Liechtenstein;Liechtenstein
+LT;LITHUANIA;Lituanie;Lithuania
+LU;LUXEMBOURG;Luxembourg;Luxembourg
+MO;MACAO;Macao;Macao
+MK;MACEDONIA;Macédoine;Macedonia
+MG;MADAGASCAR;Madagascar;Madagascar
+MW;MALAWI;Malawi;Malawi
+MY;MALAYSIA;Malaisie;Malaysia
+ML;MALI;Mali;Mali
+MT;MALTA;Malte;Malta
+MR;MAURITANIA;Mauritanie;Mauritania
+MX;MEXICO;Mexique;Mexico
+MD;MOLDOVA;Moldavie;Moldova
+MN;MONGOLIA;Mongolie;Mongolia
+MA;MOROCCO;Maroc;Morocco
+MZ;MOZAMBIQUE;Mozambique;Mozambique
+MM;MYANMAR;Myanmar;Myanmar
+NA;NAMIBIA;Namibie;Namibia
+NP;NEPAL;Népal;Nepal
+NL;NETHERLANDS;Pays-Bas;Netherlands
+NC;NEW CALEDONIA;Nouvelle-Calédonie;New Caledonia
+NZ;NEW ZEALAND;Nouvelle-Zélande;New Zealand
+NI;NICARAGUA;Nicaragua;Nicaragua
+NE;NIGER;Niger;Niger
+NG;NIGERIA;Nigéria;Nigeria
+NO;NORWAY;Norvège;Norway
+OM;OMAN;Oman;Oman
+PK;PAKISTAN;Pakistan;Pakistan
+PS;PALESTINE;Palestine;Palestine
+PA;PANAMA;Panama;Panama
+PG;PAPUA NEW GUINEA;Papouasie-Nouvelle-Guinée;Papua New Guinea
+PY;PARAGUAY;Paraguay;Paraguay
+PE;PERU;Pérou;Peru
+PH;PHILIPPINES;Philippines;Philippines
+PL;POLAND;Pologne;Poland
+PT;PORTUGAL;Portugal;Portugal
+PR;PUERTO RICO;Porto-Rico;Puerto Rico
+QA;QATAR;Qatar;Qatar
+RO;ROMANIA;Roumanie;Romania
+RU;RUSSIA;Russie;Russia
+RW;RWANDA;Rwanda;Rwanda
+WS;SAMOA;Samoa;Samoa
+SA;SAUDI ARABIA;Arabie-Saoudite;Saudi Arabia
+SN;SENEGAL;Sénégal;Senegal
+RS;SERBIA;Serbie;Serbia
+SL;SIERRA LEONE;Sierra-Leone;Sierra Leone
+SG;SINGAPORE;Singapour;Singapore
+SK;SLOVAKIA;Slovaquie;Slovakia
+SI;SLOVENIA;Slovénie;Slovenia
+SO;SOMALIA;Somalie;Somalia
+ZA;SOUTH AFRICA;Afrique du Sud;South Africa
+ES;SPAIN;Espagne;Spain
+LK;SRI LANKA;Sri-Lanka;Sri Lanka
+SD;SUDAN;Soudan;Sudan
+SR;SURINAME;Surinam;Suriname
+SZ;SWAZILAND;Swaziland;Swaziland
+SE;SWEDEN;Suède;Sweden
+CH;SWITZERLAND;Suisse;Switzerland
+SY;SYRIA;Syrie;Syria
+TW;TAIWAN;Taïwan;Taiwan
+TJ;TAJIKISTAN;Tadjikistan;Tajikistan
+TZ;TANZANIA;Tanzanie;Tanzania
+TH;THAILAND;Thaïlande;Thailand
+TG;TOGO;Togo;Togo
+TN;TUNISIA;Tunisie;Tunisia
+TR;TURKEY;Turquie;Turkey
+TM;TURKMENISTAN;Turkménistan;Turkmenistan
+UG;UGANDA;Ouganda;Uganda
+UA;UKRAINE;Ukraine;Ukraine
+AE;UNITED ARAB EMIRATES;Emirats-arabes-unis;United Arab Emirates
+GB;UNITED KINGDOM;Royaume-Uni;United Kingdom
+US;USA;USA;Usa
+UY;URUGUAY;Uruguay;Uruguay
+UZ;UZBEKISTAN;Ouzbékistan;Uzbekistan
+VU;VANUATU;Vanuatu;Vanuatu
+VN;VIETNAM;Viet-Nam;Vietnam
+YE;YEMEN;Yémen;Yemen
+ZW;ZIMBABWE;Zimbabwe;Zimbabwe
+XX;UNKNOWN COUNTRY;Pays inconnu;Unknown Country
diff --git a/hal/dict_countries.py b/hal/dict_countries.py
new file mode 100644
index 0000000000000000000000000000000000000000..33348761439310caa5157aa8693d353c71448d5b
--- /dev/null
+++ b/hal/dict_countries.py
@@ -0,0 +1,172 @@
+dict_countries = {
+    "AFGHANISTAN":"AF",
+    "ALBANIA":"AL",
+    "ALGERIA":"DZ",
+    "ANGOLA":"AO",
+    "ANTARCTICA":"AQ",
+    "ARGENTINA":"AR",
+    "ARMENIA":"AM",
+    "AUSTRALIA":"AU",
+    "AUSTRIA":"AT",
+    "AZERBAIJAN":"AZ",
+    "BAHRAIN":"BH",
+    "BANGLADESH":"BD",
+    "BELARUS":"BY",
+    "BELGIUM":"BE",
+    "BELIZE":"BZ",
+    "BENIN":"BJ",
+    "BHUTAN":"BT",
+    "BOLIVIA":"BO",
+    "BOSNIA AND HERZEGOVINA":"BA",
+    "BOTSWANA":"BW",
+    "BRAZIL":"BR",
+    "BULGARIA":"BG",
+    "BURKINA FASO":"BF",
+    "BURUNDI":"BI",
+    "CAMBODIA":"KH",
+    "CAMEROON":"CM",
+    "CANADA":"CA",
+    "CAPE VERDE":"CV",
+    "CENTRAL AFRICAN REPUBLIC":"CF",
+    "CHAD":"TD",
+    "CHILE":"CL",
+    "CHINA":"CN",
+    "COLOMBIA":"CO",
+    "COMOROS":"KM",
+    "CONGO":"CG",
+    "DEMOCRATIC REPUBLIC OF CONGO":"CD",
+    "COSTA RICA":"CR",
+    "IVORY COAST":"CI",
+    "CROATIA":"HR",
+    "CUBA":"CU",
+    "CYPRUS":"CY",
+    "CZECH REPUBLIC":"CZ",
+    "DENMARK":"DK",
+    "DJIBOUTI":"DJ",
+    "DOMINICAN REPUBLIC":"DO",
+    "ECUADOR":"EC",
+    "EGYPT":"EG",
+    "EL SALVADOR":"SV",
+    "EQUATORIAL GUINEA":"GQ",
+    "ERITREA":"ER",
+    "ESTONIA":"EE",
+    "ETHIOPIA":"ET",
+    "FIJI":"FJ",
+    "FINLAND":"FI",
+    "FRANCE":"FR",
+    "GABON":"GA",
+    "GAMBIA":"GM",
+    "GEORGIA":"GE",
+    "GERMANY":"DE",
+    "GHANA":"GH",
+    "GREECE":"GR",
+    "GREENLAND":"GL",
+    "GUATEMALA":"GT",
+    "GUINEA":"GN",
+    "GUINEA-BISSAU":"GW",
+    "GUYANA":"GY",
+    "HAITI":"HT",
+    "HONDURAS":"HN",
+    "HONG KONG":"HK",
+    "HUNGARY":"HU",
+    "ICELAND":"IS",
+    "INDIA":"IN",
+    "INDONESIA":"ID",
+    "IRAN":"IR",
+    "IRAQ":"IQ",
+    "IRELAND":"IE",
+    "ISRAEL":"IL",
+    "ITALY":"IT",
+    "JAMAICA":"JM",
+    "JAPAN":"JP",
+    "JORDAN":"JO",
+    "KAZAKHSTAN":"KZ",
+    "KENYA":"KE",
+    "KOREA":"KR",
+    "KUWAIT":"KW",
+    "KYRGYZSTAN":"KG",
+    "LATVIA":"LV",
+    "LEBANON":"LB",
+    "LESOTHO":"LS",
+    "LIBERIA":"LR",
+    "LIBYA":"LY",
+    "LIECHTENSTEIN":"LI",
+    "LITHUANIA":"LT",
+    "LUXEMBOURG":"LU",
+    "MACAO":"MO",
+    "MACEDONIA":"MK",
+    "MADAGASCAR":"MG",
+    "MALAWI":"MW",
+    "MALAYSIA":"MY",
+    "MALI":"ML",
+    "MALTA":"MT",
+    "MAURITANIA":"MR",
+    "MEXICO":"MX",
+    "MOLDOVA":"MD",
+    "MONGOLIA":"MN",
+    "MOROCCO":"MA",
+    "MOZAMBIQUE":"MZ",
+    "MYANMAR":"MM",
+    "NAMIBIA":"NA",
+    "NEPAL":"NP",
+    "NETHERLANDS":"NL",
+    "NEW CALEDONIA":"NC",
+    "NEW ZEALAND":"NZ",
+    "NICARAGUA":"NI",
+    "NIGER":"NE",
+    "NIGERIA":"NG",
+    "NORWAY":"NO",
+    "OMAN":"OM",
+    "PAKISTAN":"PK",
+    "PALESTINE":"PS",
+    "PANAMA":"PA",
+    "PAPUA NEW GUINEA":"PG",
+    "PARAGUAY":"PY",
+    "PERU":"PE",
+    "PHILIPPINES":"PH",
+    "POLAND":"PL",
+    "PORTUGAL":"PT",
+    "PUERTO RICO":"PR",
+    "QATAR":"QA",
+    "ROMANIA":"RO",
+    "RUSSIA":"RU",
+    "RWANDA":"RW",
+    "SAMOA":"WS",
+    "SAUDI ARABIA":"SA",
+    "SENEGAL":"SN",
+    "SERBIA":"RS",
+    "SIERRA LEONE":"SL",
+    "SINGAPORE":"SG",
+    "SLOVAKIA":"SK",
+    "SLOVENIA":"SI",
+    "SOMALIA":"SO",
+    "SOUTH AFRICA":"ZA",
+    "SPAIN":"ES",
+    "SRI LANKA":"LK",
+    "SUDAN":"SD",
+    "SURINAME":"SR",
+    "SWAZILAND":"SZ",
+    "SWEDEN":"SE",
+    "SWITZERLAND":"CH",
+    "SYRIA":"SY",
+    "TAIWAN":"TW",
+    "TAJIKISTAN":"TJ",
+    "TANZANIA":"TZ",
+    "THAILAND":"TH",
+    "TOGO":"TG",
+    "TUNISIA":"TN",
+    "TURKEY":"TR",
+    "TURKMENISTAN":"TM",
+    "UGANDA":"UG",
+    "UKRAINE":"UA",
+    "UNITED ARAB EMIRATES":"AE",
+    "UNITED KINGDOM":"GB",
+    "USA":"US",
+    "URUGUAY":"UY",
+    "UZBEKISTAN":"UZ",
+    "VANUATU":"VU",
+    "VIETNAM":"VN",
+    "YEMEN":"YE",
+    "ZIMBABWE":"ZW",
+    "UNKNOWN COUNTRY":"XX"
+}
\ No newline at end of file
diff --git a/hal/forms.pyc b/hal/forms.pyc
deleted file mode 100644
index 6de019ddfe6abbf781b37d69b0490565e874e044..0000000000000000000000000000000000000000
Binary files a/hal/forms.pyc and /dev/null differ
diff --git a/hal/migrations/0001_initial.pyc b/hal/migrations/0001_initial.pyc
deleted file mode 100644
index b7e7f6ba3998ec1a04746eeecd57387212940c13..0000000000000000000000000000000000000000
Binary files a/hal/migrations/0001_initial.pyc and /dev/null differ
diff --git a/hal/migrations/Document sans nom b/hal/migrations/Document sans nom
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/hal/models.py b/hal/models.py
index a8bf7d34abc629ed304c1d86b96786108a388d0f..587ca26b66acb1fefc0dbcada56599c2b662257b 100644
--- a/hal/models.py
+++ b/hal/models.py
@@ -1,12 +1,12 @@
 # -*- coding: utf-8 -*-
 from django.utils.translation import ugettext_lazy as _
 from django.db import models
-from django.utils.encoding import python_2_unicode_compatible
+#from django.utils.encoding import python_2_unicode_compatible
 
 from django.contrib.auth.models import User, Group
 from datetime import datetime
 
-@python_2_unicode_compatible
+#@python_2_unicode_compatible
 class Referent(models.Model):
 
     referent = models.OneToOneField(User, on_delete=models.CASCADE, default=None, blank=True, null=True)  
diff --git a/hal/models.pyc b/hal/models.pyc
deleted file mode 100644
index 0e2c6c6c115a0c866655543ed0db0bb6afffe5a9..0000000000000000000000000000000000000000
Binary files a/hal/models.pyc and /dev/null differ
diff --git a/hal/scripts.pyc b/hal/scripts.pyc
deleted file mode 100644
index b07a703613682e703c3764d72ce66f256606203c..0000000000000000000000000000000000000000
Binary files a/hal/scripts.pyc and /dev/null differ
diff --git a/hal/scripts_bibtex.py b/hal/scripts_bibtex.py
index ed3f0b7bf39a0a17419ea9a2c62fa9014b1a5f71..1674f24d2f3938e18a1f4580a8e872ef81b9945c 100644
--- a/hal/scripts_bibtex.py
+++ b/hal/scripts_bibtex.py
@@ -1,7 +1,7 @@
 #!/usr/bin/python
 #-*- coding: utf-8 -*-
 
-from __future__ import unicode_literals
+#from __future__ import unicode_literals
 import requests
 import csv
 
@@ -11,11 +11,14 @@ from lxml import etree
 # lib bibtex
 import bibtexparser
 from bibtexparser.bparser import BibTexParser
-from bibtexparser.customization import homogenize_latex_encoding
+#from bibtexparser.customization import homogenize_latex_encoding
 from bibtexparser.customization import convert_to_unicode
 
-from create_xml2hal import createXml_sendHal, create_single_xml
+from .create_xml2hal import createXml_sendHal, create_single_xml
 
+from .dict_countries import dict_countries
+
+from haltools.settings import BASE_DIR
 #################
 ## VARIABLES
 #################
@@ -115,12 +118,12 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
 
     # list_acronym_country -> nom du pays en anglais majuscule , acronyme du pays       
     list_acronym_country = []
-    with open('hal/countries.csv', 'rb') as csvfile:
-        delim = str(':')
-        quotech = str('|')
-        list_countries = csv.reader(csvfile, delimiter=delim, quotechar=quotech)
+    ''' with open(BASE_DIR+'/hal/countries.csv', 'r') as csvfile:
+        delim = str(';')
+        #quotech = str('|')
+        list_countries = csv.reader(csvfile, delimiter=';')#delim) #, quotechar=quotech)
         for row in list_countries:
-            list_acronym_country.append((row[1],row[0]))
+            list_acronym_country.append((row[1],row[0])) '''
    
 
     for entry in bib_database.entries :
@@ -241,9 +244,32 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
                 conf = conf.replace("\\(^\\mboxe\\)","e")
                 prev_conf_elmt = ""
                 prev_prev_conf_elmt = ""
+                print("TEST HERE conf_all {0}".format(conf_all))
                 for conf_elmt in conf_all :
                     conf_elmt = conf_elmt.strip()
-                    for csv_country in list_acronym_country :
+                    conf_elmt = conf_elmt.upper()
+                    print("TEST HERE conf_elmt {0}".format(conf_elmt))
+                    
+                    try :
+                        data_country = dict_countries[conf_elmt]
+                        
+                        if conf_elmt == "USA":
+                            prev_prev_conf_elmt = prev_prev_conf_elmt.replace("\n"," ")
+                            town = prev_prev_conf_elmt
+                            country_acr = data_country
+                            country = conf_elmt
+                        else :                        
+                            prev_conf_elmt = prev_conf_elmt.replace("\n"," ")
+                            town = prev_conf_elmt
+                            country_acr = data_country
+                            country = conf_elmt
+                             
+                    except Exception as e :
+                        print("conf_elmt {0}".format(conf_elmt))
+                 
+
+                    
+                    ''' for csv_country in list_acronym_country :
                         if conf_elmt.upper() == csv_country[0] :
                             if csv_country[0] == "USA" :
                                 prev_prev_conf_elmt = prev_prev_conf_elmt.replace("\n"," ")
@@ -255,7 +281,7 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
                                 prev_conf_elmt = prev_conf_elmt.replace("\n"," ")
                                 town = prev_conf_elmt
                                 country_acr = csv_country[1]
-                                country = csv_country[0]
+                                country = csv_country[0] '''
 
                     prev_prev_conf_elmt = prev_conf_elmt
                     prev_conf_elmt = conf_elmt
@@ -319,8 +345,8 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
                 json = ""
                 try :
                     json = req.json()
-                except ValueError :
-                    print ("PROBLEME VALUEERROR")
+                except ValueError as ve :
+                    print ("PROBLEME VALUEERROR {0}".format(ve))
                 try : 
                     if json is not "" :
                         result = json['response']['docs']
@@ -332,8 +358,8 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
                                 tous_authors = result[0]["authFullName_s"]
                                 for auth in tous_authors:
                                     all_auth = all_auth + auth+"-"
-                            except KeyError, e :
-                                print ("error print authors existing publi")
+                            except KeyError as ke :
+                                print ("error print authors existing publi keyerror {0}".format(ke))
                             resultat = resultat + "num. "+numero+" - "+result[0]["uri_s"]+" - auteurs:"+all_auth+"<br/>"
                             action_todo = "E"
 
@@ -406,7 +432,7 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
         conf = pub[3]#.decode("utf-8") 
         ville = pub[9]#.decode("utf-8")
 
-        list_resultats.append((str(pub[0]),allauth,title,conf,str(pub[4]),str(pub[5]),str(pub[6]),str(pub[7]),str(pub[8]),ville,str(pub[10]),str(pub[11]),str(pub[12])))
+        list_resultats.append((str(pub[0]),str(allauth),str(title),str(conf),str(pub[4]),str(pub[5]),str(pub[6]),str(pub[7]),str(pub[8]),ville,str(pub[10]),str(pub[11]),str(pub[12])))
     
     cnt_nb_publis = cnt_article + cnt_inproceeding + cnt_book + cnt_incollection + cnt_phdthesis
 
@@ -468,6 +494,8 @@ def script_bibtex_2_hal (bibtex_file, bib_name_user, name_user, firstname_user,
     
 
     if single == False :
+        print("SINGLE FALSE")
         return list_resultats
     if single == True :
+        print("SINGLE TRUE")
         return reponse_single_xml
diff --git a/hal/scripts_csv.py b/hal/scripts_csv.py
index 183c07add8db4b38236fed5158a81a76c84dc394..b186f463d1442770416fd195b4edda321498834d 100644
--- a/hal/scripts_csv.py
+++ b/hal/scripts_csv.py
@@ -12,14 +12,14 @@ from lxml import etree
 # lib csv
 #try:
     # for Python 2.x
-from StringIO import StringIO
+#from StringIO import StringIO
 #except ImportError:
     # for Python 3.x
 #    from io import StringIO
 import csv
-import unicodecsv
+#import unicodecsv
 
-from create_xml2hal import createXml_sendHal, create_single_xml
+from .create_xml2hal import createXml_sendHal, create_single_xml
 
 #################
 ## VARIABLES
@@ -271,8 +271,8 @@ def script_csv_2_hal (csv_file, form_author, name_user, firstname_user, labo_aut
                                     tous_authors = result[0]["authFullName_s"]
                                     for auth in tous_authors:
                                         all_auth = all_auth + auth+"-"
-                                except KeyError, e :
-                                    print ("error print authors existing publi")
+                                except KeyError as ke :
+                                    print ("error print authors existing publi keyerror {0}".format(ke))
                                 resultat = resultat + "num. "+numero+" - "+result[0]["uri_s"]+" - auteurs:"+all_auth+"<br/>"
                                 action_todo = "E"
 
diff --git a/hal/scripts_dblp.pyc b/hal/scripts_dblp.pyc
deleted file mode 100644
index 55a8838923aa3df35e61e99d8c8f6d8c47d07352..0000000000000000000000000000000000000000
Binary files a/hal/scripts_dblp.pyc and /dev/null differ
diff --git a/hal/scripts_text.pyc b/hal/scripts_text.pyc
deleted file mode 100644
index dfbabf93bdf573e452eb27597cf4405e5c85b777..0000000000000000000000000000000000000000
Binary files a/hal/scripts_text.pyc and /dev/null differ
diff --git a/hal/templates/base.html b/hal/templates/base.html
index 39ab07ed13c13fcba82117dcdd24f29456cfa88b..aab15407c127fbdbbe34e0246cc3ee4f734d5342 100644
--- a/hal/templates/base.html
+++ b/hal/templates/base.html
@@ -1,7 +1,6 @@
 <!DOCTYPE html>
 <html lang="fr">
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
@@ -56,7 +55,7 @@
          </div>
       </li>
 
-      <li class="nav-item dropdown">
+{% comment %}       <li class="nav-item dropdown">
         <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">TEXT</a>
          <div class="dropdown-menu" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, 39px, 0px);">
           <a class="dropdown-item" href="{% url "text2hal" %}">Text_2_Hal</a>
@@ -64,7 +63,7 @@
           <a class="dropdown-item" href="{% url "textmodif" %}">Modify Text</a>
           <a class="dropdown-item" href="{% url "text_format" %}">Format text</a>
          </div>
-      </li>
+      </li> {% endcomment %}
       <li class="nav-item">
         <a class="nav-link" href="{% url "aide" %}">Aide</a>
       </li>
diff --git a/hal/templates/hal/aide.html b/hal/templates/hal/aide.html
index 01979b8fddd261bce0a8404a4403cd74d127bff9..1ba30658567e67f0a9d1588de5643583a26cb9f5 100644
--- a/hal/templates/hal/aide.html
+++ b/hal/templates/hal/aide.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/bibtex2hal.html b/hal/templates/hal/bibtex2hal.html
index 49ec8f5596a0152b258acbde271af9c546d5989c..876c810398cc3d0ab67bb2ae5211952c949fc70e 100644
--- a/hal/templates/hal/bibtex2hal.html
+++ b/hal/templates/hal/bibtex2hal.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/bibtexxml.html b/hal/templates/hal/bibtexxml.html
index 6014c2434cccf4f6a5a7f3bc6f528a1fec1ff57d..1d80da5557d91c604e23acbd0b9322a4e37fea7a 100644
--- a/hal/templates/hal/bibtexxml.html
+++ b/hal/templates/hal/bibtexxml.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/blog.html b/hal/templates/hal/blog.html
index 58e53c03665e1b04f2d8cd6661c1c44fb87c01fc..9fc0b31eb5dc1e4cc229622e491682b6c546a687 100644
--- a/hal/templates/hal/blog.html
+++ b/hal/templates/hal/blog.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/connexion.html b/hal/templates/hal/connexion.html
index 8369beaef5a0675e086261f467088cd5d16d0fdd..57fa5bd0953ab222b921445723df5b69922b2e95 100644
--- a/hal/templates/hal/connexion.html
+++ b/hal/templates/hal/connexion.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/csv2hal.html b/hal/templates/hal/csv2hal.html
index 519ef5721615256c509f5aa1b9b5354290ae1583..a1e8fd7c9b46093b97b21408354667a5075b4c0c 100644
--- a/hal/templates/hal/csv2hal.html
+++ b/hal/templates/hal/csv2hal.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/index.html b/hal/templates/hal/index.html
index d27b76a6e907e26db214399dc5bea10f257fefef..385ae8070adc44265b8b89c8e1077a2f5c54cc17 100644
--- a/hal/templates/hal/index.html
+++ b/hal/templates/hal/index.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/text2hal.html b/hal/templates/hal/text2hal.html
index 374c075f6630d9fe6b4dc98fd9d59a0b4fe4101a..8c134f0ac3f4c94412a08f8670dbeef9527ae07f 100644
--- a/hal/templates/hal/text2hal.html
+++ b/hal/templates/hal/text2hal.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/text_format.html b/hal/templates/hal/text_format.html
index 318b4288ae85e4d3ca60a794bf8a0ddfc9ed43d6..240e2cc9276b1d6dc54e071379a7ae7680b2cd1e 100644
--- a/hal/templates/hal/text_format.html
+++ b/hal/templates/hal/text_format.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/textmodif.html b/hal/templates/hal/textmodif.html
index 9691b1467c6d933f7cbd7308d7f3e7568609e5d8..f4ab8c6d90259826b37f5456aefeea1936efe780 100644
--- a/hal/templates/hal/textmodif.html
+++ b/hal/templates/hal/textmodif.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/templates/hal/textxml.html b/hal/templates/hal/textxml.html
index 42b886b7783b03fc7f654b950ccb28107d19d079..87896e5f4fd4173bfc645ecf6ad41ce11b9df138 100644
--- a/hal/templates/hal/textxml.html
+++ b/hal/templates/hal/textxml.html
@@ -1,6 +1,5 @@
 {% extends "base.html" %}
 {% load static %}
-{% load staticfiles %}
 {% load bootstrap3 %}
 {% load bootstrap_themes %}
 
diff --git a/hal/urls.py b/hal/urls.py
index 6932707f742793786435dbd1ac6600c2c9d0ee0b..e3f0e626193dd4a6c6c768972f48680e61a8ab48 100644
--- a/hal/urls.py
+++ b/hal/urls.py
@@ -11,10 +11,10 @@ urlpatterns = [
     url(r'^bibtex2hal$', views.bibtex2hal, name='bibtex2hal'),
     url(r'^bibtexxml$', views.bibtexxml, name='bibtexxml'),
     url(r'^csv2hal$', views.csv2hal, name='csv2hal'),
-    url(r'^text2hal$', views.text2hal, name='text2hal'),
-    url(r'^textxml$', views.textxml, name='textxml'),
-    url(r'^textmodif$', views.textmodif, name='textmodif'),
-    url(r'^text_format$', views.text_format, name='text_format'),
+    #url(r'^text2hal$', views.text2hal, name='text2hal'),
+    #url(r'^textxml$', views.textxml, name='textxml'),
+    #url(r'^textmodif$', views.textmodif, name='textmodif'),
+    #url(r'^text_format$', views.text_format, name='text_format'),
     url(r'^aide$', views.aide, name='aide'),
 ]
 
diff --git a/hal/urls.pyc b/hal/urls.pyc
deleted file mode 100644
index 47085d4983a5cc98e90debdf6a04c4b00479ec72..0000000000000000000000000000000000000000
Binary files a/hal/urls.pyc and /dev/null differ
diff --git a/hal/views.py b/hal/views.py
index 55e800f40e850cf7aeb4a556e93be131fbe75c04..2f08efeaada2bf87fe4205500b0ad1b6bfbdd16f 100644
--- a/hal/views.py
+++ b/hal/views.py
@@ -4,19 +4,19 @@ from __future__ import unicode_literals
 from django.shortcuts import render
 
 from django.contrib.auth.backends import ModelBackend
-from django.contrib.auth import authenticate, login
-from django.contrib.auth.views import logout
+from django.contrib.auth import authenticate, login, logout
+#from django.contrib.auth.views import logout
 
-from forms import ConnexionForm, Bibtex2halForm, Text2halForm, BibtexXmlForm, Csv2halForm, \
+from .forms import ConnexionForm, Bibtex2halForm, Text2halForm, BibtexXmlForm, Csv2halForm, \
     TextXmlForm, ModifTextForm,TextFromRG
 
-from scripts_bibtex import script_bibtex_2_hal
-from scripts_text import script_text_2_hal
-from scripts_csv import script_csv_2_hal
+from .scripts_bibtex import script_bibtex_2_hal
+#from .scripts_text import script_text_2_hal
+from .scripts_csv import script_csv_2_hal
 
 
-import httplib
-import xml.dom.minidom
+#import httplib
+#import xml.dom.minidom
 import csv
 import re
 
@@ -329,7 +329,7 @@ def csv2hal(request):
 ##################################################################################################################################
 ## TEXT2HAL  #####################################################################################################################
 ##################################################################################################################################
-
+"""
 def text2hal(request):
 
     reponse = ""
@@ -413,11 +413,11 @@ def text2hal(request):
                 #result[6],result[7],result[8],result[9],result[10],result[11],result[12],))
         #reponse=("reponse HAL")
     return render(request, 'hal/text2hal.html', locals())
-
+"""
 ##################################################################################################################################
 ## TEXTXML  ######################################################################################################################
 ##################################################################################################################################
-
+"""
 def textxml (request):
     reponse = ""
     form = TextXmlForm(request.POST or None)
@@ -760,3 +760,4 @@ def text_format(request):
     return render(request, 'hal/text_format.html', locals())
 
 
+"""
\ No newline at end of file
diff --git a/hal/views.pyc b/hal/views.pyc
deleted file mode 100644
index 8286f15d6c3a2fdbf97a075a466c1f33371ffb94..0000000000000000000000000000000000000000
Binary files a/hal/views.pyc and /dev/null differ
diff --git a/haltools/__init__.pyc b/haltools/__init__.pyc
deleted file mode 100644
index 0a3762704968ad1dd7452b24788e247f1617024a..0000000000000000000000000000000000000000
Binary files a/haltools/__init__.pyc and /dev/null differ
diff --git a/haltools/settings.pyc b/haltools/settings.pyc
deleted file mode 100644
index a9a5d467401a8caaf5c8894bcd075a2658365f0f..0000000000000000000000000000000000000000
Binary files a/haltools/settings.pyc and /dev/null differ
diff --git a/haltools/urls.pyc b/haltools/urls.pyc
deleted file mode 100644
index aa3a9060cd055d933ac2d1a5d1c8d016b8a8bfb2..0000000000000000000000000000000000000000
Binary files a/haltools/urls.pyc and /dev/null differ
diff --git a/haltools/wsgi.pyc b/haltools/wsgi.pyc
deleted file mode 100644
index 9ade6d4f00f588df7e5832262d2dbb1a700a0f85..0000000000000000000000000000000000000000
Binary files a/haltools/wsgi.pyc and /dev/null differ
diff --git a/requirements.txt b/requirements.txt
index a1ab91eda96826cbb0ad42dc3d554c683b5794ef..6968a607e8fb5a04f7431f7cf52f59d30b410780 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,16 +1,13 @@
-bibtexparser==1.1.0
-certifi==2019.3.9
-chardet==3.0.4
-Django==1.11.20
+bibtexparser==1.4.0
+Django==3.2
 django-bootstrap-themes==3.3.6
-django-bootstrap3==11.0.0
-future==0.17.1
-gunicorn==19.10.0
-idna==2.8
-lxml==4.3.2
-mysqlclient==1.4.2.post1
-pyparsing==2.3.1
-pytz==2018.9
-requests==2.21.0
-unicodecsv==0.14.1
-urllib3==1.24.1
+django-bootstrap3==21.1
+lxml==4.9.0
+mysqlclient==2.1.0
+requests==2.26.0
+
+
+# pyparsing==2.3.1
+# pytz==2018.9
+# unicodecsv==0.14.1
+# urllib3==1.24.1