<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def apply_obfuscation(source):
 """ Returns 'source' all obfuscated. """

    global keyword_args
    global imported_modules
    tokens = token_utils.listified_tokenizer(source)
    keyword_args = analyze.enumerate_keyword_args(tokens)
    imported_modules = analyze.enumerate_imports(tokens)
    variables = find_obfuscatables(tokens, obfuscatable_variable)
    classes = find_obfuscatables(tokens, obfuscatable_class)
    functions = find_obfuscatables(tokens, obfuscatable_function)
    for variable in variables:
        replace_obfuscatables(
            tokens, obfuscate_variable, variable, name_generator)
    for function in functions:
        replace_obfuscatables(
            tokens, obfuscate_function, function, name_generator)
    for _class in classes:
        replace_obfuscatables(tokens, obfuscate_class, _class, name_generator)
    return token_utils.untokenize(tokens)