From 49f006588c3faaf2e05480cca448571fc3c4945f Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action Table of Contents
-
Taking our new game online and letting players try it out.
Welcome to Evennia! This multi-part Beginner Tutorial will help you get off the ground.
-You can pick what seems interesting, but if you follow through to the end you will have created a little online game of your own to play and share with others!
-Use the menu on the right to get the index of each tutorial-part. Use the next and previous links at the top/bottom right of the page to step between lessons.
+Welcome to Evennia! This multi-part Beginner Tutorial will help get you off the ground and running.
+You may choose topics that seem interesting but, if you follow this tutorial through to the end, you will have created your own small online game to play and share with others!
+Use the menu on the right to navigate the index of each of the tutorial’s parts. Use the next and previous links at the top/bottom right of each page to jump between lessons.
A Command line
A command line interface
A MUD client (or web browser)
A text-editor/IDE
Evennia installed and a game-dir initialized
You need to know how to find your Terminal/Console in your OS. The Evennia server can be controlled from in-game, but you will need to use the command-line to get anywhere. Here are some starters:
+You need to know how to find the terminal/console in your OS. The Evennia server can be controlled from in-game, but you will realistically need to use the command-line interface to get anywhere. Here are some starters:
-Note that we usually only show forward-slashes
+/for file system paths. Windows users should mentally convert this to back-slashes\instead.Note that the documentation typically uses forward-slashes (
/) for file system paths. Windows users should convert these to back-slashes (\) instead.- A fresh game dir?¶
-You should make sure you have successfully installed Evennia. If you followed the instructions you will already have created a game-dir. You could re-use that or make a new one only for this tutorial, it’s up to you.
-If you already have a game dir and want a separate one for the tutorial, use
+evennia stopto halt the running server and then Initialize a new game dir somewhere else (not inside the previous game dir!). We refer to it everywhere asmygame, so you may want to use that name too.A Fresh Game-Dir?¶
+You should make sure that you have successfully installed Evennia. If you followed the instructions, you will have already created a game-dir. The documentation will continue to refer to this game-dir as
+mygame, so you may want to re-use it or make a new one specific to this tutorial only – it’s up to you.If you already have a game-dir and want a new one specific to this tutorial, use the
evennia stopcommand to halt the running server. Then, initialize a new game-dir somewhere else (not inside the previous game-dir!).- A MUD client¶
-You might already have a MUD-client you prefer. Check out the grid of supported clients. -If telnet’s not your thing, you can also just use Evennia’s web client in your browser.
-Make sure you know how to connect to and log in to your locally running Evennia server.
+A MUD Client¶
+You may already have a preferred MUD client. Check out the grid of supported clients. Or, if telnet’s not your thing, you may also simply use Evennia’s web-client in your preferred browser.
+Make sure you know how to connect and log in to your locally running Evennia server.
-In this documentation we often use the terms ‘MUD’, ‘MU’ or ‘MU*’ interchangeably to represent all the historically different forms of text-based multiplayer game-styles, like MUD, MUX, MUSH, MUCK, MOO and others. Evennia can be used to create all those game-styles and more.
+In this documentation we often interchangeably use the terms ‘MUD’, ‘MU’, and ‘MU*’ to represent all the historically different forms of text-based multiplayer game-styles (i.e., MUD, MUX, MUSH, MUCK, MOO, etc.). Evennia can be used to create any of these game-styles… and more!
- A text Editor or IDE¶
-You need a text-editor to edit Python source files. Most everything that can edit and output raw text works (so not Word).
+A Text Editor or IDE¶
+You need a text editor application to edit Python source files. Most anything that can edit and output raw text should work (…so not Microsoft Word).
-
- +
Here’s a blog post summing up some of the alternatives - these things don’t change much from year to year. Popular choices for Python are PyCharm, VSCode, Atom, Sublime Text and Notepad++. Evennia is to a very large degree coded in VIM, but that’s not suitable for beginners.
Here’s a blog post summing up a variety of text editor options - these things don’t change much from year to year. Popular choices for Python are PyCharm, VSCode, Atom, Sublime Text, and Notepad++. Evennia is – to a very large degree – coded in VIM, but it is not suitable for beginners.
-Important
-Use spaces, not tabs -Make sure to configure your editor so that pressing TAB inserts 4 spaces rather than a Tab-character. Since Python is whitespace-aware, this will make your life a lot easier.
+Use Spaces, Not Tabs< br/> +Make sure to configure your text editor so that pressing the ‘Tab’ key inserts 4 spaces rather than a tab-character. Because Python is whitespace-aware, this simple practice will make your life much easier.
You should now be ready to move on to the first part of the tutorial (in the future, use the
+previous | nextbuttons on the top/bottom of the page to progress)!You should now be ready to move on to the first part of the Beginner Tutorial! (In the future, use the
previous | nextbuttons on the top/bottom of the page to progress.)Click here to see the full index of all parts and lessons of the Beginner-Tutorial. diff --git a/docs/2.x/_sources/Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md.txt b/docs/2.x/_sources/Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md.txt index ab3f564296..0f4131b800 100644 --- a/docs/2.x/_sources/Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md.txt +++ b/docs/2.x/_sources/Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md.txt @@ -15,53 +15,52 @@
Taking our new game online and letting players try it out. ``` -Welcome to Evennia! This multi-part Beginner Tutorial will help you get off the ground. +Welcome to Evennia! This multi-part Beginner Tutorial will help get you off the ground and running. -You can pick what seems interesting, but if you follow through to the end you will have created a little online game of your own to play and share with others! +You may choose topics that seem interesting but, if you follow this tutorial through to the end, you will have created your own small online game to play and share with others! -Use the menu on the right to get the index of each tutorial-part. Use the [next](Part1/Beginner-Tutorial-Part1-Overview.md) and [previous](../Howtos-Overview.md) links at the top/bottom right of the page to step between lessons. +Use the menu on the right to navigate the index of each of the tutorial's parts. Use the [next](Part1/Beginner-Tutorial-Part1-Overview.md) and [previous](../Howtos-Overview.md) links at the top/bottom right of each page to jump between lessons. -## Things you need +## Things You Need -- A Command line +- A command line interface - A MUD client (or web browser) - A text-editor/IDE - Evennia installed and a game-dir initialized -### A Command line +### A Command Line Interface -You need to know how to find your Terminal/Console in your OS. The Evennia server can be controlled from in-game, but you _will_ need to use the command-line to get anywhere. Here are some starters: +You need to know how to find the terminal/console in your OS. The Evennia server can be controlled from in-game, but you _will_ realistically need to use the command-line interface to get anywhere. Here are some starters: - [Online Intro to the Command line for different OS:es](https://tutorial.djangogirls.org/en/intro_to_command_line/) -> Note that we usually only show forward-slashes `/` for file system paths. Windows users should mentally convert this to back-slashes `\` instead. +> Note that the documentation typically uses forward-slashes (`/`) for file system paths. Windows users should convert these to back-slashes (`\`) instead. -### A fresh game dir? +### A Fresh Game-Dir? -You should make sure you have successfully [installed Evennia](../../Setup/Installation.md). If you followed the instructions you will already have created a game-dir. You could re-use that or make a new one only for this tutorial, it's up to you. +You should make sure that you have successfully [installed Evennia](../../Setup/Installation.md). If you followed the instructions, you will have already created a game-dir. The documentation will continue to refer to this game-dir as `mygame`, so you may want to re-use it or make a new one specific to this tutorial only -- it's up to you. -If you already have a game dir and want a separate one for the tutorial, use `evennia stop` to halt the running server and then [Initialize a new game dir](../../Setup/Installation.md#initialize-a-new-game) somewhere else (_not_ inside the previous game dir!). We refer to it everywhere as `mygame`, so you may want to use that name too. +If you already have a game-dir and want a new one specific to this tutorial, use the `evennia stop` command to halt the running server. Then, [initialize a new game-dir](../../Setup/Installation.md#initialize-a-new-game) somewhere else (_not_ inside the previous game-dir!). -### A MUD client +### A MUD Client -You might already have a MUD-client you prefer. Check out the [grid of supported clients](../../Setup/Client-Support-Grid.md). -If telnet's not your thing, you can also just use Evennia's web client in your browser. +You may already have a preferred MUD client. Check out the [grid of supported clients](../../Setup/Client-Support-Grid.md). Or, if telnet's not your thing, you may also simply use Evennia's web-client in your preferred browser. -Make sure you know how to connect to and log in to your locally running Evennia server. +Make sure you know how to connect and log in to your locally running Evennia server. -> In this documentation we often use the terms 'MUD', 'MU' or 'MU*' interchangeably to represent all the historically different forms of text-based multiplayer game-styles, like MUD, MUX, MUSH, MUCK, MOO and others. Evennia can be used to create all those game-styles and more. +> In this documentation we often interchangeably use the terms 'MUD', 'MU', and 'MU*' to represent all the historically different forms of text-based multiplayer game-styles (i.e., MUD, MUX, MUSH, MUCK, MOO, etc.). Evennia can be used to create any of these game-styles... and more! -### A text Editor or IDE +### A Text Editor or IDE -You need a text-editor to edit Python source files. Most everything that can edit and output raw text works (so not Word). +You need a text editor application to edit Python source files. Most anything that can edit and output raw text should work (...so not Microsoft Word). -- [Here's a blog post summing up some of the alternatives](https://www.elegantthemes.com/blog/resources/best-code-editors) - these things don't change much from year to year. Popular choices for Python are PyCharm, VSCode, Atom, Sublime Text and Notepad++. Evennia is to a very large degree coded in VIM, but that's not suitable for beginners. +- [Here's a blog post summing up a variety of text editor options](https://www.elegantthemes.com/blog/resources/best-code-editors) - these things don't change much from year to year. Popular choices for Python are PyCharm, VSCode, Atom, Sublime Text, and Notepad++. Evennia is -- to a very large degree -- coded in VIM, but it is not suitable for beginners. -```{important} Use spaces, not tabs -Make sure to configure your editor so that pressing TAB inserts _4 spaces_ rather than a Tab-character. Since Python is whitespace-aware, this will make your life a lot easier. +```{important} Use Spaces, Not Tabs< br/> +Make sure to configure your text editor so that pressing the 'Tab' key inserts _4 spaces_ rather than a tab-character. Because Python is whitespace-aware, this simple practice will make your life much easier. ``` -You should now be ready to move on to the [first part of the tutorial](Part1/Beginner-Tutorial-Part1-Overview.md) (in the future, use the `previous | next` buttons on the top/bottom of the page to progress)! +You should now be ready to move on to the [first part of the Beginner Tutorial](Part1/Beginner-Tutorial-Part1-Overview.md)! (In the future, use the `previous | next` buttons on the top/bottom of the page to progress.)diff --git a/docs/2.x/api/evennia.commands.default.account.html b/docs/2.x/api/evennia.commands.default.account.html index cc34d4484b..af4cefee04 100644 --- a/docs/2.x/api/evennia.commands.default.account.html +++ b/docs/2.x/api/evennia.commands.default.account.html @@ -141,7 +141,7 @@ method. Otherwise all text will be returned to all connected sessions.
@@ -172,7 +172,7 @@ method. Otherwise all text will be returned to all connected sessions.
diff --git a/docs/2.x/api/evennia.commands.default.admin.html b/docs/2.x/api/evennia.commands.default.admin.html index 7564dce65b..d19b4515c3 100644 --- a/docs/2.x/api/evennia.commands.default.admin.html +++ b/docs/2.x/api/evennia.commands.default.admin.html @@ -325,7 +325,7 @@ to accounts respectively.
- -
+search_index_entry= {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶search_index_entry= {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶@@ -356,7 +356,7 @@ to accounts respectively.
diff --git a/docs/2.x/api/evennia.commands.default.building.html b/docs/2.x/api/evennia.commands.default.building.html index 6c51bce7dc..c9571deed4 100644 --- a/docs/2.x/api/evennia.commands.default.building.html +++ b/docs/2.x/api/evennia.commands.default.building.html @@ -600,7 +600,7 @@ You can specify the /force switch to bypass this confirmation.
- -
+search_index_entry= {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}¶search_index_entry= {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}¶@@ -641,7 +641,7 @@ You can specify the /force switch to bypass this confirmation.
@@ -1353,7 +1353,7 @@ server settings.
- -
+search_index_entry= {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶search_index_entry= {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶
- -
+aliases= ['@type', '@swap', '@update', '@parent', '@typeclasses']¶aliases= ['@update', '@swap', '@typeclasses', '@type', '@parent']¶@@ -1384,7 +1384,7 @@ server settings.
diff --git a/docs/2.x/api/evennia.commands.default.general.html b/docs/2.x/api/evennia.commands.default.general.html index 93569d0f81..1cadce223d 100644 --- a/docs/2.x/api/evennia.commands.default.general.html +++ b/docs/2.x/api/evennia.commands.default.general.html @@ -183,7 +183,7 @@ look *<account&g
- -
+search_index_entry= {'aliases': '@type @swap @update @parent @typeclasses', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type swap update parent typeclasses', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶search_index_entry= {'aliases': '@update @swap @typeclasses @type @parent', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update swap typeclasses type parent', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶@@ -214,7 +214,7 @@ look *<account&g
@@ -276,7 +276,7 @@ for everyone to use, you need build privileges and the alias command.
- -
+search_index_entry= {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶search_index_entry= {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶@@ -308,7 +308,7 @@ for everyone to use, you need build privileges and the alias command.
@@ -331,7 +331,7 @@ inv
- -
+search_index_entry= {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' nicks nickname', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶search_index_entry= {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'no_prefix': ' nickname nicks', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] <string> [= [replacement_string]]\n nick[/switches] <template> = <replacement_template>\n nick/delete <string> or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also "nicks" works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side <string>:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your <string>\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}¶@@ -362,7 +362,7 @@ inv
@@ -717,7 +717,7 @@ automatically begin with your name.
- -
+search_index_entry= {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶search_index_entry= {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶@@ -758,7 +758,7 @@ space.
@@ -781,7 +781,7 @@ which permission groups you are a member of.
- -
+search_index_entry= {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' : emote', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶search_index_entry= {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'no_prefix': ' emote :', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶@@ -812,7 +812,7 @@ which permission groups you are a member of.
diff --git a/docs/2.x/api/evennia.commands.default.tests.html b/docs/2.x/api/evennia.commands.default.tests.html index 8d15b8bf86..8ed3e0721d 100644 --- a/docs/2.x/api/evennia.commands.default.tests.html +++ b/docs/2.x/api/evennia.commands.default.tests.html @@ -963,7 +963,7 @@ main test suite started with
- -
+search_index_entry= {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'no_prefix': ' hierarchy groups', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}¶search_index_entry= {'aliases': 'groups hierarchy', 'category': 'general', 'key': 'access', 'no_prefix': ' groups hierarchy', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}¶Test the batch processor.
+
red_button= <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp7mnq47sp/a2e0991c668c55d364448180abe4f60f9096f201/evennia/contrib/tutorials/red_button/red_button.py'>¶diff --git a/docs/2.x/api/evennia.commands.default.unloggedin.html b/docs/2.x/api/evennia.commands.default.unloggedin.html index 37e89bd4b5..8f76ce44be 100644 --- a/docs/2.x/api/evennia.commands.default.unloggedin.html +++ b/docs/2.x/api/evennia.commands.default.unloggedin.html @@ -130,7 +130,7 @@ connect “account name” “pass word”
@@ -165,7 +165,7 @@ there is no object yet before the account has logged in)
@@ -189,7 +189,7 @@ create “account name” “pass word”
- -
+search_index_entry= {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶search_index_entry= {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶@@ -226,7 +226,7 @@ create “account name” “pass word”
@@ -300,7 +300,7 @@ All it does is display the connect screen.
- -
+search_index_entry= {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶search_index_entry= {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶@@ -326,7 +326,7 @@ All it does is display the connect screen.
@@ -349,7 +349,7 @@ for simplicity. It shows a pane of info.
- -
+search_index_entry= {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶search_index_entry= {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶@@ -375,7 +375,7 @@ for simplicity. It shows a pane of info.
diff --git a/docs/2.x/api/evennia.contrib.base_systems.email_login.email_login.html b/docs/2.x/api/evennia.contrib.base_systems.email_login.email_login.html index 1ebdc0d0c7..6993516e18 100644 --- a/docs/2.x/api/evennia.contrib.base_systems.email_login.email_login.html +++ b/docs/2.x/api/evennia.contrib.base_systems.email_login.email_login.html @@ -147,7 +147,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.
- -
+search_index_entry= {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶search_index_entry= {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶@@ -177,7 +177,7 @@ there is no object yet before the account has logged in)
@@ -199,7 +199,7 @@ there is no object yet before the account has logged in)
- -
+search_index_entry= {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶search_index_entry= {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶@@ -235,7 +235,7 @@ name enclosed in quotes:
@@ -299,7 +299,7 @@ All it does is display the connect screen.
- -
+search_index_entry= {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}¶search_index_entry= {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}¶@@ -325,7 +325,7 @@ All it does is display the connect screen.
@@ -343,7 +343,7 @@ for simplicity. It shows a pane of info.
- -
+search_index_entry= {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶search_index_entry= {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}¶@@ -369,7 +369,7 @@ for simplicity. It shows a pane of info.
diff --git a/docs/2.x/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html b/docs/2.x/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html index 7161fd5c59..ca49eb74d4 100644 --- a/docs/2.x/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html +++ b/docs/2.x/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html @@ -168,7 +168,7 @@ aliases to an already joined channel.
- -
+search_index_entry= {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶search_index_entry= {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶@@ -199,7 +199,7 @@ aliases to an already joined channel.
@@ -225,7 +225,7 @@ for that channel.
- -
+search_index_entry= {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' aliaschan chanalias', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶search_index_entry= {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' chanalias aliaschan', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}¶@@ -256,7 +256,7 @@ for that channel.
diff --git a/docs/2.x/api/evennia.contrib.full_systems.evscaperoom.commands.html b/docs/2.x/api/evennia.contrib.full_systems.evscaperoom.commands.html index 1b4ce5b376..7d0b4e7f1a 100644 --- a/docs/2.x/api/evennia.contrib.full_systems.evscaperoom.commands.html +++ b/docs/2.x/api/evennia.contrib.full_systems.evscaperoom.commands.html @@ -219,7 +219,7 @@ the operation will be general or on the room.
- -
+search_index_entry= {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delchanalias delaliaschan', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}¶search_index_entry= {'aliases': 'delaliaschan delchanalias', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delaliaschan delchanalias', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}¶@@ -243,7 +243,7 @@ set in self.parse())
@@ -264,7 +264,7 @@ set in self.parse())
- -
+search_index_entry= {'aliases': 'abort quit q chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort quit q chicken out', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}¶search_index_entry= {'aliases': 'abort q quit chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort q quit chicken out', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}¶@@ -298,7 +298,7 @@ set in self.parse())
@@ -379,7 +379,7 @@ shout
- -
+search_index_entry= {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}¶search_index_entry= {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}¶@@ -408,7 +408,7 @@ set in self.parse())
@@ -498,7 +498,7 @@ looks and what actions is available.
- -
+search_index_entry= {'aliases': 'whisper shout ;', 'category': 'general', 'key': 'say', 'no_prefix': ' whisper shout ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶search_index_entry= {'aliases': '; whisper shout', 'category': 'general', 'key': 'say', 'no_prefix': ' ; whisper shout', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶@@ -527,7 +527,7 @@ set in self.parse())
@@ -589,7 +589,7 @@ set in self.parse())
- -
+search_index_entry= {'aliases': 'ex e examine unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ex e examine unfocus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶search_index_entry= {'aliases': 'unfocus e ex examine', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus e ex examine', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶@@ -613,7 +613,7 @@ set in self.parse())
@@ -634,7 +634,7 @@ set in self.parse())
- -
+search_index_entry= {'aliases': 'give inventory i inv', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' give inventory i inv', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶search_index_entry= {'aliases': 'inv i give inventory', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv i give inventory', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶@@ -657,7 +657,7 @@ to all the variables defined therein.
diff --git a/docs/2.x/api/evennia.contrib.game_systems.barter.barter.html b/docs/2.x/api/evennia.contrib.game_systems.barter.barter.html index ebcc660be2..6b461fdbfa 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.barter.barter.html +++ b/docs/2.x/api/evennia.contrib.game_systems.barter.barter.html @@ -753,7 +753,7 @@ try to influence the other part in the deal.
- -
+search_index_entry= {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶search_index_entry= {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶@@ -779,7 +779,7 @@ try to influence the other part in the deal.
diff --git a/docs/2.x/api/evennia.contrib.game_systems.clothing.clothing.html b/docs/2.x/api/evennia.contrib.game_systems.clothing.clothing.html index 7c96a8a017..2c3865a810 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.clothing.clothing.html +++ b/docs/2.x/api/evennia.contrib.game_systems.clothing.clothing.html @@ -630,7 +630,7 @@ inv
- -
+search_index_entry= {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' deal offers', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}¶search_index_entry= {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'no_prefix': ' offers deal', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}¶@@ -661,7 +661,7 @@ inv
diff --git a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_basic.html b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_basic.html index 740aeb1135..eadd9e7ce4 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_basic.html +++ b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_basic.html @@ -680,7 +680,7 @@ if there are still any actions you can take.
- -
+search_index_entry= {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶search_index_entry= {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}¶@@ -706,7 +706,7 @@ if there are still any actions you can take.
diff --git a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_equip.html b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_equip.html index 7ecb81b00c..8386735c09 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_equip.html +++ b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_equip.html @@ -575,7 +575,7 @@ if there are still any actions you can take.
- -
+search_index_entry= {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry= {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶@@ -595,7 +595,7 @@ if there are still any actions you can take.
diff --git a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_items.html b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_items.html index a9cb8ec2ad..5cdde30129 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_items.html +++ b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_items.html @@ -698,7 +698,7 @@ if there are still any actions you can take.
- -
+search_index_entry= {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry= {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶@@ -718,7 +718,7 @@ if there are still any actions you can take.
diff --git a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_magic.html b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_magic.html index 40f957d777..65ef8b98b2 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_magic.html +++ b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_magic.html @@ -477,7 +477,7 @@ if there are still any actions you can take.
- -
+search_index_entry= {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry= {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶@@ -497,7 +497,7 @@ if there are still any actions you can take.
diff --git a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_range.html b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_range.html index 3fb13400d7..464c87420b 100644 --- a/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_range.html +++ b/docs/2.x/api/evennia.contrib.game_systems.turnbattle.tb_range.html @@ -937,7 +937,7 @@ if there are still any actions you can take.
- -
+search_index_entry= {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry= {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶@@ -957,7 +957,7 @@ if there are still any actions you can take.
diff --git a/docs/2.x/api/evennia.contrib.grid.extended_room.extended_room.html b/docs/2.x/api/evennia.contrib.grid.extended_room.extended_room.html index f161a9924f..44aed4cdec 100644 --- a/docs/2.x/api/evennia.contrib.grid.extended_room.extended_room.html +++ b/docs/2.x/api/evennia.contrib.grid.extended_room.extended_room.html @@ -651,7 +651,7 @@ look *<account&g
- -
+search_index_entry= {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶search_index_entry= {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}¶@@ -671,7 +671,7 @@ look *<account&g
diff --git a/docs/2.x/api/evennia.contrib.grid.xyzgrid.commands.html b/docs/2.x/api/evennia.contrib.grid.xyzgrid.commands.html index f92fe04007..652a2fef7e 100644 --- a/docs/2.x/api/evennia.contrib.grid.xyzgrid.commands.html +++ b/docs/2.x/api/evennia.contrib.grid.xyzgrid.commands.html @@ -430,7 +430,7 @@ there is no room above/below you, your movement will fail.
- -
+search_index_entry= {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}¶search_index_entry= {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}¶@@ -453,7 +453,7 @@ to all the variables defined therein.
diff --git a/docs/2.x/api/evennia.contrib.rpg.dice.dice.html b/docs/2.x/api/evennia.contrib.rpg.dice.dice.html index 5008628379..f83eaba61b 100644 --- a/docs/2.x/api/evennia.contrib.rpg.dice.dice.html +++ b/docs/2.x/api/evennia.contrib.rpg.dice.dice.html @@ -334,7 +334,7 @@ everyone but the person rolling.
- -
+search_index_entry= {'aliases': 'dive fly', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' dive fly', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}¶search_index_entry= {'aliases': 'fly dive', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' fly dive', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}¶@@ -360,7 +360,7 @@ everyone but the person rolling.
diff --git a/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html b/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html index 73fe4f65d0..5009392c4f 100644 --- a/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html +++ b/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html @@ -474,7 +474,7 @@ turn of combat, performing everyone’s actions in random order.
- -
+search_index_entry= {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}¶search_index_entry= {'aliases': '@dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}¶@@ -520,7 +520,7 @@ set in self.parse())
diff --git a/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_twitch.html b/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_twitch.html index 2961fd81d2..c801039b1b 100644 --- a/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_twitch.html +++ b/docs/2.x/api/evennia.contrib.tutorials.evadventure.combat_twitch.html @@ -389,7 +389,7 @@ look *<account&g
- -
+search_index_entry= {'aliases': 'hit turnbased combat', 'category': 'general', 'key': 'attack', 'no_prefix': ' hit turnbased combat', 'tags': '', 'text': '\n Start or join combat.\n\n Usage:\n attack [<target>]\n\n '}¶search_index_entry= {'aliases': 'turnbased combat hit', 'category': 'general', 'key': 'attack', 'no_prefix': ' turnbased combat hit', 'tags': '', 'text': '\n Start or join combat.\n\n Usage:\n attack [<target>]\n\n '}¶@@ -409,7 +409,7 @@ look *<account&g
diff --git a/docs/2.x/api/evennia.contrib.tutorials.evadventure.commands.html b/docs/2.x/api/evennia.contrib.tutorials.evadventure.commands.html index a8bfcc0523..7142454385 100644 --- a/docs/2.x/api/evennia.contrib.tutorials.evadventure.commands.html +++ b/docs/2.x/api/evennia.contrib.tutorials.evadventure.commands.html @@ -200,7 +200,7 @@ self.args).
- -
+search_index_entry= {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶search_index_entry= {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶@@ -224,7 +224,7 @@ set in self.parse())
@@ -301,7 +301,7 @@ unwear <item>
- -
+search_index_entry= {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}¶search_index_entry= {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}¶@@ -325,7 +325,7 @@ set in self.parse())
diff --git a/docs/2.x/api/evennia.contrib.tutorials.red_button.red_button.html b/docs/2.x/api/evennia.contrib.tutorials.red_button.red_button.html index 0b47a0b903..9367f66a61 100644 --- a/docs/2.x/api/evennia.contrib.tutorials.red_button.red_button.html +++ b/docs/2.x/api/evennia.contrib.tutorials.red_button.red_button.html @@ -161,7 +161,7 @@ such as when closing the lid and un-blinding a character.
- -
+search_index_entry= {'aliases': 'unwield unwear', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwield unwear', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}¶search_index_entry= {'aliases': 'unwear unwield', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwear unwield', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}¶+
aliases= ['push', 'press', 'press button']¶@@ -190,7 +190,7 @@ check if the lid is open or closed.
@@ -260,7 +260,7 @@ check if the lid is open or closed.+
search_index_entry= {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶+
aliases= ['break lid', 'smash lid', 'smash']¶@@ -287,7 +287,7 @@ break.
@@ -387,7 +387,7 @@ be mutually exclusive.+
search_index_entry= {'aliases': 'break lid smash lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}¶+
aliases= ['push', 'press', 'press button']¶@@ -416,7 +416,7 @@ set in self.parse())
@@ -514,7 +514,7 @@ be mutually exclusive.+
search_index_entry= {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶+
aliases= ['listen', 'feel', 'examine', 'get', 'l', 'ex']¶@@ -540,7 +540,7 @@ be mutually exclusive.
diff --git a/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.objects.html b/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.objects.html index 63a7252fa4..03852fe62f 100644 --- a/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.objects.html +++ b/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.objects.html @@ -564,7 +564,7 @@ shift green root up/down+
search_index_entry= {'aliases': 'listen feel examine get l ex', 'category': 'general', 'key': 'look', 'no_prefix': ' listen feel examine get l ex', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}¶@@ -600,7 +600,7 @@ yellow/green - horizontal roots
@@ -617,7 +617,7 @@ yellow/green - horizontal roots
- -
+search_index_entry= {'aliases': 'shiftroot move push pull', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' shiftroot move push pull', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}¶search_index_entry= {'aliases': 'pull push move shiftroot', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' pull push move shiftroot', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}¶
- -
+aliases= ['button', 'press button', 'push button']¶aliases= ['push button', 'press button', 'button']¶@@ -643,7 +643,7 @@ yellow/green - horizontal roots
@@ -787,7 +787,7 @@ parry - forgoes your attack but will make you harder to hit on next
- -
+search_index_entry= {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button press button push button', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry= {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button press button button', 'tags': '', 'text': '\n Presses a button.\n '}¶
- -
+aliases= ['hit', 'slash', 'parry', 'kill', 'stab', 'thrust', 'pierce', 'chop', 'fight', 'bash', 'defend']¶aliases= ['stab', 'bash', 'pierce', 'hit', 'fight', 'kill', 'parry', 'chop', 'thrust', 'defend', 'slash']¶@@ -813,7 +813,7 @@ parry - forgoes your attack but will make you harder to hit on next
diff --git a/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.rooms.html b/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.rooms.html index 57f3893f6c..75b44f38df 100644 --- a/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.rooms.html +++ b/docs/2.x/api/evennia.contrib.tutorials.tutorial_world.rooms.html @@ -256,7 +256,7 @@ code except for adding in the details.
- -
+search_index_entry= {'aliases': 'hit slash parry kill stab thrust pierce chop fight bash defend', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' hit slash parry kill stab thrust pierce chop fight bash defend', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶search_index_entry= {'aliases': 'stab bash pierce hit fight kill parry chop thrust defend slash', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' stab bash pierce hit fight kill parry chop thrust defend slash', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶@@ -271,7 +271,7 @@ code except for adding in the details.
@@ -824,7 +824,7 @@ if they fall off the bridge.
- -
+search_index_entry= {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}¶search_index_entry= {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}¶@@ -850,7 +850,7 @@ if they fall off the bridge.
@@ -976,7 +976,7 @@ to find something.
- -
+search_index_entry= {'aliases': '? h', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}¶search_index_entry= {'aliases': 'h ?', 'category': 'tutorial world', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n Overwritten help command while on the bridge.\n '}¶
- -
+aliases= ['fiddle', 'feel around', 'feel', 'l', 'search']¶aliases= ['feel around', 'feel', 'fiddle', 'search', 'l']¶@@ -1004,7 +1004,7 @@ random chance of eventually finding a light source.
diff --git a/docs/2.x/api/evennia.contrib.utils.git_integration.git_integration.html b/docs/2.x/api/evennia.contrib.utils.git_integration.git_integration.html index 6d5dc51a64..203901736f 100644 --- a/docs/2.x/api/evennia.contrib.utils.git_integration.git_integration.html +++ b/docs/2.x/api/evennia.contrib.utils.git_integration.git_integration.html @@ -216,7 +216,7 @@ git evennia pull - Pull the latest evennia code.
- -
+search_index_entry= {'aliases': 'fiddle feel around feel l search', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' fiddle feel around feel l search', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶search_index_entry= {'aliases': 'feel around feel fiddle search l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel around feel fiddle search l', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶
- -
+directory= '/tmp/tmp3z1q7dfa/e80a76ac7a6d604288bf3af29811ef24944bc938/evennia'¶directory= '/tmp/tmp7mnq47sp/a2e0991c668c55d364448180abe4f60f9096f201/evennia'¶@@ -277,7 +277,7 @@ git pull - Pull the latest code from your current branch.
- -
+directory= '/tmp/tmp3z1q7dfa/e80a76ac7a6d604288bf3af29811ef24944bc938/evennia/game_template'¶directory= '/tmp/tmp7mnq47sp/a2e0991c668c55d364448180abe4f60f9096f201/evennia/game_template'¶diff --git a/docs/2.x/api/evennia.utils.eveditor.html b/docs/2.x/api/evennia.utils.eveditor.html index fa386ea0c4..00294224de 100644 --- a/docs/2.x/api/evennia.utils.eveditor.html +++ b/docs/2.x/api/evennia.utils.eveditor.html @@ -344,7 +344,7 @@ indentation.
- -
+aliases= [':uu', ':', ':dd', ':echo', ':!', ':f', ':<', ':wq', ':fi', ':q!', ':UU', ':p', ':A', ':S', ':q', ':x', ':w', ':>', ':fd', ':r', ':dw', ':y', '::', ':::', ':u', ':DD', ':=', ':h', ':i', ':s', ':j', ':I']¶aliases= [':fd', ':UU', ':DD', '::', ':=', ':!', ':q!', ':j', ':x', ':i', ':', ':q', ':S', ':f', ':w', ':dw', ':fi', ':r', ':u', ':A', ':::', ':s', ':<', ':h', ':>', ':dd', ':uu', ':y', ':I', ':wq', ':p', ':echo']¶@@ -372,7 +372,7 @@ efficient presentation.
diff --git a/docs/2.x/api/evennia.utils.evmenu.html b/docs/2.x/api/evennia.utils.evmenu.html index ca56a49a8d..c3fc5b2b81 100644 --- a/docs/2.x/api/evennia.utils.evmenu.html +++ b/docs/2.x/api/evennia.utils.evmenu.html @@ -939,7 +939,7 @@ single question.
- -
+search_index_entry= {'aliases': ':uu : :dd :echo :! :f :< :wq :fi :q! :UU :p :A :S :q :x :w :> :fd :r :dw :y :: ::: :u :DD := :h :i :s :j :I', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :uu : :dd :echo :! :f :< :wq :fi :q! :UU :p :A :S :q :x :w :> :fd :r :dw :y :: ::: :u :DD := :h :i :s :j :I', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry= {'aliases': ':fd :UU :DD :: := :! :q! :j :x :i : :q :S :f :w :dw :fi :r :u :A ::: :s :< :h :> :dd :uu :y :I :wq :p :echo', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :fd :UU :DD :: := :! :q! :j :x :i : :q :S :f :w :dw :fi :r :u :A ::: :s :< :h :> :dd :uu :y :I :wq :p :echo', 'tags': '', 'text': '\n Commands for the editor\n '}¶+
aliases= ['yes', '__nomatch_command', 'n', 'a', 'no', 'abort', 'y']¶@@ -965,7 +965,7 @@ single question.
diff --git a/docs/2.x/api/evennia.utils.evmore.html b/docs/2.x/api/evennia.utils.evmore.html index 0d8b84af19..b88503f4c5 100644 --- a/docs/2.x/api/evennia.utils.evmore.html +++ b/docs/2.x/api/evennia.utils.evmore.html @@ -145,7 +145,7 @@ the caller.msg() construct every time the page is updated.+
search_index_entry= {'aliases': 'yes __nomatch_command n a no abort y', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' yes __nomatch_command n a no abort y', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}¶
- -
+aliases= ['top', 'e', 'q', 'n', 't', 'next', 'abort', 'end', 'quit', 'previous', 'p', 'a']¶aliases= ['top', 'n', 'quit', 'a', 'e', 'end', 'abort', 'q', 't', 'next', 'previous', 'p']¶@@ -171,7 +171,7 @@ the caller.msg() construct every time the page is updated.
diff --git a/docs/2.x/objects.inv b/docs/2.x/objects.inv index 3ba190d276707bd4d5a7f531fdf5719c9ee2278b..b64542d2e99e6e8afe1f5afb473d343eba7060b5 100644 GIT binary patch delta 95986 zcmV)mK%T#`h6>w;3b5egf17Q`jbvMbzk*uT50TXuijZQ+y!n#FpeO~a#1K
- -
+search_index_entry= {'aliases': 'top e q n t next abort end quit previous p a', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' top e q n t next abort end quit previous p a', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶search_index_entry= {'aliases': 'top n quit a e end abort q t next previous p', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' top n quit a e end abort q t next previous p', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶wf?Jd6n 8^mZqtyqnG;g3V3XNkMQgv$H?w0tlDY{o zofrs oKNA!{gBJyY}WP&MtUYF7Cy>6n)fq|RH`Va@|c$8#ll3O-;M zgxS7n+Il7^0(-al<1Cdhr}+@FpdJE+`^k99d1kl}D`f$QzjaNU-_O#U6j@8l$y`{p ziQUry5UJbegXbw4+Kkf^SYw_yJ9cyR#k=e?nXMGl{*Cu{fAgZT-gB-NneR)_+#~O^ zSq34r=&fh!D>zg>Q~aJG{h<`sBrE31i#jVeG#gmOm^({qI=P%@9#ePaDr=t0^;}?i zx!Ps)zxDwhj+g@#FF1(ZADT-rjGJYUz)aJkh1z^Q6J%Sz$>%BL%ak0Bx`)?)vVvw+ zyMCCd<>t^$f4<9$EXa^+1ZcP2k_Le0%BCD|wzPFs&;sy}PQD~F4|G>zsm;rMH%nod zdG&(UqPypIo(Ru3w(H9I+O>{O^6);_-Arpy!tlk4fW@j+w%OFAY34z$bC{XWUDcoR zVzbWb4eQyq cd(FdS*v10Z}W{CZ%|QvV?Ee_d~T)2XeA!wbF^Rv+hw-YA9* z7eH4G_RWt@gdw{5q3@+BxB0OPZf ezg8Q1XVQ}%A#PUeN$&Ab^TZ1j8rp@R`X(gY7^7nu~g(heM zYq_Khe_6(zpIpm_BXj5FJuKXWEb=Wt4y(OQ`*O@|(z1rfZeK_VI^qji!B~>~#S;N5 z-V0E_P}zI=g7 p7vEfsaw_c2v7ju z!;Out@`!GDRGAQ54Y_7YUS<0|Uv;u?Yq+=%e;{RdDCqR9sQ%Hx8rZ&|Gop~EOOLG3 z>YLSb)p_=4j;+({)#Zt4^k#KMPE4h5A>-;3Q|h}_`#_#gOsVfrQK=s=`x;W*pO|8Q zT UdpT0*+ZEKdlTzuslV|}(YJD%% ze|jXRm0mxr9!{%F{gEnEpOi*_f}SovEuH>-mA9u>$X|a0S$A?;y@u@Dy?oUZ3O(iR z!-^Tge(9NuNu?9$h|OxfK25dWoTggezU ($c s;OFJ;Exr z#>vvcx9@(WL0_b1F!p=!ThM Kizob}~t`dVN~zyg4m(zCA5 emE_4{ 8SLl)widik~B3Tk0-yRHu`zt7w#!~Wmcy#KU5TAGr|*6=rrbkib5wc<5M&`g*l$0 z&WX(G6pc<|9;e(Ic )m|5U05bVcvl_HLXr#e;RnA`wpkL>2RVu4kx+Ya5`)HC$*q|QmgqVwUmES>-Z ==D!r+W6^QYCf^~or6T7$(?-9k9o{ezR;JUHE*gA?60INd#iQ{6B) zmE8idRd5OomDngag| z9!2hHiigj>bF_l=cJIYG~1fp*~qGT zw=~buB6N(%z+FVaW2`-MkmO~Nmt^tu!gpr*W9`S}TG7~jK2GfJ^MXHCyCl_)Z1QZ; z5>eF~QhO{z&%v|rfA)LQlFf>}dfO}-DR|4YDvM{{ g>r(EZVdZ_#))bdU;9 z4w7P78j{uPha)9kLyKQl srP%p88UuYzulPudf4Y@?2KT7)18eL@2SYZ`dj`kc2f8smd>(8HKJ^rgJ(q=~? zd9`%2G2~mgXee~66 |R%L}@$;v#WS-v`t7?-ZlD&cV|n#y>bs-`j?ud=DEOIEkrY`f$@N5UT` z5=$5Oo@nV|f6Ygn+g;;SZ;=cd6L2RidP|I?0vMNQjzejeYo3EOSgQ1fD6rIsEQEX6 zt|LT) _*Z?lSuxTJ|9;zp?W(EuF$6 I6#A7NQIsvWeIS zmg`r6BcK6I9De9{=Wvp^(am9eF++*NnBoTxhw-r)CwQ+Ov!Wx*$8g%f z#&u3;E|we8E?vJU#qx0po&z4p5H&VDlq+JiHV0Kh+9R=v69}Af;Zkvg3OiwZb|}}B z6_!Ieevcw!Yn#|SE+4H(x@y2C2vd|`Z3U*nos{2*b-8E~fIjNh4c;XH; zO<}0Br&S&|ww**XWv)MsDC+pq6bd}Jlr0#Cf2fmDlL@MF)mHljV-bJwY8p-ak*i5O ztg`pdUeC)BJIgo-eyO%``dIZaq6q`lIKr@%sCdl4)u)NTua>KOlXlD|P(&{;P2iZc zz%zkonMxONd|)E*(uyxvgbq3^5J+{^Z0DVX3BZLWU_JcYlP`%p|HMl|FEQzo;EPST ze~b(ZOty5M1t(gPXy&Ft;x01rk?6}!dU}clCp-$tn&gj;N7JW6FEPo{!55f+^aP8| zJrs&^vrNh_H=*e{+N^G231df^Cfkw)DB?Gu!x?5Bj&r &bK(uc+G)l;4A_pC|3 z@5(hS^jMW1@c0P0-%4KPpNHUq6#Edv05n)YdSI}h=zkYwTR#U*YI^Ko(AbI1B#Pk4 z%@p*gS;!QE_?gI|EHSf@$y_n_%qNpfnf6Q}3vH#RV8=~=rZ7Z}? 4d^FwzyNzif!m<_e?o_lFb_KNTJbv_OY+4|RAwNGnX4Q^7c*TsglEc( zWg=f_uR9SwZr(DHWWw&vRHiALIFq@e4z5jPiJJBu!V!9W?GTQb+2vH8_zC7@ruc22 ziB$2^*?6MZ^K6GQEZDM5Kh<_H*Mzx7G-r&pi37j`*CGyOc(rI%J-}SVe<55E*EtWN ziCzskgly8X$RUJ_H4qn@yj`gJ2 Ws`SL8Oj#HW?-C|`qV$E+l z_7T)yw16G778tMu7+NM2*r8;F>T}^Rl(sHe_i5f(5h%7>u=Fv>^-Y zcYEki%)s@}iNH|{pA$GDmhUH^M~_D)a7-GEOyCJ^kS0I}+6N3mrkH^pUKCvH!dWDE z@OoJsZhXf)0YBy_e@-0ytVK?uPH4H~2;%3vq4+bl;S03h%eLFgwyDdvri-+r95l#| zYb4;@t+IfPw<386LzL0TP@>R@a~xibaoI@Z`TLhChGQeK f@0I(B0D}2o^AH!q>w?;P934Ks+qXS-Dvie^s_wt#@)L>Ah{N&;;YR z&wGMR6FHn?pS#mypS#n5`m+&Y TV( zw{SA=mH%nQe;6*f%s788X{gI(j!v^^p0J}{OEmi< bzJ+Q2Hh)aCSP2_b zEn3R1 Q!QFa= YWXFvBA1-fhkI%k-AnVU`%D(>Gc#HQ8 zbQ{vNb@kj69wCbGC?~)49{MQfe8k6P?Dm_iB}YwN+-jPau&%1s+r&U1Z`*=_&aN*% z(Z8Rne=eYd=wZX~#Mj?wGK3^R06tG+4t$ux@{Dc3+Lsd6o3LtFz7FysZ`vE_>{EM0 zHi;!@*f%3p#1L>!*5KjboTP9_e-(2|{{a5w%gvF>%<;?1(aXwdloK4^HUztpRle~L zUg9Z59F{DcV~&N2r-f+I0&3%2u!tHcp`hSnf57T7q DJT}6CCiD8 za=Bt+V?0Vz2ILDDlw%Z MdPd ze{76LEG!GRF(#5F3(S$*7(40Gh34hjn0&V{$Por>Hll@!kBjZq3#8}L#ppKME|_^5 z`Z75-rdTqY3~USLjX3V6*Yd0UOJ2^Ojt;U{%|pyxoP+3(7SCZE@!&Qb1SJcM eYGxfIxAl>=zs*7%7bg&upz&p?Q>rEGkq%2F8lH}zrSBHE)8ja*)JA>mSpwY z>Zx3iprIL#24 vyt2gPHmLH7YCGi(U6lf=(xEkyzi@^bk6_$G zUYc&%tjEK#A-9JoGaN6an(qES|1ul?IUU4hYg(q}tldM<`D^!xVTsypAepsxkMNgG zqS z^r_%87rghRBz0DB^q^&$ zskr=r+qm~|4kv@y;Dp1R)kndbzxt@)OH>~nf7a@wLN7HwQ#qC$nyE~S!r{feL<< zq?x(J5&I%@*4F{%{B?FnutdEbbIe+Ihww|)-yzSkb$H0OXs*v*mxlyLe@mvB>-49p z+Ra&?6}Aznd`LNg`Is;YD5-hhwifVXHssOW#ggT7hWmW 6y>S{pef6j{*FxzbU6@egVAra4^kvYsrIOv8v-hD0ao|fN6qTf0q z3xNg*g{5Q z5+8OriBftuzUQF>*VO~b=8d1)MtjP&2pUkVWzcgv(z`6_XpicVe?O8dI1TtC^YoVo zop3tStE_7uNZICV-)?(2@0P8`vdc7I+JNL6NCc$fP{P3JXlWg+VRUGtbqiK-X@}S5 z<+hodahGp41$oNqkY=?H9FTNM;2S(?_MzJ5<(0 Gf C#M&(%-Br6w7p2c%q S*wMAf8jw388oS4A#r&X=I ()j{6)0fH>fxT!X*dXd0uR{t` z$#X_zh|d=39 TmohJG`9iHOzUf6ek59Ib&ek}qDG-r~jA a?W0yyc$T$D`(}01WM{18kveKHX ~eGA7(GcvS|5QWLa7TUReEV{h4eQ ztRzE%MXSn)Y@rG>;$ap7sq5+~Zy(Ui=`mSpV@;dw`uPZ)i t z_1P7dsEaCIb?p+GbJ*onzoxoARrTf*p*4K=7>v-5H#9O(FO`O$$d-07q@F$bRN&>* zfB#h+f1h1{4SAudg_#4M=gaPjxhEAm*#bEda?L^p3_89Nbj6|%8ICCyw_?DB$OIN~ z9z1T_-$Xl=4-X)*Ib=|&nw7ih*tS2-_t4@tE5Epo9aZ2D*T8FlU}h?o$5CrJb1_Gq z9gHXCYqT-7Rft5?Rw<$#Yl^F_I_*@xe^>f*5aEeB6TN&u?+fjWvNnroGG^3(EkGQf zdzXD#mECSt R$rAnLRhy31G`>x39 r|xs?Nmuk_Ay4G`~m*m}B5NqY9IUuXE|}qSYYoT=@K~FIWh4C0?o+C|bO1L5QBy z%t82qqme_WH?z=Bo8-(wJ$X(2e{coju29U+in(5sO z^B<|PBXwOxO|_Xo#59`=wAJd4tndl;9Vz*dPPgGT3#*&%ffW0gElnCcA~G1fKlv6{ zOna_ql0z1852cOXCpd&qAMhN3@PL{YO&dR}noKcy qxSDtuFj4(T`#r9Pl_3Z~vcJ&qZ_F@cB- ipBiC$^<8E20in`^|hXIvtp zK@$?p(A<;;P2-$KHf3#VGVPQGZ3eRG8#!~3zf1xj(&-;SAK#eIK=vZ}d+ o&_$UaAf zI TO9;ZIh dUw!X{fBnrjG4QV` z!8a2A^{a1QedB?D9Si?jgMaOTe-jJ;MuUIjhJPKIIIp$De|haooY${o;a_X;p2T?* zsr?&G`!_!A-@J~6f33lLwEs3z`)@Vvzx8PUCa&DS(aQZBZ@GUHSMJ|v<^GMg+`oAp zsr_qBdtbqXR~=KfeGtK-NC_%%O3=y4x6AS}y{ofw{SZT_iU~$=OPHI5a!1N8j0Hnp zJYLa1Myz{se+L;I)IQ6w@5mkWgWvzz1^Gh+ l`#Ppf8AEa zhLmZMJy%_u!aFUSR6Z=3c6oYV=UM$b2`bNVfIpL`L<^l@=tNqpNPf9YzWVPX{2$D5 zs2+nePlo-udURwS5B6;Y fgVW>)Av+P z7=u~>lh{Y$Cc~OrhkaeO)w(Kze~9|P*W#BQ6xOD=M&aO^(6w+$xQm-Cjzxht o0JnRksVMJ`{u(By|L=l9le}%tQKFsK1 z`!%dmsKIah-$rPBJvs!G1^fm6w*!T)BE5D1(Jn0n1cK52%m%^xxiBCeSay##&j(<|oTbLGw z^$>h%7#$Nzk! i;EF4_uZ{X(ze hQpyD`#P@>g(>!=MPQ)_ss%e+iPNEe*7$fl`d< zbY(3B1NbEpd<_RnpcJ B)LINbs QhXAJXBTvz)#;iu|COAKz?_K{1QJz3}XU>V-F?`KobjdTTD z!Mr)eJWzc-Dze)K6H{$0eZ_7(gr?B`8Ls;8qDY0z^)px<*trSXsw$fFzN*u#Yb)qC zTH8>@f5vBlxCQ5gIwz{L(1uPf@AJYuK9zo~d6l0dSsb61S@Hb4(h*ZHb1l Ysuvy=>xlyjt|Y-d`GoG Tx1N=SKyRTr$jip`RVL**U_1pZ-3aP zfl2;~IVQDX-`J={MccJHhL#C@g#Vqu-i=8MzITJt$Y$S7w9puK75P4E+U-+5U@^3- z<3Oxonn=k+NG2K00F;EeJV?4DjcY_=eJH)Jt6iFxO-@I2 zuA!zaa(*;itB_3|gh*J3;qcU~F74)LQ`U#|sVk=|+Vrj*k1c|`mhWte`mjPvm%9c5 z5Pu_Cd0Pet%5;EduJ1bDP~x0_Cb#fu UYK)!RtTo%Jb-NXAV7?Mn8A45f0Ne-D5&F@G=vcB76A=m zQxVb`r*d7>(gt1trX7T{&v3^&1^|6xK@t`uk;+35eG+Wb5{i+?87xjsm$xKRLkoz| z4vK%E$XqOn=xx(XM$fj=FxEp838|Z^Kq~JeVnfGM8!yZ@6ZoBQzleOnOcV1#Y)N?* zvVc~-8&h&4tK+PmL18ZrTYnhl9ICA!?Hj82RObi;6Qt-OZxQ~LIpYj#T(tj2>IPPY zaavs!h6a2PLOX%Rc6@n=gom&|D=Q)_1s{L8|5~9Q#?nOYMwzVHZU;N`dF$ShwkR|f zK1a9YJx%c8?z54; ;S dN{U4RT8Xi`>uIF&Dlp$#1XrIKpXV`H~a|!FcH{CQFwHObH8!Q zpah`94-b0N()!V$vYY(=UTSVTJ!^j@bpdTL2H?+<00PJ)P>$9bbi~!JiH)g27MIOr z`S3KQkW+F*iaUx`X+4)>)WC{x%{ LU>9v{>0c|+qkxdV&=y=Gzc;dg>z z6CO5Md%H(vMPnONum^I=!pD1OA*X*kID7O^Ro0=bk#Hz@tAA6<-JVwJvTc99J`>L$ zYh#{~HyiMXFB1SxSXD4ZQ!`v2+=sibt39dP92Q8hXNqC52wzKQnCkj8c&cigGvkOn zQUSB f+_rsV`)FVLk3 zpy-u+^>hF62fLQA(Ic*KVE2EHAMr~1a6T~qgzXA4|Da^t!E-V?80{RfoeNgZg>l9G z)U@M%cBS^v*fcF{y*|>spw+2&3D(L9a^3%YY!cnmp_fv{@26y=6+mqz?t?O}CiIIu zLbC6=7S4{Q!c=IeHV%kS(kr=QUJ3WIYt*z=&9I6#-%rrT3UI?b65)Rlt_w^|571;F zF7#l|el6IfS!OfO{pVmcZ1QZ$Lx$#s=Q&uBW~v5awM8*C=_4JVeD{!10ZxKv+b!Tv z4_TYyg=Vn_n6ByEH&2`F5v-}eM7Xyg7pg%V>aR3(!tPh|-Nb~3PA(G&O #u)*tQZJfO&>7B&>R}$gyqjnq&q3 zO!ry)Fh##9G;gc&U;q41Ite8$n}&fLjAdcTwU?t|ngm1>JQaTiqQNn5;UZm{F)dIx zq%ZQ%gx0v{bpPBwP(@7#)Iwt&Lm^^}GD((585T8=p;h}ixkj0UAA9pg70vEsYdqU9 zv4D*rE_;XI!dB$Fyk+NA*m#n*R+*!7w5wx7`p~=Mi1eJfhbUK8xDwHo{Je2`N7^Ss z_;KYs<4LOkO@n`6f36ZOP{ISTV$TAF#G%RViKCadYsm#~@J|SnUUerh4ghXNm9`dY zb`UYNuNZ{Zy9;)P(b+l=<&{o@d4=~ICRMCphp9+5IUOkWr$(V~hV5JO$XeKGx_VJB zFhHUPz&+tt !!Jx^dRPKA2kd zdRG^)eli4mOH#7kKws()Xzeil8IX4n>kHxG(~G6lUQdK@eMaK0bb;eorPyH~C$#YH z?MRnwTYMY>Pf-@t6YgHiHz{EQv1^zmsM4^LZ)OTYI^$sy`JiS4+mbYlS5c0UW*a!e z+qAXumXUu&H;XV2l<3Yr4Va<%IASIv`0&d|Q&h%l$sQshC8+qfhb%HWjX$^WNCrD4 zD^#nxcF(sO@5n>;m^(Vj0c{}Kc^@v};Sv@O8&MI?rnJ04$lcg6Q=9oIi>@9JaTQUf zBpy|5dTUii&E$fnMD;C+>Pp$=<#MQ0$gmiys-l1IDnynai?F^W;VWA;fxCC>RxJ&a zT7>|hPkj(sqQY8>HY+|)NTHF~Ep>oYS$k52UxHHdckLP~>8uuEev_&%8RE9NQ3Ejb zBen#7tC(ql$k;m}{>D79DsxY7s%R@wk;<55wKXgYz3AGk9klxTv(guuVR$>Of?AZ< z9+iJqL@W&KAk{DO7KlMrC5U$POWXl5hg8mbnXZ`F;dQZKE_|{phJ^{Rr@mas_c^o2 zU^yb_pcqQNW8dOztcw)4^x@=v1YIxl9$Izy<)ZM8Ek*=F;)7v4F#vA}*e;HP?`3Yp zFBb*8>csBhV5bqzGZ4I`pNaf*GSU>C#;AV_!W9ZE(SF8iMf(_R3gKb)=QfTOtQ89B zlu0whul|57sKET{4=yFJBCcuo96`-&OQI0|d<8!PXf|Zy+D^3*aWO{4K7z=K?0Etg zNC_(XJAjGKFpFp+6k zv>`V)8bexpx77y`-4-_+L)yj$hSTAVG;j&$9oeCDZit4ot_nC{^dg;Yq`Ay1 z<{z#kED5w^W4_hw(n%LQ 8A3Sv;7UO^dVxWH85bN8eMi^-667z s1=Tl!#BK~x6r?Xrec01QU!Pk0npUVU!AUR@6Xe3d!xw+a(|C(0 zn~9{EtSfx``@VP%rE(y!2~LuUgVSP@och@m8a7*@F&@heo4UqJi3ggir@rCvPrHmN zSaGCEcpRFBkO{LkP0JJ&pUZ5QucH%XDE5{)_>*KHn5HTDlDAWNxv*fD>ZHj9c-XW6 zDICKHpg{Vu+y!OQMbPp?ZJnwa(UUmlefx3M(;z+zx=Bs;55c!YctUn>Oq+0&R!x zyMoW*p1B3J(5!Gmu$v9clTSmRxe>PJ&o-s@S=SK0Mi*5Y4T9I`#1{74B~t0xX-&zu zCBca$8t@!6?`eiNt9?rtnrai#l|hA&gZ(759XjY%k__*0r{krOK9YaUbJLPtY`PAm zZt&ZiqE8Q1n$vkQErrq)YE(6I0Q~w;C3%x@FEu^>GEj&Av^+xK3Ms~5a3x*(deGTc zX@iP#KUZXplp}y2!2;7dMum_JHgo$rb~9UjScHcF@oCN`*=#YWDki8f1YnECY#pg8 zLR5ffG!99Gf&8!J&XRxU1LLx`sl+gt(fF+s*kHTV9xo%^Slq>b@yHL -h0Qwl zWdh(f(t0qH!Wvv3+=p9aU5U%L?23F0hf(x{aKuK8xViIE$k84*+mcY?k=zHk@5ePj z7aOH=rz0w^V>#slh&z_t^Z-*A?s{+X*1gxKQ`_Zl(PRNHWVC-91)tH5pQ?(sLl#-0 z%(B| lokVMI_9+Ld^J)T9V_3Pt$4qeEYP83FDh zV?lH;B`C-aX=O1%_>316dNtJZ74TLnUx{s9dpN2hE_wA#2Bui=XI4f|<4RicaJZVK zn;cCPXZ3TCJ|2GvISoW_ycd!5-e#@L&&?Xyhwsf=(Ng|437V42%5CRvvW5&sab7HY zuS9rRG~o|Bh$-W?YO63EOoH5U*PrE76I|WIThgXkeV4a2P5X$#?~<2lyeDlUJzX_G zph3DeQT$ATGhzvE+!Qt0D^K?{uyI?uTkkQc4MRr!lL&u+-6jOU!tU0rfr}V)$^eh^ z^%JWYz03$ws~fnnf!;~)?a_&uD`plcMEeq_lM$iUi5WkZ-pS5hYXu^|jEC2;#JPRe zmP9FLhv~KB7yR%pmpJ{8VcaS{lcua74|e;w>huhEjisd2 80 zJ2apw=I?*OW!oixiPc*Ai8;Q#Nb6(C;4)(n(+8mT!cpz<8pmhyoYLG`2hj~>`tRgl z|NMW!>0kf+PcL0?lRcEt>A=ZD*F?}X9Ntn;YtnXgnLcJkNB9}ZsM6w+|Ac-C^J51r z-K9mo5f&58k&t{^?4v8 ~!!HJ_?Ovsu>(LI~dNkKLp z$O83$m!OICuxo(hy6~=KAOd_i{B!gWAo84(ViT35y##RJmmw*Il}qD MKaY42YV$q2+|_mX0C&r3ZoVt+!Ov`MGuB;#z_Q^*IZ|HLu{*J zeE^ooia^fHI$<-kr%r XoaePA4g4 zL6GxgZeTM&9Xe#m_GqXA-ss7S{xVRoJ`RWr?v-$_M0z Q@#mp?i7^} ztXBjFzHe EHvYw8(znu`2@cax9OuDrc@xH zx{3{RNeBnU0DhzHjW6+F1qXMoVe&+#CZZGNt?rowCMsTmK1eGo!n@uhR2zRO|BT1B z9%A$`$o?dq67J;V-ot%J_ccN@u_B1|ssHv-#+F)DD6HxVbA8kD*C;J4`~~JK>+q=b z)?kg*POXcvgWC!Fa*=g+ZMDzW5pnEAZp1GKK}*&TV3notoWLE?3 h)GCUJN$%*C?X+sxu|HD5)95l dQ8%yxf+ad~j| z$Byb;w;y5}*Y0(^u8d89UPAtI!AB;86c9gD><`k6+qi2$Kh`UJ7+PFoerT8oP9qki zC1QUDpETnJ(9u#GTH${#x$Rb~+C5u5=2;>H#Eua3iCiFIHsva`0?Gu8F_G4s`Np~B z;cSz_Hqmoo0Ghcc{oC0FdbSG5-q~2Ojy;506=MSjK50u-C?lolGu*cP6f#{v^e=_A zaL6Ur7zR~BuEg3oz$X>Yya#a%B)}(;pH_}w=*Cf7VCM#-ma>0{;(CjC3owMh4S*X_ z7@yu()CjXeRC@DUR&J{X>~8P!2HzI&%*zygobn&b _E`D~EVM(3mAdc~UcpR#gOSodu7K&<7}-RzJ`$NQj=nBrle8H&cR z_78&{z;6ZV9~FOd=+ta&DcbPY7wM0I1SVKxU%nNh7|1NH-}(j`ogUv*6CLsu3 z1cW0CW+<)X24RjQw30qx`8l_bC(w^&2mTz%vAN|V?AEZ$x>n_SsDZ#4|H4%TBLTOx zgRv=dSAADV#zNdi52itBjZH8C3ph%akBYhcae{JRmZX0l$2RbVzxo!g95gj)wx^@P z8t;hNG*lUU81l7TI?Q5n*zETqEUJ0Ng_;UH?8nh4ZiKhbYM4Q$DPL*ekJX8OKEo@A z5u6;)g~p_=F<_F4bqp3X(SkZPZ(`JHJo&C(Ff2Fys0Uh~D7p|J^;TlJ>Bm&iu({P7 zm>kQC4NZSUwEWM;m@#D}5Nlx1j0J;f10U9o%h dFy(L^3Hda>VaS zl1X`?3WeqUKRUwhss?jNiNEq64)mtl5&!&RM4^9+-Ow-NEMh #|@Q{-lb}gR6 zd94VrP_N7%q=!eFrrWbi=yjY9iX1TGCt4?Q@M+D?q{3rG(3&b+v8w7eE7CJGOH)5u z=NO}KyrDwp j!gWc5Wo0F``CF1AtozdCtfdv;H6wM(JjsJ;5dqHyqFX z%#eTDM)h82GDb<~GRlfw>0}>3zN 1f&*p6U9TJjZb;V$wT-&k#0#TtA+V3-*l6!Oq#R z8j `!?~SG@4Vs*mrY*p`;5iwQ&sJ3odWu? z{s4cD LM;IlP8W9tc5|czu-)sJW0*$6LIx@rj0aa zqa?Fv#G}j|EzDdpYugNLF~WVntYn~`X|AS*ABJlqLcrxg9>TB &AQxikqcuIiWtHV28JVOHsjG{MUlaF6ELsttq zM1B*+sY!q} BiCI|R3Gr#bF2c%t `b^Mjgv5nMg(@pK~KXNe4}Hep7>+t+iYt~c<^GW4!?#%>>;f@Yxu4}$g-D2v`U^a zcQ&CkuXYJ?{Tc6;x+2 %yCZ6LYS{Po5RVOPR8=!)NH|Ita1Ho`Y zx8XVi5fk`jXr*oh{Pck4Wm@ql-{hFNfqs2J3pK5H*UujF=RHvkJR35u55cpocd#Jg z*wynO=MYv37#`UiLW}G48P2y`;TyqaLy%YUGn} m7qCRP&VWr lp2Cl?9og1+K{d*)VbQ1HP}cbrmIfMNZiJ|1PZ zbq4q4U~#{Z=isYN_=NJ}yoUe@3&2m;i XWuCsbGk&ua=!~daVRpGet=q5wabND}y3`}WHj2ROJ zqvoM8yYFh;Ri*RPjqBKon|1*5j(sQmJ5ZG^DM<~Ra_uv2!IOgQoUckab+V$pXCBE7 z^GJk8sFroU@m(QvE2e({yr;hn_r)CazjeF2s;#SX8hJ1NKg6#<;%1+%Cl?SQe8c_* zQnI&id
|VfU4r zd_(ZE5NtkzSh}Nw7}~?)Nd>su{YGM2;NnKEl+=pgY OXZFO`K1Cv+6?>}LOM}vW4lgyqY&Q8{nMZGZhnLHNCXMTgf%KP+ zax*&3--p3ASu~ow-SH=#LSPj?lMO3xvy4qvuf|>0 VCOtN8x)xa* zQ}IVq?3nR8>X2OXN?xwXp30py&*eJ3t}9$}*19oM2-cOMQ^K7rSnNGIaM&y0it1MQ zfmnYi0B%5$zZrZ#&~~-z=)92BO$U$v_HN })- z!$Qpc_~JbK7)i3xYH7MfXMmAGop4pvhQjfnKeE4nMmXiT4`mNQ9Y`q0g6OA_Bj1N& z^N^R `!o_2Qj7SyYm8}t+S@_i6C@>YB!6lVt) z@uY}yRj`?^v<>i6?~|x^4%J4Z$k(6o$^~qH+MCC8gD|Xdkd6tQ2CyS?%h2o3aD<`S z6Eqpx)dhPP7iJN6b@kNPOTB?S5D-NZd~1-P;ZYijJ-7?A6CNr|aU4*Hm(nL`sv}6% z;J{m!aA&_R=v2s@icvxljmbN1z%`0b%G~fD3Im(A8jBfv@zRCAhho^BlueG) eK`2!OwoaxlH(n37enAhORgOx(_W5Z$lsb|NJ*2avyCEC<|zh{}(!r-o5$$hln&7 ziTnq5K$<~XupcQL7=FyjlO?AHp+u(9rd;?rFxjZUG0QXK3z@UEKDRUCuc41wbDuaG zT{I?A 2I9Yj?Uc7ZA7>bj{K&7YOQzJCQZb#f@vu*k`{*%)?w+u-c(}KGDmN0 zCLapl;tNdjTca)sF3YBHNP^f}l|iUiVriAX>$a8wa3PH}4hGGNBVVYb-A+U2O{BC( z)1ZI@M%r*>Z~dTYc=Yir#-fz=QA(RWWnxsb0v(iY0u`r~XgqwAW*zMu_uYPfPg-YD z@hIwmR8;1naO|ds@+m)hstNa1-Qxj^(oU%HTTi%GI~pIDl-zYin~QtyJFrOtse!Jk zXJBkrH3aZV36nq=Ok6EYulD gPXB0 z*<*0;G!y1S6^DVuV=eeloNBx++!h`mlR!7Ct#lXFSlGo)3p{%ODl78e`zNKwks1dS z5gYrs3AE;s@4puGvzN~&0V01BIN~mM@95Vjw`Ed{K1Psfc_)?ctzkv0W5T%Y-NgBz zUKu{I-DmBCv4AT6{e2GZn1HJhia#01H$2j;sCaWLdB%|%GC2VHy_5ufu&s6~la~}t zm@S58wC(oxo_VB-P5hF(i!LHz?hZA!mAxM@(6Zo{?5_`2oT`gTWut#AClqJyd}(WY zp~uc?exS#UziYNBt~PWnQ uZ>5^lk=Ez%0Nt)nYPS|fF=@08 z&)n^-c_H- !Y->@bMX|7-ePA%C!A!nBfEd9erAQ7JzNl=O8`i3 z3-ktqTwxFdNm!6xyN@4#G&Vleoj+K?E@A(Ob2e *Ei?xZw+HxS1mY;o})J<#?d6cFlvAoCdkM`DrZL?ZE^b z*`O9^Vs&lbC+>gYEMhmp9rcy&Bifb}C24&uJk%}zv0$X>cDLS#A+ewgF8RNc_gClF zR@7ay2}Q-A67}ll?HJX5^m~XoIPxt|ClBx*^7Vrpdc)CxCSB8_l#A_EFO3)AR|t`4 zA(Azmmk@ij5lTVPpRN%~+tmT@zx2vnYh`%Y&`4iy;eLNyLi-TIp^hldmYC?!7Ex`4 zBP1;3zS=k-?1TGa)we!) q5iK4bc{kiiF*A*%M4O1j>}HCIZG3$p zD!=UF 2+3vq5U79(+g#-VpsyrLB$GJ%H9$MQ(t=wliWRzmnbY4IP*jV zW~7cGq<4SMp2ZV~N zGY$-7sn0>c0G9 NA=W5!_&q~)^0+Be6$MqLKB@TWNn(aXlks9RKkRS zuR zn+ShyPEGVu`S5WT`I?jsiKG)!AJ|_XNd>!+O&gn#QtTt_S2nFT0UJ7&@AfIJ3c`>~ zB%=Y~hRzAPJyfQIJNdL|$@-zp*IAKnNSozFY_!Mnx56diE TtZqk_pez9uf5AX5m@eOttijPtxnHLY z#Gk_|u?^u8+;Qmh^YwWm-JQyW*Hle|@D{)4>YJ9lysskI27-Nq1fMQOqg^Zqk!~7m z6tG=C@Pk{GuNbO9MRBBVNiVOwsN 12J*$FGJR>Ja_H(s`_mJH4yT^S$K& zizB4^CX$GRe+L|QLaNrEo+BPE_H)%56KY5zUN&M{#j_3My^-wh?>#98A$a+OpB4<9 zBJB6YGh9ug4nEB#sxEZ~A4!H(4kk2t(1dgF@MsUg6$8*AUBkOYsd(T!g2W&U-pM(* zC0~h0!vEk?plNGTZt+2~yrR?9=c&p#fKag;?w?$9fB$eLn>bY(Z{cB6GrWDA8;s=H z;fI23K6fR)U6fS`gOJMf&V_?dl{!~G+)TKL6+?mo=j^WwT5K`HDsW`Z7-Z$1H0 -<$no$O_{V|Ej(&@s+Gavsvm(5g9#9^eu-dhybG*oW z>_y(wf7zff*B(d#*W@g(&)Hc9azEi`awT7#v++%+)4fPYJ;tNAdphUO@Fq5<#Dr{g z!(3^;ERn-96wU<0GivE3Y-*&aG#0()F3DT&;voJ<2RE_k$h(ecc~qgl!f&|fS-V=G zn(Qi(Ug12N)F=G#mRxxHB48fWlL&!Z_SX+hfANCB^UdoJ;5y%e;jhT#(Zz1rmp_46 zxOg5(;X?0^YFM5zvD1u2`$HZ5V JGc<-hM7~Z5TlBDAqwrBXpw1HRlW-sP3WZle{&QqBYe)+X@>xVmN{ ze?z4 c@?Sjg%UTefZLg4QNONSsW%5~8-6Zxg=x%?TzsoYo6(r`ivbYQ6$pYGJm z2`Q1}k<`yEp5cQtEO&IyDR0TdYw1M0e~_Md9_EhF`MK~6(Dc45inQtOSgVjVX+!oI z9lH?QYe{}}{gCfyh(v@)VA{Y#C~qYB6c;TmYb_?IIRtpm8)*I=p#sKpaw}*=5z1f! zg|~!!SvOt@A;_141E@;U!1+Ja`ZIZ+5b+Vh&*;G73=RQWz+s*Hyl&cwjqpJJe`8lC z_!-&^i$cs+^WlC@LB33Fja*(k~d6KTrlt~c8@|2ZzOZ)0G{3eA$x6x zZFy$xs;H{Zo&+(gVSr0BxI9Vm&bhfic)Espz2a2is;c*Ot9r7E1DFHSu0{+JI0$uU zG{EVd>_bnBPF2 kbe&3ge|Ii$8Q#z z%@~I9n}9A=x8As6kXpg}epY>gw*ZYA@C6ydJJ4xL3_ E^xkG +IQhAYmbjec8d7StAA5p|c9z3k7mS9K{$AX_DH33pZs ` zQo@dOfOdiX;aHhLUl>3Ye^Y+Od@+Tnzsc^-W)V!-dJ^9*Nc|SRHy#>=Dj367#`Bc8 zb?L>%iFRli&^a_woQ^w+g38H{$cIfdhpYo(ex^RR%{g`EeO<+-B#K YChG!b*#ckK$E zK?&M)9BA-g!A^HgQrPBHaM2CUFDkeL4Vc*@RfA+_+ppB4vd-W|to9ksLG4LBerUm? z@>pKDB*Mk3f}ULw+`V9U-bp)bkz~D`G}`8)ifZX~wy0)abg|_V)O+eqSP( @BI@%mCGc~?`gs *i4?> `f _J7$M5}bDhQ-mhVvWz1gAjma z8wRbb!gy>1e}ka`{545gAdj*VSd$4NfiWpfJd_E%Pt~&-h2aPv%w53IexFM4N0fw~ z*P8u*wiAImcxfI|2uI Z1pTd-> zkJ*Oy)h%45b!KWGj%VuQnQ(BTvXO>P;?RCTqlv~)-jfV|HnDtC?j8T(Wr`^ZL$;Wr z@Yv89F{!I+=gBA;PGl51e4-9cR5o^P@@<*!AM&DVs{O;WH$pm@0pKmVB-hf#s{|Ru zG=g3ge~pQER2~jEr{y6x?pjxyZas}vk-bztysW$Ivu0K0faG>TU7=rZqDArZs>t3b z=^Aq16{+=k36FASkdOGt33E*v#upLflL>9?0GLx7 XV$ zHe;!KL3zp3K!!_Ew0HdEZC=!nyn*3PiKVJ(e-f(w=Y3YQr!;7*f%ooULdAM%G$)_6 z-h>`$6NfGhMPpzzf!GI5*th`eX4aB`n1zjJ4N42ax3=Nyh>8e@ka{~N)Wu_S5U&b} zb1cmyc2yp)9Eme9A(0R5+{erz-TRO&rgIoG#&i!u=9;Dl9r@FGTTO|qF8&F>68059 ze~yJd6~<3mtr|5&)lN{z4|$`9(5fSb7%ToRC&lJI=UZR4c1wohZC2JiC-8|@ZsEv} z0~m`u6-b2uzP9R#zD{V8kJjNHK2kb8q1_2hrGPV@10_rV?=CMsyiIN|uC70v-CiXB z^WyI}fA;9XPUU#Jq5-*-`pAFyXlnA0e=e`RH_`?)QtA``;iCzeA`dv68y)YV=+;el z=PZvh6o1b`d^+&>0cQo=uCNZTh=meGG Byc(wk_4f$G2yB3r;K;VWClcS>#AKM~u zNxuy|?_wYwAuuJrwQrQ#l=$voCB7Rd@m;(Udg4z}qDPpJ9Wk}apg~Nf8gYLvVfvpp zP3Ld!4BVRd|Add^5 mDI*QdXLv0^XupK!84rJLW*4oR_6J5G7%`2?KTY|z3tkn&a;B* zoE6o!BjN00S+OI|zR*}Oe^fQo(t-~OO#!gWihT5tKIOCx6^^n-hvkY><4~qEeqB-w zXCN3{Kt@LyY+_vDAu~9SMC-?0w*EX%w1%K(33Ew=%OqttB7=o_=(d?dT@&nFWeFd3 zfj}bSc FSlAGwJR2AvA% zl$nh=q_k_12xVF_uHw;-eMYC-Q0ZW^@vsJH5JxwId>;h8p@zebW^~h}#z}5bkuP~G z9vYe@zbwddn+u%9f1^dy@ aEjVU)WD zz3T*}W>9FXOoSqM{|yezMomo(>WqN6Qcz35-8) e6Iy?21V5WN*9e7tU$WK6b)3FL%^uwj!tu*9?@0rvweDwv_pg%6t| z_CA3M^0yK(PSB_a9B;PhXGA(@9`Mp4OToOfoOK>+_W-xjHk0e%K>nP4hSxsz2ogj| zJik=kJD*1l(JKU3J=BCnkGog*!#7fW@z7u6oigY)e?IFgfd&uy1`et<)mWy?P)|I7 zQdM3k;_J+YloOgal!E_481g2&W3@@NI}P0Xt;+R;n(0J)D?IV)1y7T#O{#JoQbUC? zPWJNZu3`_b9#F!3fEV1xCws+}`O{JtQQ`yxo#O8DrU|et=TK7x5vnO}A?ol=2(drE zX9L5afBO+8#hh@5EZ&NXee6Z;zB>|oBvTq_58j3FmigQ7s020O?0ljaO;1u#2Vf^0 z<#&JzTQXt10YY06GQx=8G*NjX_KHW$4I%KB9JDF$c3eF95a5Ooc!&<#A@~kaL0EBO zW|W{SWv2`$C}V|^mZ5Ma%f^rB6QCfoTLH#ke`(tgHxXA2U-SU5kc*=#_8q9gArq^C z{H;iY(5Vz!aj!|iRvjm{6DE*b#Vx!=n7Xj4TJz@8zl1M|4w Q`qw}I_c^?`c~`Z`+2z0f`G5Y9 2-U1L$~nzX1u zQ{T8#sN_RAOTZg$L~!rq!-uOT;oer=#NdLNN( (XmOUi0+KD6p(dk z!LtrtF(C!)!D6 |60`)+E*O4V@pp8 z;&eTfb0i1-F3ll$ybv86jCmRGR*1sH!{72BcI0YP1*1aP+mCNQTG2vIvPn4Se-Sng z`1J4$jUF84g+(Y@&(=lNZLoOzji^d0AIz^0&(L_n%|lqyI=f8JKjHp=8S8hI%{q}Z~eLunGMe}iVw3MKg+ zgydsMLJ8ZaY9b*>3c}l`Dv+?5#^$ourSn8}89G saKtp;P%EW{SG0`(r!TI9xRbJPg z^N1`6%RkYKF*h4rY?k!|e^J>bxx~u%u8&L@+d$A8J9w-B?u`3}e| >yb`A(NaU;y&9uVV~{i9B=6aTXanZwt1|O% zJ(#pmg!`XCtjr?iJq-`GD rQCixJ#Vb6EWpOq%`PtZR^X;Nf0SQFVi z*Lg`YI((=71f8qpe-QHtD!cJ6m~XQA*FXRB?-=0Ul3NHt=Ybd^L}leQY&B)3B(N1q zd01Ob-6m2$I%zECP)@;7H2Xwd!_|stvQ64VG}&YBf|T3#VFD``WPd`Ka9{xY+?#_7 zhZPFD==4|W5nnjU?DOX?ZSvxg)XgrRlqh42fBo}+{|t`Fe@*ZBuYdlZ5QVtSBWzo? zT7MR&lo@AoKZoZ8*clb?R;fvyp**}cjz?NdJEI2rXKrO^0<#q5KSKEMei?h)INR^* zDqBw}7$y|FlE&Ug7H%O5g$z|qDmX{0W17e6i4;>RCl_RY#!T1U@4t&a*ETNWVc397 z2;5jEts-!+f6+P>-EXc=fsbgXHI9e|T4CF>pJ7V@8s9)NA^}6nmPX|)RG+SIdfjb# zEdue;cU2H>VG?Z?@}&yAtjTAScAm&Q(wL)mW^9C%C5m$M+EW} zKiD9lO6|awh<^v)rIiA5DSkyMu~%c&kDK_hY!<6S^b5kDJ!!FM1X`GKs;>iKS+kp& z`b0MAe~(?;dTedUZd7lI>M6Z|E9uTm5utdV z(9Z-u9eA-hqA|o}h)Nl<_cP#fKhB_`H}FA3e`*CY^kR;byUhx; 25@Oz-0P~pD@r*L_Zgc*$fXg@1*A ze_Xia%Ra-$8QD!hxv|jpSr|s>0lE<0>_(y7s_^IiHtW3Yv8o6Q{~rE#!N$~01wE!( zN-jDfTKg|nt29F5760+oA6)pg|G2ISj=^8m#)G*%C>Sx%*DU`cz%{WO{7CS_#T84! z!runL;+^3p7Mx3=J6 T<8vbJZF5oJjfwUJr=RZRD#5o;lVCP9j zIF8){G(9CAavFt@iHAuW6i%7+Pw@L|+e~Ck95YTZP{)iHM%;Sp;UVXM!@edpY)E=W z;JY~HW6{5q`4{yDq^ RNIX;3BO(tXGoljsB1PG~F65V3}GLWcO?CG6VSw}-~++41iq4Q-
43!5`UIf?rO;4Y|*{qD>33 z^`8;Z7zdJX*(V(RG#(Gpe>s^Qm8?v^JV)m5Soke>fvZIS@%JlFK8H0t14_@q0|j1O zYYD078i_6_Zp3uvT0bUiCUCiK!)Offq?)*vgxj}tiriKqGx-6n3+O`lVtv6K;NI7% zpl+c&I^|8`?=)-X{#;;Nm|5A ln<1S~%XMW(?G>sS^p1vG5O+so6|S=rzg!nAme }O+o~k#Q}!HR zOm)GJ>?@#SXAd97e^GG}_Ee$={t-+Fkf$hoA@h;{a57BmV-%_Du->DlLo`yyXN)HI zN%?THwWJ`>gim1{$=*tb!f+!`Vy0A=v+gKb<_?KE;zU8`y7(j$^kU z3jeZC@es{h>Ext`HAA`Yg)d)=xk;b~W`JLrD_beY_p^O7f0!@NzsFJwk&p=z4;$OJ zzD~G<4;&YzAS>wafc^hrJVxR)0Ip|2R?^?b69G;7zRPj= AWW^S> znphTjgt d)OiG6PXG6`~rDmvpzMQyuT_>X=c=^*_B_Wedjj>u4@1*Z&OQ3K>C+nNTXQ@u#Em z0*1`de>6f&{_+vk*?oL3Bc;R-9}DhYt-ux&7}Jd;WB0wK@Bqw1z42P#8}gw9{O3U? zV7_iuNZUBU1SrVN#3TxckM1$sfQ?;vek6`g5mbJA>6&%6Cot@frRxQi-#$8AEGC=P z1VS#FGD;Q5LwcW+VsoDtMI2!-CV%;ex}umie=-3{IWkdUJd98~rZJ)cH6f|O_!uGC zYdZ3eq?2OumyalKSHXsHM|63sS->5D`KYxAz$2M;S^d+;>s@ykv4Mnf%|SMq-_Hp)}t5lq}9={^ anWhVltBTW zF=cW+gpVu04%&!^$?VLg&j$FRCdo!5ir~&+fNV(jWrcR9R_ooSiDmpEY*vA+4&~tm z>l~{ Q z(hoETGbnQXPY+knKIo802=TvyqLXV+`sN9`v+a_fs;A_(>ODwuM$`R0okIOYioFJu zzOB}c4GlfD9T-O5R&u)zLW}{~f9cg-Rg?6-piLa?8{w;1ctq2f3 kgdY*h&}Y||`XLh?78(E1S#N+0fz|Lo_P;IQa)lnof?$db4|`YZKrXwu zd|W{FN;cMflu%V!Jaen;IbwDFaq}phTtHGg2*lq%$WgsMkVj8IhUhq-e_*mIH Y*=+C0-d`x2zVKtw!i%04YD zk94E~M}BFd!%fUb62>$Ze-loLbh0phX=ztU!-luS1Ca~<>1vZ7NVc&W4Ibjlz(4UH zW=we;IS8~5Ezc=iV9V$P8Hik#{shVCz&~H#RhHrChyjDA82%D}fBj=sY|Pl }nQy(}qGp$Pe(p8EW^emd`NIq0H6u&23+xEkyVtUkEw|g!`Rlf1D=Y5Zhw%5K4r- zVSg=vRadX+&?$%8#% G02~#l0nEBRWp!!W_8zJr!v4zsS^#U- zZ()B8-6gJyvEzbS2QShEcELeFzp_AVM9>Ff2iABXO;7$9G$KFHd6Qig`37_!_C5O; zPq^52++#4P67)U(HbX)HHsA^zn2RpZECw8Gg!a}t@)opmf2e1DAa_8h3;e`f7@PVK zu9;+0mA kvc>=>Rl8k1;}%!Oq2l7b6^zR--I5fT>~6)vpmOoE@Vbm-&F- z7 M+2%2$eF(f`RE-aejo2f>-tyoH z1W#D- 8ck+PARcDeWHlSrRL_zbCWx@vlS zctoa#yvp!NY at9)a~!`lrlv*l)(yqb4B2xJ6Baf(EpN;$`VFyF zfiwBjhAypEkTw)w6A{)eZb<9nh{QLvbt7Eba#ckk7ICumxNCN>7=_P!XI$%H&NdCi zngp$5e|t6i{q!cuh(dwyU&{85c8R8g9#(Rj^gDPoQ@F#j3VTG}rbJ%SN qqs!7CNa)27po)LS-WjV{+l(JST{RL)B}I@wn2O^Yx4q8d&P zt;`0&pXpF$Td@~0nA3l;(c;Rg$h0s*O$6@Ve~AwlNBdN Vy7kC!}XaH|@ z;=-z^1 )b6biUfO zY2KzywIfdt#9l&%Y&P-ptV}Kwa8F?CTe#cx=o_9vdIl(Al#NPei@7&DWiRkf{IbUl ze-`V@HvJ6si4Obl;|c5?&?asJ_3Ihz9c(Gk4k~&|Q}nm4>BH1rnP%*n-az#t8SQ+q zbx{86pa0n=fR%hjN1?(2LPKM`ss2FQgXcs6Oj0TckTMX3OfqaJ|BEA;P+wZ#^EGe! zLHRt*c63(9yTmFj=$NhyPlyQ2OBP8Cf6V)se@keLFOzJS@X!z$4DE}??pg3PZFhf< zt>};z-mo7YDDlQ60+>f=_snCHpaizw!#Gh1T2t+r 9k7V z@E{Lkvb&r!QpLQfB$8=!n X*04Ietvn5tjH< z*qDV!D{23-nXh0NpwE(9*kHIoN9>{AUQE^fPWXyLVKXT{#+|J$;*HJ*EWBfTJd?sh z)LZ;c{$6#-&-B}_>~&VRuMP0bl7D)xE;IPrvp_7qAk3Z$V7L7e`R4G!f8hOl2mE58 zd8K5QNZ6Pbj2o^7bHfW7>k`qklbv%PFrT2sa+XNm=i3esql3kZr-ur<=!d*rB8oPu zcicSz0~^#Gh6L1omgw!W&y2Cg+YF>l_pr&?wBfx(R2-drSLm6*ixSK;={;wOt#NB- zo`?x(u@4lDDh_z1f9>-1e`oe!>LD$i0gu~pM*I1)fq*I`j-Ii3%`CdBkG {oQY)3kLJW$H3IL-evL; zoo0&{>>Fp;zQFT8dAnHQ8xz5vbe3HAE^|i8a 50vz{hN{e}Fw#EC+Sfm5WuM z0m}#WnXu2<;=;Q$cnGN>1=z%TsJezM6)77X?>zs`-J#h7_t~Pk@0tfe%x}jvOU2R1 zb J|yYV%N4i^bBx zc*DKWFeBTRe9ydQe~T}BGDwVaaB){2uxG2c3q{*cyubiV^r9)BY#%ak9ANQ#Oro1+ zv-^WJ 8GHuUSO>5sA!#Gww2PWZ+P1Ns477BS~ar z&biCHkzs?&W#b|^WK`Jjb>^6WZJ{QW*4`R^iXdM&at>M YN a$(N?-e})B bWQX&@}s9rSyrv-Nc=nzSJ2P;-*YJ54{VlDTt)B4 zO|vL|KU24CQoF}~Cw|SL^0uzJJzKD%Ee`>U7V;+cn$%#&)B0G;Eb)p|;5`qHEujp~ zE`{^p>YFb!q) z#g{4nj`t$!9WK_$Q<4Wx9Zv`Tsp_AYs(0cDv0OV60v9^Xsw_$VMb$rf#Z1!EpmA0) zO1#gYUHNDqM4K}5c^j}VSXG|HeF^WnWWQ)tf9J>G$~IlR#co$xmBY{3m2A?`z46!P zJrBVVr_-4-n|C&_B%W04Zy-(Hmd$d+<~uxb@DI%8AFtzpR% bS8%a0G8vl766E56IToH20`E%UxcU16)df%=Ip7ZD6;qOS`jn^n6p;!4Ue@8<9 ze^}hDf*Sa;|6-wxut{jZiJbBO0a!m4JbXlYJ*fntpCuhb{%Mj&w#4Ln$$2fU5PopE z= ?K e7L5_Gfc!}?-DGpFHCC;a (gqg zxh4NBC=y1Y9>pmkP5@B&n}K(Bf9XYfRd)RC+RsBv4V^-on2PJg^88~C!4=B}me1I? zrApe8waY4=4(gq}I7^;Z#b&bPb-dtvcs9lQbEbKUR>V7)5Ltv-F P32P;e14j zSzVnT>xUwJyvG>K;_>%2btOVzOp4^(CUBAiAA0ZV1jrI3O9WYT>-3X1?2DQG;Y!fT z=FrL%GbiZAF0sGk>2Vbne^yLIP@;9ebTeUB!qu=g%=D`QHjzI;1XIQ^N{oXkGd{#( z)U6unuB=YyZaLD?WmwsPcXhP8q*`Sh68n3yQr8Y5?FG;8EGlDlS0JQvjZfTPUr~3L zXki3wc#0VkL6%%1SsZJO1Mr?iO Fcf`M*^id7}5eI2`II zp$!~r=>*DS!#_eAKiU*o&0Q+rrdd_FK}`QwY(>h7Klli5fBd!ZA!`d9<*%%mQS1*q zC*e8Jw?Gd2H@4z+bIe!nLxhZ1{NL|>8(9VZj$Qw%5{A9tFF76=*`Zjua=OKTkQDs= zSBx#oACnXmu?+&hc`RjsB| R >Dn6yHM-%{1(qzugY~$q|fPBpyANpjrVc76 $W2d&F=5!$cxE}Bymzi4uL;@e=m)~0fEhJ}Xe?2#n+ImU&rf)laeK(3~Le|}L znjgx1`2l^sT5~DlE#a3iTmfGJz?YC*0bK%*TbJ)#0Wbm{` ;hsj<+LT0qFt+```XMw-8|g2>}6uw;EyrbO8$g_J2i@zyIxjptqP~ z0g?j&gSRVZ0TlxQ6}LfZ0qO$*Yqu Ol1ds80kYo%EJ#eK?@`VY1 zbcCKsg(( UCtm>%nO(OUf*hQZX zckx*IB6Z{@Q$+ZZB_H)Kt0Wj^^bQ_ G$xI%zfCt5T>WM9diL3 z0s#}3I&}fH4l`_({G0zKn46Wd3HEQ7{dEBx0WG&0b^-AL0m_#QcmZq-fADPZ(|`2& z_-XqOw}f~B5dj5be|-HPx0-nY>jMP$zx{W&iG2a+1OaQea)JSC0)PJ&Szf5mqrAaD zOF$cWMyZuC%-ZuX+YHAZ7tK>20oT+HRYKAD`qg1s9`|>*Wn&kkJ}q7EA>N*NQOBm| zOuUYTd^?&Yy-s)<4NAZB*PTz6u&XXO8a5Zh_Td#Iv%$I&j@5$dz+479gKQ*GZR $BIO >kE zEK?+tT}2q*;6NXP1
OSNjV* zg3Bf#?{+&3iDl{2C#0jJMItXb7H!MMo-L0l_EmRCWXfjf-XBGdWWuADxlgX>fDw55 zL&rUeye&68fHgkD(4TuUSj|*se1DT~Z~z&P`we9JqfJJBV8^b@H^V{z)(uQ@+}5B# zB{08`6nwG@^?&bQILZ7b2SJ-5mL0yeZjSg&R6xsbh=upQPxMB~_`#x9-Y$hVFuLTw z68z-{h;ToF257{{a3z5R2#+P >Bgcs~0brUagOwO%Oo1wZE4gMWtRJ-cj5!dk!>S1|6)0*MRF zZRPupXCmyu*pTaM>U+LSSAW9?l=@3N@VL;Tnr-F#BfNV2_rLvL$p8D_{s(r)AN!kK zNaCe~ayS7jwXNAe=e*mcX`d9~i(wKn6``Dm0MBge1nH8Le?q`}A>R)WvAh>lxB$4; zzyE8C=6?YKvXUk`b}&;`SNL0wP5r8Xc#$*}-<>6}rmVyxr-}IO2MZ2{6y2$QESeaV zP|FX_m;8%N4XRw-oCx1>8IK7=F*}))$Bn-fcPW1&@Ui?>Y6hxf0`+N3EWn0Hc+5n^ zThOx|9=?QM5Qqy;u81;POK8N}SOg;KyPx6_UVlMseW1+BiunTcN$|4f&tE^bB;lw~ z$#0`rI{^m}EguCGTBqc9Tc#@@bAY^BiD|icY^}qjDf&HDK{d%Nd0Rk~P@G3Fg !RCTQ&c`vJ|vkX%eE2Zb8TVy{WW=BhAK O!NcfCSO=CL?2>fk*CfJDSxh_xjtP4lp{XDP8_j3)cYDfjbkG$0cqek zf(tb8)rG&2X7tdp3Ha{Z;KCc5E*dYCnn6xW|G g1}MXveeb7_jE`H@a1e#DVQvtA$Z=UL{X#-T z^|5-ZI=Q^~a{1#0s~X}DIY126Upz^Etha?_#AsG(TwXkA{t171h_?<`ox-uS5Ir5J zIs`-4zCbcBE=2zYr !x2omQ;!O)V{;NUJuR)$2l z@1DA12*mmI-PLt^@#TZTK6+yDc)QHQh6Q;E%X5nwPlcHVd?0Bwhy{a|&oG5$7T{?# zP{XML_K9e4z1OhQ?}DZ0G#pES{Y8=L2@PlN5P}P5VMVtL-i%uh5hwZ(&`abHVPXt^ zzIdL0pJ;m!R-hJsmqQ-ZJJS-e8Ei4iY2c0}lM#f|z-mbgsTfbo5oi}8rT9; Z`U9~B)b?=m4r zob=N6&DxTD$Dt{U9URPpd7xQwqv$z{iv$yY5}823A(mTmxpy0YW5z &bp-;9VHpV^Ojj4I;$_@J+uXr{KxHus&p8?9n{ePoIB^eT&n6gb z(sgc4(I4!1jI4eX8A+d!U EtQ&LNlun~qIrt3DKP(X%Mv8XsIV4!|>G@v-QC zaCeTS!974oqd<{+Al7X!GmKI3&tjWox|wB?eL8ofJCSw>Ixb(%o#`^94G^Cy<3i_x z{zb>-8Yj{?O7-bua1-&|Kl~5~M&$rN;P>R%oeKnCk6dV!2@`;VNq#1&)AD#~>W6}T z;>$MOu`bK>wuS?efzx%Ji1Y+By<>Q#P17|Tdt%$RZQHhOYbTl5wr$&XCbl!NjfuWo z_w#;#cOQN3c2%ujwR!<1p%xI- P{lj<@%G(;DSdmgHxl=_ zIw4oigpk5GV}V=caHYvFv)8DSTcw{LA`*FGjc#d3SzM4j;7@Nh*$;4EWwa4&+r)mO zA{BT9z~jCKjR|dWQ{x-*4{)z(1z?2~l|UJgaqX>#Kib{J`=)5QM2t0sRU &sg0Y!m=iAuQJ>~lAD1~xplyS*ch^u{>%ST)^ZagnO%V)NJY<)dn5>b?4?hx zJP0FpxRqQ!>*&g(4+T(xl)4g({Cwd{9rHOwX9~iFNr-M?fP1~#12^SDivRhiP3POS zTm21M>&ROz!^($E npBj-t8)L@{Va`SC=uTFL=4I7%GR3=1Fn&z&Ye-WrfzBh# z1jV_(c?~=(N;eAjR(7^oYW1K08Ph^C@S?NVV`ln)XCHj!vtl$Z68h{OmK_vS!}u_4 zCw07^ Fw%-+f->DI{-p48j{Y$M<^`Fh1gxkU#HXHBXv^>xbiGkkZTqe7 zlBK)7M1NZ|0$#nX>a3#s^~Nw0a$lPDQ)Wg>+E6)Z%2tTe1dG!6fHmL1bVTpS{{B^? z@pfd#mzFbp{KI|wbUvvMi5b`h&q&O7V})l~>Qp)dVsW&@y@zc1m_q?XlV=!3`DNnU zeJ+Ub2QVs90UEud1zAflRf{7L!-{-%0ivRLn6+N@qV;MV_iSCR*BCey(k>WL@oA<= zlRO_mHUgwd*m-aLi)`IQdq~rs5FI5;Q6Ymp1W)oYYd~G<{FqMR$r_R5j$U7S2=NFm zrl?kjAI6{NH<%UnShVEM^8wcFPWU+EL&}SN9ANgUF3e;n`R%z@KrT!~Q*nXYYGnws zy;Q!{k?m#iVL4Br_Y17pp-(})SkbC<(dsubf>#Sw>sf_;m!C?&EsN-3V9#DBP4$Cy z5jJZsMiBkm;8{BR#H?VN?+Y6Ah}`?`hT0n3gwFDlYJ2DX4w`VQiP%wth%X{n#zd_U z6JRU6Kei< ?+n?|G(4NW)dpn%gr3cz@<`Otu9aEzBalPKzZ1C B4&a6{+Bde*7Y}898Vn^t(fuRYp_Z!`jKl~ zpUj8GnmD;xw_CEt!vkX8PLmujV*g4i@^abGyyTY@_};nD_4`1Az@Vo;-nLNmy?^se zU|KZ|oPIaiT)Cf_lViNb;_B-DP|$PyLP1f!{dV0bm}1G`9;4TEr-N(!yL-QghvfCn zA-uh-&x0`>2916|bpo`~7=?Nlj;Dy-cJ7r;=a=X(CxYwsu_2Vqh$*tE0VSl_0g@5G z+ug%*3*O4D`{MD|ts?T%F%G?Muy@9|vnMIccw(-sK=W!*+B@y5F!9DwFCe>T=pex6 zfXKt<)g; Ytkt#W*$aNr!{ x z2I*= ~!GeqT>bwjBZ*k zpKp?Scab}#;?)j8)?#-*8}K6R*ct$-Y(!{F!+`F_%Q@99Ax!n`HH)%?lbQmxGKiX8 z-FK>X4o`=HT2yqFf%Tq#5vPHB))(KIM!@isdz~QgJskx{*LIe6#_!>mpvtsS$Y1zk zyi-q=S-Z90vYbk-qx0O8?p_`tewHfJp6gEN_|LGn<)U%nY?`el7tq80n+5HAaM1#? zP9ocXBW*dU;g8XE_vq*2*O0 wfYYwe{-WZ_%`#B% zqz%#zovU!Pzkw^OqIF=K+tYu6W7 ~kWsQxg(wtVwYG?cP~yemplfnMjcGA` zc`jcda87z;LQdfvAWCZ8P}j)Czds}FGJUy?E2e#e`XdB*gmHUZb(``0Z<|0WVCIRU z4h}hn_E27l;5DaAXMbEeqAYMq--Q@i&Pu@r_u+gRgO!bl>uRt}Okn?p2)<6vcEtMd z%-4gGBYa!ty82SV4+P&KEm1&r$UC+&DRYV@F|*JpL0@$fP`W~gbyhA;d*_di<9bI6 z>rkElCX#S*0wpfwS0M9MCo)_+OyMExlVr|hJwPDs-|VxN%NmhX >tUT8b!LT3s`OQKP!2n81+Cb`VbCZ_V?O O>Y1DIba+L_YvX;4 zFwvL*Ua+Vby!qopJL*NswzCChxceR?+7i?T0J376rXt~8(b*3U> {@zz^8 z@y;zmP~c$|Ld%umedWy^5(I(6ilzelW6|&h5MM+ApWWQluO^>RChrEf3yEqwtjTxo z<&&xt5a>j1xT!2_l&}XpXulA?g3*kOuk3&s=5k}jmc59686rfH`yt`$!(8kR_edj^ zg{lEIfsYP|A=|VBT?%fKa!!D7)1-s*pnioj1pPu#uve)!^_cY@^;1kCV(JDd^w)(| zK@m>|KoJM-#NrTa(R)~B9FSfzS$q!>%KI;m4npi+(R)mU`CGrhPKC5d^Xu#Ob#;FI z1d=B)@PFSMU3}>=L%wwGzJ^)?i)#69WZG(#lUwWaJjFfy6N&zu291sI4>C}#5nrY| ze27(q@E_p>r9b=f9?!7o1=Bi?e7Ds5Q)a~iW^y9W1OMnzJ*0gpL`6^Fq`C?%2HiKv zM2#4VhrZC=?P%?nAD~$4Zxc1BYEf$NSC@=jDpT3?#vcS58Hz!8)L;c>{$eV~Rgj_j zJx7JYo2X&id#3;jznKNXuXybg0w0%vHJbl-H?>Zh8_ihn>JK6!4Ei$yTOR~CUfhuz z0G` ?F6rMN(PnQ=F7a~m?w1%4wb@9I)4;uS5%~Hf zIGh4oPxso^z&X}v{z=v~Ik_KgURZt-CE8LGu-y_yn_mQwPU=o+X<_{k4tq}+M_C~` z#N;S<6Asd-iy7$?2xtSr0(sAJy>5Qx0I(F#NgP193;Kx41PN?%teEJ8u+~4n*Hyqb zN;cW|XCL>n1~BE(B0zyF?9t%e>3*oM_uq>KAn5l=AK Qw%u_kZiB)}{L(=M2#gRPUjh)ZHuYrktRSmYr z+YZ1p9>xp*ieUl9L3?BORr&bOnaA(^6CQ~lZQ^XFzl9={srE6CsVE!{YdtrY%TNmP z2y!|z(7raxqQb_!I)On%by33J0Ps(_ |a{f=d&N$*2@?Zji#} ziB3dfy-N}f8=20&9b){q7FJ8$$ybS+x;w>i!zk|&0>NyyB!0E z3Yh@-o+qI>EW)8v^>ryFbv`3EKNSK6i=l)c3K?-70hbnnn E zH8#IWHXAQ>ztrfwnJlK4z!ZW->&Yj6q3p~cWfxFpx}+;{o`;u6FYt!%4f9$MtNKHZ zQYRi0v$>L8<_Su}OtkbkfHU*v)gdX~`@s(O31w%WP#O#EjnaRhU~!PJ__!|yR^A1x z2syYm+MtO$!~LBVBpKvGeno11IIA&jDBl0dgB{sOM0N#s`Jd3UZa2bE9q5&>A<0-< z_6pRuB5!{uZ?^Y=1;bmm8Z?{4h}_ Dv!h4+MLpWH2 zlSeLXR=Txw{ca>Q_7YS*(+qfS@|=t-6WI^3qg)n1rAC%r(DwI3vo}Gk`qvKi3dSwd zUgKnjIEYX(-wvzo?>W 1axjXVJK(bk@x9 zmB-8V2Cv~^FqBDF{JjEKM0Gtq<)=L_5>a>0fa5dO!wTvH&^ov{T**l7>0XnzV32uC zGoHD8i-tRHK4^v3n(i)^@VT 03n_rl^{8Q7e*;nN!8at`C@8ERg zudxZ1nMMGYC>mIGhy6SD#bx ZLw6x|Mde%Cp1=t+IxW1UPCg)u`*bNOt9of z;}U#zZStB6@EMeq%8Y+mzL>Wd?r%^`A#gCm!sx1CWV$P`MGNoLa>W-b?8eRrwURbA zmN;_9kQzRuMH6Yae(VvJaMn74mnBTKNKc@O?SGcNuOna5dElnN_Qtv96jk)@OJ !a-52w>QA6mP2k*rgfT*40 z8{k2b@SVrCfXV8n@>TuG97&^!G!-2|5NPpT09IAs+pYYUuqw3}R0zFad &B;v ziuBH?ksXoAU3 `wm5(AaIZ+t$q+2#Hn^DFrArr#YVf5?WB*Hy-zGd zzp?mLfsM>DC!zkuVe(^wHrK$10d;T_Q4XFtb#O0Mly?w|@r1-7aQvhI11&rlf=KnD zCYj2dOn~FBZUUm@d<)(tePN{?+r$tW6^xDsEI?EAa{dl>bVBRYl7Gd9vXCL5)@&>z zS8*ooTkr{Bo0ygL{8n9PKA?JYP9|K%%)c6}h;%MHDcgBrp`Wl6m4!JIW|#)QvhjC0 zFog1~N@AgY!1oU?;VMd=U&nQdZ()XGb3=|fk~r}m-e0xGjQEofJ~@I>6|flC5eOp! zFjzZY&r{IBzu9O{W-N&xqwqX8&158j*t`dhU_^Q^<&iJ90pIBG-2+YMPl^K*w}?6$ zhqJKrGu)5Rp(9WI`)j=Z?=>h?+ipuhsGlbup+-C%AA}rKlN2jm4y_LmT@R@a7*kF( z(Ht85Ut1*jClEQfP){vR!t7wKB_X07%PJR*GoBcc|QZ+lx4rne*x?&vE z7uAVEpiy`+&sv^zbJX4C;u_o0Hdf4S>&`f2(d&>grWdr#OVmAv+N|Z?r@~tWz*lej z-Hj}xiq^mU@$ Fo#|mwA*If5wQK}5R z-ao7mV0~OGn-2xMUW<&6!JZl@(LkaQpn|CxF6OBg8l7pDs+d?_{anXty#%}G>4G zXdUWE8EUP14r-lBZWDh{@GcPG0rmzi%t`;!t^Ve%A9A}AkY=f!O#23yZTJtvkAx2F z428#Ei1SQ+Gz6MerY={_I8Ch%V^gdKsxk-?IZjOKayFB*5@l$sjIn}UQaNa6>T#B= z)AH^TQMwp9ZiosQu|ybR1*q^V-qb^ouw;SY=e40u+dAi<$0ypIgEj#f0`O~0^IJ0q z)IK2+qXQz0ajc7!G$D;Na UWQ}kM(hri8kfv4jJ>L0n!qQ^LGoj+#;8(SCWcwPk)Y#csh_|srQ)c35%p=EnmaM z)sQ-WQG?T}h5#Dv{kkTdn8K9ChWS02A-89000NbP*Uitv(oAf4VJ aHB4-?AErx+! zhRQ;uHdQKelt=g?=>LsEj5#-2&Z1}HCo|o3)KCOJj_EM`B5;I`@$slglV;qw6}@RU z(DU7gs2*QBh7$nOj w3_uoex7@# zDl(!_O9R)>c4~av+)Na;0}C8uJr)^jB)H!<0R#~@PM;!S!-&0@2x