marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

commit 6f735733a3429874f70b20e7b72dbdfc66204337
parent 6961d7c3a1dd8a9ae87b878fb1bf61f18bcd9229
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Sat, 21 Feb 2026 08:03:05 +0100

hny slides

Diffstat:
Apresentations/comprehensive/2026-hny.tex | 605+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpresentations/comprehensive/offline.tex | 2++
Apresentations/comprehensive/tops-qr.png | 0
Apresentations/comprehensive/tops-qr.svg | 2++
4 files changed, 609 insertions(+), 0 deletions(-)

diff --git a/presentations/comprehensive/2026-hny.tex b/presentations/comprehensive/2026-hny.tex @@ -0,0 +1,605 @@ +\documentclass[aspectratio=169,t]{beamer} +\input taler-macros + +\newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET} +\newcommand{\SUB}{The GNU Taler Payment System} +\newcommand{\AUTHOR}{Christian Grothoff} +\newcommand{\SPEAKER}{Christian Grothoff} +\newcommand{\INST}{The GNU Project} +\newcommand{\DATE}{February 2026} + +% Do not edit this part +\title{\TITLE} +\subtitle{\SUB} +\date{\DATE} +\author[\SPEAKER]{\AUTHOR} +\institute{\INST} + + +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{xcolor} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} +\usepackage{array} +\usepackage{bbding} +\usepackage{relsize} +\usepackage{graphicx} +\usepackage{tikz,eurosym,calc} +\usetikzlibrary{tikzmark} +\usetikzlibrary{shapes,arrows,arrows.meta} +\usetikzlibrary{positioning,fit,patterns} +\usetikzlibrary{calc} +\usepackage{multicol} +\usepackage{pgf-umlsd} +\usepackage{relsize} + +\usepackage{booktabs} +\usepackage{makecell} +\usepackage{arydshln} + + + +% "The GNU Taler Payment System", including +% an introduction to our objectives, +% background on the technology, +% demonstration of the system, +% social implications and open issues. + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\setbeamersize{description width=1em} + +\definecolor{blue}{rgb}{0,0,0.7} +\newcommand{\orange}[1]{{\color{orange}#1}} +\newcommand{\blue}[1]{{\color{blue}#1}} +\newcommand{\red}[1]{{\color{red}#1}} +\newcommand{\Guardian}{\mathcal{G}} +\newcommand{\Child}{\mathcal{C}} +\newcommand{\Customer}{\mathcal{C}} +\newcommand{\Merchant}{\mathcal{M}} +\newcommand{\Exchange}{\mathcal{E}} + +\newcommand{\Commit}{\mathsf{Commit}} +\newcommand{\Attest}{\mathsf{Attest}} +\newcommand{\Verify}{\mathsf{Verify}} +\newcommand{\Derive}{\mathsf{Derive}} +\newcommand{\DeriveCompare}{\mathsf{DeriveCompare_\kappa}} +\newcommand{\Compare}{\mathsf{Compare}} +\newcommand{\AgeVer}{\mathsf{AgeVer}} + +\newcommand{\HashF}{\mathsf{H}} +\newcommand{\Hash}{\mathsf{H}} +\newcommand{\Block}{\mathbb{B}} +\newcommand{\Pub}{\mathsf{Pub}} +\newcommand{\Sign}{\mathsf{Sig}} +\newcommand{\Ver}{\mathsf{Ver}} +\newcommand{\Encoding}{\mathsf{Encoding}} +\newcommand{\ECDSA}{\mathsf{ECDSA}} +\newcommand{\Null}{\mathcal{O}} +\newcommand{\EC}{\mathrm{ec}} +\newcommand{\Curve}{\mathsf{Curve25519}} +\newcommand{\SHA}{\mathsf{SHA256}} +\newcommand{\SHAF}{\mathsf{SHA252}} +\newcommand{\FDH}{\mathsf{FDH}} + +\newcommand{\negl}{\epsilon} + +\newcommand{\rand}{\mathsf{rand}} +\newcommand{\age}{\mathsf{a}} +\newcommand{\Age}{\mathsf{M}} +\newcommand{\bage}{\mathsf{b}} +\newcommand{\minage}{\mathsf{m}} +\newcommand{\attest}{\mathsf{T}} +\newcommand{\commitment}{\mathsf{Q}} +\newcommand{\pruf}{\mathsf{P}} +\newcommand{\Vcommitment}{\vec{\mathsf{Q}}} +\newcommand{\Vpruf}{\vec{\mathsf{P}}} +\newcommand{\blinding}{\beta} + +\newcommand{\ZN}{\mathbb{Z}_N} +\newcommand{\Z}{\mathbb{Z}} +\newcommand{\N}{\mathbb{N}} +\newcommand{\A}{\mathbb{A}} +\newcommand{\E}{\mathbb{E}} +\newcommand{\F}{\mathbb{F}} +\newcommand{\seck}{\mathsf{s}} +\newcommand{\pubk}{\mathsf{P}} +\renewcommand{\H}{\mathbb{H}} +\newcommand{\K}{\mathbb{K}} +\newcommand{\Proofs}{\mathbb{P}} +\newcommand{\Commitments}{\mathbb{O}} +\newcommand{\Attests}{\mathbb{T}} +\newcommand{\Blindings}{\mathbb{B}} +\newcommand{\Nil}{\perp} + +\newcommand{\p}{\mathsf{p}} +\newcommand{\com}{\mathsf{com}} +\newcommand{\prf}{\mathsf{prf}} + +\newcommand{\Adv}{\mathcal{A}} +\newcommand{\PPT}{\mathfrak{A}} +\newcommand{\Probability}{\mathrm{Pr}} +\newcommand{\Algorithm}{f} +\renewcommand{\Game}[1]{G_\Adv^\mathsf{#1}} + +\DeclareMathOperator{\Image}{Im} +\DeclareMathOperator{\Mod}{mod} + +\newcommand{\Encode}[1]{\overbracket[0.5pt][2pt]{\,#1\,}} +\newcommand{\Decode}[1]{\underbracket[0.5pt][3pt]{\,#1\,}} +\newcommand{\FDHg}[1]{[#1]_g\,} +\newcommand{\logg}{{\breve{g}}} + + +\newcommand{\drawfrom}{\xleftarrow{\$}} +\newcommand\Exists{% + \mathop{\lower0.75ex\hbox{\ensuremath{% + \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}% + \limits} + +\newcommand\Forall{% + \mathop{\lower0.75ex\hbox{\ensuremath{% + \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}% + \limits} + + +\begin{document} + +\begin{frame}[plain] +\maketitle +\end{frame} + +\begin{frame}{Agenda} + \tableofcontents +\end{frame} + +\section{Motivation \& Background} + + +\begin{frame}{A Social Problem} +\begin{minipage}{12cm} +``I think one of the big things that we need to do, is we need +to get away from true-name payments on the Internet. The credit +card payment system is one of the worst things that happened for the +user, in terms of being able to divorce their access from their +identity.'' \hfill --Edward Snowden, IETF 93 (2015) +\end{minipage} + +\end{frame} + + +\begin{frame}{Banks have Problems, too!} + + 3D secure (``verified by visa'') is a nightmare: + + \begin{minipage}{5cm} + \begin{itemize} + \item Complicated process + \item Shifts liability to consumer + \item Significant latency + \item Can refuse valid requests + \item Legal vendors excluded + \item No privacy for buyers + \end{itemize} + \end{minipage} + \begin{minipage}{5cm} + \includegraphics[width=\textwidth]{illustrations/cc3ds.pdf} + \end{minipage} + \vfill + Online credit card payments will be replaced, but with what? +\end{frame} + + +\begin{frame}{The Bank's Problem} + \begin{itemize} + \item Global tech companies push oligopolies + \item Privacy and federated finance are at risk +% \item 30\% fees are conceivable + \item Economic sovereignty is in danger + \end{itemize} +\begin{textblock*}{4cm}(11.5cm,5.2cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/amazon.png}} +\end{textblock*} +\begin{textblock*}{2cm}(11cm,3cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/alipay.jpeg}} +\end{textblock*} +\begin{textblock*}{2cm}(11cm,7cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/paypal.jpeg}} +\end{textblock*} +\begin{textblock*}{2cm}(3cm,9cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/applepay.jpeg}} +\end{textblock*} +\begin{textblock*}{2cm}(7cm,7cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/samsungpay.jpeg}} +\end{textblock*} +\begin{textblock*}{1cm}(9.5cm,6.3cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/android_pay.png}} +\end{textblock*} +\vfill +\end{frame} + + +\begin{frame}{Central Bank Digital Currency?} +Speech by Augustin Carstens, Bank of International Settlements (October 2020) on the difference between Central Bank Digital Currencies and cash. + \begin{center} + \movie[height = 0.5\paperheight, poster, showcontrols]{Central Bank Digital Currency vs. Cash} + {bis-cbdc.mp4} + +{\tiny +\url{https://www.youtube.com/watch?v=R_E4Uu7ycqE} (10'2020)} +\end{center} +\end{frame} + + + +\section{GNU Taler: Introduction} + +\begin{frame} + \vfill + \begin{center} + {\bf GNU Taler: Introduction} + \end{center} + \vfill +\end{frame} + + +\begin{frame}{GNU Taler~\cite{taler2016space,DBLP:phd/hal/Dold19,cbdc2021chaum}} + \vfill + \begin{center} + {\huge {\bf Digital} cash, made \textbf{socially responsible}.} + \end{center} + \vfill + \begin{center} + \includegraphics[scale=0.3]{taler-logo-2021-inkscape.pdf} + \end{center} + \vfill + \begin{center} + Privacy-Preserving, Practical, Taxable, Free Software, Efficient + \end{center} + \vfill + \vfill +\ % +\end{frame} + + +\begin{frame}{What is Taler?} + \framesubtitle{\url{https://taler.net/en/features.html}} \noindent +Taler is + \vfill + \begin{itemize} + \item a Free/Libre software \emph{payment system} infrastructure project + \item ... with a surrounding software ecosystem + \item ... and a company (Taler Systems S.A.) and community that wants to deploy it + as widely as possible. + \end{itemize} + \vfill +\noindent + However, Taler is + \begin{itemize} + \item \emph{not} a currency or speculative asset + \item \emph{not} a long-term store of value + \item \emph{not} a network or instance of a system + \item \emph{not} based on proof-of-work or proof-of-stake + \end{itemize} +\end{frame} + + +\begin{frame}{Design principles} + \framesubtitle{https://taler.net/en/principles.html} +GNU Taler must ... +\begin{enumerate} + \item {... be implemented as {\bf free software}.} + \item {... protect the {\bf privacy of buyers}.} + \item {... enable the state to {\bf tax income} and crack down on + illegal business activities.} + \item {... prevent payment fraud.} + \item {... only {\bf disclose the minimal amount of information + necessary}.} + \item {... be usable.} + \item {... be efficient.} + \item {... avoid single points of failure.} + \item {... foster {\bf competition}.} +\end{enumerate} +\end{frame} + + +\begin{frame} +\frametitle{Taler Overview} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (exchange) [def,above=of origin,draw]{Exchange}; + \node (customer) [def, draw, below left=of origin] {Customer}; + \node (merchant) [def, draw, below right=of origin] {Merchant}; + \node (auditor) [def, draw, above right=of origin]{Auditor}; +% \node (regulator) [def, draw, above=of auditor]{CSSF}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins}; + \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins}; + \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins}; + \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify}; +% \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report}; + +\end{tikzpicture} +\end{center} +\end{frame} + + + +\begin{frame} +\frametitle{Architecture of Taler} +\begin{center} + \includegraphics[width=0.8\textwidth]{operations.png} +\end{center} +\end{frame} + + +\begin{frame}{Usability of Taler} + \vfill + \begin{center} + \url{https://demo.taler.net/} + \end{center} + \begin{enumerate} + \item Install browser extension. + \item Visit the {\tt bank.demo.taler.net} to withdraw coins. + \item Visit the {\tt shop.demo.taler.net} to spend coins. + \end{enumerate} + \vfill +\end{frame} + + + +\begin{frame} + \vfill + \begin{center} + {\bf Protocol Basics} + \end{center} + \vfill +\end{frame} + + +\begin{frame}[plain] + \begin{tikzpicture}[remember picture,overlay] + \node[anchor=south west, inner sep=0pt] at (current page.south west) {% + \movie[height = \paperheight, width = \paperwidth, poster, showcontrols] {BFH Bachelor's thesis video}{cs-movie.mp4}% + }; + \end{tikzpicture} +\end{frame} + + +\begin{frame}{How does it work?} +We use a few ancient constructions: + \begin{itemize} + \item Cryptographic hash function (1989) + \item Blind signature (1983) + \item Schnorr signature (1989) + \item Diffie-Hellman key exchange (1976) or Unique signatures (1977) or VRF (1999) % 1977: RSA + \item Cut-and-choose zero-knowledge proof (1985) + \end{itemize} +But of course we use modern instantiations. +\end{frame} + + +\include{offline.tex} + +\section{Future Work \& Conclusion} + +\begin{frame} + \vfill + \begin{center} + {\bf Future Work \& Conclusion} + \end{center} + \vfill +\end{frame} + + +\begin{frame}{Taler: Project Status} +\framesubtitle{\url{https://taler-ops.ch/}} +\begin{center} + {\bf Taler Operations is live Swiss-wide!} + + \vfill + + \includegraphics[width=0.3\textwidth]{tops-qr.png} + + \vfill +\end{center} +\end{frame} + + +\begin{frame}{Competitor comparison} + \begin{center} \small + \begin{tabular}{l||c|c|c|c|c} + & Cash & Bitcoin & Zerocoin & Creditcard & GNU Taler \\ \hline \hline + Online &$-$$-$$-$ & ++ & ++ & + & +++ \\ \hline + Offline & +++ & $-$$-$ & $-$$-$ & + & $+$$+$ \\ \hline + Trans. cost & + & $-$$-$$-$ & $-$$-$$-$ & $-$ & ++ \\ \hline + Speed & + & $-$$-$$-$ & $-$$-$$-$ & o & ++ \\ \hline + Taxation & $-$ & $-$$-$ & $-$$-$$-$ & +++ & +++ \\ \hline + Payer-anon & ++ & o & ++ & $-$$-$$-$ & +++ \\ \hline + Payee-anon & ++ & o & ++ & $-$$-$$-$ & $-$$-$$-$ \\ \hline + Security & $-$ & o & o & $-$$-$ & ++ \\ \hline + Conversion & +++ & $-$$-$$-$ & $-$$-$$-$ & +++ & +++ \\ \hline + Libre & $-$ & +++ & +++ & $-$ $-$ $-$& +++ \\ + \end{tabular} + \end{center} +\end{frame} + + +\begin{frame}{How to support?} + \begin{description} + \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}} + \item[Discuss:] {\small \url{https://ich.taler.net/}} + \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git-www.taler.net/} + \item[Apply:] \url{https://nlnet.nl/propose}, \url{https://nlnet.nl/taler} + \item[Translate:] \url{translation-volunteer@taler.net} + \item[Integrate:] \url{https://docs.taler.net/} + \item[Donate:] \url{https://gnunet.org/ev} + \item[Partner:] \url{https://taler-systems.com/} + \end{description} +\end{frame} + + +\begin{frame}{Conclusion} + \begin{center} + {\bf What can we do?} + \end{center} + \vfill +\begin{itemize} + \item{Suffer mass-surveillance enabled by credit card oligopolies with high fees, and} + \item{Engage in arms race with deliberately unregulatable blockchains} +% \item{Enjoy the ``benefits'' of cash \\ +% \hfill \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill} +\end{itemize} +\vfill +\begin{center} + {\bf OR} +\end{center} +\vfill +\begin{itemize} + \item{Establish free software alternative balancing social goals!} +\end{itemize} +\vfill +\end{frame} + + + +\section*{References} +\begin{frame}[allowframebreaks]{References} +\bibliographystyle{plain} +\bibliography{ref,extra,rfc,biblio-defqa} +\end{frame} + + +% This should be last... +\begin{frame}{Acknowledgments} + + \begin{minipage}{0.45\textwidth} \ \\ + {\tiny Funded by the European Union (Project 101135475).} + + \begin{center} + \includegraphics[width=0.5\textwidth]{../bandera.jpg} + \end{center} + \end{minipage} + \hfill + \begin{minipage}{0.45\textwidth} + {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).} + + \begin{center} + \includegraphics[width=0.65\textwidth]{../sbfi.jpg} + \end{center} + \end{minipage} + + \vfill + + {\tiny + + Views and opinions expressed are however those of the author(s) only + and do not necessarily reflect those of the European Union. Neither the + European Union nor the granting authority can be held responsible for + them. + + } +\end{frame} + + +\end{document} + + + +\begin{frame}{Future work} + \begin{itemize} + \item Performance improvements for RSA in FLOSS crypto libraries + \item Integrate with e-ID for easier \& cheaper KYC + \item Buy anonymous pre-paid debit cards on-demand with Taler wallet + \item Implement PQC across the stack (with cipher agility, where possible with additive security) + \end{itemize} +\end{frame} diff --git a/presentations/comprehensive/offline.tex b/presentations/comprehensive/offline.tex @@ -182,3 +182,5 @@ Many central banks today demand offline capabilities for CBDCs. } \end{center} \end{frame} + + diff --git a/presentations/comprehensive/tops-qr.png b/presentations/comprehensive/tops-qr.png Binary files differ. diff --git a/presentations/comprehensive/tops-qr.svg b/presentations/comprehensive/tops-qr.svg @@ -0,0 +1 @@ +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 82 82" preserveAspectRatio="xMinYMin meet"><rect width="100%" height="100%" fill="white" cx="0" cy="0"/><path d="M8,8l2,0 0,2 -2,0 0,-2z M10,8l2,0 0,2 -2,0 0,-2z M12,8l2,0 0,2 -2,0 0,-2z M14,8l2,0 0,2 -2,0 0,-2z M16,8l2,0 0,2 -2,0 0,-2z M18,8l2,0 0,2 -2,0 0,-2z M20,8l2,0 0,2 -2,0 0,-2z M24,8l2,0 0,2 -2,0 0,-2z M26,8l2,0 0,2 -2,0 0,-2z M34,8l2,0 0,2 -2,0 0,-2z M44,8l2,0 0,2 -2,0 0,-2z M46,8l2,0 0,2 -2,0 0,-2z M48,8l2,0 0,2 -2,0 0,-2z M50,8l2,0 0,2 -2,0 0,-2z M54,8l2,0 0,2 -2,0 0,-2z M60,8l2,0 0,2 -2,0 0,-2z M62,8l2,0 0,2 -2,0 0,-2z M64,8l2,0 0,2 -2,0 0,-2z M66,8l2,0 0,2 -2,0 0,-2z M68,8l2,0 0,2 -2,0 0,-2z M70,8l2,0 0,2 -2,0 0,-2z M72,8l2,0 0,2 -2,0 0,-2z M8,10l2,0 0,2 -2,0 0,-2z M20,10l2,0 0,2 -2,0 0,-2z M34,10l2,0 0,2 -2,0 0,-2z M48,10l2,0 0,2 -2,0 0,-2z M52,10l2,0 0,2 -2,0 0,-2z M54,10l2,0 0,2 -2,0 0,-2z M60,10l2,0 0,2 -2,0 0,-2z M72,10l2,0 0,2 -2,0 0,-2z M8,12l2,0 0,2 -2,0 0,-2z M12,12l2,0 0,2 -2,0 0,-2z M14,12l2,0 0,2 -2,0 0,-2z M16,12l2,0 0,2 -2,0 0,-2z M20,12l2,0 0,2 -2,0 0,-2z M24,12l2,0 0,2 -2,0 0,-2z M30,12l2,0 0,2 -2,0 0,-2z M32,12l2,0 0,2 -2,0 0,-2z M34,12l2,0 0,2 -2,0 0,-2z M36,12l2,0 0,2 -2,0 0,-2z M38,12l2,0 0,2 -2,0 0,-2z M40,12l2,0 0,2 -2,0 0,-2z M44,12l2,0 0,2 -2,0 0,-2z M48,12l2,0 0,2 -2,0 0,-2z M56,12l2,0 0,2 -2,0 0,-2z M60,12l2,0 0,2 -2,0 0,-2z M64,12l2,0 0,2 -2,0 0,-2z M66,12l2,0 0,2 -2,0 0,-2z M68,12l2,0 0,2 -2,0 0,-2z M72,12l2,0 0,2 -2,0 0,-2z M8,14l2,0 0,2 -2,0 0,-2z M12,14l2,0 0,2 -2,0 0,-2z M14,14l2,0 0,2 -2,0 0,-2z M16,14l2,0 0,2 -2,0 0,-2z M20,14l2,0 0,2 -2,0 0,-2z M24,14l2,0 0,2 -2,0 0,-2z M26,14l2,0 0,2 -2,0 0,-2z M30,14l2,0 0,2 -2,0 0,-2z M34,14l2,0 0,2 -2,0 0,-2z M36,14l2,0 0,2 -2,0 0,-2z M38,14l2,0 0,2 -2,0 0,-2z M40,14l2,0 0,2 -2,0 0,-2z M42,14l2,0 0,2 -2,0 0,-2z M46,14l2,0 0,2 -2,0 0,-2z M52,14l2,0 0,2 -2,0 0,-2z M54,14l2,0 0,2 -2,0 0,-2z M56,14l2,0 0,2 -2,0 0,-2z M60,14l2,0 0,2 -2,0 0,-2z M64,14l2,0 0,2 -2,0 0,-2z M66,14l2,0 0,2 -2,0 0,-2z M68,14l2,0 0,2 -2,0 0,-2z M72,14l2,0 0,2 -2,0 0,-2z M8,16l2,0 0,2 -2,0 0,-2z M12,16l2,0 0,2 -2,0 0,-2z M14,16l2,0 0,2 -2,0 0,-2z M16,16l2,0 0,2 -2,0 0,-2z M20,16l2,0 0,2 -2,0 0,-2z M24,16l2,0 0,2 -2,0 0,-2z M26,16l2,0 0,2 -2,0 0,-2z M28,16l2,0 0,2 -2,0 0,-2z M30,16l2,0 0,2 -2,0 0,-2z M38,16l2,0 0,2 -2,0 0,-2z M40,16l2,0 0,2 -2,0 0,-2z M42,16l2,0 0,2 -2,0 0,-2z M46,16l2,0 0,2 -2,0 0,-2z M52,16l2,0 0,2 -2,0 0,-2z M56,16l2,0 0,2 -2,0 0,-2z M60,16l2,0 0,2 -2,0 0,-2z M64,16l2,0 0,2 -2,0 0,-2z M66,16l2,0 0,2 -2,0 0,-2z M68,16l2,0 0,2 -2,0 0,-2z M72,16l2,0 0,2 -2,0 0,-2z M8,18l2,0 0,2 -2,0 0,-2z M20,18l2,0 0,2 -2,0 0,-2z M26,18l2,0 0,2 -2,0 0,-2z M32,18l2,0 0,2 -2,0 0,-2z M44,18l2,0 0,2 -2,0 0,-2z M46,18l2,0 0,2 -2,0 0,-2z M48,18l2,0 0,2 -2,0 0,-2z M50,18l2,0 0,2 -2,0 0,-2z M52,18l2,0 0,2 -2,0 0,-2z M56,18l2,0 0,2 -2,0 0,-2z M60,18l2,0 0,2 -2,0 0,-2z M72,18l2,0 0,2 -2,0 0,-2z M8,20l2,0 0,2 -2,0 0,-2z M10,20l2,0 0,2 -2,0 0,-2z M12,20l2,0 0,2 -2,0 0,-2z M14,20l2,0 0,2 -2,0 0,-2z M16,20l2,0 0,2 -2,0 0,-2z M18,20l2,0 0,2 -2,0 0,-2z M20,20l2,0 0,2 -2,0 0,-2z M24,20l2,0 0,2 -2,0 0,-2z M28,20l2,0 0,2 -2,0 0,-2z M32,20l2,0 0,2 -2,0 0,-2z M36,20l2,0 0,2 -2,0 0,-2z M40,20l2,0 0,2 -2,0 0,-2z M44,20l2,0 0,2 -2,0 0,-2z M48,20l2,0 0,2 -2,0 0,-2z M52,20l2,0 0,2 -2,0 0,-2z M56,20l2,0 0,2 -2,0 0,-2z M60,20l2,0 0,2 -2,0 0,-2z M62,20l2,0 0,2 -2,0 0,-2z M64,20l2,0 0,2 -2,0 0,-2z M66,20l2,0 0,2 -2,0 0,-2z M68,20l2,0 0,2 -2,0 0,-2z M70,20l2,0 0,2 -2,0 0,-2z M72,20l2,0 0,2 -2,0 0,-2z M26,22l2,0 0,2 -2,0 0,-2z M30,22l2,0 0,2 -2,0 0,-2z M40,22l2,0 0,2 -2,0 0,-2z M42,22l2,0 0,2 -2,0 0,-2z M44,22l2,0 0,2 -2,0 0,-2z M48,22l2,0 0,2 -2,0 0,-2z M54,22l2,0 0,2 -2,0 0,-2z M8,24l2,0 0,2 -2,0 0,-2z M10,24l2,0 0,2 -2,0 0,-2z M12,24l2,0 0,2 -2,0 0,-2z M14,24l2,0 0,2 -2,0 0,-2z M20,24l2,0 0,2 -2,0 0,-2z M24,24l2,0 0,2 -2,0 0,-2z M36,24l2,0 0,2 -2,0 0,-2z M40,24l2,0 0,2 -2,0 0,-2z M42,24l2,0 0,2 -2,0 0,-2z M44,24l2,0 0,2 -2,0 0,-2z M46,24l2,0 0,2 -2,0 0,-2z M50,24l2,0 0,2 -2,0 0,-2z M52,24l2,0 0,2 -2,0 0,-2z M58,24l2,0 0,2 -2,0 0,-2z M64,24l2,0 0,2 -2,0 0,-2z M66,24l2,0 0,2 -2,0 0,-2z M68,24l2,0 0,2 -2,0 0,-2z M72,24l2,0 0,2 -2,0 0,-2z M8,26l2,0 0,2 -2,0 0,-2z M10,26l2,0 0,2 -2,0 0,-2z M16,26l2,0 0,2 -2,0 0,-2z M18,26l2,0 0,2 -2,0 0,-2z M26,26l2,0 0,2 -2,0 0,-2z M36,26l2,0 0,2 -2,0 0,-2z M40,26l2,0 0,2 -2,0 0,-2z M46,26l2,0 0,2 -2,0 0,-2z M48,26l2,0 0,2 -2,0 0,-2z M54,26l2,0 0,2 -2,0 0,-2z M58,26l2,0 0,2 -2,0 0,-2z M60,26l2,0 0,2 -2,0 0,-2z M68,26l2,0 0,2 -2,0 0,-2z M70,26l2,0 0,2 -2,0 0,-2z M72,26l2,0 0,2 -2,0 0,-2z M8,28l2,0 0,2 -2,0 0,-2z M10,28l2,0 0,2 -2,0 0,-2z M12,28l2,0 0,2 -2,0 0,-2z M18,28l2,0 0,2 -2,0 0,-2z M20,28l2,0 0,2 -2,0 0,-2z M24,28l2,0 0,2 -2,0 0,-2z M40,28l2,0 0,2 -2,0 0,-2z M48,28l2,0 0,2 -2,0 0,-2z M52,28l2,0 0,2 -2,0 0,-2z M54,28l2,0 0,2 -2,0 0,-2z M60,28l2,0 0,2 -2,0 0,-2z M62,28l2,0 0,2 -2,0 0,-2z M66,28l2,0 0,2 -2,0 0,-2z M68,28l2,0 0,2 -2,0 0,-2z M70,28l2,0 0,2 -2,0 0,-2z M72,28l2,0 0,2 -2,0 0,-2z M8,30l2,0 0,2 -2,0 0,-2z M10,30l2,0 0,2 -2,0 0,-2z M12,30l2,0 0,2 -2,0 0,-2z M24,30l2,0 0,2 -2,0 0,-2z M30,30l2,0 0,2 -2,0 0,-2z M32,30l2,0 0,2 -2,0 0,-2z M34,30l2,0 0,2 -2,0 0,-2z M38,30l2,0 0,2 -2,0 0,-2z M40,30l2,0 0,2 -2,0 0,-2z M44,30l2,0 0,2 -2,0 0,-2z M46,30l2,0 0,2 -2,0 0,-2z M48,30l2,0 0,2 -2,0 0,-2z M56,30l2,0 0,2 -2,0 0,-2z M58,30l2,0 0,2 -2,0 0,-2z M62,30l2,0 0,2 -2,0 0,-2z M12,32l2,0 0,2 -2,0 0,-2z M14,32l2,0 0,2 -2,0 0,-2z M16,32l2,0 0,2 -2,0 0,-2z M20,32l2,0 0,2 -2,0 0,-2z M22,32l2,0 0,2 -2,0 0,-2z M24,32l2,0 0,2 -2,0 0,-2z M26,32l2,0 0,2 -2,0 0,-2z M30,32l2,0 0,2 -2,0 0,-2z M34,32l2,0 0,2 -2,0 0,-2z M36,32l2,0 0,2 -2,0 0,-2z M42,32l2,0 0,2 -2,0 0,-2z M44,32l2,0 0,2 -2,0 0,-2z M48,32l2,0 0,2 -2,0 0,-2z M52,32l2,0 0,2 -2,0 0,-2z M58,32l2,0 0,2 -2,0 0,-2z M62,32l2,0 0,2 -2,0 0,-2z M64,32l2,0 0,2 -2,0 0,-2z M66,32l2,0 0,2 -2,0 0,-2z M70,32l2,0 0,2 -2,0 0,-2z M10,34l2,0 0,2 -2,0 0,-2z M12,34l2,0 0,2 -2,0 0,-2z M14,34l2,0 0,2 -2,0 0,-2z M22,34l2,0 0,2 -2,0 0,-2z M26,34l2,0 0,2 -2,0 0,-2z M28,34l2,0 0,2 -2,0 0,-2z M30,34l2,0 0,2 -2,0 0,-2z M34,34l2,0 0,2 -2,0 0,-2z M36,34l2,0 0,2 -2,0 0,-2z M38,34l2,0 0,2 -2,0 0,-2z M40,34l2,0 0,2 -2,0 0,-2z M46,34l2,0 0,2 -2,0 0,-2z M50,34l2,0 0,2 -2,0 0,-2z M56,34l2,0 0,2 -2,0 0,-2z M62,34l2,0 0,2 -2,0 0,-2z M66,34l2,0 0,2 -2,0 0,-2z M68,34l2,0 0,2 -2,0 0,-2z M8,36l2,0 0,2 -2,0 0,-2z M10,36l2,0 0,2 -2,0 0,-2z M12,36l2,0 0,2 -2,0 0,-2z M18,36l2,0 0,2 -2,0 0,-2z M20,36l2,0 0,2 -2,0 0,-2z M24,36l2,0 0,2 -2,0 0,-2z M26,36l2,0 0,2 -2,0 0,-2z M32,36l2,0 0,2 -2,0 0,-2z M34,36l2,0 0,2 -2,0 0,-2z M42,36l2,0 0,2 -2,0 0,-2z M44,36l2,0 0,2 -2,0 0,-2z M46,36l2,0 0,2 -2,0 0,-2z M48,36l2,0 0,2 -2,0 0,-2z M50,36l2,0 0,2 -2,0 0,-2z M60,36l2,0 0,2 -2,0 0,-2z M62,36l2,0 0,2 -2,0 0,-2z M64,36l2,0 0,2 -2,0 0,-2z M68,36l2,0 0,2 -2,0 0,-2z M8,38l2,0 0,2 -2,0 0,-2z M12,38l2,0 0,2 -2,0 0,-2z M14,38l2,0 0,2 -2,0 0,-2z M16,38l2,0 0,2 -2,0 0,-2z M18,38l2,0 0,2 -2,0 0,-2z M26,38l2,0 0,2 -2,0 0,-2z M28,38l2,0 0,2 -2,0 0,-2z M32,38l2,0 0,2 -2,0 0,-2z M36,38l2,0 0,2 -2,0 0,-2z M46,38l2,0 0,2 -2,0 0,-2z M50,38l2,0 0,2 -2,0 0,-2z M52,38l2,0 0,2 -2,0 0,-2z M54,38l2,0 0,2 -2,0 0,-2z M68,38l2,0 0,2 -2,0 0,-2z M12,40l2,0 0,2 -2,0 0,-2z M18,40l2,0 0,2 -2,0 0,-2z M20,40l2,0 0,2 -2,0 0,-2z M24,40l2,0 0,2 -2,0 0,-2z M30,40l2,0 0,2 -2,0 0,-2z M34,40l2,0 0,2 -2,0 0,-2z M44,40l2,0 0,2 -2,0 0,-2z M50,40l2,0 0,2 -2,0 0,-2z M52,40l2,0 0,2 -2,0 0,-2z M58,40l2,0 0,2 -2,0 0,-2z M60,40l2,0 0,2 -2,0 0,-2z M64,40l2,0 0,2 -2,0 0,-2z M66,40l2,0 0,2 -2,0 0,-2z M68,40l2,0 0,2 -2,0 0,-2z M70,40l2,0 0,2 -2,0 0,-2z M12,42l2,0 0,2 -2,0 0,-2z M14,42l2,0 0,2 -2,0 0,-2z M16,42l2,0 0,2 -2,0 0,-2z M26,42l2,0 0,2 -2,0 0,-2z M28,42l2,0 0,2 -2,0 0,-2z M32,42l2,0 0,2 -2,0 0,-2z M34,42l2,0 0,2 -2,0 0,-2z M38,42l2,0 0,2 -2,0 0,-2z M44,42l2,0 0,2 -2,0 0,-2z M48,42l2,0 0,2 -2,0 0,-2z M54,42l2,0 0,2 -2,0 0,-2z M58,42l2,0 0,2 -2,0 0,-2z M60,42l2,0 0,2 -2,0 0,-2z M62,42l2,0 0,2 -2,0 0,-2z M64,42l2,0 0,2 -2,0 0,-2z M66,42l2,0 0,2 -2,0 0,-2z M68,42l2,0 0,2 -2,0 0,-2z M70,42l2,0 0,2 -2,0 0,-2z M72,42l2,0 0,2 -2,0 0,-2z M12,44l2,0 0,2 -2,0 0,-2z M20,44l2,0 0,2 -2,0 0,-2z M24,44l2,0 0,2 -2,0 0,-2z M30,44l2,0 0,2 -2,0 0,-2z M32,44l2,0 0,2 -2,0 0,-2z M34,44l2,0 0,2 -2,0 0,-2z M38,44l2,0 0,2 -2,0 0,-2z M40,44l2,0 0,2 -2,0 0,-2z M50,44l2,0 0,2 -2,0 0,-2z M62,44l2,0 0,2 -2,0 0,-2z M66,44l2,0 0,2 -2,0 0,-2z M70,44l2,0 0,2 -2,0 0,-2z M8,46l2,0 0,2 -2,0 0,-2z M10,46l2,0 0,2 -2,0 0,-2z M16,46l2,0 0,2 -2,0 0,-2z M24,46l2,0 0,2 -2,0 0,-2z M26,46l2,0 0,2 -2,0 0,-2z M28,46l2,0 0,2 -2,0 0,-2z M32,46l2,0 0,2 -2,0 0,-2z M42,46l2,0 0,2 -2,0 0,-2z M46,46l2,0 0,2 -2,0 0,-2z M54,46l2,0 0,2 -2,0 0,-2z M58,46l2,0 0,2 -2,0 0,-2z M60,46l2,0 0,2 -2,0 0,-2z M62,46l2,0 0,2 -2,0 0,-2z M66,46l2,0 0,2 -2,0 0,-2z M70,46l2,0 0,2 -2,0 0,-2z M72,46l2,0 0,2 -2,0 0,-2z M8,48l2,0 0,2 -2,0 0,-2z M10,48l2,0 0,2 -2,0 0,-2z M18,48l2,0 0,2 -2,0 0,-2z M20,48l2,0 0,2 -2,0 0,-2z M22,48l2,0 0,2 -2,0 0,-2z M24,48l2,0 0,2 -2,0 0,-2z M28,48l2,0 0,2 -2,0 0,-2z M30,48l2,0 0,2 -2,0 0,-2z M32,48l2,0 0,2 -2,0 0,-2z M36,48l2,0 0,2 -2,0 0,-2z M38,48l2,0 0,2 -2,0 0,-2z M40,48l2,0 0,2 -2,0 0,-2z M42,48l2,0 0,2 -2,0 0,-2z M44,48l2,0 0,2 -2,0 0,-2z M50,48l2,0 0,2 -2,0 0,-2z M54,48l2,0 0,2 -2,0 0,-2z M56,48l2,0 0,2 -2,0 0,-2z M62,48l2,0 0,2 -2,0 0,-2z M68,48l2,0 0,2 -2,0 0,-2z M70,48l2,0 0,2 -2,0 0,-2z M8,50l2,0 0,2 -2,0 0,-2z M10,50l2,0 0,2 -2,0 0,-2z M12,50l2,0 0,2 -2,0 0,-2z M24,50l2,0 0,2 -2,0 0,-2z M32,50l2,0 0,2 -2,0 0,-2z M34,50l2,0 0,2 -2,0 0,-2z M40,50l2,0 0,2 -2,0 0,-2z M44,50l2,0 0,2 -2,0 0,-2z M46,50l2,0 0,2 -2,0 0,-2z M48,50l2,0 0,2 -2,0 0,-2z M50,50l2,0 0,2 -2,0 0,-2z M52,50l2,0 0,2 -2,0 0,-2z M54,50l2,0 0,2 -2,0 0,-2z M58,50l2,0 0,2 -2,0 0,-2z M60,50l2,0 0,2 -2,0 0,-2z M66,50l2,0 0,2 -2,0 0,-2z M72,50l2,0 0,2 -2,0 0,-2z M14,52l2,0 0,2 -2,0 0,-2z M18,52l2,0 0,2 -2,0 0,-2z M20,52l2,0 0,2 -2,0 0,-2z M26,52l2,0 0,2 -2,0 0,-2z M30,52l2,0 0,2 -2,0 0,-2z M32,52l2,0 0,2 -2,0 0,-2z M34,52l2,0 0,2 -2,0 0,-2z M36,52l2,0 0,2 -2,0 0,-2z M42,52l2,0 0,2 -2,0 0,-2z M50,52l2,0 0,2 -2,0 0,-2z M54,52l2,0 0,2 -2,0 0,-2z M56,52l2,0 0,2 -2,0 0,-2z M58,52l2,0 0,2 -2,0 0,-2z M60,52l2,0 0,2 -2,0 0,-2z M62,52l2,0 0,2 -2,0 0,-2z M68,52l2,0 0,2 -2,0 0,-2z M70,52l2,0 0,2 -2,0 0,-2z M72,52l2,0 0,2 -2,0 0,-2z M10,54l2,0 0,2 -2,0 0,-2z M12,54l2,0 0,2 -2,0 0,-2z M14,54l2,0 0,2 -2,0 0,-2z M24,54l2,0 0,2 -2,0 0,-2z M26,54l2,0 0,2 -2,0 0,-2z M28,54l2,0 0,2 -2,0 0,-2z M34,54l2,0 0,2 -2,0 0,-2z M36,54l2,0 0,2 -2,0 0,-2z M44,54l2,0 0,2 -2,0 0,-2z M46,54l2,0 0,2 -2,0 0,-2z M56,54l2,0 0,2 -2,0 0,-2z M58,54l2,0 0,2 -2,0 0,-2z M62,54l2,0 0,2 -2,0 0,-2z M66,54l2,0 0,2 -2,0 0,-2z M70,54l2,0 0,2 -2,0 0,-2z M8,56l2,0 0,2 -2,0 0,-2z M14,56l2,0 0,2 -2,0 0,-2z M16,56l2,0 0,2 -2,0 0,-2z M18,56l2,0 0,2 -2,0 0,-2z M20,56l2,0 0,2 -2,0 0,-2z M32,56l2,0 0,2 -2,0 0,-2z M34,56l2,0 0,2 -2,0 0,-2z M36,56l2,0 0,2 -2,0 0,-2z M38,56l2,0 0,2 -2,0 0,-2z M40,56l2,0 0,2 -2,0 0,-2z M42,56l2,0 0,2 -2,0 0,-2z M46,56l2,0 0,2 -2,0 0,-2z M54,56l2,0 0,2 -2,0 0,-2z M56,56l2,0 0,2 -2,0 0,-2z M58,56l2,0 0,2 -2,0 0,-2z M60,56l2,0 0,2 -2,0 0,-2z M62,56l2,0 0,2 -2,0 0,-2z M64,56l2,0 0,2 -2,0 0,-2z M66,56l2,0 0,2 -2,0 0,-2z M70,56l2,0 0,2 -2,0 0,-2z M24,58l2,0 0,2 -2,0 0,-2z M26,58l2,0 0,2 -2,0 0,-2z M30,58l2,0 0,2 -2,0 0,-2z M32,58l2,0 0,2 -2,0 0,-2z M36,58l2,0 0,2 -2,0 0,-2z M38,58l2,0 0,2 -2,0 0,-2z M40,58l2,0 0,2 -2,0 0,-2z M46,58l2,0 0,2 -2,0 0,-2z M50,58l2,0 0,2 -2,0 0,-2z M54,58l2,0 0,2 -2,0 0,-2z M56,58l2,0 0,2 -2,0 0,-2z M64,58l2,0 0,2 -2,0 0,-2z M66,58l2,0 0,2 -2,0 0,-2z M70,58l2,0 0,2 -2,0 0,-2z M8,60l2,0 0,2 -2,0 0,-2z M10,60l2,0 0,2 -2,0 0,-2z M12,60l2,0 0,2 -2,0 0,-2z M14,60l2,0 0,2 -2,0 0,-2z M16,60l2,0 0,2 -2,0 0,-2z M18,60l2,0 0,2 -2,0 0,-2z M20,60l2,0 0,2 -2,0 0,-2z M26,60l2,0 0,2 -2,0 0,-2z M28,60l2,0 0,2 -2,0 0,-2z M30,60l2,0 0,2 -2,0 0,-2z M34,60l2,0 0,2 -2,0 0,-2z M36,60l2,0 0,2 -2,0 0,-2z M44,60l2,0 0,2 -2,0 0,-2z M46,60l2,0 0,2 -2,0 0,-2z M48,60l2,0 0,2 -2,0 0,-2z M50,60l2,0 0,2 -2,0 0,-2z M54,60l2,0 0,2 -2,0 0,-2z M56,60l2,0 0,2 -2,0 0,-2z M60,60l2,0 0,2 -2,0 0,-2z M64,60l2,0 0,2 -2,0 0,-2z M8,62l2,0 0,2 -2,0 0,-2z M20,62l2,0 0,2 -2,0 0,-2z M26,62l2,0 0,2 -2,0 0,-2z M30,62l2,0 0,2 -2,0 0,-2z M36,62l2,0 0,2 -2,0 0,-2z M44,62l2,0 0,2 -2,0 0,-2z M46,62l2,0 0,2 -2,0 0,-2z M48,62l2,0 0,2 -2,0 0,-2z M50,62l2,0 0,2 -2,0 0,-2z M54,62l2,0 0,2 -2,0 0,-2z M56,62l2,0 0,2 -2,0 0,-2z M64,62l2,0 0,2 -2,0 0,-2z M66,62l2,0 0,2 -2,0 0,-2z M68,62l2,0 0,2 -2,0 0,-2z M8,64l2,0 0,2 -2,0 0,-2z M12,64l2,0 0,2 -2,0 0,-2z M14,64l2,0 0,2 -2,0 0,-2z M16,64l2,0 0,2 -2,0 0,-2z M20,64l2,0 0,2 -2,0 0,-2z M26,64l2,0 0,2 -2,0 0,-2z M28,64l2,0 0,2 -2,0 0,-2z M34,64l2,0 0,2 -2,0 0,-2z M40,64l2,0 0,2 -2,0 0,-2z M44,64l2,0 0,2 -2,0 0,-2z M46,64l2,0 0,2 -2,0 0,-2z M48,64l2,0 0,2 -2,0 0,-2z M50,64l2,0 0,2 -2,0 0,-2z M52,64l2,0 0,2 -2,0 0,-2z M54,64l2,0 0,2 -2,0 0,-2z M56,64l2,0 0,2 -2,0 0,-2z M58,64l2,0 0,2 -2,0 0,-2z M60,64l2,0 0,2 -2,0 0,-2z M62,64l2,0 0,2 -2,0 0,-2z M64,64l2,0 0,2 -2,0 0,-2z M66,64l2,0 0,2 -2,0 0,-2z M68,64l2,0 0,2 -2,0 0,-2z M70,64l2,0 0,2 -2,0 0,-2z M72,64l2,0 0,2 -2,0 0,-2z M8,66l2,0 0,2 -2,0 0,-2z M12,66l2,0 0,2 -2,0 0,-2z M14,66l2,0 0,2 -2,0 0,-2z M16,66l2,0 0,2 -2,0 0,-2z M20,66l2,0 0,2 -2,0 0,-2z M24,66l2,0 0,2 -2,0 0,-2z M28,66l2,0 0,2 -2,0 0,-2z M34,66l2,0 0,2 -2,0 0,-2z M36,66l2,0 0,2 -2,0 0,-2z M38,66l2,0 0,2 -2,0 0,-2z M52,66l2,0 0,2 -2,0 0,-2z M54,66l2,0 0,2 -2,0 0,-2z M56,66l2,0 0,2 -2,0 0,-2z M70,66l2,0 0,2 -2,0 0,-2z M8,68l2,0 0,2 -2,0 0,-2z M12,68l2,0 0,2 -2,0 0,-2z M14,68l2,0 0,2 -2,0 0,-2z M16,68l2,0 0,2 -2,0 0,-2z M20,68l2,0 0,2 -2,0 0,-2z M24,68l2,0 0,2 -2,0 0,-2z M26,68l2,0 0,2 -2,0 0,-2z M34,68l2,0 0,2 -2,0 0,-2z M38,68l2,0 0,2 -2,0 0,-2z M54,68l2,0 0,2 -2,0 0,-2z M60,68l2,0 0,2 -2,0 0,-2z M62,68l2,0 0,2 -2,0 0,-2z M66,68l2,0 0,2 -2,0 0,-2z M68,68l2,0 0,2 -2,0 0,-2z M70,68l2,0 0,2 -2,0 0,-2z M8,70l2,0 0,2 -2,0 0,-2z M20,70l2,0 0,2 -2,0 0,-2z M24,70l2,0 0,2 -2,0 0,-2z M26,70l2,0 0,2 -2,0 0,-2z M28,70l2,0 0,2 -2,0 0,-2z M36,70l2,0 0,2 -2,0 0,-2z M38,70l2,0 0,2 -2,0 0,-2z M42,70l2,0 0,2 -2,0 0,-2z M44,70l2,0 0,2 -2,0 0,-2z M48,70l2,0 0,2 -2,0 0,-2z M52,70l2,0 0,2 -2,0 0,-2z M54,70l2,0 0,2 -2,0 0,-2z M56,70l2,0 0,2 -2,0 0,-2z M58,70l2,0 0,2 -2,0 0,-2z M60,70l2,0 0,2 -2,0 0,-2z M62,70l2,0 0,2 -2,0 0,-2z M72,70l2,0 0,2 -2,0 0,-2z M8,72l2,0 0,2 -2,0 0,-2z M10,72l2,0 0,2 -2,0 0,-2z M12,72l2,0 0,2 -2,0 0,-2z M14,72l2,0 0,2 -2,0 0,-2z M16,72l2,0 0,2 -2,0 0,-2z M18,72l2,0 0,2 -2,0 0,-2z M20,72l2,0 0,2 -2,0 0,-2z M24,72l2,0 0,2 -2,0 0,-2z M26,72l2,0 0,2 -2,0 0,-2z M28,72l2,0 0,2 -2,0 0,-2z M32,72l2,0 0,2 -2,0 0,-2z M36,72l2,0 0,2 -2,0 0,-2z M42,72l2,0 0,2 -2,0 0,-2z M44,72l2,0 0,2 -2,0 0,-2z M50,72l2,0 0,2 -2,0 0,-2z M66,72l2,0 0,2 -2,0 0,-2z M68,72l2,0 0,2 -2,0 0,-2z " stroke="transparent" fill="black"/></svg> +\ No newline at end of file