From 3df43d366dc1b54b1e1c7a48032d120c8280bc06 Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action
aliases = ['remit', 'pemit']¶aliases = ['pemit', 'remit']¶
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 '}¶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 '}¶
aliases = ['batchcmd', 'batchcommand']¶aliases = ['batchcommand', 'batchcmd']¶
search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}¶search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}¶
aliases = ['@del', '@delete']¶aliases = ['@delete', '@del']¶
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 '}¶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 '}¶
aliases = ['@parent', '@typeclasses', '@type', '@swap', '@update']¶aliases = ['@type', '@update', '@swap', '@typeclasses', '@parent']¶
search_index_entry = {'aliases': '@parent @typeclasses @type @swap @update', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass parent typeclasses type swap update', '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': '@type @update @swap @typeclasses @parent', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type update swap typeclasses 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 "}¶
aliases = ['@exam', '@ex']¶aliases = ['@ex', '@exam']¶
search_index_entry = {'aliases': '@exam @ex', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine exam ex', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶search_index_entry = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine ex exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶
aliases = ['@channels', '@chan']¶aliases = ['@chan', '@channels']¶
search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
aliases = ['@channels', '@chan']¶aliases = ['@chan', '@channels']¶
search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
Test the batch processor.
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpp_dpk62g/6f00c8cfc0e34597e8644821c7d492b08e4be26b/evennia/contrib/tutorials/red_button/red_button.py'>¶
aliases = ['co', 'conn', 'con']¶aliases = ['con', 'conn', 'co']¶
search_index_entry = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn con', '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': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn 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 '}¶
aliases = ['qu', 'q']¶aliases = ['q', 'qu']¶
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n quit when in unlogged-in state\n\n Usage:\n quit\n\n We maintain a different version of the quit command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶
aliases = ['l', 'look']¶aliases = ['look', 'l']¶
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 '}¶
aliases = ['?', 'h']¶aliases = ['h', '?']¶
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 '}¶
aliases = ['co', 'conn', 'con']¶aliases = ['con', 'conn', 'co']¶
search_index_entry = {'aliases': 'co conn con', 'category': 'general', 'key': 'connect', 'no_prefix': ' co conn con', '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': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn 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 '}¶
aliases = ['qu', 'q']¶aliases = ['q', 'qu']¶
search_index_entry = {'aliases': 'qu q', 'category': 'general', 'key': 'quit', 'no_prefix': ' qu q', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶search_index_entry = {'aliases': 'q qu', 'category': 'general', 'key': 'quit', 'no_prefix': ' q qu', 'tags': '', 'text': '\n We maintain a different version of the `quit` command\n here for unconnected accounts for the sake of simplicity. The logged in\n version is a bit more complicated.\n '}¶
aliases = ['l', 'look']¶aliases = ['look', 'l']¶
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 '}¶
aliases = ['?', 'h']¶aliases = ['h', '?']¶
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 '}¶
aliases = ['aliaschan', 'chanalias']¶aliases = ['chanalias', 'aliaschan']¶
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 '}¶
aliases = ['delaliaschan', 'delchanalias']¶aliases = ['delchanalias', 'delaliaschan']¶
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 "}¶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 "}¶
aliases = ['quit', 'chicken out', 'abort', 'q']¶aliases = ['abort', 'chicken out', 'quit', 'q']¶
search_index_entry = {'aliases': 'quit chicken out abort q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' quit chicken out abort q', '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 chicken out quit q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out quit q', '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 '}¶
aliases = ['shout', ';', 'whisper']¶aliases = ['shout', 'whisper', ';']¶
search_index_entry = {'aliases': 'shout ; whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' shout ; whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶search_index_entry = {'aliases': 'shout whisper ;', 'category': 'general', 'key': 'say', 'no_prefix': ' shout whisper ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}¶
aliases = ['ex', 'e', 'examine', 'unfocus']¶aliases = ['unfocus', 'ex', 'examine', 'e']¶
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 ex examine e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus ex examine e', '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 '}¶
aliases = ['give', 'inventory', 'i', 'inv']¶aliases = ['i', 'inventory', 'give', 'inv']¶
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': 'i inventory give inv', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' i inventory give inv', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶
aliases = ['deal', 'offers']¶aliases = ['offers', 'deal']¶
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 "}¶
aliases = ['recognize', 'forget']¶aliases = ['forget', 'recognize']¶
search_index_entry = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', 'no_prefix': ' recognize forget', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}¶search_index_entry = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'no_prefix': ' forget recognize', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}¶
evennia.contrib.rpg.rpsystem.rpsystem.RPSystemCmdSet(cmdsetobj=None, key=None)[source]¶
Bases: evennia.commands.cmdset.CmdSet
Mix-in for adding rp-commands to default cmdset.
+key = 'rpsystem_cmdset'¶at_cmdset_creation()[source]¶aliases = ['turnbased combat', 'hit']¶aliases = ['hit', 'turnbased combat']¶
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 '}¶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 '}¶
evennia.contrib.tutorials.evadventure.combat_turnbased.TurnCombatCmdSet(cmdsetobj=None, key=None)[source]¶
Bases: evennia.commands.cmdset.CmdSet
CmdSet for the turn-based combat.
+key = 'turncombat_cmdset'¶at_cmdset_creation()[source]¶aliases = ['boost', 'foil']¶aliases = ['foil', 'boost']¶
search_index_entry = {'aliases': 'boost foil', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' boost foil', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}¶search_index_entry = {'aliases': 'foil boost', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' foil boost', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}¶
evennia.contrib.tutorials.evadventure.combat_twitch.TwitchCombatCmdSet(cmdsetobj=None, key=None)[source]¶
Bases: evennia.commands.cmdset.CmdSet
Add to character, to be able to attack others in a twitch-style way.
+key = 'twitch_combat_cmdset'¶at_cmdset_creation()[source]¶evennia.contrib.tutorials.evadventure.combat_twitch.TwitchLookCmdSet(cmdsetobj=None, key=None)[source]¶
Bases: evennia.commands.cmdset.CmdSet
This will be added/removed dynamically when in combat.
+key = 'twitch_look_cmdset'¶at_cmdset_creation()[source]¶aliases = ['unwear', 'unwield']¶aliases = ['unwield', 'unwear']¶
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 '}¶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 '}¶
aliases = ['press', 'press button', 'push']¶
search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶
aliases = ['break lid', 'smash', 'smash lid']¶
search_index_entry = {'aliases': 'break lid smash smash lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash smash lid', '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 = ['press', 'press button', 'push']¶
search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶
aliases = ['feel', 'examine', 'ex', 'get', 'l', 'listen']¶
search_index_entry = {'aliases': 'feel examine ex get l listen', 'category': 'general', 'key': 'look', 'no_prefix': ' feel examine ex get l listen', '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 "}¶
aliases = ['burn', 'light']¶aliases = ['light', 'burn']¶
search_index_entry = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}¶search_index_entry = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}¶
aliases = ['move', 'shiftroot', 'push', 'pull']¶aliases = ['move', 'shiftroot', 'pull', 'push']¶
search_index_entry = {'aliases': 'move shiftroot push pull', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move shiftroot 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': 'move shiftroot pull push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move shiftroot pull push', '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 = ['press button', 'push button', 'button']¶aliases = ['push button', 'button', 'press button']¶
search_index_entry = {'aliases': 'press button push button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' press button push button button', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button button press button', 'tags': '', 'text': '\n Presses a button.\n '}¶
aliases = ['stab', 'parry', 'fight', 'hit', 'kill', 'slash', 'chop', 'pierce', 'thrust', 'defend', 'bash']¶aliases = ['thrust', 'defend', 'pierce', 'stab', 'hit', 'kill', 'fight', 'slash', 'bash', 'chop', 'parry']¶
search_index_entry = {'aliases': 'stab parry fight hit kill slash chop pierce thrust defend bash', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' stab parry fight hit kill slash chop pierce thrust defend bash', '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': 'thrust defend pierce stab hit kill fight slash bash chop parry', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' thrust defend pierce stab hit kill fight slash bash chop parry', '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 '}¶
aliases = ['?', 'h']¶aliases = ['h', '?']¶
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', 'search', 'feel', 'l']¶aliases = ['feel', 'search', 'feel around', 'fiddle', 'l']¶
search_index_entry = {'aliases': 'fiddle feel around search feel l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' fiddle feel around search feel 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 '}¶search_index_entry = {'aliases': 'feel search feel around fiddle l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel search feel around fiddle 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/tmpsd70qei1/7cce317da0f28b615fa6a15ff176e7e3d3169695/evennia'¶directory = '/tmp/tmpp_dpk62g/6f00c8cfc0e34597e8644821c7d492b08e4be26b/evennia'¶
directory = '/tmp/tmpsd70qei1/7cce317da0f28b615fa6a15ff176e7e3d3169695/evennia/game_template'¶directory = '/tmp/tmpp_dpk62g/6f00c8cfc0e34597e8644821c7d492b08e4be26b/evennia/game_template'¶
aliases = [':q!', ':dd', ':DD', ':=', ':p', ':<', ':j', ':y', ':A', ':UU', ':dw', ':u', ':h', ':x', ':>', '::', ':f', ':fi', ':fd', ':S', ':wq', ':s', ':echo', ':I', ':', ':i', ':::', ':w', ':q', ':r', ':uu', ':!']¶aliases = [':i', ':q!', ':fi', ':dw', ':DD', ':::', ':h', ':=', ':f', ':I', ':dd', ':y', ':>', '::', ':<', ':wq', ':', ':p', ':fd', ':A', ':echo', ':S', ':!', ':q', ':w', ':u', ':UU', ':x', ':uu', ':j', ':s', ':r']¶
search_index_entry = {'aliases': ':q! :dd :DD := :p :< :j :y :A :UU :dw :u :h :x :> :: :f :fi :fd :S :wq :s :echo :I : :i ::: :w :q :r :uu :!', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :q! :dd :DD := :p :< :j :y :A :UU :dw :u :h :x :> :: :f :fi :fd :S :wq :s :echo :I : :i ::: :w :q :r :uu :!', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry = {'aliases': ':i :q! :fi :dw :DD ::: :h := :f :I :dd :y :> :: :< :wq : :p :fd :A :echo :S :! :q :w :u :UU :x :uu :j :s :r', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :i :q! :fi :dw :DD ::: :h := :f :I :dd :y :> :: :< :wq : :p :fd :A :echo :S :! :q :w :u :UU :x :uu :j :s :r', 'tags': '', 'text': '\n Commands for the editor\n '}¶
aliases = ['y', 'no', 'n', '__nomatch_command', 'abort', 'a', 'yes']¶
search_index_entry = {'aliases': 'y no n __nomatch_command abort a yes', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' y no n __nomatch_command abort a yes', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}¶
aliases = ['end', 'n', 'p', 'q', 'top', 'abort', 'a', 'e', 'quit', 'previous', 'next', 't']¶aliases = ['end', 'q', 'quit', 'n', 'next', 'top', 'abort', 'a', 't', 'previous', 'e', 'p']¶
search_index_entry = {'aliases': 'end n p q top abort a e quit previous next t', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' end n p q top abort a e quit previous next t', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶search_index_entry = {'aliases': 'end q quit n next top abort a t previous e p', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' end q quit n next top abort a t previous e p', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶
*QVC$Jze?^u;+qXU^X@jn1G>e7u@>5>vDYokFD-2r~pp$6!Ca= zI0AH4g$K<^exMOxjn|xj!txMfFg-jP6xd?L7AP)@^}uRUu-IkGne^x+e)cUNrVOuw z#Wi6R+g+XFUCle=WWqr!=l~x24G*PqA`|eBf8dS20{;aG+`6*Qp} 8rJY_#(4B;Dg$x-#pRECM23=zS$GabW bx{ z=M_!>_q;|6>Mz&8=#J$G4BfM=(E=LZ8a9CS;ah@w6st{qJh4bswa*!S;a_H*%7&B_ z-xea6pMunT#$h+B@z&0sI020<{9q)ke_`LulW>+Za-MJ@&D~;OG7z8$&t|+284#M~ zyq6!E{mhde9(qFO2+d)h$qjHy`{UcegoI)U!^npMC8@Tj6Xq*7rxBJbcVdGBeWr=p zKhY54_(mJVws@WPdb4?^qx)R(fY1@RT>Z-b`fbhZlFnKX17c)d)f0iDNAXPrf3`#} zgQaBK`Nko~^1kdWHh+%5(zL!Q0yVjJP|y3kw$5tqBTdSZBha)d(?X(Wwo}c;yPaL| zQm_f)em5!vELmJ>3$&`#2u01P_AL+@<1Jf)@e#Fh-tHZP6{K4-=0~4M!GGkvF}1Ms z)m;|$y}pZ-j&P)OM!fp;#c=$6e;L{h(|iPif<8MZtK(6Ssn~aKfHdSzs)Nbm6*PEN zvcVz}=!sZpC^u}TFJ&w$+UxN#>yGTosvKS;@fe#pz$}g~ek)(pWPUJbC=s>y4`uZ- zAEE*_=Gg13ML709yRoc_?78i$!j;4#!I8ts;hXjp76IN2u5O+_O `DeFohA1G$fmtA| fv*;v=4e@(b~1=+S&E7Yl`eOMfC!mL?Y zP?j>s@`+~re?DS%o>pX{;w-%n!1X{__EC6#kS2|uNVv$(vw|xC!@oy5()9aLorz67 zIQbYM6hI}KH%k%1i`xso-1aQSFTuTtxvq rz=vG1Y$&i#qXh_R34g` zF2k|O{mc`K*@0Faz|INCEcNE9Nph=NHInUh*pej4e~$FN^FvtF7$tpv$jYXmFB!ij zVKo%rOGnd=LrNr9DbwG$FHEHqIiUrU$c5v#idgQaFBNBqOlm-$u!+@>#If?MA)f&_ z?HZJNQRuM)X@(DDmREC@Agc+N{PMBd++mNl$drMT^+Bmm+WoN%Q!PQDE9?AV{8y>G zk7%Uee^Wjo$)n5w1$}^NJfBvWZAQFo_8--1p(o-(b6;8Otn?p;J;3~2P|ASQb-{VV zO*Mt24mgV4FbWvO;sPm>~TX#JXcJ1UYXH{;0vEAR%bs9 z8B$lo(@ZV+vl1OUaK#@wu9Vj|U`U6ERA%~y{rRWh9Gl sktjfDj8>`=p^Z?6t#pL zl_Hd)n^MfuaZ-v;qAu#qqW*jNJ;?evbb7$c;_&&Rt%k#=4!sC27-N{l5drAV%W24- zlnwhBqzAcIa(q9#!4rCcTL8vm-}7Iyq0Ap?pY` |08_{nFoEa-uEW4*47uJV4BHRYyxtqx1>gu%zl_flaN!L;*^d zt)M`m1iyL$hh{3-sx#D*@j8l|C=EzT-4;R#E8B`>TB^1p7FW?~?qivIS-QO4y&_%R z&Ku%)9+)~S_KJi%I>^Ka3=_ZE8V(o^a8n#Ge0 ma !B*t_e-g9=wHthzzQn(d7K_=~Je8~*(sghzui3sY)9c4R%bveaD(2Lj z(hfZ*k{=}ko%s459f(hl<$c+CXEu>}?&M#Yh_0&gfu?HLX+|&;xdi)@8$CEnz!?fE zsro?4Eq&J~X>ynHK*~y-aiBxxR9wnLuaym$oX4B!CE09=e>pbEDM5dBs|OMZ_%lHz zRevVArSH!qO;T0u^J?j3LYk(z6*Mj5RMe97vyxt3QPL-s1CzA$&)IICnn>xLihUl6 zl64h%%^uoT4`h>RypqWmn#p&Y6tgZt15LE|6seoMZTljntkRvx5+>BQ&wNtt;1`1F z_wozZbo;Dxe;ikn`Dszq$r`mompBtXMN3XNrL=HNx5HgHCf2tt#JGLD@=zdM4NP{* zZlRc9kT8==D0g_oDfvG6gJctr`6iecJ0_T_AC%;JDyr90Dup`cmy(~Enca#;OJKJ4 z4WZ;b%v**DyO+0Q)0w0_%PqAT+P5TA@qKTZMRzQGf0R+Q?q@9fqQ40-L$aXFSi5dk zCGT}C`BwLSS`MqX_ueabN8GDVU%%e`{^is6>znMi+b=iYKY#rncP)hF^T&_7`!8Q_ zQlazx=Fj`vPhaEGx&8LzHY$VbKR(69|M5L8{_U6hFV~;GX1{&<^7YT#n>5JW{ds+T zb9Wb&f6V8b{~Hzm%lG@J_;>elE%UE0ao#@ {mXS!2LJr?<}Pj<-2L(8=IiIE6z>1H{qa|HgSfxF z`E(bnkDf^Ub@S ;L}A|BK%cSHJ%F{67iM_~Yi& z=LBddZ;}1+>3a%n?*IBBsoW*NMOki?mic=uyPB$V(OuFK)BUcgiTVDU>C;W$tJI8J zV)TTO7ZtBV0uhK@W%4kxEOX3xVo)MQkrJD#N{LNhw|zo<@^);7j8*Nx5@Iz~bcmzA ze>(nOg4C*(6zw=9$V|M ZgAQSJP|rQO^gsD;;h0sG 0!56J?iLNl!S6^xKpqbjrSVym z+ >)RcXlX0cb{;5!`{K}o6SooJVK`{CL^EzIC!@(2k zZv>kp`x`-w`xXDA(80)572TJl$>S^UlCz3TV-T@EA2mAfEC )>cN=3_(Km z$R$m{$(PMQtE${n-Sb6knUc+;oycv%vM!HLg9ia5h31Gqwh%1X(9>qGm_$_4WQI7a zlwxEaB`eyP*@1tKlnvq_;XdB5e{bQC(CBYPD#=0MieG#mvm%p*jo%&G?!PJRVygAR zAtAM1kxEjnSNufMlGN@~QNVP>VJU5sJ(He_1m@5RO=qd7`Bhyq+Gh_WA7ZCJR;1#4 zrWKjgJk! Rbn@&K=RFBruyvW9W0j7+ z+p$n*x_k9DK21|k_Pys37k?5!ohLLa@V*n8py%WvG@Y^$f42Q=HZnR_BB#NP|BwxO zHFFw_{M<1#o4-dgZC8>8eaxP+Fmav0ZNT!sSS+f!g z#gp+{3o%tjn)R*Pl` ^no^fe4k#ErI~+N_@&fAF04}N9v4Olh0zPCo<8)H9TIX~ zDa8 WaSfsonmRO{`FiXjoF04{ HnOGfXKjx}uaw!P?9yso+zyN-Xl6 zSS1#AYFg{sf4<45r=VJCCOtH{l)?l}DU~2W(@7{ Eb^9H4v*YeNfBNR@y7=eJ!M;;pQ*g(=;yOvZ zmO2CR5U<`b!~$X Ft(K^$z;so5w)dMN3BpOBLKvS_LkLAqpM0kHxq@pg8&%C2%3XDpY=`O+f zNHcIkllx1Ckg)PZ*u;x|-%#oLcHdLRl4uwC{Xrcqodh9uQh7Q)S$dth6Hh^ZIHO@? zi8Kyf`Q_Mj{#evF^4MiMt39P5%*2V09+IL{e^n{b+0&F%S!^nk5}m3gMJBIF#z9Zi z7FOBpq+=)Fthf%8M{oKlhUB>FoZUxh+P8GmiT@_1D$q&Egc#w0S0wB1#aOD&22teg zI)`#3!*MF5Z`;}#U)<}1yM8l2pMKu9>M%t6U}nX{p8`;M1}rD=>I_(VJgRA*#ejTA ze>_qa7@WGNE)_!S`oo8|9h^s?u(bT<_+h#DPpQN3iS3G#^Ft{+q2xT!icmolu&%V+ zp=9&W_B9zY(sh*ZIL7$|bwEmBTfYKw>Qd33SdMx02#-gPuvp%E)Cg5|)9g#v?Vwg< zKv-N!$CA~=$DE-#ajU7ahn|l~dR tgUMeMocPJv%fnnC1)+FtZ%^WUjZjivSM&~~o9iM-db zH&OTgI=+4xsN=9=1@DOKJ2?Zu0AvXV01tHru DGVb}mpT79Kqa!wcGyvWW zB%6Vf{&V}>Bt%I5nJF?XIbQu3yRGsA=}A7&p7~qYBFo>>R UcT|DF?t$ zC^_rxR>!^(@4UE{Kk2Gr7*DYxjn4L}CNH1MhX?m$Ni^nAPA({E<>h21CY$~p%KVXK zqFnA{K8>2V%h;Ibl(8&(e=Mu&Lq3VRgEZ3`(2T3t_%T(CzR+AO^>`So>f@@`Lq+MV zSRe8U#2g(f3;HqH|2@)?X8hY(pOnk`kPo95Q_n{JAs>PbZMP1OJ|6$E8CFF|AKJLp z!>o&_{{Qei9^26%(3d$4`SFu #cp+(f0D`?5Khj_E^wB) zfz&$A3w+b}(VOHG_sN_5KY$O`be~C=J&W`GXpue3J#a-~G3#jcF&;n^%#^zFHXX9- zw4MA`5cb;AB?8eD`@xHRR~JtifST<;+5?Cor@DbVzPcv;YqC#p|6C6F;V2qSRlCnn zO 2-x%yrZh@JUxp+@LX(F`FsEfqy?mmX?~ Yp=ijPN|$L2|g=I;`h1EMr&*VE}A-ZSY^63AS-lJqv3t=$jddY38+ zN5IGro$AtW@N1{i_>aUI%msuYJ)dUvfjE0@zZZk>K&r A8NxxwNb~8 wC)KSbR8M5?k7 zo2!Xt&PL{S0&isE*?)Y@2G9QSL3#i3L3#h@2j%_0J}B@1N`rUP Mck Ie#~~S~VgQuw z{f*yYRL*7RcXNJViib>d-ucP UzP0nXzHO&RdGj?mOSPV Q90a7BhJuL~y1ImCHgcFO}1d08LK zgvh0)J&z2m&nH4;)U+9W(Ic}|2=Txv9X|Gc9heN~A^H5FXGEeH`kKTQsY+sfun{I9 z5!S|YHb+#%yj7Nyf$sIfw=`NPwi7%ee^a$;_ln-S+6bFfLORWO7?&S1{wICO_(&`f zZTi}_kI}u5Ad!?8l7!OmLXt{)UP#hP#S2L?$$6ofRYE$Qo)@~VT1LN?MNB6&aY)4n z&3vM}pqWWh9%yEjfCHMjq~w2&NTs9B>3N^;W3i_(U5_M?ir-OWqB|W$BPoxge<&s3 zZWNJ}e9gir5&cci%lznQ6FJ1u6jJdt6P@V3W+IZ5x0y&K;BO`>DS4bVr(`raJ+Jd~ zWCzYnMqg2V&k>PSJkT+z=zi#!PEy|Jm|6lp>6lPTp6M;K#PmE_FD2Y)0zOL6NX$b? zN~!oKNhU?_B#EWtn ?xbV4g7#ZJr{&B0sb+Q1VYN!16Qa*J(ur+lIpo#~!7z6vcYQd6K6vjo&< z#U{G)+|uILxkfsQ;>-*@R!g8!0$DhL#*PenAJ+t|Y{iOSndQPoP6yG&f7kA-ohXyZ z1|n*@Q)nc?=TWo|OQnIh20dmKsk;=Kr=TpC+gb}k*{*LNRSGGAhLY5zdUJMa;x83e zE$>(o;-udl*DIEgCrGEuy_)=FA=jSL6bz43l3J7wA*U5;&UC~XEn-1?)8!Vc##VP( ztQA||<&O)>K@6Mk^>H<3e^KE@DqbAi@?(g6EVE;XOgwU9h^(xKScqKQ^J2)P(otvM zoEQSNo9~~kwm?9jaIZewW>v76_+?hm*`;9m$BgX5Jv>U^e_p4cNt}j9t_7DDNWuk| zqF2@hms(=V?ijoya4MUJ_8+mk6hY#b6iEDMY!WqXMtyKz(-t%ee;vzRs^8q}I>?gu zicPq@I|b7neYfD3(@FW?(*V@Lof-4dpR(t+*T***zJsG1ZC=3fjV1rR&4d!VgD)~5 zcwBv^b*qnG ~!tfZHy zKT+IL@+Z@Nnm141^l&1oFFB@jrK@nJflgHaaYC(?sXUfFw0+IrBJJZdEZVGThXWta z+9f1#*z8+b9zaPmcDgrU>F`n}nHAhT s?s^Me3XKWr4j2NA;O!hNJ;AtqjSC5AhG>5W}5mbkXrg zgm36`M*6;de x79JD%kWBc yrm>rS}*vK84 zR66PmJc iMicSKqM-fTP^C(hDI37hMEx)sHN=B1Y^g6%O;V()$ zo6SN{X{6(Q7D@?tpoL6gUT7hfgeO|)q~(o{c_pRYDSD-^<^C|l^+=LJI^IapNx%~+ zB8hn+e?=+@52UE1<$V@T$!KzlUgu{|8MECw4Vg$f9%xM}0Y9{+lbAPJQ%k}ptqG;& znNFD{rspYosarjv7tcKj2I=@E$tD4ZBzYv}i6o~aT##gvmhYJ n ze@M@0GU}aPhAEW<#nD(6Y=t8 VTJ@<7Up7TM5~CmLJ*Pr3Q6kwhQ_wq6l| zTi1$RM3Z}s@;H-c?J?4zltR3DM5w2XCZy=SbX6JYI^G45CQnG4K-Q!AlagttyLRmJ zm}#CBi ;DG4{!M;;3?jc zO3XZ!jwN85ib#rvshOp1m6~LlCaK9KWRIFr^d!d#pTwL)0%aqoR8n*hGq zCP62WQuWOnPKg<2^tzy9A}JcBW|p=|E`?PI8e}@9RVR#+>9sYVB%MR#612Bu(sdG& z-A8Z~Q!QVz&LWl4xpS=gwit7oJ zG+U4j>B{Ao=*MUVvl*w{!uL zRor;zm1Z@H{h{$bM($k&xG!IYsw5e>0PGJkAlN zRFpVHZ}YwVMuz+l*WqXq>G+(9Py%jeqLP^BnP?^9d?qq!`JXkbgmgMJFLXoL5YPPx z^fdgAWD?ooNDc{k8p$WRi;*nS@hvl*6cjc&Z=&w_BF@c@=v7uM67eo;MzOujnoCOF zX3Z15;?%s&9Uamb?3@rus1)rC zx#;G0N+@zg2xl}Ec*fJ9i9s6O*32eyw>9%fsN0%3MYp4wNjlxue-WirlsL6+Ya;f0 z`9%Nh;`Dj-em8$jg5z%KlkTQV*$V??IKd{hB#2GAv67&cQxn$hJLMc7paLg?^ zjZe*M{Y7JzD+%;8e|(c<64@O|4heZ6$tSwgku1{jGc%nO6gDYuBBm9ht{`6sB$TvY zk&0_dDCaG# zx{Uq|pU8{oXGZyf^3X (VdY=TN}9Lj2Y7$UFQ9Brtp z$XJvE52p-;PM2Fszv7zJjRUhq(YHCGT@7vaP^wTuEY-S@a=3(R2gqJo)$Z{j8SS6+ zNZ6u5)m^sjsqgwE{-(v9{OgV~R&JkaeF5JOe^_0#X=!-)1sMo;=dl@Zy@^PnCI;gO zKX|j$%ek9u)m+{5N&k6ou+sH?R3|twn>%(HTTIKQUA@s|H|AtkFwic_WQ6=s(yHJ+ zL1m~$^Yw-rv|R6w1b``5kn{HVMw`)0bKiw`# $ z)||vZGajfHWj=%^A(nk+1?BBPi>&6|yf%#B9K@$geis_P=8CBFaNSjgWWZ=sL~45; z_m&T@S=&@)Lo;Cy$_%kM>`R$(qWgZCf8*W`N>1)F3`kDzg26`NBKn5kOT*~ih> -htt)lE{K3K&uVTd^fSz*Xo#a&@2xrJikxFx6gJ*`_FC~!ypm>#vR%}lpr2}#T+ z%nrg(Z#|!o {~bs&S;-Q!EVA>@X&Ne+l;+ zoTb?!qOfdSRuTnfXj;r1j8 =rhrM=j0RZACDpz->h<$*66`uOmI9$!S|R8kCKPCY5;nGqF6hJ@+C95~uxa z>Ojuk>zF%UD*t#}d^t{N+XoUxfAtEc6hys qvrX}@ 7KqMXCF2hiHkBk#{|px4k48G8P#nu(-~9sr*F7m zM0DsW%^0nyTC-yC;#PMUzNYmZHY)PwK36>1;BvjvZ)H{erYHHge^uZe0$#{dR)~L< zO}RqT%s3FAd;aa6{4#h`97F5 `MNGd0_wW0Or6q29)1Mu3x+Vs zSXAO*(r~OH!K7qWHG)aRtxg1!kx#h;Ft7YTnmv_y?JS?{+h}eGm`Fj`A#cZKh(%!E zW@DGN4L!1>7)+F2e~7Jg `(X+i9{D>dljcw$QV*9IY5z|#>vaWcHO#k2?ZYI}#E+9H1*ihp3 zM1+TIlIN5$6v^9hnTK@QO%C*BK$349L3v aO=BESe+aCXdp;n7R?ug<%S0VG zDeAJx#=gP?QD+jtqui;N{0C`@iuRz+=U6n77dipCG+zlJziLV01yGZQi|a4 W!X52`-`SU7HLPzf)s@lnZSq?Q$>@pwz8$69 q~@})y5%*RnkH(WS>vPzav*=vZbMk zjaoA{f9{S)I1b`x2X^+k<*)BPviep0UjT1OnXfaIH>F?Rd8)HgFN)(94=pdFe}jv> zxbdl@$N^kr1<$gAXW4+VEOtG8fE4&ZDhA5%Kv>2Hq8n4y_F~(rV2}dK0#sVV%7Vg6 z%zB!GN@ZEwf=c9{pxs*2!Ws<^XQ3%_kq8g2f28uT6Idv)#17mGb+oUc%teUaJEp z71n2T;7^V7*o;;Wu=2$DK8z02xnf{~N8SJ S671(4rWBu52cnC+uCxbS*_Rm%5l zZ=!#Hw-1?q->L^Wxz1GHm6|#I{Od+h$XW3ga+Mv*Idyr;Uh%%~@`q}>*Gyf62%?g< z*f26b+%^Mk28N5Gu2EUdRh|JAP}inRf5W{{SYqdzk%mGnc9|$9qW$n10W$2fKGN5W zh+3f6jw&}25V#for6h=$+D6m_03J*j`AEJCtRuNx*mQi^c6X;PyVkCBW0Z7GxVhBr zF_NeJOCuyt(U-$zPvMt>Sx?cT!LejttmXBTy%B<2N}miJNUtYx#ua?7@*T?fe_WxA zLmOMUL#8UX H( z$&divzGDOs(~3?X2vG^%%$xe)BH+F6Lt9fs(Rjo+ic>u#Pks(rJYLh7me_hgs5}Rf z@U0R$AJNm;E!!$AbOt&03!oj?e@ZsXbaoJ$zf1M750*;_u`Av|6h}PtZLNogXpJ~| zRao|1C>moNV_v&b(6*QaqqWDB4H;0+Glgp2&H9I)64D# zM?P%|{D+vkN>B?hDGE20Z90!*I-fKB` apDQ^41U5y f78ncb@&6B1}p9eHhrc$ z%2Zi_(_Xxb8=(79Arrj|f0ZBsdryhCoM^m9@X8a!11T$7WJ6D6jVcPJ?xGx}0a8ij+S0G3mwq1}`O5&dB=O;0`$&XZudb0xel+rAuL(Eu>JiXU@r z0;CgHQqkSGh6(7%HR8rbCBD*|rX8D{%At?U5r#n;S~MI!5Fz5+e^d@a>#owS5l5Nj z2o?7Qp$>shLC`wG1!zYfT0USb`nJPI!H9m|f|O4I8VvdUYZOLa5kU}R(gmcTEXNd& ztGL)P^$JOz(rHxC;tqoQs*x=ZW!$lduiEwzQGCtznVzsfMq!s$NcltPd5X=mq`;6i z765_aR20|vG>l9Ie~Sea_)z%zhL@*5!9dDrpP&Tr^SCnsD;)f&u0s#$I{bL9!w=>J zL?9otf(l^#cr#7MAh=<$KnP%vxDTOrCg3mKsFdCthaJYDXrD2Ae{5eo=YoYtKJefV zDJgskhl--sfEq7n^g !O-ALjcU4va!Mi8c6=g6+|JSzP6{5mAi_fhcar*rQ;?< z1Y^d#;y6NxlSWlNF)a`=jy7||z(B6qsM#J-G`iL{f91xp5}xucR!TV{U=^)t@w(^^ ze}tk|PGPo`;XXcI(y_ggT$-g%b3 ;U$=*Tn1 zJD3-N&p*S0uz~bL)>dGzSA4vD9^$!+O*+5j;^`9~mQ)oHd35oOu@0S}UVt+X2kat) zf7Qp&zy6&5xSqBX-RRX%vFt&%18`WlOMy5n(&ca&7VA<-3yZW7+Cqa}K9R%^ZTEBS z$lx`7k#C%S1Os$PMS@|A%3hhQ-(J@PhPjnWgacaZ4DK_TWH7zJe$u`!<-qku6s)2t z$NWe)Pv6=e$J$OXkh_&rG>O%b{e=n(e^5LDWjE9Vz?>sYjxNS(EfVnmQGq79TB=jc zy4eWKLpDnswb6=Y*ldrZkBjnTk@MNV$Z(bD)iZ$cNYMo;G5~F7&69rYy%$%UL`a zI917p>^QPVfoVyRsUbiBw0Stxk^b@lq~0*f6%B311~eQoR>#-4qw{_A0ZE}if6;MV zvj$E`qf`hz|Ambq53p)pL7}AIxo~XY+e=Nx_|v6-HhP)MM)Y+gdPC+;)Oluaj@R36 z5qpraD;5wpJFx+Ms6=qpSY*6iq+>pS>Zft|uQIX$ D(~t}{=IoVf9YBA7IM|0q3WV{2O<6-%Bx|+=(rslMpWp?16@}t z6apw~o2g62!PCj6jq*)@7!@&Lzb4(wO^v5EZ<|)iizyOlXfRW~d;;Y0W!nx#T{gAO zCcAge19(TAaYEKrzC-@i6>6)Z*j29C$#4GBH%^W60WdoG%>%&nP&OY3e?8xgAi8Y0 zYvCgrEb(Fq&Y*XVL6E;ur|BWtv`W(hVxvaWPcoiGb+l*PV^TDq(9@1v6PCTI5(EA< z!BU;AgWh~Z8z1!M4037ZwX0B<)7N~kTuxte#lx|)wO@v%yY|SSl8xefdzqKcJNFZd zVx(AhdF*vTTVp= ;F!A$FhmoN0S9K_e>A|r)C^qE=Tne| zMh%8)=CHuvE*0)#fMrEsJRUsl1HQhCJJy1ug;q|ZZU7D~u)45t>T*xmBYHn1Kmv9` z5>D1M2Ev*)Bb4tfn 3)z%`?fgn&$*RPiJf 8!L{c9S$e;-}F8M+@|t+Et`Vfz^%O9XRY34mo1%0j>x1nB@U8#^@vBAEoN z05Au_LckaXZ~#bVr5hkX2F}I`hZ#B aD?$F^l(HJ zr;L!1nQE ?kAf0fG&P)Nr**r4^4#~oCe>uUR%QyCi*5Wrd$Mck4 zGPUOdmVDFcN=NZFQ(NW`E%)gMz3)9tuQ5qP>@jADAic$mhU#c%6nHh7MWd+D-Ed(I zvYRwK)luR@sEtCxR2hW;t}aR}sHzNn{BAnHUR}Ex|E{kUIRe9>^&1Ea+2(_4FBHSN zB0mg+A-flVf7rt(8+2+I6Q;>&g^W>A(umlqqVkCtK3tCsp%&xFG92WmDcS&9Kt*4H z{2= sFXJzfZgsTwZ~qxm%-1e19uU-@A?zC?2M`epIIEs=7QMCuuw|8&4X zwiS)z)(4cue_0|qJF~L*#S+TZrIp41V~G^ZvCU{@f8p|6|F0#ISz_-D(0{l91!y`~ zuU!`Z%Mxj9oEz^S8&LY_B0B9x^v?QiyGASXM`~QFdvx{oFyrXzd->O9uk#kcRJ28h z;{jq6{d>qa)l?4%qg131z_i&4CWz^n)f*v*T3L-P0bop`7!a80M8gnphNC}!AbcCO zE$;?^e=-|%_~WSGvaW5bOj)i$s>}oTCkI0G5<+|s7a@U={e#57*KP@e-3v(&t!!X= zCg&pG50m82@5e>zXHs{ZP&qB5yC7(}(p=`%r*A*6<)`2Huvi~ZbXNDzW7r8d(0mY> z-B?zI+zB*qD`YJ7{k1w&lZV&8k@DhL90l}if6E4B$OrlFMXLb85eib0>htDucM!Ci zyaYmO+L8r;k%bAgm{jA!QR}XFck)Yxy0$S$uW=6JDxcN;8!2dz=epwK5+Zg^?Am@H zRTxaMJUIJQ)McZ7{^e(A@NaA%1zHy)$;I6n5iOwF{g+iw8k$DU_VGz@s~$!M0KM2y zfA(DdoAkw2Q1Rx5t=Qu24NEum*9>{VS-gYj1Z5m>fPxbCnB|AI%xQSow&6~H3=hmr zbsU1DiX(o4gT7MMv_Vlfvm*YO^01^msrB()*+WUI;?j=W2$*wGB{F2qSQiW|6wXsg zpEEuZ)hFIDI*8~G^bHoY;~kQ$uVP#Mf5!UStuEu}T6MmGoV73@{}#qf{xj(tv*s~E z(0^tX;j#|fWB$|Yw_51U^*nC)sy`dX;O8M7v5fmwSk&WiNbP%U7Ma8HcqXMh7}GE= za|h>v_yoQR#Zlh!TPTr`znSfDW7rA{-0#Plhq1wdb9G?!_pOpl1ZWzirMI@De?)-n zDeJf|rQvb;m5heb=)2i5U>U1I2xp@cUMSPlcmXX^Bhrw~8NmKDQYf>V;X+xP3g|?l zZbum14(NQ5YEm}Y^c#;3#b$m@UQ&h%-By)YM8O-k%u#__ zTt4v58%l1)i`#}Af;LZ>2y$c=&VV0FRUU*TUmiJUp3ZOw5{?~H{@)|*U-`KCp~Xj8 z2BugzJ>9kKFm;5uNb)$q5J+Q_>2%m?dIS}1WJ6nLI?83(aK%{Hulz%Uf7=xaC~?v~ zCWf4-EE_iT I%=~Zv#PzO=>_}aW#ErRwel6hON1W zw>P)~`QcsNsOx^`zkd-we_ziuF67uQv+##Eo(VxGGOhR77uh=36P1(fq}5P_3iD>+ z82xiB>F~$>{m*~=!=}I$pMY^CARLvuvhFH+tF_`*pPmt{CC s3pb=xHg _7SdZ88cVXP~v zTTlPq5v=bDG~XK78Np?DU}vymmzh;sy2+k{0eI;fhjly4)y;8HsqLkj98>Kqd~*+G zXUQA8<~YkW+TPh&`hTo-9;{cZXD&D+ zZXJ_191YfrW^uJQjK%UL04%$;OAdf b`+O zwxS@z+&4H#RupK6dj<*HicB_@a+Hc}H};!Hxnf{jiht!MQLX@3wqd;)lsg2bH56mr z8I&m52^HH+Knu;x4gq;{gZaexbi=%rxY #e@SF<9+26B@bgq5#i3sK_-*vV(|3K<|SS zfQ0ELfz}v$U6)}vs;@STMW?GjtACBQXE_ICiC`OidSQ_vo7YoeW33Km=qV{)Ltxq! zC;CCznzKJzUt~u0^dNxkAC&v*onEVh{d}jVeSf3lO%JDbJbO}6QGj+W3;zG|A&50_ zza=``zen2SG|=-k^ktYeXDWIKfZI0LRm*6IW^J2qlrgdo1ooq&K^&Uc3A}9f* z0p484$I8ZAen9|otg#M)Bm?f8`?iKw!SGh=^@HFwW&Sv=5()y?w^bl8rnWLg?{oj6 zJAc;Zk92UzfI=dMiACSRcFBi=5->g@7z2Dy2Kr21W1-6(f+d4&?4z{4<-y4)6xcL4 z)@7g(I9QzMi~(<%qzA?BX@~*UyWk=yn3O-l)6WMjhJJGEBeyX~JWpTC4hV;V+|hKk z2CX%n9`eUQ?pS+1dTwjue4C|oc4)^+?0?ETn4H96hq3QTN1w`u8m9E->kX57%k{rc zpKKC)CvXlpwr?H)(K5*gfM}O?g8;Nmz5!s`Wf(vJ?eYvDkQUhn06aOKBja!oNwJ&< zpn;+7#^z9{b|Z8s)PrR{7Ydh+JC^fkD)hS@n*hkSREAGHYVsMwBLD~JcQz@wjDP4c zc&MGhmWb>(QdY*B4TK =!DdK`hVL*kHRe+G zx#75jUuihv5LbS=z5cZ|9AeCpO+;Q1n_X!vMcWM1ZlZEi;?46K^*Fv6O8)*02-* zumlPiEh93!VuohgJQkck|CrtW{C}F=eE ~NpI`q61*GCW<5rJC zFkS|?FTL3(hV=DB9ESX^HTJ-kg8TBRW;n7PhItMEb|X3mfUay1+Xwvx*hVu>5Py$6 zpulx@tlT%W_<_^Wuy*Wo`seLeBm=e@lDbH?9dkNixC| z z0E 2lr5*bHbOV>gt>HH>!R8~FBlF;>7A zWBub-etR+1z84dYLY}qinM)RW_tL@3Z4l)0|1#NQnR}vb!3}w4hI$|_HB 31!9 zTNM_`1|n^>!A>|=h`C9iWjA!+@;G*&87u!ykubpdTb++!bxeZ#M}L<{tJOQb70&Uk z9;jDpMeUvX@{fhew(h>q1b~9AuH%v+O~d=ooQLGbySpP38cr6Zn$K(C60;lJVRPXz zPbSmGMVUtP*iE$r;L?t1yesQ@qEK{_G5I}hXfL}^@qLj5C#Oa6K`14rPj6TyqgI-k z@{*~zCQWKuL&jd4Jbw{h@=unD{o1oUB}>F@qMn(KmH3s0;i$Os_U_JhZe<3rkZc=G zI$_u(oy`GmDJe`Na$Bi*&7$Sog**1*ZJoR|f-C@`&sgHet}rj#Hjpm T@tHyoVuo%#c9pb=NF<=K; zHFSu9EY@q %;J>uS7<4x5VA|2}D?jBjdGq<#pS)9f7Q0FaCu|xA%~)VrPHu25N(33B`%ltGB z2b*I%+~r@11$bGfpA!9XkY1N~OVca4r+r;Eq~bAZRf9I)yC_Icb$9oN!+J7D;no{N zyW$|V6+75%`)n^4$*-;vESF(8AUJJP?S*4;Dz*cT<$o-I3xe$^-2sCSmDK9hPen16 zEa4#Oy%ukN{DzM48$QIB@Av2!|NQd{B8XgdVs`?z0}8s&m1X!}r>#6tp21 ChnyU=BuI1Wmju8TXg&gF%Z6@ S9A3(HGy#f9!n08h^(Uz*aeYph(wMV%sBbw4eDP#xe-> zLbe-a`an4iH(>xR#+^QZMc8*|Hzn v0C!94cA#PK>@o;G zV6+L@lnO0aONt>mJMdUGE7~RmpyjaE7s_&c>kVf$(Dg>M81edG4efqk(X44Z9wpO` zRDawx juj@#9yUSF}LcVYr2n&S*|O zwL2Qk+k$5M+IZP63}DTQP=Ia7r)vW~8Epc;I}I4_37e4buEBkG=GnF720PE_lxsT$ zvqf?Aj&^u%c{nF1ot10*EbpmU;o_X1vwwkS12a|*eyy=yh->dfh0Ao7q^VNOAXd`( z6~mwA7UT#bz7qwJHX~ e-OzRZz9x{8#|ys-{E(EXe@2G=Vk8q=+41ldsaSXA6&55sFmanSyvyMH^m zJuXUX&C)R&YylZ4=|7uS@p|C!cVn9>^~Qqs__I `8adp}7x(5XeZkyPsd z&sM&iQM0l+YXmWM29EGdclmq(jlo-;uQz j!*lMp{E KpCPA5l*8`y7 z*oFEd>tEbEI4}y`Dg_$+1&Gde*SF977B=+Z+hEn%cf3!^j5h_r;b65d34b7kl6|G* zA&LfwWdL{Fr-y&&TFlSnF3}GVw#AvR@X*~D3){9d0UEzoHEZF~d#>iR&wl>6yAKY2 zw+v-Mh8G$(UX(Erh}P3j1RTfCu=s5Rqn`=H3w0(6{zH2(Dn27NSQ2gnI9LuY<2e@w zU&+5;Z)9OcAHWl?(5?c$>VJQ+wkaRXS38-4_3cAhO($kt8X8X*ZVrd%3yZO?U;B}J zhu&QJ>Lw?otLwV>EdIQef8OMW_Lj1)ZP@1Q!228k!1=(qB+P6l5nLideKs`~m%@Qo zT_%pm-W#44h)d^@CO|^$XqK^|?R6G4E*nNkpC5Q=Q_z=;dy!zTNq-VD%bLNW*{ %fl+%Zf`ZVfY@l5*Ov42Wz;NaxU}#|5 zljxxFZH}jd#x`EP0S#=ERENS=eKYT=?`W_Nag8Z*EO}ipF~}C>z$U|M6doNJ4uKke zUlywlabvgzfEO4}Y=53n21AqkaEtx*Gx@Df)vzGo8CP3z93*oZf6jM14Mdl_b6rT! zGOo6RvLA;>KcVBpquu>09*Lsdvv}zAh16w3BQg+!-+1U{QN?`tIb9zSK5JU8gHcK7 zK|n10_A#Og)ReHXr&&cJzJt1bifINCK5JqVh}Z(G&H4C6?| bf%*}U4Z_vuma^~daPv~CTorxEX=l=g?vUTcYACyk{@DGC<^#K>!`L?} zaT5TYk3)Le@%Y7j_~8Y{^1kd`20iYm) }2H3HdX 6rm*L=t+m8iBzyRE+?=9;Zft zp9ZNBpv@|}5V86AFw+CXI25d=h=9TM&@ckF7?Na7On>m0PaX^VXdD(Cf6hi>A@g|m zr_F%O89}d~UyU?jpQz;WdSY;x;M-d);=uWqBRu1n_89RD)asnA3(uhc*`TfdS(kin ziqscdNxo8>lbDrSpMkNHZ#<*yk3{m^;Ajp2oOuFqzkR+N2%LFQG6 LCcKzOWRP<03dr U*KEop z<0E!s*U=#)me>d}m|c_s44sE7_#g)R_xXb~fqx^FCWO=HAX!1HFhD^fask9b0F7NC z_A7m;$esm5(?4dqgbxt7+#c;8oeO<=K)X7MdU}o-Vq-*GZj9*P6Kyq^bq3+%qOKL2 zJj#V{#$zNOJaw7ahqK6JePdX_whM%3vX=o6R8Omxgl)|kGFW?td^+^U(z`?JHLxO_ zZ+{wEF;q+umX*zen4igU8?x)mr?R4ZTHJ}3wsMw;kgdqb$)tEDa;bbEi`$$%-It7a zT4ICeFhE^3?#m|7Q$5q&D&dR dy}2 zP#A2c>j(08RSxt&`KX-YHlB_SwRZ$i3xC6D4#NqKDWEl*)YytukEEF=s_n!YClMXQ z8l?;^ B$WDQL&Y+!YyFt>R9vM&@%MZh6XZSE$6STjO7T& z4&Z9pFK#oV;evHEiv440J@AJ*2V^lM1cTJsyUZ|$2Zvi#nRWrRm~x0LFadoXvws^N z!%=7&{?s`Y3jhPc=Hk)ic6g$8A!M7|^-^Gn<{cOaq;1~@3!1GJI}U?lRHq%&7(CP{ zID&E;Ryu&;X`dBd*EDbxJ%588*mr9Dp2`vd!|^i$x?DFN3xCS$2ktJ9(OE2bQR z^3>iBeOsGPx8lH??bnQeuA9H(iho~*57kas#6f3~H9+HA)TUrDh^2)Z-?Y#I4qp2E zU2B_tfWUqtRat}x<^qhlkH 79pZO_f4Ly;|(Vj&0~+A%*M$Q>KZ z=1_B3-hy@SIvrVi!Cfp@ZaIwAm3sQ^PyUOjL;dtb%8KmDsvKVb&vey>J2}NY19&`_ zeBl}93%4F&x$yJ9NV9MMqJO*Fc5|uPiFk9l#tzUOf!5vdnsI%gr0CkV!b9Rt=K4@> zAGB BJkD50N9A6){8_Q(DG&udi(^jA3?{_k&X|4jOV z7Qb!UAQX(4_4tD;Ab(ubt%Yr%zqa`!*;VvjYWYvC -BG*i{Y; zTc??q^(pUZIUFMYbnzH=Fr@YID#%DG5)0UhGFPkW&kOwL;}5oeZTL^OGdddw67RG@ zLtt*4x&sMidbSQErZ| zKz9@x2i=dqMMMv=-$JT0EKX*J!XT?nS;)Er2!qTGgMUUsZZq|c6@>`E4_v3&Ap)@8 zWghw%njLZ2au!UM*vD{W;%KDTFhTM$WVqn(7&l00HbDl+C%gp>W;M+> zTJtxEJ_BO?zlk5sbYgV(7dQm#^)GOU{x0yl#>>d) zJ>+G0#D9+Rn;6~)@^)vj&|Tem)Iff213Z*ry-OpMhkKVmDEIa*fw->#-LYMQ#rA5K zun}F__fYeC-=j`LeJ}Gz+!}}#0=k!8V<9Fk*D#2Qg*6P~9Q_)m;h%fjRV1e&;Bcz} z1k$}YSde?DFO6KQidY@5_ZKezO*7Go*`Sdxoqula3E7dJouC1O)ubVN+M6xYm@YP2 zq%mK7&%Z3xB8G43I}=BAjO73_W&8)SH_|_Uz+%_ahmcqqqomIdfgn}Vvo!QmKzLU1 z77XU@HTYu+$T&|bd`nnF9s$+m<$a7$aKrflc>tKS&z>~ 0)horohW(}R%zyI zvwxu-NEONhsZ#y0n5yT>LUx%;>%w=NVhC#(L&;0cA}Dp~>QRgWrxk#? VxEYBWsWdVpOz6buHUrx#BY1pzTRIe!uWNbU_Mdv)# WZ_&m7WEA zJB~}A-O(%-J-dUrEO&NC8}w (h)(XEq1J}!~x}F zUtwbz9W@PvMPGRQCeInfM)FzN?g8t&rri-*#&r5xaW1-;B`PUu2v)Mib710_&VS%J zinm@-;emtg%&{%F2^KvxxPg#LSYSUyfbMk3X< >B1ld zh~?e}a%c}@xy^$k%ro6(G8!uCvcV38CNMqg7YI$)B?UtpNLhtKQwLpyLem9SkZ6<5 zZsuggg+>`!dEqCKys{{%S)^}^wSOr^a*->(aw$AA#QHh+XYlRwM)t<(0$vaZ@8PX* z 1`gCjzykv_!pPgW Y&J>ks7Uu#=O=zo>YNVl6~ z^uR&y{@{a PqB)6ArT0Cwq8MU!( z7h9Vn;CM=G4~gR$$DzDXn qkxI>WoGSI&M<-h)S zw(HCNVaRrSq}O;J2;t2t`CL4BgViq`xXK8bC`8A;LLn>Uf)iHDie|44;x@(3Y-N{m z&fqe8@|@*-bkD#gj}0RaG#lDS+JH(Qci_#-MNYN`EOzo0fMVY?EPtHxE}m_VCK%r2 zX5kNeG{K0h_h^m1M{VsrT66C~+xu=Vf%ObMl_1ctSc~LgY&po~uaH7%Gh8@m(?Os( z*Bw%xm?r>~S5VQD0ScrIxWIxvmlp~U97Mi!d^9_d9Rn2lP&NgmxVEne m4RS7E) zSi7MK%5#pPqX_VaekNT`7^G?sJ^yCfr3FYPNKbH_@p)(e7=J@q+HLs>QTZ1bLPwb= z2vH*81WD~pHpE$|oB{3nRxHqM`>k1>ldCu8XHKvFRs4O;2Nyr5?=Fu|&!V}&T!|4) zMqg;Yq4scy%03>-%_z nXC>G1`~Q9Lf87w7PObnbudH$iK++4Z@aaK1e|m-ez5yKUNrm#|B5V zT*QhadVp*W{#Q{BYA|s@;ik(rv~9lZx-M?yr(bo3 R|w&M!C$WujqV~843YsW;n)_eP_QlGE06rYG~GDB*}*Il#|jqlzzVtuMpVxQ z1Y9{6(Rix4U|=ie9eJYvBNkP|DdsE^M==-iz<-Ll2u4)QGaxM{3b^_&qVd%K7z0gz zP;Kkx>1K}q0qklLXPVNq7hF)0TVPbS$7ac)i~M5D@ucfb2zTSd!{%(YyLe%=;KJqk z064tM2KS}PWHA!=zsC}uFyq#bMObbIM#iB kvl;)| z%jR*0nlhbYQ$r7Cjbt>;ww5Y_UZZH*TC(-%-5LR_rEN#lP5?OS=r)!%gZZ5fM!8cv zY4FxLO9r% YC>5nncG++620DV`2%wuVDk$EM~I-4Uw7@_M7-#}jm1knxeD3L@D zZ7a5}1(dvRhZa!W)U0}m;9!uzG8bO6J)ku4nzEfdzE9LS_MnEPq+>L~q+KY&_4o}% zwptoeP7xlI)V^%QhV{E~fBC#1Yk$#Z2`@`=E}1S{2)HiqNUT+E%T{>PPPN7iNj!Zi z2Q1m`?q4XPO;df=axHRv# iG{W5qk#yRxtx)TWH#rJ;D5~LoOEb2 zI)?#oPVb;Vn$ xgKd9tRmlc9vV{?+ z1_R<_Hqg48wzBXSJW2ay${YBJY ?&Rsnetr zuw1iLqPaZ#45GPg)2_l?qJMS1&|I`*n$Q^F=A|6qv{p#N(OfARSj(hLL`{?O!L?0F z#nU(`9#iXh4-4liwJ@hZ(+U9eHBLh9!b&UA#vziORGY|XTk_2lkR~WW7E=|*B6WTq zP@<$*{EIaEHtWc~Y{<0s7EnHYl4U#4VjsBA0p}`q%fTSa8+UWVcYkZ4e~+|(Wpsd+ z3)`;Z(X$=7aJHqROxhICA}wYl>;yMPGj(<{jY`@rWe#lzD-ztL%rdp#LJ@7U2dA54 zR+TxVcQM)Z#z>x?_S_oCZVQ^cQdW}}X0rXpmei&9xHLYNS8WcE)m36Y%6o2+fAwVA zj`C8czY_hv%$uics(-d^0up5&LD&f08*~?z^7t5D9OMBmRvfdADEhf9HaB#&mkckp zr$(E(+X|KYAe(H>WiGg_#=3#B04WUK29#J*6j|RsGhngcuj*KAmeb9R;f!V9PhJ(^ zWl34!?@CD(uPUE43s&xdlENU?vzE(M3sxwg*H!|dHT763=zj})D67gKhA@)#+>_2% zmbkZ@&sMw;lPni*ge9vBf8!rb4sJY^Z79^#MqR~=U5>}i{lZC7Ta_GSa*v zK|GPFl&fNMQdL637$lGYDVx1veT O3!Iu`k&A^C$e_!#QUrc4}?P(Hi{z&o^h z1c;1N^#MTI=6_$~-eg+UAF6LVe3YVm!Uv(;6X2ti&G3uP F`+*=sun0SW4ZI9?wH1%LLj_Jogg%6co2KV7ylWS%d( z=l{E#cRPQ7z 0%BH2;v!kpy-eru07(}gGTOBU9g&sH$%bGgc5TlsJR3V$v0Mi# z-aYc+VSmB0vEe^L$`+H0@J-PRo{$1rexTCN!AYe36Zg` 9P$6 zKVMdphV0Fy>dP&qU)>!@Pm6D~Zu{473*!6z$$3CGB!l$6JzQJp#T!PgCa*SbG zLtg4{kX$Pwu;N*=@XpJ$Qq`q1~`@cYs8*r*0^9ui$q&%&Z9s|pH? zYJWLh5%@r{6his1agKK|fL48f0EpxM1_Mm*vyF{5P&OD3CgjDYV+nQfr+z5&%2az- z0H%^Hb9r7+&PhElRP$wnATYm#!r=p Gm^;SI)UVv~65W;Xz z5W|}92{>}p@DAE9f#L9a_ID720fxc}X5kJQGY2rl5a0wMphJli5S*gp_dTbG*hUZ{ zN;riIY6juLhIP`4-BUIoSl}CsEB-uxcBWZsKPd72xAKJ+xAcMb)MlE)A6OauXMZu9 zwq1b(h^y5p#v`x41;(%1{dVDjx@aTYr7yZsUw&=(zm;3D>{_m&z^i7gv#M+;lk1rH z12zVZ(FLfdq>w-x?d&AG9mwWfu!~?u=_88RVJMqD18V8t>A)rb*r`$<03A6Nc$K$x z*EX~nvaY8O PJhE(>4m2J$4r7jyjc$MQ`W 8s_0ml-FXBv6$xc$Gu6YRq1I{2S5kM4x zAd|9rsLwcUHuH1!CCB&n3)}&}B7k5#WHR9Hd#&yF`}W^xJuRQ-Ya}(i(0>cC6OiX? zxOCk1q28DI=cUm1_dM(7#eHgudDLA~pkf_xVJ--boixH` QTu!fM& zgGZWXHlTVgC^-Y21x~!iaX1o`iP>_JgM}DX3dWl)H#yj>%FS1s1RB@|=ey4HfX-V~ z0BzP3oE5Ak>si5OR!$5{=6}J1Q$=KExLG6olr`17XtSxuMlCaUh_jVG3bYqCUJpm> zvZ9 tmPiZhSzOV>!Xda%JO3-228M9x z&{@P`B=7>qhUANK -vr5Gm5mb|Ar8wGqKmq$o7poMQJ2kLPO((xGWg}v z{Vhcmmsw{`dI7v_>Pwbma4eV$`zBjt1SWtN&IQ48436b;;oUYX%Gt93QI}1BMzLJN zyx({GX8tCE!7ixx$A6l=p)jk~0J@;g*L7QT#Ur__I^w-ke>ncK1#?KYT(aF1n~LO1 zC7Oo5Y?A3z%O%(?e_vzPbOO+2lLt)D{9ae{H%0<@xe30)aD)UpI|j#c#q-yyU9?6I z@R!Y#A=%NAO)%BXD(DHc2*!u3%1iHIFD-1)vZM%mS+OH(H-Fh9`MKxv6#|WF0!Q3J z<-u&+DD?6~o51CzC?dA%vsCVA=nLkH&Xai`j5wHL`Md~TP4rOgiuIS0+!v(GJr!LE z>8a*w$ZPzazptC^dqH9^LnDqj@X#W3D9u`|RW8WE2PrE&X0qCnwiVCixf}RHd7p}W z6LQpj8V@^-y?;a@V91M=F$I3vQl=8YE^1#j7i9wDOZnX@WO@H^HZVR!$#xCdt;)Lo zvfmw*@`#ZPnrY0#Rlu7KU@SyDSi2}AO~_TizTDwNm|1Xmzoo4a+i;(q?>E`z&E0G; z o6tYt5EC{1s+-7zv_fjomU9*Em#&(`aDA7F1>g$~4Ab=hWCTsZSlk#Y&l z*>%O&>g9v%v%&J=->jH{g)|1Tl}5*BhMYa0X2+v_F6%oELxszCtA@1ozFB)ugz14j z^?wi;j(>FUTU!_Pc1tIT{+p*Jz8Iq8FkE;|zRkr#gJjLy`pGvHoWysO%o&qh6<>?$ zcuZ$&|7y%3e9NXA-nf Zp`WO$WHgBorOo z@hBH+AYY(yJVJxjw^T1s&v_I15|y1(!^0&+jDPIgV`Qb^gjgSykTy0)<%5>ysD%CK zd~wEO_Y{ov_}vBLJ$9eLSdZUvaNYpJF|#r4cdM4pef^eO=3zW$pM_*OB|C2ODp?my z*KNK2l7r!ykF?$KUuryngP+KrAAVoKwU!m1ea}VlwR;VI-g!L_=bh4vaBwQ?w*L9{ z>VM-d;Gy&ZehlzgR<*_IZnJ`Q)SxEkK&myIjz0$5-A24wxf};Z<`^{9BWXIcdvr(p z{xANP<#4inQ!YuvZQHcnv;U3wLwNAdg7^(tZNKhl&U{(63@{#=DT~wWn!2lL$zGhO z-vC^g=D8$`vm7I5@Mz$ws*jdM+xn5L?tilN7krqvU9=i8E>bSq>R?$oM(@+^@1VXy zlf7tbEqE4gt%0WF$Ilm{=-}y`dbe!0e5J$J?U9B%jO%_0E@W7Vk*8-Q>p{i;Jp)+w zzkBe?{{L8Pi;m 1DaDYl9Otl6eDEU&QyZKmVbFdfY=@WRY|Hj;O>jEoCSx?Z8uGk&j{B+%RCF- z{`cRXSH%|IMW4H+lh2@T^Okh&oRD&1oXiF*I+0zG&yM*>nl{7&WFRcOOuovCW+h(O zIT*C5_d9-QtXYiHn2)Ica}7C&OXmPuGv?stbMN5bAc7rYMasjx(9gwV-8fjry@4hXfDAp zc9t;=voMT?hKuz~kX`e-n5U30Q*t=!4jysJ$`!VeGxY)-x-GUvnSTY@ UcI5U= yx?nL5OjX%T(Nn%0J>t!aej0n zY!uE9eJ`#2&5vDjOMLSq@3@J%;1**N3$v=UEQi< 9F=jRqTEjcYFQfz=MTV@3EJ^<2iGUUF1*l)B?7e)! zd%03~5=HK4#dfb!j{ksZ+G9bUc6BkSTh;XlPynAwj*YGIzH)d} znGoFKxn@dUWq-RJU&*p>ySTUyAZ6EG==80u|GtNHwOvVPL?N%*9$BH)cdO@m@7Y5- zwob2BmnWvt>(v!GF_qpx#x*CV)c33Ifjpm>Qa_xcQa@t$wWPd1F~$D4+CIOuTEepD zwr|2;u+QJr&) 6wd3 zr4#6g&1$_mO|@R1rdn@acI;wS>iZWSz?ilA;l<~CX1z{hGGo^5k0-3#pH5_~W!COr zUwFV})PD-Q?$gui)#~X4wR-*1BUH0mZ%$LK?~glr{tNZGP&ayyuu83Qvb6B+yB}%L z7pWPH{T}>}E4-X~uU73-vEBOLV|Y0gU#~XB38&y2RIfT&{k~si+mlu9hgDvma@qTF zl{KeZ^!`ZOmi%P3`xD%QKHYlpud8;;Z{nPyet&cT`AEK=tah*l)a={tr4`hUpuO-I zK uU>u#FO+$8O3J)GC1u{6k}}_)k}^M>k}^M@k}`B;TIHvrjDBn4 zL>j+dsZ$w*jTJkc<#~g0Co(V_D|RXaw6SI %a+lj0I z8g)CJG3Qvf6B>4ol{=M@=UB578hnnGJC*ULy!!w0tr@Cv8e7~_n^z~L&FhoW=FLfI z^ZiL_^TSDLa}t}|C$dFxI{Oo+vpI1(I}@j~Epa+~5~s5vaXPyZr?VAtdixNkxqk^^ z-hntZtxjVac%u6br?}~GqB{;Jx!rI&Yx*a(pnp=U`6soMe^TrCC$)%wQY-i;wS3>N z-JinXj4Sh})tlyIlsT=z;;C*Sob3L=$!;E;?#{u9ZX2BLp24YZ7@W#(f!HcIg@#IO z6r4iaB(@1op*a$p1Sin~i9LesM1QjAMA{j#JuqL>@J-vvc<2Tb@YQeEHhe?9N73H`}FojuxR~L +q-}7F7{v7M^p+99fjm<>1Jcdw{X!= z=vFJZti4(-ROS^Xcv^RL#DrYK%d0DB9II?gmXBXfXgO>|1v^e0mu#*s=!gU6vI|ya zg<;9cJfvB^I*%BauFxvsaVnb1c$})HG9It8sjN#@x7%#9 p(~CoFnPjHCh>muQYdX_srBgEd&H^oA&~)QBvEd)cldM1$oU_7E)= zX(J89 Ob=NLi&U!}X|_e%ig(bL%{U;XO$6!4ae0qbFpt;( zF2As8AZ;J&C$VM*3xDj#VTEnNnzpcFlzarnWtQp$O3)Uf3>>nF*aw#DSAip-0Zkl! z=y>OFlDN^$VSF(|iNl!U2M&kvu^A_LuO72 H>6v- zeo>0$;}SdvJdh!3Y l;s_OX!hiVeP_8K}EQfMV7%9z3 z$=|!4lX+clw;{tN3>Pp`V&Pyfpdw}9St|uQ6f}0;IEf;-^_hYmaR_M&eAMxyDFpEc zj}B#tIdU|atEIE&b+_V;%W`C)P4X1%s$SLit9F0auBqmvX&2&&JJ2+Rp~;?BMcmkS z63vvk{xqVf<9|z2DDdD?wqP8hPDV{8sH;_1?-q L?!&ai=F#}hhCIX)=SNA6Em`$LFUS68OF=>Hk0?#s)F5>vW zMBt?rU# Z;w$I|&nj3r)a!__-%v5_$fKmw$v_V$vnS7n^Vy85Wpq={yTg zv?S5YO@qW;Wa1;ymz(tT6bnvx6p}S59vzRSPlsM&lB0t!F#qTY7Mpu06ji=V$}cye z={dTr>0k+COWHQukOe5>H=x5AW*v@mym^P>D(KlV#c(hLUj~1v@wdQVa_lWQ=I^8C zA9JgqOMfc7z*t*@Ut*kn-_%vN6Rnhc6Ges%*huNa;`i#Q$#y%|q~GtWH7xX4l^*c; z2)N%$Uge*M;DMC85W@g8SU`GUu%GFF@2akO4xH5V*ukK&6PrmC!IPUQ=uxwfDFpE| zkwaNxW+RiiV(ytwCYdtrnL-xYN>9O#oBm8;h<_U2PbP>N<4+=qALmb@i66_xv4o9h z<1qurv=f2PmP__Y%gYleqKCH=I3^8oC-BVP9z~3D<1rUhcabu4&=A+hqM8wL59N5s zfYF=?$ B#2npn#d5f>@<-heuZWRqJNkb znnUQOtei~b3vII|!pE(gOeC4Gax#@^%F4+^uBbJQLpVa$G!Eg2S<{%x6ThZ0nJIov zV ?BPNGg|x#I}p=ewc!Gq&LiwBF0M+sn48%eSVBw4)p}$c}3y;M}dUfQ`2z zc?d(4(a2Du(1~*#UW{?sNaXqZmnnv0BeCPm#72V8T?^wEBO;L}EI>puELSlPHRkH$ zkq6M-( zzueVc#*oYwhhsSALF&q8ZMvE`Pba`t@pc z@%i2P?Yq_WyU$mbH#e7`ehJBr8Tmh6-rOFaef>bzU+9#5{iXF5?-}TF(soV#+!G!l zits2Wzw{pZDCc~{$7S5_@~k6AO (1N6Kp=11f`5U|uP;B-zn|-UKnKyo zhT(~?ztCg|Nq_)+p2i&bFooqA+kmw%C9F4L)v$aW {<9}SRh#DxNpx|S`>M^8wiwZ0}F5LZ%DV8ZH7M>-`iH&l(Vq#-FN>c{p z3m24Q6p|wskmDAP7bzHGae2YQF{W6ifLM6Wj+%N)7Ze-g3l$dZ=+<@Bk*Zr@IAkFt zUyJ3~7Vc9`BumzZBloLz(xvOfi}kHy>tVq{Gp1Ok$bVRP&W@UTOBWX#;}HwX!flL+ zWXS?^ HM3R7|OeS$wJ-I|M_O?=XW=^=j@(=tIjFtF|cRrvY@l_ z6@v~)kf}Vl)(so-Ic=Yd(x2&5iMH9-x5fSal5uHC_v>!42y`TC-qugmf&?wia5ONx zEC=m_$ =Qw_QgIGG_Q%uW(NqqP(XG|0>0^W&Q&qLZ0M#4Qnt4tr_3WwRa+$A;V< zp3HE(lxp|)_r=%Q@Gs~fE?d(wHD~P}g3e#NM+{5UZUf1zwR?oWY!c003q}kxm(6!y zi+^s;VyWQGUm{iTB?_aCKWjNup%+V&*-M`aK6AnQKq}H?B}WfhrkRS%54eqc59e?) zhz(9S%vpUDy!oq-3cf`3(eY=kJ}UH5<1>|G*`b-rv{(+$-WaIhM@gEQTO6@3GG~1q zV9sA>hXhO1+cC$ib$1BARQ( GYuIufb^;yB2zb>ob zOVnc>f7UvzLNAskvzKxeeCC2Dj@!&x_y(Bs7r-IG5`}QgF>65_!Y|dC40)FAOonWW z=KAc_Y)EjlWSY57%U#&nC#6PYVRq;)TYn){-Yy#t<-YJru_m`5VcZUpgQz3h9e>zM z^cqxG13GtJw18Qj_bUQH&_W`fLnCvTk#NurdA$2t-aRe9jYPk7L>2-K5DH7l9yA#? z23Owb28Z+A&Q&{&G?DnU`?}BeWfx@r`C!5uPO?~xfPkGA+U@*1(eu!O>*|4Ix!WZ~*`#YR> z!K$eGb+zIy9QP0kgEU2kMGy)6UJfEdX;sjKA`{Bu`lr z($4jP1CmY&{HZB6MRmEm(#YH;Z^$))B ~g^JKJVoXeobW zXZT9+n~mCkgii? 7`rll*3&bDNA`4!JQFIQ=L{NrSg!gsVxQaBgLD!#}u zdlo6Ui)M|=vo1+iEtWis=eWwXKu)v$>)A89hn>Io8elKgbq#42>bHh8%XEKQ3d@r9 zPN7-4UMN(vRtx{agBCJqQpG~zk}=HRLu!M2c5XsF+gIv(YQAbnyQ`~~geLtI%BBo@ zfh(GV_H$K5%D1?=K6{#t&~eY;%Tv~PF2Bye H_av z3VY0RMr4T37U>?dvdCB2dQE@YcD3D?T_Mbpem8rGh}Gcr@){hifijXWUYg$G?b_u^ zQ;)x7b2Z|^a#K`l$vG0~aVd{qI#u$;OD8m|%au)m{sO7kQ!k!|S6P*97Odet{tKj| zO1^kXUhj81vS4}a@t1Ea6|Up8l?v(ci;7CVcu`?1UCR}f9)J0wqHup5uc!=3k4t&{ z(y5X!RXX{q+;8M=_Gyp~eU`C3tp1hch2wH|r0g27uG!@8c+p&o;&MDnFo1kKwxt@g z0geCI&!G(bL9U}ETvONE #rd%G_^2uz#D+sT{-upLMK}wM?$Vy$bdn|SAwos^dZAB#o|^BxDc7Z zBF=-yZTp*Or}E(eBsPZ(Dpj*`w|lnjPxC#rxXsEh?tDiT_`@~uS~-}Risf r;uk?MTol(|h5lzO78n6Y3 z<8yDbud8amU6n=kLg{}%gLQ}oF() kHO7 z?L7aH8avW7b<|Xw2}De@xj e=^jYAi`mko!6PDr!TXbM zamBRfiY7T^5%*Bq=zW4i2=xKa5eN^cY0 0jJ?l z9dS)$J4zv0XB8bzWcjMAcf~rY*^lF?%M$OC08P6b4`dPiSivc^P0bF3E=;vt(iL!a zGor)9@DV*G3(qej;6c&27Es}vLUc&Sc_{S(ty3`d7V2@#_>BofWFQydv753%qEb%d znl^tdn94h46XI~LW5+Rm{CYUoapO2;DtS29k>V(yu8AC%97uGg-DjLVa%`><)1GmO zhz3naFhg@w8Z?b_8rhV!t;w`g8nhY6rf=lTLH;rcd`PE%0DXL8J_Ff{ BzPR}qk}1mr6- F zVMOOuF8%ILA=ol>`lp1?0h8~}{^Umf*Er;VRgnMHgZx7zbozq|e)fYC{?&Ki#lXL! z1m8*cS7+ayedmFH6$}4LgMa0Le;t1d|5}58?S_99nK-Ys#ChdQoL8@6;a_R+p2T?_ zsr_qB``140U%!flf2F~Dw0{$+{TogDHy-U@$CdlnTDgDiE%&eE%KdAt+`smg``51` zwST2)?<<(EUq`~f*5G|5=k=RN_%|B7FKge#W$ha+Yu|XY_RXtE_*WYID=&Zit62C~ z8oayYym=j|{cBBoU)Fvfm-gRlY5%=9?coX4l M|!)T4vAnzDs}Mp`bjKFPo GrHLS537F^YVh0sw-FkjFAo7_ z0e^-6?LeW+n6Df_v`Y&Cfnc;hvqA8FE)0kVmffQbG^gXpO`Wz~R^?ffr)>A6D;`M- z>zrS*bsfl U zm%wpG3o=`~MkjwNl`2vxUIs9xf`QrzGEFTpxAg2On3NfdidpG+r=hNBYp}2PZ3;7% zP1DbMh6!#8DAHZ{B`U}_7ngr<^N6hj?o;$W>AJAQ*Q$mCX$b{4`y#isWARFIG)s0c zU!m$-a<|`Xph%6gN&2yzk)I=3+yP5lyi}8tuNnT`w@`nWcDcFb(y?9A=Lz#lxL1N+ z3H37Sv3?*~m$natbZLDL2)liLmpV7T2Fi>fQXS)>50KRNpvt!pAXyJK$~47tEu}pw z^nu-}F2kj~o<@O7p}rLG%55Zr44`c-m3z$SH0iD+LCI+ndneoy>1LrM>pcuH((Zwd zn)giuEg^qc> 37hCg=8pW_J)!Pq z`l3aQmg-sWD{Q9GY#EeK+Fb;th9Bf33y~-x5@sEZmU0NuD|esm%P!?R!|Ba))n#9e zO^7L=Xiv~jY%eFw&rQL~JoDkTEp2=9aSB-JZ7_dst$6jIfH_HTy62J@B0UboA}l*j zNNaSr!$L&w%543`7%vM0m%#ts&^Y`}soF4HvW@y}EF<9yJeAZtc(~zfD)m4Xlk#mK z@i50H>fnGG7M@Ve ba3{otZbMm QuXxCQ5gIwz{L(B`_S?~BqrK9zo~d6l0d zSsb5MS^50C(h*ZHb1l )=|1v%B?EtqM~CRtd?779VZj5e3lc6Muz@iSK4s@ z3jAXj)ze-&$h6Y%P}g6kq_igYGyMokWBcx~g~qT;Yy{qBf1@1*Z1LUGx%R$^i;O|~ z3Y-$^ln5s`Kb@U!_jIP_+aj@PV3L2oVvb2;*g7$4QPXy }BwknVRWAFvqO)o~!!uyXfgzZ0XK1fFghu67v2VdPNq(-)6~4jrre zVw0vRXjtH=psY90{I_Y=rft1%)&%C$cpJwQV~dI=mLQJvUM^vBNt#H>L`Z)o8O;Ec zgt IGmT2yU8M|7^CrY&-QG+e8YO&)|uScu{9)T}P;=4VsZhxK`1 zO;@z-T{&I~CDFNjXH(RN6 BU yi8fVfSb58pepoRo$>xH@C+vPAd=K*B92LWRA!wklgt$EQLprDRp(hx$h1G6-Q zO+`p&oXYLnjyCWDFx^8q`wVxiV*t=+79?Ro5~(}{(I>$+Euk2RoWbJM?u(8@YG?rw z+CdQ%nTtgcy=|Jw=-Gc(8pe8PA|Z8C6-ecsFl^{}YU8EFb^^Z>?pKj7m}z1@h%G74 zLKe`fcWX*+WOW=@F(~ZCVe1dWoI|zs(=9_4pPB-JV1g7~ a?g}2Dnh%ldc{PF%7ERgDn;~ `Zu9}J<#m9eY$=i>o0J&8dl-9q}h--LOTqo!F>NE5#D&N3B5hq zL0K=lI90gJhF6uM^Kfj+x*}NHcKh}LHD@1X8At2_0&UR$U+^acz(imlW$Dooj=sey zgA#xaKRoDdN9#w6%I3xWz0}-xfXqtj0@`2 5EH0bL z^5JPpA*bYs6n7Ns%6cxvsDTyXnt8CHEKawWhf|wwJU*t~b57$pxdV&=y=Gzc;dg>z z6CO5Md%H(vMPn0Fum^I=!p8?^A*X-$aQ5h-uB}5^BjHf+R{y4y+a0acRo8xdE}o#( z#ylf$HsF5|UnT&Yu&Q8+re?T4xDR*N)H~921uT$Y&lJOA5x$nrFxB;G@KiTAXT}kE zqylEy- `LvRv1vQldVQpML90{m60DUI ^LClVyZ}B2t6`I8t1dD$FTc;hinLQT z5DPwv#X%qG`0%}lj0$iPJYH`Be|pHe6t5MEZOC*@r{6`|W{+UI0OsQHH8T$NHyS!& zw;cI~W _Su;Zgu$ zJ6muD=NX2vu<*(v$9CQul9l)~-DTaw6#b^qysfK${^P&sJeYKBCJ1scoQ753UXFi; zX%i4l@L(E<2FJVuTfk|?v_RdEzAU~FTH~J6-E;Rq6*Zla3ypOQg@`fABv~S5Skyp< zR_*8H8f6lG^3EGow5yS=@p#3=0ycuU>>Yv&TUl(2jvbj{Lt5HeWsc6#u8s}qWABcG z;tS>;qFhzuV#vPYN1oF=(mfHvPfUN`84r5}Xc`3jOPy$e5*~;Zdlo1p4sCW%9KF0< zOD=eWe?pk_syl&k0B|d+w6##Pvyh>E#UQlaU9e-6&enM-uXGyBE4<$@sbU2?Ohu9x zbfDNDT!p?Fc96* P3Br0TML;ZcCq$N6gMPQ2pq3%Bb$7rplnr)YgB>sMHJ% zmO;hHT4>ZPvLZ_9)>#AlU~1LtU0uNX;S}sGNyRoKeW^d7wZrtsP~JnV-w6+&UM!_{ zdLo4DGZJ^D3!Dh6#3uhZp@nyEPPk$_^WzYBkh83xa06XFO$d9K`NMT`9Y~T# sR9I`#W#yL%DKrwhr4EoPYfq~1dss^T zu3bYVoz)`DFLU)JLtJ<_Y5?|8#ID5OYG&OaGWJf0zc5d%%G}eND%wg^q%vk%Z4Jvp zFS<5s2dzE=tn`Iu7~X$QtDqL;wYP;85eox5%k`_gh+ mtQd1#tL3g07eO0IfRwa#484 z79#>7@zF4z7=X6~EQrRz_cAx)mx}@(_hDCou+s?V83^9e&qRNIIvHt-PGi&s;T8v$ zXg_1UqJ0cDh44Q2a~DSoHp7H;%A^_MH-EquRA7Gd2bU695!bYPj-X~1-cSgCp25!m znw;dW9bFp{7h_cHBZ#cbo+ogDl%S%&1DNOxvy3J}A;tqg189osfiy+euGoMwl21tE zXq6LdhyfZvNnd}#D@9p+CSon&vW#6p8*+2IHKen5TYV7GZE?#rq-$+pI33QVnK?Le z$ vU zJeC_ab*+~Y&s5h>eZ%3Ob{SQ$;z*V7L^cf}6J~9imMJPeSJ}2$M<>cq>@9QfC&@rC zO;hr<=%(^=VZkodNt1WrVbcPna10}W0_n$c@0fo}UlMJU5A{>8b++#ISy?`(uo4r< z?Ev_>e(Iwxyb|!TX~XVA(01s4U-CKJGdJQEniWn6cDaIi@@eQZw*%My*{0Mk+qZ 7yrrJbwWl$mHU_S}Xmkzp> zB*TBJ p6#+;(Ieo32Bt8~paB=+i@;7IdCWOQE#J8dc340KYxdNzo?UOHGe| z8>qv7T1 FaouXQ6VIQ&D_3@-OSb;7U3a4 ze44XKHd_p;%LytB0obB3TSuzP5Ea0f{ULveFp&R^+*$H`VBgj@l^6yy+TV2o8_cKL z<7K29i@W&WJ@NxJ<_HOIVK$F_nE<$%wjRu+um;x$_u-b=zQW~Oc1u5o!zlVuIASA4 z+}uSa dgukVTd#v#hqeW-e>*>!F#mfv2bd@Ov!E3jclGY#oY97!lNj zb|oGdG${g}LJ|J3;LulJMu6+kSP u5RKD z>C&vZE4qfJeMI4R$xAgpkS>v)t{NcFAYI!iekQ>gv4pp7iiYe+CSN~jVdH L*q)dYKWVRyS~C1HF^p+oKb+n9Ph~i1sB; zCnG|y6SKc8y_2oI)(S*^84s^xiF5m`Es0Xh4%2JLFZkhIE^+!F!?;y^CT&$i9&C4U z)#(|oJ4;Ea$6rbN?Jsr0oXvmKSi5Ld-0abYtC+tBmu;8)C01+cC+7I}BCU@lgUgIT zOdo*S3rD@fYaCz5b4qh(9Yi;j>A#bI{^S1xr+@zAzr1w8P4-YmrvoPsT^m8ua(GKY zZAiCos`N1{_k^F3j4CZI`OoN=Fh6#{(p_43Z%NXaXpV$#xkK{F6>)#1(-x06MX;%2 zw|yVao$QP?_KwivgpM)BQn$h-;Vw41uU#O+SFnio)zY3ocGAv$#oC3ZENtk R zTn9N7MlC$JC;Y>T9t_)#lL+3=xz3uF*jB~*04$Lefr43 zcIb)&UE_mqHgY$JSo-Td6Y1&Ht5B`2PEyK(Am_>4#%F*!bjXtJ&`E+OfnK$eofQDa?#^EU>OeppkX%E6Z&w9@@>FL#q9T1cmPNPycE4E*? ziqA=*CqF{i7czguP5J&=k1JH?=L}`|v-6AFPoGyex97iHyjxwIfBbm<)5mu=v9alY z%^4SC-Lb~x{ja}VT%UiwdG~pGJmlHrIin##Lt=6B?)>w`&zHY^2#SPfR5? jD_0SbOteg@sZtJKCLk_d_ zh2ofSN0$c5LNgA!;ej5SPw*RY+dkT1N(BO{tJpA?gm6#{;5U27+Lw5+f`dEPFnJ 5WeWPg@U33u{w@8CY9`x>E{SP{hf z)PMUZV@s_n6jpVG#lUI#Ym^p71_Sezb$C>IV=xG7r`E;T!R>^7xybf+UA-&T5pnEA zZp1GKK}XgPV3noxoWLE?3 Xsg|Mdb-Nl=5Rm{^A-Agzsc zFc*IYhX3q%u<$rBQ(zTykTGL4H}iz_lWV6;Oh<9E;d*-%5tERzcK8VqQA9%Oa#_ 5{uHEZ+`zkg8dI|Z<1s|CV zQb7Dru|G;PZsV>2{aCN?acFUk`JrJVIE{Z;l8%V|8GKcZ+h9jaZDSEHvn!#VSIXDQ6tO>QR)0|S+%KKF#WwPT72HX zGcQy0ams(HlDFuICP{mL!=iyyh<1oY9$gDmDP9Tw0#5!qppCwR^VuM!jm}5K^@=s? zKW9~5TK8=9K&<7}-RzJ`$NQj=nBsq7pc#tBu=a109l&n|>EAVT=+tg(DcbS}AnA{R z1SVK(U%nNh7|1NH-}(j`ogUv*6CLsu31cW0CW+<)X24RjQw30qx`K7RrC(w^& z2mTz%vAN|V?AEZ$x>n_SsDZ#a|H4%TBLTOxgR!X!SAADV#zNdi52it7jZJ?r0Sh=v zmQRYg{BeSEUzVhw#y0SUzxo`n95l6QwxgrL2JeX3G*lUU81lhhI?Q5n*zETqEUJ0N zg_;UH?5EKvZiKhX8kj+*DPL*e@8yYpKEo@A5u6;)g~p_=F<_F4bqp3X(SkZPZ)4PI zJ^8L)Fs$-^)B~+g6kQ0AdMkgi%KI@DG;D4)2PVggGN*}%mjBrpGp39LVh!w>v0yN5 z;KN!&8LQqB*tBtX;)77Ua_Wu_R5qu&E9-iTcO1(43GdO0?y;_N4DRb>O=?5|pC=-0 z!ou?REukxpi_Tq53j)5flF@N1mY%wCn9Vn;ZUgy=yC>kziXFInRHA<|!=n~#LQHap z)d8b62KkT7De0X&I^a+qFIo9#07fND05}6+cezaCeuEkZ6{w+bT)}8N(A|Hyz(_q5 zzJYJ^Q5^&I(*tc2iZ(6a>>_*r7@ytg>NJP**Dy_orj11}PP0ht-)L~Sv|MyBXh}qH zIP0Cmac^8nkioTk%-4T%N@W`&C?Qx&q&QfRw6&1kfWedqLk_dFTnpL7X@Jc*ZL<|I z^qZiLfKv5h?}+u FpO@EYoM-NQ;0|=MMkbcxRPX2UZ_H0dH?r4VYlal zIi$pY@E;EJw%!J`cOwd2?1p|B+qVH3^lQqp#6v+E*hhU1=e2(#z}BI%q9Hvz+O+!} zGmFv0>7d8~Gk&7IBnO{15SmnYtO(lR$yTgrKb)26IU34p9<2kWQ8?aEp>uMM# Sv&SZ>|&SjJp z=VX#y0Qt7g_i%rGjE2vrC}5MnQrrU-Y4F7Y8CDo=bk1DI>bOvF*hH(b^i33ByK4R; zwL>*}iEGng*)crR^$U59<50w;cLJXwZ2SUIJRcYA8JUBfvt>0R<&VC^mNAQXY&}C5 zXOCy%MWem^haDR`5SbpK1iBRVHR8)o#pZIObKg9Xg1LV+81?M80AfqBhV$P%z+j+c z&=KdG `7I1s^y|4c(Qg(N3gDO0*d_mnh^>p2;X(INkq zd9lo5LdkzS^s?$AOel~ijuothL9#cwK%P8F%`B#I^?k D0#1x1JIpPY>WNQ=XxL1V+&taqNG9Uw=hc3pqqSkK)uMz`lFV<7Z)D zt@x&_@3L|gm3*qCtXixa`0(-5Pv;+3Hy58TuWxTG%vw_(#cY(+dH_?F66czX@aF9= z8Bd*L2*c6;mic*WCefBa+#thK{#@8pDHY8|( (#H7QW0b2Db*meQj!SZ@xqunj%A~8~xiu7Rl0j(^jvC zaU^D0y%L+~i%peTUx?wpybiMugEVgEJZ1$hN~f&?Y1CT*HHe)Hm!x$PM$w4C?l|aa z7=v$=)DwTqe4A}-2@hT@)#2Arh&}CBWG#Q+rwm#4l89ExbLP$_l;+hgL9VtW_i0C6 z5pB9ok$`HGb&pAud;@A*qVNY(9Qr$&U}CMyHX(W%gyfSpXppV5WEXW`XC2wp%`=bd za{!%5iuzt~H=Yd77DC@ hl$(|@F21m;^ARN6{Yf+iM2|ARPy1$m7i$O`>P zZ8r?qqSsWjnWG;lSJNp#S!a0o>Y=W`M5N-!7 zSnn8Aq1vZxH>Io( 1;XHd<)MEP5vos- z{!JE#(oaQMrUlyMulF4uFuQBWeT1G?gx}y5v`aAC56}3*K#qC*n@b(7yPlG7Rs{Xx zsX0e~BX{Zf^`)i%;J(866z&`(pWofwCe+mcV_Nvgc7-)AD!x&0xWZwl6&oM$NNzai zNGdRr?lFc&VHsUu7 U^R)Assp*|jEHcbXMcwuqBl{a(h_=NJ}e1Lxd2@AmQ`-qh> zw}xd=VS7hq>OELq#UYjd!Qp{|KA4ZpKRM_AI2<#-OsuIlDF=0-u*x3L2K5AvR_Ld? z?%;LsUHZPswnPpa&25q)G;5)x2UswzIs!*}MTh`OcH&q#3yAbyQ^^)ln^JDXSu}2P zUzu|#$Ao`ke?uwvUFUyVf^t)G;h)&wK+1L2 AN>-PSJJ@bA6up4|1IfU+ z|HPOvQFvw{G-mhv26t8IJT-S6TXEA4K;E
dcI zv=7W9xnUlO@CeniDRSSXR<~jbzz6! vw4h9X3|N^Z5_{Li{8?uPz3&Bn z8$sA@pSH*eUSEXGM-WT5bPz*(SUjl!)+SzSuC8b) ri5fGZ&i(!toU{R8DMb^rz`hv3Trl|tZL^CL zbbr%#VRWV0$thuYVOQ=qMb(PG5&DW(OUyv1D+?lC>`JbgSMm)H^X-3kYPzY*oK$7@ zT(|tM$#$RW_q6i)A7m4Re3>5&Jf)XvuH-9DfplR-1hh zo+)0ql)^#Qa3!x;K&1$2#Ln!AuYHO{Kr8mtu(wa8MK4}zg4t~HzcG*A9vCl|15H}j z6$9xn8|8L%n!gW&ZL(-IdAs9JI)%V0el8nU-ewt_tX_?~tS#0c&yUC8nGm>*8LEgK z;3x3uQ-XgTC;=a a@U%QEZ(yyNr4TnrF=#Y!0RhTWW z#(tIEsTyYFM2*;st0P5zzP BpL5xr7qEvCfaIJWV zgoQ}hRo&-uJY5kAij(ND+=`YNwrmK8aDipRgYixreXsAC@rNxNoicBWUK@DI>`7@6 zy;^^05&;e5w$6+DXEBr( 4 GWdR=?P|TJ^Fq?Jdw7n#cME@~_W|7~znMSNk-Irm#J2(PSbn%R?C}96 z#NHOb-#(V2>hMX5;?eOQl8@C4^6yLy#Z!A6$*ESeuU43tv8urSG81I%5~yeVDXZiK zxM3mYetdDBeT*d8XtgrkqBFqApia2D?n2>s(4W{}Bb;*Fhq8yD4kVOgLG;teQS5(0 zv3bbLYb#b++{dY_3w&f>4rMFoKmxI4*k7Qdu_3nm?G_$Rqy1ub2j|i7BpUV?rq|a^ zL_UZc<_~?V?l0eC=csIekY2G>s`Q%n8=uLV6r)L^KRmY}Cs)BTc4}vbi{&gx5HB|C z%8N9X^zdn-W1PbW7(ZbbmBX~i3#xzk;ff4l-tzBQb^0|)mb7r7Ic?P3nxLE;be`N) zE|pi4^;9v$J@o$vzVIGxm?Bj3dc!v;*g(0dOR}S#oxKJ1YUT$048D9HgpIrv-w4Io z!9_eNqFfbhrz>p({M`E_>YYQi(I|`c7rb%-oA%~0-5?BW9He6crvdDU+*W`6`U@Ok zsCNX781I{sJ=G1fh`XkKYVD=oKpqH)q6xl!O3)NC4aJ@ShuH}a6{a{2C{q5e%_L2A z1gRPvc*_#*?AHaIN|{qJN+_Z+dB;skNAXFS8~#IKVAED(F+(q2y72c<47-!6EpU3g zZ>&1?Kzi`=Uv4fF{$axAXR&{wD-M9}LyN=P&`1C8|87L?qwN7@0qybsO2^UL*FXFi zkp?4?|KtuxGe`^eBZULQj|F+M 3zf9nY3aO) zRQ6~Z6mY;utFr9%F?_57ef)~CD5ZUr(zZ{T7}cym2c?@p#c3rzXOO4ao_3DA{ccA( zXHoGe>VQ;K=Am%xriXv>DL;BV4);~v;{l7(PN?zgbGTPK8XuUH-0sV+5ck}-V3Pz= z16@ cIJA@y!hr9{Dwt;w&|&dfYuFuv4pb~Z3Rvb zZpOZ3&r`nF9#t5sI1D77kHV)b)#ns!;qiGJbhEzR;G!A}ySRU8foD(BWo7Yu|H$1q zQsaOkVq+gSfz~|o{nwIy?hQMHK6*QlY#({|C_MbSJrr jJS?D!e}A8YJ0{?2 zgyN5w@(qtPD{Ft=+)AEtq=rlmfPOC}K_6_Zoyru|nwg;%kE3?`oxNussbUkq )GU82IK#4(V#MaDDx& Xh4MOMH?0YCWI&dS6oHC2q7L|K!r?htRM))P@XHsNveH;dR zrMz7lpo&|5a0eZI<*ihcI@0 n`c(Y*;6V3x&(mqwm@$%$Q1@bkc0*4wfpqxCu8G7 z-T5mW>=O1*IA_BqOzRaO9BYgr)E& i(t3|gPR@V5uW-^w7ow5 zAdDNnu!fsCA`m|3LsO0i8f(`+c*$vyo134 i0k%(YgAhYgMN 9~uZ4uQ*I6}fg?yHRh!ale!R( Tu#FbuW4H(-0 z={bF;tW^w4pgE{m;Y!)-#$f7ehhdVt=kXGS1p{ZEh`@~0F@*H)*|T`!P{{`vtTAA` ztJouc=BlX&;Y%xkE!}Kz(sWXtip6Y_5{=9d=`o!P1g$33iS$ZHh*p?%Q#2U}+R}gF zf7O*`n+bhbBI3`1j50tR7_?GeUBL0@@3rGZVb2nW#>b2U16k^G5HP@Hfeo7fE~D*K zi3PJoAARAFhP!eM@l*+x{6(dfcQB!X8yN5-J^$_IMwouqa>*8qA5s48Mp}#(*PQJl z&`~|L((ttLlC_)AARny)zR*Oc3R!;#&u+n8-ZoMR69T>pm4F+(&V_DXMe6Fl*z6l( z%~_8cBl!#A5|YtuDPTuCEto!%*hJ7o-zpzIPF$KOEt?2#PEGVu`S5X;#hO$tiKG)! zAK70YNe#P^Z5Nx6QtT7#SGJuu0b4qj-|tdd6@(#~NJay|4V@G0cTkxU?&N>dq9f~v zs#s@bnv*Uo%GhX+2x``w7=?6X9h?mdpQa#W&4VMn`;9P6m(;5hiKUr@d&_f--fWPLGo6FluA* z?S<;~=dor#Wlc9a`)vv$E;@g(;FjKp2gO?t@GGq2QwRof!E{AVvKB`()oz_K5PuG< z#5ROWaL1v~FV`1|bayHfUQ;yb{O(8wmCd5`4NCjdrmdM7n9LQNV8f zzz=TKzGA2b6~&RdCB3}zqK;b{ODJ_orIYnJAHN!Qs6+G%OXsmN?(~1I^XGfZ0TxF{ z^-UxZ2@g2#gw&lsJx4rT?3cPTCe)Bbyllj@if0?hdn38OzxSjZgy7{9ep)baim=<2 z&u}$~I`}k~sJhfSd?XoCIhfGoK^xA&!=pU}R}4UhbPeworCI(6)5JW2#2^gb$pyG2 z-<)&DKll`AyM|O7e2{;vsOfa|d8#rFAXMyz`zP1jKU~Q+PL
96E0%Kkf6W?`|E-hTg Znk*u6Jp4QS