From ebec8dc9f7be54da6d41cdfa506575cc1b08e486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Corbin?= Date: Sun, 17 Aug 2025 20:23:34 +0200 Subject: [PATCH 1/8] Update french translation --- .../locale/fr/LC_MESSAGES/django.po | 97 ++++++++----------- 1 file changed, 43 insertions(+), 54 deletions(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index c2e08c80b..ec1b46df6 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Erwann Mest , 2019 # Etienne Desgagné , 2015 @@ -14,14 +14,15 @@ msgstr "" "Project-Id-Version: Django REST framework\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-10-13 21:45+0200\n" -"PO-Revision-Date: 2020-10-13 19:45+0000\n" +"PO-Revision-Date: 2025-08-17 20:22+0200\n" "Last-Translator: Xavier Ordoquy \n" "Language-Team: French (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.6\n" #: authentication.py:70 msgid "Invalid basic header. No credentials provided." @@ -52,8 +53,7 @@ msgid "Invalid token header. Token string should not contain spaces." msgstr "En-tête « token » non valide. Un token ne doit pas contenir d'espaces." #: authentication.py:193 -msgid "" -"Invalid token header. Token string should not contain invalid characters." +msgid "Invalid token header. Token string should not contain invalid characters." msgstr "En-tête « token » non valide. Un token ne doit pas contenir de caractères invalides." #: authentication.py:203 @@ -106,11 +106,11 @@ msgstr "Une erreur du serveur est survenue." #: exceptions.py:142 msgid "Invalid input." -msgstr "" +msgstr "Entrée invalide." #: exceptions.py:161 msgid "Malformed request." -msgstr "Requête malformée" +msgstr "Requête malformée." #: exceptions.py:167 msgid "Incorrect authentication credentials." @@ -149,12 +149,12 @@ msgstr "Requête ralentie." #: exceptions.py:224 #, python-brace-format msgid "Expected available in {wait} second." -msgstr "" +msgstr "Disponible à nouveau dans {wait} second." #: exceptions.py:225 #, python-brace-format msgid "Expected available in {wait} seconds." -msgstr "" +msgstr "Disponible à nouveau dans {wait} secondes." #: fields.py:316 relations.py:245 relations.py:279 validators.py:90 #: validators.py:183 @@ -167,11 +167,11 @@ msgstr "Ce champ ne peut être nul." #: fields.py:701 msgid "Must be a valid boolean." -msgstr "" +msgstr "Doit être un booléen valide." #: fields.py:766 msgid "Not a valid string." -msgstr "" +msgstr "Chaîne invalide." #: fields.py:767 msgid "This field may not be blank." @@ -196,16 +196,12 @@ msgid "This value does not match the required pattern." msgstr "Cette valeur ne satisfait pas le motif imposé." #: fields.py:838 -msgid "" -"Enter a valid \"slug\" consisting of letters, numbers, underscores or " -"hyphens." +msgid "Enter a valid \"slug\" consisting of letters, numbers, underscores or hyphens." msgstr "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union." #: fields.py:839 -msgid "" -"Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, " -"or hyphens." -msgstr "" +msgid "Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, or hyphens." +msgstr "Saisir un \"slug\" valide composé de lettres Unicode, chiffres, tirets bas et tirets." #: fields.py:854 msgid "Enter a valid URL." @@ -213,7 +209,7 @@ msgstr "Saisissez une URL valide." #: fields.py:867 msgid "Must be a valid UUID." -msgstr "" +msgstr "Doit être un UUID valide." #: fields.py:903 msgid "Enter a valid IPv4 or IPv6 address." @@ -248,15 +244,12 @@ msgstr "Assurez-vous qu'il n'y a pas plus de {max_digits} chiffres au total." #: fields.py:1008 #, python-brace-format -msgid "" -"Ensure that there are no more than {max_decimal_places} decimal places." +msgid "Ensure that there are no more than {max_decimal_places} decimal places." msgstr "Assurez-vous qu'il n'y a pas plus de {max_decimal_places} chiffres après la virgule." #: fields.py:1009 #, python-brace-format -msgid "" -"Ensure that there are no more than {max_whole_digits} digits before the " -"decimal point." +msgid "Ensure that there are no more than {max_whole_digits} digits before the decimal point." msgstr "Assurez-vous qu'il n'y a pas plus de {max_whole_digits} chiffres avant la virgule." #: fields.py:1148 @@ -271,11 +264,11 @@ msgstr "Attendait une date + heure mais a reçu une date." #: fields.py:1150 #, python-brace-format msgid "Invalid datetime for the timezone \"{timezone}\"." -msgstr "" +msgstr "Date invalide pour le fuseau \"{timezone}\"." #: fields.py:1151 msgid "Datetime value out of range." -msgstr "" +msgstr "Valuer de date hors de l'intervalle." #: fields.py:1236 #, python-brace-format @@ -325,8 +318,7 @@ msgid "No file was submitted." msgstr "Aucun fichier n'a été soumis." #: fields.py:1515 -msgid "" -"The submitted data was not a file. Check the encoding type on the form." +msgid "The submitted data was not a file. Check the encoding type on the form." msgstr "La donnée soumise n'est pas un fichier. Vérifiez le type d'encodage du formulaire." #: fields.py:1516 @@ -339,14 +331,11 @@ msgstr "Le fichier soumis est vide." #: fields.py:1518 #, python-brace-format -msgid "" -"Ensure this filename has at most {max_length} characters (it has {length})." +msgid "Ensure this filename has at most {max_length} characters (it has {length})." msgstr "Assurez-vous que le nom de fichier comporte au plus {max_length} caractères (il en comporte {length})." #: fields.py:1566 -msgid "" -"Upload a valid image. The file you uploaded was either not an image or a " -"corrupted image." +msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." msgstr "Transférez une image valide. Le fichier que vous avez transféré n'est pas une image, ou il est corrompu." #: fields.py:1604 relations.py:486 serializers.py:571 @@ -356,12 +345,12 @@ msgstr "Cette liste ne peut pas être vide." #: fields.py:1605 #, python-brace-format msgid "Ensure this field has at least {min_length} elements." -msgstr "" +msgstr "Vérifier que ce champ a au moins {min_length} éléments." #: fields.py:1606 #, python-brace-format msgid "Ensure this field has no more than {max_length} elements." -msgstr "" +msgstr "Vérifier que ce champ n'a pas plus de {max_length} éléments." #: fields.py:1682 #, python-brace-format @@ -370,7 +359,7 @@ msgstr "Attendait un dictionnaire d'éléments mais a reçu « {input_type} » #: fields.py:1683 msgid "This dictionary may not be empty." -msgstr "" +msgstr "Ce dictionnaire ne peut être vide." #: fields.py:1755 msgid "Value must be valid JSON." @@ -382,7 +371,7 @@ msgstr "Recherche" #: filters.py:50 msgid "A search term." -msgstr "" +msgstr "Un terme de recherche." #: filters.py:180 templates/rest_framework/filters/ordering.html:3 msgid "Ordering" @@ -390,7 +379,7 @@ msgstr "Ordre" #: filters.py:181 msgid "Which field to use when ordering the results." -msgstr "" +msgstr "Quel champ utiliser pour trier les résultats." #: filters.py:287 msgid "ascending" @@ -402,11 +391,11 @@ msgstr "décroissant" #: pagination.py:174 msgid "A page number within the paginated result set." -msgstr "" +msgstr "Un numéro de page de l'ensemble des résultats." #: pagination.py:179 pagination.py:372 pagination.py:590 msgid "Number of results to return per page." -msgstr "" +msgstr "Nombre de résultats à retourner par page." #: pagination.py:189 msgid "Invalid page." @@ -414,11 +403,11 @@ msgstr "Page non valide." #: pagination.py:374 msgid "The initial index from which to return the results." -msgstr "" +msgstr "L'index initial depuis lequel retourner les résultats." #: pagination.py:581 msgid "The pagination cursor value." -msgstr "" +msgstr "La valeur du curseur de pagination." #: pagination.py:583 msgid "Invalid cursor" @@ -462,20 +451,20 @@ msgstr "Valeur non valide." #: schemas/utils.py:32 msgid "unique integer value" -msgstr "" +msgstr "valeur entière unique" #: schemas/utils.py:34 msgid "UUID string" -msgstr "" +msgstr "Chaîne UUID" #: schemas/utils.py:36 msgid "unique value" -msgstr "" +msgstr "valeur unique" #: schemas/utils.py:38 #, python-brace-format msgid "A {value_type} identifying this {name}." -msgstr "" +msgstr "Un(une) {value_type} identifiant ce(cette) {name}." #: serializers.py:337 #, python-brace-format @@ -485,7 +474,7 @@ msgstr "Donnée non valide. Attendait un dictionnaire, a reçu {datatype}." #: templates/rest_framework/admin.html:116 #: templates/rest_framework/base.html:136 msgid "Extra Actions" -msgstr "" +msgstr "Actions supplémentaires" #: templates/rest_framework/admin.html:130 #: templates/rest_framework/base.html:150 @@ -494,27 +483,27 @@ msgstr "Filtres" #: templates/rest_framework/base.html:37 msgid "navbar" -msgstr "" +msgstr "barre de navigation" #: templates/rest_framework/base.html:75 msgid "content" -msgstr "" +msgstr "contenu" #: templates/rest_framework/base.html:78 msgid "request form" -msgstr "" +msgstr "formulaire de requête" #: templates/rest_framework/base.html:157 msgid "main content" -msgstr "" +msgstr "contenu principal" #: templates/rest_framework/base.html:173 msgid "request info" -msgstr "" +msgstr "information de la requête" #: templates/rest_framework/base.html:177 msgid "response info" -msgstr "" +msgstr "information de la réponse" #: templates/rest_framework/horizontal/radio.html:4 #: templates/rest_framework/inline/radio.html:3 @@ -540,7 +529,7 @@ msgstr "Les champs {field_names} doivent former un ensemble unique." #: validators.py:171 #, python-brace-format msgid "Surrogate characters are not allowed: U+{code_point:X}." -msgstr "" +msgstr "Les caractères de substitution ne sont pas autorisés : U+{code_point:X}." #: validators.py:243 #, python-brace-format From d1031d7218edb616a51cbbcf3cebeb5683266642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Corbin?= Date: Sun, 17 Aug 2025 20:31:32 +0200 Subject: [PATCH 2/8] Fix typos --- rest_framework/locale/fr/LC_MESSAGES/django.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index ec1b46df6..759b96a74 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgstr "" "Project-Id-Version: Django REST framework\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-10-13 21:45+0200\n" -"PO-Revision-Date: 2025-08-17 20:22+0200\n" +"PO-Revision-Date: 2025-08-17 20:30+0200\n" "Last-Translator: Xavier Ordoquy \n" "Language-Team: French (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr/)\n" "Language: fr\n" @@ -149,7 +149,7 @@ msgstr "Requête ralentie." #: exceptions.py:224 #, python-brace-format msgid "Expected available in {wait} second." -msgstr "Disponible à nouveau dans {wait} second." +msgstr "Disponible à nouveau dans {wait} seconde." #: exceptions.py:225 #, python-brace-format @@ -201,7 +201,7 @@ msgstr "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ #: fields.py:839 msgid "Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, or hyphens." -msgstr "Saisir un \"slug\" valide composé de lettres Unicode, chiffres, tirets bas et tirets." +msgstr "Ce champ ne doit contenir que des lettres Unicode, des nombres, des tirets bas _ et des traits d'union." #: fields.py:854 msgid "Enter a valid URL." @@ -222,7 +222,7 @@ msgstr "Un nombre entier valide est requis." #: fields.py:932 fields.py:969 fields.py:1005 fields.py:1366 #, python-brace-format msgid "Ensure this value is less than or equal to {max_value}." -msgstr "Assurez-vous que cette valeur est inférieure ou égale à {max_value}." +msgstr "Assurez-vous que cette valeur est inférieure ou égale à {max_value}." #: fields.py:933 fields.py:970 fields.py:1006 fields.py:1367 #, python-brace-format @@ -268,7 +268,7 @@ msgstr "Date invalide pour le fuseau \"{timezone}\"." #: fields.py:1151 msgid "Datetime value out of range." -msgstr "Valuer de date hors de l'intervalle." +msgstr "Valeur de date hors de l'intervalle." #: fields.py:1236 #, python-brace-format @@ -443,7 +443,7 @@ msgstr "Type incorrect. Attendait une URL, a reçu {data_type}." #: relations.py:448 #, python-brace-format msgid "Object with {slug_name}={value} does not exist." -msgstr "L'object avec {slug_name}={value} n'existe pas." +msgstr "L'objet avec {slug_name}={value} n'existe pas." #: relations.py:449 msgid "Invalid value." From 6c3127bc226760132363351656750b0371d2495e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Corbin?= Date: Sun, 17 Aug 2025 20:34:10 +0200 Subject: [PATCH 3/8] Rework header --- rest_framework/locale/fr/LC_MESSAGES/django.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index 759b96a74..0467624b7 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -6,23 +6,22 @@ # Erwann Mest , 2019 # Etienne Desgagné , 2015 # Martin Maillard , 2015 -# Martin Maillard , 2015 # Stéphane Raimbault , 2019 # Xavier Ordoquy , 2015-2016 +# Sébastien Corbin , 2025 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-10-13 21:45+0200\n" "PO-Revision-Date: 2025-08-17 20:30+0200\n" -"Last-Translator: Xavier Ordoquy \n" +"Last-Translator: Sébastien Corbin \n" "Language-Team: French (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/fr/)\n" -"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.6\n" #: authentication.py:70 msgid "Invalid basic header. No credentials provided." From ecf9da1381d12cbeefb439836485ca3ba801ed07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asif=20Saif=20Uddin=20=7B=22Auvi=22=3A=22=E0=A6=85?= =?UTF-8?q?=E0=A6=AD=E0=A6=BF=22=7D?= Date: Tue, 19 Aug 2025 11:30:18 +0600 Subject: [PATCH 4/8] Update rest_framework/locale/fr/LC_MESSAGES/django.po Co-authored-by: Bruno Alla --- rest_framework/locale/fr/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index 0467624b7..8425cc775 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -263,7 +263,7 @@ msgstr "Attendait une date + heure mais a reçu une date." #: fields.py:1150 #, python-brace-format msgid "Invalid datetime for the timezone \"{timezone}\"." -msgstr "Date invalide pour le fuseau \"{timezone}\"." +msgstr "Date et heure non valides pour le fuseau horaire \"{timezone}\"." #: fields.py:1151 msgid "Datetime value out of range." From 6e7e971247c7305756c0d866de54359f8d2f445b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asif=20Saif=20Uddin=20=7B=22Auvi=22=3A=22=E0=A6=85?= =?UTF-8?q?=E0=A6=AD=E0=A6=BF=22=7D?= Date: Tue, 19 Aug 2025 11:30:33 +0600 Subject: [PATCH 5/8] Update rest_framework/locale/fr/LC_MESSAGES/django.po Co-authored-by: Bruno Alla --- rest_framework/locale/fr/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index 8425cc775..db5103c3e 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -378,7 +378,7 @@ msgstr "Ordre" #: filters.py:181 msgid "Which field to use when ordering the results." -msgstr "Quel champ utiliser pour trier les résultats." +msgstr "Quel champ utiliser pour classer les résultats." #: filters.py:287 msgid "ascending" From 3dfebcc1ed8df80a0a752870d77352075c4f0d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asif=20Saif=20Uddin=20=7B=22Auvi=22=3A=22=E0=A6=85?= =?UTF-8?q?=E0=A6=AD=E0=A6=BF=22=7D?= Date: Tue, 19 Aug 2025 11:30:41 +0600 Subject: [PATCH 6/8] Update rest_framework/locale/fr/LC_MESSAGES/django.po Co-authored-by: Bruno Alla --- rest_framework/locale/fr/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index db5103c3e..cb2741314 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -267,7 +267,7 @@ msgstr "Date et heure non valides pour le fuseau horaire \"{timezone}\"." #: fields.py:1151 msgid "Datetime value out of range." -msgstr "Valeur de date hors de l'intervalle." +msgstr "Valeur de date et heure hors de l'intervalle." #: fields.py:1236 #, python-brace-format From fcc8230e148798599dd8972662e51132486cf214 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Fri, 19 Sep 2025 15:49:43 +0100 Subject: [PATCH 7/8] Make translation unambiguous As per suggestion --- rest_framework/locale/fr/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.po b/rest_framework/locale/fr/LC_MESSAGES/django.po index cb2741314..9410b736f 100644 --- a/rest_framework/locale/fr/LC_MESSAGES/django.po +++ b/rest_framework/locale/fr/LC_MESSAGES/django.po @@ -170,7 +170,7 @@ msgstr "Doit être un booléen valide." #: fields.py:766 msgid "Not a valid string." -msgstr "Chaîne invalide." +msgstr "Chaîne de charactère invalide." #: fields.py:767 msgid "This field may not be blank." From 7fe12678a28f92572e6424cc19901aa23a9c5daa Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Fri, 19 Sep 2025 15:55:41 +0100 Subject: [PATCH 8/8] Run compilemessages --- .../locale/fr/LC_MESSAGES/django.mo | Bin 10662 -> 13379 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/rest_framework/locale/fr/LC_MESSAGES/django.mo b/rest_framework/locale/fr/LC_MESSAGES/django.mo index a1c0b3c2d4a0e9d28c07dac5652968dee90fcff6..e29c704f1382a9891d2fcfe43fcb63e47455eb40 100644 GIT binary patch delta 4829 zcma);dvH|M8Nkm%lo*1601+XEBM_1R2@fS8h=2qz3WCB0&}zKdJ;`2s_ulpHz2On# z)=r1oX{Xk?1?wMWd`umqeMr;k)M}M>$2!`vL!YD5TI;kRa&NllY)LT&I+V$6+h{CG3L#f@j0F z$x6+F-B7;21I~dCY=gH!wyK9=Cwvqxfv-ZYD5<7;r7mTn1#W>Bl!G2f#!tenjO(W; zwE^yieeeie1z&?J;R3W-3$K9}!K3gBcoMFG%?*|PdtjRJ?Qk3StC#7_XJW-vr5a%$ z6a{Q3^M?~Y2<3vGL%FbS8kfQiP%L90x~MNgG2UIt{5?<Q~9cb5MfiH7F*18;S+aJ4dNnxIJMXWJ&eIGvP4gPmS`i z3Lb%CiD%&j@O>x`TY***OFN*9@0^AG#iZY3f<5ZD$-?VUqImMTm>;&mRq*;`d=$!y zpM|pT6{ukilcI1d6bq)|8SraR6g>tBeDw{u7#=UtSx)B#xDPgPnpnh!oT*$WFTX7r z-vK)rKLl66=iynfp65u=H9@gp3nXz=2b7DulkvKQmqUq}(jGd*filU$A$WHRUqK17 zb{u>m+y%v?w?Q%eBT%yAWWu)~Us1E>Ruo$aF`~*rQTSFU=X?i>!heR_B>!Khvzv*v zy0Y;ra3|x(VIOS3Kbzqoyc&KJN}c!su7O+TRn~8X>lr@a&zxQ+W&ZF?o1(oljX2QPsSK~dzdP!4SFsMLX8IE}Fnr^3%cQS1oB zr0RLN7cNB0URZ*%|7j@M@H;5!+du@CB#7qG!F?(X#T5ZWIrTJ@^}oX!xBx9?zz)bA z>JoS!%t7K;9foqwJy2Y80?vi+LXJ>#2n4*Qw!$-^-HH7*odOf}@D3;&k3p$m&%iU_ zJIVS7P&BV+@hmtO;#SoGuYlX(T6h-})Bh$}pF&Q`!M}q1yWCRhd(IIXmKx{1;NJL*Q9h$s!BO(fOoa#Yt zMCuT-GFD&|HX_m%OaAYm;~=YLhDNr;4OdtG!GK|9D*l|9^u_$rf(qhSUYYd8rC2zQ zg=8wO3D+`^fV>IWj~K~+mre%Rj0_@0q<}~}fQUb_TI?PRp4xUZm~qO4M13|H?}Ymh zNoi>k57MMod@Ano!Ts?Mj}50IHHfrZDu{zkx>5-V=GfN~FI$iaNG;Nj$j`1uE=D9y z)+15_q+MM>oSFyeOPnl8=1LOXHz$KCB)6|h2HUHXa2Ik2k-(ESwSqV^q`Lu;EZBok zW8y%icE!J-5|l&8^@xX@kI*iS|5w{e?>wXdS&2yNMFx;-WRSExydmjJ(58{$sI_+c znu0ZCv>WCJjIa0GLC$t{kTaTT+qD9d)xIf)PN0h>=u#Vjr#6+A1IiN=xq&Kwqp%AM)RbR{gxe!qJ745vt8;FY%0pGz_;|qOkjJQ?oPQs zwJ=+K#US^Jo#aV}JlE)XBh~Kcyr{0>Gc~qb2**ne+b6US7;VY3?W|6xdwaUn_OKY} zQ)UM|&oP!8JvptkzPhs*_*k(^UFijS&cFELgubf_xKCUe^)?>r z-WB@3H-xG>le2sabNEGV`S_W`EXVQoo9r5$UOXap>@Rq>8?4zo8vVF&)fKjD2e##4 zv#dFw2YoNE_vdW!_=i`?vl9in)b5XB1uN-H=ohg}?BnPkjn2%h9h=Yc59+*iFjio| zj9)eVxl|pd(3Mw4Z8P6pvM0V~&^At1E(?o>n~jTuvqnr2n>)ET(oO42xH2GERMr$T z#?7)tlk~F!;xSEXl6Ubo z-(+%zOpMH|-14;B9=fLEV{_5A+(2hcd&UHTY>5+c{AaTkrMmkp$ArFIDq*cnpmU6k z&Uu7Otcn=J=kbo|Qrj$@4N)h0xNY9}+}YQsR`;R1jl+B`hRej!mM;+NR;cp?73rV1 z-G0ZoLqTp-m&cs)n51`fV$O`{%X3z)`yU6mZ5FXy)CDJu^%%)p2R`aoSOwpg)zH&GW38-aM<(SiJ$O%0&x=)8wH@g8= zm%yxid%WrVA5KVhMJMO?uI};dK$jonY8|?9aY?S=S*I;Yh2fB@2GKbSzI(%_oK^ld zl?zWNWup852UYLsQakZM;A6Y;nAD;C0IO{NC?v(U)E^$>5(EXSQi2GTHgDiY6TPtD zvzz1cBj?7REQSN*MG#6w)m&X9g=1G+Vc_|8kzoJH-5*n#_O`Cy*H$S>)dH0@g^(W@ zN3z>FMGNP@l7_IwZgHH4ad}EYKKX$|k?5a>Wl($HJEJsSDpq)mKdG!MV#{r$1cjl#hV$&D$3yW`=fM6Pg1Btl`W5De9tZxNl8_yQlTzT+cI{+ zaumg?VqglFP4z}KCD9Z*ad3#`c`V*GN(vTX7MoEL)%t%+T{tYRb1E?eDQL&8u9Up$ HbTax6$9Vj3 delta 2414 zcmYk-eN5F=9LMo<5rF_7K><;@_;|?+f;@yMim2#SOcW5cOmBdJ8dvYVkkQ&LpKDpJ zGn@WlvnQ9^ZNA7KDB!-r50ID(aU1?S?3p~lR|6a@5C0Q3$p`@@c(a1Ux?Uttb@i<;2Cqga1kNMSlNa00R)O*3i* z*5eVEF`H1iOkwMnVJRvl9ga_-W_A+!GZ*+M#P3k|XYvsB>%)3%#3no%q0&I*4_t+H zBx)fZ!Ik(8>bO*}47&a(c3?j)MlVm5-MAjlp$0mBTzq0aoJ6}7wIcf*&!CTXI!y>&S@`taR(|TZ{R%q9@k+(o-ysX7d4Zgku;kscRVG_P!BqQ>ZcDqcmvt5CYz(7 z=M^BokC+FktmeWQ)QB=BaMW-emSO<)fR|7ydK(#w`2n?rDda)BdL8Qf-KbojMz)hV ziv@TInX9>lRhYxF*=V0<)CuwMfx@s zI1AUJ2KXG3E%OtSWs^K5zE|=wm*<-~RH|{U;~|_w`?7ApQA|%Ammp&>&8PwOB1>pa z;9&d{lkhe!#YEO!E7E|QaVMtX4b(($VI-5vIMzoU&p_q81vR5*P%Cg4T{wu)12yY` zvWN<&DOU8B)9*BEt$rk5Y?mW!egRD($c62kBv#-8!_)UK{#ZG-Y_DD|&duD=zy^M!N0I z*cAOeqc*{|jove=|5g%>Zb