human
Complete this python program:
def CreateImplicitMatcher(config, module_dict, root_path, login_url, create_path_adjuster=PathAdjuster, create_local_dispatcher=LocalCGIDispatcher, create_cgi_dispatcher=CGIDispatcher, get_blob_storage=dev_appserver_blobstore.GetBlobStorage):
assistant
#Here is the Python program you requested.

    """Creates a URLMatcher instance that handles internal URLs.
    Used to facilitate handling user login/logout, debugging, info about the
    currently running app, quitting the dev appserver, etc.
    Args:
    config: AppInfoExternal instance representing the parsed app.yaml file.
    module_dict: Dictionary in the form used by sys.modules.
    root_path: Path to the root of the application.
    login_url: Relative URL which should be used for handling user login/logout.
    create_path_adjuster: Used for dependedency injection.
    create_local_dispatcher: Used for dependency injection.
    create_cgi_dispatcher: Used for dependedency injection.
    get_blob_storage: Used for dependency injection.
    Returns:
    Instance of URLMatcher with appropriate dispatchers.
    """
    url_matcher = URLMatcher()
    path_adjuster = create_path_adjuster(root_path)
    def _StatusChecker():
        '    A    path    for    the    application    manager    to    check    if    this    application    \n                                server    is    up.\n                '
        pass
    status_dispatcher = create_local_dispatcher(config, sys.modules, path_adjuster, _StatusChecker)
    url_matcher.AddURL('/_ah/health_check', status_dispatcher, '', False, False, appinfo.AUTH_FAIL_ACTION_REDIRECT)
    def _HandleQuit():
        raise KeyboardInterrupt
    quit_dispatcher = create_local_dispatcher(config, sys.modules, path_adjuster, _HandleQuit)
    url_matcher.AddURL('/_ah/quit?', quit_dispatcher, '', True, True, appinfo.AUTH_FAIL_ACTION_REDIRECT)
    login_dispatcher = create_local_dispatcher(config, sys.modules, path_adjuster, dev_appserver_login.main)
    url_matcher.AddURL(login_url, login_dispatcher, '', False, False, appinfo.AUTH_FAIL_ACTION_REDIRECT)
    admin_dispatcher = create_cgi_dispatcher(config, module_dict, root_path, path_adjuster)
    url_matcher.AddURL('/_ah/admin(?:/.*)?', admin_dispatcher, DEVEL_CONSOLE_PATH, True, True, appinfo.AUTH_FAIL_ACTION_REDIRECT)
    upload_dispatcher = dev_appserver_blobstore.CreateUploadDispatcher(get_blob_storage)
    url_matcher.AddURL(dev_appserver_blobstore.UPLOAD_URL_PATTERN, upload_dispatcher, '', True, True, appinfo.AUTH_FAIL_ACTION_UNAUTHORIZED)
    blobimage_dispatcher = dev_appserver_blobimage.CreateBlobImageDispatcher(apiproxy_stub_map.apiproxy.GetStub('images'))
    url_matcher.AddURL(dev_appserver_blobimage.BLOBIMAGE_URL_PATTERN, blobimage_dispatcher, '', False, False, appinfo.AUTH_FAIL_ACTION_UNAUTHORIZED)
    oauth_dispatcher = dev_appserver_oauth.CreateOAuthDispatcher()
    url_matcher.AddURL(dev_appserver_oauth.OAUTH_URL_PATTERN, oauth_dispatcher, '', False, False, appinfo.AUTH_FAIL_ACTION_UNAUTHORIZED)
    channel_dispatcher = dev_appserver_channel.CreateChannelDispatcher(apiproxy_stub_map.apiproxy.GetStub('channel'))
   ...