<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(sniffer_instance=None, wait_time=0.5, clear=True, args=(), debug=False):
 """ Runs the auto tester loop. Internally, the runner instanciates the sniffer_cls and scanner class. ``sniffer_instance`` The class to run. Usually this is set to but a subclass of scanner. Defaults to Sniffer. Sniffer class documentation for more information. ``wait_time`` The time, in seconds, to wait between polls. This is dependent on the underlying scanner implementation. OS-specific libraries may choose to ignore this parameter. Defaults to 0.5 seconds. ``clear`` Boolean. Set to True to clear the terminal before running the sniffer, (alias, the unit tests). Defaults to True. ``args`` The arguments to pass to the sniffer/test runner. Defaults to (). ``debug`` Boolean. Sets the scanner and sniffer in debug mode, printing more internal information. Defaults to False (and should usually be False). """

    if sniffer_instance is None:
        sniffer_instance = ScentSniffer()

    if debug:
        scanner = Scanner(
            sniffer_instance.watch_paths,
            scent=sniffer_instance.scent, logger=sys.stdout)
    else:
        scanner = Scanner(
            sniffer_instance.watch_paths, scent=sniffer_instance.scent)
    #sniffer = sniffer_cls(tuple(args), clear, debug)
    sniffer_instance.set_up(tuple(args), clear, debug)

    sniffer_instance.observe_scanner(scanner)
    scanner.loop(wait_time)