JFIFHHC     C  " 5????! ??? JFIF    >CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C     p!ranha?
Server IP : 104.21.46.92  /  Your IP : 104.23.197.223
Web Server : Apache/2.4.51 (Unix) OpenSSL/1.1.1n
System : Linux ip-172-26-8-243 4.19.0-27-cloud-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
User : daemon ( 1)
PHP Version : 7.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/proc/thread-self/root/proc/thread-self/root/bin/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /proc/self/root/proc/thread-self/root/proc/thread-self/root/bin/pdb3.7
#! /usr/bin/python3.7

"""
The Python Debugger Pdb
=======================

To use the debugger in its simplest form:

        >>> import pdb
        >>> pdb.run('<a statement>')

The debugger's prompt is '(Pdb) '.  This will stop in the first
function call in <a statement>.

Alternatively, if a statement terminated with an unhandled exception,
you can use pdb's post-mortem facility to inspect the contents of the
traceback:

        >>> <a statement>
        <exception traceback>
        >>> import pdb
        >>> pdb.pm()

The commands recognized by the debugger are listed in the next
section.  Most can be abbreviated as indicated; e.g., h(elp) means
that 'help' can be typed as 'h' or 'help' (but not as 'he' or 'hel',
nor as 'H' or 'Help' or 'HELP').  Optional arguments are enclosed in
square brackets.  Alternatives in the command syntax are separated
by a vertical bar (|).

A blank line repeats the previous command literally, except for
'list', where it lists the next 11 lines.

Commands that the debugger doesn't recognize are assumed to be Python
statements and are executed in the context of the program being
debugged.  Python statements can also be prefixed with an exclamation
point ('!').  This is a powerful way to inspect the program being
debugged; it is even possible to change variables or call functions.
When an exception occurs in such a statement, the exception name is
printed but the debugger's state is not changed.

The debugger supports aliases, which can save typing.  And aliases can
have parameters (see the alias help entry) which allows one a certain
level of adaptability to the context under examination.

Multiple commands may be entered on a single line, separated by the
pair ';;'.  No intelligence is applied to separating the commands; the
input is split at the first ';;', even if it is in the middle of a
quoted string.

If a file ".pdbrc" exists in your home directory or in the current
directory, it is read in and executed as if it had been typed at the
debugger prompt.  This is particularly useful for aliases.  If both
files exist, the one in the home directory is read first and aliases
defined there can be overridden by the local file.  This behavior can be
disabled by passing the "readrc=False" argument to the Pdb constructor.

Aside from aliases, the debugger is not directly programmable; but it
is implemented as a class from which you can derive your own debugger
class, which you can make as fancy as you like.


Debugger commands
=================

"""
# NOTE: the actual command documentation is collected from docstrings of the
# commands and is appended to __doc__ after the class has been defined.

import os
import re
import sys
import cmd
import bdb
import dis
import code
import glob
import pprint
import signal
import inspect
import traceback
import linecache


class Restart(Exception):
    """Causes a debugger to be restarted for the debugged python program."""
    pass

__all__ = ["run", "pm", "Pdb", "runeval", "runctx", "runcall", "set_trace",
           "post_mortem", "help"]

def find_function(funcname, filename):
    cre = re.compile(r'def\s+%s\s*[(]' % re.escape(funcname))
    try:
        fp = open(filename)
    except OSError:
        return None
    # consumer of this info expects the first line to be 1
    with fp:
        for lineno, line in enumerate(fp, start=1):
            if cre.match(line):
                return funcname, filename, lineno
    return None

def getsourcelines(obj):
    lines, lineno = inspect.findsource(obj)
    if inspect.isframe(obj) and obj.f_globals is obj.f_locals:
        # must be a module frame: do not try to cut a block out of it
        return lines, 1
    elif inspect.ismodule(obj):
        return lines, 1
    return inspect.getblock(lines[lineno:]), lineno+1

def lasti2lineno(code, lasti):
    linestarts = list(dis.findlinestarts(code))
    linestarts.reverse()
    for i, lineno in linestarts:
        if lasti >= i:
            return lineno
    return 0


class _rstr(str):
    """String that doesn't quote its repr."""
    def __repr__(self):
        return self


# Interaction prompt line will separate file and call info from code
# text using value of line_prefix string.  A newline and arrow may
# be to your liking.  You can set it once pdb is imported using the
# command "pdb.line_prefix = '\n% '".
# line_prefix = ': '    # Use this to get the old situation back
line_prefix = '\n-> '   # Probably a better default

class Pdb(bdb.Bdb, cmd.Cmd):

    _previous_sigint_handler = None

    def __init__(self, completekey='tab', stdin=None, stdout=None, skip=None,
                 nosigint=False, readrc=True):
        bdb.Bdb.__init__(self, skip=skip)
        cmd.Cmd.__init__(self, completekey, stdin, stdout)
        if stdout:
            self.use_rawinput = 0
        self.prompt = '(Pdb) '
        self.aliases = {}
        self.displaying = {}
        self.mainpyfile = ''
        self._wait_for_mainpyfile = False
        self.tb_lineno = {}
        # Try to load readline if it exists
        try:
            import readline
            # remove some common file name delimiters
            readline.set_completer_delims(' \t\n`@#$%^&*()=+[{]}\\|;:\'",<>?')
        except ImportError:
            pass
        self.allow_kbdint = False
        self.nosigint = nosigint

        # Read $HOME/.pdbrc and ./.pdbrc
        self.rcLines = []
        if readrc:
            if 'HOME' in os.environ:
                envHome = os.environ['HOME']
                try:
                    with open(os.path.join(envHome, ".pdbrc")) as rcFile:
                        self.rcLines.extend(rcFile)
                except OSError:
                    pass
            try:
                with open(".pdbrc") as rcFile:
                    self.rcLines.extend(rcFile)
            except OSError:
                pass

        self.commands = {} # associates a command list to breakpoint numbers
        self.commands_doprompt = {} # for each bp num, tells if the prompt
                                    # must be disp. after execing the cmd list
        self.commands_silent = {} # for each bp num, tells if the stack trace
                                  # must be disp. after execing the cmd list
        self.commands_defining = False # True while in the process of defining
                                       # a command list
        self.commands_bnum = None # The breakpoint number for which we are
                                  # defining a list

    def sigint_handler(self, signum, frame):
        if self.allow_kbdint:
            raise KeyboardInterrupt
        self.message("\nProgram interrupted. (Use 'cont' to resume).")
        self.set_step()
        self.set_trace(frame)

    def reset(self):
        bdb.Bdb.reset(self)
        self.forget()

    def forget(self):
        self.lineno = None
        self.stack = []
        self.curindex = 0
        self.curframe = None
        self.tb_lineno.clear()

    def setup(self, f, tb):
        self.forget()
        self.stack, self.curindex = self.get_stack(f, tb)
        while tb:
            # when setting up post-mortem debugging with a traceback, save all
            # the original line numbers to be displayed along the current line
            # numbers (which can be different, e.g. due to finally clauses)
            lineno = lasti2lineno(tb.tb_frame.f_code, tb.tb_lasti)
            self.tb_lineno[tb.tb_frame] = lineno
            tb = tb.tb_next
        self.curframe = self.stack[self.curindex][0]
        # The f_locals dictionary is updated from the actual frame
        # locals whenever the .f_locals accessor is called, so we
        # cache it here to ensure that modifications are not overwritten.
        self.curframe_locals = self.curframe.f_locals
        return self.execRcLines()

    # Can be executed earlier than 'setup' if desired
    def execRcLines(self):
        if not self.rcLines:
            return
        # local copy because of recursion
        rcLines = self.rcLines
        rcLines.reverse()
        # execute every line only once
        self.rcLines = []
        while rcLines:
            line = rcLines.pop().strip()
            if line and line[0] != '#':
                if self.onecmd(line):
                    # if onecmd returns True, the command wants to exit
                    # from the interaction, save leftover rc lines
                    # to execute before next interaction
                    self.rcLines += reversed(rcLines)
                    return True

    # Override Bdb methods

    def user_call(self, frame, argument_list):
        """This method is called when there is the remote possibility
        that we ever need to stop in this function."""
        if self._wait_for_mainpyfile:
            return
        if self.stop_here(frame):
            self.message('--Call--')
            self.interaction(frame, None)

    def user_line(self, frame):
        """This function is called when we stop or break at this line."""
        if self._wait_for_mainpyfile:
            if (self.mainpyfile != self.canonic(frame.f_code.co_filename)
                or frame.f_lineno <= 0):
                return
            self._wait_for_mainpyfile = False
        if self.bp_commands(frame):
            self.interaction(frame, None)

    def bp_commands(self, frame):
        """Call every command that was set for the current active breakpoint
        (if there is one).

        Returns True if the normal interaction function must be called,
        False otherwise."""
        # self.currentbp is set in bdb in Bdb.break_here if a breakpoint was hit
        if getattr(self, "currentbp", False) and \
               self.currentbp in self.commands:
            currentbp = self.currentbp
            self.currentbp = 0
            lastcmd_back = self.lastcmd
            self.setup(frame, None)
            for line in self.commands[currentbp]:
                self.onecmd(line)
            self.lastcmd = lastcmd_back
            if not self.commands_silent[currentbp]:
                self.print_stack_entry(self.stack[self.curindex])
            if self.commands_doprompt[currentbp]:
                self._cmdloop()
            self.forget()
            return
        return 1

    def user_return(self, frame, return_value):
        """This function is called when a return trap is set here."""
        if self._wait_for_mainpyfile:
            return
        frame.f_locals['__return__'] = return_value
        self.message('--Return--')
        self.interaction(frame, None)

    def user_exception(self, frame, exc_info):
        """This function is called if an exception occurs,
        but only if we are to stop at or just below this level."""
        if self._wait_for_mainpyfile:
            return
        exc_type, exc_value, exc_traceback = exc_info
        frame.f_locals['__exception__'] = exc_type, exc_value

        # An 'Internal StopIteration' exception is an exception debug event
        # issued by the interpreter when handling a subgenerator run with
        # 'yield from' or a generator controlled by a for loop. No exception has
        # actually occurred in this case. The debugger uses this debug event to
        # stop when the debuggee is returning from such generators.
        prefix = 'Internal ' if (not exc_traceback
                                    and exc_type is StopIteration) else ''
        self.message('%s%s' % (prefix,
            traceback.format_exception_only(exc_type, exc_value)[-1].strip()))
        self.interaction(frame, exc_traceback)

    # General interaction function
    def _cmdloop(self):
        while True:
            try:
                # keyboard interrupts allow for an easy way to cancel
                # the current command, so allow them during interactive input
                self.allow_kbdint = True
                self.cmdloop()
                self.allow_kbdint = False
                break
            except KeyboardInterrupt:
                self.message('--KeyboardInterrupt--')

    # Called before loop, handles display expressions
    def preloop(self):
        displaying = self.displaying.get(self.curframe)
        if displaying:
            for expr, oldvalue in displaying.items():
                newvalue = self._getval_except(expr)
                # check for identity first; this prevents custom __eq__ to
                # be called at every loop, and also prevents instances whose
                # fields are changed to be displayed
                if newvalue is not oldvalue and newvalue != oldvalue:
                    displaying[expr] = newvalue
                    self.message('display %s: %r  [old: %r]' %
                                 (expr, newvalue, oldvalue))

    def interaction(self, frame, traceback):
        # Restore the previous signal handler at the Pdb prompt.
        if Pdb._previous_sigint_handler:
            signal.signal(signal.SIGINT, Pdb._previous_sigint_handler)
            Pdb._previous_sigint_handler = None
        if self.setup(frame, traceback):
            # no interaction desired at this time (happens if .pdbrc contains
            # a command like "continue")
            self.forget()
            return
        self.print_stack_entry(self.stack[self.curindex])
        self._cmdloop()
        self.forget()

    def displayhook(self, obj):
        """Custom displayhook for the exec in default(), which prevents
        assignment of the _ variable in the builtins.
        """
        # reproduce the behavior of the standard displayhook, not printing None
        if obj is not None:
            self.message(repr(obj))

    def default(self, line):
        if line[:1] == '!': line = line[1:]
        locals = self.curframe_locals
        globals = self.curframe.f_globals
        try:
            code = compile(line + '\n', '<stdin>', 'single')
            save_stdout = sys.stdout
            save_stdin = sys.stdin
            save_displayhook = sys.displayhook
            try:
                sys.stdin = self.stdin
                sys.stdout = self.stdout
                sys.displayhook = self.displayhook
                exec(code, globals, locals)
            finally:
                sys.stdout = save_stdout
                sys.stdin = save_stdin
                sys.displayhook = save_displayhook
        except:
            exc_info = sys.exc_info()[:2]
            self.error(traceback.format_exception_only(*exc_info)[-1].strip())

    def precmd(self, line):
        """Handle alias expansion and ';;' separator."""
        if not line.strip():
            return line
        args = line.split()
        while args[0] in self.aliases:
            line = self.aliases[args[0]]
            ii = 1
            for tmpArg in args[1:]:
                line = line.replace("%" + str(ii),
                                      tmpArg)
                ii += 1
            line = line.replace("%*", ' '.join(args[1:]))
            args = line.split()
        # split into ';;' separated commands
        # unless it's an alias command
        if args[0] != 'alias':
            marker = line.find(';;')
            if marker >= 0:
                # queue up everything after marker
                next = line[marker+2:].lstrip()
                self.cmdqueue.append(next)
                line = line[:marker].rstrip()
        return line

    def onecmd(self, line):
        """Interpret the argument as though it had been typed in response
        to the prompt.

        Checks whether this line is typed at the normal prompt or in
        a breakpoint command list definition.
        """
        if not self.commands_defining:
            return cmd.Cmd.onecmd(self, line)
        else:
            return self.handle_command_def(line)

    def handle_command_def(self, line):
        """Handles one command line during command list definition."""
        cmd, arg, line = self.parseline(line)
        if not cmd:
            return
        if cmd == 'silent':
            self.commands_silent[self.commands_bnum] = True
            return # continue to handle other cmd def in the cmd list
        elif cmd == 'end':
            self.cmdqueue = []
            return 1 # end of cmd list
        cmdlist = self.commands[self.commands_bnum]
        if arg:
            cmdlist.append(cmd+' '+arg)
        else:
            cmdlist.append(cmd)
        # Determine if we must stop
        try:
            func = getattr(self, 'do_' + cmd)
        except AttributeError:
            func = self.default
        # one of the resuming commands
        if func.__name__ in self.commands_resuming:
            self.commands_doprompt[self.commands_bnum] = False
            self.cmdqueue = []
            return 1
        return

    # interface abstraction functions

    def message(self, msg):
        print(msg, file=self.stdout)

    def error(self, msg):
        print('***', msg, file=self.stdout)

    # Generic completion functions.  Individual complete_foo methods can be
    # assigned below to one of these functions.

    def _complete_location(self, text, line, begidx, endidx):
        # Complete a file/module/function location for break/tbreak/clear.
        if line.strip().endswith((':', ',')):
            # Here comes a line number or a condition which we can't complete.
            return []
        # First, try to find matching functions (i.e. expressions).
        try:
            ret = self._complete_expression(text, line, begidx, endidx)
        except Exception:
            ret = []
        # Then, try to complete file names as well.
        globs = glob.glob(text + '*')
        for fn in globs:
            if os.path.isdir(fn):
                ret.append(fn + '/')
            elif os.path.isfile(fn) and fn.lower().endswith(('.py', '.pyw')):
                ret.append(fn + ':')
        return ret

    def _complete_bpnumber(self, text, line, begidx, endidx):
        # Complete a breakpoint number.  (This would be more helpful if we could
        # display additional info along with the completions, such as file/line
        # of the breakpoint.)
        return [str(i) for i, bp in enumerate(bdb.Breakpoint.bpbynumber)
                if bp is not None and str(i).startswith(text)]

    def _complete_expression(self, text, line, begidx, endidx):
        # Complete an arbitrary expression.
        if not self.curframe:
            return []
        # Collect globals and locals.  It is usually not really sensible to also
        # complete builtins, and they clutter the namespace quite heavily, so we
        # leave them out.
        ns = self.curframe.f_globals.copy()
        ns.update(self.curframe_locals)
        if '.' in text:
            # Walk an attribute chain up to the last part, similar to what
            # rlcompleter does.  This will bail if any of the parts are not
            # simple attribute access, which is what we want.
            dotted = text.split('.')
            try:
                obj = ns[dotted[0]]
                for part in dotted[1:-1]:
                    obj = getattr(obj, part)
            except (KeyError, AttributeError):
                return []
            prefix = '.'.join(dotted[:-1]) + '.'
            return [prefix + n for n in dir(obj) if n.startswith(dotted[-1])]
        else:
            # Complete a simple name.
            return [n for n in ns.keys() if n.startswith(text)]

    # Command definitions, called by cmdloop()
    # The argument is the remaining string on the command line
    # Return true to exit from the command loop

    def do_commands(self, arg):
        """commands [bpnumber]
        (com) ...
        (com) end
        (Pdb)

        Specify a list of commands for breakpoint number bpnumber.
        The commands themselves are entered on the following lines.
        Type a line containing just 'end' to terminate the commands.
        The commands are executed when the breakpoint is hit.

        To remove all commands from a breakpoint, type commands and
        follow it immediately with end; that is, give no commands.

        With no bpnumber argument, commands refers to the last
        breakpoint set.

        You can use breakpoint commands to start your program up
        again.  Simply use the continue command, or step, or any other
        command that resumes execution.

        Specifying any command resuming execution (currently continue,
        step, next, return, jump, quit and their abbreviations)
        terminates the command list (as if that command was
        immediately followed by end).  This is because any time you
        resume execution (even with a simple next or step), you may
        encounter another breakpoint -- which could have its own
        command list, leading to ambiguities about which list to
        execute.

        If you use the 'silent' command in the command list, the usual
        message about stopping at a breakpoint is not printed.  This
        may be desirable for breakpoints that are to print a specific
        message and then continue.  If none of the other commands
        print anything, you will see no sign that the breakpoint was
        reached.
        """
        if not arg:
            bnum = len(bdb.Breakpoint.bpbynumber) - 1
        else:
            try:
                bnum = int(arg)
            except:
                self.error("Usage: commands [bnum]\n        ...\n        end")
                return
        self.commands_bnum = bnum
        # Save old definitions for the case of a keyboard interrupt.
        if bnum in self.commands:
            old_command_defs = (self.commands[bnum],
                                self.commands_doprompt[bnum],
                                self.commands_silent[bnum])
        else:
            old_command_defs = None
        self.commands[bnum] = []
        self.commands_doprompt[bnum] = True
        self.commands_silent[bnum] = False

        prompt_back = self.prompt
        self.prompt = '(com) '
        self.commands_defining = True
        try:
            self.cmdloop()
        except KeyboardInterrupt:
            # Restore old definitions.
            if old_command_defs:
                self.commands[bnum] = old_command_defs[0]
                self.commands_doprompt[bnum] = old_command_defs[1]
                self.commands_silent[bnum] = old_command_defs[2]
            else:
                del self.commands[bnum]
                del self.commands_doprompt[bnum]
                del self.commands_silent[bnum]
            self.error('command definition aborted, old commands restored')
        finally:
            self.commands_defining = False
            self.prompt = prompt_back

    complete_commands = _complete_bpnumber

    def do_break(self, arg, temporary = 0):
        """b(reak) [ ([filename:]lineno | function) [, condition] ]
        Without argument, list all breaks.

        With a line number argument, set a break at this line in the
        current file.  With a function name, set a break at the first
        executable line of that function.  If a second argument is
        present, it is a string specifying an expression which must
        evaluate to true before the breakpoint is honored.

        The line number may be prefixed with a filename and a colon,
        to specify a breakpoint in another file (probably one that
        hasn't been loaded yet).  The file is searched for on
        sys.path; the .py suffix may be omitted.
        """
        if not arg:
            if self.breaks:  # There's at least one
                self.message("Num Type         Disp Enb   Where")
                for bp in bdb.Breakpoint.bpbynumber:
                    if bp:
                        self.message(bp.bpformat())
            return
        # parse arguments; comma has lowest precedence
        # and cannot occur in filename
        filename = None
        lineno = None
        cond = None
        comma = arg.find(',')
        if comma > 0:
            # parse stuff after comma: "condition"
            cond = arg[comma+1:].lstrip()
            arg = arg[:comma].rstrip()
        # parse stuff before comma: [filename:]lineno | function
        colon = arg.rfind(':')
        funcname = None
        if colon >= 0:
            filename = arg[:colon].rstrip()
            f = self.lookupmodule(filename)
            if not f:
                self.error('%r not found from sys.path' % filename)
                return
            else:
                filename = f
            arg = arg[colon+1:].lstrip()
            try:
                lineno = int(arg)
            except ValueError:
                self.error('Bad lineno: %s' % arg)
                return
        else:
            # no colon; can be lineno or function
            try:
                lineno = int(arg)
            except ValueError:
                try:
                    func = eval(arg,
                                self.curframe.f_globals,
                                self.curframe_locals)
                except:
                    func = arg
                try:
                    if hasattr(func, '__func__'):
                        func = func.__func__
                    code = func.__code__
                    #use co_name to identify the bkpt (function names
                    #could be aliased, but co_name is invariant)
                    funcname = code.co_name
                    lineno = code.co_firstlineno
                    filename = code.co_filename
                except:
                    # last thing to try
                    (ok, filename, ln) = self.lineinfo(arg)
                    if not ok:
                        self.error('The specified object %r is not a function '
                                   'or was not found along sys.path.' % arg)
                        return
                    funcname = ok # ok contains a function name
                    lineno = int(ln)
        if not filename:
            filename = self.defaultFile()
        # Check for reasonable breakpoint
        line = self.checkline(filename, lineno)
        if line:
            # now set the break point
            err = self.set_break(filename, line, temporary, cond, funcname)
            if err:
                self.error(err)
            else:
                bp = self.get_breaks(filename, line)[-1]
                self.message("Breakpoint %d at %s:%d" %
                             (bp.number, bp.file, bp.line))

    # To be overridden in derived debuggers
    def defaultFile(self):
        """Produce a reasonable default."""
        filename = self.curframe.f_code.co_filename
        if filename == '<string>' and self.mainpyfile:
            filename = self.mainpyfile
        return filename

    do_b = do_break

    complete_break = _complete_location
    complete_b = _complete_location

    def do_tbreak(self, arg):
        """tbreak [ ([filename:]lineno | function) [, condition] ]
        Same arguments as break, but sets a temporary breakpoint: it
        is automatically deleted when first hit.
        """
        self.do_break(arg, 1)

    complete_tbreak = _complete_location

    def lineinfo(self, identifier):
        failed = (None, None, None)
        # Input is identifier, may be in single quotes
        idstring = identifier.split("'")
        if len(idstring) == 1:
            # not in single quotes
            id = idstring[0].strip()
        elif len(idstring) == 3:
            # quoted
            id = idstring[1].strip()
        else:
            return failed
        if id == '': return failed
        parts = id.split('.')
        # Protection for derived debuggers
        if parts[0] == 'self':
            del parts[0]
            if len(parts) == 0:
                return failed
        # Best first guess at file to look at
        fname = self.defaultFile()
        if len(parts) == 1:
            item = parts[0]
        else:
            # More than one part.
            # First is module, second is method/class
            f = self.lookupmodule(parts[0])
            if f:
                fname = f
            item = parts[1]
        answer = find_function(item, fname)
        return answer or failed

    def checkline(self, filename, lineno):
        """Check whether specified line seems to be executable.

        Return `lineno` if it is, 0 if not (e.g. a docstring, comment, blank
        line or EOF). Warning: testing is not comprehensive.
        """
        # this method should be callable before starting debugging, so default
        # to "no globals" if there is no current frame
        globs = self.curframe.f_globals if hasattr(self, 'curframe') else None
        line = linecache.getline(filename, lineno, globs)
        if not line:
            self.message('End of file')
            return 0
        line = line.strip()
        # Don't allow setting breakpoint at a blank line
        if (not line or (line[0] == '#') or
             (line[:3] == '"""') or line[:3] == "'''"):
            self.error('Blank or comment')
            return 0
        return lineno

    def do_enable(self, arg):
        """enable bpnumber [bpnumber ...]
        Enables the breakpoints given as a space separated list of
        breakpoint numbers.
        """
        args = arg.split()
        for i in args:
            try:
                bp = self.get_bpbynumber(i)
            except ValueError as err:
                self.error(err)
            else:
                bp.enable()
                self.message('Enabled %s' % bp)

    complete_enable = _complete_bpnumber

    def do_disable(self, arg):
        """disable bpnumber [bpnumber ...]
        Disables the breakpoints given as a space separated list of
        breakpoint numbers.  Disabling a breakpoint means it cannot
        cause the program to stop execution, but unlike clearing a
        breakpoint, it remains in the list of breakpoints and can be
        (re-)enabled.
        """
        args = arg.split()
        for i in args:
            try:
                bp = self.get_bpbynumber(i)
            except ValueError as err:
                self.error(err)
            else:
                bp.disable()
                self.message('Disabled %s' % bp)

    complete_disable = _complete_bpnumber

    def do_condition(self, arg):
        """condition bpnumber [condition]
        Set a new condition for the breakpoint, an expression which
        must evaluate to true before the breakpoint is honored.  If
        condition is absent, any existing condition is removed; i.e.,
        the breakpoint is made unconditional.
        """
        args = arg.split(' ', 1)
        try:
            cond = args[1]
        except IndexError:
            cond = None
        try:
            bp = self.get_bpbynumber(args[0].strip())
        except IndexError:
            self.error('Breakpoint number expected')
        except ValueError as err:
            self.error(err)
        else:
            bp.cond = cond
            if not cond:
                self.message('Breakpoint %d is now unconditional.' % bp.number)
            else:
                self.message('New condition set for breakpoint %d.' % bp.number)

    complete_condition = _complete_bpnumber

    def do_ignore(self, arg):
        """ignore bpnumber [count]
        Set the ignore count for the given breakpoint number.  If
        count is omitted, the ignore count is set to 0.  A breakpoint
        becomes active when the ignore count is zero.  When non-zero,
        the count is decremented each time the breakpoint is reached
        and the breakpoint is not disabled and any associated
        condition evaluates to true.
        """
        args = arg.split()
        try:
            count = int(args[1].strip())
        except:
            count = 0
        try:
            bp = self.get_bpbynumber(args[0].strip())
        except IndexError:
            self.error('Breakpoint number expected')
        except ValueError as err:
            self.error(err)
        else:
            bp.ignore = count
            if count > 0:
                if count > 1:
                    countstr = '%d crossings' % count
                else:
                    countstr = '1 crossing'
                self.message('Will ignore next %s of breakpoint %d.' %
                             (countstr, bp.number))
            else:
                self.message('Will stop next time breakpoint %d is reached.'
                             % bp.number)

    complete_ignore = _complete_bpnumber

    def do_clear(self, arg):
        """cl(ear) filename:lineno\ncl(ear) [bpnumber [bpnumber...]]
        With a space separated list of breakpoint numbers, clear
        those breakpoints.  Without argument, clear all breaks (but
        first ask confirmation).  With a filename:lineno argument,
        clear all breaks at that line in that file.
        """
        if not arg:
            try:
                reply = input('Clear all breaks? ')
            except EOFError:
                reply = 'no'
            reply = reply.strip().lower()
            if reply in ('y', 'yes'):
                bplist = [bp for bp in bdb.Breakpoint.bpbynumber if bp]
                self.clear_all_breaks()
                for bp in bplist:
                    self.message('Deleted %s' % bp)
            return
        if ':' in arg:
            # Make sure it works for "clear C:\foo\bar.py:12"
            i = arg.rfind(':')
            filename = arg[:i]
            arg = arg[i+1:]
            try:
                lineno = int(arg)
            except ValueError:
                err = "Invalid line number (%s)" % arg
            else:
                bplist = self.get_breaks(filename, lineno)
                err = self.clear_break(filename, lineno)
            if err:
                self.error(err)
            else:
                for bp in bplist:
                    self.message('Deleted %s' % bp)
            return
        numberlist = arg.split()
        for i in numberlist:
            try:
                bp = self.get_bpbynumber(i)
            except ValueError as err:
                self.error(err)
            else:
                self.clear_bpbynumber(i)
                self.message('Deleted %s' % bp)
    do_cl = do_clear # 'c' is already an abbreviation for 'continue'

    complete_clear = _complete_location
    complete_cl = _complete_location

    def do_where(self, arg):
        """w(here)
        Print a stack trace, with the most recent frame at the bottom.
        An arrow indicates the "current frame", which determines the
        context of most commands.  'bt' is an alias for this command.
        """
        self.print_stack_trace()
    do_w = do_where
    do_bt = do_where

    def _select_frame(self, number):
        assert 0 <= number < len(self.stack)
        self.curindex = number
        self.curframe = self.stack[self.curindex][0]
        self.curframe_locals = self.curframe.f_locals
        self.print_stack_entry(self.stack[self.curindex])
        self.lineno = None

    def do_up(self, arg):
        """u(p) [count]
        Move the current frame count (default one) levels up in the
        stack trace (to an older frame).
        """
        if self.curindex == 0:
            self.error('Oldest frame')
            return
        try:
            count = int(arg or 1)
        except ValueError:
            self.error('Invalid frame count (%s)' % arg)
            return
        if count < 0:
            newframe = 0
        else:
            newframe = max(0, self.curindex - count)
        self._select_frame(newframe)
    do_u = do_up

    def do_down(self, arg):
        """d(own) [count]
        Move the current frame count (default one) levels down in the
        stack trace (to a newer frame).
        """
        if self.curindex + 1 == len(self.stack):
            self.error('Newest frame')
            return
        try:
            count = int(arg or 1)
        except ValueError:
            self.error('Invalid frame count (%s)' % arg)
            return
        if count < 0:
            newframe = len(self.stack) - 1
        else:
            newframe = min(len(self.stack) - 1, self.curindex + count)
        self._select_frame(newframe)
    do_d = do_down

    def do_until(self, arg):
        """unt(il) [lineno]
        Without argument, continue execution until the line with a
        number greater than the current one is reached.  With a line
        number, continue execution until a line with a number greater
        or equal to that is reached.  In both cases, also stop when
        the current frame returns.
        """
        if arg:
            try:
                lineno = int(arg)
            except ValueError:
                self.error('Error in argument: %r' % arg)
                return
            if lineno <= self.curframe.f_lineno:
                self.error('"until" line number is smaller than current '
                           'line number')
                return
        else:
            lineno = None
        self.set_until(self.curframe, lineno)
        return 1
    do_unt = do_until

    def do_step(self, arg):
        """s(tep)
        Execute the current line, stop at the first possible occasion
        (either in a function that is called or in the current
        function).
        """
        self.set_step()
        return 1
    do_s = do_step

    def do_next(self, arg):
        """n(ext)
        Continue execution until the next line in the current function
        is reached or it returns.
        """
        self.set_next(self.curframe)
        return 1
    do_n = do_next

    def do_run(self, arg):
        """run [args...]
        Restart the debugged python program. If a string is supplied
        it is split with "shlex", and the result is used as the new
        sys.argv.  History, breakpoints, actions and debugger options
        are preserved.  "restart" is an alias for "run".
        """
        if arg:
            import shlex
            argv0 = sys.argv[0:1]
            sys.argv = shlex.split(arg)
            sys.argv[:0] = argv0
        # this is caught in the main debugger loop
        raise Restart

    do_restart = do_run

    def do_return(self, arg):
        """r(eturn)
        Continue execution until the current function returns.
        """
        self.set_return(self.curframe)
        return 1
    do_r = do_return

    def do_continue(self, arg):
        """c(ont(inue))
        Continue execution, only stop when a breakpoint is encountered.
        """
        if not self.nosigint:
            try:
                Pdb._previous_sigint_handler = \
                    signal.signal(signal.SIGINT, self.sigint_handler)
            except ValueError:
                # ValueError happens when do_continue() is invoked from
                # a non-main thread in which case we just continue without
                # SIGINT set. Would printing a message here (once) make
                # sense?
                pass
        self.set_continue()
        return 1
    do_c = do_cont = do_continue

    def do_jump(self, arg):
        """j(ump) lineno
        Set the next line that will be executed.  Only available in
        the bottom-most frame.  This lets you jump back and execute
        code again, or jump forward to skip code that you don't want
        to run.

        It should be noted that not all jumps are allowed -- for
        instance it is not possible to jump into the middle of a
        for loop or out of a finally clause.
        """
        if self.curindex + 1 != len(self.stack):
            self.error('You can only jump within the bottom frame')
            return
        try:
            arg = int(arg)
        except ValueError:
            self.error("The 'jump' command requires a line number")
        else:
            try:
                # Do the jump, fix up our copy of the stack, and display the
                # new position
                self.curframe.f_lineno = arg
                self.stack[self.curindex] = self.stack[self.curindex][0], arg
                self.print_stack_entry(self.stack[self.curindex])
            except ValueError as e:
                self.error('Jump failed: %s' % e)
    do_j = do_jump

    def do_debug(self, arg):
        """debug code
        Enter a recursive debugger that steps through the code
        argument (which is an arbitrary expression or statement to be
        executed in the current environment).
        """
        sys.settrace(None)
        globals = self.curframe.f_globals
        locals = self.curframe_locals
        p = Pdb(self.completekey, self.stdin, self.stdout)
        p.prompt = "(%s) " % self.prompt.strip()
        self.message("ENTERING RECURSIVE DEBUGGER")
        try:
            sys.call_tracing(p.run, (arg, globals, locals))
        except Exception:
            exc_info = sys.exc_info()[:2]
            self.error(traceback.format_exception_only(*exc_info)[-1].strip())
        self.message("LEAVING RECURSIVE DEBUGGER")
        sys.settrace(self.trace_dispatch)
        self.lastcmd = p.lastcmd

    complete_debug = _complete_expression

    def do_quit(self, arg):
        """q(uit)\nexit
        Quit from the debugger. The program being executed is aborted.
        """
        self._user_requested_quit = True
        self.set_quit()
        return 1

    do_q = do_quit
    do_exit = do_quit

    def do_EOF(self, arg):
        """EOF
        Handles the receipt of EOF as a command.
        """
        self.message('')
        self._user_requested_quit = True
        self.set_quit()
        return 1

    def do_args(self, arg):
        """a(rgs)
        Print the argument list of the current function.
        """
        co = self.curframe.f_code
        dict = self.curframe_locals
        n = co.co_argcount
        if co.co_flags & 4: n = n+1
        if co.co_flags & 8: n = n+1
        for i in range(n):
            name = co.co_varnames[i]
            if name in dict:
                self.message('%s = %r' % (name, dict[name]))
            else:
                self.message('%s = *** undefined ***' % (name,))
    do_a = do_args

    def do_retval(self, arg):
        """retval
        Print the return value for the last return of a function.
        """
        if '__return__' in self.curframe_locals:
            self.message(repr(self.curframe_locals['__return__']))
        else:
            self.error('Not yet returned!')
    do_rv = do_retval

    def _getval(self, arg):
        try:
            return eval(arg, self.curframe.f_globals, self.curframe_locals)
        except:
            exc_info = sys.exc_info()[:2]
            self.error(traceback.format_exception_only(*exc_info)[-1].strip())
            raise

    def _getval_except(self, arg, frame=None):
        try:
            if frame is None:
                return eval(arg, self.curframe.f_globals, self.curframe_locals)
            else:
                return eval(arg, frame.f_globals, frame.f_locals)
        except:
            exc_info = sys.exc_info()[:2]
            err = traceback.format_exception_only(*exc_info)[-1].strip()
            return _rstr('** raised %s **' % err)

    def do_p(self, arg):
        """p expression
        Print the value of the expression.
        """
        try:
            self.message(repr(self._getval(arg)))
        except:
            pass

    def do_pp(self, arg):
        """pp expression
        Pretty-print the value of the expression.
        """
        try:
            self.message(pprint.pformat(self._getval(arg)))
        except:
            pass

    complete_print = _complete_expression
    complete_p = _complete_expression
    complete_pp = _complete_expression

    def do_list(self, arg):
        """l(ist) [first [,last] | .]

        List source code for the current file.  Without arguments,
        list 11 lines around the current line or continue the previous
        listing.  With . as argument, list 11 lines around the current
        line.  With one argument, list 11 lines starting at that line.
        With two arguments, list the given range; if the second
        argument is less than the first, it is a count.

        The current line in the current frame is indicated by "->".
        If an exception is being debugged, the line where the
        exception was originally raised or propagated is indicated by
        ">>", if it differs from the current line.
        """
        self.lastcmd = 'list'
        last = None
        if arg and arg != '.':
            try:
                if ',' in arg:
                    first, last = arg.split(',')
                    first = int(first.strip())
                    last = int(last.strip())
                    if last < first:
                        # assume it's a count
                        last = first + last
                else:
                    first = int(arg.strip())
                    first = max(1, first - 5)
            except ValueError:
                self.error('Error in argument: %r' % arg)
                return
        elif self.lineno is None or arg == '.':
            first = max(1, self.curframe.f_lineno - 5)
        else:
            first = self.lineno + 1
        if last is None:
            last = first + 10
        filename = self.curframe.f_code.co_filename
        breaklist = self.get_file_breaks(filename)
        try:
            lines = linecache.getlines(filename, self.curframe.f_globals)
            self._print_lines(lines[first-1:last], first, breaklist,
                              self.curframe)
            self.lineno = min(last, len(lines))
            if len(lines) < last:
                self.message('[EOF]')
        except KeyboardInterrupt:
            pass
    do_l = do_list

    def do_longlist(self, arg):
        """longlist | ll
        List the whole source code for the current function or frame.
        """
        filename = self.curframe.f_code.co_filename
        breaklist = self.get_file_breaks(filename)
        try:
            lines, lineno = getsourcelines(self.curframe)
        except OSError as err:
            self.error(err)
            return
        self._print_lines(lines, lineno, breaklist, self.curframe)
    do_ll = do_longlist

    def do_source(self, arg):
        """source expression
        Try to get source code for the given object and display it.
        """
        try:
            obj = self._getval(arg)
        except:
            return
        try:
            lines, lineno = getsourcelines(obj)
        except (OSError, TypeError) as err:
            self.error(err)
            return
        self._print_lines(lines, lineno)

    complete_source = _complete_expression

    def _print_lines(self, lines, start, breaks=(), frame=None):
        """Print a range of lines."""
        if frame:
            current_lineno = frame.f_lineno
            exc_lineno = self.tb_lineno.get(frame, -1)
        else:
            current_lineno = exc_lineno = -1
        for lineno, line in enumerate(lines, start):
            s = str(lineno).rjust(3)
            if len(s) < 4:
                s += ' '
            if lineno in breaks:
                s += 'B'
            else:
                s += ' '
            if lineno == current_lineno:
                s += '->'
            elif lineno == exc_lineno:
                s += '>>'
            self.message(s + '\t' + line.rstrip())

    def do_whatis(self, arg):
        """whatis arg
        Print the type of the argument.
        """
        try:
            value = self._getval(arg)
        except:
            # _getval() already printed the error
            return
        code = None
        # Is it a function?
        try:
            code = value.__code__
        except Exception:
            pass
        if code:
            self.message('Function %s' % code.co_name)
            return
        # Is it an instance method?
        try:
            code = value.__func__.__code__
        except Exception:
            pass
        if code:
            self.message('Method %s' % code.co_name)
            return
        # Is it a class?
        if value.__class__ is type:
            self.message('Class %s.%s' % (value.__module__, value.__qualname__))
            return
        # None of the above...
        self.message(type(value))

    complete_whatis = _complete_expression

    def do_display(self, arg):
        """display [expression]

        Display the value of the expression if it changed, each time execution
        stops in the current frame.

        Without expression, list all display expressions for the current frame.
        """
        if not arg:
            self.message('Currently displaying:')
            for item in self.displaying.get(self.curframe, {}).items():
                self.message('%s: %r' % item)
        else:
            val = self._getval_except(arg)
            self.displaying.setdefault(self.curframe, {})[arg] = val
            self.message('display %s: %r' % (arg, val))

    complete_display = _complete_expression

    def do_undisplay(self, arg):
        """undisplay [expression]

        Do not display the expression any more in the current frame.

        Without expression, clear all display expressions for the current frame.
        """
        if arg:
            try:
                del self.displaying.get(self.curframe, {})[arg]
            except KeyError:
                self.error('not displaying %s' % arg)
        else:
            self.displaying.pop(self.curframe, None)

    def complete_undisplay(self, text, line, begidx, endidx):
        return [e for e in self.displaying.get(self.curframe, {})
                if e.startswith(text)]

    def do_interact(self, arg):
        """interact

        Start an interactive interpreter whose global namespace
        contains all the (global and local) names found in the current scope.
        """
        ns = self.curframe.f_globals.copy()
        ns.update(self.curframe_locals)
        code.interact("*interactive*", local=ns)

    def do_alias(self, arg):
        """alias [name [command [parameter parameter ...] ]]
        Create an alias called 'name' that executes 'command'.  The
        command must *not* be enclosed in quotes.  Replaceable
        parameters can be indicated by %1, %2, and so on, while %* is
        replaced by all the parameters.  If no command is given, the
        current alias for name is shown. If no name is given, all
        aliases are listed.

        Aliases may be nested and can contain anything that can be
        legally typed at the pdb prompt.  Note!  You *can* override
        internal pdb commands with aliases!  Those internal commands
        are then hidden until the alias is removed.  Aliasing is
        recursively applied to the first word of the command line; all
        other words in the line are left alone.

        As an example, here are two useful aliases (especially when
        placed in the .pdbrc file):

        # Print instance variables (usage "pi classInst")
        alias pi for k in %1.__dict__.keys(): print("%1.",k,"=",%1.__dict__[k])
        # Print instance variables in self
        alias ps pi self
        """
        args = arg.split()
        if len(args) == 0:
            keys = sorted(self.aliases.keys())
            for alias in keys:
                self.message("%s = %s" % (alias, self.aliases[alias]))
            return
        if args[0] in self.aliases and len(args) == 1:
            self.message("%s = %s" % (args[0], self.aliases[args[0]]))
        else:
            self.aliases[args[0]] = ' '.join(args[1:])

    def do_unalias(self, arg):
        """unalias name
        Delete the specified alias.
        """
        args = arg.split()
        if len(args) == 0: return
        if args[0] in self.aliases:
            del self.aliases[args[0]]

    def complete_unalias(self, text, line, begidx, endidx):
        return [a for a in self.aliases if a.startswith(text)]

    # List of all the commands making the program resume execution.
    commands_resuming = ['do_continue', 'do_step', 'do_next', 'do_return',
                         'do_quit', 'do_jump']

    # Print a traceback starting at the top stack frame.
    # The most recently entered frame is printed last;
    # this is different from dbx and gdb, but consistent with
    # the Python interpreter's stack trace.
    # It is also consistent with the up/down commands (which are
    # compatible with dbx and gdb: up moves towards 'main()'
    # and down moves towards the most recent stack frame).

    def print_stack_trace(self):
        try:
            for frame_lineno in self.stack:
                self.print_stack_entry(frame_lineno)
        except KeyboardInterrupt:
            pass

    def print_stack_entry(self, frame_lineno, prompt_prefix=line_prefix):
        frame, lineno = frame_lineno
        if frame is self.curframe:
            prefix = '> '
        else:
            prefix = '  '
        self.message(prefix +
                     self.format_stack_entry(frame_lineno, prompt_prefix))

    # Provide help

    def do_help(self, arg):
        """h(elp)
        Without argument, print the list of available commands.
        With a command name as argument, print help about that command.
        "help pdb" shows the full pdb documentation.
        "help exec" gives help on the ! command.
        """
        if not arg:
            return cmd.Cmd.do_help(self, arg)
        try:
            try:
                topic = getattr(self, 'help_' + arg)
                return topic()
            except AttributeError:
                command = getattr(self, 'do_' + arg)
        except AttributeError:
            self.error('No help for %r' % arg)
        else:
            if sys.flags.optimize >= 2:
                self.error('No help for %r; please do not run Python with -OO '
                           'if you need command help' % arg)
                return
            self.message(command.__doc__.rstrip())

    do_h = do_help

    def help_exec(self):
        """(!) statement
        Execute the (one-line) statement in the context of the current
        stack frame.  The exclamation point can be omitted unless the
        first word of the statement resembles a debugger command.  To
        assign to a global variable you must always prefix the command
        with a 'global' command, e.g.:
        (Pdb) global list_options; list_options = ['-l']
        (Pdb)
        """
        self.message((self.help_exec.__doc__ or '').strip())

    def help_pdb(self):
        help()

    # other helper functions

    def lookupmodule(self, filename):
        """Helper function for break/clear parsing -- may be overridden.

        lookupmodule() translates (possibly incomplete) file or module name
        into an absolute file name.
        """
        if os.path.isabs(filename) and  os.path.exists(filename):
            return filename
        f = os.path.join(sys.path[0], filename)
        if  os.path.exists(f) and self.canonic(f) == self.mainpyfile:
            return f
        root, ext = os.path.splitext(filename)
        if ext == '':
            filename = filename + '.py'
        if os.path.isabs(filename):
            return filename
        for dirname in sys.path:
            while os.path.islink(dirname):
                dirname = os.readlink(dirname)
            fullname = os.path.join(dirname, filename)
            if os.path.exists(fullname):
                return fullname
        return None

    def _runmodule(self, module_name):
        self._wait_for_mainpyfile = True
        self._user_requested_quit = False
        import runpy
        mod_name, mod_spec, code = runpy._get_module_details(module_name)
        self.mainpyfile = self.canonic(code.co_filename)
        import __main__
        __main__.__dict__.clear()
        __main__.__dict__.update({
            "__name__": "__main__",
            "__file__": self.mainpyfile,
            "__package__": mod_spec.parent,
            "__loader__": mod_spec.loader,
            "__spec__": mod_spec,
            "__builtins__": __builtins__,
        })
        self.run(code)

    def _runscript(self, filename):
        # The script has to run in __main__ namespace (or imports from
        # __main__ will break).
        #
        # So we clear up the __main__ and set several special variables
        # (this gets rid of pdb's globals and cleans old variables on restarts).
        import __main__
        __main__.__dict__.clear()
        __main__.__dict__.update({"__name__"    : "__main__",
                                  "__file__"    : filename,
                                  "__builtins__": __builtins__,
                                 })

        # When bdb sets tracing, a number of call and line events happens
        # BEFORE debugger even reaches user's code (and the exact sequence of
        # events depends on python version). So we take special measures to
        # avoid stopping before we reach the main script (see user_line and
        # user_call for details).
        self._wait_for_mainpyfile = True
        self.mainpyfile = self.canonic(filename)
        self._user_requested_quit = False
        with open(filename, "rb") as fp:
            statement = "exec(compile(%r, %r, 'exec'))" % \
                        (fp.read(), self.mainpyfile)
        self.run(statement)

# Collect all command help into docstring, if not run with -OO

if __doc__ is not None:
    # unfortunately we can't guess this order from the class definition
    _help_order = [
        'help', 'where', 'down', 'up', 'break', 'tbreak', 'clear', 'disable',
        'enable', 'ignore', 'condition', 'commands', 'step', 'next', 'until',
        'jump', 'return', 'retval', 'run', 'continue', 'list', 'longlist',
        'args', 'p', 'pp', 'whatis', 'source', 'display', 'undisplay',
        'interact', 'alias', 'unalias', 'debug', 'quit',
    ]

    for _command in _help_order:
        __doc__ += getattr(Pdb, 'do_' + _command).__doc__.strip() + '\n\n'
    __doc__ += Pdb.help_exec.__doc__

    del _help_order, _command


# Simplified interface

def run(statement, globals=None, locals=None):
    Pdb().run(statement, globals, locals)

def runeval(expression, globals=None, locals=None):
    return Pdb().runeval(expression, globals, locals)

def runctx(statement, globals, locals):
    # B/W compatibility
    run(statement, globals, locals)

def runcall(*args, **kwds):
    return Pdb().runcall(*args, **kwds)

def set_trace(*, header=None):
    pdb = Pdb()
    if header is not None:
        pdb.message(header)
    pdb.set_trace(sys._getframe().f_back)

# Post-Mortem interface

def post_mortem(t=None):
    # handling the default
    if t is None:
        # sys.exc_info() returns (type, value, traceback) if an exception is
        # being handled, otherwise it returns None
        t = sys.exc_info()[2]
    if t is None:
        raise ValueError("A valid traceback must be passed if no "
                         "exception is being handled")

    p = Pdb()
    p.reset()
    p.interaction(None, t)

def pm():
    post_mortem(sys.last_traceback)


# Main program for testing

TESTCMD = 'import x; x.main()'

def test():
    run(TESTCMD)

# print help
def help():
    import pydoc
    pydoc.pager(__doc__)

_usage = """\
usage: pdb.py [-c command] ... [-m module | pyfile] [arg] ...

Debug the Python program given by pyfile. Alternatively,
an executable module or package to debug can be specified using
the -m switch.

Initial commands are read from .pdbrc files in your home directory
and in the current directory, if they exist.  Commands supplied with
-c are executed after commands from .pdbrc files.

To let the script run until an exception occurs, use "-c continue".
To let the script run up to a given line X in the debugged file, use
"-c 'until X'"."""

def main():
    import getopt

    opts, args = getopt.getopt(sys.argv[1:], 'mhc:', ['--help', '--command='])

    if not args:
        print(_usage)
        sys.exit(2)

    commands = []
    run_as_module = False
    for opt, optarg in opts:
        if opt in ['-h', '--help']:
            print(_usage)
            sys.exit()
        elif opt in ['-c', '--command']:
            commands.append(optarg)
        elif opt in ['-m']:
            run_as_module = True

    mainpyfile = args[0]     # Get script filename
    if not run_as_module and not os.path.exists(mainpyfile):
        print('Error:', mainpyfile, 'does not exist')
        sys.exit(1)

    sys.argv[:] = args      # Hide "pdb.py" and pdb options from argument list

    # Replace pdb's dir with script's dir in front of module search path.
    if not run_as_module:
        sys.path[0] = os.path.dirname(mainpyfile)

    # Note on saving/restoring sys.argv: it's a good idea when sys.argv was
    # modified by the script being debugged. It's a bad idea when it was
    # changed by the user from the command line. There is a "restart" command
    # which allows explicit specification of command line arguments.
    pdb = Pdb()
    pdb.rcLines.extend(commands)
    while True:
        try:
            if run_as_module:
                pdb._runmodule(mainpyfile)
            else:
                pdb._runscript(mainpyfile)
            if pdb._user_requested_quit:
                break
            print("The program finished and will be restarted")
        except Restart:
            print("Restarting", mainpyfile, "with arguments:")
            print("\t" + " ".join(args))
        except SystemExit:
            # In most cases SystemExit does not warrant a post-mortem session.
            print("The program exited via sys.exit(). Exit status:", end=' ')
            print(sys.exc_info()[1])
        except SyntaxError:
            traceback.print_exc()
            sys.exit(1)
        except:
            traceback.print_exc()
            print("Uncaught exception. Entering post mortem debugging")
            print("Running 'cont' or 'step' will restart the program")
            t = sys.exc_info()[2]
            pdb.interaction(None, t)
            print("Post mortem debugger finished. The " + mainpyfile +
                  " will be restarted")


# When invoked as main program, invoke the debugger on a script
if __name__ == '__main__':
    import pdb
    pdb.main()
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
February 19 2026 09:21:30
root / root
0755
X11
--
July 01 2024 06:14:58
root / root
0755
2to3-2.7
0.094 KB
March 23 2024 18:55:36
root / root
0755
[
58.656 KB
February 28 2019 15:30:31
root / root
0755
aa-enabled
30.211 KB
March 30 2019 13:23:11
root / root
0755
aa-exec
30.211 KB
March 30 2019 13:23:11
root / root
0755
add-apt-repository
6.207 KB
March 30 2019 19:45:34
root / root
0755
addpart
26.078 KB
April 06 2024 22:33:55
root / root
0755
addr2line
31.094 KB
March 21 2019 14:49:23
root / root
0755
apropos
54.977 KB
February 01 2024 13:35:20
root / root
0755
apt
18.086 KB
April 19 2021 16:41:13
root / root
0755
apt-add-repository
6.207 KB
March 30 2019 19:45:34
root / root
0755
apt-cache
82.156 KB
April 19 2021 16:41:13
root / root
0755
apt-cdrom
26.156 KB
April 19 2021 16:41:13
root / root
0755
apt-config
26.086 KB
April 19 2021 16:41:13
root / root
0755
apt-extracttemplates
22.156 KB
April 19 2021 16:41:13
root / root
0755
apt-ftparchive
238.156 KB
April 19 2021 16:41:13
root / root
0755
apt-get
46.156 KB
April 19 2021 16:41:13
root / root
0755
apt-key
27.08 KB
April 19 2021 16:41:13
root / root
0755
apt-listchanges
10.613 KB
March 17 2019 22:48:06
root / root
0755
apt-mark
54.156 KB
April 19 2021 16:41:13
root / root
0755
apt-sortpkgs
46.086 KB
April 19 2021 16:41:13
root / root
0755
ar
63.07 KB
March 21 2019 14:49:23
root / root
0755
arch
38.656 KB
February 28 2019 15:30:31
root / root
0755
as
872.93 KB
March 21 2019 14:49:23
root / root
0755
at
54.258 KB
July 24 2018 09:17:21
daemon / daemon
6755
atq
54.258 KB
July 24 2018 09:17:21
daemon / daemon
6755
atrm
54.258 KB
July 24 2018 09:17:21
daemon / daemon
6755
autoconf
14.422 KB
August 20 2017 18:17:16
root / root
0755
autoheader
8.336 KB
August 20 2017 18:17:16
root / root
0755
autom4te
31.905 KB
August 20 2017 18:17:16
root / root
0755
autoreconf
20.667 KB
August 20 2017 18:17:16
root / root
0755
autoscan
16.73 KB
August 20 2017 18:17:16
root / root
0755
autoupdate
33.08 KB
August 20 2017 18:17:16
root / root
0755
awk
119.117 KB
March 23 2012 20:15:00
root / root
0755
aws
0.796 KB
February 27 2019 07:44:49
root / root
0755
aws_completer
1.109 KB
February 27 2019 07:44:49
root / root
0755
b2sum
58.781 KB
February 28 2019 15:30:31
root / root
0755
base32
42.688 KB
February 28 2019 15:30:31
root / root
0755
base64
42.688 KB
February 28 2019 15:30:31
root / root
0755
basename
38.594 KB
February 28 2019 15:30:31
root / root
0755
bash
1.11 MB
April 18 2019 04:12:36
root / root
0755
bashbug
6.634 KB
April 18 2019 04:12:36
root / root
0755
batch
0.148 KB
July 24 2018 09:17:21
root / root
0755
bootctl
46.234 KB
June 29 2023 13:57:02
root / root
0755
bsd-from
10.242 KB
May 04 2018 12:24:31
root / root
0755
bsd-write
14.391 KB
May 04 2018 12:24:31
root / tty
2755
bunzip2
38.07 KB
July 21 2020 08:36:47
root / root
0755
busctl
78.188 KB
June 29 2023 13:57:02
root / root
0755
bzcat
38.07 KB
July 21 2020 08:36:47
root / root
0755
bzcmp
2.173 KB
July 21 2020 08:36:47
root / root
0755
bzdiff
2.173 KB
July 21 2020 08:36:47
root / root
0755
bzegrep
3.556 KB
July 21 2020 08:36:47
root / root
0755
bzexe
4.763 KB
June 24 2019 20:16:40
root / root
0755
bzfgrep
3.556 KB
July 21 2020 08:36:47
root / root
0755
bzgrep
3.556 KB
July 21 2020 08:36:47
root / root
0755
bzip2
38.07 KB
July 21 2020 08:36:47
root / root
0755
bzip2recover
13.992 KB
July 21 2020 08:36:47
root / root
0755
bzless
1.267 KB
July 21 2020 08:36:47
root / root
0755
bzmore
1.267 KB
July 21 2020 08:36:47
root / root
0755
c++
1.05 MB
April 06 2019 14:44:55
root / root
0755
c++filt
30.688 KB
March 21 2019 14:49:23
root / root
0755
c89
0.418 KB
June 12 2013 21:03:20
root / root
0755
c89-gcc
0.418 KB
June 12 2013 21:03:20
root / root
0755
c99
0.443 KB
June 12 2013 21:03:20
root / root
0755
c99-gcc
0.443 KB
June 12 2013 21:03:20
root / root
0755
c_rehash
6.13 KB
August 15 2023 19:14:44
root / root
0755
cal
29.148 KB
May 04 2018 12:24:31
root / root
0755
calendar
31.148 KB
May 04 2018 12:24:31
root / root
0755
captoinfo
86.109 KB
December 03 2023 15:31:37
root / root
0755
cat
42.719 KB
February 28 2019 15:30:31
root / root
0755
catchsegv
3.226 KB
June 29 2024 10:27:34
root / root
0755
catman
38.461 KB
February 01 2024 13:35:20
root / root
0755
cc
1.05 MB
April 06 2019 14:44:55
root / root
0755
certbot
0.376 KB
December 05 2020 02:33:11
root / root
0755
chacl
13.992 KB
March 01 2019 22:22:21
root / root
0755
chage
70.133 KB
July 27 2018 08:07:37
root / shadow
2755
chardet
0.38 KB
January 22 2019 00:46:22
root / root
0755
chardet3
0.38 KB
January 22 2019 00:46:22
root / root
0755
chardetect
0.38 KB
January 22 2019 00:46:22
root / root
0755
chardetect3
0.38 KB
January 22 2019 00:46:22
root / root
0755
chattr
14 KB
January 10 2020 01:19:57
root / root
0755
chcon
62.906 KB
February 28 2019 15:30:31
root / root
0755
chfn
52.828 KB
July 27 2018 08:07:37
root / root
4755
chgrp
62.813 KB
February 28 2019 15:30:31
root / root
0755
chmod
62.781 KB
February 28 2019 15:30:31
root / root
0755
choom
50.078 KB
April 06 2024 22:33:55
root / root
0755
chown
70.813 KB
February 28 2019 15:30:31
root / root
0755
chronyc
83.016 KB
March 15 2022 12:45:14
root / root
0755
chrt
34.078 KB
April 06 2024 22:33:55
root / root
0755
chsh
43.484 KB
July 27 2018 08:07:37
root / root
4755
cksum
38.625 KB
February 28 2019 15:30:31
root / root
0755
clear
14 KB
December 03 2023 15:31:37
root / root
0755
clear_console
14.305 KB
April 18 2019 04:12:36
root / root
0755
cloud-id
0.381 KB
March 19 2021 16:43:23
root / root
0755
cloud-init
0.385 KB
March 19 2021 16:43:23
root / root
0755
cloud-init-per
2.059 KB
April 29 2020 22:17:14
root / root
0755
cloud-localds
7.232 KB
July 21 2016 18:23:53
root / root
0755
cmp
50.641 KB
April 08 2019 12:04:00
root / root
0755
col
10.227 KB
May 04 2018 12:24:31
root / root
0755
colcrt
10.195 KB
May 04 2018 12:24:31
root / root
0755
colrm
10.188 KB
May 04 2018 12:24:31
root / root
0755
column
10.336 KB
May 04 2018 12:24:31
root / root
0755
comm
42.688 KB
February 28 2019 15:30:31
root / root
0755
compose
17.735 KB
February 09 2019 12:32:33
root / root
0755
corelist
14.734 KB
July 21 2020 19:27:00
root / root
0755
cp
143.438 KB
February 28 2019 15:30:31
root / root
0755
cpan
7.965 KB
July 21 2020 19:27:00
root / root
0755
cpan5.28-x86_64-linux-gnu
7.985 KB
July 21 2020 19:27:00
root / root
0755
cpio
154.609 KB
June 04 2023 15:01:54
root / root
0755
cpp
1.05 MB
April 06 2019 14:44:55
root / root
0755
cpp-8
1.05 MB
April 06 2019 14:44:55
root / root
0755
crontab
42.547 KB
October 11 2019 07:58:52
root / crontab
2755
csplit
54.844 KB
February 28 2019 15:30:31
root / root
0755
ctstat
22.742 KB
December 03 2020 18:42:49
root / root
0755
curl
226.07 KB
January 28 2024 21:15:21
root / root
0755
cut
42.75 KB
February 28 2019 15:30:31
root / root
0755
cvtsudoers
250.289 KB
January 21 2024 20:52:36
root / root
0755
dash
118.617 KB
January 17 2019 19:08:32
root / root
0755
date
106.844 KB
February 28 2019 15:30:31
root / root
0755
dbus-cleanup-sockets
13.984 KB
October 23 2023 08:29:25
root / root
0755
dbus-daemon
235.039 KB
October 23 2023 08:29:25
root / root
0755
dbus-monitor
25.992 KB
October 23 2023 08:29:25
root / root
0755
dbus-run-session
13.984 KB
October 23 2023 08:29:25
root / root
0755
dbus-send
29.984 KB
October 23 2023 08:29:25
root / root
0755
dbus-update-activation-environment
13.984 KB
October 23 2023 08:29:25
root / root
0755
dbus-uuidgen
13.984 KB
October 23 2023 08:29:25
root / root
0755
dd
74.914 KB
February 28 2019 15:30:31
root / root
0755
deb-systemd-helper
20.828 KB
November 21 2018 23:15:24
root / root
0755
deb-systemd-invoke
4.326 KB
November 21 2018 23:15:24
root / root
0755
debconf
2.792 KB
October 01 2021 09:39:27
root / root
0755
debconf-apt-progress
11.271 KB
October 01 2021 09:39:27
root / root
0755
debconf-communicate
0.594 KB
October 01 2021 09:39:27
root / root
0755
debconf-copydb
1.679 KB
October 01 2021 09:39:27
root / root
0755
debconf-escape
0.632 KB
October 01 2021 09:39:27
root / root
0755
debconf-set-selections
2.866 KB
October 01 2021 09:39:27
root / root
0755
debconf-show
1.784 KB
October 01 2021 09:39:27
root / root
0755
debianbts
0.403 KB
December 31 2018 14:34:02
root / root
0755
delpart
26.078 KB
April 06 2024 22:33:55
root / root
0755
delv
44.828 KB
May 17 2024 15:43:53
root / root
0755
devdump
167.977 KB
July 21 2014 23:56:34
root / root
0755
df
91.547 KB
February 28 2019 15:30:31
root / root
0755
dh_autotools-dev_restoreconfig
1.793 KB
February 24 2018 16:00:57
root / root
0755
dh_autotools-dev_updateconfig
1.806 KB
February 24 2018 16:00:57
root / root
0755
dh_bash-completion
2.389 KB
February 11 2019 23:36:02
root / root
0755
dh_installxmlcatalogs
9.223 KB
February 27 2019 00:18:49
root / root
0755
dh_python2
1.031 KB
March 04 2019 15:48:56
root / root
0755
diff
215.281 KB
April 08 2019 12:04:00
root / root
0755
diff3
66.844 KB
April 08 2019 12:04:00
root / root
0755
dig
146.508 KB
May 17 2024 15:43:53
root / root
0755
dir
135.602 KB
February 28 2019 15:30:31
root / root
0755
dircolors
46.664 KB
February 28 2019 15:30:31
root / root
0755
dirname
34.594 KB
February 28 2019 15:30:31
root / root
0755
dirsplit
16.741 KB
November 25 2006 23:13:29
root / root
0755
dmesg
82.313 KB
April 06 2024 22:33:55
root / root
0755
dnsdomainname
26.07 KB
September 27 2018 08:45:17
root / root
0755
dnstap-read
18.008 KB
May 17 2024 15:43:53
root / root
0755
domainname
26.07 KB
September 27 2018 08:45:17
root / root
0755
dpkg
298.531 KB
May 24 2022 11:40:09
root / root
0755
dpkg-architecture
12.551 KB
May 24 2022 11:40:09
root / root
0755
dpkg-buildflags
7.388 KB
May 24 2022 11:40:09
root / root
0755
dpkg-buildpackage
29.893 KB
May 24 2022 11:40:09
root / root
0755
dpkg-checkbuilddeps
7.445 KB
May 24 2022 11:40:09
root / root
0755
dpkg-deb
162.383 KB
May 24 2022 11:40:09
root / root
0755
dpkg-distaddfile
2.717 KB
May 24 2022 11:40:09
root / root
0755
dpkg-divert
150.438 KB
May 24 2022 11:40:09
root / root
0755
dpkg-genbuildinfo
16.401 KB
May 24 2022 11:40:09
root / root
0755
dpkg-genchanges
17.082 KB
May 24 2022 11:40:09
root / root
0755
dpkg-gencontrol
13.823 KB
May 24 2022 11:40:09
root / root
0755
dpkg-gensymbols
10.646 KB
May 24 2022 11:40:09
root / root
0755
dpkg-maintscript-helper
20.033 KB
May 24 2022 11:40:09
root / root
0755
dpkg-mergechangelogs
8.347 KB
May 24 2022 11:40:09
root / root
0755
dpkg-name
6.63 KB
May 24 2022 11:40:09
root / root
0755
dpkg-parsechangelog
4.46 KB
May 24 2022 11:40:09
root / root
0755
dpkg-query
158.43 KB
May 24 2022 11:40:09
root / root
0755
dpkg-scanpackages
8.494 KB
May 24 2022 11:40:09
root / root
0755
dpkg-scansources
8.952 KB
May 24 2022 11:40:09
root / root
0755
dpkg-shlibdeps
30.68 KB
May 24 2022 11:40:09
root / root
0755
dpkg-source
22.482 KB
May 24 2022 11:40:09
root / root
0755
dpkg-split
122.336 KB
May 24 2022 11:40:09
root / root
0755
dpkg-statoverride
62.117 KB
May 24 2022 11:40:09
root / root
0755
dpkg-trigger
78.336 KB
May 24 2022 11:40:09
root / root
0755
dpkg-vendor
3.186 KB
May 24 2022 11:40:09
root / root
0755
du
107.094 KB
February 28 2019 15:30:31
root / root
0755
dwp
2.74 MB
March 21 2019 14:49:23
root / root
0755
ec2metadata
7.126 KB
July 21 2016 18:23:53
root / root
0755
echo
38.594 KB
February 28 2019 15:30:31
root / root
0755
edit
17.735 KB
February 09 2019 12:32:33
root / root
0755
editor
240.391 KB
June 11 2024 18:30:35
root / root
0755
egrep
0.027 KB
January 07 2019 15:04:36
root / root
0755
elfedit
38.836 KB
March 21 2019 14:49:23
root / root
0755
enc2xs
41.124 KB
July 21 2020 19:27:00
root / root
0755
encguess
2.994 KB
July 21 2020 19:27:00
root / root
0755
env
42.656 KB
February 28 2019 15:30:31
root / root
0755
envsubst
42.641 KB
November 10 2018 17:34:46
root / root
0755
eqn
201.188 KB
March 19 2021 10:36:25
root / root
0755
ex
2.58 MB
September 27 2023 19:47:00
root / root
0755
expand
42.688 KB
February 28 2019 15:30:31
root / root
0755
expiry
30.273 KB
July 27 2018 08:07:37
root / shadow
2755
expr
50.719 KB
February 28 2019 15:30:31
root / root
0755
factor
74.75 KB
February 28 2019 15:30:31
root / root
0755
faillog
22.289 KB
July 27 2018 08:07:37
root / root
0755
fallocate
30.078 KB
April 06 2024 22:33:55
root / root
0755
false
34.594 KB
February 28 2019 15:30:31
root / root
0755
fgrep
0.027 KB
January 07 2019 15:04:36
root / root
0755
filan
83.781 KB
November 19 2017 13:56:10
root / root
0755
file
26.313 KB
January 25 2021 21:40:17
root / root
0755
fincore
30.125 KB
April 06 2024 22:33:55
root / root
0755
find
308.5 KB
February 16 2019 12:14:53
root / root
0755
findmnt
67.266 KB
April 06 2024 22:33:55
root / root
0755
flock
34.156 KB
April 06 2024 22:33:55
root / root
0755
fmt
42.656 KB
February 28 2019 15:30:31
root / root
0755
fold
38.656 KB
February 28 2019 15:30:31
root / root
0755
free
18.078 KB
May 31 2018 09:42:46
root / root
0755
from
10.242 KB
May 04 2018 12:24:31
root / root
0755
funzip
22.258 KB
September 22 2022 16:25:09
root / root
0755
fuser
39.625 KB
August 16 2021 09:17:53
root / root
0755
futurize
0.375 KB
January 30 2019 20:47:52
root / root
0755
g++
1.05 MB
April 06 2019 14:44:55
root / root
0755
g++-8
1.05 MB
April 06 2019 14:44:55
root / root
0755
gapplication
22.07 KB
May 10 2024 14:33:34
root / root
0755
gcc
1.05 MB
April 06 2019 14:44:55
root / root
0755
gcc-8
1.05 MB
April 06 2019 14:44:55
root / root
0755
gcc-ar
34.469 KB
April 06 2019 14:44:55
root / root
0755
gcc-ar-8
34.469 KB
April 06 2019 14:44:55
root / root
0755
gcc-nm
34.469 KB
April 06 2019 14:44:55
root / root
0755
gcc-nm-8
34.469 KB
April 06 2019 14:44:55
root / root
0755
gcc-ranlib
34.469 KB
April 06 2019 14:44:55
root / root
0755
gcc-ranlib-8
34.469 KB
April 06 2019 14:44:55
root / root
0755
gcov
672.086 KB
April 06 2019 14:44:55
root / root
0755
gcov-8
672.086 KB
April 06 2019 14:44:55
root / root
0755
gcov-dump
511.953 KB
April 06 2019 14:44:55
root / root
0755
gcov-dump-8
511.953 KB
April 06 2019 14:44:55
root / root
0755
gcov-tool
548.016 KB
April 06 2019 14:44:55
root / root
0755
gcov-tool-8
548.016 KB
April 06 2019 14:44:55
root / root
0755
gdbus
50.078 KB
May 10 2024 14:33:34
root / root
0755
gencat
26.602 KB
June 29 2024 10:27:34
root / root
0755
genisoimage
619.008 KB
July 21 2014 23:56:34
root / root
0755
geqn
201.188 KB
March 19 2021 10:36:25
root / root
0755
getconf
34.367 KB
June 29 2024 10:27:34
root / root
0755
geteltorito
6.064 KB
July 21 2014 23:56:34
root / root
0755
getent
35.344 KB
June 29 2024 10:27:34
root / root
0755
getfacl
30.617 KB
March 01 2019 22:22:21
root / root
0755
getopt
22.07 KB
April 06 2024 22:33:55
root / root
0755
gettext
42.617 KB
November 10 2018 17:34:46
root / root
0755
gettext.sh
4.521 KB
November 10 2018 17:34:46
root / root
0755
gio
86.086 KB
May 10 2024 14:33:34
root / root
0755
gio-querymodules
13.992 KB
May 10 2024 14:33:34
root / root
0755
glib-compile-schemas
46.07 KB
May 10 2024 14:33:34
root / root
0755
gold
2.97 MB
March 21 2019 14:49:23
root / root
0755
gonit
8.52 MB
May 18 2021 09:22:15
root / root
0755
gpasswd
82.047 KB
July 27 2018 08:07:37
root / root
4755
gpgv
434.992 KB
July 01 2022 16:06:43
root / root
0755
gpic
208.031 KB
March 19 2021 10:36:25
root / root
0755
gprof
96.391 KB
March 21 2019 14:49:23
root / root
0755
grep
194.313 KB
January 07 2019 15:04:36
root / root
0755
gresource
21.992 KB
May 10 2024 14:33:34
root / root
0755
groff
117.219 KB
March 19 2021 10:36:25
root / root
0755
grog
2.711 KB
March 19 2021 10:36:25
root / root
0755
grops
177.625 KB
March 19 2021 10:36:25
root / root
0755
grotty
129.25 KB
March 19 2021 10:36:25
root / root
0755
groups
38.656 KB
February 28 2019 15:30:31
root / root
0755
growpart
20.926 KB
July 21 2016 18:23:53
root / root
0755
grub-editenv
369.961 KB
October 02 2023 14:11:34
root / root
0755
grub-file
801.211 KB
October 02 2023 14:11:34
root / root
0755
grub-fstest
922.898 KB
October 02 2023 14:11:34
root / root
0755
grub-glue-efi
244.773 KB
October 02 2023 14:11:34
root / root
0755
grub-kbdcomp
1.642 KB
October 02 2023 14:11:34
root / root
0755
grub-menulst2cfg
228.852 KB
October 02 2023 14:11:34
root / root
0755
grub-mkfont
269.461 KB
October 02 2023 14:11:34
root / root
0755
grub-mkimage
349.961 KB
October 02 2023 14:11:34
root / root
0755
grub-mklayout
249.086 KB
October 02 2023 14:11:34
root / root
0755
grub-mknetdir
402.758 KB
October 02 2023 14:11:34
root / root
0755
grub-mkpasswd-pbkdf2
249.148 KB
October 02 2023 14:11:34
root / root
0755
grub-mkrelpath
240.492 KB
October 02 2023 14:11:34
root / root
0755
grub-mkrescue
979.633 KB
October 02 2023 14:11:34
root / root
0755
grub-mkstandalone
487.086 KB
October 02 2023 14:11:34
root / root
0755
grub-mount
745.852 KB
October 02 2023 14:11:34
root / root
0755
grub-render-label
817.773 KB
October 02 2023 14:11:34
root / root
0755
grub-script-check
264.617 KB
October 02 2023 14:11:34
root / root
0755
grub-syslinux2cfg
766.289 KB
October 02 2023 14:11:34
root / root
0755
gsettings
30.07 KB
May 10 2024 14:33:34
root / root
0755
gtbl
138.195 KB
March 19 2021 10:36:25
root / root
0755
gunzip
2.29 KB
April 15 2022 18:16:55
root / root
0755
gzexe
6.295 KB
April 15 2022 18:16:55
root / root
0755
gzip
95.75 KB
April 15 2022 18:16:55
root / root
0755
h2ph
28.539 KB
July 21 2020 19:27:00
root / root
0755
h2xs
59.439 KB
July 21 2020 19:27:00
root / root
0755
hd
26.547 KB
May 04 2018 12:24:31
root / root
0755
head
46.719 KB
February 28 2019 15:30:31
root / root
0755
helpztags
2.455 KB
September 27 2023 19:35:23
root / root
0755
hexdump
26.547 KB
May 04 2018 12:24:31
root / root
0755
host
126.633 KB
May 17 2024 15:43:53
root / root
0755
hostid
34.594 KB
February 28 2019 15:30:31
root / root
0755
hostname
26.07 KB
September 27 2018 08:45:17
root / root
0755
hostnamectl
26.07 KB
June 29 2023 13:57:02
root / root
0755
i386
22.344 KB
April 06 2024 22:33:55
root / root
0755
iconv
59.008 KB
June 29 2024 10:27:34
root / root
0755
id
42.781 KB
February 28 2019 15:30:31
root / root
0755
ifnames
4.033 KB
August 20 2017 18:17:16
root / root
0755
infocmp
62.07 KB
December 03 2023 15:31:37
root / root
0755
infotocap
86.109 KB
December 03 2023 15:31:37
root / root
0755
install
151.602 KB
February 28 2019 15:30:31
root / root
0755
instmodsh
4.268 KB
July 21 2020 19:27:00
root / root
0755
ionice
30.078 KB
April 06 2024 22:33:55
root / root
0755
ip
574.727 KB
December 03 2020 18:42:49
root / root
0755
ipcmk
30.141 KB
April 06 2024 22:33:55
root / root
0755
ipcrm
30.078 KB
April 06 2024 22:33:55
root / root
0755
ipcs
66.078 KB
April 06 2024 22:33:55
root / root
0755
iptables-xml
100.68 KB
March 01 2019 12:28:35
root / root
0755
ischroot
14.234 KB
January 21 2019 21:12:11
root / root
0755
isodump
167.977 KB
July 21 2014 23:56:34
root / root
0755
isoinfo
335.227 KB
July 21 2014 23:56:34
root / root
0755
isovfy
167.945 KB
July 21 2014 23:56:34
root / root
0755
join
50.75 KB
February 28 2019 15:30:31
root / root
0755
journalctl
66.086 KB
June 29 2023 13:57:02
root / root
0755
json_pp
4.276 KB
July 21 2020 19:27:00
root / root
0755
jsondiff
0.994 KB
March 03 2018 21:11:27
root / root
0755
jsonpatch
3.575 KB
March 03 2018 21:11:27
root / root
0755
jsonpointer
1.311 KB
April 30 2016 22:01:28
root / root
0755
jsonschema
0.389 KB
September 07 2018 07:03:51
root / root
0755
kernel-install
4.53 KB
February 14 2019 10:11:58
root / root
0755
kill
26.078 KB
May 31 2018 09:42:46
root / root
0755
killall
31.719 KB
August 16 2021 09:17:53
root / root
0755
kmod
162.18 KB
February 09 2019 23:00:31
root / root
0755
last
46.078 KB
April 06 2024 22:33:55
root / root
0755
lastb
46.078 KB
April 06 2024 22:33:55
root / root
0755
lastlog
22.07 KB
July 27 2018 08:07:37
root / root
0755
lcf
7.604 KB
December 14 2018 08:51:14
root / root
0755
ld
1.7 MB
March 21 2019 14:49:23
root / root
0755
ld.bfd
1.7 MB
March 21 2019 14:49:23
root / root
0755
ld.gold
2.97 MB
March 21 2019 14:49:23
root / root
0755
ldd
5.27 KB
June 29 2024 10:27:34
root / root
0755
less
166.758 KB
May 27 2024 17:20:40
root / root
0755
lessecho
14.016 KB
May 27 2024 17:20:40
root / root
0755
lessfile
8.363 KB
May 27 2024 17:20:40
root / root
0755
lesskey
23.391 KB
May 27 2024 17:20:40
root / root
0755
lesspipe
8.363 KB
May 27 2024 17:20:40
root / root
0755
letsencrypt
0.376 KB
December 05 2020 02:33:11
root / root
0755
lexgrog
94.57 KB
February 01 2024 13:35:20
root / root
0755
lft
2.435 KB
August 29 2016 15:45:51
root / root
0755
lft.db
2.435 KB
August 29 2016 15:45:51
root / root
0755
libnetcfg
15.405 KB
July 21 2020 19:27:00
root / root
0755
libtoolize
128.258 KB
January 28 2019 09:07:40
root / root
0755
link
34.594 KB
February 28 2019 15:30:31
root / root
0755
linux-check-removal
4.564 KB
September 05 2018 17:52:35
root / root
0755
linux-update-symlinks
6.172 KB
June 05 2016 01:13:24
root / root
0755
linux-version
2.633 KB
August 11 2015 15:45:25
root / root
0755
linux32
22.344 KB
April 06 2024 22:33:55
root / root
0755
linux64
22.344 KB
April 06 2024 22:33:55
root / root
0755
ln
66.945 KB
February 28 2019 15:30:31
root / root
0755
lnstat
22.742 KB
December 03 2020 18:42:49
root / root
0755
locale
54.039 KB
June 29 2024 10:27:34
root / root
0755
localectl
26.07 KB
June 29 2023 13:57:02
root / root
0755
localedef
299.75 KB
June 29 2024 10:27:34
root / root
0755
logger
46.672 KB
April 06 2024 22:33:55
root / root
0755
login
55.43 KB
July 27 2018 08:07:37
root / root
0755
loginctl
54.18 KB
June 29 2023 13:57:02
root / root
0755
logname
34.594 KB
February 28 2019 15:30:31
root / root
0755
look
10.492 KB
May 04 2018 12:24:31
root / root
0755
lorder
2.817 KB
May 04 2018 12:24:31
root / root
0755
ls
135.602 KB
February 28 2019 15:30:31
root / root
0755
lsattr
14 KB
January 10 2020 01:19:57
root / root
0755
lsb_release
3.553 KB
May 14 2019 06:50:39
root / root
0755
lsblk
106.078 KB
April 06 2024 22:33:55
root / root
0755
lscpu
86.078 KB
April 06 2024 22:33:55
root / root
0755
lsinitramfs
0.689 KB
February 06 2019 03:55:08
root / root
0755
lsipc
90.078 KB
April 06 2024 22:33:55
root / root
0755
lslocks
34.406 KB
April 06 2024 22:33:55
root / root
0755
lslogins
66.078 KB
April 06 2024 22:33:55
root / root
0755
lsmem
62.078 KB
April 06 2024 22:33:55
root / root
0755
lsmod
162.18 KB
February 09 2019 23:00:31
root / root
0755
lsns
50.078 KB
April 06 2024 22:33:55
root / root
0755
lspci
80.313 KB
November 30 2016 06:53:07
root / root
0755
lzcat
79.289 KB
April 11 2022 14:51:17
root / root
0755
lzcmp
6.477 KB
April 11 2022 14:51:17
root / root
0755
lzdiff
6.477 KB
April 11 2022 14:51:17
root / root
0755
lzegrep
5.764 KB
April 11 2022 14:51:17
root / root
0755
lzfgrep
5.764 KB
April 11 2022 14:51:17
root / root
0755
lzgrep
5.764 KB
April 11 2022 14:51:17
root / root
0755
lzless
1.76 KB
April 11 2022 14:51:17
root / root
0755
lzma
79.289 KB
April 11 2022 14:51:17
root / root
0755
lzmainfo
14.313 KB
April 11 2022 14:51:17
root / root
0755
lzmore
2.11 KB
April 11 2022 14:51:17
root / root
0755
m4
159.18 KB
December 01 2018 14:46:54
root / root
0755
make
226.594 KB
July 28 2018 10:07:31
root / root
0755
make-first-existing-target
4.79 KB
July 28 2018 10:07:31
root / root
0755
man
112.5 KB
February 01 2024 13:35:20
root / root
0755
mandb
134.719 KB
February 01 2024 13:35:20
root / root
0755
manpath
34.469 KB
February 01 2024 13:35:20
root / root
0755
mawk
119.117 KB
March 23 2012 20:15:00
root / root
0755
mcookie
34.141 KB
April 06 2024 22:33:55
root / root
0755
md5sum
46.719 KB
February 28 2019 15:30:31
root / root
0755
md5sum.textutils
46.719 KB
February 28 2019 15:30:31
root / root
0755
mdig
46.094 KB
May 17 2024 15:43:53
root / root
0755
mesg
14.07 KB
April 06 2024 22:33:55
root / root
0755
mkdir
87 KB
February 28 2019 15:30:31
root / root
0755
mkfifo
62.906 KB
February 28 2019 15:30:31
root / root
0755
mknod
66.938 KB
February 28 2019 15:30:31
root / root
0755
mktemp
42.781 KB
February 28 2019 15:30:31
root / root
0755
mkzftree
22.68 KB
July 21 2014 23:56:34
root / root
0755
monit
8.52 MB
May 18 2021 09:22:15
root / root
0755
more
42 KB
April 06 2024 22:33:55
root / root
0755
mount
46.078 KB
April 06 2024 22:33:55
root / root
4755
mount-image-callback
11.244 KB
July 21 2016 18:23:53
root / root
0755
mountpoint
14.07 KB
April 06 2024 22:33:55
root / root
0755
mt
83.32 KB
June 04 2023 15:01:54
root / root
0755
mt-gnu
83.32 KB
June 04 2023 15:01:54
root / root
0755
mtrace
6.318 KB
June 29 2024 10:27:34
root / root
0755
mv
135.477 KB
February 28 2019 15:30:31
root / root
0755
namei
34.078 KB
April 06 2024 22:33:55
root / root
0755
nano
240.391 KB
June 11 2024 18:30:35
root / root
0755
nawk
119.117 KB
March 23 2012 20:15:00
root / root
0755
nc
42.484 KB
February 12 2019 11:31:51
root / root
0755
nc.openbsd
42.484 KB
February 12 2019 11:31:51
root / root
0755
ncal
29.148 KB
May 04 2018 12:24:31
root / root
0755
neqn
0.892 KB
March 19 2021 10:36:25
root / root
0755
netcat
42.484 KB
February 12 2019 11:31:51
root / root
0755
netstat
151.461 KB
September 24 2018 19:08:57
root / root
0755
networkctl
46.07 KB
June 29 2023 13:57:02
root / root
0755
newgrp
43.398 KB
July 27 2018 08:07:37
root / root
4755
ngettext
42.633 KB
November 10 2018 17:34:46
root / root
0755
nice
38.625 KB
February 28 2019 15:30:31
root / root
0755
nisdomainname
26.07 KB
September 27 2018 08:45:17
root / root
0755
nl
42.781 KB
February 28 2019 15:30:31
root / root
0755
nm
47.906 KB
March 21 2019 14:49:23
root / root
0755
nohup
38.656 KB
February 28 2019 15:30:31
root / root
0755
nproc
38.656 KB
February 28 2019 15:30:31
root / root
0755
nroff
3.216 KB
March 19 2021 10:36:25
root / root
0755
nsenter
34.281 KB
April 06 2024 22:33:55
root / root
0755
nslookup
134.508 KB
May 17 2024 15:43:53
root / root
0755
nstat
79.141 KB
December 03 2020 18:42:49
root / root
0755
nsupdate
70.016 KB
May 17 2024 15:43:53
root / root
0755
numfmt
62.813 KB
February 28 2019 15:30:31
root / root
0755
objcopy
175.422 KB
March 21 2019 14:49:23
root / root
0755
objdump
345.555 KB
March 21 2019 14:49:23
root / root
0755
od
70.781 KB
February 28 2019 15:30:31
root / root
0755
openssl
719.523 KB
August 15 2023 19:14:44
root / root
0755
pager
166.758 KB
May 27 2024 17:20:40
root / root
0755
partx
106.078 KB
April 06 2024 22:33:55
root / root
0755
passwd
62.242 KB
July 27 2018 08:07:37
root / root
4755
paste
38.656 KB
February 28 2019 15:30:31
root / root
0755
pasteurize
0.379 KB
January 30 2019 20:47:52
root / root
0755
patch
183.438 KB
July 26 2019 10:58:07
root / root
0755
pathchk
38.625 KB
February 28 2019 15:30:31
root / root
0755
pbr
0.148 KB
December 30 2018 04:26:59
root / root
0755
pcimodules
14.586 KB
November 30 2016 06:53:07
root / root
0755
pdb
45.018 KB
March 23 2024 18:55:36
root / root
0755
pdb2
45.018 KB
March 23 2024 18:55:36
root / root
0755
pdb2.7
45.018 KB
March 23 2024 18:55:36
root / root
0755
pdb3
61.076 KB
March 23 2024 16:12:05
root / root
0755
pdb3.7
61.076 KB
March 23 2024 16:12:05
root / root
0755
peekfd
14.281 KB
August 16 2021 09:17:53
root / root
0755
perf
0.516 KB
July 20 2018 01:35:21
root / root
0755
perl
3.05 MB
July 21 2020 19:27:00
root / root
0755
perl5.28-x86_64-linux-gnu
14.172 KB
July 21 2020 19:27:00
root / root
0755
perl5.28.1
3.05 MB
July 21 2020 19:27:00
root / root
0755
perlbug
45.279 KB
July 21 2020 19:27:00
root / root
0755
perldoc
0.122 KB
July 21 2020 19:27:00
root / root
0755
perlivp
10.609 KB
July 21 2020 19:27:00
root / root
0755
perlthanks
45.279 KB
July 21 2020 19:27:00
root / root
0755
pgrep
26.086 KB
May 31 2018 09:42:46
root / root
0755
pic
208.031 KB
March 19 2021 10:36:25
root / root
0755
pico
240.391 KB
June 11 2024 18:30:35
root / root
0755
piconv
8.161 KB
July 21 2020 19:27:00
root / root
0755
pidof
26.609 KB
February 14 2019 20:33:13
root / root
0755
ping
67.742 KB
March 08 2021 19:46:59
root / root
0755
ping4
67.742 KB
March 08 2021 19:46:59
root / root
0755
ping6
67.742 KB
March 08 2021 19:46:59
root / root
0755
pinky
42.813 KB
February 28 2019 15:30:31
root / root
0755
pkaction
14.313 KB
January 13 2022 19:35:27
root / root
0755
pkcheck
22.656 KB
January 13 2022 19:35:27
root / root
0755
pkcon
71.711 KB
March 02 2019 21:02:38
root / root
0755
pkexec
22.75 KB
January 13 2022 19:35:27
root / root
4755
pkill
26.086 KB
May 31 2018 09:42:46
root / root
0755
pkmon
22.492 KB
March 02 2019 21:02:38
root / root
0755
pkttyagent
18.367 KB
January 13 2022 19:35:27
root / root
0755
pl2pm
4.427 KB
July 21 2020 19:27:00
root / root
0755
pldd
22.57 KB
June 29 2024 10:27:34
root / root
0755
pmap
30.086 KB
May 31 2018 09:42:46
root / root
0755
pod2html
4.037 KB
July 21 2020 19:27:00
root / root
0755
pod2man
14.856 KB
July 21 2020 19:27:00
root / root
0755
pod2text
10.85 KB
July 21 2020 19:27:00
root / root
0755
pod2usage
3.855 KB
July 21 2020 19:27:00
root / root
0755
podchecker
3.572 KB
July 21 2020 19:27:00
root / root
0755
podselect
2.468 KB
July 21 2020 19:27:00
root / root
0755
pr
74.938 KB
February 28 2019 15:30:31
root / root
0755
preconv
66.195 KB
March 19 2021 10:36:25
root / root
0755
print
17.735 KB
February 09 2019 12:32:33
root / root
0755
printenv
34.594 KB
February 28 2019 15:30:31
root / root
0755
printerbanner
22.227 KB
May 04 2018 12:24:31
root / root
0755
printf
54.688 KB
February 28 2019 15:30:31
root / root
0755
prlimit
38.594 KB
April 06 2024 22:33:55
root / root
0755
procan
71.68 KB
November 19 2017 13:56:10
root / root
0755
prove
13.335 KB
July 21 2020 19:27:00
root / root
0755
prtstat
18.359 KB
August 16 2021 09:17:53
root / root
0755
ps
130.305 KB
May 31 2018 09:42:46
root / root
0755
pslog
14.227 KB
August 16 2021 09:17:53
root / root
0755
pstree
31.484 KB
August 16 2021 09:17:53
root / root
0755
pstree.x11
31.484 KB
August 16 2021 09:17:53
root / root
0755
ptar
3.466 KB
July 21 2020 19:27:00
root / root
0755
ptardiff
2.566 KB
July 21 2020 19:27:00
root / root
0755
ptargrep
4.289 KB
July 21 2020 19:27:00
root / root
0755
ptx
74.906 KB
February 28 2019 15:30:31
root / root
0755
pwd
38.688 KB
February 28 2019 15:30:31
root / root
0755
pwdx
10.07 KB
May 31 2018 09:42:46
root / root
0755
py3clean
7.623 KB
March 26 2019 10:25:14
root / root
0755
py3compile
11.829 KB
March 26 2019 10:25:14
root / root
0755
py3rsa-decrypt
0.367 KB
December 04 2018 06:46:41
root / root
0755
py3rsa-encrypt
0.367 KB
December 04 2018 06:46:41
root / root
0755
py3rsa-keygen
0.365 KB
December 04 2018 06:46:41
root / root
0755
py3rsa-priv2pub
0.369 KB
December 04 2018 06:46:41
root / root
0755
py3rsa-sign
0.361 KB
December 04 2018 06:46:41
root / root
0755
py3rsa-verify
0.365 KB
December 04 2018 06:46:41
root / root
0755
py3versions
11.442 KB
March 26 2019 10:25:14
root / root
0755
pyclean
4.027 KB
March 04 2019 15:48:56
root / root
0755
pycompile
11.616 KB
March 04 2019 15:48:56
root / root
0755
pydoc
0.077 KB
March 23 2024 18:55:36
root / root
0755
pydoc2
0.077 KB
March 23 2024 18:55:36
root / root
0755
pydoc2.7
0.077 KB
March 23 2024 18:55:36
root / root
0755
pydoc3
0.077 KB
March 23 2024 16:12:05
root / root
0755
pydoc3.7
0.077 KB
March 23 2024 16:12:05
root / root
0755
pygettext
21.564 KB
March 23 2024 18:55:36
root / root
0755
pygettext2
21.564 KB
March 23 2024 18:55:36
root / root
0755
pygettext2.7
21.564 KB
March 23 2024 18:55:36
root / root
0755
pygettext3
21.042 KB
March 23 2024 16:12:05
root / root
0755
pygettext3.7
21.042 KB
March 23 2024 16:12:05
root / root
0755
pyjwt3
0.363 KB
December 13 2018 01:09:40
root / root
0755
python
3.51 MB
March 23 2024 18:55:36
root / root
0755
python2
3.51 MB
March 23 2024 18:55:36
root / root
0755
python2.7
3.51 MB
March 23 2024 18:55:36
root / root
0755
python3
4.65 MB
March 23 2024 16:12:05
root / root
0755
python3-futurize
0.375 KB
January 30 2019 20:47:52
root / root
0755
python3-jsondiff
0.994 KB
March 03 2018 21:11:27
root / root
0755
python3-jsonpatch
3.575 KB
March 03 2018 21:11:27
root / root
0755
python3-jsonpointer
1.311 KB
April 30 2016 22:01:28
root / root
0755
python3-jsonschema
0.389 KB
September 07 2018 07:03:51
root / root
0755
python3-pasteurize
0.379 KB
January 30 2019 20:47:52
root / root
0755
python3-pbr
0.148 KB
December 30 2018 04:26:59
root / root
0755
python3.7
4.65 MB
March 23 2024 16:12:05
root / root
0755
python3.7m
4.65 MB
March 23 2024 16:12:05
root / root
0755
python3m
4.65 MB
March 23 2024 16:12:05
root / root
0755
pyversions
14.758 KB
March 04 2019 15:48:56
root / root
0755
qemu-img
1.79 MB
March 11 2024 14:57:08
root / root
0755
qemu-io
1.75 MB
March 11 2024 14:57:08
root / root
0755
qemu-nbd
1.75 MB
March 11 2024 14:57:08
root / root
0755
querybts
10.745 KB
November 25 2023 20:46:39
root / root
0755
ranlib
63.102 KB
March 21 2019 14:49:23
root / root
0755
rbash
1.11 MB
April 18 2019 04:12:36
root / root
0755
rcp
98.141 KB
December 24 2023 20:39:13
root / root
0755
rdma
107.156 KB
December 03 2020 18:42:49
root / root
0755
readelf
583.063 KB
March 21 2019 14:49:23
root / root
0755
readlink
46.656 KB
February 28 2019 15:30:31
root / root
0755
realpath
46.688 KB
February 28 2019 15:30:31
root / root
0755
rename.ul
22.07 KB
April 06 2024 22:33:55
root / root
0755
renice
14.07 KB
April 06 2024 22:33:55
root / root
0755
reportbug
105.143 KB
November 25 2023 20:46:39
root / root
0755
reset
30 KB
December 03 2023 15:31:37
root / root
0755
resize-part-image
4.245 KB
July 21 2016 18:23:53
root / root
0755
resizepart
58.078 KB
April 06 2024 22:33:55
root / root
0755
resolvectl
114.219 KB
June 29 2023 13:57:02
root / root
0755
rev
14.07 KB
April 06 2024 22:33:55
root / root
0755
rgrep
0.029 KB
August 04 2017 13:57:24
root / root
0755
rlogin
714.789 KB
December 24 2023 20:39:13
root / root
0755
rm
66.813 KB
February 28 2019 15:30:31
root / root
0755
rmdir
46.656 KB
February 28 2019 15:30:31
root / root
0755
rnano
240.391 KB
June 11 2024 18:30:35
root / root
0755
routef
0.203 KB
December 03 2020 18:42:49
root / root
0755
routel
1.617 KB
December 03 2020 18:42:49
root / root
0755
rpcgen
90.977 KB
June 29 2024 10:27:34
root / root
0755
rsh
714.789 KB
December 24 2023 20:39:13
root / root
0755
rst-buildhtml
9.729 KB
February 23 2019 18:14:53
root / root
0755
rst2html
0.58 KB
February 23 2019 18:14:53
root / root
0755
rst2html4
0.697 KB
February 23 2019 18:14:53
root / root
0755
rst2html5
1.112 KB
February 23 2019 18:14:53
root / root
0755
rst2latex
0.772 KB
February 23 2019 18:14:53
root / root
0755
rst2man
0.586 KB
February 23 2019 18:14:53
root / root
0755
rst2odt
0.746 KB
February 23 2019 18:14:53
root / root
0755
rst2odt_prepstyles
2.26 KB
February 23 2019 18:14:53
root / root
0755
rst2pseudoxml
0.587 KB
February 23 2019 18:14:53
root / root
0755
rst2s5
0.622 KB
February 23 2019 18:14:53
root / root
0755
rst2xetex
0.851 KB
February 23 2019 18:14:53
root / root
0755
rst2xml
0.588 KB
February 23 2019 18:14:53
root / root
0755
rstpep2html
0.654 KB
February 23 2019 18:14:53
root / root
0755
rtstat
22.742 KB
December 03 2020 18:42:49
root / root
0755
run-mailcap
17.735 KB
February 09 2019 12:32:33
root / root
0755
run-parts
22.766 KB
January 21 2019 21:12:11
root / root
0755
runcon
38.719 KB
February 28 2019 15:30:31
root / root
0755
rview
2.58 MB
September 27 2023 19:47:00
root / root
0755
rvim
2.58 MB
September 27 2023 19:47:00
root / root
0755
savelog
10.224 KB
January 21 2019 21:12:11
root / root
0755
scp
98.141 KB
December 24 2023 20:39:13
root / root
0755
screen
459.008 KB
February 20 2021 20:59:38
root / root
0755
script
50.078 KB
April 06 2024 22:33:55
root / root
0755
scriptreplay
30.078 KB
April 06 2024 22:33:55
root / root
0755
sdiff
50.766 KB
April 08 2019 12:04:00
root / root
0755
sed
119.359 KB
December 22 2018 14:24:04
root / root
0755
see
17.735 KB
February 09 2019 12:32:33
root / root
0755
select-editor
2.385 KB
March 12 2018 10:17:53
root / root
0755
sensible-browser
1.181 KB
March 12 2018 10:17:53
root / root
0755
sensible-editor
1.083 KB
March 12 2018 10:17:53
root / root
0755
sensible-pager
0.423 KB
March 12 2018 10:17:53
root / root
0755
seq
50.688 KB
February 28 2019 15:30:31
root / root
0755
setarch
22.344 KB
April 06 2024 22:33:55
root / root
0755
setfacl
38.68 KB
March 01 2019 22:22:21
root / root
0755
setpci
22.539 KB
November 30 2016 06:53:07
root / root
0755
setpriv
42.078 KB
April 06 2024 22:33:55
root / root
0755
setsid
14.07 KB
April 06 2024 22:33:55
root / root
0755
setterm
42.078 KB
April 06 2024 22:33:55
root / root
0755
sftp
150.352 KB
December 24 2023 20:39:13
root / root
0755
sg
43.398 KB
July 27 2018 08:07:37
root / root
4755
sh
118.617 KB
January 17 2019 19:08:32
root / root
0755
sha1sum
50.719 KB
February 28 2019 15:30:31
root / root
0755
sha224sum
54.719 KB
February 28 2019 15:30:31
root / root
0755
sha256sum
54.719 KB
February 28 2019 15:30:31
root / root
0755
sha384sum
62.719 KB
February 28 2019 15:30:31
root / root
0755
sha512sum
62.719 KB
February 28 2019 15:30:31
root / root
0755
shasum
9.742 KB
July 21 2020 19:27:00
root / root
0755
shred
58.938 KB
February 28 2019 15:30:31
root / root
0755
shuf
58.813 KB
February 28 2019 15:30:31
root / root
0755
size
34.969 KB
March 21 2019 14:49:23
root / root
0755
skill
26.078 KB
May 31 2018 09:42:46
root / root
0755
slabtop
18.078 KB
May 31 2018 09:42:46
root / root
0755
sleep
38.625 KB
February 28 2019 15:30:31
root / root
0755
slogin
714.789 KB
December 24 2023 20:39:13
root / root
0755
snice
26.078 KB
May 31 2018 09:42:46
root / root
0755
socat
369.43 KB
November 19 2017 13:56:10
root / root
0755
soelim
42.195 KB
March 19 2021 10:36:25
root / root
0755
sort
111.445 KB
February 28 2019 15:30:31
root / root
0755
sotruss
4.182 KB
June 29 2024 10:27:34
root / root
0755
splain
18.701 KB
July 21 2020 19:27:00
root / root
0755
split
59.32 KB
February 28 2019 15:30:31
root / root
0755
sprof
26.688 KB
June 29 2024 10:27:34
root / root
0755
ss
157.703 KB
December 03 2020 18:42:49
root / root
0755
ssh
714.789 KB
December 24 2023 20:39:13
root / root
0755
ssh-add
334.125 KB
December 24 2023 20:39:13
root / root
0755
ssh-agent
314.133 KB
December 24 2023 20:39:13
root / ssh
2755
ssh-argv0
1.422 KB
December 22 2023 20:40:01
root / root
0755
ssh-copy-id
10.408 KB
October 17 2018 00:01:20
root / root
0755
ssh-keygen
406.148 KB
December 24 2023 20:39:13
root / root
0755
ssh-keyscan
410.148 KB
December 24 2023 20:39:13
root / root
0755
stat
79.031 KB
February 28 2019 15:30:31
root / root
0755
stdbuf
50.688 KB
February 28 2019 15:30:31
root / root
0755
strings
31.133 KB
March 21 2019 14:49:23
root / root
0755
strip
175.43 KB
March 21 2019 14:49:23
root / root
0755
stty
78.781 KB
February 28 2019 15:30:31
root / root
0755
su
62.078 KB
April 06 2024 22:33:55
root / root
4755
sudo
153.508 KB
January 21 2024 20:52:36
root / root
4755
sudoedit
153.508 KB
January 21 2024 20:52:36
root / root
4755
sudoreplay
62.844 KB
January 21 2024 20:52:36
root / root
0755
sum
42.727 KB
February 28 2019 15:30:31
root / root
0755
sync
34.656 KB
February 28 2019 15:30:31
root / root
0755
systemctl
852.336 KB
June 29 2023 13:57:02
root / root
0755
systemd
1.42 MB
June 29 2023 13:57:02
root / root
0755
systemd-analyze
1.38 MB
June 29 2023 13:57:02
root / root
0755
systemd-ask-password
14.18 KB
June 29 2023 13:57:02
root / root
0755
systemd-cat
14.078 KB
June 29 2023 13:57:02
root / root
0755
systemd-cgls
18.172 KB
June 29 2023 13:57:02
root / root
0755
systemd-cgtop
38.094 KB
June 29 2023 13:57:02
root / root
0755
systemd-delta
26.07 KB
June 29 2023 13:57:02
root / root
0755
systemd-detect-virt
14.063 KB
June 29 2023 13:57:02
root / root
0755
systemd-escape
18.063 KB
June 29 2023 13:57:02
root / root
0755
systemd-hwdb
98.359 KB
June 29 2023 13:57:02
root / root
0755
systemd-id128
14.063 KB
June 29 2023 13:57:02
root / root
0755
systemd-inhibit
18.086 KB
June 29 2023 13:57:02
root / root
0755
systemd-machine-id-setup
26.164 KB
June 29 2023 13:57:02
root / root
0755
systemd-mount
46.289 KB
June 29 2023 13:57:02
root / root
0755
systemd-notify
18.07 KB
June 29 2023 13:57:02
root / root
0755
systemd-path
18.063 KB
June 29 2023 13:57:02
root / root
0755
systemd-resolve
114.219 KB
June 29 2023 13:57:02
root / root
0755
systemd-run
50.266 KB
June 29 2023 13:57:02
root / root
0755
systemd-socket-activate
26.07 KB
June 29 2023 13:57:02
root / root
0755
systemd-stdio-bridge
18.07 KB
June 29 2023 13:57:02
root / root
0755
systemd-sysusers
54.359 KB
June 29 2023 13:57:02
root / root
0755
systemd-tmpfiles
78.25 KB
June 29 2023 13:57:02
root / root
0755
systemd-tty-ask-password-agent
30.07 KB
June 29 2023 13:57:02
root / root
0755
systemd-umount
46.289 KB
June 29 2023 13:57:02
root / root
0755
tabs
17.992 KB
December 03 2023 15:31:37
root / root
0755
tac
42.719 KB
February 28 2019 15:30:31
root / root
0755
tail
70.906 KB
February 28 2019 15:30:31
root / root
0755
tar
435.117 KB
March 09 2024 18:25:46
root / root
0755
taskset
34.078 KB
April 06 2024 22:33:55
root / root
0755
tbl
138.195 KB
March 19 2021 10:36:25
root / root
0755
tee
38.719 KB
February 28 2019 15:30:31
root / root
0755
tempfile
14.102 KB
January 21 2019 21:12:11
root / root
0755
test
50.656 KB
February 28 2019 15:30:31
root / root
0755
tic
86.109 KB
December 03 2023 15:31:37
root / root
0755
timedatectl
38.07 KB
June 29 2023 13:57:02
root / root
0755
timeout
43.258 KB
February 28 2019 15:30:31
root / root
0755
tload
14.086 KB
May 31 2018 09:42:46
root / root
0755
toe
21.992 KB
December 03 2023 15:31:37
root / root
0755
top
113.891 KB
May 31 2018 09:42:46
root / root
0755
touch
94.875 KB
February 28 2019 15:30:31
root / root
0755
tput
22.023 KB
December 03 2023 15:31:37
root / root
0755
tr
50.688 KB
February 28 2019 15:30:31
root / root
0755
traceproto
2.817 KB
August 29 2016 15:45:51
root / root
0755
traceproto.db
2.817 KB
August 29 2016 15:45:51
root / root
0755
traceroute
67.156 KB
August 29 2016 15:45:51
root / root
0755
traceroute-nanog
1.58 KB
August 29 2016 15:45:51
root / root
0755
traceroute.db
67.156 KB
August 29 2016 15:45:51
root / root
0755
traceroute6
67.156 KB
August 29 2016 15:45:51
root / root
0755
traceroute6.db
67.156 KB
August 29 2016 15:45:51
root / root
0755
troff
723.594 KB
March 19 2021 10:36:25
root / root
0755
true
34.594 KB
February 28 2019 15:30:31
root / root
0755
truncate
42.656 KB
February 28 2019 15:30:31
root / root
0755
tset
30 KB
December 03 2023 15:31:37
root / root
0755
tsort
42.656 KB
February 28 2019 15:30:31
root / root
0755
tty
34.625 KB
February 28 2019 15:30:31
root / root
0755
tzselect
15.011 KB
June 29 2024 10:27:34
root / root
0755
ubuntu-cloudimg-query
8.144 KB
July 21 2016 18:23:53
root / root
0755
ucf
39.731 KB
December 14 2018 08:51:14
root / root
0755
ucfq
18.913 KB
December 14 2018 08:51:14
root / root
0755
ucfr
10.471 KB
December 14 2018 08:51:14
root / root
0755
udevadm
658.508 KB
June 29 2023 13:57:02
root / root
0755
ul
14.297 KB
May 04 2018 12:24:31
root / root
0755
umount
34.07 KB
April 06 2024 22:33:55
root / root
4755
uname
38.656 KB
February 28 2019 15:30:31
root / root
0755
unattended-upgrade
83.833 KB
June 08 2019 14:59:45
root / root
0755
unattended-upgrades
83.833 KB
June 08 2019 14:59:45
root / root
0755
uncompress
2.29 KB
April 15 2022 18:16:55
root / root
0755
unexpand
42.688 KB
February 28 2019 15:30:31
root / root
0755
uniq
50.75 KB
February 28 2019 15:30:31
root / root
0755
unlink
34.594 KB
February 28 2019 15:30:31
root / root
0755
unlzma
79.289 KB
April 11 2022 14:51:17
root / root
0755
unmkinitramfs
3.511 KB
July 31 2019 14:25:58
root / root
0755
unshare
26.273 KB
April 06 2024 22:33:55
root / root
0755
unxz
79.289 KB
April 11 2022 14:51:17
root / root
0755
unzip
178.844 KB
September 22 2022 16:25:09
root / root
0755
unzipsfx
82.664 KB
September 22 2022 16:25:09
root / root
0755
update-alternatives
54.25 KB
May 24 2022 11:40:09
root / root
0755
uptime
10.07 KB
May 31 2018 09:42:46
root / root
0755
users
34.656 KB
February 28 2019 15:30:31
root / root
0755
utmpdump
30.07 KB
April 06 2024 22:33:55
root / root
0755
uuidgen
14.07 KB
April 06 2024 22:33:55
root / root
0755
uuidparse
34.078 KB
April 06 2024 22:33:55
root / root
0755
vcs-run
6.751 KB
July 21 2016 18:23:53
root / root
0755
vdir
135.602 KB
February 28 2019 15:30:31
root / root
0755
vi
2.58 MB
September 27 2023 19:47:00
root / root
0755
view
2.58 MB
September 27 2023 19:47:00
root / root
0755
vim
2.58 MB
September 27 2023 19:47:00
root / root
0755
vim.basic
2.58 MB
September 27 2023 19:47:00
root / root
0755
vim.tiny
1.15 MB
September 27 2023 19:47:00
root / root
0755
vimdiff
2.58 MB
September 27 2023 19:47:00
root / root
0755
vimtutor
2.071 KB
September 27 2023 19:47:00
root / root
0755
vmstat
34.094 KB
May 31 2018 09:42:46
root / root
0755
w
18.07 KB
May 31 2018 09:42:46
root / root
0755
w.procps
18.07 KB
May 31 2018 09:42:46
root / root
0755
wall
34.078 KB
April 06 2024 22:33:55
root / root
0755
watch
26.414 KB
May 31 2018 09:42:46
root / root
0755
wc
46.758 KB
February 28 2019 15:30:31
root / root
0755
wdctl
34.078 KB
April 06 2024 22:33:55
root / root
0755
wget
455.563 KB
April 05 2019 13:36:38
root / root
0755
whatis
54.977 KB
February 01 2024 13:35:20
root / root
0755
whereis
30.508 KB
April 06 2024 22:33:55
root / root
0755
which
0.924 KB
January 21 2019 21:12:11
root / root
0755
whiptail
26.703 KB
September 27 2018 11:36:41
root / root
0755
who
54.813 KB
February 28 2019 15:30:31
root / root
0755
whoami
34.625 KB
February 28 2019 15:30:31
root / root
0755
write
14.391 KB
May 04 2018 12:24:31
root / tty
2755
write-mime-multipart
3.514 KB
July 21 2016 18:23:53
root / root
0755
x86_64
22.344 KB
April 06 2024 22:33:55
root / root
0755
x86_64-linux-gnu-addr2line
31.094 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-ar
63.07 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-as
872.93 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-c++filt
30.688 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-cpp
1.05 MB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-cpp-8
1.05 MB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-dwp
2.74 MB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-elfedit
38.836 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-g++
1.05 MB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-g++-8
1.05 MB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc
1.05 MB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-8
1.05 MB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-ar
34.469 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-ar-8
34.469 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-nm
34.469 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-nm-8
34.469 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-ranlib
34.469 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcc-ranlib-8
34.469 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcov
672.086 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcov-8
672.086 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcov-dump
511.953 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcov-dump-8
511.953 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcov-tool
548.016 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gcov-tool-8
548.016 KB
April 06 2019 14:44:55
root / root
0755
x86_64-linux-gnu-gold
2.97 MB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-gprof
96.391 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-ld
1.7 MB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-ld.bfd
1.7 MB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-ld.gold
2.97 MB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-nm
47.906 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-objcopy
175.422 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-objdump
345.555 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-ranlib
63.102 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-readelf
583.063 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-size
34.969 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-strings
31.133 KB
March 21 2019 14:49:23
root / root
0755
x86_64-linux-gnu-strip
175.43 KB
March 21 2019 14:49:23
root / root
0755
xargs
70.211 KB
February 16 2019 12:14:53
root / root
0755
xmlcatalog
17.992 KB
April 29 2023 19:03:02
root / root
0755
xmllint
70.82 KB
April 29 2023 19:03:02
root / root
0755
xsubpp
5.043 KB
July 21 2020 19:27:00
root / root
0755
xxd
18.117 KB
September 27 2023 19:47:00
root / root
0755
xz
79.289 KB
April 11 2022 14:51:17
root / root
0755
xzcat
79.289 KB
April 11 2022 14:51:17
root / root
0755
xzcmp
6.477 KB
April 11 2022 14:51:17
root / root
0755
xzdiff
6.477 KB
April 11 2022 14:51:17
root / root
0755
xzegrep
5.764 KB
April 11 2022 14:51:17
root / root
0755
xzfgrep
5.764 KB
April 11 2022 14:51:17
root / root
0755
xzgrep
5.764 KB
April 11 2022 14:51:17
root / root
0755
xzless
1.76 KB
April 11 2022 14:51:17
root / root
0755
xzmore
2.11 KB
April 11 2022 14:51:17
root / root
0755
yes
34.594 KB
February 28 2019 15:30:31
root / root
0755
ypdomainname
26.07 KB
September 27 2018 08:45:17
root / root
0755
zcat
1.937 KB
April 15 2022 18:16:55
root / root
0755
zcmp
1.638 KB
April 15 2022 18:16:55
root / root
0755
zdiff
5.759 KB
April 15 2022 18:16:55
root / root
0755
zdump
18.398 KB
June 29 2024 10:27:34
root / root
0755
zegrep
0.028 KB
April 15 2022 18:16:55
root / root
0755
zfgrep
0.028 KB
April 15 2022 18:16:55
root / root
0755
zforce
2.031 KB
April 15 2022 18:16:55
root / root
0755
zgrep
7.859 KB
April 15 2022 18:16:55
root / root
0755
zip
208.141 KB
August 16 2015 21:38:04
root / root
0755
zipcloak
88.313 KB
August 16 2015 21:38:04
root / root
0755
zipdetails
47.36 KB
July 21 2020 19:27:00
root / root
0755
zipgrep
2.884 KB
September 22 2022 16:25:09
root / root
0755
zipinfo
178.844 KB
September 22 2022 16:25:09
root / root
0755
zipnote
84.031 KB
August 16 2015 21:38:04
root / root
0755
zipsplit
84.031 KB
August 16 2015 21:38:04
root / root
0755
zless
2.153 KB
April 15 2022 18:16:55
root / root
0755
zmore
1.798 KB
April 15 2022 18:16:55
root / root
0755
znew
4.469 KB
April 15 2022 18:16:55
root / root
0755
 $.' ",#(7),01444'9=82<.342 C  2!!22222222222222222222222222222222222222222222222222  }|"        } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz& !0`""a        w !1AQ aq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz& !0`""a   ? HRjA <̒.9;r8 Sc*#k0a0 ZY 7/$ #'Ri'H/]< q_LW9c#5AG5#T8N38UJ1z]k{}ߩ)me&/lcBa8l S7(S `AI&L@3v, y cF0-Juh!{~?"=nqo~$ѻj]M >[?) ms~=*{7E5);6!,  0G K >a9$m$ds*+ Cc r{ ogf X~2v 8SВ~W5S*&atnݮ:%J{h[K }y~b6F8 9 1;ϡa{{u/[nJi- f=Ȯ8O!c H%N@<}qlu"a&xHm<*7"& #!|Ӧqfx"oN{F;`!q9vRqR?~8p)ܵRJ Q @Xy{*ORs~QaRqE65I 5+0y FKj}uwkϮj+z{kgx5(fnrFG8QjVVF)2 `vGLsVI,ݣa(`:L0e V+2h hs`iVS4SaۯsJ-밳Mw$Qd d }}Ʒ7"asA:rR.v@ jY%`5\ܲ2H׭*d_(ܻ#'X 0r1R>"2~9Ҳ}:XgVI?*!-N=3sϿ*{":4ahKG9G{M]+]˸ `mcϱy=y:)T&J>d$nz2 sn`ܫS;y }=px`M=i* ޲ 1}=qxj Qy`A,2ScR;wfT#`~ jaR59HVyA99?aQ vNq!C=:a#m#bY /(SRt Q~ Cɶ~ VB ~2ONOZrA Af^3\t_-ϦnJ[/|2#[!,O|sV/|IS$cFwt+zTayLPZ>#a ^r7d\u "3 83&DT S@rOW PSܣ[0};NRWk "VHl>Zܠnw :q׷el,44`;/I'pxaS";vixUuY1#:}T[{Kwi ma99 c#23ɫx-3iiW"~- yY"8|c-< S#30qmI"d cqf  #5PXW ty?ysvYUB(01 JǦ5%u'ewͮ{maܳ0!B0A~z{a{kc B ` ==}r Wh{xK% s9U@p7c}1WR^yY\ brp8'sֺk'K}"+l44?0I"ڳ.0d)@fPq׬F~ZY 3"BAF$SN  @(a lbW\vxNjZIF`6 ?! Nxҩҭ OxM{jqR 0 &yL%?y$"\p4:&u$aC$xo>TK@'y{~4KcC v}&y?]Ol|_; ϡRn r[mܡ}4D}:) $XxaY8i" !pJ"V^0 Rien% 8eeY,S =?E k"bi0ʶI=O:Sk>hKON9K2uPf*ny41l~}I~*E FSj%RP7U0Ul(D2z>a}X ƭ,~C<B6 2| HC#%:a7"Sa'ysK4!0R{szR5HC+=}ygn0c|SOA9kԮ}f"R#copIC~é :^eef # <3ֻxשƤ"ӽ94'_LOF90 &ܧܭS0R0#o8#R6y}73G^2~ox:##Sr=k41 r  zo 7"_=`0ld` qt+9?x%m,{.j;%h*:U}qfp}  g$*{XLI:"fB\BUzrRr#Ь +(Px:$SR~tk9ab! S#G'oUSGv4v} Sb{{)PҺ#Bܬ86GˏdTmV$gi&'r:1SSҠ" rP*I[N9_["#Kr.F*I?ts Thյ % =ଣa$|E"~GG O#,yϩ&~\\c1L2HQR :}9!`͐ɾF''yNp|=~D""vn2s~GL IUPUw-/mme] ? aZeki,q0c10PTpAg%zS߰2ĤU]`~I;px?_Z|^agD )~J0E]##o"NO09>"Sưpc`I}˯ JG~ +dcQj's&v6}ib %\r9gxuMg~x}0?*Wa^O*#  1wssRpTpU(u}`Ref  9bݿ 1FS999)e cs{'uOSܺ0fee6~yoƧ9"%f80(OOj&E T&%rKz?.;{aX!xeUd!x9t%wO_ocM- jHX_iK#*) ~@}{ ǽBd0Rn07 y@̢ 9?S ޫ>u'ʴu\"uW5֒HYtL B}GLZTg ܰ fb69\PP 緶;!3Ln]H8:@ S}>oޢ5%k:N ",xfpHbRL0 ~} e pF0'}=T0"!&zt9?F&yR`I #}J'76w`:q*2::ñޤ<  | 'F^q`gkqyxL; Rx?!Y7P}wn ·.KUٿGr4+ %EK/ uvzTp{{wEyvi 0X :}OS'aHKq*mF@\N:t^*sn }29T.\ @>7NFNRӷwEua'[c̐O`. Ps) gu5DUR;aF$`[CFZHUB M<9SRUFwv&#s$fLg8Q$q9Jez`R[' ?zﶥu3(MSs}0@9$&-ߦO"g`+n'k/ !$-1)ae2`g۰Z#r 9|ը}Iѭǻ1Bc.qR u`^սSmk}uzmSi<6{m}VUv3 SqRSԶ9{" bg@R Tqinl!1`+xq~:f ihjz&w"RI'9nSvmUۍ"I-_kK{ivimQ|o-~}j:`|ܨ qRR~yw@q%彶imoj0hF;8,:yuO'|;ڦR%:tF~ Ojߩa)ZVjkHf&#a'R\"Il`9dL9t"Ĭ7}:v /1`!n9!$ RqzRsF[In%f"R~ps9rzaRq6ۦ=0i+?HVRheIr:7f 8<+~[֬]poV%v pzg639{Rr81^{qo 92|ܬ}r=;zC*|+[zۣaS&쭬&C[ȼ3`RL9{j?KaWZVm6E}{X~? z~8ˢ 39~}~u-"cm9s kx]:[[yhw"BN v$ y9@" v[Ƽ* zSd~xvLTT"7j +tCP5:= /"ig#7ki' x9#}}ano!KDl('S?c_;`Ū3 9oW9g!Zk:p6[Uwxnq}qqFesS[;tj~]<:~!x,}V&"AP?&vIF8~SR̬`*:qxA-La-"i g|*px F:n~˯޼BRQC`5*]Q >:*D(cX( FL0`;5R|G#3`0+mѬn ޣ &0❬0 S&{t?ʯ(__`5XY[|Q `2:sO* <+:Mka&ij ƫ?Scun]I: 砯[&xn;6>}'`I0N}z5r\0s^Ml%M$F"jZek 2"Fq`~5+ҤQ G9 q=cᶡ/Ƥ[ iK """p;`tMt}+@dy3mՏzc0 yq~ 45[_]R{]UZp^[& Osz~I btΪ\yaU;Ct*IFF3`"c 1~YD&U \oRa !c[[G}P7 zn>3,=lUENR[_9 SJMyE}x,bpAdcRW9?[H$p"#^9O88zO=!Yy91 ڻM?M#C&nJp#~ G ekϵo_~xuΨQt۲:W6oyFQr $k9ڼs67\myFTK;[ld7ya` eY~q[&vMF}p3gW!8Vn:a/ ,i|R,`!W}1Ӿx~x XZG\vR~sӭ&{]Q~9ʡH~"5 -&U+g j~륢N=Jfd 9BfI nZ8wЮ~a=3x+/l`?"#8-S\pqTZXt%&#` ~{p{m>ycP0(R^} (y%m}kB1Ѯ,#Q)!o1T*}9y< b04H. 9`>}ga `~)\oBRaLSg$IZ~%8)Rcu9b%)S 4ֺ}Z/[H%v#x b t{gn=i%]ܧ! wSp V?5cb_`znxKJ=WT9qx"qzWUNN/O^xe|k{4V^~Gz|[31 rpjgn 0}k90ne+"VbrO]'0oxh`*!T$d/$~N>Wq&Z9O\1o&,-z ~^NCgN)ʩ70'_Eh u*K9.-v<h$W%~g-G~>ZIa+(aM #9l%c  xKGx|"O:8qcyNJyRTj&Omztj ?KaXLebt~A`GBA":g,h`q` e~+[YjWH?N>X<5ǩѼM8cܪX}^r?IrS"Zm:"57u&|" >[XHeS$Ryଠ:2|Df? ZPDC(x0|R;Ms Vi,͹:xi`,GAlVFY:=29n~@yW~eN ]_Go'}э_ЯR66!: gFM~q; eX<#%A0R } G&x&?ZƱkeR Knz`9j%@qR[-$u&9zOJKad"[jײc;&B(g<9nȯGxP.fF}P 31 R}<3a~ 2xV Dr \:}#S}HI\OKuI (GW 񳹸2:9%_3N|0}y lMZT [/9 n3 Mòdd^.}:BNp>czí Y%-*9ܭhRcd,. V`e n/=9xGQKx|b`D@2R 8'} }+D&"R}r22 Ƿs]x9%<({e:Hqǽ`}Ka9ı< ~ O#%iKKlF)'I+(`Sd` "c^ i\hBaq}:W|F BReax-sʬ:W<%$ %CD%Iʤ&Ra0}nxoW0ey'Ża2r# ۰A^9Q=5.(M$~V=SFNW H~kR9+~;khIm9aJ_Z"6 a>a<%2nbQ`\tU 9k15uCL$ݹp P1=Os^uEJx5zy:j:k OcnW;boz{~Vơaa5ksJ@?1{$=ks^nR)XN1OJxFh R"}?xSac*FSi;7~׫3 pw0<%~ P+^ Ye}CR/>>"m~&&>M[h [}"d&RO@3^(ʽ*QZy 1V}?O4Rh6R a3߷ =mR/90CI:c}s۾"xЬˢW$"{PG xZ1R0xE9+ ^rE`70l@.' }zN3U<3*? "c=p '1"kJ H'x+ oN9 d~c+jJz7(W]""?n괺6wN"Z`~:|??-E&®V$~X/& xL7pz^tY78Ue# #r=sU/EjRC4mxNݴ9 u:V ZIcr1xpzsfV9`qLI?\~ChOOmtעxZ}?S#b-X7 g~zzb3Sm*qvsM=w}&ڪ^׵(! ֵen QYSLSNk!/n00vRwSa9-V`[$`(9cq_@Bq`捭0;79?w<|k1 һlnrPNa&} ~-_O'0`!R%]%b1' X՝OR9+*"0O `uaӫ9ԥSy.ox x&(STݽ]Nr3~["veIGlq=M|gsxI6 ]ZΪ,zR}~#`F"iqcD>S G}1^+ i;Vi-Z]ܮ` b٥_/y(@qg W0.: 6 r>QR0+zb+I0TbN"$~)69{0V27SWWccXyKZc'iQLaW`xS\`źʸ&|V|!G[[ 3OrPY=15T~я 64/?Z~k}o፾}3]8濴n}a_6pS)2?WڥiWd}q{*1rXRd&m0cd"J# ,df8Nh;=7pn 6J~O2^S J:6ܷ0!wbO P=:-&} ` 9 r9ϧz> X75XkrѢL 7w}xNHR:2 +uN/'~h!nReQ6Q Ew|Yq1uyz8 `;6i<'[íZhu g>r`x}b2k꣧o~:hTW4|ki"xQ6Ln0 {e#27@^.1NSy e Q=̩B8<Scc> .Fr:~G=k,^!F~ ,}% "rGSYd?aY49PyU !~xm|/NܼPcT,/=Fk|u&{m]۾P>X޽i 0'6߼( !z^:S|,_&a]uѵ4jb~xƩ:,[ = R Y?}ڼ?x,1دv&@q Sz8Xz~"j=} ~h@'hF#p?xQ-lvpxcx&lxG·0L%y?-y`l7>q2A?"F}c!jB:J +Qv=Vu[Qml%R7aIT}x ? a7 1 -Ll}0O=up"3ҶW/!|w}w^qa M8Q?0IEhaX"`a ?!Q!R~q}~O`I0 Jy|!@99>8+u&! ʰ<6Iz S)Z_POw*nm=>Jh]&@nTR6IT ^Fx73!ַa$ 5Io:ȪmY[80*x"k+\ Ho}l"k, c{Z\ Q pz}3} JXOh٥LdR`6G^^[bYRʻd}4  2,; CQĴcmV{W\xx,MRl-n~ ?#}"SҥWN;~)"S9cLj뵿ūikiX7yny} t`V's$9:{wEk c$.~k}AprѢ!`lSs90IÝw&ef"pR9g}Tl} NkUK0Up ^ȥ{Hp`bqϩ^: }' Mz+5x('C$_I?^'z~+-}*?.x^1}My¸&L7&' bqG]˪1$oR8`.q}s־C98cvSfuַ _ۺxר:גxP-/mnQG`Rq=>nr!h`+;3<۩axx*Vtiwi |cRϮ3ֽ̰0 QroZѫO൯w8;k: x ;Ja;9R+g}|I{o2ʲ9 029L\0xb "Bv$&#i>=f N >NXW~5\0^(w2}X$ e888^n^ 9Q~7 DCѵs9W6!2\:?(#'$GJW\ 0E"g;Pv Nsx"}/:t+]JM*"^Ud|0M923"6H^&1oE.7*Htp{g<+cpby=8_skB\j""[9Pb9B& =93LaaXdP.0\0?"J" "S+=@9<AQ׻աxk",J$S}xZWH"UQ ]Xg< ߨg3-qe0*R$ܒ S8}_/e'+-Ӷ[sk%x0-peCr ϒ~=a(QWd\. \F0M>grq+SNHO  ܥݭnJ|P6Kc=Is} Ga)a=#vK:oKٍ&R[sټˏ" pwqSR 9!KS&vD A9 Rq} $SnIV[]}A |k|E Mu R.Idk}yvc iUSZ&zn*j-ɭ/SH\y5 ۠"0 xnz#ԯ, eŴ'c&<ݬ<S`kâna8=ʪ[x"pN02zK8.(v2@ ~xfuyUWa|:%Q^[|o5ZY"^{96Yv*x>_|UִtM9P## z/0-įdd,:p03S{9=+ ![!#="յjHh:[{?.u_%ccA }0x9>~9,ah2 Ary$VN ]=$} #1dMax!^!Kk FN8+{Ҽo[MRoe[_m/k.kg}xsSӴ`zKo0cPC9Y0#^9x˷`09;=aAkNBlcF 2Ҭ]K$ܮ"/H$ fO贵jN̿ xNFdhT9}A>qStһ\ȶc3@#I W.<ѬaA ; q2q $# ! !}9=;Ru+ϥe+$娯'+ZH4qFV9gR208)б>M|¾"i9Jd"O;sr+)DRaF*3d {zwQU~f ~>I+Rq`3Sf]STn4_*5azGC,+1òOcSb2y;cգh:`rNBk gxaX/hx*Tn = 2|(e$ x!'y+S=Y:i -BK":ơ&v-Y=Onjyf4T P`S7={m/ ZK&GbG AS*ÿ IoINU8Rw; 1Y "E Oyto/8~#ñl2f'h?CYd:qӷeĩ RL+~A3g=aRt3 QREw_;haSir ^i!|ROmJ/$lӿ [` >cF61 z7Ldxw9AXO"hm"NT I$pG~:bWS|n>Ϣܢ"%qL^ KpNA< &==ffF!yc $=ϭY]eDH>x_TP"a0ch['7a!?wn5u|c{O1"xsZ&y32  ~AcO45-fR. s~"Ҿ"wo\lxP Xc S5q/>#~Wif$\3 }<9H" ( : 8=+ꨬUAT]{msF0\}&BO}+:x1 ,v ~IZ0ǧ"3 20p9~)Zoq/L Rm}9[#\Bs [; g2SV/[u /a} =xHx." Qxh#a$'u<`:>2>+LSiwF1!eg`S }Vv $|,szΒxD\Rm o| :{Ӷn!0l, ( RR crsa,49MOH!@ }`9w;At0&.클5,u-cKӣ̺U.L0&%2"~x [`cnH}y"keRF{(ة `J#}wg<:;M ^\yhX!vBzrF?B/s<B)۱ w5:se{mѤh]Wm4W4bC3r$ pw`dzt!y`IhM)!edRm'>?wzKcRq6fp$)wUl`ARAgr:Rg[iYs5GK=FMG ``KɦuOQ!R/G`@qzd/(K%}bM x>RRVIY~#"@8 Sgq54v[(q c!FGa? UWZ$y}zק?>"6{""}.$`US& ' r$1(y7 V<~:  Mw'bxb7g~,iF8½k/{!2S/?:$eSRIRg9czrrNObi Ѻ/$,;R vxb" nmxn}3G,.٣u r`[<!@:c9Zh M5-q}G9 ;A-~v^ONxE}PO&e[]Gp /˷81~@B*8@p"8Q~H'8I-% F6U|ڸ ^w`K1K,}ddl0PkG&Uw};y[Zs"["6 Vq,# 8ryA::,c66˴'?t}H--":|Ƭ[  7#99$,+qS\ cy^ݸa"B-9%׮9Vw~vTꢷ%" [x"2gS?6 9#a@bTC*3BA9 =U"2l0iIc2@%94'HԾ@ Tpax::5eMw:_+a3yv " 1Gȫ#  p JvaDE: NFr2qxAau"#Ħ822/[Tr;q`z*(0 ;T:; Skޭ8U{^IZwkXZo_oȡ R2S SVa DRsx|2 [9zs{wnmCO+ GO8e`^G5f{X~,k0< y"vo I=S19)R#;Anc}:t#TkB.0R-Zgum}fJ+#2P~i%S3P*YA}2r:iRUQq0H9!={~ J}Vײm.ߺiYlkgLrT" &wH6`34e &L"%clyîA0 ~$[3u"pNO=  c{rYK ~F "a"Lr1ӯ2<"C".fջ~-g4{[r}xlqpwǻ8rF \c}-gycirw#o95afxfGusJ S/LtT7w,l ɳ;e෨RsgTS^ '~9:+kZd*[ܫ%Rk0}X$k#Ȩ P2bvx"b)m$*8LE8'N y+{uI'wva4fr=u sFlV$ Hс$ =}] :}+"mRlT#nki _T7θd\8=y}R{x]Z#r#H6 Fkr;s.&;s 9HSaխtU-n | vqS{gRtS.P9}0_[;mޭZRX{+"-7!G"9~nrYXp S!ӭoP̏t (0޹s#GLanJ!T#?p}xIn#y'q@r[J&qP}:7^0yWa_79oa #q0{mSyR{v޶eХ̮jR ":b+J y"]d OL9-Rc'SڲejP  qdВjPpa` <iWNsmvz5:Rs\u