From b04591676eb22ab512ba5b902aca05516fbc9ac3 Mon Sep 17 00:00:00 2001 From: Jakob Krebs Date: Tue, 23 Jul 2019 13:12:13 +0200 Subject: [PATCH] update timetable to 2019 version --- img/zeitplan.pdf | Bin 20203 -> 0 bytes preamble.tex | 2 +- texte/zeitplan.tex | 29 +- timetable/timetable.sty | 704 ++++++++++++++++++++++++++++++++++++++++ timetable/zeitplan.pdf | Bin 0 -> 13602 bytes timetable/zeitplan.tex | 87 +++++ 6 files changed, 806 insertions(+), 16 deletions(-) delete mode 100644 img/zeitplan.pdf create mode 100755 timetable/timetable.sty create mode 100755 timetable/zeitplan.pdf create mode 100755 timetable/zeitplan.tex diff --git a/img/zeitplan.pdf b/img/zeitplan.pdf deleted file mode 100644 index 0fb1ee8bdb609f32dbad9edee6cbadc6e2e0cff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20203 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 diff --git a/preamble.tex b/preamble.tex index 4c2c4e1..327563a 100644 --- a/preamble.tex +++ b/preamble.tex @@ -15,7 +15,7 @@ \setlength{\multicolsep}{0.5em} \usepackage{longtable} \usepackage{enumitem} % to easily remove itemize indent for the checklist - +\usepackage{pdfpages} \usepackage{fontspec} \usepackage{microtype} \usepackage[autostyle=true]{csquotes} diff --git a/texte/zeitplan.tex b/texte/zeitplan.tex index 2bde447..fba8cbd 100644 --- a/texte/zeitplan.tex +++ b/texte/zeitplan.tex @@ -16,23 +16,22 @@ % 5. Färdsch -\addchap[Zeitplan der ESE-Woche]{} -\thispagestyle{empty} +%\thispagestyle{empty} %\thispagestyle{empty} %keine Seitenzahl %\AddToShipoutPicture*{\put(0,0){% %\parbox[b][\paperheight]{\paperwidth}{% -\begin{center} - \vspace*{-6.5em} - \includegraphics[height=.77\dimen108,keepaspectratio]{img/zeitplan.pdf}% +%\begin{center} +% \vspace*{-6.5em} + \includepdf[angle=90]{timetable/zeitplan.pdf}% - \small - \vfill - \enlargethispage{3em} - - Sofern nicht anders angegeben, finden alle Veranstaltungen im Fakultätsgebäude der Informatik, dem - \textbf{Andreas Pfitzmann Bau (APB)}, im Raum \textbf{E023} (Hörsaal direkt am Foyer) statt. - Folge im Gebäude einfach den vielen Tutoren in den schönen, roten ESE-2018-Shirts. - - Den aktuellen Zeitplan findest du auch jederzeit unter \textbf{ese.ifsr.de}~\link{https://ese.ifsr.de/}. -\end{center} +% \small +% \vfill +% \enlargethispage{3em} +% +% Sofern nicht anders angegeben, finden alle Veranstaltungen im Fakultätsgebäude der Informatik, dem +% \textbf{Andreas Pfitzmann Bau (APB)}, im Raum \textbf{E023} (Hörsaal direkt am Foyer) statt. +% Folge im Gebäude einfach den vielen Tutoren in den schönen, roten ESE-2018-Shirts. +% +% Den aktuellen Zeitplan findest du auch jederzeit unter \textbf{ese.ifsr.de}~\link{https://ese.ifsr.de/}. +%\end{center} diff --git a/timetable/timetable.sty b/timetable/timetable.sty new file mode 100755 index 0000000..041e428 --- /dev/null +++ b/timetable/timetable.sty @@ -0,0 +1,704 @@ +% TODO major cleanup necessary! + +% timetable.sty - The LaTeX timetable stylesheet V1.4 +% http://www.planetk.de/index.php?title=Stundenplan +% +% Copyright (C) 2007-2009 Pascal Gwosdek +% Modifications (C) 2008 Daniel Bader +% +% This program is free software; you can redistribute it and/or modify it +% under the terms of the GNU General Public License as published by the +% Free Software Foundation; either version 3 of the License, or (at your +% option) any later version. +% +% This program is distributed in the hope that it will be useful, but +% WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +% Public License for more details. +% +% You should have received a copy of the GNU General Public License along +% with this program; if not, see . +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{timetable} +\RequirePackage{ifthen, calc, color} + +% swtich case helper +\newcommand\addcase[3]{\expandafter\def\csname\string#1@case@#2\endcsname{#3}} +\newcommand\makeswitch[2][]{% + \newcommand#2[1]{% + \ifcsname\string#2@case@##1\endcsname\csname\string#2@case@##1\endcsname\else#1\fi% + }% +} +\makeswitch[nada]\dothis + + +% Preset the colors +\definecolor{ttframecol1}{rgb}{0.95,0.95,0.95} +\definecolor{ttframecol2}{rgb}{0.9,0.9,0.9} +\definecolor{ttfontcolor}{rgb}{0.25,0.25,0.25} +\definecolor{ttlinecol1}{rgb}{0.0,0.0,0.0} +\definecolor{ttlinecol2}{rgb}{0.5,0.0,0.0} + +% Simple for loop construct as proposed by N. Setzer +\newcommand{\@ttforloop}[5][1] +{ + \setcounter{#2}{#3} + \ifthenelse{#4} + { + #5 + \addtocounter{#2}{#1} + \@ttforloop[#1]{#2}{\value{#2}}{#4}{#5} + } + {} + } + +% SansSerif font +\newcommand{\timetablefont}{\sffamily} +\newcommand{\@ttfont}{\timetablefont\selectfont} + +% Dimensions +\newlength{\@rowheight} +\newlength{\@rowhght} +\newlength{\@colwidth} +\newlength{\@colwdth} +\newlength{\@offset} +\newcounter{@rowcount} +\newcounter{@colcount} +\newlength{\@textframe} +\newlength{\@bottomspace} +\newlength{\@totalheight} +\newlength{\@totalwidth} +\newlength{\@toprowheight} + +% Arbitrary stuff +\newcounter{@timemarks} +\newcounter{@daymarks} +\newcounter{@topheight} +\newcounter{@printtimestamps} +\newlength{\@cornerradius} +\newcounter{@frametype} +\newcounter{@framevalign} + +% Predefines +\setlength{\@cornerradius}{3pt} +\setcounter{@frametype}2 +\setcounter{@framevalign}2 +\setlength{\@rowheight}{1.2cm} +\setlength{\@colwidth}{2.8cm} +\setlength{\@textframe}{0.8mm} +\setlength{\@bottomspace}{8pt} +\setcounter{@rowcount}9 +\setcounter{@colcount}5 +\setcounter{@topheight}{2} +\setcounter{@printtimestamps}{0} +\newcommand{\@bottomstyle}{\scriptsize} +\newcommand{\@timestyle}{\tiny} + +% Event declarations +\newlength{\@startposx} +\newlength{\@startposy} +\newlength{\@eventheight} +\newlength{\@newcolwidth} +\newlength{\@newrowheight} +\newlength{\@newcolleft} +\newlength{\@newrowtop} + +% Helpers +\newcounter{@hourslot} +\newcounter{@durationslots} +\newcounter{@minutesperslot} +\newcounter{@timetablehelp} + +\newcounter{@day} +\newcounter{@column} +\newcounter{@row} +\newcounter{@hour} +\newcounter{@minute} +\newcounter{@minuteStep} +\newcounter{@startHour} +\newcounter{@startMinute} +\newcounter{@endHour} +\newcounter{@endMinute} +\newcounter{@hoursset} +\setcounter{@hoursset}{0} +\newcounter{@hourzero} + +\newcommand{\seteventcornerradius}[1] +{ + \setlength{\@cornerradius}{#1} + \ifthenelse{\strip@pt\@cornerradius > 7} + { + \setlength{\@cornerradius}{7pt} + } + { + \ifthenelse{\strip@pt\@cornerradius < 0} + { + \setlength{\@cornerradius}{0pt} + } + {} + } +} + +\newcommand{\settopheight}[1] +{ + \addtocounter{@rowcount}{#1-\value{@topheight}} + \setcounter{@topheight}{#1} +} + +\newcommand{\setframetype}[2][c] +{ + % Set frame type + \ifthenelse{#2 < 1} + { + % Lines + \setcounter{@frametype}{1} + } + { + \ifthenelse{#2 > 2} + { + % Checkerboard + \setcounter{@frametype}{2} + } + { + \setcounter{@frametype}{#2} + } + } + + % Caption vertical alignment + \ifthenelse{\equal{#1}{b}} + {\setcounter{@framevalign}{1}} + {\ifthenelse{\equal{#1}{t}} + {\setcounter{@framevalign}{0}} + {\setcounter{@framevalign}{2}} + } +} + +\newcommand{\setprinttimestamps}[1] +{ + \setcounter{@printtimestamps}{#1} +} + +\newcommand{\setbottomstyle}[1] +{ + \renewcommand{\@bottomstyle}{#1} +} + +\newcommand{\settimestyle}[1] +{ + \renewcommand{\@timestyle}{#1} +} + +\newcommand{\setbottomspace}[1] +{ + \setlength{\@bottomspace}{#1} +} + +\newcommand{\@fmtTime}[2] +{ + % Arguments: {hour}{minute} + \ifthenelse{\value{#1} < 10}{0}{}\arabic{#1}:\ifthenelse{\value{#2} < 10}{0}{}\arabic{#2} +} + +\newcommand{\slotevent}[9] +{ + % Arguments: {x}{y}{duration}{title}{lecturer}{place}{type}{textcolor} + \renewcommand{\baselinestretch}{0.75}\normalsize + + \setlength{\@startposx}{#1\@colwidth-0.5pt} + \setlength{\@startposy}{-#2\@rowheight-1.0pt} + \setlength{\@eventheight}{#3\@rowheight-0pt} + \addtolength{\@startposy}{-\@eventheight} + + \setlength{\@colwdth}{\@colwidth*\real{0.5}} + \addtolength{\@startposx}{-\@colwdth} + \setlength{\@offset}{-2pt} + + % \addcase\dothis{0}{\setlength{\@colwdth}{\@colwidth}} + \addcase\dothis{0}{\addtolength{\@colwdth}{\@colwidth*\real{0.5}}} + \addcase\dothis{6}{ + \addtolength{\@colwdth}{\@colwidth*\real{0.5}} + } + \addcase\dothis{1}{} + \addcase\dothis{7}{} + \addcase\dothis{2}{\addtolength{\@startposx}{\@colwdth}\addtolength{\@offset}{\@colwdth}} + \addcase\dothis{3}{ + \addtolength{\@startposx}{\@colwidth-10pt} + % \addtolength{\@offset}{60pt} + \setlength{\@colwdth}{10pt} + % \addtolength{\@offset}{-\@colwidth-0.5pt} + % \addtolength{\@offset}{\@colwdth} + } + % \addcase\dothis{4}{\addtolength{\@colwdth}{\@colwidth*\real{0.5}}} + \addcase\dothis{4}{ + % \addtolength{\@startposx}{\@colwidth-10pt} + % \addtolength{\@offset}{60pt} + \setlength{\@colwdth}{10pt} + % \addtolength{\@colwdth}{-10pt} + % \addtolength{\@offset}{-\@colwidth-0.5pt} + % \addtolength{\@offset}{\@colwdth} + } + \addcase\dothis{5}{ + \newlength{\@manuOffset} + \setlength{\@manuOffset}{7pt} + \addtolength{\@colwdth} {-\@manuOffset*\real{2}+\@colwidth*\real{0.5}} + \setlength{\@eventheight}{-\@manuOffset*\real{2}+#3\@rowheight} + \addtolength{\@startposx}{\@manuOffset} + \addtolength{\@startposy}{\@manuOffset} + % % \addtolength{\@offset}{60pt} + % \setlength{\@colwdth}{10pt} + % % \addtolength{\@offset}{-\@colwidth-0.5pt} + % % \addtolength{\@offset}{\@colwdth} + } + + \dothis{#9} + + \addtolength{\@startposx}{\@cornerradius} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{@timetable#8block} + {\rule[-\dp\strutbox]{\@colwdth-2\@cornerradius}{\@eventheight}}} + \addtolength{\@startposx}{-\@cornerradius} + \addtolength{\@startposy}{\@cornerradius} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{@timetable#8block} + {\rule[-\dp\strutbox]{\@colwdth}{\@eventheight-2\@cornerradius}}} + \addtolength{\@startposy}{-\@cornerradius} + + % Event borders + \addtolength{\@startposy}{-0.25pt} + % \addtolength{\@startposy}{+0.5pt} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{\@colwdth}{0.5pt}}} + % \addtolength{\@startposy}{+0.5pt} + % \addtolength{\@startposy}{+0.5pt} + \addtolength{\@startposy}{\@eventheight} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{\@colwdth+0.5pt}{0.5pt}}} + % \addtolength{\@startposy}{-0.5pt} + % \addtolength{\@eventheight}{-0.5pt} + \addtolength{\@startposy}{-\@eventheight} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{0.5pt}{\@eventheight}}} + \addtolength{\@startposx}{\@colwdth} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{0.5pt}{\@eventheight}}} + + \setlength{\@cornerradius}{2\@cornerradius} + + \ifthenelse{\strip@pt\@cornerradius > 0} + { + % Left rounded corners + \addtolength{\@startposx}{.5\@cornerradius} + \addtolength{\@startposy}{.5\@cornerradius-\dp\strutbox} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{@timetable#8block}{\circle*{\strip@pt\@cornerradius}}} + \addtolength{\@startposy}{-.5\@cornerradius+\dp\strutbox} + \addtolength{\@startposy}{-.5\@cornerradius-\dp\strutbox+\@eventheight} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{@timetable#8block}{\circle*{\strip@pt\@cornerradius}}} + \addtolength{\@startposy}{.5\@cornerradius+\dp\strutbox-\@eventheight} + \addtolength{\@startposx}{-.5\@cornerradius} + + % Right rounded corners + \addtolength{\@startposx}{-.5\@cornerradius+\@colwidth-1pt} + \addtolength{\@startposy}{.5\@cornerradius-\dp\strutbox} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{@timetable#8block}{\circle*{\strip@pt\@cornerradius}}} + \addtolength{\@startposy}{-.5\@cornerradius+\dp\strutbox} + \addtolength{\@startposy}{-.5\@cornerradius-\dp\strutbox+\@eventheight} + \put(\strip@pt\@startposx,\strip@pt\@startposy){\textcolor{@timetable#8block}{\circle*{\strip@pt\@cornerradius}}} + \addtolength{\@startposy}{.5\@cornerradius+\dp\strutbox-\@eventheight} + \addtolength{\@startposx}{.5\@cornerradius-\@colwidth-1pt} + }{} + + \setlength{\@cornerradius}{0.5\@cornerradius} + + \setlength{\@newrowheight}{\@rowheight} + \addtolength{\@newrowheight}{-2\@textframe-1pt} + \setlength{\@newcolwidth}{\@colwidth} + \addtolength{\@newcolwidth}{-2\@textframe-1pt} + + \setlength{\@newrowtop}{-#2\@rowheight} + \addtolength{\@newrowtop}{-2\@textframe} + \setlength{\@newcolleft}{#1\@colwidth+.5pt} + \addtolength{\@newcolleft}{\@textframe} + \ifthenelse{#9 = 0 \OR #9 = 5 \OR #9 = 6}{ + \addtolength{\@newcolleft}{-\@colwidth*\real{0.5}} + \ifthenelse{#9 = 5}{ + \addtolength{\@newcolleft}{ \@manuOffset} + \addtolength{\@newrowtop} {-\@manuOffset} + }{} + \ifthenelse{#9 = 6}{ + \addtolength{\@newcolleft}{10pt} + }{} + }{ + \addtolength{\@newcolleft}{-\@colwdth} + } + + \ifthenelse{\value{@hoursset} = 0}{\setcounter{@printtimestamps}{0}}{} + + % Title + \ifthenelse{#9 = 7}{ + \addtolength{\@newcolleft}{10pt} + }{} + \ifthenelse{#9 = 3}{ + \addtolength{\@newcolwidth}{-\@colwidth*\real{0.5}} + \addtolength{\@newcolwidth}{11pt} + \addtolength{\@newrowtop}{-10pt} + } {} + \ifthenelse{#9 = 4}{ + % \addtolength{\@newcolwidth}{-\@colwidth*\real{0.5}} + % \setlength{\@colwdth}{\@colwidth*\real{0.5}} + \addtolength{\@newcolwidth}{11pt} + \addtolength{\@newrowtop}{-\@eventheight*\real{0.33}} + \addtolength{\@newcolleft}{-\@colwidth} + \addtolength{\@newcolleft}{9.25pt} + } {} + \ifthenelse{#9 = 5}{ + % \addtolength{\@newcolwidth}{-\@colwidth*\real{0.5}} + \addtolength{\@newcolwidth}{-\@manuOffset} + } {} + \addtolength{\@newrowtop}{-10pt} + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop) + {\begin{minipage}[t]{\@newcolwidth}% + \hspace*{\@offset} + \@ttfont\raggedright\color{@timetable#8text}% + \ifthenelse{\value{@printtimestamps} > 0}% + {{\@timestyle \@fmtTime{@startHour}{@startMinute}}% + \ifthenelse{\value{@printtimestamps} = 2}% + {{\@timestyle -- \@fmtTime{@endHour}{@endMinute}}}% + {}% + \\}% + {}% + \ifthenelse{#9 = 0 \OR #9 = 6 \OR #9 = 5}{% + \textbf{#4}% + \ifthenelse{\equal{#4}{Abschlussplenum}}{ + \\\transparent{.7}#5 % + }{ + \ifthenelse{\equal{#4}{Nach der Anreise}}{ + \\#5% + }{ + \hfill\transparent{.7}#5 \hspace*{10pt}% + \ifthenelse{#9 = 6}{ + \hspace*{10pt}% + }{} + } + } + }{}% + \ifthenelse{#9 = 1 \OR #9 = 7}{% + {\textbf{#4} \\ \transparent{.7}#5 }% + }{}% + \ifthenelse{#9 = 2}{% + {\textbf{#4} \\ \hspace*{\@offset} \transparent{.7}#5 }% + }{}% + \ifthenelse{#9 = 3 \OR #9 = 4}{% + {\centering \textbf{#4}}% + }{}% + \end{minipage}} + \addtolength{\@newrowtop}{1pt} + + \renewcommand{\baselinestretch}{0.5}\normalsize + \setlength{\@newrowtop}{-#2\@rowheight-#3\@rowheight} + \addtolength{\@newrowtop}{2\@textframe + \@bottomspace} + + \addtolength{\@newrowtop}{-13pt} + % Lecturer + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop) + {\begin{minipage}[t]{1.0\@newcolwidth}% + \hspace*{\@offset} + \@ttfont\raggedright\color{@timetable#8text}{\@bottomstyle #6% + \vphantom{A}} + \ifthenelse{\value{@printtimestamps} = 1}% + {{\@timestyle \@fmtTime{@endHour}{@endMinute}}}% + {}% + \end{minipage}} + + \setlength{\@newcolleft}{#1\@colwidth + \@colwidth} + \addtolength{\@newcolleft}{-\@textframe-0.4\@newcolwidth} + + % Location + % \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop) + % {\begin{minipage}[t]{0.4\@newcolwidth}% + % \@ttfont\raggedleft\color{@timetable#7text}{\@bottomstyle #6% + % \vphantom{A}}% + % \end{minipage}} + + \renewcommand{\baselinestretch}{1.0}\normalsize + } + +\newcommand{\event}[9] + { + % Arguments: {@day}{@start}{@end}{title}{lecturer}{place}{type} + + % Use the time format, if hours are defined, and a slot number otherwise: + \ifthenelse{\value{@hoursset} > 0} + { + \setcounter{@startHour}{#2 / 100} + \setcounter{@startMinute}{#2 - #2 / 100 * 100} + + \setcounter{@endHour}{#3 / 100} + \setcounter{@endMinute}{#3 - #3 / 100 * 100} + + \setcounter{@hourslot}{((#2 - \value{@hourzero}) / 100 * (60 / \value{@minutesperslot})) + 2 + ((#2 - #2 / 100 * 100) / \value{@minutesperslot})} + \setcounter{@durationslots}{((#3 - \value{@hourzero}) / 100 * (60 / \value{@minutesperslot})) + 2 + ((#3 - #3 / 100 * 100) / \value{@minutesperslot}) - \value{@hourslot}} + + % Compensate for 24h wrap + \ifthenelse{\value{@hourslot} < 0}{\addtocounter{@hourslot}{(24 * (60 / \value{@minutesperslot}))}}{} + + \addtocounter{@hourslot}{\value{@topheight}-2} + } + { + \setcounter{@hourslot}{#2} + \setcounter{@durationslots}{#3-#2} + } + + \slotevent{#1}{\value{@hourslot}}{\value{@durationslots}}{#4}{#5}{#6}{#7}{#8}{#9} + } + +\newcommand{\legend}[3] + { + % Arguments: + % Lets you manually set slot contents (use this really rarely and + % SEE: \daymark, \timemark ) + + \setlength{\@newrowtop}{\@rowheight*(-#2+1)-\dp\strutbox} + \setlength{\@newcolleft}{#1\@colwidth-\@colwidth} + \ifthenelse{#2 = 1}{ + \addtolength{\@newcolleft}{-\@colwidth*\real{0.5}} + } { + } + + \ifthenelse{\value{@hoursset} = 0} + {\setcounter{@minutesperslot}{60}} + {} + + % Select frame type + \ifthenelse{\value{@frametype} = 1} + { % Lines + % \ifthenelse{#1 = 1}{\put(\strip@pt\@newcolleft,\strip@pt\@newrowtop){\textcolor{black}{\rule{\@colwidth}{1pt}}}}{} + % TODO change here + \addtolength{\@newrowtop}{-\value{@topheight}\@rowheight} + + \addtolength{\@newrowtop}{-2.5pt-\@rowheight*(\value{@rowcount} -4)-\dp\strutbox} + % \addtolength{\@newrowtop}{-50pt} + + \addtolength{\@newcolleft}{-0.5pt} + % \ifthenelse{#2 = 1}{\put(\strip@pt\@newcolleft,\strip@pt\@newrowtop){\textcolor{black}{\rule{0.5pt}{\value{@topheight}\@rowheight}}}}{} + \ifthenelse{#2 = 1}{ + % \ifthenelse{\equal{#3}{Mittwoch}}{}{ + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop){\textcolor{black}{\rule{0.5pt}{\@rowheight*(\value{@rowcount})-\dp\strutbox}}} + % } + }{} + \addtolength{\@newcolleft}{+0.5pt} + \addtolength{\@newrowtop}{+2.5pt+\@rowheight*(\value{@rowcount} -4)+\dp\strutbox} + % \addtolength{\@newcolleft}{1pt} + \addtolength{\@newrowtop}{\value{@topheight}\@rowheight} + } + { % Checkerboard + % Horizontal stripe + \ifthenelse{#2 = 1} + {\setcounter{@timetablehelp}{#1 * \real{0.5} * \real{2.0}} + \ifthenelse{\value{@timetablehelp} = #1} + {\addtolength{\@newrowtop}{-\value{@topheight}\@rowheight} + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop) + {\textcolor{ttframecol2}{\rule{\@colwidth}{\value{@topheight}\@rowheight}}} + \addtolength{\@newrowtop}{\value{@topheight}\@rowheight} + } + {} + } + {} + % Vertical stripe + \ifthenelse{#1 = 1} + {\setcounter{@timetablehelp}{(((#2-\value{@topheight}-1) * \value{@minutesperslot} / 120) * 2) - ((#2-\value{@topheight}-1) * \value{@minutesperslot} / 60)} + \ifthenelse{\value{@timetablehelp} = 0} + {\setcounter{@timetablehelp}{60 / \value{@minutesperslot}} + \addtolength{\@newrowtop}{-\value{@timetablehelp}\@rowheight} + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop) + {\textcolor{ttframecol2}{\rule{\@colwidth}{\value{@timetablehelp}\@rowheight}}} + \addtolength{\@newrowtop}{\value{@timetablehelp}\@rowheight} + } + {} + } + {} + } + + % Print text + % \ifthenelse{#1 = 1}{ + % \addtolength{\@newcolleft}{\@textframe-100pt} + % }{ + % \addtolength{\@newcolleft}{\@textframe} + % } + \addtolength{\@newcolleft}{\@textframe} + \addtolength{\@newrowtop}{-\@textframe-\heightof{\large #3}} + + % Optionally move caption to middle or bottom + \ifthenelse{\value{@framevalign} > 0} + { + \addtolength{\@newrowtop}{(- \value{@topheight}\@rowheight + 2\@text frame + \heightof{\Large #3})/\value{@framevalign}} + } + + \ifthenelse{#2 = 1}{ + \setlength{\@newcolleft}{#1\@colwidth-\@colwidth} + \addtolength{\@newcolleft}{-\@colwidth*\real{0.25}} + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop){ + \makebox[\@colwidth*\real{0.5}]{\textcolor{ttfontcolor} + {\@ttfont\large \textbf{#3}}}} + } { + \put(\strip@pt\@newcolleft,\strip@pt\@newrowtop){ + \makebox[\@colwidth*\real{0.37}]{\textcolor{ttfontcolor} + {\@ttfont\large \hfill \textbf{#3}}}} + } + } + +\newcommand{\timemark}[1] + { + \stepcounter{@timemarks} + \legend 1 {\value{@timemarks}} {#1} + } + +\newcommand{\daymark}[1] + { + \stepcounter{@daymarks} + \legend {\value{@daymarks}} 1 {#1} + } + +\newcommand{\defineevent}[7] + { + \definecolor{@timetable#1block}{rgb}{#2, #3, #4} + \definecolor{@timetable#1text} {rgb}{#5, #6, #7} + } + +\newcommand{\setslotsize}[2] + { + % Arguments: + % Defines the slot size + + \setlength{\@rowheight}{#2} + \setlength{\@colwidth}{#1} + } + +\newcommand{\setslotcount}[2] + { + % Arguments: + % Defines the number of slots in both dimensions + + \setcounter{@colcount}{#1} + \setcounter{@rowcount}{#2+\value{@topheight}} + + \stepcounter{@colcount} + } + +\newcommand{\settextframe}[1] + { + % Arguments: + % Defines the width of the border of each entry (i.e. the + % distance between outer border and text) + + \setlength{\@textframe}{#1} + } + +\newcommand{\hours}[3] + { + % Arguments: + % Automatically sets the time slots to full hours, beginning with + + \setcounter{@hoursset}{1} + \setcounter{@hourzero}{(#1 * 100)} + + \setcounter{@hour}{#1} + \setcounter{@minute}{0} + \setcounter{@minuteStep}{#2} + \setcounter{@minutesperslot}{\value{@minuteStep}} + + \@ttforloop{@row}{\value{@topheight}}{\value{@row} < \value{@rowcount}} + { + \ifthenelse{\value{@minute} = 0}{ + \timemark{\@fmtTime{@hour}{@minute}\ifthenelse{#3 > 0}{-\setcounter{@hour}{\value{@hour}+1}\@fmtTime{@hour}{@minute}\setcounter{@hour}{\value{@hour}-1}}{}} + }{\stepcounter{@timemarks}} + \addtocounter{@minute}{#2} + \ifthenelse{\value{@minute} = 60}{\stepcounter{@hour}\setcounter{@minute}{0}}{} + \ifthenelse{\value{@hour} > 23}{\addtocounter{@hour}{-24}}{} + } + } + +\newcommand{\germandays}[1] + { + % Arguments: + % Macro for the english week days + + \setcounter{@day}{#1} + + \@ttforloop{@column}{1}{\value{@column} < \value{@colcount}} + { + \ifthenelse{\equal{\value{@day}}1}{\daymark{Montag}}{} + \ifthenelse{\equal{\value{@day}}2}{\daymark{Dienstag}}{} + \ifthenelse{\equal{\value{@day}}3}{\daymark{Mittwoch}}{} + \ifthenelse{\equal{\value{@day}}4}{\daymark{Donnerstag}}{} + \ifthenelse{\equal{\value{@day}}5}{\daymark{Freitag}}{} + \ifthenelse{\equal{\value{@day}}6}{\daymark{Samstag}}{} + % \ifthenelse{\equal{\value{@day}}5}{\daymark{Sonntag}}{} + + \stepcounter{@day} + \ifthenelse{\value{@day} > 7}{\addtocounter{@day}{-7}}{} + } + } + +\newenvironment{timetable}% + {\noindent% + % Arguments: None + % Starts a new timetable + % + % Set the new layout setting + \setlength{\@totalheight}{-\value{@rowcount}\@rowheight}% + \setlength{\@totalwidth}{\value{@colcount}\@colwidth}% + \addtolength{\@totalwidth}{-\@colwidth*\real{0.5}}% + % + % Reset the counters + \setcounter{@timemarks}{\value{@topheight}}% + \setcounter{@daymarks}{1}% + % + % Minipage to correct bounding box + \begin{minipage}[t][-\@totalheight]{\@totalwidth} + % + % Begin. Note the offset hack of the picture, this is to make it consistent to the old pstricks package. + \begin{picture}(\strip@pt\@totalwidth,\strip@pt\@totalheight)(0,-\strip@pt\baselineskip) + % Draw the grey frame + \put(0,\strip@pt\@totalheight){\textcolor{ttframecol1}{\rule[-\dp\strutbox]{\@totalwidth}{-\@rowheight}}} + \setlength{\@toprowheight}{\value{@topheight}\@rowheight} + \put(0,-\strip@pt\@toprowheight){\textcolor{white}{\rule[-\dp\strutbox]{\@totalwidth}{\@toprowheight}}} + + % Test + % \put(0,\strip@pt\@rowheight){\textcolor{ttframecol1}{\rule[-\dp\strutbox]{\@totalwidth}{-\@rowheight}}} + \setlength{\@toprowheight}{\value{@topheight}\@rowheight} + \setlength{\@rowhght}{\@rowheight} + \addtolength{\@rowhght}{\@rowheight} + \addtolength{\@rowhght}{\@rowheight} + \addtolength{\@rowhght}{\@rowheight} + \newcounter{@x} + \setcounter{@x} 5 + \@ttforloop{@row}{\value{@topheight}}{\value{@row} < \value{@x}} + { + \addtolength{\@toprowheight}{\@rowhght} + \put(0,-\strip@pt\@toprowheight){\textcolor{ttframecol1}{\rule[-\dp\strutbox]{\@totalwidth}{\@rowhght}}} + \addtolength{\@toprowheight}{\@rowhght} + \put(0,-\strip@pt\@toprowheight){\textcolor{ttframecol2}{\rule[-\dp\strutbox]{\@totalwidth}{\@rowhght}}} + \addtolength{\@toprowheight}{\@rowhght} + \put(0,-\strip@pt\@toprowheight){\textcolor{ttframecol1}{\rule[-\dp\strutbox]{\@totalwidth}{\@rowhght}}} + \addtolength{\@toprowheight}{\@rowhght} + \put(0,-\strip@pt\@toprowheight){\textcolor{ttframecol2}{\rule[-\dp\strutbox]{\@totalwidth}{\@rowhght}}} + } + + \addtolength{\@toprowheight}{\@rowhght} + \put(0,-\strip@pt\@toprowheight){\textcolor{ttframecol1}{\rule[-\dp\strutbox]{\@totalwidth}{\@rowhght}}} + + } + { + % % Draw the contours + % % Inner + % \addtolength{\@colwidth}{-1pt} + % \put(\strip@pt\@colwidth,-\strip@pt\@toprowheight){\textcolor{ttlinecol2}{\rule[-\dp\strutbox]{\@totalwidth-\@colwidth+1pt}{1pt}}} + % \put(\strip@pt\@colwidth,\strip@pt\@totalheight){\textcolor{ttlinecol2}{\rule[-\dp\strutbox]{1pt}{-\@totalheight-\@toprowheight}}} + % \addtolength{\@colwidth}{1pt} + + % % Outer + % \put(0,0){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{\@totalwidth}{1pt}}} + % \put(0,\strip@pt\@totalheight){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{1pt}{-\@totalheight}}} + % \put(\strip@pt\@totalwidth,\strip@pt\@totalheight){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{1pt}{-\@totalheight+1pt}}} + % \addtolength{\@totalheight}{-0.5pt} + % \put(0,\strip@pt\@totalheight){\textcolor{ttlinecol1}{\rule[-\dp\strutbox]{\@totalwidth}{1pt}}} + % \addtolength{\@totalheight}{0.5pt} + \end{picture} + \end{minipage} + } diff --git a/timetable/zeitplan.pdf b/timetable/zeitplan.pdf new file mode 100755 index 0000000000000000000000000000000000000000..cf0770ed54b1110caab2d7d227eb5b5d5e705d36 GIT binary patch literal 13602 zcmbWd19T?cwl>t`?z5jFXzrQ>FJF?df z(8W~5)Y#s{l#pJ=)Xv<+f{=-mm5q>(kMO?^SZ5a}Q$t%=kM$|tF*{Or)UGG>1Ef?V z2l817fu%&q>#>D`jNK&j4XmfW?1A@B@Rg17_C!f0X$zBND%B}*vi+f9!iW3M2Q2LF zk0&(zZUmR-kqdXDLx!&R4_l4R7cL(xT)c1FU;Q~0pFsg2hE_Yn$biY~w>6uXX90z_j+5JNWjXXF-q-2I zLH6aED;WwSLDv&*Y~tjL757>o!?4#qK00!N>qxh=oJmf#vSe?#ukK1Dwwz_}XuBr8zQ`z?xl_4Dv!VFA|)(?$S?weu_Ch6A9olaVK~)8P5V_x_s3WOV~7 zwM+YHGqSzqM;Dk0Mrg|!8!-O!ZPhL5F+jmPJTuQ~q0FaP%mAbW29nP&#Mv0IDEvnvIxk zzz3E`&e8F}Qd}C|w*I!cr^?TYA)4KtnEjfb-3!0{2WBH!>(H+kdf$hM5P31EZbeuju)q7Cp;T(~UWL-!I1X7*I#qm?nh`KIw92$i@@aNNNR zd|qCIovPDitri1A$EeznfGN-*+8yv zyZ7C~2siC^W-YWh`<-fNAq0pgmZXzzP_Wq~Ld2aH6ZVfS#!L(CSg<@SKKK`iykG2Q zftNZumpX%z^K%!X2LaS#!E@TE%CAGz8Jq9dpE z!})SrIjmv@@O5*<8FG^3ck%V?Yt*Xq3j4A^k0hDTLea6O!3Gq#hZ6d}#x?fkWjqR9 zMt1PAu9WR+k*Gdk`L7S`D%z6Pbt!du)V3JU1k+h z0)S-^Whc{~Mma)Oxnw%tGY9y$!(r+rWU(Yo3TQGKE4B9!*tnf(tsZpIk#o^iwCwr6()~Z_92vyYJwjhujdfC}_Evt{%-blxpL;38ehY7+n zHV2*Es9!dy9QZ=(^OE=dh#3M}jLmC=3Ri=s&ynmZQi{KmP9QX7-d*O(Kht-nU{)@L2l9<~PO$x7;T z^p(xvV$^odtzEi_AQl%7))AlJ2vBNjdR?QeXSkUZI7&4jnk<)PL^pCdbQ65UNqmt(wO1Ty(f zu3yRx`Bd5qh_X|V+0M+eDb~T3bG1$>#a$MfE*RZ*x=4xyrG}?=ZgE=biz7GOH+f_w zw0cdZLxPm5R{EEHTB$VjPwo83Jv4t026su+tO`$Mt2}o~op{j&R~l|BJJ~vS`>ife zhqfAHY;+E9-UeEV(-4s7i}~I@fS06^(z}j6bIIIPrBN}rHBGFE_T~nVv=izc>$pwX z7-DmK)>?02m5maB9b4dS(kMfPdW{To-%c7pR8llaLC{=m3b9aU}lyvpQDVdvQVOlZvrvr3(M1-R;!09)j$ zDzirt*--N%v;>N%Tx}CXq5Z&+&tnY&)>-YTtu64wG(GaJ_A0=-N72bG)qi`Z*9gK- z{tV}}sXlv?6X#`Me;<+sXh+SdY0k9~Mci&g2jpp#p^azJVN_Y~<~B6T=C#7>d^$ z7T`i1E%}G7CTwvz871x<)Do#_#Fq!FWSezHI;m?7S%fDw84rG8BwB5!dsa|LlTe2N z6(ek^qY$eS%9^&rb+A$4U>|HL8=g)wQP=cz1GJj*txCs)<`&?1Cfei98hNv=m5RxT zem9r=b3NK$y(MW&rVWq807nc4*2ohL^m1K7D|uxMoCk3!*q@Mwad?_UlJQQ} zxeFvF$9ZU0l>n0=Twx*BMczC-L-TM{`Ot^!=8(3%b@5B9aJ?(V8`0R$sm86{%!#|k zeUU2@cHo1n6d~-cZspb64*18qY*{5dgtk< zzaOpaH`^xV3NT)7lnn-pd*0cp`=oXb$}}S$or2}4;LuySMQ-|q3!kd>BIAJ_33|3E|Ag(>D^2w&(nBb?%d=F( z4g}0%dU20sm~tE5e&)`Yn#(HaSwn4o$4WKNC6+H`?8@Gx2(6~w3>cS(ZWa2ed58*7 zInia8c*Mj#g*r@ThT_xH<8;3Oc2!GusxA4%JhlH2rX(4irnQo74L77HaDc>mN`7Q@ zOs~i-H{PUqe5RXfJUr*jd^(F}`@}(gVklB}yZ)tu+^isx>r=yqz-D=3cMwTEF z>?p}YRr<>B&%amDz2&UCOArl_yv0%t$&|+&tNx4(jriR*V1%4CZE&~D+A$tAW$`mE z-AeR;iyniZbGF!lw{caPH~6ooSF?3D)(hq`JY+@7{~E7Y%(N&XXuhSQk;7v?OI}%8 zgCXXuVE-x?5I1LibZEMMEl7H8@uT_k^_d&w0&8k#@_&cre@p+0=@}XRr@=k@ze9UM z!hZ+%#uhsU2A|CbsBdXA>e!F^gk2uq5H+1t6O z{H-tu|MvicnSqt_-&XwF23vJM6?FAq)u+Yf0(B}}qGptpREj9**X*GTg1Wts2rxVT zko$3gbh*Y0F`EEdGOtWGv3*Sk^Wk8VVTt@c8eV;mJx# zna&!YDbBa=4(`*Liv+r=SDR0pSH4eMPwf^|q`~=?uP1?-$2opP_Ez0i3maChM%`-7 z)5Tmt$|n+n`_}ycmQbNNmhV_{L}UIYB(I{-&4%hMB)oEl!-_yf0{nMd+$g%>k@ylt z_5pH8sPukv#ms>GvXU}4;g;R(U4l>o_&C2U{q}+%$u6!kVpe4fYDQYEk8b$<}Nc#@!9~U!jn;7%i&w>bI;ZN0sw5<3eG& z>Us*)EC93Ax1t&8@c)M9vC zcrO^@&kF3p&tqcpRgwL)poQfj!K)ze`iV+6D8s|X^{U_oKI~khx^^mC()B+7K6&H)oOS5fE}6QTirLKasbqoT(c05S_-WJ) z)RJOte77Y{S(}Maf7Ed4M19>FH3>E<+w^KmI$3qRB9joUJyM}x;4wO+o*A|pEPL~( z#AuOL3z8gEn#N5XR8`Y?y;OK|vXl#W80nX!V*E*zSP_v2^W`1r9Y+#0&Ri~2O>Ud~ zeH!7LTp86sV1-;$um?=Nl&2Exz#-3jd+#2_ay@OjZp-NsdYe#LNvVbv6NdPZvT|ve z3URWCY>AnYbE$bLI#se%0aIBBFl{`)zU;URk1A!n;I<5)LevD*66+G7Em6bnhi^a_ z6Ps5%h%7P+LckPCR{l|*5L+mH;?o%SxkdQB7e$U`GY=;3Oc*IFB<#en1SMfr#NXq>s6AHd$vva81uGw-LcMGXgZH(gNAyO|Nbafu4G^a7 zCoLp3bx*xxy%>+y=O*nM-qF|x^&Bkml)a=L&}i4fp*1y}P#y9EvCb$TS>cxyCoCU- z*!zukCrndvY~yAA^lt@Sq!he5cW2Y=zJZB4gt2}=-*0B;989)^Oui4DpjL-%)`nf! zXaOnrBT6M0@}x(c7O?0hh_18^p(Y46ynk$R%M)C({0Q~;Z!o~~1^ESvfMV|Vsx$t3 zL`FMJBav#aEHwx_6$Gt209@j%t%2;ux$V&SXzR2Pjzeg$W@pZWF`N7@#j5kquN1Oi zXRa6rYE-G6Z3CXl0Mpcvv{tF%45&zrdq_f%5;7yS>G*3N7r3Lk+MTP^5lbffvKyfR zO%LX9qhL)vkncNvn(yDXL>RXOUIb9I&JLe-^3Aq!o)>CWN$>mA&9Bw3$qPNeioiti z{8BVF9)-fVN6Cr?!aXI#9K;DBxR{_Kxpvv4`dYZ(2bmZgDa?f>KJzDcZfQ-<0Z(-7 zDBJfdxnSH-ii86{&dDi<%oX6hVJ~F9<06AGV=F_YXLDYojtD=X(JZc8-d_P6aPYPW zR{fvy5M;Op9G(=}__YCGpO})O6xe23&*%+V96qEdEmgx*sJ)^s_*mIJ!5vO@rYksHcAsR}CTa+% zV&aGuGuRcz@|*t9EudOV3nJ3(Aa0mGM`V+!W1N4Y&&!G7S%k6Wyx=Z4QanPpcz&Mq zlG#(6$>361xmSH@Y_O%+$w_K<(eHZpEksPJrnA`HbX|R{iytd&WCU?eV?`d`{Xe>8M z;8i}b&1Un$@GL^ma}(FOOPD61vHJoVAQXmMwJ&)rtrhgkWco{^cIk!Kp(qZ?zFiKvqZQBf zWtF^0!Pqc~spm<3v|nMoLhdsq-SP*f!O0)OE52hcE^m+PwywfjAHOUP<5>15bUFY9 zKbymg#ysG&qm#o@ZMbh^*+3S?wn6XyoC-s?&8MV%21Fk_;PhnwGRJ(u;*nKY1^+qa zLP9xf7I&@tRd)H|bjdx5YW~X%lYHhPC|;In+}zqv{cfb4A{80T*nv1Z5TUTfIE*BV zY8T+3^ljj=8+SWu`-v|s#(w-gUsttsL)s{><|TK?T*TEu%)b=l>3Z})ACp&|rcd_H ze-lc*^*2HnmgnGEnDY%Zj^EL~M}7SkLO)pjJTw}yVi%{v%*#7TFx1glVZ#8s*TFHSQTckDx#J@8;o-n&Wt zf(6{s4uOmND!CF#vVj^h0~-0xJjFK}`S*q5f_bKyP#xgVZ?~UFNIf!xc^ocsd%-Yc z`og7y`)I*Yp1#)cQDtD4xlh6CwA$9q;c!eTC0Zu++cCO$r1Jx5Tzv0)rx9LX7~}h# z*zmTzg?lwL?LkMdY!>_^`RQU@^5ogGk{YxCQ$e#Q=Bd92&0{^4~ODM9M& zqvHV0;OWnzkA3`+pno9axn}3{dl-vO2Y=R zauC7-kTe#UVXzZHzpTugcpmy zgXB@4IyK{cVu?ek`N(%Na6_NtY^@PcmnwO7zDiv29j#~oH%&P53r+puc9#IbSzx!d z*dp=?!l1J|-$~%}-TW6Ggw2`YOZSAVEe)vHgELR z9Ac=$FHpVUD5U>@Etvj+E&jVr3RdQS>{0v!$M^s@?e-XuL$2=7x8O)U6ZS~m=GCAh z^kK@1Hv6j|*#^OIVKPT08}}|&9*L?{>Y~8+jLmqC;rHRYyKD!_${*3mo-(_Xm0gQ- z9X=CR`V4AIBQIszH<2lod>Vfm*%wnaFV^pRcWIo}cQuSz>t=F^`Yc}*;^0evr0u=d z?#B9t@atvgux}4My^HwWN&}OZ?DnRTr;;v1b zE~H1TcwlHhLrvQTc;)y)|lGvrB?NzD)9U7I#f%87`{d}^wntM7U@hRy+W zNXybZ;tAR*Qd*sM5+M{eJ^y1p|}Mdq=Rhuk9Rc1OJGCfP?^w+?}2A-qFEDh;OkZP)7ejE&D&z{{O+w zER5{`K=A*@&P5tOHPBan)m#>rn^4E+U#|gF0r{;vsEUper6?jQ0uF|XbHD6zn@)y{ zi-rbE3~m89vf1=M$$rv-q*!e9wxR|RMs|pa#|RFIpzUYFpzc#T{Z4a-mCz%jXTBTh zT~T@HI?nW(zN*B+KRgsYacSQV0tY~x4~>FYrT?2%+S;(sGzc1!SGG|E>WiI zVpU2|B;~2fR@$dW8inqjC+v4AAEpE}^!0yyQWJlu)W`0I5Pu1=hC}e(q*RkXDK$84 z{EYnk^_l%y_jy8q$F{7faNc-y)CSC6>jDOV>0#&IFa1zVkjfuBR6=b)JI5^9RI0q6 z9JwlhtBj&)?guRyGPz8-7`?(MlVO``;sgf2gCPd2RD#Li7;>ZfQ~VzewJmlSHj(oPdcY2qB$b^uA0yG3EF)!$P} zjA&J4+=h%A4$|X`XHDqOqhyxxhE#P7#u!btfq2T@OKKbPlC|2pYK!F>jM}hOZEisB zmggtTbcIYMi>Bjsnn>yyEABeoOHCDn`iz7nD|gO#7Y%N~H_G(E?Vx~r zKNHSzv1q7fJ8g2Sl9tn?c_4Lw3U-%q#N2%<~TprMsUDsQNW!zq3Mcp*aAz?v`AxMgMyg%H<>xfg0w-!_Yf zcB^p_0-g7TzDXOrr0>8_}L>vSR6qGDxB6|Q7KQzhn7 zn({!dvNz3|1+TM@2M|xqZQ*TsegS?7{y~4rF#b7}#$Vogz!)tt+oJC-b?r~CF`fh; zaIZJ7s2^M(szE7+>3y~u<{p0zAFT>W{yeZS1f}v$qNy1ytg^3_BO2mY;y-$Pjd728 zr96@3a1d0?5aoz%x4dKbDEaC8HGC=hA(`(kJH3G&_`8GJ@gp4{(S!*s!F;xVhYngH z>d*aQ3xobhj<~+5Ou8G4FWHW^`9gzC%Y<#CjtRgqPsfTT13H;0=K)2$Pk8zMgBx=1-e0GyXz2r6M@~Ij>{OwH8IK8LLz5?e2F5Xj+SrU0!i-El zL}O+5#$JsfrvGjP?Igl+K}O;e)b|HJoDKOSaFo-GZJ6)C|8agTi&~TY)p~muHOw9H zL`*8bb0_05crBl|A7|dDPIfCUz$508t7JnktCEW|-@rB36eT`R0%ZL;rMCmk8$sh#F6#-GV>Wf<3JN5JLF`v7W zX#$@`8$jL@mf*Qj-$Q=a3n;{BbwiTG;+YW%V>}e4O}o^W&|-=xr1kT!z`1m431#ik z-k&nQ;tPg2AVv7Vsn<_7WY)=*Bo($A)lKh#-X=1JoQPSX>DnZd??MlByvaGeU`sQ2 zd7xlLY0-AG7!j={omogaDCM=BN7E%MyTeYENI$7~_BUH+jyuf$5W`i`-NRj^7wWA5 z1WEjW8&Lm=%^Ierm1fScu|0dM6l~?ly=BeXITxt(r(eijY2B(1nWCWPg6Dlnm&7F; zoPS=DIEUn&Vz>DlN$RO^8VuUh$q5tAfCJ~D=&3F3ync{E&}$(;`Py6hz3-w8A+L4U zthJtPVymBa^@b-Y6cOHLA-|PdSc$h|RK*o*s!aEH=^{)yp$H25m{P@@8RTQLGq?Z( zczpWu)5mvr`_Rc-m7Z^QjYrby;LIeW^C-1IGM)hhuLnaJ6mJKN)i=S604OZ%7j*-< zi0i|ltP;dA``?z`T*q0o(*t|!NZVRXl8~XURWv^K6)5?d@de){t`dx~%!Z`jLT9~V zmww@+;XbC1jJ=$HKbv$nk1SOFaztVJk}?rKM~kTWJn$mg?5sF#IE{?zc%;*B7nU>o z>hvBB$j z$3!U}`rXLnWoYJN$0y|wiBv6{c^lc;A7x&dDi(cWHlb=;N7+@VQ<2|O;{IT@k7}-c zp46(f&4X(%dy^DRRMZzcQq1fLqk$4wtrR+M);<@eH&Q<9qwXfL=Y7b@*#hLbu1|dy z-`vBg1h3IhJ2QBjERRcYTWIyw$ZRe1CuB6Q(nJ8h*f0slac91BBy}4?N~_@AGb|R; zn}WYdN4pu~xbtWL9|=d;@o7FUC6VM9Rl8erE!i+uz1K}#D;4+R$lH_tx$j~~OCfW2%q~mFG#JAAgj6T4q zT+@qJKkzi4qE;IJ=IMKwr;ZrKkY~D5gX(E`w62Z8Qc5lq4sl9|kjZi~9FJEYt(No~ z1Fu)F8$4l9*7;z|$v_+4Zd3ArGs4wV<6*Mq5l^$LT8YY6h+bdketjZ;smm~~GP{>& z$G{pFzDVownZ!&i_4ng$P4hce|J;FxRB+zSQ61UIeU7;b5-QY)=H3*O-wxxAxYx@J zt4FG{sW{?tBUI{Bb;?ajrAV9;P^XrEk-}3YmyTd0~5DE&Aq24 zIKCCCXPLDV`Ln_Gi;F-_x_$OBXzg0Men$9X#VL)5{ycGZXktcEvS{#xAEfW%lk? z(x_TKAKZH%-b54IOExB`)YB&0=nV{aN+qgU6hI>XDosCc_n7CUljqVrWif;i@HKxk zaiK8xMzrX6yCv;S;!5v}B@F37%6+rJqtVsAP6_`KJcv*3j)%daix_Hd2h#Ebl=pju z7A!6yJZMM{f(MwkpO0fLlpPXJQk=y$eWz0U-H{KfOJPwBaT2aE_q&U&2qdC=ybOXk zj;n}yoVQaU+$l%c&PN!s@^b4ctdis5#S3y9O@1U!CeD=0?@3e0`^%e4{VgzDa5ddF z`lrbFa9`cpp*;cJX@7_ygBZ+oo<)^L9=WsLL_g;0o03t@1(D!slv-MYV)N$Z8p~lZ zfzaE&nm=(SdLoXn($p^;3_r9woR)t1{qjo|v|Q2Xw#uiS`bAcJbk#v5Ok2%bFH#u? zA+-lwE}ZW}B4UuGEs;d7_sEwpXN@F71zX@bWPw6UD3v)Idq-))3=Eb;cE;LZ$xEd) zxmLlh?Aj!`j35m?ni%`WDw71}b^yWa429_@j%jVbGb`8YE0(X$X`}M=%{!OvgBt4Q?)@DX3iGQ5k>{SD+dg$vU%)%-*v5Fdj=JT*AaT| zE93omdD@>9-Am$4*;A-+lV)3^>t;tW;vfMz0K8_v$*QS9V+6K?AU`K#AjYpQ>^lJr9e?b0h)l(x*Elz{`xYRkTB*QTD$3U;hQM}5Yuu|<1 zqNfy-;bR6WP6XN)6063Nckda;ZUhl=mc(ER!$Ms%&K9s$5Wq1>Gc@7v-@l|_>%dnz zjahFa9i{)PMF<_iZ%AorveIL2;VmWwaBW7#c1g`om|c^NLXg2{Y;${%)r84u29EE1 z{Wxica!fq%G>Z_8f)uWJwCCW7AI*Gk;f|~`z;_PU?VZHM4G!rC_o;aL=ac5=4vz4C zt)et!!}|y8DOCV^g2%53nm%r&5%XHa&RQcF4^dc_bJaWWd7M%Qg=vD#$2GMGX#3)5 z916MY?u%=0PO|hL+FrJo_~-jG$Olh-i(ulrf~0{4kEoi%7>cbfR5wMdW0b}ta(uoo zw-E~|wW)|Jq2Bz^-oc_qv1)Gw20_YKNeYh->;*j#A>GWJ(fzZP|@a~OJ(R_1Y{e98Bos&iBhxt=$v2t0|9x@ zZXZkBdpGUx(fCdSEBA+u30_cBci}5?p*=`_2zPr)Nq2jmh5Du5sjH4qEBm4=8wFbG`#QkuP8eVaQRp9pCTu`<3MU3 zd{I9o$JbfaoA)2mPTSqhf@C(?`{oGb5n^(0Ee5$%uMf~g6jF1aD_8_7^;)$02z3?e zHD(gKR+!iX46lJV^uC|hb`H|5*GL_d0eAl)bHVYC%*B6~nPdCQMfl(B;eTZ2T!Fe# zdkpBIS8vqySb@%SjJABI@Jh4ggy*qAWFO0qQ|ggMNL=N>UD#8YLX_wbOH()+&-91YWqTIB>kd{(FzO{Nc zGW!?Rq=<%2MK&$BC-E)*JESMAq*Z6|JkcT-?c)$TC+Fq9$@CJ+w5kjJ?-m805z3id z+5T*X&s5LIRKCYC^ejyw6c{wF=tJ3i0E>%=Dc+%Zv^W763dlTI@#JTSK|$yEZ?poa zji6l~M(B;-M04T6P4ULD!KwsiiE~39VrR4RIt2JbFNtqV0Gx>qgS+ziu;Q{X;&`k8 zE2rlqhrv0)d@ymSHTO{gOR5K|0FAK=dhsii5_Y za-cc@dlUQ%z+=Jj0Dn_{6age4OE4-kg48NwvxXO{;%A0*12#sm1U9fj@?wIi2xz&V zM=$L+4oDvxd!Ik*p}`?0E27?T2WR69zefkWIy*+jT;uNi8oBry$;NCcu9H3`fa!^` zLy|7w-%4mN-=zGyL7Kh(#`csz%nY0?9MlX<!;otMWOrjxF zGj($QtD5k?Z2Mmp5z1J)nG*iX2ujMo>*`-``7grHKl6zH;@l9@%NtoKyVw%a%Mmg% z{fmF& zXJ{;+nH;@xOULzoRnxx0_ACNifH67G&fdB#&#u-Kj$|nk0pMg&B&a9wh#E_3Q~3~I zNKi-VBP~$&GkKi%qfJ~>^}=RH_lsAkkBq43*sG;QPFTfWDK?zn)?1I|&jv?I+GV^w zu(Xs?#m448U|E6bf7V>0~x(?%Q|XT&B`gd1+bIhM(Z>mE(d zcop8pN)!dUPDaD(5cJ%DG_nEG&FcX1`;Km6n9o=nG5K}T&`+nn#EMi4iW5>hm()!> z(=NzdiDl2$G@1EmN#;(IqF@82bHpMvZ@JqiH+|`WZXc)njl+fwxs``<>*bGEW!JDQ zdIEYnzK_q}g<1za6;pGhGgnv`;xy$yqreho7ku$zqYJAb+-A!nivfP*Qv$JWAqoN0BtJ}Swpdh4&a({OW9GYsV(jc=lI8EC8&QWhSNag ze!9WWO>fO*i44gM{k?BSk2bsS?bkiAbFSlMKMtw=HzpL2qUrm<1 zC+tg~JF^d2oqfCZ-$OyF)S|pc#B(*Iiq!T`Qi9d~c{{rZv0=OkF;d=@MnR-xxn$YR z3M!xik5Cw-W+hk_Lx4XJ-$27_ucanb(W3eRc{rQR#OJ_ZUrHw|)2G0BH$T7oy-2C3 zDHCsGVzS8A)OL3_zXy*tb{!?76jXX2=u<{BYNZ}5ONB!}%#-7}p@TF1w>C~&%!V9F z6&y7RJqS!JJtq3x**`f{i}(~QKd4wbfkHWe_h_C4=3APt7M>jYyWKL29<&lS`kLv1 z6j$l@_U;kB%ORwPXvz%Q{h%GikRa=$j*`cbYb4)Jijn`|%Ko`8_FwB=L&?;PkY3Wx z#MFaO`|rP*iJ4HBkY3r+^RKsHCZt#Y+sH`B^!NJPs$_5P^4Ev_l~VfGBYzS7|MHFh zs)+oR;}K&L6JcgxViaLuV__CzXAom!VPIqs6=Y%+Vdh|AWa0ati2T*_-^B$SjQbVVGUx0HLeB4tp(v2N;*XHh7b%*y>3?1thqnX z*C^W+-48gTZdv~h7YP?huJyFRjSIAD+