From dc93f7908f011d17ae85bf283a97f5cb0fde1a1c Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Sat, 23 Dec 2023 21:05:01 +0100 Subject: [PATCH 01/16] [ADD] server_action_sort : module to mass sort items (One2many) of any models, by any criterias --- server_action_sort/README.rst | 141 ++++++ server_action_sort/__init__.py | 1 + server_action_sort/__manifest__.py | 20 + server_action_sort/demo/ir_actions_server.xml | 43 ++ server_action_sort/i18n/fr.po | 179 +++++++ server_action_sort/models/__init__.py | 2 + .../models/ir_actions_server.py | 66 +++ .../models/ir_actions_server_sort_line.py | 31 ++ server_action_sort/readme/CONFIGURE.rst | 20 + server_action_sort/readme/CONTRIBUTORS.rst | 1 + server_action_sort/readme/DESCRIPTION.rst | 5 + server_action_sort/readme/ROADMAP.rst | 3 + server_action_sort/readme/USAGE.rst | 18 + .../security/ir.model.access.csv | 3 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 478 ++++++++++++++++++ .../description/ir_actions_server_form.png | Bin 0 -> 35913 bytes .../description/sale_order_form_after.png | Bin 0 -> 53689 bytes .../description/sale_order_form_before.png | Bin 0 -> 53539 bytes .../static/description/sale_order_tree.png | Bin 0 -> 40515 bytes server_action_sort/tests/__init__.py | 1 + server_action_sort/tests/test_module.py | 25 + .../views/view_ir_actions_server.xml | 42 ++ 23 files changed, 1079 insertions(+) create mode 100644 server_action_sort/README.rst create mode 100644 server_action_sort/__init__.py create mode 100644 server_action_sort/__manifest__.py create mode 100644 server_action_sort/demo/ir_actions_server.xml create mode 100644 server_action_sort/i18n/fr.po create mode 100644 server_action_sort/models/__init__.py create mode 100644 server_action_sort/models/ir_actions_server.py create mode 100644 server_action_sort/models/ir_actions_server_sort_line.py create mode 100644 server_action_sort/readme/CONFIGURE.rst create mode 100644 server_action_sort/readme/CONTRIBUTORS.rst create mode 100644 server_action_sort/readme/DESCRIPTION.rst create mode 100644 server_action_sort/readme/ROADMAP.rst create mode 100644 server_action_sort/readme/USAGE.rst create mode 100644 server_action_sort/security/ir.model.access.csv create mode 100644 server_action_sort/static/description/icon.png create mode 100644 server_action_sort/static/description/index.html create mode 100644 server_action_sort/static/description/ir_actions_server_form.png create mode 100644 server_action_sort/static/description/sale_order_form_after.png create mode 100644 server_action_sort/static/description/sale_order_form_before.png create mode 100644 server_action_sort/static/description/sale_order_tree.png create mode 100644 server_action_sort/tests/__init__.py create mode 100644 server_action_sort/tests/test_module.py create mode 100644 server_action_sort/views/view_ir_actions_server.xml diff --git a/server_action_sort/README.rst b/server_action_sort/README.rst new file mode 100644 index 000000000..4412fd72f --- /dev/null +++ b/server_action_sort/README.rst @@ -0,0 +1,141 @@ +================================ +Server Actions - Mass Sort Lines +================================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e221269a77f3ad06e190cd3f0c72ecdfc6d1cd0022b81e3ec57722b3c6dad475 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github + :target: https://github.com/OCA/server-backend/tree/16.0/server_action_sort + :alt: OCA/server-backend +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-server_action_sort + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module provides a generic tools to have the possibility to sort the lines +of a list of items. + +For exemple, if you use the sale module, you can want to reorder the sale +order lines, by any criterias. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +* Go to 'Setting / Technical / Actions / Server Actions' + +* Create a new item + +.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/ir_actions_server_form.png + +* Set a name that will be used for the Contextual Action + +* choose a model + +* Select 'Sort' option in the field 'Action To Do' + +* Then, select a field to sort of this model. It should be a ``one2many`` field. + +* Select then the criterias used to sort the selected field. + + +**Extra options** + +* you can define groups whose members will have access to that option. + +Usage +===== + +* Go to a tree view, for a model for which you have defined a 'Sort' action. + +* Select some items you want to reorder. + +* click on 'Action' Button + +.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_tree.png + + +* then click on the name of the configured Action and see the results + +**Before** + +.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_before.png + +**After** + +.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_after.png + +Known issues / Roadmap +====================== + +For instance, the module allow to order with many criterias, but +without "dot" notation : it is not possible to order sale order lines +by ``product_id.seller_ids.code`` for exemple. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* GRAP + +Contributors +~~~~~~~~~~~~ + +* Sylvain LE GAL (https://www.twitter.com/legalsylvain) + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px + :target: https://github.com/legalsylvain + :alt: legalsylvain + +Current `maintainer `__: + +|maintainer-legalsylvain| + +This module is part of the `OCA/server-backend `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/server_action_sort/__init__.py b/server_action_sort/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/server_action_sort/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/server_action_sort/__manifest__.py b/server_action_sort/__manifest__.py new file mode 100644 index 000000000..7fa31bc4d --- /dev/null +++ b/server_action_sort/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright (C) 2020 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Server Actions - Mass Sort Lines", + "version": "16.0.1.0.0", + "author": "GRAP, " "Odoo Community Association (OCA)", + "summary": "Sort any lines of any models by any criterias", + "category": "Tools", + "website": "https://github.com/OCA/server-backend", + "license": "AGPL-3", + "depends": ["base"], + "maintainers": ["legalsylvain"], + "data": [ + "security/ir.model.access.csv", + "views/view_ir_actions_server.xml", + ], + "demo": ["demo/ir_actions_server.xml"], +} diff --git a/server_action_sort/demo/ir_actions_server.xml b/server_action_sort/demo/ir_actions_server.xml new file mode 100644 index 000000000..6e0b22143 --- /dev/null +++ b/server_action_sort/demo/ir_actions_server.xml @@ -0,0 +1,43 @@ + + + + + + Action Server Sort Lines + sort + + + + + + 1 + + + + + + + 2 + + + + + + + + + + diff --git a/server_action_sort/i18n/fr.po b/server_action_sort/i18n/fr.po new file mode 100644 index 000000000..79af122c6 --- /dev/null +++ b/server_action_sort/i18n/fr.po @@ -0,0 +1,179 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_action_sort +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-03-16 18:08+0000\n" +"PO-Revision-Date: 2020-03-16 18:08+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id +msgid "Action" +msgstr "Action" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +msgid "Action To Do" +msgstr "Action à effectuer" + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Add Followers" +msgstr "Ajouter des abonnés" + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Create Next Activity" +msgstr "Créer une activité " + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Create a new Record" +msgstr "Créer un nouvel enregistrement" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Execute Python Code" +msgstr "Exécuter le code Python" + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Execute several actions" +msgstr "Exécuter plusieurs actions" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id +msgid "Field" +msgstr "Champ" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name +msgid "Field Name" +msgstr "Nom de Champ" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id +msgid "Field to Sort" +msgstr "Champ à trier" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model +msgid "For relationship fields, the technical name of the target model" +msgstr "Pour les champs de relation, le nom technique du modèle cible" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id +msgid "ID" +msgstr "ID" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc +msgid "Inverse Order" +msgstr "Ordre inverse" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model +msgid "Model of the Field to Sort" +msgstr "Modèle du champ à trier" + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Send Email" +msgstr "Envoyer par courriel" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server +msgid "Server Action" +msgstr "Action du serveur" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line +msgid "Server Actions Sort Lines" +msgstr "Ligne de tri d'Action Serveur" + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Sort" +msgstr "Trier" + +#. module: server_action_sort +#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines +msgid "Demo - Action Server: Sort Lines" +msgstr "Démo - Action serveur : Trier les lignes" + +#. module: server_action_sort +#: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form +msgid "Sort Options" +msgstr "Options de tri" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids +msgid "Sorting Criterias" +msgstr "Critères de tri" + +#. module: server_action_sort +#: code:addons/server_action_sort/models/ir_actions_server.py:31 +#, python-format +msgid "The Action Server %s is not correctly set :\n" +"No lines defined" +msgstr "L'action Serveur %s n'est pas correctement paramétré : \n" +"Pas de lignes définies" + + +#. module: server_action_sort +#: selection:ir.actions.server,state:0 +msgid "Update the Record" +msgstr "Mettre à jour l'enregistrement" + +#. module: server_action_sort +#: code:addons/server_action_sort/models/ir_actions_server.py:36 +#, python-format +msgid "You can not run this Action Server that way.\n" +" Please use contextual 'Action' menu." +msgstr "Vous ne pouvez pas exécuter cette action serveur de cette façon.\n" +" Veuillez utiliser le menu contextuel 'Action'." + diff --git a/server_action_sort/models/__init__.py b/server_action_sort/models/__init__.py new file mode 100644 index 000000000..7a4e06cef --- /dev/null +++ b/server_action_sort/models/__init__.py @@ -0,0 +1,2 @@ +from . import ir_actions_server +from . import ir_actions_server_sort_line diff --git a/server_action_sort/models/ir_actions_server.py b/server_action_sort/models/ir_actions_server.py new file mode 100644 index 000000000..3874273a1 --- /dev/null +++ b/server_action_sort/models/ir_actions_server.py @@ -0,0 +1,66 @@ +# Copyright (C) 2020 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import _, fields, models +from odoo.exceptions import UserError + + +class IrActionsServer(models.Model): + _inherit = "ir.actions.server" + + state = fields.Selection( + selection_add=[("sort", "Sort")], ondelete={"sort": "set default"} + ) + + sort_line_ids = fields.One2many( + comodel_name="ir.actions.server.sort.line", + inverse_name="action_id", + string="Sorting Criterias", + ) + + sort_field_id = fields.Many2one( + comodel_name="ir.model.fields", + string="Field to Sort", + domain="[('model_id', '=', model_id), ('ttype', '=', 'one2many')]", + ) + + sort_field_id_model = fields.Char( + string="Model of the Field to Sort", related="sort_field_id.relation" + ) + + def _run_action_sort_multi(self, eval_context=None): + self.ensure_one() + if len(self.sort_line_ids) == 0: + raise UserError( + _("The Action Server %s is not correctly set :\n" "No lines defined") + % (self.name) + ) + + if eval_context is None: + raise UserError( + _( + "You can not run this Action Server that way.\n" + " Please use contextual 'Action' menu." + ) + ) + + order_list = [] + for line in self.sort_line_ids: + order_list.append( + line.desc and "%s desc" % line.field_id.name or line.field_id.name + ) + order = ", ".join(order_list) + + One2manyModel = self.env[self.sort_field_id_model] + parent_field = self.sort_field_id.relation_field + + for item in eval_context["records"]: + # DB Query sort by the correct order + lines = One2manyModel.search([(parent_field, "=", item.id)], order=order) + + # Write new sequence to sort lines + sequence = 1 + for line in lines: + line.sequence = sequence + sequence += 1 diff --git a/server_action_sort/models/ir_actions_server_sort_line.py b/server_action_sort/models/ir_actions_server_sort_line.py new file mode 100644 index 000000000..c01bb6573 --- /dev/null +++ b/server_action_sort/models/ir_actions_server_sort_line.py @@ -0,0 +1,31 @@ +# Copyright (C) 2020 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class IrActionsServerNavigateLine(models.Model): + _name = "ir.actions.server.sort.line" + _description = "Server Actions Sort Lines" + _order = "sequence" + + sequence = fields.Integer() + + action_id = fields.Many2one( + comodel_name="ir.actions.server", + string="Action", + required=True, + ondelete="cascade", + ) + + field_id = fields.Many2one( + comodel_name="ir.model.fields", + required=True, + domain="[('model', '=', parent.sort_field_id_model)]", + ondelete="cascade", + ) + + field_name = fields.Char(string="Field Name", related="field_id.name", store=True) + + desc = fields.Boolean(string="Inverse Order") diff --git a/server_action_sort/readme/CONFIGURE.rst b/server_action_sort/readme/CONFIGURE.rst new file mode 100644 index 000000000..60b5b7120 --- /dev/null +++ b/server_action_sort/readme/CONFIGURE.rst @@ -0,0 +1,20 @@ +* Go to 'Setting / Technical / Actions / Server Actions' + +* Create a new item + +.. figure:: ../static/description/ir_actions_server_form.png + +* Set a name that will be used for the Contextual Action + +* choose a model + +* Select 'Sort' option in the field 'Action To Do' + +* Then, select a field to sort of this model. It should be a ``one2many`` field. + +* Select then the criterias used to sort the selected field. + + +**Extra options** + +* you can define groups whose members will have access to that option. diff --git a/server_action_sort/readme/CONTRIBUTORS.rst b/server_action_sort/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..e1525ce04 --- /dev/null +++ b/server_action_sort/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Sylvain LE GAL (https://www.twitter.com/legalsylvain) diff --git a/server_action_sort/readme/DESCRIPTION.rst b/server_action_sort/readme/DESCRIPTION.rst new file mode 100644 index 000000000..56a9d339a --- /dev/null +++ b/server_action_sort/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module provides a generic tools to have the possibility to sort the lines +of a list of items. + +For exemple, if you use the sale module, you can want to reorder the sale +order lines, by any criterias. diff --git a/server_action_sort/readme/ROADMAP.rst b/server_action_sort/readme/ROADMAP.rst new file mode 100644 index 000000000..00645b1ac --- /dev/null +++ b/server_action_sort/readme/ROADMAP.rst @@ -0,0 +1,3 @@ +For instance, the module allow to order with many criterias, but +without "dot" notation : it is not possible to order sale order lines +by ``product_id.seller_ids.code`` for exemple. diff --git a/server_action_sort/readme/USAGE.rst b/server_action_sort/readme/USAGE.rst new file mode 100644 index 000000000..86cd4fdf6 --- /dev/null +++ b/server_action_sort/readme/USAGE.rst @@ -0,0 +1,18 @@ +* Go to a tree view, for a model for which you have defined a 'Sort' action. + +* Select some items you want to reorder. + +* click on 'Action' Button + +.. figure:: ../static/description/sale_order_tree.png + + +* then click on the name of the configured Action and see the results + +**Before** + +.. figure:: ../static/description/sale_order_form_before.png + +**After** + +.. figure:: ../static/description/sale_order_form_after.png diff --git a/server_action_sort/security/ir.model.access.csv b/server_action_sort/security/ir.model.access.csv new file mode 100644 index 000000000..2f38a0454 --- /dev/null +++ b/server_action_sort/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +ir_actions_server_sort_line_all,ir_actions_server_sort_line_all,model_ir_actions_server_sort_line,,1,0,0,0 +ir_actions_server_sort_line_group_system,ir_actions_server_sort_line_group_system,model_ir_actions_server_sort_line,base.group_system,1,1,1,1 diff --git a/server_action_sort/static/description/icon.png b/server_action_sort/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/server_action_sort/static/description/index.html b/server_action_sort/static/description/index.html new file mode 100644 index 000000000..e0ddfb730 --- /dev/null +++ b/server_action_sort/static/description/index.html @@ -0,0 +1,478 @@ + + + + + + +Server Actions - Mass Sort Lines + + + +
+

Server Actions - Mass Sort Lines

+ + +

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

+

This module provides a generic tools to have the possibility to sort the lines +of a list of items.

+

For exemple, if you use the sale module, you can want to reorder the sale +order lines, by any criterias.

+

Table of contents

+ +
+

Configuration

+
    +
  • Go to ‘Setting / Technical / Actions / Server Actions’
  • +
  • Create a new item
  • +
+
+https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/ir_actions_server_form.png +
+
    +
  • Set a name that will be used for the Contextual Action
  • +
  • choose a model
  • +
  • Select ‘Sort’ option in the field ‘Action To Do’
  • +
  • Then, select a field to sort of this model. It should be a one2many field.
  • +
  • Select then the criterias used to sort the selected field.
  • +
+

Extra options

+
    +
  • you can define groups whose members will have access to that option.
  • +
+
+
+

Usage

+
    +
  • Go to a tree view, for a model for which you have defined a ‘Sort’ action.
  • +
  • Select some items you want to reorder.
  • +
  • click on ‘Action’ Button
  • +
+
+https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_tree.png +
+
    +
  • then click on the name of the configured Action and see the results
  • +
+

Before

+
+https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_before.png +
+

After

+
+https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_after.png +
+
+
+

Known issues / Roadmap

+

For instance, the module allow to order with many criterias, but +without “dot” notation : it is not possible to order sale order lines +by product_id.seller_ids.code for exemple.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • GRAP
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

legalsylvain

+

This module is part of the OCA/server-backend project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/server_action_sort/static/description/ir_actions_server_form.png b/server_action_sort/static/description/ir_actions_server_form.png new file mode 100644 index 0000000000000000000000000000000000000000..015a626e3180ea485a6b8bd12c6ad52ecc237a5b GIT binary patch literal 35913 zcmdqJbx@S?`!>3Wf(U{bbO;JacQ0Vlp@4LEH!QiRpn#NggG#A%vvhYz$bw5R-3?3a z`{C>NH|L*o=FGf*ymRI}GdnQLv->>HC+_>Yuj{%Ad95sS`xezL2n2FlPWGiL1cEyY zf#8_m!~^fxwttWUKM0&;wOzsAkykIA=TA~R!JCwBue99M94*{n#xCX%7!1Z`?O^L_ zYV2gr<>+FWvIV7rKpsNmUOrRzOx>7*dERfQ@7z6RLa0B#CbuGZK;^xC?fb(IKZ1jU z>)FTs$zr+KK5LP_B3-3jtv{Y-h<$3cTF-KP_Gn>2QFf4acKHx0`H8cv%%`^OY$_>@ zH&K!K9^=15HEY8z4TtnUM-=wjjoJUcukjV4_wqkS+pYWWLcxW=q4oZn)4x+m*e$V!bYO zyUEZKBj{^8ws=5^rAbH=wIxP3rW)}USjRBC)#oaFTg=^l6uJ8}1K!r&o|Nl%*{*pa zX#K_t)fK+C#TAC~PCc`Y&D0j<&U4WHH-eu(^LE(&F8{J~=+}h(F6P;c|!4S%I9caw~R|kryOs# zRYh`f`phQOYcx+C;K+;KA|E{LIO)b2PAU9xsEFjS9 z`?g3UoKv@I_aaitQq;fcUck?hue|*_m5VVdGRe4y!a?;fLdQ0Lz8#EoI6j;oA==`nc(W;6;XRSp(Tz1>8|fgfsl+NH;~e|@FuuKKXWrw~_u>Cm;3TKr z-FKbs?IlKYCU^(_v6qpOVFZa1mUIw?Z{MJYefzPj`pK03%I4?QL$Pd&xbHFyUkDW$ zw$6l-o5{PPbNYRuzSmWVXqsZXrCbjGx*PbJQb3+PYfcr1rPDX2w2{mxnH^92ou74UcR&XFQV`a1deER=+PB0o%$yMBiTRk{68Oe}eh-aj}pvZ~!% zIU+*+$7{)60nH+PnF^Z*=-Gi9r0$@ltnO$@cj>R|yHB^*-qd+I>r`3|{2a-3Oll0G zU+X>E6sJ5I@NwH3Z-z=pN~U+K!A;RioLSk~ICnfT8M6qt)!`FCyCz(TZOgNWGy(fz z3UYFC>2SJE#QrkDty@c7L#C-BUZ3OgG*Xb_ejPI=jXIh;OMSN3(T#s|)Ri{KjB_&S zwJ)cjkZGFW0LjY9j!I7M8PKnlQ&1wY!%m(49T<@8+%9!Y&)Cgn2(_40R#pxS3bITY zv&?|^`AN{59Zh0HM8&4Nj<0Ft>-2waBv&hW?nNbJ{eD&YA)H?(_h2z5CdS#>xw*SL zBrEH&>WC^11!ltORBD(TwfW!Mm}*~B`ptd)dNH=?*|h&LXFR8NS1A*rc7q!O9UWa? zO5+!e0-f1~g*MB~4ws$Z3?5s5mE7C}9`qzEkFN4>{H+fvKvi1GSNR})L||J`HTYSY zgwOHr$O0=EpD#bjB&sGuADB)iMm=U?O3Ka7$^Ov&(#eU(*mweeN1IixMxes>&q7cJ z+~VSs5{;N|p!>S;0=xget?6P};tgqV8oEnEOG~+<<^SvLezuOFp^bWx^0vWonaLlU z$*HNNb2RMw_3J#dA-SG@D=592)m^hJ_^M^n?&;o3UYEzaPK=Bkot;~wCAb;4v58XH z<*AEHX@L;;)dxX-+1zw?cdu|4dbuEEatML)@_vkA8T=9*9o9T+w%Pxm+0y#h z9UGRG7NS#OGrP8Cx4seFW#6<`|20E|RMv!X9Hm*jWbvOIlh4J;Ng-YH2Vz}05Ewkk zJW5#e|B|WBxk??eWMmwtahaV*f5q4}V!qrNT;-P$aX8?yhs?z~{+t^Yf;nUTY77h_{Q~HEt~^*El%B*fd|he9WCMNnCwD?Tx7+ zBPVA#c?LG{^e}lsOk87kH&?~=w2wgy=KV!S@WL*Q_TkwKgQR3caMzul_@8E(lMfoW z8{sMXwaB4->mbx=9m?N`JtN$k?p?Q3esg>KpAJzrXr*M4UA>>}srS6k#&lV_g_8Iz zvbdt4EXEPmrZRsOTBGY_QhT8YwtGcL|3c+TnkS^!(&S2xoYFko;%A9E>O({pg2fgAI9K-~2yS z+_0c`p}8T!H*scXzu5~7gimsQUaRY|N5F(rk!9h)E} zjiQ+pQu;kIJbdE3XPIxnFFaDWvva4V^@WJ175*8CopE26wMM_Lot;35Gq1)}&ZM8s zn3e35m=eKFkynvhkzlx85}y3pXRBJAo^mqC3ri5!wz0W2H^)#p@F_TWVc7oOyCN;Y zUK-y7F8%jsK2YVjo(d;7H?W%TW6Na5OI&a3*Fw$Esh<}jV`BJCWiG7O?Yi_k#+Ks> zs;(Bj3k$;j+Rh)_kpM@>B0gVU2O+w41+6~Eks9g%JYptJ&VI6qdspib%*7WJGo;a5 z5CWpLuKBG7ey}CMhAB%;NKI|)`BOGgXD<5w{bg2G&g&evS2_aQEdeCZSG)7+Nn>*I z@@8iPe`rKYL(7&UT`x|}@7_Z@xwz#hCdorDMtuZ+%(R%Ky${eemtXGO)_7fLw`h0F z4OUdUg1=?wz#qMOkEqz#`%tL-YlNzjSo!*^gaHyA4(wTZk%+Sk{kLz(kYJ+rfq{tO zY_{Luy(~`;;8ZYJq+Jz^Jy)6DqNrW z8Fgm?3oEPK#L}P{Uy0Yc%UEGbBzD5|F$>E)T0efNUu^gF%rZx148!bqDRGa&rMB*i z>v-vp*u+vtN7bPcbymN>GQBXQPgq9B&h0+q3=R*S`}xdqq-t zE!}Jb9WIX;1%JWSNH1}w_I+y=zj?bpqS>ekl}FU@cK!F+`{vQYKTnWn@gPvNv^SR8 zpRsWnh!G|}(f@VLUI&(YjH@!Yq|;ZoL5a<*yO_>|)M5ULh{4v!`89b{yD0T=lb+Ak(=hLrPirX_b)3e zPBgS>R~Heq5ipxIEmHd)2+MK5#&ufeHX%SvJN?X4>rR9+m#0r$&a(>*=-v+D(*EA; zx6KVyV-o+ROtlNsyYXr(B0OBlX>&wTC&c^M`)>82m;0g(M7NS_ISl)T%TUs?VN6ed z>Zf{%Sb?rPz@d@z3k#{6&fPyJYyTYaFXW~MhlH3cu1%y$_=Gj}F5kRO$jHk}hx___ z776^e4w!?oSnh=V?PPKUC%Q^Hc7ng4?*=ufVzf%g24{8_dZ|%X; zA4p@I*u4-A)B4Cur zaW4pN)jT&bp^1o4j@@HbiRqyA{JQ+Gu1?+@0e2{hBw8NKFdG`45%qQxCXM=5ji^y8 z%b}O3InLD{A)cViJ&$GQuJ@4AEY$moya@2zN+RLwH!QIslTxC4pO!{TxJ=j27d{#P zfU+aPUqX$ls7~a=))d`<2lkdr#K)i@9={IZRB`_gJHbZZGaos-xP3QiUvt~ofgF4I z2#g$larQgQkmyBy5uBLRm8lrzOXgQtqCA3x~}!-U?BAJI?t)ZK{T zS5i?5=cga+*Nx}(7jLX9bqq$(zbg1jh2)Wj(jbnbW~I9auZ2yqu4=ZN~Ib~)4=Hagfp^E!hPLQbS;Zy_3?)#iM_(6K+o2NHK3o|m-O%MNK ze6i?GvXOZ-y84b&G9gYbrGS%F&L#)Ohe{1g;W(7cBFdCBKK|qycLsVFrzj~m61&&W z(WunmBKWSYEs*Bedb>fXFHw+nuZbNAkvR*fAMeFOGIgF(}xG`u(D>um2i z28q6JQV-wF z!9g#L-+K(=U>~IjtQrwFk*@Vm(&a|k8#cmOdwrhy`qJQ# z58iRwCF<2sTt3w7_}!qtwD*J?+1b*rhCvTEz| zu`dUk6+-on7c2X%Uk{hHTwGLhOrxTs?HW|*#p(i%XOe=Ojd%tJw@w>e7Ow$#(N;;D zcas1iZDLZ_e%_lf$Pc?5yoyF8nK|f<4HI6e#$z}ssqIx7WmfuI25)6l&Jb;jl=AQR z(!6cKrd}2e(&LX3Zr9ytDPm%2keWWnbJomTxh<@eNc5#2;{r4jMzeo+#<${~s^ns+ z;_^_CVU}~Iho`qUDLJ`9Q@a{SRqP`!jpx;5$P}CF?-a3@RUk1g&olXNY|?t}g&3Dx zPtj_U3o|l47j<8{lkMAMsbkp{vpu)86j24!PEAb>2@khGZdLRp?@J&H4NZ>f=smYq zv5TI*eEA0AGv~iGiyZjzNW4RbvwK{RCJEpe_p4IPY(9(R#CX^RD#4E&ztAWnYy%^XE|#KEdWAV72TD=RObHc^h{r&z+r zdwalu*fiiAuUt~p``m7smu{C~3i+R^4|v5y z?%emiAzrJCw0VG+84y(!PU#z=IUv7vVU73l5a z<#qUd z_O+*xlr(pCa(c|i7YKk$na7mxhYy83zHMc`7wzY|c#as>uMiiUv zJOC#WcY3HZyRjkv{5c1}2*v=W1&4>5w6wvTV8>ZehGXc$Wj8;&iJA{HxqdkB9RG+x zhqqs`ssE7I(&FjW956y|x!X;aUss8YCZaqqeD(JRtL81nM)UUH!jie#F%e`VsV=)5 zaST$+iIFPW241`TY;S)(BT%8=pryGbMnWI#e|>&qh68CmQj^l&SYI!%hER2HX${bBaAB@J&L4D#q=TJt z(8vtA%CwSa3z}ga2SI;wl>Vya97NWgF5$Lyv=@7C`qKHGe54uS2tzwKZa?ijs_(;c zX;zlL;vApPZcMRFo$+7R4Q2jtg&z@Wj-MK)B3+kN%;e8N4i$1Rxb-vxKf|Ic#xZ5t zef#L9(d=1<TcD#OnI*7i8^FpL zew8gum#M%Aa3elEdj=X0oVwDz#UNAcJP!c(!ez zq64Myy3hUWQ15yjcC4%Db_U!|I{++aHDAAVzPS__!sFs@9&$iXn9zQ>8kbs#lR;oZ z%yKa8YqBG4s5?L1!uptXyuGV|tfP7K8y__=K+^EjS_}=o)$7I^?&|^;2i2PV1t~M@ z=;uwWuKj)BR^F6Js%on;V|Hv{?&)`<85ZttDQFp z)kC|;&c+FpxY@5~c7L;Q`;$FP`l>a9gKrvlY{=D}4hM4}2UQUGA2lV<1nunKNFwu4 zv8vfU`v3^t1b}I-Rov?D<1^+qL>$VmK)odSRoOIKob5ca_;%~`s!UTmfBsDIZ$=1r zn2U(i;tS%v=kY-{aiJ`zZQVq`u%xO&G1{b0nJY6hEo#9qG6(fT~YFD z%A_Dk*B%!(nnMggm>o>I?M(RdF@M>sk#{E`z;g)md$iO>IlkcjO)Q zhA*>zObMai`FO>dv?T1Wj?Upcyh!=pXaVna<(_Ii;SO@yIBDQO>Xu1f^t*xh$w{}x zr(UR@MmKeaTkO8>a`)~$Kd0I#4ef|yDu|5SJ4gJG5NfB(+|{HfVyR6gK@u>7}i1;AF-SFs2lBkt$KH0(T$xpaM+k>OacHL0&s$O?FFz$Cp*_? zif^iRbDEnGmJ1k#po8S9Z;rkLgEK`r*hk!NdU9#N%C$q4e8&1ggPjfQp4r)zdtt__ zDF!lB8c78l$5!K4g=~|jY1jc^<-Z*Bf4%OZa{AjE0Gs)G>}{j72tiPVTh=PeuDD;G zuiHwVtPrI8&C${Me5d5D_ogQ#$66RLSCRCxsBGakb$5UKTTu!}={D$jEBPADPSA{$ zbvQ?cgb2)Nr3kO5=DOo3rz(<6+x)SKHD}=@CMJ&MR3m+-kl-?HsoQ&kckkgrM*w9O z^0%3wVv{Fmf4Td?qfg!g8zh zOVrk6#h3|ZpIrGaea7X(jFe<0Y}qO;1to152#PVeb&JQRKU5K9e|$%5?U}J+$un?l zsx9)GBO)y1L!WC4b*GS!Y65%oCjBW*aFGoAK6 zCdHGQO2-M%+3V2t6Ls?xhseo^9&0<74GR};#>Se>ms-sm{!%|(W&@a)Y-GFAr!jak z%^`((MVMVJ=USxH5f$!fW6ve7?o|@Js+2%NV0`p~Qo@AF!^7icAa;ZyJ`y%ILwxOI z@<9I^C*9~3&BXs=+VbxKf!351${$1WYrsiG2u9i3dfYx5u`&O7`bJ zt6tcrTdU`<<0~XEi|%M)MI|M0cFVb+ZIDO(c&Ymh5Eicrf;hGuVcIEwBf>A2+Rq)t zdP2e!rHGm8<#pW-VyH3ok{cTvp4cfzO6(t=fmG4Ht2)$kl^!gP7a;Xncst*r@}Pxq z7Y%C*Wmd%TnX@HgBdVRJ?&I0U-lOa{ig6iYNUNx>x!nJqk$9jI4mVC{jYsv>_&)iO zU#KfCF8;TwKC)c_YqVY&2bDOHaOFP;Td%YxmiWBRo zB)g*816MbxxjC#|=EFt#XOj`;uRNB=0e`f2R^I1FV&)6KrsW1t$lIK{5AE#iw4lPY zPjo+!l@h*pcfP;i`qqCZJTm%%3?M3{6t~%ZUjF_WVp^$^j7@QkDJ@3WjT&==V|~g> zKVWvE>6tlm2Ln{p@)Pkvp6W|FzE{*RH1a)n0B}$Zr>FKH#`kevyF78{-?yMOIo%fL zbH5WqEj)7)M%-bCE#n_wG|6{gr-KFgx)qwqE6h}~d1Jw2*e<5cwVJ2wlF@IW?dm8t=eDIL>Zp)QOLTNHJYs1ZHn8dCxxTokRtQ=8I%U=~wQM51h*w?T z^I12|6zrdrfNiQj>-!TdYKgq|$KM=dTm7*J@)` zL_a|>Lb!B(I4OE0|KkPt_{Vmc&-Li|rHstpAEYC%^}K3beUH;Z$4S2De!VfU?5 zhttKfYcdU@4y)g^8h}Y2@t-l66~=%hEPM<(-*&8XX>HAX45q%^YWgF|^o7vi`V1=+ zTG!`KLU~S1azGQiEMPNc*HxU1ri8B8FL9^#eSTY34X7pV2C5EC^fH-z|KQ=*-lwMl z8~v?)l;P4f?tY10gv@1LfR~`z5sQj4Uds6mSi-@#r%ce1!J;o;^0KnB7JeQtelVa1 zF{j*qDy_1h_Npk(QNn%>2&yat?9EkLNr$i1Q={at1)vbJ1Uf+chZluO*al1uyA{H+ zU=P7_UxP9ut%WP7U`_*RAIDblLqCrcKrtZ2GJy@;3Zk5xk`houDqg49g3UtelbJI- zGQu8|%@0Pn9^ot7B{)1h?4X@VbJzR9ySu_^0ieEtq|%Hu3O8a#5R+Z5+Q!wQ6#XMP zx9rX$;vm&EHT-)cGeBw-9AwuX#;4z|t1@B_#`XX#wPjc3e*2_9H4V!;ibk8hKghAB zoJrc8sNIcU-1N~<8*zxz%i5>FmhWG)R120 zc42?lw|4}8WpBGGDrUWkDLyalaE7_M3Jc3j9~NyBxjr)WVNu=yRMOe@=C;|^7F{e? z+H~Ma*U;1r`QF~V`-4(vq$&5G1Du9y2C!sivx_ASE-pyML zEz=h%{mZeM-NU1Wakbxm+sv$V3-R*42UD=j>i^NpPkq0jHJ2XyJf>qc&DwslybW69 zU2#B{uBN6|Mk_h^mv7I+(lV%MTS`fYP-ja!&zFnnqke~Fc5(0A_xKTaAHzr-h}~2} zG~oV@Hk2BJDy+tC$jIbA@0IDWy7{hM78en>d)wW_vzf$jHd(C^`;(55?T*STK~)J?Kj@1RI7jEii3YswcWJchP!^ zSoo80C?LO<^5wjyJ)TXj!Je>DzCdjLt&i|KtGX{zpAzsjY`^rO#lU3*yXMFl_lh^V z4xtV7g(W)sgrbwsDPg(=RC$9ivLdiQ*{y9~x?reCt@Ez48vQj<){XU6Bc8+{wa>My zClyxH?dSUFQK=5yK6dXM4jH9tU#53)c_W=I_J6Z7+hGYG-)w1TramEh^|oUs|4Gl> z_t+746sUWlpA#O7iiTWqGus`;%?W_vp*8EPKLFJJg z+I}<&yStpA4Sytc7`Y3CbW|X+8C(*S>wuLw-jVVN)8MR~pPlV0LHi`~Z_5Bt)!CJO;9g{7 zRMGj{{8@#NyVJlOu!9|61Uip)Sv%v{$+gNn zxZG`ob38UXC}_i~5oD&b?~oYxHIXY)ww4|$9qEJrxm8vlzl$ zC%~y~q7Jj{l0J`5h~A;5?#Ar1I6J$e)2UnY?#Jt15WmV+*=7K2Odt?z!!FL>Zmsja zV-82DeSgWylTAuT+5)I*s|94ocWJMA7&g6>#}oJY@Zp+vnL`7{XUp3?W$2sVAP3TK=Y8&Yy`=;`u>(JSUIeYT zIl@i@Jg%2_*O}tU5^bU0ZKHA2#R_WK+6HM829!@;-ZwN2y9H~F08-z)ecNQMe7D?T zA`TSO=p~J?z&20i49S+Bx2w<0|FF4VR-_4^ELQPe2_(jj$C<~t0YA5NN$@kHc6N-; z2kA0joTV>02NNoom|S}?0}np)CgN!{5`~-4?=N8$0jGC#L`-y!tT6oTLXxkhY-T=| zN}nitCJuq8)RA%*sZMYiQk*5ne18%|_yS&}3&_p%V-mBDe7U|fEWeyw$bI%DV~2|< zP1BD0o{M7%<$zO8XLo0`>a6Gz_i6j2&TPqL(NZ3bpcsXh_s*Fw=1@0P0+xC#Mbp(v zA|Zouc}oy^(-_l}wB&a+P#j`@9I}XOzkixKS`1#i&&ql!9qtz*b6PK3kPHWW?PF$U zr!BHp@}=B-z5VH*3N3BVo1~b!EA=6?j5M7EBo_1OXM0|`~g5K~rGh7ReRF&jRnCncrqLEf7w zOLTN}>^qvX>m4({g8PR2W$81&K$)V|=}_42c{xFXIjSWgAgGVG)}2`WyT|}MB2QoM zJdmWiyuaNb*gT2TgDZhgN=XUinntIiN#_RaE?RM2TvU|*D>e`D%e@?AGdH*S80>fHQP|~mbR$)~brMio_^oDtD~=GV z76KV}DSJ6+fAg6BE-*)c6td_&RTuvtQu3V9=hz;ouIa1%4aTQoj(xp?d$#&!IG(L| zoQPak!!diUF2JQ@+!kD4m8R7d{{bN8ag{?Tq|RU}=ltM8UdT~<0Gx1>2&$m&Cc?_v zU5!AfHR!!Pr>guWb9@>5WG>CxkAAyU@x+9VU8COwsDIb-PGgdj<&%aV03wo*L~EFe;5%iD`Bev22ZDm|n9EdTLVgW{<-LEc!O@p55>-mL=` zAt5S!e3`oX-q&T)FQ`TxtqrD)EC=6R76HGR5YPl4adD9aG(RO!aRd&PE7Nmnm2h*YMf%hE^DiQ?VAIF%d(3K-7s!}LBS z16MRiKp+)-YD~E3Zf+HKa7&L3D~lmyQi#tn`DinmziPR4r`H#{=j^BcOFba{SYiOA zTcDOJJ~x2^VdF}SE{3yvOYNA&zxZ(*pmb{?0%(-7l6gU{X*k(5d%zFHgJ& zcpwAsIkhoIt-vdD26Km6X&}(}b@yLqSUxdqu!&!PkTuzB6z(!V^Zols=ZuGoOUGu; zTuiCje*^S>9#0|4q#asarRz_|nRM%Xzxx>+%D>>JoF>^eWa<+fL7bbY>ufW&lev6> z+t2-j@cVYa3#-v$!O-~2fv88d!C|*r`zt5}ZBK^K)16lF{lBd-oSKjtx2+eLy|>!c zC&J3i)e*gRTLx7!~T-hTuyH#Vk-Zn#X>IBEv0Miz&ix(5u zX*}MDy?%5QS6t@W>t#%e83enhlil&4WoRhG(0}^%%CiaoA%Gxv*GHX2L=ile9g@11 zoi?D-rWJD3m#(krr{L#vypWNd1{Q$O4CctM7U6h6x${ULlK}hw#f&n^-^O!ad1*fH+S#Kp&V#Qt1W60e2%sW(^Mmu+f4P)VY~Jg8ez zci?2?3lrUkU;k=oh!U0{BPB)LnG6RWfQ7(V()!012M_^|K!Py{CES6EEX)#@u+Y=0>;3t zo4^U)wkBk6&{Mv8k0VD^6tOd)YnXSWduw5s$sa0F|3kA%G+QBI(CbEb#ZUjR<)-EW zvJtSI`+g&(s@_CgeFyYE-vO8m;F-F6k6Lbbo(atS?MUeP-Njz>t#ZZ3+*<;6mrB`NZXh*Sel9HUE0vG;9HJ-urz%BfA$)AwS! zyOUGE-~oFfRRBZM=qQh`pC9X+mR4X$i$cBogX{EeVZjW1yR5QuSM-L;9UOaObtFqYF$wO*GM0QW&A(qxu>y9dtdw3hAmZ!{+Xg8g|&5eJm z@O{33W@1fEn6ICLvA~*N<-*3w8(F1rU{s@sVIBI9<&K&N51;7MT@jJkEcnIusrYL< zj4qeHB2iKA!CURk&E5Yw>v@8-ogGiEa{HUchN1%gN3eJ0<({gl=OtC#;q~Syojwx}c2VNz^SwjM5FQ$3+=KYI{^Fo3q z|77UL3D@Q2>PcV<=CMB|3bmH7ja?otZm1h76&fMQ;Qqw{%(0Vkz?Q6(=Ru3`#e6O( zQ?;`3MwBfh=<+GXKX#v;+o#cj+f*2T49Pg{6aei3=F5dsWFyN1hVLBvYwV^fB?her z(i-2PJ0roB{#L9L5D}FpY7DnW+4Ao8iFv=DqorQ(LS3!Z(y+6=4FCQ<=Lz7@-)reD z(pKCr(21j)s-2r#eKT9fap5D{Ah>RUF*KT8)XUxlHhr}M4T)dKLX|UReXk`9`9!6k zO#0rOm7@%=48A1FEwQLZxO=b=>jeuz@t#+o!&4B z{{TacWxw)r{|s&fOAGXab0K%C27EPgIe3@xkpyR-vvQCf;n)F zh)TXb_^BUN8Rr5st%^Sh6oIFUwTw;hpekSzG7*~tUeCbnndTeRM)YbH?qI5i^lI*R zo!+MI-!C*InU6zGXT2%Y02JA0;OI_VHXoJG5cBKMv!x}YBhErbAFm!iIXq7u&Yj6z z^6^twzh8eQsfb=Gxax->kvzB=L`+}Or4n*CUBF>M1}zO25ff7_H6sZ1#|pZVrEMX| z8<{yhw>~Bye3{lQw%bE%N4~-(YTWCCSf#K}15OW5&O?j(_FZF?(R@svb2!c4 zRuM#(pidv)G#co8yKQ%HH!9yS>Ty)_TI*(cvWR|RWkmr2Z445G-WOFbuccSRoY=zu+H5BJZ)3IAY;&>>+tW(hgJE@_^~?aAR5jNS1!C z7HrF#bkn&eFwoPY?;<`bL#i{^G-D2xA^DJzZzH}p_c4p}mhV9Sn(HGj$@q^7xjdIC z!W5DgH)G(Z^k>9&18M*hra$JWvxdulr0ujKA)qm?Txi;KwV*$ss2 zInOFJ9JA^}CAh~wh^m9%PC*tmSJ^xWJ$U~7x#tlk;m6W??|~FNGr5R+P!fBWfq?-O zPynzvr~4mSTPR_11Dcz#l62|obq5_@d0+kzD&F@=LpC7`2 zwLQ^p_<<#$Hx_&17E5I4ziqc(BnkQ9EpuPzSqbR`8xJ4k3rN0pZTxh-_i(|w1ms}r zPs|_NvAt<=#}apx2i=O7)Un&vb)(&>iNEga1l67)GW66ppW5h9v8bdC2&pLGxp91u zs3R%h&6cmWKZ z=U_Y|Z2tIq9j)dcpv22tT0tbB`OCW7w2eMXC-lK+_Xz$(1&p?+ zo`))O-XKsWaCT)ScKM%U%op)!`DyoWs_Z0PSkGTgZTGK#g0v+`|2-mPe3K zWMDM?ojxQaq-DDKy=Dge3tnN^zPC)|_MFb^huig{1i93lH*Ao0Z5PMHW)nTuCx0AU z7ulB+YgbrIOdf$Qm&JPH7#<^|-O?G6MgN;JnOBM~UpAXXN`k_BOa5&1{Dw|BzQ)U! zd*)kpHz0L~TW56_TW4mI&LBrT#mdm*b={{xP2>uvD<~+m4sfM>a-%%nrp5|?5p4o! z`mvy3+*KJ9ndyMhdm8U`UIpyWV~*ppaXoRY26dhdBdoUw2%N_$H=JDL8#Uv14ul3n zgNe+Ch7A#(6ZFEGuo`!-*iVN#(Xp{zu~O3a$lz%Uv5)bf=XelmA#Rh-t+(n=G{afw zsBI4YKyXQ&cnpdB903ewl<#sgsQS9qaw+*vMf!;Gn~u@wRN2T08XDf6zt^`4TN{0^UAFYQ)SPf_?5EPxrdL~=(+@I- zfj` zoT|Ke$O?n!yHw}6`a6f^_F4tw&Yoz_Id5|0OiJI_X75kkTFNOgspl>(eA1bVC+GyO zjBl!#wWV3{7Ztw_Ln1;RLm3l)tnh%1kWnX`6dS8fL$je>dJZ!|fA{iVc}#>Sp3{HM z*jZ;52T;-^94vPbHRl?9YWX+%k^Li5)PkRG5R&hA*cJh|g%aRBSma}O+WPw+0My48 zt5SqXuQFn2c$=qM0iu?hZk3%Judr|j{F3Ra1r5YK)xQ344Nl$rB7;-4)2;avu1R~S z?W^u9m6%-6xPc=nIh_8$7Jc)eH|hMmH4B=nHoEr5dY~bI8ncH2 zTF&st`2N}?-Om10@u**M>w636Z6}EpMyZPEYL& z&fwF}_9G2(j8>?NqEe$Fz@Cy*A6VHUj0wlB3THiB|4TJs;&QQzgXlP0OQ*eq zXGBlsrwllk_Y-6G^onYp6rhg;yhiVBk$dwjd z_vno*Ex+0&^^E=+3cit|nD>gXDjG+waGFiSqZnhHA4nLgknsi{a&t@2QVrwM&Z z^BKG9xBz`6`)h=mz{$RpC+Fy_)++*0RaJvrO_MX=*#>L?bHS$ZW1z6!HgV?y1-)p) zSI>Xl4{bETP;E#QhqSf54At2I-!gB|hpR&32=c@i)*=r)@nOXzpU6QjZq35{RJ1*LaT91ZzsLl0wVzi9N&K zfd(+L;$LhZ)CzQ+Yl&n8YJP9o@;n;00h7aLPAc`gXlSkj~{pFx{`y>lh~=^ zUK+Ze_Te0D%*gus3PeP30TWADWx*Cpe{4@uSrEnkVlUYCMi4;VfPMn2d1ShjMc8t- zr3_ComWPb{ES%S{F0dJ*MCJZht+k34IrmZ7tuH_uB;Rh(F?jBd=H?+^bmQB9PgjVqZ*o{O0Xl9> z9UZe&+o=v#4+S8RQhQ>A@ruTyC(A%wMSsIj&j!mIbiP{1=emb(DP|lBW`z5Y72P%W zJpA}(Y#J1P-8TZd54Jl7R4I}WH+DxC+AOMR zqLgudT{k|4Ma9ID{KiVN;>!gGQ=TkizK?Hm6sw1uYGr z`Ac4rZRrdsOGihmu`Vu#gqFqphj{>1C8IEfB6Cc4GIiMJ5MUU?DT+>~pxr1ytYX8) zt35xoGXB(SAi@hMa0Nug)nOFCyb>bU?de_3e!}(Kp^&RuL_8`v-UhUu{^#hrJ%+`b zysjJ}o#%MeDBVB!Z*@6vU-3)-IsUiDnVT`CYIAmqL<)4yI{5g&(wBNkU9WmtuZ}3j zWutYXg^mMlSM3T534)LiPjAni7XAS1v8*@g!y;}A6lWxK7F}O)v5l_(P1b4|Y!;kq}rF@al{-S4ozIF9`u`;@-#xtVO<&B4Y zP&^iL88P>LbOU}0Ij{&K^JL|?VGw27+P2+CI0t_D`cV#Q|DKf0;SA!teHoCiRUZ*z z7}kO64FwlWO-tKL9r$C5M1a1M_kActQv%WAfD6pB$+-211O1A%!PkE-*xp91YW@-cPhjmaSBP>@g ze4)_3R9DUn*Cf%-<%U96WnoYxNCTMU%V&Ly7g;p2U!looFV4UaB@u-`Y)446!@|>q zjYs!!%7tj;sOTvTR?%lGer$Q%#&VB7BNlyeit#}&Z{KceU!fRysXwqQ`EOEPUZkru zq0#qvD8o-qP9S&a$dYTe=d*i3JPddt6LEKTd(f3OBkS4JUx;EdUs?gm|ItLUV#*i^ zIJ0BA>!NNv8y~`-tJq|vsQupmP={!roYQpUhw-FlsR-m1A^Cioq~p$>ZN2Bg96qbw zlMlT2n9FPjCG9k*=jOgaktMhlw(7VKMMXs`HsSS#EK8^EWE=(q)kCc~Ck~t5WZb%P zCMI{^vb~+H&@^b7nTd>>DFBH7fmVSA6biK(ImP)~WlPv}z};Yi9!%k-3@@*1WF3^8 zlI-jNA?#D@T-$Mx*?1@N9{o%#iCDgdIAOzS2(AzI`qwvQpP?sKoREl1=lC0jmtEPR z$lb$zlbx02LXKx$f;|!&CqMHHnL5_dbE= z)L%jEsyP{h)#((C{uIzoK=^#`2JX&W;;uS}VFYYuwYU4nlhfN&@-LfxSaquJG-90t z4W?>emwCV4@W5XezI?g(`2mI4%BGtijX3;TXpoG}-bK~R{ffm+l z0lwB3R-Do#Nh$^2=2ny6?|uyZgj;OWE!1am?@=d=kwG%a_@XgKZ}EFz;OYKqXRp`X zpLq43Z$2!TQCpO;j=&@6MLS*flhsP(d1;7QqH0yLCJb|YjlBVX|vIIWX(hUyi`|Rv=VFu;@N@_imH9r9#lZ3LFsr!C8R?- z3{px!X&5?`2I){Km6C2yX_1bhyHgmtYZz&U8hXA5ec#`2owd%l&iT$+AAhlc+3dZa zy6@|{?(5cAt0#@FF1)s|VAKn(^uI&ZYg(gc_?Mq`LUhIe!qKdZIp1WhoIfZCHk=GQ-jdo+PD^Q+uH)m#xKhJM!Ig zB1zsa+cer+OD+NaI6Kd4CZqGU;s>9uz}F%Yg*KE^-Lgm?uEjo6KZNDWa#O;?VH4KX z`Ba{MO>cwCOw_ZDgmKUbedTNpXAV2J23%}?dN%(!Ei7ZZ`{11QPB=-Wh=jH*G`=c# zSa`x;UtfRi=oFNbc(d!3&}PHiK1!v#TwLtk zVX|-(>PSV{Ynf6xJ1R;w`)Gbi#d7e+jQ~99jMzG2Z<4o?>B_}UX!`FO1yY8F5P_N$ zfbA_gR|DEY8Sc87IC8ui2Nm|cLmkx8^evMO)Le+P<42A)Ol%THMn>i8=HV2&ZuW-F z*-F4K?C#yy5qA8AuaQR=hu5E0_r7iMU6*x+7lQG}>6W0e2`QxVVr&i_!y&hS{CZ>R z4J{<8?_Cdq@tZx%sVhd_aVY=(!n?=ydP1JJllmSzmJr1CNI&{QRK6Bx)XhAnR$**( zc2-w{{@Yw=`rg36+q4jowm7F1r#mN%z{4Y&)th0a+WE>CjIMaX(S)-|{W!LyB-CJg zGQn6n*mPWZr296j!H??$u3Ld^i%lI2`1i%w+28nf5ULQ<(zY^3W!ZxZ9q(epYqd=# z%e{q^MAIh+b6EIxn#X0rdx5c_8TtO=TMJqE z5T?!u$l}$Dy@ab9P8_p3yzhu4V)+FvIaYBeC^~!8FWH1bHS}w!2O`~*gq+q$as1xx zTzTxgdCtug6;YuwYJ!@EQc4&S3MBcRp|9;7{v^D1?PN!1J4jp1m8?`kH@FS%cd;!g z-C}-Q*kMEL9GVu^W!>D0>iXci+g8%Yy$y#ko5LGw zFydT7&hxi|k!Q_sNmS+{BtZe><(EBf@7o^Vu`npcuuCxM`pv_onAH3juiuPTC!G@C zylZZa70w^asAb#FNQOUT8_2f>pI`agDQXet**{KE(~oZa;}k{1g7vpkl*85g|JYC2 ze!2FK{S*Pd1(%-Vx@Y6lJ#1rvgnjxQ+7;*OO6U7HLGXyFuYUru>xTAKdbUdcT>c`s z?3(`H0T@B_KfGJzJJNsbtNzzF_20i}WAYT%2UCimmdD1%jGS?7u&2NGED}L(N_;m@ zPk@*?ibk`mUg2~Na6zF3TmTYa1Mw$E-yriQu-LRJp*dL)S(q`M>zCp`~w9 zFmiK$zOzlx9dSWOcjEVE-M13q5m%`9)nXfFIaEoqT{{z$r&+kLig4HEVTTq+Hokp} zkH&WM*imlTjmLl1uoo$rPUy7J>a%4x%{et?aJZ>hTkB;tQv0+5cCI36qa&Yt`rTgT z;)!;_95{7A@CfeDJvOkl5{~$ zgf!t(9rH4Tto92AGdqYM0@(+&+AB6kUH0N7{<;9?a*}k^kWHa(-u;K)1uisg<`jol z)2*kfQoSB8z+P#>MpnqObP+88__*)c#f%47X&p8tF}^g5z*J>2rxT|mU+46;X| zlHs$7OEvC#Q@lE)(UhOh`%rF!(9$^D z?yXl`7E>WzST2_?qhQSIb%EETIsNmlxDZ4B#Gy?PUx}hnH@w8mX&J()g7EA`QgZpa ze5U}RB#;#9<2`o|Y7bcUl!ZLuJ=<|RDXFI6!m)hlz+ECqso)j#)g2&NM4eY3)Xt#u zhXM2*Ay3v`?A@Wf!lftG;EGdXk0PxY5{KRr27D}Hj!e~x?YDEs4M$Nui^`Y+n) zE-$`6$Au7u|3z;%6~IF_XWU^&1CD-d1x;n-{MR`!RJod`SoD<*S0&HN{B1;i8duA} zz9U;dk4Y1st$jm~1S@E_g{hXwQKh<-v5^xg1a40Ee%dx)GCG`ZilsY#Go|A*S$3sn z=2O@5816|pz9iVBww%qy@YGtXgVI*ncDkjlYfj3=RQ{}(T* zBos4z7zK=%9K|9DRrVo<=vk#7Gu#Z>Ex_jFu}A|qao)oORN6s@dFkSU(ZYhpfNF(v zxpOhSctzTFJtnd8X#E;)5K3yQz&~I%Dl4SV+~lBISc-l;5R`Yxj4(~lE#C-{c^Vex z1TGhr`XR$Bfm$2005Hl+1ga|b?dkEcT7mTh%@)Qp)_rp=21L0>fe6Kw=;ayn@|hz1 zw}a8V6Wh)rJk%K9MM=bM4b0IA4%%?+ySAUs!`IJqpI`?PGIR}^blBxeyzR2AzDpnK zD_Au7BRO0``lIpfA!|YE&|7S3mn$g;ymV0Auz;%2XHozDz@^6T92ZvVjU=iab!T~p zb?0mcZVc)naT*uWPsdB`$i$&E0YMYZV|yLNZ%)zt-!b;pF190?J;+?OVhN&(jZOp` z1tr=_vO6wcUh7v~uP*;PnFIQ7#>XPb5>CmhrLsF)Q}FTqb=PP%bw6^YDU;HPot+&y z_{zi{^9{nAEmLe}2W^Q5du}EAuFr0<#hrY965JLAGhhfFw4DEiy2`F6BCLOfp29Un zx+nYRalm8$z+3a#N^IKYhinF3Oq-vg8GLk_1Af8xSC4PF1jVeD1}z~eqL-HRSiW7$ zR;GLTCsJ@XNcDD9O_?kQ2-fmU(>Ae2YyZn!GQG&+g(1kR5#JK^P;xZ@X2uL|Lur z*Lj2vSoCIi9K1R@IoeqtwE>=(PoC_W<@zL2GTtmX9^>F|XrLkt^85bsfyJ18S3YkB zrrlb=VOi_m?VhpwLM*r5&VTti+`98~L0_-hG4-RmnuhK8rpA@4yJqA44J46Vl4x?4 z%V#}0#vy&PcK!9}fJNWQ@uTjb>tiN`Y8B3xb?l*CmRaWIS#ECEGOd^;E<_||eRAjG zxO9VW&v`%gtIp5WE2f8lKQA#Jp-8SF4(PI6*6Bq!qt2+_e5gF4H1|Hg1L2G#Q&A~& zMiA0Z%IB@9EUd16WKJEV7QQy)Qf3?kyEgaM4tGPcmWyG#=&7^2%=83%Zm(>~4j zJT_F4D--!TU8~NPzP=u-_TYqak<6G%;$+0RSSXqB{gswqaHkCpx)w>zptHgaT8q4g zBr3sZj<(-|vPc@o`&iKGog{o1%)RoV4gCeCHRtiU2Y(KfOTX$SqNmuW@B8rf`fx$p zkn|qkCft;l=WvM#Zo{xU`$ZAzt&!!-O5T^2v>?I7RY)_+fV%kXJO${{zQ8wme4*+k zDoMD|`MhJ3>x4Jc^%B;A;Ih>GTrfUF=9PwBqEU*Y*{hwtZ#RZ>MngPzDHhX&O;=AJ z@cDL`z8bMqZu0yT`I$1jZ80IeuyGfSmoYCceeBb61w3QMcxo`P|L@@SbrFdOEye;aT6gc)np8|me4+3 zP4#bD*c*gwz)&dL{J>mTqJNNL;CaQ1gAJh91y4U-c(CP%L4G;L+wt{psNaFbz%4nhW!i`E@TkPP#06#}7{8zR8< zMwjcJrq|{ShV9gMF5=|e#74yISSWRMhY6S_m@dl}8gV}=e-P^S>m5?7!GRzr2g3kiIauzYPzEoA z|Mi(r-l$ib?2@N3H)XCtIZ65Jvd&+hOKg&X$)&KvE-_GcJH~eWMp^H{DD@KZ$!=F& z)vI>?2+v;PN%*wv!s6b)<()K9?<8L6LhZHJ?D~blSGynVJ~=n3B)*F*tZ$fL1-F11>%h>h!isFP_HkR8UyuLH?W z3{>F!8JsCp4aNmM=76A3C|L4aWOVQ#1*^sn7N#iHnR-s!O5zgt)b*IUKxRNu)esk&;-J= zkDTlF4p1)H7|(YWQg za#;(|1jlhA(Q`yt&l?QrfW>cWfwH;DzDk$I>op!R%rqYWwjEkfop}NmWgmf}b;%h- zEUKSLp5g%KEX8oa)2L+YHaNVQjZ0iMA729(0HK{3tZ-qfH`I1^Tn0W13C@Tg8Z>+j z$t^1!Q$Tc9W;yB~Mwi-X$zNnXgR{b=^X!Q+<0Wg+vfwvSu_S2jEgYA}!{Z;6buMU7 z{EDEbK|i$59OyrIYX{TWQprIIV4C5%4Rc?u%Fb2Izscac%j$W!+3~8Jl$KU1PI*AR z?v)wjaBFG+FceIH+-PoT`2|pU?Cm;c&%bdcTWv6AfGq|FCjq8;G5J$4c#)6yXg=m$ zY+q8TE7bJWx5~rQ1HDS(zM88iCNR->p<}))SFc(=FQhLu_mu~gY3_BWuYnggkK?dx z?&iS7E?c6&>n9`KF&{sPv}LPj?KbVu%JD$U+PDA~(``bN5-I&BHv+ z^cj|NGwabTTB~^oiDpqv zR_2mOGsh&BuX86UT@L!kkMbeZ=R9UT(O;i`{lJglrAhbQEz_bDaeKaoo-5EvS#?{M zhI)yI!#v((s|7e}<+Gw!Jv}^l-z)-2+f~oIMBFaT%lKqFL>t2ji=LP8&cbjs&VhgqqI^ICei#QbKqfWu{8 z2sPikJ6BKCs?@MA-~Q(aR+9!mJNcZslaY0VHN%aKT7NnG&^Z_1oRml|Nckb;!23zi zqxMoWa*=%g`yLa#2?&()ah`kV< z6tp&;2`fA_xMqQJM$siaNOU+)J(v~VFh3}eZ#B(*zn@LBkQcGX1zy3;sKL%Qg*f;~ zaBwj4Cxa~TAeSgb_TsAf7;r+X63yQVL3ux~D_*jSwQ>n97lrW$zTKv;>6@d&!&sxfJs)89|tyyo-R zkOC;3@XqO-g0@y}x1*rX{*xU4XaOKXDay5Vb+%PXmsu)Fmqb0>*ZB?dG16f2NbC zBjTYcSV&r8YUU=}c9XY&tP`Y+Z=?MWw(tMCbn!-l5)rW3d3jw)612;F60m!8(N5YOA}f%GMq1`QPPbaG_!~ZbyA;dR^pHPT}L2J;iUmlH#o6Gf_IeJ3z)sf zMoR;gdYphLbr3u1d*nO0JJ6o5=K8;mro6*Q$J%)SbRLThX5uzpRiN|SRMG=FJ&+Jp_f z(B}s$!tJ45q(9DQ8+UKdWmRR1miq9j12N1^a`sNor$I&n39B>f2Q;w+*ROx+VN21f z@VXxy$I)WS3%@|g=IS8YOUDIwpReNr54PJ3KKwW}GsypW>kFAAx}HA}iGL{82Ez$qoD+3$XQhNvyLmsifR^^s&K!Mk8B;Al3W3 zIN0g#3UCrKFfho}VK}jOgR-q!Y+ZN2fFGTlJO_V7Z|yD_m8G0*9PmRNOB^75PjU9m z+T)z!MVth{de9ebkZL&*tS|o)$2i6|y(vBD_&WgJEktyaI{)4TNFp%Q|0$jFU&XLh zyYxHB6$krf0?9%HBlprqg#? zzvkMx+7sTI0Vv`fDf*wFosqGs^qMz%w$2OYLBKO+3}BsaMt&YZ7bY9i=X zA_R!cDt#xu!o@UmS?XhJ9AoN!N3kEKjiysmnC>(4o%RUV9=@^wZ5E`TJh=iiFR5NJv1&tp#EW&tid* zzY#xWu6_+uzOMM&Cd2t8?BH?Vd5A_{OgjM$h)7x&T4brjoP{7yXK8?UsobW;XeybQ zK?U*s-Q%iL;y)>i)KFJUP*MJgEdh=1*~hh!??Xk8y%`yAUfJ3FK9U^r>6=qFMe!7! zV)7Xk!P;2n<2sL!6H9y>9axsvaS6aeDs1MO>O1ACUEJGd7JjoaKxJH_=YD>+nvJ>#7#JjKczNh}D#(@Zo&U`+X`--VzrQ#kOo{LogVF)A`j*keOT zAc^2D9tEc%YNyd!K>e$iJ1BT2>+0%i?O-l)-_v*iiUW*9u`Vuv_Y8mq0bjhr>623R z=Q`8a(-*`Q>pWxHRlB*RFW~wM7y{kI!q&m8eGx zhG@z4C()9 zTK|XS^w0nJ@Ly7o|J7Rg?_bo=#WjdoIi+Q+V`^rGH0^Ud+xaJ;Ld{rzFE{&jPL|{t zTJ^@@I?;{p!NZ4F|95=p|K+Ar-+_iLyY@-4pqqtP79y4l+LS{iYf-uVYcL(3Mk2ZL zs51Gws+82U+!!`Vm;8+zH@wbJ9UD_HF2Gnu&>p5KH;TUT2@rX+o_V}?j$UWctK?Qn z;%EBnrzHFY^hZJb+-?9@J3^8D&^e$3ln(O~3h=qlG-ClAx)sl}ZN*1_=qFWkfI3ZZ z4OE}t9_IY<$LX&k;G(dT+L$RL)2`yBj#adaFTF=40f&ynBQ$;C-c*6Uc0pSF=gx0! z3YBiFfIDMlbbludyV_|J!>0L7v(O-SPWBeN+@nVjySg_P$ve_g_dF4!Z;V<$L`Z?3 z2i&~vSjIroWe~@upQQ`4^Dnk1G;bQfG5pShtUJU_*KJ&W@)iQEz!i8xnv3N6Gz|zfy4a7)(t9i3E$QJBGT_6O=k_%1VW-!!;a%^s@p9+B+;MOyhWt49;W$_moCl`k z$-+*tvv&2;aPvO*4OGXm%g6)3`!2cV>k8^f{QQJNK*RHTl!8{=B}6&JAWJp9U2J-V z1dxnZO*dV=*Y*dBbv6}~`QMG^Gi12$t%P8f$(}rYLMiEU1=17CnLb0N@-s)(L`VGS zuN$ZvmsjB|bjg&5n>()$-c?G1k=A^e*1p)gakSE>s}@HkU^mM+bD@+Zz;|5Ay1zLU zG{B?+u*W^c1Q8B>fbRG6x$O{te^Jnz@o_0vGdoPQ8B8T>m(um-%;30RW7{^MTI_bI zdEXbg2u6H*F@F6j-8#l>Mb?)n(6;JaVl(CP7s8?rbShcKyJ7V6%j2WdV;+-sei5|P4 z=q+*QjqwO8c-9aYu$A6~ryyT0Z8&>RBuNV_m+zOH)%ff*Vs*!`Dah4(Et2*!62$&NO!DFWCJOu$^I96RJWB;7kVj$UMaPht{O)V(>tVzUbz+rb;UM7T685HAvWTA}E z+0rnfh!E}ZmB2zD9CYo^(#FB%FLut@q4oT57r@qGGA3*)tV316hPQ4$hMf(+(Kub@ z1P+EuqpGPYPN2wmZ#!dPvb#JmWX-^1d`&5l-|TQhyEj2J9L#@ntvTaj!_z#;9_WpV znO8l#<%-M7MyUOJ6N&hb@^E!{T&9Ia3$%l0Y_sLzS@-TUU-=2MgHB2eF)7XT#0|~) z3~m*>fd3H*0vOb@I8AqC$_0RcAc7cuF3oze^|5?l>z=oaM~Kt-suVaj5_W5X^Ovra z711#7;(4;?*Mg|b90zt-yJ^t(K74Q1M-fl{~JM)<2v`F9Xf@SdcHPt>?_c^+;UZO_&{I@F^8 z^VxKbePRx%47=pz^{Tx3JQseMUKB|>`erq(V}=ok{`fv~kHfXL#PZk2MlCoV z4TDJlRa-?#qFpc??Cc@DnF@PtKe#4}O>l$4X_aSO^NNEzQ>1SkDe>D(`WuLQmRP}= z47|(PT4X}*J$P{Qt$@uWF)?u?=sN{kPax96Wt@0U7-y={hW*o3(QLZp!EJZr!XHUV zm8gSR;KhIP)VL6uZBZ!r3!cp->auaI1X*p!P3e~H>&s4$ffm@MNo-8O;y}BsA~zK2 zCkief1s)3*4zen^yQk;g(bA^eGsWfH?6fOtKH(CS!jWLYa_^s`-8ai^*>%c}0&To% z)lPNBG8UktgwbB^p7;eA?;!<3QHM3!dWqSs4brzq{;hhepsUa> zlRkyiF5$Vvr%p_F{@xQex#wXOg@1??5HtP%(K>O1%rQ<>G^F0EFXgw@0$4hx^1uJ} z_TfJ;{Bnbw!ao%k|1XlS|1^Z*M!G2Kbv|5GzF;DVXEO>#6oA(P zHYMzR!hfh(0Mll@%ZTA1V^W+CV(@|d_29uLdU20sN2%2rRlfP`{#0g8iHH*P?Vi}f zz)*me^D zjHbG@Aoo{{7YqIBH(QUWJ|((PhPM-xaKt7}l-S_*Q47{?o-kjC$=ll#Lx?2DNlT9p zefGu0#6Wqh`NARsv?4jO>9`bM3A!MBMth^*$!HI%) zVKcVCu`JTK?GwrE+t`h<9J*l3z=wdBo8g99tfFGF$GtzVYSCZnwEY;eL5O?1C;Dv6 zroF8V^(-4{HS!JUHBdi}Yzgf4X*$PMTUhj17NIcTySIDd>Z}s{{iP12=;cZ|xEs?N zAsFl6rJC~f+~)=CZJ*39j2dTF<}Rir(9WJ7^$*{=*f6yB^zbEpBLzhd4ZEHhkVhv;()hnlak@0v;O4!``kWVrJ*TTXttJ5Y2m10Gw4x|x zru2x^nd;~1I=2Co)4QC@C**u|9q4K9T%Bu2IP%yI-2$UDUnCm;(1!6GhY*p8OwE!h ze-M(uouKb|XjD3Rornlg6-Jk%pH2+{xm4}=eX|LvhS@?gr*jcJaxRPMUki_(U8!@M zct%PVm7|t>rLb<7^y0$jQjzUICVBS`4@uC>V*s_f)lIRvT?_Y~$Sf$*TeP(>dGWlXGbWz-ES*x0-+7a;} zDyx5fAW9XSElevO)~`fC=x%XB0lmB>Ae`Rc8jN|5o{cgRt(TBkU5pno5g;cbGVrLs z%hsUV10=ykI{BAeMb^R9GP^PIw|IjT3H)Xv%<0NN0n`Ry<)``7BiD)W((S*#- zkxCJPB-`6La zg1J$p1INy5_$TO9X+=eRpZa>Qi&Y`gs7N=@pU-{9kNEN#EK_ynR-GM|#~q%{)t8JtuRzIGR9#~_Y~R85xw8R8tbefRCVMB`;`=VkXvh_afl^2t+Go~b=gEDEA}PdiWh*q= z@hf8#8|}!qB|CoUDB}C3h8Tl_AIeai_kLGU`-<9Y-t*|Edchx!c6Nx~Mc;olJ8O`8 zZu;g2pQFmVvs+v`{yFN|H*VrD{~;KB)~-&0Qgxup05bMlzP`SkfU!VGNGw}FaEndnny;kfw{$L2a_YoY;mhOef(EF5 z30X_$sZfWzt%lsDuc6>=rtf>RDooK4;sUTUP=;VFlTC0FUTl44MYc^qBYo;(WA&oJ zwmZz1Dy+-08R3{k8`tw@@20PVncC>0)q;n$b)wDe>?{PxO&35O-E#5L+rH|u_>f9H(gKLOZPWe@_g59_8vU-t zC>B*q%@OfvB?j*f9;2YB*orLVxfM|p6*LhtXxV69T5NV2#-2hX-b<8y)#kDlm?C~m3 zqL*x%KvWD#n&}6utNP?KWo6L*qHpbNzo#&{ffy8b7=oIt;qR(+={&E~AbM0L%PEk7zJ{!EX$q9Se(B(SJ{y9TgR zDXHaYzj8ax)HEzK>hPOSU$^yaF$Iuna;gB2z%qt9~L%DFy!^g0AkJvEClPhs^C?q7ZAZU0~w#KzQL7wPy@$(iMYGx zvVn7!ULV>&7Z6)ZU{A&`_j*5%2lmEk#)tZ^n+4^ZJQ~t!?rlK-c0wUGS4BgZ?FaGo z_42CiqM+^ljOCqxLeOSil$+MSM#focNuJly<&70&KYC|>S&5jA^XAyT_uBXK1MbWp zlt+h2im3uoNRhh0CJ0*4MhZ!hc9)ek;T)G}X4eg*ICR(wJdOOf(ac|nsCe%w*uAu;@M9}2Z*=c$>(Nw?+IfIbP_ONr;W-_zLr>+Z zNV&p(1yi`EZ~v90OdGW#A=5S8e7^@U{D~5F&I6mz!3MDP478JI0Tetn*b<_E-)K5d zQr~h9dYj1%>?$kHBJOLs+2bH_t@b|NLt3m3WxB73MO>Czk&}}u`suuslT-X=-*lyl zu3!HS;O8ocV2h^=0=q})HjbjnqVN06mjD&Ddr@=lBzg;M?=>3FpA!SdS4vuX0TF|G zMV2@6DK3uU@#Dv~Vaigw)Ic-^z!pc*5cVn)^TzuYm3jr%zMp4iludxpZjoL&n{1sR zH5UZ;yS<*?(o!X$7~&r!_m|1vWflMXbf>p!&}tv?x@s{0&&4|l0)nm~EKhObdJx@% z^t|(qRh zi62Z`XOP%HOS9zt>mMlle|W2(*$VHFU1H%~A@J3EoScMU4KDZq6P2_yXjnt3rqmX# zOHB$u(MV}%g4>K2fE*MUW(mPso;|hrL2JMB)2Lp%jK5>D!TFdM+MnXvbHL;ykaD*p z4Eack>eOpg6A+GD73+mMrD32!_m!QVLS1)coe^wi6a+HBleF1pjDqA?aI|2qvryL+ zNZbc0xKLh5TM(6HPEpX%bi|{goXUJ7HcbCyM=mwzS!O>p@@VdoMbug^wtlo8FTw)5 zj`Cos#eiNIOP%N|oU{EZyw)~mwJg&?Yb!gTIM|q_`52dt4UAO2Yvi`#(TM`I30*iT z?zu(lODo}_`v$!!*|}90QM;oUL=y{QDn$@_IQG~u9Gw#@QI9m_SK4*}3f^jH=kWA& z&-7MP(_;vbwWt34>;;?AaC2iJlRQn1c#1pYLIYgl*5|)UvZ%2vR;+PC%LBhOf|fBk zaaL8}kN4LuUImU70ku+v^_;uzdGK-|n`Qy=ty@x$9zDuJfIt!~p}S&Y(@GH^ofiSnlyPJz|CQzh2yGrM~l`ljuoz0lUog zZ!9D4JvnZ6#{N~ZV58~_f#7AyOFe$!&+*}k%wJTIim?gD=RBnHy#D@Xr1N_osbV|! z+sS)%%wkSk=wzpXa#7l{x`jm=E-tQcSsbDa&2Z7qo&gJuZZGqD0}I8oB2)jd&MlDGl|ZWiPi&_NHdath|@*hX9j<-R|CL z6?hI4Qhb0Lf6>@Pj5wkbfwUJY(qaccGA{m{mbU%wgH(n{Uvo(cc0Z(sg zdQVkVHI=A0l#LNfQuG+7Q*54ku=1At5fz}FrX4&5&9i!O|8noYB49oF#7Omyw+ALr za&9gSJ?7K;edIL@OA!gYo}-0<{)Gtqb7I9O%#YJ+HFf?XZ`O!O=y4j$sJi$=Up3b? zY+r4RLM>75&!>F|4qfQjNRvyb0S0q?JotXd_V%lv>z8QgeVlJWoB+zZGLdxvwau97 z)8_^|BLc~HFp{t#>2|%;Xs7kV*VeZ7qTNmO5qgrSI4=5U)<~$>LF;vP@@?KRU9A_b zwE@8sC4C2JW#HXb7DDH4ZUS4Jns}JyjgD{&c%|x78GJga;R7YmIhsMf6zTYY8Q1e; zihF6c(_*W9B$9La`KZxafdA*H*Bl(kaTJ4mYU$e_EwVd%duBV0xW8yA)+>@BzL=X1 zUgfCQLmG7oi#=q(+=fWL%c+x#rP08cnNuLJLsl##yv?!S1IRI9Gea>4Gy)H>C?cFZ z-k9Iig;_k;d!Yzc1JUeUTGFENyR`$n<74cMUftH%&DA3 zKhn+i%tJyM5CVsAcXu&vOG>slj%H(&`O=uKn~nSfW+%t%L<9$q)&apd90DwZyu7?X z!Z@6(9#rRv9;$M(;N|57pu=A*EIFea6sqfFJ7-sDrs^lu7v}hgXqn0kxJkZJ)UzL3 zPe`WB`;{{|ED>-(#><(bBEktX)jJ5IqsJ#=>-~mr=ee2fUTc1`&bJQTOAvRxGY~@G z6-OgbeAuFL`I{%}W6TdXIS$QJG1}{`RHc@0o+`A5Q-#hfH2Qx8XD!K00mneN=j5iv zq3PCALFx>a7G{L$X7DFBn|?*evke!>h5f+xuQ3=A*h+73G3`uHtglX-AMzq<6Dn?k zHM7#6sBBa{D2v*7?$8N7QlR0zM;XA4rd48CG3D6L zEGQT!f`yfF@4lL0DbLn%m)F^<@9KGy=zwej+!r9Vd`PE3RSuAK z^d4d>6=qPei)42Tl@6Z!VmtE)JiFV@g=8!}UxJ>Xgn@xMSgyS`Gu5P23m)w`(776S z-V1GjDo+i${@h%FlF+Xt8UesS-0q5Pd8#=QR^xs#kljP{f9)Jp|HX8eK7vn@mec-)+36z-36u^yIzY4hn@ezrQNx zvN_vhylzF_P~3c=-7=p|#>^J2t`Bl`=a7#pJFc=1@|nfhqZ>uAmUZ%xtg2G2_p9}3 zj77^V;43!#$L@#KBInKX?}(y(h*Bp8zVT8_a#e!2dCPAz|5QT^VUnljOouT;sy+?LOq>e+@TAxB}DI^lA*63TsQ! z%PSx9fLK>NIXge&td=0Da)~G4Q_eos{42)w&=oepU6i&oB0sW80k)MGXFS^kg3_sN z6A+Z-YL}bb@w&f@XYIA$#x&|(|Fv1=@S{3?@KTmC-SJs4*QMA1EGpQndw9PC9S=U4 zzDNgZ6^U6gj9s7DFSUyA;Y6w;s7tJn$H%_uuK@B|t~GbLIOJ=bE7 z9U6l>ZxHuQZP#6nK14ay@jM|7+UP5Bb`8|$){N#0d2CQ7!EA92XFAdr%mm;+tX>2h z-oXFyG-*_@WTP(z>_5J?xSAVHk00~fQMU~V!dWhk-!NLNaoFje5b~nwa)|9-CKsmu z*bW17UcU!%%#34MCLO-l<_$-U1nj1igMJ;_4&;?VD_O%{=8c_|tgU=I378-16W+tS z`Q4eoW~yxQ2xWaybHS#0Fw!><()5ByMn*>0aB<;3wE4ieTMhqeo_*vfJaR&1?<)zd zZZAjn^iehR5<&*^bxAemoVZ?whgzv%K#FzN>ib+vORh#B-+e!#3F7?0wxbctm+_7R zPL&2*pwZ8Bm$8!L8V?r>l@*D=5I0h;QVJiR`e6d+&6V?BsB9#!9SISEH*E{IoAtP% z?b>iemZ}n^nAhcAR;ZZz$W2SjidJ95)%3XA6&!DX@0sm>KNe>s(0dJ}foBUrpx5gi zSIictOuJ+-ERF*3i;@=$^o`|%I=j=@Wv{0`U7p?n!EvZz_!8>_&MYIp_4tz^Jlf+6 z+}NywFHU;6;Pm6ZNEqzZEsM93@8Y+%r(5a>DJc3nMTJVIx9ERAMg?xiB`Br(-MgdH z8k{Tb?ct1Ovy2zJon-NfKhMWtyvtv4*`iTRli?pi@Ux}&vYczG@IJyVNT%*ocQ<5r zuT2~skb9tOOS{cJc9vW9oxaviObkp*<9dn%psBqqFjhaHmD{uR1J9`+c63$$|hsSd=#GRd~Ban$XKce_5EVJe+AH zt;?C?cHyL2^JMpe{ch_oo)F3tif>cpxvTaClr@K@yf*FZYLTQoNqLwbRUh*oTcnhf?(S}mbRW9A`<(CL_5J<6 z`;8mpj{E1mcaLF=%{lCSp8c$~=9+V^6ZAn=;>lxz#}EkQiR3#`1qkH+Dg=UL@(3B6 zX{Ok)0so-dyi>OaKcBe!gY=dr(FL5ucMwx^P_#C7aQS7`W5i@_ zXOg%lKmdWfgh-0MQF2MznKRORraBXNXukY_EaJgAq-AcdqI^_yb}sYTv;vL7r(e&i zDywmstr!c%zKCGo^LzOQd#PuykyPPD9EFSId>~?9irZw5oLxYU>pY3w1l_o7D&*_m zqaF)M)%VcGxkZmfFM8M)>+j*JNlT0S_rH>_-uH@${&OgNjk5cDGV)nkhSuMc6#g{- z?|kWGLr$196;4x;R!6V0Igk6EKxAZOhHUbWde{0KjZC&w?<>}nl$5xO>S`WiXmZ!l z^So-eRk}heE2Sb0|3*)@C{~dG(cSq5=kQc&Y2)p)-Ps2B@csn0Ls;GZpG-v*B4T2k zj#Pf_2BDC*otf{;ix|o4Ml}b<`V6 z$6|d}Bp3ScK0(O*cYD<*WO$6M6*%k;p+T(oXB~D&BTqIPs)?~%H%Cl(Y=`4BgVzjL z@E~f%pTNRlpe&4p3uma0KzTQ}`-&ISzXk`V+hu+O_Z6IZyVr14`f-`c!qW26>8a^mQOU$V2Q4ZN=s?xSEL6?^o& zeILt!)O?ACYkIPG{au>seH_hTGt#Zg!OJA;Mq=@UP{ItU#JJ=cuEnLLd(9Q*Z`ui$ zakPCU6|+jrPBknnEWQh`tJ1|VpId90{r#+$;qC&o-sF7~;l#pLmjY%NEWI&IMwc}` zb)h&N&|B&RrVlTL)5SdkTl9X~{Q9ER;1-Hs=4Awhd0t$jMDRN^S9BJT=`8hUsj1SpPjD72Z z?&nCw&Im6O*|Uj4<+j`cz6!H@Hpgp>OgcwpxhB@ua$|I{j3s+}R^Z7D)2$ssJA$8A zxUDtl`ycV}^HYD5>vbj<|Hzft6Gh41;O5|Nmj7=u5`?`|fa@$fGobE#l{dh<8K_DU zbZ6?Bl#0J$Og+9{DdSTqe(lv~B8>2>4n!63f!eq0UQr84obB-N@(N<j|$4O|ra(8#PC$Z}~mGuFID-+}zlW1k%0G0kB^2v7eN|yb)4aG}Mwt22sEzCO?Vt;dFef!A<|Ix1o9YHw_` zGXd8-F4?~c6eeW7Be?pUKE`Bb?evDn?b-9*_%=Njo2!0xWbb3fCxqN3J4x`1M*DDP zZSUbW1G$-Orku+D?}*Dw^+PC0U)yp|=y6mkX`RzP(n6V>P-mxjk^kT19Vr3(6t}Um z(jG|4@o}+!Y6oslxXuwi5J6gQGNr!7`YunzMNSv-Lk%mFXIyi?|eT2uYA7DqFInSHM82(#P z>Kha+wz%xGq(ey0eT}HkK>oma@j`rWwuXUqeNeYJ*M6;J{ZE7adgT>!^Cj+A%z8Wj zjg1ZJCFniW#Kugi#1|+iD1Fy|pt{9Y{7g)PrLIX;&P-9IrpGTJbjl2J0qC32A^&EV zstH2LUKuLI(k>FA_$N>CpNp+YCv?ZMqd+vPEUAUyL;OwL7PE$zS~Ut{5IQB76StDk z#7ec(8rMD*$Z+;~sYS0!iN5R0S2?gogKSFp+3wRYqT88V%Xex{m^L@b zr>SXbYG%nL8{(fYHxjVLbV$W5ZftZXM0*Q6j`00`qOR@_w4QXf%{}yO@!9?JOC%6J zL;QkX;{h%%ZiqNJNOA2Q9h3q^$(;13TjOhiL+Lb%xfztO&dvbwCxi>&w}mEh2Zeln zX*pfa@##ajq;NR7)LOsFZnk7}fb+a(;KA2NR&%vt78XS6Wrn}N69^#?Vi>AxDKqI4 z58WE8cHDm9ya#)T4Ksy{H8nbXnxGoG=!>J3feFC0FdJKL|9nUyBBs@CBr@pokjwOr zs}eRHoV~nDf6tPklBCj31eg7P5>Wl0 z;KZYKJ&pvtnrn{xl_Un6In6O7VPC(#`}Q>~=;P+mbH9LqtdkE>oafcTy1P6r-P+kK z2?Ml(NfY`zP{qj#XN1&*^+*oN`QDs&C^yK-iUeCe2NV>7SrL3EaM8Z z(R}sWn(gZpzJb-g&m3Oai%p#EhEvm%2gl_EG*O7Myt*klpQ3#*7(1eXSfcbE&XfrrGF+O$GT^b_ z6VM?cIoX|x6@b-1z8`LDRazmU8PwSh2jXuJP7W6Or;eqQPeFQ_>!h|OY229z<}g(# zvm0vgc08Q!{y%0mGlGl9eM1+wpF5^X+;S}u6}{Y!XPD(Vxo<+5<0 z1>bXm5_70f7J_X88;9UUr<_5+ax`~%=8mbs5n6S>>U@~tv>&Nt;`nVWd{n8kf?Jsyr{1GIwEh@fF_r*>C;r%B{w}jG8L2J5Gmivt1M8V@ZPW zKiQm0cB?SA-x|fwl1V)s<;#{$UUPcajdpr`n=*33xbK@j=WYIGA%}f^gHw+Mlf+N6 z*TMqb5E>Wj+9YkXp{mPbI?b@O92&Pw?I9OE!Ov}~z)y`IKR%b-C|Fl&0WTWO)Ase3 z@~Yah-~a5Zl>6aD*_3p_ma-ZbLUn7ru%+nu#XXxHKW3A`6q6RP<<%M)>~WbMzT{#G z6Pn{MbAT}e2vlOVYz(1`p&v-XkG^o6esD%C5Te^`ln0N>bKZw}UU^VPyOK^m zq-Xr$)tcY4tlnTH$ZZ8nGh6+}@Ppk~%-)!#SXb_7^^mHls!F+GrL)|s&A1V9XtK1t zth=BqDY`P?PR_nc$Yn((wI*F|Y3a#*8h%Q6czm9%8g8Xk?+_Feoz1qGT>{|E!M3&i zqk6mN+}x^-1RPI&q`bUNHs<2V{Lw~AJT);$d3&#(5C#PWWxl<%15x=3?53dTEE`6e zM?T;+_RDKBRI+1d^ug*KLn z@VQpZiHL|G#TBf7($tu=hdfr6g@?LV?O3$*)#2|4&=fcj8bQsZ8Pb4}2Cc6u()y)F{4}9$DOtPRi02X}$ zC}5=4$UZ33{j_Gk z`D5etnpC}j;6bhymJdh}m-gp6kTX&N>47a}8#}vNqH;z*+-+LtfByw316O5+9Y`Jw7J+TWhhb;p{&Q7TYE z@_D@4YqRhN>j#Hd`CGfen~uAr#>Iua#;hSOYDkehQzh#pE#!L4V!Lzhuq(Kbg8;>o zb~lt_b)rx^UG#7XO6+~nJwJ>2#ApHc7Bmj+FrimigOPsYskJwuUq@W^{nU+C(< z6C}UB`b)I#@2~C~^~J6Aj+t}(){Q^e9AQ6>pZ~3xN43vo)t;|wY`>JjO!*CWd1A^w zN4|m1_1J~odkEWUe@djW-W3%f)IDu}u!Po<-AGI@*XEX={Lc<<_C0&DV-|kaCGpuN z>{C~^(JHrA^lB~)?VQ53P1Kr>UW%s&@$JW?88<8u2`_b(x_V;~6H94e;@Y{ItV}LS z@$gIz)q65Ne%{wJIM7vtgWV}HkX!1usdKi^Ct_hCFlCpOEpm=rUCqmWyDkiRyr*JP zYi?V36GeQFUZyN>>Ai>nzOcD#^c>UJ8qY;~-JM+bj6N#j zU0rSUQ&MXRKEBT3GhdWNizBFM^@=qE^aQMtCSnJw<*rnLm~zH zzF>)fJ71zvpa!+Z9T(~lZbg%Eenhb{sNDy}Wxh1vz^7HocnVqVjUnS=+RHKMjh}E6 z*A`uA+5$V=>FjKBQUHNn+MmE~E6fo>%nt{QlSZ7KySsb608XPJLdc0oF5E$>KnvA} zOzg4!-i>Q-9ODxoKyHXV#%(3n)({XBJm`tPd z9!R`DvzWpboL6DWqh5vk>K@Q;Zmnt>_9eigB82zGL$7ZtPATR?tipyqE!BNKrd1Ro zJ>L`fX;>rRF`7?j9=}h`vOpy)z1zHr^EqF=GW>0aokoQ{`31?q^jOxrAT5TJGT+_A zu%VTa_dQ{zt4o6Unzj%hsD_Fh7t@L{jhNKxTJ(!C76O@_X{TYfLh@_oVviOkWQ^<4 z+_2ElCk9y*UdT*Cj;QrABb602Ds;|HwWn>TMl@c9Q7oDg2E*e(*()Ka%5 ztce47=*U*E>YgQ|z8cSMF2I#tpYN;dCnYB{&LetGw-2G{C3VsFqY2_%heqUVuQ7=9 zN5+Y7INYi;cXlq14SSMMC%RNd{EEHM zrRUL5k+U2ZfNmSC2KYQbNs$Rf(&qoHb$QDg`zmYl^Gh3#2&Y=Ib`r8CVtc`j4_@9i z!0kGhCULJ*!jl^c#z<`;WmHx_J!0?q!NM2TLfu1d%&;I}@%dk2=IbBh4hGD3=mE;D zTlFQH^V`;_-99~^)(*SU{UUZb;t`Zo)k=*{=<^#U>G8+?8pD|~c=`4if=|goK&xE(pg^~Db8Z5wAktvxzwnq)u*u`LD0Ezm0tLl z_lWuKc~d9z0vo$`V%Nr^h>fjldDPb8@Tp11o7QvLhH1_OK6@_tp`i>rJN}7MGa)P_rzBp zukyOXJ<=Xrn4U&0ComDeawZ)Jna4ma(NMQp*Aa`}L3D^ds)vdA7BGve>2k%PPU9OU~ zBpD3W9JJ8t#k7*J+^_wNd|8KV!J3DNPqo;Nb4#xfN{*Ie#u&-xQ(G%8zlgDDYYY`OcdA7zX9-Tm<%kj!neD{iu zjJ8jYDh29+z6~Im8XF=$`}ze+e8^TApx9o4riOExkIPqoctx~Bx|_EY&CCo~ z$K`{_bdVRx_^1d{JuXvt1G>B4-D5(*CL-#;3Qg?Z-jyM-w(eg8xUCE8#fyNUiw)JkZ2Fo<7i zYd9#YEx4X;YN52ChfH8Ie#yrdklq!h8P_5lqt&poBkbT;532z^(@V`bh8>u@Pnthk zDPjSuGX(D*1%p546ST7T!?!p0zlH{<`^Yt#gaO#xvGEw?Nwn%;T#s=f5sc<4=*aiip}Kl=q=YO9(iayinXlnD-v_9|;GQA0irLZ3 zx;lK$7IMMHsmEPcq3xX=3OV{>y)mwh6Pc4UGb4?bgkHKOQK&fC3rW*pYo<0ZsOK9E zZoN56+EhOQ*wsqs$@*wm+*F9i!_rc-9-TtnI+3+}5`jm-tsR_~s<0bPHe=bYfH4%) z3$GegtG*7(=iG(!9c_J2G&KpqkNSF=ZfQU8Tq|y0KI`v|6An9aO(gg(V+^_*Nv2C& zELWUdWf`@5_3luey?IPZ_saZ}t)b9z(-A6s-JG`%-&zG0TUb0lGIi#rM|0Je{jYDC*%SJc`0T>~;AX!}O>COut7vN@C*HHN ziVK~I3buE0GM@FL6%`ea;*>H*KHYzE!``Q}H^k=!)*5XFZ5U#-CgqV*;f{v4f-GnS{4A?kK=0>5;+ccnNmM_7K_F}VP>VV+pD2pvw5Q5*bH^kC+)&g#ArJ&qSdj=m z->I7wMSe0UGaFez<}rMwzvuOm{<5vDeU?nT+sa^Kkf(RD@olb%s90x27d5-~b%S|@ z?GHqUo(j{H2*O&3ifORhXOR8ka-vX$HQai`Y5e^03^z&oHSRuT&CpDJf@V)7zwg+Q zV{}h{J-#N-VU=)YC6^&IAtgn((RvI;@3d^_Q=0R2j`WYYxm*wEpklsGC8j3f{oAJ7 z2k!3t#xh#aQ*-Cys;YFe0er@-Nc&4JH#s^ciunTp7jsvWxjm)=e*AvqE_zk&;+XMvRC`} z%|*W2?=fG)5w-T`B;;Ko%hRWNpl8~gDMN$R*lC1W&({R6(oe8>4)Z_&_YtV=es*7v zEdh{O#;3!VaTh@6`83r?I5?QYVAR$~^6uBYOPtf&oh^4CJC8o>#9xHW8d~`Ku$4C@3&7GZxhG zd%8POn#c9$Yc~Y}KEb5>Cma%z$Pydu1;>-2lJZzTE7+WE}?M`$Pjf@}s{iLOsc!m=g!`bwrb^M+1FF!9+u9MaqX8B%6@%w;T#kI=e3Az=9q zg5AZ{mCfa~^{~4u>rr6pZ|yR^)%Wp+8{MSUE(wIP z&el8f_wZ>}?q`Ts&}BF|$vQA_Foa|k@FOj(ZnpT9q~i%2Kj7lx%GWAOso3To0zGdY zAJ`~*XD5<8e0+K=cpJAJsty(t-|RA_uz?tPFraBTm=x3_913WoM|0O6lBc<`QG(e3 zBFbmzA&Eb^{RRqx34F;2T94t6_Cl}YhhtEufw}qTRl_g;@d8};|J{a1XW(HMQ8dI; z2e0)T_MIi8BfJZ*jm$EM zS6op+2?`qotoeiHp&={?NbI2KY&O()N4yfOvYJEoebrOxA(xz~Sf>Jza(%r(s;f{O z>%s4az~z6bdV<|XrlNj5mJdZvGGD$}KaFj-Uka}S+S}sdq6%TF;6Nwi42zy#XND~* zG(B-ZE|fb#8ZSz+lGM(jn3{=6XlfZOA6{sdVL0{bXhPY_VC=I0*56pAp^cA!L2%}C z{p%Nmh{wUt!E{b?b>(CfEU>n;Qzbv`p*VStB0o@zQxYuh0}dkc;=-kGdl;1Xlsr<9 zqsY?JAV4U8)KsJq++*mrCgbz{J6@#)B3jsae|01r=3UtMZ_o@MIl7vDRxM<+YJEmV zM&9#-lHK>}+{-u_BSP~KvbgB&Jqb~gXn#fN!239tk*sPY6 z9$&1a%k*VIcd|8Bzey+aCO$Tjx}!j-WD>>7DwC0Dl!0KMUr<0?Vq4-dThADV5q7b1 zY}|kFN`-JP=${WPfC-X*NY3lOD~si7d9M(8d2#Pci{76j$A9x%%>RYsf+8|cwdio5 zY95OO>+tOj^U^Qw?y_kA5I=^sa}o(RXw7xQq}DCSC%W#fwx-HOYmo%S9@i>XR> z`O5*#ssw>sT*!Fgd^@xKi~35Tf0Lh1HLO@(7#o)qF?>p@QLE2+$Fgr;NvapS@M1+q z7FEaqzFo4e2xQoLF>wS-+|TU^+hXTt`Uc$7t==jLcs^1In}9WOJsTPA8e zc%S-!-V{fZhHGlla>jXKZB0C3I5WRDZ&g}uj7SIldi$Akx_)=WT1V%BE~ojK2WV+N zr$>`B0b*%oPJFaTk$vide&S2D>$XbT5fF54ZkX?XDDlA8*NaFhc+AKom&cgyq6o!Hk31#JA||K^Di(qFIa@ky;1S%QQJmz?}{KA0_2T zDjBmEOqa=FmYR(Ru0dbxQGeW-WL$&&Bt$>t89#Az+W#g86X;K=^I0I|#_p)8u09w- z*$2^{C`u3Q0@>YcEI)GRP%&H9o}YrE$G~3h!3QoWzQ-;#4GstdCs_S*)2SH$CK;2B ziTmnzHEJ-$JCjRLP#|SnIemzgHHJ|+%D>En#qkDH3$1qW+n6~{2QMGbhi2+|sql66 zQ)p7tYb7P6s4kVFnQoN*2H()o#T-xR?`*zY1wRh2)27gGx6n!r2mSt50m@@zR`Xt{ z5{>GQ77+<-2f^>ij^-sM^GIpw20B;ufWVh|-@6)$ciQHHK_c{Hg>`BWOK#%g~a2BOR*iQY-1#!PI`$XYG z+pQCPaS!2u##QD0EQRnbqtB^K~o3#zEx#NEPC>*QI3`r7`eV+!4^p-g~9FiSr||ZZN1U z7ow^6`zt|zw6!jT-OJ$kBE!R@ScqSM;7_qSrnu^cYs{g1OA`&}t(Lt86zqyJK!jK4hq(5fxO=^Tk45j`11M8>h!Vn* z(BGfZ^nJ~;?oX+wYM~Aq83#wmt2T*|QcrGVbdvXgcv7(x)YxJJh6HuM7fCBrDn7 zVPt$&)-nkSl#q?_8o|v5f#_ZCi_QUxRBrdDB!j5)ib1^w2Fu^e^sr`}c3KU&7L)0z z=bzyFrTgBGIJlV}-}PoQ?{z^BXm?)6Wl$fiOs=zWvICr->%iS_i~|9{IZHdwIElygThNFx$YXCB1z;XiO}IJ9$*7IC(Sw3li(6awUdLlt z{=Va|*O|zUYTG+I?N&DCeG*P|bS^G04MM`R<%&pxjOj2*`1%Xy>P)XLO{%M_BX||X z&q#T?{iWhJrV8l2;BW@5^6#zwkEv$n&vyB{V`y=b`O2x8_J-`X|0lgz@=ezsPN1%p z)U&pBqXE5cYPR57CbdbxY0L&ZfM*z`t;q7P8zEQxKXv>QUkZ;qRNH7YGCq`+lo>;* zftHWHH6K`AJxS3t@^X>tY;ew~!`<(hYlbX+S^KqmIepL+6T`SZYE=h2TiYokw zvU8>U5AL&dt+%IiXSi5n%wt|B^M70)S0Z?Fys`;I#{Tad7^79$+bmn3bY5U#r@r;`ZZ`5F5)M*V^s2mRsr@wdO*F9!P(Cc~0jHhf zy!M9c*{tL?K!zV$rYd&4PQBy6es6qwA5Yi9t$XHPu+Bhs#L=gkZ+Q7Fc5-G)u}MeU zZlyacHB~rFR@SgD?zzv;pD(3uHrY*RRmy2Pf(5ULUC(A+L0-UPcS_3Kf#3cyyzYjl*h0hFa=hkm3I&Df282BL=UV|3Du(|jq&p0)5o_b#~+AiF| zw4|iu6=+gd2BH(Cyx`S!)D0Pk{blNegJl{Z;Q=&9#n*V={7T3Q7RQmJsF?GXSIA|b zxDZ*p>j3IJ9UV@0<9S1Ix;(Upzfhpe7pO#jKo$cl?5hQiv(# z{qtVI(^^1{MDU%a6S7Fo$+@VF|Mnt&AI~sY`y_D_wk{Rmb^0(RWi!fR;`Q51a5a1W zl|jX>mt;{2F)@AS6Xwl&Z{O}MtgiMfAT>ztuXc2kdZjrHY{k%PNBtuAURa_O2A)NB z>hLZ@wxJStU36qTMB5`|uUldRar9T((+>SNmP~*u=^Pr0B+;H$TnSSD4tf%NZd*De zq|X^r+hNHKr-+OqEwrWXlI8wH&gazGe!?FfuX&&3&w$Veyk}5uEPb)jb!t%5QLq=% zGiHrPC@Ahn*DF9?xMQ5rfv1ni#s3(W=@7>MgvS|97Qtd~We|Ol^AxCnkfo)iuOT7r zBjk(Wfhd@*wvy3TV@%awyU}tL^Ioj>#giA*5ds4WG=!TVR5C7>PW{U`W2&`cvG|j% zXi9tIN{hM9$aL@Hv3Om*f2cvX#Y2Sm_%9hLg0Uh4Wx!@h7`B%=qsZ;?ue~bkN!r=r zd7XJ=bXn?Mv`&&YWf(yHgPlMI{n~B8Ua$*R{ZSC0Hv?E&<_@ebwMF-&rBm-^j`Ats zBvc5;YceDOi~KQ8{Q&e{%S%i8yeY35aCbGiyE-VJY;##;$@D>SDqOev)$P{bPkvwm zNLwif&dr7XED|B;mZha5`AH2=M$394PW+4bg<^F-d4+J7{r2P2&uf;{ImBT?X&5VRzw-e~q@Xo&TJHl}fxZXKP?qxL zHm}Zzc|?vg35hdE%K$ z{iPUu4_NJe*|0F_M4lJxN;y&6X9+;98yqvA*!WYyZOo3oGZ8Jji+%NJJd3^3snTPr z2xwx@Gpq)-Za8cSEHydHMpNN^L}4WSVZOfiWrVLE`JBT{n>TE6)QVm3wfV|RJl3bC zrlNp112pm(HZ36y)X}3SYh^AQX#(Vhz?55L zP0H20@xm@Bf(?*1iyI|47JxruzCJGnN{VUUS$_iW)KSQEv~U#&R#x(WgT9@IAmM($ zax_;zt#g}0-kYnFON^5-g;k<0d*gkM&qj$a(pt?9QcU1EbCh3nbb$zHk;Su^>!i70dFfVgEhe;6>@lx)r-TA)!gtWFwvq_E6oPewtq-|N z-h0~ER*%4XCCnR3FP%&s$9a+90vA{+m29R_nH;9nY_dV@y2fTol7UJ)B!(+#|NqB-J;uT9K<+#@8kho@u%r2I4`XW@*G()AI)~ z4*_4xS6RX9k8A|M!(kxgh0uQgg1NVs(|f`FieXo?N^iJaox^+v-$$V%n9^*$58iO+ z(VBMJ3K}vblQ_%wxD^u)BR!3P)nyH~qAt5QZINM~` zRdu?_U~U@F7WMED5V}12lc)Li+Wnl=aP!+39?OT{KQRSs9U#~$FLq`tQ26=z>0+6s z<}}81uiOA1apP^wf`=z$_=kRe)O&aV$y3KYk&LV;I_|E|zdP#RfF|NE8+t_gm$(IF z%Kxo75Eu=}+S{^%)uaSh!~{5380-ikT2spA->=Q8yh-z*VZ32 z5nZ${KmF$yyDB@;3PN13!FoM<_ijr!aORb>TCpK-bZ2NMP|TT7bXtan4r^wF?cw(* zrJi{*0<+)U;fe)%T3z;y87!>^g1e;zD#S1MbqsJn7v)CoYyC;+&EJ%_CyPz#_c`*r zvPro<&I~rG)mu;=9v*s3X0Yya<;rP!2#grRJK-V{HujE`e00;fsX*ia0|f7)sW?Fn z1aWA@duDjufQ(K>v4WwalY&n2ClNF>kPtjU4DfJ}Pd49#S*YJZwD|i)Q2>J6zdpSq zI6Gy&_u9@Y0?CKntN#&D3ma;J|FW8hXaE+QI)xY50D$NO?pU~Q;U=sAAEf`EnH$K1fX#YgGvmO z;Po*;bf!v8Tw!5hLDMMzdj=HJ2rnh|f4qXCH`|^wny=%(rA$}iu}S~}I1bo}?N&9O zqIo5Y*AIP7F4%2yn)}~!$Sr#B_I$>|!!R(OF=|DaznQ?HTn#@K^aP|*%gGM+BS<=H zie}Z@13||CKrVj-Lk1eo+&eos2&mKR)V(Br??}+-l-Txhb%x_d(op?}_DmzCiVgx3 zJJCd4pgw_7n$Lg}@A||MMeWQ4=nYXNrDu0K@%27ed4KWW4PO5kaKgjDVDgHC1HEj@ zLh{f4TwQpc)DO`TFcH(PUnfn>3^eFtlL@1G9qVg~hzd$X9ZH|RV8jRNS6X5LuEw6o<< zafNKBPCXX2fg|vns1JIT0mA^|=ozEJ*XQQ&=1&~hxVRFAO3zA4Z1K>!>d$5G16r*u z!G2x$DED9fGA#l0lVDpKE{!HIsMRNh;Ip$_1PcL$-L0?|j5ZhnirQnkRPZkE+Fy@5 zd>V=RnC?YE#uoMV;Ssyx2X8awqRtBQiOtz`QV=^Cj?P`0F6EU>} zO0G)byVY;2K_TBt%@D`o!g~J;F^kgdzR#g|QjH33AOygiKRMd;RI&+g%D9qCD#}*- zyaXjzW4>8Sgxm!Lh%XO#4@ysR+&?L;+n)XVKsfX4^S^-~>8;p2rYA6~&4P#i-&_}^ zQ0@UBlIY5luc4uoEG!Yl#lYIwepK}OsNePG@nQLDmEW0?`4*z6p3uiJ z8h4a-7!Jm4hKBT^bEp+ZKTlPXe+%vt0ip-&TI&Rc1UC76HF@NdeL%r4^-q;CsFi=$ zr|eUxcW@2BAVqC98PH(UAN>RwOc9jW^LSVTMvdkHiL9_n7u95At5InxkzFWAqgGC_ zUw{58{{DTWYWs7hU4F-3HiyF;mj^gZU;t*CK_d-a?0rm@J5)$iOiaC#)AmToZk@i{ z+I~&F7gTleprwxP6h=Y-2xDk;La;l6Kbn|y0rLT^N-mMI*{JbxoF&9!{*oGqIAq?7 zOXXG*kznLTKF3Vv2$xQL4mlM6tf?}S)uJXRcJr%ebjta9_#^%5 zO~7&zAG)nFlCFuH=Vc`(%KmA_7IvdA4ho~@Ct?sd-I~ULT}3Ar!Uocao5S{7U~*M! z)ThLul6}R&@GO0(JCu<7w_+U?c@t^dSl$Gnie8T8s+5#R!uo>2laO!pP+wYJqLr`5 zQ_fRbx(JGf>`a#hf)Ort5b!=@cE?)0_8)$E@B)^ogHqUAs-`Y+#$K4Z(Hu%Ln9MJ? zOhu~EYc*Sq`g&_LhgPBbDa8G3uZ_2Y9a!Pg-ZZ!+3E9Vi)`xO7My&xExT%4o=sUYL z(%lrCOx_EXTf_I!j}bci4c)6C?p^=Rxx(0z`776#!-XgmJJA8LhDAyW92pxA$x&RQ1=yl^28oj2|FOYIbLCI)W{ITY_R0V8`upE3Y_`K&uNm3Abn z%y^E}LZ|5kKmTnI1&F7BfACkm5u0)M>%t^n;K(hFN%#yXlp6PQlC`cE=2f5Iyd%c_ zt$icWU~L7RNuSfjm~`grPL(+e2V#&ef(V2Xjr?kp0JE03-UuI)O5KvTyj<3>-ds*| z(9chl_QQ>cc(1r!k5;mj`_>*j(4rC$SjwEi28$#A&k!)o&dJFMorK57bi_oVLfkTm zDA~r@8Re&Z8*;|`)%I%{n5Q`Xc)*j(yBXQd=>}?IKF8H|)cNdA=bb-sGp}BG!0Mj^ zmy@gUwTv(#BrDas^E};qWh9GHt?VoumtcN*jZy7gy0fre`)^hUi+K!Z=c;%sDG*L# z`2DnpWLzLUUqbnTPYf^(dVf?!CTkpV@YyotHecN~Ih}0CzmKJh9d3Jy6`Ad#*pzqw zzbYF0T}p~757Vy2!pG|A-VdOA1>~5^_?d)9m})ixW2F};T3(jB+Nhy=le&m5Fqt7{TaQG9fFYs0!+MCsPv^8V>CPN9M^X8^ zqyx4s7yY~B92VLjVZd<)bI1Mg;f*}f!x$!;)pL|XvQ{KIJF3Ri^&Xsrdeuj-{GPsj^s4>3ub6*TN5^^Uc0%ahz56B5AO3ER+aGEaIxy+B z&xkQ^Zb*hswyE}Gp@U59U}UrTsGw?~u}HN@=WwJNRdTp5o?aq*pWnl#CIHYC(WORx zcv|qAOEf1$Mf{$2T}Dp5KtjPqW)`95p1_i=8pj^*&PYxsxbi=jhp7fUScTrZr&g=~ zd~db)Plm0?-h2}@i*cs7v^32Swd$N{e<;06;6&zjT>&;=VqhSWsKPj3*H|?*Imu%9 z=QSj*NDT}p@5Rt5KQ=ed3#U65@o)6#0X-JXJXuOkC^a!&jpSnn||lW2Ar@uToZCR5*(>(M=fYWyE&zK?4L zh5Y+O5iph$=yF=M2QTQw6{v}QdPk$8qM}rwkpQSo>dmeZ6KJUkROi`y%GJ3(%BwHG z5IJf{C$z{7omd{U~uh@Z3b z2-H|Q<##bE)i$q~bQ`{jr?XbW!ic>Ow#Mk)ZYQJ5OrUpD%w7cS1U~hyM}KM*B^de# zkUstSN%DkXw5_czc$eR4!}qA_*gr6EyAK2XvHor6K)LB$RKEH@p39`z-f!5~T7#!S9@zSsNwIT|(Ctbl=g_>lFdE@^8U`DD2(y=>SNjbg1s8sGb8%wguA z@A>)rmpNR%r;B4Q(mgw#MEp{sc~Y6KGskyTzkZ_|(Z_{zdc>byEpxXV?}W$4#|1pE zl)Qc4fLK}=0p#4trXpy&*y{JtQF{maql!A)+n;3)AJnZ0?87o;^5RyY>u-%UH9K$l zA{Qben)*1%6McP!_7lq1t36if_zL2{Lkx1g<&$iz@;!1tueU9Rz7I81Mxv2#4Xr!h zlmGRFA2L;Hl>VXR3sAbko11?sRk3bd+P~EeC|wTMzA8`REmi!j_Xc9O-s|t%a33rI znd)GYVM&<*Sb|3wsBetoY;gI(DYaS+JK$Ip5ZtFi?cIkR8_&ai+uKFc$IM)xzX(W3 zP=D)=fOVQ6A@x))TWY^wmveN#3);xWqt(8^)KpTC12~-&!6}Ni@$nb9xbf&k+#+A> zOiWBX>OFtTi+KL1s=^$U4WoJXSXx>pC_Grs%V;hUamyb2`j=9(rXm`Nz{%=Kf_(@+ z=e-K?ff!Tv*V$50%#uUa%n3HDx6bCA z8qzX2@B$U{4+)e^QaMUL$4qfDO)E4it*(>z8!birkM=??O^GxLUSul#nt$Q{_G2;e z-6LaRihVEk>#cvt96CrrsR`(plI69IX2;DF;b3Uj<~j@oOgJwN$L3wpjtvgV&K{mD z{3;?X(rFwnQq6ydC7Z<8A)+gMwlDmS3k8K}XSYY+MB?>_rv9| z8dret#KpzM_Ii-`+cWq9ZYnPypFa3TgF)@O1NW0hn3&AK5;C8M zUQ~B}aB$E%GJ-a7?;(UmF=26gJ5V*++gN! z7WI2dW?=a4LyB-J8klomR(}oYQ-y;@hkIkPkrAZTJG-xTenGx^^(WM-eU}J92@Hrv zl~qtd0i#qL6FJyCwYPup{oew$H?t>!93}V#vk{_21V9ALb2}roQU_kCxWeY1A*@V= z1d90?5SAB>BK%<_f`b7AiQr2rzQK7!ocQ7bGjM9_QJ zX!q*$?%NX{ui|74P2^|?gDjLbW@b87PkRR$;tz3H**V*KdmndMV2u9O3ALQ@Hfif* z{5`f6ZWVY}rNAEh8uIIp(EOA=m4l6(N&o@B&Gd4U;&Fl)lO<;A$0AEGW zIy^i)Ie_(_WQBTpg`#I|;`{bj_jmqP>+8Klt{7UyALJ6@w&#V;;;PL5lp*k!2N&Co zY|XzHdvr+2zLjkEpVfU!5%E*&--_kOf{ohi|DV^9NB;jm05OFb}lRQdv?5N#}zu4HtGTEZ>AO7c=KJ1Aw>7{%rN4QD-?-RNx?GA?h=PHl> zA3T&xxreKD=Oha$&|3#a>(w7mHdRtei1}Ua&!c?CSD46)mzTaaqHl9!G(e=rvu6w< zN)1q~53V~$I;{f!?gg@BPp77q=fuQq-^R9U+-{N0DgvUcIyT1A(VP<4vupP(G3Any zh=hN`YJ%hB!PiSPnkng~s$?p->I*N=KbhEE_@k@J z?mDezORSb_8PdY;>4QLvoO1&+rj)~_aZX(~^iTRM&_mw|TgD{c$mJ%H^dT>Y zoiYCPa1XeK-Qvmvr-Gipc8*Z3Xp*ErwL=m=n@>yM>D zzJE8|@e6V6!}vAy>GXEt{3Xi(67OqK7j(E6RQMy>6SOBmdeAVmkmT9V{p$HHTcjbq zv(I8{9Bao7`YoUR-3K?zWsiGrNv`d;D^bip zht%OD$iK$6zO&@9tBk*poGvlnRv%0~qF`dOP0%O^tLVc3dAPM|ej?50@PE+umSI(O z@4F}#yh^EnG$tONMKdyJKA)B`qaAGt8yZa$%(pGQoYwEE za$RKcwh{H0NK2P%>f^Fnm3wK&x0ks|#jwgP?R)*G-M8}X$+e=QodIhtKN@BRw5zS? z;iB_AtydAXWg5k=5ZCyV|6V7kLZMWWb)u@R(}>(a9pH(aWHm# zlqqs+iC8Fu8*NS^Hx2p4Bqm!Xyp*$Q<3C=(GX}{(cXZ(K{L<6y;2Qrs#q94dXFg1L zFTaXna;8%#blbSYMS>lAkyPllWV0xf^f3?UV$HJGpXLm5m^R*T{!Aw3Y)acKpV;X8 zO11UtV~^B>>6UO)lVEAn>O&o6js?#zjTQ9k;2ZZIPdOZ$_BA9v;-&fEeHQPCVVJD_= zIdn=XmZI=ir<}__G~wpo=B{zq$pe$QsOerauF6HEWH;F;Fv|5$Y}d?2b8m-?7JDgZ z)A!Y_FumZg=BkYg$i98&R%N99%!HIYTJ5IL;(K{C?~TfL5^00e3AYp&@Xg~8mo~9m zyR`?OUN@ABr@Z@7HZfAYdGqbt)uT9-#0MEBG<1rq?_Bu!$9GPh$i|0~l6At1M+8S` z+8mJmlofp}Moxv-k`2nJTqoS0|FL*+;C6?wbt*5Vk#GxA)YHkiOM! zRDLjt{56+B>49i?TB{+eJYe~&DYbt>^l7TIyN9rpvj;UD;lC{LY?G(TGq-wAH@D@p zPa~Cl7nAmRDjmXGXIxpDf>H>)^!wHvF13)XUE$c(xM*KjPaC2f%`>IbsYFCBw}4Jg zDHsMx3vGLeSvMCBnMm{BucGXm-jC^)<3zPr5sw`nSTb?O?v3z%sy#{AU%{mM6Szk2+!zTeDgpR)J5q-jm4MgO>Q{i{rmr8OV?`gbQpV0?Gyd-sfP zAkr1zYveT!>?g4rF)_V4=SqKU8ZxavhSXdU%q70_Vs>%Gv0C|tm#^4Yy3hcrUvu~* z!4E1FSsd4f`CeaUUOu9aif+(zcE>)Ab5nA*-w2aWH73c!!RwD`pmW<(Uv?~XZ+j*Y zg2GuMQ;!vL=1hK7988lTJv%!^0)st*f7>Z1Fjx2OM{xaFgCyW8<`1z& zSGiekyt6i8OccKTEYqh_t?8QTj6oIO{_q<(p{uUg1%`d7;JrW6^E1aO@ym{Ohrh{p z=N)8@YUa`S?MK5~{(P0q3Asc?OU>>kCVFlWHM-|Xv~&j0SR`?O{}rmHvP zU1rKhbjj~)hyRHn6%W-X=`n~nl5s7EY%{i!?`3h5OmsvnF7-Brb;Uof;jF86(ud>z zyydr^jg4IV16g)%ZvD>IMkbB&z;wo8JwxlR59&%vc^)S}%1)=B0Je?~nAFlv36wQX zCYPzkj>jp4G~gOZ1khe#zCy(E5u_^y7?xX=o|O-J96Zw)wD_|9ALXj3l+>!evb?-; zRnx9wajc8C^ssyT(p7yNnNill=$?PdooIUG3OZJ3XiGjP&aiKh)I);yyR ztXz;fu;G1r_)Y!f@Qj2ht|~reSxpObDH+*gg1*;qC)lW|{qao^Oo+pq>g*r2t1z{; zHSr#})vu`eya~dwo9&V9WbSND7~Y<{cjs2Am1bl>8gH^}b1vnP;O3NaH%<~P9u6<#3IUL};^Yrx9cNP|vJnxh7 zeCs6z1_CZirP0>B`~QyqzDE{#qa8Z)(BTInw;*q$GL}5lo%@{T8YAE-h(5wF)ug^|zl(_fC|2L7_dGf!X$*~_C;2wV`P}5XL^zEW7 zi;c_Xl)P!+nwJ+$%$)&l}QM`qd= zx^H~?1tBBa7rip)u+f4n(?&TpuO7iC*Eg&b=|lzE;YZ!U;TiF77% z4v%!*oh=~%J+3vLX}g(UzDF8cnMvLzqq__LDxvPIcrL%)n%-O=b?E%YkN1vT(50tF zJ_#$w;~=g~tJ;yiY4waOT`~z3oo~4{RVP_u!t8po`ldSKC_Q8iRSZgHg|^d|SlN~n zl{b|wYtY?>&s!8I}8sn$cz z`>gWlxYtl3m?9zn!1&{qpi2g{3kUL*Lgf-_3eEdXN;Rwl*CxE}Kvq)-jqXbW+M67e zwoe(?w}*ATcji~Zv2s|2xvYo2ZH#-%SM2tsAw~DA50ywo45%B3sx8CCCf_IGZhDObJ34#51zK~cnGIJmgDHk0)UDNc8G zBpe;N7&tkjST&o22$7?uZlIxfpx@-@#AgDY;PmupEq?aO(O=%cIIdn9J}q5jj?45A zgr!Xc`AWNsX6)0$jUZoN{)UV4xO+{KyW_Sw3Jm>A6wmCJ_IX?CUPZGw%>Hh3%%*)@ z=YA3xLN1_K=l;fKqPDGgq2o5TmsA77yarDbC@|8|EEfTq^iwomi7|CP!s6(-=nvWG zTL1EW4hVRbu2^I>%JD&5EJoOr2P)2s!?*Fm=4Cfv+48i$vOTst-oD3WGZ7=;WC7AD z(fLlEQiq$9Eg(8J;tG+MC#nxglyJNQ^W0*y|Tt?J-d9}<^`G?l6GL2xB z9OIQ@W3H1`%hf?!&;lL4R*ASkk7Q8QKmPQUc>4Bikg0)%*jFmwY@IrR5|hr~&$H)4 zMV+tRJ>7lMKC83(jVj?CU`2KeDt@r9r4h1cSesqBr zQW*KGgVn*MlFB9V$G;_~`*^&5;(BHW4YFp`E@xLfce=h0 zdS{GCg2&VpFfQ(wX~?Fxzo~TJAVI4;+t-JOefmqeDXz?-zf|1;DynGTJv-fwzFjU> z9!bClvs4R2fV`4!ANd1tUlZ)a?DqKKKsxzy>8cCRY3TR_b|(n*=4q;yTaQb_Zq>+( z;&)hjU4XcuQEm}wRaj!&p)yvn^~v8K10Ltm@e4LIrA*o3qh8qg=3}}1*reQjqWKXM z{M1#RXr#P0scovd{kiIxVq#(($&w-opk$>0kGwjN*Al~Scopqm_+fjVX={2V+BR4M z(MuCM5pQ~*|EZc9pJDUmb9mS0Q?*ZC_r7jR9B!hLrAJ9k8$@{oFK?dB65sBhSn*`xn5s}0im#y9HMsbUw z-0qx0RaaN{V!cbD&dyFYZf@g&<=2(b4yHZH?>l3-gKl9yU~^t4GU-YT*2vRutgRyB zv->hfEB9S(Sl8pI*lTf63_g<{Va76X8h1)y>OZB)k-=xw zQT8@S5;SEQ8sf>-DEoG>#>?h?DTY`d4R1KyG~NL;ftm(TS6C=S-8)(5n)`ExL%}{i z&?JqgHf-zbQ`D6Q!KhFQVT0aO-)tD|9TDhYm1c7q`O+8S&N=1xKjgoBHQw!#@)KAuXYl zN_iS@e3pJ!bR`HzONO4u@H?QBCa8`5HBVQWB#4>4VrHY$9Ts$oWCO;-5tTG`G7FG_Ouq<;k`7;8I@c< zA9Nh(Dv?ZN1_A0oatHRZ#7dv>Keuu8mkaeh2j>|DN^P&KzFMg(JK&v+CRiKvEG*h% zP{A`b<3%@RCMoo4!5J&Jl#d_EJ2|YeEi5mVdz)~6 zveyf5(s}dT=QbWqp`qlj$4_i2`@JqaW7%d@(Qzq0my~eMA&C8hUWt%!y*&P~w6Qka z=^PvG>HH!PA5pLYwCKj6A)4139gAJAmsCXFs7x*kg=m8pLA9!}eni}KqKNaGgQ2uH zuMOs?X3DPdK>Pc+yzu2$Dv)}#LtT1ZzkYpXDveYwM9%YQqk>7d{`x!8;Q~(2-)x}X z-58!JuO#f6AnKhsR%ZFS#yRi#3WEbdmBW(U(FWeExEYs#j4S~fDCm7HEVRQR6Z+>} zNjRQdw;c3RidQS9m&Xn;pn=I}_xE9lT!`m%QCdBjJS*$pq@sv#Vz)3A^R3k75`_Mo z>=Euia|2zOFmgOl2r>fZM+B4leGd-|jSBN7aKvbZokmjNtzI(_tdCTMZ*PNIk9B{6 z;m5lujm1R<{5vm-JCqq5eAZSR1+Lc82Lm@{(CkxS2o(pz{g;<9H?ouZr*%}yqzU8_ zL|y4O$%5F2Y%I(|J9Ia--W4?>*mEwP4a%cm$Pz&E-Rge7~a zUbwAq$shc9!{@%v2cqg&M0_ukj#3I(Z{5L1yX5z`n!fZXK1roYYfTWWxO`1(2_iDQ zC>l5WrRF*}1Q1(2|$T2bEtT+WNPf=ltk6L@#4GP%@_S zn-e%&-rAN}e$6}Mpf&cuB6E~){TwVq^FhbzVTJBK zAun&m^OFk-;n~rCQznhdckA7^4~WK8MXBi;99KAURPw2WsICV~G(r4DulSwqu_V?~ zi%wm(W(7+mqw3*tH!)98aQ;U~Na%QT{Ns`$mj!m3 z#OLG}9S;I_tw#z&KzfPYtVi#X*PV+*w$JO#i%vGetd!)!A%VXB`OD~I%B`Us#cZ@s z@+Me!9@Wd7XzxOmpwjt5U}19d{m1P5_s^c;( zEuI$_S~;f&YkO-Scg!^^OuFJelk$cLx$PgwtWI6Ko)sWD;p`l6NN+~v)YZZ9`L?XY3KJYln3edrK2Iuw;DpR|fX zT%O-j#}e|$ z;-O{kS!_-4>u#`ykAEg@O9&-|1&uLrF+HnWcuxE-Eu05`6rOz%E(`i)kHV> zhq8J8e!08Y^{UL`&1*V*pa5?VPkBK+bDx;t*3Wp$qG(oKK()nM2*XaBt`*wrnQ79h zx4-o+kbp7l$*TuE)??@Dx^x)mx881yIjQ7p{Q-l$(vu?m;K75+n&`Rt0K9ckJ2YH* zd5}EBqP`i9)UEwHsyQry2C$pw#`=vA$(!}fGopbupSYbJ8)Q^}AjUIn38fuJ7e8sQ ziiQ#@zvXb=+?24b!Ssp2LIZ@jvX%A=cL2JPE;aWNbGP&xUPo0;iFt=fzHUQfWR9xa z#i>*Ak~5p9_8EV+ayHel?Sx)OR34ci;+t$dFQn!RTm?xJe4g#HVz>nVR#u5aYrkqJ=b1;eO>E*B29_q=l8Ktub0ZCGbSWG{Z@`jUSEab)CV_s z-%YWcrnhfn%O1vUyt2DIcXPfd3Ia8wxBFX{NP}qK^AoKrL=SNIX8#D5xQmI4@9ggy zw1uU^O8;G-|27|^Q~yEm{k8X2C@&1t?r#eN+5O5{3XewDhUY~DUmh1PcPEtA&7Xz% z(`uG)=mDYtK&ff{DXF&0BcRoPWu;udk84md;rI!9$H-|d}48NDZK0X1-8pQfw zkg!L;vz=P86}>3x921nRQre~ozk8kS&uq^$VG#>_hB$}1UDUNzZ=IZsh|Be#s~EQZ zyHrdJHA*Jtu2`)#{6#ri(bsKnajzdKI=8yo{_A9qom)1hl-F~F4d8CelR3OI1;4J1o0*&SOBBt!WjU|#(jM(*_YW*y?%K^kdd`< z-(P;;uH_q^<`8y(+PE{142{=(3s}wcB#QVbhgn!(yY{HylqSEO4%WGUZr_$VoWSub zuoR`eS~}BE3M&u+rdP^PtgR%47bvrL+7{dts&8Y{JwPA6bFi20vL(`)Br4i<=4c@! zE4wmXK)E)Qm-c3DC?aIR%S>u6HlLHAk&Anoqrz-HkoD-x@##Ttnq(Wo z8I63b!n7qM!F&t{K+`aFL@p{WaUva1;v z%Lu34Md>GX@NMt!rh))DnTX?dkXyafC)Php_TSilPfsT~ZwPL~>jtW0ppgi>0Ffc z@7jOm~g{C)kOrod_Ne z5(JWTY^bq{ctZ^Ui+CiI{jq}-DkYZZ=wWXkemowS=L<)CXYKdjH$44XFGHDR zDT>J7I4$5*Y3TT0pq^RIhfo#%cZK*Led_xWm{*s-s);Z; zQ-xTffIfBv-D=#TlYve{#*2O$&%rE_#z&7FSEr(7Vwny)T0+SKrXPEIQV1C-Oj91L zSPPv0j9b90avJxE-Fu*KuKzw(`bAkg!ST%5VN6U+Pu|hfYDX(c(5^!J^f@r~6%uh? z|JEtcS^%+%CFpYDTjk3S>I3rZ+Id4D5+E0nBp?poK1osX@LA#h@g~J9nle0(6GY2H zv^{!jT5t!l)rGq*jvfu!j!6tM5VUQD5x!%HY=>AVdet4YcMMP|X<)*cn3&C!3vi~( z%pv&sTka3|nN6Q@$F&gJpy<5W7k2+Zbz1-T-%EVQE>z>f#dy}BMIgST@j&5wv@6_+ zYQZn)exZ4e|G1^15{nh$b6n}_zEA!+wjGO8i8B!2exYSkyATl8009D2Q<^+7|McJ# zhobGvwL1DQ$Ul1VwO$m3HvK99j5HqoH99gjf<`GS@}MiWd0Cexb;v9%&t?6%4HTVe z$GYWbI!}Ur*N3FrKs{}~J0YAx)H7+-osd=67{DoX1ky4x5fRKvfm6bWhvDf@jwnwR zv-IBM+9=t*{HJ7*xq0bQoWr>I`-O|OnQ}unMl|j3=q#n9`ejEAG>gG3iHdIW`^=)w zyIhPa1udNepHps}Dg1c8gWunvoP8jv?8t?e*|nHhfg9Og!|A9;DI+7}x_tDBo^$d3 z0}8ouo;;w!GCsC$TxwJht?N?IWz{T;YLb)(+_W=-gc~2j!^6<(7j24)rCO0YIjwwB zQ)g!c%XCGWP2R`79Y5xAU=-oUGBFYL97zV^OMhZC>DK-|2!$JN?mum9?7iIo=-Ew& zdvO>-ec%C;I=ro9?=6b9#a@fD&*Y-9;JbS=O;zO*_*?oSEe|@Hel^7kZ>ZiObd)_% zyJSx~nxmBmd8u3SNw@T@t^X9?DuHYgy&}(Hsrx_KgG4aNpPjiDrA`#PhyY!K^Ejp` z3JtAPfIK~r;5^xWox{|mKh8Ly@0{Xh6BW^i&F^+f)*TYE zKIwfNjPGPD@T27uOux^k0mbRB5XyIVn`>WmfZ7bm zdq&QvKYggazAjST>0MLBN%LfE_>h9nimgB*=c-6<-o*i+7E2y0eE_$f?>5YU_P?= z%A)j%H8>z3Y_Q|OlNu%>ThVzm)p= zw`(|wI!7bhh*d&xLy}A?55WkA9TIQR=&F@;MX?S61KG!FTKT4y45CfvQp=H5(owt49(n+b zB^s!NLd5<$MeG(@ZEbB96!oK`z)P3-edBkasoC^D&01L-wwWHpm`4K^M%BW~UT?6w zt_twovOW1JPDT1Mz50v!IhR<(at1T15zzf7Ew@_oevD3ghY2fvx^Af{two-wr^Yn( zU6X>lG!8kx#I(*NkVfC6n%BXROViwX4;1Kd_!J<@)T&HwkXIk3nl?Prs(FivhFehc z`O-KQQKxgmZ-?pOmoGihSQPA0TQvtJ`^bjXX!&mfLGYKwA#(Y{b-~tl?zQ(HZKKhH ziNwd{gn{<#+jz(jDJ>I06BC~k#w3W?#S%RqNs^m9D+CbK>3&2zuzP7r@|Yo51nkF} z>8skBi|7KK%&VK)81UgH<+))ue=JpfK=E>k!fO947zHxu0Z9~xSuw-%CaRB83m@YoM z#|8p3`}}nl9_Vwu(e=_ywas6r%b7;)nhD4!EaSB=6;-&zbI~iv@_K{Os$a zYAZg&^(1Dq;@YU*Hv+>92%`)QXRx2;JVSJmcR0q!{?5lRk8a@N+)kPP^0jnr!e<6W zia{-kgO#4t;2O&!dYEaQNpU{nP3N-pgsi}J>M$AB2t2Dl?COlex3_mj!RpaP`mvfr znl9B#<=eWs{v4{>Y^vE{l3VpoqZybl-h$#IXxI2i8%taWl<|4*+<}&q5MnoiFV*TKA4T!G4$HoLkcd<4+ilIuw$jDgja*{YiKamVz_ZW|< zBlAnAIiu(T^@dn5_~O~h-`$x|JxD>FybM)TijdcXpVh$t$8n{e5;?*i;k@)vU7e1W@Fz|8uv*n zHn&fmn7q)jTl#)|fEj-ZsjjbmR{WsUcJBejv#(|>t?aRfxC$e z1z31m7+%PS*yR$zrPv+sJArl|hsgwW6myJq;W`*b#nPA0+?^9%dV1E1c&%rp;IqbU z%MPWr+~&LoOBbHem0?=Zt?bB}gG)74?tVeTV||eThfev&-$c59JW7~zhHQ)uOLf~K z+QMLiNIn|A4op+7KgELOXHi9Sw7tnT)*9TXI~X2kMir=@uX7*`ACjmo2nbu(Q>J$y zFIQsM%>^#N3q2$mM0~XB-4md`H^ijdDx8GTsayN)k3;6({3z$?!R9kxK>gRA^IlGr zB*8quV*Nemp}uM)?V8@-M& zHxuRLnjGliGn*`?->5gg^=^93+hjght&YN!mR16nRL0X&E6i2_sa-1*op|ATvP*!2 zbExdG78Bm%FObps?bQ~As6x4;)FP8w`(Z-O%E)FseuvHAxn;BLH$UWsKRBh&P`{>b zxOj$qovgPvMnE6pla;k>)bArMmaS5CeX_j)KHM` zGSt_X>t65v#^>Z$S?P*@Mt4-=Xj*EvFwG z?4nd(H-m%c-O!fkpl^*DXk$%Tyz- zq5vlLIIa!^z+3_cD8Z0$nSEJwnjV&%q(_GL$DX^{)10!Z9+t`ydaD9!i6>9JIfJ`n z|NW;F`dhYrNZo3&nr>mU>2zARz4^tpW^BBLwb3#>5G0^t+ja|dYVahG`1Ba7-zY73pLVKeOh(9j_zGWlgLvwJy{K(#<40MC2+QLWp! z&+bC|a^_TgjxzY9Aio0(!+gaVc=i*mUHjqj?cAFc1~2#>Ht)lr(fHM%k?Yre(6W|w zcv3|6zGGZc*4rYhBZEe(ZJzY9v%|`=_U^`42-~r$k^s*HP&=<{B)Idn8)7X+b-8~a zQ~CR$7q?F;6j*cQ88(S{8MAxyw#!Fb57(W2b+j9PAtu|Oip;ny5=C)A6hTm{+CDh( z!jH{zit5*|CcME+1v)!cO%hat>5~X%?J#182lhvaxF#kh^oL3kvFvW&5KKl6h4M~h zwI^b0@i?M(!)GElPN@-znK1DNm@dye5C`jtoY{yp+GmV4rQy&;^Ld9UVcKfx22T{;;?NWUnaO9t>?u6q3!^7vuJ zJo^`mOj>bfZh8u0@sk}5kA8qArlPb`g}ut z#nypU6&;m%Tj``DlKv0aVt%i~>i|>U{c-ORM+88jNfDaAa6nieU@e}6Ixj*@1zwZL3x(JU_89GpaAcH#M2kqogbY&6#||c% zXc-r$oE?N+DbIHdWWEV7{;_W;v^ig&tlfAvl&c;#(djWa($*h9G3|vibQ|lN8?-P% z>UM_H$`cD2Fd4RFZe&Dw{OA*|;#*T|RrQsw*j{3r!@3*BVisfin%Rg z40sv|IM7OfV@mf$loGI*8DDJD8`xMBTO*fah=7NUmCIR%M5~h?58i6 zU)659U6JT`ar##r>0Xk2i;auBAKlq8c87rJ=eHHS(IQLU3-nN!vRSFUQ-Q_qR zJD6mEyE0!oy>A+uOxW`-A&ahY_pfx%$;xZ8@myS$iACSJZ~%_7uWRP!I%(Yg*^Q1s zs=;z?ILG4$Mlz)4uPq1EVxU&XK>wyM7;xz{LN4Jrb4@*bd~T;qp-E6CM; z73Xmnr;e%y1ClohLMnyo@0vfX*|~6_4j{vGF{Pcl+rA<@ck+AD~yq1zF(0K~Tac+)GCi=Ev+hllC`K|!y0E?yaDCEZ^t zqUEE$NlI#|b6z*`$WrBlII4>AfQpZ=Yis|cKsrC^KC66v0r`5#eX{%4sf7-W3@mn& zYF=GJYO~OgXSiA*YG@eF#;l#9&;x=O)y}K$Dv&p>oC=S>_mr1WzG82Nu@aBXMFPmz z0g(<3YZHPS1O=d#x~y?oA;*`2><1+9@L86Bc#m#ITJpwh_h(VB5er3m|6Q^+v1mV! zRWcv15(F_Ic2`*o8A_+jT19nUWfK##GJ#SJ@&}8H5v&OaTV`gRTsD{5&Dj~JXxFkh zC{Zi^%2Nybdls+K1+2{GSO>zeh}ShH+@;yIXRjx5TPLqm$R%w8jD{VQWNNpPsw@ImHh*4G~UBa{hp(PkuW&ZedV7Ti#T7#ucj%_(Gq6kPuO`3V~EVjc_7!~tg6;bhe* zvEd&Y4u(Lm_X-(~ZOR?>ZfiIoj|l+fL{abe>FFM;v>P=>RN8U7baZXh^ z_;D&C8v+@CuNJ1==BzQSwQBxkvO?o^Fsxy4OhF#;KBlRBf2a>s675dcPmGSp#m|VZ z)DQOErrEe~C`1w0sn75H9*2<;-AUdXK=QpuYI+=f`zqc8>z04|R!wyozl60LJ%=BsUcbHq!^25yP6uH+#X09rd{o4O{Y%%Oh=AeUoALF8%jz`li?X8 zyw8MztKUs7sL<1U?WbOCa@q~<9MyDr)W3N2R;_4gKi*^;vDtvIX{MQ)=mDX16S~t0 zV$ABa(kW9iTJCc!TP(07#=M8(SjQ`1GM422KG7%WjKQt!s}j~YpMu0{bL!vF zOnh#V3@Jg(J&=(ZxElC=6iAr1k;xn@VtP%~YD}y_#O8GF#~_0QF6A$(>B!C{_0vInL7{+&K1OQ~L1c&?}|n&qRV>=Z&zfHOi9R z2O~^VKW_+%h`gtS%oeq1jW2x*ib}@IPvv))kkO0h%qX7fUr(0)iv=Kc*-7o*f4kQ0 zqGWmxkMvdgorM$UeKwKHWv@i^n?1v8q@^U-8=|&N(HkP1YUm`vekqSz?vWDuN2Wiy zAv_rzrE1e|CipI*`mc!Ir%UFW1!t>4ugELOGuTJzRB?Wygq{w|}xQ-UYZ;faA7T{^YJUaPoz`%j`UKlvN zMKyw3yyg)W%D$2X6vs@5b8CrSY`mO?*+?rUWLlD`8gvX9g+hqZ@3>V ze>lq8iOCvt^*E4BQP49sH)l&!CGH3XCB0&|ad|H1JS5@97@KjkmVmQMrcQ#!X-ejW z@I(xc$F;9tUpuaEyCpU-n$snLn^$Wv#~jRglaZX3)>xabUdND$Ow0_@oEFs$FgdR| zn|_%y_;#aNHc<%Ms5eR0`swr(xa(k@L>-7M`ytl2*gE<0MS%tx17axDzIO-)8pIAE z!vmEd#S|^|G$;90qfHpc%0tOzz297c62iv%o~86vncZ-Df&a~v&18egC6%ba(Rz?Z zp2=Zp0KTK6Oi7|f9t}NxfYX|ygeI@eM2v{nX(3EWtT?R95sSWotMI4!PiE)yZvivh zqUW}ZCwmM1E}NHY@FVeyk+x!5Rn9(>9*AMo*OLNLVSNy=JOZ^bgQ^7le|2ki9$=AP zFekzYcxU?9ajCX2m`Uw^xGn|yd-pP+oOXPAs#xo~L&o3jL;GxGspMITf)Pr1;c3)X zi0$PLEsIw5d8qa+nU^nr)}g*|?Zhh4)R*O$N`@rp?Ug4GyK~34#&_#hcfLz`9Lr;_ z<)`~7ioB{9=fel_7$HNJXN`@v#;AX_jHr&D&|1EH`SN$Va=?U~bdRC}m zzs&p}B6{nS|Ie?a;$VBnj+_6tyY*<7y39)?enQUYzyI>p^!M-P6%=#R@PDc7|G%#D z|GKq#jZDw8Zr$yDlIDn52M5O6s83K@oaMH{y5aY^b-#QDsmtcM{=B-E@&dE|G|{K}hDKf=c)TR4^JXM~GnN zhP@!at*nCGKRQj#Jstf)nb+ROj;Z7fvI94>`f%51-9_n|TBYMHZ4b9Ax~5#BNXPm~ zkb_Vc+(4oGMFv)85lq3W{rstQ$MIj(icj7;pjia~f|-GArCQIE-8_m{33!54o^v=B zk%7_+(#Edw#~*KsSYF)D6S@3UxNSFa>aK5Yo}zoXv8*rTejZVCMEQ5HAXH=uj16Nn z%iq;9(oXG4d`t%i5WaYur|S>Hi&GS{w~3ZzkGjdt2MQ_BASK=3bbxXR)E=n0_G255DJA9Y_K)e&pgOd3d&g?L($6?&i1;(Fv-Q)8sf&Ix)y)1P z>m}B8(PIqO$5eFcv%(YA2-#5%7PRx-aS_ljY00I>yEamNVfrl)-(=Ng4$XC!3+>gb z4y>iBM;_jyt&7%z&|J%~OZk9B4x?f-uYDBph)UTAB5=r1J?b8n7T3w>HKS7<^Sw9a zg9i8B)e(J30S&c+r-#KCX+Diu+(0mm{JbNVRPi9UjQj*DWSd&d{$z>km zb$I^b@@P(82>YM!$!U)P?7DbC6O0C;FAR@TkZLua>ABdj=!arHSIK+w@Zmo&X{H)HDGbB5TNpdQvMx|&AexxIA*eZSl`j6zS0`}c ze-Mm-+QC{L7wp;CYllc1dj*?|LTrT zYGtLb!PvSx(TY##6e|^~TWr?H-ZkfAqgBG%TuG6C4#ET;91qFS@*w%UV9j!nEyH~$ zS+I#d*Lrv#6x(Dv&h^);?JC7xIw!v%9dL6hz=8 zcQi3&w6%pXdN3~19D3?^e~VxV&H*$x=e+lv{f_iaETkcpDT&1SI`(ZPTrqNEv+gW7 zKd0B?3MYQi{=|%nWXO8rSD0}Qk?1NZ8c2%1jFcv@vsPf8oD&cjSsT{_HA#4}OR#|o zS-*%%j`_3WQivEdh8cU#4JJWN*naI$+oW6blh@_Ba-L$q-!BU7QEz)uF}K|gKlibu zv$3;Z``O$~LQ1;kh(yLfcFbYCD1?r?oosSoaW&KJ%a^AHii#PB;ltjom|x>{YF*m~ z)b~KQG0ni&-aM+Mxw*(-kkFRxvK--92fL+z?WD+SsQ{mK zwew?d(^XLCA3`>lb`(EbVSueI;FN5U9*9NE9)*5jp;W2Rs3jCXVa$}I!yYvZt&$c9 z(uP=cJCQXpb}#7~Hc!ZtM*FYk+;11M!(1Co zPEO7Xf#%h#AUi%~SHy9iC_pM8S4}9ie~G2gYC#~wTU2Dwd6a&O*uitTw+zq8auAsB z#25Ltlhxc(Qc~Z9J)#7hR?+@$ZONCIbg}XBnhpZUR?xJ7^3Y|Jq#m(yYVGAu_V+R^ zQ>(^}bv&S*iSgB|)xrEWAOFyUBG$2T{V6fs(gFfUiCmD?-P9HUXlP%syZMZWGuwWQ{E#V!igYV@03(h%iJa>x9fyMdx8pXo}mbnj4I+j=1zZlZWK@z84 z?=CDXj9$F;^N~v4_)pe`jT?&jI9{Bmnpf^-#P$gq1`cJTVKQ%>P~AwGhi%-P?a2A# z8>feISV*nkW;gn2D**VbNyirg3lJBmgjg80?* zmEL6&sa^T8<*Dt}kK4>G$}H5hih!&T-teiA>+wrU%jt6LoMBrkrgOK9!-M{A-IGFd z!*$Ggc>-j>;f_nZ_r$Xrp1kbWd3V5=1roIPruRo%!To&c!@1hU@}ci@)%I=xodwQn zU%%l)kyp_Ui{~#gx)O1TY%oBr)Ulw)E*>)v1Sx>Be9S?nW|1016=D440BPc5MlO@2&# z{EpNf?yj;3;uwL~9K0__5EK~L{5-E2lAZIDb%pFVW=;YZ_J$B`&etFn+$1F=U|;GXkROiGg_-;lQfMZI6mN#B_ms0-tnpR<;7iFNeqw0?$+bb(NC>(SJMoD zva(+UM{e)9P04wEOg1QV3fY6$oTv+x$dPhr=}9QK){rivt znMV(ZUou9pc0de@8i;fKAJ#yD%LbhHrf|)wAOqE&L@Ufx&%mGQqDu z!zrBVKKmGmRX*~?BrrIcbwiU$WRKp9&R-sXH0Q)~TV++rQ6B<#ALaqIvDVtn(VQz1U5C7Ow z5MJJ|q=w_nunRek2>I-2(t>bE4zK?lYW9QFc4z1I)qc}eEwg_iCZ;4RqCS>ReT$qt z29g*k1t2xNKloNvA*%lEe@(M$r)|e#dZ!Vg)9q!))79cz6xxc+NDH_4tU*ssBeXrj zlNnCIgROC1Vm3WA?HcEWsXC8u0#1PdS2jK5;$+fH*fo$_!No?>L8QUeG#rdg?@A!* zbSMPDD4>F6b3#R>_nOA)OjZ3plVzgpUm?N5C}9)Iiy}Til*B>iov?|_@#JS0W1-`_ z`E;5c>Sl9e!ST?2WOsbtu5A@e6ANQ6yfP<#Kfh=;j6ZjKo37He%A}sy$1mW$!$DeM zMGMImz%_L0WdySaa|F}9y=|n8Cib^lGD+$abp&0Vo-xwU_;DC(5eXWY{Wys8?umHZ zB4-EM0$AjzU+Eo{5exwdd9puT<;p@E`sTc|qAe0yzASDGVi@l{qj1@N13+KMCN>RCGmy3UE8|xO(9T3}m`N#N&QFD(Zm@i73P5{sas@fKk7| zx%}Il&hUi6}=_-h2fO*xbpTYoSy^{K9`ittcruP?{au+*U;F!4U!c) zrPBhz_{$2LImI7Fetl%I%ExUjIW z-WA7A&H0YbHat3&0phLKa|P1l!*~~EDn>~ zb~s>`unZpf6aAOj_qX2e9VRFv-)EHi>{oat6ggi_ttmiSrHvCfF?>Mf38E*7dnLqX z-JZ_jHy&NyB3s9_gSx=Q()RWeKHZljPyzJWsclyiN!Mvf zgnS2j5Vy}9s>DGZQ5dzxo?W=TEreRnPw|wlo3PUn93gzjBt-TycKSuS%0fWRd^4bY z6F=M{KPffF6tNz?4iB}{;1myy%^O5{9*VT61m}xt|0rgWSs#<&tLoz9|ak)$5SmG+xO;z5CiWXajb~}pWzPV z5dTkWXB}4M+O2ymP(V;nDFIOg38g_KrhtNUN=tW&bc;wxigcrtv@}Rbcb9Z`cTdik zuC>>g&<~$S!<-oP8*!O8TBQJRc zzD3p~vkKVv!lZM}FTugkW4wrV?b6tj zK~+QyS%SCsE4VNH$b=HRHTD)pu^QHYU{Q=;Pwj|9o$$;3>2G%iNI|nGnR4}oI#wjq zuG4@!hdGQK%EqTQ_vbj|0SQ4Z*!uKI`0mqP4A`nz1ADo(Iy&xhSwz93qeT2Smk4Zk z@C1&M`j-#Serf)t_ErE&;-jtL+^)zEa7b%u&p?~78e%bs zS(C0SMct@6XQH{LMir67!%B}WN+%j3q8orxauYNwewvKrV!b*Nj~LhXMCrK7%36PP z+};t+C4}yZL}_8@!))txi_=wIaQDDZ0FK5XJ&EM*xw?2_@9G3?h(P~<4^kGw-C^Ue zYN&qh^0>#tR{3NH`Q1=nvo}N>hQlO*d#sF~ze&7gzHQs_V)XMsd=j=BDypdozL=EB zyBtjIC(L5o%4?MX&geSUWnHaG-elkuWMwtee8jHt=AFppDG(NPy1x$t};r!paDkfY$N zKsQPk9zaw5*+x7hyqB+dNzHbC>QHM=`|Gx5(rS7>U^d#;o9cFpe$g8QOu39Nxs4KP zOanNA*LP}cU$)R;nPz51A}mGH>5^cmy6#(7TqlK03f5gB@M<{?RX%?0*Or3pCx~Zp z4PpS9MJQQjYCv4=+M~L%}kR^3COi(xs6yE|!JIAj$hMjJSqMmtpB7n&Q?jD6vZ>U29ZP74hNz3+w+jddy;XS;Sc7<5{-qN!sr1PLjr^g0FESI zV?j>;>ohq^YHFxTh|!2S%>2sAxKxVG`m4^UQ)%Ef&ga=@W`9Bk@9rg)=OCdiv2Y zpWud$j-Jk6bo%%eFbA0o7c7zU=mm`aOEP@XQ0|hds<-m@c$EJS8sficd*5r-1?Oyt z|3k?1<`#a_#j9?X3R7?Y`m-h$vj6Xb;&;oHU$Fa8t8)W`My)M!E75aKo_YKyWGg@H zMyw3R}tzhl^Xr@-*+8q_9p-7~3HE2kirxIy`t(%(p4k=*B7 zyasc;+G2`tKtY-!PVANCFK$M?lywyoM|0b+6b^M3-DyRiXI#2=Dp~T4F;{#`-!3sf z6e({k*l5Vr*kXo2DB8Z<4;n)_)SWCfj$JC;m;QVLLE+#nve;XG4Qd^Xex_EhEIy#! zy1NvjUT%X`DDpBCGnu7a9JaK?7aP7@k&MCzO4|0|0))85a90j9N?dZDsg8;h=m;v1 zZ*q8?)uUa$Bal;{JlwN)|S>HGa+b|I!eTCidWk ze9{(@%KUB_c0iFw4egC>T@ekf#`TC?2#+$GX<9xvjUS!dDM3q7n z@m>6pdJ(Jhn4^~ZJ;V;diKdYjKjb#YYv|adpNbU_sv=>G5pi^bW|L)3Y`I%osP}#l zH}*cpklc5nU1RrS^B=9yaenj)yV+1f@B8PN&z|*seM7=)FiiL!R;%8)i`Rmi;RGKR zEZFu^Dc<;DR*wgWy0?!{iqzK+N>AL6e9s=u$oLGzvvzLte!NjC31aHorFXY5uecxY z3Fn_qk_(|U1u7%_N}|ztqt~<*OmPay;p7nbQ3VVpS6~FYF)ysk zwOa0q+c#BN_?IA92$jUC%Oqn*$4it<^|v7C0mD88bBAUNttRJH68ZeG5Wyb?|S!wXgu1o5`r}5f16I-G;sV2P3tE z461tz)iY@8+;(kqB({0w@etNdOEe3SRgiL3S)9S457lO~XTJ-59EUsC0omqGj^l1C z!BG|j7)pUg9Gq*qgXgr&>U1g zV3>T|__uO5eqa5k?RwL^H67vaVh*rv%x;GoKNmTnS12k#Hj2G9c%&;*rlF;E@x8x) zVYe?fzjygmy>GY^ixD@+sX37<8ElyM=|?cy9v}Ff>fPWK4g1==Qh*$&A zQy*Dua|Qa+cj2w0iJr>$WbG)>tFs1@mbpB9O3BJ0F%_%%mjDO3+8oHuE{b!a&?Z(Y z)3kgN%eVf!M3)3Ek>gIHwBWxawuy;Wt_P^^lm{e|X9eee{>G=9dradL=0kZ8$(?s^ zI_|Gdtq$cw6^ZHU>I$cp*v@=AESGQkdiPMYXgx%|#39&A^22WY29MK+i{F)V#cX;* zY2?GgK+E%m9h*zq>P5z=4o4)LwbsuO$Z@s5$!nXLd4Bpt9IEUgpUOfU2+nyZJz&5y zABH0YsQ29^6mZvHKObqaoe^B}+IHD>k%i^K9RY93mb#N4Ku&4z>%_#yRGp}R3;*7Q zZZL1&OWf-0SQJ`^z)pN9Fx+E0Am^>oZ)X1BE?@!i5bTgY&b!D>hVx=)XLTwM%df{5 zA}PnppF-9O-xM(F+e#~vhtTAOEiF}y#HlD|2%;^8dX(68M?jD z>Lr-bp1ZHv2I~WkzL}C3$>(4`ug9DNR`bCMhv`@4{uYBm<^5Ba_b6TMcj1NPHzMz5 ze_w+xpjcK^zoAqP4t$<^t5?n4*Csp0P7djn1fe0*pDw4jcuz8x!TQE!}-x4Z0?mL`lYB6T(BHB9C&Ian2h@!=fi$rXHWr+Rd0Ll{JZYCKSqn_f!FsOzD3 zLV^a=Vh+&!;H`)w2X0?C>EIst4-JrfEHEsQe@vOp{*?7S70C1k@D5TtVrF*Ov);{d zk6-cJPCLSA-);4u+iULCKT1&221C2S(6oTV0ZEKX>Smzh;UW{1+sQx_?5#bmct&*d zrs0qEiixBk5Qk&FZcF4K^$SroHW8~8rXL27a@iejQgn21B3hoR#J=;oc+{jHeoUk&8=Seue4kkcQ8&_E9d{)^ zRZnZ=5ge;t#_kTsif|{{?H*o3oSo8 zMqM{QL%I;DGDU|!h?<+5Pc3#|{A|RzikYJ4Z=|TCyuG=F531?A zOlLxElkeX@w6Wm`tlb0P3@&+CTqZohH?cW6rOh9oJb`o39rj#XU_wu~1V$f6k;~c? zv4_wfkv+@8DO7$5Yoo4SbKX}NzKz)?CVn)%!>(GgJHJD~f4bx6yfHiXb;UC&oV;OY z%QR_zg6_dy%i=S8N)`t73JJH1N4>ENkItS&mX1u7Rrp7n<73wV63^@aAF^yEYM@ghtw{YJ6VEEO)f;{d71JLggf_qF%-5Mx0NHT3O z7xbdLpm@fem5zRWexWAr+wWKmg_SdU9akdivb6mg*sRpf z_g|qU0fFRIDRXjf*54V>NOa4I_#Pr-&h(r742$ElSceiQvwq73`&QBA0S4>R-U35C zV1{>>ku{3mN_FUHS5{8b;>T3dFeBBbwgWjb2?7l4@#4j+77idUV+8p-j>F1OV&oI*Da`{t=3HWFIg7rJVnIz%A{Cca(K00CY zhS}l7eO?MTnTO*n#GM&_peK7@4Iq;|^6v+a5Trk!>*^?BrLq{Xny5})L_Uj9U_5Gb z6}Xh7b0j)O6OM|ZmjZS>So<0j5@W)evoe^~UX2LABai|rmF><@DuX4d-S zulR; z`~edSi@=45$Vk{65dYN*b_TL&EMA4Ki6N3t7F=~fX*)MObqh$*tk!lPu3z%(TF)=Y zaYJRtfIv1aT7ckgu`&=jrA_rECPoYb@8RNE3b;gomT3SYgeG?F~svTZCxi`a0}Z5Jhx~yW(=Bw5vVW(YZy+ z|Iu-bn&(^}i2{VElC1WY5s8Eh- z;y>L2XTSdQ7+Uk4%$zvV&UuMa(I1aynqCZ7RGD{xT(ANF5rb*0#86#rxyw1P# zbbXO)2u|^@t!^0KA#VfJMo~x0t{wM$L<9+ZS6i7I*THIQ1Di`}tY7i`)C_gop3;ZT zRm0NQ5Z6%99ey}=ZX6$koDcfPF-BHaID!W-cT}Q9r5E@v3)-s~UK$xl$R;K1fxG7_BIKsr+jPs4NpH^X_vD^8xP`tl#$V z(bL1MRrSBHwHOUe&FcAfLvjq~=y$XKT3$oJJio^^Hx#uf{vYbx4JGRTdx-Gg1i*je z4wt(&!%Jh)|Cau4+?SLYS;%i*WBupp>;=V4VvrNePXEj<{@=ig|MTDvCryT!x<))bNe`RgIhV)6XesrLtDtR_><(T$^3!% zuH~7)t5~>=SvdsIjXa*42q0^Ka5yOZ&0Looy0#;rC+g9NXyT(|)v-8Wp^hsw=>^I9FQ2!~e*UDibiGEwYCSAR7; z9s&Eoqp`kjwr=gy@MruY7`HR;_6BVVYJ#m(WkWMz}GyZQ#x}ew{b2yN+E{AuQ z3w)))7dFa=)F_o8?Gw$4!jq}l$o!Hr>nmc+G4YXL8C6^@{vxa2nfRQ~-Jy_ZaVaj% z`7XlR^W))VUW0+B?Rn}hBaH)V2>kdPl7NB3#!*zC!~NuwzweBzN^!mplHSBL6XZ9g zXQ{4q{(=IfJx}~L$u7SKX6A2Uuxo0k6L$RlB@6;H>IoYYKy7OYwfHKTv;G@Wu1&ZtdXm|pt3qM?y;MW;tq0{8n!1LOM(TikHA-GmoG$i((jYS{ zOOe@?3e%&;;OE%r=-;}d&8p)5#>Dv_-7$7sbkKZj(U1{MIW~ZH?oD0+N_WguFQt6F z3hKMyV4&oy1c`QH_~Ksx?+MWhB{DjVQzfH?(W`rirr|+#`e;lW!|UVrO5DU&B#%FM zV9;?%1fU&R0{07O9okE$N~ro2EF+tHk+lKpHrl4z?M4XlBD3>9N`&2eFDScUW_3f> z$Y9Jf%YZYl07kPUTdH?-jsawdmk>5H!j2Q9Xs_bnH1G0)e8ouUdgo3D+&mEoOH2?b zcQ(7V6G`8_{{gMU2Kp+KV= za0u75Jpt6?6Ldb|0gzcJS)RxQ12T5qbZ0`D9Er#5IVwS4vGh3~Qx8`|t^u-;!P_CI z`Ymi%1Y@K6uVG`tz$Yj3Q3a`2kD!@%smYQc^Ot?91d&+pWD|xcqFSH@yIV%qC`5JG`dkj%8aczC8x2klTLtKzGyp zpw;{YkU0h@EsuX^L@T0!eM$qe)esBeC0SS^AO5XF0u`OaRf4a{hJtplr(%ZM|Gt(wCVbemJJr;_X9d;RJ?neUX$})f0m1s;2inW`32Fq}@ z+5a9p^>SHLr{K5HXEZoy%4^CmaCLoWd8 z5Vuo?Y~dCFH!#ph0JgR`*85&SZOW^oVFA9d{`=Mh{vG69w5m{JVD|2jU8*RxJ4$y! zAl6PplGN^1-xKw zqZryR$38oFX$#Ta6L`m~N?|*UIS`LoEwVbHF5S)DHyr^Mp2}G%g_@R@ScQZHx+6`{ zY!}R68^&QC;my+mRlah4sv0zTJEEHxbjl&bR)NI@o;55>SqP5K@Y}~1o|o+5-)cX(QwE)102sO0A8$v`ez9> zCIBqgG4Lj@Vc~KNuYbH@c)NfZc4t#PRgNN2MYgV?VJbzkd^b~S;K+W#pBHus_k%wu z_NGY5qjFVn_&%xmfj-B1c<*EQ)+bk$g==TV;q!@KJQk(1E+fXUCy~AePp(vHIL(MS zDdiGo*WW!{N}2LKu;&xpu2odiPr^p7wS?Jdj{7wORZXN?3E}>y?UJ`l+VeCyslK6W zu@b0RM>zXeWU@%$`vORw)l89`i%Vr0Dk4Z-{Tu2L8?^_~I8Warv9B_GAb)ZM5(!%oxqgN@!0hRT2nn?kvPLZ>YhyF&KiRw)FJCD=B5G*kwLk#7t0gY4Z zhT&?cfj>jF(UOcs$eobmV)q(oSEaRuTA6qy6ac>%5pt~Zm7jBfUZw7^yH;kc3Iqp0 zwqkD^y8t4UeAoSh06sDpBE<%<$sG)$L~scZNE|0_6S-yhsW=Fv|YFt}`WS+HKZtwW@$ zBg5&k+Q>i@br93JPR|4lQ8TW#eXJVMDM85NnJ>#h{exqrj^zIG0^o7j%k9$Fglj4g zvbpg2Y{TDwkjjji`9%%M!yN*_ndx{GHyI*Q`$j@w&KbVb%Jrdem|h75Y^2fIU#J#` z0J>DUqO_BqWId!_FgqvMY#0NZ@E5GOIGXYzCw%%=!?Tl<4gz#VgzT|EElUeXAnlvh z+5(tr^^&nXl7nh-a8>m}+6?5VuiQ%M!D`FrpqcN=r9C8pu@NCJfZ`V?DMPXP9qJ`7 zPCAukGhlAR*rtAycdnvh#18Ad8*o29a~k&qglmbz?x|5BF;`iLzO!F_KELU=2EdkS zLuofz?|mljmx+5R^XT?>Ia*LUf%cj{S+Ya}+ZH8w34^4&|4^27PtjPTbod2o7yAdX z{N-z@+Yw3X3FkxZgYhm zjF1V`&CkQRVe!I$O0Zn{WQTYhg2>CIz~G>OLec>nsH^s4Qd&Xtg~ z9j`tn?W5%0C1hB>ee~2RW7wei6Zi9zN( z_F>&6O>aC~Mhf|Oj0V%I^FmkP{&@f{K*pcWf~{OY>s|3ZvpZ&eubD`#VQ5&Lw3XN+ zJ`u}h>+RpA`>@oZvrYT z4o#V*p*>@i{xf2`&SW{xf0uOi0wJ3TBie|~>9=_C;f97`4Q?)I-3g0`a6Kp$OssBb zKv$3N6VS8W7?aE*?k8l|d7gf_f1V}2r<5$y{lkS6Ch>{j2D)8FzXDUHQU2PPSRYt3 z2#E<8Mf4#@g^O+UB-QFL1oLIOz5p`Ysg&983CBnCs`w6=vcr6e;Q;iERDwqHX(Vb8 z5}f@hW$mtG(ZhVIsxin91J>u!P%d0ezQ5Mrge0qoV6<-_3EVlY$AUIT)9{?{ZX?*a znVwl2=tFEwan=#i8-W4y7tm*1t7^=k({y;;y6-f4dg;so8p_Z#j^wnzSnu;}hR4WB zBv$^>#9?@)6rYfT^@bmew?L5tpfTxxCnYq7>m<{nD0fo&MaxF$3;(dm#iu^Q%3A3% zM1Bjea~66t&bfw8t%YQhrKEljbN4@cY5Ld#X&KviGq+^6cwYJiHXA0vy_}YR>ZJA4 z`c^SQ7H)A>z+a|o4}f0}gHT1^CQJ6(;*r$*9}BKL-v~e_o#MX&hjv-LqJ4B^RL`k< z%3+qsm}~PN#=9+=$>T}IF|*<6qr?Yn?_`TSbN(N>(=(Q#h6t629ndU6$3{uV&z_;H zL|1uEA;1X_*Y4u+UU*s&7a-zXu0!HpHm1zCI)$N-h2HqP#U>^+@H@i1gMR~0hkUCX zPiJYs4+nqqkrxZrzQP(aK@hEv3P+LV%ei^)V_`UXPj)#=GS+XY(gf1rKsEgpf9kugc!Fiyoab$GRUWygCB(;HilPJY z!ZVqo1{Eu=3p9?VSu+^55m(P(jyo>>;=@;-zxa(stL{fYFjRTDy*T0UEn*g z0<_mawVVrRpI3`4czF0Qzb)pea~NK|@1@yS_H?0`!~+?vMTmu+Pkufk2c{hVnT3_b zS$J;r*Gz*?#<50s5spMKumFBiR3?nmc}NG(-3gv_l!*|G6OYuhvE9`iANSFL+d*xt z?1#<}EpcB)u%116akk%ytD`L$fpsD8+fx=S?0Z+`raxd|x+T0XdHBR|u&r-5Jvp*8 z@pHn5`7cUEk#j!xFHQ?aMLCZDv|ck(o^Nj(Q@ttu;`yzco?FYuAJNcmAcbG>$vGEI zkW;!b`b20V;t$j-D=p_^^eZhZms#{rHu3Y<3igewyS1t9w4JsB`Wb9iMBI-%V1{SI zN3q#7>Ufxu3M1b0_; z)tW$=mn%W2GY%R$u2W>fHS;i%o9K4Q>gJUr6@w;RFir#8)%k{b#mP;FintWAb*r`Q z%%O!zm-s-h>QPI;_f7YYP3Pm>34Yp48Hr$4*ddRXOk!Ke4uSMkdUC>Fe zZnNJ>$IL-wA3HqFA1S+esd%+@E@+x-*;63>mNzlvBCB6`Mma>wmSX)DPm-iXZ@C{uC1bjUv#9^Gr?dnbaqw{eIN z=n2)S34akB9WLa&;2;*O==5>569YFWI@&AMi;M3u;JffE{=gZRe4F;BbSn|@4L@+AbY$9Eq`yXP&_dy?mIJ#L zaNdKA%jB?Yz-~V7=TTqFnWy}9aE071^rf211x$~N#&kPE>SKmyDOsqw2>B;FxWlIt zHC^u~-x<$)JhflOo>(7!{Z8WO+?ItmqCFx=z~aa`)$%Vnob2Jz(UBi9o6qj005R#TILuPV?pe81Ui zgSSAvbARnTvVEi~y|3G3ddq6|@EVnvOSIC4I77b4v}Rhs!acS%;`laoF{9xb$G*>h zjQw`IN-8S(nzf!)1?>pkq<DGv z-P~{8xwRemBsTq4t$Avv26Gr)u<`=rJL zuGQ;2CyY^kCG0j+6-2V#ipuheycAn_>yl+i!?izi#z%35TRgr~K^!nq&A<5mTJQuF zE9H&Bh9}Q0E*>+Q{w^Tp7^HGy-7ziT^p`QA~i_bN(Cl$2@?lgDIi#G<0yJfn24Z6=VHl2YDizqY!Jnf#%kz!*(cxbir) zG1Tf|q>?28-W|LbbO?38VRWJ*bERJ2l+Inej{faVd$OK5S4TZ{gm}}R(Gcm;aH(*A zvspU|I(Iq06o7*xM#$xvLMCYm*@>1y76k`K;QCmcc2j~|rngF~o4Xfut1n{&)RjdN zC@Bqn6l!?ONfS9NQ5bRePK~T2ue6LUglg-Rr?80qM~kL@& zD(raSqqOx$T`Hp53h&MY(X&pSu930e!2;`U104%F`mj59;4rvV!PluDZw|k+EfYvU z*i|Ljyl}FeVg9Nttb-&`=<{2qpqD|dig}x|euDTpftdHrhVTR{ncPCVeJ?zWA36yvP9-5dSZ}rCGxC4S({$se>MNIMr>Jbka02{2H&+ z6LzH?BZnkVULHIUY$j6M!~3M?^N5MHlm*{0yJYit+P&f)c9U_zcr}KeB5P5!yQHLV zt*p={eSwnh_3+IH1QBJwu9&0k2?9g`MhyesS-sx2oXHYsxbbG^%jWzrB#-|R2d zc4V)s-yVMNlBt|e_P)S)slasXi*<&!-C4iFA<~N+>~NWWYGMYjZscYRT>N3Q<`B0s z8r0u<-(ajK+?1>GiLC9!IL{C=$NbO=snyX)ji$j${K?x#x24Vk^@~OFtqfIU=o-jX zT*dtRJ^`Tb`Atj4;|Z#oP>#2Aw-?#(J8?7J#5y!N>S4YnTF(>_K~njV!W|uEqRB8; z4=|j2^O%g1)YS|2>kG%~chm=mIE9v%JK-^? zr?^!7oWo<1l*FCZdLWAT?md*%`9?~YVK3J7Ve`cLk@MQw7WFj#lRPKGr_k1=b`oag z~Z1Grz`Rk&#*tR|MKRxf3FF|lHNZ+|rAE=)Z_Sjpw^5^XF+D#Qe z;kWQp;ece-7Dz?=93GGRYYV^1Vjm_`vzyjxFouZvR%NA?k>rXJY@dxgw?&nGhSw$B zdWTn4TzD=~k^oIgQSrs`9tlLeJXV{BTLeBrm&R11x5_~<(7Ry{{gxC%}z2>*VY5J+x z=Q@y=>qTkqw4X$%yYSScm~tI1EvQGZ8}gSP$QM?H>S=1a$!s-dx__(_t;<%fjS1Ad z2wf^sUf)uOk)rLHaCO|?qC#?c;_Kik(_L10)Y576s!X2y;klV}2D2`$jP&^()CvBb z9?lWFIz#%$-AlCN)x#Q$o5SysRvY_)T-hY37}Bw~9F3_Y#(WbGzkje7Si^-KS zY*@0Qb$>pb=3q`?BH=k--?vhblRj)5tY3PbCM9L`yimq;oX*qnVP$co7*)*!?Fgb3{ynQXMS_AcU2G{bps3Ke`rsAx_O;e|l zNit~$6WP}xgcFiI4G8ID4Z*yEo|r3!{dxIafBJbz(kYkL>%mjUCKc=aupi}TCQ zMTrRGL37}-yVH}+OONpx9!kTAKt0mZr6&^>x-E*|`&~~+k5FgYmcf^$75-CydyWHO z{CH+(XSJ9kn+A+Tv(3+!NwCo`J&VoOd9hOj?c>D$d9=?_HrI`fjh6?~+-1^qIs*|G zK4SC2erprTgzm#*kS122g9nR0V(fGp>rGE@!s#6msF!mZrm>OG0D19 zG5+i5@MGEjV=OE-`=cY<$FdWpWEi-lpk6SbzzGY4PLis3RqlUV$3W)%$xp50M>hpD z;Zi<&Opdi>%)-nzWXmeK%eNmtZY((L5h84`!HHQ+C3#Qp^@x!D@HKyGIS99W7YtZ+Z3oTf7Fws1TMY(_t^>EhYBDKCN}c*nHhN_sO&p8d zT<~&0WAhSC%|csxUxj+EgK6`yN&LK8Ig2UkOZitpC^A5ZOLoW%Bwd{Wv!+TSIvm43 zZGM$ykP0S~ja`f7zC=fNeP~FTzR&2tRIhgW!$~6b4h#hN4Ebg=cbHksH8(Um7jFvK z*L2@Jw=w-)xPXBki2Y4873VUx>sjToO7X(8{73JIHaa7ed%_fCZ5uEGHIJ4HlTy`% zvgCVH3e`O<#$mb?AMRct5chf79JQY45wxBHEW@VRfgcfU&X+&j`}V9j@48Nxx< zWghz3m?}p;?#+>8nD=DR-1NQ&D^cvW0){UBDHmQRcdhJg=T|`j&yR_P)osA4Gv1;# z-A6>Pl9w<#ZxvW}J-S#kxw|VzGG`g*C5i`{u6&rBw3Fmcis`{G2vg0brN8yhZ_e*V zLe&phN}^}QlWX=gjt6V{V+1O8!|kEMGmY}LPyaj}t{Cb!{wh?wtE85K-VObWY5K3F z3hH`;XZ#lRO6H%DYjXGyAOGVajP48nv++k-ypO23pr7=gk!V|rGF&`MQe#a2P)vdT ob>*jD5Usn`s8jF%@X*_?zEg1&W|SF~Xz-u#ONkfR{2Cwr7pIq^o&W#< literal 0 HcmV?d00001 diff --git a/server_action_sort/static/description/sale_order_form_before.png b/server_action_sort/static/description/sale_order_form_before.png new file mode 100644 index 0000000000000000000000000000000000000000..f53471a32c4fc984db65ec863154eff7a1a27482 GIT binary patch literal 53539 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 + + + + + ir.actions.server + + + + + + + + + + + + + + + + + + + + + + + + From 1caf3f5178bd35f092f0c164b316e659b6cd1f5e Mon Sep 17 00:00:00 2001 From: oca-ci Date: Sat, 9 Mar 2024 15:49:49 +0000 Subject: [PATCH 02/16] [UPD] Update server_action_sort.pot --- server_action_sort/i18n/fr.po | 105 +++++++----- .../i18n/server_action_sort.pot | 162 ++++++++++++++++++ 2 files changed, 221 insertions(+), 46 deletions(-) create mode 100644 server_action_sort/i18n/server_action_sort.pot diff --git a/server_action_sort/i18n/fr.po b/server_action_sort/i18n/fr.po index 79af122c6..add9f090a 100644 --- a/server_action_sort/i18n/fr.po +++ b/server_action_sort/i18n/fr.po @@ -10,6 +10,7 @@ msgstr "" "PO-Revision-Date: 2020-03-16 18:08+0000\n" "Last-Translator: <>\n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -20,26 +21,18 @@ msgstr "" msgid "Action" msgstr "Action" +#. module: server_action_sort +#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines +#, fuzzy +msgid "Action Server Sort Lines" +msgstr "Démo - Action serveur : Trier les lignes" + #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state msgid "Action To Do" msgstr "Action à effectuer" -#. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Add Followers" -msgstr "Ajouter des abonnés" - -#. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Create Next Activity" -msgstr "Créer une activité " - -#. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Create a new Record" -msgstr "Créer un nouvel enregistrement" - #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid msgid "Created by" @@ -55,16 +48,6 @@ msgstr "Créé le" msgid "Display Name" msgstr "Nom affiché" -#. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Execute Python Code" -msgstr "Exécuter le code Python" - -#. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Execute several actions" -msgstr "Exécuter plusieurs actions" - #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id msgid "Field" @@ -77,11 +60,13 @@ msgstr "Nom de Champ" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" msgstr "Champ à trier" #. module: server_action_sort #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" msgstr "Pour les champs de relation, le nom technique du modèle cible" @@ -112,14 +97,10 @@ msgstr "Dernière mise à jour le" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" msgstr "Modèle du champ à trier" -#. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Send Email" -msgstr "Envoyer par courriel" - #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence msgid "Sequence" @@ -136,15 +117,10 @@ msgid "Server Actions Sort Lines" msgstr "Ligne de tri d'Action Serveur" #. module: server_action_sort -#: selection:ir.actions.server,state:0 +#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort msgid "Sort" msgstr "Trier" -#. module: server_action_sort -#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines -msgid "Demo - Action Server: Sort Lines" -msgstr "Démo - Action serveur : Trier les lignes" - #. module: server_action_sort #: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form msgid "Sort Options" @@ -152,28 +128,65 @@ msgstr "Options de tri" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" msgstr "Critères de tri" #. module: server_action_sort -#: code:addons/server_action_sort/models/ir_actions_server.py:31 +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 #, python-format -msgid "The Action Server %s is not correctly set :\n" +msgid "" +"The Action Server %s is not correctly set :\n" "No lines defined" -msgstr "L'action Serveur %s n'est pas correctement paramétré : \n" +msgstr "" +"L'action Serveur %s n'est pas correctement paramétré : \n" "Pas de lignes définies" - #. module: server_action_sort -#: selection:ir.actions.server,state:0 -msgid "Update the Record" -msgstr "Mettre à jour l'enregistrement" +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state +msgid "" +"Type of server action. The following values are available:\n" +"- 'Execute Python Code': a block of python code that will be executed\n" +"- 'Create a new Record': create a new record with new values\n" +"- 'Update a Record': update the values of a record\n" +"- 'Execute several actions': define an action that triggers several other " +"server actions\n" +"- 'Send Email': post a message, a note or send an email (Discuss)\n" +"- 'Add Followers': add followers to a record (Discuss)\n" +"- 'Create Next Activity': create an activity (Discuss)\n" +"- 'Send SMS Text Message': send SMS, log them on documents (SMS)" +msgstr "" #. module: server_action_sort -#: code:addons/server_action_sort/models/ir_actions_server.py:36 +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 #, python-format -msgid "You can not run this Action Server that way.\n" +msgid "" +"You can not run this Action Server that way.\n" " Please use contextual 'Action' menu." -msgstr "Vous ne pouvez pas exécuter cette action serveur de cette façon.\n" +msgstr "" +"Vous ne pouvez pas exécuter cette action serveur de cette façon.\n" " Veuillez utiliser le menu contextuel 'Action'." +#~ msgid "Add Followers" +#~ msgstr "Ajouter des abonnés" + +#~ msgid "Create Next Activity" +#~ msgstr "Créer une activité " + +#~ msgid "Create a new Record" +#~ msgstr "Créer un nouvel enregistrement" + +#~ msgid "Execute Python Code" +#~ msgstr "Exécuter le code Python" + +#~ msgid "Execute several actions" +#~ msgstr "Exécuter plusieurs actions" + +#~ msgid "Send Email" +#~ msgstr "Envoyer par courriel" + +#~ msgid "Update the Record" +#~ msgstr "Mettre à jour l'enregistrement" diff --git a/server_action_sort/i18n/server_action_sort.pot b/server_action_sort/i18n/server_action_sort.pot new file mode 100644 index 000000000..6e1422971 --- /dev/null +++ b/server_action_sort/i18n/server_action_sort.pot @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_action_sort +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id +msgid "Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines +msgid "Action Server Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state +msgid "Action To Do" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid +msgid "Created by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date +msgid "Created on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name +msgid "Display Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id +msgid "Field" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name +msgid "Field Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id +msgid "Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model +msgid "For relationship fields, the technical name of the target model" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id +msgid "ID" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc +msgid "Inverse Order" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model +msgid "Model of the Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence +msgid "Sequence" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server +msgid "Server Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line +msgid "Server Actions Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort +msgid "Sort" +msgstr "" + +#. module: server_action_sort +#: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form +msgid "Sort Options" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids +msgid "Sorting Criterias" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +#, python-format +msgid "" +"The Action Server %s is not correctly set :\n" +"No lines defined" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state +msgid "" +"Type of server action. The following values are available:\n" +"- 'Execute Python Code': a block of python code that will be executed\n" +"- 'Create a new Record': create a new record with new values\n" +"- 'Update a Record': update the values of a record\n" +"- 'Execute several actions': define an action that triggers several other server actions\n" +"- 'Send Email': post a message, a note or send an email (Discuss)\n" +"- 'Add Followers': add followers to a record (Discuss)\n" +"- 'Create Next Activity': create an activity (Discuss)\n" +"- 'Send SMS Text Message': send SMS, log them on documents (SMS)" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +#, python-format +msgid "" +"You can not run this Action Server that way.\n" +" Please use contextual 'Action' menu." +msgstr "" From 413235084ffe9e6b5c1ca1c21662077c6450199e Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 12 Mar 2024 10:26:40 +0000 Subject: [PATCH 03/16] Added translation using Weblate (Italian) --- server_action_sort/i18n/it.po | 163 ++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 server_action_sort/i18n/it.po diff --git a/server_action_sort/i18n/it.po b/server_action_sort/i18n/it.po new file mode 100644 index 000000000..e458afb71 --- /dev/null +++ b/server_action_sort/i18n/it.po @@ -0,0 +1,163 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_action_sort +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id +msgid "Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines +msgid "Action Server Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state +msgid "Action To Do" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid +msgid "Created by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date +msgid "Created on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name +msgid "Display Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id +msgid "Field" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name +msgid "Field Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id +msgid "Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model +msgid "For relationship fields, the technical name of the target model" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id +msgid "ID" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc +msgid "Inverse Order" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model +msgid "Model of the Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence +msgid "Sequence" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server +msgid "Server Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line +msgid "Server Actions Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort +msgid "Sort" +msgstr "" + +#. module: server_action_sort +#: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form +msgid "Sort Options" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids +msgid "Sorting Criterias" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +#, python-format +msgid "" +"The Action Server %s is not correctly set :\n" +"No lines defined" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state +msgid "" +"Type of server action. The following values are available:\n" +"- 'Execute Python Code': a block of python code that will be executed\n" +"- 'Create a new Record': create a new record with new values\n" +"- 'Update a Record': update the values of a record\n" +"- 'Execute several actions': define an action that triggers several other server actions\n" +"- 'Send Email': post a message, a note or send an email (Discuss)\n" +"- 'Add Followers': add followers to a record (Discuss)\n" +"- 'Create Next Activity': create an activity (Discuss)\n" +"- 'Send SMS Text Message': send SMS, log them on documents (SMS)" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +#, python-format +msgid "" +"You can not run this Action Server that way.\n" +" Please use contextual 'Action' menu." +msgstr "" From 2488ae90de85d83f84b141ccfc1e3680b0182aeb Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 12 Mar 2024 11:18:19 +0000 Subject: [PATCH 04/16] Translated using Weblate (Italian) Currently translated at 100.0% (25 of 25 strings) Translation: server-backend-16.0/server-backend-16.0-server_action_sort Translate-URL: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-server_action_sort/it/ --- server_action_sort/i18n/it.po | 63 ++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/server_action_sort/i18n/it.po b/server_action_sort/i18n/it.po index e458afb71..fc62a508c 100644 --- a/server_action_sort/i18n/it.po +++ b/server_action_sort/i18n/it.po @@ -6,128 +6,130 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-03-12 13:36+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id msgid "Action" -msgstr "" +msgstr "Azione" #. module: server_action_sort #: model:ir.actions.server,name:server_action_sort.sort_action_server_lines msgid "Action Server Sort Lines" -msgstr "" +msgstr "Azione ordinamento righe server" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state msgid "Action To Do" -msgstr "" +msgstr "Azione da compiere" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid msgid "Created by" -msgstr "" +msgstr "Creato da" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id msgid "Field" -msgstr "" +msgstr "Campo" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name msgid "Field Name" -msgstr "" +msgstr "Nome campo" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" -msgstr "" +msgstr "Campo da ordinare" #. module: server_action_sort #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" -msgstr "" +msgstr "Per campi relaziine, il nome tecnico del modello obiettivo" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id msgid "ID" -msgstr "" +msgstr "ID" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc msgid "Inverse Order" -msgstr "" +msgstr "Ordine inverso" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" -msgstr "" +msgstr "Modello del campo da ordinare" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence msgid "Sequence" -msgstr "" +msgstr "Sequenza" #. module: server_action_sort #: model:ir.model,name:server_action_sort.model_ir_actions_server msgid "Server Action" -msgstr "" +msgstr "Azione server" #. module: server_action_sort #: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line msgid "Server Actions Sort Lines" -msgstr "" +msgstr "Azioni server ordinamento righe" #. module: server_action_sort #: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort msgid "Sort" -msgstr "" +msgstr "Ordina" #. module: server_action_sort #: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form msgid "Sort Options" -msgstr "" +msgstr "Opzioni ordinamento" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" -msgstr "" +msgstr "Criteri di ordinamento" #. module: server_action_sort #. odoo-python @@ -137,6 +139,8 @@ msgid "" "The Action Server %s is not correctly set :\n" "No lines defined" msgstr "" +"L'azione server %s non è impostata correttamente:\n" +"nessuna riga definita" #. module: server_action_sort #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state @@ -152,6 +156,17 @@ msgid "" "- 'Create Next Activity': create an activity (Discuss)\n" "- 'Send SMS Text Message': send SMS, log them on documents (SMS)" msgstr "" +"Tipo di azione server. Sono disponibili i seguenti valori:\n" +"- 'Esegue codice Python': un blocco di codice Python che verrà eseguito\n" +"- 'Crea un nuovo record': crea un nuovo record con nuovi valori\n" +"- 'Aggiorna un record': aggiorna i valori di un record\n" +"- 'Esegue diverse azioni': definisce un'azione che attiva diverse altre " +"azioni\n" +"- 'Invia e-mail': inva un messagio, una nota o inviauna e-mail (Discussione)" +"\n" +"- 'Aggiunge chi segue': aggiunge chi segue ad un record (Discussione)\n" +"- 'Crea attività successiva': crea un'attività (Discussione)\n" +"- 'Invia SMS': invia SMS, registrandoli nei documenti (SMS)" #. module: server_action_sort #. odoo-python @@ -161,3 +176,5 @@ msgid "" "You can not run this Action Server that way.\n" " Please use contextual 'Action' menu." msgstr "" +"Non si può eseguire in questo modo questa azione server.\n" +" Usare il menu contestuale 'Azione'." From 080ba30a72bc3ee6aad90fd2405aad2f6607837f Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 20 May 2024 10:47:10 +0000 Subject: [PATCH 05/16] [UPD] Update server_action_sort.pot --- server_action_sort/i18n/server_action_sort.pot | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server_action_sort/i18n/server_action_sort.pot b/server_action_sort/i18n/server_action_sort.pot index 6e1422971..1a9b0a567 100644 --- a/server_action_sort/i18n/server_action_sort.pot +++ b/server_action_sort/i18n/server_action_sort.pot @@ -24,6 +24,7 @@ msgid "Action Server Sort Lines" msgstr "" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state msgid "Action To Do" @@ -55,12 +56,14 @@ msgid "Field Name" msgstr "" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" msgstr "" #. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" @@ -92,6 +95,7 @@ msgid "Last Updated on" msgstr "" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" @@ -123,6 +127,7 @@ msgid "Sort Options" msgstr "" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" @@ -138,6 +143,7 @@ msgid "" msgstr "" #. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_base_automation__state #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,help:server_action_sort.field_ir_cron__state msgid "" From 443bff67c6df6b16e6ddd7cd416b5eecb13ffaed Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 20 May 2024 10:49:34 +0000 Subject: [PATCH 06/16] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-backend-16.0/server-backend-16.0-server_action_sort Translate-URL: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-server_action_sort/ --- server_action_sort/i18n/fr.po | 6 ++++++ server_action_sort/i18n/it.po | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/server_action_sort/i18n/fr.po b/server_action_sort/i18n/fr.po index add9f090a..03bd840d1 100644 --- a/server_action_sort/i18n/fr.po +++ b/server_action_sort/i18n/fr.po @@ -28,6 +28,7 @@ msgid "Action Server Sort Lines" msgstr "Démo - Action serveur : Trier les lignes" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state msgid "Action To Do" @@ -59,12 +60,14 @@ msgid "Field Name" msgstr "Nom de Champ" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" msgstr "Champ à trier" #. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" @@ -96,6 +99,7 @@ msgid "Last Updated on" msgstr "Dernière mise à jour le" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" @@ -127,6 +131,7 @@ msgid "Sort Options" msgstr "Options de tri" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" @@ -144,6 +149,7 @@ msgstr "" "Pas de lignes définies" #. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_base_automation__state #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,help:server_action_sort.field_ir_cron__state msgid "" diff --git a/server_action_sort/i18n/it.po b/server_action_sort/i18n/it.po index fc62a508c..f9c8933a5 100644 --- a/server_action_sort/i18n/it.po +++ b/server_action_sort/i18n/it.po @@ -27,6 +27,7 @@ msgid "Action Server Sort Lines" msgstr "Azione ordinamento righe server" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state msgid "Action To Do" @@ -58,12 +59,14 @@ msgid "Field Name" msgstr "Nome campo" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" msgstr "Campo da ordinare" #. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" @@ -95,6 +98,7 @@ msgid "Last Updated on" msgstr "Ultimo aggiornamento il" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" @@ -126,6 +130,7 @@ msgid "Sort Options" msgstr "Opzioni ordinamento" #. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" @@ -143,6 +148,7 @@ msgstr "" "nessuna riga definita" #. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_base_automation__state #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,help:server_action_sort.field_ir_cron__state msgid "" @@ -150,7 +156,8 @@ msgid "" "- 'Execute Python Code': a block of python code that will be executed\n" "- 'Create a new Record': create a new record with new values\n" "- 'Update a Record': update the values of a record\n" -"- 'Execute several actions': define an action that triggers several other server actions\n" +"- 'Execute several actions': define an action that triggers several other " +"server actions\n" "- 'Send Email': post a message, a note or send an email (Discuss)\n" "- 'Add Followers': add followers to a record (Discuss)\n" "- 'Create Next Activity': create an activity (Discuss)\n" @@ -162,8 +169,8 @@ msgstr "" "- 'Aggiorna un record': aggiorna i valori di un record\n" "- 'Esegue diverse azioni': definisce un'azione che attiva diverse altre " "azioni\n" -"- 'Invia e-mail': inva un messagio, una nota o inviauna e-mail (Discussione)" -"\n" +"- 'Invia e-mail': inva un messagio, una nota o inviauna e-mail " +"(Discussione)\n" "- 'Aggiunge chi segue': aggiunge chi segue ad un record (Discussione)\n" "- 'Crea attività successiva': crea un'attività (Discussione)\n" "- 'Invia SMS': invia SMS, registrandoli nei documenti (SMS)" From dce6423bcd8d92bc2ad37063b546523588223ca2 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 7 Oct 2024 07:13:26 +0000 Subject: [PATCH 07/16] Translated using Weblate (Italian) Currently translated at 100.0% (25 of 25 strings) Translation: server-backend-16.0/server-backend-16.0-server_action_sort Translate-URL: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-server_action_sort/it/ --- server_action_sort/i18n/it.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server_action_sort/i18n/it.po b/server_action_sort/i18n/it.po index f9c8933a5..6299b41ad 100644 --- a/server_action_sort/i18n/it.po +++ b/server_action_sort/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-03-12 13:36+0000\n" +"PO-Revision-Date: 2024-10-07 10:06+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -14,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" +"X-Generator: Weblate 5.6.2\n" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id @@ -70,7 +70,7 @@ msgstr "Campo da ordinare" #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" -msgstr "Per campi relaziine, il nome tecnico del modello obiettivo" +msgstr "Per campi relazione, il nome tecnico del modello obiettivo" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id From 39969e5612baed9429326fa9d99ddab871e698eb Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Mon, 28 Apr 2025 16:02:32 +0530 Subject: [PATCH 08/16] [IMP] server_action_sort: pre-commit auto fixes --- server_action_sort/README.rst | 81 +++++++++---------- server_action_sort/demo/ir_actions_server.xml | 2 - .../models/ir_actions_server.py | 2 +- server_action_sort/pyproject.toml | 3 + server_action_sort/readme/CONFIGURE.md | 15 ++++ server_action_sort/readme/CONFIGURE.rst | 20 ----- server_action_sort/readme/CONTRIBUTORS.md | 1 + server_action_sort/readme/CONTRIBUTORS.rst | 1 - .../{DESCRIPTION.rst => DESCRIPTION.md} | 8 +- server_action_sort/readme/ROADMAP.md | 3 + server_action_sort/readme/ROADMAP.rst | 3 - server_action_sort/readme/USAGE.md | 16 ++++ server_action_sort/readme/USAGE.rst | 18 ----- .../views/view_ir_actions_server.xml | 2 - 14 files changed, 83 insertions(+), 92 deletions(-) create mode 100644 server_action_sort/pyproject.toml create mode 100644 server_action_sort/readme/CONFIGURE.md delete mode 100644 server_action_sort/readme/CONFIGURE.rst create mode 100644 server_action_sort/readme/CONTRIBUTORS.md delete mode 100644 server_action_sort/readme/CONTRIBUTORS.rst rename server_action_sort/readme/{DESCRIPTION.rst => DESCRIPTION.md} (62%) create mode 100644 server_action_sort/readme/ROADMAP.md delete mode 100644 server_action_sort/readme/ROADMAP.rst create mode 100644 server_action_sort/readme/USAGE.md delete mode 100644 server_action_sort/readme/USAGE.rst diff --git a/server_action_sort/README.rst b/server_action_sort/README.rst index 4412fd72f..97b445f03 100644 --- a/server_action_sort/README.rst +++ b/server_action_sort/README.rst @@ -17,22 +17,22 @@ Server Actions - Mass Sort Lines :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github - :target: https://github.com/OCA/server-backend/tree/16.0/server_action_sort + :target: https://github.com/OCA/server-backend/tree/18.0/server_action_sort :alt: OCA/server-backend .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-backend-16-0/server-backend-16-0-server_action_sort + :target: https://translation.odoo-community.org/projects/server-backend-18-0/server-backend-18-0-server_action_sort :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module provides a generic tools to have the possibility to sort the lines -of a list of items. +This module provides a generic tools to have the possibility to sort the +lines of a list of items. -For exemple, if you use the sale module, you can want to reorder the sale -order lines, by any criterias. +For exemple, if you use the sale module, you can want to reorder the +sale order lines, by any criterias. **Table of contents** @@ -42,55 +42,54 @@ order lines, by any criterias. Configuration ============= -* Go to 'Setting / Technical / Actions / Server Actions' +- Go to 'Setting / Technical / Actions / Server Actions' +- Create a new item -* Create a new item - -.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/ir_actions_server_form.png - -* Set a name that will be used for the Contextual Action - -* choose a model - -* Select 'Sort' option in the field 'Action To Do' - -* Then, select a field to sort of this model. It should be a ``one2many`` field. - -* Select then the criterias used to sort the selected field. +|image1| +- Set a name that will be used for the Contextual Action +- choose a model +- Select 'Sort' option in the field 'Action To Do' +- Then, select a field to sort of this model. It should be a + ``one2many`` field. +- Select then the criterias used to sort the selected field. **Extra options** -* you can define groups whose members will have access to that option. +- you can define groups whose members will have access to that option. + +.. |image1| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/ir_actions_server_form.png Usage ===== -* Go to a tree view, for a model for which you have defined a 'Sort' action. - -* Select some items you want to reorder. - -* click on 'Action' Button +- Go to a tree view, for a model for which you have defined a 'Sort' + action. +- Select some items you want to reorder. +- click on 'Action' Button -.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_tree.png +|image1| - -* then click on the name of the configured Action and see the results +- then click on the name of the configured Action and see the results **Before** -.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_before.png +|image2| **After** -.. figure:: https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_after.png +|image3| + +.. |image1| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_tree.png +.. |image2| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_before.png +.. |image3| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_after.png Known issues / Roadmap ====================== -For instance, the module allow to order with many criterias, but -without "dot" notation : it is not possible to order sale order lines -by ``product_id.seller_ids.code`` for exemple. +For instance, the module allow to order with many criterias, but without +"dot" notation : it is not possible to order sale order lines by +``product_id.seller_ids.code`` for exemple. Bug Tracker =========== @@ -98,7 +97,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -106,17 +105,17 @@ Credits ======= Authors -~~~~~~~ +------- * GRAP Contributors -~~~~~~~~~~~~ +------------ -* Sylvain LE GAL (https://www.twitter.com/legalsylvain) +- Sylvain LE GAL (https://www.twitter.com/legalsylvain) Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -136,6 +135,6 @@ Current `maintainer `__: |maintainer-legalsylvain| -This module is part of the `OCA/server-backend `_ project on GitHub. +This module is part of the `OCA/server-backend `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/server_action_sort/demo/ir_actions_server.xml b/server_action_sort/demo/ir_actions_server.xml index 6e0b22143..8fa64f6f0 100644 --- a/server_action_sort/demo/ir_actions_server.xml +++ b/server_action_sort/demo/ir_actions_server.xml @@ -5,7 +5,6 @@ Copyright (C) 2020 - Today: GRAP (http://www.grap.coop) License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). --> - Action Server Sort Lines sort @@ -39,5 +38,4 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - diff --git a/server_action_sort/models/ir_actions_server.py b/server_action_sort/models/ir_actions_server.py index 3874273a1..8e846ab4e 100644 --- a/server_action_sort/models/ir_actions_server.py +++ b/server_action_sort/models/ir_actions_server.py @@ -48,7 +48,7 @@ def _run_action_sort_multi(self, eval_context=None): order_list = [] for line in self.sort_line_ids: order_list.append( - line.desc and "%s desc" % line.field_id.name or line.field_id.name + f"{line.field_id.name} desc" if line.desc else line.field_id.name ) order = ", ".join(order_list) diff --git a/server_action_sort/pyproject.toml b/server_action_sort/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/server_action_sort/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/server_action_sort/readme/CONFIGURE.md b/server_action_sort/readme/CONFIGURE.md new file mode 100644 index 000000000..6fccd5106 --- /dev/null +++ b/server_action_sort/readme/CONFIGURE.md @@ -0,0 +1,15 @@ +- Go to 'Setting / Technical / Actions / Server Actions' +- Create a new item + +![](../static/description/ir_actions_server_form.png) + +- Set a name that will be used for the Contextual Action +- choose a model +- Select 'Sort' option in the field 'Action To Do' +- Then, select a field to sort of this model. It should be a `one2many` + field. +- Select then the criterias used to sort the selected field. + +**Extra options** + +- you can define groups whose members will have access to that option. diff --git a/server_action_sort/readme/CONFIGURE.rst b/server_action_sort/readme/CONFIGURE.rst deleted file mode 100644 index 60b5b7120..000000000 --- a/server_action_sort/readme/CONFIGURE.rst +++ /dev/null @@ -1,20 +0,0 @@ -* Go to 'Setting / Technical / Actions / Server Actions' - -* Create a new item - -.. figure:: ../static/description/ir_actions_server_form.png - -* Set a name that will be used for the Contextual Action - -* choose a model - -* Select 'Sort' option in the field 'Action To Do' - -* Then, select a field to sort of this model. It should be a ``one2many`` field. - -* Select then the criterias used to sort the selected field. - - -**Extra options** - -* you can define groups whose members will have access to that option. diff --git a/server_action_sort/readme/CONTRIBUTORS.md b/server_action_sort/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..4a6b63400 --- /dev/null +++ b/server_action_sort/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Sylvain LE GAL () diff --git a/server_action_sort/readme/CONTRIBUTORS.rst b/server_action_sort/readme/CONTRIBUTORS.rst deleted file mode 100644 index e1525ce04..000000000 --- a/server_action_sort/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* Sylvain LE GAL (https://www.twitter.com/legalsylvain) diff --git a/server_action_sort/readme/DESCRIPTION.rst b/server_action_sort/readme/DESCRIPTION.md similarity index 62% rename from server_action_sort/readme/DESCRIPTION.rst rename to server_action_sort/readme/DESCRIPTION.md index 56a9d339a..50431c5d9 100644 --- a/server_action_sort/readme/DESCRIPTION.rst +++ b/server_action_sort/readme/DESCRIPTION.md @@ -1,5 +1,5 @@ -This module provides a generic tools to have the possibility to sort the lines -of a list of items. +This module provides a generic tools to have the possibility to sort the +lines of a list of items. -For exemple, if you use the sale module, you can want to reorder the sale -order lines, by any criterias. +For exemple, if you use the sale module, you can want to reorder the +sale order lines, by any criterias. diff --git a/server_action_sort/readme/ROADMAP.md b/server_action_sort/readme/ROADMAP.md new file mode 100644 index 000000000..9bd4f576b --- /dev/null +++ b/server_action_sort/readme/ROADMAP.md @@ -0,0 +1,3 @@ +For instance, the module allow to order with many criterias, but without +"dot" notation : it is not possible to order sale order lines by +`product_id.seller_ids.code` for exemple. diff --git a/server_action_sort/readme/ROADMAP.rst b/server_action_sort/readme/ROADMAP.rst deleted file mode 100644 index 00645b1ac..000000000 --- a/server_action_sort/readme/ROADMAP.rst +++ /dev/null @@ -1,3 +0,0 @@ -For instance, the module allow to order with many criterias, but -without "dot" notation : it is not possible to order sale order lines -by ``product_id.seller_ids.code`` for exemple. diff --git a/server_action_sort/readme/USAGE.md b/server_action_sort/readme/USAGE.md new file mode 100644 index 000000000..098143a37 --- /dev/null +++ b/server_action_sort/readme/USAGE.md @@ -0,0 +1,16 @@ +- Go to a tree view, for a model for which you have defined a 'Sort' + action. +- Select some items you want to reorder. +- click on 'Action' Button + +![](../static/description/sale_order_tree.png) + +- then click on the name of the configured Action and see the results + +**Before** + +![](../static/description/sale_order_form_before.png) + +**After** + +![](../static/description/sale_order_form_after.png) diff --git a/server_action_sort/readme/USAGE.rst b/server_action_sort/readme/USAGE.rst deleted file mode 100644 index 86cd4fdf6..000000000 --- a/server_action_sort/readme/USAGE.rst +++ /dev/null @@ -1,18 +0,0 @@ -* Go to a tree view, for a model for which you have defined a 'Sort' action. - -* Select some items you want to reorder. - -* click on 'Action' Button - -.. figure:: ../static/description/sale_order_tree.png - - -* then click on the name of the configured Action and see the results - -**Before** - -.. figure:: ../static/description/sale_order_form_before.png - -**After** - -.. figure:: ../static/description/sale_order_form_after.png diff --git a/server_action_sort/views/view_ir_actions_server.xml b/server_action_sort/views/view_ir_actions_server.xml index 124e7382d..abe4469ed 100644 --- a/server_action_sort/views/view_ir_actions_server.xml +++ b/server_action_sort/views/view_ir_actions_server.xml @@ -5,7 +5,6 @@ Copyright (C) 2020 - Today: GRAP (http://www.grap.coop) License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). --> - ir.actions.server @@ -38,5 +37,4 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - From 5d1d091ba1cb3c3b5433bc440282d6fc3db05420 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Mon, 28 Apr 2025 16:04:02 +0530 Subject: [PATCH 09/16] [MIG] server_action_sort: Migration to 18.0 --- server_action_sort/README.rst | 15 +++-- server_action_sort/__manifest__.py | 2 +- .../models/ir_actions_server.py | 8 ++- server_action_sort/readme/CONTRIBUTORS.md | 2 + server_action_sort/readme/USAGE.md | 6 +- .../security/ir.model.access.csv | 2 +- .../static/description/index.html | 58 +++++++++---------- server_action_sort/tests/test_module.py | 11 ++-- .../views/view_ir_actions_server.xml | 45 +++++++------- 9 files changed, 77 insertions(+), 72 deletions(-) diff --git a/server_action_sort/README.rst b/server_action_sort/README.rst index 97b445f03..6ea40f63d 100644 --- a/server_action_sort/README.rst +++ b/server_action_sort/README.rst @@ -68,21 +68,21 @@ Usage - Select some items you want to reorder. - click on 'Action' Button -|image1| +|Sale Order Tree| - then click on the name of the configured Action and see the results **Before** -|image2| +|Sale Order Form Before| **After** -|image3| +|Sale Order Form After| -.. |image1| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_tree.png -.. |image2| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_before.png -.. |image3| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_after.png +.. |Sale Order Tree| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_tree.png +.. |Sale Order Form Before| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_before.png +.. |Sale Order Form After| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_after.png Known issues / Roadmap ====================== @@ -113,6 +113,9 @@ Contributors ------------ - Sylvain LE GAL (https://www.twitter.com/legalsylvain) +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia Maintainers ----------- diff --git a/server_action_sort/__manifest__.py b/server_action_sort/__manifest__.py index 7fa31bc4d..b05f71802 100644 --- a/server_action_sort/__manifest__.py +++ b/server_action_sort/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Server Actions - Mass Sort Lines", - "version": "16.0.1.0.0", + "version": "18.0.1.0.0", "author": "GRAP, " "Odoo Community Association (OCA)", "summary": "Sort any lines of any models by any criterias", "category": "Tools", diff --git a/server_action_sort/models/ir_actions_server.py b/server_action_sort/models/ir_actions_server.py index 8e846ab4e..0fef3b3d5 100644 --- a/server_action_sort/models/ir_actions_server.py +++ b/server_action_sort/models/ir_actions_server.py @@ -2,7 +2,7 @@ # @author: Sylvain LE GAL (https://twitter.com/legalsylvain) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import _, fields, models +from odoo import fields, models from odoo.exceptions import UserError @@ -33,13 +33,15 @@ def _run_action_sort_multi(self, eval_context=None): self.ensure_one() if len(self.sort_line_ids) == 0: raise UserError( - _("The Action Server %s is not correctly set :\n" "No lines defined") + self.env._( + "The Action Server %s is not correctly set :\n" "No lines defined" + ) % (self.name) ) if eval_context is None: raise UserError( - _( + self.env._( "You can not run this Action Server that way.\n" " Please use contextual 'Action' menu." ) diff --git a/server_action_sort/readme/CONTRIBUTORS.md b/server_action_sort/readme/CONTRIBUTORS.md index 4a6b63400..7a9634c47 100644 --- a/server_action_sort/readme/CONTRIBUTORS.md +++ b/server_action_sort/readme/CONTRIBUTORS.md @@ -1 +1,3 @@ - Sylvain LE GAL () +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/server_action_sort/readme/USAGE.md b/server_action_sort/readme/USAGE.md index 098143a37..74abc8ecf 100644 --- a/server_action_sort/readme/USAGE.md +++ b/server_action_sort/readme/USAGE.md @@ -3,14 +3,14 @@ - Select some items you want to reorder. - click on 'Action' Button -![](../static/description/sale_order_tree.png) +![Sale Order Tree](../static/description/sale_order_tree.png) - then click on the name of the configured Action and see the results **Before** -![](../static/description/sale_order_form_before.png) +![Sale Order Form Before](../static/description/sale_order_form_before.png) **After** -![](../static/description/sale_order_form_after.png) +![Sale Order Form After](../static/description/sale_order_form_after.png) diff --git a/server_action_sort/security/ir.model.access.csv b/server_action_sort/security/ir.model.access.csv index 2f38a0454..8683a94eb 100644 --- a/server_action_sort/security/ir.model.access.csv +++ b/server_action_sort/security/ir.model.access.csv @@ -1,3 +1,3 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -ir_actions_server_sort_line_all,ir_actions_server_sort_line_all,model_ir_actions_server_sort_line,,1,0,0,0 +ir_actions_server_sort_line_all,ir_actions_server_sort_line_all,model_ir_actions_server_sort_line,base.group_user,1,0,0,0 ir_actions_server_sort_line_group_system,ir_actions_server_sort_line_group_system,model_ir_actions_server_sort_line,base.group_system,1,1,1,1 diff --git a/server_action_sort/static/description/index.html b/server_action_sort/static/description/index.html index e0ddfb730..fb131d076 100644 --- a/server_action_sort/static/description/index.html +++ b/server_action_sort/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -369,11 +369,11 @@

Server Actions - Mass Sort Lines

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:e221269a77f3ad06e190cd3f0c72ecdfc6d1cd0022b81e3ec57722b3c6dad475 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

-

This module provides a generic tools to have the possibility to sort the lines -of a list of items.

-

For exemple, if you use the sale module, you can want to reorder the sale -order lines, by any criterias.

+

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

+

This module provides a generic tools to have the possibility to sort the +lines of a list of items.

+

For exemple, if you use the sale module, you can want to reorder the +sale order lines, by any criterias.

Table of contents

    @@ -395,14 +395,13 @@

    Configuration

  • Go to ‘Setting / Technical / Actions / Server Actions’
  • Create a new item
-
-https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/ir_actions_server_form.png -
+

image1

  • Set a name that will be used for the Contextual Action
  • choose a model
  • Select ‘Sort’ option in the field ‘Action To Do’
  • -
  • Then, select a field to sort of this model. It should be a one2many field.
  • +
  • Then, select a field to sort of this model. It should be a +one2many field.
  • Select then the criterias used to sort the selected field.

Extra options

@@ -413,37 +412,32 @@

Configuration

Usage

    -
  • Go to a tree view, for a model for which you have defined a ‘Sort’ action.
  • +
  • Go to a tree view, for a model for which you have defined a ‘Sort’ +action.
  • Select some items you want to reorder.
  • click on ‘Action’ Button
-
-https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_tree.png -
+

Sale Order Tree

  • then click on the name of the configured Action and see the results

Before

-
-https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_before.png -
+

Sale Order Form Before

After

-
-https://raw.githubusercontent.com/OCA/server-backend/16.0/server_action_sort/static/description/sale_order_form_after.png -
+

Sale Order Form After

Known issues / Roadmap

-

For instance, the module allow to order with many criterias, but -without “dot” notation : it is not possible to order sale order lines -by product_id.seller_ids.code for exemple.

+

For instance, the module allow to order with many criterias, but without +“dot” notation : it is not possible to order sale order lines by +product_id.seller_ids.code for exemple.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -458,18 +452,24 @@

Authors

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

legalsylvain

-

This module is part of the OCA/server-backend project on GitHub.

+

This module is part of the OCA/server-backend project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/server_action_sort/tests/test_module.py b/server_action_sort/tests/test_module.py index 0c2f3de0b..af5868221 100644 --- a/server_action_sort/tests/test_module.py +++ b/server_action_sort/tests/test_module.py @@ -6,11 +6,12 @@ class TestModule(TransactionCase): - def setUp(self): - super().setUp() - self.action_server = self.env.ref("server_action_sort.sort_action_server_lines") - self.line_1 = self.env.ref("server_action_sort.sort_action_server_lines_line_1") - self.line_2 = self.env.ref("server_action_sort.sort_action_server_lines_line_2") + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.action_server = cls.env.ref("server_action_sort.sort_action_server_lines") + cls.line_1 = cls.env.ref("server_action_sort.sort_action_server_lines_line_1") + cls.line_2 = cls.env.ref("server_action_sort.sort_action_server_lines_line_2") def test_action_result(self): self.assertEqual(self.line_1.sequence, 1) diff --git a/server_action_sort/views/view_ir_actions_server.xml b/server_action_sort/views/view_ir_actions_server.xml index abe4469ed..f5facf182 100644 --- a/server_action_sort/views/view_ir_actions_server.xml +++ b/server_action_sort/views/view_ir_actions_server.xml @@ -9,31 +9,28 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). ir.actions.server - - + - - - - - - - - - - - - - - - + + + + + + + + + + + From 0077bd729fec99173acd9844c59a07c534c92d21 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 10 Jul 2025 12:46:27 +0000 Subject: [PATCH 10/16] [UPD] Update server_action_sort.pot --- .../i18n/server_action_sort.pot | 44 ++++++------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/server_action_sort/i18n/server_action_sort.pot b/server_action_sort/i18n/server_action_sort.pot index 1a9b0a567..360705a72 100644 --- a/server_action_sort/i18n/server_action_sort.pot +++ b/server_action_sort/i18n/server_action_sort.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -23,13 +23,6 @@ msgstr "" msgid "Action Server Sort Lines" msgstr "" -#. module: server_action_sort -#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__state -#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state -#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state -msgid "Action To Do" -msgstr "" - #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid msgid "Created by" @@ -56,14 +49,12 @@ msgid "Field Name" msgstr "" #. module: server_action_sort -#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" msgstr "" #. module: server_action_sort -#: model:ir.model.fields,help:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" @@ -79,11 +70,6 @@ msgstr "" msgid "Inverse Order" msgstr "" -#. module: server_action_sort -#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid msgid "Last Updated by" @@ -95,7 +81,6 @@ msgid "Last Updated on" msgstr "" #. module: server_action_sort -#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" @@ -122,12 +107,6 @@ msgid "Sort" msgstr "" #. module: server_action_sort -#: model_terms:ir.ui.view,arch_db:server_action_sort.view_ir_actions_server_form -msgid "Sort Options" -msgstr "" - -#. module: server_action_sort -#: model:ir.model.fields,field_description:server_action_sort.field_base_automation__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" @@ -136,32 +115,35 @@ msgstr "" #. module: server_action_sort #. odoo-python #: code:addons/server_action_sort/models/ir_actions_server.py:0 -#, python-format msgid "" "The Action Server %s is not correctly set :\n" "No lines defined" msgstr "" #. module: server_action_sort -#: model:ir.model.fields,help:server_action_sort.field_base_automation__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state +msgid "Type" +msgstr "" + +#. module: server_action_sort #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,help:server_action_sort.field_ir_cron__state msgid "" "Type of server action. The following values are available:\n" -"- 'Execute Python Code': a block of python code that will be executed\n" -"- 'Create a new Record': create a new record with new values\n" "- 'Update a Record': update the values of a record\n" -"- 'Execute several actions': define an action that triggers several other server actions\n" +"- 'Create Activity': create an activity (Discuss)\n" "- 'Send Email': post a message, a note or send an email (Discuss)\n" -"- 'Add Followers': add followers to a record (Discuss)\n" -"- 'Create Next Activity': create an activity (Discuss)\n" -"- 'Send SMS Text Message': send SMS, log them on documents (SMS)" +"- 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n" +"- 'Create Record': create a new record with new values\n" +"- 'Execute Code': a block of Python code that will be executed\n" +"- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n" +"- 'Execute Existing Actions': define an action that triggers several other server actions\n" msgstr "" #. module: server_action_sort #. odoo-python #: code:addons/server_action_sort/models/ir_actions_server.py:0 -#, python-format msgid "" "You can not run this Action Server that way.\n" " Please use contextual 'Action' menu." From 4d187604342f2358ce52968b699aeca3147d37e4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 10 Jul 2025 12:48:21 +0000 Subject: [PATCH 11/16] [BOT] post-merge updates --- server_action_sort/README.rst | 8 +++-- .../static/description/index.html | 32 +++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/server_action_sort/README.rst b/server_action_sort/README.rst index 6ea40f63d..b5146883d 100644 --- a/server_action_sort/README.rst +++ b/server_action_sort/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================================ Server Actions - Mass Sort Lines ================================ @@ -7,13 +11,13 @@ Server Actions - Mass Sort Lines !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:e221269a77f3ad06e190cd3f0c72ecdfc6d1cd0022b81e3ec57722b3c6dad475 + !! source digest: sha256:6b58691cab4d5a52ad8226118649af581fad216f823aa9b494187fd5e5912eeb !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github diff --git a/server_action_sort/static/description/index.html b/server_action_sort/static/description/index.html index fb131d076..b8f1cd7f8 100644 --- a/server_action_sort/static/description/index.html +++ b/server_action_sort/static/description/index.html @@ -3,7 +3,7 @@ -Server Actions - Mass Sort Lines +README.rst -
-

Server Actions - Mass Sort Lines

+
+ + +Odoo Community Association + +
+

Server Actions - Mass Sort Lines

-

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

This module provides a generic tools to have the possibility to sort the lines of a list of items.

For exemple, if you use the sale module, you can want to reorder the @@ -390,7 +395,7 @@

Server Actions - Mass Sort Lines

-

Configuration

+

Configuration

  • Go to ‘Setting / Technical / Actions / Server Actions’
  • Create a new item
  • @@ -410,7 +415,7 @@

    Configuration

-

Usage

+

Usage

  • Go to a tree view, for a model for which you have defined a ‘Sort’ action.
  • @@ -427,13 +432,13 @@

    Usage

    Sale Order Form After

-

Known issues / Roadmap

+

Known issues / Roadmap

For instance, the module allow to order with many criterias, but without “dot” notation : it is not possible to order sale order lines by product_id.seller_ids.code for exemple.

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -441,15 +446,15 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

+
From 49aeb22dd1954436e9e474a95a07b9708b144245 Mon Sep 17 00:00:00 2001 From: Bosd Date: Sat, 13 Sep 2025 13:31:42 +0000 Subject: [PATCH 12/16] Added translation using Weblate (Dutch) --- server_action_sort/i18n/nl.po | 151 ++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 server_action_sort/i18n/nl.po diff --git a/server_action_sort/i18n/nl.po b/server_action_sort/i18n/nl.po new file mode 100644 index 000000000..22870d277 --- /dev/null +++ b/server_action_sort/i18n/nl.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_action_sort +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id +msgid "Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines +msgid "Action Server Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid +msgid "Created by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date +msgid "Created on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name +msgid "Display Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id +msgid "Field" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name +msgid "Field Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id +msgid "Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model +msgid "For relationship fields, the technical name of the target model" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id +msgid "ID" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc +msgid "Inverse Order" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model +msgid "Model of the Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence +msgid "Sequence" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server +msgid "Server Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line +msgid "Server Actions Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort +msgid "Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids +msgid "Sorting Criterias" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +msgid "" +"The Action Server %s is not correctly set :\n" +"No lines defined" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state +msgid "Type" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state +msgid "" +"Type of server action. The following values are available:\n" +"- 'Update a Record': update the values of a record\n" +"- 'Create Activity': create an activity (Discuss)\n" +"- 'Send Email': post a message, a note or send an email (Discuss)\n" +"- 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n" +"- 'Create Record': create a new record with new values\n" +"- 'Execute Code': a block of Python code that will be executed\n" +"- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n" +"- 'Execute Existing Actions': define an action that triggers several other server actions\n" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +msgid "" +"You can not run this Action Server that way.\n" +" Please use contextual 'Action' menu." +msgstr "" From 5b647484aaa65af808f56cd7c9d416dd8afb380f Mon Sep 17 00:00:00 2001 From: Bosd Date: Sat, 13 Sep 2025 13:35:52 +0000 Subject: [PATCH 13/16] Added translation using Weblate (Dutch (nl_NL)) --- server_action_sort/i18n/nl_NL.po | 151 +++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 server_action_sort/i18n/nl_NL.po diff --git a/server_action_sort/i18n/nl_NL.po b/server_action_sort/i18n/nl_NL.po new file mode 100644 index 000000000..cfe2a46c3 --- /dev/null +++ b/server_action_sort/i18n/nl_NL.po @@ -0,0 +1,151 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * server_action_sort +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id +msgid "Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.actions.server,name:server_action_sort.sort_action_server_lines +msgid "Action Server Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid +msgid "Created by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date +msgid "Created on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name +msgid "Display Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id +msgid "Field" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name +msgid "Field Name" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id +msgid "Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model +msgid "For relationship fields, the technical name of the target model" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id +msgid "ID" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc +msgid "Inverse Order" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model +msgid "Model of the Field to Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence +msgid "Sequence" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server +msgid "Server Action" +msgstr "" + +#. module: server_action_sort +#: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line +msgid "Server Actions Sort Lines" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort +msgid "Sort" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids +msgid "Sorting Criterias" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +msgid "" +"The Action Server %s is not correctly set :\n" +"No lines defined" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state +msgid "Type" +msgstr "" + +#. module: server_action_sort +#: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state +#: model:ir.model.fields,help:server_action_sort.field_ir_cron__state +msgid "" +"Type of server action. The following values are available:\n" +"- 'Update a Record': update the values of a record\n" +"- 'Create Activity': create an activity (Discuss)\n" +"- 'Send Email': post a message, a note or send an email (Discuss)\n" +"- 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n" +"- 'Create Record': create a new record with new values\n" +"- 'Execute Code': a block of Python code that will be executed\n" +"- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n" +"- 'Execute Existing Actions': define an action that triggers several other server actions\n" +msgstr "" + +#. module: server_action_sort +#. odoo-python +#: code:addons/server_action_sort/models/ir_actions_server.py:0 +msgid "" +"You can not run this Action Server that way.\n" +" Please use contextual 'Action' menu." +msgstr "" From d659eb6b1ed28fe08137e01d71744233026c4066 Mon Sep 17 00:00:00 2001 From: Bosd Date: Sat, 13 Sep 2025 13:36:02 +0000 Subject: [PATCH 14/16] Translated using Weblate (Dutch (nl_NL)) Currently translated at 100.0% (23 of 23 strings) Translation: server-backend-18.0/server-backend-18.0-server_action_sort Translate-URL: https://translation.odoo-community.org/projects/server-backend-18-0/server-backend-18-0-server_action_sort/nl_NL/ --- server_action_sort/i18n/nl_NL.po | 62 +++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/server_action_sort/i18n/nl_NL.po b/server_action_sort/i18n/nl_NL.po index cfe2a46c3..c1f2f48cb 100644 --- a/server_action_sort/i18n/nl_NL.po +++ b/server_action_sort/i18n/nl_NL.po @@ -6,112 +6,114 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-09-13 15:42+0000\n" +"Last-Translator: Bosd \n" "Language-Team: none\n" "Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10.4\n" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__action_id msgid "Action" -msgstr "" +msgstr "Actie" #. module: server_action_sort #: model:ir.actions.server,name:server_action_sort.sort_action_server_lines msgid "Action Server Sort Lines" -msgstr "" +msgstr "Actieserver Sorteerregels" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_uid msgid "Created by" -msgstr "" +msgstr "Aangemaakt door" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__create_date msgid "Created on" -msgstr "" +msgstr "Aangemaakt op" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__display_name msgid "Display Name" -msgstr "" +msgstr "Weergavenaam" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_id msgid "Field" -msgstr "" +msgstr "Veld" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__field_name msgid "Field Name" -msgstr "" +msgstr "Veldnaam" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id msgid "Field to Sort" -msgstr "" +msgstr "Veld om te sorteren" #. module: server_action_sort #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,help:server_action_sort.field_ir_cron__sort_field_id_model msgid "For relationship fields, the technical name of the target model" -msgstr "" +msgstr "Voor relatievelden, de technische naam van het doelmodel" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__id msgid "ID" -msgstr "" +msgstr "ID" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__desc msgid "Inverse Order" -msgstr "" +msgstr "Omgekeerde volgorde" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Laatst bijgewerkt door" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__write_date msgid "Last Updated on" -msgstr "" +msgstr "Laatst bijgewerkt op" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_field_id_model #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_field_id_model msgid "Model of the Field to Sort" -msgstr "" +msgstr "Model van het te sorteren veld" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server_sort_line__sequence msgid "Sequence" -msgstr "" +msgstr "Volgorde" #. module: server_action_sort #: model:ir.model,name:server_action_sort.model_ir_actions_server msgid "Server Action" -msgstr "" +msgstr "Actieserver" #. module: server_action_sort #: model:ir.model,name:server_action_sort.model_ir_actions_server_sort_line msgid "Server Actions Sort Lines" -msgstr "" +msgstr "Actieserver Sorteerregels" #. module: server_action_sort #: model:ir.model.fields.selection,name:server_action_sort.selection__ir_actions_server__state__sort msgid "Sort" -msgstr "" +msgstr "Sorteren" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__sort_line_ids #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__sort_line_ids msgid "Sorting Criterias" -msgstr "" +msgstr "Sorteercriteria" #. module: server_action_sort #. odoo-python @@ -120,12 +122,14 @@ msgid "" "The Action Server %s is not correctly set :\n" "No lines defined" msgstr "" +"De Actieserver %s is niet correct ingesteld:\n" +"Geen regels gedefinieerd" #. module: server_action_sort #: model:ir.model.fields,field_description:server_action_sort.field_ir_actions_server__state #: model:ir.model.fields,field_description:server_action_sort.field_ir_cron__state msgid "Type" -msgstr "" +msgstr "Type" #. module: server_action_sort #: model:ir.model.fields,help:server_action_sort.field_ir_actions_server__state @@ -141,6 +145,20 @@ msgid "" "- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n" "- 'Execute Existing Actions': define an action that triggers several other server actions\n" msgstr "" +"Type actieserver. De volgende waarden zijn beschikbaar:\n" +"- 'Record bijwerken': waarden van een record bijwerken\n" +"- 'Activiteit aanmaken': een activiteit aanmaken (Discuss)\n" +"- 'E-mail verzenden': een bericht of notitie plaatsen of een e-mail " +"verzenden (Discuss)\n" +"- 'SMS verzenden': SMS'en verzenden en op documenten loggen (SMS)- 'Volgers " +"toevoegen/verwijderen': volgers aan een record toevoegen of verwijderen " +"(Discuss)\n" +"- 'Record aanmaken': een nieuw record met nieuwe waarden aanmaken\n" +"- 'Code uitvoeren': een blok Python-code dat zal worden uitgevoerd\n" +"- 'Webhook-melding verzenden': een POST-verzoek naar een extern systeem " +"sturen, ook bekend als een Webhook\n" +"- 'Bestaande acties uitvoeren': een actie definiëren die verschillende " +"andere serveracties activeert\n" #. module: server_action_sort #. odoo-python @@ -149,3 +167,5 @@ msgid "" "You can not run this Action Server that way.\n" " Please use contextual 'Action' menu." msgstr "" +"U kunt deze actieserver niet op deze manier uitvoeren.\n" +"Gebruik het contextuele menu 'Actie'." From d8b3db0fa172796d491d7e8d626844d5e65e3989 Mon Sep 17 00:00:00 2001 From: Jordan Andres Pincay Vinces Date: Wed, 1 Apr 2026 15:56:10 +0000 Subject: [PATCH 15/16] [IMP] server_action_sort: pre-commit auto fixes --- server_action_sort/__manifest__.py | 2 +- server_action_sort/models/ir_actions_server.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server_action_sort/__manifest__.py b/server_action_sort/__manifest__.py index b05f71802..af65cd877 100644 --- a/server_action_sort/__manifest__.py +++ b/server_action_sort/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Server Actions - Mass Sort Lines", "version": "18.0.1.0.0", - "author": "GRAP, " "Odoo Community Association (OCA)", + "author": "GRAP, Odoo Community Association (OCA)", "summary": "Sort any lines of any models by any criterias", "category": "Tools", "website": "https://github.com/OCA/server-backend", diff --git a/server_action_sort/models/ir_actions_server.py b/server_action_sort/models/ir_actions_server.py index 0fef3b3d5..3d246c135 100644 --- a/server_action_sort/models/ir_actions_server.py +++ b/server_action_sort/models/ir_actions_server.py @@ -34,7 +34,7 @@ def _run_action_sort_multi(self, eval_context=None): if len(self.sort_line_ids) == 0: raise UserError( self.env._( - "The Action Server %s is not correctly set :\n" "No lines defined" + "The Action Server %s is not correctly set :\nNo lines defined" ) % (self.name) ) From 2e38662cff7f76d696208bbc2a6614a0ece82922 Mon Sep 17 00:00:00 2001 From: Jordan Andres Pincay Vinces Date: Wed, 1 Apr 2026 16:02:01 +0000 Subject: [PATCH 16/16] [MIG] server_action_sort: Migration to 19.0 --- server_action_sort/README.rst | 18 +++---- server_action_sort/__manifest__.py | 2 +- .../models/ir_actions_server.py | 9 ++-- .../static/description/index.html | 14 +++--- server_action_sort/tests/test_module.py | 50 +++++++++++++++++-- .../views/view_ir_actions_server.xml | 25 ++++------ 6 files changed, 79 insertions(+), 39 deletions(-) diff --git a/server_action_sort/README.rst b/server_action_sort/README.rst index b5146883d..2309339b6 100644 --- a/server_action_sort/README.rst +++ b/server_action_sort/README.rst @@ -21,13 +21,13 @@ Server Actions - Mass Sort Lines :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--backend-lightgray.png?logo=github - :target: https://github.com/OCA/server-backend/tree/18.0/server_action_sort + :target: https://github.com/OCA/server-backend/tree/19.0/server_action_sort :alt: OCA/server-backend .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-backend-18-0/server-backend-18-0-server_action_sort + :target: https://translation.odoo-community.org/projects/server-backend-19-0/server-backend-19-0-server_action_sort :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-backend&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -62,7 +62,7 @@ Configuration - you can define groups whose members will have access to that option. -.. |image1| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/ir_actions_server_form.png +.. |image1| image:: https://raw.githubusercontent.com/OCA/server-backend/19.0/server_action_sort/static/description/ir_actions_server_form.png Usage ===== @@ -84,9 +84,9 @@ Usage |Sale Order Form After| -.. |Sale Order Tree| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_tree.png -.. |Sale Order Form Before| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_before.png -.. |Sale Order Form After| image:: https://raw.githubusercontent.com/OCA/server-backend/18.0/server_action_sort/static/description/sale_order_form_after.png +.. |Sale Order Tree| image:: https://raw.githubusercontent.com/OCA/server-backend/19.0/server_action_sort/static/description/sale_order_tree.png +.. |Sale Order Form Before| image:: https://raw.githubusercontent.com/OCA/server-backend/19.0/server_action_sort/static/description/sale_order_form_before.png +.. |Sale Order Form After| image:: https://raw.githubusercontent.com/OCA/server-backend/19.0/server_action_sort/static/description/sale_order_form_after.png Known issues / Roadmap ====================== @@ -101,7 +101,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -142,6 +142,6 @@ Current `maintainer `__: |maintainer-legalsylvain| -This module is part of the `OCA/server-backend `_ project on GitHub. +This module is part of the `OCA/server-backend `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/server_action_sort/__manifest__.py b/server_action_sort/__manifest__.py index af65cd877..3bcdba881 100644 --- a/server_action_sort/__manifest__.py +++ b/server_action_sort/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Server Actions - Mass Sort Lines", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "author": "GRAP, Odoo Community Association (OCA)", "summary": "Sort any lines of any models by any criterias", "category": "Tools", diff --git a/server_action_sort/models/ir_actions_server.py b/server_action_sort/models/ir_actions_server.py index 3d246c135..bd00c2848 100644 --- a/server_action_sort/models/ir_actions_server.py +++ b/server_action_sort/models/ir_actions_server.py @@ -10,7 +10,7 @@ class IrActionsServer(models.Model): _inherit = "ir.actions.server" state = fields.Selection( - selection_add=[("sort", "Sort")], ondelete={"sort": "set default"} + selection_add=[("sort", "Sort")], ondelete={"sort": "cascade"} ) sort_line_ids = fields.One2many( @@ -34,16 +34,17 @@ def _run_action_sort_multi(self, eval_context=None): if len(self.sort_line_ids) == 0: raise UserError( self.env._( - "The Action Server %s is not correctly set :\nNo lines defined" + "The Action Server %(name)s is not correctly set:\n" + "No lines defined", + name=self.name, ) - % (self.name) ) if eval_context is None: raise UserError( self.env._( "You can not run this Action Server that way.\n" - " Please use contextual 'Action' menu." + "Please use contextual 'Action' menu." ) ) diff --git a/server_action_sort/static/description/index.html b/server_action_sort/static/description/index.html index b8f1cd7f8..8cb396fd4 100644 --- a/server_action_sort/static/description/index.html +++ b/server_action_sort/static/description/index.html @@ -374,7 +374,7 @@

Server Actions - Mass Sort Lines

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:6b58691cab4d5a52ad8226118649af581fad216f823aa9b494187fd5e5912eeb !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

This module provides a generic tools to have the possibility to sort the lines of a list of items.

For exemple, if you use the sale module, you can want to reorder the @@ -400,7 +400,7 @@

Configuration

  • Go to ‘Setting / Technical / Actions / Server Actions’
  • Create a new item
  • -

    image1

    +

    image1

    • Set a name that will be used for the Contextual Action
    • choose a model
    • @@ -422,14 +422,14 @@

      Usage

    • Select some items you want to reorder.
    • click on ‘Action’ Button
    -

    Sale Order Tree

    +

    Sale Order Tree

    • then click on the name of the configured Action and see the results

    Before

    -

    Sale Order Form Before

    +

    Sale Order Form Before

    After

    -

    Sale Order Form After

    +

    Sale Order Form After

    Known issues / Roadmap

    @@ -442,7 +442,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -474,7 +474,7 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    legalsylvain

    -

    This module is part of the OCA/server-backend project on GitHub.

    +

    This module is part of the OCA/server-backend project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/server_action_sort/tests/test_module.py b/server_action_sort/tests/test_module.py index af5868221..e91f8c28e 100644 --- a/server_action_sort/tests/test_module.py +++ b/server_action_sort/tests/test_module.py @@ -9,9 +9,51 @@ class TestModule(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() - cls.action_server = cls.env.ref("server_action_sort.sort_action_server_lines") - cls.line_1 = cls.env.ref("server_action_sort.sort_action_server_lines_line_1") - cls.line_2 = cls.env.ref("server_action_sort.sort_action_server_lines_line_2") + model_server_action = cls.env["ir.model"].search( + [("model", "=", "ir.actions.server")], limit=1 + ) + sort_line_field = cls.env["ir.model.fields"].search( + [ + ("model_id", "=", model_server_action.id), + ("name", "=", "sort_line_ids"), + ], + limit=1, + ) + sort_line_model = cls.env["ir.model"].search( + [("model", "=", "ir.actions.server.sort.line")], limit=1 + ) + field_name_field = cls.env["ir.model.fields"].search( + [("model_id", "=", sort_line_model.id), ("name", "=", "field_name")], + limit=1, + ) + desc_field = cls.env["ir.model.fields"].search( + [("model_id", "=", sort_line_model.id), ("name", "=", "desc")], + limit=1, + ) + cls.action_server = cls.env["ir.actions.server"].create( + { + "name": "Test Sort Action", + "state": "sort", + "model_id": model_server_action.id, + "sort_field_id": sort_line_field.id, + } + ) + cls.line_1 = cls.env["ir.actions.server.sort.line"].create( + { + "sequence": 1, + "action_id": cls.action_server.id, + "field_id": field_name_field.id, + "desc": False, + } + ) + cls.line_2 = cls.env["ir.actions.server.sort.line"].create( + { + "sequence": 2, + "action_id": cls.action_server.id, + "field_id": desc_field.id, + "desc": False, + } + ) def test_action_result(self): self.assertEqual(self.line_1.sequence, 1) @@ -22,5 +64,7 @@ def test_action_result(self): active_model="ir.actions.server", active_ids=[self.action_server.id] ).run() + self.line_1.invalidate_recordset() + self.line_2.invalidate_recordset() self.assertEqual(self.line_1.sequence, 2) self.assertEqual(self.line_2.sequence, 1) diff --git a/server_action_sort/views/view_ir_actions_server.xml b/server_action_sort/views/view_ir_actions_server.xml index f5facf182..1b2830cbf 100644 --- a/server_action_sort/views/view_ir_actions_server.xml +++ b/server_action_sort/views/view_ir_actions_server.xml @@ -9,13 +9,16 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). ir.actions.server - - + + + + + + + + + + @@ -24,14 +27,6 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - - - -