# To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 1K of event 'task-clock:ppp' # Event count (approx.): 158300000 # # Overhead Samples Command Shared Object Symbol # ........ ............ ....... .................... ............................................................................................................................................................................................................................. # 34.74% 550 osh oils-for-unix [.] MarkSweepHeap::MaybeMarkAndPush(RawObject*) 10.61% 168 osh oils-for-unix [.] MarkSweepHeap::TraceChildren() 5.75% 91 osh oils-for-unix [.] MarkSweepHeap::Sweep() 5.37% 85 osh oils-for-unix [.] MarkSweepHeap::Allocate(unsigned long, int*, int*) 3.60% 57 osh oils-for-unix [.] match::OneToken(types_asdl::lex_mode_e, BigStr*, int) 1.90% 30 osh [kernel.kallsyms] [k] 0xffffffffb4866297 1.71% 27 osh [kernel.kallsyms] [k] 0xffffffffb38b5b52 1.33% 21 osh oils-for-unix [.] cmd_parse::CommandParser::_GetWord() 1.20% 19 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 1.14% 18 osh oils-for-unix [.] alloc::Arena::NewToken(int, int, int, syntax_asdl::SourceLine*) 1.07% 17 osh oils-for-unix [.] word_parse::WordParser::_GetToken() 0.95% 15 osh [kernel.kallsyms] [k] 0xffffffffb48ea8c9 0.82% 13 osh oils-for-unix [.] lexer::Lexer::_Read(types_asdl::lex_mode_e) 0.82% 13 osh oils-for-unix [.] word_parse::WordParser::_ReadCompoundOrRedir3(types_asdl::lex_mode_e, int, bool) 0.82% 13 osh oils-for-unix [.] word_parse::WordParser::_ReadWord(types_asdl::lex_mode_e) 0.63% 10 osh libc.so.6 [.] __getdelim 0.63% 10 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseCommandTerm() 0.63% 10 osh oils-for-unix [.] lexer::LineLexer::Read(types_asdl::lex_mode_e) 0.51% 8 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCommand() 0.51% 8 osh oils-for-unix [.] consts::GetKind(unsigned short) 0.44% 7 osh [kernel.kallsyms] [k] 0xffffffffb3bc9c5d 0.44% 7 osh libc.so.6 [.] malloc 0.44% 7 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.44% 7 osh oils-for-unix [.] List* Alloc>() 0.44% 7 osh oils-for-unix [.] List::at(int) 0.44% 7 osh oils-for-unix [.] cmd_parse::CommandParser::_ScanSimpleCommand() 0.38% 6 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.38% 6 osh oils-for-unix [.] word_::CommandId(syntax_asdl::word_t*) 0.38% 6 osh oils-for-unix [.] word_parse::WordParser::_MaybeReadWordPart(bool, types_asdl::lex_mode_e, List*) 0.32% 5 osh [kernel.kallsyms] [k] 0xffffffffb3bc5967 0.32% 5 osh libc.so.6 [.] cfree 0.32% 5 osh oils-for-unix [.] List::at(int) 0.32% 5 osh oils-for-unix [.] StripAny(BigStr*, StripWhere, int) 0.32% 5 osh oils-for-unix [.] alloc::Arena::AddLine(BigStr*, int) 0.32% 5 osh oils-for-unix [.] cmd_parse::CommandParser::ParseSimpleCommand() 0.32% 5 osh oils-for-unix [.] location::LeftTokenForWordPart(syntax_asdl::word_part_t*) 0.32% 5 osh oils-for-unix [.] word_::_EvalWordPart(syntax_asdl::word_part_t*) 0.25% 4 osh oils-for-unix [.] cmd_parse::_SplitSimpleCommandPrefix(List*) 0.25% 4 osh oils-for-unix [.] executor::PureExecutor::PopProcessSub(runtime_asdl::StatusArray*) 0.25% 4 osh oils-for-unix [.] lexer::Lexer::Read(types_asdl::lex_mode_e) 0.25% 4 osh oils-for-unix [.] mylib::CFile::readline() 0.25% 4 osh oils-for-unix [.] reader::FileLineReader::_GetLine() 0.25% 4 osh oils-for-unix [.] syntax_asdl::CompoundWord* Alloc*>(List*&&) 0.25% 4 osh oils-for-unix [.] word_::StaticEval(syntax_asdl::word_t*) [clone .part.0] 0.25% 4 osh oils-for-unix [.] word_parse::WordParser::LookAheadFuncParens() 0.25% 4 osh oils-for-unix [.] word_parse::WordParser::ReadWord(types_asdl::lex_mode_e) 0.19% 3 osh [kernel.kallsyms] [k] 0xffffffffb3bd26c6 0.19% 3 osh [kernel.kallsyms] [k] 0xffffffffb3bf9e60 0.19% 3 osh [kernel.kallsyms] [k] 0xffffffffb4b04104 0.19% 3 osh oils-for-unix [.] List* NewList(std::initializer_list) 0.19% 3 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.19% 3 osh oils-for-unix [.] braces::BraceDetect(syntax_asdl::CompoundWord*) 0.19% 3 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseAndOr() 0.19% 3 osh oils-for-unix [.] syntax_asdl::DoubleQuoted* Alloc*&, syntax_asdl::Token*&>(syntax_asdl::Token*&, List*&, syntax_asdl::Token*&) 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb3b47c61 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb3bd0a13 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb3bd0bc3 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb3bd25e9 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb3bfd282 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb3c64791 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb48e3a6c 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb48eaf30 0.13% 2 osh [kernel.kallsyms] [k] 0xffffffffb4b04109 0.13% 2 osh ld-linux-x86-64.so.2 [.] 0x0000000000011429 0.13% 2 osh libc.so.6 [.] __errno_location 0.13% 2 osh libc.so.6 [.] isupper 0.13% 2 osh libc.so.6 [.] 0x00000000000a2a2d 0.13% 2 osh libc.so.6 [.] 0x00000000000a48b4 0.13% 2 osh libc.so.6 [.] 0x00000000001a0882 0.13% 2 osh libc.so.6 [.] 0x00000000001a1010 0.13% 2 osh oils-for-unix [.] BigStr::at(int) 0.13% 2 osh oils-for-unix [.] List*>*>::append(List*>*) 0.13% 2 osh oils-for-unix [.] List::at(int) 0.13% 2 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.13% 2 osh oils-for-unix [.] braces::BraceDetectAll(List*) 0.13% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParseIf() 0.13% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParsePipeline() 0.13% 2 osh oils-for-unix [.] cmd_parse::CommandParser::_MaybeExpandAliases(List*) 0.13% 2 osh oils-for-unix [.] cmd_parse::_MakeAssignPair(parse_lib::ParseContext*, syntax_asdl::ParsedAssignment*, alloc::Arena*) 0.13% 2 osh oils-for-unix [.] cmd_parse::_MakeSimpleCommand(List*, List*, syntax_asdl::ArgList*, syntax_asdl::LiteralBlock*, List*) 0.13% 2 osh oils-for-unix [.] cmd_parse::_ParseHereDocBody(parse_lib::ParseContext*, syntax_asdl::Redir*, reader::_Reader*, alloc::Arena*) 0.13% 2 osh oils-for-unix [.] str_equals(BigStr*, BigStr*) 0.13% 2 osh oils-for-unix [.] word_::DetectShAssignment(syntax_asdl::CompoundWord*) 0.13% 2 osh oils-for-unix [.] word_::IsControlFlow(syntax_asdl::CompoundWord*) 0.13% 2 osh oils-for-unix [.] word_parse::WordParser::_ParseVarOf() 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb38b59f6 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb38b5ba4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb38b5ba7 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb38b5dc9 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb38b8e46 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3b6e220 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3b6e7b3 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3b7f576 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3b7fbda 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3b80adf 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3b80af0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3ba2540 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3ba48d7 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bc502a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bc5946 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bc993c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bc9b58 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bc9bcf 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bc9cca 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bca09e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bcbbd3 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bcc3ec 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bcd627 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bcd631 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bcd641 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bcd6a5 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd09d0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd0a9d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd0bd0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd0c69 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd0ec7 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd1da1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd1dff 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd1e25 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd203f 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd207e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd2294 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd2677 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bd826c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bdbd76 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bdd040 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3be648f 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3be64cf 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3be6591 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3be659c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3be9088 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3be908c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf4a10 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf4a1c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf609a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf60a0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf60ef 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf60fa 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf86c0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf95f4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf9601 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf9e12 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf9e53 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf9e57 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bf9f02 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bfaf78 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bfafac 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bfbb3f 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3bfbd8c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c0bf75 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c15b89 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c33a57 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c33a5b 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c33e06 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c5e895 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c5eff0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c65ea5 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c65ec1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c65f05 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c6703a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c67042 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c67051 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c6b728 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c6b72a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3c8b311 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3cb3ce4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3cb7203 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3cb72d3 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3d8a8b1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3ed1f84 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3fadb51 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3fafb88 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb3fb28ef 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb406de18 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb484636c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb484639b 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb48463a6 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb48463f5 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb4846411 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb4846522 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb4849b9e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb484dc36 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb484dc6c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb485362d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb4857ef8 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb48622f8 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb48627b8 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb48d6fc6 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb48d6ff0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb4b0410b 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b734 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b791 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b7b8 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b811 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000011532 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000001a2c7 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000002723e 0.06% 1 osh libc.so.6 [.] 0x00000000000a1846 0.06% 1 osh libc.so.6 [.] 0x00000000000a24eb 0.06% 1 osh libc.so.6 [.] 0x00000000000a26be 0.06% 1 osh libc.so.6 [.] 0x00000000000a2709 0.06% 1 osh libc.so.6 [.] 0x00000000000a273f 0.06% 1 osh libc.so.6 [.] 0x00000000000a27f6 0.06% 1 osh libc.so.6 [.] 0x00000000000a2806 0.06% 1 osh libc.so.6 [.] 0x00000000000a324b 0.06% 1 osh libc.so.6 [.] 0x00000000000a39b3 0.06% 1 osh libc.so.6 [.] 0x00000000000a3a0d 0.06% 1 osh libc.so.6 [.] 0x00000000000a4240 0.06% 1 osh libc.so.6 [.] 0x00000000000a4257 0.06% 1 osh libc.so.6 [.] 0x00000000000a429c 0.06% 1 osh libc.so.6 [.] 0x00000000000a42ac 0.06% 1 osh libc.so.6 [.] 0x00000000000a4395 0.06% 1 osh libc.so.6 [.] 0x00000000000a4463 0.06% 1 osh libc.so.6 [.] 0x00000000000a462f 0.06% 1 osh libc.so.6 [.] 0x00000000000a4883 0.06% 1 osh libc.so.6 [.] 0x00000000000a48b0 0.06% 1 osh libc.so.6 [.] 0x0000000000199364 0.06% 1 osh libc.so.6 [.] 0x00000000001993f4 0.06% 1 osh libc.so.6 [.] 0x0000000000199432 0.06% 1 osh libc.so.6 [.] 0x0000000000199e68 0.06% 1 osh libc.so.6 [.] 0x000000000019b7fc 0.06% 1 osh libc.so.6 [.] 0x00000000001a0844 0.06% 1 osh libc.so.6 [.] 0x00000000001a0861 0.06% 1 osh libc.so.6 [.] 0x00000000001a088d 0.06% 1 osh libc.so.6 [.] 0x00000000001a0899 0.06% 1 osh libc.so.6 [.] 0x00000000001a0ae4 0.06% 1 osh libc.so.6 [.] 0x00000000001a1004 0.06% 1 osh libreadline.so.8.1 [.] rl_make_bare_keymap 0.06% 1 osh oils-for-unix [.] BigStr::internal_find(BigStr*, int, int, int) 0.06% 1 osh oils-for-unix [.] BigStr::slice(int, int) 0.06% 1 osh oils-for-unix [.] Dict::hash_and_probe(int) const 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List::at(int) 0.06% 1 osh oils-for-unix [.] List*>* Alloc*>>() 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.06% 1 osh oils-for-unix [.] List::append(syntax_asdl::CaseArm*) 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List::pop() [clone .isra.0] 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List::slice(int, int) 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::CommandParser(parse_lib::ParseContext*, optview::Parse*, word_parse::WordParser*, lexer::Lexer*, reader::_Reader*, int) 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCaseArm() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCompoundCommand() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseForWords() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseFunctionDef() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseSubshell(bool) 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_AtSecondaryKeyword() 0.06% 1 osh oils-for-unix [.] cmd_parse::_ReadHereLines(reader::_Reader*, syntax_asdl::Redir*, BigStr*) 0.06% 1 osh oils-for-unix [.] memcpy@plt 0.06% 1 osh oils-for-unix [.] memset@plt 0.06% 1 osh oils-for-unix [.] syntax_asdl::List_of_command* Alloc*&>(List*&) 0.06% 1 osh oils-for-unix [.] syntax_asdl::command__CommandList* Alloc*&>(List*&) 0.06% 1 osh oils-for-unix [.] syntax_asdl::command__Sentence* Alloc(syntax_asdl::command_t*&, syntax_asdl::Token*&) 0.06% 1 osh oils-for-unix [.] syntax_asdl::suffix_op__Unary* Alloc(syntax_asdl::Token*&, syntax_asdl::rhs_word_t*&) 0.06% 1 osh oils-for-unix [.] word_::TildeDetectAll(List*) 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::ReadSingleQuoted(types_asdl::lex_mode_e, syntax_asdl::Token*, List*, bool) 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::_ReadDoubleQuoted(syntax_asdl::Token*) 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::_ReadLikeDQ(syntax_asdl::Token*, bool, List*) 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::_ReadUnquotedLeftParts(syntax_asdl::BoolParamBox*) # # (Cannot load tips.txt file, please install perf!) #