Counting Distinct Elements in a Stream -- Notes 29 Open index.html to choose a version: 75/index.html Full 75-minute lecture (60 slides, including title). summary/index.html Concise mathematical version (19 slides, including title). PDFs are in the corresponding folders as presentation.pdf. Both versions use Quarto Reveal.js, the existing Dracula theme, colored cards, MathJax, single-column flow, and the same course identity as the neighboring lecture decks. The full version includes timing guidance and speaker notes. The summary retains statements, algorithms, and proofs. This entire folder is portable: source, figures, bibliography, filters, Reveal.js runtime, fonts, and MathJax 3.2.2 are stored here. No adjacent lecture folder or network access is required to view the presentations. Preserve the directory layout when copying it. The HTML files individually depend on these local assets; they are not single-file embedded bundles. Rebuild from any working directory (requires Ruby and Quarto): /path/to/slides_29/tools/build Validate and export PDFs (requires Ruby gem ferrum and Chromium): /path/to/slides_29/tools/verify The build regenerates SVG figures and renders each qmd file directly to its version's index.html. Verification writes verification.json, preview.png, and presentation.pdf in each version directory. Edit 75/presentation.qmd or summary/presentation.qmd. Shared settings: _quarto.yml and style.css. Figure source: tools/make_figures.rb. All assets resolve within this folder. source/ retains the input LaTeX and supplied review report for provenance; it is not a standalone LaTeX compilation project. Neither source file is needed for rendering slides. CORRECTIONS.txt documents the repairs used. Navigation: arrows; O overview; S speaker notes; F fullscreen; B blackout. Printing: use the supplied PDFs or append ?print-pdf to a slide URL. MathJax license: mathjax/LICENSE. Style reference: lectures/15/slides and lectures/14/75. No external images or new research citations were added.