presentations

Presentations
Log | Files | Refs

commit 478bad83380d967f4ae9f64f308f779153e6f084
parent 4612f92969153c14f8a945e483a8c52541d07dc8
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Sat, 17 Feb 2024 15:46:09 +0100

Add GNU40 presentation

Diffstat:
A2023-gnu40/.gitignore | 8++++++++
A2023-gnu40/beamercolorthememetropolis-highcontrast.sty | 39+++++++++++++++++++++++++++++++++++++++
A2023-gnu40/beamercolorthememetropolis.sty | 138+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2023-gnu40/beamerfontthememetropolis.sty | 325+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2023-gnu40/beamerinnerthememetropolis.sty | 293+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2023-gnu40/beamerouterthememetropolis.sty | 137+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2023-gnu40/beamerthememetropolis.sty | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2023-gnu40/figures/GNS-BlockCreation.drawio | 2++
A2023-gnu40/figures/GNS-BlockValidation.drawio | 2++
A2023-gnu40/figures/gns-logo.png | 0
A2023-gnu40/figures/gnunet.png | 0
A2023-gnu40/gns.tex | 241+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 files changed, 1292 insertions(+), 0 deletions(-)

diff --git a/2023-gnu40/.gitignore b/2023-gnu40/.gitignore @@ -0,0 +1,8 @@ +gns.aux +gns.log +gns.nav +gns.out +gns.pdf +gns.snm +gns.toc +gns.vrb diff --git a/2023-gnu40/beamercolorthememetropolis-highcontrast.sty b/2023-gnu40/beamercolorthememetropolis-highcontrast.sty @@ -0,0 +1,39 @@ +%% +%% This is file `beamercolorthememetropolis-highcontrast.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% beamercolorthememetropolis-highcontrast.dtx (with options: `package') +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamercolorthememetropolis-highcontrast}[2017/01/23 Metropolis color theme] +\usecolortheme{metropolis} + +\definecolor{mAlert}{HTML}{AD003D} +\definecolor{mExample}{HTML}{005580} + +\setbeamercolor{normal text}{% + fg=black, + bg=white +} +\setbeamercolor{alerted text}{% + fg=mAlert, +} +\setbeamercolor{example text}{% + fg=mExample, +} +\mode<all> +\endinput +%% +%% End of file `beamercolorthememetropolis-highcontrast.sty'. diff --git a/2023-gnu40/beamercolorthememetropolis.sty b/2023-gnu40/beamercolorthememetropolis.sty @@ -0,0 +1,138 @@ +%% +%% This is file `beamercolorthememetropolis.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% beamercolorthememetropolis.dtx (with options: `package') +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamercolorthememetropolis}[2017/01/23 Metropolis color theme] +\RequirePackage{pgfopts} +\pgfkeys{ + /metropolis/color/block/.cd, + .is choice, + transparent/.code=\metropolis@block@transparent, + fill/.code=\metropolis@block@fill, +} +\pgfkeys{ + /metropolis/color/background/.cd, + .is choice, + dark/.code=\metropolis@colors@dark, + light/.code=\metropolis@colors@light, +} +\newcommand{\metropolis@color@setdefaults}{ + \pgfkeys{/metropolis/color/.cd, + background=light, + block=transparent, + } +} +\definecolor{mDarkBrown}{HTML}{604c38} +\definecolor{mDarkTeal}{HTML}{23373b} +\definecolor{mLightBrown}{HTML}{EB811B} +\definecolor{mLightGreen}{HTML}{14B03D} +\newcommand{\metropolis@colors@dark}{ + \setbeamercolor{normal text}{% + fg=black!2, + bg=mDarkTeal + } + \usebeamercolor[fg]{normal text} +} +\newcommand{\metropolis@colors@light}{ + \setbeamercolor{normal text}{% + fg=mDarkTeal, + bg=black!2 + } +} +\setbeamercolor{alerted text}{% + fg=mLightBrown +} +\setbeamercolor{example text}{% + fg=mLightGreen +} +\setbeamercolor{titlelike}{use=normal text, parent=normal text} +\setbeamercolor{author}{use=normal text, parent=normal text} +\setbeamercolor{date}{use=normal text, parent=normal text} +\setbeamercolor{institute}{use=normal text, parent=normal text} +\setbeamercolor{structure}{use=normal text, fg=normal text.fg} +\setbeamercolor{palette primary}{% + use=normal text, + fg=normal text.bg, + bg=normal text.fg +} +\setbeamercolor{frametitle}{% + use=palette primary, + parent=palette primary +} +\setbeamercolor{progress bar}{% + use=alerted text, + fg=alerted text.fg, + bg=alerted text.fg!50!black!30 +} +\setbeamercolor{title separator}{ + use=progress bar, + parent=progress bar +} +\setbeamercolor{progress bar in head/foot}{% + use=progress bar, + parent=progress bar +} +\setbeamercolor{progress bar in section page}{ + use=progress bar, + parent=progress bar +} +\newcommand{\metropolis@block@transparent}{ + \setbeamercolor{block title}{% + use=normal text, + fg=normal text.fg, + bg= + } + \setbeamercolor{block body}{ + bg= + } +} +\newcommand{\metropolis@block@fill}{ + \setbeamercolor{block title}{% + use=normal text, + fg=normal text.fg, + bg=normal text.bg!80!fg + } + \setbeamercolor{block body}{ + use={block title, normal text}, + bg=block title.bg!50!normal text.bg + } +} +\setbeamercolor{block title alerted}{% + use={block title, alerted text}, + bg=block title.bg, + fg=alerted text.fg +} +\setbeamercolor{block title example}{% + use={block title, example text}, + bg=block title.bg, + fg=example text.fg +} +\setbeamercolor{block body alerted}{use=block body, parent=block body} +\setbeamercolor{block body example}{use=block body, parent=block body} +\setbeamercolor{footnote}{fg=normal text.fg!90} +\setbeamercolor{footnote mark}{fg=.} +\setbeamercolor{bibliography entry author}{fg=, bg=} +\setbeamercolor{bibliography entry title}{fg=, bg=} +\setbeamercolor{bibliography entry location}{fg=, bg=} +\setbeamercolor{bibliography entry note}{fg=, bg=} +\metropolis@color@setdefaults +\ProcessPgfPackageOptions{/metropolis/color} +\mode<all> +\endinput +%% +%% End of file `beamercolorthememetropolis.sty'. diff --git a/2023-gnu40/beamerfontthememetropolis.sty b/2023-gnu40/beamerfontthememetropolis.sty @@ -0,0 +1,325 @@ +%% +%% This is file `beamerfontthememetropolis.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% beamerfontthememetropolis.dtx (with options: `package') +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerfontthememetropolis}[2017/01/23 Metropolis font theme] +\RequirePackage{etoolbox} +\RequirePackage{ifxetex} +\RequirePackage{ifluatex} +\RequirePackage{pgfopts} +\ifboolexpr{bool {xetex} or bool {luatex}}{ + \@ifpackageloaded{fontspec}{ + \PassOptionsToPackage{no-math}{fontspec} + }{ + \RequirePackage[no-math]{fontspec} + } + \newcounter{fontsnotfound} + \newcommand{\checkfont}[1]{% + \suppressfontnotfounderror=1% + \font\x = "#1" at 10pt + \selectfont + \ifx\x\nullfont% + \stepcounter{fontsnotfound}% + \fi% + \suppressfontnotfounderror=0% + } + + \newcommand{\iffontsavailable}[3]{% + \setcounter{fontsnotfound}{0}% + \expandafter\forcsvlist\expandafter% + \checkfont\expandafter{#1}% + \ifnum\value{fontsnotfound}=0% + #2% + \else% + #3% + \fi% + } + \iffontsavailable{Fira Sans Light,% + Fira Sans Light Italic,% + Fira Sans,% + Fira Sans Italic}% + {% + \setsansfont[ItalicFont={Fira Sans Light Italic},% + BoldFont={Fira Sans},% + BoldItalicFont={Fira Sans Italic}]% + {Fira Sans Light}% + }{% + \iffontsavailable{Fira Sans Light OT,% + Fira Sans Light Italic OT,% + Fira Sans OT,% + Fira Sans Italic OT}% + {% + \setsansfont[ItalicFont={Fira Sans Light Italic OT},% + BoldFont={Fira Sans OT},% + BoldItalicFont={Fira Sans Italic OT}]% + {Fira Sans Light OT}% + }{% + \PackageWarning{beamerthememetropolis}{% + Could not find Fira Sans fonts% + } + } + } + \iffontsavailable{Fira Mono, Fira Mono Bold}{% + \setmonofont[BoldFont={Fira Mono Medium}]{Fira Mono}% + }{% + \iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{% + \setmonofont[BoldFont={Fira Mono Medium OT}]{Fira Mono OT}% + }{% + \PackageWarning{beamerthememetropolis}{% + Could not find Fira Mono fonts% + } + } + } + \AtBeginEnvironment{tabular}{% + \addfontfeature{Numbers={Monospaced}}% + } +}{% + \PackageWarning{beamerthememetropolis}{% + You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts% + } +} +\setbeamerfont{title}{size=\Large,% + series=\bfseries} +\setbeamerfont{author}{size=\small} +\setbeamerfont{date}{size=\small} +\setbeamerfont{section title}{size=\Large,% + series=\bfseries} +\setbeamerfont{block title}{size=\normalsize,% + series=\bfseries} +\setbeamerfont{block title alerted}{size=\normalsize,% + series=\bfseries} +\setbeamerfont*{subtitle}{size=\large} +\setbeamerfont{frametitle}{size=\large,% + series=\bfseries} +\setbeamerfont{caption}{size=\small} +\setbeamerfont{caption name}{series=\bfseries} +\setbeamerfont{description item}{series=\bfseries} +\setbeamerfont{page number in head/foot}{size=\scriptsize} +\setbeamerfont{bibliography entry author}{size=\normalsize,% + series=\normalfont} +\setbeamerfont{bibliography entry title}{size=\normalsize,% + series=\bfseries} +\setbeamerfont{bibliography entry location}{size=\normalsize,% + series=\normalfont} +\setbeamerfont{bibliography entry note}{size=\small,% + series=\normalfont} +\setbeamerfont{standout}{size=\Large,% + series=\bfseries} +\pgfkeys{ + /metropolis/font/titleformat title/.cd, + .is choice, + regular/.code={% + \let\metropolis@titleformat\@empty% + \setbeamerfont{title}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\metropolis@titleformat\@empty% + \setbeamerfont{title}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\metropolis@titleformat\lowercase% + \setbeamerfont{title}{shape=\scshape}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat title=allsmallcaps can lead to problems% + } + }, + allcaps/.code={% + \let\metropolis@titleformat\uppercase% + \setbeamerfont{title}{shape=\normalfont} + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat title=allcaps can lead to problems% + } + }, +} +\pgfkeys{ + /metropolis/font/titleformat subtitle/.cd, + .is choice, + regular/.code={% + \let\metropolis@subtitleformat\@empty% + \setbeamerfont{subtitle}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\metropolis@subtitleformat\@empty% + \setbeamerfont{subtitle}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\metropolis@subtitleformat\lowercase% + \setbeamerfont{subtitle}{shape=\scshape}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat subtitle=allsmallcaps can lead to problems% + } + }, + allcaps/.code={% + \let\metropolis@subtitleformat\uppercase% + \setbeamerfont{subtitle}{shape=\normalfont}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat subtitle=allcaps can lead to problems% + } + }, +} +\pgfkeys{ + /metropolis/font/titleformat section/.cd, + .is choice, + regular/.code={% + \let\metropolis@sectiontitleformat\@empty% + \setbeamerfont{section title}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\metropolis@sectiontitleformat\@empty% + \setbeamerfont{section title}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\metropolis@sectiontitleformat\MakeLowercase% + \setbeamerfont{section title}{shape=\scshape}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat section=allsmallcaps can lead to problems% + } + }, + allcaps/.code={% + \let\metropolis@sectiontitleformat\MakeUppercase% + \setbeamerfont{section title}{shape=\normalfont}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat section=allcaps can lead to problems% + } + }, +} +\pgfkeys{ + /metropolis/font/titleformat frame/.cd, + .is choice, + regular/.code={% + \let\metropolis@frametitleformat\@empty% + \setbeamerfont{frametitle}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\metropolis@frametitleformat\@empty% + \setbeamerfont{frametitle}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\metropolis@frametitleformat\MakeLowercase% + \setbeamerfont{frametitle}{shape=\scshape}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat frame=allsmallcaps can lead to problems% + } + }, + allcaps/.code={% + \let\metropolis@frametitleformat\MakeUppercase% + \setbeamerfont{frametitle}{shape=\normalfont} + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat frame=allcaps can lead to problems% + } + }, +} +\pgfkeys{ + /metropolis/font/.cd, + titleformattitle/.code=\pgfkeysalso{titleformat title=#1}, + titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1}, + titleformatsection/.code=\pgfkeysalso{titleformat section=#1}, + titleformatframe/.code=\pgfkeysalso{titleformat frame=#1}, +} +\newcommand{\metropolis@font@setdefaults}{ + \pgfkeys{/metropolis/font/.cd, + titleformat title=regular, + titleformat subtitle=regular, + titleformat section=regular, + titleformat frame=regular, + } +} +\def\metropolis@titleformat#1{#1} +\def\metropolis@subtitleformat#1{#1} +\def\metropolis@sectiontitleformat#1{#1} +\def\metropolis@frametitleformat#1{#1} +\patchcmd{\beamer@title}% + {\def\inserttitle{#2}}% + {\def\inserttitle{\metropolis@titleformat{#2}}}% + {}% + {\PackageError{beamerfontthememetropolis}{Patching title failed}\@ehc} +\patchcmd{\beamer@subtitle}% + {\def\insertsubtitle{#2}}% + {\def\insertsubtitle{\metropolis@subtitleformat{#2}}}% + {}% + {\PackageError{beamerfontthememetropolis}{Patching subtitle failed}\@ehc} +\patchcmd{\sectionentry} + {\def\insertsectionhead{#2}} + {\def\insertsectionhead{\metropolis@sectiontitleformat{#2}}} + {} + {\PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc} +\@tempswafalse +\patchcmd{\beamer@section} + {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}} + {\edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% + \noexpand\metropolis@sectiontitleformat{\unexpanded{#1}}}}} + {\@tempswatrue} + {} +\patchcmd{\beamer@section} + {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} + {\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{% + \metropolis@sectiontitleformat{#1}}}} + {\@tempswatrue} + {} +\patchcmd{\beamer@section} + {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}} + {\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% + \noexpand\metropolis@sectiontitleformat{#1}}}} + {\@tempswatrue} + {} +\if@tempswa\else + \PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc +\fi +\@tempswafalse +\patchcmd{\beamer@subsection} + {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{\unexpanded{#1}}}} + {\edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% + \noexpand\metropolis@sectiontitleformat{\unexpanded{#1}}}}} + {\@tempswatrue} + {} +\patchcmd{\beamer@subsection} + {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}} + {\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{% + \metropolis@sectiontitleformat{#1}}}} + {\@tempswatrue} + {} +\patchcmd{\beamer@subsection} + {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}} + {\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{% + \noexpand\metropolis@sectiontitleformat{#1}}}} + {\@tempswatrue} + {} +\if@tempswa\else + \PackageError{beamerfontthememetropolis}{Patching section title failed}\@ehc +\fi +\patchcmd{\beamer@@frametitle} + {{% + \gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space% + \usebeamertemplate*{frametitle continuation}\fi}}% + \gdef\beamer@frametitle{#2}% + \gdef\beamer@shortframetitle{#1}% + }} + {{% + \gdef\insertframetitle{{\metropolis@frametitleformat{#2}\ifnum% + \beamer@autobreakcount>0\relax{}\space% + \usebeamertemplate*{frametitle continuation}\fi}}% + \gdef\beamer@frametitle{#2}% + \gdef\beamer@shortframetitle{#1}% + }} + {} + {\PackageError{beamerfontthememetropolis}{Patching frame title failed}\@ehc} +\metropolis@font@setdefaults +\ProcessPgfPackageOptions{/metropolis/font} +\endinput +%% +%% End of file `beamerfontthememetropolis.sty'. diff --git a/2023-gnu40/beamerinnerthememetropolis.sty b/2023-gnu40/beamerinnerthememetropolis.sty @@ -0,0 +1,293 @@ +%% +%% This is file `beamerinnerthememetropolis.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% beamerinnerthememetropolis.dtx (with options: `package') +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerinnerthememetropolis}[2017/01/23 Metropolis inner theme] +\RequirePackage{etoolbox} +\RequirePackage{keyval} +\RequirePackage{calc} +\RequirePackage{pgfopts} +\RequirePackage{tikz} +\pgfkeys{ + /metropolis/inner/sectionpage/.cd, + .is choice, + none/.code=\metropolis@disablesectionpage, + simple/.code={\metropolis@enablesectionpage + \setbeamertemplate{section page}[simple]}, + progressbar/.code={\metropolis@enablesectionpage + \setbeamertemplate{section page}[progressbar]}, +} +\pgfkeys{ + /metropolis/inner/subsectionpage/.cd, + .is choice, + none/.code=\metropolis@disablesubsectionpage, + simple/.code={\metropolis@enablesubsectionpage + \setbeamertemplate{section page}[simple]}, + progressbar/.code={\metropolis@enablesubsectionpage + \setbeamertemplate{section page}[progressbar]}, +} +\newcommand{\metropolis@inner@setdefaults}{ + \pgfkeys{/metropolis/inner/.cd, + sectionpage=progressbar, + subsectionpage=none + } +} +\setbeamertemplate{title page}{ + \begin{minipage}[b][\paperheight]{\textwidth} + \ifx\inserttitlegraphic\@empty\else\usebeamertemplate*{title graphic}\fi + \vfill% + \ifx\inserttitle\@empty\else\usebeamertemplate*{title}\fi + \ifx\insertsubtitle\@empty\else\usebeamertemplate*{subtitle}\fi + \usebeamertemplate*{title separator} + \ifx\beamer@shortauthor\@empty\else\usebeamertemplate*{author}\fi + \ifx\insertdate\@empty\else\usebeamertemplate*{date}\fi + \ifx\insertinstitute\@empty\else\usebeamertemplate*{institute}\fi + \vfill + \vspace*{1mm} + \end{minipage} +} +\def\maketitle{% + \ifbeamer@inframe + \titlepage + \else + \frame[plain,noframenumbering]{\titlepage} + \fi +} +\def\titlepage{% + \usebeamertemplate{title page} +} +\setbeamertemplate{title graphic}{ + \vbox to 0pt { + \vspace*{2em} + \inserttitlegraphic% + }% + \nointerlineskip% +} +\setbeamertemplate{title}{ + \raggedright% + \linespread{1.0}% + \inserttitle% + \par% + \vspace*{0.5em} +} +\setbeamertemplate{subtitle}{ + \raggedright% + \insertsubtitle% + \par% + \vspace*{0.5em} +} +\newlength{\metropolis@titleseparator@linewidth} +\setlength{\metropolis@titleseparator@linewidth}{0.4pt} +\setbeamertemplate{title separator}{ + \tikzexternaldisable% + \begin{tikzpicture} + \fill[fg] (0,0) rectangle (\textwidth, \metropolis@titleseparator@linewidth); + \end{tikzpicture}% + \tikzexternalenable% + \par% +} +\setbeamertemplate{author}{ + \vspace*{2em} + \insertauthor% + \par% + \vspace*{0.25em} +} +\setbeamertemplate{date}{ + \insertdate% + \par% +} +\setbeamertemplate{institute}{ + \vspace*{3mm} + \insertinstitute% + \par% +} +\defbeamertemplate{section page}{simple}{ + \begin{center} + \usebeamercolor[fg]{section title} + \usebeamerfont{section title} + \insertsectionhead\par + \ifx\insertsubsectionhead\@empty\else + \usebeamercolor[fg]{subsection title} + \usebeamerfont{subsection title} + \insertsubsectionhead + \fi + \end{center} +} +\defbeamertemplate{section page}{progressbar}{ + \centering + \begin{minipage}{22em} + \raggedright + \usebeamercolor[fg]{section title} + \usebeamerfont{section title} + \insertsectionhead\\[-1ex] + \usebeamertemplate*{progress bar in section page} + \par + \ifx\insertsubsectionhead\@empty\else% + \usebeamercolor[fg]{subsection title}% + \usebeamerfont{subsection title}% + \insertsubsectionhead + \fi + \end{minipage} + \par + \vspace{\baselineskip} +} +\newcommand{\metropolis@disablesectionpage}{ + \AtBeginSection{ + % intentionally empty + } +} +\newcommand{\metropolis@enablesectionpage}{ + \AtBeginSection{ + \ifbeamer@inframe + \sectionpage + \else + \frame[plain,c,noframenumbering]{\sectionpage} + \fi + } +} +\setbeamertemplate{subsection page}{% + \usebeamertemplate*{section page} +} +\newcommand{\metropolis@disablesubsectionpage}{ + \AtBeginSubsection{ + % intentionally empty + } +} +\newcommand{\metropolis@enablesubsectionpage}{ + \AtBeginSubsection{ + \ifbeamer@inframe + \subsectionpage + \else + \frame[plain,c,noframenumbering]{\subsectionpage} + \fi + } +} +\newlength{\metropolis@progressonsectionpage} +\newlength{\metropolis@progressonsectionpage@linewidth} +\setlength{\metropolis@progressonsectionpage@linewidth}{0.4pt} +\setbeamertemplate{progress bar in section page}{ + \setlength{\metropolis@progressonsectionpage}{% + \textwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}% + }% + \tikzexternaldisable% + \begin{tikzpicture} + \fill[bg] (0,0) rectangle (\textwidth, \metropolis@progressonsectionpage@linewidth); + \fill[fg] (0,0) rectangle (\metropolis@progressonsectionpage, \metropolis@progressonsectionpage@linewidth); + \end{tikzpicture}% + \tikzexternalenable% +} +\def\inserttotalframenumber{100} +\newlength{\metropolis@blocksep} +\newlength{\metropolis@blockadjust} +\setlength{\metropolis@blocksep}{0.75ex} +\setlength{\metropolis@blockadjust}{0.25ex} +\providecommand{\metropolis@strut}{% + \vphantom{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()}% +} +\newcommand{\metropolis@block}[1]{ + \par\vskip\medskipamount% + \setlength{\parskip}{0pt} + \ifbeamercolorempty[bg]{block title#1}{% + \begin{beamercolorbox}[rightskip=0pt plus 4em]{block title#1}}{% + \ifbeamercolorempty[bg]{block title}{% + \begin{beamercolorbox}[rightskip=0pt plus 4em]{block title#1}% + }% + {% + \begin{beamercolorbox}[ + sep=\dimexpr\metropolis@blocksep-\metropolis@blockadjust\relax, + leftskip=\metropolis@blockadjust, + rightskip=\dimexpr\metropolis@blockadjust plus 4em\relax + ]{block title#1}% + }}% + \usebeamerfont*{block title#1}% + \metropolis@strut% + \insertblocktitle% + \metropolis@strut% + \end{beamercolorbox}% + \nointerlineskip% + \ifbeamercolorempty[bg]{block body#1}{% + \begin{beamercolorbox}[vmode]{block body#1}}{ + \ifbeamercolorempty[bg]{block body}{% + \begin{beamercolorbox}[vmode]{block body#1}% + }{% + \begin{beamercolorbox}[sep=\metropolis@blocksep, vmode]{block body#1}% + \vspace{-\metropolis@parskip} + }}% + \usebeamerfont{block body#1}% + \setlength{\parskip}{\metropolis@parskip}% +} +\setbeamertemplate{block begin}{\metropolis@block{}} +\setbeamertemplate{block alerted begin}{\metropolis@block{ alerted}} +\setbeamertemplate{block example begin}{\metropolis@block{ example}} +\setbeamertemplate{block end}{\end{beamercolorbox}\vspace*{0.2ex}} +\setbeamertemplate{block alerted end}{\end{beamercolorbox}\vspace*{0.2ex}} +\setbeamertemplate{block example end}{\end{beamercolorbox}\vspace*{0.2ex}} +\setbeamertemplate{itemize items}{\textbullet} +\setbeamertemplate{caption label separator}{: } +\setbeamertemplate{caption}[numbered] +\setbeamertemplate{footnote}{% + \parindent 0em\noindent% + \raggedright + \usebeamercolor{footnote}\hbox to 0.8em{\hfil\insertfootnotemark}\insertfootnotetext\par% +} +\newlength{\metropolis@parskip} +\setlength{\metropolis@parskip}{0.5em} +\setlength{\parskip}{\metropolis@parskip} +\linespread{1.15} +\define@key{beamerframe}{c}[true]{% centered + \beamer@frametopskip=0pt plus 1fill\relax% + \beamer@framebottomskip=0pt plus 1fill\relax% + \beamer@frametopskipautobreak=0pt plus .4\paperheight\relax% + \beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax% + \def\beamer@initfirstlineunskip{}% +} +\providebool{metropolis@standout} +\define@key{beamerframe}{standout}[true]{% + \booltrue{metropolis@standout} + \begingroup + \setkeys{beamerframe}{c} + \setkeys{beamerframe}{noframenumbering} + \ifbeamercolorempty[bg]{palette primary}{ + \setbeamercolor{background canvas}{ + use=palette primary, + bg=-palette primary.fg + } + }{ + \setbeamercolor{background canvas}{ + use=palette primary, + bg=palette primary.bg + } + } + \setbeamercolor{local structure}{ + fg=palette primary.fg + } + \centering + \usebeamercolor[fg]{palette primary} + \usebeamerfont{standout} +} + \apptocmd{\beamer@reseteecodes}{% + \ifbool{metropolis@standout}{ + \endgroup + \boolfalse{metropolis@standout} + }{} + }{}{} +\metropolis@inner@setdefaults +\ProcessPgfPackageOptions{/metropolis/inner} +\endinput +%% +%% End of file `beamerinnerthememetropolis.sty'. diff --git a/2023-gnu40/beamerouterthememetropolis.sty b/2023-gnu40/beamerouterthememetropolis.sty @@ -0,0 +1,137 @@ +%% +%% This is file `beamerouterthememetropolis.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% beamerouterthememetropolis.dtx (with options: `package') +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerouterthememetropolis}[2017/01/23 Metropolis outer theme] +\RequirePackage{etoolbox} +\RequirePackage{calc} +\RequirePackage{pgfopts} +\pgfkeys{ + /metropolis/outer/numbering/.cd, + .is choice, + none/.code=\setbeamertemplate{frame numbering}[none], + counter/.code=\setbeamertemplate{frame numbering}[counter], + fraction/.code=\setbeamertemplate{frame numbering}[fraction], +} +\pgfkeys{ + /metropolis/outer/progressbar/.cd, + .is choice, + none/.code={% + \setbeamertemplate{headline}[plain] + \setbeamertemplate{frametitle}[plain] + \setbeamertemplate{footline}[plain] + }, + head/.code={\pgfkeys{/metropolis/outer/progressbar=none} + \addtobeamertemplate{headline}{}{% + \usebeamertemplate*{progress bar in head/foot} + } + }, + frametitle/.code={\pgfkeys{/metropolis/outer/progressbar=none} + \addtobeamertemplate{frametitle}{}{% + \usebeamertemplate*{progress bar in head/foot} + } + }, + foot/.code={\pgfkeys{/metropolis/outer/progressbar=none} + \addtobeamertemplate{footline}{}{% + \usebeamertemplate*{progress bar in head/foot}% + } + }, +} +\newcommand{\metropolis@outer@setdefaults}{ + \pgfkeys{/metropolis/outer/.cd, + numbering=counter, + progressbar=none, + } +} +\setbeamertemplate{navigation symbols}{} +\defbeamertemplate{frame footer}{none}{} +\defbeamertemplate{frame footer}{custom}[1]{ #1 } +\defbeamertemplate{frame numbering}{none}{} +\defbeamertemplate{frame numbering}{counter}{\insertframenumber} +\defbeamertemplate{frame numbering}{fraction}{ + \insertframenumber/\inserttotalframenumber +} +\defbeamertemplate{headline}{plain}{} +\defbeamertemplate{footline}{plain}{% + \begin{beamercolorbox}[wd=\textwidth, sep=3ex]{footline}% + \usebeamerfont{page number in head/foot}% + \usebeamertemplate*{frame footer} + \hfill% + \usebeamertemplate*{frame numbering} + \end{beamercolorbox}% +} +\newlength{\metropolis@frametitle@padding} +\setlength{\metropolis@frametitle@padding}{2.2ex} +\newcommand{\metropolis@frametitlestrut@start}{ + \rule{0pt}{\metropolis@frametitle@padding +% + \totalheightof{% + \ifcsdef{metropolis@frametitleformat}{\metropolis@frametitleformat X}{X}% + }% + }% +} +\newcommand{\metropolis@frametitlestrut@end}{ + \rule[-\metropolis@frametitle@padding]{0pt}{\metropolis@frametitle@padding} +} +\defbeamertemplate{frametitle}{plain}{% + \nointerlineskip% + \begin{beamercolorbox}[% + wd=\paperwidth,% + sep=0pt,% + leftskip=\metropolis@frametitle@padding,% + rightskip=\metropolis@frametitle@padding,% + ]{frametitle}% + \metropolis@frametitlestrut@start% + \insertframetitle% + \nolinebreak% + \metropolis@frametitlestrut@end% + \end{beamercolorbox}% +} +\setbeamertemplate{frametitle continuation}{% + \usebeamerfont{frametitle} + \romannumeral \insertcontinuationcount +} +\newlength{\metropolis@progressinheadfoot} +\newlength{\metropolis@progressinheadfoot@linewidth} +\setlength{\metropolis@progressinheadfoot@linewidth}{0.4pt} +\setbeamertemplate{progress bar in head/foot}{ + \nointerlineskip + \setlength{\metropolis@progressinheadfoot}{% + \paperwidth * \ratio{\insertframenumber pt}{\inserttotalframenumber pt}% + }% + \begin{beamercolorbox}[wd=\paperwidth]{progress bar in head/foot} + \tikzexternaldisable% + \begin{tikzpicture} + \fill[bg] (0,0) rectangle (\paperwidth, \metropolis@progressinheadfoot@linewidth); + \fill[fg] (0,0) rectangle (\metropolis@progressinheadfoot, \metropolis@progressinheadfoot@linewidth); + \end{tikzpicture}% + \tikzexternalenable% + \end{beamercolorbox} +} +\AtBeginDocument{% + \apptocmd{\appendix}{% + \pgfkeys{% + /metropolis/outer/.cd, + numbering=none, + progressbar=none} + }{}{} +} +\metropolis@outer@setdefaults +\ProcessPgfPackageOptions{/metropolis/outer} +\endinput +%% +%% End of file `beamerouterthememetropolis.sty'. diff --git a/2023-gnu40/beamerthememetropolis.sty b/2023-gnu40/beamerthememetropolis.sty @@ -0,0 +1,107 @@ +%% +%% This is file `beamerthememetropolis.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% beamerthememetropolis.dtx (with options: `package') +%% --------------------------------------------------------------------------- +%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of +%% contributors can be found at +%% +%% https://github.com/matze/mtheme/graphs/contributors +%% +%% and the original template was based on the HSRM theme by Benjamin Weiss. +%% +%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 +%% International License (https://creativecommons.org/licenses/by-sa/4.0/). +%% --------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{beamerthememetropolis} + [2017/01/23 v1.2 Metropolis Beamer theme] +\RequirePackage{etoolbox} +\RequirePackage{pgfopts} +\pgfkeys{/metropolis/.cd, + .search also={ + /metropolis/inner, + /metropolis/outer, + /metropolis/color, + /metropolis/font, + } +} +\pgfkeys{ + /metropolis/titleformat plain/.cd, + .is choice, + regular/.code={% + \let\metropolis@plaintitleformat\@empty% + \setbeamerfont{standout}{shape=\normalfont}% + }, + smallcaps/.code={% + \let\metropolis@plaintitleformat\@empty% + \setbeamerfont{standout}{shape=\scshape}% + }, + allsmallcaps/.code={% + \let\metropolis@plaintitleformat\MakeLowercase% + \setbeamerfont{standout}{shape=\scshape}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat plain=allsmallcaps can lead to problems% + } + }, + allcaps/.code={% + \let\metropolis@plaintitleformat\MakeUppercase% + \setbeamerfont{standout}{shape=\normalfont}% + \PackageWarning{beamerthememetropolis}{% + Be aware that titleformat plain=allcaps can lead to problems% + } + }, +} +\pgfkeys{ + /metropolis/titleformat/.code=\pgfkeysalso{ + font/titleformat title=#1, + font/titleformat subtitle=#1, + font/titleformat section=#1, + font/titleformat frame=#1, + titleformat plain=#1, + } +} +\pgfkeys{/metropolis/.cd, + usetitleprogressbar/.code=\pgfkeysalso{outer/progressbar=frametitle}, + noslidenumbers/.code=\pgfkeysalso{outer/numbering=none}, + usetotalslideindicator/.code=\pgfkeysalso{outer/numbering=fraction}, + nosectionslide/.code=\pgfkeysalso{inner/sectionpage=none}, + darkcolors/.code=\pgfkeysalso{color/background=dark}, + blockbg/.code=\pgfkeysalso{color/block=fill, inner/block=fill}, +} +\newcommand{\metropolis@setdefaults}{ + \pgfkeys{/metropolis/.cd, + titleformat plain=regular, + } +} +\providecommand{\tikzexternalenable}{} +\providecommand{\tikzexternaldisable}{} +\useinnertheme{metropolis} +\useoutertheme{metropolis} +\usecolortheme{metropolis} +\usefonttheme{metropolis} +\AtEndPreamble{% + \@ifpackageloaded{pgfplots}{% + \RequirePackage{pgfplotsthemetol} + }{} +} +\newcommand{\metroset}[1]{\pgfkeys{/metropolis/.cd,#1}} +\def\metropolis@plaintitleformat#1{#1} +\newcommand{\plain}[2][]{% + \PackageWarning{beamerthememetropolis}{% + The syntax `\plain' may be deprecated in a future version of Metropolis. + Please use a frame with [standout] instead. + } + \begin{frame}[standout]{#1} + \metropolis@plaintitleformat{#2} + \end{frame} +} +\newcommand{\mreducelistspacing}{\vspace{-\topsep}} +\metropolis@setdefaults +\ProcessPgfOptions{/metropolis} +\endinput +%% +%% End of file `beamerthememetropolis.sty'. diff --git a/2023-gnu40/figures/GNS-BlockCreation.drawio b/2023-gnu40/figures/GNS-BlockCreation.drawio @@ -0,0 +1 @@ +<mxfile host="Electron" modified="2023-05-01T14:16:06.039Z" agent="5.0 (Macintosh; Intel Mac OS X 13_2_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="XcXYNxkugUaDmJ9r4ltp" version="14.6.13" type="device"><diagram id="duNTSAPvJWYlNGgyWCeS" name="Page-1">7Vxbc6M4Fv41fmwXIK6PHSfd2Z1kK5XMbCfzMiVAttlgywM4sfvXrwRSAEmOsYOMuybuVCc6CCHpfDqXT8IjMFlsvmdwNb/FMUpHlhFvRuByZFkW8Dzyi0q2lcR0LaOSzLIkZrJa8JD8REzIq62TGOWtigXGaZGs2sIIL5coKloymGX4tV1titP2U1dwhiTBQwRTWfojiYs5H4Zj1xeuUTKb80ebblBdWUBemw0ln8MYvzZE4GoEJhnGRfXXYjNBKZ0+PjHVfd92XGU9y4st7yvvUYaWRZcWfsTfLi9nofn9x5+3f99uZ/mzn35xq1ZeYLpmzd6jHK+zCBHpPYpwFufSk/PXZJHCJSldTPGyeGBXDFKO5kka38AtXtM+5QWMnnnpYo6z5CepD1NyySQCcjkrGAhso1Xjgd7J2sxQTurc8YGagugWbloVb2Be8N7gNIWrPAnL/tEbFzCbJcsLXBR4wSpNkzSd4BRn5eBAaMbx1Ch7l+Fn1LhiGh4I3gZddZvq9ULWBNPWC8oKtGmImGa+I7xARbYlVdhVz2AI4yvHYTB6rWFouUw2byKQ4w0y6M/e2q6xQP5gcDgAGp4Eja8j8JVIzLE1BmNbggUZaiHN2xJXOGlMMhPBNJktSTFFU3obnauErMSvTFzgFW1sBaNkObsp61zateSeTQEVYXLvNC0X2zyJY7SkWMAFLGD4BswVTpZFOUXOBfkhkzYxxs7IIR2fkLJZl8kPrZ4VE7wkY4FJqVREUPWKKLKa6jd9pfrfXWr7McEwYHeEgOVqQoAvIeD3x98rDFyT2zH5/QNnxMR+IkEvElx3YCQEEhJuHysgLGCSjtEGLlYpGuNs9okFhoUVyhIy+Sh7qLrGnqgLIoHVESL+xyES3jzdZ8F2st3c/8v+Y3o3/+/j9RcgQUSCAlrGX2mQRkpRCvM8iajPLxY8HhD9KtokxSO7Rv9+onNI1FGVLrnbLwtbXliSwTw2C427aLG+rSxtW3pBsRQfSk6dhUel6H+zv5ZPf6yQvUFP6eO//xNeofmXgLlGEt3MUPFeRUet0oYOHYUKuSxDKSySl3aHVXplT7ijYK9DDtPwvVbM4TpCKFGNlN3WjCzFlkwgtGQILVVTIbVUAu1t4MebJx5uNbHnpnxVlvkCj+Lcv9c0Aif6Bkb5aYoaYOVC2sCXvAQlNXeWtdqUVeub3Bn9fbcOU4Jny/iT2jHL+A1teR/IkKpuVDWlZbHDCJH/3wyRMbbsUtAWlpXGdEm3xEFQXbA9sZVK7lmqxk0uLE0dN7w3METpHc6TIsHUAIcsdG6uW7WRhvmqStGmyQbFDdMekRWFMm59UXb1gqrxlznBHK7ovCw2M5pjjqMkj7AZjJ/JfEqxumE4BpqqYnXDMC8vJkx/Dfm0/OiJ4UkU347hXXfsOZJZVi1pyxo7mly3dQZrI0teYPG5Kk60KpBj2oYyg72wSq2edFVwuJ/VolAFK61F0Q3sEtJLXHRFOFfqnITPMwqjOmaspXdcRNXxOk8KRONJetsrQYIQP1FI8Rj0KGajB33btmgF5TTW9BXqdnsgMpRhlhwdXC2jbLsq5NGyLrwknDMa7WPVlE90pCdeEjWSSI0hI8w4KK5/u/wmASOb40W4zjsoXMg5BIVPHfpPpXC3/MiGoPoogfDu1HZGBxB8JLBkW2ACFc9l9GALlGOQKdCPJC6lHj6WhHSd9b35haNMaobKNyzBMFgic9k13bA9AUNi3rIj2yAqhNtGNRZhdO4w396owVa1eGwqo9SZzLp+HI0sja5T56dRnVTvSaPNM0RwOwff7eCHQrpt/mJId8AASJfZ5ZZb1uAPXdtzfU/lD4FpA8d+JzDW5Q89QcO2Yt/nxP5Q5nqHtUBafeheMs/paKn8s/K1thBmOSIhd6wFsjVZIMD567cOW/otED91oCf0q5H61ALqSRznecHRt9vatTyhieHg+AEqWjnxlpz76eLbTF9FQTxsF3QMJRfNHCrlqD65t5NwbyGM/BioQgwL2LYT60ytXSHq9ORQQh/NpnaecjbDIEmmf/f5oh40LSr2ncM8u0gyQe3w5zpD47zAGZyhv8IUhwrrr0u3gZBR2EY33dq6NGtJin2gMy4NvydCDegkafSkuFZHTw3Oy1XLqWBPkaMUgmrKXV37BJEjkJNXzvBqyl2nU+RGkcqSxV4QGocD83jO1gkGz1FtrZH7pz1oEhTtoKIvKkuXOfAGsAa2vMNUe8Nfksc62EaIPJar2vU7sY2QY5SP24jzI7L4oPYRWdyu7DVAHM1nYoBswb874j5xZwskHHdzzNNQWZ55ChPU7/HLHsCuhf7q6kR3YLjDMvGHxLoP2tBxHME4dsW6ZxyH9d7gqNrGPCULdpEmy7gkGT4Pn52UAJvCOIiVZ04gsk2gPlTWU54iEGCO4gWaUxNgtjIyhMU6k1NFvC4IasmU8XcbqWGMYT6nqioLexHQkQ1rAEWiuV5zMI5oM1PSUPEeQyb6i0OOlfWjcZEWc01Z47bSXGvTuOyHK2Lgbh3Ks9ATO+btPm+mKQOJIfKnSjbCjXwUHpBpgEN1LrIRvjV4puH9ekfIQMdAyjvvM2Rnz06KHfY9IMBNxxky1RGOgaKvz9diTh+DRRFypsrXYoALAnDAJuTh1lmIwbzhNyF9HUcq9e4dAaXR7Wyuz2XvyDnWOgNPtJoSPDTtHp3EPstJwYSEZckSaYsQfXm/6uA1cGxEcsxbvB3XSecXbe0dC2ovHWQPGu6Yhpjg+EeuKJGf90zQaT31dtj37E6VtvlJsx/DvQtnnRG6F5DDWnhgtgnKwDqSoPSFuNhz9dh3kYwPXOPdfpmW8e4NehwC31A/h4Oo+s21xtUxKHvv7mKjPro4XHHLq6fFIYHdMU4Q/QTybvk1zOcS4H+d3XIez3XOkkzLEayMwQK0AV/7sHTaIC1p0vH2ZNiozhSCseDYLW0/2NPQ4Mfhgz25zj9kvUtfkDP88ZhA3jR4O49tXKQ4epaXf5omqxzt15DEce1RWRSj0A/7IKwOV41jiKoBqi+oCDzOQDTVU0v714+8qfBQHT4fMRr1n6idwDTHsnJMQ7l0dH2hRNADo3ga17j/u8o6u0xX6WwHi7XFVXtsrO06e46XHU2MkGL9bb9V9fpbk8HV/wE=</diagram></mxfile> +\ No newline at end of file diff --git a/2023-gnu40/figures/GNS-BlockValidation.drawio b/2023-gnu40/figures/GNS-BlockValidation.drawio @@ -0,0 +1 @@ +<mxfile host="Electron" modified="2023-05-09T11:12:53.052Z" agent="5.0 (Macintosh; Intel Mac OS X 13_2_1) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="6uL9OV3H78YwBUdGg73_" version="14.6.13" type="device"><diagram id="duNTSAPvJWYlNGgyWCeS" name="Page-1">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</diagram></mxfile> +\ No newline at end of file diff --git a/2023-gnu40/figures/gns-logo.png b/2023-gnu40/figures/gns-logo.png Binary files differ. diff --git a/2023-gnu40/figures/gnunet.png b/2023-gnu40/figures/gnunet.png Binary files differ. diff --git a/2023-gnu40/gns.tex b/2023-gnu40/gns.tex @@ -0,0 +1,241 @@ +\documentclass[aspectratio=169]{beamer} +\usepackage{appendixnumberbeamer} +\usepackage{mathtools} +\usetheme{metropolis} % Use metropolis theme +\definecolor{fhggreen}{RGB}{23,156,125} +\let\oldemph\textbf +\renewcommand{\textbf}[1]{{\color{mLightBrown}\oldemph{#1}}} + +\usepackage{blkarray} +\usepackage{amsmath} +\usepackage{multirow} +\title{\includegraphics[width=0.2\textwidth]{gns-logo.png}\\\small{The GNU Name System}} +\date{2023-09-27} +\author{Bernd Fix, Christian Grothoff, \textbf{Martin Schanzenbach}} +%\institute{\includegraphics[width=.25\textwidth]{aisec_logo.pdf}} + +\graphicspath{{figures/}} + +\begin{document} +\metroset{block=fill,sectionpage=progressbar,numbering=counter} +\maketitle + +\begin{frame}{Directories / DNS} + $$ + \mathrlap{\overbrace{\phantom{\text{www}}}^{\text{Label}}} + \text{www} + \mathrlap{\underbrace{{\color{fhggreen}\phantom{\text{.example.com}}}}_{\text{Namespace}}} + {\color{fhggreen}\text{.example.com}} + $$ +\end{frame} + +\begin{frame}{The .alt TLD} + Whats wrong with DNS? See RFC 8324\footnote{DNS Privacy, Authorization, Special Uses, Encoding, Characters, + Matching, and Root Structure: Time for Another Look?}: + \begin{itemize} + \item No \textbf{query privacy}. + \item A \textbf{single hierarchy with a centrally controlled root}. + \item Requires management/maintenance of \textbf{root servers}. + \item etc\ldots + \end{itemize} + DNSSEC and other ``patches'' do not or in adequately address the issues: ``[the existing solutions for DNS are] security patches rather than designed-in + security or privacy mechanisms''. +\end{frame} + +\begin{frame}{Directories / GNS} + $$ + \mathrlap{\overbrace{\phantom{\text{www}}}^{\text{Label}}} + \text{www} + \mathrlap{\underbrace{{\color{fhggreen}\phantom{\text{.myzone.gns.alt}}}}_{\text{Namespace}}} + {\color{fhggreen}\text{.myzone.gns.alt}} + $$ +\end{frame} + +\begin{frame}{The .alt TLD} + Why ``.gns.alt''? + \begin{itemize} + \item RFC9476: ``The .alt Special-Use Top-Level Domain'' defines the TLD to be used for alternative (from the point of view of DNS) name systems. + \item RFC9476 does \textbf{not} define a registry for ``.alt''-subdomains. + \item We manage a ``.alt'' registry at \url{https://gana.gnunet.org}~\footnote{If you ever need a registry for your protocol feel free to approach us!} which already includes a code point for ``.gns.alt''. + \item To prevent shadowing of DNS names, it is recommended to use the ``.gns.alt'' suffix. + \item Sometimes (e.g. censorship-overrides) you may not want to do that. + \end{itemize} +\end{frame} + +\begin{frame}{The GNU Name System} + \begin{itemize} + \item Namespaces are created and uniquely identified using \textbf{public zone keys}. + \item \textbf{Records} are grouped by \textbf{label}, encrypted, signed, and published in a key-value store (usually, a DHT\footnote{\url{https://datatracker.ietf.org/doc/draft-schanzen-r5n/}}). + \item Supported zone types and crypto (for now): + \begin{itemize} + \item PKEY: ECDSA+CTR-AES-256 + \item EDKEY: EdDSA+XSalsa20-Poly1305 + \end{itemize} + \end{itemize} + \centering + \includegraphics[width=1\textwidth]{GNS-BlockCreation-0} +\end{frame} + +\begin{frame}{Zone management} + \includegraphics[height=0.9\textheight]{deleg0.pdf} +\end{frame} + + +\begin{frame}{Name resolution} + \includegraphics[height=0.9\textheight]{deleg1.pdf} +\end{frame} + + +\begin{frame}{Name resolution} + \includegraphics[height=0.9\textheight]{deleg2.pdf} +\end{frame} + + +\begin{frame}{How do we bootstrap the top-level zones?} + \includegraphics[height=0.9\textheight]{deleg3.pdf} +\end{frame} + + +\begin{frame}[fragile]{The Start Zone} + ``Hyper-hyper local root'' concept we call the \textbf{Start Zone}: + \begin{itemize} + \item Start Zone contains so-called \textbf{suffix-to-zone}-mappings. + \item Implementation ships with an \emph{initial} Start Zone configuration. + \item Start Zone is configurable \emph{locally} at \emph{each} endpoint. + \item User override/extension of mappings at top-level or subdomain-level for: + \begin{itemize} + \item Circumvent censorship if necessary. + \item Private networks. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{The Start Zone} + Example suffix-to-zone mappings: + \begin{small} + \begin{verbatim} +# Some TLDs +.com = 000G001MF6DVMZZ4Y8XRZQDXM1PB3D3VGEK29ZHXBA57EPSNW1QBPKT8J0 +.myzone.gns.alt = 000G007FKSA876G6SNDF8VA7YK1DJE96RPPBHRT2X55Q13M2T4YKNYT3DG +# Some subdomain overrides +.gnu.org = 000G001223Q8ZJZBSK6XT2DWV6PE5B1W436D2NB7ZBR9XSXT7TFJHCDB24 +.gnunet.gns.alt = 000G0047M3HN599H57MPXZK4VB59SWK4M9NRD68E1JQFY3RWAHDMKAPN30 + \end{verbatim} + \end{small} +\end{frame} + + +\begin{frame}{Possible Governance Models} + \begin{itemize} + \item Non-profit organization. + \item Multi-stakeholder model: Board, supporting organizations, \ldots + \item Examples for possible stakeholders: + \begin{itemize} + \item Software and OS Distributors + \item Browser vendors + \item Governments + \end{itemize} + \item Funding options: + \begin{itemize} + \item Applications for new top-level domains. + \item Registrations of new top-level domains. + \item \ldots + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{Hiding information inside GNS} + \begin{itemize} + \item GNS's crypto allows you to hide resource records. + \item It requires either + \begin{itemize} + \item the use of a label with sufficient entropy (a shared secret) or + \item the use of a secret zone. + \end{itemize} + \end{itemize} + $$ + \mathrlap{\overbrace{\phantom{\text{ohcoxaiShaingahd}}}^{\text{Secret label}}} + \text{ohcoxaiehaingahd} + \mathrlap{\underbrace{{\color{fhggreen}\phantom{\text{.my.zone}}}}_{\text{Namespace}}} + {\color{fhggreen}\text{.my.zone}} + $$ +\end{frame} + + +\begin{frame}{Encrypt} + \centering + \includegraphics[width=1\textwidth]{GNS-BlockCreation-1} +\end{frame} + +\begin{frame}{Sign} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockCreation-2} +\end{frame} + +\begin{frame}{Derive} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockCreation-3} +\end{frame} + +\begin{frame}{Combine and publish} + \centering + \includegraphics[width=1\textwidth]{GNS-BlockCreation-4} +\end{frame} + +\begin{frame}{Query} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockValidation-0} +\end{frame} + +\begin{frame}{Retrieve} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockValidation-1} +\end{frame} + +\begin{frame}{Verify} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockValidation-2} +\end{frame} + +\begin{frame}{Decrypt} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockValidation-3} +\end{frame} + +\begin{frame}{Decrypt} + \centering + \includegraphics[height=0.9\textheight]{GNS-BlockValidation-4} +\end{frame} + +\begin{frame}{Status} + \begin{itemize} + \item Specification efforts: + \begin{itemize} + \item \url{https://datatracker.ietf.org/doc/draft-schanzen-gns/} -- Will become RFC soon (TM). + \item \url{https://datatracker.ietf.org/doc/draft-schanzen-r5n/} -- Is being worked on. + \end{itemize} + \item Reference implementation in C (part of GNUnet), alternative implementation in Go. + \item Currently funded project to develop and host a GNS zone registrar service and to mirror some (large) DNS zones funded through NLnet / NGI Zero Entrust. + \item Current and future research: + \begin{itemize} + \item PQ-secure key blinding. + \item Sharing identity information via GNS (re:claimID). + \end{itemize} + \end{itemize} +\end{frame} + + +\begin{frame} + \begin{center} + Questions?\\ + \vspace{2cm} + \url{https://gnunet.org}\\ + \vspace{1em} + {\tiny + \texttt{schanzen@gnu.org}\\ + \texttt{3D11~063C~10F9~8D14~BD24~D147~0B09~98EF~86F5~9B6A}\\ + } + \end{center} +\end{frame} + +\end{document}