summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ecv
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ecv
Initial commit
Diffstat (limited to 'macros/latex/contrib/ecv')
-rw-r--r--macros/latex/contrib/ecv/COPYING11
-rw-r--r--macros/latex/contrib/ecv/README77
-rw-r--r--macros/latex/contrib/ecv/docstrip.cfg13
-rw-r--r--macros/latex/contrib/ecv/ecv.dtx1344
-rw-r--r--macros/latex/contrib/ecv/ecv.ins40
-rw-r--r--macros/latex/contrib/ecv/ecv.pdfbin0 -> 116411 bytes
-rw-r--r--macros/latex/contrib/ecv/template/CV-template_de.pdfbin0 -> 119460 bytes
-rw-r--r--macros/latex/contrib/ecv/template/CV-template_de.tex190
-rw-r--r--macros/latex/contrib/ecv/template/CV-template_en.pdfbin0 -> 116961 bytes
-rw-r--r--macros/latex/contrib/ecv/template/CV-template_en.tex187
-rw-r--r--macros/latex/contrib/ecv/template/Makefile108
-rw-r--r--macros/latex/contrib/ecv/template/portrait.eps628
12 files changed, 2598 insertions, 0 deletions
diff --git a/macros/latex/contrib/ecv/COPYING b/macros/latex/contrib/ecv/COPYING
new file mode 100644
index 0000000000..8dc18bb617
--- /dev/null
+++ b/macros/latex/contrib/ecv/COPYING
@@ -0,0 +1,11 @@
+Copyright 2006-2011 Christoph P. Neumann, Bernd Haberstumpf
+
+This software is free property; as a special exception the author
+gives unlimited permission to copy and/or distribute it, with
+or without modifications, as long as this notice is
+preserved.
+
+This software is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY, to the extent permitted by law;
+without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/macros/latex/contrib/ecv/README b/macros/latex/contrib/ecv/README
new file mode 100644
index 0000000000..6125502e8a
--- /dev/null
+++ b/macros/latex/contrib/ecv/README
@@ -0,0 +1,77 @@
+ -----------------------------
+ Version 0.3 of the ecv class
+ C.P. Neumann, B. Haberstumpf
+ -----------------------------
+
+This LaTeX provides a simple environment for laying out a
+fancy curriculum vitae with LaTeX. The class is intended
+to be self-contained so it should not be necessary to fiddle
+around with thousand other packages to get a nicely
+formatted CV.
+
+As this class is created mainly for ourselves it does not
+contain evil low-level TeX magic but instead uses many other
+fancy LaTeX packages that we hope you have already installed.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+Required Packages
+-----------------
+
+In detail the following packages are loaded by the ecv class:
+
+ ifthen
+ geometry
+ longtable
+ pgf
+ paralist
+ helvet
+ color
+ fancyhdr
+ inputenc or selinput
+ fontenc
+ ae
+ aecompl
+ aeguill
+ textcomp
+ url
+ hyperref
+ hyperref
+ babel
+
+These packages can be obtained of course from http://www.ctan.org/.
+
+
+Installation
+------------
+
+After unzipping the package call:
+
+ $ latex ecv.ins
+
+This will be extract some files (ecv.cls, ecvNLS.sty...). Create a
+directory beneath your TeX installation preferably create
+
+ tex/latex/ecv
+
+and copy all files of the package and the extracted files to that directory.
+
+Call:
+
+ mktexlsr
+
+Templates
+---------
+
+In template.zip document templates for a german and an english CV can be
+found. Just unzip the template.zip, cd to template and run make to get the
+pdf.
+
+/Bernd Haberstumpf, <poldi@kabatrinker.de>
+/Christoph P. Neumann, <c.p.neumann+ecv@gmail.com>
diff --git a/macros/latex/contrib/ecv/docstrip.cfg b/macros/latex/contrib/ecv/docstrip.cfg
new file mode 100644
index 0000000000..d657d2bb5a
--- /dev/null
+++ b/macros/latex/contrib/ecv/docstrip.cfg
@@ -0,0 +1,13 @@
+%
+% docstrip.cfg
+%
+% Sample configuration for the docstrip program for the ecv class
+%
+
+% BaseDirectory: To this directory the class will be installed
+%\BaseDirectory{/usr/share/texmf}
+\BaseDirectory{.}
+
+% Path mapping for the directories defined in the ins file
+%\DeclareDir{tex/latex/ecv}{tex/latex/ecv}
+\DeclareDir{tex/latex/ecv}{.}
diff --git a/macros/latex/contrib/ecv/ecv.dtx b/macros/latex/contrib/ecv/ecv.dtx
new file mode 100644
index 0000000000..cb3d1abc47
--- /dev/null
+++ b/macros/latex/contrib/ecv/ecv.dtx
@@ -0,0 +1,1344 @@
+%\iffalse
+% ecv.dtx generated using makedtx version 0.91b (c) Nicola Talbot
+% Command line args:
+% -macrocode ".*"
+% -src "(ecv.cls|ecvNLS.sty|ecvGerman.ldf|ecvEnglish.ldf)=>\1"
+% -author "Christoph P. Neumann & Bernd Haberstumpf"
+% -dir "src"
+% -usedir "tex/latex/ecv"
+% -setambles ".*=>\nopreamble"
+% -doc "doc/ecv.tex"
+% -silent "1"
+% ecv
+% Created on 2011/4/23 10:03
+%\fi
+%\iffalse
+%<*package>
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%</package>
+%\fi
+% \iffalse
+% Doc-Source file to use with LaTeX2e
+% Copyright (C) 2011 Christoph P. Neumann & Bernd Haberstumpf, all rights reserved.
+% \fi
+% \iffalse
+%<*driver>
+%%
+%% Copyright 2007-2011 Christoph P. Neumann, Bernd Haberstumpf
+%%
+%% This LaTeX class provides a simple interface for creating
+%% a verfy fancy Curriculum Vitae. At the moment only CVs in
+%% the german language are supported.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+
+\documentclass{ltxdoc}
+
+\CodelineNumbered
+\EnableCrossrefs
+%\DisableCrossrefs
+\CodelineIndex
+%\PageIndex
+\RecordChanges
+%\OnlyDescription
+\GetFileInfo{ecv.cls}
+
+\parskip1.0ex
+\parindent0.0ex
+
+\begin{document}
+\DocInput{ecv.dtx}
+\end{document}
+%</driver>
+%\fi
+%
+%\title{\textsf{ecv}\\
+%A fancy Curriculum Vitae Class}
+%\author{Christoph P.\ Neumann \texttt{$<$c.p.neumann@web.de$>$}, \\
+%Bernd Haberstumpf \texttt{$<$poldi@kabatrinker.de$>$}}
+%\maketitle
+%\PrintChanges
+%
+%\begin{abstract}
+%The \texttt{ecv}--class provides a convenient environment for creating
+%a fancy tabular currriculum vitae. The class is oriented at the europass
+%(see: \texttt{http://europass.cedefop.eu.int}).
+%\end{abstract}
+%
+%\section{Installation}
+%
+%The \texttt{zip} or \texttt{tar.gz} file comes with a \texttt{ecv.ins}
+%and a \texttt{ecv.dtx} file included which contains the \LaTeX\ stuff.
+%
+%To extract the class files call:
+%
+%\begin{verbatim}
+% $ latex ecv.ins
+%\end{verbatim}
+%
+%This call will extract all \LaTeX\ specific files to the current
+%directory. You can either use the files for a single
+%cv project or you can integrate the files into your \TeX\ installation.
+%
+%If you just want to use \textsf{ecv} for a single curriculum vitae
+%project, the simplest way is just to copy the generated files to the
+%folder of the project.
+%
+%If you want to integrate \textsf{ecv} into your \TeX\ installation,
+%create a directory \texttt{tex/latex/ecv} beneath your \TeX\ installation
+%(e.g.~beneath \texttt{/usr/share/texmf}) and copy all files from the
+%current directory there. Now call:
+%
+%\begin{verbatim}
+% $ mktexlsr
+%\end{verbatim}
+%
+%to update the file--cache of \LaTeX.
+%
+%Hint: The \textsf{ecv} distribution contains a sample docstrip configuration
+%in \texttt{docstrip.cfg} via which files can be distributed
+%automatically to their correct positions inside a \LaTeX\ installation.
+%Feel free to adapt this file to your environment and afterwards call
+%\texttt{latex ecv.ins} to install the package to its right place.
+%
+%\section{Linux and Windows}
+%
+%\textsf{Ecv} has been tested on Linux and also under Windows, using
+%MiXTeX and TeXnicCenter.
+%
+%\section{Templates}
+%
+%For a quick start the \textsf{ecv} distribution contains document
+%templates for a german and an english curriculum vitae. The templates
+%can be found in the \texttt{template.zip} file.
+%
+%The \texttt{template} directory contains the templates
+%
+%\begin{itemize}
+%\item \texttt{CV-template\_de.tex} for the german language
+%\item \texttt{CV-template\_en.tex} for the english language
+%\end{itemize}
+%
+%and a \texttt{Makefile} to build the pdf. Just call:
+%
+%\begin{verbatim}
+% $ make
+%\end{verbatim}
+%
+%to build the pdf. The file \texttt{porttrait.eps} contains a dummy
+%porttrait for the first page of the curriculum vitae.
+%
+%\section{Structure}
+%
+%The tex--file that contains the curriculum vitae will have roughly
+%the following structure:
+%
+%\begin{verbatim}
+%\% The languages english and german are supported
+%\documentclass[german]{ecv}
+%
+%\% Portrait to be used on the first page
+%\ecvPortrait{images/myPortrait}
+%
+%\% Name to be use for the footer line
+%\ecvName{My Name}
+%
+%\begin{document}
+%
+%\% Start the tabular that contains the cv (this will print title
+%\% and portrait)
+%\begin{ecv}
+%
+%\% Group entries with sections
+%\ecvSec{\ecvPerson}
+%
+%\% Entries in the tabular
+%\ecvEPR{Name} {\textsc{Name}, My}
+%\ecvEPR{Adresse}{Somewhere 13, Sometown}
+%\ecvEPR{Telefon}{(555) 555 / 555}
+%\ecvEPR{E-Mail} {\ecvHyperEMail{nobody@nowhere.com}}
+%\ecvEPR{Staatsangeh"origkeit}
+% {Deutsch}
+%\ecvEPR{Geburtsdatum}
+% {12.34.5678}
+%\end{ecv}
+%
+%\ecvSig{Name, My}{Sometown}
+%
+%\end{verbatim}
+%
+%The example shows that some information is provided before the document
+%start like the name for the footer line and the portrait. The actual
+%cv is then written in the |ecv| environment. A curriculum vitae can be finialized with
+%a signature where the issuer can sign by hand.
+%
+%\section{NLS support}
+%
+%As the example in the last chapter suggests curriculum vitaes can be
+%written in either german or english language. Actually a curriculum
+%vitae--tex--file can contain both a german version and an english version.
+%Most commands of the class accept an optional parameter which defines
+%to which language the command applies. If the language does not match
+%the language define in the \texttt{documentclass} the command is ignored.
+%
+%Example:
+%
+%\begin{verbatim}
+%\ecvERP[german]{Staatsangeh"origkeit}{Deutsch}
+%\ecvERP[english]{nationality}{german}
+%\end{verbatim}
+%
+%If the document is rendered with |\documentclass[german]{ecv}| the first
+%line is used, if the document is rendered with |\documentclass[english]{ecv}|
+%the second line is printed.
+%
+%The class also provides with its package |ecvNLS.sty| some macros for
+%nationalized text--fragments like |ecvPerson| which prints |Zur Person|
+%in the german version and |Personal Information| in the english version.
+%
+%\section{Documentclass}
+%
+%\DescribeMacro{documentclass ecv}
+%This package provides the documentclass \texttt{ecv}. The documentclass
+%supports the following options:
+%
+%
+%\begin{itemize}
+%\item |german| Select language german
+%\item |english| Select language english
+%\item |empty| Do not print footer or header
+%\item |selinput| Use \texttt{selinput} package instead of \texttt{inputenc} if
+% you encounter encoding problems and if you have \texttt{selinput} installed.
+%\end{itemize}
+%
+%\section{Header}
+%
+%Between the \texttt{documentclass} and the
+%\texttt{document}--environment two commands are supported:
+%
+%\DescribeMacro{ecvName}
+%\DescribeMacro{ecvPortrait}
+%\begin{itemize}
+%\item |\ecvName|\marg{name} Sets the name of the author of the cv.
+% The name is printed in the left--hand footer. If the name is not
+% set, the left hand footer (\texttt{Curriculum Vitae} or
+% \texttt{Lebenslauf}) is not printed.
+%\item |ecvPortrait|\marg{image--name} Sets the name of the image
+% that should be used as the portrait right to the title of the
+% curriculum vitae.
+% A file--extension of \texttt{jpg} is appended to the
+% \texttt{image-name}. The image is printed 40mm x 60mm. If the
+% |ecvPortrait| command does not exist no image is shown.
+%\end{itemize}
+%
+%\section{Footer}
+%
+%After the curriculum vitae a field for the signature can be added. This
+%package provides the following command for this purpose:
+%
+%\DescribeMacro{ecvSig}
+%\begin{itemize}
+%\item |\ecvSig|\marg{name}\marg{town} Creates a signature field beneath the
+% curriculum vitae.
+%\end{itemize}
+%
+%A signature looks the following way:
+%
+%\noindent
+%MyTown, \today \\[18pt]
+%
+%Name, My
+%
+%\section{ecv Environment}
+%
+%\DescribeEnv{ecv}
+%The |ecv| environment encloses the curriculum vitae. All entries of
+%the curriculum vitae must be inside an |ecv| environment. The |ecv|
+%environment prints a title (either |Lebenslauf| or |Curriculum Vitae|)
+%and the portrait (if one is defined) prior to the entries.
+%
+%\DescribeEnv{ecv*}
+%In addition to the |ecv| environment the |ecv*| envrionment is provided.
+%This environment works exactly like the |ecv| environment but ommits the
+%title and the pricture.
+%
+%\section{Entries}
+%
+%The curriculum vitae is composed of entries which are composed of a tag (left hand
+%side) and a value (right hand side). Both tag and value can come in
+%different flavours.
+%
+%For example you have different entries for a job:
+%``period of time'', ``branch of trade'', ``job title'' and ``job description''.
+%It is recommended to have the ``period of time'' entry with a special
+%preceeding symbol, like a blue triangle, and the other entries with
+%a common preceeding symbol, like a small bullet.
+%
+%Note that in this example several jobs would be listed
+%under a section ``jobs''. In the description below the term
+%group relies to a single job with its several entries.
+%
+%\DescribeMacro{\ecvTP}
+%\DescribeMacro{\ecvTF}
+%\DescribeMacro{\ecvTN}
+%Tags can be written with the following macros:
+%
+%\begin{itemize}
+%\item |\ecvTF|\oarg{lang}\marg{text} or |\ecvTagFirst|\oarg{lang}\marg{text}
+% A tag that starts a group of tags. The \texttt{text} is preceeded
+% by a small blue triangle.
+%\item |\ecvTN|\oarg{lang}\marg{text} or |\ecvTagNext|\oarg{lang}\marg{text}
+% A tag inside a group of tags. The \texttt{text} is preceeded
+% by a small circle.
+%\item |\ecvTP|\oarg{lang}\marg{text} or |\ecvTagPlain|\oarg{lang}\marg{text}
+% The most simple form of a tag. Just prints \texttt{text}, without a
+% preceeded symbol.
+%\end{itemize}
+%
+%
+%\DescribeMacro{\ecvVR}
+%\DescribeMacro{\ecvVB}
+%Values can be written as ragged right or as justified text with the following macros:
+%
+%\begin{itemize}
+%\item |\ecvVR|\oarg{lang}\marg{text} or |\ecvValueRagged|\oarg{lang}\marg{text}
+% A value with a ragged right.
+%\item |\ecvVB|\oarg{lang}\marg{text} or |\ecvValueBlocked|\oarg{lang}\marg{text}
+% A value with justified text.
+%\end{itemize}
+%
+%\bigskip
+%Tags and values are separated by a \&:
+%
+%\begin{verbatim}
+%\ecvTP{Name} & \ecvVR{Name, My}
+%\end{verbatim}
+%
+%\DescribeMacro{\ecvEPR}
+%\DescribeMacro{\ecvEPB}
+%\DescribeMacro{\ecvEFR}
+%\DescribeMacro{\ecvEFB}
+%\DescribeMacro{\ecvENR}
+%\DescribeMacro{\ecvENB}
+%Normally we want to write whole entries. We do not want to separate tags
+%and values. Therefore, a convenient form for writing whole entries are
+%the following macros which are in fact a combination of the tag and value
+%macros. The name of the macros is composed of |ecvE| followed by the flavour
+%of the tag followed by the flavour of the value:
+%
+%\begin{itemize}
+%\item |\ecvEPR|\oarg{lang}\marg{tag}\marg{value} writes a plain tag with
+% a value with a ragged right.
+%\item |\ecvEPB|\oarg{lang}\marg{tag}\marg{value} writes a plain tag with
+% a value with a blocked right.
+%\item |\ecvEFR|\oarg{lang}\marg{tag}\marg{value} writes a first tag with
+% a value with a ragged right.
+%\item |\ecvEFB|\oarg{lang}\marg{tag}\marg{value} writes a first tag with
+% a value with a blocked right.
+%\item |\ecvENR|\oarg{lang}\marg{tag}\marg{value} writes a next tag with
+% a value with a ragged right.
+%\item |\ecvENB|\oarg{lang}\marg{tag}\marg{value} writes a next tag with
+% a value with a blocked right.
+%\end{itemize}
+%
+%Of course also these macros have a long form
+%
+%\begin{quote}
+%|\ecvTagPlainValueRagged|\\
+%|\ecvTagPlainValueBlocked| \\
+%|\ecvTagFirstValueRagged|\\
+%|\ecvTagFirstValueBlocked| \\
+%|\ecvTagNextValueRagged|\\
+%|\ecvTagNextValueBlocked|\\
+%\end{quote}
+%
+%\DescribeMacro{\ecvOVR}
+%\DescribeMacro{\ecvOnlyValueRagged}
+%\DescribeMacro{\ecvOVB}
+%\DescribeMacro{\ecvOnlyValueBlocked}
+%Two special macros are provided to only print the value part:
+%
+%
+%\begin{itemize}
+%\item |\ecvOVR|\oarg{lang}\marg{text} or |\ecvOnlyValueRagged|\oarg{lang}\marg{text}
+% Print only the value with a ragged right.
+%\item |\ecvOVB|\oarg{lang}\marg{text} or |\ecvOnlyValueBlocked|\oarg{lang}\marg{text}
+% Print only the value with a blocked right.
+%\end{itemize}
+%
+%\section{Sections}
+%
+%Entries in the curriculum vitae can be grouped by sections and
+%subsections. Sections are printed with blue letters in the left column in
+%a slightly bigger font--face. Subsections are printed in capital letters.
+%
+%
+%\DescribeMacro{\ecvSec}
+%\DescribeMacro{\ecvSection}
+%\DescribeMacro{\ecvBSec}
+%\DescribeMacro{\ecvBreakSection}
+%The Section command comes in two flavours: with and without additional
+%vertical space (6pt) beforehand:
+%
+%
+%\begin{itemize}
+%\item |\ecvSec|\oarg{lang}{text} or |\ecvSection|\oarg{lang}{text}
+% Prints a section tag without additional vertical space beforehand.
+%\item |\ecvBSec|\oarg{lang}{text} or |\ecvBreakSection|\oarg{lang}{text}
+% Prints a section tag with additional vertical space beforehand.
+%\end{itemize}
+%
+%At the moment we did not to try any automatization of the vertical space
+%insertion, but have just experienced the necessity to add them.
+%Feel free to eleminate the need for the \texttt{ecvB} commands by
+%using fancy automization rules, and and don't forget to provide your
+%superior \LaTeX\ macro knowledge to us.
+%
+%\DescribeMacro{\ecvSub}
+%\DescribeMacro{\ecvBSub}
+%\DescribeMacro{\ecvERSub}
+%\DescribeMacro{\ecvBERSub}
+%\DescribeMacro{\ecvEBSub}
+%\DescribeMacro{\ecvBEBSub}
+%Subsections tags are printed like section tags in the first column
+%but in another font. In contrast to sections they can have a value
+%attached. Subsection commands therefore are provided in a version with
+%and a version without a value:
+%
+%\begin{itemize}
+%\item |\ecvSub|\oarg{lang}\marg{text} Standard subsection (without
+% additional vertical space).
+%\item |\ecvBSub|\oarg{lang}\marg{text} Subsection with additional
+% vertical space (smallskip).
+%\end{itemize}
+%\begin{itemize}
+%\item |\ecvERSub|\oarg{lang}\marg{text}\marg{value} Subsection with a
+% ragged right value (without additional vertical space).
+%\item |\ecvBERSub|\oarg{lang}\marg{text}\marg{value} Subsection with a
+% ragged right value and with additional vertical space.
+%\end{itemize}
+%\begin{itemize}
+%\item |\ecvEBSub|\oarg{lang}\marg{text}\marg{value} Subsection with a
+% blocked right value (without additional vertical space).
+%\item |\ecvBEBSub|\oarg{lang}\marg{text}\marg{value} Subsection with a
+% blocked right value and with additional vertical space.
+%\end{itemize}
+%
+%Also these command come with verbose forms:
+%
+%\begin{quote}
+%|\ecvSubSection|\\
+%|\ecvBreakSubSection|\\
+%|\ecvEntryRaggedSubSection|\\
+%|\ecvBreakEntryRaggedSubSection|\\
+%|\ecvEntryBlockedSubSection|\\
+%|\ecvBreakEntryBlockedSubSection|\\
+%\end{quote}
+%
+%\section{Layouting}
+%
+%The ecv class provides some command to tweak the layout of the cv.
+%
+%
+%\DescribeMacro{\ecvPageBreak}
+%\DescribeMacro{\ecvNewPage}
+%The following two commands can be used to control page--breaks:
+%
+%\begin{itemize}
+%\item |ecvPageBreak| Suggest a page--break.
+%\item |ecvNewPage| For a new page.
+%\end{itemize}
+%
+%\DescribeMacro{\ecvBreakParagraphs}
+%The |\ecvBreakParagraphs| command can be used to add vertical space
+%between entries.
+%
+%\DescribeMacro{\ecvNewLine}
+%The |\ecvNewLine| can be introduced to continue on a new--line.
+%
+%\DescribeMacro{\ecvNewPara}
+%The |\ecvNewPara| begins a new paragraph with addtional vertical space
+%(smallskip).
+%
+%\DescribeMacro{\ecvBold}
+%The command |\ecvBold|\marg{text} can be used to create bold written
+%text.
+%
+%\section{Hyperlinks}
+%
+%
+%\DescribeMacro{\ecvURL}
+%\DescribeMacro{\ecvEMail}
+%\DescribeMacro{\ecvHyperLink}
+%\DescribeMacro{\ecvHyperEMail}
+%The curriculum vitae class provides some commands to render hyperlinks:
+%
+%\begin{itemize}
+%\item |\ecvHyperLink|\marg{url} Format a clickable url.
+%\item |\ecvHyperEMail|\marg{email} Format a clickable email.
+%\end{itemize}
+%
+%The above commands are based on the following non-clickable
+%commands, which provide the formating and which can
+%be used likewise:
+%
+%\begin{itemize}
+%\item |\ecvURL|\marg{url} Format an unclickable url.
+%\item |\ecvEMail|\marg{email} Format an unclickable email.
+%\end{itemize}
+%
+%\section{Localized Strings}
+%
+%The following localized strings are provided for the german and english
+%languages:
+%
+%
+%\begin{itemize}
+%\item |\ecvPerson| Either |Zur Person| or |Personal Information|
+%\DescribeMacro{ecvPerson}
+%\item |\ecvProfession| Either |Beruf| or |Profession|
+%\DescribeMacro{ecvProfession}
+%\item |\ecvResearch| Either |Forschung| or |Research|
+%\DescribeMacro{ecvResearch}
+%\item |\ecvEducation| Either |Ausbildung| or |Scholarship|
+%\DescribeMacro{ecvEducation}
+%\item |\ecvPublications| Either |Publikationen| or |Publications|
+%\DescribeMacro{ecvPublications}
+%\item |\ecvAwards| Either |Auszeichungen| or |Awards|
+%\DescribeMacro{ecvAwards}
+%\item |\ecvScholarships| Either |Stipendien| or |Scholarships|
+%\DescribeMacro{ecvScholarships}
+%\item |\ecvJobs| Either |Arbeitserfahrung| or |Jobs|
+%\DescribeMacro{ecvJobs}
+%\item |\ecvLanguages| Either |Sprachen| or |Languages|
+%\DescribeMacro{ecvLanguages}
+%\item |\ecvLanguageTravels| Either |Sprachreisen| or |Language Travels|
+%\DescribeMacro{ecvLanguageTravels}
+%\item |\ecvAbilities| Either |F"ahigkeiten| or |Abilities|
+%\DescribeMacro{ecvAbilities}
+%\item |\ecvConferences| Either |Konferenzen| or |Conferences|
+%\DescribeMacro{ecvConferences}
+%\item |\ecvSpeeches| Either |Vortr"age| or |Speeches|
+%\DescribeMacro{ecvSpeeches}
+%\item |\ecvTraining| Either |Fortbildung| or |Trainig|
+%\DescribeMacro{ecvTrainig}
+%\item |\ecvAttachements| Either |Anh"ange| or |Attachements|
+%\DescribeMacro{ecvAttachements}
+%\end{itemize}
+%
+%\section{Requirements}
+%
+%We instrument several other \LaTeX\ packages for different purposes,
+%which must be available under your installation.
+%
+%\begin{itemize}
+%\item geometry
+%\item longtable
+%\item pgf
+%\item paralist
+%\item helvet
+%\item color
+%\item fancyhdr
+%\item inputenc
+%\item fontenc
+%\item ae
+%\item aecompl
+%\item aeguill
+%\item textcomp
+%\item url
+%\item hyperref
+%\item babel
+%\end{itemize}
+%
+%
+%
+%
+%\StopEventually{}
+%\section{The Code}
+%\iffalse
+% \begin{macrocode}
+%<*ecv.cls>
+% \end{macrocode}
+%\fi
+% \begin{macrocode}
+%%
+%% Copyright 2006-2011 Christoph P. Neumann, Bernd Haberstumpf
+%%
+%% This LaTeX class provides a simple interface for creating
+%% a verfy fancy Curriculum Vitae. At the moment only CVs in
+%% the german language are supported.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% SPECIAL THANKS to
+%% Alexander von Gernler, who introduced me to the European Curriculum Vitae
+%%
+
+% \changes{v0.1}{2007/01/06}{Initial version}
+% \changes{v0.2}{2009/08/25}{0.2}
+% \changes{v0.3}{2011/04/18}{0.3}
+
+\def\fileversion{0.3}
+\def\filedate{2011/04/18}
+
+\NeedsTeXFormat{LaTeX2e}
+
+%
+% Class definition
+%
+
+\ProvidesClass{ecv}[\filedate %
+ \space Version \fileversion\space by %
+ Christoph P.\ Neumann & Bernd Haberstumpf %
+]
+
+
+%
+% Option definition
+%
+
+\def\ecv@lang{german}
+\def\ecv@german{german}
+\def\ecv@english{english}
+\DeclareOption{german}{\def\ecv@lang{\ecv@german}}
+\DeclareOption{english}{\def\ecv@lang{\ecv@english}}
+\DeclareOption{oneside}{\PassOptionsToClass{oneside}{scrartcl}}
+\DeclareOption{twoside}{\PassOptionsToClass{twoside}{scrartcl}}
+\DeclareOption{selinput}{\def\ecv@selinput{1}}
+\DeclareOption{empty}{\def\ecv@empty{1}}
+\ProcessOptions
+
+%
+% Load base class
+%
+
+
+
+\LoadClass[a4paper,11pt]{article}
+
+% define command to check for pdf
+\RequirePackage{ifpdf}
+
+\ifpdf
+ \pdfcompresslevel=9 % compression level fortext and image;
+\fi
+
+%
+% Load packages
+%
+
+% NLS
+\RequirePackage[\ecv@lang]{ecvNLS}
+
+
+% Provides an ifthenelse command
+\RequirePackage{ifthen}
+
+
+% Pagelayout
+\ifpdf
+ \RequirePackage[a4paper, pdftex]{geometry}
+\else
+ \RequirePackage[a4paper, dvips ]{geometry}
+\fi
+
+
+% For the table that makes the text spanning multiple pages
+\RequirePackage{longtable}
+
+% Grafix package for the portrait
+\RequirePackage{pgf}
+
+% compact listings/enumerate environments
+\RequirePackage{paralist}
+
+% Font
+\RequirePackage{helvet}
+
+% Colors for the sections
+\RequirePackage{xcolor}
+
+% Needed for the footline to redefine the footline
+\RequirePackage{fancyhdr}
+
+\ifx\ecv@empty\undefined
+% Inputencoding (latin1 with euro sign)
+\RequirePackage[latin9]{inputenc} % = latin1, but also with euro sign
+% Better variant than inputenc:
+\else
+ \RequirePackage{selinput}
+% SelectInputMappings seems not to be necessary? ...
+% If it is used in the cls file it makes problems if used
+% in a Windows environment... ?!?
+%\SelectInputMappings{
+% adieresis={ä},
+% germandbls={ß},
+% Euro={€},
+%}
+\fi
+
+% Outputencoding
+\RequirePackage[T1]{fontenc}
+
+% Font tweaking
+%\RequirePackage{ae}
+%\RequirePackage{aecompl}
+%\RequirePackage{aeguill}
+% e.g. for \textcopyleft
+%\RequirePackage{textcomp}
+
+% Output of links
+\RequirePackage{url}
+\ifpdf
+ \RequirePackage[pdftex]{hyperref} %,pdfstartpage=9
+\else
+ \RequirePackage[dvips]{hyperref} %ALT: colorlinks
+\fi
+
+
+%
+% configuration (page setup, color setup etc.)
+%
+
+% page setup
+\geometry{left=30mm, right=20mm, top=20mm, bottom=15mm}
+
+% Footer
+\ifx\ecv@empty\undefined
+ \pagestyle{fancy}
+\else
+ \pagestyle{empty}
+\fi
+
+% Color setup (for the sections)
+\definecolor{ecv@ColBlue}{rgb}{0.04,0.44,0.59} % ANPA 732-0, but darker
+\definecolor{ecv@ColRed}{rgb}{0.921,0.282,0.278} % ANPA 723-0
+
+\ClassInfo{ecv}{used language is \ecv@lang}
+
+% This variable holds the name set with ecvName
+\newcommand{\ecv@name}{}
+
+% \begin{document} preamble
+\AtBeginDocument{%
+ \sffamily
+ \raggedbottom
+ \fancyhead{}
+ \fancyfoot{}
+ \renewcommand{\headrulewidth}{0pt}
+ \renewcommand{\footrulewidth}{0pt}
+ \fancyfoot[R]{
+ \begin{minipage}{5cm}\begin{flushright}
+ \footnotesize{}\textsf{\ecvPage~\thepage}
+ \end{flushright}\end{minipage}
+ }
+ \ifthenelse{\equal{\ecv@name}{}}{
+ ~
+ }{
+ \fancyfoot[L]{
+ \begin{minipage}{6cm}
+ \footnotesize{}\textsf{\ecvTitle~\ecv@name}
+ \end{minipage}
+ }
+ }
+}
+
+% Command to layout the portrait (must be 60mmx40mm)
+\newcommand\ecv@Portrait[1]{%
+ %% A frame as placeholder (with some 1mm inner padding):
+ \pgfrect[stroke]{\pgfxy(6.85,0.65)}{\pgfxy(4.3,-6.3)}
+ %% Actually a concrete digital image:
+ \pgfdeclareimage[interpolate=true,height=60mm,width=40mm]{portrait}{#1}
+ \pgfputat{\pgfxy(6.77,0.5)}{\pgfbox[left,top]{\pgfuseimage{portrait}}}
+}
+
+% This variable holds the name of the portrait image
+\newcommand\ecv@img{}
+
+% title with image
+\newcommand{\ecv@Title}{%
+ \ifthenelse{\equal{\ecv@img}{}}{ %
+ \ecvLeft{\textsc{\LARGE{\ecvTitle}}%
+ \bigskip\bigskip\bigskip%
+ } & \tabularnewline %
+ }{ %
+ \ecvLeft{\textsc{\LARGE{\ecvTitle}}%
+ \bigskip\bigskip\bigskip%
+ } & \ecv@Portrait{\ecv@img} %
+ \tabularnewline %
+ } %
+}
+
+
+%
+% Define new commands
+%
+
+% Hyperlink commands
+\newcommand\ecvURL{\begingroup \urlstyle{sf}\Url}
+\newcommand\ecvEMail{\begingroup \urlstyle{sf}\Url}
+\ifpdf
+ \newcommand{\ecvHyperLink}[1]{%
+ \href{#1}{\ecvURL{#1}}%
+ }
+ \newcommand{\ecvHyperEMail}[1]{%
+ \href{mailto:#1}{\ecvEMail{#1}}%
+ }
+ \newcommand{\ecvHttp}[1]{%
+ \href{http://#1}{\ecvURL{#1}}%
+ }
+\else
+ \newcommand{\ecvHyperLink}[1]{%
+ \ecvURL{#1}%
+ }
+ \newcommand{\ecvHyperEMail}[1]{%
+ \ecvEMail{#1}%
+ }
+ \newcommand{\ecvHttp}[1]{%
+ \ecvURL{#1}%
+ }
+\fi
+\hypersetup{a4paper,pdfpagelayout={SinglePage},pdfstartview={Fit}}
+\hyperbaseurl{http://}
+
+
+% Name
+
+% Defines the name of the issuer for the footline
+\newcommand{\ecvName}[1]{\renewcommand{\ecv@name}{#1}}
+
+% Portrait
+
+% Defines the image (to be used before the \begin{ecv})
+% \ecvPortrait{file-name}
+\newcommand{\ecvPortrait}[1]{\renewcommand\ecv@img{#1}}
+
+
+% Environment for layouting the cv
+
+% Environment that prints title and portrait
+\newenvironment{ecv}{%
+ \begin{longtable}{p{.32\linewidth}|p{.68\linewidth}}
+ \ecv@Title
+}{%
+ \end{longtable}
+}
+% Environment that skips title and portrait
+\newenvironment{ecv*}{%
+ \begin{longtable}{p{.32\linewidth}|p{.68\linewidth}}
+}{%
+ \end{longtable}
+}
+
+% Vertical Spacing to be used in left column
+
+% begin new row: make an (optional) spacing before a section
+\newcommand{\ecvBreaksections}[0]{& \tabularnewline[6pt]}
+% begin new row: make a break before a subsection
+\newcommand{\ecvBreaksubsections}[0]{& \tabularnewline\smallskip}
+% begin new row: make a break inside a section (for subsub grouping of entries)
+\newcommand{\ecvBreakparagraphs}[0]{& \tabularnewline}
+
+% Vertical spacing to be used inside a column
+
+% start text on a new line
+\newcommand{\ecvNewLine}[0]{\\}
+% start a new paragraph
+\newcommand{\ecvNewPara}[0]{\smallskip}
+
+% Newpage
+
+% Force a page break
+\newcommand{\ecvNewPage}{
+ \newpage
+}
+% Suggest a page break
+\newcommand{\ecvPageBreak}{
+ \pagebreak
+}
+
+% emphasizings text
+\newcommand{\ecvBold}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \textbf{#2}%
+ }{}%
+}
+
+% bullets for the left column entries
+\newcommand{\ecvBulleted}[1]{$\circ$ #1}
+\newcommand{\ecvBulletedFirst}[1]{%
+ \textcolor{ecv@ColBlue}{$\triangleright$} #1%
+}
+
+% layout primitives for left and right column
+
+% primitve for the left column
+\newcommand{\ecvLeft}[1]{%
+ \parbox[t]{\linewidth}{\raggedright #1}%
+}
+% primitive for the right column (raggedright)
+\newcommand{\ecvRight}[1]{%
+ %\parbox[t]{\linewidth}{
+ {\raggedright #1}%
+ \tabularnewline%
+}
+% primitive for the right column (block)
+\newcommand{\ecvRightBlock}[1]{%
+ \parbox[t]{0.9\linewidth}{#1}%
+ \tabularnewline%
+}
+
+
+% left column commands
+
+% tag without bullet (simple left column entry)
+\newcommand{\ecvTP}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{#2}%
+ }{}%
+}
+\newcommand{\ecvTagPlain}[2][\ecv@lang]{\ecvTP[#1]{#2}}
+% tag with first line mark (triange bullet left column entry)
+\newcommand{\ecvTF}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvBreakparagraphs
+ \smallskip
+ \ecvLeft{\ecvBulletedFirst{#2}}%
+ }{}%
+}
+\newcommand{\ecvTagFirst}[2][\ecv@lang]{\ecvTF[#1]{#2}}
+% tag with first line mark (triange bullet left column entry)
+% but WITHOUT the line break!
+\newcommand{\ecvTI}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{\ecvBulletedFirst{#2}}%
+ }{}%
+}
+\newcommand{\ecvTagIntermediate}[2][\ecv@lang]{\ecvTI[#1]{#2}}
+% tag with first follow line mark (circle bullet left column entry)
+\newcommand{\ecvTN}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{\ecvBulleted{#2}}%
+ }{}%
+}
+\newcommand{\ecvTagNext}[2]{\ecvTN[#1]{#2}}
+
+
+% right column commands
+
+% value with raggedright layout
+\newcommand{\ecvVR}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvRight{#2}%
+ }{}%
+}
+\newcommand{\ecvValueRagged}[2][\ecv@lang]{\ecvVR[#1]{#2}}
+% value with block layout
+\newcommand{\ecvVB}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvRightBlock{#2}%
+ }{}%
+}
+\newcommand{\ecvValueBlocked}[2][\ecv@lang]{\ecvVB[#1]{#2}}
+
+
+% Compound commands tag+value
+
+% Plain tag with ragged value
+\newcommand{\ecvEPR}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTP[#1]{#2} & \ecvVR[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagPlainValueRagged}[3][\ecv@lang]{\ecvERP[#1]{#2}{#3}}
+% Plain tag with blocked value
+\newcommand{\ecvEPB}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTP[#1]{#2} & \ecvVB[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagPlainValueBlocked}[3][\ecv@lang]{\ecvERB[#1]{#2}{#3}}
+% bulleted first tag with ragged value
+\newcommand{\ecvEFR}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTF[#1]{#2} & \ecvVR[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagFirstValueRagged}[3][\ecv@lang]{\ecvEFR[#1]{#2}{#3}}
+% bulleted first tag with blocked value
+\newcommand{\ecvEFB}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTF[#1]{#2} & \ecvVB[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagFirstValueBlocked}[3][\ecv@lang]{\ecvEFB[#1]{#2}{#3}}
+% bulleted intermediate tag with ragged value
+\newcommand{\ecvEIR}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTI[#1]{#2} & \ecvVR[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagIntermediateValueRagged}[3][\ecv@lang]{\ecvEIR[#1]{#2}{#3}}
+% bulleted intermediate tag with blocked value
+\newcommand{\ecvEIB}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTI[#1]{#2} & \ecvVB[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagIntermediateValueBlocked}[3][\ecv@lang]{\ecvEIB[#1]{#2}{#3}}
+\newcommand{\ecvENR}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTN[#1]{#2} & \ecvVR[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagNextValueRagged}[3][\ecv@lang]{\ecvENR[#1]{#2}{#3}}
+% bulleted next tag with blocked value
+\newcommand{\ecvENB}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvTN[#1]{#2} & \ecvVB[#1]{#3} %
+ }{}%
+}
+\newcommand{\ecvTagNextValueBlocked}[3][\ecv@lang]{\ecvENB[#1]{#2}{#3}}
+% value only ragged
+\newcommand{\ecvOVR}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ & \ecvVR[#1]{#2} %
+ }{}%
+}
+\newcommand{\ecvOnlyValueRagged}[2][\ecv@lang]{\ecvOVR[#1]{#2}}
+\newcommand{\ecvOVB}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ & \ecvVB[#1]{#2} %
+ }{}%
+}
+\newcommand{\ecvOnlyValueBlocked}[2][\ecv@lang]{\ecvOVB[#1]{#2}}
+
+
+
+
+% Sections
+
+% section: \ecvSection{name}
+\newcommand{\ecvSec}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{\textsc{\Large{\textcolor{ecv@ColBlue}{#2}}} \bigskip } &%
+ \tabularnewline%
+ }{}%
+}
+\newcommand{\ecvSection}[2][\ecv@lang]{\ecvSec[#1]{#2}}
+% section with breaksection: \ecvBreakSection{name}
+\newcommand{\ecvBSec}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvBreaksections
+ \ecvLeft{\textsc{\Large{\textcolor{ecv@ColBlue}{#2}}} \bigskip } &%
+ \tabularnewline%
+ }{}%
+}
+\newcommand{\ecvBreakSection}[2][\ecv@lang]{\ecvBSec[#1]{#2}}
+% sub-section: \ecvSubSection{name}
+\newcommand{\ecvSub}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{\textsc{\large{#2}}}%
+ & \tabularnewline%
+ }{}%
+}
+\newcommand{\ecvSubSection}[2][\ecv@lang]{\ecvSub[#1]{#2}}
+\newcommand{\ecvBSub}[2][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvBreaksubsections
+ \ecvLeft{\textsc{\large{#2}}}%
+ & \tabularnewline%
+ }{}%
+}
+\newcommand{\ecvBreakSubSection}[2][\ecv@lang]{\ecvBSub[#1]{#2}}
+% sub-section with a value
+\newcommand{\ecvERSub}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{\textsc{\large{#2}}} & \ecvRight{#3}%
+ }{}%
+}
+\newcommand{\ecvEntryRaggedSubSection}[3][\ecv@lang]{\ecvERSub[#1]{#2}{#3}}
+\newcommand{\ecvBERSub}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvBreaksubsections
+ \ecvLeft{\textsc{\large{#2}}} & \ecvRight{#3}%
+ }{}%
+}
+\newcommand{\ecvBreakEntryRaggedSubSection}[3][\ecv@lang]{\ecvBERSub[#1]{#2}{#3}}
+% sub-section with a value
+\newcommand{\ecvEBSub}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvLeft{\textsc{\large{#2}}} & \ecvRightBlock{#3}%
+ }{}%
+}
+\newcommand{\ecvEntryBlockedSubSection}[3][\ecv@lang]{\ecvEBSub[#1]{#2}{#3}}
+\newcommand{\ecvBEBSub}[3][\ecv@lang]{%
+ \ifthenelse{\equal{#1}{\ecv@lang}}{%
+ \ecvBreaksubsections
+ \ecvLeft{\textsc{\large{#2}}} & \ecvRightBlock{#3}%
+ }{}%
+}
+\newcommand{\ecvBreakEntryBlockedSubSection}[3][\ecv@lang]{\ecvBEBSub[#1]{#2}{#3}}
+
+
+
+
+% Signature
+
+% \ecvSignature{name}{town}
+\newcommand{\ecvSig}[2]{ %
+ \vspace{1cm}
+ \noindent
+ #2, \today \\[18pt]
+
+ #1
+}
+\newcommand{\ecvSignature}[2]{\ecvSig{#1}{#2}}
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</ecv.cls>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*ecvEnglish.ldf>
+% \end{macrocode}
+%\fi
+% \begin{macrocode}
+%%
+%% Copyright 2006-2011 Christoph P. Neumann, Bernd Haberstumpf
+%%
+%% This a language definition file for the ecv class.
+%% THe file defines some NLS strings.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% SPECIAL THANKS to
+%% Alexander von Gernler, who introduced me to the European Curriculum Vitae
+%%
+
+\def\fileversion{0.3}
+\def\filedate{2011/04/18}
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesFile{ecvEnglish.ldf}[2007/01/05]
+
+\def\ecvNLS@Page{Page}
+\def\ecvNLS@Title{Curriculum Vitae}
+\def\ecvNLS@Person{Personal Information}
+\def\ecvNLS@Profession{Profession}
+\def\ecvNLS@Education{Education}
+\def\ecvNLS@Research{Research}
+\def\ecvNLS@Awards{Awards}
+\def\ecvNLS@Publications{Publications}
+\def\ecvNLS@Scholarships{Scholarships}
+\def\ecvNLS@Jobs{Jobs}
+\def\ecvNLS@Languages{Languages}
+\def\ecvNLS@LanguageTravels{Language Travels}
+\def\ecvNLS@Abilities{Abilities}
+\def\ecvNLS@Conferences{Conferences}
+\def\ecvNLS@Speeches{Speeches}
+\def\ecvNLS@Trainig{Training}
+\def\ecvNLS@Attachements{Attachements}
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</ecvEnglish.ldf>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*ecvGerman.ldf>
+% \end{macrocode}
+%\fi
+% \begin{macrocode}
+%%
+%% Copyright 2006-2011 Christoph P. Neumann, Bernd Haberstumpf
+%%
+%% This a language definition file for the ecv class.
+%% THe file defines some NLS strings.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% SPECIAL THANKS to
+%% Alexander von Gernler, who introduced me to the European Curriculum Vitae
+%%
+
+
+\def\fileversion{0.3}
+\def\filedate{2011/04/18}
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesFile{ecvGerman.ldf}[2007/01/05]
+
+\def\ecvNLS@Page{Seite}
+\def\ecvNLS@Title{Lebenslauf}
+\def\ecvNLS@Person{Zur Person}
+\def\ecvNLS@Profession{Beruf}
+\def\ecvNLS@Education{Bildung}
+\def\ecvNLS@Research{Forschung}
+\def\ecvNLS@Awards{Auszeichnungen}
+\def\ecvNLS@Publications{Publikationen}
+\def\ecvNLS@Scholarships{Stipendien}
+\def\ecvNLS@Jobs{Arbeitserfahrung}
+\def\ecvNLS@Languages{Sprachen}
+\def\ecvNLS@LanguageTravels{Sprachreisen}
+\def\ecvNLS@Abilities{F\"ahigkeiten}
+\def\ecvNLS@Conferences{Konferenzen}
+\def\ecvNLS@Speeches{Vortr\"age}
+\def\ecvNLS@Trainig{Fortbildung}
+\def\ecvNLS@Attachements{Anlagen}
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</ecvGerman.ldf>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*ecvNLS.sty>
+% \end{macrocode}
+%\fi
+% \begin{macrocode}
+%%
+%% Copyright 2006-2007 Christoph Neumann, Bernd Haberstumpf
+%%
+%% This LaTeX package provides NLS support for the ecv class.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% SPECIAL THANKS to
+%% Alexander von Gernler, who introduced me to the European Curriculum Vitae
+%%
+
+\def\fileversion{0.1}
+\def\filedate{2007/01/05}
+
+\NeedsTeXFormat{LaTeX2e}
+
+%
+% Package definition
+%
+
+\ProvidesPackage{ecvNLS}[\filedate %
+ \space Version \fileversion\space by %
+ Christoph Neumann & Bernd Haberstumpf %
+]
+
+%
+% Option definition
+%
+
+\def\ecvNLS@lang{german}
+\def\ecvNLS@german{1}
+\def\ecvNLS@english{2}
+\DeclareOption{german}{\def\ecvNLS@lang{\ecvNLS@german}\input{ecvGerman.ldf}}
+\DeclareOption{english}{\def\ecvNLS@lang{\ecvNLS@english}\input{ecvEnglish.ldf}}
+\ProcessOptions
+
+
+%
+% Load packages
+%
+
+% \selectlanguage{ngerman} will be called after \begin{document}
+\RequirePackage[ngerman,english]{babel}
+
+
+% \begin{document} preamble
+\AtBeginDocument{%
+ \ifnum\ecvNLS@lang =\ecvNLS@german
+ \selectlanguage{ngerman}
+ \else
+ \selectlanguage{english}
+ \fi
+}
+
+
+%
+% Define NLS commands
+%
+
+\newcommand{\ecvPage}{\ecvNLS@Page}
+\newcommand{\ecvTitle}{\ecvNLS@Title}
+\newcommand{\ecvPerson}{\ecvNLS@Person}
+\newcommand{\ecvProfession}{\ecvNLS@Profession}
+\newcommand{\ecvEducation}{\ecvNLS@Education}
+\newcommand{\ecvResearch}{\ecvNLS@Research}
+\newcommand{\ecvAwards}{\ecvNLS@Awards}
+\newcommand{\ecvPublications}{\ecvNLS@Publications}
+\newcommand{\ecvScholarships}{\ecvNLS@Scholarships}
+\newcommand{\ecvJobs}{\ecvNLS@Jobs}
+\newcommand{\ecvLanguages}{\ecvNLS@Languages}
+\newcommand{\ecvLanguageTravels}{\ecvNLS@LanguageTravels}
+\newcommand{\ecvAbilities}{\ecvNLS@Abilities}
+\newcommand{\ecvConferences}{\ecvNLS@Conferences}
+\newcommand{\ecvSpeeches}{\ecvNLS@Speeches}
+\newcommand{\ecvTrainig}{\ecvNLS@Trainig}
+\newcommand{\ecvAttachements}{\ecvNLS@Attachements}
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</ecvNLS.sty>
+% \end{macrocode}
+%\fi
+%\Finale
+\endinput
diff --git a/macros/latex/contrib/ecv/ecv.ins b/macros/latex/contrib/ecv/ecv.ins
new file mode 100644
index 0000000000..f9cd22c15e
--- /dev/null
+++ b/macros/latex/contrib/ecv/ecv.ins
@@ -0,0 +1,40 @@
+% ecv.ins generated using makedtx version 0.91b 2011/4/23 10:03
+\input docstrip
+
+\preamble
+Copyright (C) 2011 Christoph P. Neumann & Bernd Haberstumpf, all rights reserved.
+If you modify this file, you must change its name first.
+You are NOT ALLOWED to distribute this file alone. You are NOT
+ALLOWED to take money for the distribution or use of either this
+file or a changed version, except for a nominal charge for copying
+etc.
+\endpreamble
+
+\askforoverwritefalse
+
+\keepsilent
+
+\usedir{tex/latex/ecv}
+
+\generate{\file{ecvEnglish.ldf}{\nopreamble\from{ecv.dtx}{ecvEnglish.ldf}}
+\file{ecv.cls}{\nopreamble\from{ecv.dtx}{ecv.cls}}
+\file{ecvGerman.ldf}{\nopreamble\from{ecv.dtx}{ecvGerman.ldf}}
+\file{ecvNLS.sty}{\nopreamble\from{ecv.dtx}{ecvNLS.sty}}
+}
+
+\obeyspaces
+\Msg{****************************************************}
+\Msg{* }
+\Msg{* To finish the installation you have to move all }
+\Msg{* extracted files into the directory: }
+\Msg{* }
+\Msg{* tex/latex/ecv }
+\Msg{* }
+\Msg{* beneath the TeX installation (usually }
+\Msg{* /usr/share/textmf). }
+\Msg{* }
+\Msg{* Happy TeXing! }
+\Msg{* }
+\Msg{****************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/ecv/ecv.pdf b/macros/latex/contrib/ecv/ecv.pdf
new file mode 100644
index 0000000000..528cfa3717
--- /dev/null
+++ b/macros/latex/contrib/ecv/ecv.pdf
Binary files differ
diff --git a/macros/latex/contrib/ecv/template/CV-template_de.pdf b/macros/latex/contrib/ecv/template/CV-template_de.pdf
new file mode 100644
index 0000000000..71ce319692
--- /dev/null
+++ b/macros/latex/contrib/ecv/template/CV-template_de.pdf
Binary files differ
diff --git a/macros/latex/contrib/ecv/template/CV-template_de.tex b/macros/latex/contrib/ecv/template/CV-template_de.tex
new file mode 100644
index 0000000000..170c30fafe
--- /dev/null
+++ b/macros/latex/contrib/ecv/template/CV-template_de.tex
@@ -0,0 +1,190 @@
+%%
+%% Copyright 2006-2011 Christoph P. Neumann, Bernd Haberstumpf
+%%
+%% This LaTeX file provides a template for a german CV.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+
+\documentclass[german]{ecv}
+
+% Dateiname: images/<portrait>.jpg
+\ecvPortrait{portrait}
+\ecvName{<Vorname(n), Nachname(n)>}
+
+\begin{document}
+
+\begin{ecv}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Person
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvSec{\hypertarget{hypertarget:\ecvPerson}{\ecvPerson}}
+
+\ecvEPR{Name} {\textsc{<Nachname(n)>}, <Vorname(n)>}
+\ecvEPR{Adresse}{<Stra"se>, <Hausnummer>,\ecvNewLine
+ D--<Postleitzahl>, <Ort>}
+\ecvEPR{Telefon}{(49) <Vorwahl> / <Telefonnummer>}
+\ecvEPR{Fax}{(49) <Vorwahl> / <Faxnummer>}
+\ecvEPR{E-Mail} {\ecvHyperEMail{<E-Mail>}}
+\ecvEPR{Staatsangeh"origkeit}
+ {deutsch}
+\ecvEPR{Geburtsdatum}
+ {<Geburtsdatum>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Profession
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvProfession}{\ecvProfession}}
+
+% Chronologisch beginnend mit den juengsten Beschaeftigungen
+\ecvEFR{Zeitraum}{<Jahr>--<Jahr>}
+\ecvENR{Arbeitgeber}
+ {\ecvBold{<Firmenname>}\\
+ <Stra"se> <Hausnummer>, <Postleitzahl> <Ort>, <Land>}
+%
+\ecvEFR{Projekt <von> bis <bis>}
+ {<Thema>}
+\ecvENR{Position}{<Stellung innerhalb der Firma>}
+\ecvENR{Wichtigste T"atigkeiten}
+ {<Liste von T"atigkeiten>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Education
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvEducation}{\ecvEducation}}
+
+% Universit"at
+\ecvEFR{Zeitraum}{<Jahr>--<Jahr>}
+\ecvENR{Erworbene Qualifikation}
+ {\ecvBold{<Titel>}}
+\ecvENR{Bildungseinrichting}
+ {<Name der Bildungseinrichtung>}
+\ecvENR{Hauptf"acher}
+ {<Liste der Hauptf"acher>}
+\ecvENR{Nebenf"acher}
+ {<Liste der Nebenfd"acher>}
+\ecvENR{Note} {Durchschnitt <Durchschnittsnote>}
+% Schule
+\ecvEFR{Zeitraum}{<Jahr>--<Jahr>}
+\ecvENR{Erworbene Qualifikation}
+ {<Title>}
+\ecvENR{Bildungseinrichting}
+ {<Name der Bildungseinrichtung>}
+\ecvENR{Abiturf"acher}
+ {<Liste der F"acher>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Research
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvResearch}{\ecvResearch}}
+
+\ecvEFB{Diplomarbeit}{"`<Titel der Diplomarbeit>"' --- <Institut>}
+\ecvEFB{Studienarbeit}{"`<Titel der Studienarbeit>"'
+ --- <Institut>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Publications
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvPublications}{\ecvPublications}}
+
+\ecvEFR{Publikation}{<Autorenliste>:
+ \emph{<Titel der Publikation>}
+ <Name der Zeitschrift>. <Verlag>,
+ <Ort>, <Erscheiningsdatum>}
+
+
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Jobs
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvJobs}{\ecvJobs}}
+
+\ecvEFR{Zeitraum}{<Jahr>--<Jahr>}
+\ecvENR{Arbeitgeber}
+ {\ecvBold{<Name der Firma>}, <Stadt>/<Land>}
+\ecvENR{Arbeitsverh"altnis}
+ {<Typ des Besch"aftigungsverh"altnisses>}
+\ecvENR{Wichtigste T"atigkeiten}
+ {<Aufgabe>
+ }
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Languages
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvLanguages}{\ecvLanguages}}
+
+\ecvERSub{Muttersprache}{\ecvBold{Deutsch}}
+
+\ecvEBSub{Sonstige Sprachen}
+ {<Sprache> -- Lesen: <Erfahrungsgrad>, Schreiben:
+ <Erfahrungsgrad>, Sprechen: <Erfahrungsgrad>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Language Travels
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSub{Sprachreisen}
+
+\ecvEFR{Zeitraum}{<Datum>--<Datum>}
+\ecvENR{Ort} {<Ort>/<Land>}
+\ecvENR{Veranstalter}
+ {<Veranstatlter>}
+\ecvENR{Zertifikat}
+ {<Name des erworbenen Zertifikats>}
+
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvPageBreak
+\ecvBSec{\hypertarget{hypertarget:\ecvAbilities}{\ecvAbilities}}
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities / social
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvEBSub{Soziale\ecvNewLine F"ahigkeiten}
+ {<Prosabeschreibungen zu den sozialen St"arken>
+ }
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities / organisational
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvEBSub{Organisatorische\ecvNewLine F"ahigkeiten}
+ {<Prosabeschreibungen zu Organisatorischen F"ahigkeiten
+ und wie sie erworben wurden>
+ }
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities / professional
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBEBSub{Fachliche Kompetenz}
+ {<Prosabeschreibung zu fachlichen Kompetenzen>}
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Hobbies
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBEBSub{Hobbies}
+ {<Liste der wichtigsten Hobbies und privaten Interessen>
+ }
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Attachments
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvAttachements}{\ecvAttachements}}
+
+\ecvOVR {<Liste der Anlagen>
+ }
+
+\end{ecv}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Signature
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvSig{<Nachname>, <Vorname>}{<Ort>}
+
+\end{document}
+\end
diff --git a/macros/latex/contrib/ecv/template/CV-template_en.pdf b/macros/latex/contrib/ecv/template/CV-template_en.pdf
new file mode 100644
index 0000000000..a3af771cc6
--- /dev/null
+++ b/macros/latex/contrib/ecv/template/CV-template_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/ecv/template/CV-template_en.tex b/macros/latex/contrib/ecv/template/CV-template_en.tex
new file mode 100644
index 0000000000..bdbf19fcfb
--- /dev/null
+++ b/macros/latex/contrib/ecv/template/CV-template_en.tex
@@ -0,0 +1,187 @@
+%%
+%% Copyright 2006-2011 Christoph P. Neumann, Bernd Haberstumpf
+%%
+%% This LaTeX file provides a template for a german CV.
+%%
+%% This file is free property; as a special exception the author
+%% gives unlimited permission to copy and/or distribute it, with
+%% or without modifications, as long as this notice is
+%% preserved.
+%%
+%% This file is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY, to the extent permitted by law;
+%% without even the implied warranty of MERCHANTABILITY or
+%% FITNESS FOR A PARTICULAR PURPOSE.
+%%
+
+\documentclass[english]{ecv}
+
+% Dateiname: images/<portrait>.jpg
+\ecvPortrait{portrait}
+\ecvName{<Surname(s), Name>}
+
+\begin{document}
+
+\begin{ecv}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Person
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvSec{\hypertarget{hypertarget:\ecvPerson}{\ecvPerson}}
+
+\ecvEPR{Name} {\textsc{<Name>}, <Surname(s)>}
+\ecvEPR{Addresse}{<House number> <Street>\ecvNewLine
+ <City>, <Postcode>, <Country>}
+\ecvEPR{Telephone}{<Area code>--<Telephone number>}
+\ecvEPR{Fax}{<Area code>--<Faxnumber>}
+\ecvEPR{E-Mail} {\ecvHyperEMail{<E-Mail>}}
+\ecvEPR{Nationality}
+ {<Nationality>}
+\ecvEPR{Date of birth}
+ {<Date of birth>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Profession
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvProfession}{\ecvProfession}}
+
+% Chronologisch beginnend mit den juengsten Beschaeftigungen
+\ecvEFR{Period}{<Year>--<Year>}
+\ecvENR{Employer}
+ {\ecvBold{<Company name>}\\
+ <House number><Street>, <City>, <Postcode>, <Country>}
+%
+\ecvEFR{Project <From> until <To>}
+ {<Topic>}
+\ecvENR{Position}{<Position held>}
+\ecvENR{Main responsibilities}
+ {<List of activities>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Education
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvEducation}{\ecvEducation}}
+
+% Universit"at
+\ecvEFR{Period}{<Year>--<Year>}
+\ecvENR{Accquired qualifications}
+ {\ecvBold{<Title>}}
+\ecvENR{Institute}
+ {<Name of educational institution>}
+\ecvENR{Principal subjects}
+ {<List of the major subjects>}
+\ecvENR{Minor subjects}
+ {<List of minor subjects>}
+\ecvENR{Grade} {Avarage grade <overall avarage grade>}
+% Schule
+\ecvEFR{Period}{<Year>--<Year>}
+\ecvENR{Accquired qualifications}
+ {<Title>}
+\ecvENR{Graduate school}
+ {<Name of the school>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Research
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvResearch}{\ecvResearch}}
+
+\ecvEFB{Diploma thesis}{"`<Title of the diploma thesis>"' --- <Institute>}
+\ecvEFB{Seminar paper}{"`<Title of the seminar paper>"'
+ --- <Institute>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Publications
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvPublications}{\ecvPublications}}
+
+\ecvEFR{Publication}{<Author>:
+ \emph{<Title of the publication>}
+ <Name of the journal>. <Publisher>,
+ <City>, <Year>}
+
+
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Jobs
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvJobs}{\ecvJobs}}
+
+\ecvEFR{Period}{<Year>--<Year>}
+\ecvENR{Employer}
+ {\ecvBold{<Name of the Company>}, <City>/<Country>}
+\ecvENR{Employment}
+ {<Type of the employment>}
+\ecvENR{Main responsibilities}
+ {<List of activities>
+ }
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Languages
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvLanguages}{\ecvLanguages}}
+
+\ecvERSub{First language}{\ecvBold{English}}
+
+\ecvEBSub{Other languages}
+ {<Language> -- Read: <Degree>, Write:
+ <Degree>, Talk: <Degree>}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Language Travels
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSub{\ecvLanguageTravels}
+
+\ecvEFR{Period}{<Date>--<Date>}
+\ecvENR{Place} {<City>/<Country>}
+\ecvENR{Vendor}
+ {<Organizer>}
+\ecvENR{Certificate}
+ {<Name of the accquired certificate>}
+
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvPageBreak
+\ecvBSec{\hypertarget{hypertarget:\ecvAbilities}{\ecvAbilities}}
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities / social
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvEBSub{Social Skills}
+ {<Description of the social strengths>
+ }
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities / organisational
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvEBSub{Organisational Skills}
+ {<Description of organisational skills>
+ }
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Abilities / professional
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBEBSub{Technical Skills}
+ {<Description of technical skills>}
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Hobbies
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBEBSub{Hobbies}
+ {<List of major hobbies and private interests>
+ }
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Attachments
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvBSec{\hypertarget{hypertarget:\ecvAttachements}{\ecvAttachements}}
+
+\ecvOVR {<Lsit of all attachements>
+ }
+
+\end{ecv}
+
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Signature
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ecvSig{<Name>, <Surname(s)>}{<City>}
+
+\end{document}
+\end
diff --git a/macros/latex/contrib/ecv/template/Makefile b/macros/latex/contrib/ecv/template/Makefile
new file mode 100644
index 0000000000..6a9a132eff
--- /dev/null
+++ b/macros/latex/contrib/ecv/template/Makefile
@@ -0,0 +1,108 @@
+# Copyright 2007-2011 Christoph P. Neumann, Bernd Haberstumpf
+#
+# This makefile is intended to build an CV withg the ecv package.
+#
+# This file is free software; as a special exception the author
+# gives unlimited permission to copy and/or distribute it, with
+# or without modifications, as long as this notice is
+# preserved.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law;
+# without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.
+
+# LANGUAGE: The language to use
+LANGUAGE ?= de
+# BASENAME: The basename of the document without language
+BASENAME = CV-template_
+# NAME: Basename of the package
+NAME = $(BASENAME)$(LANGUAGE)
+# PORTTRAIT: The portrait of the writer
+PORTRAIT = portrait.eps
+
+# BUILDPATH: Where distribution will be assembled
+BUILDPATH = build
+# IMAGESPATH: Where images are searched
+IMAGESPATH = .
+
+TEX = $(NAME).tex
+PDF = $(NAME).pdf
+DVI = $(NAME).dvi
+
+RES = 600
+
+#
+# Tools
+#
+
+MKDIRP = mkdir -p
+CP = cp
+RMRF = rm -rf
+PDFLATEX = pdflatex
+LATEX = latex
+CONVERT = convert
+ACROREAD = acroread
+
+.PHONY : all force pdf fpdf dvi clean distclean
+
+# create $(NAME).pdf
+all : pdf
+
+force : fpdf
+
+# forced create a pdf from $(NAME).tex
+fpdf :
+ @touch $(TEX)
+ $(MAKE) $(PDF)
+
+# Creates a pdf from $(NAME).tex
+pdf : $(PDF)
+
+# Creates a dvi from $(NAME).tex
+dvi : $(DVI)
+
+# show document with acroread
+viewpdf : pdf
+ @$(ACROREAD) $(PDF)
+
+# Rule to create pdfs
+%.pdf : %.tex
+ @echo "-- Creating $(BUILDPATH)"
+ @$(MKDIRP) "$(BUILDPATH)"
+ @echo "-- Copy $< to $(BUILDPATH)"
+ @$(CP) "$<" "$(BUILDPATH)"
+ @echo "-- Copying image images/$(PORTRAIT)"
+ @$(CONVERT) -density $(RES)x$(RES) \
+ -size 945x1417 \
+ $(IMAGESPATH)/$(PORTRAIT) \
+ $(BUILDPATH)/portrait.jpg
+ @echo "-- Running pdflatex"
+ cd $(BUILDPATH); $(PDFLATEX) $<
+ @$(CP) $(BUILDPATH)/$@ .
+
+%.dvi : %.tex
+ @echo "-- Creating $(BUILDPATH)"
+ @$(MKDIRP) "$(BUILDPATH)"
+ @echo "-- Copy $< to $(BUILDPATH)"
+ @$(CP) "$<" "$(BUILDPATH)"
+ @echo "-- Running pdflatex"
+ @( \
+ cd $(BUILDPATH); \
+ $(LATEX) $<; \
+ )
+ @$(CP) $(BUILDPATH)/$@ .
+
+images/%.jpg : build/%.jpg
+
+
+# Cleans up this installation
+clean:
+ @echo "-- Removing $(BUILDPATH)"
+ @$(RMRF) $(BUILDPATH)
+
+# Also removes pdfs and dvis
+distclean: clean
+ @echo "-- Removing $(PDF)and $(DVI)"
+ @$(RMRF) $(PDF)
+ @$(RMRF) $(DVI)
diff --git a/macros/latex/contrib/ecv/template/portrait.eps b/macros/latex/contrib/ecv/template/portrait.eps
new file mode 100644
index 0000000000..c2d0c05ad5
--- /dev/null
+++ b/macros/latex/contrib/ecv/template/portrait.eps
@@ -0,0 +1,628 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (portrait.eps)
+%%CreationDate: (Sun Jan 28 18:41:23 2007)
+%%BoundingBox: 0 0 112 112
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 112 112
+userdict begin
+DisplayImage
+0 0
+112 112
+12.000000
+112 112
+1
+1
+1
+8
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffefefefdfdfd
+fdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfd
+fdfefefefefefefefefffffffffffffffffefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefffffffffffefe
+fefdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfdfdfdfdfdfdfdfdfffffffffffffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefeffffff
+fffefefefefdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfbfbfbfbfbfbfbfbfdfdfdfdfdfdfdfdfffffffffffffffffefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefefefefcfcfcfcfcfcfcfcfefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefdfdfdfcfdfdfdfdfdfdfdfdfefefefefefefefefefefe
+fefefefefefefefefefefefefefffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefdfdfdfcfcfdfdfdfdfdfdfdfdfefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefdfdfcfcfcfdfdfdfdfdfdfdfdfefefe
+fefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfefefefefefefe
+fefdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefbfcfefffffffffefcfcfcfcfcfcfcfcffffffffffffff
+fffffffaf8f8f8f9f9fdfffffffefdfdfffffcfafafefffffffefefefefefefefefefefe
+fefefefefefdfdfdfcfcfbfbfbfefffffffffefcfbfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefcfdfefffffffefdfcfcfcfcfcfcfcfcffffff
+fffffffffffbfcfefffffffffffffdf8f4f3f6fbfffdfefffffefcfbfafefefefefefefe
+fefefefefefefefefefdfdfdfcfcfcfbfbfdfefffffffefdfcfefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefdfefefffefefdfcfcfcfcfcfcfcfc
+fcfffffffffffefefefffffef7f1eff5fbfdfefffffffffdfafafbfbf9f7f8fdfffefefe
+fefefefefefefefefefefefefefdfdfdfdfcfcfcfbfcfdfefefffefefdfefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefdfcfcfbfdfdfd
+fdfdfdfdfdfffffffefefefefdfffcf9fdfffffdf5fbf7f1f0f3f9fefffffffffefcfafb
+fcfefefefefefefefefefefefefefefefefefefdfdfdfcfcfcfbfcfcfdfefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefffefefdfcfcfc
+fcfdfdfdfdfdfdfdfdfffffffefefdfdfcf4fbfffcf5f5fffffffffffffffefaf7eef1f6
+fbfefefaf7fefefefefefefefefefefefefefefefefefefefdfdfdfcfcfcfcfcfcfdfefe
+fffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefdfc
+fcfbfcfcfdfefefefefefefefefffffefefdfcfcfcfff9f4fcfffcdfc4b6bdc8d4e0ecf8
+fffffffffdfaf9fbfdfefefefefefefefefefefefefefefefefffefefefdfdfdfdfdfcfc
+fbfcfcfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefdfcfbfbfbfcfdfefefefefefefefefefffffefefdfcfbfbeffffbc672280500010000
+041b447494d9e9fcfffff8f7f9fefefefefefefefefefefefefefefefefffffefefefdfd
+fdfefdfcfbfbfbfcfdfefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefcfbfafafbfcfefffefefefefefefefefffffefdfcfcfbfafeae460500050a
+07010607010000010b0d4ba1e2fefffcfbfefefefefefefefefefefefefefefefeffffff
+fefefdfdfdfffefcfbfafafbfcfefefefefefefefefefefefefefefefefefefefefefefe
+fefbfcfdfefffefdfcfcfcfcfdfdfefefefefefefefefefefefff4fff2fffffff3531e00
+040c00000801010101010101010702001372e0fff9ecfff8fbfffffefdfefefefefefefe
+fefefefefefefefefefefefdfcfbfbfaf9fdfefffffffefdfcfefefefefefefefefefefe
+fefefefefefcfdfefefefdfcfbfcfcfcfdfdfefefefefefefefefefefefbfeecfff1ffde
+661a06000108050101010101010101010100000c13061675dfffe8f7ffffe7fff3fefefe
+fefefefefefefefefefefefefefefefdfdfcfbfafafcfdfefffffffefdfefefefefefefe
+fefefefefefefefefefefefefefefcfbfafcfcfcfdfdfefefefefefefefefefefefafff9
+f7f7fd5d0e00040703020603000101010101010101040001090100103382fefffcf3fde8
+fffefefefefefefefefefefefefefefefefefefdfdfcfbfbfbfbfcfdfefffffffefefefe
+fefefefefefefefefefefefefefffffffefdfcfbfafcfcfcfdfdfefefefefefefefefefe
+fefdfdfff7fca70803010b0c01000003000101010101010101050d070001130d000d7be4
+ebffedfff0fefefefefefefefefefefefefefefefefefefefdfdfcfcfbfafbfcfdfeffff
+fffefefefefefefefefefefefefefefefefffffefdfcfbfbfbfcfcfcfdfdfefefefefefe
+fefefefefefff4efffe3231e000301000000000308010101010101010100040803000008
+11000931c4f7fff1fafefefefefefefefefefefefefefefefefefefefdfdfdfdfcfafbfb
+fcfdfefffffefefefefefefefefefefefefefefefefffffefcfcfcfcfcfcfcfcfdfdfefe
+fefefefefefefefefefef8fcf9bb01160206000003040000050101010101010101000000
+090e09000009000028c0eefff5fefefefefefefefefefefefefefefefefefefefefefdfd
+fdfcfbfbfbfcfdfefffefefefefefefefefefefefefefefefefffefdfcfcfcfdfefcfcfc
+fdfdfefefefefefefefefefefefefbffe37c13000f080302060702000001010101010101
+01040c0b00000006050a09040d13a1ffe6fefefefefefefefefefefefefefefefefefefe
+fefefefefefdfcfbfbfbfcfdfefefefefefefefefefefefefefefefefefefdfcfbfcfdfe
+fffcfcfcfdfdfefefefefefefefefefefefff5e8fc36000c000001000000040503010101
+01010101010000010702000008010004030025adfffefefefefefefefefefefefefefefe
+fefefefefefefefefefefdfcfafafbfcfdfefefefefefefefefdfdfdfdfdfdfdfdf5ffea
+f6fff6f6f6fdf5f4fbfbf4f7fff7fcfff0fbffebfcf7f3fff5090f00000302000f000201
+00023581aa84340300001100030a000704000003050b0032d1ffe0ffffe6fffff3ffecff
+eefffffafef6fff1fafff3f7fdfffffdfcfbfcfdfefcfcfcfdfdfefefefdfdfdfdfdfdfd
+fdf7fdfdffecfcfffff9fffff4eaeef8fefff9f3fbfaf8fefefff3ffe002050202000900
+090003000469c9fff8f5f6a93b04000d0200030f00090200000800085ceffcf7fff3f5ff
+fcf3fff6fff2f9fcfefee6e8fff9f4ffeffffefdfcfbfcfdfdfcfcfcfdfdfefefefdfdfd
+fdfdfdfdfdfafbfcfff3fef5f9f7e0a75312114d8ae0fffff3ffe9fff9fff7fbd4010004
+01000f00030203001ef5fdfffbfffffcec50000b02000a0f00070301000508000698fff2
+fffff3fffff4fafdfffffdfffbf9fffffff7ecfafffffefdfcfcfcfcfdfcfcfcfdfdfefe
+fefefefdfdfdfdfcfcf6fff5f8ffebecffe5760d000000000570eff7fff2ffedfefafefa
+e005020002000f000206000153e6f1fffffdf8fcffc83e0002030d030100030800000907
+002ce7fef8fffbfbfbfff9fffef7fbefffe7fff0e9fffff8fffefefdfdfcfcfcfcfcfcfc
+fdfdfefefefefefefdfdfcfcfcf4fffef6ffe0ffeb300c000b0f00000a0d79f5fffef8f8
+fff4fff6f00a0300080308000608000989fffff8eaeefefffaff9f0700030d0006000207
+0500000a0000affff5fffdf4ffe8ffeaf0ddfffff7ffeafafff0f1fffffefefefefdfdfc
+fcfcfcfcfdfdfefefefffffefdfdfcfbfbfeedfffffdf5f46a0404040403030303000fc5
+ffffe9fffaf6fff3f41b00000d0500000807000d9bfeeeeffffff9f0f5f9e94500000c00
+040101000704020c000268fcf6fefcf9f397674eb7ffd9efc12b3078cdfbfff1f9fdfefe
+fefefdfcfbfcfcfcfdfdfefefefffffefdfdfcfbfbffebfbfdfff87d0000020000000500
+00070548eddcfff1fffbfcfaf6420002080200000601000885f0fdfff9f6feffffecff92
+0700090200000700060a050e010433f2f7fdfcf79101010512bbf1cd1a0d02001c99f6f8
+fffdfdfefffefdfcfbfcfcfcfdfdfefefefffffefdfdfcfbfbfafffaeff8d90a00080101
+090801040f03000d72fff2fcfefcf2fffb680209000000040300010167fffcfafaf9f7fa
+fffcffc1110406020000140502000006000024f7f8f8f8e512100200024fff6d00000d1a
+0021b4fbf1fcfdfefffefdfbfafcfcfcfdfdfefefefdfffffefbfafcfffffcfbe6fc2801
+0901010101010101010008030fbcf9fffafff0f1ffae0b0000000004070200132bfff5f5
+fdfafafefefef8f0100a09000b04000a00001b000d0b21f1f9fdfdb408000b020016fc05
+09000d06000c2cdefffefefefdfdfcfcfcfcfcfbfdfffffefcfdfffffefbfafcfff1ffed
+ff9207030101010101010101010c04000e33ecfffdfbf7ffefd309000705000105020006
+15edf2fff0fffffbfffdfef9070009060e000901040e030d00004dfff1fbfca203000201
+0216eb0000020000000c078af3fefefefdfdfcfcfcfdfcfbfdfffffefcfefefffdfbfbfc
+fef4fff6e8280005000101010101010101010f00030679fdf9fdffffebfc400100080000
+0405010002abfbfaf3fffdfffbf9f9fe0e04000200000c000205001913008afff6ffffb7
+04020001052fd400010801040408003af7fefefdfdfdfdfcfcfdfcfbfcfefffefdfefefe
+fdfcfcfcfdffedff7f000d01000101010101010101001309001b0daefff7f7f3fffc980d
+0006000004070402024cf9edfff5f3fff6fff0f1110d00010008000108000600001bcefa
+f1f1ffd6130800010272bd000b000001000b0007d9fdfdfdfdfdfdfdfdfefcfbfcfefffe
+fdfffefdfcfcfdfdfcfaf6df1a000f000001010101010101010b010f0000072ee6f7ecfa
+ffe9d8340003010103040203060cc3fffff5f4fef8fff6df0208020d0802040e00091711
+0027f7fffbf0ffff2e0600010fc69c040a04000304140e00c3fdfdfdfdfdfdfdfdfefcfb
+fbfdfffffefffefcfcfdfdfdfceeff88000402020101010101010101010d000212000605
+67fff2fff4f3fe7d0002030301000000030166ffebfffff0fff8ffd10004090200000a63
+cecb00000862f79e75bdeefea306000336f567050008020c09000021e5fcfcfdfdfdfdfe
+fefffdfafafcfefffffffefbfbfdfefdfbf4e53208010008010101010101010101000200
+0f11001300b3f0ffecffffcd1e0002020000000000051ec0e9ffffeffff3f6af00080400
+1f52befcffab0d1003dd461a14005ff3e51b000567e9260b000000060a002884fefcfcfc
+fdfdfefefefffdfafafcfefffffffefbfbfdfefdfbff9f01070006030001010101010101
+01010902000505000027dcfffaf8f2ff650000010103050200000458f7f6fff8fbffe583
+0008000a77e7fff1ec4e07004db60900060e0040fe35070689c700130103030c2c5cb6ff
+fdfcfcfcfdfdfefefefffdfafafcfefffffafffcf5fefffefdff2503030b000b00000a00
+047f450000000800000d0d00000058ebfeebffeee60f0a00050400000302000f7cf3fce4
+feffe62c0016006af8f5fdf77e040702af730015000e0801995a0e13791c0b00080e7fe2
+ffffde893b3b4ac9fff7fffafdfffffefcfafafdfffafffbf9fffffbfcd213000006000d
+00001214b0ecc719120304020a00000a01050396eafff4f1ff870a0010000407020e0900
+1b9afcfff0fbc01603000dc5ffffe499160f001cf656010b160a000e121500001f000100
+00a1c8c88732000014010932daefffecfffffffefcfafafdfffbfafbfefffcfbfc930300
+0002000e0005006ffefefd87090009000202020e00030008cdf8ffeefff1400000110011
+00000e0700004fb3f4bb000514000d30b7b74c0e02000f9af6840600000c0c0003030b0a
+000c0508061b0e00000a08010600080bb3fffdfaf3fffffefcfafafdfffef6f9fffefcfe
+fe5c00010100000c000f13dcfbecf9fa57000a02000c1500040c00052fefebffe6ffbf08
+03060900060c000a1e15080808081400010100190111000b04070ef1ffd117000700090e
+0606080c0018000000000606010705000001010aa6fefafff0fefffffdfbfbfcfefff4f9
+fffcfdfffa2e00040300000900035ff8fffeffffdc35000901000a00110207000248fcea
+f5fcff7f00050200080000070900000c03050001010d04000f0000000c0099ffedffb524
+0718040100010001060c00010003100c000000020e0d0015d8edfff3fefdfefffefcfbfc
+fefff4fafff9ffffe80d000002000007000593fbfff8f5fbffb214000c00030003000701
+000081fdfffef5ed31000200011705050500060b000300000a00000c0800000e150ff6ef
+fffef7dcb1511103170700050a000b1304000000000d080107001186fff9f6f5f7fdfeff
+fefcfbfcfdfff4fdfff7fff8cf00000002000005031ac8fff4f2f4fff4ff7e1805040609
+0001060a000a08afedf7f9f1c2131d00020500000a060007130002021906001700000006
+00d1ffe3fffff6fffffeca1900060204000002070007000744959b4700356ee6f7ffecff
+f3fcfefffffdfbfcfdfcf5fffff6fff1bb01070005000003030cf8faf5ffffe7fff6f653
+000f00060c0b001301000d01d6faf1fffa92001900060304050300000008000700000b01
+08040f007dfce8f7f7f9feedf2fbff840506000300170000080014030030a0eefff6fff7
+f9fff5fdf7fcfefffffdfbfcfcfef8f7fdfbf9fe8c000304020409060033fcfdf6fef8ff
+fafce5e0340011000c000500000900001be0fbfeeff563000c0c001109000a0200010906
+0000000005000026e6f8effffcfafffff6fcffd90400021400013c050000000000020290
+fffff9f4f8fbf9fafffcfdfefdfbfbfdfffcf9fafcfcfbfb8a00010100010607034df1ff
+fdfcfafff8effff1b71c010800030a01000909000333d6f1fff8e4400000080000000008
+1500060300080d08060602caeffffcf8f7f5ffd5effff0d92b0006000c1ec46a03060016
+0b100046f6f4f7fdfffffffcfbfdfefffefcfbfdfffafafdfbfdfef88a00030300000305
+055eedfffffefdfffdfcfafbff8e00080a00050200030000070a4deefcf0ffea1210001b
+08002a130000070000060a0100119dffecf8fffbfdf1f6fffff0ffad0308000c0050ffd3
+2a1400010004065af5fbfffef8f2f1f1f0fefffffffdfcfdfef9f9fff9fefff593040606
+04010102044af5f7f7fff7fdffffecfef7ec62060e0a0000060600000c02005de4fff8e5
+d4091a000010000000050600000200000a50fae2fef5fffffbffe6e3f6fdc82400090016
+006afcfb9101000d1b0017b7fffafefef8f9fffffffffffffffefcfcfdfaf8fff8fffff5
+a8020304040301010222ffefeaffeef9ffecfffff4f6ea41000f03000609080400030000
+59e6fde9fdae200a00001104150200000708000f38ffe6fdfffaf1fdfff7feffff7e1400
+00000d000f75fbf8f5501800020a69edf8f4fafefffffff8f0fdfffffffefcfcfdfdf5ff
+f7fffff8c602000001030201020df8f9f0fff3f7fff9fffdfaf6ffbb3400010e0500050e
+020e0a00172dd4ffe4ffc44504040203000200000908001341ffdafff4fffffefdf2e68a
+2700000015000e0000a5fdf5ffeb7b3145a0fffffffffffdfdfbfafefffafcfffffefcfc
+fdfff2fff7fffefce4100500000202010305c6fffcfdfff3fffff0f1fcffe6ffb218090a
+0700000b0b000022000b1ba9f5fbfbf26c0010160e030501010300061b3782899fbfc7a7
+964f0b16030008000002060400d4f9f8f2ffefeaf5eee7b1beb2a8a4a9adb8d9fbf6f9fd
+fefdfcfcfdfff0fef8fffdfff62210010003020102008cfefeebffeafdf4feedfffbfbfd
+fa7f1f0008110400000e0f00100200064f95b5b568150000030008010004090200000302
+080d070202000700020f0020000007002dd8fff5ffe2fdffee5b05060109010206000021
+4cf4f8fbfdfdfcfcfdf9fafcfdfefdfcfb7000080b040000000723e1ffffffeffefffff6
+f3fcfcfefcff6c000d000317010101010101010101010101010101010101010101010101
+0103030303030303030004000101071300000a008afee5fffafffdf73d0808000f04060d
+000408001b77ebfff4fffcfafaf9fafcfdfefdfcfba600100001080003001497effff7f4
+ffe3f7fcfdfffefaf3fffd570414000c0501010101010101010101010101010101010101
+01010101010202020202020202030006100500040b00002ce4fffff5f7f1fcff3e01000d
+000014001604041400a0f5fff6fffdfcf7f9fafcfdfefdfcfbe12c00000609000705032b
+f6e9fff5fdfffffffbf7fbfcfcf5ffdf32000d0602010101010101010101010101010101
+01010101010101010101010101010101011a0000000508000400259ff4fff0fffffef4eb
+720d00160500010d001e00013cd7fefff9fcfcfef6f9fafcfdfefdfcfbfd88000e090000
+0712000c90fff0ffeff0eefffffffef7fbf3fff8e92c0c00000101010101010101010101
+010101010101010101010101010000000000000000000515030003000d41c4ffffe8ffec
+f1f4fffbd51800000004000113000522c9fbfefefdf8f9fef8f9fafcfdfefdfcfbfdd739
+0000000503000b001cd6f7fff6ffecf9faf0f5f9ffffd8ffffdd12000c01010101010101
+01010101010101010101010101010101010000000000000000110b00042e618cb7fcf2fe
+f6c527063781dbfff22a11110a13000704001dcefbfff7fefff6f6fbfdf9fafcfdfefdfc
+fbfaf8ad0500040700000e000a45e5fff8e1f2ffbc3f2868c4ffece7fffec01d00010101
+010101010101010101010101010101010101010101000000000000000001000277ecfffa
+fce9ffebc922160000002f676310000700030f000018b3fff6fff1fefff7f7f6fff9fafc
+fdfefdfcfbfafff2690a0703000d0013010564e8eefff9f78812000110adfff0ffffffc0
+110101010101010101010101010101010101010101010101010101010101010101000815
+a0fff5f7fce7f8fb5b00011a0b0d000c0912000002000210099afff5f4fef2fffdfcfcf1
+fff9fafcfdfefdfcfbfcfff6e62601000100190003000168f6fdfffc7700050602009eff
+f9f0fffa9c01010101010101010101010101010101010101010101010101010101010101
+01030d0078eeecfffaffede70d06070000000a07000418010003010076eefff8fffff6ff
+faffffeefffffafafefffdfdfef9fff0ffd644000d04010204020205078be3ff85040110
+00041782fae6fff7fbad16000e04000706020000010000030d0101010101010101010101
+01010101010907000b6ae0fff2fff3c10e010800050205000600080103000143fce8f9ff
+fdfefefffdfbfbfcfefffafafefffdfdfeffebfffaf4c742000a00091806030f060a4f94
+691300000300000b7df3f7f5ffe5a2100000071200050304060602000001010101010101
+01010101010101010100050d091247a2eaeafe60000006110412050d04090600000d03d2
+e7fefffff8fefefffdfbfbfcfefffafafefffdfdfef8fff0fffef4d757060e0000070b00
+0004000c0e0608050b091e000f9cf5f8f2fff7ab000211000d0000000104060200010101
+010101010101010101010101010200000801000c2f354200010007000000000b000d0200
+070089fdebfff7f6fcfefefffdfbfbfcfefffafafefffdfdfefbebfffee9ffffe7681100
+150100040003000a0100020005000710002efffdeafaffefc114000f0400000000000405
+0001010101010101010101010101010101030403010000000003000a0e060e0908040e03
+010600000b2efee7fffcecfefffefefffdfbfbfcfefffafafefffdfdfefff0fdfdfcfdf5
+fff3ac3d00070b030c00041106010300041a00121e43f9fffff7ebffffc11e0000020606
+02000000000101010101010101010101010101010100060500000b1310000f0000000008
+00726b060e00000007afedffffecf6fffdfefefffdfbfbfcfefffafafefffdfdfef3ffe5
+fafff0faf2ffffee931900090015010000090a0420617aa6d5fdfff6d5f7fff3f8ffd51d
+070000000405010000010101010101010101010101010101010100000409070000001404
+0e120a006becac050d0001032cf9ebfffaf7fff8fbfefefffdfbfbfcfefffafafefffdfd
+fefcf1ffeef6ffe9fffff1f0ffe883270a000412120d000029cbf6f5fcfff2fbfdf6f0f6
+fefdf8e73e1703000006010003010101010101010101010101010101010004090800000a
+1f11000a05000232e5ff9100020001128df8ffebf7ffffebfefefefffdfbfbfcfefffafa
+fefffdfdfefffef5fffff4fff7f9fdfff7f6ffe3a00c060000060a000e040f2452466860
+8ad6e1ffffeffffaee491f00000600000401010101010101010101010101010101000403
+0001070400060005030011cffeec5a030003001ee5fee9fff4fbfffffffefefffdfbfbfc
+fefffcf9fafdfffffefefefefefefefefef5fcfffcfafaf5fd9a0f000118000103120000
+00000c0600002992fafff9fff0ff830e0005010100030007110b06050001010101010101
+01020202010100000001001b000193f7fef11b0a02000180f9fefefefefefefefefffdfa
+fafcfefffffffcfafafdfffffefefefefefefefefefcfcf6fee2fffbec410c0000020600
+0500000b0600010b1304000667fff9dbfffff0ac35040c000c0b00000000020a04010101
+010101010102020201010000000c000d054ef6ffefc5150200090ab0fefefefefefefefe
+fefffdfafafcfefffffffdfbfafcfefffefefefefefefefefefdf2f3fff5ed9012000303
+00000a0006090400000000000001180c09cfffe6f9fcfffde86f00010001061313080809
+000101010101010101020201010101000000070229def3fff3890e00021025e5fefefefe
+fefefefefefffdfafafcfefffffffdfcfbfcfdfefffefefefefefefefef9f2ffcd8b0d00
+00000004040a02010400030001080104040902070098fffffff2f7fff3f0b42d08120200
+040000020101010101010101010101010101010101020a0ab6fcf1efff540800070856ff
+fafefefefefefefefefefcfbfbfdfffffefffefdfcfbfcfdfffefefefefefefefefbffa9
+05000018050d02000e0000050000100c24341d0b00000011127bf7fbf1fcfff0fefcfdeb
+7a0c0004150d00010a01010101010101010101010101010101130080ffefffebfd2e0003
+0a0095fff9fefefefefefefefefefcfbfcfefffefdfefffefcfafbfdfffefefefefefefe
+fefee947000705001b000e0014000901000000006be1eab169171c00007dfffffbfffaff
+f3ffffdfffd27119000002040001010101010101010000010101010202015df7edfff1fa
+f11400030800cafdfcfefefefefefefefefdfcfbfcfefffefdfefffffdfafafcfffefefe
+fefefefefefdf24a02021100000008000f4b1600001b2c0000162777b5d7a55f64d6fbf2
+fffff9ecfcfdfdffd7fff3cd8d3c0b02030101010101010101000000010102020234f2fc
+f7fff2f4ef0800010211e3fffbfefefefefefefefefdfcfbfdfffffefcfefffffdfaf9fc
+fffefefefefefefefefbf26a05000012030d000204b11d0204a98518000e00030343abff
+f4ffe4fbf7fcfffffcfaf8f5fff7fbfffff0ce883e010101010101010100000001010202
+02c7fefffff7ffffdd0706000023e7fff7fefefefefefefefefcfcfbfdfffffefcfefefe
+fdfcfbfaf9fffffefdfdfdfefffcffa6031b00000522000b06d31b0900bcf94a03000c05
+00000961ecfff2fffffefefefefefefefefef7fdfffffff5f8c53300090a0b0200080000
+0009000a8ffafbfdfefefdfbfa0f00000069f7ffeefefefefefefefffffbfcfdfefefefe
+fdfefefefdfcfbfaf9fefefefefefefefeffeefd4300010a0000100b0deb0a0307a4f2d5
+0b0c0004050b00294eeefef8f3fefefefefefefefef6fcfff3f0fcfffff2e03900030017
+080118000d0e0067f1fafbfdfefefdfbfa64070047b9fff2fffefefefffefefdfdfbfcfd
+fefefefefdfdfefefefdfcfafafcfdfefffffefdfcfefff9ca0e01122300190049e50706
+0652fdff6b02000700070000027bffecfffefefefefefefefefffbf7fffffdeee4fffe3c
+0823000b000b000800003ae2fffbfcfdfefefdfcfbe89d98c3f9ffebf9fefefffffffdfc
+fafbfcfdfefefefefdfdfefefefdfcfbfbfafcfefffffffdfbfbfafcffb62900000f0a0f
+c3b1090a0009bff3d712080300040200110accf6fffdfdfdfdfdfdfdfdf6fef8f8f9fcff
+ffe37408000300050c0800020104c3ffeefcfcfdfefefdfcfcfff8fffbfcfff6fafeffff
+fffffdfaf9fbfcfdfefefefefdfdfefefefefdfcfcf9fbfdfffffffdfcfffeedfff4dd49
+27000958fd70000e0c043bfffa710700060b0011010068ffeefdfdfdfdfdfdfdfdf6fff4
+f1fcfce09f3c000c0a000f000000140d0596fdf7fffdfdfdfefefdfdfdf7f1f9f9fbfdf8
+fffefefffffefcfaf9fbfcfdfefefefefdfdfdfefefefefdfdf9fafcfefefefdfdfff4f5
+defffffbc6b4c5f5ff650000000a01d0ffd4000a00020512000c1ce7fbfcfcfcfcfcfcfc
+fcfffaeafff392430406050000000005160a000056fff3f9fffefefefefefefefeffffff
+fbfafcfcfcfefefdfdfcfbfbfbfbfcfdfefefefefdfdfdfefffffefefdfafafbfcfdfdfe
+fee6ffe3ffeee6fff4f5fefae056060602020d4efdfc421000001403010605befffcfcfc
+fcfcfcfcfcf4f3f1ffa407000f000d000f22020007070324e5e9fff4f5fefefefdfdfefe
+feeffffff8f4fbfffffffdfcfafafbfdfefbfcfdfefefefefdfdfdfefffffffefefafafa
+fbfcfdfefff4fff9f4f7fff5fffcfff3ff58090302040604dcffad000b090200000805b2
+f5fcfcfcfcfcfcfcfcf5fff7ea8c11010403080b0000040007001ecaffffedfffefffefe
+fdfdfefefffff6effffff8fafdfffdfaf9f9fbfefffbfcfdfefefefefdfdfdfdfdfdfdfd
+fdfcfbfafafbfdfefffefdfdfdfdfefffffffbfef0870f000802000057fefd2a05001b05
+0d0003c1f4ebffe682432d3671bce4f1ffd209000c01010101010101013ae7fff3fff4f9
+eefdfdfefffffffefefefefefefefefefefffefbf8f8fafdfffefefefefefefefefdfdfd
+fdfdfdfdfdfcfbfbfafafcfdfefefefdfdfdfefefffafefff7b2140d1208050413ceebbe
+00050018170200caffff9f440d0003030f0122366d89200b00010101010101010146e8ff
+f5ffebebfffcfdfefffffffefefefefefefefefefefffdfbf9f9fbfefffefefefefefefe
+fefdfdfdfdfdfdfdfdfdfcfbfafafafbfbfefefefefdfdfdfdf5f9ffffde060000000007
+006bfaf843120c02000122e6f5ec49000000010300000500011809090c01010101010101
+01074e6796f3ffe8fcfcfcfdfefffffefefefefefefefdfdfdfcfbfbfbfcfdfefffefefe
+fefefefefefdfdfdfdfdfdfdfdfdfdfcfbfaf9f9f9fefefefefefdfcfcfff5faffea2406
+160309000117cafbdc08060c010a78f1ff7f1301190a02080c08170c020004000a010101
+010101010102001300078aedfffbfbfdfefefffefefefefefdfdfdfdfcfafafcfdfeffff
+fffefefefefefefefefdfdfdfdfdfdfdfdfefdfdfcfbfaf8f8fcfdfdfefefdfcfbfef4ff
+fff67b1100041603090356faf0c812100623d5ffec2b0000010000000100000009031900
+030101010101010101000b060017031ec8fafafcfdfefefefefefefefdfdfcfcfbf9fafc
+fefffffffffefefefefefefefefdfdfdfdfdfdfdfdfefefefefdfbfaf9f9fbfcfefefefd
+fcf2fcfffafce15b0d040012050064ffeefbe9c09eecfff9df0b0a0800040b0002110700
+04000c000801010101010101010b000a030208000bf9fafbfdfefefffefefefdfdfcfbfb
+fbfbfcfdfefffffffffefefefefefefefefdfdfdfdfdfdfdfdfefefffffefdfbfaf7f9fb
+fefffffefdfffff7eaf1ffe6bb3f06100807a9e8fffffaf1fff7f2fc5b01030e07060900
+070003020c0000010101010101010101010600000509000025f8f9fbfcfefefffffefefd
+fdfcfbfafafefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfefefffffffefd
+fcf5f8fbfefffffefef7fffafff4f0ffffffe2a9bee0fcedfffdf2fffaf8e64009190003
+0700000004090900030004130301010101010101010013010005044cd2f8f9fafcfdfeff
+fffefefdfcfbfbfaf9fffffefdfdfdfefefefefefefefefefefefefefefefefefefefefe
+fefefefefefcfbfaf9f9fbfcfdfcfefffffffffdfcfefefefefefefefefffbffffeb2704
+06000000000000020400000205070707060a09080807060505060005286db9f0ffffffff
+fefefdfdfdfffefbf8f8fafdfffefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefdfcfbfafafafbfcfefefefefefefefefefefefefefefefef4fdff
+f6cd1d00010a080b1835608ca8babfc7d1dae1e6e8e3e2e2e1e0dfdedecfd4ddeafaffff
+f5fdfefefffffefefdfffdfbf9f9fbfefffefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefdfcfbfafafafbfefefdfdfdfdfefffefefefefefefe
+fef9fffdfff5927b779db1d1edfdfffcf7fdfefffffffefcfbfffffefdfdfcfcfbffffff
+f7f4f8fbfafcfdfefffffffdfcfcfbfbfbfcfdfefffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefffefdfcfbfafaf9fcfcfdfefefefefdfefefe
+fefefefefef4fceefefff8f5f2fffffffdfbfbfefffdfdfefefdfcfbfafdfdfcfcfbfbfa
+faf6fdfffefcfffffffdfefffffffdfbfafafafcfdfefffffffefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefffefefdfcfbfaf9f9fafdfffffffd
+fbfefefefefefefefef4fff8f9f4f7fefff0f6fdfffffefbf9fafbfdfeffffffffffffff
+fffffffffff4fcfffffffff8f0fffffffffdfbf9f8f9fafcfefffffffffefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefdfefefefdfcfbfaf8fafc
+fefffefdfcfefefefefefefefefffffdfbf7fbfaf5fefffffffefefffffffffffffefcfa
+f9fcfcfcfcfcfcfbfbfffffbf7f9fffffffffffffdfbfaf9f9fbfcfdfefffffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefcfdfefefefdfc
+fbfbfbfafafbfdfffffefefefefefefefefcedf2f5fffffff5f6fafffffffdfbfaf8f8f9
+fafcfefffffffffffffffffffff5fbfffdfafaf6f1fffefcfafafbfcfdfefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefbfcfd
+fffffefdfcfffcf8f6f7fbfffffefefefefefefefefff3fffdfaeffbfffdfdfcfaf9f9fc
+fffffffffefdfdfdfdfdfdfdfefefefefefafffffcf8fbfffffdfbf9f8f9fcfffffffffe
+fdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefcfcfbfaf9f8f8f7fefefefdfdfdfdfcfffffffefefdfdfdf8fafb
+fdfefdfcfcfdfdfdfdfdfcfcfcfefefefffffffffffffffffefefdfdfdf7f8f8f9fafbfc
+fcfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefdfdfcfbfaf9f9f8f7f8f9fbfcfefffffefefdfdfdfdfc
+fcfdfefffffffffefdfefffffffffffffffdfdfdfdfefefefefffffefdfcfaf9f9fafafb
+fbfcfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefdfdfcfbfbfaf5f6f7f9fbfcfdfefdfdfd
+fefefefefefcfcfdfdfdfcfbfbfbfbfcfcfdfefefefefefefdfdfdfdfdfdfcfcfbfafaf9
+f9fcfdfdfefefffffffefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefffffefefdfdfdfcfcfcfbfafaf9f8
+f8fdfefefffffffffffafbfbfcfcfcfcfcfbfbfbfcfcfcfcfcfffffffefefdfdfcf8f8f9
+fafcfdfefefdfdfefefffffffffefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefffffffffefefefeffffff
+fdfbf9f8f7fcfcfcfdfefefffffdfdfefefffffffffffffffffffefefdfefdfdfcfcfbfb
+faf9fafbfcfefffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffe
+fefffffefefdfcfcfcf9fafafafafafbfbfbfafafbfbfdfefffcfcfcfbfbfbfafafafafa
+faf9f9f9f9fffffffefefefefefdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefdfdfdfdfefefefffbfbfbfbfbfafafaf8f7f6f4f4f4f5f5f2f3f3f4f5f6f7
+f7fbfbfbfbfbfcfcfcfffffffffefefdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefdfdfdfdfdfdfdfdfffffffefefdfdfdfcfbf8f5f3f2f2f2eff0f1
+f4f6f8fafbfefefefffffffffffcfdfdfefffffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefe
+end
+%%PageTrailer
+%%Trailer
+%%EOF