def decode(self, text: str, prefix: str = "<STR_LIT:@>") -> str:
def callback(match: Match) -> str:<EOL><INDENT>m = match.groupdict()<EOL>if m["<STR_LIT>"]:<EOL><INDENT>user = self.users.get(m["<STR_LIT>"], None)<EOL>if user is None:<EOL><INDENT>username = m["<STR_LIT>"]<EOL><DEDENT>else:<EOL><INDENT>username = user.name<EOL><DEDENT><DEDENT>elif m["<STR_LIT>"]:<EOL><INDENT>username = m["<STR_LIT>"]<EOL><DEDENT>return f"<STR_LIT>"<EOL><DEDENT>return self.decode_re.sub(callback, text)<EOL>
Decode <@id> and <!alias> into @username.