From fcf53b3c681a7e584cca5eb4f690dd5fc7121c51 Mon Sep 17 00:00:00 2001
From: Evennia docbuilder action
__unloggedin_look_command [l, look] (cmdset: UnloggedinCmdSet, help-category: General)
__unloggedin_look_command [look, l] (cmdset: UnloggedinCmdSet, help-category: General)
about [version] (cmdset: CharacterCmdSet, help-category: System)
access [groups, hierarchy] (cmdset: CharacterCmdSet, help-category: General)
accounts [listaccounts, account] (cmdset: CharacterCmdSet, help-category: System)
addcom [aliaschan, chanalias] (cmdset: AccountCmdSet, help-category: Comms)
accounts [account, listaccounts] (cmdset: CharacterCmdSet, help-category: System)
addcom [chanalias, aliaschan] (cmdset: AccountCmdSet, help-category: Comms)
alias [setobjalias] (cmdset: CharacterCmdSet, help-category: Building)
allcom (cmdset: AccountCmdSet, help-category: Comms)
batchcode [batchcodes] (cmdset: CharacterCmdSet, help-category: Building)
batchcommands [batchcommand, batchcmd] (cmdset: CharacterCmdSet, help-category: Building)
batchcommands [batchcmd, batchcommand] (cmdset: CharacterCmdSet, help-category: Building)
cboot (cmdset: AccountCmdSet, help-category: Comms)
ccreate [channelcreate] (cmdset: AccountCmdSet, help-category: Comms)
cdesc (cmdset: AccountCmdSet, help-category: Comms)
cdestroy (cmdset: AccountCmdSet, help-category: Comms)
cemit [cmsg] (cmdset: AccountCmdSet, help-category: Comms)
channels [comlist, clist, chanlist, all channels, channellist] (cmdset: AccountCmdSet, help-category: Comms)
channels [chanlist, comlist, clist, all channels, channellist] (cmdset: AccountCmdSet, help-category: Comms)
charcreate (cmdset: AccountCmdSet, help-category: General)
chardelete (cmdset: AccountCmdSet, help-category: General)
clock (cmdset: AccountCmdSet, help-category: Comms)
cpattr (cmdset: CharacterCmdSet, help-category: Building)
create (cmdset: CharacterCmdSet, help-category: Building)
create [cr, cre] (cmdset: UnloggedinCmdSet, help-category: General)
create [cre, cr] (cmdset: UnloggedinCmdSet, help-category: General)
cwho (cmdset: AccountCmdSet, help-category: Comms)
delcom [delchanalias, delaliaschan] (cmdset: AccountCmdSet, help-category: Comms)
desc [describe] (cmdset: CharacterCmdSet, help-category: Building)
drop (cmdset: CharacterCmdSet, help-category: General)
encoding [encode] (cmdset: UnloggedinCmdSet, help-category: General)
examine [ex, exam] (cmdset: AccountCmdSet, help-category: Building)
find [locate, search] (cmdset: CharacterCmdSet, help-category: Building)
examine [exam, ex] (cmdset: AccountCmdSet, help-category: Building)
find [search, locate] (cmdset: CharacterCmdSet, help-category: Building)
get [grab] (cmdset: CharacterCmdSet, help-category: General)
give (cmdset: CharacterCmdSet, help-category: General)
grapevine2chan (cmdset: AccountCmdSet, help-category: Comms)
help [?] (cmdset: AccountCmdSet, help-category: General)
help [?, h] (cmdset: UnloggedinCmdSet, help-category: General)
help [h, ?] (cmdset: UnloggedinCmdSet, help-category: General)
home (cmdset: CharacterCmdSet, help-category: General)
ic [puppet] (cmdset: AccountCmdSet, help-category: General)
info (cmdset: UnloggedinCmdSet, help-category: General)
link (cmdset: CharacterCmdSet, help-category: Building)
lock [locks] (cmdset: CharacterCmdSet, help-category: Building)
look [l, ls] (cmdset: AccountCmdSet, help-category: General)
look [l, ls] (cmdset: CharacterCmdSet, help-category: General)
look [ls, l] (cmdset: AccountCmdSet, help-category: General)
look [ls, l] (cmdset: CharacterCmdSet, help-category: General)
mvattr (cmdset: CharacterCmdSet, help-category: Building)
name [rename] (cmdset: CharacterCmdSet, help-category: Building)
nick [nickname, nicks] (cmdset: AccountCmdSet, help-category: General)
objects [stats, db, listobjs, listobjects] (cmdset: CharacterCmdSet, help-category: System)
nick [nicks, nickname] (cmdset: AccountCmdSet, help-category: General)
objects [listobjs, listobjects, db, stats] (cmdset: CharacterCmdSet, help-category: System)
ooc [unpuppet] (cmdset: AccountCmdSet, help-category: General)
open (cmdset: CharacterCmdSet, help-category: Building)
option [options] (cmdset: AccountCmdSet, help-category: General)
page [tell] (cmdset: AccountCmdSet, help-category: Comms)
password (cmdset: AccountCmdSet, help-category: General)
pose [:, emote] (cmdset: CharacterCmdSet, help-category: General)
pose [emote, :] (cmdset: CharacterCmdSet, help-category: General)
py [!] (cmdset: AccountCmdSet, help-category: System)
quell [unquell] (cmdset: AccountCmdSet, help-category: General)
quit (cmdset: AccountCmdSet, help-category: General)
quit [q, qu] (cmdset: UnloggedinCmdSet, help-category: General)
quit [qu, q] (cmdset: UnloggedinCmdSet, help-category: General)
reload [restart] (cmdset: AccountCmdSet, help-category: System)
reset [reboot] (cmdset: AccountCmdSet, help-category: System)
rss2chan (cmdset: AccountCmdSet, help-category: Comms)
say [’, “] (cmdset: CharacterCmdSet, help-category: General)
say [”, ‘] (cmdset: CharacterCmdSet, help-category: General)
screenreader (cmdset: UnloggedinCmdSet, help-category: General)
script [addscript] (cmdset: CharacterCmdSet, help-category: Building)
scripts [globalscript, listscripts] (cmdset: CharacterCmdSet, help-category: System)
server [serverload, serverprocess] (cmdset: CharacterCmdSet, help-category: System)
scripts [listscripts, globalscript] (cmdset: CharacterCmdSet, help-category: System)
server [serverprocess, serverload] (cmdset: CharacterCmdSet, help-category: System)
service [services] (cmdset: CharacterCmdSet, help-category: System)
sessions (cmdset: SessionCmdSet, help-category: General)
set (cmdset: CharacterCmdSet, help-category: Building)
time [uptime] (cmdset: CharacterCmdSet, help-category: System)
tunnel [tun] (cmdset: CharacterCmdSet, help-category: Building)
typeclass [type, update, swap, parent] (cmdset: CharacterCmdSet, help-category: Building)
typeclass [type, parent, update, swap] (cmdset: CharacterCmdSet, help-category: Building)
unlink (cmdset: CharacterCmdSet, help-category: Building)
whisper (cmdset: CharacterCmdSet, help-category: General)
who [doing] (cmdset: AccountCmdSet, help-category: General)
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
aliases = ['batchcommand', 'batchcmd']¶aliases = ['batchcmd', 'batchcommand']¶
aliases = ['type', 'update', 'swap', 'parent']¶aliases = ['type', 'parent', 'update', 'swap']¶
aliases = ['ex', 'exam']¶aliases = ['exam', 'ex']¶
aliases = ['locate', 'search']¶aliases = ['search', 'locate']¶
aliases = ['aliaschan', 'chanalias']¶aliases = ['chanalias', 'aliaschan']¶
aliases = ['comlist', 'clist', 'chanlist', 'all channels', 'channellist']¶aliases = ['chanlist', 'comlist', 'clist', 'all channels', 'channellist']¶
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
aliases = ['nickname', 'nicks']¶aliases = ['nicks', 'nickname']¶
aliases = ["'", '"']¶aliases = ['"', "'"]¶
aliases = [':', 'emote']¶aliases = ['emote', ':']¶
aliases = ['globalscript', 'listscripts']¶aliases = ['listscripts', 'globalscript']¶
aliases = ['stats', 'db', 'listobjs', 'listobjects']¶aliases = ['listobjs', 'listobjects', 'db', 'stats']¶
aliases = ['serverload', 'serverprocess']¶aliases = ['serverprocess', 'serverload']¶
aliases = ['listaccounts', 'account']¶aliases = ['account', 'listaccounts']¶
aliases = ['cr', 'cre']¶aliases = ['cre', 'cr']¶
aliases = ['q', 'qu']¶aliases = ['qu', 'q']¶
aliases = ['l', 'look']¶aliases = ['look', 'l']¶
aliases = ['?', 'h']¶aliases = ['h', '?']¶
aliases = ['deal', 'offers']¶aliases = ['offers', 'deal']¶
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
aliases = ['cr', 'cre']¶aliases = ['cre', 'cr']¶
aliases = ['q', 'qu']¶aliases = ['qu', 'q']¶
aliases = ['l', 'look']¶aliases = ['look', 'l']¶
aliases = ['?', 'h']¶aliases = ['h', '?']¶
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
aliases = ['@calls', '@callbacks', '@callback']¶aliases = ['@callback', '@calls', '@callbacks']¶
aliases = ["'", '"']¶aliases = ['"', "'"]¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['hold', 'wait']¶aliases = ['wait', 'hold']¶
aliases = ['press', 'push', 'press button']¶
aliases = ['smash lid', 'smash', 'break lid']¶
aliases = ['examine', 'listen', 'feel', 'get', 'l', 'ex']¶
aliases = ['burn', 'light']¶aliases = ['light', 'burn']¶
aliases = ['shiftroot', 'pull', 'move', 'push']¶aliases = ['pull', 'move', 'shiftroot', 'push']¶
aliases = ['press button', 'button', 'push button']¶aliases = ['push button', 'press button', 'button']¶
aliases = ['bash', 'chop', 'kill', 'parry', 'defend', 'hit', 'fight', 'thrust', 'slash', 'stab', 'pierce']¶aliases = ['thrust', 'fight', 'chop', 'defend', 'hit', 'slash', 'bash', 'stab', 'pierce', 'parry', 'kill']¶
aliases = ['l', 'ls']¶aliases = ['ls', 'l']¶
aliases = ['?', 'h']¶aliases = ['h', '?']¶
aliases = ['l', 'fiddle', 'search', 'feel around', 'feel']¶aliases = ['search', 'feel', 'l', 'feel around', 'fiddle']¶
aliases = [':i', ':s', ':dw', ':<', ':fi', ':DD', ':x', ':!', ':A', ':=', ':q!', ':uu', ':fd', ':>', ':', '::', ':dd', ':S', ':wq', ':u', ':h', ':r', ':y', ':p', ':echo', ':I', ':UU', ':q', ':f', ':::', ':w', ':j']¶aliases = [':p', ':!', ':q!', ':w', ':s', ':wq', ':UU', ':h', ':j', ':I', ':echo', ':uu', ':>', ':DD', ':i', ':dd', ':=', ':dw', ':A', ':f', ':u', ':', ':fi', ':x', ':q', ':r', '::', ':fd', ':y', ':<', ':::', ':S']¶
aliases = ['quit', 'q', 'end', 't', 'back', 'abort', 'next', 'a', 'b', 'top', 'e', 'n']¶aliases = ['b', 'n', 'next', 'e', 'end', 'abort', 'back', 'q', 'quit', 't', 'a', 'top']¶
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}¶
aliases = ['@delete', '@del']¶aliases = ['@del', '@delete']¶
search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶search_index_entry = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶
aliases = ['@type', '@swap', '@parent', '@typeclasses', '@update']¶aliases = ['@type', '@parent', '@swap', '@typeclasses', '@update']¶
search_index_entry = {'aliases': '@type @swap @parent @typeclasses @update', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type swap parent typeclasses 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 @parent @swap @typeclasses @update', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass type parent swap typeclasses 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 "}¶
aliases = ['@ex', '@exam']¶aliases = ['@exam', '@ex']¶
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 '}¶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 '}¶
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 "}¶
aliases = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶
aliases = [':', 'emote']¶aliases = ['emote', ':']¶
search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' : emote', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'no_prefix': ' emote :', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
aliases = ['@delays', '@task']¶aliases = ['@task', '@delays']¶
search_index_entry = {'aliases': '@delays @task', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks delays task', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}¶search_index_entry = {'aliases': '@task @delays', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks task delays', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}¶
Test the batch processor.
red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmphm853tuq/9b0e861f4816d085530f004b82e8e7b83f1980f6/evennia/contrib/tutorials/red_button/red_button.py'>¶
aliases = ['co', 'conn', 'con']¶aliases = ['co', 'con', 'conn']¶
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': 'co con conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' co con conn', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶
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 = ['co', 'con', 'conn']¶
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': 'co con conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' co con conn', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶
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 = ['@callback', '@calls', '@callbacks']¶aliases = ['@calls', '@callback', '@callbacks']¶
search_index_entry = {'aliases': '@callback @calls @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback calls callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶search_index_entry = {'aliases': '@calls @callback @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call calls callback callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\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 = ['q', 'chicken out', 'quit', 'abort']¶aliases = ['q', 'quit', 'chicken out', 'abort']¶
search_index_entry = {'aliases': 'q chicken out quit abort', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' q chicken out quit abort', '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': 'q quit chicken out abort', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' q quit chicken out abort', '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 = ['ls', 'l']¶aliases = ['l', 'ls']¶
search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}¶search_index_entry = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}¶
aliases = [':', 'pose']¶aliases = ['pose', ':']¶
search_index_entry = {'aliases': ': pose', 'category': 'general', 'key': 'emote', 'no_prefix': ' : pose', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}¶search_index_entry = {'aliases': 'pose :', 'category': 'general', 'key': 'emote', 'no_prefix': ' pose :', 'tags': '', 'text': '\n Perform a free-form emote. Use /me to\n include yourself in the emote and /name\n to include other objects or characters.\n Use "..." to enact speech.\n\n Usage:\n emote <emote>\n :<emote\n\n Example:\n emote /me smiles at /peter\n emote /me points to /box and /lever.\n\n '}¶
aliases = ['unfocus', 'examine', 'ex', 'e']¶aliases = ['ex', 'e', 'unfocus', 'examine']¶
search_index_entry = {'aliases': 'unfocus examine ex e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus examine ex 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 '}¶search_index_entry = {'aliases': 'ex e unfocus examine', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ex e unfocus examine', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}¶
aliases = ['give', 'inv', 'i', 'inventory']¶aliases = ['inv', 'inventory', 'give', 'i']¶
search_index_entry = {'aliases': 'give inv i inventory', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' give inv i inventory', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶search_index_entry = {'aliases': 'inv inventory give i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv inventory give i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}¶
aliases = ['@dig', '@open']¶aliases = ['@open', '@dig']¶
search_index_entry = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}¶
aliases = ['offers', 'deal']¶aliases = ['deal', 'offers']¶
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 "}¶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 "}¶
evennia.contrib.game_systems.crafting.crafting.NonExistentRecipe(crafter, *inputs, name='', **kwargs)[source]¶Bases: evennia.contrib.game_systems.crafting.crafting.CraftingRecipeBase
A recipe that does not exist and never produces anything.
+allow_craft = True¶allow_reuse = True¶__init__(crafter, *inputs, name='', **kwargs)[source]¶Initialize the recipe.
+crafter (Object) – The one doing the crafting.
*inputs (any) – The ingredients of the recipe to use.
**kwargs (any) – Any other parameters that are relevant for +this recipe.
pre_craft(**kwargs)[source]¶Hook to override.
+This is called just before crafting operation and is normally +responsible for validating the inputs, storing data on +self.validated_inputs.
+**kwargs – Optional extra flags passed during initialization or
**.craft –
CraftingValidationError – If validation fails.
+evennia.contrib.game_systems.crafting.crafting.CraftingRecipe(crafter, *inputs, **kwargs)[source]¶test_craft__nocons__failure()[source]¶
test_craft__unknown_recipe__failure()[source]¶aliases = ['roll', '@dice']¶aliases = ['@dice', 'roll']¶
search_index_entry = {'aliases': 'roll @dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}¶search_index_entry = {'aliases': '@dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': "\n roll dice\n\n Usage:\n dice[/switch] <nr>d<sides> [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 < 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (<,>,<=,>=,==,!=). So e.g. 2d6 + 3 > 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n "}¶
aliases = ['i', 'inv']¶aliases = ['inv', 'i']¶
search_index_entry = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}¶search_index_entry = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}¶
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', 'push', 'press button']¶
search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' press push press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}¶
aliases = ['press', 'push', 'press button']¶
search_index_entry = {'aliases': 'press push press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' press push press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}¶
aliases = ['feel', 'listen', 'l', 'examine', 'get', 'ex']¶
search_index_entry = {'aliases': 'feel listen l examine get ex', 'category': 'general', 'key': 'look', 'no_prefix': ' feel listen l examine get ex', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}¶
aliases = ['light', 'burn']¶aliases = ['burn', 'light']¶
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 '}¶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 '}¶
aliases = ['move', 'pull', 'push', 'shiftroot']¶aliases = ['push', 'move', 'pull', 'shiftroot']¶
search_index_entry = {'aliases': 'move pull push shiftroot', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move pull push shiftroot', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}¶search_index_entry = {'aliases': 'push move pull shiftroot', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' push move pull shiftroot', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}¶
aliases = ['button', 'press button', 'push button']¶aliases = ['push button', 'press button', 'button']¶
search_index_entry = {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button press button push button', 'tags': '', 'text': '\n Presses a button.\n '}¶search_index_entry = {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button press button button', 'tags': '', 'text': '\n Presses a button.\n '}¶
aliases = ['pierce', 'kill', 'hit', 'stab', 'bash', 'thrust', 'slash', 'chop', 'fight', 'parry', 'defend']¶aliases = ['kill', 'pierce', 'stab', 'hit', 'bash', 'defend', 'chop', 'slash', 'thrust', 'fight', 'parry']¶
search_index_entry = {'aliases': 'pierce kill hit stab bash thrust slash chop fight parry defend', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' pierce kill hit stab bash thrust slash chop fight parry defend', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}¶search_index_entry = {'aliases': 'kill pierce stab hit bash defend chop slash thrust fight parry', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' kill pierce stab hit bash defend chop slash thrust fight 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', 'search', 'l', 'feel around', 'feel']¶aliases = ['feel around', 'feel', 'l', 'search', 'fiddle']¶
search_index_entry = {'aliases': 'fiddle search l feel around feel', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' fiddle search l feel around feel', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}¶search_index_entry = {'aliases': 'feel around feel l search fiddle', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel around feel l search fiddle', '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 '}¶
aliases = [':wq', ':', ':<', ':!', ':fi', ':>', ':u', ':uu', ':i', ':y', ':j', ':q!', ':s', ':h', ':x', ':S', ':A', ':p', ':fd', ':DD', ':::', ':dd', ':UU', ':r', ':q', ':echo', ':I', ':dw', ':w', ':f', ':=', '::']¶aliases = [':p', '::', ':s', ':q!', ':u', ':q', ':dd', ':h', ':j', ':DD', ':S', ':x', ':echo', ':r', ':fd', ':<', ':UU', ':>', ':uu', ':dw', ':y', ':::', ':!', ':w', ':wq', ':=', ':I', ':', ':f', ':fi', ':i', ':A']¶
search_index_entry = {'aliases': ':wq : :< :! :fi :> :u :uu :i :y :j :q! :s :h :x :S :A :p :fd :DD ::: :dd :UU :r :q :echo :I :dw :w :f := ::', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :wq : :< :! :fi :> :u :uu :i :y :j :q! :s :h :x :S :A :p :fd :DD ::: :dd :UU :r :q :echo :I :dw :w :f := ::', 'tags': '', 'text': '\n Commands for the editor\n '}¶search_index_entry = {'aliases': ':p :: :s :q! :u :q :dd :h :j :DD :S :x :echo :r :fd :< :UU :> :uu :dw :y ::: :! :w :wq := :I : :f :fi :i :A', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :p :: :s :q! :u :q :dd :h :j :DD :S :x :echo :r :fd :< :UU :> :uu :dw :y ::: :! :w :wq := :I : :f :fi :i :A', 'tags': '', 'text': '\n Commands for the editor\n '}¶
aliases = ['yes', 'abort', 'n', '__nomatch_command', 'y', 'no', 'a']¶
search_index_entry = {'aliases': 'yes abort n __nomatch_command y no a', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' yes abort n __nomatch_command y no a', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}¶
aliases = ['q', 'next', 'n', 'abort', 'p', 'previous', 't', 'end', 'a', 'e', 'top', 'quit']¶aliases = ['abort', 'n', 'top', 'q', 't', 'p', 'next', 'previous', 'end', 'e', 'quit', 'a']¶
search_index_entry = {'aliases': 'q next n abort p previous t end a e top quit', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' q next n abort p previous t end a e top quit', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶search_index_entry = {'aliases': 'abort n top q t p next previous end e quit a', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' abort n top q t p next previous end e quit a', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}¶
n{sry|ec}y#n5&$3kwxQcmA^=f49jHd z%&Xp_Lg9R3-7c9>n02K6+(51Q7BOo*v{RXM+z_&DdC?={#6lQ zYVTgLrl8|cVF`M-d$BMl@Xqi)JPbs>-UPq&@ouv3+AumS44TQbq>SF1u`GA=Ct^ht z9sGUy;C^eE%W2DT8UiH(O!-hooBhZ?PEmD}J{CMjqL(z-P}V$Sw&u27>1;5Uy{u%r ztzo(JnrM?=Y2aTeh|<|)of=ZQmD3cRkJ<*0;z@b5q3m(ms`=ydM;-YlOR`zYXNoKg z{q3Nta6`{cPB>n{Q9*o4z>*(0InMl4AFBy^M}A+cCo89weF;qjO7DH!$++nr98Wyh z(&(38_gazKmr?hBk`4H+x~dL6oom~76KU$K`A(BDY?B7^C|ap+`BSy@_qVcGaeGq$ zb*q*fZhkBG(xN#}f%gZKl!)TS7uY&ehN3K#=7l8G-M)dUZu*+*O5^r*wp|k;s4fDo zlyQx_xmD=S0jd*#t$8 WDv1@w9)56=_&*ZtFr!t@UujdS z5tiMuG$$*! rr}3KTU1@IVQ8Ekn&^rGZ5~Q6BurkmU-q-wzyL&c*pVRg zm_M+#&iw`85E*z%*ECU*Zy2@u_JZ_6?Vbp&uGTpcLMmc>C#*Kn&T#n #AuH`=T<0zPjP8YuI!vA@r@$FY4fHO?X&(IRf1qIcYr*$Q8$xK zrMX8M9pf|yLb*kdhwMeLob}cA1-vdemy@X(<`oPmN&M%vTuI8IMW~K~M}w!$R>DUX zucBy5u6%46i!V}QT4Hq{pm^Frlk=fX`J`W#z&$H8pqy`0yhUkfRlG&6D30QiR5AC( z53uNHcrI21FW$rfV-#$gA+;|P`G;Cl8HyRVZ+csL(v6`rIo?LY5fXmRLVCwd9-B|Q?CNu>IcSC-tg_21 Mlqq}hRg4{*8h`%&L#P4noP{{Sz$f8g+5X=Bh(&$`* z%cwD9wU>J3d4Xf t>n>Ke{N`BdFiH#p;0PD9x@ E+Yi025EyUly zwgr?Hf4x6cSbU-giK4_x;D(aoj2R115augT>&bPi(p@f*?^8|c)TsHoK<%#PR9^Z# zP`-5aAxszeTyWQB&idYj|CtA;23f9!Diqy3FZ8YUxjpoOWWi!t$85>RPmJ?L<`LpJ z4T6DPwgVv+ij(##*c a-A0oSK%#PlQO8~(gNNxj#IXVU0dE>5n z2AD`Y)gd7Wx!{!w>zh!J9KNFeobBaT7CdUin}CiE(w9L0QU87pv-fotV7!LO2NAT; zL}1`&8gLDNX;=-G?7DFM;kg+{xLv*Xsokl#LVoUzr(sE@C7k9N?amm`Cy;!s8)2zF zFb-Zhk4?KUGDeAoBKoI`lN8{*(inPj$=Q3hw@OPHR7+K;2@U!qwGF~W8pkTADcG_= zdF R$kPFL1S4U6|nqGS8V zty2vRz*=;y=Qf@4Ao{M=!@tgwI>BjB(O*t>^q*ztP{g z?>657U;LI<70UVY{RUzi?{edA_H}vhXw?sNxxGjFSya42moBX1n_0LXNzi1HExERV zWQHzLOZc~33l(KHux~swWq<Hxsw?zjrr!aX_C;m{vpO)B%xXJ~9SR;cU Rc* zll(^7ME_Vb8O`yG@u##Hy8KPV%@0YDXYz!(EM_)zX0eujba6&F`^VcXaQ4$1)&1^` z>i+qS>i*{&)%`CTx`Qsqd4Ur?f%QtxVUSIpemRHj#6eB_qG~iJ%8ECkGccF xSo)L6&bmH 4Y)=DRtL!K39ypfj*h@`yQj8?zMcn0+af6psJumm;sS>oU9J4&(F-QUWzxB|S^atdk3*G7YfX(I-S*&iP&u zwUoRSeX?`fe^W$7Rn7R5852 G{n}53geAa}ifbktfdiQZWU| zuy#FXb0kGw743I}C8n&ko#2renQv*lNRyT-LT$PeVO+Xr;#dB}#7K-tYx-Q*KUVib zQUob4qy*9MLP`ofFQjBq@j^-rIWIJ+BGjhod7 3Wm^Dt5Sq8KgXpmPEkaXd#q*%|Q{7 z_Dj#pd~JBOa)@IjQ1LXQoYj5JD1?-^8ATEBH=`6v9%rtJOiQNcb-oSVUMN%1*Q&nf zNC*`Ve{?Krbw6}0hm; z!sz%WC5NDAnskwB-SoWDU72+IUzIOf(J38NQ1MAKMXS4{nHEwWX{L*SLz=0f G6pdYMA%7#MmWV}mNqF5=2ZQA;Wo
+3J?$zigGj-~dQ!qRsNwp$6g1k}BQRg*fL8k>E~;jGyFTj9K* z8sxC~-dq4-7ZqNV5~RUzehg8M (4p0e=@_O+GeRo+h?Vr?-Umz(r>*Q;#)$!@1- z{#TJz)*JuXA@ODZX(9RL>oU8oH(#r-+pTw}GKmOb_uPGfp~Q9H1%`%@e;pSXdO|~R z7!?7#EU@HIXt2RME1*Q(YF`%FiwM?`b!JEzFw4r2io_6qpZ9CHGs7-B{uSvf{>YNH z%^#9tMHK-H`H)J)$U}IA#OdBPXaW17>dnw+B?V0)!nM^}L-3SG7`>eA6QP#V-QM5= zGM;3s@vH3s+6-1~hg!zUf5xCi d4mfg7zustO&mLuvsVxkHPh)0}}v z@gUN!i@e;d>wJ_1I=)BCA>ewn5MrK3iz4B8v=mx?=b(v9OQz^`e}3itA3SMXl7*nk zpyPcGk_dR9gBW67=pc-QCpyTX<&BPYk!sx(z0&7=x9`{WNJ;`7Z=~fA@I+b&F)yS= zk?=rT3N7z*&_t#sQ}jCDTHbZ8snd{!(D6WXQ3U+ZTn;gBG?zxgC(Q-X@=T}7h_!Qy zUh2D9&|A+vNd z0bM?YR~NjP3MQ!?N|}~)_eW9`>sQ}g4b3V%Qb@vazEDN8alstnf|5pH{%BM|vYiu} zFPYSkY1c*$rS>et0}?&(D1>CIp2U%9N)(pX?hZ?91nbO5e QHXjDhb z?nhMw%xsiGDkvF65wZI*w >Jwk*(}O&>?gr1=5 UGw=a{U}+zc_Q$%uXH-DL^Gs@1_B)dfLSARmw7Sokl+f`wN0O*CVv648OMRR4 z>3&^@V?@yLIinx~ZfBH2%=3)0NI0KS3@!gNS4F5zQ}aSMN!PFEek3~$zoV3_>~NF@ ze?p!{=~>;yC>3;k%Or ssII%+(O` zK66>rtp9Ue|IpJr>)HN60}acc=~>zCXG#cJ{Y=&BHb2us$Kp>!(P_>Uy^kDet?PTF z0y>^YsUhHZln!EEM` ) zMdJp~^;*!VfJV19sad((nsgBAwkA!h+tH+iPPcU=iAp1;)@_Z#e$5~F@6Gx?N9&;F zd5k6^{>P{x=!J|jGQP;@q34l|Fsi;l#@Oq70;z(QA5e;jcmbt_pbt>G$anyye} k*ZPC6xm`)J z)9_77$;$3XX&~f*l%Ca{j#5F#&rEVCG+0vJL@q0=dV>5QfY7A `LGBppA~DpVPEz%yUlA%C6@iX=T@Q5JJH9-1CAre|6ih=zZoA zs5qb_P4s-wkvuwX=oMKj8~%~1m2Lk>3kCBZvz@PK{xb<=%zv(lp!v_`5i hjV{A%vEh&WKxgx#^4`LY7Zwy=U4Y(kHF# zbk}a(lMZTuz(E+@XyBlce_lv%&_=`#4}u8vGJoh)y( zGAXqth^JFj#tD~MKTA$QO f{|1VEKH^m(xy?W?C2gL?f`GGuu#!YND8@o`7=E77u=q3>K- z%-1~GuKJp7a~(>^e-lv`M)sF@-3YtquBdnTlpSv$%z)FOK=rp=%hP=8z5JbLcj~u0 z-gWu%< jtUYA4AXd0}JKclfbAACkrV!3dR#_xLA8BK`a@nTRpALUOs57BLN z#(P!O8E4zNEybH#ELMQ($nvf!l4nIP0~hNE8HiuFQ?Tgt(Ip+(1_eQL zV H2m^`=RCRL5%P+yPZk?(%PiT>Qb_bLB4Yj_R6;{P5ZTP<7kSi_3Gwn zpA22kvm+O^wC^q84dA4ISAV}#e|B`R6qR2wm1~7DODiJz4mNvm2+L0kp0scI1$MlD z%ko=Zf7TEDEx$pRwt3UrPbN`(iM#0?-liwj`kl9$lYgOrjq2pzEfEo=`pJHqJNb9A z-6T)`MO?Pn(|8#!Ere&^`Hnx4vk#XUiHjJ4V}ir@4k45d8PzQ*(<4yxcxbp_CA4oj zXB{uNULvrlxY;)>t7-lXmnQP!d%k?Cz}525f5*HiKAJVt zc{Lj3kTU@8jP`~a*g-6z$Kt9fmfj`nS}HUumrOS*kp4^_XGfL+ao ze}>f+KeD4Wl<0OLcP^{n%}{I|CAsPM)|b+)UN6%|3HirEx4edwy6KBt#w0b9s_JHn zN!C!)ByGo;5P_gT_H3^PKk~y@V;l9MJZ-QHF+OF7btPhC{+syWW^~=>0-`g(mWay> z5dqjqn)0qgL0*o_0?<`A+4H9!3Ew(`e+uAO2#EraZDX833arXK9}qz|&_}*uJKnP- zEAxsCZGlOmGp)h1-04dGEvd4Cx1i4F7#hh7ose8wuY|xa>Ld#yD3eOSwU_%3^U&q) zV|-|8E4K&eSL^Ty*&0$7tBeii{_OP<@Z?bI1e{I1D>VLAxC53nZQaxz9zkC>e|cIa zeY!{H=-6Z4?{TYS#y0GByt_P86~d(asAy#7b#jhNqu&XI!t_1C%~%W!E}R6OJ+t5? z^fPwh !CxY zdeP3IfOBYjHzot6@6=czaiQ&`KBRjCL|xi$;sNP8Fm^*n@IW>@RXkuFhwgshW ;Bht$n<50sYWg!=4pHJam!PPU_f6CD0xmeZ> zo8u9V2mIu~&c3($^wn3^pUVGB;w6;nIa|DO`sJ0kI*WP{PFOrN9^-$3LtZ>*>IvC{ zLl*EV3wV_ksLE{9@+~CbHYqw#h5MvqVj#M(RP7F17g+}hm}j79RhMTR9#P&O1B%+Q zx&}oQKS8^-s)jWh5zazOe-w}iFRoEV*a-{@jM#vCp@z35G@clgo3lD#sIWex0e@?p z*Y0?+g~gNU)H>deX&k|T2T=e+$3blp*mnAM0IHn*VTp4g<~2`RM7`sapT*BN)5P?J zS?X6vmeCg$XhU(AS7(D6k}N|6zp(Bb4lW!;g(yBv(mmI+!<*+Of4Q(E5l*$|7m{ ?b9jY~TmDDtQ-FJmk)y=cHI|-3QPugPBsQKZ# z>Uq_7xGd(fDK)D(f177OB{X|e#^GKpE}6Mz;ISC94U?ORc-ud(KpFR4fAD9P$h|<% z4cBfYB5^JKOP(Nd8XM6I0C+TU@R58MSVwYsW7F|t%iW!R?Ao}}g;CNuaC_9{F;XD@ zr4dpf^yP3l5d2aw8wf2691Hv6Ufw|Lg%I2keKd5Sc0IybfA8S)#rN38=SyWB+PLEO zOz+%MIZRkncYT+@*X)(KoO@}*i#NP!pG?g)T-r_H%OFZ=RtI?K?DEE?5P}i1Ln3%t z#|R|0J32!s&+g$6E}t#LzI=PRIbz$^r5PTg72@bsVbu#z zG{rc^Ja?s_WibMymB%<6GHi4PKk2YhsZcx~mXm9F%JT=_vT4!?rDSx`tL_E|pH~_F zOH5rQs0G+;3b)0!UB|Iq&l&&yz_*DQ{a){rHc9*Ce<`UWd>3HnLA*axz;NE5R1CnA zt@wdiO{fI%$iaOqnr3Jki)piPqM?dH)pGn-+9bkH3EOAt7DYs&w5}?ho{05%iP;=< zxQ9rPX9dT8iR1kqOCH&ur;-<&75U%%^1T`1M7FVmKZ8pb=Fc*2bigSu(c|>c-I~Ni z@6i-Vf5gsA@d+ns=KppGPI9E!CV9a#*0+h;GK$7ywJzfej;kKI7f~EYZheN$xcJ$$ zC>$P5P?u#=Wf*Qsk>GY6iUP}-Yw$L&+q{29Bf#t^zD^qjAYHgdMR($cCZZcRj0;&q zLeZ ;%TNa2f}Ur{K88XK2*CtUS$tPley! zfAA*FPdJdKmrqzC_<7uE`56y>RM((~bPawy*Wd?pk|L6inNdYBe!OL$V-nmjSTaN~ zNZgmuX#zy0TkUHP=IQoBpVg0;y+5`uo@RojN8XFz4{1vHln#|eAIP*mTNuP5r-<<= zrnzmTsUq|;8u#2I_K*`thsl8#sUj_ue;9P!aRYzismx(38Y&(IqJhbTgxEH)l}q+L zJIn!N5zP)%tJUrflPJr(rbwPyI cJ@-E*L9Nib4WLm_akhjX|y< Cr7>S9#4@Qwh+y$ffkf$;f2hz|`VdM61iUP~~DR2}^ko(Q95BvQ 8h~gOFvE%Afi+VR^N!e{ndhFEk2bu{=8Nh3$Iw+KWW|4Gr7v9(89b?VRs) zKWUk%C VNn>3P2QqFh70LkVHoTZBn5K7#$RVSK %Nv9*z1Qb z50AWh-g5Scys_L0OFd|fc=h%3^{x2fH4{A#Y=d}pn3gJk(&hcYV4O>HD{w^fHiP?4Hd8u5WZ!sO<|>lEY1_I*YaG)n-8|gZEsnLF za4ZjWLD>{nlk6^RG63b1RBo{^0O!=@3U(R1)=0$vqkCTTW~r|xe`zKou r`PQSW#q^L(Jcoib$=R2~xQWAGHYJi%}j>Y&in zNyc 9*sv1UhrGoQIdXh%RwwsbROSflo!*W8iZL8z~)f5 zP*l&LRLbvMxclejf1@^op7GJ&E3+qfA^JLkUclTWy=X=+?#Nj#5qA=EM|g;xxR7oO z8C+EkQ-D6`m@lCFX&n8tDXIwg^E|bfT&Oe-GgYs`&UPN1br9zBSG~gc`O+n0C(qg9 zUEQhQ7cUt*3-5rdZ~oE`y*da9C(&LFo5sZL*fes>g1VJ$f7XOz5V5)%yJQ?bGugDT zWiFgXM@-n&WO})=@O09b@r0e6Glr%HGu6x2I2}K>>`?S$W9cladnKvwD{$5mvcC8p z^RK>COS?FIaqX^e2}fVJ`XPkC>iU)d0^6HaLMY4vAOdt=3D+V q2kMjV`p=}3@dl;kwKBI;(K?@OP7|0!J-%`mR%luUC`2)?k<@I zQ7E2$=GH;wn>$Nz#h>&Vpf6yv#&3^Z m|G<=L^qnR+9jAj6DE*ciJsq{(r z!*=95dv-DYoj-doezqL*zMycxwjb>Vu~@DcgmGAmrGp6MaYZIS#HOiIULbQ6JgH=C zC2w&RfA8?=T4V~n%}!0QBfm{nM`#6H_7%u4q7r}dEpJ o*)LxshS`Ts|nN) ze};S0tgyVj{4tKlS4_TMKhOT{$dua5aGv4$*@Fk!Rt%3{ACPDNa%A#$W_k9`k;>Pl z<=KBYGDUN26I-77yw`s^GTBY+ogw;%4^f1o^Yz+!_D@Hqq4F-gpBAX}zl@LPj9)pK z;Z|sQ`h#1q!XG`oJj^(H`d Jp^XmQWw`=v&M=>lmxtPzk{qr1d;1(?(gl043MW%B6q;-MJrT>1d??Dma^+$Ds zc4X4eb=M gRtpbEcHjq3iJ}e$&0bwhXr$|gyop%vv)W!s!jZLH4fj5gg^+(M* zw=qbsagO6Eotpb?lJO|-btT3ne~HYA($sCA6mdA^#((xcEAvW!{O((9^4o5=3bomc zq>gQ{M3#Uq_jj|NG`5Vg+pRA`Sam;i0MrK?VvqUXNt-PN6)(Q96kELf!l9e`W1_s^ zEM8&sqOuM+KuMGC2TS*Lp7Qv#btRns5T96>>d;4LmD!A=lRopVs-v @1 zyQDOk%GoyOMRqBd9s=jIsS=s8?7AizSuCE1oIf%#5;e*FJKp!>otaR~8E-^~r1n>J zOZ~?D*`+Sy=vke)RIOTAh<{0AhyR$gm0j^zF_>RjkqE5)@|geh`K1zi@w|u|KAWE{ zWAO8oo?O=bDlF@9IHWV0f7wOmusR--T-^a;8JGE!i$HuNpM~NmwfvGwPRQR(cDOKX zg(YrxLpfeI8k0EHcVm57+LDPt%~vVur9?9blr8TX;Y)dZUh!nd b$Ez&UZn8g{v{tQzrvzzE*S(^^% ;Vg(%!SMJ3W3mer^%%SFI7E(#$Nc3k|>FI?FKN2UiyVw79(7<}^^?6J5q zUa&@Q_`{-5u92C$C7wmVTbcCxsBM4zgLEjDud)cHQc1RO%TQ48>H(8Mjm+X1@Q++? z55mG%mr2-9XZRCIf5(oA|JT6V=jl#mT$aPY6pN?jo4W4Dju4kgUGx!yX{eZ)4x25H zpt22JUzf~8xg9oLHk9SF_@Tn>iX>HOE|bOLPz#lL)%ER=_Q>6W@IK0+3V(`9v#%e= zUJl()=*({sjLKXFS*c0saRn8ZOwS4GB*2H$KDeA_#Wosef8E5XJi%jLO;#Z$SD)ks zE9#w!%28e6nfcpDR5D2oXerK?&+K*yzWBn@+QZ8)_!5QjUES#Ceifg8k{@4BGA_)q zT~-lJZ@m(NE@V9Kv&-0gu4h$Es*~135iZTUi>K(nhn)An-QR!v=_i*BuJ{71cLKsm zxy#F@;NMNFfB0_l;zlcp^YklN&MQJvr+u{Oa^zH|`6Y`eMzqCh_pKFvIgQyij%e3t z6UPG7aZLT2#pYQw87iivAfs+#s*oRy+vc1?3-d+y*kb(RX$N+9P~v0 f84fpEUv5X^lgo{0dU8|uYAu%8%%z_)T!z-R!gfQB zgj_e%)<#J5OedIxhUMwL2FHBrd0Qpw9Cli_8Qb%s0B4b_Y`8_Pa-SSEbZGRY`_sLE zQA)e0e|PY qt$&~_=J zU&LRyKX(4qVkwwwmS$3y-u|`Am0kt3PYvwNf8diH*qhAaO3e`LDHwo9U$} W^d$$tU2DeR_UF+(Wh1ypn7(C=7M9=Pc1nn^HfqcmU!YxdrWx{ zNBNAy=}60yPp53YG}be5V1%2tPO>yvUXuW0bXy8RptVWu07mPw(gI3qW=Ep%@wVM0 zf9a2Cd}Z>3AO0MTc03z6#;lif?*fynb?%Rb`8q1ITChQC#4-biK0WpBZkmLI^RzGE zolY}_lQ|q^3MO+q#}rJ*qm`mvTpdi~aC`}X%kAuv2jPqKI DJ!;-=hd;oAETNU2$_Y@r0qGAnwUr-@iQ ) zQ*c}>iZ#@IL4|BZQHHrMc#y0p(h&Cy6SfuEB$e_+MYbFF
o zLHSc)T0=IJjl~uvH&B^o0veRrT>|pr3-$}+;}@n>;&uleUt#p3@>m%MAa%Os1C+U_ zci&pR&7Y#O+MXK)A$8tc0l?+GfBOJ}d%WqvF3UeGx7<)}mr53v*W}4Kx^Y22{LU_| zE~=a{_W=bhbV_B7c5=9p^HksQ6wGqX#AdFWRfwkyD(Xy< z>L6AUVDjKZ5Mi4n(3xY`CJlecD{dK(PS0D$qlf2z9e=V)({i59gU2-#e+6JndN!T0 zio@u(g%E*~6wJ06qpmUmsUi%R*m;SuXmbzsTR@5L{9dhyO>6zX)Jh*nfY zW}O|tjmWy^qO0DRqgoMpyI~{mC*8!Z+o6iU{GF=^D6e*Z@J&~zKX~sk>488Tq2F1Q z;4>kDp~LS=)QEx{W*0Eze^_6oim1WynpH$44p*=usu06#>;Pv`!*o^Hn*1(z$GU3C z+thO0A)d4xamXh>eZT&twj5$i$TpByiOV4tM`*WUgB$oP(6X~BH+Z)Jh$FV^Si=o| zdk7RTN=8oQR(bkk%ryb7U;N0vfBVdCzI^!l@yq+$n>$n*!SMa&f7|E(MIkAK&-iXe zAsCe*?91c^z(AMPTsbW>yWuyrwFh 3#=6Mjfjp#fGn!G|RAM^@vjb^+k z{u)F;f$QwLd{^=8D^5q#)kB-|-@kuGGGM16sSmR2nA3~HXHe-y6f|lCVRRT4dhxlA z`@Bf}26kRl?jtuZe;QP0<}>#4C-4|tS&}tL+i{juT`o5 FRskz_Xf7MFNdo;b6=E$$N~{X+Z0?VFllH){R3v zYTG#EqqhdyqH#>f7Ld-3!wFnAj tt`AD0tUb9_r+*Y@H= zp>s2DYnJ8Ke<8gOPq!cXtbVL8D5eDz_?qZM_#}LlPA=a%HKpUPIyJ15uj(Sa(|`Q! zAjS4o&nW?r;MY8{#3WTELZnoTx~%hkAq(nHwkX;!UEvCI8^2>~5n(M;D+5_hqj=m_ z(;{f82O4$dyc8Hq4jGf*@rt+lN_+A5jD#kyZPHOBe-Ud>FI16fRz{ijl2lxi5oI1_ z-E)-^(WQRvn9ShCQc9MHTSRSVI~*2IT85+Y$?tb}uFGc=fdjH@H0j0RvaVoH@SP`_ zZA9*hidQTK-!0s6hj(@I&J1dg4}ZjhADYa5XTAk`*X=FMR6J>Ert-=6sfwjP{PImS z!N >C%>G^3X(5e3Cc3Z cLZ<9~ewtheKdzZXg{`gn&$O~)CTcW=XQgz8%8mr` g>V@~30i!w zvLL &@4X=o}yMDL#F (z{Rim_L&I+d1oU_ >l*C@oI72*>2f4r#lP7jNQq93+wBj(|I^^cn`nDaOixHgUu zs-$TOnP@~9?FaYE_JWw*Mwua0Uc*foLWgl@2w@ht?%Y-gf|=|`) LNpvt|^4mF*ofXlH_U=T>p$sBmSPJ$RtgX zUY_*b|C3_(tfZ%cpAVX>c(}dG?)w8<4=vsqK}u) z+V=74+4~XQqD>vZtx%l U zgwBJ