<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def file_selection(multiple=False, directory=False, save=False, confirm_overwrite=False, filename=None, title="", width=DEFAULT_WIDTH, height=DEFAULT_HEIGHT, timeout=None):
 """ Open a file selection window :param multiple: allow multiple file selection :type multiple: bool :param directory: only directory selection :type directory: bool :param save: save mode :type save: bool :param confirm_overwrite: confirm when a file is overwritten :type confirm_overwrite: bool :param filename: placeholder for the filename :type filename: str :param text: text inside the window :type text: str :param title: title of the window :type title: str :param width: window width :type width: int :param height: window height :type height: int :param timeout: close the window after n seconds :type timeout: int :return: path of files selected. :rtype: string or list if multiple enabled """

    dialog = ZFileSelection(multiple, directory, save,
                            confirm_overwrite, filename,
                            title, width, height, timeout)
    dialog.run()
    return dialog.response