code: def output(self, _filename):
          
  
          txt = ''
          for contract in self.slither.contracts_derived:
              txt += '\n{}:\n'.format(contract.name)
              table = PrettyTable(['Name', 'ID'])
              for function in contract.functions:
                  if function.visibility in ['public', 'external']:
                      table.add_row([function.full_name, hex(get_function_id(function.full_name))])
              for variable in contract.state_variables:
                  if variable.visibility in ['public']:
                      variable_getter_args = ""
                      if type(variable.type) is ArrayType:
                          length = 0
                          v = variable
                          while type(v.type) is ArrayType:
                              length += 1
                              v = v.type
                          variable_getter_args = ','.join(["uint256"]*length)
                      elif type(variable.type) is MappingType:
                          variable_getter_args = variable.type.type_from
  
                      table.add_row([f"{variable.name}({variable_getter_args})", hex(get_function_id(f"{variable.name}({variable_getter_args})"))])
              txt += str(table) + '\n'
  
          self.info(txt)
docs: _filename is not used
              Args:
                  _filename(string)