code: def quickstart_extract_notebook(
      zip_file: str,
      name: str,
      directory: Path,
      reset: bool = False,
      overwrite_all: bool = False,
  ) -> Tuple[str, bool, bool]:
      directory.mkdir(exist_ok=True)
      reset = overwrite_all
  
      base_name = os.path.basename(name)
      file_path = directory / base_name
      file_name = file_path.name
      file_exists = file_path.exists()
  
      if file_exists and not reset:
          response = click.prompt(
              f"\nOverwrite {file_name}?",
              prompt_suffix="(a/y/N)",
              default="n",
              show_default=False,
          )
          if response.lower() == "a":
              reset = True
              overwrite_all = True
          elif response.lower() == "y":
              reset = True
          else:
              print(f"Skipping {file_name}")
              reset = False
  
      extracted = False
      if not file_exists or file_exists and reset:
          print(f"Extracting notebook: {file_name}")
          with zipfile.ZipFile(zip_file, "r") as zf:
              zip_info = zf.getinfo(name)
              zip_info.filename = base_name
              zf.extract(zip_info, directory)
          extracted = True
      return str(file_path.absolute()), extracted, overwrite_all
  
imports: from dataclasses import dataclass
  import os
  from pathlib import Path
  import sys
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import Tuple
  from urllib.parse import urlparse
  import zipfile
  import click
  import requests
  from tqdm import tqdm
  from .cache import DEFAULT_BRANCH
  from .cache import DEFAULT_REPO
  from .cache import arg_cache
  from .nb_output import NBOutput
label_desc: Use image node_id 3 for calling a global function with example usage: quickstart_extract_notebook(zip_file, name, directory, reset, overwrite_all) and returns: str,  extracted,  overwrite_all